CN85106496A - 向量处理系统 - Google Patents

向量处理系统 Download PDF

Info

Publication number
CN85106496A
CN85106496A CN 85106496 CN85106496A CN85106496A CN 85106496 A CN85106496 A CN 85106496A CN 85106496 CN85106496 CN 85106496 CN 85106496 A CN85106496 A CN 85106496A CN 85106496 A CN85106496 A CN 85106496A
Authority
CN
China
Prior art keywords
mentioned
vector
register
mvl
instruction
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
Application number
CN 85106496
Other languages
English (en)
Inventor
渡边贞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to CN 85106496 priority Critical patent/CN85106496A/zh
Publication of CN85106496A publication Critical patent/CN85106496A/zh
Pending legal-status Critical Current

Links

Images

Abstract

向量处理系统包括:主存贮器,至少一个标量寄存器,许多向量寄存器,每个向量寄存器具有许多数据向量成分的存贮单元,响应第一种指令而对至少一向量寄存器中的至少一组向量成分进行预定操作的功能设备,用来存贮在每个向量寄存器中所要用存贮单元的MVL数(一种正整数)的第一存贮设备,控制设备就随着第二种指令而把第一存贮设备的内容传递到标量寄存器或上述主存贮器。本向量处理系统能取定所要用的向量寄存器的存贮单元号数。

Description

