并行计算机体系结构,使用这种体系结构的信息处理单元的制作方法

文档序号:6537215阅读:206来源:国知局
专利名称:并行计算机体系结构,使用这种体系结构的信息处理单元的制作方法
技术领域
本发明的背景本发明的领域本发明涉及能够实现SIMD(单指令流,多数据流)体系结构的并行计算机体系结构,并更具体涉及能够借助于适当和高速存储器控制进行通用并行处理的计算体系结构。
先有技术的说明现在计算机已经全面地引入到社会的许多方面,因特网和其它网络到处看见,数据正在大规模地积累。为了能处理那样大规模的数据需要巨大的计算能力,于是自然要试图引入并行处理。
现在,并行处理体系结构分为“共享存储器”型和“分布式存储器”型。前者(“共享存储器”型)是其中多处理器共享单一的巨大的存储器空间的体系结构。在这种体系结构中,处理器组和共享存储器之间的通信量成为瓶颈,因而不容易构成使用100个处理器以上的实际系统。于是,例如在计算十亿浮点数的平方根时,能够进行的处理并不比单个CPU的速度快100倍。经验上发现,上限大约为30倍。
在后者的情形(“分布式存储器”型),每一处理器有其自己的局部存储器,且这些被链接而构成系统。以这种体系结构,能够设计出结合数百个到数万个处理器的硬件系统。于是,在计算上述十亿浮点数的平方根时,能够进行的处理是单个CPU的速度数百倍到数万倍。然而,后者也有一些如下所述的问题。
本发明是关于“分布式存储器”类型的,于是在首先增加某些对这种体系结构的说明的同时,将与先有技术进行比较。“分布式存储器”型体系结构的第一个问题是数据管理的划分问题。
大量的数据(通常由阵列组成,于是以下将以阵列这一术语描述)不能存储在属于单个处理器的局部存储器中,于是这些数据必须在多个局部存储器之间按需要通过划分进行管理。很明显,必须引入有效而灵活的管理划分机制,否则将对程序的开发和执行带来各种障碍。当分布式存储器型系统中各处理器要访问巨型阵列时,虽然每一处理器能够快速访问局部存储器中的阵列元素,但是处理器间的通信成为访问属于其它处理器的阵列元素的致命问题。同与局部存储器通信相比,这种处理器间的通信性能非常低,据说需要最少100个时钟周期。因此,在实现分类期间极大地降低了性能,因为查找是在巨型阵列的整个范围上进行的,这样处理器之间的通信频繁地发生。
以下详细说明这一问题。如1999年,个人计算机在“共享存储器”型体系结构使用一个到几个CPU。这些个人计算机中使用的标准CPU以大约5-6倍存储器总线的内部时钟速度操作,装有自动内部并行执行功能及流水线处理功能,使得一条数据能够大约在一个时钟周期(存储器总线)内处理。
当在“共享存储器”型个人计算中对巨型阵列进行分类进程时,对一条数据需要一个时钟周期,于是可以想象,要达到100倍“分布式存储器”型多处理器系统的性能,对每一条数据需要100个时钟周期(存储器总线)。“分布式存储器”型体系结构的第三个问题是程序如何提供给多处理器的问题。
在程序分别向巨大数目的处理器加载并整个协同操作(MIMD多指令流,多数据流)的体系结构中,程序的生成,汇编和分配造成了主要负担。
另一方面,在许多处理器以同一程序操作(SIMD单指令流,多数据流)的体系结构中,降低了编程中的自由度,于是可能出现不能对给出所需结果的程序进行开发的情形。
本发明提供了一种方法和计算机体系结构,用于解决上述“分布式存储器”型的问题1到3。通过使用阵列中各元素布局(物理地址)在各处理器模块内一致的方法的管理划分,能够解决巨型阵列管理划分的问题1。借助于这一技术,免除了需要垃圾的收集,阵列元素的插入或删除在几个时钟内完成,并能够规定对SIMD的实现至关重要的由各处理器处理的隐式(非显式)划分。稍后将通过“多空间存储器”概念说明这一方法。
通过按要实现的处理重新连接各处理器,并在每一连接路线上按约定顺序进行约定的数据类型的单向连续传输,从而编排通信使得能够使用几乎100%的总线容量,并同时实现大规模并行流水线处理,从而处理器间通信低效的问题2能够解决。
物理展示其有效性,稍后将提供构成一个系统的例子,其中十亿记录的分类大约在一个实际的系统设计中在一秒钟内完成。这比已知最快装置的速度高出100,000多倍。稍后将作为“总线重构”说明这一方法。
通过采用SIMD方案能够解决“程序的提供”问题3。在SIMD情形下,最大的问题是如何解决在各处理器之间处理的隐含(非显含)划分,但是处理的划分的这一问题能够以上述“多空间存储器”技术自动解决,从而即使使用SIMD也能保持编程的自由度。
就是说,本发明的目的是要提供一种分布式存储器型计算机体系结构,其中能够以单阵列进行存储在各类型存储器中阵列内元素的输入/输出,并可实现非常高速的并行处理。
本发明的概述本发明的目的是通过一种并行计算机的体系结构实现的,包括一个CPU模块,多个存储器模块,其中每一个具有一处理器和RAM核,以及构成所述CPU与存储器模块之间和/或存储器模块之中的连接的多个总线集,其中各存储器模块的处理器按照由CPU向各存储器的处理器给出的指令操作,且其中所述并行计算机体系结构这样构成对具有约定关系的一序列数据给定空间ID,且每一存储器模块的处理器管理至少包含所述空间ID的一个表,其自己管理的数据序列部分的逻辑地址,所述部分的长度和数据序列的长度,并且每一存储器模块的处理器确定其自己管理的数据序列的部分是否涉及接收的指令,读出存储在RAM核中的数据并将其在总线上发送出去,通过总线向RAM核写入给定的数据,对数据进行必要的处理,和/或更新所述表。
借助于本发明,即使所述数据序列被划分在许多存储器模块之中,也能够使用空间ID对数据序列进行寻址,每一存储器模块的处理器能够可靠地识别所述数据序列。而且,存储器模块使用一个表对数据序列以及其自己管理的部分寻址,使得在收到指令时,通过查找该表能够执行约定的处理。从而,能够基于单指令实现各处理器之间的并行处理。
在本发明的一个优选实施例中,处理器具有空间比较器,比较由CPU给定的空间ID与它自己管理的一个或多个数据序列的空间ID,地址比较器,比较由CPU给定的逻辑地址与它自己管理的数据部分的逻辑地址,以及地址计算器,基于所述逻辑地址计算在其自己RAM单元中的物理地址。这些比较器和计算器可以硬件构成,或它们可以通过对处理器编程以软件实现。
此外,在本发明的另一优选实施例中,每一所述存储器模块接收同步信号,用于实现与CPU模块和其它存储器模块的同步化,且其构成使得,它包含可连接到任何所述多个总线集的输入,以及可连接到任何其它所述多个总线集的输出,并至少根据所述同步信号通过把输入连接到所述总线之一,输入数据并把输出连接到任何所述其它总线,它能够输出数据。
借助于这一实施例,根据同步信号进行从存储器模块数据的输出以及向存储器模块数据的输入,而且能够通过控制总线的连接正确地实现并行处理。
更为好是如果在每一所述总线集上装有开关,从而控制所述CPU模块和任何存储器模块的输入或输出,和/或一个存储器模块的输入和输出与另一存储器模块的输出和输入之间的连接,并通过所述开关的切换,在每一所述总线集中实现并行数据的交换。从而,能够更有效地使用多个总线集,并能够进一步增加并行机制。
在本发明的另一实施例中,通过作为所述多个总线集之一的第一总线,一个存储器模块的输出连接到另一存储器模块的输入,且通过作为所述多个总线集的另一个的第二总线,所述其它存储器模块的输出连接到另一存储器模块的输入,使得数据通过第一总线的交换与数据通过第二总线的交换并行地进行。这样,借助于计算机的这一实施例,能够实现由CPU模块和存储器模块进行的流水线处理。更好是重复所述总线和存储器模块之间的连接以形成存储器模块之中的多级连接。
在本发明的另一优选实施例中,当所述处理器接收一指令以删除数据序列内一特定的元素,向所述数据序列插入一特定的元素,或向数据序列的末端添加一特定元素时,所述处理器进行表查找,比较它自己管理的数据区域与受到删除,插入或添加的所述元素的位置,并基于所述比较的结果,更新所述表的内容。就是说,处理器更新它自己管理的表;即,通过重映象能够实现元素的删除,插入和添加。
在本发明的另一实施例中,响应给定的指令,所述处理器转换用于指定数据序列内的元素的下标,和/或执行用于向元素给出特定修改的数值转换。
此外,本发明的目的还可以通过一信息处理单元实现,该单元包括一个CPU模块,多个存储器模块,其中每一个具有一处理器和RAM核,以及构成所述CPU与存储器模块之间和/或存储器模块之中的连接的多个总线集,其中各存储器模块的处理器按照由CPU向各存储器的处理器给出的指令操作,且其中所述信息处理单元这样构成对具有约定关系的一序列数据给定空间ID,且每一存储器模块的处理器管理至少包含所述空间ID的一个表,其自己管理的数据序列部分的逻辑地址,所述部分的长度和数据序列的长度,并且每一存储器模块的处理器确定其自己管理的数据序列的部分是否涉及接收的指令,读出存储在RAM核中的数据并将其在总线上发送出去,通过总线向RAM核写入给定的数据,对数据进行必要的处理,和/或更新所述表。
此外,本发明的目的还通过一种计算机系统实现,该系统包括上述的信息处理单元,以及与CPU模块通过另一总线链接的包括遗留的存储器的一个或多个存储装置,输入装置和显示装置。
附图的简要说明参照附图和实施例本发明的这一和其它目的更为清晰。这里图1是一框图,表示根据本发明一个实施例的计算机系统的结构。
图2是一简化的框图,表示根据这一实施例的存储器模块。
图3是表示单个存储器空间中数据序列的排布的图示。
图4是表示根据本发明的多空间存储器中数据序列的排布。
图5是用来说明根据这一实施例的地址映象的图示。
图6是用来说明根据这一实施例的数值修改的图。
图7是根据这一实施例存储器模块之中流水线处理的一示意图。
图8A到8C是用来说明根据这一实施例在多空间存储器下存储器模块14的结构的图示。
图9A到9C是用来说明在多空间存储器下存储器模块14的结构的图示。
图10A到10C是用来说明在多空间存储器下存储器模块14的结构的图示。
图11是一流程图,表示在接收一指令以删除一定的空间ID内约定的元素范围时,在各存储器模块中执行的进程。
图12A到12F是表示被删除的元素与保持在存储器模块中的元素的排布之间的关系的图示。
图13是一流程图,表示在接收一指令以删除一定的空间ID内约定的元素范围时,在各存储器模块中执行的进程。
图14是一流程图,表示在接收一指令向一定的空间ID末端添加元素时在各存储器模块中所执行的进程。
图15A和15B的图示用来说明根据这一实施例阵列的联合和阵列的划分。
图16A和16B的示意图表示这一实施例中具有空间ID“10”的阵列以及具有空间ID“11”阵列连同它们存储在存储器模块中的状态。
图17的图示表示这一实施例中通过在各存储器模块中阵列和空间ID控制表的联合而获得的一个阵列。
图18的图示表示这一实施例中的一例,其中具有空间ID“10”的阵列被划分为具有空间ID“10”的阵列和具有空间ID“11”的阵列。
图19的图示表示,本实施例中通过在各存储器模块中联合阵列和空间ID控制表而获得的阵列。
图20的图示表示本实施例中,从一个存储器模块组向另一存储器模块组数据的并行拷贝。
图21的图示用来说明根据本实施例的转换标志的使用。
图22的图示用来说明根据本实施例的转换标志的使用。
图23的图示用来说明根据本实施例的分类进程的流程。
图24的图示用来说明根据本实施例的分类进程的流程。
图25的图示表示根据本实施例的数据查找过程,其中从记录号码确定字段值。
图26的图示用来说明根据本实施例的另一分类进程的流程。
图27的图示用来说明根据本实施例的搜索进程的流程。
图28的图示用来说明根据本实施例的搜索进程的流程。
优选实施例的说明[硬件构成]优选参照


