CN85106360A - 计算机矢量寄存处理 - Google Patents
计算机矢量寄存处理 Download PDFInfo
- Publication number
- CN85106360A CN85106360A CN198585106360A CN85106360A CN85106360A CN 85106360 A CN85106360 A CN 85106360A CN 198585106360 A CN198585106360 A CN 198585106360A CN 85106360 A CN85106360 A CN 85106360A CN 85106360 A CN85106360 A CN 85106360A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- address
- storing apparatus
- instruction
- register
- 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.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 title description 5
- 238000009434 installation Methods 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 230000005055 memory storage Effects 0.000 claims description 4
- 230000008676 import Effects 0.000 claims description 2
- 238000006073 displacement reaction Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 1
- 239000013604 expression vector Substances 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
在一计算机中一个数据元素的集合的移位是通过多个矢量寄存器和一个移位装置来完成的。该移位装置既不通过主存贮器也不通过操作单元而根据指令从一矢量寄存器到另一寄存器进行数据元素的移位。选择器根据该指令将一个寄存器的输出送给另一个寄存器的输入,同时提供合适的读写开始地址。
Description
本发明涉及一高速数字处理机,具体地说涉及用于矢量处理的计算机装置。
在用计算机解决问题的很多情况中,需要对一个数据集的逐个元素都进行同样重复地操作。
在一先有的技术中对解决这样一个问题给出了用于计算机的矢量处理装置,该装置允许处理一个有序数据集的众多元素。克雷·Jr,Cray、Jr,等人在他们获得的美国专利4,128,880中,提出了这样一个矢量处理装置。参见美国专利4,128,880的图2,可以看到这个装置对计算机中的矢量处理是通过许多矢量寄存器20(V0-V7)和控制矢量寄存器操作的装置来完成的,前者是许多完全独立的分段矢量操作单元,后者包括用于选通信号扇出22和23、数据通道21和存贮器12。矢量寄存器V0-V7的每一个都有64个单元,每个单元都可以存贮一个64位的字。当该装置在寄存器V0中执行单元数据部分向量处理时,需要从寄存器V0中移动至少一部分数据到另一个寄存器V1中。为了完成这个移动,数据元素是在矢量寄存器V0~V7和存贮器12之间进行转移,并且是通过存贮/装入指令或移位指令来完成的。当通过存贮/装入指令进行移动时,在寄存器20中的数据元素通过扇出22和数据通道21由存贮指令顺序地存进存贮器12,在存贮器12中的一部分数据元素通过扇出22输入给寄存器V1。
当通过移位指令进行移动时,在寄存器V0中的数据元素通过扇出23,由一移位指令送到移位操作单元。移位操作单元可以根据指令所指定的移位数目进行移位。移位操作单元的输出是通过扇出23,以字为单位移动数据元素到矢量寄存器V1。通过重复这样移位操作,完成数据元素所要求的移动。因此,由于两方面技术需要储存器12或移位操作单元,数据元素移动的运行变得很慢。另外,当下一指令需要存贮器12和/或移位操作单元时,在使用这些器件上就会发生冲突。
针对原有技术的这些问题,本发明的一个目的是提供一种计算机,该计算机的数据元素移动的实现可以不使用主存贮器或移动操作单元。
根据本发明的另一特征,即提供一个数据处理器,它包括一个第一存贮单元,用于存贮一个有序数据集的众多数据元素。还包括一个第二存贮单元,同样可以存贮一个有序数据集的众多元素。还包括一个移动单元照根据指令的指定,从第一存贮单元中移动数据元素到第二存贮单元。
图1是实施本发明的一计算机的方框图;
图2是由本发明所用指令格式的说明;
图3和图4是用来解释通过图2指令指定寻址的方框图;
图5是图1中数据元素输入选择器200这一局部的详细原理图。
参考图1,本发明中的计算机包括矢量寄存器100和101,读地址寄存器110和111,写地址寄存器120和121,读地址选择器130和131,写地址选择器140和141,以及用于选择输入数据元素的输入选择器200。
可以有众多的矢量寄存器,在本实施例中,是两个矢量寄存器,即100和101,它们分别存贮一个有序数据集的大量数据元素。寄存器100和101分别存储从主存贮器中装入的数据,或者存储ALU运算操作的结果。
当该装置执行对矢量寄存器100中的数据元素进行部分矢量处理时,至少需要一个数据集从寄存器100中移动到另一个寄存器101中。在这种情况的操作中,利用了图2所示的指令。
一个指令包括操作码(OP)和四个操作数R1,R2,R3和R4。操作数R1指定目标矢量寄存器号,操作数R3指定源矢量寄存器号。操作数R1指定的目标寄存器的写开始地址由操作数R2指定,如果不需要指定写开始地址,就不必用R2了。操作数R3指定的源矢量寄存器的读开始地址由操作数R4指定,如果不需要指定,则也就不必使用R4了。源矢量地址寄存器100的读开始地址的指定操作如下所述。
参照图3,当操作码被译码为一数据元素移位指令时,操作数R4被送到地址选择器130。当操作码没有指定一数据元素移位指令时,“0”就被置入选择器130。当操作码指定了数据元素移位指令和操作数R3(即源矢量寄存器号)指定了矢量寄存器100时,从选择器130输出的数据存入读地址寄存器110。
用于为目标矢量寄存器确定写开始地址的操作如下所述。
当操作码指定了数据元素移位指令时,操作数R2被送到写地址选择器141。当操作码没有指定一数据元素移位指令时,“0”就被送到选择器141。当操作码指定了数据元素移位指令,以及操作数R3,即目标矢量寄存器号,指定了矢量寄存器101时,从选择器141输出的数据被存入写地址寄存器121。
下面将说明指定矢量寄存器101作为源矢量寄存器号和矢量寄存器100作为目标寄存器号这样一个数据元素移位指令的操作。首先,参考图4,解释一下指定源矢量寄存器读开始地址的操作。
当操作码指定了数据元素移位指令时;操作数R4被送到读地址选择器131。当操作码没有指定数据移位指令时,“0”就被送到选择器131。当操作码指定了数据元素移位指令,以及操作数R3(即源矢量寄存器号)指定了矢量寄存器101时,从选择器131输出的数据被存到读地址寄存器111。
下面将说明指定目标矢量寄存器的写开始地址的操作。
当操作码指定了数据元素移位指令时,操作数R2被送入写地址选择器140。当操作码没有指定了数据移位指令时,“0”就被送入选择器140。当操作码指定了数据元素移位指令,以及操作数R1(即目标矢量寄存器号)指定了矢量寄存器100时,从选择器140输出的数据被存进地址寄存器120。
例如能被存入矢量寄存器100和101的数据元素的最大数目是64个。假如从矢量寄存器100到寄存器101移位32个数据元素,则根据本发明一指定矢量长度的指令,矢量长度寄存器(图中没有表示)存贮矢量长度数目为“32”。
参考图1,根据矢量数据移动指令,表示源矢量寄存器号的操作数R3指定了矢量寄存器100,表示目标矢量寄存器号的操作数R1指定了矢量寄存器101,表示矢量寄存器100的读开始地址的操作数R4指定的数目为“32”。指令指定的读开始地址送入地址选择器130。由选择器130选择的地址被存入读地址寄存器110中。另一方面,因为写开始地址没有通过指令指定,所以“0”信号通过地址选择器141存入写地址寄存器121内。矢量寄存器100从由地址寄存器110指定的寄存器100的地址位置送出数据元素到选择器200。读地址寄存器110以“1”的增量顺序计算出读数据元素的地址来顺序地读出数据,如32号存贮单元之后跟着是33号存贮单元。存贮在矢量寄存器100中的数据元素被读出,并被送到选择器200中。选择器200从矢量寄存器100选择读出的数据元素用于输入到矢量寄存器101中。另外,当从选择器200输出第一个数据元素到由写地址寄存器121的内容指定的矢量寄存器101的存贮单元时,矢量寄存器101开始存贮数据元素。写地址寄存器121与读地址寄存器110类似,以“1”增量顺序地计算写数据元素的地址,如0号存贮单元之后跟着是1号存贮单元。从选择器200送出数据元素送到矢量寄存器101的地址,这个地址就是地址寄存器计算出的地址。当数据元素的移动数目达到“32”时,该操作为完成,即移动的数据元素数目等于指定的矢量长度了。
下面结合图5介绍一个数据元素的一部分输入选择器200的例子。操作码被提供到译码器400并被判断是否该操作码指定数据元素移动的指令。操作数R3由译码器402进行译码,所译的结果指定源矢量寄存器,并把译码结果送到译码器400中。500,510,420,530和540这些门从矢量寄存器100,101及主存贮器(图中未显示)和ALU(图中未显示)的输出中选择其一。
下面叙述一下所使用的一矢量长度标志多于64-(m-1)时的情况,其中m是源矢量寄存器的读开始地址。即读地址寄存器110操作,按顺序地计算使用矢量寄存器100的存贮单元数,当达到矢量长度指定的数目时,下一个存贮单元地址是0。即当矢量寄存器100的存贮单元地址为“63”时,指定下一存贮单元地址为0。
根据不同的指令,源矢量寄存器号R3指定矢量寄存器100,目标矢量寄存器号R1指定矢量寄存器101,用于矢量寄存器101的写开始地址R2指定“32”,作为读开始地址没有通过这个指令指定,而是通过读地址选择器130,将“0”存入读地址寄存器110中。由指令指定的数字“32”作为一写开始地址,通过写地址选择器141存入写地址寄存器121中。读地址寄存器110以“1”增量进行递增。根据从寄存器110送出的地址,数据元素从矢量寄存器100的地址为0的单元开始顺序读出,并把数据元素送到选择器200。写地址寄存器121同样以“1”增量递增。矢量寄存器101通过选择器200从矢量寄存器100的地址0输出的数据元素开始存贮数据元素。当数据元素的移动数目到32时,这个操作就完成了,该数等于指定的矢量长度。在所指定的矢量长度多于“64-(m-1)”的情况下,(其中m是指定的数据元素移动目标的写开始地址),当矢量寄存器101的地址为“63”后,写地址寄存器121以数“0”作为在矢量寄存器101中的下一地址,然后又顺序地计算直到达到矢量长度的数目。
下面将叙述说明数据移位的另一个例子。现在假设在指令中源矢量寄存器号R3指定了矢量寄存器100,目标矢量寄存器号R1指定了矢量寄存器101,矢量寄存器100的读开始地址R4为“32”,以及矢量寄存器101的写开始地址R2为“32”。由于读开始地址和写开始地址两个都是以指令指定,所以开始地址“32”通过读地址选择器130和写地址寄存器141分别地被存入读地址寄存器110内和写地址寄存器121内。因为读地址寄存器110有增量计算,所以从读地址寄存器110的内容所指定的矢量寄存器100的存贮单元32中读出矢量数据,并送到选择器200中。由于写地址寄存器121有增量计算,所以从选择器200来的数据元素从矢量寄存器101的存贮单元32开始陆续存入矢量寄存器101的后续存贮单元。
当移动的数据元素的数目为“32”时,这个操作就完成,该移动的数据的数目等于所指定的矢量长度。读地址寄存器110连续记数,以致当所指定的矢量长度的值大于64-(m-1)时,值“0”随在“63”的后面,其中“m”代表读开始地址。以同样的方法,写地址寄存器121连续记数,以致当所指定矢量长度大于64-(n-1)时,值“0”随在“63”的后面,其中“n”代表写开始地址。
上述实施仅仅是一个假定的情况,其中矢量寄存器的数量假定是两个,实际上本发明对矢量寄存器的数量不作具体限定。
此外,在本实施例中假定用于数据元素移位的源矢量寄存器是矢量寄存器100,以及用于数据元素移位的目标矢量寄存器是矢量寄存器101。其实本发明的范围不限于上述情况,实际上矢量寄存器的指定是根据指令的指定任意安排的。
根据本发明,数据元素移位可以不通过主存贮或移位功能装置而实现,所以改进了数据元素移位的操作性能。应当强调在不脱离本发明的实质和范围情况下(它们是由本发明权利要求所定义的)对这个实施例能够做一些变更和调整,例如,尽管上面介绍的实施例子对所说明的两个存贮装置的每一个都分别提供了读地址的产生电路,并且类似地对每一个存贮装置也分别提供了写地址的产生电路,但是做如下改变是相对容易的事情:如果提供一个读地址产生电路,这个电路可以写入读开始地址并随后根据写入的内容去选通指令所指定存贮器作为源寄存器。对于写地址产生电路也可以做类似的安排。
Claims (11)
1、用于一计算机的矢量处理装置,其特征在于该装置包括:
用于存贮众多数据元素的第一存贮装置;
用于存贮众多数据元素的第二存贮装置;
读地址装置,用于在读出数据元素时,向上述第一和第二存贮装置中的一个提供读地址;
写地址装置,用于将从上述的第一和第二存储装置的一个中读出的数据元素写入另外一个存储装置中时,向该另外存储装置提供写地址;
与上述第一和第二存贮装置的输入和输出相连的选择装置,它根据指令将上述一个存贮装置的输出送到另一个存贮装置的输入。
2、如权利要求1限定的矢量处理装置,其中上述的读地址装置包括一个用于给上述存贮装置的一个提供读地址的读地址寄存器;
用于使上述读地址寄存器中的当前地址递增以得到递增地址的增量装置,
用于提供一读开始地址的装置,
读地址选择器装置,用来根据上述指令,首先提供读开始地址然后提供上述的递增读地址送到上述读地址寄存器。
3、如权利要求1所限定的一矢量处理装置,其中上述指令包括用于指定上述读开始地址的区域,提供读开始地址的上述装置包括用于选择地提供一个指定的读开始地址和一个根据指令的上述区域指定上述地址的装置。
4、如权利要求1所限定的一矢量处理装置其中上述指令包括一个将上述第一和第二存贮装置中的一个指定为源存贮装置的区域,其中读地址装置包括根据上述区域用来选择地提供上述读地址到指定为源存贮装置的装置。
5、如权利要求4所限定的一矢量处理装置,其中上述读出地址装置包括用于第一存贮装置的第一读地址产生电路;及用于第二存贮装置的第二读地址产生电路;所述选择器装置根据上述指令选择地触发上述的第一和第二读地址产生电路中的一个。
6、如权利要求1所限定的一矢量处理装置,其中所述写地址装置包括用于提供上述写地址给上述一个存贮装置的写地址寄存器;
增量装置,用于在上述写地址寄存器中使当前写地址递增以致得到一个递增的写地址;
用于提供一写开始地址的装置;
写地址选择器装置,根据上述指令,用于首先提供上述写开始地址,然后提供上述递增的写地址给上述写地址寄存器。
7、如权利要求1所限定的一矢量处理装置,其中上述指令包括用于指定上述写开始地址的区域;用于提供上述写开始地址的上述装置包括用于选择地提供一个预定写开始地址及根据上述指令的区域指定的地址的装置。
8、如权利要求1所限定的一矢量处理装置,其中上述指令包括一个指定上述的第一和第二存贮装置的一个为目标存贮装置的指定区域,而且其中上述写地址装置包括一装置选择地将上述写地址提供给指定为目标存贮器的存贮装置中。
9、如权利要求8所限定的一矢量处理装置,其中上述写地址装置包括一个第一写地址产生电路,用于上述的第一存贮装置,而且上述装置还包括一个第二写地址产生电路,用于上述第二存贮装置;上述选择器装置根据所述指令选择性地触发上述的第一和第二写地址产生电路中的一个。
10、如权利要求1所限定的一矢量处理装置,其中上述选择器装置分别地接收从上述第一和第二存贮装置的输出作为第一和第二输入,还接收从上述计算机中存贮器的内容作为第三输入,以及从在计算机中处理装置的输出作为第四输入,上述选择器装置根据上述指令,用于选择性地提供它的第一到第四输入中的任何一个给由指令指定的第一和第二存贮装置中的一个。
11、用于一计算机的矢量处理装置,其特征在于该装置包括:
用于存贮众多数据元素的第一存贮装置;
用于存贮众多数据元素的第二存贮装置;
根据信号指令用于选择地指定第一和第二存贮装置中一个为目标存贮装置的装置,并用于从上述一个存贮装置到另一个存贮装置选择地移动众多数据元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN85106360A CN85106360B (zh) | 1985-08-24 | 1985-08-24 | 计算机矢量寄存处理 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN85106360A CN85106360B (zh) | 1985-08-24 | 1985-08-24 | 计算机矢量寄存处理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN85106360A true CN85106360A (zh) | 1987-03-25 |
CN85106360B CN85106360B (zh) | 1988-02-24 |
Family
ID=4795035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN85106360A Expired CN85106360B (zh) | 1985-08-24 | 1985-08-24 | 计算机矢量寄存处理 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN85106360B (zh) |
-
1985
- 1985-08-24 CN CN85106360A patent/CN85106360B/zh not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CN85106360B (zh) | 1988-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0240032B1 (en) | Vector processor with vector data compression/expansion capability | |
US3287702A (en) | Computer control | |
US3739352A (en) | Variable word width processor control | |
CA1297987C (en) | Virtual processor techniques in a multiprocessor array | |
JPH06105429B2 (ja) | マイクロプログラム制御装置 | |
GB2273186A (en) | Register expansion in a data processing unit. | |
EP3938917B1 (en) | Moving data in a memory and command for memory control | |
US3812470A (en) | Programmable digital signal processor | |
US3969704A (en) | Word transformation apparatus for digital information processing | |
GB2073923A (en) | Branching in computer control store | |
US3710349A (en) | Data transferring circuit arrangement for transferring data between memories of a computer system | |
EP0167959B1 (en) | Computer vector register processing | |
EP0205112B1 (en) | Addressing environment storage for accessing a stack-oriented memory | |
US3297997A (en) | List control | |
US5008852A (en) | Parallel accessible memory device | |
EP0227900B1 (en) | Three address instruction data processing apparatus | |
CN85107899A (zh) | 信息处理装置 | |
EP0214870B1 (en) | System for controlling a data transfer instruction with an extension storage device | |
CN85106360A (zh) | 计算机矢量寄存处理 | |
US5099450A (en) | Computer for reducing lambda calculus expressions employing variable containing applicative language code | |
US4974188A (en) | Address sequence generation by means of reverse carry addition | |
CN1135800A (zh) | 带有可重新组合的程序状态字的微控制器 | |
CN1153136C (zh) | 执行来自多个指令源的指令的处理器和方法 | |
US3383661A (en) | Arrangement for generating permutations | |
CN86103765A (zh) | 在指令串中嵌入数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |