CN1932781B - 用于数据处理的系统和方法 - Google Patents

用于数据处理的系统和方法 Download PDF

Info

Publication number
CN1932781B
CN1932781B CN2006100959837A CN200610095983A CN1932781B CN 1932781 B CN1932781 B CN 1932781B CN 2006100959837 A CN2006100959837 A CN 2006100959837A CN 200610095983 A CN200610095983 A CN 200610095983A CN 1932781 B CN1932781 B CN 1932781B
Authority
CN
China
Prior art keywords
manager
hanging
assembly
processing unit
suspension
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.)
Active
Application number
CN2006100959837A
Other languages
English (en)
Other versions
CN1932781A (zh
Inventor
普拉维恩·S·雷迪
本吉曼·L·古德曼
小詹姆斯·S·菲尔兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1932781A publication Critical patent/CN1932781A/zh
Application granted granted Critical
Publication of CN1932781B publication Critical patent/CN1932781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理系统和方法。该系统包括多个处理单元,其中至少一个处理单元进一步包括多个组件。所述组件包括:两个或更多处理器核;高速缓存器阵列;处理器核主控器,耦合到两个或更多处理器核当中的至少一个处理器核,用于为至少一个处理器核所发出的数据访问请求提供服务;高速缓存窥探器,耦合到高速缓存器阵列,用于为其它数据访问请求提供服务,其中处理器核主控器和高速缓存窥探器为访问高速缓存器阵列而竞争;以及局部挂起管理器,用于确定至少一个组件是否已经进入挂起条件。局部挂起管理器进一步包括调节管理器,用于响应于局部挂起管理器确定多个组件当中的至少一个组件已经进入挂起条件,来调节处理单元性能。

Description

用于数据处理的系统和方法
技术领域
本发明一般涉及数据处理系统领域。更具体地,本发明涉及控制数据处理系统中的数据处理流。另外更具体地,本发明涉及用于从数据处理系统中的挂起(hang)条件恢复的系统和方法。
背景技术
设计多处理器(MP)数据处理系统的最大挑战之一在于:确定如何有效地同步和仲裁对诸如系统存储器和高速缓存器的资源的访问。共享资源消除了对于每个处理单元或者其他访问资源的请求者要复制该资源或者存储在其中的数据或指令的需要。
正如本领域技术人员所意识到的,在MP数据处理系统中用来共享资源的一个普通解决方案包括阻塞算法。通常,当第二请求者正在访问共享资源(例如,系统存储器、高速缓存器行等)时,利用一个锁来阻塞第一请求者访问该共享资源。当第一请求者等待访问该共享资源时,该第一请求者(例如,处理器核、处理器核主控器(master)、高速缓存窥探器(snooper)等)被描述为处于“挂起条件”。
不断重试对暂时不能访问的共享资源的访问请求消耗了功率和系统资源,而这些功率和系统资源原本是可另外用于执行有用工作的。因此,需求一种用于从数据处理系统中的挂起条件恢复的系统和方法。
发明内容
本发明的目的在于提供一种用于从数据处理系统中的挂起条件恢复的数据处理系统和方法。
本发明包括但不限于一种用于从数据处理系统中的挂起条件恢复的数据处理系统、方法和计算机可读介质。该数据处理系统包括耦合的处理单元的集合。所述处理单元包括处理单元组件的集合,例如两个或更多处理核以及高速缓存器阵列、处理器核主控器、高速缓存窥探器和局部挂起管理器,它们通过互连而耦合。
该处理器核主控器耦合到所述两个或更多处理核当中的至少一个处理核,并且为由所述至少一个处理核发出的数据访问请求提供服务。该高速缓存窥探器耦合到该高速缓存器阵列,并且为其他数据访问请求提供服务。该处理器核主控器和高速缓存窥探器为访问高速缓存器阵列而竞争。该局部挂起管理器确定处理单元组件的集合当中的至少一个组件是否已经进入挂起条件。如果该局部挂起管理器确定至少一个组件已经进入挂起条件,则调节(throttle)管理器调节该处理单元的性能,以尝试使所述至少一个组件退出挂起条件。通过改变处理单元组件的集合的数据访问请求发出率,实现性能调节。
主挂起管理器(由来自脉冲发生器的周期性挂起脉冲促使)向数据处理系统内的局部挂起管理器发送挂起数据包,以促使局部挂起管理器来确定任何处理单元组件是否已经进入挂起条件.脉冲发生器还生成一个早先退出脉冲,以促使主挂起管理器向局部挂起管理器发出另一个挂起数据包,来确定处理单元组件的集合当中的所述至少一个组件是否已经退出挂起条件.
具体地,根据本发明的一方面,提供一种数据处理系统,该系统可以包括:多个处理单元,其中所述多个处理单元中的至少一个处理单元进一步包括多个组件。所述组件包括:两个或更多处理器核;高速缓存器阵列;处理器核主控器,耦合到所述两个或更多处理器核当中的至少一个处理器核,用于为所述至少一个处理器核所发出的数据访问请求提供服务;高速缓存窥探器,耦合到所述高速缓存器阵列,用于为其它数据访问请求提供服务,其中所述处理器核主控器和所述高速缓存窥探器为访问所述高速缓存器阵列而竞争;以及局部挂起管理器,用于确定所述多个组件当中的至少一个组件是否已经进入挂起条件。所述局部挂起管理器进一步包括:调节管理器,用于响应于所述局部挂起管理器确定所述多个组件当中的所述至少一个组件已经进入挂起条件,来调节处理单元性能。
根据本发明的另一方面,提供一种数据处理方法,用在上述数据处理系统中。所述方法可以包括:局部挂起管理器询问处理单元内的多个组件,以确定所述多个组件当中的至少一个组件是否已经进入挂起条件;以及响应于确定所述多个组件当中的所述至少一个组件已经进入所述挂起条件,调节处理单元性能。
本发明的上述特征以及另外的目的、特征和优势将在以下的详细描述中变得显而易见。
附图说明
在所附权利要求中阐明了被认为是本发明所特有的新颖特征。然而,通过参考以下结合附图阅读的说明性实施例的详细说明,将更好地理解本发明本身、以及其使用的优选方式、进一步的目的和优势。
其中:
图1是可以实现本发明的优选实施例的示例性处理单元;
图2是由(图1的)多个处理单元形成的示例性数据处理系统,其中可以实现本发明的优选实施例;
图3是时间-空间图,描述了根据本发明优选实施例在图2中所描述的数据处理系统的互连架构上的示例性操作;
图4A是状态图,描述了根据本发明优选实施例的示例性主挂起管理器的操作;以及
图4B是状态图,描述了根据本发明优选实施例在示例性主挂起管理器、示例性局部挂起管理器以及耦合到该局部挂起管理器的内部处理单元组件之间的相互作用。
具体实施方式
现在参照附图,特别是参照图1,说明根据本发明的处理单元100的示例性实施例的高级框图。在所描述的实施例中,处理单元100是单个集成电路,包括两个处理器核102a、102b,用于独立地处理指令和数据。每个处理器核102至少包括一个用于对执行的指令进行获取和排序的指令排序单元(ISU)104,以及一个或多个用于执行指令的执行单元106。由执行单元106执行的指令可以包括例如定点和浮点运算指令、逻辑指令以及请求对存储器块进行读和写访问的指令。
每个处理器核102a、102b的操作由多级易失性存储器层级结构支持,所述多级易失性存储器层级结构在其最低级具有一个或多个共享系统存储器132(在图1中仅示出了其中的一个共享系统存储器),在其较高级具有一个或多个高速缓存器级。正如所描述的,处理单元100包括集成的存储控制器(IMC)124,该IMC 124响应于从处理器核102a、102b接收的请求和由窥探器126在互连架构上窥探的操作,来控制对系统存储器132进行的读和写访问。
在本说明性的实施例中,处理单元100的高速缓存器层级结构包括在每个处理器核102a,102b内的写直达(store-through)1级(L1)高速缓存器108,以及耦合到每个处理器核102a和102b的2级(L2)高速缓存器110a、110b。每个L2高速缓存器110包括L2阵列和目录114、处理器核主控器112和高速缓存窥探器116。处理器核主控器112响应于从相关联的处理器核102接收的存储器访问(以及其他)请求,启动互连架构上的事务并且访问L2阵列和目录114。高速缓存窥探器116检测互连架构上的操作,提供适当的响应,并且执行该操作所要求的任何对L2阵列和目录114的访问。尽管所示出的高速缓存器层级结构包括仅两个高速缓存器级,但本领域技术人员会意识到,可选的实施例可以包括片上或片外的在线或后备(lookaside)的高速缓存器附加级(L3,L4等),其可以完全包括、部分包括或者不包括较高级高速缓存器的内容。
正如图1中进一步所示的,处理单元100包括集成的互连逻辑120,通过该集成的互连逻辑120,处理单元100可以作为较大数据处理系统的一部分耦合到互连架构。在所描述的实施例中,互连逻辑120支持任意数目t1个第一排(tier)互连链路,在这种情况中,该第一排互连链路包括入站和出站X、Y和Z链路。互连逻辑120还支持任意数目t2个第二排链路,在图1中表示为入站和出站A和B链路。利用所述第一和第二排链路,每个处理单元100可以与t1+t2(在本情况中为5)个其他处理单元100耦合,用于双向通信。互连逻辑120包括请求逻辑121a、部分响应逻辑121b、组合响应逻辑121c和数据逻辑121d,用于在操作的不同阶段期间处理和转发信息。另外,互连逻辑120包括配置寄存器123,该配置寄存器123包括多个用来配置处理单元100的模式位。
每个处理单元100还包括响应逻辑122的实例,其实现分布式一致性信令机制的一部分,其中所述分布式一致性信令机制维护处理单元100的高速缓存器层级结构和其他处理单元100的高速缓存器层级结构之间的高速缓存器一致性。最后,每个处理单元100包括集成的I/O(输入/输出)控制器128,它支持诸如I/O设备130的一个或多个I/O设备的连接。I/O控制器128还包括I/O主控器138,用于响应于从I/O设备130接收到的存储器访问(以及其他)请求来启动互连架构上的事务。在I/O控制器128中还包括I/O窥探器140,它检测互连架构上的操作,提供适当的响应,并且执行所述操作所要求的任何I/O访问。
耦合到互连逻辑120的是主挂起管理器,这里结合图2、4A-4B更详细地讨论该主挂起管理器。主挂起管理器134还包括脉冲发生器136,它生成周期性挂起脉冲和早先退出脉冲,这里结合图4A-4B对二者进行更详细地讨论。经由处理单元互连142耦合到互连逻辑120的是局部挂起管理器150。局部挂起管理器150还包括调节管理器152和挂起状态计数器154,这里将更详细地对二者进行讨论。
在本发明的优选实施例中,主挂起管理器134周期性地(如由脉冲发生器136促使的那样)向每个处理单元100并且最优地向诸如系统存储器132和/或I/O设备130的其他数据处理系统组件发送挂起数据包.挂起数据包表示对处理单元100内的接收者局部挂起管理器150进行的询问,其中该询问涉及处理单元100内的任何组件是否已经进入挂起条件.
现在参照图2,描述根据本发明由多个处理单元100形成的数据处理系统200的示例性实施例的框图。正如所示的那样,数据处理系统200包括八个处理节点202a0-202d0和202a1-202d1,其中在所描述的实施例中,将每个处理节点实现为包括含有四个处理单元100的封装的多芯片模块(MCM)。正如所示出的,通过处理单元的X、Y和Z链路,耦合每个处理节点202内的处理单元100,用于点到点通信。通过处理单元的A和B链路,每个处理单元100可以进一步耦合到在两个不同处理节点202中的处理单元100,用于点到点通信。尽管在图2中用双箭头示出,但应理解到,优选地(但不是必需的)将每对X、Y、Z、A和B链路实现为两个单向链路,而不是一个双向链路。同样,处理单元100a包括主挂起管理器134,它向数据处理系统200内的其他处理单元发送挂起数据包,以确定处理单元100中任何一个是否已经进入挂起条件。在本发明的另一个实施例中,取决于所期望的挂起数据包以及响应的广播范围,每个处理节点或处理单元100可以包括主挂起管理器134。
应当意识到的是,所描述的拓扑是代表性的而不是对实施本发明的数据处理系统拓扑的详尽枚举,并且可以是其他拓扑。在这样的可选拓扑中,例如,耦合到每个处理单元100的第一排和第二排链路数目可以是任意数目的,并且每排内的处理节点202的数目不必等于每个处理节点202的处理单元100的数目。
即使完全按照图2所示的方式连接,所有处理节点202也不必向所有其他处理节点202传送每个操作。特别地,正如上面所指出的,处理单元100可以在限于其处理节点202的范围内广播操作,或者在更大的范围内,诸如包括所有处理节点202的系统宽范围内广播操作。
现在参照图3,描述图2的数据处理系统200的互连架构上的示例性操作的时间-空间图。当主控器300(例如,L2高速缓存器110的处理器核主控器112或者I/O主控器138)在互连架构上发出请求302时,操作开始。优选地,请求302至少包括事务类型和资源标识符(例如,真实地址),其中所述事务类型表示所期望的访问的类型,以及所述资源标识符表示该请求所要访问的资源。优选地,普通的请求类型包括以下在表I中列出的类型。
表I
 请求   描述
 READ(读)   为询问目的而请求存储器块的映像的副本
 RWITM(意图在于修改的读)   请求存储器块的映像的唯一副本,旨在更新(修改)它,并且如果有的话,则要求毁灭其他副本
 请求   描述
 DCLAIM(数据要求)   请求授权来将现存储器块的现有只询问副本提升为唯一副本,旨在更新(修改)它,并且如果有的话,则要求毁灭其他副本
 DCBZ(数据高速缓存器块零)   请求授权来创建存储器块的新的唯一副本,而与其当前状态无关,并且随后修改其内容;如果有的话,则要求毁灭其他副本
 CASTOUT(丢弃)   从较高级存储器到较低级存储器复制存储器块的映像,以准备毁灭较高级副本
  WRITE(写)   请求授权来创建存储器块的新的唯一副本,而与其当前状态无关,并且立即从较高级存储器向较低级存储器复制存储器块的映像,以准备毁灭较高级副本
  PARTIAL WRITE(部分写)   请求授权来创建部分存储器块的新的唯一副本,而与其当前状态无关,并且立即从高高级存储器向较低级存储器复制该部分存储器块的映像,以准备毁灭高层副本
请求302由分布在整个数据处理系统200中的窥探器304接收,窥探器304例如为L2高速缓存器110的高速缓存窥探器116以及IMC124的窥探器126。通常,在一些例外的情况下,在与请求302的处理器核主控器112相同的L2高速缓存器110中的高速缓存窥探器116不窥探请求302(即,通常没有自窥探),因为只有在不能通过处理单元100内部地为请求302提供服务时,才在互连架构上传送请求302。接收并处理请求302的窥探器304的每一个提供相应的部分响应306,该部分响应306表示至少该窥探器304对请求302的响应。IMC 124内的窥探器126例如基于窥探器126是否负责该请求地址以及它是否具有可用于为该请求提供服务的资源,来确定部分响应306的提供。L2高速缓存器110的高速缓存窥探器116可以基于例如其L2高速缓存器目录114的可用性、高速缓存窥探器116内的窥探逻辑实例对于处理该请求的可用性、以及L2高速缓存器目录114中与请求地址相关联的一致性状态,来确定其部分响应306。
窥探器304的部分响应306分阶段地或者一次全部地通过响应逻辑122的一个或者多个实例进行逻辑组合,以确定对请求302的组合响应(CR)310。在之后将要呈现的一个优选实施例中,负责生成组合响应310的响应逻辑122的实例位于合有主控器300的处理单元100中,其中该主控器300发出请求302。响应逻辑122经由互连架构向主控器300和窥探器304提供组合响应310,以表示对请求302的响应(例如,成功、失败、重试等等)。如果CR 310表示请求302的成功,则CR 310可以表示例如所请求的存储器块的数据源、所请求的存储器块将要被主控器300高速缓存的高速缓存器状态、以及是否需要“清除”操作,其中“清除”操作使在一个或多个L2高速缓存器110中所请求的存储器块无效.
响应于接收到组合响应310,一个或多个主控器300和窥探器304通常执行一个或多个操作,以便为请求302提供服务。这些操作可以包括向主控器300提供数据,使一个或多个L2高速缓存器110中高速缓存的数据的一致性状态无效或者对其进行更新,执行丢弃操作,将数据写回到系统存储器132,等等。如果请求302要求,则可以在通过响应逻辑122生成组合响应310之前或者之后,将所请求的存储器块或目标存储器块传送给主控器300,或者从主控器300传送所请求的存储器块或目标存储器块。
在以下描述中,将参照窥探器关于通过请求指定的请求地址是最高一致性点(HPC)、最低一致性点(LPC)还是两者都不是,来描述窥探器304对请求302的部分响应306以及响应于请求302由窥探器304所执行的操作和/或其组合响应310。这里将LPC定义为存储器设备或I/O设备,用作对存储器块的储存库。在不存在对于存储器块的HPC时,LPC保持存储器块的真实映像,并且有权准予或拒绝对生成存储器块的附加高速缓存副本的请求。对于在图1和图2的数据处理系统实施例中的典型请求,LPC将是对于保持所参考存储器块的系统存储器132的存储控制器124。这里将HPC定义为唯一标识的设备,其对存储器块(其可以与LPC处的对应存储器块一致,也可以不与它一致)的真实映像进行高速缓存,并且有权准予或拒绝对修改存储器块的请求。描述性地,响应于不修改存储器块的操作,HPC还可以向请求者提供存储器块的副本。这样,对于在图1和图2的数据处理系统实施例中的典型请求,如果有的话,HPC将是L2高速缓存器110。尽管可以使用其他指示符表示对于存储器块的HPC,但是,如果有的话,本发明的优选实施例利用在L2高速缓存器110的L2高速缓存器目录114内的所选高速缓存器一致性状态来表示对于存储器块的HPC。
仍参照图3,如果必要,对于请求302中所参考的存储器块的HPC(如果有的话)或者存储器块的LPC(在不存在HPC时)具有响应于请求302来保护存储器块所有权转移的责任。在图3所示的示例性场景中,在保护窗口312a期间以及随后的窗口扩展312b期间,在对于通过请求302的请求地址所指定的存储器块的HPC处((或者在不存在HPC时,在LPC处)的窥探器304n保护所请求的存储器块的所有权转移到主控器300,其中该保护窗口312a从窥探器304n确定其部分响应306的时间扩展直到窥探器304n接收到组合响应310,以及该随后的窗口扩展312b是在窥探器304n接收到组合响应310之后扩展的一个可编程的时间。在保护窗口312a和窗口扩展312b期间,窥探器304n通过提供部分响应306来保护向指定相同请求地址的其他请求的所有权转移,其中该其他请求阻止其他主控器获得所有权(例如,重试部分响应)直到所有权成功地转移给主控器300。在接收到组合响应310之后,主控器300同样发出保护窗口313,以保护其在请求302中请求的存储器块的所有权。
由于窥探器304都具有用于处理上述CPU和I/O请求的有限资源,所以可以有若干不同级的部分响应和对应的CR.例如,如果负责所请求的存储器块的存储控制器124内的窥探器126具有可用于处理请求的队列,则窥探器126可以利用表示它能够用作对于请求的LPC的部分响应来做出响应.另一方面,如果窥探器126不具有可用来处理该请求的队列,则窥探器126可以利用这样的部分响应来做出相应,即该部分响应表示窥探器126是对于存储器块的LPC,但目前不能够为该请求提供服务.类似地,在L2高速缓存器110中的高速缓存窥探器116可以要求窥探逻辑的可用实例并且访问L2高速缓存器目录114,以便处理请求.不存在对这些资源任意一个(或所有)的访问将导致这样的部分响应(以及对应的CR),即该部分响应利用信号通知由于不存在所请求的资源所以不能为该请求提供服务.
再参照图1和图2,主挂起管理器134向数据处理系统200询问可能已经进入挂起条件的任何处理单元100或者其他组件。在一个实施例中,主挂起管理器134通过在互连架构上广播作为请求302的挂起数据包,向数据处理系统200询问挂起条件下的组件。
在示例性操作场景中,处理器核102a可以要求对L2阵列和目录144a内存储的特定存储器块进行访问。为了访问存储器块,处理器核102a发出对处理器核主控器112a的访问请求,其中处理器核主控器112a寻求对该请求的服务。然而,如果所请求的存储器块被高速缓存窥探器116a(其响应于来自另一个处理器核102的访问请求,正在访问特定高速缓存器行)锁定,则处理器核主控器112a将不能够访问在L2阵列和目录114a内的存储器块。当处理单元100内的局部挂起管理器150接收来自主挂起管理器134的挂起数据包时,局部挂起管理器150询问其处理单元100内的所有组件(例如,处理器核主控器112a、高速缓存窥探器116a等等),以确定任何组件是否已经进入挂起条件。在本示例中,处理器核主控器112a将把挂起条件报告给局部挂起管理器150,因为对特定存储器块的访问请求被高速缓存窥探器116a所阻塞。局部挂起管理器150将通过把组件接收到响应于组件发出的数据访问请求的重试信号的次数与一个预定阈值相比较,确定组件已经进入挂起条件。
响应于所报告的挂起条件,局部挂起管理器150递增挂起状态计数器154中的挂起状态,其中状态计数器154促使调节管理器152通过改变处理核主控器112a和高速缓存窥探器116a的请求发出率,调节处理单元100的性能。改变请求发出率尝试断开在处理器核主控器112a和高速缓存窥探器116a之间的“活锁(live lock)”,使得它们对特定存储器块的访问请求将不再重合。局部挂起管理器150还向主挂起管理器134发送一个通知,该通知指示处理器核主控器112a已经进入挂起条件。
响应于接收到处理器核主控器112a已进入挂起条件的通知,主挂起管理器134发送第二挂起数据包(正常或早先退出,这里结合图4A和4B更详细地对其进行讨论),该第二挂起数据包指示局部挂起管理器134递增挂起状态计数器154的值,并且进一步经由调节管理器152调节处理单元100的性能,以尝试使处理器核主控器112a退出挂起条件。当接收到第二挂起数据包时,局部挂起管理器150再次检查处理单元100中的所有组件的状态。如果处理器核主控器112a保持在挂起条件下,则局部挂起管理器134递增挂起状态计数器154的值,并且进一步经由调节管理器152调节处理单元100的性能,以尝试使处理器核主控器112a退出挂起条件。该过程继续直到处理器核主控器112a不再报告挂起条件。
图4A是状态图,说明根据本发明优选实施例的示例性主挂起管理器134的操作。该过程在状态400开始,状态400描述了主挂起管理器134确定是否从脉冲发生器136接收到周期性挂起脉冲。如果没有接收到周期性挂起脉冲,则该过程在状态400重复,正如箭头401所描述的那样。
如果已经接收到周期性挂起脉冲,则主挂起管理器134向数据处理系统200内的所有局部挂起管理器150发送挂起数据包,正如箭头403所说明的那样.该过程转变到状态402,该状态402描述了收集来自所有局部挂起管理器150的响应的主挂起管理器134.如果主挂起管理器134从来自所有局部挂起管理器150的组合响应确定在数据处理系统200中没有挂起,则正如箭头405所描述的那样,该过程返回到状态400.
如果主挂起管理器134根据来自所有局部挂起管理器150的组合响应确定在数据处理系统200中有挂起,则正如箭头407所描述的那样,主挂起管理器134进入早先退出状态,该早先退出状态包括等待来自脉冲发生器136的早先退出脉冲,正如状态404所说明的那样。优选地,比周期性挂起脉冲更频繁地(例如,具有较短的周期)生成早先退出脉冲。该早先退出脉冲使得主挂起管理器134能够通过发送指示局部挂起管理器150处理单元100已经进入挂起条件的早先退出数据包,以通过改变请求发出率调节相关组件(例如,前面示例中的处理器核主控器112a和高速缓存窥探器116a)的性能,来尝试使处理单元100(或其组件)退出挂起条件(箭头415)。
该过程转变到状态406,状态406描述了主挂起管理器406等待来自处于挂起条件的处理单元100的局部挂起管理器150的响应。如果来自局部挂起管理器150的响应指示挂起条件已经解除(箭头417),则该过程转回到状态400并且以重复方式继续。然而,如果来自局部挂起管理器150的响应是处理单元100仍保持在挂起条件(箭头413),则该过程返回到状态404。
图4B是状态图,该状态图描述了根据本发明优选实施例的处理单元10中的主挂起管理器134、局部挂起管理器150以及耦合到局部挂起管理器150的内部组件之间的相互作用。
该过程在状态420开始,状态420描述了局部挂起管理器150确定是否已经从主挂起管理器134接收到挂起数据包。如果没有接收到来自主挂起管理器134的挂起数据包,则该过程在状态420重复,正如箭头421所描述的那样。如果已经接收到来自主挂起管理器134的挂起数据包,则该过程转变到状态422,正如箭头423所说明的那样,其中局部挂起管理器150发出询问以确定处理单元100内的组件是否已经进入挂起条件。状态422描述了局部挂起管理器150等待来自处理单元100内组件的响应(挂起或没有挂起)。如果组件(例如,处理器核主控器112a、高速缓存窥探器116a等等)中没有一个进入挂起条件,则该过程转回到状态420,正如箭头427所说明的那样。如果至少一个组件已进入挂起条件,则局部挂起管理器150递增挂起状态计数器154中的挂起状态并且经由数据调节管理器152开始数据调节(箭头425),并且进到状态424。
状态424描述了局部挂起管理器150等待来自主挂起管理器134的正常或早先挂起数据包。该正常或早先挂起数据包使得主挂起管理器134能够指示局部挂起管理器150递增在挂起状态计数器154中的挂起状态,这就增加了由数据调节管理器152所施加的数据调节量,以尝试使处理单元100退出挂起条件。如果没有接收到来自主挂起管理器134的正常或早先挂起数据包(箭头431),则过程在状态424重复。
然而,如果已经接收到来自主挂起管理器134的正常或早先挂起数据包(箭头429),则该过程转变到状态426,状态426描述了局部挂起管理器150等待来自处理单元100内的组件的响应(挂起或没有挂起).如果处理单元100内的组件保持在挂起条件,则局部挂起管理器150向主挂起管理器134发送一个组件保持在挂起条件中并且递增挂起状态计数器154中的挂起状态的通知,这导致数据调节管理器152增加了数据调节率(箭头433).然后该过程在状态426重复.如果处理单元100没有组件保持在挂起条件中,则局部挂起管理器150向主挂起管理器134发送一个通知,该通知表示处理单元100内的组件没有一个保持在挂起条件中.该过程返回到状态420并且以重复方式进行.
正如所描述的那样,本发明包括但不限于一种用于从数据处理系统中的挂起条件恢复的系统和方法。该数据处理系统包括耦合的处理单元的集合。该处理单元包括处理单元组件的集合,该处理单元组件诸如为两个或更多处理核和高速缓存器阵列、处理器核主控器、高速缓存窥探器以及局部挂起管理器,所有这些组件通过互连而耦合。
该处理器核主控器耦合到两个或更多处理核当中的至少一个处理核,并且为至少一个处理核发出的数据访问请求提供服务。高速缓存窥探器耦合到高速缓存器阵列并且为其它数据访问请求提供服务。处理器核主控器和高速缓存窥探器为访问高速缓存器阵列而竞争。局部挂起管理器确定处理单元组件集合中的至少一个组件是否已经进入挂起条件。如果局部挂起管理器确定至少一个组件已经进入挂起条件,则调节管理器调节处理单元的性能,以尝试使该至少一个组件退出挂起条件。通过改变处理单元组件集合的数据访问请求发出率,实现性能调节。
主挂起管理器(由来自脉冲发生器的周期性挂起脉冲促使)向数据处理系统内的局部挂起管理器发送挂起数据包,以促使局部挂起管理器确定任何处理单元组件是否已经进入挂起条件。脉冲发生器还生成早先退出脉冲,以促使主挂起管理器向局部挂起管理器发出另一个挂起数据包,以确定处理单元组件集合中的该至少一个组件是否已经退出挂起条件。
而且,应理解到,可选地,本发明的至少一些方面可以在存储程序产品的计算机可读介质中实现。可以经由多种信号承载介质将定义本发明功能的程序传送给数据处理系统或计算机系统,该多种信号承载介质包括但不限于非可写存储介质(例如,CD-ROM)、可写存储介质(例如,软盘、硬盘驱动器、读/写CD-ROM、光介质)以及诸如包括以太网的计算机和电话网络的通信介质。因此应理解到,当携带或编码针对本发明中的方法功能的计算机可读指令时,这种信号承载介质代表了本发明的可选实施例。此外,应理解到,本发明可以通过这样的系统来实现,即该系统具有按照在此描述的硬件、软件或者软件和硬件的组合形式的装置或者它们的等价物。
尽管参照优选实施例具体地示出和说明了本发明,但本领域技术人员将理解到,在不偏离本发明的精神和范围的情况下,对其可以进行各种形式和细节上的改变。

Claims (14)

1.一种数据处理系统,包括:
多个处理单元,其中所述多个处理单元中的至少一个处理单元进一步包括多个组件,所述组件包括:
两个或更多处理器核;
高速缓存器阵列;
处理器核主控器,耦合到所述两个或更多处理器核当中的至少一个处理器核,用于为所述至少一个处理器核所发出的数据访问请求提供服务;
高速缓存窥探器,耦合到所述高速缓存器阵列,用于为其它数据访问请求提供服务,其中所述处理器核主控器和所述高速缓存窥探器为访问所述高速缓存器阵列而竞争;以及
局部挂起管理器,用于确定所述多个组件当中的至少一个组件是否已经进入挂起条件,其中所述局部挂起管理器进一步包括:
调节管理器,用于响应于所述局部挂起管理器确定所述多个组件当中的所述至少一个组件已经进入挂起条件,来调节处理单元性能。
2.根据权利要求1所述的数据处理系统,其中所述多个处理单元中的至少一个处理单元包括:
主挂起管理器,用于向所述局部挂起管理器发出至少一个挂起数据包,其中响应于接收到所述至少一个挂起数据包,所述局部挂起管理器确定所述多个组件当中的至少一个组件是否已经进入所述挂起条件。
3.根据权利要求2所述的数据处理系统,其中所述主挂起管理器进一步包括脉冲发生器,用于生成周期性挂起脉冲,以促使所述主挂起管理器向所述局部挂起管理器发送所述至少一个挂起数据包,其中所述周期性挂起脉冲具有第一周期。
4.根据权利要求3所述的数据处理系统,其中所述脉冲发生器向所述主挂起管理器生成一个早先退出脉冲,以将所述至少一个挂起数据包发送给所述局部挂起管理器,来确定所述多个组件当中的所述至少一个组件是否已经退出所述挂起条件,其中所述早先退出脉冲具有比所述第一周期短的第二周期。
5.根据权利要求2所述的数据处理系统,其中所述局部挂起管理器进一步包括:
挂起状态计数器,用于响应于所述局部挂起管理器从所述主挂起管理器接收到挂起数据包,来促使所述调节管理器进一步调节所述处理单元性能。
6.根据权利要求1所述数据处理系统,其中所述局部挂起管理器通过改变所述多个组件的数据访问请求发出率来调节处理单元性能。
7.根据权利要求1所述的数据处理系统,其中所述局部挂起管理器通过将所述多个组件当中的至少一个组件已经接收到响应于所述至少一个组件所发出的数据访问请求的重试信号的次数与一个预定阈值相比较,来确定所述至少一个组件是否已经进入挂起条件。
8.一种数据处理方法,用在根据权利要求1的数据处理系统中,所述方法包括:
局部挂起管理器询问处理单元内的多个组件,以确定所述多个组件当中的至少一个组件是否已经进入挂起条件;以及
响应于确定所述多个组件当中的所述至少一个组件已经进入所述挂起条件,调节处理单元性能。
9.根据权利要求8所述的方法,进一步包括:
主挂起管理器向所述局部挂起管理器发出至少一个挂起数据包,其中响应于接收到所述至少一个挂起数据包,所述局部挂起管理器确定所述多个组件当中的至少一个组件是否已经进入所述挂起条件。
10.根据权利要求8所述的方法,其中所述调节处理单元性能进一步包括:
改变所述至少一个处理单元的数据访问请求发出率。
11.根据权利要求8所述的方法,进一步包括:
通过将所述至少一个组件已经接收到响应于所述至少一个组件所发出的数据访问请求的重试信号的次数与一个预定阈值相比较,来确定所述至少一个组件是否已经进入所述挂起条件。
12.根据权利要求8所述的方法,进一步包括:
向主挂起管理器生成周期性挂起脉冲,以促使所述主挂起管理器向所述局部挂起管理器发送所述至少一个挂起数据包,来确定所述多个组件当中的至少一个组件是否已经进入所述挂起条件,其中所述周期性挂起脉冲具有第一周期长度。
13.根据权利要求8所述的方法,进一步包括:
向所述主挂起管理器生成早先退出脉冲,以促使所述主挂起管理器向所述局部挂起管理器发送所述至少一个挂起数据包,来确定所述多个组件当中的所述至少一个组件是否已经退出所述挂起条件,其中所述早先退出脉冲具有比所述第一周期短的第二周期。
14.根据权利要求8所述的方法,其中所述调节进一步包括:
改变所述多个组件的数据访问请求发出率。
CN2006100959837A 2005-09-13 2006-06-29 用于数据处理的系统和方法 Active CN1932781B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/225,639 2005-09-13
US11/225,639 US7484131B2 (en) 2005-09-13 2005-09-13 System and method for recovering from a hang condition in a data processing system

Publications (2)

Publication Number Publication Date
CN1932781A CN1932781A (zh) 2007-03-21
CN1932781B true CN1932781B (zh) 2010-05-12

Family

ID=37856714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100959837A Active CN1932781B (zh) 2005-09-13 2006-06-29 用于数据处理的系统和方法

Country Status (2)

Country Link
US (2) US7484131B2 (zh)
CN (1) CN1932781B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4841358B2 (ja) * 2006-08-18 2011-12-21 富士通株式会社 リクエスト送信制御装置およびリクエスト送信制御方法
US8006013B2 (en) * 2008-08-07 2011-08-23 International Business Machines Corporation Method and apparatus for preventing bus livelock due to excessive MMIO
US8260830B2 (en) * 2009-11-09 2012-09-04 Middlecamp William J Adapting a timer bounded arbitration protocol
US9052911B2 (en) * 2012-08-14 2015-06-09 Oracle International Corporation Mechanism for consistent core hang detection in a a processor core
KR101389976B1 (ko) * 2012-08-31 2014-05-07 주식회사 팬택 모바일 단말의 행 현상 관리 장치 및 방법
US9275429B2 (en) 2014-02-17 2016-03-01 Qualcomm Incorporated Device hang detection and recovery
US10938653B2 (en) 2015-04-21 2021-03-02 Arista Networks, Inc. System and method of updating a network
US10545753B2 (en) 2015-04-21 2020-01-28 Arista Networks, Inc. System and method of updating a network element
US9798549B1 (en) 2016-10-31 2017-10-24 International Business Machines Corporation Out-of-order processor that avoids deadlock in processing queues by designating a most favored instruction
KR20180062807A (ko) 2016-12-01 2018-06-11 삼성전자주식회사 시스템 인터커넥트 및 이를 포함하는 시스템 온 칩
US11520653B2 (en) 2020-10-15 2022-12-06 Nxp Usa, Inc. System and method for controlling faults in system-on-chip
US11797373B2 (en) 2021-12-13 2023-10-24 Nxp B.V. System and method for managing faults in integrated circuits
CN116028204B (zh) * 2022-05-16 2023-10-20 荣耀终端有限公司 进程管控方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1465013A (zh) * 2001-05-22 2003-12-31 皇家菲利浦电子有限公司 访问公共存储器的方法和系统
WO2003052587A3 (en) * 2001-12-14 2004-03-25 Koninkl Philips Electronics Nv Data processing system
CN1489077A (zh) * 2002-08-30 2004-04-14 ��ʽ����Ntt����Ħ 挂起服务恢复系统、恢复方法及装置、终端及计算机程序产品

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438709B2 (en) * 1997-09-18 2002-08-20 Intel Corporation Method for recovering from computer system lockup condition
US6128677A (en) * 1997-10-15 2000-10-03 Intel Corporation System and method for improved transfer of data between multiple processors and I/O bridges
US6453429B1 (en) * 1999-04-29 2002-09-17 International Business Machines Corporation Method and apparatus for bus hang detection and identification of errant agent for fail safe access to trapped error information
US6543002B1 (en) * 1999-11-04 2003-04-01 International Business Machines Corporation Recovery from hang condition in a microprocessor
JP4144986B2 (ja) * 1999-12-13 2008-09-03 富士通株式会社 情報処理装置、及び、トランザクション処理方法、プロセッサ、並びに、リトライ方法
US6636909B1 (en) * 2000-07-05 2003-10-21 Sun Microsystems, Inc. Adaptive throttling for fiber channel disks
KR100422451B1 (ko) * 2002-05-24 2004-03-11 삼성전자주식회사 온-다이 터미네이션 제어방법 및 그에 따른 제어회로
US7219264B2 (en) * 2003-05-09 2007-05-15 Tekelec Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition
US8250412B2 (en) * 2003-09-26 2012-08-21 Ati Technologies Ulc Method and apparatus for monitoring and resetting a co-processor
US7162666B2 (en) * 2004-03-26 2007-01-09 Emc Corporation Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks
US8190863B2 (en) * 2004-07-02 2012-05-29 Intel Corporation Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
KR100866927B1 (ko) * 2006-09-27 2008-11-04 주식회사 하이닉스반도체 온 다이 터미네이션 회로 및 그의 구동방법
KR100875673B1 (ko) * 2007-05-14 2008-12-24 주식회사 하이닉스반도체 온 다이 터미네이션 장치 및 이의 캘리브래이션 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1465013A (zh) * 2001-05-22 2003-12-31 皇家菲利浦电子有限公司 访问公共存储器的方法和系统
WO2003052587A3 (en) * 2001-12-14 2004-03-25 Koninkl Philips Electronics Nv Data processing system
CN1489077A (zh) * 2002-08-30 2004-04-14 ��ʽ����Ntt����Ħ 挂起服务恢复系统、恢复方法及装置、终端及计算机程序产品

Also Published As

Publication number Publication date
US20070061630A1 (en) 2007-03-15
CN1932781A (zh) 2007-03-21
US7886199B2 (en) 2011-02-08
US7484131B2 (en) 2009-01-27
US20090132791A1 (en) 2009-05-21

Similar Documents

Publication Publication Date Title
CN1932781B (zh) 用于数据处理的系统和方法
CN100495361C (zh) 维护存储器一致性的方法和系统
US8793442B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
JP5006348B2 (ja) 応答出力キャッシュに対するマルチキャッシュ協調
TWI393005B (zh) 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法
KR100548908B1 (ko) 중앙 집중형 스누프 필터링 방법 및 장치
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
CN100592269C (zh) 用于预测性选择预取操作的范围的数据处理系统和方法
US6859864B2 (en) Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US7502893B2 (en) System and method for reporting cache coherency state retained within a cache hierarchy of a processing node
CN103246614A (zh) 多处理器数据处理系统、高速缓存存储器及其方法
US7856535B2 (en) Adaptive snoop-and-forward mechanisms for multiprocessor systems
US7818509B2 (en) Combined response cancellation for load command
US20060265554A1 (en) Apparatus and method of controlling data sharing on a shared memory computer system
US8782347B2 (en) Controllably exiting an unknown state of a cache coherency directory
US20080109609A1 (en) Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection
US8285942B2 (en) Region coherence array having hint bits for a clustered shared-memory multiprocessor system
US20080109610A1 (en) Selective snooping by snoop masters to locate updated data
CN106227674A (zh) 缓存一致性
US11449489B2 (en) Split transaction coherency protocol in a data processing system
KR100300792B1 (ko) 공유 메모리 멀티프로세서용 계층적 버스 단순 코마 구조
US7343454B2 (en) Methods to maintain triangle ordering of coherence messages
KR20090053837A (ko) 자기 조화형 데이터를 이용하여 멀티프로세서 시스템의 캐시 코히어런스 오버헤드를 저감시키는 메카니즘 및 방법
US7958313B2 (en) Target computer processor unit (CPU) determination during cache injection using input/output (I/O) adapter resources

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