管理多处理器操作的制作方法

文档序号:6553125阅读:184来源:国知局
专利名称:管理多处理器操作的制作方法
技术领域
本发明涉及管理多处理器操作。
背景技术
在某些计算环境中,为了存储设备中的数据,多个主机系统可以与诸如IBM企业存储服务器(Enterprise Storage Server,ESS)这样的控制单元通信,其中,通过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所说明的操作示出了以特定顺序发生的某些事件。在可选的实施例中,某些操作可以以不同的顺序执行、修改或移除。此外,可以向上述逻辑添加步骤并且仍然与所描述的实施例相符。另外,文中所描述的操作可以顺序发生或者某些操作可以被并行处理。再者,可以由单个处理单元或由分布式处理单元进行操作。
已经出于说明和解释的目的给出了上述对各种实施例的描述。并不旨在穷举或限制于所公开的精确形式。鉴于以上教导,很多修改和变体都是可能的。
权利要求
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的系统,其中所述第一处理器逻辑进一步适于确定时间周期在重复读取所述高速缓存行时已经届满;以及在所述时间周期届满时,执行包括重置共享资源的第二错误处理过程。
23.一种制品,其包括能够由系统执行以进行操作的代码,其中所述系统具有含高速缓存的第一处理器、第二处理器以及包括共享存储器的多个共享资源,其中将所述共享存储器的行高速缓存在所述第一处理器高速缓存的行中,并且依照高速缓存一致性协议,保持所述共享存储器行与所述高速缓存行之间的一致性,并且其中所述操作包括所述第一处理器重复读取所述高速缓存行,其中,所述重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第一处理器改变所述高速缓存行的状态。
24.根据权利要求23的制品,其中所述操作进一步包括依照所述高速缓存一致性协议,所述第一处理器将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行。
25.根据权利要求24的制品,其中所述操作进一步包括所述第一处理器执行第一错误处理过程,所述第一错误处理过程包括所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
26.根据权利要求25的制品,其中所述操作进一步包括所述第二处理器执行第二错误处理过程,所述第二错误处理过程包括在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
27.根据权利要求26的制品,其中所述操作进一步包括共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断,其中,响应于所述第一中断,所述第一处理器执行所述第一错误处理过程,以及响应于所述第二中断,所述第二处理器执行所述第二错误处理过程。
28.根据权利要求27的制品,其中所述第二处理器具有第二高速缓存行,并且其中所述操作进一步包括所述第二处理器读取所述第二高速缓存行,并且其中,所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的所述资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第二处理器改变所述第二高速缓存行的状态。
29.根据权利要求23的制品,其中所述操作进一步包括所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据,以及依照所述高速缓存一致性协议,将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
30.根据权利要求29的制品,其中所述操作进一步包括所述第二处理器执行第三错误处理过程,所述第三错误处理过程包括所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
31.根据权利要求30的制品,其中所述操作进一步包括所述第一处理器执行第四错误处理过程,所述第四错误处理过程包括在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
32.根据权利要求23的制品,其中所述操作进一步包括所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据。
33.根据权利要求23的制品,其中所述操作进一步包括所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满;以及在所述时间周期届满时,所述第一处理器执行包括重置共享资源的第二错误处理过程。
34.一种用于部署计算指令的方法,所述方法包括将计算机可读代码整合到系统中,其中所述系统具有含高速缓存的第一处理器、第二处理器以及包括共享存储器的多个共享资源,其中将所述共享存储器的行高速缓存在所述第一处理器高速缓存的行中,并且依照高速缓存一致性协议,保持所述共享存储器行与所述高速缓存行之间的一致性,并且其中,启用与所述系统结合的所述代码以便使所述系统实现所述第一处理器重复读取所述高速缓存行,其中,所述重复的高速缓存行读取占用了所述第一处理器并且禁止所述第一处理器访问所述共享资源;所述第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器所述共享资源可以被所述第一处理器访问;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第一处理器改变所述高速缓存行的状态。
35.根据权利要求34的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现依照所述高速缓存一致性协议,所述第一处理器将所述共享存储器行中由所述第二处理器写入的所述数据检索到所述高速缓存行。
36.根据权利要求35的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第一处理器执行第一错误处理过程,所述第一错误处理过程包括所述高速缓存行读取、所述高速缓存行状态改变以及所述共享存储器行读取。
37.根据权利要求36的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第二处理器执行第二错误处理过程,所述第二错误处理过程包括在所述第一处理器读取所述高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据。
38.根据权利要求37的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现共享资源在出错条件的情况下分别向所述第一和第二处理器发布第一和第二中断,其中,响应于所述第一中断,所述第一处理器执行所述第一错误处理过程,以及响应于所述第二中断,所述第二处理器执行所述第二错误处理过程。
39.根据权利要求38的方法,其中所述第二处理器具有第二高速缓存行,并且其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第二处理器读取所述第二高速缓存行,并且其中,所述第二高速缓存行高速缓存自所述第一处理器和第二处理器二者所共享的所述资源中的共享存储器的行,其中依照高速缓存一致性协议,保持所述共享存储器行与所述第二高速缓存行之间的一致性,并且其中,所述第二高速缓存行读取占用了所述第二处理器并且禁止所述第二处理器访问所述共享资源;所述第一处理器向所述共享存储器行写入数据,以便用信号通知所述第二处理器共享资源可以被所述第二处理器访问,其中,所述第二高速缓存行高速缓存自所述共享存储器行;以及依照所述高速缓存一致性协议,响应于向所述共享存储器行的所述数据写入,所述第二处理器改变所述第二高速缓存行的状态。
40.根据权利要求34的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第二处理器监听以检测所述第一处理器在所述共享存储器中写入数据,以及依照所述高速缓存一致性协议,将所述共享存储器行中由所述第一处理器写入的所述数据读取到所述第二高速缓存行,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
41.根据权利要求40的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第二处理器执行第三错误处理过程,所述第三错误处理过程包括所述第二高速缓存行读取、所述第二高速缓存行状态改变以及所述共享存储器行读取。
42.根据权利要求41的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第一处理器执行第四错误处理过程,所述第四错误处理过程包括在所述第二处理器读取所述第二高速缓存行时重置共享资源,以及在完成所述共享资源重置时向所述共享存储器行写入所述数据,其中,所述第二高速缓存行高速缓存自所述共享存储器行。
43.根据权利要求34的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第一处理器监听以检测所述第二处理器向所述共享存储器行写入数据。
44.根据权利要求34的方法,其中进一步启用与所述系统结合的所述代码,以便使所述系统实现所述第一处理器确定时间周期在重复读取所述高速缓存行时已经届满;以及在所述时间周期届满时,所述第一处理器执行包括重置共享资源的第二错误处理过程。
全文摘要
在管理多处理器操作中,第一处理器重复读取高速缓存行,其中该高速缓存行高速缓存自该第一处理器和第二处理器二者所共享的资源中的共享存储器的行。依照高速缓存一致性协议,保持该共享存储器行与该高速缓存行之间的一致性。一方面,重复的高速缓存行读取占用了该第一处理器并且禁止该第一处理器访问该共享资源。另一方面,在该第二处理器完成涉及该共享资源的操作时,该第二处理器向所述共享存储器行写入数据,以便用信号通知所述第一处理器该共享资源可以被所述第一处理器访问。作为响应,所述第一处理器依照所述高速缓存一致性协议改变所述高速缓存行的状态,并且读取由所述第二处理器写入的数据。对其它实施例进行了描述并且提出了权利要求。
文档编号G06F12/08GK101065736SQ200580040622
公开日2007年10月31日 申请日期2005年11月11日 优先权日2004年11月30日
发明者S·L·布林尼克, 许育诚, L·米拉博, R·D·兰金, 宋正中 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1