CN85106360B - 计算机矢量寄存处理 - Google Patents
计算机矢量寄存处理 Download PDFInfo
- Publication number
- CN85106360B CN85106360B CN85106360A CN85106360A CN85106360B CN 85106360 B CN85106360 B CN 85106360B CN 85106360 A CN85106360 A CN 85106360A CN 85106360 A CN85106360 A CN 85106360A CN 85106360 B CN85106360 B CN 85106360B
- Authority
- CN
- China
- Prior art keywords
- address
- mentioned
- register
- instruction
- reading
- 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
Links
- 239000013598 vector Substances 0.000 claims abstract description 107
- 230000005055 memory storage Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 abstract description 8
- 230000002776 aggregation Effects 0.000 abstract 1
- 238000004220 aggregation Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 239000013604 expression vector Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process 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
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。当操作码指定了数据元素移位指令,以及操作数R1,即目标矢量寄存器号,指定了矢量寄存器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”时,该操作为完成,即移动的数据元素数目等于指定的矢量长度了。
所述的选择器200有四个输入端(参见图1)分别联至矢量寄存器100,矢量寄存器101,计算机的主存储器和ALU。该选择器的输出端与矢量寄存器100,101分别相联。该选择器装置根据所述指令选择性地提供它的第一到第四输入中的任何一个给由该指令指定的矢量寄存器100和101中的一个。下面结合图5介绍一个数据元素的一部分输入选择器200的例子。操作码被提供到译码器400并被判断是否该操作码指定数据元素移动的指令。操作数R3由译码器402进行译码,所译的结果指定源矢量寄存器,并把译码结果送到译码器400中。500,510,520,530和540这些门从矢量寄存器100,101及主存贮器(图中未显示)和ALU(图中未显示)的输出中选择其一。门540的输出可用与上述类似的方法或其它方法根据指令R1部分的内容选择性地输出到矢量寄存器100和矢量寄存器101中的一个中,这对于本领域的普通技术人员来说是很容易实现的。
下面叙述一下所使用的一矢量长度标志多于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 (18)
1、一种用于计算机的矢量处理装置包括用于存储众多数据元素的第一存储装置和第二存储;其特征在于包括:
读地址装置,用于向由一个给定的指令所指定的上述第一和第二存储装置中的一个提供读地址,以便从中读出数据元素;
写地址装置,用于向由上述指令所指定的所述第一和第二存储装置中的另一个提供写地址,以便将从上述一存储装置中读出的数据元素写入到该另一个存储装置中;和
连接到上述第一和第二存储装置的输入和输出端的选择装置,该选择装置响应上述指令用来将上述一存储装置的输出送入到另一存储装置中。
2、根据权利要求1的矢量处理装置,其特征在于:所述读地址装置包括:
读地址寄存器装置,用于将所述读地址提供给所述一存储装置,并使其中的所述读地址递增;
读地址选择装置,响应所述指令来首先提供读启始地址,以后提供上述递增的读地址给读地址寄存器。
3、根据权利要求1的矢量处理装置,其特征在于所述指令包括一个用于指定读启始地址的字段;
所述读地址装置包括读地址选择装置,用来选择地提供一预定读启始地址和所述指令的上述字段指定的读启始地址;
所述指令进一步包括一个将第一和第二存储装置中的一个指定为源存储装置的字段;
所述读地址装置包括一个读地址寄存器,响应该字段用来选择地提供上述读地址到该字段指定的源存储装置。
4、根据权利要求1的矢量处理装置,其特征在于:所述写地址装置包括:写地址寄存器装置,用于将所述写地址提供给所述的另一存储装置,并使其中的写地址递增;
写地址选择装置,响应所述指令来首先提供写启地址,以后提供上述递增的写地址给写地址寄存器。
5、根据权利要求1的矢量处理装置,其特征在于:所述指令包括一个用于指定上述写启始地址的字段;
所述写地址装置包括写地址选择装置,用来选择地提供一预定的写启始地址和上述字段的上述的写启始地址;
所述指令进一步包括一个指定上述的第一和第二存储器的一个为目标存储装置的字段;
所述写地址装置包括一个写地址寄存器,响应该字段用来选择地提供上述写地址到该字段指定的目标存储装置。
6、根据权利要求1的矢量处理装置,其特征在于所述选择装置分别接收从上述第一和第二存储器的输出作为第一和第二输入,还接收从上述计算机中存储器的内容作为第三输入,以及从计算机中处理装置的输出作为第四输入,上述选择器装置根据上述指令,用于选择性地提供它的第一到第四输入中的任何一个给由指令指定的第一和第二存储装置中的一个。
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 CN85106360A (zh) | 1987-03-25 |
CN85106360B true 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 |
---|---|
CN85106360A (zh) | 1987-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0240032A2 (en) | Vector processor with vector data compression/expansion capability | |
EP0205809B1 (en) | Vector processing | |
JPS6131502B2 (zh) | ||
KR880001170B1 (ko) | 마이크로 프로세서 | |
JPS6028015B2 (ja) | 情報処理装置 | |
JPS6313215B2 (zh) | ||
JPS6351287B2 (zh) | ||
GB2073923A (en) | Branching in computer control store | |
EP0284364A2 (en) | High speed computer system | |
CN1004773B (zh) | 能快速处理不同组指令的信息处理装置 | |
US5019969A (en) | Computer system for directly transferring vactor elements from register to register using a single instruction | |
US4010451A (en) | Data structure processor | |
US5197145A (en) | Buffer storage system using parallel buffer storage units and move-out buffer registers | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
CN85106360B (zh) | 计算机矢量寄存处理 | |
EP0214870B1 (en) | System for controlling a data transfer instruction with an extension storage device | |
US3117220A (en) | Electronic calculating apparatus utilizing stored programme control including programme interrupt for alternate sequences | |
JPH0363092B2 (zh) | ||
US5050076A (en) | Prefetching queue control system | |
JP2667806B2 (ja) | ベクトルプロセツサ | |
US4561071A (en) | Storage system having buffer storage | |
JPS6122830B2 (zh) | ||
EP0580109B1 (en) | Data acces in a RISC digital signal processor | |
EP0326164A2 (en) | Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism | |
EP0107447B1 (en) | Computer data distributor |
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 |