防止PCI/PCI-X/PCIExpress链路中的错误传播的方法

文档序号:6567580阅读:222来源:国知局
专利名称:防止PCI/PCI-X/PCI Express链路中的错误传播的方法
技术领域
本发明的实施例涉及一种防止计算机总线,尤其是PCI、 PCI-X 或PCI Express链路中的错误传播的方法。
背景技术
如现有技术所公知的,总线是一种子系统,该子系统通过同一 组互联线路在各种计算机组件之间或多台计算机之间传输数据和/ 或功率。历史上各种总线方案一直致力于解决处理器要求与存储器 和外围设备通信以便共享资源、以及在总线的各种部件之间匹配时 钟速度和通信机制的问题。
一种早期这样的方案是Intel的外围部件互连(PCI)总线,20世 纪90年代早期出现了该PCI总线的第一种形式。在开发这种总线的 时候,将该PCI总线设计为向连接到其上的外围设备提供彼此之间 的快速访问以及到系统存储器的快速访问。此外,尤其是在实施PCI 总线的初期阶段,主处理器可以以接近主处理器原生速度的速度访 问外围设备。
第二代方案的PCI Extended (或者,简称为PCI-X)主要通过使 总线宽度从32位加倍到64位并提高基本时钟速率更新了 PCI规范。 增大的总线宽度和时钟速率的结合显著增大了总线的理论总吞吐 量;然而,实施该PCI-X总线架构的较为昂贵的成本在过去还是现 在都将这种性能的提升抵消了,至少在商业实用性方面。例如,伴 随更快的总线速度和宽度而来的分别是增大的噪声灵敏度和串扰。 此外,增加的总线宽度使得每个外围设备置于总线上的负载更大, 进一步向已经对噪声灵敏的总线注入噪声。最后,每个外围设备都 需要32个以上的管脚,这增大了制造外围设备卡及其连接的主板的 成本。总之,PCI-X总线相对于第一代PCI提供了更大的吞吐量,
不过同时放大了 PCI总线的固有问题。
随着提高计算机系统的各个外围设备之间的通信速度的需求的 不断增大,对于能够支持和管理更高带宽通信的总线的需求也不断
增大。第三代方案为PCIExpress。与PCI和PCI-X的多点下传并行 总线不同,PCI Express用开关代替了多点下传总线,在点到点总线 拓扑中,该开关是所有连接到其上的设备进行通信所利用的单个共 享资源。代替对总线的使用进行共同仲裁,PCI Express为每个设备 提供对该开关的直接和排他的访问。所述的PCI Express布置中的不 同的每个设备具有其自己的通向开关的总线或链路。然后,开关建 立起点到点连接并对总线流量进行路由。


