本发明的背景如下: 1.本发明的技术领域
本发明与数据处理器存贮器系统有关,更具体地说,与用于多处理器系统的动态存贮器系统有关。
2.现有技术的说明
下面几种系统代表了现有技术的情况。
美国专利4,365,295表明了一种含有一个存贮器系统的多处理器系统,其中每个处理的模块的存贮器被划分成四个逻辑地址区。这个存贮器系统包括一个变址图(map),该变址图把逻辑地址变换为物理地址,当需要实现一个虚拟存贮器系统时,该变址图与多处理器系统一起运行,把页面从辅助存贮器导入到主存贮器之中。
这个专利说明了一种传统的存贮器变址系统,它并未阐述出单个的或多个处理器对于存贮器的有效存取,这种有效存取包括用某个处理器交错(interleaving)那些存贮器基准,以及动态地将存贮器基准指向每个存贮器模块的全局或局部部分。
美国专利4,228,496表明了一种含有上述存贮器系统的多处理器系统,以完成一种虚拟存贮器系统。
然而,这个专利描述了一种传统的存贮器变址系统,它并未阐述单个的或多个处理器对于存贮器的有效存取,这种有效存贮包括用某个处理器交错那些存贮器基准,并且动态地将存贮器基准指向每个存贮器模块的全局或局部部分。
美国专利4,174,514表明了一种对于图象处理等方面的数据矩阵进行领域变换(neighborhood transformations)的装置,通过使用多个串联的领域处理器(这些处理器同时对某一单个数据矩阵的相邻的分隔部分起作用),在经济地使用存贮器的同时,达到了比串联处理器还高的处理速度。
这个专利表明的多处理器系统没提供任何措施使所有的处理器对一个共同的全局存贮器进行存取。
美国专利4,121,286表明了一种在一个多处理器环境中对存贮器空间进行分配和再分配的装置。
这个专利描述了一种传统的存贮器变址系统,它并未阐述出单个的或多个处理器对于存贮器的有效存取,这种有效存取包括用某个处理器交错那些存贮器基准,并且动态地将存贮器基准指向每个存贮器模块的全局或局部部分。
美国专利3,916,383表明了一种资源分配电路,它以时间间隔为基础有选择地启动单个的处理器,在这儿,一个时间间隔大约等于系统的存贮时间。这种资源分配电路包括一个优先级网络,它接收根据单个处理器的需要而从处理器发来的实时公共资源使用请求,指定所接收请求的优先级别,然后相应于此优先权级别,改变处理器的其它的顺序启动。这个专利表示了一种在一个中心处理器内具有几个独立的数据处理器的系统,在通常的概念中,它不是一个真实的多处理器系统。
本发明涉及一种系统,它具有一个或多个独立的处理器,形成一个多处理器,其中的存贮器系统被动态地划分为全局存贮器和局部存贮器。
美国专利3,820,079表明了一种多处理器计算机,它以围绕着一个公共控制和数据总线的模块形式构成。对于各个模块的控制功能被分布在这些模块之中,使系统更加具有灵活性。这个专利所表示的系统包括了传统的存贮器变址和交错。
与本发明不同的是,这种存贮器变址不对交错进行控制,而且对于所有数据而言,该交错在所有模块上是一样的。
美国专利3,641,505表示了一种多处理器计算系统,其中若干个处理单元、程序存贮器单元、可变化的存贮器单元和一些输入/输出单元可以有选择地被结合在一起,形成一个或多个独立的数据处理系统。分离成大于一个独立系统的系统交替地被手动开关控制或被程序发出的划分信号控制。
这个专利描述了一种传统的存贮器变址系统,它并未阐述出单个或多个处理器对于存贮器的有效存取,这种有效存取包括用某个处理器交错那些存贮器基准,并且动态地把存贮器基准指向每个存贮器模块的全局或局部部分。
美国专利3,601,812表明了一种存贮器系统,它用于在几个计算机和一个中央存贮器单元之间进行缓冲,或者在一个计算机和几个小存贮器单元与一个为了更有效地使用该小存贮器单元而设的划分地址表之间进行缓冲。该地址的二进制数字被分解成两个不相交的子集,一个子集被用作为一个缓冲器地址,另一个子集与数据字一起存贮起来,以实现它们的识别。
这个专利讨论了多处理器中对存贮器数据的缓冲,它并未提出一种动态划分的存贮器系统,这种动态划分的存贮器系统包括用一个处理器交错那些存贮器基准,并且动态地把存贮器基准指向存贮器的全局或局部部分。
上述的现有技术即没有指示也没有建议出在此所公开的并要求保护的本发明的技术方案。
本发明的概要如下:
本发明的一个目的是把一个存贮器系统动态地划分为一个可以被多个处理器有效地存取的全局存贮器和可以被单个处理器有效地存取的局部存贮器,完成此功能所用的方法和设备包括:用一个处理器交错存贮器基准的装置;处于每个处理器的控制下的用于控制上述装置(即交错存贮器基准的装置)的装置;动态地把存贮器基准指向存贮器的第一或第二部分的装置。
本发明的另一目的是动态地划分如上所述的存贮器系统,完成此功能所用的方法和设备进一步包括:把存贮器的第一部分指定给一个基准处理器,存贮器的第二部分指定给其它的处理器。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括在页面边界上分配存贮器的第一装置。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括用于在可变段边界上动态地分配存贮器的第二装置。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括用所说的控制存贮器分配的第一和第二装置去控制存贮器交错的装置。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括用一个因子实现交错存贮器的装置,该因子等于2的从0到系统的处理结点数目之间的任意次幂。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括一个可变宽度位段(Variable-Width bit-field means)的右循环可变量的装置。该装置用于把存贮器模块(在这些模块上执行交错)限定到小于预定最大值的数量。
本发明的另一目的是动态地划分如上所述的存贮器系统,所用的方法和设备进一步包括对跨存贮器的交错扫描进行再变址(re-map)的装置,以便对不同的连续的交错扫描提供不同顺序的存贮器存取。
因此,本发明包括的方法与设备可以动态地把一个存贮器系统划分为一个全局存贮器和一个局部存贮器,该全局存贮器可以被若干个与网络相连的处理器有效地访问,该局部存贮器可以被单个处理器有效地访问;本发明还包括用一个处理器交错存贮器基准的装置;受到每个处理器控制的、用于控制上述装置(即交错存贮器基准的装置)的装置;以及动态地把存贮器基准指向存贮器第一或第二部分的装置。
前面所述的以及其它的本发明的目的、特点和优点,可以通过本发明的最佳实施方案的具体叙述和附图的说明得到更清楚的了解。
附图的简要说明如下:
图1是根据本发明的一个多处理器系统的方框图;
图2是根据本发明的一个处理节点的方框图;
图3是一个网络地址图,表示了根据本发明的地址结构;
图4是根据本发明的一页连续变址的地址的图示;
图5是根据本发明的一页交错变址地址的图示;
图6表示了局部和全局存贮器的页交错;
图7是根据本发明的图2所示的一个变址/交错块的方框图;
图8是根据本发明的图2所示的一个网络/存贮器接口块的方框图;
在图中,同样的部分被指定以同样的参考号,在不同的具体实施例中的一致的部分被指定以一致的参考号。
本发明的最佳实施方案的描述如下:
1.引言
本发明允许在运行期间把主存贮器动态地划分为每个处理器的局部存贮器和能被所有的处理器全局存取的存贮器。
现有技术中的多处理器系统提供了:
(1).仅有局部存贮器,而无全局存贮器;
(2).仅有全局存贮器,而无局部处理器;
(3).全局存贮器和固定数量的局部存贮器。
类型(2)中的一些系统有一个固定数量的高速缓冲存贮器形成的局部存贮器,能有效地减少全局存贮器的等待时间,以后将可以看到,本发明不排除使用一个高速缓冲存贮器,总的讲,不排除使用存贮器分级结构。
与上述系统不同,此处所述的本发明的系统允许对存贮器结构动态地进行变更,以适应用户的需要,结果便在更宽的应用范围中实质性地改善了其性能。本发明同样也支持了处理器之间的信息的有效传送,而这种功能在上述第(1)种类型的系统中是由特殊的硬件实现的。
2.结构
如图1所示,所需要的机器结构包括N个处理结点20,它们与某种通讯网络10相连。在这些结点中包含有处理器和系统的主存贮器,(见图2)。可以使用任何能为在所有结点之间提供通信的网络。
网络说明
图1中表示了一个互相连接网络(ICN)10,它与各种结点20连接在一起。本发明不需要任何特殊的互连网络设计,但是所用的网络至少必须有下述功能:
(a).发生在任何一个结点20的信息要能通过网络10,可靠地被发送到任何其它的结点20。
(b).信息的发送基于包含在该信息的“结点#”字段(Node#field)中的地址信息。
当与那些各种结点20耦合时,互相连结网络ICN10的这种信息发送功能必须使任一处理器仅仅通过指定正确的绝对地址,对在任一结点20的任何存贮单元进行访问。本发明的存贮器变址机构(memory-mappingmechanisms)给每个处理器提供了产生这种绝对地址的功能。
图2表示出了某个结点的内容。变址/交错(MAP/INTERLEAVE)(M/I)24对处理器(PROC)22发出的存贮器基准的地址按下述方式进行地址变换。
在变址之后使用一个高速缓冲存贮器26以满足一些存贮器基准。此处叙述的本发明不需要使用一个高速缓冲存贮器,它也不限制该高速缓冲存贮器的位置。例如,高速缓冲存贮器26可以位于处理器22和M/I块24之间。
网络/存贮器接口(NET/STORE INTF(NSI)28把高速缓冲存贮器26所不满足的那些基准(假如没有高速缓冲存贮器,则把所有的基准)指向在该结点中的主存贮器30部分,或者通过网络10,指向其它的结节的存贮器30。
网络/存贮器接口NSI 28还从其它结点接收基准请求,并且把它们指向将被满足的一个结点的存贮器。这样就有效地使结点存贮器30具有双重端口能力(dual-ported)。通过局部地交错一个结点的存贮器30并且重迭(overlapping)这个交错请求处理过程,可以以较低的成本得到几乎同样的效率的增长。
3.局部/全部变址
变址/交错(M/I)24执行通常的两级段/页(segment/page)变址;即:在主存贮器30中存贮的某些形成的段/页表的指导下完成把处理器22所产生的虚拟地址变换为真实地址的操作。所产生的真实地址唯一地确定了所有结点存贮器中的每个字或字节:高位二进制数确定结点号,低位二进制数确定结点存贮器中的字或字节。图3表明了这种情况。
在本发明中,变址/交错M/I24还执行一种地址的交错转换。一个附加的字段来规定变址/交错24是否执行此功能,该附加的字段被加到段和/或页表中的项目上,这是本发明所独有的。这种转换的效果使真实存贮器的一页成为完全包含在一个结点中的一个连续的地址块(见图4);或者使一页真实地址成为一个被散布在几个结点存贮器上的地址块(见图5)。
这样便可以保证一个连续的页面处于一个结点自己的存贮器30之中,对于处理器22而言,它是局部的,并且可以快速存取,提供了一个局部存贮器的功能。由于一个交错的页面被散布在许多存贮器块上,当多个处理器访问它时,则大大地减少了存贮器冲突的可能性,还提供了有效的全局可存取存贮器。
为了进一步减少冲突的可能性,该交错转换还可以“散列”(hash)地址的结点号部分,例如把地址的结点号数部分和其它地址的二进制数进行“或”操作XOR(exclusive-oR-ing)。这样可以减少以正常方式访问存贮器时冲突的可能性。
所使用的交错度(一个交错的页面被散布其上的结点的个数)可以由附加的字段来确定,该字段是附加在段和/或页表上的。这个字段还可以确定所用的“散列法”的特点。
通过连续地对一些页面进行连续变址,而对一些页面进行交错变址,部分的主存贮器30可以是局部的而部分主存贮器30是全局的。存贮器变址表控制着局部对全局的数量,在运行期间,这是可以变化的,以适应应用的要求。
图6表明了一个主存贮器应用的例子,本发明使这类的主存贮器应用成为可能。图6表明从所有的结点存贮器30的一端分配的全局存贮器和从另一端分配的局部存贮器。但是这并不是使用此叙述的本发明的唯一方式,它只是表明本发明如何允许在连续的运行过程中去改变用来作为全局存贮器和局部存贮器的存贮器比例。
4.信息传送
除了由全局存贮器所承担的通信功能外,本发明还支持处理器之间直接地信息传送(direct inter-processor message passing):直接主存贮器数据移动指令(例如“MVCL”IBM 370操作原理)可以被用来把数据从一个处理器的一个连续页面移动到另一个处理器的一个连续页面上,而不扰乱或不需要使用任何其它的结节存贮器。
存贮器变址表的说明
变址/交错M/I使用存贮器变址表。这些变址表用以确定由变址/交错M/I完成的在处理器发生的地址和进入存贮器的地址之间所执行的变址操作。具体地说,本发明所独有的是:这些变址表确定了一种交错转换是否将被应用到一个地址上,并且可以确定在有此种交错转换时将应用什么样的交错转换。这些表可能驻存在交址/交错M/I自身之中;或驻存在由变址/交错M/I所访问的系统主存贮器中(或者是全局存贮器,或者是局部存贮器);或既驻存在变址/交错M/I中又存在系统的主存贮器中。无论它们驻存在什么地方,系统处理器所运行的软件都可以对其进行修改。通过扩展这种地址表的常规内容,使其包括至少一位的含有确定交错和/或再变址信息的一个字段,可以很方便地把这些表中的交错定义与某种形式的虚拟存贮器变址结合起来,这些形式可以是页面变址、段变址或两级段页变址(参考文件见计算机科学出版社出版的,贝·J著的“计算机系统结构”一书,原文为:Baer·J·,“Camputer Systems Architecture”,Computer Science Press,Rockville,MD,1980)。上述的结合在此处说明的最佳实施方案中已经被完成,但本发明并不要求这种结合,本发明仅仅要求由每个处理器来控制交错的存在和/或其量。做此工作的其它方法包括:扩展处理器的指令组,以得到交错的和非交错的数据存取指令;通过指令组的扩展或输入/输出指令控制,得到一些这样的指令,它们使对于数据和/或指令获取的交错开始或停止。
变址/交错M/I24的工作说明
图7表示了在存贮器变址和低位再变址(low-order remapping)二者被结合起来的情况下变址/交错(M/I)的工作情况。图的顶部表示从处理器接收到且存贮在VAR 242中的一个虚拟地址。如图所示,它被分为一个段和/或页索引(S/PI)244、一个页内地址(offset)PO 246和一个字节地址WD 248。在存贮器变址系统中,这些字段具有传统的意义。WO用来指定在编址的字中的哪一个字节(或较大的最小编址单元的字)将被访问到,该WO穿过整个变址过程而保持不变(如图所示),下面将不对其进行进一步说明。
如图所示,以传统方法使用S/PI,将其作为进入存贮器变址表的一个索引。从这个存贮器变址表中,通过表查找操作以传统方式获得实际的段/页地址(S/PO)250,以形成一个真实地址,如图所示,本发明所独有的是:表查找还产生出一个与每个段和/或页相关联的交错量,该段和/或页在存贮器变址表中被确定。
在得到真实地址之后,可以应用低位再变址252在RAR254中产生一个再变址地址。低位再变址对可变量的可变宽右循环的那部分也适用(下面还要说明),也可以将其省略,在这种情况下,真实地址保持不变地传送到下个阶段。低位再变址利用真实地址的其余部分(HR字段)对一个字段LR进行操作,以产生相同宽度的一个新地址字段LR′,如图所示。LR(以及LR′)的宽度可以是两个极端之间的任何值:最大时,其宽度等于页内地址(PO);最小时,等于最大允许的交错量,即:如果宽度等于N,则存贮器模块的最大数为2N。图7表示了这两个极端之间中点的情况。低位再变址的目的是对将在存贮器模块的子集合上被交错的连续地址进行随机化处理,以不同顺序存取。这样当被存取的数据的结构的大小等于对所有存贮器的一个交错的扫描中存贮器量的整倍数时,便降低了许多处理器同时访问同一个存贮器模块的可能性。LR的最大宽度应能保持页面在连续编址块(Contiguously-addressed blocks)中被寻址;最小尺寸等于有效地执行上述功能所需要的最小值。低位再变址是1对1,就是说,LR的每一个可能的值必须被变换为LR′的一个不同的值。一种可能的低位再变址如下:从右到左将LR的各个位命名为LR0、LR1……LRn;同样,HR和LR′的各个位也被类似地命名。然后,利用“xor”代表传统的异或逻辑功能,一个适用的低位再变址则为:LR0′=LR0xor HRO;LR1′=LR1xor HR1;……LRn′=LRnxor HRn。
之后,在一个可变宽位段装置256上,由一种可变量右循环执行实际的交错转换,产生出用来访问系统存贮器模块的实际绝对地址。这种交错转换使用先前所得到的交错量,并且在再变址(假如有再变址)除字节地址(WO)外,之后,对真实地址进行处理。将要被循环的字段的宽度和字段中将被循环的量是由交错量所确定的。右循环操作如下:像上述的LR一样对HS进行编号,给定一个交错量Q,将被循环的字段宽度是由HS0开始到HSq-1。被循环的字段的位数等于Q。可以使用一种传统的方法对结合的HS、CS和LS字段按位循环Q位,而不用可变量可变宽右循环。但是,该方案允许系统结构具有比处理结点的最大数目要少一些的处理结点,这是因为在绝对地址寄存器258中,它保持了高位(最左位)的0不变,那些高位的0出现在RAR254中再变址的地址中。传统的循环不会这样,因此,必须允许LS的所有的可能值这样一个事实便强制访问所有可能的结点。
在绝对地址中,最后的HS′字段指定处理结点,该结点的存贮器模块包含要被存取的数据(结点Node#);结合的CS和LS′字段指示在那个将找到数据的存贮器模块中的偏移地址(存贮器内地址)WO字段指示需要哪一个字节或子字。
要注意的是,当交错量等于0时,可变量可变宽右循环使HS′等于HS,而LS′等于LS,这使得绝对地址与再变址的地址相同,于是提供了直接的连续寻址。这提供了上述的连续寻址。存贮器变址表中适当的值允许相对于产生地址的结点而言,这些连续地址是属于局部存贮器,或是完全被包含在其它节点中的存贮器(对于信息传送和其它操作来说,后者是很有用的)。
还要注意的是,使用小于最大的可能的交错有效地限制处理器(全局存贮器被分配在这些处理器上)。这可以在几个方面得到应用,例如:(a)假如由于存贮器模块有故障,网络有故障等,能允许系统继续工作,尽管此时工作在降低性能的方式;(b)能有效地划分系统,允许一些部分有它们自己的、独立于其它部分的全局和局部存贮器分配,这便减少了这些部分之间的干扰一既能运行几个独立问题,又可运行一个适当地划分开的单个问题。
高速缓冲存贮器26的工作
上述的发明可以与一个自用的高速缓冲存贮器26一起运行,也可以没有它。该高速缓冲存贮器26的位置可以如图2所示,或位于处理器与M/I之间。高速缓冲存贮器的功能是去减少那些在时间上或在相邻地址上反复出现的存贮器存取的访问时间。对于保持在多处理器结构中的高速缓冲存贮器的一致性而言,这种高速缓冲存贮器需要有一种附加的能力,而在单一处理器的高速缓冲存贮器上平常不具备这种能力。例如:假如一个处理器可以大致上在另一处理器在一个存贮单元上写入的同时,在同一单元读出存贮器,则要求在其自己的高速缓冲存贮器中哪一个处理器也不满足这样的存贮器基准。这种附加能力可以由各种不同的方式提供,例如:不同的高速缓冲存贮器之间的交叉讯问(cross-interrogation),或者通过指定某些存贮器位置,使其不可进行高速缓冲(non-cacheable)。本发明可以结合使用任何此种高速缓冲存贮方案(或者根本不用)。
网络/存贮器接口28
本发明包括一个网络/存贮器接口(NSI)28,图8说明了它的操作原理。对于本发明的正常运行而言,这个单元的路径选择功能(下文还要解释)是必需的。本发明中可以使用提供这种相同的信息路径选择功能的任何硬件结构,任何本技术领域中的熟练技术人员对于它的工作情况是很明确的。这种单元与每个处理结点合在一起,如图2所示。该单元的功能是在相联的处理器,相联的存贮器控制器和网络的其它处理器结点之间安排路线发送信息,所发送的信息类型包括(但不限于):
(a).本地处理器发出的装入请求。
(b).本地处理器发出的存贮请求。
(c).本地高速缓冲存贮器发生的高速缓冲存贮器线装入请求,这是本地处理器发出的存贮请求与高速缓冲存贮器失配(cachemisses)的结果。
(d).本地高速缓冲存贮器发出的高速缓冲存贮器线存贮请求,这是本地处理器发生的存贮请求与高速缓冲存贮器失配的结果。
(e).对于本地处理器和/或高速缓冲存贮器发出的存贮器装入或存贮请求的响应。
(f).其它处理器或高速缓冲器发出的存贮器装入或存贮请求,包括包含在本地处理器结节的存贮器的存贮单元。
(g).对其它处理器或高速缓冲存贮器发出的存贮请求的响应,它们从本地处理结点的存贮器返回。
(h).从本地处理器到远程处理器的信息,或从远程处理器结点到本地处理器的信息。
(i).本地处理器发出的同步请求(诸如测试与设置testand-set等),在本地存贮器或远程存贮器位置执行这些请求。
(j).对于同步请求的响应。
所有这些信息必须包含足以识别信息的类型的数据。
另外,所有到达NSI 28的这种信息必须包含这样的数据,它能足够地确定这些信息是否要被发送到本地处理器/高速缓冲存贮器26、本地存贮器30或互连网络10。在处理器或高速缓冲存贮器发出存贮请求的情况下,这种信息被包含在存贮器地址的“节点#”字段中(Node #)。如果“节点#”字段值与本地结点的数相符,则这种请求便发送到本地存贮器30;否则便发送到互连网络10。上述的存贮器变址方案使所需的交错操作的执行有所保证。同样,对存贮请求的响应或者被发送到本地处理器22,或者被发送到互连网络10,以便回到发出该信息的处理器。其它信息也必须包含“结点#”字段和信息类型识别码,它们唯一地识别这种信息,以便由NSI 28正确地发送。根据包含在信息中的字段中的信息,NSI能够把信息从三个源中任一个发送到两个其它的输出端的任一个。特别地,图中所示的装置可以执行下述的发送功能:
(a).PE发送器(PERTE)282从PE22接收信息。如果“结点#”字段指示当前结点,则PE RTE 282通过本地存贮器集中器(LMCON)把信息送到本地存贮器30,否则,则通过网络集中器(NET CON)286把它送到网络。
(b).本地存贮器发送器(LM RTE)288从本地存贮器30接收响应信息。如果“结点#”指示当前结点,LM RTE 288则通过PE集中器(PE CON)290把信息发送到本地PE 22,否则,通过网络集中器(NET CON)286把它送到网络。
(c).网络发送器(NET PRE)292从网络接收信息,并且根据每个信息的类型确定它是不是:1)对本地存贮器模块访问的另一处理器所给出的请求;或2)来自另一个结点的回答,它包含有当前结点所请求的,来自其它结点本地存贮器的数据。如果是1)的情况则通过LM CON 284把信息发送到本地存贮器,否则,通过PE CON 290把它送到本地PE22。
(d).网络集中器286或者通过PE RTE 282从PE 22,或者通过LM RTE 288从LM 30接收信息(或者是请求,或者是回答)。根据信息的“结点#”它把两者送到网络10,以发送到另一结点。
(e).PF集中器290或者通过LM RTE 288从本地存贮器30,或通过NET RTE 292从网络器接收回答信息,它把这些信息送往PE22(和/或高速缓冲存贮器26)。
(f).本地存贮器集中284或者通过PE RTE 282从本地PE 22,或通过NET RTE 292从网络10接收请求信息。它把这些信息送往本地存贮器30。
除了数据通信的通路之外,上述发送器和集中器必须与控制信息通信,这些控制信息指定什么时候数据有效(从发送器到集中器),并指定什么时候可以被接收(从集中器到发送器)。
可以使用一个两端口存贮器而不用LM RTE 288和LM CON 284装置。
这样参照最佳实施方案叙述了本发明,本领域熟练的技术人员能理解到,在形式上和细节上可以做出各种改变而不离开本发明的范围。