本发明介绍一种向量处理系统,并具体介绍一种能够取定准备在向量寄存器中使用的存储单元号数的向量处理系统。
美国专利№4,128,880就是以前的向量处理系统技艺的一个例子。该建议的系统装有8个向量寄存器,每个寄存器有64个存储单元。它们是用来对相应的向量寄存器的每个存储单元中的微量数据执行向量处理的。一个向量寄存器的长度,即在一个向量寄存器内的存储单元的个数,在这里,我们称它为最大向量长度(MVL)。在向量处理中,首先所要执行的向量成分的数目,随一条指令而被存入名叫向量长度寄存器的存储设备,这种向量长度寄存器是用来保持所要执行的向量操作数。其次,通过在向量长度寄存器内存储的相应数值,向量成分由向量寄存器顺序地读出,而送往对向量起作用的单元。相对于读出的向量成分,就执行这种用指令确定的操作(例如:加法、乘法等)。其操作结果又顺序地存入其它向量寄存器或主存储器。现在,如果在用FORTRON语言或其它程序设计语言所写的程序中,循环部分的重复次数N等于或少于MVL;则N就被存入向量长度寄存器,依次按指令的规定将几组N向量成分存入向量寄存器,并且对向量寄存器读出的N向量成分顺序地执行循环部分中按所规定的操作。另一方面,在N比MVL大时,就得出M值,M值是由(N-1)/MVL的余数再加1,并首先存放在向量长度寄存器内,以便执行第一种处理过程。在第一处理过程中,有几组M向量成分,都依次存储到指定的向量寄存器内,并按M向量成分的组别,执行指定的操作。在第二处理过程中,MVL就由程序装入向量长度寄存器内,几组MVL的向量长度数目就依次地存储到指定的向量寄存器内,并且执行为各组MVL向量成分所指定的操作。随着其余各组向量成分,这个第二处理过程就随着其它剩下的向量成分组别而重复〔(N-1)/MVL〕次;这里,〔(N-1/MVL〕就是没有超过(N-1)/MVL的最大整数。照这样,虽然循环部分由于具有N>MVL的关系,而且可用从前的技术系统加以处理,但是目标程序必须使MVL作为一个常数。结果,为了用若干个备有向量寄存器的向量处理系统,来执行目标程序,每个向量寄存器具有比上述以前的技术系统所用的相应的向量寄存器的位长少一个位长,该程序的某些重新编译的分步,对于用来改变MVL,使之适用于具有这样的较短位长的向量寄存器来说,是必不可少的。一般来说,为商业目的而制造的向量处理系统,其较大数量的设计型号是备有不同MVLS的向量寄存器的,有时是为了满足用户的不同的要求以使其价格-性能的比率最佳化而制作的。结果,就必需制作相当于这类型号的目标程序,因为在那些型号之间是不能互换的。
因此,本发明的一个目的是提供一种向量处理系统,它避免了上述以前技术系统所提到的缺点。
本发明的一种情况是用一个向量处理系统,它包括:供存储指令与操作数的主存储器;至少有一个能由每个上述指令存取的标量寄存器;较大数量的向量寄存器,每个向量寄存器具有较大数量的存储单元,以保存较大数量的预订数据组的向量成分;为了响应第一指令而用至少一个上述向量寄存器中的至少一组上述向量成分,来进行预定操作所需的功能设备;用来存储在每个上述向量寄存器中需要使用的存储单元的MVL数值(一个正整数)的第一存储设备;用来在第一存储设备取定上述数值MVL的取定设备;对把上述第一存储设备的内容传递到上述标量寄存器或上述的主存储器所用的第二指令起反应的控制设备;第二存储设备,它是用来保存上述至少一个向量寄存器中的上述向量成分的数目,这个数目是根据传递到上述标量寄存器或上述主存储器的上述第一存储设备的内容MVL,和由第三指令所确定的向量操作数N(一个正整数)而被传送到功能设备的数目;以及读出设备,它是为了随着上述第二存储设备的内容而顺序地将上述的至少一个向量寄存器的向量成分读出到上述第二存储设备的。
当联系到附加的图表时,本发明的其它特性和优点,就可从以下的叙述中看出:
图1是本发明的第一实施方案的方框图;
图2A与图2B是本发明所用的指令的格式简图;
图3表明经传送途径处理的操作定时图表的说明;
图4A与图4B,供解说源程序与目标程序的样式;
图5为本发明的第二实施方案的方框图;
图6是主存储器控制器的一个例子的方框图。
在这些图表内,相同的参考数码代表相同的结构成分。
现在先从图1来说,这是本发明的第一种实施方案,它包含:一只功能部件5,功能部件5具有一只加法器510,一只乘法器/除法器511,一只移位器512和一只逻辑单元513;主存储器(MM)3有邻接的存储单元,其中邻接的地址是指定由地址0开始,并且它依次地有1个字节的长度;8个向量寄存器V0至V7,各有64个存储单元;1个指令寄存器6;1个最长的向量长度寄存器(MVR)7;1只标量寄存器群4,它包含16个能编址的标量寄存器S1至S16,供标量操作或计算地址使用;一只选择电路9;一只向量长度寄存器2;一只通道选择电路1;一只译码器10;置位装置8;一只向量成分计数器11;一只寄存器12和一只计数器13。
图2A是第一种类型的指令,它具有本方案使用的第一种指令格式(RR),(即,一种算术指令或是一种存储存取指令)。第一种指令包括操作码的字段OP(由0位至7位),一只结果寄存器的指定字段Ry(由16位至23位)及一个第二输入寄存器指定字段Rz(由24位至31位)。
在图2B内,它是第二种类型的指令,它有一个第二种用于本方案的指令格式(Rx),它包含一段位移字段D(由32位至63位),其其余的字段是与第一类型的指令相同。
再回到图1来看,从V0到V7的寄存器各有64个存储单元,它们都被配置有0到63的地址。由于V1至V7的每只寄存器都能保存多至64个向量成分,每个向量成分有4个字节长,其MVL是64。V0和V1寄存器被相应地接至510部件,V2和V3接至511部件,V4和V5接至512部件,V6和V7接至513部件。在本实施方案中,由于部件5与寄存器V0至V7之间的连接是固定的,因此Ry与Rz字段不能作向量操作指令使用。寄存器2经过通道14连接到寄存器12,以保存由指令规定的向量操作数。寄存器2的内容,能由指令,例如从MM3来的指令,任意地置位。由MM3通过通道15,装到指令寄存器6的指令字段OP,就由译码器10进行译码。MVR7就用MVL的值进行置位,例如在本实施方案中64就是通过置位装置8来置位的。置位装置8包括跳线,机械开关或供维护和诊断用的服务处理机。它也可能采用一种特殊的通道,如扫描通道。电路1的功能是在MM3和寄存器群4和寄存器V0至V7之间,部件5和寄存器V0至V7之间,以及寄存器群4与部件5之间选择传送数据的通道。电路9是相对应地对字段Rx字段Ry和在寄存器群4中选择相应的标量寄存器,作为输出寄存器的字段Rz,第一级输入寄存器和第二级输入寄存器。例如:如果由MM3取出指令而送到寄存器6的是把MVR7的内容装到寄存器群4内的“LOAD”指令,则电路9就在该群4内选择相应的标量寄存器,以响应该指令的Rx字段。接着,MVR7的内容通过通道19装到标量寄存器内,该标量寄存器是已经由字段Rx所选择的。单元510,511,512和513都是通过较大数量的分级流水线而处理的。每一分级的处理都要与时钟振荡源(图中未画出)所送来的时钟同步进行的。对于这种流水线的构造和操作,可参考下述的论文,其题目为:“IBM系统/360 91型:浮点执行单元”S.F.安德逊等人著,发表于“IBM研究与开发期刊”卷11,第1期,1967年1月,第54~68页上。例如:510单元包括一个指数部分比较级5101,它是用来把从寄存器V0和V1送来的两个向量成分的指数部分进行比较的
Figure 85106496_IMG2
用来调整这些成分位数的尾数部分数位调整级5102,一个加法级5103,它是为把这些部件的尾数部分相加使用的;和一个加法结果校正级5104。为下所述,在向量加法处理的过程中,输入数据是顺序地由寄存器V0和V1内的存储单元的零地址,随着时钟的同步而送往部件510去的。这时,通过通道16,电路1已被送入寄存器6中指令的字段Rx。电路1顺续地把从510单元连续输出的各加法结果,传送到由指令的字段Rx所规定的向量寄存器的一个接一个的存储单元。另一方面寄存器2的内容,在开始执行向量加法处理过程,并且同时将计数器11的内容进行初始化置“0”时,暂时先存放在寄存器12内。当在寄存器12的内容不是“0”时,计数器11继续随着时钟的同步进行计数。计数器11的输出是通过通道17,作为地址数据而送到寄存器V0和V1,并且因此被编址的存储单元的内容就被如上所述地送往部件510去。计数器13就随着时钟的同步,从寄存器12的内容中减“1”,并将结果再存储到寄存器12内。这样的计数器11的向上加的计数操作和计数器13的向下减的计数操作一直继续进行到寄存器12的内容变为“0”为止。这种像寄存器2和计数器11与13的硬件也是为一对寄存器V2和V3,一对寄存器V4和V5,以及一对寄存器V6和V7作好准备,但在图中为了简化起见,都被省略了。
图3是为了说明上述的操作的时序图。在图3中,Vi(j)(i,j=0至7)表明向量寄存器Vi的第i级存储单元的内容;T1表明由向量寄存器V0与V1到部件510的传送循环;C是5101级的循环;S是5102级的循环;A是5103级的循环;N是5104级的循环;以及T2是由部件510至编址的向量寄存器的传送循环。
现在要说明一下,在FORTRAN语言中所写的源程序,“DO”的循环部分是如何来完成的,这在图4A中已表明。在图4A中的DO循环部分表示在DO语句和CONTINUE语句之间有至少一个要执行N次的语句(N是个整数)。在本实施方案中,目标程序如图4B所示的是由图4A的源程序产生的。在这种目标程序中所用的操作指令如表1所列。
表一
指令    格式    操作
LDS Rx, RX Rx←M(Ry+Rz+D)
M 把主存贮器的内容装入由Rx所确定的标量寄
存器中。上述主存贮器就是利用由Ry字段确定的
寄存器内容(Ry)和由Rz字段确定的内容
(Rz)以及位移量相加后所得到的地址来编址的
主存贮器。
SMVL RxRR Rx←MVR
把MVR的内容装入由Rx字段所确定的标量
寄存器。
ADD Rx, RR Rx←Ry+Rz
Ry,Rz把(Ry)和(Rz)整数相加,并把结果值存
入由字段Rx所确定的标量寄存器。
AND Rx, RR Rx←Ry+Rz
Ry,Rz把(Ry)和(Rz)通过“与”操作所得到
的结果存入由Rx字段所确定的标量寄存器中。
SLL Rx, RR Rx←Ry<Rz
Ry,Rz(Rz)被左移若干位,其具体位数由数段
Rx所确定。
OR Rx, RR Rx←Ry|Rz
Ry,Rz把由(Ry)和(Rz)的“或”操作所得
到的结果存入由数段Rx所确定的标量寄存器。
续表一
指令    格式    操作
LVL    Ry    VL←Ry
把(Ry)装入向量长度寄存器(VL)。
SUB Rx, RR Rx←Ry-Rz
Ry,Rz把(Ry)进行整数相减后把结果存入由数段
Rx所确定的向量寄存器。
BNZ RxRX 如果(Rx)不是“O”,则(Rx)就被转
M 移到MM中的指令,MM就是利用(Ry),
(Rz)和位移量D三者相加而得到的地址来编址的。
现在我们参阅图4B和图1就可说明这个主程序。我们假设将各向量成分以邻接的地址存入MM3,并且在一个向量成分中占有4个邻接的地址。
分步(1):随着把LDS指令存入寄存器6的过程,而重复次数N就被MM3的程序装入寄存器SI中。
分步(2):随着把SMVL指令存入寄存器6的过程;而MVR7的内容,即MVL(=64),就被通过通道19而存入标量寄存器S2。
分步(3):随着把ADD指令存入寄存器6的过程,而把由单元510把SI寄存器的内容(N)和“-1”相加而得的结果,通过通道25、电路1和通道26存入标量寄存器S3。
分步(4):当把ADD指令存入寄存器6时,由单元510把S2寄存器的内容(MVL)和“-1”相加而得的结果存入标量寄存器S4。
分步(5):随着把AND指令存入寄存器6的过程;而把由单元513把寄存器S3的内容(N-1)和寄存器S4的内容(MVL-1)进行“与”操作后所得的结果,通过通道27、电路1及通道26存入标量寄存器S5。
分步(6):随着把ADD指令存入寄存器6的过程,而把寄存器S5的内容和“1”相加的结果存入标量寄存器S6。
分步(7):随着把SLL指令存入寄存器6的过程,寄存器S6的内容就通过通道28、电路1和通道26而存入寄存器S7内;上述寄存器S6的内容就是已被512单元左移2位而使“4”乘以寄存器S6的存数的内容。结果,需要读出MM3的第一向量成分就可在寄存器S7内得到。
分步(8):随着把SLL存入寄存器6的过程,而把被单元512将寄存器S2的内容左移2位而存入寄存器S8。结果,当向量长度为MVL时,就可得到各向量成分组间的距离。
分步(9):随着LVL指令存入寄存器6,而“4”就被存入寄存器S9。
分步(10):随着LVL指令存入寄存器6,而把寄存器S6的内容通过通道20装入寄存器2。
分步(i+1)(i是11或更大的整数):随着ADD指令被存入寄存器6的过程,而把由单元510将寄存器S9的内容和寄存器S7的内容相加而得到的结果存入寄存器S9。结果,就可重复得到在MM3中下一组向量成分的读出地址。
分步(i+2):随着这个OR指令存入寄存器6而把寄存器S8的内容装入寄存器S7。
分步(i+3):随着SUB指令存入寄存器6的过程,而把由510单元从寄存器S1的内容中减剩的寄存器S6的内容存入寄存器S1。结果,就可得到剩下的而尚未处理的向量成分。
分步(i+4):随着OR指令存入寄存器6而把寄存器S2的(MVL)内容装入寄存器S6。
分步(i+5):随着BNZ指令存入寄存器6而校验了寄存器S1的内容;并且,如果其内容不是“0”,则执行从第10分步起的各分步。
在从分步(3)到分步(5)的一系列处理过程中,N-1/MVL的余数可根据MVL,一般是2的取幂,而算出。一直到分步(9)的过程都是DO循环操作的予先处理过程。
从前面陈述就已很清楚,在本实施方案中,由于这个目标程序,在每个向量寄存器中没有存贮单元的号数(即MVL,作为一个常数),所以只要利用取定设备8来变更MVR7的内容就可以与装有不同贮存电容器的向量寄存器系统共用一个公用的目标程序。
参阅图5,可看到本发明的第二个与上述实施方案相同结构的第一个实施方案,所不同的是附加了一种存贮器的控制器18;通过它,可把MVR    7的内容传到MM3。
参阅图6,在第二个实施方案中,它包括一个有三个输入端的加法器181,一个地址寄存器182和数据寄存器183和184。把MVR7的内容传递到MM3的指令是第二种类型的指令。当这种指令被存入指令寄存器60时,随着把该指令的字段Ry和Rz,和被选定的标量寄存器的内容送到加法器的两个输入端的过程,而选择器9就通过通道23-1和23的23-2,选择2个相应的标量寄存器。当该指令的字段D已被通过通道21送到加法器181的剥下的一个输入端时,它们就被相加起来而将其结果存入寄存器182。MVR7的内容就被暂时通过通道22存入寄存器183,然后被存入MM3的地址部份;MM3是由寄存器182的内容来编址的。寄存器184暂时贮存MM3读出的数据。换句话说,寄存器184充作为把数据通过通道23的23-4传送到标量寄存器群4的缓冲器。在如上面所述,在本实施方案中,向量操作指令是在MVR7的内容已被传递到MM3(而不是传递到群4)以后才执行的。
前面的说明关系到本发明的最佳实施方案,但是很显然,对熟练本技艺者来说,本发明就能够很容易地以其他不同形式来实现。
Figure 85106496_IMG3

Claims (4)

1、向量处理系统包括:一个贮存操作数的指令的主存器;至少一个可由上述各种指令存取的标量寄存器;一个较大数量的向量寄存器,每个由量寄存器具有较大数量的,用来保存予订数据组的许多向量成分的存贮单元;为了响应第一种指令而用至少一个上述向量寄存器中的至少一组上述向量成分来进行予定操作所需的功能设备;用来在上述第一存贮设备取定上述MVL数值的取定设备;用来存贮在每个上述向量寄存器中所要用的存贮单元的MVL数(一种正整数)的第一存贮设备;对用来把上述第一存贮设备的内容传递到上述标量寄存器或上述主存贮器所用的第二种指令起反应的控制设备;第二存贮设备,它是用来保存上述至少一个向量寄存器中的上述向量成分的数目,这个数目是根据传递到上述标量寄存器或上述主存贮器的上述第一存贮设备的内容MVL和由第三种指令所确定的向量操作数N(一个正整数)而被传送到上述功能设备的数目;及用来顺序地读出上述至少一个向量寄存器中的向量成分,随着上述第二存贮设备的内容而送到上述功能设备的读出设备。
2、在权利要求范围1中所要求的向量处理系统中,上述取定设备是一根跳线,一个机械开关,一个控制台,一个服务处理器或一个搜索通道。
3、在权利要求范围1中所要求的向量处理系统中,如果在向量处理的起始时间,上述N被除以MVL所得的余数是零时;则上述第二存贮设备就保存上述MVL;并且如果上述余数不是零;则保存上述余数。
4、在权利要求范围1中所要求的向量处理系统中,如果在向量处理起始时间,上述N除以上述MVL的余数不是零而其商数是1或更多时;则上述第二存贮设备保存余数;并且在根据上述余数而读出的设备完成读出程序以后,上述第二存贮设备保存上述MVL。
CN 85106496 1985-08-29 1985-08-29 向量处理系统 Pending CN85106496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 85106496 CN85106496A (zh) 1985-08-29 1985-08-29 向量处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 85106496 CN85106496A (zh) 1985-08-29 1985-08-29 向量处理系统

Publications (1)

Publication Number Publication Date
CN85106496A true CN85106496A (zh) 1987-04-29

Family

ID=4795108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 85106496 Pending CN85106496A (zh) 1985-08-29 1985-08-29 向量处理系统

Country Status (1)

Country Link
CN (1) CN85106496A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1112635C (zh) * 1996-08-19 2003-06-25 三星电子株式会社 多媒体信号处理器中的单指令多数据处理方法及其装置
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1112635C (zh) * 1996-08-19 2003-06-25 三星电子株式会社 多媒体信号处理器中的单指令多数据处理方法及其装置
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法

Similar Documents

Publication Publication Date Title
JP7337103B2 (ja) ニューラルプロセッサ
CN1439126A (zh) 带有耦合的乘法一累加单元的数字信号处理器
CN1402843A (zh) 在一个周期内处理乘累加运算
JPS6363945B2 (zh)
CN1009034B (zh) 离散余弦变换装置
GB2298111A (en) Improvements relating to computer 3d rendering systems
CN1265294C (zh) 基4和混合基(4+2)fft处理器地址映射方法和系统
CN1147728A (zh) 有限脉冲响应滤波器
CN1268231A (zh) 数据块规模可变的2维逆向离散余弦变换机
CN1278931A (zh) 特别适于译码数字音频信号的数字信号处理器
FI98326C (fi) Osoiteprosessori signaaliprosessoria varten
CN85106496A (zh) 向量处理系统
EP0072927A2 (en) Device for addressing a memory
CN1198206C (zh) 时分型矩阵计算器
Pope et al. Multiple precision arithmetic
CN101101538A (zh) 处理器
US20230244600A1 (en) Process for Generation of Addresses in Multi-Level Data Access
CN1176699A (zh) 基于对数系统的电脑处理器及其使用方法
CN1122024A (zh) 一种任意字长、任意精度的乘法运算方法及乘法器
CN1767456A (zh) 一种调度数据的方法及装置
Weber Parallel Implementation of the Accelerated Integer GCD Algorithm.
CN1190738C (zh) 数据处理装置及其数据读取方法
WO2023146611A1 (en) Programmable multi-level data access address generator
CN1230984C (zh) 利用算术处理器的数字基本增强器
US20230289287A1 (en) Programmable Multi-Level Data Access Address Generator

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication