一种pci桥次级总线复位的缓冲排空方法

文档序号:9597805阅读:680来源:国知局
一种pci桥次级总线复位的缓冲排空方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及计算机外围系统的软复位功能的硬件实现,更具体地说,本发明涉及一种PCl桥次级总线复位的缓冲排空方法。
【背景技术】
[0002]目前计算机外围系统中PCI总线广泛应用,PCI总线规范已成计算机系统外围互连总线事实上的标准,几乎所有的商业级或者工业级的计算机生产厂商都在其计算机系统中提供标准的PCI总线。
[0003]计算机1系统的软复位功能大多基于某个1设备实现,没有出现基于PCI桥次级总线复位实现的软复位功能,这是因为PCI桥次级总线复位的使用要求PCI桥的次级总线端所有逻辑和请求缓冲必须清空。
[0004]其中,PCI规范定义的请求包括P请求(Posted Requests)、NP请求(Non-PostedRequests)、CPL请求(Complet1ns);这三类请求在软复位执行后必须完全清空,并且不会因为复位之前有NP请求发出,复位后这个NP请求的对应的CPL请求返回时无法路由而导致整个计算机外围系统挂死,这对于桥的复位逻辑设计是一个挑战。

【发明内容】

[0005]本发明所要解决的技术问题是针对现有技术中存在上述缺陷,为了保证PCI桥次级总线复位时PCI桥的次级总线端所有逻辑和缓冲必须清空,而提供了一种对PCI次级总线端三类请求逻辑及其缓冲独立管理的方法,解决了次级总线端逻辑复位和缓冲清空问题。
[0006]为了实现上述技术目的,根据本发明,提供了一种PCI桥次级总线复位的缓冲排空方法,其特征在于包括:在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥次级总线端的所有逻辑复位。
[0007]优选地,在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥的PCI配置寄存器中的三级总线寄存器不复位,而且使得该三级总线寄存器只接收系统上电复位控制,同时使得PCI桥的CPL请求接收缓冲只接收上电复位控制,并且使得PCI桥次级总线端的接收向量仲裁器在复位期间不仲裁任何请求。
[0008]优选地,PCI桥的PCI配置寄存器中的三级总线寄存器不复位,从而保留三级总线寄存器中的桥三级总线号。
[0009]优选地,所述所有逻辑包括PCI总线接口、次级总线以下的所有设备、所有缓冲、次级总线端的所有控制状态机、以及次级总线端及以下的PCI配置寄存器和设备空限制寄存器。
[0010]本发明的主要有益效果在于,计算机系统可以基于标准的PCI规范规定的PCI桥的次级总线复位功能实现安全有效的外围系统软复位。
【附图说明】
[0011]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0012]图1示意性地示出了根据本发明优选实施例的PCI桥次级总线复位的缓冲排空方法的流程图。
[0013]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0014]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0015]本发明提供了一种基于PCI桥次级总线复位的系统软复位硬件实现方法,通过PCI三类请求缓冲独立管理,确保硬件上PCI桥次级总线以下的所有设备和缓冲,特别是次级总线以下设备的请求的CPL通路,在次级总线复位后可以重新开始正常运行。
[0016]如图1所示,在本发明优选实施例的PCI桥次级总线复位的缓冲排空方法中,在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥次级总线端的所有逻辑(例如,包括PCI总线接口、次级总线以下的所有设备、所有缓冲、次级总线端的所有控制状态机,以及次级总线端及以下的PCI配置寄存器和设备空限制寄存器)复位,但是PCI桥的PCI配置寄存器中的三级总线寄存器(一般用typel_reg6表示)不复位(由此保留三级总线寄存器中的桥三级总线号),该三级总线寄存器只接收系统上电复位控制,同时PCI桥的CPL请求接收缓冲只接收上电复位控制,并且PCI桥次级总线端的接收向量仲裁器在复位期间不仲裁任何请求。
[0017]在采用了上述设计方案后,PCI的三类请求(P请求、NP请求、CPL请求)的逻辑及其缓冲在PCI桥次级总线复位时都能够实现完整切割,从而实现系统软复位的如下功能:
[0018]1.接收P请求,因为接收P请求由系统发出,系统不会在置软复位时发出;
[0019]2.接收NP请求和发送CPL请求,因为接收NP请求由系统发出,系统会保证所有NP请求都完成,或者不再需要完成时置软复位;
[0020]3.发送P请求,即当设备DMA写请求在进行中时,系统置软复位,DMA写中断,所有相关逻辑复位,不会对外围系统的正常运行产生副作用;
[0021]4.发送NP请求和接收CPL请求,即当设备DMA读请求在进行中时,系统置软复位,DMA读中断,所有相关逻辑复位,但是已经发出去的读请求的响应会返回到桥,由于桥的配置空间已经被复位,桥需要的用于CPL路由的桥三级总线号如果被清0,则导致复位之后到达桥的所有DMA读响应都被桥以故障终结,从而导致复位之后的CPL包不能在接收方落地,无法释放信用,CPL通路挂死并最终导致整个计算机外围系统挂死。而在本发明中,在系统置软复位时桥三级总线号不复位,那么在上述场景下所有CPL请求在系统置软复位后依然可以被路由到桥的CPL请求缓冲,并且被最终丢弃,保证了这种场景下CPL通路的正常。
[0022]本发明通过PCI三类请求缓冲独立管理,确保硬件上PCI桥次级总线以下的所有设备和缓冲在次级总线复位后可以重新开始正常运行。其中,在次级总线以下的设备发出读请求后,如果系统置复位,之前设备读请求对应的CPL请求返回到次级总线时,次级总线不会因为逻辑被复位而不接收CPL请求,而是接收请求并丢弃,从而保证CPL通路能够重新开始正常运转。
[0023]需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
[0024]可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【主权项】
1.一种PCI桥次级总线复位的缓冲排空方法,其特征在于包括:在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥次级总线端的所有逻辑复位。2.根据权利要求1所述的PCI桥次级总线复位的缓冲排空方法,其特征在于,在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥的PCI配置寄存器中的三级总线寄存器不复位,而且使得该三级总线寄存器只接收系统上电复位控制,同时使得PCI桥的CPL请求接收缓冲只接收上电复位控制,并且使得PCI桥次级总线端的接收向量仲裁器在复位期间不仲裁任何请求。3.根据权利要求1所述的PCI桥次级总线复位的缓冲排空方法,其特征在于,PCI桥的PCI配置寄存器中的三级总线寄存器不复位,从而保留三级总线寄存器中的桥三级总线号。4.根据权利要求1或2所述的PCI桥次级总线复位的缓冲排空方法,其特征在于,所述所有逻辑包括PCI总线接口、次级总线以下的所有设备、所有缓冲、次级总线端的所有控制状态机、以及次级总线端及以下的PCI配置寄存器和设备空限制寄存器。
【专利摘要】本发明提供了一种PCI桥次级总线复位的缓冲排空方法,包括:在PCI桥收到上层系统的PCI桥次级总线复位命令后,使得PCI桥次级总线端的所有逻辑复位,使得PCI桥的PCI配置寄存器中的三级总线寄存器不复位,而且使得该三级总线寄存器只接收系统上电复位控制,同时使得PCI桥的CPL请求接收缓冲只接收上电复位控制,并且使得PCI桥次级总线端的接收向量仲裁器在复位期间不仲裁任何请求。
【IPC分类】G06F13/42
【公开号】CN105354167
【申请号】CN201510790131
【发明人】张亮, 毕小建, 叶维, 韩文燕, 刘亮, 张琦滨, 蔡亮
【申请人】无锡江南计算技术研究所
【公开日】2016年2月24日
【申请日】2015年11月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1