CN1220746A - 总线修补器 - Google Patents
总线修补器 Download PDFInfo
- Publication number
- CN1220746A CN1220746A CN97193980A CN97193980A CN1220746A CN 1220746 A CN1220746 A CN 1220746A CN 97193980 A CN97193980 A CN 97193980A CN 97193980 A CN97193980 A CN 97193980A CN 1220746 A CN1220746 A CN 1220746A
- Authority
- CN
- China
- Prior art keywords
- bus
- patcher
- fault
- reflector
- programmable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
一种装置,包括一个与总线一起使用的协议观测器,一个用来检测总线上已知故障标志的状态机,和一个适用于在总线上干扰以防止具有这些标志的故障出现的干扰器。使用这样一个装置的系统包括一个总线,一个连接到该总线上的第一代理模块,一个连接到该总线上,用于按照一个总线协议向第一代理模块通信的第二代理模块,和连接到总线上的总线修补器,用来监测从第二代理模块到第一代理模块的通信以识别将会引起该装置中一个错误的一个事件,并用来通知该通信该事件已被避免。协议观测器,状态机和/或干扰器中的任一个都可以是可编程的。
Description
本发明背景
本发明技术领域
本发明总的关于总线通信系统的改进。更具体地,关于一种方法和设备,它通过对计算机系统添加一个修补器(patcher),来防止在计算机系统中出现错误,修补器监测总线上一个会潜在地引起系统中一个错误、然后干扰正常的总线行为总线事件的出现,从而防止该事件出现在总线上或被总线上的其它代理模块观测到。
先有技术
计算机系统或其它的逻辑系统可以包括部件或元件的组合,它们在一系列特定条件出现时,服从不同的故障机制。每个这样的条件都可被称为一个“故障”(bug)。每个故障都有一个“故障标志”,它定义引起故障出现的事件集。
例如,一个系统部件可能会在第一个特定事件后紧跟第二个特定事件时出错,但若有任何其它事件出现在第一和第二事件之间,则不会出错。或者,如果第二部件在第一部件处于一个指定状态时发出一个特定事件,则第一部件可能会改变行为或者甚至可能失败。这类故障机制的技术是已知的。
在计算机系统或其它逻辑或通信系统,以下总称为计算机系统中,这些不同的故障标志可能集中于出现在连接许多代理模块的总线上的事件。例如,一个计算机系统可能包含一个处理器,一个芯片组及其它代理模块,它们全都由一个系统总线连接在一起。很容易理解,可能会存在故障标志,它涉及总线上这些代理模块间的特定通信。
另一方面,故障标志可能位于一个更紧凑的整体中,其中,一个特定事件或全部在一个单个芯片或其它代理模块中的条件系列可能引起一个内部或外部错误。这些类型的故障可能涉及由芯片内总线连接在一起的多个功能单元,或者,它们甚至可能涉及一个单个单元中的一系列状态。
以前,利用逻辑分析仪和线路内仿真器来监测计算机总线业务,以确定所观察到的系统错误的来源和诱因。不过,这些工具只提供可被用于对存在故障的部件重定义和重制造(一个新的改进)的信息,以便该部件的新的改进将不出现故障。它们不能被用于防止原有部件中故障的出现。
同样,也容易理解,特定种类的“阻塞故障”可能“隐藏”其它故障。一旦阻塞故障被修正后,被隐藏的故障才能出现,并被发现以便修正。或者,它们出现得非常稀少,使得它们可能被其它故障所掩盖。若有一系列这种阻塞故障,则使用纯粹的逻辑分析仪及线路内仿真器将要求大量的改进以得到一个功能上正确,无故障的组件。而这将花费大量时间、费用和工程工作。最终,逻辑分析仪及线路内仿真器会很大而且价格昂贵,且完全不适合于在一个运行基础上修复大量已安装系统中的故障。
于是,希望有一种改进的装置,用来根据故障标志,检测故障的出现或即将出现,并用来防止故障出现。并且希望它不要求部件的改进。还希望在进行批量部件生产中价格不贵。还希望它是可编程的,这样,它可被用于在一个系统的已安装基础中修复后来发现的故障。
发明总结
本发明围绕一个装置,它包括一个总线,一个连接到总线上的第一代理模块,一个连接到总线上、用来按照一个总线协议与第一代理模块通信的第二代理模块,和一个连接到总线上的修补器,它用来监测从第二代理模块到第一代理模块的通信,以识别一个将会引起设备中的一个错误的事件,并用来修改通信以避免错误。本发明还围绕这样一个设备和这样一个修补器的操作方法。
总线修补器包含一个适于与总线一起使用的协议观测器,一个适于观察总线上已知故障标志的出现的状态机,和一个用于在总线上干扰以防止有那些标志的故障出现的干扰器。协议观测器,状态机和/或干扰器中的任何一个都是可编程的。
在硅排错中可使用总线修补器以避免阻塞故障并发现隐藏在它们后面的故障,以允许在硅的少量改进中修正阻塞及隐藏的错误。
附图概述
图1是总线修补器的主要部件的方块图。
图2举例说明了按先有技术的,包括两个连接到总线上的代理模块的简化计算机系统。
图3描述了一个包含总线修补线的增强计算机系统,其中总线修补器被直接连接到总线上。
图4描述了一个计算机系统,其中总线修补器被插入在一个代理模块和总线之间。
图5更详细地示出一个计算机系统,说明了作为代理模块连接到桥上的一个处理器,总线桥和内存控制器,还说明了除主处理器或系统总线以外,总线修补器还可在总线上使用。
图6说明了总线修补器可以位于不同的系统代理模块中。
图7是总线修补器物理实现的一个侧视图,其中,总线修补器位于一个插入器板上,该板安装在一个代理模块,如一个处理器,和主板或子板上该代理模块的惯用插槽之间。
图8是一个改进的物理实施例,其中插入器板包括多个连接卡。
图9是一个时序图,说明了按一个示例的故障标志的各种信号的行为,它将在系统中引起一个错误。
图10是一个时序图,举例说明这些信号中某一个的行为可被总线修补器如何修改以避免故障。
本发明具体描述
图1举例说明了本发明总线修补器的一个实施例。总线修补器包括一个用来连接到总线或出现故障的部件上的接收器。在一个实施例中,接收器用于将总线修补器连接到计算机系统的系统总线或处理器总线上。
很容易理解,计算机系统中的不同组件可以很方便地使用一个预定义的总线协议,以通过总线互相通信。于是,总线修补器包括一个连接到接收器上的协议观测器,它监测信号、事件、事务或表现在总线上的协议的其它元素。
总线修补器还包括连接到协议观测器上的一个状态机或其它逻辑装置。状态机知道要被修补并从而避免的故障的故障标志。
一个干扰器连接到并响应于状态机。一旦状态机根据故障标志识别故障的出现或即将出现,干扰器执行适当的动作以避免故障。干扰器通过一个驱动器连接回计算机系统总线。
总线修补器的任何基本单元都可以是可编程的。为了是可编程的,一个单元可以包括一个编程装置,诸如一个现场可编程门阵列,一个可编程阵列逻辑,一个可编程逻辑阵列,一个应用专用集成电路,一个只读存储器,一个随机存取存储器或其它合适的可编程装置。在其中有一个或多个单元是可编程的实施例中,总线修补器包括用于接收一个程序的程序输入装置。例如总线修补器可以使用一个JTAG扫描链,一个专用I/O端口,总线自身或其它合适的装置,以接收编程信息。
另一方面,如果不要求单元是可编程的,可以使用硬编码逻辑。
如果希望总线修补器以可改变的总线协议操作,或者若要求总线修补器对有不同总线的两种或多种计算机系统操作,则协议观测器可以包括一个编程装置。
甚至希望状态机包含编程装置,以确定要修补哪一个故障标志。通过将附加故障标志输入状态机的编程装置,总线修补器将能够观察并防止附加故障。这将使得在发现新故障时,总线修补器能够现场升级。它还使得总线修补器能根据它所安装的特定系统被定制。例如,一个应用程序能确定系统的一个标识,并根据它而有选择地加载特定的故障标志。
最后,干扰器可以包括一个编程装置。这将允许在检测到特定故障时,重新定义所要执行的动作,并允许在发现新的故障时,增加新的动作。状态机和干扰器总是相互配合地被升级或重新编程,因为一个故障标志及要防止其出现所要采取的动作总是成对出现的。
在一个实例中,故障标志和干扰操作的可编程性可以共同存储在一个单个部件,例如状态机中。在不同实施例中,状态机和干扰器可被实现为一个单个单元,或可被实现为另一个单元的子部件。
可以看到,总线修补器关于整个系统的知识越全面,它防止故障的能力越强。例如,可以希望给总线修补器提供关于计算机系统的地址映像的完整信息。这可以使总线修补器能捕捉到依赖于系统的故障。另外,可以希望总线修补器有关于I/O总线(例如PCI总线)的信息。
通过以较细粒度识别故障标记,还可以使修补器避免不必要的修补。例如,在具有某特定属性的两个总线事务被连续发出时可能出现一个故障,但只是在它们来自同一代理模块时才出现该故障。通过加入这一附加信息,则故障只出现在同一代理模块发出两个事务时,总线修补器将能够在两个事务来自不同代理模块时避免修补。这一不必要的修补不外乎是导致轻微的系统性能降级损害,或者它将在实际中引起一个错误,崩溃或停机。
编程信息可以包括,例如,要观测的总线线路,事件或事务,要监测的特定数据值,或是预定义的地址映像,特定事件序列,某些输出或结果等等。这些定义了故障标志。可以看到,故障标志可包含各种各样的数据,条件,状态,事件等。
干扰也同样包括各种操作。通常,它们可包括总线协议,总线流水线,系统电气,到代理模块的直接通信,I/O总线,边带信号等。
总线协议干扰的例子包括:将一个总线信号或事务延迟一段时间,例如一个预定数目的时钟,确立或撤销一个信号,扩展总线周期,中断总线判优,取消一个完整的事务,发出一个中断,或者甚至发出一个复位信号以重新启动整个计算机,或其它这类总线协议自身的合法应用。在这种情况下,干扰是在总线协议的约束下进行的,以保持系统一致性和确定性。
另一方面,干扰还可包含违反总线协议。其例子包括:在一个禁止时间发出一个信号,根据其它信号以一个禁止的组合发出一个信号,或类似情况。通常,这类违法干扰不象总线协议范围内的那些干扰那样理想,因为它们会带来较少的确定性及在实际中更可能产生错误。
不过,如果其违反协议的方式会产生系统能从中恢复的已知结果,则有些违反总线协议的干扰是可以被接受的。例如,通过改变一个单个数据信号或位线的值来强制一个奇偶错误通常是可恢复的,并且足以克服有些故障标志。
在有些情况下,可能是干扰操作的一个副作用,而不是干扰自身的直接作用,在实际上阻碍故障。例如,一个强制奇偶错误可能不直接避免故障,但系统修正一个奇偶错误所采用的校正操作由于其非期望作用被取消或被校正可引起故障标志被避免。
电气干扰,例如注入噪声,过激一个信号,或确立一个非法信号电压,通常远不如协议干扰那样理想,但它可能在一些系统中或对于一些总线适用。例如,一些数据转发器检测立即逻辑值并识别竞争的出现,这将导致重试。
在其中计算机系统是一个Intel体系结构的模式中,干扰还可包括:在其它信号中确立或撤销这些信号:HIT#,HITM#,AERR#,BNR#,BPRI#,BINIT#,BERR#,INIT#,RESET#,和DBSY#。
最后,总线修补器可包含使能和禁止其电路的任何常规装置。为简单起见,未示出使能/禁止单元和其它单元间的连接。本技术领域的专业人士可以意识到,该单元允许外部逻辑将总线修补器断掉电,因此,在不需要时,总线修补器进入低电耗状态。在这种模式下,根据外部使能信号,使能/禁止单元使总线修补器上电。另一方面,不需要任何外部输入信号,使能/禁止单元可被内部触发,在不需要时自动将总线修补器置于休眠模式。在这种模式下,可以以任何一种本技术专业人士所熟知的常规方式,采用使能/禁止单元检测什么时候再次需要总线修补器。
图2示出了一个按先有技术的计算机系统,其中,第一代理模块(A)和第二代理模块(B)被连接在一起以通过总线互相通信。图2示出两个代理模块仅是为了简单起见。可以意识到,在任何给定计算机系统中可以出现任意数目的代理模块。在不同实施例中,一个代理模块可以是一个处理器,或一个协处理器,或一个信号处理器,或一个总线桥,例如一个处理器与一个用来连接插入板的总线(例如一个PCI总线或ISA总线)之间的总线桥,或一个内存控制器,或一个高速缓存控制器,或一个直接存储器存取装置,或其它这类代理模块,这些例子中没有一个在图2中专门示出。
图3示出一个如图2的简单系统,但加入了总线修补器。如在图3中示出的,总线修补器可以直接和独立地连到其它代理模块所连接的同一总线上。在该模式,修补器相对于其它代理模块是一个可独立应用的部件。
另一方面,图3可被理解为说明了一个实际上在一个诸如微处理器的单个芯片范围内的系统,其中,不同代理模块仅是芯片的不同内部单元,总线是一个内部总线,通过它,那些单元互相通信。在这个替换例子中,总线不需是外部世界可见的。
图4示出了一个有些不同的实例,其中总线修补器被插入在一个代理模块和总线之间。希望,但不要求被插入总线修补器的代理模块是一个引起故障的代理模块或是一个由故障导致失败的代理模块。
图5详细说明了本发明的一个特定的实用实施例,其中代理模块包括一个处理器,一个总线桥和一个内存控制器及其相关存储器。在这样一个实施例中,处理器是Intel公司的PentiumPro处理器,总线桥桥接在处理器总线和PCI总线之间。
图5还示出了总线修补器不需直接接到处理器总线上。在所示实例中,总线修补器被连接到PCI总线上以修补出现在该总线上的故障,例如在一个PCI内插卡(未示出)与另一个PCI内插卡(未示出)或PCI桥芯片间的通信中的故障。在另一个实施例(未示出)中,总线修补器可以连接到内存控制器和内存之间的总线上,以修复出现在那里的故障。在另一个实施例(未示出)中,总线修补器可以被连到多于一个总线上,例如处理器总线和PCI总线上,以修补也连接到这些总线上的一个总线桥中的故障。
图6举例说明了修补器不需是一个独立应用的设备。而是,总线修补器可以直接被插入到一个或多个其它代理模块中。可以预料,总线修补器通常只占任何代理模块芯片的很小一个区域,于是它当然可以很便利地被包含在一个代理模块,或者甚至所有代理模块中,仅是“以防万一”。在这种模式下,希望给修补器配备使能和禁止修补器的装置(未示出),于是除非需要并使其能工作,修补器将不作任何操作且不消耗能量。任何合适的,常用的使能装置都可用于该目的。
图6还举例说明了单个修补器的功能可被分配在不同代理模块间。例如,协议观测器可以被包含在处理器中,因为通常处理器是定义其它所有代理模块将采用的总线协议的部件。如果在要被修补的故障出现时,且总线桥是要失效的代理模块时,则干扰器可以被包含在总线桥中。状态机可位于任何方便的地方。在这样一个分配实例中,系统总线本身可用于在总线修补器的单元间发送信号。在有些情况下,系统总线将被用于这一业务这一事实可以免除对干扰器的需求;元件间通信本身可能足以干扰以克服故障标志。另一方面,专用修补器总线(未示出)可以将修补器部件连接在一起。
可以意识到,对这些实施例的选择,以及在哪里连接总线修补器,可以部分地由总线自身的性质决定。例如,一个线-或总线(wired-or bus)可以使自己很方便地使用于图3中的实施例。一个线-或总线是有利的,因为它允许任何独立代理模块-包括一个其系统没有专门设计以容纳例如一个总线修补器的代理模块-发出一个可被总线上所有其它代理模块识别的信号。
图7示出了用于图4所示计算机系统中的总线修补器的可能的物理实现。其中,总线修补器被插入在一个代理模块和在不插入修补器时该代理模块将被连接到其上的总线之间。图7将其示为插入了总线修补器的处理器,不过可以理解,其它代理模块也可被这样插入。
处理器被连接到一个插入器板的插槽上,而不是被直接连接到其母板或用于连接到芯片组或其它板逻辑上的处理器子卡插槽上。然后,一个适配器将插入器板连接到母板或子板上。在所示实施例中,处理器是被插入的,但可以体会到,插入器技术可适应于使用其它已知安装技术。
总线修补器被连接到插入器板上并以未被示出但在本技术中是可以理解的方式,被电连接到插入器插座和适配器上。在所示实施例中,总线修补器的接收器和/或驱动器,总称为缓存器,物理上可以被从修补器的逻辑部分中移去。在一种模式下,缓存器,或它们的一个子集,可被置于插入器插座下面或位于插入器插座的外部插针周边中(在该侧视图中未示出)。这尤其适用于处理器是一个Intel Pentium Pro处理器的情况,它与第二级高速缓存一起封装在一个双腔插针网格阵列封装部件中,该封装部件的插针围绕其周边,而不是直接在该封装部件中心部分下面。
图8举例说明了插入器板的另一个模式,其中,处理器或其它代理模块被连接到主插入器卡上,且至少有总线修补器的一部分被连接到诸如一个上引器卡(riser card)的单独的卡上,该卡由一个诸如边缘连接器的连接器连接到主插入器卡上,可选择地,总线修补器的一些元件,例如缓存器,可位于主插入器卡上。这一般可以提供较好的噪声,解耦,和其它电气效果。
这种模式可提供几点特殊的好处。要在其中插入总线修补器的特定计算机系统可能有空间限制,使得不能使用完整的插入器。同样,对总线修补器的一些部分,例如逻辑或编程部分,使用分离的、可联接的卡,使得能够通过连接不同的上引器卡,简单地使用有不同逻辑内插式附件的一个单个插入器卡。
尽管在所举例子中,上引器卡是相对于主插入器卡安装在一个角度上,但可以理解,这是一个任选模式。它们可以任何合适方式连接。
为了清楚和易于理解,图8相对于图7所示内容被简化了,并且图8中说明了处理器和缓存器被连接到插入器板上,修补器逻辑被连接到上引器卡上,且上引器卡和插入器卡由一个连接器连接起来。
图9说明了一个可能出现在系统中的示例故障。为了说明的目的,所述系统是基于例如PentiumPro处理器的一个Intel结构微处理器。
时序图描述了三个读事务,其中R1是一个读出线事务,R2是一个读局部线事务,R3是一个由总线代理模块在总线上发出的读出线事务。为R1返回的数据出现在R11-14,为R2返回的数据出现在R21。
所举例说明的故障的故障标志是一个返回数据的总线代理模块(芯片组)中缓存重新配置策略中的故障,该故障在下列条件下出现:1)读事务R1的最近数据传输R14和有确立HITM#的读事务的探测阶段在同一时钟(11)出现,它引起为读事件R1和R3重新配置缓存的请求,2)在下一个紧接着的时钟(12),出现单个的数据传输R21,它使得出现一次为事务R2所做的缓存重新配置。由于逻辑没有被设计为在两个连续时钟内处理三次重新配置,所以出现该故障。其结果是:为事务R2所进行的重新配置丢失,且当同一缓存随后被分配给下一个事务时,该事件接收到错误数据。
图10说明了总线修补器克服图9中故障的用法。因为故障只出现在两个连续时钟内有三个缓存重新配置时,且因为要求例如R14和R21的两个独立数据传输完成时间出现在两个连续的时钟,所以通过将R21延迟一个到多个时钟,可以避免故障标志。一个避免故障的修补方法是将事务R2的探测阶段完成延迟。Pentium Pro的总线协议允许一个独立总线代理模块-总线修补器即为这样的代理模块-在总线的任何事务中确立探测拖延。
在该例中,总线修补器的状态机被编程为去检测其后紧跟一个部分读的读出线的背对背序列,且干扰器被编程为为部分读确立探测拖延(通过在探测阶段中同时确立HIT#和HITM#),直到读出线的数据传输完成。这就保证了R21总是被从R14延迟至少一个时钟,从而通过防止故障标志出现而避免故障。
作为对使用探测拖延的干扰器的替换,干扰器可以在观察到包含三个事务的背对背序列的故障标志时,确立一个BNR#信号(未示出)(一个阻塞下一个请求的信号),从而在第三个事务的发出中引起拖延。然后,当出现故障标志的窗口消失时,释放BNR#。对只要求两个事务的背对背序列的故障来说,BNR#可被用于调节指令发布,BNR#在每个不是故障标志的背对背序列中的第一个的事务时被撤销。
因为在示例系统中,HIT#,HITM#和BNR#是线-或信号,所以它们是用于总线修补器干扰方案中的最佳候选。如果线或瞬变协议(glitch protocol)限制被放宽且总线在一个较低频率工作,则附加信号成为可行的候选信号。例如,撤销BPRI#可被延迟到来自总线桥代理模块的最近事务完成之后,以避免任何与总线使用权在优先代理模块和对称代理模块之间改变有关的故障。有些事务类型仅从一个桥代理模块中出现。如果BPRI#撤销被延迟能防止来自桥代理模块的最近事务与来自一个对称代理模块的另一事务流水相连。
另一个例子,DBSY#撤销的扩展将数据传输总线占用从一个代理模块中扩展,防止另一代理模块紧跟其后流水传送下一个数据传输。
另一个例子,确立AERR#使得事务被重新发出一次。该技术可以非常有限的方式被使用,以得到给定事件的正好再一次重试。这被证明是有用的,例如,可作为修补一个故障的初步尝试(尽管不能保证成功),它所承诺的修补具有明显缺陷,例如严重的性能下降或诸如此类。
还有一个例子,总线修补器被用于修补一个故障,该故障是由PentiumPro处理器芯片组的内存控制器数据缓存重新配置问题所导致的,其中当写后读出访问不能进行时,硅失败。该故障的修补以伪代码格式在表1中举例说明。
若探测拖延则
{若ReqA:MEM INV则
{起动BNR#一个时钟
若ReqB:LEN=00则
继续拖延BNR#,直到探测拖延完成
}
等待16个附加时钟
}
表1:示例修补
以上所给这些例子进一步引导关心修补器使用的读者。读者将理解到,这决不是一个全面的表,且修补器可以在各种总线,处理器和计算机结构中做无数其它修补。
请重新参考图1,在修补器被实现为例如片内形式的实施例中,其中修补器并非实际上连到总线上,而是被直接连到一个或多个功能单元上。干扰可以简单地就是指修补器有一个或多个单元发送一个信号,使它们采取一些预定操作。
在另一个实例中,总线修补器不包含一个干扰器。总线修补器采取一些动作以支持例如芯片或系统合法性,而不是试图去修补一个故障。例如,它可能包含一个计数器(未示出),而不是一个干扰器。该实施例对于验证以前已识别并推测已修复的故障不再出现尤其有用。即,它可被用于确认一个改进确实已修复了一个故障。如果已知一个特定故障能在一个预修复系统中引起一个可见错误,例如系统停机,且如果计数器确认已观察到一次或多次故障标志,且未观察到故障,则它可以非常有把握地断言故障事实上已被修复。
尽管借助于由此处特定图形所示出的特定实施例,并参照Intel结构处理器的总线信号,已描述了本发明,但本技术的专业人士可以意识到,本发明可以用不同的其它结构和不同的其它总线来实现,它们在所介绍技术的范围之内。
Claims (43)
1.一种装置,包括:
一条总线;
一个连接到总线上的第一代理模块;
一个连接到该总线上的第二代理模块,用于按总线协议与第一代理模块通信;和
一个连接到该总线上的修补器,用于监测从第二代理模块到第一代理模块的通信,以确定一个会在装置中引起一个错误的事件,并用来修正该通信以避免该事件。
2.如权利要求1的装置,其中该修补器包括:
可编程装置,用来存储事件的一个故障标志,修补器根据它来识别该事件。
3.如权利要求2的装置,其中该可编程装置具有一个存储在其中的故障标志。
4.如权利要求2的装置,其中修补器还包括:
一个连接到该总线及用于存储的该可编程装置上的协议观测器;和
一个连接到用于存储的该可编程装置上并连接到总线上的干扰器。
5.如权利要求4的装置,其中该修补器包括一个完整的、独立的部件。
6.如权利要求4的装置,其中该修补器的两个或多个部件被分配在两个或多个代理模块中。
7.如权利要求4的装置,其中该协议观测器包括用来存储该协议的可编程装置。
8.如权利要求7的装置,其中该协议观测器的可编程装置具有存储在其中的协议。
9.如权利要求4的装置,其中该干扰器包括可编程装置,用来响应于用于存储的该可编程装置对故障标志的识别存储要被执行的干扰。
10.如权利要求9的装置,其中用来存储干扰的该可编程装置有一个存储在其中的干扰。
11.如权利要求2的系统,其中用于存储的该可编程装置包含一个状态机。
12.如权利要求1的装置,其中第一代理模块,第二代理模块和修补器的每一个都被连接到总线上。
13.如权利要求12的装置,其中该修补器和其中代理模块之一构成一个通过一个单连接连接到该总线上的单个设备。
14.如权利要求1的装置,还包含多个修补器。
15.如权利要求1的装置,其中这些代理模块之一被连接到总线上,另一个通过该修补器非直接地连接到总线上。
16.如权利要求15的装置,其中这些代理模块之一是一个处理器且另一个是一个芯片组。
17.如权利要求1的装置,其中该修补器通过这些代理模块之一非直接地连到总线上。
18.如权利要求17的装置,其中这些代理模块之一是该总线与一个外围总线之间的一个总线桥,该修补器通过该外围总线连接到其中一个代理模块上。
19.如权利要求18的装置,其中该总线桥用来在Pentium Pro处理器总线与该PCI总线间桥接。
20.如权利要求1的装置,其中至少该总线的一部分包括一条线或总线。
21.如权利要求1的装置,其中,该装置包含一个单片芯片且其中该总线修补器用来修补该芯片中一个内部总线上的故障。
22.一种装置,包括:
一个协议观测器,用来按照一个总线协议观察总线业务。
一个状态机,连接到该协议观测器上,检测总线业务中故障标志的出现;和
一个干扰器,连接到该状态机上,用来干扰总线标志以防止错误事件的出现。
23.如权利要求22的装置,其中该协议观测器包括用来存储该总线协议的第一可编程装置。
24.如权利要求23的装置,其中该第一可编程装置具有存储在其中的该总线协议。
25.如权利要求22的装置,其中该状态机包括第二可编程装置,该第二可编程装置用来存储至少一个该状态机检测的故障标志。
26.如权利要求25的装置,其中该第二可编程装置还用来存储该状态机检测的多个故障标志。
27.如权利要求26的装置,其中该第二可编程装置中至少储存有一个故障标志。
28.如权利要求22的装置,其中该干扰器包含用来存储至少一个干扰的第三可编程装置。
29.如权利要求28的装置,其中该第三可编程装置还用来存储多个干扰。
30.如权利要求28的装置,其中:
装置还包括第二可编程装置,用来存储该状态机检测的多个故障标志;和
第三可编程装置,用来存储该第二可编程装置中所存贮的每个故障标志的一个干扰。
31.如权利要求30的装置,其中:
该第二可编程装置中至少储存有一个故障标志;和
该第三可编程装置中至少储存有一个干扰。
32.如权利要求22的装置,还包括:
用于使该装置使能和禁止的装置。
33.一种总线修补器,包括:
一个插入器板;
将该插入器板连接到一条总线上的缓存器;和
连接到该缓存器上的修补器逻辑,并包括,
一个协议观测器,适于按照总线协议观察总线业务,
一个连接到该协议观测器上的状态机,用来检测总线业务中一个故障标志的出现,和
一个连接到该状态机上的干扰器,用来干扰该总线标志以防止一个错误事件的出现。
34.如权利要求33的总线修补器,还包括:
用于将该总线修补器插入到一个电子设备和适于接收该电子设备的电子系统之间的装置。
35.如权利要求34的总线修补器,其中用于插入的装置包括:
一个连接到插入器板和缓存器上的插入器插座,适用于容纳该电子设备,以及
一个用来连接到该电子系统上的适配器。
36.如权利要求35的总线修补器,其中该修补器逻辑被安装在该插入器板上。
37.如权利要求33的总线修补器,还包括:
该修补器逻辑连接到其上的第二卡;和
用于将该第二卡连接到该插入器卡上的装置。
38.如权利要求37的总线修补器,其中,用来将该第二卡连接到该插入器卡上的装置将它们以相互来说大体直角的角度连接。
39.一种在计算机系统中避免故障的方法,其中该计算机系统中的第一代理模块通过一条总线与第二代理模块通信,该方法包括下列步骤:
在该总线上观察通信中的一个故障标志;和
干扰该通信以防止一个故障事件的出现,否则将会出现与该故障标志一致的故障事件。
40.一种装置,包括:
一个第一电子部件,在其中做了一些改进以校正有一个故障标志的故障,该故障引起该装置在总线上的通信中的一个错误;和
一个第二电子部件,包括,
一个协议观测器,按照该总线的一个协议观测该通信,和
一个状态机,用来观测该故障标志并用来表明已观测到该故障标记,从而在表明出现故障标志而未出现错误时确认该修改的正确性。
41.一个分析与第二电子设备通过总线通信的第一电子设备的功能正确性的方法,包括以下步骤:
识别在该总线上的第一个通信中的一个第一故障;
在一个修补器的可编程存储装置中存储该第一故障的第一故障标志;
重复该第一通信;
检测该第一故障标志;
响应于该检测步骤,干扰该第一通信以避免该第一故障;并
验证该第一故障不出现在所干扰的第一通信中。
42.如权利要求41的方法,还包括以下步骤:
在该验证步骤之后,识别若无该干扰步骤,将被该第一故障所隐藏的第二故障。
43.如权利要求42的方法,还包括以下步骤:
在一次或多次重复寻找隐藏在阻塞故障之后的故障以后,改进该第一电子设备以校正一个阻塞故障及隐藏在该阻塞故障后的故障。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/607,943 US5819027A (en) | 1996-02-28 | 1996-02-28 | Bus patcher |
US08/607,943 | 1996-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1220746A true CN1220746A (zh) | 1999-06-23 |
CN1105359C CN1105359C (zh) | 2003-04-09 |
Family
ID=24434359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97193980A Expired - Fee Related CN1105359C (zh) | 1996-02-28 | 1997-02-26 | 总线修补器 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5819027A (zh) |
CN (1) | CN1105359C (zh) |
AU (1) | AU2058297A (zh) |
DE (1) | DE19781620B4 (zh) |
GB (2) | GB2351424B (zh) |
WO (1) | WO1997032255A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608919A (zh) * | 2011-04-18 | 2014-02-26 | 摩根/韦斯科技有限公司 | 具有外围电路的主板上方中介层 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819027A (en) * | 1996-02-28 | 1998-10-06 | Intel Corporation | Bus patcher |
US5951661A (en) * | 1997-08-15 | 1999-09-14 | Compaq Computer Corporation | Bus protocol violation monitor systems and methods |
US6904480B1 (en) | 1997-12-17 | 2005-06-07 | Intel Corporation | Testing a bus using bus specific instructions |
WO2000051000A1 (fr) * | 1999-02-24 | 2000-08-31 | Hitachi, Ltd. | Systeme informatique et procede pour gerer les perturbations affectant un systeme informatique |
GB2367646B (en) * | 2000-10-03 | 2002-11-20 | Sun Microsystems Inc | Resource access control |
GB2367647B (en) * | 2000-10-03 | 2002-11-20 | Sun Microsystems Inc | Resource access control for a processor |
GB2367648B (en) * | 2000-10-03 | 2002-08-28 | Sun Microsystems Inc | Multiple trap avoidance mechanism |
GB2367645B (en) * | 2000-10-03 | 2002-11-20 | Sun Microsystems Inc | Memory access control |
US6826639B2 (en) * | 2001-07-27 | 2004-11-30 | Computer Access Technology Corporation | Hierarchical display of multilevel protocol for communication data |
US7000065B2 (en) * | 2002-01-02 | 2006-02-14 | Intel Corporation | Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers |
US7152167B2 (en) * | 2002-12-11 | 2006-12-19 | Intel Corporation | Apparatus and method for data bus power control |
GB0228960D0 (en) * | 2002-12-11 | 2003-01-15 | Mirada Solutions Ltd | Improvements in or relating to processing systems |
US7216240B2 (en) * | 2002-12-11 | 2007-05-08 | Intel Corporation | Apparatus and method for address bus power control |
US20040230188A1 (en) * | 2003-05-12 | 2004-11-18 | Iulian Cioanta | Treatment catheters with thermally insulated regions |
US20050228926A1 (en) * | 2004-04-05 | 2005-10-13 | Smith Zachary S | Virtual-bus interface and associated system and method |
WO2006125066A2 (en) * | 2005-05-18 | 2006-11-23 | Richard Paschke | System and method for dynamic control of ultrasonic magnetostrictive dental scaler |
US7529955B2 (en) * | 2005-06-30 | 2009-05-05 | Intel Corporation | Dynamic bus parking |
FR2888433A1 (fr) * | 2005-07-05 | 2007-01-12 | St Microelectronics Sa | Protection d'une quantite numerique contenue dans un circuit integre comportant une interface jtag |
CN100511162C (zh) * | 2006-09-29 | 2009-07-08 | 华为技术有限公司 | 一种隔离总线故障的方法、装置与一种单板 |
US7970971B2 (en) * | 2007-01-30 | 2011-06-28 | Finisar Corporation | Tapping systems and methods |
ATE511676T1 (de) * | 2007-11-19 | 2011-06-15 | Rambus Inc | Scheduling auf der basis eines turnaround- ereignisses |
US8949545B2 (en) * | 2008-12-04 | 2015-02-03 | Freescale Semiconductor, Inc. | Memory interface device and methods thereof |
US9018887B2 (en) | 2010-04-01 | 2015-04-28 | Westdale Holdings, Inc. | Ultrasonic system controls, tool recognition means and feedback methods |
JP5932146B2 (ja) * | 2013-05-20 | 2016-06-08 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ピーシーアイエクスプレスのエンドポイントデバイスにアクセスするための方法、コンピューターシステム、および、装置 |
WO2017131694A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Printed circuit boards |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US527218A (en) | 1894-10-09 | Erford | ||
US5179696A (en) * | 1987-07-24 | 1993-01-12 | Nec Corporation | Generator detecting internal and external ready signals for generating a bus cycle end signal for microprocessor debugging operation |
US5086500A (en) | 1987-08-07 | 1992-02-04 | Tektronix, Inc. | Synchronized system by adjusting independently clock signals arriving at a plurality of integrated circuits |
US5142673A (en) * | 1989-12-22 | 1992-08-25 | Bull Hn Information Systems Inc. | Bus monitor with dual port memory for storing selectable trigger patterns |
US5319776A (en) * | 1990-04-19 | 1994-06-07 | Hilgraeve Corporation | In transit detection of computer virus with safeguard |
EP0453268B1 (en) * | 1990-04-20 | 1997-10-22 | Hitachi, Ltd. | A microprocessor for inserting a bus cycle to output an internal information for an emulation |
US5271020A (en) * | 1990-12-21 | 1993-12-14 | Intel Corporation | Bus stretching protocol for handling invalid data |
US5220662A (en) * | 1991-03-28 | 1993-06-15 | Bull Hn Information Systems Inc. | Logic equation fault analyzer |
US5423050A (en) | 1991-11-27 | 1995-06-06 | Ncr Corporation | Intermodule test across system bus utilizing serial test bus |
US5555382A (en) * | 1992-04-24 | 1996-09-10 | Digital Equipment Corporation | Intelligent snoopy bus arbiter |
US5504689A (en) | 1993-12-16 | 1996-04-02 | Dell Usa, L.P. | Apparatus and method for testing computer bus characteristics |
US5548733A (en) * | 1994-03-01 | 1996-08-20 | Intel Corporation | Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system |
US5535345A (en) * | 1994-05-12 | 1996-07-09 | Intel Corporation | Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed |
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
GB2292470A (en) * | 1994-08-19 | 1996-02-21 | Advanced Risc Mach Ltd | Rom patching |
US5555372A (en) * | 1994-12-21 | 1996-09-10 | Stratus Computer, Inc. | Fault-tolerant computer system employing an improved error-broadcast mechanism |
KR0149891B1 (ko) | 1994-12-22 | 1999-05-15 | 윤종용 | 버스상태분석기 및 그 내부버스시험방법 |
US5701409A (en) | 1995-02-22 | 1997-12-23 | Adaptec, Inc. | Error generation circuit for testing a digital bus |
US5752035A (en) | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5621900A (en) * | 1995-05-17 | 1997-04-15 | Intel Corporation | Method and apparatus for claiming bus access from a first bus to a second bus prior to the subtractive decode agent claiming the transaction without decoding the transaction |
US5748983A (en) | 1995-06-07 | 1998-05-05 | Advanced Micro Devices, Inc. | Computer system having a dedicated multimedia engine and multimedia memory having arbitration logic which grants main memory access to either the CPU or multimedia engine |
US5696910A (en) | 1995-09-26 | 1997-12-09 | Intel Corporation | Method and apparatus for tracking transactions in a pipelined bus |
US5819027A (en) * | 1996-02-28 | 1998-10-06 | Intel Corporation | Bus patcher |
US5802317A (en) | 1996-09-04 | 1998-09-01 | Motorola, Inc. | Electronic circuit having phased logic busses for reducing electromagnetic interference |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US5938777A (en) | 1997-07-31 | 1999-08-17 | Advanced Micro Devices, Inc. | Cycle list based bus cycle resolution checking in a bus bridge verification system |
-
1996
- 1996-02-28 US US08/607,943 patent/US5819027A/en not_active Expired - Lifetime
-
1997
- 1997-02-26 GB GB0023821A patent/GB2351424B/en not_active Expired - Fee Related
- 1997-02-26 AU AU20582/97A patent/AU2058297A/en not_active Abandoned
- 1997-02-26 DE DE19781620T patent/DE19781620B4/de not_active Expired - Fee Related
- 1997-02-26 CN CN97193980A patent/CN1105359C/zh not_active Expired - Fee Related
- 1997-02-26 GB GB9817415A patent/GB2325382B/en not_active Expired - Fee Related
- 1997-02-26 WO PCT/US1997/003044 patent/WO1997032255A1/en active Application Filing
-
1998
- 1998-09-17 US US09/156,179 patent/US6463554B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608919A (zh) * | 2011-04-18 | 2014-02-26 | 摩根/韦斯科技有限公司 | 具有外围电路的主板上方中介层 |
CN103608919B (zh) * | 2011-04-18 | 2016-10-26 | 摩根/韦斯科技有限公司 | 具有外围电路的主板上方中介层 |
Also Published As
Publication number | Publication date |
---|---|
GB2351424A (en) | 2000-12-27 |
DE19781620T1 (de) | 1999-03-18 |
US5819027A (en) | 1998-10-06 |
GB2325382A (en) | 1998-11-18 |
US6463554B1 (en) | 2002-10-08 |
CN1105359C (zh) | 2003-04-09 |
GB2351424B (en) | 2001-02-07 |
AU2058297A (en) | 1997-09-16 |
WO1997032255A1 (en) | 1997-09-04 |
DE19781620B4 (de) | 2005-09-08 |
GB2325382B (en) | 2000-11-22 |
GB9817415D0 (en) | 1998-10-07 |
GB0023821D0 (en) | 2000-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1105359C (zh) | 总线修补器 | |
US5644470A (en) | Autodocking hardware for installing and/or removing adapter cards without opening the computer system cover | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
CN102087621B (zh) | 一种具有自诊断功能的处理器装置 | |
US6760868B2 (en) | Diagnostic cage for testing redundant system controllers | |
US5815647A (en) | Error recovery by isolation of peripheral components in a data processing system | |
EP0415550A2 (en) | Apparatus and method for documenting faults in computing modules | |
WO1997046941A9 (en) | Digital data processing methods and apparatus for fault isolation | |
CN100511148C (zh) | 一种cpu系统的启动方法及系统 | |
US20030208654A1 (en) | Computer system architecture with hot pluggable main memory boards | |
EP0979451A1 (en) | Digital data processing methods and apparatus for fault isolation | |
US20090063780A1 (en) | Data processing system and method for monitoring the cache coherence of processing units | |
CN1264082A (zh) | 具有简化电源的低功率模式计算机 | |
US6158015A (en) | Apparatus for swapping, adding or removing a processor in an operating computer system | |
US6108732A (en) | Method for swapping, adding or removing a processor in an operating computer system | |
CN100530146C (zh) | Bios在线烧录方法 | |
CN110096291A (zh) | 电源管理芯片升级电路、方法及网络设备 | |
EP0772134A1 (en) | Adapter card slot isolation for hot plugging | |
CN103778968A (zh) | 结合多张快闪记忆卡的固态硬盘的检测装置及其方法 | |
US5751641A (en) | Microprocessor memory test circuit and method | |
CN100462946C (zh) | Bios在线烧录系统 | |
US5712822A (en) | Microprocessor memory test circuit and method | |
US20050132110A1 (en) | PCI validation | |
CN101189577B (zh) | 通过自动改变索引来访问配置寄存器的方法和装置 | |
US6901344B2 (en) | Apparatus and method for verification of system interconnect upon hot-plugging of electronic field replaceable units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030409 Termination date: 20130226 |