System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种基于dpc的pcie非通知式热插拔方法,属于芯片设计。
技术介绍
1、pcie的热插拔功能是为了能够在不对系统进行断电操作的情况下插拔pcie设备(如nvme ssd固态硬盘、网卡等设备)。如果系统不支持热插拔,那么在不断电的情况下插拔设备就可能会对系统主板或者插槽造成损坏。为此pcie规范提出了一种通知式的热插拔机制:当用户要插拔pcie设备时,需要用户通知软件,由软件做好准备后再进行插拔操作。
2、现有的pcie热插拔技术多为需要软件主动发起的通知式热插拔方式。每次进行热插拔操作时都需要用户通知软件,等到软件将设备的驱动卸载,确认准备完成后才能开始拔出操作。通常用户通知软件的方式就是通过按下按钮button。这些拔出前的操作对一些设备不太友好,比如服务器主机上的nvmessd硬盘,这些硬盘是没有实现button按钮的,因此用户使用时通常都是直接拔出更换,不需要先通知软件处理。所以通知软件的通知式热插拔方式在一些应用场景下不能很好地满足用户的需求。
技术实现思路
1、本专利技术的目的在于克服现有技术中的不足,提供一种基于dpc的pcie非通知式热插拔方法,可以在不需要软件主动的情况下实现pcie设备的灵活拔出。
2、为达到上述目的,本专利技术是采用下述技术方案实现的:
3、第一方面,本专利技术提供了一种基于dpc的pcie非通知式热插拔方法,包括:
4、pcie接口部件接收pcie控制器发送的dpc事件和热插拔事件
5、pcie接口部件将产生的热插拔中断和dpc中断发送至cpu核心,使得cpu核心在收到dpc中断后,结束对已拔出pcie设备的访问;
6、pcie接口部件在接收到cpu核心停止访问pcie设备的信号后,将内部剩余的访问请求清空,并通知pcie控制器退出dpc状态;
7、退出dpc状态后,pcie接口部件及pcie控制器进行复位,完成一次surprise热插拔操作。
8、进一步的,所述方法还包括:pcie接口部件在识别到surprise link down错误后,控制内部的热插拔控制模块,对pcie插槽执行关闭时钟和下电操作。
9、进一步的,所述方法还包括:pcie接口部件在发送完中断后,持续接收cpu核心发来的访问设备请求,不再发送请求给已拔出的设备,并统一返回正常响应给cpu核心。
10、进一步的,所述将产生的热插拔中断和dpc中断发送至cpu核心,使得cpu核心在收到dpc中断后,结束对已拔出pcie设备的访问,具体包括:
11、若热插拔中断先于dpc中断到达,则cpu核心会在处理热插拔中断过程中等待dpc中断到达,并优先处理dpc中断;
12、若dpc中断先于热插拔中断到达,则cpu核心会直接处理dpc中断,之后再处理热插拔中断;
13、cpu核心在处理dpc中断时会调用处理函数结束对应设备的驱动,结束驱动后,cpu核心就停止再向对应的设备发送访问请求,并通过写pcie接口部件的寄存器通知硬件设备的访问已经停止。
14、进一步的,所述接收到cpu核心停止访问pcie设备的信号后,将内部剩余的访问请求清空,并通知pcie控制器退出dpc状态,包括:
15、pcie接口部件在接收到cpu核心停止访问pcie设备的信号后,开始一段时间的计时,这段时间的长度能够覆盖将硬件内剩余的访问设备的请求清空所需要的时间;
16、pcie接口部件将内部的请求事务进行清空,且计时结束后,通过硬件自动更新pcie控制器内部的寄存器,置起dpc处理完成标志;
17、在cpu核心读取到dpc处理完成标志后,通过写pcie控制器内部的寄存器,使pcie控制器和pcie接口部件退出dpc状态。
18、进一步的,所述计时时间通过寄存器配置,时间范围为1~255ms。
19、进一步的,所述退出dpc状态后,pcie接口部件及pcie控制器进行复位,包括:
20、在退出dpc状态后,cpu核心在清除链路状态变化,并保存需要恢复的寄存器数据后,退出热插拔中断;
21、cpu核心在处理完所有中断,确认可以进行复位后,通过将链路使能打开,通知硬件准备复位;
22、pcie接口部件和pcie控制器在链路使能打开后,自动进行复位。
23、第二方面,本专利技术提供一种基于dpc的pcie非通知式热插拔装置,所述装置应用于pcie接口部件,所述装置包括:
24、中断产生模块,用于接收pcie控制器发送的dpc事件和热插拔事件,产生热插拔中断和dpc中断;其中,dpc事件和热插拔事件为pcie控制器识别到surprise link down错误后产生的;
25、中断发送模块,用于将产生的热插拔中断和dpc中断发送至cpu核心,使得cpu核心在收到dpc中断后,结束对已拔出pcie设备的访问;
26、访问清空模块,用于在接收到cpu核心停止访问pcie设备的信号后,将内部剩余的访问请求清空,并通知pcie控制器退出dpc状态;
27、复位模块,用于在退出dpc状态后,控制pcie接口部件及pcie控制器进行复位,完成一次surprise热插拔操作。
28、进一步的,所述装置还包括:下电模块,用于在识别到surprise link down错误后,控制内部的热插拔控制模块,对pcie插槽执行关闭时钟和下电操作。
29、进一步的,所述装置还包括:防挂死模块,用于在发送完中断后,持续接收cpu核心发来的访问设备请求,不再发送请求给已拔出的设备,并统一返回正常响应给cpu核心。
30、与现有技术相比,本专利技术所达到的有益效果:
31、本专利技术提供一种基于dpc的pcie非通知式热插拔方法,通过pcie dpc功能进行surprise热插拔的技术,可以在不需要软件主动的情况下实现pcie设备的灵活拔出。该技术适用于一些需要频繁更换设备的主机系统,比如服务器主机需要频繁更换硬盘,使用该技术就能够极大地简化更换硬盘的操作。
32、同时该技术保证了在进行surprise热插拔时系统的稳定性,即使将正在工作的设备拔出也不会造成整个系统的崩溃,cpu内pcie接口部件的surprise热插拔处理逻辑配合软硬件交互流程能够将一个设备在不通知软件的情况下安全的移除。
本文档来自技高网...【技术保护点】
1.一种基于DPC的PCIe非通知式热插拔方法,其特征在于,包括:
2.根据权利要求1所述的基于DPC的PCIe非通知式热插拔方法,其特征在于,所述方法还包括:PCIe接口部件在识别到Surprise Link Down错误后,控制内部的热插拔控制模块,对PCIe插槽执行关闭时钟和下电操作。
3.根据权利要求1所述的基于DPC的PCIe非通知式热插拔方法,其特征在于,所述方法还包括:PCIe接口部件在发送完中断后,持续接收CPU核心发来的访问设备请求,不再发送请求给已拔出的设备,并统一返回正常响应给CPU核心。
4.根据权利要求1所述的基于DPC的PCIe非通知式热插拔方法,其特征在于,所述将产生的热插拔中断和DPC中断发送至CPU核心,使得CPU核心在收到DPC中断后,结束对已拔出PCIe设备的访问,具体包括:
5.根据权利要求1所述的基于DPC的PCIe非通知式热插拔方法,其特征在于,所述接收到CPU核心停止访问PCIe设备的信号后,将内部剩余的访问请求清空,并通知PCIe控制器退出DPC状态,包括:
6.根据权利要
7.根据权利要求1所述的基于DPC的PCIe非通知式热插拔方法,其特征在于,所述退出DPC状态后,PCIe接口部件及PCIe控制器进行复位,包括:
8.一种基于DPC的PCIe非通知式热插拔装置,其特征在于,所述装置应用于PCIe接口部件,所述装置包括:
9.根据权利要求8所述的基于DPC的PCIe非通知式热插拔装置,其特征在于,所述装置还包括:下电模块,用于在识别到Surprise Link Down错误后,控制内部的热插拔控制模块,对PCIe插槽执行关闭时钟和下电操作。
10.根据权利要求8所述的基于DPC的PCIe非通知式热插拔装置,其特征在于,所述装置还包括:防挂死模块,用于在发送完中断后,持续接收CPU核心发来的访问设备请求,不再发送请求给已拔出的设备,并统一返回正常响应给CPU核心。
...【技术特征摘要】
1.一种基于dpc的pcie非通知式热插拔方法,其特征在于,包括:
2.根据权利要求1所述的基于dpc的pcie非通知式热插拔方法,其特征在于,所述方法还包括:pcie接口部件在识别到surprise link down错误后,控制内部的热插拔控制模块,对pcie插槽执行关闭时钟和下电操作。
3.根据权利要求1所述的基于dpc的pcie非通知式热插拔方法,其特征在于,所述方法还包括:pcie接口部件在发送完中断后,持续接收cpu核心发来的访问设备请求,不再发送请求给已拔出的设备,并统一返回正常响应给cpu核心。
4.根据权利要求1所述的基于dpc的pcie非通知式热插拔方法,其特征在于,所述将产生的热插拔中断和dpc中断发送至cpu核心,使得cpu核心在收到dpc中断后,结束对已拔出pcie设备的访问,具体包括:
5.根据权利要求1所述的基于dpc的pcie非通知式热插拔方法,其特征在于,所述接收到cpu核心停止访问pcie设备的信号后,将内部剩余的访问请求清空,并通知p...
【专利技术属性】
技术研发人员:黄程,基成云,姚轶晨,浦云飞,贺凯,徐健,曲云龙,李斌,
申请(专利权)人:无锡先进技术研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。