CN101855622A - 用于紧密耦合多处理器的共享存储器系统 - Google Patents
用于紧密耦合多处理器的共享存储器系统 Download PDFInfo
- Publication number
- CN101855622A CN101855622A CN200880115511A CN200880115511A CN101855622A CN 101855622 A CN101855622 A CN 101855622A CN 200880115511 A CN200880115511 A CN 200880115511A CN 200880115511 A CN200880115511 A CN 200880115511A CN 101855622 A CN101855622 A CN 101855622A
- Authority
- CN
- China
- Prior art keywords
- port
- network
- affairs
- path
- memory bank
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
Abstract
公开了一种利用互连网络的多核计算机系统的共享存储器系统,其中提供能以与访问专用存储器时达到的典型效率可比拟的效率同时访问共享存储器空间中的随机地址的不少于几十个处理核。此互连网络一般由写子网和分开的多播读子网组成。此共享存储器系统在每一时钟周期重新计算处理核与存储体之间的路径,而不重排该路径。该系统对存储器初访使路径成功建立且得以完成的各核返回认可应答,或对未完成初访的各核返回拒绝应答。
Description
技术领域
本发明涉及多处理器计算机(也称为多核计算机),尤其涉及具有允许不少于几十个处理核同时高效访问共享存储器内的随机地址的共享存储器系统的多处理器计算机。
背景技术
在包括所希望数量n的处理核(这里术语“处理核”指多处理器中包含的一个处理器)的多处理器中,已知使用不少于一个共享存储器空间。需要实际实现构成这些共享存储器空间的一种或多种装置。如现有技术图1所示,实现共享存储器空间的已知技术在所希望数量k的部分存储体之间划分空间,并通过互连网络将n个处理核连接到k个存储体。
图1的现有技术共享存储器系统包括沿附属的处理核24画出的互连网络20和存储体22。图1中标为P1、P2、......、Pn的处理核24通过互连网络20连接到标为B1、B2、......、Bk的存储体22。由这些存储体具体化的个体存储空间的联合构成共享存储器空间。
现有技术中已知图1中出现的互连网络的许多不同实现方式。然而,根据现有技术,认为不可能建立一种共享存储器系统,使不少于几十个的处理核能以与单个处理核访问局部专用存储器的效率程度可比拟的效率程度同时访问共享存储器内的随机地址。
在John L.Hennessy和David A.Patterson著、1996年由旧金山市的摩根卡夫曼出版有限公司(Morgan Kaufmann Publishers Inc.)出版的第2版《ComputerArchitecture-a Quantitative Approach》这本书第638页的陈述中,能找到此该现有技术的代表性概述。该陈述如下:“为了支持较大的处理器数,必须在处理器之间分配存储器,而不是将存储器集中化,否则存储器系统不能支持大量处理器的带宽需求”。
根据该现有技术,设想互连网络会是复杂且笨重的设备,其不能提供足够大的带宽,且同时遵从足够短的等待时间,以允许以与局部存储器的效率可比拟的效率访问随机地址。此缺点还涉及有关此现有技术的多处理器(也称为“多核”)计算机构造;即多核计算机中的同步和调度活动通常通过共享存储器执行。
因此,通常导致性能障碍的现有技术多处理器的一种共同设计特征是把来自同步和调度活动的许多负担加于共享存储器系统上。必须在每一多处理器以一种方法或另一种方法进行此活动。通过共享存储器系统执行同步和调度,除增加负担外,还损害该系统的效率。这尤其是因为对本领域技术人员称为“热点”的技术的开发;在本情况下为涉及同步和调度的技术。此外,支持诸如“测试和设定”、“取和加”等特殊同步基元的要求会导致共享存储器系统复杂化。此类基元通常要求相互分不开的读操作和更新操作,并以本领域技术人员称为“原子(atomic)”的方式执行。
也会导致性能障碍的现有技术多处理器的另一设计特征是要求共享存储器系统支持读-修改事务,而非仅支持简单的读写。
一般而言,设计成通过共享存储器执行同步和调度活动的现有技术多核计算机在制造时并未期望其效率与访问局部存储器的效率可比拟。这是因为此类计算机不能支持精细计算粒度。该问题可重新表述如下:将给定的算法分解成尽量精细的粒度会导致同步速率的要求剧增,并且开销活动与有用计算的比例更大。
当从一开始就谋求多核计算机以有限粒度水平执行并行计算时,此限制通常导致以处理核主要对自己的局部存储器进行工作的方式构成该计算机。
因此,根据现有技术(参阅上文引用的Hennessy和Patterson),认为不可能建立允许不少于几十个的处理核能以与单一处理核访问局部专用存储器达到的效率程度可比拟的效率程度同时访问共享存储器内的随机地址的共享存储器系统。
属于所引用专利的共同发明人的本发明共同发明人之一的美国专利5,202,987中描述了试图克服与同步和调度活动关联的问题的现有技术。该专利描述配备用于同步和调度的专用设备的多核计算机设计。联系美国专利5,202,987所描述的设备,产生建立允许以与局部存储器的效率可比拟的效率访问的共享存储器系统的需求。
在美国专利5,202,987公布之前,提供允许以与多核计算机中的局部计算机的效率可比拟的效率进行访问的共享存储器系统的可行性和需求尚未建立。因此,期望通过结合本发明的共同发明人之一的Bayer等人的美国专利5,202,987揭示的发明实现本发明来提供允许该效率的共享存储器系统该专利通过引用结合于此。
发明内容
因此,本发明的主要目的是克服现有技术系统的缺点和设计障碍,并提供一种多处理器计算机(下文也称为本领域技术人员已知的多核计算机)中的共享存储器系统或若干此类系统。该共享存储器系统包含互连网络和存储体B1、B2、......、Bk的集合。此系统提供可同时启动对共享存储器的访问的处理核P1、P2、......、Pn的集合。
本发明提供一种利用互连网络的用于多核计算机系统的共享存储器系统,该互连网络为处理核提供以与访问本地专用存储器时达到的典型效率可比拟的效率访问共享存储器空间中的随机地址的能力。通过多次应用本发明,能在同一多核计算机实现多个此类存储器空间。借助存储器系统和整个多核计算机的特征或特性的组合实现所期望的能力。
克服现有技术存在的各种障碍以构成以与专用存储器的效率可比拟的效率访问的本发明的共享存储器系统的需求和可行性在配备高流速同步器/调度器的多核计算机中产生。该计算机旨在高效支持大量并行且精细粒度的计算。就允许处理核之间密集且强化合作的意义而言,可以说该计算机经由共享存储器和经由同步器/调度器紧密耦合。
本发明的共享存储器系统中包括的互连网络由用作读取的网络和用作写入的分开的网络组成。然而,当存储器系统仅旨在读操作时,省略后者。读网和写网相互并联。读网和写网的拓扑结构均基于并联的多个对数多级网络。
将进一步说明,一种可行类型的对数多级网是基准网络。除对数多级网中包含的开关外,互连网络还可包含提供路由、连接或桥接的其它基本单元。此类单元的一种用途是减少读网或写网面向存储体一侧的端口数量,当且仅当存储体的数量少于对数多级网络(包含在读网中或写网中)的端口总数时,实现该减少。
本发明的共享存储器系统在每一时钟周期计算处理核与存储体之间的路径。该系统对存储器初访导致路径分配并该分配完成的各处理核返回认可应答,而对未完成初访的各核返回拒绝应答。接收拒绝应答的处理核在后一时钟周期重新提交其初访。仅根据提交的存储器地址以简单的方法进行路径计算。此计算中,除检测导致拒绝的冲突外,不同初访之间无交互。不存在路径的重新安排。
除在流水线寄存器中外,互连网络不执行任何内部信息的缓存或存储。这些寄存器用于创建最多三个流水线级:(a)从处理核至存储体的路径和传送的定义、(b)存储体内部的固有活动以及(c)从存储体至处理核的传送。认可应答和拒绝应答的传送可分配至这些级中的任一个。这些级(a)和(b)或(b)和(c)或全部三个级(a)、(b)和(c)可以是统一的。在后一种情况下,都消除了流水操作,使互连网络成为纯组合系统。在存在两个或三个流水线级的其它情况下,因为流水线寄存器将网络分隔成组合的少量主块,所以该互连网络在本质上保持组合性。
读网支持多处理核在同一时间周期请求的存储内容的多播。
存储器系统通过利用三种不同的交织效应而充分利用存储器引用局部性的现象以增加带宽。第一交织效应涉及将存储器地址分解成存储体索引和该存储体内的内部地址。第二交织效应涉及选择横穿的对数多级网络。第三交织效应涉及当对数多级网是基准网络时定义该网内的内部路径。
根据流水线级的数量,处理核在同一时钟周期或在后续或下一后续时钟周期接收其存储器初访的输出。
如上文所述,本发明的一个特点是除可能涉及流水线操作的有限缓存外,互连网络不执行信息的内部缓存或存储,因此,此互连网络实质上遵守数字系统基本理论中已知的“组合系统”的概念。这有助于使互连网络简单、精干且轻型。
如下文标题为“存储系统的定时方案”一节进一步描述,仅在添加流水操作的本发明较佳实施方式中,互连网络不再是纯组合系统,尽管相对于不添加流水线操作的较佳实施方式,其基本特性不变。
本发明的另一特点是在处理核与存储体之间形成的路径的计算简单。
本发明的另一特点是互连网络不支持同步基元,并被设计成仅支持基于简单的读操作和简单的写操作的存储器访问。
本发明的另一特点是互连网络包含一个或多个对数多级网,并能选择准确的数量,以在处理核与存储体之间提供所期望数量的路径。
处理核与存储体之间的路径不长,并且其关联的延迟不长,这一事实表达本发明的另一特点。如上文所述,互连网络是实质组合系统,所以能在与谈论使任何组合系统功能稳定的延迟相同的意义上谈论这些延迟。
本发明的另一特点是用于从存储器读取的设备与用于对存储器写入的设备的分离。此分离有助于使这两个专用设备较精干且简单,并且它们能同时操作。
本发明的另一特点是发明的共享存储器系统能有效接纳涉及读取的本领域称为“存储器热点”的技术。为实现该目的,实现从存储器读取的设备支持多播。
除涉及读出的热点外,还存在其它热点:
1)涉及同步和调度的热点。当多核计算机配备了专用、高流率的同步器/调度器时,共享存储器系统接纳这些热点的负担会缓解。
2)除涉及读取外还主要涉及写入而不涉及同步/调度的热点。这些热点不那么常见。
本发明框架中叙述的存储器系统基于简单、精干且轻型的互连网络。该网络的延迟小,且提供的路径数量足够。
此存储器系统适合利用平面工艺的生产(但不限于该工艺)。因此,可在硅衬底上制造应用本发明的多核计算机。另外,用平面工艺制造的多核计算机可包含按照本发明建立的一个以上的共享存储器系统。具体而言,它可包含用于保持数据的共享存储器系统和用作保持指令的共享存储器系统。
处理核能以与孤立的处理核访问局部专用存储器达到的效率程度可比拟的效率程度访问共用存储器空间的能力是相互紧密配合的核的一种能力要素。此能力的互补要素是处理核进行的并行工作的高效管理,该高效管理在多核计算机设置有如前文所引用的美国专利5,202,987所述那样的高流率同步器/调度器时实现。当这两种要素都实现时,这些处理核能相互紧密合作,这使多核计算机能高效地接纳细粒度的并行计算。从而可以认为多核计算机(或同义称为多处理器)紧密耦合。
由于上文详述的全部特性、性能、特征和原理,按照本发明建立的共享存储器系统适合用于上述意义上紧密耦合的多核计算机。这样,本发明实现现有技术未实现的需求。
本发明的另外特性和优点根据下文的附图和说明将变得显而易见。
附图说明
为了就本发明实施方式更好理解本发明,现参照附图,在附图中相同标记指示相应的单元或部分,且在附图中:
图1示出包括连接至多个处理核的互连网络和存储体的共享存储器系统的现有技术共享存储器系统的广义示例;
图2示出按照本发明的原理构造并操作的形成用于共享存储器系统的互连网络的读网和写网的示意图;
图3示出按照本发明原理配置成每侧具有八个端口的已知类型基本网络的互连网络的拓扑结构;
图4示出基于对数多级网络的读网和写网的常见拓扑结构的示例;
图5示出输入到互连网络的聚集变量和作为这些变量的函数计算的聚集值,其中该网络遵从根据本发明较佳实施方式的组合系统的概念;
图6连同产生变量和使用作为这些变量的函数的计算值的处理核和存储体一起示出的图5的组合互连网络;
图7示出图5的组合互连网络,但将整个组合系统分解成组合子块;
图8示出如何通过添加流水线寄存器得到基于流水线操作的本发明的较佳实施方式;
图9示出基于流水线操作的另一较佳实施方式;
图10示出基于流水线操作的再一种较佳实施方式;
图11示出处理核发出的存储器地址的二进制表示;
图12示出具有在存在多播内容的存储地址时在读网内部形成的树状拓扑结构的多路径的示例。
具体实施方式
下面的叙述中,为了按照本发明原理提出用于紧密耦合多处理器的共享存储器系统的较佳实施方式,首先叙述互连网络的拓扑结构。接着,描述存储器系统的定时方案。然后描述处理核与存储体之间形成的路径。
互连网络的拓扑结构
图1示出包括连接至多个处理核的互连网络和存储体的现有技术共享存储器系统的广义示例。
如“发明背景”一节所述,设想图1的互连网络20是复杂且笨重的设备,其不能提供足够大的带宽且同时遵从足够短的等待时间,以允许以与局部存储器的效率可比拟的效率访问随机地址。
相关的技术中,如普通技术人员所知,在从给定的部件集合构筑系统的情境下提到时,术语“拓扑结构”指这些部件之间的静态连接集。此拓扑结构为每一部件决定通过直接、固定、实体连接与其相连的其它部件是哪些。拓扑结构还决定用作连接的部件端口。处理互连网络时,有关的部件集合包含网络本身的基本组成部件,即开关和用作路由、连接或桥接的其它基本单元以及互连网络的外部端口的单元。在如图1(现有技术)所示的当前情境下,这些外部单元是连接在网络的一侧的处理核24(标为P1、P2、......、Pn)和连接在相反侧的存储体22(标为B1、B2、......、Bk)。
图2示出按照本发明原理构成并操作的形成用于共享存储器系统的互连网络的读网和写网的示意图。
互连网络20的综合拓扑结构的形式是分级的,有2级。在第一级上,如图2所示,在本发明较佳实施方式中,将连接器20表示为由2个并联的较小子网(用于从存储器读取的读网30和用于对存储器写入的写网32)构成,
接着,在分级方式的第二级上,描述如何由业内技术人员已知其拓扑结构的更小子网构成这两个子网中的每一个。
从读网和写网构建互连网络
现详细参考图2,互连网络20由外框表示,并对应于现有技术的图1中的“互连网络”框(20)。图2还示出综合网络的外端口26、28,画在图2的顶部的那些端口26旨在连接至处理核24,画在底部的那些端口28旨在连接至存储体22。两个内框30、32分别表示读网30和写网32。读网30用于从存储器读取的操作,写网32用作对存储器写入的操作。在读网30的端口26与写网32的那些端口之间的交点处的黑方块表示路由、连接或桥接的单元34。需要时,这些单元34在互连网络的基本组成部件之间。
上述那样由并联的分离的读网和写网30和32构成互连网络20具有下列优点:与进行读操作和写操作两者的单一网相比,综合互连网络20能供给的处理核24与存储体22之间的路径数量增多。另一方面,因为仅打算在一个方向上传送数据,使两个子网中的每一个比另外的双向传送数据的替代单一网简单且高效,所以实现两个子网所需的资源总量并不按相同比例增加。
有时要求建立仅用于读取的共享存储器系统。例如,建立基于将指令与数据分离的本领域技术人员称为哈瓦(Harvard)体系结构的计算机用的指令存储器时,可能出现此要求。在此类情况下,互连网络20仅包含读网30,而不包含写网32。
读网和写网的拓扑结构
按照本发明的原理,存在互连网络20的拓扑结构的分级方式的第二级。读网30和写网32均由更小的子网(本领域技术人员已知其拓扑结构)构成。读网30与写网32之间的区别仅与路径的形成有关,后文将解释。只要涉及拓扑结构,读网30与写网32之间就无区别,虽然这不意味着两个网必须相等,可将一些参数和选择设定得不同,后文将解释。
读网30和写网32的常见拓扑结构基于并联连接期望数量m个子网。后文将此数量m称为“重复因数”。子网具有本领域技术人员称为“对数多级网络”的类型(参阅图4),它们在其两侧的每一侧具有的端口数量为n即处理核数量。
在一较佳实施方式中,由统一的开关组成这些对数多级网。此类网络的一侧至相反侧的每一路径穿过长度等于n的按照底b的对数的开关串,其中b是开关两侧各自的端口数量。本领域技术人员已知的两个对数多级网示例是Omega网络和基准网络(Baseline Network)。
基准网络是现有技术中认可的广义概念。本领域技术人员知道如何利用每侧端口数量给定的开关组成每侧端口数量给定的基准网络。图3中示出每侧具有n=8个端口并由每侧具有b=2个端口的开关组成的基准网络的拓扑结构。
在图3中,示出每侧43、44处具有8个端口42并由每侧48处具有2个端口47的开关46组成的基准网络40的拓扑结构。将网络一侧43处的端口标记为输入_0至输入_7,另一侧44处的端口标记为输出_0至输出_7。数字0至7这里用作标识。此网络包含构成其基本组成部件的3行开关46。从标记为输入_0至输入_7的外部端口中的一个到网络另一侧处标记为输出_0至输出_7的外部端口中的一个的每一路径经过属于这3行中的每一行的一个且仅一个开关46。
根据现有技术中广传的术语,这3行称为网络的3级。本附图中采取下列惯例:用包含词“输入”的名称标记处理核24发出的初试经其进入的端口,而用包含词“输出”的名称标记这些初试向存储体22离开时通过的端口;这也同样用于网络本身的端口及其基本组成部件的端口。尽管对核的初试的反应在相反的方向上传播,但不论每一端口的名称包含词“输入”或词“输出”,每一端口通常都包含输入信号和输出信号。
一般而言,当基准网络以对应于图3的方式在平面实际几何展开时,下列情况成立:如果将基准网络束缚在矩形内,则从基本网络一侧的一个端口至另一侧的一个端口的任一路径的最大几何总长不超过约束矩形对角线的长度。这是基准网络的有用性质。
如上文所述,读网30和写网32的常见拓扑结构(参阅图2)基于并联连接m个对数多级网络,这m个网络各自在每侧具有n个端口。假定这里和后文称为“重复因数”的参数m的期望值等于或大于1(m≥1);n为处理核24的数量(参阅图2)。
图4示出基于对数多级网络的读网和写网的常见拓扑结构的示例。
现参考图4,在本示例中,处理核24的数量n(参阅图2)为8,存储体22的数量k(参阅图2)为16。因此,对数多级网络54在一侧50(面向处理核24的一侧)处具有标记为0至7的8个端口,在另一侧52(面向存储体22的一侧)处具有标记为0至15的16个端口。本例中并联4个对数多级网54,即重复因数m为4。四个对数多级网54中的每一个在各侧具有n个端口。附图上部和附图下部的黑方块表示互连网络的基本组成部件之间的路由、连接或桥接的单元34a。
具有标识0至n-1且画在图4上部的每一网络外部端口通过路由、连接或桥接单元34a连接到每一对数多级网络54(具有相同标识)相应端口(如果存在)。同样,具有序数0至k-1并画在附图下部的每一网络外部端口通过单元34a连接到对数多级网络54的具有连续标识的(m×n)/k个端口;在本例中,画在图4下部的16个外部端口中的每一个连接到对数多级网络54的具有连续标识的两个端口。
图4中列举的用于n=8个处理核、k=16个存储体和重复因数n=4的拓扑结构清楚作为一般概念,在参数值不同时也适用。对数多级网络的类型也可不同。然而,为了拓扑结构正确,n与m的乘积必须等于或大于k,即按照普通数学符号表示为k≤n×m。也代表本发明较佳实施方式的参数值集合的另一示例如下:处理核数量n为256,重复因数m的值为8而存储体数量k为512。
为了拓扑结构明确,对数多级网的端口编号必须明确。实际上在本领域技术人员已知的Omega网络和基本网络的描述中已定义并同意此标号。
为了全部处理核24(参阅图2)能同时访问存储体22(参阅图2),在本发明的较佳实施方式中,存储体22的数量k必须不少于处理核24的数量n,即n≤k。
在一类较佳实施方案中,处理核24的数量n、存储体24的数量k和重复因数m均为2的幂。
通过将少于n个处理核24(参阅图2)实际连接到存储器系统,留下规模不全是2的幂的处理核24的集合,同时保持存储体24的数量k和重复因数m的原值(参阅图2),可从上一类得到另一类较佳实施方式。这样减少处理核24的数量允许互连网络20(参阅图2)也可有限减少。然而,因为每一对数多级网络54的端口数量在靠近存储体22的一侧处仍保持原数量n,存储器系统及其参数不受到实质上的改变。
重复因数m具有较大值的优点是使处理核24与存储体22之间的路径数量也增加。
尽管读网30与写网32之间(参阅图2)重复因数m的值可不同,选择相等的值具有下列优点:在互连网络20的实际几何实现中,能使读网30和写网32相互并联设置,其中读网30内的诸如开关46(参阅图3)之类的每一基本组成部件和每个链路紧接着写网32相应的基本组成部件或链路放置。这种布局能使面积和布线更高效且设计较简单。
存储器系统的定时方案
时钟周期
这里提出的存储器系统基于将时间划分成本领域技术人员称为“时钟周期”的间隔或时间片。在给定的存储器系统的情境下,同样的常见时间划分适用于连接至该存储器系统的全部处理核24(参阅图2)和该存储器系统内的任何定时资源。
每个处理核24在每一时钟周期有资格启动一次对属于由给定的存储器系统具体化的存储器空间的存储器地址的访问。处理核24进行的初访导致定义处理核24与存储体22之间经互连网络20的路径的过程。此路径规定处理每一时钟周期重新执行。这样规定的路径不是一部分,而是在处理核24开始,穿越互连网络20并在存储体22处终止的全部路径。
处理核初访的认可和拒绝
一般而言,作为互连网络24的开关端口与其它基本单元端口竞争的结果,存储器系统在给定的时钟周期可能不能完成处理核提交的全部初访。按照本发明,确实完成初访的处理核24(参阅图2)接收认可应答,而未完成初访的处理核24接收拒绝应答。接收拒绝应答的处理核24通常在下一时钟周期重新尝试提交其初访。以和原提交相同的方式进行重新提交,就像原提交完全未进行一样。
存储器访问的流水线级
多个处理核为实现同时访问而进行的活动包括下列标记为A至G的活动要素。
要素A:提交处理核的初试;
要素B:定义互连网络中的处理核与存储体之间的路径,该路径将传送表示数据、地址和控制的内容;
要素C:对启动存储器访问的那些处理核传送认可应答和拒绝应答;
要素D:按照初读从存储体读取;
要素E:将从存储体读出的内容传送到启动读出的处理核;
要素F:将来自启动写操作的那些处理核的内容传送到将进行写入的存储体;以及
要素G:按照初写对存储体进行写入。
按照本发明的一较佳实施方式,在一个时钟周期执行来自同一初访集的全部活动要素;换句话说,活动要素B、C、D、E、F和G源于要素A,从而它们在与要素A在相同的时钟周期执行。
按照第二较佳实施方式,活动要素B、C、D、F和G源于要素A,从而它们与要素A在相同的时钟周期执行。然而,在已经提交最新初试集的后续周期执行要素E。此第二较佳实施方式基于本领域技术人员称为“流水线”的技术。流水线操作的优点是可能缩短时钟周期的持续时间。在本发明的第二较佳实施方式中,流水线级的数量为2,如下列图表所示:
活动要素 | 第1级 | 第2级 |
要素A:提交初试 | √ | |
要素B:定义路径 | √ | |
要素C:认可/拒绝应答 | √ | |
要素D:从存储器读取 | √ | |
要素E:传送所读取内容 | √ | |
要素F:传送要写的内容 | √ | |
要素G:对存储器写入 | √ |
按照本发明的第三较佳实施方式,活动要素B、D、F和G源于要素A,从而它们与要素A在相同的时钟周期执行;然而,两个要素C和E在后续时钟周期执行。
与上述第二较佳实施方式相同,第三较佳实施方式也基于2个流水线级,不同之处是在流水线级之间分配活动。利用属于第三较佳实施方式的下列图表阐明此分配:
活动要素 | 第1级 | 第2级 |
要素A:提交初试 | √ | |
要素B:定义路径 | √ | |
要素C:认可/拒绝应答 | √ | |
要素D:从存储器读取 | √ | |
要素E:传送所读取内容 | √ | |
要素F:传送要写的内容 | √ | |
要素G:对存储器写入 | √ |
按照本发明的第四较佳实施方式,活动要素B、C和F源于要素A,从而它们与要素A在相同的时钟周期执行;两个要素D和G在后一周期执行,最后一个要素E在再下一个周期执行。以下图表示出第四较佳实施方式的3个流水线级:
活动要素 | 第1级 | 第2级 | 第3级 |
要素A:提交初试 | √ | ||
要素B:定义路径 | √ | ||
要素C:认可/拒绝应答 | √ | ||
要素D:从存储器读取 | √ | ||
要素E:传送所读取内容 | √ | ||
要素F:传送要写的内容 | √ | ||
要素G:对存储器写入 | √ |
从上面的叙述明白:本发明的多个较佳实施方式以不同的流水线配置为特征。这些配置中包括:上述第一较佳实施方式所基于的配置,其中所有活动在同一时钟周期执行,因此实际上根本无流水线;上述第二和第三较佳实施方式所基于的具有2个流水线级的配置:上述第四较佳实施方式所基于的具有3个流水线级的配置。活动要素A到G在流水线级之间不同地分配附加流水线配置可产生本发明另外的较佳实施方式。
为了详尽阐明这点,下面的解释给出如何能从包括下列3个通用级(a)、(b)和(c)的公共方案导出各种流水线配置:
(a)处理核至存储体的传递级;
(b)存储体内的固有活动级;以及
(c)从存储体至处理核的传递级。
不同的流水线配置可基于保留(a)、(b)和(c)这三级为分离的级;或基于将(a)和(b)统一为一级,从而共留下两级;或基于将(b)和(c)统一为一级从而这里也下两级;或基于将(a)、(b)和(c)统一为一级,从而实际上未留下流水线。根据此方案,活动要素A、B和F总属于级(a)。活动要素D和G总属于级(b)。活动要素E总属于级(c)。最后,根据此方案,活动要素C可属于三个级(a)、级(b)或级(c)中的任一个。
为证实以上描述的本发明的较佳实施例与当前方案之间的关系,指出第二和第三较佳实施例的描述基于将级(a)和(b)统一成一级。然而,这两个实施例在执行活动要素C的级中存在不同:在第二较佳实施例中为级(a)或(b),而在第三较佳实施例中为级(c)。
互连网络的组合特性
互连网络20(参阅图2)接受处理核24的初试加上存储体22产生的信号作为输入变量。根据这些变量,互连网络20计算下列函数f1至f6:
f1:应当定义于处理核24与存储体22之间的路径,并以建立互连网络20的基本单元的切换状态进行表达;
f2:应当出现在各存储体22的端口上并源自从处理核24的初写的数据内容;
f3:应当出现在存储体22的地址端口上的内部地址;
f4:应当出现在存储体22的控制线上的控制值,用于指示这些线执行读操作或写操作;
f5:对处理核24的初试的认可应答和拒绝应答;
f6:应当出现在各处理核的端口上的数据内容,这些数据内容由存储体22响应于这些处理核24的初读而分发。
在不基于流水线操作的本发明的较佳实施方式中,上述函数f1至f6的计算不基于互连网络20(参阅图2)在前一时钟周期中的状态。因此,在该较佳实施方式中,互连网络20遵从数字系统基本理论中已知的“组合系统”的概念。
图5示出输入到互连网络的聚集变量和作为这些变量的函数的通过互连计算的聚集值,其中该网络遵从按照本发明的较佳实施方式的不基于流水线操作的组合系统的概念。
现参考图5,其中将组合连接器20a描述为接收输入58并产生输出60的单一模块。只要该系统已被允许足够的时间用于稳定化,则由f1至f6表示的输出60是输入58即变量x1和x2的当前值的函数。
图6描述图5中出现的组合互连网络20a以及处理核24的集合62和存储体22的集合64,该网络产生作为信息集的变量x1和x2,并使用其函数f1至f6。前文定义的f1至f6的值也是信息集。变量x1构成处理核24的集合62的初试,而变量x2构成存储体22的集合64产生的信号。注意,因为互连网络本身在内部使用f1,所以图6未描述f1。
形成组合系统有助于使组合互连网络24a简单、精干且轻型。它还使此本发明的网络根本不同于现有技术的互连网络,后者安排成使数据、地址和控制值从其处理核至其存储体或反向作持续多个时钟周期的传输。
在此类其它网络中,这些数据、地址和控制值以及已分配的部分路径或全部路径是必须从一时钟周期至下一时钟周期记忆的复杂状态部分。这通常导致添加缓存存储器和复杂的控制机构。
与此类其它网相反,能将本发明框架中提出的轻型组合互连网络20a视为类似于本领域技术人员称为“先行进位”加法器的装置。两者都是信号传播以对数方式取决于变量数量的组合系统。先行进位加法器被认为是非常紧凑且快速的系统。
图6所示的本发明的组合互连网络20a的简单和紧凑以及实际上在单个时钟周期内完成各存储器访问的执行的事实有助于以与局部专用存储器的效率可比拟的效率为处理核24服务。然而,还需要组合互连网络20a的延迟足够短,并且该网能在处理核24与存储体22之间提供的路径数量足够多。本发明实际满足了这些要求,如标题为“互连网络的延迟”的章节和标题为“存储器系统中形成的路径”的章节中将进一步叙述的那样。
在基于流水线操作的本发明较佳实施方式中,需要向互连网络添加本领域技术人员所知的“流水线寄存器”。
除流水线寄存器外,互连网络的其余部分均为组合的。将流水线寄存器植入此组合系统,而不将其分成小块:在单个时钟周期中,仍根据上文引入的变量x1整个计算上文定义的函数f1。同样,在单个时钟周期(当连接不基于流水线操作时为同一周期)根据x1、上文介绍的其它变量x2和根据f1(或根据x1、x2和f1的子集)计算全部函数f2至f6。
下面的表格详述基于流水线操作的各较佳实施方式需要哪些流水线寄存器。
需要流水线寄存器的较佳实施方式 | 流水线寄存器的位置 | 流水线寄存器的作用 |
上述公共方案的级(a)与级(b)不统一的实施方式 | 附连存储体22的互连网络的末端处。 | 该流水线寄存器阻挠上述函数f2、f3和f4的值在一个时钟周期中向存储体22的传输。 |
上述公共方案的级(b)与级(c)不统一的实施方式 | 附连存储体22的互连网络的末端处。 | 此流水线寄存器阻挠计算上文定义的函数f6的变量在一个时钟周期中从存储体22向互连网络的传输。 |
需要流水线寄存器的较佳实施方式 | 流水线寄存器的位置 | 流水线寄存器的作用 |
基于流水线操作的任何实施方式 | 在具有2个流水线级的实施方式中,寄存器遍布互连网络,该网络的每一基本组成部件主存一段寄存器。在具有3个流水线级的实施方式中,存在相继连接的两个这种类型的寄存器。 | 在具有2个流水线级的实施方式中,此流水线寄存器保持前一时钟周期中计算的上文定义的函数f1的值。在具有3个流水线级的实施方式中,2个寄存器中的第2寄存器保持第1寄存器在前一时钟周期中保持的内容,从而产生2个时钟周期的延迟。由互连网络的给定基本组成部件主存的此寄存器的一段包含属于同一基本组成部件的切换状态的信息。此寄存器(或基于3个流水线级的实施方式中的2个寄存器中的第2寄存器)的内容用作上文定义的函数f6的变量。此寄存器(或基于3个流水线级的实施方式中的2个寄存器中的1个寄存器)的内容也可用作函数f5的变量,这取决于执行活动要素C(如上所述)的流水线级。 |
现在,我们再参照标题为“存储器访问的流水线级”的子章节中讨论的4个较佳实施方式。
图7示出图5的组合互连网络,但将整个组合系统分解成组合子块。所述4个较佳实施方式中的第1个不基于流水线,因而该实施方式的组合互连网络20a遵从图5。
图7所示子块66、68、70和72在基于流水线的本发明较佳实施方式中保持不分解。因此,互连网络20a的基本组合特性在基于流水线的较佳实施方式中也无害处。
上文用规定每级执行哪些活动要素的图表描述基于2个或3个流水线级的其他3个较佳实施方式。这里通过使用图7所示分解提供又一种观点,其中植入流水线寄存器以获得这些图表中引入的第2、第3和第4较佳实施方式。
图8示出如何通过添加流水线寄存器得到基于流水线操作的本发明的较佳实施方式。
第二较佳实施方式基于2个流水线级(第1个是(a)与(b)统一,第2个是(c))和在第1级执行活动要素C。为实现此实施方式,如图8所示那样植入流水线寄存器56,其中这些寄存器用黑矩形表示。互连网络20b还包含子块66、68、70和72。
图9示出第3较佳实施方式,该实施方式仅在第2级执行活动要素C这点上与第2较佳实施方式(在图8中示出)不同。互连网络20c也被植入流水线寄存器56,而且也包含子块66、68、70和72.
图10示出基于流水线操作的本发明的又一较佳实施方式。
为了得到基于3个流水线级的第4较佳实施方式,互连网络20d还设置有在子块66、68、70和72之间植入的流水线寄存器56,如图10所示。
注意,子块72计算图7至图10所示互连网络20a、20b、20c和20d这4个较佳实施方式各自的函数f1。
本领域技术人员将任一流水线系统中的流水线级的数量称为“流水线深度”。在本发明中,流水线深度是2或3。在没有用于流水线操作的设置的情况下,则认为流水线深度是1。本发明中,达到3的小流水线深度有助于在处理核24(参阅图2)的工作中预防或显著减少流水线操作存储器系统时会发生的停止(也称为“停转”)的频率。由于本领域技术人员熟知能使处理核24本身流水线操作,此预防属实。需要的是存储器系统的流水线级与处理核24的这些级之间匹配。即,处理核24应期望在比已进行初访的级晚1时钟周期或2时钟周期的适当的级处得到其存储器初访的结果。
互连网络的延迟
为了使处理核24(参阅图2)能以与访问局部存储器达到的效率程度可比拟的效率程度访问共享存储器,必须满足的一个条件是互连网络20的延迟充分短。本发明依据下列因素满足此条件:
1)互连网络的组合特性;
2)沿从互连网络的边至边的任一路径的开关数量以对数方式取决于处理核的数量n,以及
3)基准网络的有用性质以对应于图3的方式与平表面上的实际几何拓扑结构关联,从而当基准网络束缚在矩形内时,从基准网络一侧的一个端口至另一侧的一个端口的任一途径的最大几何总长度不超过约束矩形的对角线长度。
与前一章节中定义的函数f1、f2、f3和f4的计算关联的延迟时间由下式表达
T正向=T桥接1+logbn*T输入至输出+T导线1
其中,T桥接1是出现在图2中的读网30和写网32的外部的路由、连接或桥接的单元34和图4中的对数多级网络54外部的单元34a所贡献的延迟时间;
T输入至输出是每侧具有b端口和组成对数多级网络54(参阅图4)的类型的开关的延迟时间;
T导线1是通过导线(包括位于沿这些导线的放大器或中继器)的信号传播时间;以及
logbn代表n的按照底b的对数,n是处理核24(参阅图2)的数量。
与上文定义的函数f5和f6的计算关联的延迟时间在已计算函数f1、f2、f3和f4并且存储体22(参阅图2)已提供有关变量的值后,根据上文,受下式约束:
T反向=T桥接2+logbn*T输出至输入+T导线2
其中,T桥接2是出现在图2中读网30和写网32外部的和图4中的对数多级网54外部的路由、连接或桥接单元所贡献的延迟时间。T桥接2和T桥接1这两个值不一定相等。
T输出至输入是每侧具有b端口和组成对数多级网络54的类型的开关的延迟时间。T输出至输入和T输入至输出这两个值不一定相等。
T导线2是通过导线(包括位于沿这些导线的放大器或中继器)的信号传播时间。T导线2和T导线1这两个值不一定相等。
延迟时间T正向和T反向确实充分小。组成部分T桥接1和T桥接2仅微弱取决于处理核24的数量n、存储体22的数量k和重复因数m。其中,组成部分T输入至输 出和T输出至输入具有的贡献通过因数logbn仅取决于n,所以此贡献类似于视为非常紧凑且快速的组合系统的先行进位加法器的延迟。组成部分T导线1和T导线2对延迟时间T正向和T反向的贡献取决于不超过束缚矩形的对角线长度的导线累积长度。
存储器系统中形成的路径
处理核与存储体之间的路径的定义
每一时钟周期重新计算互连网络20中的路径。在此计算中,不需要考虑在前时钟周期计算的路径,也就是说,不需要执行本领域技术人员称为路径“重新安排”的操作。另一事实为,在决定处理核24启动引用的处理核24与存储体22之间的路径时,不需要考虑其它处理核的初访。仅需要因互连网络的组成部件的端口上的竞争而在路径之间发生冲突时返回拒绝应答。这两个事实使路径的计算大为简化,从而有助于本发明的互连网络20简单、精干且轻型。
根据处理核24(参阅图2)提出的存储器地址加上关于访问类型(无论是读还是写)的信息来计算互连网络20(参阅图2)中的路径。当处理核24启动对共享存储器空间中的地址的访问时,此地址明确地定义下列3项:
(i)访问哪个存储体22,以及
(ii)该存储体22内的内部地址是什么,并且此地址结合关于访问类型的信息还明确定义:
(iii)实现对存储器的访问的互连网络20中的路径。
当两个不同的处理核24(在不同的时间)引用共享空间的同一地址时,它们引用同一存储体22,并访问存储体22内同一内部地址。然而,仅由于路径的终点不同,所以它们使用的路径不同。
如上文所述,在本发明的较佳实施方式中,处理核24的数量n和存储体22的数量k以及重复因数m均为2的幂。同样,下列关系或其等效关系为真:
k≤n×m,或等效地
log2k≤log2n+log2m
本领域技术人员称为“地址宽度”的存储器地址的二进制表示中包含的总位数由共享空间的期望大小决定。此宽度通常大于log2n+log2m之和。重复因数m的值通常小于存储体22的数量k的值。
图11示出处理核24发布的存储器地址的二进制表示。通过处理核24(如图2所示)发布的二进制存储器地址表示80在图11中的描述用于说明上文定义的项目(i)、(ii)和(iii)的决定。
地址的最高有效位是最左位,其最低有效位是最右位。这里将log2k的最右位84标注为字段A,其中k是存储体22(参阅图2)的数量。将剩余的位86标注为字段B。同样,将log2m的最右位82标注为字段C,其中m是重复因数。将与字段C相邻的log2n位78标注为字段D,其中n是处理核的数量。现进一步详述上文列出的这3个项目(i)、(ii)和(iii)。
(i)的决定-进行引用的存储体
进行引用的存储体22的标识由该地址的字段A 84的内容决定。相邻或充分相互靠近的地址仅字段A 84的值不同,因而此类地址在不同的存储体中实现。
根据本领域技术人员称为“引用局部性原理”的原理,在多核计算机上运行的程序通常倾向于使它们的处理核发布对附近地址的后续引用。因此,此类引用往往散布在不同存储体中。这种业内技术人员称为“交织”的现象具有缓解竞争和冲突的优点。这里有关的冲突不涉及互连网络20(参阅图2)中的路径,而涉及存储体22(如图2所示);然而,在互连网络20内,在位于其周边的单元34、34a上仍然显示并检测出这些冲突,如标题为“处理路径间的冲突”的章节中将进一步解释的那样。
(ii)的决定-存储体内的内部地址
进行引用的存储体22(参阅图2)内部的地址由地址的字段B 86决定。
(iii)的决定-对存储器实现访问的互连网络内的路径的决定
按照上述互连网络20的拓扑结构,路径的决定包括:
(iii.1)决定路径通过读网30还是通过写网32(参阅图2);
(iii.2)决定路径通过的对数多级网络54(参阅图4);以及
(iii.3)决定对数多级网络54内的内部路径(参阅图4)。
这3个组成部分(iii.1)、(iii.2)和(iii.3)一起构成处理核24对存储体22进行访问的互连网络20内部的路径的充分且明确的决定。下面的表格详述这3个组成部分。
组成部分 | 详述 |
(iii.1)决定是通过读网30还是通过写网32 | 根据处理核24提交的信息连同存储器地址并关于所请求访问的类型(是读还是写),进行此决定。 |
(iii.2)决定路径通过的对数多级网络54 | 根据地址的字段C 82的内容进行此决定。当重复因数m大于1时,上文在不同的存储体22之间散布访问的环境下说明的交织现象也在此处发生;当前的环境为应用不同的对数多级网54。这里,交织现象具有缓解涉及互连网络20中的路径的竞争和冲突的优点。 |
组成部分 | 详述 |
(iii.3)决定对数多级网络54内的内部路径 | 根据该地址的字段D 78的内容进行此决定。根据所选类型的对数多级网的固有路由法则进行对数多级网络54内部的选路,以实现如下目的:在由地址的字段D 78给定的标识的端口处,在更靠近处理核24的一侧开始的路径(参见图4)应在另一侧(即更靠近存储体22的一侧)处终止。在对数多级网络54为基准型并且由每侧具有b=2个端口的开关(参阅图3中的示例)组成的本发明较佳实施方式中,固有选路法则如下:首先,如果字段D 78的最右位的值为“0”,则该路径从经开关端口输出_0进入的第1开关向外前进,否则(即值为“1”),该路径经端口输出_1往外进行。然后,该路径必须再前进通过log2n-1个属于数量相同的其他级的其他开关。用于第1开关的同一法则继续适用于这些其他开关,其中对于2与log2n之间的每一i,该地址的字段D 78的第i最右位决定在第i开关处的路由。根据本发明,基准网络内的内部路由基于从右至左使用该地址的相关字段的位。这样,较低有效位决定基准网络的前级处的路由。完成此路由,以实现交织效应:当两个地址在字段C 82中具有相同内容时,这意味着这两个地址暗示使用相同对数多级网络54的路径,仍期望当两个地址相互较靠近时防止这两条路径之间的冲突。当较低有效位不相等时,该相对接近程度在两个地址的字段D 78的较高有效位之间的相同中表达。根据上文规定的选路法则,由两个较靠近的地址暗示的两条路径已在基准网络的前级分开。以这种方法防止冲突。当重复因数m与处理核24的数量n的乘积大于存储体22的数量k时,出现如下结果:将存储体22一侧的互连网络20的各个外部端口(通过路由、连接或桥接的单元34a)连接到对数多级网络54(参阅图4)的(m×n)/k个连续标注端口。在该情况下,存在经同一对数多级网络54通过的给定处理核24与给定存储体22之间的若干不同路径。任何两条这种类型的路径用作访问受限于给定存储体22的两个不同的地址子空间。此类子空间的表征的不同之处在于地址的字段B 86与字段D 78之间的交点的内容。 |
路径之间冲突的处理
每一处理核24(参阅图2)可在每一时钟周期进行共享存储器的初访。在给定的时钟周期提交的全部初访的集合限定处理核24与存储体22之间的所请求路径的相应集合。
属于此集合的不同路径之间会发生冲突。按照本发明的原理,存储器系统检测此类冲突,并通过在读网30和写网32(参阅图2)中不同地执行活动以应对该冲突。读网30在支持多播方面与写网32不同,有助于减少冲突数量。在标题为“支持接纳涉及读的热点的多播”的段中进一步解释读网30中的多播支持。
下面的叙述涉及由除读网外的互连网络执行时的冲突检测和抗冲突的提供。
当请求的两条路径都经同一开关(诸如46-参阅图3)或其它基本网络单元、而且都请求靠近存储体22(参阅图2)一侧的相同端口时,该两条路径之间存在冲突。
根据上文对互连网络20(参阅图2)的拓扑结构的描述,明白该端口能属于以下两种类型之一:
(I)对数多级网络54的内部开关的端口。在对数多级网络54是由每侧具有2个端口的开关组成的基准网络的本发明较佳实施方式中,此端口是“输出__0”端口或“输出__1”端口(参阅图3)。
(II)诸如画在图2的下部或图4的下部的34、34a的用作路由、连接或桥接的单元的端口。
当上述类型(I)的端口上存在竞争时,实际上是互连资源上的竞争。当上述类型(II)的端口上存在竞争时,由于负责冲突路径的两个初试属于同一存储体22(参阅图2),所以这实际上是存储器资源上的竞争。然而,在这两种情况下,都以相同的方法在互连网络20内揭露并检测出冲突。
当提出获取靠近存储体22(参阅图2)的一侧52(参阅图4)上的同一端口的2个以上请求时,在开关或在其它基本网络单元局部检测到冲突。这些请求经靠近处理核24(参阅图2)的一侧50(参阅图4)处的不同端口到达。例如,有关单元是驻留在基本网络内部并每侧具有两个端口的开关46时,如果经端口输入__0和端口输入_1到达的两个请求都需要端口输出_0,或如果都需要端口输出_1(参阅图3),则这两个请求抵触并产生冲突。根据上文的解释,明白对此例中发生的该冲突而言,需要(但不充分)该地址的字段D 78的有关位在用作访问目标的两个存储器地址处相等。
已说明如何检测冲突,接着的描述涉及互连网络20如何应对冲突(除图2所示的读网30外,在标题为“支持接纳涉及读的热点的多播”的章节中单独讨论该读网)。检测出冲突的开关或另一网络单元在本地决定冲突输入请求中的哪一个有权用所竞争端口。
在本发明的较佳实施方式中,该决定仅依赖于分配给靠近处理核24一侧的端口(请求通过该端口到达)的固定优先级;当对时间确定时,这些优先级取决于靠近存储体22一侧的所请求端口的标识。这是简单的决策机制,有助于网络的精干。
按照其决策,开关或其它网络单元经伺服获胜请求的端口(在靠近处理核24的一侧)输出认可应答。还经伺服竞争中涉及的其它请求的端口(也在靠近处理核24的一侧)输出拒绝应答。在检测出冲突的情况下,能仅在网络单元局部处产生拒绝应答。
但是,拒绝应答也能作为转发的结果输出,而不作为局部产生的结果输出。转发的拒绝应答取代当前网络单元已产生的任何认可应答。此外,当拒绝应答响应于请求经由已允许的存储体22一侧的端口到达网络单元时,该拒绝应答必须被转发,并且必须经获胜请求到来的另一侧(即处理核24一侧)的端口发送。因此,能产生拒绝应答的路径,该路径在检测出冲突并在本地产生拒绝应答的网络单元上开始,然后通过很靠近处理核24的其它网络单元传播。
接收拒绝应答的处理核24通常在后一时钟周期重新提交初试。当前时钟周期上的初试提交导致在互连网络20内分配未完成路径。该路径在检测出冲突并进行局部决策以拒绝所提交的请求的网络单元上截止。通过占用互连网络20的资源,该未完成路径可防止分配其它路径和实现其它请求。然而,为了保持路径计算简单且快,不进行资源的重新要求和路径的重新安排。
可能路径的数量
为了使处理核24(参阅图2)能以与访问局部存储器达到的效率程度可比拟的效率程度访问共享存储器,除上文涉及延迟的条件之外,必须满足的第2条件如下:互连网络20能提供的处理核24与存储体22之间的路径数量必须足够多。当太多冲突因为互连网络20的资源和存储体22本身上的竞争而产生时,不满足此条件。
然而,跟着指出通过对并联的对数多级网络54(参阅图4)的数量和对存储体22(参阅图2)的数量设定适当的值,在按照本发明的原理建立的存储器系统中,确实达到关于路径数量的期望目标。达到期望目标的另一手段是在读网30(参阅图2)中支持多播(后文提供)。在对读网30添加对多播的支持之前,现对互连网络20中的路径数量提供分析结果。
可在分析式中提供一个时钟周期形成的处理核24与存储体22之间的路径的数量,其中服从下列3个假设:
·第1假设是处理核24相互独立工作。
·第2假设是处理核24在任一时钟周期启动存储器引用的概率由某个值p给出,其中该值p对于所有处理核24统一。(因此,处理核24在任一给定时钟周期不启动存储器引用的概率是互补值1-p。)
·第3假设是对存储器的任一初访可按相同的概率与任何存储器地址关联。
下面提供的分析式打算用于如下的情况:读操作与写操作之间的比例使互连网络20中包含的全部对数多级网54以相同的频率被使用,而不管它们是用作读还是用作写。这样消除了与读和写之间的差别相关联的复杂化,以便分析简单。
根据上述假设,处理核24在任一给定时钟周期一起请求的路径的平均总数等于处理核24的数量n与启动存储器访问的概率p之间的乘积。然而,由于路径冲突,对一些请求的响应会是拒绝应答,所以实际创建的路径平均总数小于n×p。当读网30和写网32(参阅图2)中都包含的对数多级网络54(参阅图4)由每侧具有2个端口的开关组成时,以下公式给出实际创建的路径的平均数:
公式中符号的含义如下:
·符号n代表处理核数量。
·符号k代表存储体数量。
·符号m代表互连网络中包含的对数多级网络的数量(当前情况下,读网中包含的对数多级网络与写网中包含的对数多级网络之间没有区别)。
·符号p代表处理核在任一给定时钟周期启动存储器引用的概率。
·符号f代表将任一实数x变换成由表达式x-x2/4给出的数f(x)的数学映射。
·以上标形式出现的式log2n作为表示对映射f的log2n次重复引用。
从上述公式可知:将n和p保持固定时,通过充分增大m和k,可使实际创建的路径平均数与期望的n×p尽可能接近。即,利用给定数量的处理核24(参阅图2)数量和处理核24启动存储器访问的给定概率,可使冲突量减少到任何期望的程度(尽管不是绝对零);这通过适当增加对数多级网络54(参阅图5)的数量和一起具体化共享存储器空间的部分存储体的数量来实现。
上述公式推导中,为了简单,假设以相同的频率使用互连网络中包含的全部对数多级网络54,不管它们是用作读还是用作写。放宽此假设,需要在分析中引入对读操作与写操作之间的区别和读网与写网之间的区别的分析。
对于读网30(参阅图2),还存在减少冲突量从而增加实际创建的路径的平均数的另一手段。此手段是支持多播。它打算针对的情况为:处理核24的初试往往相互依赖,而且许多处理核24要在同一时钟周期从相同的存储器地址读出。该地址构成与读有关的热点。
用于接纳涉及读的热点的多播支持
上文解释不包含读网30的互连网络20的部分如何检测路径之间的冲突并应对该冲突。读网30在其多播支持上区别于互连网络20的其余部分,该多播支持有助于减少冲突量。现解释这点。
在开关或网络的另一基本单元局部检测出冲突,这等同于存在多于1个的对获取靠近存储体22一侧的同一端口的请求。在不包含读网30的互连网络20的部分上,网络单元进行关于冲突请求中的哪一个有权用竞争的端口的决策。然而,在读网30中,网络单元可根据校验冲突的初试要读的存储器地址进行不同类型的应对。当不少于2个地址相同时,可进行多播并呈现如下。网络单元经竞争端口将从存储体22的方向到达的内容传送给另一侧(即靠近处理核24的一方)的承载要从有关存储器地址读出的初试的全部端口。
在一较佳实施方式中,此有关存储器地址是与具有最高优先级的请求相关联的地址,并根据上文对网络的其余部分所述那样同样简单的选择方案来选择该地址。在另一较佳实施方式中,该相关存储器地址是与冲突请求最大数量关联的地址。将存储器地址对多于1个的处理核多播时,在读网30的内部形成具有树状拓扑结构的多路径(参阅图12的示例)。
图12示出存在存储器地址的内容的多播时在读网内部形成的具有树状拓扑结构的多路径的例子。
在该示例中,多播通过3个处理核24启动在同一时钟周期的同一存储器地址的读取。存储器地址驻留在图12所示的存储体22内。这里,多播在标有“互连单元”的2个分开的基本组成部件88在读网30中发生。组成部件88代表可具有与上述开关46(参阅图3)和基本单元34a(图4中呈现靠近侧52的单元)相似功能的单元。
组成部件88代表的2个互连单元的每一个经靠近处理核24一侧的端口接收获取另一侧的同一端口的2个请求,以对路径增补此端口。当检测出冲突时,2个互连单元88的每一个还校验并发现从属于同一存储器地址的初读导出2个冲突请求。因此,连接单元88通过多播将从存储体22的方向到达的内容经竞争端口传给更靠近处理核24一侧的2个端口而不是1个端口。在每一互连单元88局部决定多播,但产生具有树状拓扑结构的多路径的总图。
通过在同一时钟周期将一个存储器地址中存储的内容传送给多个处理核,读网30中对多播的支持构成对高效接纳与读相关的热点的支持。
已就某些具体实施方式描述本发明,但应明白该叙述并不意味着限制,因为本领域技术人员会想起进一步的修改,并且本发明旨在将该修改包含在所附权利要求书的范围内。
Claims (16)
1.一种用于存储信息和检索信息的系统,所述系统可通过所述系统的多个端口访问,且包括:
多个存储体,所述存储体提供存储器地址空间,以及
互连网络,所述网络提供所述端口与所述存储体之间的访问路径,
所述系统以将时间划分成时钟周期的时间方案进行工作,
在正常操作期间,所述系统能在每一时钟周期允许经所述端口接收的多个存储器访问事务初试,并处理所述事务初试,
从而事务初试进入所述系统在单个时钟周期内执行,所述进入包含旨在用于修改所述存储器地址空间中存储的内容的任何内容,
所述互连网络响应于事务初试而试图建立所述系统的端口与所述系统中包含的存储体之间的访问路径,
其中在执行时,建立所述路径的所述尝试在一个时钟周期内执行,并产生两个可能结果之一,
第一可能结果为成功建立所述路径并完成所述事务初试,包括发出认可应答,以及
第二可能结果为所述路径建立失败,包括发出告知取消所述事务初试的拒绝应答,
以及其中当发生所述第一可能结果时,在单个时钟周期内执行所述系统从所述存储器地址空间检索的内容的传送。
2.如权利要求1所述的系统,其特征在于,所述互连网络专门包含纯组合电路和流水线寄存器,其中所述纯组合电路设置成不产生再生电路,且所述流水线寄存器进行操作使一个寄存器在不长于一个时钟周期期间可伺服任何给定的存储器访问事务。
3.如权利要求2所述的系统,其特征在于,所述互连网络仅包含组合电路,而不使用流水线寄存器。
4.如权利要求1所述的系统,其特征在于,所述事务初试专门包含读事务和写事务,而且其中
读事务仅检索期望存储器地址的内容,并经由用于启动所述读事务的所述系统的端口传送不变的所述内容,
写事务仅将经所述系统的端口接收的不变的内容存储于期望存储器地址。
5.如权利要求4所述的系统,其特征在于,所述互连网络仅伺服读事务。
6.如权利要求4所述的系统,其特征在于,所述互连网络分成仅伺服读事务的第一部分、仅伺服写事务的第二部分和便于所述第一部分和第二部分在所述系统的端口与所述存储体之间相互并联的第三部分。
7.如权利要求6所述的系统,其特征在于,仅伺服读事务的所述互连网络的所述第一部分支持从存储器地址读出的内容的多播,以完成要求在特定时钟周期期间从同一所述存储器地址同时检索内容的多个读事务。
8.如权利要求6所述的系统,其特征在于,仅伺服读事务的所述互连网络的所述第一部分和仅伺服写事务的所述第二部分分别包括:
相互并联设置的至少一个子网,各个所述子网具有面向用于存储信息和检索信息用的所述系统的端口的端口,和面向所述存储体的其它端口,并且
至少一个所述子网是对数多级网络。
9.如权利要求8所述的系统,其特征在于,所述子网面向用于存储信息和检索信息的所述系统的端口的所述端口的总数超过用于存储信息和检索信息的所述系统的端口的总数,
所述子网的所述端口通过中介电路连接到用于存储信息和检索信息的所述系统的所述端口。
10.如权利要求8所述的系统,其特征在于,所述子网面向所述存储体的所述端口的总数超过所述存储体的端口总数,
所述子网的的所述端口通过中介电路连接到所述存储体的所述端口。
11.如权利要求8所述的系统,其特征在于,至少一个对数多级网络是基准网络。
12.如权利要求1所述的系统,其特征在于,包含属于所述存储器地址空间的存储体的身份由所述地址的一组最低有效位确定。
13.如权利要求8所述的系统,其特征在于,子网的身份由所述事务引用的存储器地址的一组最低有效位确定,在实现事务时通过所述身份建立路径。
14.如权利要求11所述的系统,其特征在于,在基准网络内部建立的路径由所述路径伺服的事务所引用的存储器地址部分的一组最低有效位确定,所述存储器地址部分包括所述存储器地址中除用于确定所述基准网络的身份时的任何位以外的全部位,其确定方式为:
在所述基准网络更靠近用于存储信息和检索信息的所述系统的端口的级处确定所述路径时利用所述组内的较低有效位。
15.如权利要求1所述的系统,其特征在于,所述互连网络内的所述路径仅根据所述路径伺服的事务所引用的存储器地址来计算。
16.如权利要求8所述的系统,其特征在于,所述对数多级网络包含开关,所述开关在面向用于存储信息和检索信息的所述系统的所述端口的一侧具有端口,且所述开关在面向所述存储体的另一侧也具有端口,以及
其中以以下方式解决位于不同事务初试所请求的不同路径上的所述开关之一的端口处发生的冲突:仅根据已准许访问所请求路径的所述开关的端口的身份来局部解决所述冲突,所述准许的端口面向用于存储信息和检索信息用的所述系统的所述端口。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98665907P | 2007-11-09 | 2007-11-09 | |
US60/986,659 | 2007-11-09 | ||
PCT/IL2008/001474 WO2009060459A2 (en) | 2007-11-09 | 2008-11-09 | Shared memory system for a tightly-coupled multiprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101855622A true CN101855622A (zh) | 2010-10-06 |
Family
ID=40624833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880115511A Pending CN101855622A (zh) | 2007-11-09 | 2008-11-09 | 用于紧密耦合多处理器的共享存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8099561B2 (zh) |
EP (1) | EP2223219A4 (zh) |
JP (1) | JP2011503710A (zh) |
CN (1) | CN101855622A (zh) |
CA (1) | CA2705234A1 (zh) |
RU (1) | RU2010123391A (zh) |
WO (1) | WO2009060459A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760316A (zh) * | 2014-12-19 | 2016-07-13 | 联想(北京)有限公司 | 控制方法装置、连接矩阵装置、访问方法装置及处理系统 |
CN107077440A (zh) * | 2014-12-25 | 2017-08-18 | 英特尔公司 | 紧密耦合的分布式非核一致结构 |
CN107729267A (zh) * | 2011-05-20 | 2018-02-23 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
CN109445680A (zh) * | 2018-08-20 | 2019-03-08 | 华为技术有限公司 | 一种对硬盘进行管理的方法及装置 |
US11204769B2 (en) | 2011-03-25 | 2021-12-21 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN115617718A (zh) * | 2022-12-19 | 2023-01-17 | 芯动微电子科技(珠海)有限公司 | 一种基于AXI总线的读写保序方法及SoC系统 |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144476A1 (en) * | 2007-12-04 | 2009-06-04 | Xiaohua Cai | Hot plug in a link based system |
FR2946441A1 (fr) * | 2009-06-08 | 2010-12-10 | Commissariat Energie Atomique | Reseau d'interconnexions a sous-reseaux dynamiques. |
WO2011027302A1 (en) * | 2009-09-02 | 2011-03-10 | Plurality Ltd. | Associative distribution units for a high flow-rate synchronizer/scheduler |
US20120210069A1 (en) * | 2009-10-25 | 2012-08-16 | Plurality Ltd. | Shared cache for a tightly-coupled multiprocessor |
US8677209B2 (en) * | 2009-11-19 | 2014-03-18 | Lsi Corporation | Subwords coding using different encoding/decoding matrices |
US20110179311A1 (en) * | 2009-12-31 | 2011-07-21 | Nachimuthu Murugasamy K | Injecting error and/or migrating memory in a computing system |
US20110161592A1 (en) * | 2009-12-31 | 2011-06-30 | Nachimuthu Murugasamy K | Dynamic system reconfiguration |
US9392143B1 (en) * | 2010-03-31 | 2016-07-12 | Ambarella, Inc. | High performance memory system for 3D color correction |
US8621289B2 (en) | 2010-07-14 | 2013-12-31 | Lsi Corporation | Local and global interleaving/de-interleaving on values in an information word |
US8402324B2 (en) | 2010-09-27 | 2013-03-19 | Lsi Corporation | Communications system employing local and global interleaving/de-interleaving |
US8976876B2 (en) | 2010-10-25 | 2015-03-10 | Lsi Corporation | Communications system supporting multiple sector sizes |
US8588223B2 (en) | 2010-11-09 | 2013-11-19 | Lsi Corporation | Multi-stage interconnection networks having smaller memory requirements |
US8782320B2 (en) * | 2010-11-09 | 2014-07-15 | Lsi Corporation | Multi-stage interconnection networks having fixed mappings |
WO2013101122A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Secure error handling |
US9514069B1 (en) * | 2012-05-24 | 2016-12-06 | Schwegman, Lundberg & Woessner, P.A. | Enhanced computer processor and memory management architecture |
US9208083B2 (en) * | 2013-12-04 | 2015-12-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method to interleave memory |
FR3025384B1 (fr) * | 2014-09-03 | 2016-09-16 | Bull Sas | Procede de surveillance et d'alerte de configuration de routage dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procede |
US9690494B2 (en) * | 2015-07-21 | 2017-06-27 | Qualcomm Incorporated | Managing concurrent access to multiple storage bank domains by multiple interfaces |
WO2018055507A1 (en) | 2016-09-20 | 2018-03-29 | Ramon Chips Ltd. | Scheduling of tasks in a multiprocessor device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL93239A (en) * | 1990-02-01 | 1993-03-15 | Technion Res & Dev Foundation | High flow-rate synchronizer/schedular apparatus for multiprocessors |
KR0150072B1 (ko) * | 1995-11-30 | 1998-10-15 | 양승택 | 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치 |
US6154816A (en) * | 1997-10-24 | 2000-11-28 | Compaq Computer Corp. | Low occupancy protocol for managing concurrent transactions with dependencies |
US6301637B1 (en) * | 1998-06-08 | 2001-10-09 | Storage Technology Corporation | High performance data paths |
US6801985B1 (en) * | 1999-09-10 | 2004-10-05 | Texas Instruments Incorporated | Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses |
US7191292B2 (en) * | 2004-06-04 | 2007-03-13 | Sun Microsystems, Inc. | Logging of level-two cache transactions into banks of the level-two cache for system rollback |
US7567567B2 (en) * | 2005-04-05 | 2009-07-28 | Sun Microsystems, Inc. | Network system including packet classification for partitioned resources |
CN101872333A (zh) * | 2005-04-21 | 2010-10-27 | 提琴存储器公司 | 一种互连系统 |
-
2008
- 2008-11-09 EP EP08847363A patent/EP2223219A4/en not_active Withdrawn
- 2008-11-09 WO PCT/IL2008/001474 patent/WO2009060459A2/en active Application Filing
- 2008-11-09 CA CA2705234A patent/CA2705234A1/en not_active Abandoned
- 2008-11-09 US US12/267,591 patent/US8099561B2/en active Active
- 2008-11-09 CN CN200880115511A patent/CN101855622A/zh active Pending
- 2008-11-09 JP JP2010532712A patent/JP2011503710A/ja active Pending
- 2008-11-09 RU RU2010123391/08A patent/RU2010123391A/ru unknown
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11204769B2 (en) | 2011-03-25 | 2021-12-21 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN107729267A (zh) * | 2011-05-20 | 2018-02-23 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
CN105760316A (zh) * | 2014-12-19 | 2016-07-13 | 联想(北京)有限公司 | 控制方法装置、连接矩阵装置、访问方法装置及处理系统 |
CN107077440A (zh) * | 2014-12-25 | 2017-08-18 | 英特尔公司 | 紧密耦合的分布式非核一致结构 |
CN109445680A (zh) * | 2018-08-20 | 2019-03-08 | 华为技术有限公司 | 一种对硬盘进行管理的方法及装置 |
CN115617718A (zh) * | 2022-12-19 | 2023-01-17 | 芯动微电子科技(珠海)有限公司 | 一种基于AXI总线的读写保序方法及SoC系统 |
Also Published As
Publication number | Publication date |
---|---|
US20090125685A1 (en) | 2009-05-14 |
EP2223219A4 (en) | 2011-01-26 |
CA2705234A1 (en) | 2009-05-14 |
RU2010123391A (ru) | 2011-12-20 |
JP2011503710A (ja) | 2011-01-27 |
EP2223219A2 (en) | 2010-09-01 |
WO2009060459A2 (en) | 2009-05-14 |
US8099561B2 (en) | 2012-01-17 |
WO2009060459A3 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101855622A (zh) | 用于紧密耦合多处理器的共享存储器系统 | |
US10409766B2 (en) | Computer subsystem and computer system with composite nodes in an interconnection structure | |
CN105469143B (zh) | 基于神经网络动态特征的片上网络资源映射方法 | |
Mamidala et al. | MPI collectives on modern multicore clusters: Performance optimizations and communication characteristics | |
Sewell et al. | Swizzle-switch networks for many-core systems | |
CN104813306B (zh) | 具有散布处理器dma‑fifo的处理系统 | |
US20140032701A1 (en) | Memory network methods, apparatus, and systems | |
Zhao et al. | Edge-MapReduce-based intelligent information-centric IoV: Cognitive route planning | |
CN102065019B (zh) | 基于区域划分的片上网络快速ip核映射方法 | |
CN101833441A (zh) | 并行向量处理引擎结构 | |
CN101477512A (zh) | 一种处理器系统及其访存方法 | |
CN105095110A (zh) | 可融合可重构缓存架构 | |
CN116070682A (zh) | 神经元计算机操作系统的snn模型动态映射方法及装置 | |
Carle et al. | All-to-all broadcasting algorithms on honeycomb networks and applications | |
Vinay Kumar et al. | Multi-culture diversity based self adaptive particle swarm optimization for optimal floorplanning | |
CN109117415A (zh) | 数据共享系统及其数据共享方法 | |
US20020194290A1 (en) | Low latency inter-reference ordering in a multiple processor system employing a multiple-level inter-node switch | |
Liu | Best-path planning for public transportation systems | |
Jones et al. | Performance of a parallel algorithm for standard cell placement on the Intel hypercube | |
JPH0635874A (ja) | 並列プロセッサ | |
Sinha et al. | Data-flow aware CNN accelerator with hybrid wireless interconnection | |
Adhikari et al. | Reliable, Effective and Fault-Tolerant design of Leafy cube interconnection network topology | |
Faisal et al. | 3D-TTN: a power efficient cost effective high performance hierarchical interconnection network for next generation green supercomputer | |
Trahan et al. | Tighter and broader complexity results for reconfigurable models | |
CN105446935A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101006 |