图1示出了 PCI Express总线和耦合到该PCI Express总线的多 个外围设备;
图2示出了包括存储器I/O子系统的PCI Express总线; 图3示出了实施例的I/0接口;
图4a示出了简要说明错误的检测、清空和报告的实施例的方法 流程图4b示出了简要说明错误的检测、清空和报告的另一实施例的 方法流程图;以及
图5示出了包括实施例的I/O接口的计算机系统。
具体实施例方式
将描述在PCI/PCI-X/PCI Express链路中防止错误传播的方法和 装置的实施例。现在将详细参考如附图所示的这些实施例的描述。 尽管将结合这些附图描述实施例,但并不是要将它们限制于此处公 开的附图。相反,旨在覆盖如所附权利要求限定的所述实施例的精 神和范围之内的所有备选方案、修改和等价物。
简单地说,实施例是一种方法和装置,用于在使用PCI、 PCI-X 或PCI Express链路的计算机系统中防止在从外围设备的I/O处理器
到主机的传输中发生错误的传播。实施例检测到传输中的错误,可 以关闭传输路径,并且进一步在可以将确认消息发送到主机之前截 取该确认消息。
在传统方案中,耦合到总线的I/O处理器将数据传输到主机。 传输数据之后,1/0处理器向主机发送确认消息,以确认主机收到该
传输。换言之,从I/O处理器向主机的传输将传输的数据加载到主
机存储器中的缓冲器。之后,该确认更新队列指针,以指向存储在
主机缓冲器中的传输数据。然而,该确认通常是公布的消息(posted message),这是因为I/O处理器不知道主机是否收到该确认消息或何 时收到该确认消息。因此,如果在路径中有错误,则发起的I/O处 理器将不会指示存在错误。相反,仅仅指示了发出了确认消息。结 果,随着后继传输的出现,多个错误可能会迅速地传播。
图1示出了PCI Express总线和与其耦合的多个外围设备。例如, 将主机、芯片组和存储器100耦合到PCI Express总线/开关110。耦 合到PCI Express总线/开关的设备还有经由包括队列122的PCI Express接口 120进行耦合的外围设备124。类似地,外围设备134 经由包括队列132的PCI Express接口 130耦合到PCI Express总线/ 开关IIO。此外,外围设备N经由包括队列142的PCI Express接口 140耦合到PCI Express总线/开关110,这表示可以将很多外围设备 耦合到PCI Express总线/开关110。尽管特别参考PCI Express总线/ 幵关110进行了描述,但是应该理解的是总线操作和拓扑也可以基 于PCI或PCI-X。
图2示出了耦合到PCI Express总线/开关110的外围设备的特定 例子。存储器I/O子系统200 (例如,外围设备124的应用)包括实施 例的I/O接口 120和经由内部总线210耦合到RAID控制器220 (RAID控制器也包括队列230)和盘片控制器240的队列122。如 现有技术所知,RAID等同于独立磁盘冗余阵列,还指一种通过在多 个盘片上保持冗余的数据实例(例如,条带化和/或镜像)来减少错 误和风险的方法。此外,连接到盘片控制器240的是盘片250。尽管 示出了多个盘片,但是应该理解的是盘片250代表单个盘片和多个
还要理解,尽管参考存储器I/O子系统进行了详细描述,但是 外围设备124、 134禾Q 144可以是任何能够耦合到PCI、 PCI-X或 PCI-Express总线的外围设备类型,包括但不限于如现有技术所知的 音频外围设备、视频外围设备、图形适配器、网络适配器、总线适 配器和总线桥。
图3示出了图1和图2的I/O接口 120的细节,包括实施例的 错误检测逻辑、报告逻辑和清空逻辑。在实施例中,1/0接口 120经 内部总线接口 310耦合到内部总线210并经总线接口 340耦合到PCI Express总线/开关110。之后,内部总线接口耦合到写逻辑315。写 逻辑315为任何输入数据345的事务加上索引标签,并将该事务(包 括索引)写入队列122中。在实施例中,所述索引包括事务的源地 址、事务的目的地地址、以及I/O号,以用于识别事务。如果随后 在事务中检测到错误,该索引用于识别该事务。之后,将队列122 耦合到总线接口 340。然后,可以通过总线接口 340将写入队列122 的事务释放到PCI Express总线/开关,并随后释放到其目的地。
耦合到队列122的输出端的还有错误检测器325,用于检测队列 122所发出事务中的错误。错误检测器325利用现有技术中公知的任 何错误检测方法检测队列122所发出事务中的错误。例如,奇偶校 验保护、纠错码(ECC)或循环冗余校验(CRC)。在实施例中,错误检 测器325通过校验奇偶性来检测队列122所发出事务中的错误。
错误检测器325还耦合到错误报告逻辑330。当错误检测器325 如上所述在事务中检测到错误时,它使错误报告逻辑330产生错误 报告350。错误报告逻辑330可以基于写逻辑315针对特定事务产生 的索引唯一地识别事务,以监测错误的发生并启动针对那些可恢复 错误(即软错误)的恢复程序。
除错误报告逻辑330之外,错误检测器325还耦合到清空逻辑 335。除了如所介绍那样触发错误报告逻辑330之外,错误检测器325 在检测到队列122所发出事务中的错误时还触发清空逻辑335。清空 逻辑335通过控制总线接口 340起作用,以阻塞来自直接上游的确
认消息。更具体而言,通过控制总线接口 340,在错误检测器325 检测到错误之后,清空逻辑335中断队列122和PCI Express总线/ 开关110之间的传输路径并截取确认消息,使得事务的目的地忽略 该事务。
除了中断队列122和PCI Express总线/开关110之间的传输路径 之外,清空逻辑335还耦合到写逻辑315并用于在错误检测器325 检测到错误时清空队列122。通过清空所有事务的队列122,清空逻 辑通过防止后续事务被错误感染而阻止了错误的传播。
图4a示出了实施例方法的流程图。例如,在经由内部总线210 的数据345通过内部总线接口 310到达I/O接口 120时,该方法开 始。之后,在写逻辑接收数据事务345 (410)。收到事务之后,写逻 辑为事务加上索引标记并将事务转发到队列(420)。在队列释放事 务时,检测事务中的错误(430)。如果不存在错误,事务作为输出 数据355通过总线接口 340继续行进到PCI Express总线/开关。如果 检测到错误,则产生错误报告(440)。此外,中断事务传输(例如, 通过总线接口 340) (450),并截取针对该事务的确认消息(460)。 之后,清空该队列(470)。
图4b示出了根据另一实施例的方法的流程图。图4b的方法中 的附图标记相同的部分反映了图4a所示的方法。在实施例中,尤其 是对于使用PCI-X总线的实施例而言,将不会中断事务传输。换言 之,图4b的方法省去了图4a中的过程方框450。此外,对于使用 PCI Express总线的实施例而言,可以任选地中断事务传输,或者仅 在可以适用图4a的方法、图4b的方法或这两种方法的特定情况下 进行中断。
图5为电子系统的一个实施例的方框图。图5中所示的电子系 统用于表示一系列电子系统(有线的或无线的),例如包括台式计算 机系统、膝上型计算机系统、蜂窝电话、包括具备手机功能的PDA 在内的个人数字助理(PDA)、机顶盒。备选的电子系统可以包括更多、 更少和/或不同的组件。
电子系统500包括用来交换信息的总线505或其他通信设备以
及耦合到总线505并可以处理信息的处理器510。尽管所示的电子系 统500具有单个处理器,但是电子系统500可以包括多个处理器和/ 或协处理器。电子系统500还可以包括耦合到总线505的随机存取 存储器(RAM)或其他动态存储设备520 (被称为主存储器),其可以 存储信息和处理器510所能够执行的指令。主存储器520还可以用 来存储处理器510执行指令期间的临时变量或其他中间信息。
电子系统500还可以包括耦合到总线505的只读存储器(ROM) 和/或其他静态存储设备530,其可以为处理器510存储静态信息和 指令。数据存储设备540可以耦合到总线505以存储信息和指令。 诸如磁盘或光盘等数据存储设备540以及相应的驱动器可以耦合到 电子系统500。
电子系统500还可以经由总线505耦合到显示设备550,例如阴 极射线管(CRT)或液晶显示器(LCD),以向用户显示信息。包括字母 数字键和其他键的字母数字输入设备560可以耦合到总线505,以将 信息和命令选择传送到处理器510。另一种用户输入设备是光标控制 器570,例如鼠标、跟踪球或光标方向键,以将方向信息和命令选择 传送到处理器510并控制光标在显示器550上的运动。
电子系统500还可以包括网络接口 580以提供对例如局域网等 网络的访问。网络接口 580可以包括例如具有天线585的无线网络 接口,天线585可以代表一个或多个天线。网络接口 580还可以包 括线缆590,其可以代表一个或多个以太网电缆、同轴电缆和/或光 缆。在一个实施例中,网络接口 580例如可以通过符合正EE 802.11b 禾口/或IEEE 802.11g标准来提供对局域网的访问,无线网络接口例如 可以通过符合Bluetooth标准来提供对个人局域网的访问。还可以支 持其他无线网络接口和/或协议。除了经由无线LAN标准进行通信 之外,或者取代经由该无线LAN标准进行通信,网络接口 580例如 可以利用时分多址(TDMA)协议、全球移动通信系统(GSM)协 议、码分多址(CDMA)协议和/或任何其他类型的无线通信协议来 提供无线通信。
尽管没有图示,但是应该理解各种设备(例如,处理器510、存 储器520、 ROM 530、存储设备540、显示设备550、字母数字输入 设备560、光标控制器570和网络接口 580)之间经由总线505的通 信是由上述实施例的1/0接口管理的,以便通过在发生错误时检测、 报告并清空错误来减轻错误的传播。
本领域的技术人员将会认识到实施例的简洁性在于,其通过 PCI、 PCI-X或PCI Express总线防止了错误的传播。
权利要求
1、一种方法,包括为I/O事务加上索引标记;利用队列,对所述I/O事务进行排队;检测所述I/O事务中的错误;以及响应于所检测到的错误产生错误报告。
2、 根据权利要求l所述的方法,还包括中断所述1/o事务的传输。
3、 根据权利要求1所述的方法,还包括 截取所述I/O事务的确认消息。
4、 根据权利要求2所述的方法,还包括 清空所述队列。
5、 根据权利要求1所述的方法,其中所述索引包括所述事务的 源地址、所述事务的目的地地址或I/O号中的一个或多个,以识别 所述事务。
6、 一种装置,包括写逻辑,用于为数据事务加上索引标记;耦合到所述写逻辑的队列,用于对所述加过标记的数据事务进 行排队;以及耦合到所述队列的错误检测器,用于检测所述加过标记的数据 事务中的错误。
7、 根据权利要求6所述的装置,还包括耦合到所述错误检测器的错误报告逻辑,用于在所述错误检测 器检测到错误后产生错误报告。
8、 根据权利要求7所述的装置,还包括耦合到所述错误检测器的清空逻辑,所述清空逻辑截取对应于 所述加过标记的数据事务的确认消息。
9、 根据权利要求8所述的装置,所述清空逻辑还中断所述加过 标记的数据事务的传输。
10、 根据权利要求9所述的装置,所述清空逻辑还清空所述队列。
11、 一种产品,包括包括指令的机器可访问的介质,在机器执行该指令时,该指令 使所述机器执行下列操作为1/0事务加上索引标记;利用队列,对所述I/O事务进行排队;检测所述I/0事务中的错误;以及响应于所检测到的错误产生错误报告。
12、 根据权利要求ll所述的产品,所述机器可访问的介质还包 括指令,在所述机器执行该指令时,该指令使所述机器执行下列操 作截取所述I/O事务的确认消息。
13、 根据权利要求12所述的产品,所述机器可访问的介质还包括指令,在所述机器执行该指令时,该指令使所述机器执行下列操作中断所述I/O事务的传输。
14、 根据权利要求13所述的产品,所述机器可访问的介质还包 括指令,在所述机器执行该指令时,该指令使所述机器执行下列操 作清空所述队列。
15、 根据权利要求14所述的产品,其中所述索引包括所述事务的源地址、所述事务的目的地地址或I/O号中的一个或多个,以识别所述事务。
16、 一种计算机系统,包括 总线;耦合到所述总线的数据存储设备;耦合到所述数据存储设备的处理器,所述处理器用于接收指令, 在所述处理器执行该指令时,该指令使所述处理器为i/o事务加上索引标记,对所述1/0事务进行排队,检测所述i/o事务中的错误,响应于所检测到的错误产生错误报告,以及 耦合到所述总线的网络接口;以及 耦合到所述网络接口的光缆。
17、 根据权利要求16所述的计算机系统,所述指令还包括用于 中断所述I/O事务的传输的指令。
18、 根据权利要求17所述的计算机系统,所述指令还包括用于 截取所述I/O事务的确认消息的指令。
19、 根据权利要求18所述的计算机系统,所述指令还包括用于 清空所述队列的指令。
全文摘要
实施例是一种方法和装置,用于在使用PCI、PCI-X或PCI Express链路的计算机系统中防止在从外围设备的I/O处理器到主机的传输中发生错误的传播。实施例检测到传输中的错误,可以关闭传输路径,并且进一步在可以将确认消息发送到主机之前截取该确认消息。
文档编号G06F11/07GK101185064SQ200680018562
公开日2008年5月21日 申请日期2006年5月26日 优先权日2005年5月27日
发明者B·迪普拉西多, E·迪阿默, J·默里, M·戈尔施米特, V·楼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1