CN1898653A - 用于互连网络上高效的有序储存的方法和装置 - Google Patents
用于互连网络上高效的有序储存的方法和装置 Download PDFInfo
- Publication number
- CN1898653A CN1898653A CNA2004800384735A CN200480038473A CN1898653A CN 1898653 A CN1898653 A CN 1898653A CN A2004800384735 A CNA2004800384735 A CN A2004800384735A CN 200480038473 A CN200480038473 A CN 200480038473A CN 1898653 A CN1898653 A CN 1898653A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- store request
- order
- orderly store
- orderly
- 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
- 238000000034 method Methods 0.000 title claims description 21
- 230000015654 memory Effects 0.000 claims abstract description 355
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 21
- 230000008878 coupling Effects 0.000 claims description 10
- 238000010168 coupling process Methods 0.000 claims description 10
- 238000005859 coupling reaction Methods 0.000 claims description 10
- 230000003111 delayed effect Effects 0.000 claims 1
- 239000000203 mixture Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000005755 formation reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000708741 Homo sapiens Transcription factor RelB Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 102100032727 Transcription factor RelB Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Landscapes
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
物理分布式缓存存储器系统包括互连网络、第一级缓存存储器片以及第二级缓存存储器片。第一级缓存存储器片被耦合到互连网络,以生成带标签的有序储存请求。每个带标签的有序储存请求具有包括请求方标识和储存次序令牌的标签。第二级缓存存储器片被耦合到互连网络,以响应于带标签的有序储存请求的每个标签,在整个物理分布式缓存存储器系统上按序执行有序储存请求。
Description
发明背景
1.发明领域
本发明总地涉及缓存(cache)存储器管理,并且更具体地,涉及提供对无序(unordered)网络上共享的分布式缓存存储器系统的有序储存。
2.背景信息
已知为了提高对慢速主存储器的平均访问时间,在处理器和慢速主存储器间使用快速缓存存储器。使用缓存存储器可以提高处理器的执行性能。最初缓存存储器与处理器是分开的,但是随着技术进步,缓存存储器成为处理器的集成部分。由于缓存存储器是处理器的集成部分,因此可以进一步地减少对缓存存储器的访问时间。
多级缓存存储器被引入到处理器和主存储器之间。通常,随缓存存储器的速度增加,缓存存储器离处理器越近,则缓存存储器的尺寸也随之减小。换言之,通常随缓存存储器的尺寸增加以及访问时间增长,缓存存储器离处理器也越远。然而,多级缓存存储器使缓存的管理变得复杂,特别是当指令分支跳转到另一指令或寻址到存储器时。
使用处理器内部或外部的存储器控制器或缓存控制器来提供对于主存储器和处理器之间的缓存存储器的缓存管理。引入了各种缓存存储器管理算法来最大化缓存存储器的使用,并减少需要处理器从慢速主存储器中读取数据/指令或向慢速主存储器写入数据/指令的缓存未命中(miss)次数。引入了缓存一致性(coherence)协议,以通过跟踪可能被共享的数据块的状态来维护储存在缓存存储器中的数据的一致性。已经引入了其他缓存存储器管理算法。
附图简要说明
图1示出可以利用本发明的典型计算机系统的框图。
图2A示出可以利用本发明的中央处理单元的框图。
图2B示出可以利用本发明的多处理器中央处理单元的框图。
图3A示出可以利用本发明的多处理器系统的实施方案的框图。
图3B示出可以利用本发明的多处理器系统的另一实施方案的框图。
图3C示出可以利用本发明的多处理器系统的另一实施方案的框图。
图4示出逻辑上共享的物理分布式缓存存储器系统的框图。
图5A示出带标签的有序储存请求的典型字段的图。
图5B示出CSA更新的典型字段的图。
图6A示出缓存存储器片(slice)的框图。
图6B示出缓存次序阵列(CSA)的框图。
图7示出有序储存请求的示例性按序执行次序的框图。
图8示出由请求方(requestor)的控制逻辑执行的控制函数的流程图,所述函数用于支持带标签的有序储存请求。
图9A示出由每个缓存存储器片的控制逻辑执行的控制函数的流程图,所述函数用于确定是否可以处理有序储存请求。
图9B示出由每个缓存存储器片的控制逻辑执行的控制函数的流程图,所述函数用于处理标签(tag)更新。
具体实施方式
在以下对本发明的详细描述中阐述了大量具体的细节,以提供对本发明的完整理解。然而本领域技术人员将清楚,无需这些具体的细节就可以实践本发明。此外,没有详细示出公知的方法、过程、组件(component)和电路,以免不必要地模糊本发明的方面。
本发明的一个实施方案提出具有多个处理器的系统,所述多个处理器共享逻辑上共享的物理分布式缓存。所述多个处理器通过互连网络与物理分布式缓存进行通信。所述互连网络是无序网络,它不保留从一个处理器或缓存(“请求方”)向相同或不同缓存提出的请求的顺序。此外,网络也不是按序保存一个缓存通过该互联网络向另一个缓存发送的消息。然而,消息可能要求按照它们被请求方发送的顺序执行。这些消息可以被称为有序请求(ordered request)。不要求按序执行的消息可以被称为非有序请求(non-ordered request)。由请求方发出的储存请求可以是有序储存请求或非有序储存请求。
有序请求的子集是有序储存请求。有序储存请求(在下面进一步描述)是请求方的储存请求,要求相对于该请求方所发出的其他有序请求按序执行。在处理当前的有序储存请求之前,应该处理较早的有序储存请求。即,在处理较晚的有序储存请求之前,应该处理当前的有序储存请求。非有序储存请求是请求方的这样的储存请求,它可以相对于该请求方所发出的其他有序请求被乱序执行。
逻辑上共享的缓存存储器可以被分区,从而缓存存储器的某些地址块被物理分布式缓存存储器的不同组块(chunk)管理。
在另一实施方案中,逻辑上共享的缓存的缓存管理解决了某些存储器连续模型所提出的对于从处理器到主存储器的某些存储处理的顺序要求。要求特别地按序处理的某些存储在本文中被称为“有序存储”或“有序储存请求”。此外,存储可能不要求特别地按序处理,并且在本文中被称为“无序储存”、“无序储存请求”或“非有序“储存请求”。这些非有序储存请求可以不按序执行或处理。有序储存请求的处理要求在当前有序储存请求之前发出的较早有序储存请求在对当前有序储存请求的执行发生之前被完全处理。
处理来自一个处理器的有序储存请求的简单的低性能方法是禁止所述处理器发出新的有序储存请求,直到之前来自该处理器的所有有序储存请求已经被缓存存储器系统处理过。然而,在多处理器系统中,处理来自多个处理器的有序储存请求并非如此简单。在多处理器系统中,处理来自多个处理器的有序储存请求更为复杂。
在本发明的实施方案中,通过使用少量附加的请求跟踪硬件改进了处理有序储存请求的简单的低性能方法,以支持多处理器系统中添加多个处理器来利用具有共享的存储器系统的处理器网络中的并行性。在本发明的另一个实施方案中,并行的联网处理器可以同时或在重叠的时间间隔中处理来自网络中一个处理器的多个有序储存请求。所述一个处理器在通过无序网络将新的有序储存请求发送到缓存系统之前,不需要等待较早的有序储存被完全完成。
现在参照图1,示出可以利用本发明的典型计算机系统100的框图。计算机系统100包括中央处理单元(CPU)101;输入/输出设备(I/O)102,例如键盘、调制解调器、打印机、外部储存设备等等;监视设备(M)103,例如CRT或图形显示器;以及用于储存信息的存储器104。监控设备(M)103以人类可理解的格式(例如视觉或音频格式)提供计算机信息。系统100可以是多种不同的系统,包括计算机系统或诸如介质访问控制器(MAC)的网络处理系统。
现在参照图2A,示出可以利用本发明的实施方案的中央处理单元101A的框图。如所示出和图示说明的,中央处理单元101A包括微处理器201、用于储存程序指令的主存储器202以及耦合在一起的盘储存设备203。微处理器201包括一个或更多个执行单元210、至少一个缓存存储器212以及缓存控制器214。微处理器201可以包括单独的存储器控制器216,以控制对主存储器202的访问。在这种情况下,存储器控制器将主存储器202接口到微处理器201的其他部件(element)。理想地,执行单元210将数据读/写入缓存存储器212,而无须直接访问较慢的主存储器202。即,期望执行单元避免未命中缓存存储器212。对缓存存储器212的大小存在着物理限制。然而,在多处理器系统中,可以将系统设计为每个处理器内部的缓存存储器212在逻辑上可以被共享。在另一个实施方案中,除了处理器中的一个或更多个内部缓存存储器以外,可以提供一个或更多个外部缓存存储器,并且所述一个或更多个外部缓存存储器可以被多处理器系统中的多个处理器在互连网络上共享。
盘储存设备203可以是软盘、压缩(zip)盘、DVD盘、硬盘、可重写光盘、闪存存储器或其他非易失性储存设备。微处理器201和盘储存设备203通过存储器总线既可以将信息读入又可以将信息写入存储器202。因此,在程序执行期间,微处理器201和盘储存设备203都可以改变存储器202中的存储位置(memory location)。盘储存设备203为了直接这样操作,它包括使用直接存储器访问的盘控制器,所述盘控制器可以执行到存储器的储存操作,并且由此可以修改代码。因为所述控制器可以直接访问存储器,所以它是直接存储器访问(DMA)主体(agent)的实施例。能够直接访问以将信息储存到存储器中的其他设备也是DMA主体。典型地,是动态随机访问存储器(DRAM),但是存储器202也可以是其他类型的可重写储存设备。
一旦储存在盘储存设备203中或储存在一些其他来源(例如I/O设备102)中的程序初始执行,微处理器201读取储存在盘储存设备203或其他来源中的程序指令和数据,并且将它们写入存储器202中。储存在存储器202中的程序指令的一页或更多页或其片断(fraction)被微处理器201读取(即“取出(fetch)”),以储存到指令缓存(图3中未示出)中。储存在指令缓存中的程序指令中的一些可以被读入指令通道(pipeline)(没有示出)中,以供微处理器201执行。储存在存储器202中的数据的一页或更多页或其片断可以被微处理器201读取(即“取出”),以储存到数据缓存中。在另一个实施方案中,指令和数据都可以被储存到相同的缓存存储器中。
现在参照图2B,示出可以利用本发明的实施方案的多处理器系统101B的框图。多处理器系统101B可以是多处理器中央处理单元。多处理器系统101B包括多个处理器201A-201J。多个处理器201A-201J中的每一个包括一个或更多个执行单元210A-201N。执行单元还可以被称作核心(core)。多个处理器201A-201J中的每一个还可以包括耦合到所述一个或更多个执行单元210A-210J的一级或更多级内部缓存存储器片(CMS)212A-212M。多个处理器201A-201J中的每一个可以耦合到I/O设备和或监视设备。
多处理器系统101B还包括通过互连网络250耦合在一起并且耦合到多个处理器201A-201J的一级或更多级外部缓存存储器片(CMS)212A’-212L’。多处理器系统101B还可以包括耦合到互连网络250的一个或更多个主存储器202A-202K,以及耦合到互连网络250的盘储存设备203。
处理器202A-201J、缓存存储器片212A’-212L’以及盘储存设备203可以直接将信息读和写入主存储器202A-2002K。即,主存储器202A-2002K可以被处理器202A-201J、缓存存储器片212A’-212L’以及盘储存设备203共享。此外,消息可以通过互连网络250在处理器202A-201J、主存储器202A-2002K、缓存存储器片212A’-212L’以及盘储存设备203间传输。通过在互连网络250上使用消息传输(messaging),可以提供多处理器系统101B中有序储存请求的有序执行或处理。
现在参照图3A,示出多处理器系统101C的框图。多处理器系统101C可以包括主互连网络300A、每一个都具有内部缓存存储器312A的多个处理器301A-301J、耦合在多个处理器301A-301J与互连网络300A间的一个或更多个较高级别的缓存存储器312B、耦合到互连网络300A的一级缓存存储器片312C、耦合到互连网络300A的另一级缓存存储器片312D,以及通过次互连网络300B耦合到主互连网络300A的再一级缓存存储器片312E。
多处理器系统101C还可以包括一个或更多个主存储器302A、302B和/或302C。主存储器302A可以直接耦合到主互连网络300A。主存储器302B可以通过次互连网络300B耦合到主互连网络300A。主存储器302C可以通过次互连网络300B耦合到较低级别的缓存存储器片312E和主互连网络300A。
内部缓存存储器312A、一个或更多个较高级别的缓存存储器312B、一级缓存存储器片312C、一级缓存存储器片312D以及一级缓存存储器片312E可以组成物理分布式多级缓存存储器系统的实施方案。使用与缓存存储器片一起被包括的主存储器302A、302B,提供了物理分布式多级存储器系统的实施方案。
处理器、缓存存储器片以及主存储器可以被认为是互连网络的节点。消息可以从一个节点流过互连网络到另一个节点,或者从一个节点被广播到所有其他节点。多处理器系统101C以及互连网络300A和300B的拓扑可以是总线型网络拓扑、树型网络拓扑、环型网络拓扑、网格(grid)或网孔(mesh)型网络拓扑、圆环(torus)型网络拓扑、超立方体型网络拓扑、全连结型拓扑或它们的组合。
互连网络300A和300B可以是在集成电路上路由的线迹线(wire trace)、在相同集成电路上路由的总线,和/或在相同集成电路的功能模块之间的一个或更多个交换机(switch)。可替换地,互连网络300A和300B可以是在集成电路间路由的线迹线、在集成电路间的总线和/或在集成电路间的一个或更多个交换机。可以使用交换机、网桥或路由器(未示出)来互连主互连网络300A和次互连网络300B,以便可以相应地来回传递消息。
当消息流过互连网络时,它们在从节点路由到节点或从节点路由到所有节点时可能经历不同的延迟。这些不同的延迟可能导致无序的消息转移次序。即,当处理按序储存请求时,互连网络是无序网络。
现在参照图3B,示出多处理器系统101C’的框图。图3B示出图3A的系统101C的包括主互连网络300A的大部分怎样可以成为单个单片集成电路(IC)芯片350的一部分。即,除了主存储器302C以外,系统101C的部件可以被一同集成到如系统101C’中示出的单个硅芯片350上。
现在参照图3C,示出多处理器系统101C”的框图。图3C示出可以跨过集成电路边界来划分系统101C,其中所述主互连网络300A是多个集成电路(IC)芯片360A-360B的一部分。系统101C的部件可以被一同集成到多个硅芯片上。可替换地,多处理器系统101C”的部件可以是例如通过主板印刷电路板(PCB)的公共底板(backplane)或迹线(trace)电气地耦合在一起的一个或更多个印刷电路板。
现在参照图4,示出物理分布式缓存存储器系统400的框图的逻辑视图。物理分布式缓存存储器系统400包括地址哈希(hash)控制逻辑404以及一个或更多个缓存存储器片412A-412K,所述地址哈希控制逻辑404用于生成经过哈希的地址,所述缓存存储器片412A-412K用于在主互连网络300A上,或者在主互连网络300A和次互连网络300B上,在经过哈希的地址处接收消息。一个或更多个缓存存储器片412A-412K中的每一个包括一个或更多个存储器单元(cell)块414A-414K。
物理分布式缓存存储器系统400被诸如处理器或缓存存储器的请求方共享。可以以多种方式分区物理分布式缓存存储器系统400,从而存储器单元的一个地址块与一个缓存存储器片相关联,并且存储器单元的下一个地址块与另一个缓存存储器片相关联。用地址哈希逻辑404哈希来自请求方的地址402,以选择缓存存储器片以及其中的一个或更多个存储器单元块。
现在参照图3A和4,处理器301A-301J中的一个或更多个可以请求物理分布式缓存存储器系统400执行有序储存请求。可替换地,一个或更多个缓存存储器312A、312B,或处于分布式缓存存储器系统400的层次结构(hierarchy)中较高级别的缓存存储器片可以请求物理分布式缓存存储器400的其他级执行有序储存请求。作出这些请求的缓存存储器片通常比较靠近处理器。作出这些请求的缓存存储器可以包括处理器的内部缓存存储器312A,或较高级别的缓存存储器312B。请求有序储存的处理器、缓存存储器以及缓存存储器片可以被总称为请求方。每个请求方具有控制逻辑和其他硬件部件,以生成有序储存请求。在下面的讨论中,“Nc”代表组成物理分布式缓存的缓存存储器片的数目,并且“Np”代表共享分布式缓存的请求方的数目。
暂时参照图7,处于存储器层次结构的一级中的处理器/缓存请求方701被为与处于存储器层次结构的不同级中的缓存存储器片702A和702B通信,所述缓存存储器片702A和702B能够按序执行有序储存请求。
每个处理器/缓存请求方701具有唯一的请求方标识符(“RID”)和单个令牌(token)寄存器(“TR”)706,所述请求方标识符具有恒定值“j”所述令牌寄存器具有可变值“t”。唯一的请求方标识符也可以被称为唯一的请求方标识(identification)。令牌寄存器也可以被称为次序令牌寄存器,并且令牌值“t”也可以被称为储存次序令牌或储存次序数。令牌寄存器(“TR”)706是“b”位宽的,并且取决于处理器/请求方要支持的未处理的有序储存请求的数目可以具有2b位值。设“S”代表每个处理器支持的未有序储存请求的数目,则令牌寄存器中的位的数目可以由方程式“b”=ceiling[log2(s)]确定。令牌寄存器所保存的值也可以被称为请求方次序令牌。随着有序储存请求的生成,令牌寄存器可以递增。当令牌寄存器递增到超过了它的最大值时,令牌寄存器可以卷绕(wrap around)(即翻转(roll over))回它的初始值(典型地为0)。然而在一个实施方案中,相对于最大网络延时(即最大网络延迟),S以及位数“b”足够大,从而在令牌寄存器翻转之前,处理器已经处理了所有事件。在另一个实施方案中,具有即将翻转的TR寄存器的处理器/请求方轮询(poll)每个缓存存储器片,以确定是否每个缓存存储器片已经处理了所有带标签的存储器请求并且已经到达S-1。如果所有缓存存储器片都向处理器回应它们处理完成,则处理器可以允许它的给定TR寄存器翻转。
请求方标识符(“RID”)704的值“j”是唯一的。即,在同一具有分布式缓存存储器系统的多处理器系统中,没有两个请求方标识符的值是相同的。由于每个请求方标识符(“RID”)704的值“j”是唯一的,通过将“j”和“t”附加在一起可以使每个请求方701中令牌寄存器的值“t”是唯一的。即,在令牌经由互连网络被传输到分布式缓存存储器系统之前,通过将请求方标识符添加到令牌,我们可以“唯一化”令牌寄存器TR。
在分布式缓存存储器的存储器层次结构中的能够按序执行有序储存请求的每个缓存存储器片(例如缓存存储器片702A和702B)具有缓存次序阵列(CSA)712。缓存次序阵列(CSA)712是具有“Np”个项的表,所述项是“b”位宽的。缓存次序阵列(CSA)712可以为每个请求方标识符(“RID”)704确定可以被分布式缓存系统中给定的缓存存储器片处理的下一个有序储存的身份(identity)。当存在Np个请求方时,在缓存次序阵列(CSA)712中存在Np个项。
现在参见图5A-5B。图5A示出带标签的有序储存请求500的典型字段的图。图5B示出CSA更新510的典型字段的图。为了支持有序储存请求,请求方标识符(RID)字段501(“j”值)、令牌寄存器值字段502(“t”值)以及消息标识符(MID)字段504的位字段既被利用在带标签的有序储存请求500中又被利用在CSA更新510中。请求方标识符(RID)字段501(“j”值)、令牌寄存器值字段502(“t”值)的位字段可以被总称为TRU503。即,TRU 504代表请求方标识符“j”和请求方j的令牌寄存器TR的值“t”的串联。TRU504的值可以被表示为“j·t”,其中j是请求方标识符,“t”是请求方j的令牌寄存器TR的值。
消息标识符(MID)字段504是用于指示有序储存请求(OSR)504A或CSA更新504B的代码。用于消息标识符(MID)字段504的其他代码可以用来指示其他消息类型。
如果消息标识符字段504指示带标签的有序储存请求500的有序储存请求(OSR)代码504A,则地址字段505和数据字段506作为带标签的有序储存请求500的部分被包括。换句话说,请求方标识符(RID)字段501(“j”值)和令牌寄存器值字段502(“t”值)的位字段被串联在一起,并被附加到有序储存请求代码504A,所述有序储存请求代码504A包括地址505和要储存的数据506。以这种方式形成带标签的有序储存请求500。
如果消息标识符字段504指示CSA更新代码504B,并且不指示有序储存请求(OSR)代码504A,则地址字段505和数据字段506不被包括在被发送到分布式缓存存储器系统400的消息中。在这种情况下,请求方标识符(RID)字段501(“j”值)和令牌寄存器值字段502(“t”值)的位字段基于被处理的有序储存请求,并被附加到CSA更新代码504B。
在一个实施方案中,带标签的有序储存请求500和CSA更新510的数据位字段可以以分组的形式在互连网络300A、300B上从请求方流向缓存存储器片或从一个缓存存储器片流向其他缓存存储器片。在另一个实施方案中,带标签的有序储存请求500和CSA更新510的数据位字段可以在互连网络的并行互连总线上并行地流动。在另一个实施方案中,带标签的有序储存请求500和CSA更新510的数据位字段可以在互连网络的串行互连上串行地流动。在再一个实施方案中,带标签的有序储存请求500和CSA更新510的数据位字段可以以分组、并行、串行中的一种或更多种的组合方式在互连网络上流动。在任意一种情况下,带标签的有序储存请求500由请求方生成并发送到互连网络中,并且CSA更新510由执行有序储存请求的缓存存储器片生成并发送到互连网络中。
现在参照图6A,示出缓存存储器片602的框图。缓存存储器片602示出缓存存储器片的单个实例。缓存存储器片602包括缓存次序阵列604和缓存控制逻辑606,以支持有序储存请求的按序执行。缓存控制逻辑606还可以提供与缓存存储器相关联的典型缓存控制功能。缓存存储器片602还包括如图6A所示出和说明的那样耦合在一起的请求缓冲区(buffer)608、缓存标签位610、缓存数据阵列612、标签匹配逻辑614以及列选择616。
请求缓冲区608将供处理的缓存储存请求暂时保存在队列(queue)中。典型地,缓存标签位610是和有效位和其他状态位一起来帮助识别存储器单元的缓存行(line)的内容的较高地址位。缓存数据阵列612是用于储存数据的存储器单元的行与列的阵列。标签匹配逻辑614确定是否存在对给定的缓存存储器片的命中或未命中。命中指示期望的数据储存在给定缓存存储器片的缓存数据阵列612中。未命中指示期望的数据没有储存在缓存数据阵列612中,并且所述请求需要被传递到分布式缓存存储器系统中层次结构的下一级。列选择616响应于关于是否应该从缓存数据阵列612中选择存储器单元的列的命中和未命中的指示。
缓存次序阵列604允许缓存存储器片602在整个物理分布式缓存存储器系统上按序执行有序储存请求。缓存次序阵列604将与一个或更多个有序储存请求相关联的一个或更多个储存次序令牌储存为缓存次序项。缓存次序项为每个请求方指示缓存存储器片602当前可以执行的有序储存请求。
现在参照图6B,示出缓存次序阵列(CSA)604的框图。缓存次序阵列(CSA)604包括缓存次序阵列(CSA)表632。缓存次序阵列(CSA)表632储存每个请求方j的储存次序令牌t。请求方标识符j作为到缓存次序阵列(CSA)表632的地址,以将由此寻址的数据发送到缓存控制逻辑606。
缓存次序阵列(CSA)表632中的每个缓存次序项指示给定的缓存存储器片可以按序执行的来自给定请求方j的当前储存次序标签t。如果与针对该请求方j的缓存次序项匹配的有序储存请求被哈希到给定缓存存储器片602,则所述缓存存储器片将执行所述有序储存请求。如果与针对该请求方j的缓存次序项不匹配的一不同的有序储存请求被哈希到给定缓存存储器片602,则所述缓存存储器片当前将不会执行该有序储存请求,而是将它储存在请求缓冲区608或其他队列中,供以后处理。以这种方式,有序储存请求可以被按序执行。
缓存存储器片内的缓存次序阵列(CSA)表632针对每个请求方维护一个有序储存请求项。以这种方式,每个缓存存储器片可以针对每个请求方j维护有序储存请求的执行次序。
现在参照图7,框图示出有序储存请求的按序执行的示例性次序,所述次序包括生成带标签的有序储存请求、执行所述有序储存请求以及发出缓存次序更新消息。
如前面所讨论的,每个处理器/缓存请求方701具有唯一的请求方标识符(“RID”)704(具有值“j”)和单个令牌寄存器(“TR”)706(具有值“t”)。每个处理器/缓存请求方701还包括工作队列707和控制逻辑708,,所述工作队列707用于储存有序储存请求(例如ST.REL A、ST.REL B),所述控制逻辑708用于控制带标签的有序储存请求500的生成,并且哈希或翻译地址,以选择合适的缓存存储器片和其中的存储器单元。
如前面所讨论的,分布式缓存存储器的存储器层次结构中能够按序执行有序储存请求的每个缓存存储器片具有缓存次序阵列(CSA)。图7示出具有缓存次序阵列(CSA)712的缓存存储器片k 702A和缓存存储器片m 702B。
操作中,请求方j 701生成带标签的有序储存请求500,所述请求使用在队列707内找到的一个有序储存请求的地址、附加请求方ID j以及当前的令牌寄存器值t。请求方j 701的控制器708发出该带标签的有序储存请求500。用值“j·t”给有序储存请求加标签。在X时刻,ST.REL A的带标签的有序储存请求被发送到缓存片k 702A,如箭头721所指示。在请求方j 701中,在ST.REL A的带标签的有序储存请求被发送到缓存片k 702A之后,令牌寄存器706递增到值(t+1)。
例如,假设请求方j 701具有被表示为“ST.REL A”和“ST.REL B”的两个有序储存请求,请求方j 701准备给所述两个请求加标签,并且将它们作为带标签的有序储存请求发到物理分布式缓存存储器系统的不同地址“A”和“B”中。有序储存请求“ST.REL A”比有序储存请求“ST.REL B”存在时间长,并且应该被先处理,以实现(achieve)按序执行。然而,由于具有不同地址“A”和“B”,两个有序储存请求“ST.REL A”和“ST.REL B”将由不同分区(partition)——物理分布式缓存存储器系统的缓存存储器片k 702A和缓存存储器片m702B——处理。
请求方j 701首先将带标签的有序储存请求发到缓存存储器片k 702A,如箭头721所指示,其中所述有序储存请求“ST.REL A”被加上标签“j·t”。当缓存存储器片k 702A处理此带标签的有序储存请求时,它执行储存以及随后的更新操作。即,缓存存储器片k 702A将具有“j·x”的缓存次序阵列(CSA)更新广播到所有其他缓存存储器片,如箭头722所指示。值x=t+1。缓存存储器片k 702A递增它自己的对应于请求方j的CSA[j]项,以便在其中执行CSA更新。
一旦接收到ST.REL A的带标签的有序储存请求,缓存存储器片k 702A确定它是否可以按序执行该带标签的有序储存请求。为了完成此操作,缓存片k 702A查看它的缓存次序阵列(CSA)712和针对请求方j 701的项。下面参考图9A和9B进一步描述缓存存储器片k 702A如何确定它是否可以按序执行带标签的有序储存请求。假设缓存存储器片k702A确定它可以按序执行带标签的有序储存请求,则它这样执行。在缓存存储器片k 702A已经处理或执行了ST.REL A的带标签的有序储存请求后,值t被递增到(t+1),并且与请求方ID j附加,以生成具有值j·t+1的CSA更新510并将其发到所有其他缓存存储器片。箭头722指示CSA更新被发送到包括缓存存储器片m 702B的所有其他缓存存储器片。这向接收到所述CSA更新的缓存指示:它们可以随后处理具有值“j·t+1”的带标签的有序储存请求。
由于各种原因,带标签的有序储存请求可能在给定的缓存存储器片处变得乱序。例如,由于在给定的缓存存储器片处没有以实时方式接收到CSA更新,带标签的有序储存请求可能变得乱序。作为另一个实施例,由于在完全处理完先前的有序储存请求并发出CSA更新之前发出另一个带标签的有序储存请求,带标签的有序储存请求可能变得乱序。作为再一个实施例,由于在从其他缓存存储器片接收到所有针对给定请求方j的CSA更新之前接收到较晚的带标签的有序储存请求,带标签的有序储存请求可能变得乱序。
继续该实施例,在X+e(其中e为正值)时刻,请求方j将包括被加上标签“j·t+1”的有序储存请求“ST.REL B”的带标签的有序储存请求发到缓存存储器片m 702B,如箭头723所指示。在请求方j 701中,在ST.REL B的带标签的有序储存请求被发送到缓存片m702B后,令牌寄存器706被递增到值(t+2)。
一旦接收到ST.REL B的带标签的有序储存请求,缓存存储器片m 702B确定它是否可以按序执行该带标签的有序储存请求。为了完成此操作,缓存片m 702B查看它的缓存次序阵列(CSA)712和针对请求方j 701的项。
缓存存储器片m 702B进行查看在CSA712中它的针对请求方j的项CSA[j]是否等于(t+1)。假设处于这样的情况下,即缓存存储器片k 702A已经处理了有序储存请求“ST.REL A”,并且缓存存储器片702B m接收到对应的CSA更新,则当缓存存储器片702Bm的针对请求方j的项CSA[j]等于(t+1)时,缓存存储器片702B m(300)可以处理“ST.RELB”。
但是,现在假设在来自缓存存储器片k 702A的CSA更新到达缓存存储器片m 702B之前请求方j发出有序储存请求“ST.REL B”,则缓存存储器片m 702B m将包括“ST.REL B”的带标签的有序储存请求维持在网络或局部缓冲区中,直到具有令牌“j·x”的CSA更新到达。在这种情况下,CSA更新乱序,并且缓存存储器片必须适当地处理它所具有的供处理的有序储存请求。
假设缓存存储器片m 702B确定它可以按序执行带标签的有序储存请求,则它这样执行。在缓存存储器片m 702B已经处理或执行了ST.REL B的带标签的有序储存请求之后,值(t+1)被递增到(t+2),并与请求方ID j附加,以生成具有值j·t+2的CSA更新510,并且将其发出到所有其他缓存存储器片。箭头724指示CSA更新被发送到包括缓存存储器片k 702A的所有其他缓存存储器片。这向接收到所述CSA更新的缓存指示:它们可以随后处理具有值“j·t+2”的带标签的有序储存请求。
假设缓存存储器片m 702B没有接收到具有值“j·t+1”的CSA更新,则它不能按序执行具有值“j·t+1”的带标签的有序储存请求。在缓存存储器片m 702B可以执行具有值“j·t+1”的带标签的有序储存请求前,它必须等待,直到接收到具有值“j·t+1”的CSA更新。
现在参照图8,示出由请求方j701的控制逻辑708执行以支持带标签的有序储存请求的控制函数的流程图。在此讨论中,如前面所讨论的,数字“Np”代表共享分布式缓存的处理器的数目。
在800,系统被初始化或重启。在802,所有处理器和缓存请求方j 701将它们的令牌寄存器TR 706和令牌值“t”设置为起始值,例如0。如下面将进一步讨论的,每个缓存存储器片中的缓存次序阵列(例如缓存存储器片702A、702B中的缓存次序阵列712)的所有项都被类似地设置为相同的针对“t”的初始起始值,例如0。
在804,控制逻辑确定请求方j 701是否准备好将有序储存请求发送到物理分布式缓存存储器系统中。如果没有,则控制逻辑循环回到804,基本上就是等待有序储存请求的发出。如果有序储存请求要被发送到物理分布式缓存存储器系统以供处理,则控制逻辑转到806。
在806,使用包括RID“j”501和令牌寄存器值“t”502的TRU标签503的当前值给有序储存请求加标签,如图5A中所示出。TRU标签503的值被表示为“j·t”。然后,控制逻辑转到808。
在808,请求方j 701的控制逻辑708递增令牌寄存器TR706,从而当前值t被赋值为值t+1,以供下一个有序储存请求使用。然后,控制逻辑转到810。
在810,带标签的有序储存请求500被发到物理分布式缓存存储器系统。所述带标签的有序储存请求的地址被哈希,并且所述带标签的有序储存请求被发送到适当的缓存存储器片,例如缓存存储器片k 702A。
图9A是由每个缓存存储器片的控制逻辑714执行以支持带标签的有序储存请求的控制函数的第一流程图。图9B是是由每个缓存存储器片的控制逻辑714执行以支持带标签的有序储存请求的控制函数的第二流程图。
现在参照图9A,示出由每个缓存存储器片的控制逻辑714执行以确定有序储存请求是否可以被处理的控制函数的流程图。在900,如前面在800中所讨论的,系统被初始化或重启。在902,每个缓存存储器片中的缓存次序阵列712的所有项被设置为针对“t”的初始起始值,例如0。这与每个请求方j 701具有的它的令牌寄存器TR 706的起始令牌值“t”匹配。然后,控制逻辑转到904。
在904,每个缓存存储器片的控制逻辑确定它是否已接收到来自请求方的带标签的有序储存请求501。如果没有,控制逻辑循环回到904,自发地等待接收带标签的有序储存请求。如果已接收到供处理的带标签的有序储存请求,则控制逻辑转到906。
在906,从带标签的有序储存请求中提取TRU标签j·t,以确定带标签的有序储存请求是否可以被给定的缓存存储器片处理。对于接收到的请求方标识符的值“j”,缓存存储器片为产生此有序储存请求值的处理器读取缓存次序项,值CSA[j],其中j取值从0到(s-1),假设起始值为0。回想到“S”代表每个处理器支持的未处理有序储存的数目。
在908,将针对请求方j的CSA[j]项(期望的次序数)与有序储存请求中标签的“t”部分进行比较。如果CSA[j]匹配有序储存请求中标签的“t”部分,则所述请求可以被处理。如果CSA[j]不等于标签的“t”部分,则标签不匹配,并且控制逻辑转到913。如果CSA[j]等于标签的“t”部分,则标签匹配,并且控制逻辑转到912。
在913,对应的带标签的有序储存请求(包括标签)被储存在缓存的普通工作队列中,以供以后处理。
在912,当存在标签匹配(CSA[j]=t)时,缓存处理有序储存请求,然后转到914。
在914,对于给定的请求方,递增CSA[j]项,然后控制逻辑转到916。
在916,CSA更新被发到所有其他缓存存储器片。处理带标签的有序储存请求的给定的缓存存储器片将令牌j·(t+1)发到系统中的所有其他缓存存储器片,指示它们可以处理来自请求方j的与令牌值t+1对应的消息(如果它们有一个要处理的话)。CSA更新后,请求方还递增它自己的令牌,并且查看它的工作队列来获得任何匹配的请求。
现在描述对乱序的CSA更新的处理。如前面所讨论的,物理分布式缓存存储器片的网络可以重新排序带标签的有序储存请求,以便它们可以被按序处理。然而,物理分布式缓存存储器片的网络还可以重新排序每个缓存存储器片接收到的CSA更新。
暂时回到前面参照图7,考虑这样的实施例,缓存存储器片702A将包括标签更新j·(t+1)和j·(t+2)的两个CSA更新迅速连续地发送到邻近缓存,并且它们乱序到达缓存存储器片702B。进一步假设缓存存储器片702B具有要求等待包括标签更新j·(t+1)和j·(t+2)的CSA更新的带标签的有序储存请求,但是它仅从缓存存储器片702A接收到一个指定标签更新j·(t+2)的CSA更新。在此场景中,CSA更新是不按次序的。
当缓存存储器片接收不按次序的CSA更新消息中的标签更新时——设它在接收标签更新j·t+1、j·t+2、j·t+3、j·t+4之前接收标签更新j·t+5——一些其他缓存存储器片必须按序接收j·t+1,以生成j·t+2并触发j·t+3,并这样按序继续进行,来触发标签更新j·t+5的发出。所以,如果缓存存储器片接收到标签更新j·t+n而没有接收到更早的更新,则对于缓存来说,一旦接收到标签更新j·t+n,处理到j·t+n为止包括j·t+n的所有有序储存是安全的。
通过模2b执行加法运算t+n,其中b是标签的计数器部分中位的数目。由于计数器具有数目有限的b位,因此附加操作可能超过最大计数器值并翻转到较低值。应该小心避免翻转条件的负面影响。在一个实施方案中,相对于最大网络延时(即最大网络延迟),位“b”的数目是足够的,从而在令牌寄存器翻转时刻之前,处理器已经处理了所有先前的有序储存请求。在另一个实施方案中,具有可能翻转的TR寄存器的处理器/请求方轮询每个缓存存储器片,以确定是否每一个都已经处理了所有带标签的储存请求并且达到S-1。如果所有缓存存储器片向处理器回应它们已经完成操作,则随后处理器可以允许它的给定的TR寄存器翻转。
每个请求方中的TR计数器具有数目有限的位,“b”位,并且它相应地生成“b”位的标签。即,最大的计数器值和标签的“t”是2b-1。
假设缓存存储器片k 702A接收到具有标签j·2b-2的CSA更新,但是没有接收到任何其他CSA更新,包括那些具有标签值从j·0到j·2b-3的CSA更新。进一步假设缓存存储器片k 702A处理它的所有有序储存请求并发送具有标签更新j·2b-1的CSA更新。所述具有标签更新j·2b-1的CSA更新的发出可以触发另一个缓存存储器片(例如缓存存储器片m 702B)处理具有j·2b-1的带标签的有序储存请求,而不等待任何其他CSA更新。随后,因为标签j·0是j·2b-1之后的下一个计数器值,所以缓存存储器片m 702B可以发出具有更新标签j·0的CSA更新消息。
现在参照图9B,示出由缓存存储器片的控制逻辑执行的用于处理标签更新的控制函数的流程图。
在950,在上电或重启时,由每个缓存存储器片的控制逻辑执行的CSA更新例程(routine)被初始化。
在952,控制逻辑确定是否缓存存储器片已经接收到具有标签更新j·t的CSA更新消息。如果没有,则控制逻辑循环回到952,自发地等待标签更新的接收。如果已经接收到具有标签更新j·t的CSA更新消息,则控制逻辑转到972。
在972,通过设置CSA[j]等于t,控制逻辑将当前项更新到缓存次序阵列表中。接下来在974,控制逻辑引起缓存存储器片处理任何挂起(pending)的具有标签“j·t”的有序储存请求。在处理所述有序储存请求之后,在980控制逻辑返回952,等待和接收下一个更新。
尽管已经描述并且在附图中示出了某些示例性的实施方案,但应该可以理解,这样的实施方案仅仅是例证性的,并且对本宽泛发明不是限制性的,并且本发明不应被限制于这些所示出和描述的具体构造和布局,因为本领域普通技术人员可以进行各种其他修改。例如,可以用硬件、固件、软件或它们的组合来实现本发明或它的一些特征,其中软件被提供在处理器可读的储存介质中,例如磁、光或半导体储存设备。
Claims (40)
1.一种物理分布式缓存存储器系统,包括:
互连网络;
耦合到所述互连网络的第一级缓存存储器片,所述第一级缓存存储器片生成带标签的有序储存请求,每个带标签的有序储存请求具有包括请求方标识和储存次序令牌的标签;以及
耦合到所述互连网络的第二级缓存存储器片,所述第二级缓存存储器片响应于所述带标签的有序储存请求的每个标签,在整个所述物理分布式缓存存储器系统上按序执行有序储存请求。
2.如权利要求1所述的物理分布式缓存存储器系统,其中
所述带标签的有序储存请求中的一个或更多个被所述第二级缓存存储器片中的至少一个乱序接收。
3.如权利要求1所述的物理分布式缓存存储器系统,其中
所述第一级缓存存储器片中的每一个具有唯一的请求方标识和次序令牌寄存器,以生成所述带标签的有序储存请求。
4.如权利要求1所述的物理分布式缓存存储器系统,其中
所述第二级缓存存储器片中的每一个具有缓存次序阵列,以在整个所述物理分布式缓存存储器系统上按序执行所述有序储存请求。
5.如权利要求4所述的物理分布式缓存存储器系统,其中
所述缓存次序阵列包括
缓存次序阵列表,所述缓存次序阵列表将与有序储存请求相关联的所述储存次序
令牌储存为缓存次序项,所述缓存次序项指示所述缓存存储器片当前可以执行的一个
或更多个有序储存请求。
6.如权利要求4所述的物理分布式缓存存储器系统,其中
所述第二级缓存存储器片中的每一个还具有耦合到所述缓存次序阵列的控制逻辑,所述控制逻辑控制所述有序储存请求的所述按序执行,并生成缓存次序阵列更新,以更新所述第二级缓存存储器片。
7.如权利要求1所述的物理分布式缓存存储器系统,其中
每个所述第一级缓存存储器片都耦合到处理器,以生成所述带标签的有序储存请求。
8.如权利要求7所述的物理分布式缓存存储器系统,其中
所述处理器包括内部缓存存储器,以生成所述带标签的有序储存请求。
9.如权利要求1所述的物理分布式缓存存储器系统,还包括:
耦合到一个或更多个处理器的较高级别的缓存存储器。
10.如权利要求9所述的物理分布式缓存存储器系统,其中
所述一个或更多个处理器包括内部缓存存储器,以生成所述带标签的有序储存请求。
11.如权利要求9所述的物理分布式缓存存储器系统,其中
所述较高级别的缓存存储器生成所述带标签的有序储存请求。
12.一种用于分布式缓存存储器系统中的有序储存请求的方法,所述方法包括:
将标签附加到有序储存请求,所述标签指示请求方标识和储存次序号;
将所述带标签的有序储存请求发送到所述分布式缓存存储器系统中的缓存存储器片;
将所述储存次序号与和所述请求方标识相关联的期望的次序号进行比较;以及
如果所述储存次序号匹配所述期望次序号,则
执行所述有些储存请求。
13.如权利要求12所述的方法,还包括:
如果所述储存次序号不匹配所述期望的次序号,则
储存所述带标签的有序储存请求,以供以后执行。
14.如权利要求12所述的方法,还包括:
响应于执行所述有序储存请求,更新与所述请求方标识相关联的所述期望的次序号。
15.如权利要求12所述的方法,还包括:
在执行所述有序储存请求前,
确定由所述请求方作出的先前的有序储存请求是否已经被执行,如果是,则执行所述有序储存请求。
16.如权利要求15所述的方法,其中
所述确定操作确定与所述先前的有序储存请求相关联的所述储存次序号和所述请求方标识是否已经被所述缓存存储器片接收到,以执行所述有序储存请求。
17.如权利要求15所述的方法,其中
确定不是所有由所述请求方作出的先前的有序储存请求都已经被执行,以及
当前有序储存的执行被延迟,直到所有先前的有序储存请求被执行。
18.一种耦合到缓存存储器供按序执行有序储存请求的数据信号流,所述数据信号流包括:
请求方标识符,所述请求方标识符指示发起有序储存请求的请求方;
令牌值,所述令牌值指示所述有序储存请求的次序;以及
消息标识符,所述消息标识符指示所述请求方标识符和所述令牌值可以被所述缓存存储器读取。
19.如权利要求18所述的数据信号流,其中
所述消息标识符还指示述请求方标识符和所述令牌值被附加到有序储存请求。
20.如权利要求19所述的数据信号流,还包括:
所述有序储存请求;
用于储存数据的地址;以及
所述有序储存请求的要被储存的数据。
21.如权利要求18所述的数据信号流,其中:
所述消息标识符还指示述请求方标识符和所述令牌值用于更新缓存次序阵列。
22.一种处理单元,包括:
多个处理器,所述处理器中的每一个包括一级或更多级处理器缓存存储器;
耦合到所述多个处理器的分布式缓存存储器系统,所述分布式缓存存储器系统包括:
主互连网络,以及
耦合到所述主互连网络的多个缓存存储器片;
耦合在所述多个处理器和所述分布式缓存存储器系统的所述主互连网络之间的多个缓存存储器;
其中,处理器或缓存存储器具有唯一的请求方标识和次序令牌寄存器,以生成标签来附加到对所述分布式缓存存储器系统的所述多个缓存存储器片的有序储存请求,所述标签包括请求方标识和与所述请求方标识相关联的次序令牌;以及
其中,每个缓存存储器片具有缓存次序阵列,以在整个所述分布式缓存存储器系统上按序执行所述有序储存请求。
23.如权利要求22所述的处理单元,其中:
对所述多个缓存存储器片的所述有序储存请求中的一个或更多个被至少一个缓存存储器片乱序接收。
24.如权利要求22所述的处理单元,其中:
所述缓存次序阵列包括缓存次序阵列表,以将与有序储存请求相关联的所述次序令牌储存为缓存次序项,所述缓存次序项指示所述缓存存储器片当前可以执行的有序储存请求。
25.如权利要求24所述的处理单元,其中
所述多个缓存存储器片的一个所述缓存存储器片接收有序储存请求,所述有序储存请求具有与给定的请求方的缓存次序项匹配的次序令牌,以指示它是按序的
以及
所述一个缓存存储器片执行所述当前的有序储存请求。
26.如权利要求25所述的处理单元,其中:
所述一个缓存存储器片还更新所述多个缓存存储器片中的所述缓存次序项。
27.如权利要求24所述的处理单元,其中:
所述多个缓存存储器片的一个所述缓存存储器片接收有序储存请求,所述有序储存请求具有与所述给定请求方的缓存次序项不匹配的次序令牌,以指示它是乱序的
以及
所述一个缓存存储器片储存所述当前的有序储存请求,以供以后与其他有序储存请求按序执行。
28.一种计算机系统,包括:
输入/输出设备;
动态随机访问存储器;以及
耦合到所述动态随机访问存储器和所述输入/输出设备的多处理器的处理器,所述多处理器的处理器包括:
多个处理器,所述处理器中的每一个包括一级或更多级处理器缓存存储器;
耦合到所述多个处理器的分布式缓存存储器系统,所述分布式缓存存储器系统包
括互连网络和耦合到所述互连网络的多个缓存存储器片;
耦合在所述多个处理器和所述互连网络之间的多个缓存存储器;
其中,处理器或缓存存储器具有唯一的请求方标识和次序令牌寄存器,以生成标
签来附加到对所述分布式缓存存储器系统的所述多个缓存存储器片的有序储存请求,
所述标签包括请求方标识和与所述请求方标识相关联的次序令牌;以及
其中,每个缓存存储器片具有缓存次序阵列,以在整个所述分布式缓存存储器系
统上按序执行所述有序储存请求。
29.如权利要求28所述的计算机系统,其中:
所述多个缓存存储器片中的一个接收有序储存请求,所述有序储存请求具有与所述给定请求方的缓存次序项匹配的次序令牌,以指示它是按序的,
以及
所述一个缓存存储器片执行所述当前的有序储存请求。
30.如权利要求29所述的计算机系统,其中:
所述一个缓存存储器片还更新所述多个缓存存储器片中的所述缓存次序项。
31.如权利要求28所述的计算机系统,其中:
有序储存请求是请求方的这样的储存请求,它要求相对于所述请求方所发出的其他有序储存请求按序执行。
32.如权利要求31所述的计算机系统,其中:
较早的有序储存请求要求在当前的有序储存请求可以被处理之前处理。
33.如权利要求30所述的计算机系统,其中:
非有序储存请求是请求方的这样的储存请求,它可以相对于所述请求方所发出的其他有序请求乱序执行。
34.一种多处理器,包括:
集成电路,所述集成电路包括:
互连网络;
耦合到所述互连网络的多个处理器,所述多个处理器将带标签的有序储存请求耦
合到所述互连网络中,每个带标签的有序储存请求具有包括请求方标识和储存次序令
牌的标签;以及
耦合到所述互连网络的多个缓存存储器片,所述多个缓存存储器片响应于所述带
标签的有序储存请求的每个标签,按序执行来自所述多个处理器的有序储存请求。
35.如权利要求34所述的多处理器,其中:
有序储存请求是这样的储存请求,它要求关于所述处理器的其他有序储存请求按序执行。
36.如权利要求35所述的多处理器,其中:
较早的有序储存请求要求在当前的有序储存请求可以被处理之前处理。
37.如权利要求35所述的多处理器,其中:
非有序储存请求是这样的储存请求,它可以相对于其他有序请求乱序执行。
38.如权利要求34所述的多处理器,其中:
所述多个缓存存储器片的每一个具有缓存次序阵列,以在整个所述互连网络上按序执行所述有序储存请求。
39.如权利要求38所述的多处理器,其中:
所述缓存次序阵列包括:
缓存次序阵列表,所述缓存次序阵列表将与有序储存请求相关联的所述储存次序
令牌储存为缓存次序项,所述缓存次序项指示所述缓存存储器片当前可以执行的有序
储存请求。
40.如权利要求34所述的多处理器,其中:
耦合到所述互连网络的所述多个缓存存储器片组成由所述多个处理器共享的分布式缓存存储器系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/691,176 | 2003-10-22 | ||
US10/691,176 US8117392B2 (en) | 2003-10-22 | 2003-10-22 | Method and apparatus for efficient ordered stores over an interconnection network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1898653A true CN1898653A (zh) | 2007-01-17 |
CN100530141C CN100530141C (zh) | 2009-08-19 |
Family
ID=34521815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800384735A Expired - Fee Related CN100530141C (zh) | 2003-10-22 | 2004-10-15 | 用于互连网络上高效的有序储存的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8117392B2 (zh) |
CN (1) | CN100530141C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105684387A (zh) * | 2013-10-04 | 2016-06-15 | 阿卡麦科技公司 | 用于利用基于通知的无效缓存内容的系统和方法 |
CN108664211A (zh) * | 2017-03-31 | 2018-10-16 | 深圳市中兴微电子技术有限公司 | 一种实现数据读写的方法及装置 |
US10404820B2 (en) | 2013-10-04 | 2019-09-03 | Akamai Technologies, Inc. | Systems and methods for controlling cacheability and privacy of objects |
CN110660421A (zh) * | 2018-06-29 | 2020-01-07 | 上海磁宇信息科技有限公司 | 一种带纠错和压缩电路的磁性随机存储器 |
CN114938666A (zh) * | 2019-12-23 | 2022-08-23 | 美光科技公司 | 有效避免行高速缓存器未命中 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644221B1 (en) * | 2005-04-11 | 2010-01-05 | Sun Microsystems, Inc. | System interface unit |
US7487327B1 (en) | 2005-06-01 | 2009-02-03 | Sun Microsystems, Inc. | Processor and method for device-specific memory address translation |
US8688880B2 (en) * | 2010-06-23 | 2014-04-01 | International Business Machines Corporation | Centralized serialization of requests in a multiprocessor system |
US8850129B2 (en) * | 2010-06-24 | 2014-09-30 | International Business Machines Corporation | Memory ordered store system in a multiprocessor computer system |
US9141609B2 (en) | 2011-12-01 | 2015-09-22 | Oracle International Corporation | Reducing sequence cache latch contention in a database system |
US9189295B2 (en) * | 2011-12-01 | 2015-11-17 | Oracle International Corporation | Generating an ordered sequence in a database system using multiple interleaved caches |
US9910893B2 (en) | 2011-12-01 | 2018-03-06 | Oracle International Corporation | Failover and resume when using ordered sequences in a multi-instance database environment |
US9182986B2 (en) | 2012-12-29 | 2015-11-10 | Intel Corporation | Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region |
US11494331B2 (en) * | 2019-09-10 | 2022-11-08 | Cornami, Inc. | Reconfigurable processor circuit architecture |
US11119922B1 (en) * | 2020-02-21 | 2021-09-14 | Nxp Usa, Inc. | Data processing system implemented having a distributed cache |
US11741009B1 (en) | 2021-08-31 | 2023-08-29 | Apple Inc. | Request ordering in a cache |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0349123B1 (en) * | 1988-06-27 | 1995-09-20 | Digital Equipment Corporation | Multi-processor computer systems having shared memory and private cache memories |
US5347648A (en) * | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
JP3505728B2 (ja) | 1993-01-13 | 2004-03-15 | 株式会社日立製作所 | 記憶制御装置 |
US5751995A (en) | 1994-01-04 | 1998-05-12 | Intel Corporation | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively |
US5778434A (en) * | 1995-06-07 | 1998-07-07 | Seiko Epson Corporation | System and method for processing multiple requests and out of order returns |
US5897656A (en) * | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
US5930822A (en) | 1996-09-27 | 1999-07-27 | Hewlett-Packard Co. | Method and system for maintaining strong ordering in a coherent memory system |
US6122714A (en) * | 1997-10-24 | 2000-09-19 | Compaq Computer Corp. | Order supporting mechanisms for use in a switch-based multi-processor system |
US6334159B1 (en) * | 1998-12-22 | 2001-12-25 | Unisys Corporation | Method and apparatus for scheduling requests within a data processing system |
US6418525B1 (en) | 1999-01-29 | 2002-07-09 | International Business Machines Corporation | Method and apparatus for reducing latency in set-associative caches using set prediction |
US6389468B1 (en) * | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
US6311253B1 (en) | 1999-06-21 | 2001-10-30 | International Business Machines Corporation | Methods for caching cache tags |
US6529999B1 (en) | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
US6594734B1 (en) | 1999-12-20 | 2003-07-15 | Intel Corporation | Method and apparatus for self modifying code detection using a translation lookaside buffer |
US6748501B2 (en) | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
JP3497832B2 (ja) * | 2001-03-28 | 2004-02-16 | 株式会社半導体理工学研究センター | ロード・ストアキュー |
US7032076B2 (en) | 2002-09-16 | 2006-04-18 | Intel Corporation | Prefetching data in a computer system |
US7127562B2 (en) * | 2003-06-11 | 2006-10-24 | International Business Machines Corporation | Ensuring orderly forward progress in granting snoop castout requests |
US7644237B1 (en) * | 2003-06-23 | 2010-01-05 | Mips Technologies, Inc. | Method and apparatus for global ordering to insure latency independent coherence |
US7856534B2 (en) * | 2004-01-15 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Transaction references for requests in a multi-processor network |
US7366847B2 (en) * | 2006-02-06 | 2008-04-29 | Azul Systems, Inc. | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag |
-
2003
- 2003-10-22 US US10/691,176 patent/US8117392B2/en not_active Expired - Fee Related
-
2004
- 2004-10-15 CN CNB2004800384735A patent/CN100530141C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105684387A (zh) * | 2013-10-04 | 2016-06-15 | 阿卡麦科技公司 | 用于利用基于通知的无效缓存内容的系统和方法 |
CN105684387B (zh) * | 2013-10-04 | 2019-04-12 | 阿卡麦科技公司 | 用于利用基于通知的无效缓存内容的系统和方法 |
US10404820B2 (en) | 2013-10-04 | 2019-09-03 | Akamai Technologies, Inc. | Systems and methods for controlling cacheability and privacy of objects |
US10547703B2 (en) | 2013-10-04 | 2020-01-28 | Akamai Technologies, Inc. | Methods and systems for caching content valid for a range of client requests |
CN108664211A (zh) * | 2017-03-31 | 2018-10-16 | 深圳市中兴微电子技术有限公司 | 一种实现数据读写的方法及装置 |
CN110660421A (zh) * | 2018-06-29 | 2020-01-07 | 上海磁宇信息科技有限公司 | 一种带纠错和压缩电路的磁性随机存储器 |
CN110660421B (zh) * | 2018-06-29 | 2021-11-23 | 上海磁宇信息科技有限公司 | 一种带纠错和压缩电路的磁性随机存储器 |
CN114938666A (zh) * | 2019-12-23 | 2022-08-23 | 美光科技公司 | 有效避免行高速缓存器未命中 |
Also Published As
Publication number | Publication date |
---|---|
CN100530141C (zh) | 2009-08-19 |
US20050091121A1 (en) | 2005-04-28 |
US8117392B2 (en) | 2012-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1898653A (zh) | 用于互连网络上高效的有序储存的方法和装置 | |
JP3836840B2 (ja) | マルチプロセッサ・システム | |
CN101042679A (zh) | 维护存储器一致性的方法和系统 | |
JP4307508B2 (ja) | 異なるキャッシュロケーション長を有するキャッシュにおいてキャッシュコヒーレンシを保持するためのシステム及び方法 | |
CN104106061B (zh) | 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元 | |
CN1991795A (zh) | 用于信息处理的系统和方法 | |
EP0598535A1 (en) | Pending write-back controller for a cache controller coupled to a packet switched memory bus | |
CN1084896C (zh) | 清空高速缓冲存储器内容的装置 | |
CN1277226C (zh) | 分布式共享内存系统数据维护方法 | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
US9251072B2 (en) | Cache coherence directory in multi-processor architectures | |
US20080065832A1 (en) | Direct cache access in multiple core processors | |
CN1950802A (zh) | 存储器分配 | |
CN1855070A (zh) | 用于减小高速缓存架构中的延迟和窥探代价的方法和装置 | |
JP4667092B2 (ja) | 情報処理装置、情報処理装置におけるデータ制御方法 | |
CN100338587C (zh) | 用于控制存储器系统的方法和设备 | |
US20190057032A1 (en) | Cache Coherence Management Method and Node Controller | |
JP3836837B2 (ja) | マルチプロセッサ・システムでのマイクロプロセッサ通信の方法、処理ユニット、およびデータ処理システム | |
US11573898B2 (en) | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing | |
CN1542627A (zh) | 减少快取储存器标签阵列存取动作的系统及其方法 | |
TWI398772B (zh) | 快取控制器、控制快取控制器的方法以及計算機系統 | |
JP3836839B2 (ja) | クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム | |
CN1152330C (zh) | 远程节点读取本地内存维护方法及其应用装置 | |
KR100841130B1 (ko) | 상호접속 네트워크를 통한 효율적인 순서화 저장을 위한방법 및 장치 | |
CN2569238Y (zh) | 分布式共享内存系统中远程节点读取本地内存维护装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090819 Termination date: 20131015 |