CN100568199C - 管理多处理器操作 - Google Patents

管理多处理器操作 Download PDF

Info

Publication number
CN100568199C
CN100568199C CNB2005800406226A CN200580040622A CN100568199C CN 100568199 C CN100568199 C CN 100568199C CN B2005800406226 A CNB2005800406226 A CN B2005800406226A CN 200580040622 A CN200580040622 A CN 200580040622A CN 100568199 C CN100568199 C CN 100568199C
Authority
CN
China
Prior art keywords
processor
cache line
shared storage
cache
shared
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.)
Expired - Fee Related
Application number
CNB2005800406226A
Other languages
English (en)
Other versions
CN101065736A (zh
Inventor
S·L·布林尼克
许育诚
L·米拉博
R·D·兰金
宋正中
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 CN101065736A publication Critical patent/CN101065736A/zh
Application granted granted Critical
Publication of CN100568199C publication Critical patent/CN100568199C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Saccharide Compounds (AREA)
  • Hardware Redundancy (AREA)

Abstract

在管理多处理器操作中,第一处理器重复读取高速缓存行,其中该高速缓存行高速缓存自该第一处理器和第二处理器二者所共享的资源中的共享存储器的行。依照高速缓存一致性协议,保持该共享存储器行与该高速缓存行之间的一致性。一方面,重复的高速缓存行读取占用了该第一处理器并且禁止该第一处理器访问该共享资源。另一方面,在该第二处理器完成涉及该共享资源的操作时,该第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器该共享资源可以被所述第一处理器访问。作为响应,所述第一处理器依照所述高速缓存一致性协议改变所述高速缓存行的状态,并且读取由所述第二处理器写入的数据。对其它实施例进行了描述并且提出了权利要求。

Description

管理多处理器操作
技术领域
本发明涉及管理多处理器操作。
背景技术
在某些计算环境中,为了存储设备中的数据,多个主机系统可以与诸如IBM企业存储服务器(Enterprise Storage Server,ESS)
Figure C20058004062200071
这样的控制单元通信,其中,通过ESS接收请求、提供对诸如通过一个或多个逻辑路径互连的硬磁盘驱动器这样的存储设备的访问来管理上述存储设备(IBM和ESS是IBM的注册商标)。互连的驱动器可以被配置为直接访问存储设备(Direct Access Storage Device,DASD)、独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)、简单磁盘捆绑(Justa Bunch of Disks,JBOD)等。控制单元可以是多处理器类型的系统。例如,控制单元可以包括重复和冗余处理复合体,也被称为群集,以便在有一个出故障的情况下允许故障修复(failover)到依然完好的群集。
存在各种类型的多处理器系统。在一种类型中,处理器可以各自具有其自己的存储器和高速缓存。处理器可以并行运行并共享磁盘。在一种类型的多处理器系统中,每个处理器均可以运行操作系统的副本,并且举例来说,处理器可以通过局域网(LAN)而被松耦合。处理器之间的通信可以通过消息传递来实现。
在另一种类型的多处理器系统中,处理器可以较为紧密地耦合,例如通过交换机或桥接器连接。举例来说,处理器之间的通信可以通过共享存储器来实现。
在又一种类型的多处理器系统中,仅有操作系统的一个副本可以跨越所有的处理器运行。这些类型的多处理器系统倾向于在具有高速总线或交换机的同一机箱内部紧耦合。此外,处理器可以共享相同的全局存储器、磁盘以及输入/输出(I/O)设备。
如果诸如共享磁盘这样的共享资源失效,则多处理器系统的处理器可以简单地停止使用失效的磁盘。在这样的多处理器系统中,即在该多处理器系统中操作系统的一个副本跨越系统的处理器运行,可以容易地对恢复操作进行协调。例如,如果诸如桥接器的共享资源可以通过处理器之一进行恢复操作(例如重置桥接器)而恢复,则可以由处理器的常见操作系统在各种处理器之间协调那些恢复操作。
多处理器系统中的每个处理器还可以具有可以在其中高速缓存共享存储器的一行或多行的高速缓存。因而,两个或多个高速缓存可以具有共享存储器的相同行的副本。如果一个处理器改变了高速缓存于其它处理器的高速缓存中的共享存储器的行中的数据,则各高速缓存可能具有该共享存储器的行的不同的、错误的版本。因此,高速缓存的数据可能不再相对于其它高速缓存或共享存储器“一致”。
可以采用各种高速缓存一致性协议来同步几个高速缓存之中的数据。一种高速缓存一致性协议利用四种状态(修改、专用、共享或无效(Modified,Exclusive,Shared,Invalid,MESI))中的一种来标记各高速缓存行。标记为处于修改状态的高速缓存行指示该高速缓存行已被修改并且因此在共享存储器的该行中的基础数据(underlying data)不再有效。标记为处于专用状态的高速缓存行指示该高速缓存行仅仅存储在该特定的高速缓存中并且未曾改变。标记为处于共享状态的高速缓存行指示该特定的高速缓存行可以存储在其它处理器的其它高速缓存中。标记为处于无效状态的高速缓存行指示该高速缓存行无效。
通常采用监听逻辑(snooping logic),利用特定的一致性协议来提供高速缓存一致性。处理器中的监听逻辑可以在其它处理器所共享的公共总线线路上广播消息,每次处理器修改其高速缓存中的数据都通知其它的处理器。监听逻辑还可以在从其它处理器寻找这样的消息的总线上监听。
当处理器检测到另一处理器已经改变了存在于其自己的高速缓存中的地址上的值的时候,监听逻辑依照包括MESI协议在内的各种协议来使其高速缓存中的条目无效。对高速缓存行的无效状态标记可以通知处理器该高速缓存中的值无效。因此,处理器可以在共享存储器或另一高速缓存中寻找正确的值。
发明内容
在管理多处理器操作中,第一处理器重复读取高速缓存行,其中所述高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行。依照高速缓存一致性协议,保持所述共享存储器行与所述高速缓存行之间的一致性。一方面,所述重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源。另一方面,在所述第二处理器完成涉及所述共享资源的操作时,所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问。作为响应,所述第一处理器依照所述高速缓存一致性协议改变所述高速缓存行的状态,并且读取由所述第二处理器写入的数据。对其它实施例进行了描述并且提出了权利要求。
根据本发明的一方面,提供了一种用于管理多处理器操作的方法,其包括:第一处理器重复读取高速缓存行,其中所述高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持共享存储器行与高速缓存行之间的一致性,并且其中,重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第一处理器改变所述高速缓存行的状态。
根据示例性实施例,所述方法进一步包括:依照所述高速缓存一致性协议,所述第一处理器将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行。
根据示例性实施例,所述方法进一步包括:所述第一处理器执行第一错误处理过程,所述第一错误处理过程包括:所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
根据示例性实施例,所述方法进一步包括:所述第二处理器执行第二错误处理过程,所述第二错误处理过程包括:在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
根据示例性实施例,所述方法进一步包括:共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断,其中,响应于所述第一中断,所述第一处理器执行所述第一错误处理过程,以及响应于所述第二中断,所述第二处理器执行所述第二错误处理过程。
根据示例性实施例,所述方法进一步包括:所述第二处理器读取第二高速缓存行,其中所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第二处理器改变所述第二高速缓存行的状态。
根据示例性实施例,所述方法进一步包括:所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据;以及依照所述高速缓存一致性协议,所述第二处理器将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
根据示例性实施例,所述方法进一步包括:所述第二处理器执行第三错误处理过程,所述第三错误处理过程包括:所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
根据示例性实施例,所述方法进一步包括:所述第一处理器执行第四错误处理过程,所述第四错误处理过程包括:在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
根据示例性实施例,所述方法进一步包括:所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据。
根据示例性实施例,所述方法进一步包括:所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满;以及在所述时间周期届满时,所述第一处理器执行包括重置共享资源的第二错误处理过程。
根据本发明的第二方面,提供了一种用于管理多处理器操作的系统,其包括:用于第一处理器重复读取高速缓存行的装置,其中所述高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持共享存储器行与高速缓存行之间的一致性,并且其中,重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;用于所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问的装置;以及用于所述第一处理器依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,改变所述高速缓存行的状态的装置。
根据示例性实施例,所述系统进一步包括:用于所述第一处理器依照所述高速缓存一致性协议,将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行的装置。
根据示例性实施例,所述系统进一步包括:用于所述第一处理器执行第一错误处理过程的装置,所述第一错误处理过程包括:所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
根据示例性实施例,所述系统进一步包括:用于所述第二处理器执行第二错误处理过程的装置,所述第二错误处理过程包括:在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
根据示例性实施例,所述系统进一步包括:用于共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断的装置,其中,响应于所述第一中断,所述第一错误处理过程被所述第一处理器执行,以及响应于所述第二中断,所述第二错误处理过程被所述第二处理器执行。
根据示例性实施例,所述系统进一步包括:用于所述第二处理器读取第二高速缓存行的装置,其中,所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的所述资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;用于所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问的装置,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及用于所述第二处理器依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,改变所述第二高速缓存行的状态的装置。
根据示例性实施例,所述系统进一步包括:用于所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据的装置;以及用于所述第二处理器依照所述高速缓存一致性协议,将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行的装置,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
根据示例性实施例,所述系统进一步包括:用于所述第二处理器执行第三错误处理过程的装置,所述第三错误处理过程包括:所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
根据示例性实施例,所述系统进一步包括:用于所述第一处理器执行第四错误处理过程的装置,所述第四错误处理过程包括:在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
根据示例性实施例,所述系统进一步包括:用于所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据的装置。
根据示例性实施例,所述系统进一步包括:用于所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满的装置;以及用于所述第一处理器在所述时间周期届满时,执行包括重置共享资源的第二错误处理过程的装置。
附图说明
现在将仅参照以下附图,通过例子详细描述本发明的优选实施例,其中:
图1说明了实现实施例的计算环境;以及
图2说明了管理多处理器操作的操作。
具体实施方式
图1说明了可以在其中采用文中所提供的各方面描述的计算环境的一个例子。一个或多个主机2将指向存储系统4的输入/输出(I/O)请求传达至控制单元6,其中控制单元6管理对存储系统4的访问。在一个实施例中,控制单元6包括两个处理复合体8a、8b,每个包括处理器10a、10c和主机适配器22a、22b。每个主机适配器22a、22b使得关联的处理复合体8a、8b能够与主机2通信,并且其包括处理器10b、10d。在所说明的实施例中,每个处理器10a、10b、10c、10d分别具有关联的存储器12a、12b、12c、12d,并且各自执行相应的操作系统18a、18b、18c、18d以及相应的设备驱动器20a、20b、20c、20d。操作系统18a、18b、18c、18d可以彼此是相同类型的或者可以各自是完全不同类型的操作系统。例如,操作系统18a、18c可以各自是例如像LINUX这样的嵌入式多线程操作系统,并且操作系统18b、18d可以各自是例如执行主机适配器的实时任务的嵌入式硬件抽象层。要理解到,取决于特定的应用,可以使用各种类型的操作系统及其组合。
每个设备驱动器20a、20b、20c、20d在处理复合体8a、8b中关联的操作系统18a、18b、18c、18d与内部或外部设备(例如主机适配器22a、22b和各种设备适配器24a、24b)之间提供接口,其中,设备驱动器20a、20b、20c、20d在处理复合体8a、8b中执行。设备适配器24a、24b使得处理复合体8a、8b能够与存储系统4通信。尽管所说明的实施例显示控制单元6具有两个不同的组件,例如处理复合体8a、8b,设备适配器24a、24b,等等,但是要理解到,控制单元6可以具有更多的或更少的这样的组件。
处理复合体8a可以具有耦合于总线31a的共享存储器30a,并且由该处理复合体8a的处理器10a和处理器10b所共享。每个存储器12a、12b可以具有高速缓存28a、28b,在其中可以高速缓存共享存储器30a的一行或多行。类似地,处理复合体8b可以具有耦合于总线31b的共享存储器30b,并且由该处理复合体8b的处理器10c和处理器10d所共享。每个存储器12c、12d可以具有高速缓存28c、28d,在其中可以高速缓存共享存储器30b的一行或多行。高速缓存28a、28b、28c、28d可以高速缓存控制单元6的其它存储器的行。
每个处理复合体8a、8b可以处于单独的功率边界(power boundaries)。可以分派处理复合体8a、8b处理指向存储系统4中所配置的特定卷(specific volume)的I/O请求。处理复合体8a、8b通过设备网络(未示出),经由设备适配器24a、24b、24c、24d与存储系统4通信,该设备网络可以包括局域网(LAN)、存储区域网(SAN)、总线接口、串行接口等。
另外,处理复合体8a、8b通过包括桥接器34的连接32进行通信,使得处理器内部通信能够管理相对于诸如共享适配器22a、22b的共享设备所进行的配置操作。以类似的方式,每个处理复合体8a、8b均具有桥接器36a、36b。桥接器36a是由处理器10a、10b共享的资源。类似地,桥接器36b是由处理器10c、10d共享的资源。
如下面较为详细解释的,使用处理器高速缓存28a、28b、28c、28d以及高速缓存一致性协议还可以实现对处理器活动的协调。例如,诸如桥接器36a这样的共享资源可能失效并且可能需要被重置以恢复到正常运行。可以使用一个或多个处理器高速缓存28a、28b以及高速缓存一致性协议在处理器10a、10b之间协调该恢复操作。以类似的方式,诸如桥接器36b这样的共享资源可能失效并且可能需要被重置以恢复到正常运行。可以使用一个或多个处理器高速缓存28c、28d以及高速缓存一致性协议在处理器10c、10d之间协调该恢复操作。
控制单元6可以包括任何类型的服务器(例如企业存储服务器、存储控制器等)或者用于管理对附属存储系统4的I/O请求的其它设备,其中存储系统可以包括本领域已知的一个或多个存储设备,例如互连式硬磁盘驱动器(例如,被配置为DASD、RAID、JBOD等)、磁带、电子存储器等。主机2可以通过诸如局域网(LAN)、存储区域网(SAN)、广域网(WAN)、无线网络等的网络(未示出),经由适配器22a、22b与控制单元6通信。可选地,主机2可以通过诸如外设部件互连(PCI)总线或串行接口的总线接口与控制单元6通信。
诸如共享适配器22a、22b的共享设备的失效可以向处理复合体8a、8b中的操作系统18a、18b、18c、18d产生机器检查条件,如果共享硬件具有致命的错误类型,则这可能导致两个处理复合体崩溃。在一个实施例中,可以通过诸如桥接器34的共享设备协调这些恢复操作。
图2说明了在其中可以使用处理器高速缓存、共享存储器和高速缓存一致性协议协调多处理器系统的处理器操作的实施例。例如,处理复合体8a的桥接器36a可能失效。为了在处理器10a、10b之间协调恢复操作,可以随共享存储器30a和高速缓存一致性协议一起利用高速缓存28a、28b之一。
在该例中,在输入出错条件时,诸如桥接器36a的共享资源可以向处理器10a、10b中的每一个发布中断。响应于接收到这样的中断,诸如处理器10a的第一处理器可以启动(块200)错误处理过程。类似地,诸如处理器10b的第二处理器可以启动(块202)第二错误处理过程。要理解到,处理器10a、10b可以利用其它的事件来启动错误处理过程。例如,处理器10a、10b可以监控各种共享设备的状态,并且在检测到错误状态时启动错误处理过程。
依照第一处理器10a的错误处理过程,第一处理器10a重复读取(块204)高速缓存行,例如高速缓存28a的行。在该例中,重复的高速缓存行读取占用了第一处理器10a并且禁止第一处理器10a访问包括桥接器36a的共享资源。举例来说,可以使用循环过程来实现该重复读取。
此外,第一处理器10a所重复读取的高速缓存行高速缓存自第一处理器10a和第二处理器10b二者所共享的资源中的共享存储器的行。在该例中,高速缓存行可以高速缓存自共享存储器30a的行。另外,依照例如像MESI协议这样的高速缓存一致性协议,保持共享存储器行与高速缓存行之间的一致性。在MESI协议中,正在读取的高速缓存行的状态变成专用于第一处理器10a。要理解到,还可以利用其它的高速缓存一致性协议。依照该协议,第一处理器10a还通过共享总线31a监听(块204)共享存储器30a,以便识别对来自共享存储器30a的高速缓存的存储器行的改变。
在禁止第一处理器10a访问诸如桥接器36a的共享资源的情况下,第二处理器10b在执行其错误处理过程中可以安全地重置(块206)诸如桥接器36a的共享资源,而不受第一处理器10a的干扰。要理解到,可以由第二处理器10b在禁止第一处理器10a访问共享资源时承担的错误处理过程可以包括其它的措施,例如隔开失效的资源或采取其它措施来恢复失效的资源。
在适当的时间,第二处理器10b可以向共享存储器30a的共享存储器行写入(块208)数据,该共享存储器行已经被第一处理器高速缓存28a高速缓存。如下所述,由第二处理器10b写入的该数据可以用于向第一处理器10a提供这样的信号,即对于第一处理器来说,重新开始访问共享资源是安全的。因而,举例来说,对第二处理器10b来说,向共享存储器30a的共享存储器行写入数据的一个适当的时间可以是在第二处理器10b完成桥接器36a重置操作时,这导致对共享资源或至少一部分共享资源的成功恢复。因而,第二处理器10b可以完成(块210)其错误处理过程。要理解到,可以进行由第二处理器10b向共享存储器30a中高速缓存的存储器行的写入,以便用信号通知其它处理器10a其它的信息,并且取决于特定的应用,可以在其它时间进行该操作。
在所说明的实施例中,通过共享总线31a监听共享存储器30a的第一处理器10a检测第二处理器10b向共享存储器30a中高速缓存的存储器行的该写入。依照高速缓存一致性协议(在该例中是MESI高速缓存一致性协议),响应于第二处理器10b向共享存储器30a中的共享存储器行的数据写入,第一处理器10a改变(块212)高速缓存28a中的高速缓存行的状态。依照MESI高速缓存一致性协议,将第一处理器高速缓存28a中高速缓存的存储器行的状态改成无效状态。另外,第一处理器10a可以离开重复读取高速缓存28a中的存储器行的循环过程,并且在共享存储器30a中检索(块214)写入高速缓存的存储器行的、已更新的数据。举例来说,如果失效的资源是通往共享存储器30a的桥接器,则共享资源会已被第二处理器10b恢复,以便第一处理器10a可以安全地访问已恢复的共享资源。
在另一操作中,第一处理器完成(块216)其错误处理过程。如果第二处理器10b已经完全恢复了所有错误状态的系统,则第一处理器可以重新开始其正常处理。在另一例子中,第二处理器的恢复操作可以是未完成的。在该例中,处理器10a和10b可以交换角色并重新开始恢复过程。因而处理器10b可以是指图2的“第一处理器”并且处理器10a可以是指图2的“第二处理器”。
依照第一处理器10b的错误处理过程,第一处理器10b重复读取(块204)高速缓存行,例如高速缓存28b的行。在该例中,重复的高速缓存行读取占用了第一处理器10b并且禁止第一处理器10b访问包括桥接器36a的共享资源。在禁止第一处理器10b访问诸如桥接器36a的共享资源的情况下,第二处理器10a在执行其错误处理过程中可以安全地重置(块206)诸如桥接器36a的共享资源,而不受第一处理器10b的干扰。在适当的时间,第二处理器10a可以向共享存储器30a的共享存储器行写入(块208)数据,该共享存储器行已经被第一处理器高速缓存28b高速缓存,以便用信号通知其它处理器10b可以安全地访问共享资源,并且第二处理器10a可以完成(块210)其错误处理过程。
通过共享总线31a监听共享存储器30a的第一处理器10b检测第二处理器10a向共享存储器30a中高速缓存的存储器行的该写入。依照高速缓存一致性协议,响应于第二处理器10a向共享存储器30a中的共享存储器行的数据写入,第一处理器10b将高速缓存28b中的高速缓存行的状态改成(块212)无效状态。另外,第一处理器10b可以离开重复读取高速缓存28b中的存储器行的循环过程,并且在共享存储器30a中检索(块214)写入高速缓存的存储器行的、已更新的数据。举例来说,如果失效的资源是通往共享存储器30a的桥接器,则共享资源会已被第二处理器10a恢复,以便第一处理器10b可以安全地访问已恢复的共享资源。
在另一操作中,第一处理器10b完成(块216)其错误处理过程。如果第二处理器10a已经完全恢复了所有错误状态的系统,则第一处理器10b可以重新开始其正常处理。在另一例子中,第二处理器10a的恢复操作可以仍然是未完成的。在该例中,处理器10a和10b可以再次交换角色以完成恢复或其它过程。
另外,可以为每个处理器设置重复读取高速缓存行(块204)的时间限制。例如,如果时间限制在高速缓存行状态从专用状态变到无效状态之前届满,则在一个实施例中,第一处理器可以假设另一、第二处理器停用(dead)。如果是这样的话,则第一处理器可以取代第二处理器的角色并且执行包括重置共享资源(块206)的第二处理器恢复过程。
要理解到,诸如处理复合体8b的桥接器36b这样的共享资源可能失效。为了在处理器10c、10d之间协调恢复操作,可以随共享存储器30b和高速缓存一致性协议一起利用高速缓存28c、28d之一。
可以使用产生软件、固件、硬件或其任意组合的标准编程和/或工程技术将上述实施例作为方法、装置或制品来实现。文中所使用的术语“制品”指的是以硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或诸如磁存储介质(例如,硬磁盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失性和非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)这样的计算机可读介质所实现的代码或逻辑。计算机可读介质中的代码由处理器访问和执行。在其中实现优选实施例的代码可以进一步通过传输介质访问或通过网络从文件服务器访问。在这样的情况下,在其中实现代码的制品可以包括诸如网络传输线的传输介质、无线传输介质,通过空间、无线电波、红外信号等传播的信号。因而,“制品”可以包括在其中体现了代码的介质。相应地,“制品”可以包括在其中体现、处理和执行了代码的硬件和软件组件的组合。
特定的实施例可以针对用于通过将计算机可读代码整合到计算系统的人工或自动处理来部署计算指令的方法,其中启用与计算系统结合的代码来进行上述实施例的操作。
在处理复合体具有多个逻辑部分的实施例中,管理器管理不同逻辑部分的执行。在处理复合体不具有逻辑部分的实施例中,管理器模块可以包括中间设备驱动器和操作系统,取决于特定的应用,该操作系统可以具有与其它处理复合体的操作系统不同的类型或者可以具有相同的类型。
在所描述的实施例中,控制单元6包括两个处理复合体8a、8b。在另外的实施例中,可以有多于两个的系统访问共享设备。在这样的实施例中,接收中断的设备驱动器20a可以与多个处理复合体通信以协调恢复或其它的操作。
图2所说明的操作示出了以特定顺序发生的某些事件。在可选的实施例中,某些操作可以以不同的顺序执行、修改或移除。此外,可以向上述逻辑添加步骤并且仍然与所描述的实施例相符。另外,文中所描述的操作可以顺序发生或者某些操作可以被并行处理。再者,可以由单个处理单元或由分布式处理单元进行操作。
已经出于说明和解释的目的给出了上述对各种实施例的描述。并不旨在穷举或限制于所公开的精确形式。鉴于以上教导,很多修改和变体都是可能的。

