法律状态公告日
法律状态信息
法律状态
2018-01-19
授权
授权
2016-03-23
实质审查的生效 IPC(主分类):G06F13/42 申请日:20151117
实质审查的生效
2016-02-24
公开
公开
技术领域
本发明涉及计算机技术领域,尤其涉及计算机外围系统的软复位 功能的硬件实现,更具体地说,本发明涉及一种PCI桥次级总线复位 的缓冲排空方法。
背景技术
目前计算机外围系统中PCI总线广泛应用,PCI总线规范已成计 算机系统外围互连总线事实上的标准,几乎所有的商业级或者工业级 的计算机生产厂商都在其计算机系统中提供标准的PCI总线。
计算机IO系统的软复位功能大多基于某个IO设备实现,没有出 现基于PCI桥次级总线复位实现的软复位功能,这是因为PCI桥次级 总线复位的使用要求PCI桥的次级总线端所有逻辑和请求缓冲必须 清空。
其中,PCI规范定义的请求包括P请求(PostedRequests)、NP 请求(Non-PostedRequests)、CPL请求(Completions);这三类请求 在软复位执行后必须完全清空,并且不会因为复位之前有NP请求发 出,复位后这个NP请求的对应的CPL请求返回时无法路由而导致整 个计算机外围系统挂死,这对于桥的复位逻辑设计是一个挑战。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,为 了保证PCI桥次级总线复位时PCI桥的次级总线端所有逻辑和缓冲必 须清空,而提供了一种对PCI次级总线端三类请求逻辑及其缓冲独立 管理的方法,解决了次级总线端逻辑复位和缓冲清空问题。
为了实现上述技术目的,根据本发明,提供了一种PCI桥次级总 线复位的缓冲排空方法,其特征在于包括:在PCI桥收到上层系统的 PCI桥次级总线复位命令后,使得PCI桥次级总线端的所有逻辑复位。
优选地,在PCI桥收到上层系统的PCI桥次级总线复位命令后, 使得PCI桥的PCI配置寄存器中的三级总线寄存器不复位,而且使得 该三级总线寄存器只接收系统上电复位控制,同时使得PCI桥的CPL 请求接收缓冲只接收上电复位控制,并且使得PCI桥次级总线端的接 收向量仲裁器在复位期间不仲裁任何请求。
优选地,PCI桥的PCI配置寄存器中的三级总线寄存器不复位, 从而保留三级总线寄存器中的桥三级总线号。
优选地,所述所有逻辑包括PCI总线接口、次级总线以下的所有 设备、所有缓冲、次级总线端的所有控制状态机、以及次级总线端及 以下的PCI配置寄存器和设备空限制寄存器。
本发明的主要有益效果在于,计算机系统可以基于标准的PCI 规范规定的PCI桥的次级总线复位功能实现安全有效的外围系统软 复位。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明 有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的PCI桥次级总线复 位的缓冲排空方法的流程图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意, 表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似 的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附 图对本发明的内容进行详细描述。
本发明提供了一种基于PCI桥次级总线复位的系统软复位硬件 实现方法,通过PCI三类请求缓冲独立管理,确保硬件上PCI桥次级 总线以下的所有设备和缓冲,特别是次级总线以下设备的请求的CPL 通路,在次级总线复位后可以重新开始正常运行。
如图1所示,在本发明优选实施例的PCI桥次级总线复位的缓冲 排空方法中,在PCI桥收到上层系统的PCI桥次级总线复位命令后, 使得PCI桥次级总线端的所有逻辑(例如,包括PCI总线接口、次级 总线以下的所有设备、所有缓冲、次级总线端的所有控制状态机,以 及次级总线端及以下的PCI配置寄存器和设备空限制寄存器)复位, 但是PCI桥的PCI配置寄存器中的三级总线寄存器(一般用 type1_reg6表示)不复位(由此保留三级总线寄存器中的桥三级总线 号),该三级总线寄存器只接收系统上电复位控制,同时PCI桥的CPL 请求接收缓冲只接收上电复位控制,并且PCI桥次级总线端的接收向 量仲裁器在复位期间不仲裁任何请求。
在采用了上述设计方案后,PCI的三类请求(P请求、NP请求、 CPL请求)的逻辑及其缓冲在PCI桥次级总线复位时都能够实现完整 切割,从而实现系统软复位的如下功能:
1.接收P请求,因为接收P请求由系统发出,系统不会在置软 复位时发出;
2.接收NP请求和发送CPL请求,因为接收NP请求由系统发出, 系统会保证所有NP请求都完成,或者不再需要完成时置软复位;
3.发送P请求,即当设备DMA写请求在进行中时,系统置软复 位,DMA写中断,所有相关逻辑复位,不会对外围系统的正常运行 产生副作用;
4.发送NP请求和接收CPL请求,即当设备DMA读请求在进 行中时,系统置软复位,DMA读中断,所有相关逻辑复位,但是已 经发出去的读请求的响应会返回到桥,由于桥的配置空间已经被复 位,桥需要的用于CPL路由的桥三级总线号如果被清0,则导致复位 之后到达桥的所有DMA读响应都被桥以故障终结,从而导致复位之 后的CPL包不能在接收方落地,无法释放信用,CPL通路挂死并最 终导致整个计算机外围系统挂死。而在本发明中,在系统置软复位时 桥三级总线号不复位,那么在上述场景下所有CPL请求在系统置软 复位后依然可以被路由到桥的CPL请求缓冲,并且被最终丢弃,保 证了这种场景下CPL通路的正常。
本发明通过PCI三类请求缓冲独立管理,确保硬件上PCI桥次级 总线以下的所有设备和缓冲在次级总线复位后可以重新开始正常运 行。其中,在次级总线以下的设备发出读请求后,如果系统置复位, 之前设备读请求对应的CPL请求返回到次级总线时,次级总线不会 因为逻辑被复位而不接收CPL请求,而是接收请求并丢弃,从而保 证CPL通路能够重新开始正常运转。
需要说明的是,除非特别说明或者指出,否则说明书中的术语“第 一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元 素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系 或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述 实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言, 在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容 对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的 等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明 的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均 仍属于本发明技术方案保护的范围内。
机译: 用于选择性地处理PCI总线复位信号的外围组件互连(PCI)卡和用于复位PCI卡的方法
机译: PCI卡选择性处理PCI总线复位信号和复位方法
机译: 通过PCI-to-PCI桥接器扩展次级PCI总线的使用的初始化方法