本发明的实施例。图1是一框图,表示根据本发明实施例的计算机系统的构成。如图1所示,计算机系统10包括基于单指令进行并行操作的CPU模块12,存储并行操作所需的各种类型的数据的存储器模块14-1,14-2,14-3,存储所需程序和数据的硬盘驱动器16,键盘,鼠标或其它输入装置18,由CRT等组成的显示器20,以及以各种格式存储数据等遗留的存储器22。此外,在总线24-1,24-2,…,上,开关28-1,28-2,28-3,…等位于与各存储器模块14接触的点处,使得所选择的电路元素能够交换信息。此外,在CPU模块12与存储器模块14-1之间装有开关30-1,30-2,...形成总线链接及存储器模块之中的连接。注意,说明书附加的图示中,为了方便存储器模块可以由“PMM”指示。
在CPU模块12和存储器模块14之间装有多个总线24-1,24-2,24-3,24-4...。于是数据等能够通过上述总线在存储器模块之中交换。此外,在CPU 12与存储器模块14之间装有信号控制线路25,使得由CPU 12发出的指令可传送到所有的存储器模块14。
此外,在CPU 12与其它各构成元件(例如硬盘驱动器16,输入装置18等)之间装有局部总线26,于是数据等还能够在它们之中交换。CPU 12读取存储在硬盘驱动器16或RAM或与局部总线26连接的其它存储装置(未示出)中的程序,并遵循这一程序与开关28,30等的控制一同,执行向存储器模块14发送指令及其它数据交换。此外,根据程序,CPU 12接收存储在遗留的存储器22中各种格式的数据,把这种格式化的数据转换为能够由CPU 12,存储器模块14和总线24组成的系统处理的数据序列(阵列),并在各存储器模块14中存储。
图2是表示根据本实施例的存储器模块14的一简化的框图。如图2所示,存储器模块14的组成包括,时钟缓冲器32,接收由CPU模块12给出的时钟和其它同步信号,存储数据的RAM核34,处理器(MPU存储器处理单元)36,识别空间ID及数据的元素号码(稍后将说明),并在从CPU 12接收指令等时,基于空间ID和元素号码把数据写入RAM核34或从RAM核读取数据,以及I/O单元38,从总线之一接收数据并将数据提供给RAM核34,和/或发送来自RAM核34的数据,并在总线之一上发送这数据。在这一实施例中,存储器模块14能够通过信号控制线路25从CPU接收指令,响应这些指令并进行从RAM核34读取数据,向RAM核34写入数据,或对数据进行其它约定的处理。此外,基于由时钟缓冲器32给定的时钟或其它同步信号,执行通过I/O单元对RAM核34的数据访问,以及数据输入和数据输出。
从图1和2明显可见,本发明中,计算机系统10可被认为是共享存储器型的系统。此外,如稍后所述,处理是通过向存储器模块14通过信号控制线路25给出指令由各存储器模块14并行执行的。此外,数据向总线输出以及数据从总线输入等是基于约定的同步信号执行的。于是,可认为这一计算机系统10采用了SIMD系统的形式。在提供具有这种结构的计算机系统10的详细说明之前,将简要说明由这一计算机系统10所实现的功能的概要。
(1)多空间存储器在本说明书中,“多空间存储器”是指一种存储器,其中这样分配存储器空间,使得基于空间ID和地址能够访问存储器空间。因而,即使当数据序列在许多处理器中被划分时,每一处理器都能够可靠地区分并识别这数据序列。
在传统的存储器空间中,即使对每一进程分配分离的空间,存储器空间的分配也不能对每一变量序列(阵列,结构,等)进行。于是,这种传统的存储器空间在以下称为为“单存储器空间”。在单存储器空间的系统中,只使用地址进行数据的访问,于是不能区分或识别相关数据的序列。因此,即使并行处理实际上是可行的,有很多情形对此不能确定。此外,当新的数据序列存储在一定的单存储器空间时,并行进行垃圾收集,以便保证有存储所述的数据序列的地方。
反之,本发明中,空间ID被引入存储器空间,从而向一数据序列施加同一ID。此外,每一存储器模块14对保存在其自己的RAM核34中的数据识别空间ID,并从而每一存储器模块14能够确定是否需要通过查找当前正要访问的数据的空间ID进行操作。此外,因为每一存储器模块14能够保存所有或某些与空间ID相关的数据序列,因而能够在多个存储器模块14之中存储被划分的一定的数据序列,于是垃圾收集成为不必要的。
例如,如图3所示,考虑“A”数据序列,“B”数据序列...存储在单存储器空间中的情形。例如假设总存储器长度为32个字,而上述数据序列的总长度为30个字。因为这些数据序列散布在整个空间,虽然有12个字没有使用的存储器,而实际能够被存储的最大的数据序列限制为3个字。因此,为了存储新的长度大于3个字符的数据序列,并行进行垃圾收集。另一方面,使用本发明,向每一数据序列施加空间ID。这些数据序列被存储在一个或多个与空间ID相关的存储器模块14中。于是,能够使得未被使用存储器量与可用的存储器量匹配。
(2)存储器模块此外,在本发明中,每一存储器模块14具有处理器36,该处理器能够识别它自己保存的数据序列的各元素号码。于是,在从CPU 12接收一指令时,处理器36能够确定根据指令要被访问的数据是否保存在其自己的RAM核34内,并从而确定访问是否必要。而且,每一存储器模块14能够从存储在其自己的RAM核34中的阵列元素中的下标范围,确定在SIMD下指令中隐含的处理的负担范围。
此外,在本发明中,存储器模块14能够进行地址映象。例如,如图5所示,当一定的元素在约定的位置插入在约定的阵列中时,或者当在约定的位置一个元素要被删除时,或者约定的元素要添加到一个阵列的末端时,根据这一实施例,通过处理器36对保存与所述阵列相关的元素的每一存储器模块进行地址映象,这可以快速地并行进行。此外,如图6所示,当阵列元素(值)被修改时(例如,当向每一值加“1”时),处理器36能够对每一保存相关阵列元素的存储器模块快速地并行进行所需的处理。
此外,在存储器模块14中,处理器36能够确定要被存储到RAM核34的数据的长度,并以压缩的形式存储该数据。例如,在整数值数据要保存在一定的存储器模块14中,但是实际的数据值只能包含从0到3范围的值的情形下,则处理器36只准备2位存储每一数据值。在使用32位表示带有CPU 12的总线上的一个整数的情形下,这时为了进行存储器模块14和CPU 12之间的通信,只需要处理器36改变数据格式,并然后进行与CPU 12交换即可。从而,能够充分使用RAM核34而没有浪费。此外,文本串或其它类型的可变长数据也能够类似地通过改变数据长度被存储。
此外,在存储器模块14中,能够对与约定的空间ID相关的数据,或被指定了约定范围中的元素号码的数据,设置特定的值(例如“0”)。因而,能够在存储器模块14内快速进行初始化进程。此外,能够在特定数据(阵列)内搜索值或检验下标的范围。
(3)可重构的总线根据本发明,CPU 12能够有选择地接通/断开开关28-1,28-2,...以及开关30-1,30-2,...,并这样规定了与之要交换数据的存储器模块14,从而实现了流水线处理。例如,如图7所示,如果从一定的存储器模块14-i输出的数据要向另一存储器模块14-j给出,而从这另一存储器模块14-j输出的数据要传送到另外一存储器模块14-k,则CPU 12这样设置各开关的状态,使得向存储器模块14-i和14-j分配总线24-m,并向存储器模块14-j和14-k分配总线24-n。
此外,不仅能够在单存储器模块之中连接的情形下能够实现这一流水线处理,而且还能够通过多个存储器模块序列(存储器模块组)之中的连接实现这种处理。取决于要实现的处理,能够重新连接各种存储器模块,使得能够在每一连接路线上按约定的顺序进行约定的数据类型的单向连续转移,从而这样编排通信,使得能够使用几乎100%的总线容量。因而,能够解决作为分布式存储器类型并行处理系统最大问题的处理器间通信的不良性能。
就具有这种构成的计算机系统10,以下将说明多空间存储器的具体构成和多空间存储器中系统的操作。图8A到8C的图示用来说明根据本实施例的多空间存储器下存储器模块14的结构。如图8A所示,在存储器模块14内的RAM核34中装有空间ID控制表。因而,存储器模块14的处理器36能够确定由它自己保存的数据的空间ID和其它必要的信息。
如图8B所示,空间ID控制表包含用于它保存的每一数据组的空间ID,在CPU控制下的逻辑起始地址,分配给数据组的区域长度,RAM核34内的物理起始地址,具有所述空间ID的数据序列的总长度,以及控制访问的访问控制标志。本实施例中,访问控制标志能够被设置为只读(R),只写(W)或允许读/写的三种状态之一。
当给定具有一定空间ID的数据组时,存储器模块14的处理器36在RAM核34中找到所述数据组能够被存储的一个或多个区域,并在所述区域按其原样或被划分为两个或多个部分存储该数据。这时,在空间ID控制表中与给定的空间ID,逻辑起始地址,总长度及访问控制标志一同存储RAM核内数据实际被存储的逻辑起始地址以及所分配的区域长度。图8C的图示表示根据图8B的空间ID控制表在RAM核34内存储的数据。以下将说明访问具有这种结成的存储器模块14。如图9A到9C所示,CPU 12首先向所有存储器模块14通过信号控制线路25传送空间ID,逻辑地址和所需的指令(例如,读或写数据)。对此的响应是,每一存储器模块14使用装在处理器36中的空间比较器52比较该空间ID与保存在其自己的空间ID控制表中的空间ID,并确定是否由自己保存有相同的空间ID。而且,地址比较器54对逻辑地址进行同类的判断。然后,如果确定在其自己的RAM核34内保存有受指令支配的数据,则存储器模块14的处理器36使用地址计算器56查找空间ID控制表以计算RAM核34内的物理地址,并验证受处理的数据。
一旦数据被这样验证,处理器36执行对应于由CPU 12给定的指令的处理(例如,读或写数据),并如果必要,向CPU 12传送数据(参见图9C)。以下描述,从具有一定空间ID的一个数据序列(以下在一定情形下称为“阵列”)存储在一个或多个存储器模块14的状态到特定的元素被删除的状态,所进行的一系列操作的一例。
考虑如图10A所示属于空间ID“010”的数据组存储在一定的存储器模块14-i,以及如图10B所示属于空间ID“010”D数据组存储在另一存储器模块14-j的情形。例如,能够看出在存储器模块14-i中,在RAM核的物理地址“100”开始存储有从“0”到“59”的逻辑地址的数据。这种情形下,虚拟阵列如图10C所示。
以下将说明当一定的阵列这样存储在多个存储器模块中时删除特定元素的进程。考虑这种情形,其中通过信号控制线路25从CPU 12发出删除空间ID “010”的50到59元素的指令。图11和13是一流程图,表示其中收到删除在一定的空间ID内约定的范围中的元素的指令并在各存储器模块上执行的情形下的进程。
每一存储器模块的处理器36接收通过信号控制线路25给出的指令,解释其内容(步骤1101),检验指令内的“空间ID”(步骤S1102),并对保存在其自己的RAM核34中的数据是否与该空间ID相关作出判断(步骤1103)。如果步骤S1103的结果是No,处理结束。如果结果是Yes,则处理器36查找空间ID控制表并确定与所示空间ID相关的数据组是否可写入,以及要被删除的范围的长度是否小于整个的长度(步骤S1104)。如果检验检测到错误(步骤1105中Yes),则处理器36通过信号控制线路25报告发生错误。另一方面,如果没有出现错误,则处理器36比较由指令请求要删除的范围与保存在其自身RAM核34中的元素的范围(步骤S1107),并按这一比较的结果可执行各种进程(步骤S1108)。
首先,在要删除的范围处于由其自身保存的元素范围之后的情形下(参见图11“A”和图12A),处理器36不进行操作(参见步骤S1109)。如果要被删除的范围处于重叠由其自身保存的元素稍后部分的位置(参见图11“B”和图12B),则处理器36改变分配的区域长度(步骤S1110)。就是说,被分配的区域长度被改变,使得从被删除的范围的起始(参见箭头1201)到保存在其自身的RAM核34中的元素范围的末端(参见箭头1202)的区成为垃圾。
另一方面,如果被删除的范围处于由其自身保存的元素范围之前(参见图11“C”和图12C),处理器36更新逻辑起始地址,使得逻辑起始地址被降低删除请求的长度量(步骤S1111)。错误,如果被删除的范围在由自身保存的元素范围之前并只是部分重叠(参见图11“C”和图12D),则处理器改变逻辑起始地址为被删除的范围起始处的值,并还改变物理地址为对应于被删除的范围末端的物理地址“+1”(步骤S1112)。然后,处理器36更新分配的区域的长度(步骤S1113)。
此外,如果被删除的范围包含由其自身保存的元素范围(参见图11“E”和图12E),则处理器36从空间ID控制表删除与所述空间ID相关的各数据(图13的步骤1114)。最后,如果要被删除的范围包含在由其自身保存的元素范围内(参见图11“F”和图12F),则处理器36把空间ID控制表划分为两个,并可以产生与被删除的范围前面部分相关的各数据,并还产生与被删除的范围后面部分相关的各数据(步骤1115)。另外,处理器36还可能进行对其自身RAM 34的垃圾收集。
这样,存储器模块14响应来自CPU 12的单指令(或空间ID删除指令)操作,于是在约定的存储器模块中并行地进行所需的处理。
以下将简单说明向具有一定ID的阵列末端添加元素的情形。图14是一流程图,表示在接收向具有一定空间ID的阵列末端添加元素的指令的存储器模块中所进行的处理。图14的步骤1401到1406对应于图11的步骤1101到1106。然后,每一存储器模块14的处理器36确定要添加的元素是否应当存储在其自身的EAM核34中(步骤S1407)。这能够通过处理器36进行其自身空间ID控制表的查找而实现。如果步骤1407的结果是Yes,则所需值在空间ID控制表被更新(例如,按照被添加的元素数改变分配的区域长度),并然后被添加的元素写入RAM单元内约定的区域(步骤1409)。另外,可以产生空间ID控制表的各种值以及要被添加的元素可被写入对应的RAM单元。
然后,处理器36更新空间ID控制表内与所述空间ID相关的“总长度”值(步骤1401)。即使步骤1407的结果是No,空间ID控制表内相关的“总长度”值也被更新。
在阵列内任意位置添加元素的情形下,进程类似于在每一存储器模块14中进行删除请求的进程。
以下,将说明如图15A所述联合多个阵列的情形,以及如图15B)所示划分单一阵列为多个阵列的情形。在根据本实施例的计算机系统10中,具有一定空间ID的阵列(图15A中空间ID“100”)和/或具有另一空间ID(图15B中空间ID“100”)的阵列可以包含在单存储器模块的RAM核内,或可以包含在多个存储器模块的RAM核内。
图16A和16B的图示表示,具有空间ID“10”的阵列和具有空间ID“11”的阵列与它们一同存储在存储器模块中。在图16A中示出带有空间ID为“10”而其各元素长度为10个字的阵列1501。这一阵列1501内的元素存储在存储器模块14-1到14-x。此外,在图16B中示出带有空间ID为“11”而其各元素长度为10个字的阵列1510。这一阵列1510内的元素存储在存储器模块14-1到14-x。
当CPU 12通过信号控制线路25发出一指令,其效果是联合带有空间ID为10的阵列与空间ID为11的阵列”时,每一存储器模块14接收该指令并确定该指令是否是与由其自身保存的数据的空间ID相关的事务。这一进程几乎与图11的步骤1101到1106的进程相同。
然后,如果由处理器自身保存的数据的空间ID关系到该指令,则存储器模块的处理器按照以下过程联合这些阵列。
在以上图16所示的情形下,如果各相关存储器模块14保存有空间ID“10”和空间ID“11”两者的元素,则与空间ID“11”相关的空间ID控制表的值被更新。更具体来说,进行关于空间ID“10”的“总长度”值的查找,并重新计算其逻辑起始地址(例如参见图17的1701和1702)。此外,相关的存储器模块把空间ID控制表内的“总长度”值更新为对应于被联合的两个阵列的长度的值(例如参见图17的1703)。图17的图示表示这样获得的阵列1710和空间ID控制表存储器模块14-1到4-x。
图18的图示表示本实施例中,空间ID为“10”的阵列被划分为空间ID为“10”的阵列和空间ID为“11”的阵列。图18所示空间ID为“10”的阵列中阵列的划分点是这样设置的,使得位于划分点之前的元素纳入空间ID为“10”的阵列,而位于划分点之后的元素进入纳入空间ID为“11”的阵列。
又这种情形下,当CPU 12通过信号控制线路25发出一指令其效果为“使用划分点作为边界,划分空间ID为10的阵列为空间ID为10的一阵列和空间ID为11的一阵列”时,每一存储器模块14执行大体上对应于图11的步骤1101到1106的处理,并在与该指令相关的存储器模块之中,执行约定的处理。例如,当存储位于划分点之后的元素时,处理器36生成与空间ID为“011”相关的空间ID控制表内各个值,并还更新与空间ID为“010”相关的空间ID控制表之中关于总长度的值。此外,当只存储位于划分点之前的元素时,处理器更新与空间ID为“010”相关的空间ID控制表之中关于总长度的值。图19的图示表示这样获得的阵列1901和1902及存储器模块14-1到14-x中空间ID控制表(例如,参见1911,1912和1913)。以下简要说明在多空间存储器下使用可重构总线按情况进行并行拷贝。
例如,如图20所示,使用来自CPU 12的单指令,能够从一个存储器模块组140向另一存储器模块组141进行数据的并行拷贝。以下的并行拷贝方式是可想象的。
(1)一个存储器模块组140包含单个存储器模块而另一存储器模块组包含多个存储器模块的情形。
(2)一个存储器模块组140包含多个存储器模块而另一存储器模块组也包含多个存储器模块的情形。
在前一种情形下,包含被拷贝元素的存储器模块14的处理器36通过信号控制线路25接收CPU 12一指令从(例如,指令是拷贝在具有一定空间ID的阵列内的约定元素,如带有空间ID8,9和10的阵列),并从RAM核34向约定的总线输出规定的元素。另一方面,拷贝目标的处理器36也响应相同指令的接收,接收从总线输出的元素,并在RAM核34约定的区域存储该元素,并还更新其自身的空间ID控制表。
关于后一种情形,能够使用多个总线从一个存储器模块组140内的每一存储器模块,向其它存储器模块组141对应的存储器模块拷贝数据。这种情形下,CPU 12控制开关28和开关30使得约定的存储器模块之间能够交换数据即可。使用根据本实施例的多空间存储器,下标转换能够用于转换输入下标,并规定带有被转换的下标的阵列,并还修改阵列元素的值。当一定的进程被完成并提交且下标转换或值的修改不再需要时,各存储器模块的处理器能够重写关于所述阵列的空间ID控制表,并进行重新映象,这样立即解决下标转换。另一方面,值的修改本身要占用时间,因为这必须更新实际存储在RAM核中的元素。于是,在存储器模块中,设有转换标志,且其中反映出值修改的元素实际存储在RAM核,并然后对应于该元素的标志被设置为“1”。通过这样作,在一定的进程中,如果查找转换标志而这标志为“1”,则没有必要获得值的修改,但是另一方面,如果转换标志为“0”,则必须获得值的修改,以便这能够易于被获知。于是,基本上能够立即实现提交。
此外,通过使用根据本实施例的多空间存储器,对于诸如图21所示的嵌套结构的值修改,能够提供转换标志,并查找这些转换标志以便知道是否必须获得值的修改。本实施例中,通过使用多空间存储器和可重构总线,能够具有来自CPU 12的单指令进行并行分类处理。以下将说明本实施例中的并行分类处理。
图23和24的图示用来描述根据本实施例的分类进程的流程。这一分类处理能够一般划分为图23所示的进程(确定计数并计算总数)及图24所示的进程(记录号码的转移)。
为了实现根据本实施例的分类处理,这一实施例对值列表使用指示字,其构成使得包含记录号码的记录号码阵列,包含一定字段实际值的值列表,以及来自记录号码阵列的值(记录号码)用作为输入,而指示在对应的值列表中的存储位置的指示字值作为输出获得。就是说,记录号码用来查找指向对应的的位置处的值列表的指示字值,而实际的字段值根据该指示字值规定(参见图25)。
首先,当CPU 12通过信号控制线路25向存储器模块14给出所需指令时,每一存储器模块执行基本等价于图11步骤1101到1106的进程。此外,CPU 12来自在相关存储器模块之中包含该记录号码的存储器模块的通知控制开关28和30,使得包含该记录号码的存储器模块序列(第一存储器模块组2301)的输出连接到一定的总线(称为“第一总线”)。
然后,CPU 12根据来自包含指向值列表的指示字阵列的存储器模块的通知控制开关28和30,使得包含指向值列表的指示字阵列的存储器模块序列(第二存储器模块组2302)的输出连接到一定的总线(称为第二总线”)。
进而,在另一存储器模块序列中(第三存储器模块组2303),对具有与指向该值列表的指示字有相同长度(相同元素数)的“计数阵列”分配一个区域,且每一元素被初始化为“0”。此外,向第三存储器模块组的输入连接到以上第二总线。
然后,记录号码在第一总线上从记录号码阵列的开始按顺序被发送出。这通过第一存储器模块组2301中的每一存储器模块的处理器36进行空间ID控制表的查找,检测在第一总线输出数据时的时标,并发送约定的记录号码而实现。
记录号码通过第一总线向构成第二存储器模块组2302的每一存储器模块给出。每一存储器模块的处理器36进行其自身的空间ID控制表的查找,检测与指向它管理的值列表的指示字阵列相关的记录号码的输入,并向第二总线输出对应于所述输入的指示字值。
指示字值通过第二总线向构成第三存储器模块组2302的每一存储器模块给出。每一存储器模块的处理器36进行其自身的空间ID控制表的查找,检测与指向它管理的值列表的指示字阵列相关的指示字值的输入,并使在对应于该指示字值的计数阵列中位置的元素增量。重复这一操作,能够知道字段值被记录号码指向多少次。
当完成上述对于计数阵列的进程序列时,在存储器模块序列中分配一固定的区域以便生成一阵列,用于存储已分类的记录号码。这一存储器模块序列被称为第四存储器模块组2304。CPU 12控制开关28和30,使得前面处理中使用的第三存储器模块组的输出通过总线(称为第三总线)连接到第四存储器模块组的输入。
一旦这些准备完成,则进行分类进程。更具体来说,从第二号码阵列的开始出发,通过第一总线向构成第二存储器模块组的存储器模块给出记录号码。在第二存储器模块组内约定的存储器模块中,处理器36通过由第二总线向第三模块组传送指示字值而响应记录号码的接收。
然后,在第三存储器模块组之中约定的存储器模块中,处理器36基于指示字值进行相关计数阵列的查找,并确定对记录号码的存储位置。从而,记录号码及其存储位置通过第三总线从所述存储器模块发送。于是,在第四存储器模块组的约定的存储器模块中,处理器36在约定的存储位置放置记录号码。通过重复这一进程,能够在第四存储器模块组中生成已分类的记录号码阵列(图24中2410)。
例如,图23所示的进程可以是流水线式的。就是说,当一定的记录号码p通过第一总线转移时,关于记录号码p-1的指示字值P(p-1)能够通过第二总线转移。此外,图24所示的进程类似地能够是流水线式的。这种情形下,也是当一定的记录号码p通过第一总线转移时,关于记录号码p-1的指示字值P(p-1)能够通过第二总线转移。此外,关于记录号码p-1的存储位置能够通过第三总线同时转移。
以下的结果是关于对这种流水线式进程的处理时间而获得的。首先,关于图23的处理,假设第一到第四总线每一个为128位,于是每一个具有带宽12.8GB/秒,且假设记录号码和指示字值为32位整数。现在,在十亿个记录的情形下,上述处理涉及4十亿字节数据的转移,但是已发现,如果进行流水线式的处理,则处理可以在4G/12.8G=0.3125秒中完成。
类似地,关于图24的处理,假设类似的带宽和数据长度,在十亿个记录的情形下,必须要80亿字节数据的转移,于是发现如果进行流水线式的处理,则处理可以在8G/12.8G=0.625秒中完成。以下将简单说明通过另一种技术的分类。在这种分类中,由包含记录号码阵列的存储器模块组成的第一存储器模块组(参见图26的2601)的输出连接到第一总线,而由存储指向值列表指示字阵列的存储器模块组成的第二存储器模块组2602的输入连接到第一总线。从而,通过第一总线第一存储器模块组2601的输出能够传送到第二存储器模块组2602。
另一方面,在第三存储器模块组2603中对具有与第二存储器模块组2602相同空间ID号码的一个阵列分配一区域,并且第二存储器模块组2602的输出通过第二总线也连接到第三存储器模块组2603的输入。
然后,在第一存储器模块组2601中,当包含一定记录号码的存储器模块的处理器36通过第一总线发送所述记录号码时,在第二存储器模块组2602约定的存储器模块中,处理器36响应其接收,并从对应的指示字值计算空间ID,并通过第二总线发送记录号码和空间ID。
在第三存储器模块组中,基于所述的空间ID和记录号码,约定的存储器模块36被启动,并在具有所述空间ID的阵列末端放置给定的记录号码。一旦对所有记录号码执行这一进程,在第三存储器模块组中,每一存储器模块的处理器36执行用于联合它所具有的阵列的进程。通过这一技术也能实现够高速分类。此外,本实施例中,通过使用多空间存储器和可重构总线,能够基于来自CPU 12的指令进行并行搜索。
图27和28是用来说明根据本实施例的搜索进程的流程的图示。对于这一搜索,使用记录号码阵列,指向值列表的指示字阵列,值列表和yes/no标志阵列等。于是,在这一例子中,如图25中所示,按记录号码,指示字值,字段值的顺序查找值。
首先,当CPU 12通过信号控制线路25向存储器模块14给出所需的指令时,每一存储器模块执行基本上等价于图11步骤1101到1106的进程。此外,根据来自在相关的存储器模块之中包含该记录号码的存储器模块的通知,CPU 12控制开关28和30,使得包含该记录号码的存储器模块序列(第一存储器模块组2701)的输出连接到一定的总线(称为“第一总线”)。此外,对具有与值列表相同元素号码的yes/no标志阵列,在一存储器模块序列(第二存储器模块组2702)中分配一区域,并且属于所述第二存储器模块组2702的每一存储器模块的处理器36把每一元素初始化为“0”。
然后,第二存储器模块组2702的输入连接到第一总线。这时,根据由CPU 12给出的搜索条件,第二存储器模块组的每一存储器模块中的处理器36查找满足搜索条件的值列表内的字段值,并设置yes/no标志阵列中对应的值为“1”。例如,如果搜索条件是一个范围,则只要使用二进制树方法等即可。此外,在其它条件的情形下,则匹配可对每一元素判断。
一旦完成这一进程,即执行搜索。首先,CPU 12控制开关28和30,使得包含该记录号码阵列的存储器模块序列(第三存储器模块组2703)的输出连接到第一总线,并且包含指向值列表的存储器模块序列(第四存储器模块组2704)的输入连接到第一总线。此外,CPU 12控制开关28和30,使得第四存储器模块组2704的输出和第二存储器模块组2702的输入连接到第二总线。
并且,在存储器模块序列(第五存储器模块组2705)中对具有与记录号码相同元素号码的阵列分配一区域,且CPU 12控制开关28和30,使得第二存储器模块组2702的输入的输出通过第三总线连接。
在这进程之后,在第一总线上按顺序从记录号码阵列的开始发送记录号码。这是通过第三存储器模块组2703中每一存储器模块中的处理器36进行空间ID控制表的查找,检测在第一总线上输出数据的时标,并发送约定的记录号码而实现的。
通过第一总线向构成第四存储器模块组2704的每一存储器模块给出记录号码。每一存储器模块的处理器36进行其自身的空间ID控制表的查找,检测与指向它所管理的值列表的指示字阵列相关的记录号码的输入,并向第二总线输出对应于接收的记录号码的指示字值及所述输入。
通过第二总线向构成第三存储器模块组的每一存储器模块给出指示字值。每一存储器模块的处理器36进行其自身的空间ID控制表的查找,检测指示与它所管理的yes/no标志阵列中的位置相同位置的指示字值的输入,并确定指示所述指示字值的yes/no标志为“0”还是为“1”。然后,如果yes/no标志为“1”,则通过第三总线向第五存储器模块组2705给出相关记录号码。
在第五存储器模块组2705中,每一存储器模块的处理器36进行其自身的空间ID控制表的查找,检测指示与它所管理的命中信息存储阵列中的位置相同位置的记录号码的输入,并对该位置的元素设置为“1”。通过对约的定记录号码重复这一进程,通过抽取在命中信息存储阵列中为“1”的元素而完成这一搜索。
按与分类相同的方式,上述搜索还能够借助于参照图27所述的进程以及参照图28所述的进程的流水线式处理实现。关于对搜索的流水线式处理的处理时间获得了以下结果。
假设总线带宽与各元素的位长度与在分类时相同,在十亿个记录的情形下,必须80亿字节数据的转移,于是如果进行流水线式处理,则处理可以在8G/12.8G=0.624秒内完成。
此外,如果使用这种搜索,能够使用AND,OR或NOT或其它布尔逻辑的组合在多字段上实现搜索。更具体来说,只要对每一字段生成命中信息存储阵列,并然后在这些字段的元素之中进行布尔运算即可。
例如,在两个字段上的AND或OR搜索中,进行命中信息存储阵列的元素的转移(十亿字节)。于是,能够看出这将需要(10G/8)/12.8G=0.098的处理时间。
并且,为了实现更高的速度,只要并行连接执行两个搜索进程的存储器模块组即可。此外,通过这样放置阵列,使得第四存储器模块组和第二存储器模块组能够以相同多个存储器模块构成,这将能够消除瓶颈,并基本上实现两倍的处理速度。
由于在权利要求的范围内可以有各种修改,本发明决不限于上述的实施例,且不必说这些修改仍然包括在本发明的范围内。
例如,在上述实施例中本发明用于计算机系统,但这不是限制,因为它也可用于可连接到个人计算机等的计算机板。这种情形下,CPU12,存储器单元14,总线24等等可以安装在板上,从而构成根据本发明的信息处理单元。
此外,连接CPU 12和存储器模块14,和/或存储器模块到每一其它存储器模块的总线集的数目不限于上述实施例中的数目,而是这一数目可以考虑计算机系统安装的电路板的尺寸,各总线的位宽等等而确定。此外,在上述实施例中,安装了设置存储器模块输入/输出及总线之间的连接的开关28,以及能够在CPU与存储器模块之间以及存储器模块之中切换总线的开关30。例如通过装设开关30,一定的总线(参见图1的总线24-4)即能够用于CPU模块12与存储器模块14-1之间的数据交换,也能用于存储器模块14-2与存储器模块14-3之间的数据交换(这种情形下,只需关断开关30-5即可)。因而,总线可被有效地利用。然而,在能够使总线集数目足够大的情形下,或在存储器模块数目相对小的情形下,不一定要装设开关30。
此外,本说明书中引述了来自CPU 12的指令通过信号控制线路25给出,但是除了指令之外,用于使各存储器模块同步操作的时钟信号或各种其它控制信号自然也是通过信号控制线路25给出,并且还可以从各存储器模块向CPU 12给出约定的信号(例如,出错信号和指示数据的接收的信号)。
此外,在本说明书中,一个器件的功能可以通过两个或多个物理器件实现,或两个或多个器件的功能可以通过一个物理器件实现。
借助于本发明,能够提供分布式存储器型的计算机体系结构,其中元素向存储在各存储器中的阵列的输入/输出可使用单指令实现,而且还能够实现非常高速的并行处理。
本发明可用于处理大量数据的系统,例如数据库和数据仓库。更具体来说,它能够用于大规模科学和技术计算,工厂和供电控制系统等,并用于定购管理以及诸如安全交易等关键任务处理工作。
权利要求
1.并行计算机的体系结构,包括一个CPU模块,多个存储器模块,其中每一个具有一处理器和RAM核,以及构成所述CPU与存储器模块之间和/或存储器模块之中的连接的多个总线集,其中各存储器模块的处理器按照由CPU向各存储器的处理器给出的指令操作,且其中所述并行计算机体系结构这样构成对具有约定关系的一序列数据给定空间ID,且每一存储器模块的处理器管理至少包含所述空间ID的一个表、其自己管理的数据序列部分的逻辑地址、所述部分的长度和数据序列的长度,并且每一存储器模块的处理器确定其自己管理的数据序列的部分是否涉及接收的指令,读出存储在RAM核中的数据并将其在总线上发送出去,通过总线向RAM核写入给定的数据,对数据进行必要的处理,和/或更新所述表。
2.根据权利要求1的计算机体系结构,其中所述处理器具有空间比较器,比较由CPU给定的空间ID与它自己管理的一个或多个数据序列的空间ID,地址比较器,比较由CPU给定的逻辑地址与它自己管理的数据部分的逻辑地址,以及地址计算器,基于所述逻辑地址计算在其自己RAM单元中的物理地址。
3.根据权利要求1或2的计算机体系结构,其中每一所述存储器模块接收同步信号,用于实现与CPU模块和其它存储器模块的同步化,并且其构成使得,它包含可连接到任何所述多个总线集的输入,以及可连接到任何其它所述多个总线集的输出,并至少根据所述同步信号通过把输入连接到所述总线之一,输入数据并把输出连接到任何所述其它总线,它能够输出数据。
4.根据权利要求3的计算机体系结构,其中在每一所述总线集上装有开关,从而控制所述CPU模块和任何存储器模块的输入或输出,和/或一个存储器模块的输入和输出与另一存储器模块的输出和输入之间的连接,并且通过所述开关的切换,在每一所述总线集中实现并行数据的交换。
5.根据权利要求4的计算机体系结构,其中通过作为所述多个总线集之一的第一总线,一个存储器模块的输出连接到另一存储器模块的输入,且通过作为所述多个总线集的另一个的第二总线,所述其它存储器模块的输出连接到再一存储器模块的输入,使得数据通过第一总线的交换与数据通过第二总线的交换并行地进行。
6.根据权利要求5的计算机体系结构,其中重复所述总线和存储器模块之间的连接以形成存储器模块之中的多级连接。
7.根据权利要求1到6任何之一的计算机体系结构,其中当所述处理器接收一指令以删除数据序列内一特定的元素、向所述数据序列插入一特定的元素、或向数据序列的末端添加一特定元素时,所述处理器进行表查找,比较它自己管理的数据区域与受到删除、插入或添加的所述元素的位置,并基于所述比较的结果,更新所述表的内容。
8.根据权利要求1到7任何之一的计算机体系结构,其中响应给定的指令,所述处理器转换用于指定数据序列内的元素的下标,和/或执行用于向元素给出特定修改的数值转换。
9.一种信息处理单元,包括一个CPU模块,多个存储器模块,其中每一个具有一处理器和RAM核,以及构成所述CPU与存储器模块之间和/或存储器模块之中的连接的多个总线集,其中各存储器模块的处理器按照由CPU向各存储器的处理器给出的指令操作,并且其中所述信息处理单元这样构成对具有约定关系的一序列数据给定空间ID,且每一存储器模块的处理器管理至少包含所述空间ID的一个表、其自己管理的数据序列部分的逻辑地址、所述部分的长度和数据序列的长度,并且每一存储器模块的处理器确定其自己管理的数据序列的部分是否涉及接收的指令,读出存储在RAM核中的数据并将其在总线上发送出去,通过总线向RAM核写入给定的数据,对数据进行必要的处理,和/或更新所述表。
10.根据权利要求9的信息处理单元,其中所述CPU模块这样构成,它能够链接到另一总线,该总线把遗留的存储器,输入装置以及显示装置彼此连接。
11.一种计算机系统,包括根据权利要求9的信息处理单元,以及通过另一总线与CPU模块链接的包含遗留的存储器的一个或多个存储装置,输入装置以及显示装置。
全文摘要
本发明的目的是提供一种分布式存储器型计算机体系结构,这种体系结构能够实现非常高速的并行处理。计算机系统10包括:CPU模块12,多个存储器模块14,其每一个具有处理器36和RAM核34,以及多个总线集24,它们形成CPU和存储器模块之间的连接,和/或存储器模块之中的连接,使得各存储器模块按照由CPU给定的指令操作。对具有约定关系的一序列数据给定空间ID,且每一存储器模块的处理器管理至少包含所述空间ID的一个表,其自己管理的数据序列部分的逻辑地址,所述部分的长度和数据序列的长度,并且每一存储器模块的处理器确定其自己管理的数据序列的部分是否涉及接收的指令,对存储在RAM核中的数据进行处理。
文档编号G06F15/76GK1379879SQ00814367
公开日2002年11月13日 申请日期2000年9月1日 优先权日1999年9月17日
发明者古庄晋二 申请人:特博数据实验室公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1