Claims (22)

1.一种用于管理多处理器操作的方法,其包括:
第一处理器重复读取高速缓存行,其中所述高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持共享存储器行与高速缓存行之间的一致性,并且其中,重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;
所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问;以及
依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第一处理器改变所述高速缓存行的状态。
2.根据权利要求1的方法,其进一步包括:
依照所述高速缓存一致性协议,所述第一处理器将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行。
3.根据权利要求2的方法,其进一步包括:
所述第一处理器执行第一错误处理过程,所述第一错误处理过程包括:所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
4.根据权利要求3的方法,其进一步包括:
所述第二处理器执行第二错误处理过程,所述第二错误处理过程包括:在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
5.根据权利要求4的方法,其进一步包括:
共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断,其中,响应于所述第一中断,所述第一处理器执行所述第一错误处理过程,以及响应于所述第二中断,所述第二处理器执行所述第二错误处理过程。
6.根据权利要求5的方法,其进一步包括:
所述第二处理器读取第二高速缓存行,其中所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;
所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及
依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第二处理器改变所述第二高速缓存行的状态。
7.根据权利要求1的方法,其进一步包括:
所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据;以及
依照所述高速缓存一致性协议,所述第二处理器将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
8.根据权利要求7的方法,其进一步包括:
所述第二处理器执行第三错误处理过程,所述第三错误处理过程包括:所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
9.根据权利要求8的方法,其进一步包括:
所述第一处理器执行第四错误处理过程,所述第四错误处理过程包括:在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
10.根据权利要求1的方法,其进一步包括:所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据。
11.根据权利要求1的方法,其进一步包括:
所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满;以及
在所述时间周期届满时,所述第一处理器执行包括重置共享资源的第二错误处理过程。
12.一种用于管理多处理器操作的系统,其包括:
用于第一处理器重复读取高速缓存行的装置,其中所述高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的资源中的共享存储器的行,其中依照高速缓存一致性协议,保持共享存储器行与高速缓存行之间的一致性,并且其中,重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;
用于所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问的装置;以及
用于所述第一处理器依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,改变所述高速缓存行的状态的装置。
13.根据权利要求12的系统,其进一步包括:
用于所述第一处理器依照所述高速缓存一致性协议,将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行的装置。
14.根据权利要求13的系统,其进一步包括:
用于所述第一处理器执行第一错误处理过程的装置,所述第一错误处理过程包括:所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
15.根据权利要求14的系统,其进一步包括:
用于所述第二处理器执行第二错误处理过程的装置,所述第二错误处理过程包括:在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
16.根据权利要求15的系统,其进一步包括:
用于共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断的装置,其中,响应于所述第一中断,所述第一错误处理过程被所述第一处理器执行,以及响应于所述第二中断,所述第二错误处理过程被所述第二处理器执行。
17.根据权利要求16的系统,其进一步包括:
用于所述第二处理器读取第二高速缓存行的装置,其中,所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的所述资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;
用于所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问的装置,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及
用于所述第二处理器依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,改变所述第二高速缓存行的状态的装置。
18.根据权利要求12的系统,其进一步包括:
用于所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据的装置;以及
用于所述第二处理器依照所述高速缓存一致性协议,将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行的装置,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
19.根据权利要求18的系统,其进一步包括:
用于所述第二处理器执行第三错误处理过程的装置,所述第三错误处理过程包括:所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
20.根据权利要求19的系统,其进一步包括:
用于所述第一处理器执行第四错误处理过程的装置,所述第四错误处理过程包括:在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
21.根据权利要求12的系统,其进一步包括:
用于所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据的装置。
22.根据权利要求12的系统,其进一步包括:
用于所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满的装置;以及
用于所述第一处理器在所述时间周期届满时,执行包括重置共享资源的第二错误处理过程的装置。
CNB2005800406226A 2004-11-30 2005-11-11 管理多处理器操作 Expired - Fee Related CN100568199C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/001,476 US7418557B2 (en) 2004-11-30 2004-11-30 Managing multiprocessor operations
US11/001,476 2004-11-30

Publications (2)

Publication Number Publication Date
CN101065736A CN101065736A (zh) 2007-10-31
CN100568199C true CN100568199C (zh) 2009-12-09

Family

ID=35645753

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800406226A Expired - Fee Related CN100568199C (zh) 2004-11-30 2005-11-11 管理多处理器操作

Country Status (9)

Country Link
US (2) US7418557B2 (zh)
EP (1) EP1839156B1 (zh)
JP (1) JP4641545B2 (zh)
CN (1) CN100568199C (zh)
AT (1) ATE402444T1 (zh)
DE (1) DE602005008477D1 (zh)
IL (1) IL183470A (zh)
MX (1) MX2007006350A (zh)
WO (1) WO2006058826A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536694B2 (en) * 2004-11-30 2009-05-19 International Business Machines Corporation Exception handling in a multiprocessor system
US7937709B2 (en) 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently
JP2006227856A (ja) * 2005-02-17 2006-08-31 Hitachi Ltd アクセス制御装置及びそれに搭載されるインターフェース
US7818056B2 (en) * 2005-03-24 2010-10-19 Cardiac Pacemakers, Inc. Blending cardiac rhythm detection processes
JP4831599B2 (ja) * 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
JP2007219571A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 記憶制御装置及びストレージシステム
WO2012014285A1 (ja) * 2010-07-27 2012-02-02 富士通株式会社 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
JP5745868B2 (ja) * 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
JP5614419B2 (ja) 2012-02-29 2014-10-29 富士通株式会社 情報処理装置、制御方法および制御プログラム
CN104321750B (zh) * 2012-04-25 2019-03-08 英特尔公司 在共享存储器编程中保持释放一致性的方法和系统
US9135175B2 (en) * 2012-12-21 2015-09-15 Oracle International Corporation Distributed cache coherency directory with failure redundancy
CN103745315A (zh) * 2013-12-31 2014-04-23 太原理工大学 重点项目行政执法监察联动管理方法及系统
US10310982B2 (en) * 2016-12-15 2019-06-04 International Business Machines Corporation Target cache line arbitration within a processor cluster
US10339064B2 (en) * 2017-03-29 2019-07-02 International Business Machines Corporation Hot cache line arbitration
US10915445B2 (en) 2018-09-18 2021-02-09 Nvidia Corporation Coherent caching of data for high bandwidth scaling
CN114327920B (zh) * 2022-03-16 2022-06-21 长沙金维信息技术有限公司 用于多处理器系统的硬件资源共享方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202622A (ja) * 1995-01-31 1996-08-09 Fujitsu Ltd 分散型メモリ構成のキャッシュ制御方法
US5930821A (en) * 1997-05-12 1999-07-27 Integrated Device Technology, Inc. Method and apparatus for shared cache lines in split data/code caches
US6314526B1 (en) 1998-07-10 2001-11-06 International Business Machines Corporation Resource group quorum scheme for highly scalable and highly available cluster system management
US6467050B1 (en) 1998-09-14 2002-10-15 International Business Machines Corporation Method and apparatus for managing services within a cluster computer system
JP3676934B2 (ja) * 1998-12-15 2005-07-27 株式会社日立製作所 プロセッサおよびマルチプロセッサシステム
US6622260B1 (en) 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
US6751705B1 (en) 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
US6772298B2 (en) * 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures

Also Published As

Publication number Publication date
US20080168238A1 (en) 2008-07-10
IL183470A0 (en) 2007-09-20
MX2007006350A (es) 2007-06-19
ATE402444T1 (de) 2008-08-15
EP1839156B1 (en) 2008-07-23
CN101065736A (zh) 2007-10-31
US7418557B2 (en) 2008-08-26
IL183470A (en) 2011-03-31
JP2008522264A (ja) 2008-06-26
US7650467B2 (en) 2010-01-19
US20060117147A1 (en) 2006-06-01
DE602005008477D1 (de) 2008-09-04
EP1839156A1 (en) 2007-10-03
JP4641545B2 (ja) 2011-03-02
WO2006058826A1 (en) 2006-06-08

Similar Documents

Publication Publication Date Title
CN100568199C (zh) 管理多处理器操作
AU713372B2 (en) Multiprocessor cluster membership manager framework
US5276828A (en) Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
US8881153B2 (en) Speculative thread execution with hardware transactional memory
CN100549962C (zh) 用于置换资源控制器锁的所有权的装置、系统和方法
US7343515B1 (en) System and method for performing error recovery in a data processing system having multiple processing partitions
EP0575067A2 (en) Shared, distributed lock manager for loosely coupled processing systems
JP2002229837A (ja) 共有ディスク・パラレル・データ・ファイル内のデータに対するアクセスを制御する方法
JP2000056931A (ja) 格納管理システム
JP2003044452A (ja) 同期メモリ・バリアを実装する方法およびシステム
CN103593266A (zh) 一种基于仲裁盘机制的双机热备方法
CN101410813A (zh) 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品
CN102272733B (zh) 确定高速缓存中的已修改数据以便在恢复操作期间使用
CN1783021A (zh) 用于在多处理器系统中进行异常处理的方法和系统
CN105681402A (zh) 一种基于PCIe闪存卡的分布式高速数据库集成系统
US7409722B2 (en) Control status register access to enable domain reconfiguration
EP1714214A1 (en) An apparatus and method for maintaining data integrity following parity error detection
CN101008921A (zh) 基于总线侦听的嵌入式异构多核缓存一致性方法
US20070294600A1 (en) Method of detecting heartbeats and device thereof
US10635552B1 (en) Method for tracking validity of journal copies to allow journal mirroring
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
Fernández-Pascual et al. A fault-tolerant directory-based cache coherence protocol for CMP architectures
JP5163061B2 (ja) マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
JPH0312773A (ja) データベース処理における局所異常回復処理方式
JP2009282776A (ja) 計算機システム

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091209

Termination date: 20181111

CF01 Termination of patent right due to non-payment of annual fee