指令处理器的制作方法

文档序号:90713阅读:295来源:国知局
专利名称:指令处理器的制作方法
本发明涉及按照流水线控制执行翻译指令的指令处理器。
翻译指令是一个有用的指令,例如,把扩充二一十进制交换码(EC-CDIK)翻译成单个系统操作码(ISO)。
图1A描述了翻译指令的指令格式。指令的0-7位构成了操作码(在下文中称为OP码)。字长包含8-15位并且表示第一个操作数的操作数长度。16-19位和20-21位分别表示第一个操作数的基址寄存器号码和位移;而32-35位和36-47位分别表示第二个操作数的基址寄存器号码和位移。第一个和第二个操作数的首地址是由把移量跟基址寄存器的内容相加得到的。
一组数据项取自缓冲存贮器(图2),这种存贮器以后将要详细说明,首地址的取得是利用了第一个操作数的基址寄存器和位移。这些取得的数据项被称作变元字节,它们形成第一个操作数。第二个操作数的地址值被加到第一个操作数的各自的变元值上,以便从缓冲存贮器得到一组数据项(功能字节),缓冲存贮器是由上述描述的加法器的结果作为相应的地址来确定的,因为用功能字节替换了存贮变元字节用的缓冲存贮器的存贮位置。
图1B说明一组变元字节的地址A1i(i=1到L)和在翻译指令执行的前后存贮在缓冲存贮器中的数据值D1i(i=1到L)。例如,第i个变元字节的地址是从A1i=(B1)+D1+i-1得到的,而翻译指令执行前的D1i值和执行后的D1i值可各自表示为D1i=OP1i和D1i=OP2i。记号(B1)表示由B1规定的寄存器的内容(地址值)。
图1C指出的数值是由变元字节值OP1i(i=1到L)加到各自第二个操作数地址值〔(B2)+D2〕得到的,并且存贮数据的值(功能字节)D2i=OP2i(i=1到L)取自缓冲存贮器,缓冲存贮器由加法的结果作为取数地址来规定。
图2是一个说明优先技巧的指令处理器的结构示意图。图3是在优先技巧的指令处理器中,指令执行的处理流程。参看图2,指令寄存器10是保持一个指令处于图1A格式的状态之中。为了选择基址寄存器号码B1和B2以及选择位移D1和D2,图2中的指令处理器还包括选择器20和21。基址寄存器号码B1和位移D1被选来对第一个操作数作地址计算,而基址寄存器号码B2和位移D2被选来计算第二个操作数的地址。当执行第一个操作数的地址计算时,一个增量器11被提供来产生一个只有各个变元字节才有的常数。
对于第一个、第二个、……和第i-1个变元字节,只有各个变元字节才有的常数各自为0、1、……和i-1。在这个例子中,增量的步是1,因为每执行一次处理,被处理的字长是一个字节。寄存器组12是用来保持基址寄存器的数值,该基址寄存器则是由基址寄存器号码B1和B2规定的。选择器22选择增量器11和一个字节分离线路23,以便各自计算第一个和第二个地址。加法器13计算缓冲存贮器地址,而缓冲存贮器15被用来取得和存入一个存贮数据项,该数据项的取得是利用了加法器的地址计算。缓冲存贮器15能够一次取出一组字节并且在一个周期里在时间分隔的基础上在不同地址处完成一个取数操作和存数操作。从加法器13得到的结果数值也被传送到存贮地址缓冲器14并且作为存贮地址被保存着。为了对缓冲存贮器15取数操作,信号线50提供取数地址,而信号线51又提供写地址。校准器线路16校准从缓冲存贮器15取得的数据。校准操作旨在把取自缓冲存贮器15的数据移位到予先确定的位置(例如,移到左端或者右端)。操作数缓冲器线路17被用来存入一个取得的操作数。图2的指令处理器还包括一个操作单元18和一个存贮数据寄存器19。对于从操作数缓冲器17计算第二个操作数的地址,一个字节分离线路23是必要的,该分离线路分离和得到一个字节的数据项。
图2描述的优先技巧指令处理器按照图3描述的处理流程处理翻译指令。参看图3、D、A、L和E表明了在流水线控制系统中指令的处理周期。指令译码周期D被用来对存贮在指令寄存器10中的指令译码和为了指令的处理产生必要的信息,而且完成地址计算,这是用地址加法器B来提取指令用的存贮操作数所需要的。在周期A中,利用在周期D中操作数地址的计算,从缓冲存贮器15取得存贮数据项。在周期L中取得的数据项被存贮在操作数缓冲器17中。在周期E期间,一个由指令予先确定的操作,在操作单元18中被执行。
在图2的常规的数据处理系统中,翻译指令的处理是按如下方式执行的。
首先,基址寄存器的值B1和位移D1由选择器20和21来选择。为了利用加法器13计算第一个操作数地址。选择器22从增量器11选择数值(初始设置为0)。地址值被传送到缓冲存贮器15去取第一个操作数;并且同时,它被存贮在存贮地址缓冲器14中,为了用作存贮第二个操作数的存贮地址。一个包含一组字节(几个字节)的数据项能一次取自缓冲存贮器15。包含取得的数据项的第一个操作数被存入操作数缓冲器17中。其次,存贮在操作数缓冲器17中的数据的第一个字节取自一个字节分离线路23,它被用来从几个字节数据从数据的第一个字节开始就存贮在操作数缓冲器17里。再次,选择器21和21分别选择基址寄存器值B2和位移D2,以及为了通过加法器13执行第二个操作数地址的计算,选择器22选择信号线52。即,执行一个(B3)+D2+op21的操作。构成第二个操作数的一个字节(功能字节)根据计算的地址值取自缓冲存贮器15,并且通过操作数缓冲器17,操作单元18和存贮数据寄存器19进行传递,最后存贮在缓冲寄存器15。存贮在存贮地址缓冲器14中的第一个操作数的地址用于存贮操作。
同样,用几个字节的第一个操作数顺序分离的方法能将构成第二个操作数的字节取出来,几个字节的第一个操作数是予先取在操作数缓冲器17里的。当第几次取操作完成时,后面的第一个操作数的变元字节(几个字节)被取出。这种取数操作结束之后,可以开始第n+1次第二个操作数的取操作。
图3描述了当n=8时的同类操作。参看图3,在第一个操作数的首地址计算以后,第二个操作数的提取,还得在延后两个周期的额外时耗以后。当功能字节彼连续取数8次并且第一次取得的变元字节完全处理时,在第一个操作数操作以后经过两个周期的额外时耗,允许再开始第二个操作数的取数操作。因而,每完成上面描述的8次操作,没有利用两个D周期。
在上面描述的常规数据处理系统中,同一个加法器13被用于执行第一个和第二个操作数的计算,同一个缓冲存贮器15被用来取变元字节和功能字节,因此,化费的几个周期的时间(在图2中是二个周期)出现在第一个操作数被取出和第二个操作数取数操作开始的时间之间。上面描述的每几次操作化费一次时间,因为,起动操作的限制以及从缓冲存贮器15取一次数所允许的字长的限制,操作数缓冲器17的数据字长的限制等等。次数n用数据的字长来代表,这些数据能在各种限制条件下同时存入操作数缓冲器17。
此外,第一个操作数的n个字节同时被取数并且存入操作数缓冲器17以尽量减少上面提到的时间化费,所以,一字节分离线路23是必要的,它从n个字节的数据中分离一个联接的字节并且传送,在地址加法器13中每次完成第二个操作数的地址计算。
所以,本发明的目的是提供一个指令处理器,它消除发生在第二个操作数取数操作初始阶段的固有的化费,消除发生在为了取第二个操作数每n次操作有一次的固有的化费,而且,指令处理器不需要一字节分离电路,该分离电路是用来从存贮在操作缓冲器中的n个字节的数据中分离和得到一个字节的。
对于用二个或者更多操作数的指令,必须为每个操作数提供独立的地址计算加法器和缓冲存贮器。在翻译指令的处理中,对第一个和第二个操作数作地址计算和操作数取数操作本质上是异步地传送的。因而,每n个第二个操作数取数操作发生一次的时间化费能够被单独地去掉,并且,异步地实现地址计算以及通过一组地址加法器作操作数的取数操作。而且,从操作数缓冲器中分离和得到一字节的分离线路由于采用了一个操作步骤能够被省略掉。在这个操作步骤中,第一操作数的一个字节被取得并且存入暂存存贮装置中,装置提供了存有数据的地址加法器。
从下面结合附图的详细描述,本发明是显而易见的图1A是描述翻译指令的指令格式示意图;
图18说明变元字节地址和存贮在缓冲存贮器中的数据之间的相互关系;
图1C描述了功能字节地址和存贮在缓冲存贮器中的数据之间的相互关系;
图2是描述常规指令处理器的结构示意图;
图3说明在常规指令处理器中翻译指令处理的流程;
图4是根据本发明的指令处理器的结构示意图;
图5描写处理流程,在此流程中的操作,例如对二个操作数的地址计算和从缓冲存贮器的取操作,完全是以同步方式执行的;以及图6说明处理流程,在此流程中的操作,例如对二个操作数的地址计算和从缓冲存贮器的取数操作是完全异步方式执行的。
本发明的实体将由图4、图5和图6来描述。
图4是表明按照本发明的指令处理器结构的一个示意图。在一条需要两个操作数的指令的处理中,备有一个地址计算加法器和一个单独用于每个存贮操作数的缓冲存贮器,因此,第一个和第二个操作数的取操作能够在各自的线路中独立地被执行。
图4的指令处理器是不同于图1的指令处理器的,图4指令处理器提供两个增量器,两个加法器,两个缓冲存贮器和两个操作数缓冲器。这些装置每对单元被用于执行地址计算和对第一个操作数执行数据的取数操作,而其它单元被用来对第二个操作数作同样的操作。前面的和后面的线路组各自被称为第一取数线路和第二取数线路。
指令处理器具有两种操作功能一种用于第一个和第二个操作数的取数电路是互相同步传送操作的情况。另一种是用于这些电路实现完全异步和独立操作的情况。虽然,本发明的要点是属于后一种情况(异步操作),为了便于了解指令处理,将简要地叙述同步操作,然后,再解释异步操作。
假定,一条需要两个存贮操作数的指令,被设置到表示在图4中的指令处理器的指令寄存器100里,考虑一条指令(“与”特征)作为一个例子,它计算两个存贮操作数的逻辑乘积,并且把结果值存在第一个操作数地址里。假定该指令的指令格式与上述的翻译指令一样,并且以图4的指令寄存器100来描述。为了计算该指令的第一个操作数的操作数地址,通用寄存器120的值由指令的基地址B1来规定,指令的位移D1的值和增量器110的值(第一次操作是0以及第i次操作是i-1)被输入到加法器130。另一方面,通用寄存器120的值由指令的基地址B2来规定,指令的位移D2的值和增量器111的值(第一次操作是o和第i次操作是i-1)被输入到加法器131里去计算第二个操作数的操作数地址。对这条指令,加法器130和131的第一个和第二个操作数地址的计算各自以同步方式被执行以及加的结果被传送到缓冲存贮器150和151里,以便取两个操作数。即第一个和第二个操作数分别取自缓冲存贮器150和151。所取的数据通过标准器160和161,分别存入操作数缓冲器170和171,然后,这些值分别输入到操作单元180。在操作单元180里,计算了分别存在操作数缓冲器170和171里的数据的逻辑乘。
另一方面,从加法器130的一个输出量,即对第一个操作数的地址加的结果,它经过信号线510传递到存贮地址缓冲器141,为的是用作存贮操作结果的存贮地址。从操作单元来的操作结果利用存贮地址,经过存贮数据寄存器190存入缓冲存贮器150和151里,该存贮地址是从存贮地址缓冲器读出的。由于在流水线控制系统里的交叠处理能用于全部地址计算,操作数的取操作,数据存入操作数缓冲器的操作,以及数学运算,第一个操作数的第i次取操作,是与第二个操作数的第i次取操作数同步执行的,它与第i-1次取操作的前一次操作所取的数据的处理是交叠的,从而实现了连续的操作数的取操作。
在上述的同步操作里,第一和第二操作数的取线路完成识别操作,因此,一条需要两个存贮操作数的指令能按照与只有一个存贮操作数的指令同样的方法来处理。
下一步,将叙述异步操作。假定,一条翻译指令被安置在图4的指令寄存器100里。与同步操作一样,加法器130,缓冲存贮器150,校准器160和操作数缓冲器170用来实现第一操作数地址的计算以及变元字节的取操作,而加法器131,缓冲器151,校准器161和操作数缓冲器171用来实现第二个操作数地址的计算以及动能字节的取操作。异步操作处理如下。首先,第一个操作数的首地址(初始增量值是0)由加法器130来计算以及第一个操作数的第一个字节(变元字节)是取自缓冲存贮器150。取出的变元字节被校准,为了用来去实现第二个操作数的以后地址的计算以及所获得的数据存入操作数缓冲器170。从加法器130的输出量也存入存贮器地址缓冲器140并且被利用,当第二个操作数的功能字节被存贮时。因为按照流水线控制系统,交叠处理能用于上述的操作,不管第二个操作数地址计算或是动能字节的取操作是否已经开始,用加法器130顺序地完成第一个操作数的第二及相继的变元字节地址计算,就可以把第一个操作数取出来。在这种情况下,存贮在缓冲寄存器150的数据的每个字节顺序地由增量器110的增量值1来取得,即1,2,……等等。地址计算的结果和取得的变元字节连续地分别存入地址缓冲器140和操作数缓冲器170。另一方面,当第一个操作数取得的数据(变元字节)存入操作数缓冲器170时,一个字节的数据取自操作数缓次器170。操作数缓冲器170用与第一个和第二个操作数取数电路同步的方式分别进行数据存贮和取操作,为了使两个电路以异步方式工作。通用寄存器120的内容由选择器220来选择,并且由指令的基址寄存器B2来规定,位移D2的值的输入到加法器B1,加上后得到第二个操作数的地址。第二个操作数的一个字节数据(动能字节)利用所得到的地址而取得并且存入操作数缓冲器171。目的,联接的存贮地址从存贮地址缓冲器140移到存贮地址缓冲器141。此后,功能字节经过操作单元180和存贮数据寄存器190而传送,存入缓冲寄存器150和151。在这个操作里,取自存贮地址缓冲器141的存贮地址(相应于第一个操作数的变元字节的取地址)被利用了。在这种情况,累加器没有对数据起任何作用,即它只是作为一个数据通道。如果,第一个操作数的变元字节的取操作完成了,并且,变元字节存入了操作数缓冲器170,则上面存入的第二个操作数地址的计算以及动能字节的取和存操作能与第一操作数地址计算,变元字节取操作完全异步执行。结果,翻译指令处理流程表示在图6上,其中,对第一操作数的第i次数据的地址计算和变元字节取操作与第二个操作数的第i次动能字节的那些计算和取操作联系起来了。第一个操作数的处理能完全独立于第二个操作数处理状态而连续执行。即在对第二个操作数的功能字节地址计算和取数操作开始以前,对第一操作数的变元字节地址计算和取数操作能顺序地完成,因此,在常规的指令处理器里每一次n个取操作中发生的两个周期的时耗,完全不会发生。因为第一个操作数的变元字节一次只取一个字节,并且被校准,为的是输入到一个地址加法器里,所以在优先技巧指令处理器里,所用的一个字节的隔离电路能被省掉。
依照本发明,对第一个操作数的变元字节的计算和取操作能够完全独立地完成,并且在翻译指令处理器中,与第二个操作数的处理异步完成。在常规的数据处理系统里,每发生n次取操作的两个多余的周期能消去,从而达到高速处理。
通常,在第一个操作数的变元字节数据的n个字节在一个时间取出,所以为了从n个字节分离并且取出一个字节的电路是需要的,用来计算第二个操作数的功能字节的地址,无论如何,一字节的取操作,依照本发明被用来去取出变元字节,一字节的取电路变得不必要了,从而简化了电路结构。
权利要求
1.用 于处理指令的指令处理器的特点是一组加法器,每一个配置得相应于一组操作数中的每一个,该操作数组由一条指令所包含,用于计算该操作数的一个地址;一组增量器,每一个配置得相应于每一个上述的加法器,用于从其中增加一个输出值;一组缓冲存贮器,用于存入构成上述的相应操作数的数据,每一个配置得相应于上述加法器,由利用从上述相应加法器得到的地址来输出存贮的数据;一组操作数缓冲器,配置得相应于上述的一组缓冲存贮器,它是用于存入一组存贮数据的,该数据是从上述相应的缓冲存贮器输出的;一个选择器,用于选择上述一组操作数缓冲器的第Ⅰ个缓冲器及上述一组增量装置中的第K个增量装置;以及用于对从上述一组操作数缓冲器输出的数据进行予先决定的操作的操作装置;由此,上述的指令处理器引起了在第一种模式里,上述一组加法器中的第Ⅰ个利用从上述一组增量装置的第Ⅰ个来的一个输出量来计算一个地址,第Ⅰ个操作数缓冲器存入从上述一组缓冲存贮器的第Ⅰ个取来的存贮数据,该缓冲存贮器利用由第Ⅰ个加法器计算的地址,同时,选择器选择从上述一组增量装置的第K个来的一个输出量以及上述一组加法器的第K个利用上述被选的输出量去计算一个地址,上述的一组操作数缓冲器中的第K个去存入取自上述的一组缓冲存贮器中的第K个,该缓冲存贮器利用由第K个加法器计算的地址,并且上述的操作装置去操作存在上述的一组操作数缓冲器里的数据;以及在第二种模式里,第Ⅰ个加法器利用从第Ⅰ个增量装置来的一个输出量去计算一个地址,第Ⅰ个操作数缓冲器去存入取自第Ⅰ个缓冲存贮器的存贮数据,该缓冲存贮器利用由第Ⅰ个加法器计算的地址,上述选择器去选择从第Ⅰ个操作数缓冲器的一个输出量以及第K个加法器利用上述的输出量去计算一个地址,第K个操作数缓冲器去存入取自第K个缓冲存贮器的存贮数据,该缓冲存贮器利用由第K个加法器计算的地址,并且上述的操作装置操作存在第K个操作数缓冲器里的数据。
2.依照权项1所述的指令处理器的另一个特征是增量装置,它是用于利用由一次操作处理的数据的数据长度来增值其中一个输出量,在此上述第I个加法器顺序输出构成上述第I个操作数的一组数据的地址并且利用从上述增量装置来的输出量去计算上述一组数据的地址。
3.依照权项1所述的指令处理器,其特点在于上述的指令包含一个基址寄存器号码和一个位移,每一组对应于上述的一组操作数中的每一个。
4.依照权项1所述的指令处理器,其特点在于上述一组加法器中的每一个利用一个基址寄存器的内容和一个位移相加来计算一个相应的操作数的首地址,每一个由相应的操作数的一个基址寄存器的号码来确定。
5.依照权项2所述的指令处理器的另一个特征是校准器,在上述的第一个存贮数据被相应的一个校准器校准以后,取自第I个第一存贮装置的上述第一个存贮数据存入上述的第I个第二个存贮装置。
6.依照权项1所述的指令处理器的特征在于每一个上述的第I个第二存贮装置被提供来去存入第一个数据,这是与上述的第I个第一存贮装置同步进行的,以及由此取出第一个存贮数据,这是与上述第K个加法器同步工作的,以及上述的第I个第一存贮装置和上述的第K个加法器是以异步方式操作的。
7.用于处理指令的指令处理器的特征是一组加法器,每一个配置得相应于一组操作数中的每一个,这组操作数是一条指令所包含的,为了计算上述相应操作数的一个地址;一组第一存贮装置,用于存入构成相应操作数的数据,上述第一存贮装置配置得相应于上述的一组加法器,为了输出存贮数据,该数据基于一个从上述相应加法器得到一个地址;以及一组第二存贮装置,配置得相应于上述的一组第一存贮装置,用于存入从相应的上述第一存贮装置输出的一组存贮数据;于此,上述的指令处理器引起;上述一组加法器的第I个去计算上述一组操作数的第I个的一个地址;一个包含现在的字节号码的存贮数据取自上述的一组第一存贮装置的第Ⅰ个并存入上述的一组第二存贮装置的第I个;取自上述第I个第二存贮装置的一个第一存贮数据顺序地输入到上述一组加法器的第K个里,为了去计算构成上述一组操作数中的第K个的每个数据的地址以及从上述一组第一存贮装置中的第K个取出一个第二存贮数据;以及操作结果存入上述第一存贮装置,利用相应于上述的第一存贮数据的一个地址来完成。
8.依照权项7所述的指令处理器的另一个特征是增量装置,它是用于利用由一次操作处理的数据的数据长度来增值其中一个输出量,在此上述第I个加法器顺序输出构成上述第I个操作数的一组数据的地址并且利用从上述增量装置来的输出量去计算上述一组数据的地址。
9.依照权项7所述的指令处理器的特征在于上述的指令包括一个基址寄存器号码和一个位移,每一组对应于上述的一组操作数中的每一个。
10.依照权项7所述的指令处理器的特征在于上述一组加法器中的每一个利用一个基址寄存器的数值和一个位移相加来计算一个相应的操作数的首地址,每一个由相应的操作数的一个基址寄存器的号码来确定。
11.依照权项8所述的指令处理器的另一个特征是校准器,在上述的第一个存贮数据被相应的一个校准器校准以后,上述的第一个存贮数据存入上述的第I个第二存贮装置。
12.依照权项7所述的指令处理器的特征在于每一个上述的第I个第二存贮装置被提供来去存入第一个数据,这是与上述的第I个第一存贮装置同步进行的,以及由此取出第一个存贮数据,这是与上述第K个加法器同步工作的,以及
13.用于处理指令的指令处理器的特征是第一个和第二个加法器,提供来相应于有第一个和第二个操作数的一条指令的每个操作数,用于计算相应于各个操作数的地址;第一个和第二个增量装置,提供来分别相应于上述的第一个和第二个加法器,用于让上述加法器的输出值分别增加1;第一个和第二个缓冲存贮器,存入构成上述相应操作数的数据,上述第一个和第二个缓冲存贮器提供来分别相应于上述的第一个和第二个加法器。用于利用从各自相应的加法器获得的地址来输出存贮数据;第一个和第二个操作数缓冲器提供来分别相应于上述的第一个和第二个缓冲存贮器,用于存入各自从相应的缓冲存贮器输出的一组存贮数据;一个选择器,用于选择上述的第一个操作数缓冲器和第二个增量装置中的任一个;以及操作装置,用于执行对从上述第一个和第二个操作数缓冲器输出数据的予先决定的操作;由此,上述的指令处理器引起;在第一种模式里,上述的第一个加法器利用上述的第一个增量装置的一个输出量去计算一个地址,上述的第一个操作数缓冲器去存入取自上述的第一个缓冲存贮器的存贮数据,以及同时,上述的选择器去选择一个从上述的第二个增量装置来的输出量以及上述的第二个加法器利用上述的被选输出量计算一个地址,上述的第二个操作数缓冲器存入取自上述第二个缓冲存贮器的存贮数据,这利用了由上述第二个加法器计算得的上述地址,以及上述的操作装置去操作存在上述第一个和第二个操作数缓冲器里的数据;以及在第二种模式里,上述的第一个加法器利用上述的第一个增量装置的一个输出量去计算一个地址,上述的第一个操作数缓冲器去存入取自上述的第一个缓冲存贮器的存贮数据,这是利用了由第一个加法器所计算的上述地址,上述的选择器选择从第一个操作数缓冲器来的一个输出量,以及上述的第二个加法器利用上述的输出量去计算一个地址,上述的第二个操作数缓冲器去存入取自上述的第二个缓冲存贮器的存贮数据,这利用了由上述的第二个加法器计算的上述地址,以及上述的操作装置去操作存在上述第二个操作数缓冲器里的数据。
专利摘要
给要求两个或者更多操作的指令的每个操作数,分别提供地址计算加法器和缓冲存贮器。在翻译指令的处理中,地址计算和对第一个、第二个操作数的取操作,实质上是异步进行的。因而每几个第二个操作数的每次取操作数所化的额外化费可以采用一组地址加法器独立或同步完成地址计算和取数操作的方法来扣掉。而且,采用一个操作步骤能够省掉用来从操作数缓冲四分离并得到一个字节的线路,在该操作步骤中,第一个操作数的一个字节取出并存入暂存存贮器中,这存贮器提供其中存贮的数据给地址加法器。
文档编号G06F9/38GK85102313SQ85102313
公开日1987年1月10日 申请日期1985年4月1日
发明者栗山和则, 和田健一, 小冈彰 申请人:株式会社日立制作所导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1