CN1109188A - 并行算术—逻辑处理装置 - Google Patents
并行算术—逻辑处理装置 Download PDFInfo
- Publication number
- CN1109188A CN1109188A CN94104311A CN94104311A CN1109188A CN 1109188 A CN1109188 A CN 1109188A CN 94104311 A CN94104311 A CN 94104311A CN 94104311 A CN94104311 A CN 94104311A CN 1109188 A CN1109188 A CN 1109188A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- memory
- arithmetic
- sam
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Abstract
一种其算术—逻辑处理由多个处理单元分担并
以并行方式进行的并行算术—逻辑处理装置,包括一
个大规模数据连续读/写的大容量串行存取存储器
2、一个小规模数据连续读/写的小容量串行存取存
储器3和一个小规模数据的随机写入/读出的高速
通用随机存取存储器4。一个根据处理规模决定是
否启用存储器的CPU5。
Description
本发明涉及一种并行算术-逻辑处理装置,该装置可以很方便地在科技领域中用作执行算术运算的计算机。特别是涉及一种并行算术-逻辑处理装置,由于在科技算术逻辑运算中经常遇到具有庞大数据量的矩阵数据,该装置中采用了一个连续的数据读写存储装置做为矩阵数据写中的存贮单元以减少处理时间和生产成本。
不妨说,近来技术方面的发展归因于大规模的复杂的科学计算成为可能。在科技计算过程中,矩阵运算(如超大规模一阶联立方程组的求解或矩阵特征值的计算)是经常发生的。就规模(行乘列)为(例如)n×n的矩阵而言,对于以矩阵作为系数的一阶联立方程组的计算、递矩阵的计算,矩阵特征值或特征向量的计算来说,其处理运算量等于O(n3)。所以,如果行数和/或列数(即n值)增加,处理运算量则必然会增大。
该由目前的计算机快速执行大量的运算。
虽然到目前为止的计算机的中央处理单元(CPU)的处理速度已经大大地增加了,但是要工很长时间在存储器中存取数据,因此,减慢了计算机的总的处理速度。
为了尽可能地减少在存储器中存取数据所必需的时间,已经开发了一种计算机,其中如图14所示,在CPU101和主存103之间设有一个能够高速存取的(虽然与主存103相比,其存储容量更小)被称为高速缓存102的附加存储器。
采用这种计算机,通过总线105事先将必要的数据从主存103读到高速缓存102中,以使必要的数据从高速缓存102中读出。由于高速缓存102允许高速存取,就可以更快地执行处理运算。
另一方面,还有一种已知的所谓超级计算机,它具有复数向量寄存器117,用于执行对集总数据的相同的处理运算,比如图15所示的矩阵运算。为了直接处理向量寄存器117中所含数据,能够直接访问执行二进制浮点加法运算的加法器110,和执行二进制浮点乘法运算的乘法器111及执行二进制浮点除法运算的除法器112的多个寄存器是按一维形式排列的。
在上述超级计算机执行处理运算之前,数据通过一个向量输入/输出电路119的运行,经数据线118,120从主存121中预先调入向量寄存器117中。调入向量寄存器117中的数据通过输入总线113提供给算术-逻辑单元110-112以执行处理运算。通过输出总线114将处理后的数据提供给向量寄存器117以便被重新写入其中。处理后的数据(即重新写入向量寄存器117中的数据)由向量输入/输出电路119读出以便被重新存入主存121中。
利用超级计算机,可以向量寄存器117以一种集总方式执行算术-逻辑运算。此外,由于最终将处理过的数据在主存121中存储的管道运算而使高速处理成为可能。
然而,有了采用象如图14所示的高速缓存102的计算机,则整个数据的一部分被存入高速缓存102中,而其余的数据在执行处理运算过程中被存入主存103中。所以,如果由于所谓误操作而未能将处理运算所必需的数据存入高速缓存102中的话,则有必要在CPU101处于等待状态的同时,将存入主存103中的数据读出。其结果,就无法快速地执行大规模的运算。
除此以外,有了图15中所示的超级计算机,则向量寄存器117一般在容量上要受到限制,即,如果需要执行大规模处理运算的话,就不可能将全部数据存在向量寄存器117中。因此,无法存入向量寄存器117中的数据必需从主存121中读出以便存入向量寄存器117中。由于读出和存储多余的数据需要大量的时间,因此,仍无法快速地执行大规模计算运算。
同时,可以通过向比如高速缓存102和向量寄存器117提供一种可达到高速存取的具有大存储量的附加存储器来克服上述问题。然而,这种可高速存取的大容量附加存储器需要较大的安装区域且由于计算机大小及生产成本的增加而使价格提高了。
考虑到已有技术中的上述问题,本发明的目的是提供一种并行算术-逻辑处理装置,该装置可以高速执行大规模算术-逻辑运算并且还可以减小计算机尺寸和降低生产成本。
本发明提供了一种并行算术-逻辑处理装置,其中待处理数据被控制装置分为第一数据和第二数据并提供给多个处理单元以便由处理单元进行并行处理。这些处理单元包括对第一数据进行连续写读的第一存储装置,对第二组数据进行连续写读的第二存储装置,对于从第一存储装置中读出的第一数据执行算术-逻辑处理运算和对从第二存储装置中读出的第二数据执行算术-逻辑处理运算的处理装置,将第一和第二数据从控制装置传送到第一和第二存储装置并将处理后的数据从处理装置中传送到控制装置的传输装置,以及用来控制传输装置中的数据输入/输出的传输控制装置。
第一数据是矩阵数据而第二数据是向量数据。
第一存储装置是一种用来对第一数据进行连续写读的串行存取存储器。
第二存储装置是一种用来对第二数据进行随机写入/读出的随机存取存储器。
第二存储装置是一种用来对第二数据进行连续写入/读出的串行存取存储器。
第二存储装置包括一个用来对第二数据进行随机写入/读出的随机存取存储器和一个用来对第二数据进行连续写入/读出的串行存取存储器。
利用本发明的并行算术-逻辑处理装置,由控制装置划分出的第一和第二数据被送到处理单元。来自控制装置的第一数据被送到第一存储装置,而来自控制装置的第二数据被送到第二存储装置。从第一和第二存储装置中读出的第一和第二数据由处理装置进行处理,来自处理装置的处理数据被送到控制装置。
利用本发明的并行算术-逻辑处理装置,具有大数据量的数据(如矩阵数据)被第一存储装置用作第一数据(所述第一存储装置包括一个用于数据连续写读的串行存取存储器),而具有小数据量的数据(如向量数据)被第二存储器用作第二数据,其中第二存储装置包括一个用于数据的随机写/读的随机存取的存储器或一个用于数据的连续写入/读出的串行存取存储器。
虽然对于串行存取的存储器来说只可能进行连续数据存取,但是它能够进行高速的数据写入和数据读出。此外,对于随机数据写入或读出来说,由于产生地址的地址解码器可以被简化或省去,因此,可以廉价地制造出具有大存储量的串行存取存储器。
在科技计算中,需要随机存取的数据(如向量数据)只有很少一点,而却存在大量的只需连续存取的数据(如矩阵数据)。因此,通过采用廉价的具有较小存储量的随机存储器作为第二存储装置和采用具有较大的存储容量的串行存取的存储器作为第一存储装置,可以降低并行处理装置的生产成本,同时可以快速地处理具有大数据量的数据。
有了本发明的并行算术-逻辑处理装置,可以如上所述,分别将具有较大存储量的串行存取存储器和具有较小存储量的随机存取存储器用作第一存储装置和第二存储装置。利用串行存取存储器进行较大数据量数据(如矩阵数据)的写入和读出,而利用随机存取存储器进行较小数据量数据(如向量数据)的写入和读出。串行存取存储器可以只执行连续的数据存取,且由于这一特定原因,它可以进行高速的数据写入和读出,因此,有可能避免了由于存储器的存取造成的数据处理中的延迟,且因此加快了大数据量数据的计算速度。
另一方面,由于并行算术一逻辑运算不是为适应任何特殊算法而设计的,因此,它能够适应许多种主要由连续的数据存取构成的算法。
此外,通过提供一种除具有较大存储容量的串行存取存储器以外的具有较小存储容量的串行存取的存储器,就可以快速地执行需要连续存取的计算,如仅涉及矩阵数据的计算或仅涉及向量数据的计算。
由于还提供了随机存取存储器,因此,还可以适应需要非连续的存储器存取的算法。
由于串行存取存储器适合于连续存取,因此,用于产生为随机写入和读出所固有的地址的地址解码器可以被简化或省去,以使得具有较大存储容量的存储器及并行处理装置可以以较低的成本制造出来。
图1是在实现本发明的并行算术-逻辑处理装置中所采用的处理单元的框图。
图2是表示图1所示的并行处理装置的构成的框图。
图3是表示在图1所示的并行算术-逻辑处理装置中所设置的随机存取存储器的框图。
图4是表示在图示所示的并行算术-逻辑处理装置中所设置的串行存取存储器的框图。
图5是用来说明将数据写入串行存取存储器运算的时序图。
图6是用来说明将数据从串行存取存储器读出的运算的时序图。
图7是用来说明在图1所示的并行算术-逻辑处理装置中的一个处理单元的处理运算的流程图。
图8是用来说明在图1所示的并行算术-逻辑处理装置中的内积处理运算的流程图。
图9表示的是分别写入图1所示的并行算术-逻辑处理装置中的每一个处理单元的大容量串行存取存储器(SAM)和小容量SAM的矩阵数据和向量数据。
图10表示由在图1中所示的并行算术-逻辑处理装置中所设置的每一个处理单元所执行的内积算术-逻辑运算。
图11表示将矩阵数据第一行的内积处理数据从图1所示的并行算术-逻辑处理装置所采用的每一个处理单元的CPU中传到控制CPU中的方式。
图12表示将矩阵数据第二行的内积处理数据从图1所示的并行算术-逻辑处理装置所采用的每一个处理单元的CPU中传送到控制CPU中的方式。
图13表示在图1所示的并行算术-逻辑处理装置中采用的每一个处理单元中寻找内积的整个处理运算。
图14表示采用快速缓存的惯用计算机的框图。
图15是采用了多个向量寄存器的惯用超级计算机的框图。
参照附图,对按照本发明的并行算术-逻辑处理装置的一个优选实施例进行说明。
根据本发明的并行处理装置包括多个处理单元1a-1m,其中每一个在图1中都用1表示。这些处理单元1a-1m通过控制总线10和数据总线11相连,两者的作用是作为输出控制信号和负责数据传输的控制装置。处理单元1的数目由处理运算的规模决定。
参照图1,每个处理单元1包括用作连续写入和读出数据的第一存储装置的一个大容量连续输入/输出I/O存储器2,用作连续写入和读出数据的第二存储装置的一个小容量连续输入/输出I/O存储器3,和用作随机数据写入和读出的一个小容量高速通用的随机存取的存储器4。存储器2和3被分别认为是大容量串行存取存储器SAM和小容量串行存取存储器SAM。
高速通用RAM4允许高速随机数据存取。
每个处理单元1还包括一个用作数据写入/数据读出和多种算术处理运算的算术-逻辑处理装置的中央处理单元CPU5,一个控制信号发生器6,它用作输出在与外界传送过程中所采用的各种信号的一个传输信号发生部分,以及一对用作传输装置的缓冲器7a和7b。
将大容量SAM2,小容量SAM3和高速通用RAM4与CPU5、控制信号发生器6及缓冲器76相连,而控制信号发生器6又与CPU5和缓冲器7a相连,同时,缓冲器7a与控制总线8相连,缓冲器7b与数据总线9相连。
高速通用RAM4由下列部分构成:用于数据写入和读出的存储器单元阵列130,用于产生存储器单元阵列130各行的数据写入/读出地址的行解码器131,以及用于产生存储器单元阵列130的各列的数据写入/读出地址的列解码器132,如图3所示。
高速通用RAM4用于写入和读出数据量不大但必须以随机方式进行处理的数据(如向量数据),还用于存储控制CPU5的程序数据。
当在高速通用RAM4中写入数据时,将写入地址数据通过地址总线133从CPU5送到行解码器131和列解码器132。行解码器131在写入地址数据的基础上产生存储器单元阵列130各行的写入地址,并将产生的写入地址数据送到存储器单元阵列130中,而列解码器132在写入地址数据的基础上产生存储器单元阵列130各列的写入地址,并将产生的写入地址数据送到存储单元阵列130中,按照这种方式通过数据线134写入的数据被写入存储器单元阵列130中。
当要读出已写入高速通用RAM4中的数据时,通过地址线133从CPU5中读出的读出地址数据被送到行解码器131和列解码器132中。行解码器131在读出地址数据的基础上产生存储器单元阵列130各行的读出地址以便将产生的读出地址数据传入存储器单元阵列130中,而列解码器132在读出地址数据的基础上产生存储器单元阵列130各列的读出地址以便将产生的读出地址数据送入存储器单元阵列130中。以此方式,写入存储器单元阵列130的数据被读出并通过数据线134输出。
大容量SAM2和小容量SAM3中的每一个都是由下列部分构成的:用于数据写入和读出的存储器单元阵列140、用于产生存储器单元阵列140的行数据的数据读出地址的读出行地址计数器141、用于产生存储器单元阵列140的行数据的写入地址的写入行地址计数器142、用于产生存储器单元阵列140的列数据的数据读出地址的读出列地址计数器143以及用于产生存储器单元阵列140各列的写入地址的写入列地址计数器144,如图4所示。
采用大容量SAM2是为了写入和读出大量的数据,如大规模矩阵数据,而采用小容量SAM3是为了写入和读出小量的数据,如小规模矩阵数据或向量数据,其中这些数据不需要进行随机存取。
当在大容量SAM2和小容量SAM3中写入数据时,将复位写入信号RSTW和允许写入信号WE送到写入行地址计数器142和写入列地址计数器144,其中RSTW在图5中的(b)表示的预置阶段期间变为高电平,而WE在图5中的(a)表示的写入期间也处于高电平。
写入行地址计数器142和写入列地址计数器144利用复位写入信号RSTW将它们的计数值置零,然后对送入的如图5中(c)所表示的写入时钟脉冲WCK进行计工将计数值(0,1,2,3……)(如图5中以(c)表示的)作为写入行地址和写入列地址送到存储器单元阵列140中。
存储器单元阵列140的写入地址WAD由下列公式(1)利用写入行地址和写入列地址计算:
写入地址=写入行地址×n
+写入列地址 …(1)存储器单元阵列140的大小为n×n。
将图5中以(e)表示的输入数据Din通过数据输入线145送到存储器单元阵列140中,其中的数据写入由公式(1)计算出的写入地址。
写入行地址计数器142和写入列地址计数器144中的计数值将被保持住直到加上复位脉冲。因此,通过在终止写入时将允许写入信号WE置0,并通过为下一步写入提供一个高电平允许写入信号WE而不提供复位写入信号RSTW,则写入行地址计数器142和写入列地址计数器144将从目前所保持的计数值开始计数。
当要将写入存储器单元阵列140中的数据时,将在图6中以(b)表示的预置期间变为高电平的一个复位读信号RSTR和在图6中以(a)表示的读出期间变为高电平的一个允许读出信号RE分别送到读出行地址计数器141和读出列地址计数器143中。
通过复位读信号RSTR,使读出行地址计数器141和读出列地址计数器143的计数器复位。接着对图6中以(c)表示的读时钟脉冲WCK计数以便将图6中usd表示的计数值(0,1,2,3…)作为读出行地址和读出列地址送到存储器单元阵列140中。
存储器单元阵列140的读出地址利用读出行地址和读出列地址通过下列公式(2)计算:
读出地址=读出行地址×n+读出列地址 …(2)而使存储器单元阵列140的大小为n×n。
写在存储器单元阵列140中的输入数据Din在由公式(2)计算出的读出地址基础上被读出,从而通过一条数据输出线146作为输出数据Dout被输出,如在图6中以(e)表示的。
由读出行地址计数器141和读出列地址计数器143所得的计数值将一直被保持到不再提供复位读信号RSTR。于是,在结束读出时,将允许读出信号RE置于低电平,同时,在不提供复位读信号RSTR的情况下,利用提供高电平允许读出信号RE来进行读出,读出行地址计数器141和读出列地址计数器143由目前所保持的计数值开始计数,因此,可以连续地进行数据读出,直至达到通常为读出终点的地址。
由上述并行处理装置进行用公式(3): 表示的矩阵数据和向量数据相乘的算术-逻辑处理运算可参照示于图7和8的框图说明。
因为矩阵的大小为8×8(n=8),处理运算可以表示为八个内积,即用下述式(4)表示的8个行向量与向量×相乘:
y1=a1·X
y2=a2·X ……(4)
y8=a8·X
在这种情况下,并行处理装置利用大容量SAM 2a到2d和小容量SAM 3a到3d进行确定内积的处理运算,这些SAM是由示于图9中的四个处理单元1a到1d中的每一个所提供的。
这就是,为并行地由四个处理单元1a到1d执行八个内积运算,每一个处理单元执行两个内积运算。
内积运算可以独立地进行,因而,哪一个处理单元执行哪一行的运算是无关紧要的。于是,第一处理单元1a的第一个CPU 5a计算内积数据y1和y5,而第二处理单元1b中的第二个CPU 5b计算内积数据y2和y6,为方程式(4)所示,类似地,第三处理单元1c的第三个CPU 5c计算内积数据y3和y7,而第9处理单元的第四个CPU 5d计算内积数据y4和y8,为方程式(4)所示。
在图9到13中,如在以下的叙述中所提及的,目前在算术-逻辑运算中未曾使用的高速通用RAM 4没有被表示出来。由于图9到13表示的是涉及算术-逻辑运算的数据移动,控制信号发生器6也未被示出。
在图7中,当开始进行算术-逻辑运算时,流程开始执行,并行处理装置进行到步骤S1。在步骤S1,允许写入信号WE和允许读出信号RE由处理单元1a到1d的CPU 5a到5d提供给大容量SAM 2a到2d和小容量SAM 3a到3d。另一方面,提供复位写信号RSTW和复位读信号RSTR以使读出行地址计数器141、读出列地址计数器143、写入行地址计数器142和写入列地址计数器144复位。
在第S1步,CPU 5a到5d将写时钟脉冲WCK提供给写入行地址计数器142和写入列地址计数器144,同时将向量数据X1到X8提供给每个存储器单元阵列140,这就使向量数据X1到X8被写到处理单元1a到1d的小容量SAM 3a到3d的每一个存贮单元阵列140中的写地址WAD(s)上,该地址是由写入行地址计数器142和写入列地址计数器144的计数值所指示的。
在第S1步,CPU 5a到5d中的每一个,向大容量SAM 2a到2d的写入行地址计数器142和写入列地址计数器提供写时钟脉冲WCK。同时, CPU 5a到5d的每一个,将有关矩阵数据y1和y5的矩阵数据11到a18和a51到a58传输给第一处理单元1a中大容量SAM 2a的存储器单元阵列140,将有关矩阵数据y2和y6的矩阵数据a21到a28和a61到a68传输给第二处理单元1b中大容量SAM 2b的存储器单元阵列140。CPU 5a到5d中的每一个,还将有关矩阵数据y3和y7的矩阵数据a31到a38和a71到a78传输给第三处理单元1c中大容量SAM 2c的存贮单元阵列140,将有关矩阵数据y1和y8的矩阵数据a41到a48和a81到a88传输给第四处理单元1d中大容量SAM 2d的存储器单元阵列140。
这样就使矩阵数据a11到a18和a51到a58;a21到a28和a61到a68;a31到a38和a71到a78;a41到a18和a81到a88分别被写入第一处理单元1a中大容量SAM 2a的存储器单元阵列140,第二处理单元1b中大容量SAM 2b存贮单元阵列140,第三处理单元1c中大容量SAM 2c的存储器单元阵列140和第四处理单元1d中大容量SAM 2d的存储器单元阵列140之中,如图9所示。
在第S1步中,主控CPU12将存储区12a初置为零,存储区12a是用来存放内积处理数据y1,y5;y2,y6;y3,y7;和y4,y8的。
若数据X1到X8和a11到a88在第S1步中已被写入,主控CPU12的存储区12a已经被初始化,则并行处理装置进入第S2步。
在第S2步,提供大容量SAM的复位读信号RSTR(b)和小容量SAM的复位读信号RSTR(s)以使读出行地址计数器141和读出列地址计数器143复位。
在下一步S3,由处理单元1a负责的诸行的第一行开始进行处理。
在第S4步,CPU 5a到5d的每一个,对写在大容量SAM 2a到2d上的矩阵数据和写在小容量SAM 3a到3d上的向量数据移动一位,以取出移位的矩阵数据和向量数据,如图10所示。
这意味着,在第S4步,CPU 5a到5d的每一个,顺序地取出写在小容量SAM 3a到3d上的向量数据X1到X8。另一方面,第一CPU 5a到5d分别顺序地取出矩阵数据a11到a18,a21到a28,a31到a38和a41到a48。
其次,在第S4步,CPU 5a到5d中的每一个通过执行内积计算程,一个接一个地取数计算出向量数据和矩阵数据的乘积,将乘积加到y1,y2,y3和y4上,以生成内积处理数据,y1=y1+a11X1,y2=y2+a21X1,y3=y3+a31X1和y1=y4+a41X1,并瞬时地贮存起所生成的数据。
在第S4步,CPU 5a到5d的每一个,重复执行上述内积运算程序,直至y1=y1+a18X8,y2=y2+28X8,y3=y3+a38X8和y4=y4+a48X8的处理运算终了为止。当y1=y1+a18X8,y2=y2+28X8,y3=y3+a38X8和y4=y4+a48X8的处理运算终了,每一个CPU将暂时存在其中的内积数据y1到y4通过数据总线11传输到控制CPU12。然后,并行处理装置进入第S5步。
以此方式,内积数据y1到y4贮存在控制CPU12所提供的贮存区12a内。
在第S5步,CPU 5a到5d的每一个,将复位读信号RSTR(s)传输给小容量SAM 3a到3d的每一个读出行地址计数器141和读出列地址计数器143,使读出行地址计数器141和读出列地址计数器143复位,并使读出地址RAD(s)复位到零,然后,并行处理装置进入第S6步。
以此方式,在下一个数据读出由第一个向量数据X1开始的过程中,向量数据再次由小容量SAM 3a到3d中读出。
在第S6步,由处理单元1a负责的诸行的第二行将在下一步S7进行处理。应予指出的是,处理单元1a负责矩阵的第一行和第五行的处理。
在第S7步,CPU 5a到5d中的每一个,由小容量SAM 3a到3d顺序提取向量数据X1到X8,如图11所示。此外,第一到第四CPU 5a到5d顺序提取矩阵数据a51到a58,a61到a68,a71到a78和a81到a88,如图11所示。
在第S7步,CPU 5a到5d的每一个,通过执行内积计算程序,一个接一个地取数,计算出向量数据和矩阵数据的乘积,并将乘积加到y5,y6,y7和y8上,从而生成内积处理数据y5=y5+a51X1,y6=y6+a61X1,y7=y7+a71X1和y8=y8+a81X1,并瞬时地贮存起所生成的数据。
同时,在S7步中的上述内积计算程序被反复地执行,直至CPU 5a到5d中的每一个完成了y5=y5+a58X1,y6=y6+a68X1,y7=y7+a78X1和y8=y8+a88X1的处理运算。
当CPU 5a到5d的每一个完成了内积运算程序,即将暂时存在其中的内积处理数据y5到y8通过数据总线11传输到控制CPU12,如图12所示,以完成执行图7中所示框图的程序。
这将导致内积处理数据y1到y4和y5到y8被贮存在控制CPU12所提供的贮存区12内,如图12所示。
同时,贮存在控制CPU12贮存区12a中的内积处理数据,诸多数据y1到y8,被传送到一个监控装置(未示出),以便显示,或提供给一个打印机(未示出),以便打印,以作为研究与观察之用。
借助图7的框图所描述的CPU 5a到5d关于内积计算的详细运行如图8所示。
即,当在大容量SAM 2a到2d和小容量SAM 3a到3d中写入矩阵数据a11到a88和向量数据X1到X8完成后,CPU 5a到5d的每一个即进入到示于图8中的第S11步之前,算术-逻辑运算的结果被置零(yi=0),而算术-逻辑运算次数j被置1(j=1)。
如参照图4所作的说明,当数据由示于图5(c)中的写时钟WCK给出的时钟基写完,数据按照地址顺序被写入大容量SAM 2a到2d和小容量SAM 3a到3d之中,而数据的写入是在时钟的基础上通过在图5(c)所示的时钟脉冲完成的。因此,数据的写入以小于时钟脉冲周期的延迟完成,所以数据可能极快速地写入。
在第S12步,CPU 5a到5d的每一个,检测算术-逻辑运算次数的计数j,并鉴别数字j是否小于8,即,内积计算是否达到矩阵数据的第八行而进入结束。若鉴别的结果为否,并行处理装置进入第S15步。若结果为是,装置进入到S13。
在第S13步,写入地址RAD(b)和RAD(s)按照写时钟脉冲RCK(b)和RCK(s)增加,同时大容量SAM 2a到2d中和小容量SAM 3a到3d中的矩阵和向量数据一个接一个地被取出,如图14所示。接着并行处理装置进入第S14步。
如参照图4所作的说明,写入大容量SAM 2a到2d和小容量SAM 3a到3d中的数据,按照时钟给出的图6(c)所示读出时钟脉冲,根据写入时所用的地址依次读出。因此,数据的读出以小于时钟脉冲周期的延迟实现,所以数据可能极快地被读出。
在第S14步,如图10所示,基于在第S13步取出的矩阵数据和向量数据,执行y1=y1+a11X1,y2=y2+a21X1,y3=y3+a31X1和y4=y4+a41X1等内积计算,在内积处理数据的结果被暂时贮存之后,处理运算次数j加-(j-j+1)。然后,并行处理装置回到第S12步。
如上所述,写在大容量SAM 2a到2d和小容量SAM 3a到3d中的数据被快速读出并提供给CPU 5a到5d中的每一个。尽管这时数据的提供是快速的,由于CPU 5a到5d的处理速度高于传统的速度,内积计算可以在无延迟的情况下完成。于是,处理速度随着大容量SAM 2a到2d和小容量SAM 3a到3d读出和写入的数据的增加而提高。
CPU 5a到5d的每一个重复执行第S12步到第S14步的处理运算。当检测到在第S12步处理运算次数为9时,并行处理装置进入第S15步。
CPU 5a到5d的第一到第四个随即按方程式(5)到(8)执行内积计算,如图13所示,并暂时地贮存起4个内积处理数据y1到y4:
然后,并行处理装置进入到第S15步。
在第S15步,CPU 5a到5d的每一个将暂时贮存的内积数据y1到y4传输给控制CPU12,如图12所示。这使四个内积处理数据y1到y4被贮存在控制CPU12的贮存区12a。
CPU 5a到5d的每一个重复执行第S11到S15步的处理运算,按照以下的方程式(9)到(12)计算四个内积数据y5到y8:
这导致8个内积数据y1到y8被贮存在控制CPU12的贮存区12a中。
在以上的叙述中,虽然未对高速通用RAM4进行专门介绍,它通常用以处理需要随机存取的数据。
在这种情况下,在每一个处理单元中,需配备一个具有较大存贮能力的大容量SAM,一个具有小存贮能力的小容量SAM,和一个高速通用RAM4,一个具有大数据容量的数据,诸如矩阵数据的写入和读出,由大容量SAM负责管理,而一个具有小数据容量的数据,如向量数据的写入和读出,由小容量SAM或者是高速通用RAM4负责处理。虽然大容量SAM或小容量SAM仅可用以处理连续的数据,这些存储器依然可以作到数据的高速写入和读出,从而使其在存器存取的数据处理中可以防止延缓发生,同时提高具有大数据容量的数据,如矩阵数据的处理速度。
此外,由于并行算术-逻辑处理装置并未设计成用于任何特殊算法,从而可以适应多种运算,包括连续数据的存取运算。
因为小容量SAM是在大容量SAM之外附加提供的,需要连续存取运作的处理运算诸多矩阵数据的计算或者那些向量数据的计算,可以快速地执行。
因为也提供了高速通用RAM4,所以也能适应需进行非连续存储的存取运算的算法。
因为大容量SAM和小容量SAM被设计成进行连续数据存取的,一个用来为随机读写生成地址的地址解码器可以简化或去掉,从而使具有较大存储能力的SAM可以廉价制出。其结果是并行算术-逻辑装置可以廉价地生产出来。
在以上的叙述中,大容量SAM2,小容量SAM3和高速通用RAM4是作为贮存手段使用的。然而,小容量SAM3可以省去。或者作为一种替代办法,用一个或者多个SAM代替高速通用RAM4。
大容量SAM2和小容量SAM3在物理方面等同于习惯上的RAM,只是在大容量SAM2和小容量SAM3中不提供地址输入。另一方面,大容量SAM2和小容量SAM3在运算方面等同于大容量移位寄存器或是一个先进先出寄存器(FIFO)。由于这种原因,移位寄存器或FIFO可用以代替大容量SAM2和小容量SAM3。
在图9至13中,由大容量SAM 2a到2d和小容量SAM 3a到3d中读出的矩阵数据和向量数据,被表示为在处理运算之后重新写入大容量SAM 2a到2d和小容量SAM 3a到3d。然而,这仅是为了便于理解矩阵数据和向量数据的移位运算,而大容量SAM 2a到2d和小容量SAM 3a到3d实际上是设计成为能以处理似-读数据,即读出的数据未再重新写入。
Claims (6)
1、一种并行算术一逻辑处理装置,其中待处理数据被控制装置划分为第一数据和第二数据,并提供给多个处理单元,以便由所述处理单元进行并行处理,所述处理单元包括:
用于所述第一数据的连续写入和读出的第一存储装置,
用于所述第二数据的连续写入和读出的第二存储装置,
用来对于来自所述第一存储装置的所述第一数据和来自所述第二存储装置的所述第二数据执行算术-逻辑处理运算的处理装置,
用于将所述第一数据和第二数据从所述控制装置传送到所述第一存储装置和第二存储装置,然后再将处理后的数据从所述处理装置提供给所述控制装置的传输装置,
用于控制所述传输装置的数据输入/输出的传输控制装置。
2、如权利要求1所述的并行算术-逻辑处理装置,其特征在于所述第一数据是矩阵数据,而所述第二数据是向量数据。
3、如权利要求1所述的并行算术-逻辑处理装置,其特征在于所述第一存储装置是用于所述第一数据的连续数据写入和读出的一种串行存取存储器。
4、如权利要求1所述的并行算术-逻辑处理装置,其特征在于所述第二存储装置是一种用于所述第二数据的随机写入/读出的随机存取存储器。
5、如权利要求1所述的并行算术-逻辑处理装置,其特征在于所述第二存储装置是一种用于所述第二数据的连续写入/读出的串行存取存储器。
6、如权利要求1所述的并行算术-逻辑处理装置,其特征在于所述第二存储装置包括一个用于所述第二数据的随机写入/读出的随机存取存储器和一个用于所述第二数据的连续写入/读出的串行存取存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5054493 | 1993-03-11 | ||
JP050544/93 | 1993-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1109188A true CN1109188A (zh) | 1995-09-27 |
Family
ID=12861959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94104311A Pending CN1109188A (zh) | 1993-03-11 | 1994-03-11 | 并行算术—逻辑处理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5524264A (zh) |
EP (1) | EP0615186B1 (zh) |
KR (1) | KR940022276A (zh) |
CN (1) | CN1109188A (zh) |
DE (1) | DE69428818T2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2709307B1 (fr) * | 1993-08-25 | 1996-01-26 | Toyoda Automatic Loom Works | Composition de couche colorante pour un dispositif de formation de couleurs et procédé de fabrication d'un dispositif de formation de couleurs en utilisant la composition. |
TW332284B (en) * | 1995-10-30 | 1998-05-21 | Sony Co Ltd | Method and apparatus for controlling access to a recording disk |
EP0834878A2 (en) | 1996-10-04 | 1998-04-08 | Sony Corporation | Method and device for controlling access to a disc storage device |
JPH1165989A (ja) * | 1997-08-22 | 1999-03-09 | Sony Computer Entertainment:Kk | 情報処理装置 |
JP4757607B2 (ja) * | 2005-11-08 | 2011-08-24 | 富士通セミコンダクター株式会社 | 半導体メモリ |
US8543992B2 (en) * | 2005-12-17 | 2013-09-24 | Intel Corporation | Method and apparatus for partitioning programs to balance memory latency |
US11526432B2 (en) * | 2018-05-18 | 2022-12-13 | Morumi Co., Ltd. | Parallel processing device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
US4594651A (en) * | 1984-01-18 | 1986-06-10 | General Electric Company | Concurrent processor for control |
US5163133A (en) * | 1987-02-17 | 1992-11-10 | Sam Technology, Inc. | Parallel processing system having a broadcast, result, and instruction bus for transmitting, receiving and controlling the computation of data |
US5155820A (en) * | 1989-02-21 | 1992-10-13 | Gibson Glenn A | Instruction format with designations for operand lengths of byte, half word, word, or double word encoded in address bits |
US5253308A (en) * | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
-
1994
- 1994-03-03 KR KR1019940004080A patent/KR940022276A/ko not_active Application Discontinuation
- 1994-03-09 DE DE69428818T patent/DE69428818T2/de not_active Expired - Fee Related
- 1994-03-09 US US08/209,105 patent/US5524264A/en not_active Expired - Fee Related
- 1994-03-09 EP EP94103612A patent/EP0615186B1/en not_active Expired - Lifetime
- 1994-03-11 CN CN94104311A patent/CN1109188A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR940022276A (ko) | 1994-10-20 |
DE69428818D1 (de) | 2001-12-06 |
US5524264A (en) | 1996-06-04 |
EP0615186A2 (en) | 1994-09-14 |
DE69428818T2 (de) | 2002-08-08 |
EP0615186B1 (en) | 2001-10-31 |
EP0615186A3 (en) | 1996-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693657B2 (en) | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems | |
KR102064642B1 (ko) | 신경 메모리 및 신경 메모리로부터 수신된 데이터의 행의 멀티-워드 거리의 회전을 집단적으로 수행하는 신경 처리 유닛들의 어레이를 갖는 신경망 유닛 | |
Moini et al. | A resource-limited hardware accelerator for convolutional neural networks in embedded vision applications | |
CN110738308B (zh) | 一种神经网络加速器 | |
US20150046644A1 (en) | Shiftable memory defragmentation | |
CN108805266A (zh) | 一种可重构cnn高并发卷积加速器 | |
US9684632B2 (en) | Parallel processing and internal processors | |
CN100480997C (zh) | 选择可实质同时处理的多重线程的系统与方法 | |
KR20200067915A (ko) | 심층 신경망용 가속기 | |
CN1434380A (zh) | 图像处理装置和方法以及用于该装置的编译程序 | |
CN1828773A (zh) | 多维数组在动态随机存取存储器上的快速读写方法及装置 | |
KR20120035177A (ko) | 메모리 디바이스의 내부 프로세서의 조건부 연산 | |
US11307826B2 (en) | Memory device and computing device using the same | |
US20210072987A1 (en) | Methods for performing processing-in-memory operations, and related memory devices and systems | |
JP2021072107A (ja) | ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 | |
US11823771B2 (en) | Streaming access memory device, system and method | |
Browne et al. | Forest packing: Fast parallel, decision forests | |
Yu et al. | Instruction driven cross-layer cnn accelerator for fast detection on fpga | |
CN1109188A (zh) | 并行算术—逻辑处理装置 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN116680073A (zh) | 一种面向GPU和DCU架构的Flash Sort算法优化方法 | |
US11941371B2 (en) | Bit string accumulation | |
CN1804789A (zh) | 具有包括数据部分和相关计数器的条目的硬件堆栈 | |
CN1811734A (zh) | 与填写中的快取线平行使用的可存取缓冲区及其控制方法 | |
KR20200063077A (ko) | 대규모 병렬 연관된 승산기-누산기 |
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 |