本发明涉及一种用于进行向量运算的信息处理装置。 颁发给R.小克莱(R.Cray,Jr.)的第4,218,880号美国专利曾公布一种向量处理计算机;该机包括:存贮器部份;同存贮器部份联接的一组向量寄存器;以及一组能和向量寄存器协同操作的独立分段功能元件,例如:加法器和乘法器。(该机将)一批数据信号从存贮器部份传送到向量寄存器,并在向量处理过程中从一个或几个向量寄存器中(将数据)连续传送至一个功能元件,经过处理后再被回送到另一个向量寄存器。这一向量处理操作采取顺序链式操作方式,由跟中央处理器联接的指令译码器或指令翻译器控制,因而能够进行高速操作。为了叙述简便,本说明书中将一个向量寄存器和功能元件的组合简称为指令处理器。
更具体地说,中央处理器向指令译码器发出一项装入指令和一项存贮指令。分别指令其把贮存在存贮器中的数据信号送入向量寄存器和把向量处理的结果贮存在存贮器中。这时候,指令译码器向存贮器发出一项存贮允许信号或存贮指示信号。
一项运算指令或操作指令也由中央处理器发往指令译码器。指令译码器响应此项操作指令,向指令处理器发出一项单元允许信号或单元指示信号。按照此单元指示信号和操作指令,指令处理器进行运算操作。为了描述简便,单元指示信号和存贮指示信号在下文中分别被称为第一指示信号和第二指示信号。
假定,每项装入指令从中央处理器中反复发出,而且在每两次相邻的重复发出的装入指令中插入一项运算指令。在此情况下,进行连续处理的次序为:第一项装入指令、运算指令,第二项装入指令。这里要提醒注意,跟处理一项运算指令相比,每一项装入指令的处理耗时甚多,原因是在处理过程中须要访问存贮器。通常情况下,装入指令是逐一连续得到处理的。结果,必须在第一条装入指令装入操作完毕后,都能发出第二条装入指令的第二指示信号。相应地,在每两次相邻的装入指令的第二指示信号之间,必然会浪费掉一长段间隔时间。在存贮指令的处理过程中也会出现这一情况。由此可见,当存贮器被指令译码器频繁访问时,算术运算是无法高速进行的。
本发明的目的之一是提供一种即使在存贮器被频繁访问的时候也能进行高速算术运算的信息处理装置。
本发明的另一个目的是提供一种能缩短两次相邻的装入指令或存贮指令之间的间隔时间的所述类型信息处理装置。
本发明还有一个目的,即提供一种适用于向量处理的信息处理装置。
一台适用本发明的信息处理装置能响应一个指令序列而进行操作,(该装置)包括:一个能翻译指令、并当指令属于第一和第二组时能分别发出第一指示信号和第二指示信号的指令翻译器;一个与指令翻译器联接的、响应第一指示信号对第一组指令进行处理的指令处理器;以及同指令翻译器和指令处理器联接的、响应第二指示信号按照第二组指令和指令处理器协同操作的协同装置,根据本发明,指令翻译装置包括能同时发出一组状态指示信号的状态指示装置。状态指示信号能显示指令处理器的内部状态。该指令翻译装置包括能响应暂时保存第一组指令的允许信号的堆栈寄存器装置,以将其保存的指令作为被保存的第一组指令逐一发出;还包括响应第一和第二组指令、与堆栈寄存器装置、状态指示装置、指令处理器和上述协同装置联接的局部处理装置。局部处理装置的功能是根据状态指示信号和保存的第一组指令将第一和第二组指令进行处理,并分别把第一和第二指示信号送到指令处理器和协同装置,并在被处理的某一项指令属于第一组时把允许信号送至状态指示装置。
附图1是用于描写常规的信息处理装置的操作时序图;
附图2是根据本发明的最佳实施例绘制的信息处理器的框图;
图3是用于图2所示的信息处理装置中的指令处理器的框图;
图4是由于图2所示的信息处理装置中的指令堆栈寄存器的框图;
图5是用于图2所示的信息处理装置中的指令译码器的部分框图;
图6是用于描写图2所示信息处理装置的操作序图。
为使对本发明有更透彻的理解,请参见图1,该图描写了在一台常规的信息处理装置中进行的普通的向量处理。该装置包括:用于连续译码式翻译出每一条指令,来发出第一和第二指示信号的一个指令翻译器或指令译码器;由第一指示信号启动而对指令译码器给出的每条指令进行处理的一个指令处理器;以及由第二指示信号启动的进行写入和读出操作的一个存贮器。由此可见,一方面,当每条指令均为进行算术运算的操作指令时,第一指示信号由指令译码器发送至指令处理器。另一方面,当每条指令均为访问存贮器并将数据信号在存贮器和指令处理器之间来往传送的装入或存贮指令时,第二指示信号由指令译码器发送至存贮器。
该指令处理器包括一组向量寄存器和运算器,如乘法器和加法器。当一项装入指令被指令译码器中译出时,数据信号即从存贮器中被送入向量寄存器。向量寄存器将处理所得的结果数据信号加以存贮。当指令译码器译出运算指令时,运算器即进行算术运算。
假定以表1所示的次序向指令译码器供给指令,并在信息处理器中执行指令。
在表1中,0号到3号向量寄存器VR0-VR3被看作包括在指令处理器内;VLD1和2以及VMY1和2分别表示向量装入和向量乘法,也可能分别表示向量装入指令和乘法指令。乘法指令是操作指令的一种。在第1步S1中,第1个向量装入指令VLD1表示把第1向量数据信号装入0号向量寄存器VR0。在第2步S2中,按照第1乘法指令VMY1,第1纯量数据信号A同0号向量寄存器VR0的内容相乘,从而得出第1纯量数据信号和0号向量寄存器VR0的内容的第1乘积。然后,第1乘积被移送至第2号向量寄存器VR2。接着,在第3步S3,按照向量装入指令的第2条VLD2,第2向量数据信号被送入0号向量寄存器VR0。向量乘法是按照第2项乘法指令在第2纯量数据信号B和0号向量寄存器VR0的内容之间进行,求得它们之间的第2乘积。在第4步S4时,第2乘积被移送至3号向量寄存器VR3。
第1至第4步S1-S4在常规的信息处理装置中进行,操作方法示于图1。第1步S1开始时间为第1瞬息时间t1,此时第1向量装入指令VLD1的第2指示信号由指令译码器送往存贮器,并在存贮器中保存到第2瞬息时间t2。这样,第1向量装入指令VLD1的持续时间即为第1和第2瞬息时间t1与t2之间的间隔时间。间隔时间量取决于额外时间和访问存贮器所化的访问时间。
第1间隔时间结束后,在第3瞬息时间t3,0号向量寄存器开始被装入第1向量数据信号。这里应该提请注意,如果第1向量数据信号开始被贮存入0号向量寄存器VR0中,则第1乘法指令VMY1有可能开始执行。在这一情况下,进行第1乘法指令VMY1的第1指示信号的发出,先于第1向量数据信号被贮存到0号向量寄存器VR0。因此,第1乘法指令VMY1的第1指示信号的发出时间为位于第2和第3瞬息时间t2和t3之间的中间瞬息时间t3′。
当每一个向量数据信号被存放到0号向量寄存器VR0后,第1向量数据信号就能立即从该寄存器中读出。所以,当每一个第1向量数据信号被存入0号向量寄存器VR0之后,就可以立即进行每一个第1向量数据信号和第1纯量数据信号之间的乘法运算,从而求得第一批乘积。第一批乘积立即被连续写入第2号向量寄存器VR2。类似操作一直进行到最后一项第1向量数据信号。
在第4瞬息时间t4,最后一项第1向量数据信号已被送入0号向量寄存器VR0,与最后一项第1向量数据信号有关的乘法和写入操作亦立即结束,如图1所示。这样,第1步S1在第4瞬息时间t4完成;而第2步S2则在一个附加的瞬息时间完成,在该瞬息时间,第一批乘积被全部写入2号向量寄存器VR2。也就是说,第1步S1是在第1瞬息时间t1和第4瞬息时间t4之间进行,而第2步S2则在中间瞬息时间t3′和上述附加瞬息时间之间进行。
在最后一条第1向量数据信号已经被贮存到0号向量寄存器VR0之后,在第5瞬息时间t5,发出第2向量装入指令VLD2的第2指示信号。换句话说,第2向量装入指令VLD2的第2指示信号要等到0号向量寄存器VR0被全部装入第1向量数据信号之后才能发出。
第3步S3在第5瞬息时间t5开始处理第2向量装入指令。其结果是,在第7和第8瞬息时间t7和t8之间的一个间隔之内,第2向量数据信号被保存在0号向量寄存器VR0之中。这样,第3步S3就在第5和第8瞬息时间t5和t8之间进行。
第2乘法指令VMY2的第1指示信号在第7瞬时间t7之前的一个辅助瞬息时间t7′发出。一俟第2向量数据信号在第7瞬息时间t7被存放到0号向量寄存器VR0,这些数据信号就立即被从0号向量寄存器VR0中读出,并和第2纯量数据信号B相乘,从而求得第2批乘积。该第2乘积被存放入或被写入3号向量寄存器VR3。当所有第2向量数据信号在第8瞬息时间t8被全部存入0号向量寄入器时,在紧接第8瞬息时间t8后立即出现的第9瞬息时间t9,第2乘积在第3向量寄存器VR3中存贮结束。因此,第4步S4也就在辅助瞬息时间t7′和第9瞬息时间t9之间进行。
从图1中不难看出,第2和第4步S2和S4的大部份分别与第1和第3步S1和S3相重叠,而且与第1和第3步S1和S3相比较更快地进行。但是,第2步和第4步S2和S4之间并无重叠,其原因是第3步S3是在第1步S1完成之后才开始的,尽管第2和第4步S2和S4本身的处理速度相当快。这一点意味着,包含在指今处理器内的如乘法器之类的运算器是间歇地启动进行乘法运算的,有一个比较长的间歇时间;因此,在普通的信息处理装置内得不到高效率的利用。
参见图2和图3,作为本发明的实施例的一台信息处理装置是跟向图示的处理装置发出一个指令序列的中央处理器(未画出)结合使用的。为了描述简便,假定该指令序列如表1所示的顺序进行向量处理。
图中所示的信息处理装置内包括:一个指令译码器或指令翻译器11,其操作方法将在以后描述;一个指令处理器12;以及一个存贮器13。可以暂时将指令译码器11理解为分别向指令处理器12和存贮器13发出第1和第2指示信号。第1和第2指示信号又可以分别称作第1和第2参数信号PA1和PA2,其功能分别为启动指令处理器12和存贮器13。如图3所示,图示的指令处理器12中包括:一个多路转换器16;0号至3号向量寄存器VR0至VR3,即20-23;一个向量乘法器24;一个向量加法器25;以及第1和第2转换器26和27。多路转换器16由存贮器13供给向量数据信号(见图2);同时,第1和第2转换器26和27由存贮器13通过纯量寄存器(未画出)供给纯量数据信号。虽然图上未画出,但是指令处理器12可以附带一个移位器,任何其它运算线路,以及与移位器和运算线路有关的向一量寄存器。每一个向量寄存器中包括一组寄存器元件,并可看作在实际上同时进行写入和读出操作,因为每一个寄存器元件进行写入操作时,相应的寄存器元件就可能立即进行读出操作。
在图3中,向量乘法器24直接与0号向量寄存器20连接,并通过第1转换器26与1号向量寄存器21连接。这样,向量乘法器24可以运算从0号和1号向量寄存器20和21读出的向量数据信号的乘积,或者运算从0号向量寄存器20读出的向量数据信号和存贮器13给出的纯量数据信号的乘积。向量加法则在从2号和3号向量寄存器22和23中读出的向量数据信号间进行,或在从2号向量寄存器22中读出的向量数据信号和从存贮器13中给出的纯量数据信号之间进行。其结果是,从向量加法器25中得出向量数据信号之和或向量和纯量数据信号之和。
每一项乘积跟和,经过多路转换器16被反馈到0号至3号向量寄存器20-23中的一个。0号至3号向量寄存器20-23与连接存贮器13的一个选择器28联接。相应地,每一项乘积及和均通过选择器28被送到存贮器13。
一个控制器29由第1指示信号、即第1参数信号PA1所启动,并根据即将变得清楚的指令把控制信号(全部以C代表)发送给上述诸元件,如:多路转换器16,向量寄存器20-23,向量乘法器24,向量加法器25,以及选择器28。应该记住,向量寄存器20-23内,有一个寄存器已按照控制信号进入寄存器写入状态,而且向量寄存器20-23之内有两个则已同时被置入寄存器读出状态。
回过来再参看图2,指令译码器11内包括一个指令寄存器31,上面逐一载有从中央处理器送入的指令。请注意,这些指令可以分为第1组和第2组,分别与指令处理器12和存贮器13有关。
更具体一点说,第1组指令包括指示在指令处理器12中进行算术运算的操作指令。每一条操作指令至少访问20-23之内的一个向量寄存器,从而使得指令处理器12进行算术运算,具体描写见图3的INST部份。在此情况下,向量寄存器20-21的每一个都被有选择地置于寄存器写入状态和寄存器读出状态。如前面所述,向量寄存器20-23之中有一个已被指示进入寄存器写入状态,同时寄存器20-23之中有两个被指示进入寄存器读出状态。
另一方面,第2组指令是访问存贮器13的指令,(其功能是)将存放在存贮器13中的向量数据信号送入0号至3号向量寄存器20-23中的某一特定寄存器,或者将算术运算的结果存入存贮器13。与此相应,第2组指令包括向量寄存器20-23的装入指令和贮存指令,见图3所示。在图中所示的实例中,同一向量寄存器的前后两项装入指令,在前一项装入指令所需的向量数据信号存入该向量寄存器之前,可以连续发出,这在下文中将阐明。
在第2指示或参数信号PA2被送达存贮器13之后,每一项装入和存贮指令均被送往存贮器13。因而,存贮器13被有选择地置于写入或读出操作状态;这两种状态在下文中分别称为存贮写入和存贮读出状态。
在图2中,指令译码器11包括一个状态指示器32,以指示指令处理器12的内部状态,从而避免发生指令冲突和碰撞现象。状态指示器32包括一组触发器,其功能为用标记形式将各种内部状态分别贮存。这些标记也可以叫做状态指示信号。
具体一点说,每一个从20-23的向量寄存器以及存贮器13受到第1和第2参数信号PA1和PA2的访问,从而进入被访间状态,接着又进入忙碌状态。被访问状态和忙碌状态启作为不同的内部状态而加以区别。被访问状态可以被认为是忙碌状态前的一种等待忙碌状态,下文中称为等待状态。
对于第20-23向量寄存器来说,忙碌状态又分为写忙碌状态和读忙砖状态,分别由写忙碌状态和读忙碌状态的标记位来代表。0号到3号向量寄存器20-23各有相对应的写忙碌标记,用符号WBYi来代表,符号中的“i”表示从0号到3号的任何一个(数)。在另一方面,两个读忙碌标记分别指示一对向量寄存器20/21或22/23;符号RBSY0代表向量寄存器对20/21的读忙碌标记,符号RBSY2代表向量寄存器对22/23的读忙碌状态。
此外,等待状态被区分为写等待状态和读等待状态,分别与写忙碌状态和读忙碌状态对应,并分别由符号WW和RW代表。写等待标记WW共有4只,分别对应0号至3号向量寄存器20-23,以符号“i”代表。读等待标记有2只,RW0和RW2,分别同两对向量寄存器20/21和22/23相对应。
对于存贮器13来说,给出装入等待标记LDWi来表示从0号至3号向量寄存器20-23的装入等待状态,与向量装入指令有关,表示正在等待将贮存在存贮器13中的向量数据信号送入向量寄存器,也给出装入忙碌标记LDBSYi,代表向量寄存器20-23在与存贮器13协同操作时处于忙碌状态-装入忙碌状态。
如上所述,因为可以用由两个向量装入指令指定的同一个向量寄存器将两个向量装入指令提供给存储器13,所以这个状态被写作内部状态。为此,在图示的装置中还配备了辅助送入忙碌标记LDBSYi A。
在任何情况下,装入等待标记LDWi、装入忙碌标记LDBSYi和辅助装入忙碌标记LDBSYi A代表的是从0号到3号向量寄存器20-23的状态。
指令译码器还使用0号和1号附加标记V0和V1,在下文中将阐述。
上述各项标记在一个局部处理器35(见图2)的控制下进行置位和清零,这一点随着下文展开将会清楚。局部处理装置-35能响应存放在指令寄存器31中的指令,其功能为将第1和第2参数信号PA1和PA2分别传送给指令处理器12和存贮器13;并在当接收到的指令属于第1组因而须要送达指令处理器12时,将接得指令送往一个指令堆栈寄存器36。指令堆栈寄存器36的操作方式将在下文中描述。
接得指令也被传送到局部处理器35的第1译码器41。接到接得指令后,第1译码器41就能测定这些接得指令是否属于第1组。第一译码器41将第1和第2译出信号供给监控线路42;第1和第2译出信号分别表示接收到第1组和第2组(指令)。
第1译出信号可能是一个读请求信号,或者是一个写请求信号。读请求信号指示在20/21和22/23这两对向量寄存器中有一对将要被同时访问。写请求信号则指示某一个向量寄存器VRi贮存一个运算结果。
第2译出信号可能是一个装入请求信号,表示某一个向量寄存器VRi将被装入从存贮器13读出的向量数据信号。
监控线路42以下文将要谈到的方式响应第1译出信号,分别向指令堆栈寄存器36和指令处理器12发出一个允许信号EN和第1参数信号PA1。接到允许信EN后,指令堆栈寄存器36即被启动,以存贮指令寄存器31的接得指令。
当第1译码器41将第2译出信号译出时,监控线路42即以下文将描述的方式向存贮器13供应第2参数信号PA2。其结果是,属于第2组的接得指令不必经过指令堆栈寄存器36即被反馈至存贮器13。这意味着,与第2组指令相比较,第1组指令已被指令堆栈寄存器36耽搁了。
假定,随着第1译出信号被译出,允许信号EN被传送到指令堆栈寄存器36。
请暂时参看图4,指令堆栈寄存器36有0号入口和1号入口S0和S1,并把每一条操作指令都置于先进先出的顺序。在1号入口S1空闲的条件下,操作指令首先与定时脉冲同步,被存放有1号入口S1。(然后),如果0号入口S0空闲,存放的操作指令就与随后的定时脉冲同步被移位至0号入口,再被反馈到局部处理器35。
当0号入口和1号入口S0和S1分别被送入任何操作指令时,0号和1号附加标记V0和V1被分别置位。0号和1号附加标记V0和V1各表示其对应的入口是否有效。
指令堆栈寄存器36的0号入口S0中的操作指令被作为一条保存指令而反馈到指令处理器12和第2译码器43,如图3的INST部份所描述。当0号入口S0的被保存指令是对于向量寄存器对20/21或另外一对的一个读指令时,第2译码器43即将该指令译成一个读寄存器对信号。因而,读寄存器对信号表示的乃是两对中的任何一对寄存器。当保存的指令为一写指令时,第2译码器43即发出一写寄存器信号,指示向量寄存器20-23中的某一个将运算的结果加以贮存。
请同时参阅图5和图2,监控线路42是由一条逻辑线路构成的。其中包括第1至第4运算线路46、47、48和49;以及第1至第3触发器(F/F)线路51、和53,分别连接指令堆栈寄存器36、指令处理器12和存贮器13。第1运算线路46与第1和第2译码器41和43相连接,并在一个第1预定条件保持的情况下把第1触发器电线置位到由定时脉冲(图中未显示)所决定的一个预定或单元持续时间。如果在指令寄存器31中的接得指令为运算指令,而且由接得指令指示的向量寄存器同1号入口S1空闲时存放在0号入口S0中的指令所指示的向量寄存器之间不发生冲突,则第1预定条件保持。由此可见,当1号入口S1空闲,而且接得指令所指示的一个或几个向量寄存器与0号入口S0保存的指令所指示的寄存器不重复时,第1触发器线路51被置位。这样,指令堆栈寄存器36中就没有载入任何须和贮存在0号入口S0的被保存指令使用相同的一个或几个寄存器的指令。
第2运算线路47与第1和第2译码器41和43以及状态指示器32相连接。当第2预定条件得到满足时,第2运算线路47将第2触发器线路52置位于一个单元持续时间。其结果是,当第2触发器线路52置位时,第1指示或参数信号PA1即从第2运算线路47送达指令处理器12。
当被保存指示要访问的一个或若干个向量寄存器尚未被前一条指令访间时,第2预定条件保持。具体地说,当被保存指令指示一对向量寄存器读出时,第1参数信号PA1的发出条件为:如果当时没有别的指令正在读该对向量寄存器,并且该对寄存器的前面装入指令均不缺席;或:如果前一个装入指令还存在,而且该前一个指令的向量数据信号开始被贮存到该对向量寄存器中。通过监测贮存在状态指示器32中的标记,可以测定向量寄存器的状态。通过监测装入等待标记LDWi、装入忙碌标记LDBSY1、以及贮存在状态指示器32中的0号和1号附加标记V0和V1,可以测定前一个送入指令的存在式缺席。
第3运算线路48与第1和第2译码器41和42相连接,也和状态指示器32连接,并当第3预定条件保持时,通过第3触发器线路53的置位而向存贮器13发出第2参数信号PA2。如前所述,第2参数信号PA2表示在指令寄存器31中贮存的接得指令是要发送往存贮器13的装入指令。第2参数信号PA2出现的条件是:准备输入的目的向量寄存器未被置入写入状态;两条装入指令已送往存贮器13且未被悬挂(moot);指令堆栈寄存器36中未载入受到装入指令指示去读目的向量存贮器的操作指令,或者,一条操作指令受到将被存放进0号入口S0的前一条装入指令的指示从目的向量寄存器中读向量数据信号,并等待开始把向量数据信号贮存进其中某一向量寄存器。
第4条运算线路49的功能是为相应的标记置位。第4条运算线路49跟第1和第2译码器41和43相连接;并响应允许信号EN、第1和第2参数信号PA1和PA2而进行操作。
请同时参看图6、图2和图5,下文中把向量处理看作按照表1所示的顺序进行。为了描述简便,假定全部标记均被分别保持在逻辑“0”级。在此情况下,第1向量装入指令VLD1被贮存在指令寄存器31,并由第1译码器41译出。其结果是,在第1瞬息时间t1,第2参数信号PA2从第3运算线路48经过第3触发器线路53被送往存贮器13;第1向量装入指令VLD1被从指令寄存器31送往存贮器13,在被第1译码器41译出后立即被保存在存贮器13。
如表1所示,第1向量送入指令VLD1指示的(对象)是载有从存贮器送入的第1向量数据信号的0号向量寄存器(VR0)20。所以,0号向量寄存器20的装入等待标记LDW0和装入忙碌标记LDBSY0在第1瞬息时间t1被置位,见图6下方所示。装入等待标记LDW0和装入忙碌标记LDBSY0由第4运算线路49发出,并被送往状态指示器32,作为标记信号FG(见图2和图5)。装入等待标记LDW0表示0号向量寄存器20正处于等待装入的状态。
请注意图6中,第1乘法指令VMY1是在紧接第1瞬息时间t1的第1附加瞬息时间t1′被贮存的。在该附加瞬息时间t1′时,第1向量装入指令VLD1已被传送至存贮器13。这样,第1乘法指令VMY1被传送到指令堆栈寄存器36并保存在其中,如图中虚线所示。因而,第2步S2在向量数据信号被移送到0号向量寄存器20之前就已经在第1附加瞬息时间t1′开始了。假定,第1乘法指令VMY1指令运算贮存在向量寄存器20和21的向量数据信号的乘积,并把乘积贮存在第2向量寄存器22(见图3)。在此情况下,寄存器对20/21的读等待标记RW0以及第2向量寄存器22的写等待标记WW2分别被第4运算线路49置入逻辑“1”级。在此之后的操作指令,如第2乘法指令,要等到标记RW0和WW2复位之后才能访问0号至2号向量寄存器20-22。
当第1乘法指令VMY1被贮存进指令堆栈寄存器36时,第2向量装入指令VID2被保存在指令寄存器31中,并被第1译码器41译出。在图示的例子中,第2参数信号从第3运算线路48通过第3触发器53被送往存贮器13,其条件是:前一个指令,即VMY1不只是为了等待向量数据信号而执行,而是一条要求从0号向量寄存器20中连续读出向量数据信号的读出指令。换加话说,因为考虑到前一条指令,所以在第2参数信号PA2被送往存贮器13时,装入等待标记LDW0和装入忙碌标记LDBSYO被忽略不计。通过监视在状态指示器32中的标记而监控前一个指令是可能的。
第2参数信号PA2在紧接第1附加瞬息时间t1′之后出现的第2附加瞬息时间t2′时被发出。
在发出第2参数信号PA2的同时,辅助送入忙碌标记LDBSY0 A被置位,并从第4运算线路49被送往状态指示器32,如图6所示,因为有两项向量装入指令VLD1和VLD2被发往存贮器13。
所以,存贮器13连续处理第1和第2向量装入指令VLD1和VLD2,分别将向量数据信号送入0号向量寄存器20。
在第2瞬息时间t2,按照第1向量装入指令VLD1,0号向量寄存器开始载入第1向量数据信号。在第2瞬息时间t2之前的第3附加瞬息时间t3′,装入等待标记LWD0复位。第3附加瞬息时间t3′的决定要根据传送所必需的时间耽搁的长短。
当装入等待标记LDW0在第3附加瞬息时间t3′复位时,第1参数信号PA1从第2运算线路47,经过第2触发器线路52,被送往指令处理器12。这时候,读等待标记RW0被复位;同时,读忙碌标记RBSY0被置位。装入等待标记LDW0被置位,以使0号向量寄存器20不被随后的指令所访问,此时送忙碌信号LDBSY0处于置位状态,辅助送入忙碌标记LDBSY0 A复位。
当读等待标记RW0由于第1参数信号PA1被给出而复位时,第2乘法指令VMY2由指令寄存器31发往指令堆栈寄存器36。于是,读等待标记RW0再次置位。
在第4瞬息时间t4,第1向量数据信号被从0号向量寄存器中全部读出。所以,在第4瞬息时间t4之后,0号向量寄存器20又一次进入可以访问状态。考虑到上述因素,在第4瞬息时间t4之前的第4附加瞬息时间t4′,装入等待标记LDW0和读忙碌标记RBSY0提前复位。在这种情况下,第2乘法指令VMY2被通过第2译码器43而送往监控线路42的第2运算线路47。其结果是,第2乘法指令VMY2的第1参数信号PA1在第4附加瞬息时间t4′和第4瞬息时间t4之间的一个瞬息时间被传送到指令处理器12。
当第2乘法指令VMY2的第1参数信号PA1被监控线路42给出时,读等待标记RW0复位,同时读忙碌标记RBSY0置位。然后,根据第2装入指令VLD2,第2向量数据信号被连续送入0号向量寄存器20中。与此同时,从0号向量寄存器20中连续读出第2向量数据信号,并根据第2乘法指令VMY2进行相乘,然后写入第3向量寄存器23。在上述操作过程中,读忙碌标记RBSY0的复位先于第1向量数据信号被全部从0号向量寄存器中读出,同时装入忙碌标记LDBSY0的复位也先于第5瞬息时间t5;在t5,乘法运算的结果被全部贮存入或写入第3号向量寄存器23。
因此,执行第1装入指令VLD1的第1步S1由第1瞬息时间t1开始,到向量数据信号全部移送到0号向量寄存器20时结束。第2步S2从第1附加瞬息时间t1′开始,直到根据第1乘法指令VMY1把全部乘积写入2号向量寄存器22为止。应注意,执行第2向量装入指令VLD2的第3步S3开始于第2附加瞬息时间t2′,也就是向量数据信号依照第1装入指令VLD1被移送至0号向量寄存器的时候。由此可见,0号向量寄存器20的装入操作是连续进行的,并无实质上的间隔时间,而且能够在事实上不停顿地执行第1和第2乘法指令VMY1和VMY2,求得其乘积,如图6所示。这就意味着,在图中所示的装置中,能够执行高速操作的设备,如向量乘法器24和向量加法器25,得到了有效的利用;因而,即使在一个指令序列里含有向量装入指令时,也能显著地提高向量处理的操作效能。
到此为止,本发明连同其实施例已经描述完毕。本领域的技术人员将很容易懂得如何以各种方法将本发明应用于实际工作。例如:除向量处理外,该信息处理装置能够应用于通常的算术运算;当指令译码器11接到往存贮器13存入数据信号的贮存指令时,也可以进行类似的操作;两个以上的装入指令或贮存指令可以同时送往存贮器13;向量寄存器的数量不限于4个;任何别的标记均可用来进行上述运算;其它任何装置可以代替存贮器13,因而也可以被称为响应第2参数信号PA2而与指令处理器12协同操作的协同装置。