CN1263312A - 具有共享干预支持的非均匀存储器访问数据处理*** - Google Patents
具有共享干预支持的非均匀存储器访问数据处理*** Download PDFInfo
- Publication number
- CN1263312A CN1263312A CN99127097A CN99127097A CN1263312A CN 1263312 A CN1263312 A CN 1263312A CN 99127097 A CN99127097 A CN 99127097A CN 99127097 A CN99127097 A CN 99127097A CN 1263312 A CN1263312 A CN 1263312A
- Authority
- CN
- China
- Prior art keywords
- node
- cache line
- cache
- request
- hierarchy
- 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
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/51104—Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections
- A61F13/51108—Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections the top sheet having corrugations or embossments having one axis relatively longer than the other axis, e.g. forming channels or grooves in a longitudinal direction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/512—Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations
- A61F13/5123—Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations the apertures being formed on a multilayer top sheet
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/51121—Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material
- A61F2013/51147—Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material being polymeric films
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/53—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium
- A61F2013/530007—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium being made from pulp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Vascular Medicine (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Heart & Thoracic Surgery (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Epidemiology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种非均匀存储器访问计算机***,包含每个都连接到一个节点互连的第一和第二处理节点。第一处理节点包含一个***存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,高速缓存分级由局部互连连接进行通信。第二处理节点至少包含***存储器及具有第三高速缓存分级的第三处理器。第一高速缓存分级和第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对该特定高速缓存线的拷贝定源。
Description
本申请书涉及如下共同未决申请:
(1)参见申请号No.08/837,516,″Method of Shared Interventionfor Cache Lines in Shared State for an SMP Bus″,申请日为1997年4月14日。
(2)参见申请号No.09/024,307,″Cache Coherency Protokol withGlobal and Local Recently Read State″,申请日为1998年2月27日。
(3)参见申请号No.09/213,997,″Non-Uniform Memory Access(NUMA)Data Processing System Having Shared InterventionSupport″,申请日为1997年12月17日。
本发明一般涉及数据处理方法及***,特别涉及非均匀存储器访问(NUMA)数据处理***中的数据处理。本发明还特别涉及在非均匀存储器访问(NUMA)数据处理***中通过共享干预提供所需数据的非均匀存储器访问(NUMA)数据处理***和方法。
在计算机技术中公知可利用级联多片单个处理器的处理能力获得更好的计算机***性能。多处理器(MP)计算机***可采用多种拓扑进行设计,其中不同的拓扑可能更好地适于某些具体应用,依所需性能及各应用的软件环境而定。最通常的多处理器(MP)计算机拓扑为对称多处理器(SMP)配置,其中的多处理器共享共用资源,如***存储器及输入/输出(I/O)子***,它们通常连接于共享***的互连。此种计算机***称为对称***是因为在对称多处理器(SMP)计算机***中在理想情况下所有的处理器相对存储于共享***存储器中的数据都具有同样的访问等待时间。
尽管对称多处理器(SMP)计算机***容许使用相对简单的处理器间通信及数据共享方法,但对称多处理器(SMP)计算机***具有有限的规模扩缩性。换言之,虽然一般可以预期通常的对称多处理器(SMP)计算机***的性能会随着规模(即随着增加更多的处理器)而达到改进,但固有总线、存储器及输入/输出(I/O)带宽的限制却妨碍从调整对称多处理器(SMP)的规模超过由执行所决定的可优化利用这些共享资源的规模大小而获得的显著的好处。因此,对称多处理器(SMP)拓扑本身在一定程度上受到带宽限制的制约,特别是随着***规模的加大在***存储器方面尤其如此。从生产效率观点出发,对称多处理器(SMP)计算机***的规模设计不良。比如,虽然某些部件可针对在单处理器及小规模对称多处理器(SMP)计算机***中使用都进行优化,但这些部件用于大规模对称多处理器(SMP)中经常效率低下。反之,从成本观点出发,用于大规模对称多处理器(SMP)中的部件也不适合用于小型计算机***。
结果,就出现了一种称为非均匀存储器访问(NUMA)的多处理器(MP)计算机***拓扑作为一种以增加某些复杂性为代价来克服对称多处理器(SMP)计算机***的许多限制的另外一种替代设计。典型的非均匀存储器访问(NUMA)数据处理***包含多个互连节点,每个节点包含一个或多个处理器及局部“***”存储器。此种计算机***称为具有非均匀存储器访问是因为每个处理器对在其局部节点处的***存储器中所存储的数据的访问等待时间低于对远方节点处的***存储器中所存储的数据的访问等待时间。非均匀存储器访问***可根据数据等待时间是否是在不同节点中的高速缓存中间维持而进一步划分为非相关或高速缓存相关***。高速缓存相关非均匀存储器访问(CC-NUMA)***的复杂性在很大程度上可归因于硬件为了不仅在每个节点内部的各级高速缓存存储器和***存储器之间,而且在不同节点中的高速缓存和***存储器之间保持数据相关性而需要的额外通信。然而,非均匀存储器访问(NUMA)计算机***的确可克服通常的对称多处理器(SMP)计算机***规模扩缩性的限制,因为在非均匀存储器访问(NUMA)计算机***中每个节点都可作为更小的对称多处理器(SMP)***。于是,在每个节点内部的共享部件可针对只使用少数处理器进行优化,而同时整个***可在保持相对低等待时间的同时从可获得更大规模的并行度而受益。
对高速缓存相关非均匀存储器访问(CC-NUMA)计算机***的主要性能的关心是与通过连接节点的互连传送的通信事务相关联的等待时间。特别是,当以常驻远方***存储器中的数据为目标时,最通常类型的事务的读出型事务与以常驻局部***存储器中的数据为目标的读出数据相比较,可具有两倍的等待时间。因为与在节点互连上传输的读出事务相关联的等待时间与在局部互连上的读出事务相比较相对高,所以减小请求通过节点互连传输的读出型事务的数目,以及减小此种远方读出型事务的等待时间,是有用并且是所希望的。
根据本发明,在非均匀存储器访问(NUMA)计算机***中的读出请求的数目及等待时间可通过支持共享干预而减少。根据本发明的非均匀存储器访问(NUMA)计算机***至少包含每个都连接到一个节点互连的第一和第二处理节点。第一处理节点包含一个***存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,高速缓存分级由局部互连连接进行通信。第二处理节点至少包含***存储器及具有第三高速缓存分级的第三处理器。第一高速缓存分级和第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对该特定高速缓存线的拷贝定源。响应第二高速缓存分级对特定高速缓存线请求,第一高速缓存分级通过只利用局部互连通信而不利用节点互连通信的共享干预将特定高速缓存线拷贝定源于第二高速缓存分级。
本发明的所有目的、特点和优点在下面的详细书面描述中将变得很明显。
确信为本发明特征的新特点在后附的权利请求中提出。然而,本发明本身,及其应用的优选模式、其他目的及优点,在参考附图阅读下面的实施例的详细描述时将会连接得最为清楚。在附图中:
图1示出根据本发明的非均匀存储器访问(NUMA)计算机***的实施例;而
图2为图1中示出的节点控制器的更为详细的框图。
下面参考附图,特别是参考图1介绍根据本发明的非均匀存储器访问(NUMA)计算机***的实施例。所描述的实施例可作为,比如,工作站、服务器或大型机实现。如图所示,非均匀存储器访问(NUMA)计算机***6包含多个(N≥2)处理节点8a-8n,这些节点由节点互连22互连。处理节点8a-8n每个都可包含M(M≥0)个处理器10、局部互连16及通过存储器控制器17访问的***存储器18。处理器10a-10m最好是(但不是必须是)完全一样的,并且可以是纽约Armonk的IBM公司出售的处理器的PowerPCTM线中的一个处理器。除了一般称为处理器核心12的寄存器、指令流逻辑及用来执行程序指令的执行单元之外,处理器10a-10m中的每一个都还包含一个用来从***存储器18将数据定级到相关的处理器核心12的单片高速缓存分级。每个高速缓存分级14包含至少一个高速缓存级并可包含,比如,一个高速缓存级1(L1)和一个高速缓存级1(L2),分别具有在8-32千字节(kB)和1-16兆字节(MB)之间的存储能力。一般此种高速缓存由高速缓存控制器管理,此管理器,除了其他功能之外,实施选定高速缓存线替换方案及相关协议。在本公开中,每个处理器10及其相关高速缓存分级14被认为是单个探究器(snooper)。
处理节点8a-8n中的每一个还包含一个连接于局部互连16和节点互连22中间的相应的节点控制器20。每个节点控制器20通过执行至少两种功能用作远方处理节点8的局部代理。首先,每个节点控制器20探究相关的局部互连16并便利局部通信事务(比如读出请求)传输到远方处理节点8。其次,每个节点控制器20探究节点互连22上的通信事务并且掌握相关局部互连16上的有关通信事务。在每个局部互连16上的通信都由仲裁器24控制。仲裁器24根据处理器10生成的总线请求信号调节对局部互连16的访问并如下面进一步所讨论的汇集对局部互连16上探究的通信事务的相关响应。
局部互连16通过中间总线桥26连接到中间总线桥30,后者可用作,比如,外部设备互连(PCI)局部总线。中间总线桥26既可提供处理器10可直接访问映射到总线存储器和/或输入/输出(I/O)地址空间的输入/输出(I/O)装置32和存储装置34之间的装置的低等待时间通路,又可以提供输入/输出(I/O)装置32和存储装置34访问***存储器18所通过的高带宽通路。输入/输出(I/O)装置32可包含,比如,显示装置、键盘、图形指示器及连接外部网络或附加装置的串口和并口。另一方面,存储装置34可包含为操作***和应用软件提供非易失性存储的光盘或磁盘。
存储器的组织
在非均匀存储器访问计算机***6中的所有处理器10共享一个物理存储空间,就是说每个物理地址只与***存储器18之一的一个位置相关联。于是,非均匀存储器访问计算机***6中的任何处理器10通常可访问的***存储器的整个内容就可看作是***存储器18之间的分区。比如,在本发明的具有4个处理节点8的实施例中,非均匀存储器访问计算机***可具有一个既包含通用存储器区又包含保留存储器区的16G字节(GB)的物理地址空间。通用存储器区划分为多个500MB的区段,4个处理节点8中的每一个都是每隔三个区段分配一个。内容大致为2GB的保留区包含***控制器及外部存储器及输入/输出区,每一个都分配处理节点8的一个相应的节点。
为了便于本讨论,在***存储器18中存储特定数据的处理节点8称为该数据的本地节点;反之,处理节点8a-8n的其他节点则称为特定数据的远方节点。
存储器相关性
因为非均匀存储器访问计算机***6之中的任何一个处理器10都可对存储于每个***存储器18中的数据提出请求、访问和修改,非均匀存储器访问计算机***6执行一个高速缓存相关协议以便既可以在同一处理节点中的高速缓存之间保持相关性,又可以在不同处理节点中的高速缓存之间保持相关性。于是,非均匀存储器访问计算机***6就恰当地分类为高速缓存相关非均匀存储器访问(CC-NUMA)计算机***。所执行的此专用高速缓存相关协议是与执行相关的,但在本发明的优选实施例中其构成包括多种众所周知的包含第五R(最近)状态的“修改、独占、共享、无效”(MESI)协议,在未决专利申请中有详细说明。如下面将详细讨论的,R状态容许保持有可共享的未修改高速缓存线的高速缓存可响应读出型请求(比如“目的为修改的读出”(RWITM))直接将高速缓存线定源于另一高速缓存。
在下文中,将假设高速缓存分级14及仲裁器24执行通常的R-MESI协议,其中节点控制器20识别M、S及I状态并考虑E状态合并到M状态及R状态合并到S状态。即节点控制器20假设由远方高速缓存独占保持的数据已经经过修改,无论数据实际上是否已经修改,并且对远方保持的数据不区别S和R状态。
互连体系结构
局部互连16就节点互连22每个都可应用于任何基于总线的广播体系结构,或基于转接的非广播体系结构。然而,在一优选实施例中,至少节点互连22是用作由IBM公司开发的6xx通信协议管理的基于转接的非广播互连。局部互连16及节点互连22容许分离事务,即意味着在地址和数据占用之间不存在构成通信事务的固定的定时关系,并且数据包的定序可以和相关地址包不同。利用局部互连16及节点互连22也最好是由流水线通信事务进行增强,这可以容许其后的通信事务在从每个接收方接收相关响应的前面的通讯事务的主机之前定源。
不论所实施的互连体系结构的类型或多种类型如何,至少三类“包”(此处所使用的包通指分立信息单位)-地址、数据及相关响应-是用来通过节点互连22在处理节点8之间和通过局部互连16在探究器之间传送信息。下面参考表I和表II,其中分别给出地址及数据包的定义。
表I
域名 | 描述 |
地址<0:7> | 用于定义通信事务的相关性、写通过及保护属性的变址 |
地址<8:15> | 用来确认通讯事务中的所有包的标识 |
地址<16:13> | 指示请求中的物理、虚拟或I/O地址的地址部分 |
AParity(A奇偶性)<0:2> | 指示地址位<0:63>的奇偶性 |
TDescripters(T描述符) | 指示通信事务的长度及类型 |
表II
域名 | 描述 |
数据<0:127> | 用于读出和写入通信事务的数据 |
数据奇偶性<0:15> | 指示数据线<0:127>的奇偶性 |
DTag(D标识)<0:7> | 用来匹配数据包和地址包的标识 |
DValid(D有效)<0:1> | 指示在数据及DTag域中是否存在有效信息 |
如表I及表II所示,为容许接收节点或探究器确定每个包所属的通信事务,利用通信事务标识确认通信事务中的每个包。本领域内行人士可以理解,可以利用附加的流控制逻辑及相关的流控制信号来调节有限通信资源的利用。
在每个处理节点8中,可在各探究器及仲裁器24之间就状态及相关响应进行通信。用于状态及相关响应通信的局部互连16之内的信号线总结与下面的表III中。
表III
信号名 | 描述 |
AStatOut<0:1> | 由每个总线接收方认定的向仲裁器指示流控制或错误信息的编码信号 |
AStatIn<0:1> | 由仲裁器响应由总线接收方认定的AStatOut信号的计数而认定的编码信号 |
ARespOut<0:2> | 由每个总线接收方认定的向仲裁器指示相关信息的编码信号 |
ARespIn<0:2> | 由仲裁器响应由总线接收方认定的AStatIn信号的计数而认定的编码信号 |
通过局部互连16的AResp及AStat线传输的状态及相关响应最好是具有与相关地址包的固定但可编程的定时关系。比如,可提供关于每个探究器是否已经顺利接收到在局部互连16上传播的地址包的初步指示的AStatOut表决可能在接收到地址包之后的第二循环中接收请求。仲裁器24汇集AStatOut表决并在固定但可编程的循环数目(比如1个循环)之后发出AStatIn表决。可能的AStat表决总结在下面的表IV。
表IV
AStat表决 | 意义 |
Null(空) | 空闲 |
Ack(确认) | 探究器接收事务 |
Error(错误) | 在事务中检测到奇偶性错误 |
Retry(重试) | 重试事务,通常用于流控制 |
在AStatIn周期之后,在固定但可编程的循环数目(比如2个循环)之后可能请求ARespOut表决。仲裁器24也汇集每个探究器的ARespOut表决并交付一ARespIn表决,最好是在下一个循环。可能的AResp表决最好是包含在表V中所列出的相关响应,在该表中以下降的优先权为序列出了这种AResp表决。
表V
相关响应 | 意义 |
重试 | 请求源必须重试事务-通常是对流控制响应 |
修改过的干预 | 在高速缓存中对线进行修改并从高速缓存定源于请求方 |
共享的干预 | 在高速缓存中对线未进行修改(并可能是共享的)并从高速缓存定源于请求方 |
重新运行(ReRun) | 探究的请求具有长等待时间并且将指示请求源以后重发事务 |
共享 | 在高速缓存中线保持共享 |
空 | 高速缓存中线无效 |
通常由节点控制器20发出的ReRun AResp表决指示探究的请求具有长等待时间(比如请求将由远方处理节点8上的处理器10或***存储器18提供服务),并且将指示请求源以后重发事务。这样,与Retry AResp表决相对照,ReRun使表决ReRun(并且不是事务的始发方)的事务的接收方负责使通讯事务以后重发。
节点控制器
下面参考图2,其中示出非均匀存储器访问计算机***6中的节点控制器20的更为详细的框图。如图2所示,连接在局部互连16和节点互连22之间的每个节点控制器20都包含事务接收单元(TRU)40、事务发送单元(TSU)42、数据接收单元(DRU)44及数据发送单元(DSU)46。TRU 40、TSU 42、DRU 44及DSU 46可利用域可编程门阵列(EPGA)或专用集成电路(ASIC)实现。如前所述,通过节点控制器20的地址及数据通路是分叉的,地址(及相关性)包由事务接收单元(TRU)40及事务发送单元(TSU)42处理,而数据包由数据接收单元(DRU)44及数据发送单元(DSU)46处理。
事务接收单元(TRU)40(其所以这样标记就是表示从节点互连22向外的事务流)负责从节点互连22接收地址及相关性包、向局部互连16发出事务并向事务发送单元(TSU)42转送响应。事务接收单元(TRU)40包含从节点互连22接收包并将选择的包转发给总线主控器54及事务发送单元(TSU)42中的相关响应逻辑56的响应多路复用器(mux)52。作为对从响应多路复用器(mux)52接收地址包发出的响应,总线主控器54可在其局部互连16上启动与接收的地址包所指示的通信事务相同或不同的通信事务。
事务发送单元(TSU)42,顾名思义,是流向节点互连22的事务管道,包含一个临时存储定源于节点互连22的有待完成的通信事务的属性的多入口未决缓冲器60。存储于未决缓冲器60的一个入口中的事务属性最好是至少包含事务的地址(包括标识)、事务的类型及预期的相关响应的数目。每个未决缓冲器入口都具有一个既可设定为表示未决缓冲器入口可删除的“空(Null)”,或是设定为表示事务仍然是未决的ReRun的相关的状态。除了将节点互连22上地址包定源之外,事务发送单元(TSU)42与事务接收单元(TRU)40交互以处理存储器请求事务并向数据接收单元(DRU)44及数据发送单元(DSU)46发出命令控制局部互连16和节点互连22之间的数据传输。事务发送单元(TSU)42也对具有相关响应逻辑56的节点互连22应用所选择的(即MSI)相关协议并保持具有目录控制逻辑58的相关目录50。
相关目录50存储转到局部处理节点是其本地节点的远方节点中的高速缓存中的数据的***存储器地址的指示(比如,高速缓存线)。对每个高速缓存线的地址指示是与具有高速缓存线拷贝的每个远方节点的标识符及在每个这种远方处理节点处的高速缓存线的相关状态结合起来进行存储的。相关目录50中的条目的可能相关状态总结与表VI。
表VI
相关目录状态 | 局部高速缓存中的可能状态 | 远方高速缓存中的可能状态 | 意义 |
修改的(M) | I | M、E或I | 高速缓存线可在远方节点处相对本地节点处的***存储器修改 |
共享的(S) | R、S或I | R、S或I | 高速缓存线可在远方节点处非独占地保持 |
无效的(I) | R、M、E、S或I | I | 高速缓存线不由任何远方节点保持 |
未决-共享 | R、S或I | R、S或I | 高速缓存线正处于在远方节点处进行无效化处理的过程中 |
未决-修改 | I | M、E或I | 可在远方修改的高速缓存线正处于回写到本地节点的***存储器中的过程中,可能与远方节点处的无效化一起 |
如表VI所示,由远方处理节点保持的高速缓存线的相关状态的知识是不精确的。这种不精确是由于远方保持的高速缓存线可从R、S或E过渡到I或从E过渡到M而不通知本地节点的节点控制器20。
共享干预概述
为了减小处理器读出型请求的等待时间,本发明支持共享干预,即由响应读出型请求保持数据为未修改(即E或R)状态的高速缓存对数据的定源。因为非均匀存储器访问计算机***6中的多高速缓存可并发地保持同一未修改的高速缓存线,就请求有某一机制来调节由哪一个高速缓存通过共享干预对所请求的高速缓存线定源。如上述的参考未决专利申请所述,该机制就是R(最近)高速缓存相关状态。根据本发明,只有特定处理节点8中的一个高速缓存分级14可使特定的高速缓存线在任何一个时候都保持处于R状态;然而,在多处理节点8中的高速缓存分级14可并发地保持同一高速缓存线处于R状态。
本发明支持响应所有READ(读出)事务保持于R状态及E状态中的高速缓存线的共享干预并支持响应事务保持于E状态的高速缓存线的共享干预。响应RWITM事务保持于R状态的高速缓存线的共享干预最好是禁用,因为必须是这种RWITM事务对所有的处理节点8为可见以便维持相关性。不禁用RWITM事务所请求的R状态的高速缓存线的共享干预就需要另外附加事务开销以通知通过共享干预由本地服务的RWITM事务的其他处理节点8,并且这一附加事务开销如果不是消除也将会极大地减小共享干预的性能的好处。
在请求高速缓存分级上所请求的高速缓存线的相关状态
响应在利用RWITM事务时接收所请求的高速缓存线,请求的高速缓存分级14总是将高速缓存线存储于修改状态。然而,响应READ事务而得到高速缓存线的相关状态取决于所请求的高速缓存线的源。下面的表VII总结了在读出失误之后发出请求高速缓存线的READ事务的高速缓存分级14的状态过渡。
表VII
主状态过渡 | 接收的ARespIn表决 | 数据源 |
I-R | 共享 | ***存储器或节点控制器 |
I-E | 空 | ***存储器或节点控制器 |
I-R | 共享干预 | 探究器 |
I-R | 修改干预 | 探究器 |
可见,如高速缓存分级14接收ARespIn“共享”相关表决,高速缓存分级14的高速缓存控制器“了解”在同一处理节点8中没有另一探究器保持所请求的高速缓存线于R状态或M状态以及所请求的高速缓存线将由局部***存储器18或远方***存储器18通过节点控制器20提供。因此,当请求高速缓存分级14通过局部互连16接收所请求的高速缓存线时,高速缓存分级14的高速缓存控制器对高速缓存线进行高速缓存并将其相关状态设定为Recent(最新),它意味着在保持所请求的高速缓存线的多高速缓存分级14中请求高速缓存分级14负责通过共享干预为所请求的高速缓存线定源。
如请求高速缓存分级14响应读出请求接收一ARespIn Null(空)相关表决,则请求高速缓存分级14的高速缓存控制器“了解”没有局部高速缓存分级14存储所请求的高速缓存线的拷贝并且所请求的高速缓存线将由局部***存储器18或远方***存储器通过节点控制器20定源。当所请求的高速缓存线为请求高速缓存分级14所接收时,所请求的高速缓存线以“Exclusive(独占)”状态存储。
如请求高速缓存分级14接收ARespIn“共享”干预或“修改”干预表决,则提出请求的处理器10上的高速缓存控制器“了解”所请求的高速缓存线将由同一处理节点10中的另一探究器定源,并且在接收到所请求的高速缓存线时将其存储于R状态。
在探究的高速缓存分级上所请求的高速缓存线的相关状态
探究RWITM事务的高速缓存分级14总是将所请求的高速缓存线(如存在时)的拷贝的相关状态更新为“无效的”状态。探究的高速缓存分级14响应接收到根据优选实施例的READ(读出)事务的状态过渡总结于下面的表VIII中。
表VIII
探究器状态或状态过渡 | 探究器ARespOut表决 |
I | 空 |
E、R→S | 共享干预 |
M→S | 修改干预 |
S | 共享 |
如表VIII所示,如高速缓存分级14探究READ(读出)请求并将所请求的高速缓存线保持于“Exclusive(独占)”状态或Recent(最新)状态,则探究的高速缓存分级14提供“共享”干预ARespOut表决,响应从仲裁器24发出的接收到“共享”干预ARespOut表决将所请求的高速缓存线定源于局部互连16上,并将其所请求的高速缓存线的拷贝的相关状态更新为共享状态。与此类似,如高速缓存分级14探究由局部处理器10发出的READ(读出)请求并将所请求的高速缓存线保持于修改状态,则探究的高速缓存分级14提供“修改”干预ARespOut表决,响应接收到“修改”干预ARespIn表决将所请求的高速缓存线定源于局部互连16上,并将其所请求的高速缓存线的拷贝的相关状态更新为“共享”状态。另一方面,如探究的高速缓存分级14提供适合的ARespOut表决(即分别为“共享”或“空”)并不对所请求的高速缓存线定源。
对于表VII及VIII中未示出那些状态及操作,高速缓存分级14的相关状态过渡及相关响应根据现有技术的MESI协议处理,对待Recent(最新)状态与“共享”状态一样。
节点控制器的相关协议性能
节点控制器20响应启用共享干预的读出型事务的相关性能取决于请求高速缓存分级14及有关节点控制器20相对所请求的高速缓存线的本地节点的位置。一般讲,在非均匀存储器访问(NUMA)计算机***中请求可能有4种不同的情况:
(1)所请求的高速缓存线的本地节点上的处理器的请求由本地节点的节点控制器接收;
(2)远方节点上的处理器的请求由所请求的高速缓存线的本地节点的节点控制器接收;
(3)远方节点(相对高速缓存线)上的处理器的请求由处理器本身的节点控制器接收;以及
(4)远方节点上的处理器的请求由远方节点的节点控制器接收。
下面的表IX总结了上列第1种情况中的节点控制器响应接收READ(读出)事务的性能。如表中所示,当本地节点的节点控制器20从局部处理器10接收到READ(读出)事务并且指示所请求的高速缓存线为相关目录50中的远方处理节点8处的“修改的”时,节点控制器20表决ARespOut ReRun并将READ(读出)事务转移到所指示的响应从仲裁器24接收ARespIn ReRun启用了干预(即N=1)的远方处理节点8。如所请求的高速缓存线在远方处理节点8上有效(“修改的”或“Exclusive(独占)的”),则远方处理节点8就通过修改的或共享的干预向节点控制器20提供所请求的高速缓存线的更新的拷贝;否则(即所请求的高速缓存线在远方处理节点8处无效)远方处理节点8将向节点控制器20提供“空”响应。
无论在哪一种情况下,节点控制器20都将请求局部处理器10重新发送READ(读出)事务。响应接收到重新发送的READ(读出)事务,如高速缓存线由“修改的”干预定源,则节点控制器20表决ARespOut“修改的干预”(MI),如所请求的高速缓存线由“共享的”干预定源,则节点控制器20表决ARespOut“共享的干预”(SI),并且否则表决“空”。如节点控制器20接收对重新发送的READ(读出)事务(R=1)的ARespIn MI或SI表决,则节点控制器20将所请求的高速缓存线定源于局部互连16并更新相关目录50中的所请求高速缓存线的相关状态为“共享的”。另一种情况是如仲裁器24发出ARespIn“空”表决,则***存储器18将所请求的高速缓存线定源于提出请求的处理器10,并且节点控制器更新所请求的高速缓存线的相关状态为“无效的”。如所请求的高速缓存线在相关目录50中指示为“共享的”或“无效的”并且ARespIn表决为“共享的”或“空”,则***存储器18同样对所请求的高速缓存线定源。然而,在这些场合下,READ(读出)事务不转移到任何远方处理节点8。
表IX
目录状态 | ARespOut(R=0/R=1) | ARespIn(R=0) | ARespIn(R=1) | 节点互连事务 |
M→S | 重新运行/SI,MI | 重新运行 | SI,MI | 读出(N=1) |
M→I | 重新运行/“空” | 重新运行 | “空” | 读出(N=1) |
S | “共享的” | “共享的” | 无(na) | 无(na) |
响应接收到RWITM事务时节点控制器20的操作与表IX所示一样,但有下述区别。首先,在相关目录50中的所请求的高速缓存线的相关状态在所有的场合都更新为或保持为“无效的”。第二,RWITM事务,不是READ(读出),由节点控制器20转移到在相关目录50中指示的作为保持所请求的高速缓存线于“修改的”状态的远方处理节点8(如存在)。第三,如所请求的高速缓存线在相关目录50中指示在远方处理节点8处为“共享的”时,则节点控制器20发出DClaim事务给远方处理节点8以使远方处理节点8处所请求的高速缓存线的拷贝无效。
下面参考表X,其中总结了第二种情况下的节点控制器的操作,在第二种情况下由远方节点的处理器进行的READ事务是由所请求的高速缓存线的本地节点的节点控制器20通过节点互连22接收的。如上所述,如所请求的高速缓存线在相关目录50中指示在远方处理节点8为“无效的”,则节点控制器20在ARespOut期间表决“空”并且,响应SI或“空”ARespIn的表决及其后所请求的高速缓存线,向提出请求的处理节点8提供所请求的高速缓存线。节点控制器20也将相关目录50中的高速缓存线的状态从“无效的”更新为“共享的”。如在提出请求的处理节点8所请求的高速缓存线指示为“共享的”时,节点控制器20的性能作用类似,不过不更新高速缓存线的相关状态。
如表X中的第3至第5行所示,如所请求的高速缓存线在相关目录50中指示为在与本地节点及提出请求的处理节点8不同的第3节点处为“修改的”,则节点控制器20必须执行附加的操作。特别是,节点控制器20表决ARespOut ReRun以使第1局部READ(读出)事务(R=0)在以后重新发出。之后,节点控制器20将READ(读出)事务转移到第3节点以确认所请求的高速缓存线在第3节点处是否经过修改。由于相关目录50所利用的相关协议的不精确性,存在3种可能性:(1)所请求的高速缓存线在第3节点处经过修改(第4行);(2)所请求的高速缓存线在第3节点处保持在“Exclusive(独占)”状态(第3行);或(3)所请求的高速缓存线在第3节点处为“无效的”(第5行)。如所请求的高速缓存线在第3节点处为“修改的”或“Exclusive(独占)”,则第3节点通过干预将所请求的高速缓存线定源于节点控制器20;否则第3节点对转移的READ(读出)事务的响应为“空”响应。当节点控制器20在本地节点(R=1)重新发出READ(读出)事务时,节点控制器20表决ARespIn“修改的干预(MI)”,SI或“空”,取决于从第3节点接收的响应。节点控制器20就响应ARespIn MI或SI将所请求的高速缓存线定源于提出请求的处理节点8,或是响应ARespIn“空”表决将从本地节点的***存储器18接收的所请求的高速缓存线的拷贝转移。如在第3节点处所请求的高速缓存线有效,节点控制器20也将把相关目录50中的所请求的高速缓存线的相关状态从“修改的”更新为“共享的”,如在第3节点处所请求的高速缓存线“无效的”,将从“修改的”更新为“无效的”。
表X
目录状态 | ARespOut(R=0/R=1) | ARespIn(R=0) | ARespIn(R=1) | 节点互连事务 |
I→S | “空” | SI或“空” | 无 | 无 |
S | S | SI,S | 无 | 无 |
M→S | 重新运行/SI | 重新运行 | SI | 读出(N=1) |
M→S | 重新运行/MI | 重新运行 | MI | 读出(N=1) |
M→I | 重新运行/”空” | 重新运行 | “空” | 读出(N=1) |
如在节点控制器20处接收的读出型事务是RWITM事务而不是READ(读出)事务,则节点控制器20的操作将与表X中列出的非常相似,只有下述的差异。在前面两行,在存储器目录50中的相关状态将更新为“修改的”,并且在第3至第5行,在所有3种场合相关状态将更新为“无效的”。在第3至第5行,在节点互连22向第3节点发出的事务也将是RWITM事务而不是READ(读出)事务。
下面参考表XI,其中总结了第三种情况下的节点控制器的操作,在第三种情况下由远方节点(相对于所请求的高速缓存线)的处理器进行的READ事务是由提出请求的处理器节点的节点控制器20通过局部互连16接收的。表XI未指出所请求的高速缓存线的可能的相关状态过渡,因为只有在本地节点的相关目录50跟踪相关状态。
如表XI的第1列中所指出,节点控制器20在每个操作情况下都表决ReRun ARespOut以指示所请求的高速缓存线是处于分配给不同处理节点8的物理存储空间之内。除非READ(读出)事务可由共享的或修改的干预在本地进行服务,如在第6行所示,仲裁器24将READ(读出)事务转移到所请求的高速缓存线的本地节点。之后对本地节点READ(读出)事务进行最后相关响应提供节点控制器20,并且如相关响应不是Retry(重试),还与所请求的高速缓存线一起。当在提出请求的处理节点8重新发出READ请求时,节点控制器20提供在ARespOut期间从本地节点接收的相关响应,并在ARespIn表决不是Retry(重试)时提供所请求的高速缓存线。应该指出,除了转移到第1至第5行的每一个之中的本地节点的事务将是RWITM事务之外,对RWITM事务的操作与在表XI中给出的将一样。
表XI
ARespOut(R=0/R=1) | ARespIn(R=0) | ARespIn(R=1) | 节点互连事务 |
重新运行/“空” | 重新运行 | “空” | 读出(N=1) |
重新运行/S | 重新运行 | S | 读出(N=1) |
重新运行/SI | 重新运行 | SI | 读出(N=1) |
重新运行/MI | 重新运行 | MI | 读出(N=1) |
重新运行/重试 | 重新运行 | 重试 | 读出(N=1) |
重新运行 | SI或MI | 无 | 无 |
最后,下面参考表XII,其中总结了第四种情况下的节点控制器20的操作,在第四种情况下提出请求的处理器10及节点控制器20两者都驻留在相对在READ事务中指定的高速缓存线的本地节点的远方(第3)节点处。如上所示,节点控制器20,响应其任何运行在请求具有另一节点作为其本地节点的高速缓存线的局部互连16上的READ(读出)事务,表决ARespOut“空”。节点控制器20将由READ(读出)事务接收到的ARespIn转移到本地节点,并且在局部ARespIn表决为“修改的干预”或“共享的干预”时也提供所请求的高速缓存线。如读出型事务为RWITM事务,节点控制器20的操作将于表XII中示出的相同。
表XII
ARespOut | ARespIn |
“空” | “空”,S |
“空” | SI,MI |
如上所示,本发明通过支持数据共享干预可提供能有利地减少节点间读出请求的数目的非均匀存储器访问(NUMA)计算机***并减小读出请求的等待时间。根据本发明,每个处理节点可具有一个将同一高速缓存线保持于非独占Recent状态中的探究器(比如高速缓存级),该探究器可通过共享干预对高速缓存线定源。重要的是通过在处理节点上的共享干预定源高速缓存线经常不请求通知任何其他处理节点或通过节点互连转移事务。
虽然本发明是参考优选实施例具体示出和描述的,但本领域的内行人士可以理解其中的形式和细节可做各种改变而不脱离本发明的精神和范围。
Claims (12)
1.一种计算机***,包括:
节点互连;
每个都连接到所述节点互连的第一和第二处理节点,其中所述第一处理节点包含一个***存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,所述第一及第二高速缓存分级由局部互连连接,并且其中所述第二处理节点至少包含***存储器及具有第三高速缓存分级的第三处理器;
其中所述第一高速缓存分级和所述第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对所述特定高速缓存线的拷贝定源,并且其中响应所述第二高速缓存分级对所述特定高速缓存线请求,所述第一高速缓存分级通过只利用所述局部互连通信而不利用所述节点互连通信的共享干预将所述特定高速缓存线拷贝定源于所述第二高速缓存分级。
2.如权利请求1的计算机***,其中所述请求是READ(读出)请求。
3.如权利请求1的计算机***,其中如果所述第一高速缓存级存储所选择的高速缓存线的未修改的拷贝,则所述第一高速缓存级只有在所述选择的高速缓存线是由所述第一高速缓存级保持于“Exclusive(独占)”状态时才响应RWITM(“目的为修改的读出”)请求通过共享干预将所选择的所述高速缓存线的拷贝定源。
4.如权利请求1的计算机***,其中所述第一和第二处理节点每一个都包含连接到所述节点互连的节点控制器,每个节点控制器都具有指示从远方保持的高速缓存线的可能的相关状态的相关目录,对它们而言包含该节点控制器的处理节点是本地节点。
5.如权利请求4的计算机***,其中每个相关目录利用单个相关状态追踪可从远方保持于“共享的”或“Recent(最新)”状态的高速缓存线。
6.如权利请求4的计算机***,其中在所述第一处理节点上的节点控制器,只有在所述第一处理节点的所述节点控制器的所述相关目录指示所述请求的高速缓存线在所述第二处理节点是修改的时候,才将对所述第一处理节点是其本地节点的高速缓存线的请求转发到所述第二处理节点。
7.一种计算机***中的通信方法,在该计算机***中包含每个都连接到节点互连的第一和第二处理节点,其中所述第一处理节点包含一个***存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,所述第一及第二高速缓存分级由局部互连连接,并且其中所述第二处理节点至少包含***存储器及具有第三高速缓存分级的第三处理器,所述方法包含:
在所述第一高速缓存分级和所述第三高速缓存分级中可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对所述特定高速缓存线的拷贝定源;并且
其中响应所述第二高速缓存分级的请求,所述第一高速缓存分级通过只利用所述局部互连通信而不利用所述节点互连通信的共享干预将所述特定高速缓存线拷贝定源于所述第二高速缓存分级。
8.如权利请求7的方法,其中所述请求是READ(读出)请求。
9.如权利请求7的方法,其构成还包括:
在所述第一高速缓存级中存储所选择的高速缓存线未修改的拷贝;并且
只有在所述选择的高速缓存线是保持于“Exclusive(独占)”状态时才响应RWITM(“目的为修改的读出”)请求通过共享干预将所选择的所述高速缓存线的拷贝定源。
10.如权利请求7的方法,其中所述第一和第二处理节点每一个都包含连接到所述节点互连的节点控制器,每个节点控制器都具有相关目录,所述方法还包括:
指示在每个节点控制器的相关目录中的从远方保持的高速缓存线的可能的相关状态,对它们而言包含该节点控制器的处理节点是本地节点。
11.如权利请求10的方法,还包括:
在每个相关目录中利用单个相关状态追踪可从远方保持于“共享的”或“Recent(最新)”状态的高速缓存线。
12.如权利请求10的方法,其构成还包括:
只有在所述第一处理节点的所述节点控制器的所述相关目录指示所述请求的高速缓存线在所述第二处理节点是修改的时候,才从所述第一处理节点上的节点控制器将对所述第一处理节点是其本地节点的高速缓存线的请求转发到所述第二处理节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/248,503 US6115804A (en) | 1999-02-10 | 1999-02-10 | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
US09/248,503 | 1999-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1263312A true CN1263312A (zh) | 2000-08-16 |
CN1116643C CN1116643C (zh) | 2003-07-30 |
Family
ID=22939435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99127097A Expired - Fee Related CN1116643C (zh) | 1999-02-10 | 1999-12-29 | 具有共享干预支持的非均匀存储器访问数据处理***及方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6115804A (zh) |
JP (1) | JP3644587B2 (zh) |
KR (1) | KR100318104B1 (zh) |
CN (1) | CN1116643C (zh) |
CA (1) | CA2295403A1 (zh) |
GB (1) | GB2349721B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100451949C (zh) * | 2004-02-27 | 2009-01-14 | 印芬龙科技股份有限公司 | 带有共享内容的异构型并行多线程处理器(hpmt) |
CN100489815C (zh) * | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的***和装置及方法 |
CN105743803A (zh) * | 2016-01-21 | 2016-07-06 | 华为技术有限公司 | 一种共享缓存的数据处理装置 |
CN106202139A (zh) * | 2015-06-01 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 通过缓冲入口数据增强云存储***中数据一致性的数据存储方法和设备 |
CN107025144A (zh) * | 2015-10-21 | 2017-08-08 | 罗伯特·博世有限公司 | 用于写入以及读取数据集的方法 |
CN111279323A (zh) * | 2017-11-10 | 2020-06-12 | 国际商业机器公司 | 通过多个处理器对共享高速缓存行的并发修改 |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192452B1 (en) * | 1999-02-26 | 2001-02-20 | International Business Machines Corporation | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system |
US6591348B1 (en) * | 1999-09-09 | 2003-07-08 | International Business Machines Corporation | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system |
US6591341B1 (en) * | 2000-03-31 | 2003-07-08 | Intel Corporation | Multilevel cache system and method having a merged tag array to store tags for multiple data arrays |
US6654858B1 (en) * | 2000-08-31 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol |
US6745257B2 (en) * | 2001-01-04 | 2004-06-01 | International Business Machines Corporation | Method, system, and program for providing status in a multi-processing node system |
US6918012B2 (en) * | 2001-08-28 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Streamlined cache coherency protocol system and method for a multiple processor single chip device |
FR2832859B1 (fr) * | 2001-11-28 | 2004-01-09 | Commissariat Energie Atomique | Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium |
EP1483672A4 (en) * | 2002-02-28 | 2008-03-26 | Silicon Graphics Inc | METHOD AND SYSTEM FOR CACHED MEMORY COHERENCE IN A MULTIPROCESSOR SYSTEM WITHOUT INCREASING THE SHARING VECTOR |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
JP4077329B2 (ja) * | 2003-01-31 | 2008-04-16 | 株式会社東芝 | トランザクション処理システム、並行制御方法及びプログラム |
US7085898B2 (en) | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
US6988173B2 (en) * | 2003-05-12 | 2006-01-17 | International Business Machines Corporation | Bus protocol for a switchless distributed shared memory computer system |
US7788452B2 (en) * | 2004-01-20 | 2010-08-31 | International Business Machines Corporation | Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches |
US7958262B2 (en) * | 2004-10-22 | 2011-06-07 | Microsoft Corporation | Allocating and reclaiming resources within a rendezvous federation |
US8549180B2 (en) | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
US8095600B2 (en) * | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US20080288659A1 (en) | 2006-11-09 | 2008-11-20 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US8014321B2 (en) * | 2004-10-22 | 2011-09-06 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US7730220B2 (en) * | 2004-10-22 | 2010-06-01 | Microsoft Corporation | Broadcasting communication within a rendezvous federation |
US20110082928A1 (en) * | 2004-10-22 | 2011-04-07 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US7694167B2 (en) * | 2004-10-22 | 2010-04-06 | Microsoft Corporation | Maintaining routing consistency within a rendezvous federation |
US20060090003A1 (en) * | 2004-10-22 | 2006-04-27 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US8095601B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US8392515B2 (en) * | 2004-10-22 | 2013-03-05 | Microsoft Corporation | Subfederation creation and maintenance in a federation infrastructure |
US7360032B2 (en) * | 2005-07-19 | 2008-04-15 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks |
US7395376B2 (en) * | 2005-07-19 | 2008-07-01 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks |
JP4335298B2 (ja) * | 2006-02-24 | 2009-09-30 | 富士通株式会社 | スヌープ制御方法および情報処理装置 |
WO2007099583A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
US7698505B2 (en) * | 2006-07-14 | 2010-04-13 | International Business Machines Corporation | Method, system and computer program product for data caching in a distributed coherent cache system |
US8195890B1 (en) * | 2006-08-22 | 2012-06-05 | Sawyer Law Group, P.C. | Method for maintaining cache coherence using a distributed directory with event driven updates |
US8566533B1 (en) | 2009-09-30 | 2013-10-22 | Netlogic Microsystems, Inc. | System, method, and computer program product for conditionally sending a request for data to a node based on a determination |
US8438337B1 (en) * | 2009-09-30 | 2013-05-07 | Netlogic Microsystems, Inc. | System and method for conditionally sending a request for data to a home node |
US8478877B2 (en) * | 2010-02-24 | 2013-07-02 | Oracle International Corporation | Architecture-aware allocation of network buffers |
US9152501B2 (en) * | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
US10489323B2 (en) | 2016-12-20 | 2019-11-26 | Arm Limited | Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave |
NO343359B1 (en) | 2017-05-02 | 2019-02-11 | Numascale As | Interconnect switch in multiprocessor systems |
CN109388490B (zh) * | 2017-08-07 | 2020-11-17 | 华为技术有限公司 | 一种内存分配方法和服务器 |
US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673413A (en) * | 1995-12-15 | 1997-09-30 | International Business Machines Corporation | Method and apparatus for coherency reporting in a multiprocessing system |
US5710907A (en) * | 1995-12-22 | 1998-01-20 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5860159A (en) * | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Multiprocessing system including an apparatus for optimizing spin--lock operations |
US5878268A (en) * | 1996-07-01 | 1999-03-02 | Sun Microsystems, Inc. | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node |
US5887138A (en) * | 1996-07-01 | 1999-03-23 | Sun Microsystems, Inc. | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes |
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
US5940856A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Cache intervention from only one of many cache lines sharing an unmodified value |
US5943684A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system |
US5943685A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method of shared intervention via a single data provider among shared caches for SMP bus |
US5963974A (en) * | 1997-04-14 | 1999-10-05 | International Business Machines Corporation | Cache intervention from a cache line exclusively holding an unmodified value |
-
1999
- 1999-02-10 US US09/248,503 patent/US6115804A/en not_active Expired - Fee Related
- 1999-12-29 CN CN99127097A patent/CN1116643C/zh not_active Expired - Fee Related
-
2000
- 2000-01-13 CA CA002295403A patent/CA2295403A1/en not_active Abandoned
- 2000-01-18 GB GB0000996A patent/GB2349721B/en not_active Expired - Fee Related
- 2000-01-27 KR KR1020000003994A patent/KR100318104B1/ko not_active IP Right Cessation
- 2000-02-08 JP JP2000031050A patent/JP3644587B2/ja not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100451949C (zh) * | 2004-02-27 | 2009-01-14 | 印芬龙科技股份有限公司 | 带有共享内容的异构型并行多线程处理器(hpmt) |
CN100489815C (zh) * | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的***和装置及方法 |
CN106202139A (zh) * | 2015-06-01 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 通过缓冲入口数据增强云存储***中数据一致性的数据存储方法和设备 |
CN106202139B (zh) * | 2015-06-01 | 2019-08-20 | 阿里巴巴集团控股有限公司 | 通过缓冲入口数据增强云存储***中数据一致性的数据存储方法和设备 |
CN107025144A (zh) * | 2015-10-21 | 2017-08-08 | 罗伯特·博世有限公司 | 用于写入以及读取数据集的方法 |
CN107025144B (zh) * | 2015-10-21 | 2022-04-05 | 罗伯特·博世有限公司 | 用于写入以及读取数据集的方法 |
CN105743803A (zh) * | 2016-01-21 | 2016-07-06 | 华为技术有限公司 | 一种共享缓存的数据处理装置 |
CN105743803B (zh) * | 2016-01-21 | 2019-01-25 | 华为技术有限公司 | 一种共享缓存的数据处理装置 |
CN111279323A (zh) * | 2017-11-10 | 2020-06-12 | 国际商业机器公司 | 通过多个处理器对共享高速缓存行的并发修改 |
CN111279323B (zh) * | 2017-11-10 | 2023-10-31 | 国际商业机器公司 | 通过多个处理器对共享高速缓存行的并发修改 |
Also Published As
Publication number | Publication date |
---|---|
JP3644587B2 (ja) | 2005-04-27 |
KR100318104B1 (ko) | 2001-12-22 |
US6115804A (en) | 2000-09-05 |
GB2349721A (en) | 2000-11-08 |
GB0000996D0 (en) | 2000-03-08 |
CN1116643C (zh) | 2003-07-30 |
KR20000076539A (ko) | 2000-12-26 |
JP2000242621A (ja) | 2000-09-08 |
CA2295403A1 (en) | 2000-08-10 |
GB2349721B (en) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1116643C (zh) | 具有共享干预支持的非均匀存储器访问数据处理***及方法 | |
CN1157659C (zh) | 非均匀存储器访问数据处理***及其通信方法 | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
US5749095A (en) | Multiprocessing system configured to perform efficient write operations | |
US6738868B2 (en) | System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes | |
EP0817071B9 (en) | A multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
CN1116642C (zh) | 避免由于取消事务处理造成数据丢失的方法和*** | |
KR100324975B1 (ko) | 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템 | |
US6546429B1 (en) | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry | |
JP3900479B2 (ja) | システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
CN1114865C (zh) | 用于避免冲突回写造成的活锁的方法和*** | |
US20010037419A1 (en) | Multiprocessing system configured to perform efficient block copy operations | |
EP0817042A2 (en) | A multiprocessing system including an apparatus for optimizing spin-lock operations | |
WO1995025306A2 (en) | Distributed shared-cache for multi-processors | |
CN1156771C (zh) | 用于在非均匀存储器存取计算机***内提供逐出协议的方法和*** | |
JPH10149342A (ja) | プリフェッチ動作を実行するマルチプロセス・システム | |
EP1652091B1 (en) | Methods and apparatus for providing early responses from a remote data cache | |
EP0981092A2 (en) | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
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: 20030730 Termination date: 20100129 |