寄存器存位的方法和装置的制作方法

文档序号:99849阅读:386来源:国知局
专利名称:寄存器存位的方法和装置的制作方法
在计算机系统中,其处理机常常包含一些专用指令,以便利用一些特定位将寄存器内的一些位移到右边或左边。
另外,有些处理机包含有将来自源操作数的一些特定位插到目标操作数去的指令,目标操作数是以最右边的一个特定位开始的。为了获得更高的效率,处理机需要较万能的装置去处理寄存器内的这些位。
根据本发明的最佳实施例,提供了一用来在一目的寄存器中存储一些位的装置及其方法。在一指令寄存器中的一些位给一算术逻辑单元(ALU)指定了一位源,一些位,和在一目的寄存器中的一位置。在一单独指令周期时间内,ALU从位源中将位传送到目的寄存器的所述位置上。位源可以是另一个寄存器或者是该指令寄存器中的一个立即字段。
图1是按照本发明一个实施方案的执行存位所用的算术逻辑运算部件(ALU),指令格式和寄存器。
图2是图1的ALU和按照本发明的第二实施方案,执行存位所用的指令格式和寄存器。
图3是图1的ALU和按照本发明的第三实施方案,执行存位所用的指令格式和寄存器。
图4是图1的ALU和按照本发明的第四实施方案,执行存位所用的指令格式和寄存器。
图5是图1的ALU和依照本发明的第五实施方案,完成存位所用的指令格式和寄存器。
图6是图1的ALU和依照本发明的第六实施方案,执行存位所用的指令格式和寄存器。
图7是图1的ALU和依照本发明的第七实施方案,执行存位所用的指令格式和寄存器。
图8是图1的ALU和依照本发明的第八实施方案,执行存位所用的指令格式和寄存器。
图1中,ALU50处理来自寄存器110和140的位模式,以便将来自寄存器120的位存入寄存器130。例如,寄存器110含有32位并被分成若干字段。字段111包含指定操作码的6位,例如,是一个存储指令的情况下,它可以是(011101)2。
字段112包含一个5位地址,用作指定将要有位存入的通用寄存器。字段112内的这5位地址可以选定一种非32位的通用寄存器。在这种情况下,选定的这种通用寄存器是寄存器130。
字段113包含一个5位地址,用作指定第二个通用寄存器,它是一个要存储的位源。在这种情况下,选定的第二个通用寄存器是寄存器120。从寄存器120选出的位可从一个系定位选取。例如,寄存器120内最右边的字段121可以是这种系定位。
字段114包含一个三位的条件码。例如,如果这些条件是真的(True),则下述条件可被取消。下表列了这些典型条件0 不真的1 如果寄存器130的所有位为零,真的2 如果寄存器130的最低数位为1,真的3 如果寄存器130的最高数位为1,真的4 始终真的5 如果寄存器130至少有一位不为零,真的6 如果寄存器130的最低数位为零,真的7 如果寄存器130的最高数位为零,真的字段115包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段115表示;此指令是存储一些位数可变的位(a variable numberofbits)。这种情况可使字段115例如包含(001)2来表示。
字段116包含五个不使用的位,因此这些位可全部置零。
字段117包含5位,表示从寄存器120存到寄存器130的位数。此5位是一个补码的字长,即从32减去这些位的值,以给出从寄存器120存到寄存器130的位数。例如,如果字段117的这些位包含二进制数11010(10进制的26),则寄存器120的字段121应当包含6位〔(32-26)位〕,寄存器130的字段131也应包含6位。字段131是寄存器130内的存储单元,它被寄存器120用来存储来自字段121的一些位。
寄存器140是包含有表示寄存器130内字段131的位的位置的一个位置号的寄存器。此位置号被存放在寄存器140内最右边字段141内,并表示寄存器130内字段131最右边位的存储单元。例如,当字段141给出最右边的位号是17,则字段131最右边的位在寄存器130的第17位的位置上,其中寄存器130最左边的位的位置(位单元)是零位的位置,寄存器130最右边的位的位置是第31位的位置。
图2中,ALU50处理来自寄存器210的位模式,以便将来自寄存器220的数位存进寄存器230。例如,寄存器210可以有32位,并被分成若干字段。字段211包含6位,用作指定操作码,例如是一种存储指令,此操作码可编码为(011101)2。
字段212包含一个5位地址,用来指定将要有位存入的通用寄存器。字段212的这5位地址允许在32个当中选定一个通用寄存器。在这种情况下,选定的这种通用寄存器是230。
字段213包含一个5位地址,用作指定第二个通用寄存器,它是一个要被存储的位源。在这种情况下,选定的第二个通用寄存器是寄存器220。从寄存器220选出的位可从一种系定位选择。例如,寄存器220内最右边的字段221可以是这种系定位字段214包含一个三位条件码。如果这条件是真的(True),则例如下面的指令可以取消。上表1列出了这些典型条件。
字段215包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段215表示此指令存储若干位。这可以用使字段215包含例如(001)2来表示。
字段216包含五个位,表示寄存器230内字段231的位的位置的一个位置号。字段231是寄存器230内的存储单元,寄存器220将来自字段221的位存入寄存器230内。此位位置号表示寄存器内字段231最右边位的存储单元。例如,当字段216给出的最右边位号是19时,则字段231最右边位的位是在寄存器230的第19位的位置,其中寄存器230最左边位的位置是0位的位置,寄存器230最右边位的位置是第31位的位置。
字段217包含5位,表示从字段221存到寄存器230的位的数目。例如,当字段217的位包含二进制数11010(一个补码字长)时,则寄存器220的字段221包含6位,寄存器230的字段231也包含6位。
图3中,ALU50处理来自寄存器310和340的位模式,以便将来自寄存器310内字段313的位存储到寄存器330。例如,寄存器310可以有32位,并被分成七个字段。字段311包含6位,用作指定操作码,例如一个存储指令,可编码为(011101)2。
字段312包含一个5位地址,用作指定将要有位存入的通用寄存器。字段312的这5位地址允许从32个选定一个通用寄存器。在这种情况下,选定的这种通用寄存器是寄存器330。
字段313包含一个5位的立即字段,它是一个要存储的位源。
字段314包含一个三位的条件码。例如,如果这条件是真的(True),则例如下述指令可以取消。上表1列出了这些典型条件。
字段315包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段315表示此指令是包含在此指令本身的一些位数可变的位的存储。这可以用使字段315包含例如(101)2来表示。
字段316包含5个不使用的位,因此这些位可全部置零。
字段317包含5位,表示从立即字段313存到寄存器330的位数。例如,如果字段317的位包含二进制数11100(一个补码字长),则来自立即字段313的四个最右边的位会被传送,寄存器330的字段331会包含四个位。字段331是寄存器330内的存储单元,它被用来存储从字段313来的四个最右边的位。
寄存器340是包含有一个位的位置号的一个寄存器,位置号表示寄存器内字段331的位位置。此位置号被存放在寄存器340内最右边的字段341内并表示寄存器330内字段331最右边位的存储单元。例如,当字段341给出的最右边的位号是12时,则字段331最右边位便在寄存器330的第12位的位置上,其中寄存器330最左边位的位置是零位的位置,寄存器330最右边位的位置是第31位的位置。
图4中,ALU50处理来自寄存器410的位模式,以便将来自寄存器410内字段413的位存储到寄存器430。例如,寄存器410可以有32位并被分成七个字段。字段411包含六位,用作指定操作码,例如一个存储指令,则可编码为(011101)2。
字段412包含一个5位地址,用作指定将有位存入的通用寄存器。字段412的这5位地址允许从32个中选定一个通用寄存器。在这种情况下,选定的这种通用寄存器是寄存器430。
字段413包含一个5位的立即字段,它是一个要存储的位源。
字段414包含一个3位的条件码。如果这条件是真的(True),则例如下述指令可以取消。上表1列出了这些典型条件。
字段415包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段415表示;此指令是存储在该指令本身的若干位的存储。这可以用使字段415包含例如(001)2来表示。
字段416包含5个位,用作位的位置号,位置号表示寄存器430内字段431的位的位置。字段431是寄存器430内的存储单元,它被用来存入从立即字段413来的位。此位的位置号表示寄存器430内字段431最右边位的存储单元。例如,当字段416给出的最右边位号是17时,则字段431最右边位是在寄存器430第17位的位置,其中,寄存器430最左边位的位置是零位的位置,寄存器430最右边位的位置是第31位的位置。
字段417包含5位,表示从字段413存到寄存器430的位数。例如,如果字段417的位包含二进制数11011(一个补码字长)时,则来自字段413的五位被传送到寄存器430的字段431。
图5中,ALU50处理来自寄存器510和540的位模式,以便将寄存器530的所有位清至零,并将来自寄存器520的位存到寄存器530。例如,寄存器510可以有32位,并被分成若干字段。字段511包含6位,用作指定操作码,例如一个存储指令,可编码为(011101)2。
字段512包含一个5位地址,用作指定将有位存入的通用寄存器。此字段512的5位地址允许在32个中选定一个通用寄存器。在这种情况下,选定的这种通用寄存器是寄存器530。
字段513包含一个5位地址,用作指定第二个通用寄存器,它是一个要存储的位源。在这种情况下,选定的第二个通用寄存器是寄存器520。从寄存器520选出的位可从一种系定位选择。例如,寄存器520内最右边字段521可以是这种系定位。
字段514包含一个三位的条件码。如果这条件是真的(True),则例如下面的指令可以取消。上表1列出了其典型的条件。
字段515包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段515表示;此指令对寄存器530清零并存入一些位数可变的位。这可以用使字段515包含例如(000)2来表示。
字段516包含5个不用的位,因此这些位可全部置零。
字段517包含5位,表示从寄存器520存到寄存器530的位数。例如,如果字段517的数位包含二进制数11010(一个补码字长),则寄存器520的字段521应包含6位,寄存器530的字段531也应当包含6位。字段531是寄存器530的存储单元,它被寄存器520用来存入来自字段521的位。
寄存器540是包含有位的位置号的寄存器,位置号表示寄存器530内字段531的位的位置。此位置号存放在寄存器540内最右边字段541内,并表示寄存器530内字段531的最右边位的存储单元。例如,当字段541给出的最右边位号是17时,则字段531的最右边位是在寄存器530第17位的位置,其中寄存器530的最左边位的位置是零位的位置,寄存器530的最右边位的位置是第31位的位置。
图6中,ALU50处理来自寄存器610的位模式,以便对寄存器630的所有位清至零并将来自寄存器620的位存到寄存器630。例如,寄存器610可以有32位并被分成若干字段。字段611包含有6位,用作指定操作码,例如一个存储指令,可编码为(011101)2。
字段612包含有一个五位地址,用作指定将有位存入的通用寄存器。字段612的这5位地址允许从32个中选定一个通用寄存器,在这种情况下,选定的这种通用寄存器是寄存器630。
字段613包含有一个5位地址,用作指定第二个通用寄存器,它是一个要存储的位源。在这种情况下,选定的第二个通用寄存器是寄存器620。从寄存器620选出的位可从一种系定位选择。例如,寄存器620内的最右边字段621可以是这种系定位。
字段614包含一个三位的条件码。如果这条件是真的(True),则例如下述指令可以取消。上述表1列出了这些典型条件。
字段615包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段615表示此指令使寄存器630置零,并在其中存入若干位。这可以使字段615包含例如(010)2来表示。
字段616包含5个位,用作一个位的位置号,该位置号表示寄存器630内字段631的位的位置。字段631是寄存器630的存储单元,它被寄存器620用来存储来自字段621的位。此位的位置号表示寄存器630内字段631最右边位的存储单元。例如,当字段616给出的最右边位的号是19时,则字段631最右边位是在寄存器630第19位的位置,其中寄存器630的最左边位的位置是零位的位置,最右边位的位置是第31位的位置。
字段617包含5位,表示从字段621到寄存器630的位数。例如,当字段617的位包含二进制数11010(一个补码字长),则寄存器620的字段621包含6位,寄存器630的字段631也包含6位。
图7中,ALU50处理来自寄存器710和740的位模式,以便对寄存器730的所有位清零,并将来自寄存器710内字段713的位存储到寄存器730。例如,寄存器710可以有32位并被分成七个字段。字段711包含有6位,用作指定操作码,例如一个存储指令,可编码为(011101)2。
字段712包含一个5位地址,用作指定将有位存入的通用寄存器。字段712的这5位地址允许在32个中选择一个通用寄存器。在这种情况下,选择的这种通用寄存器是寄存器730。
字段713包含一个5位的立即字段,它是一个要存储的位源。
字段714包含一个三位的条件码。如果这条件是真的(True),则例如下述指令可以取消。上述表1列出了典型的条件。
字段715包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段115表示,此指令对寄存器730清零,并将若干位数可变的位存入其中,这些位数可变的位是来自指令本身的。这可以通过使字段715包含例如(101)2来表示。
字段716包含5个不用的位,因此这些位可全部置零。
字段717包含5位,表示从立即字段713存到寄存器730的位数。例如,如果字段717的数位包含二进制数11100(一个补码字长),则来自立即字段713的四个最右边的位会被传送,寄存器730的字段731将包含4位。字段731是寄存器730内的存储单元,它被用来存储来自字段713最右边四个位。
寄存器740是包含位的位置号的寄存器,位置号表示寄存器730内字段731的位的位置。此位置号被存放在寄存器740内最右边字段741中,并指示寄存器730内字段731最右边位的存储单元。例如,当字段741给出的最右边位号是12时,则字段731的最右边位是在寄存器730的第12位的位置,其中寄存器730最左边那一位是零位的位置,寄存器730的最右边那一位的位置是第31位的位置。
图8中,ALU50处理来自寄存器810的位模式,以便将寄存器830的所有位清至零,并将来自寄存器810内字段813的位存到寄存器830。例如,寄存器810可以有32位,并被分成七个字段。字段811包含6位,用作指定操作码,例如一个存储指令,可编码为(011101)2。
字段812包含一个5位地址,用作指定将有位存入的通用寄存器。字段812的这5位地址允许在32个中选择一个通用寄存器。在这种情况下,选用的这种通用寄存器是寄存器830。
字段813包含一个5位的立即字段,它是一个要存储的位源。
字段814包含一个三位的条件码。如果这条件是真的(True),则例如下述指令可以取消。上表1列出了其典型的条件。
字段815包含一个三位码,表示正在执行什么类型的存储指令。在这种情况下,字段815表示此指令将寄存器内的所有位清至零,并在其中存入一些位,这些位是来自该指令本身的。例如,这可以使字段115包含(110)2的位来表示。
字段816包含用作位的位置号的五位,它表示寄存器830内字段831的位的位置。字段831是寄存器830内的存储单元,它存储来自立即字段的位。这位置号表示寄存器830内字段831最右边位的存储单元。例如,当字段816给出的最右边位号是17时,则字段831的最右边位是在寄存器830的第17位的位置,其中,寄存器830最左边位的位置是零位的位置,寄存器830最右边位的位置是第31位的位置。
字段817包含5位,表示从字段813存到寄存器830的位数。例如,如果字段817的数位包含二进制数11011(一个补码字长),则来自字段813的五位会被传送到寄存器830的字段831。
权利要求
1.在计算机体系结构中,一种方法其特征在于包括下列步骤在一指令中指定(specifying),一个存入许多位到第一寄存器的操作,第一寄存器的一个地址,所述这些位的长度;在与指令分开的第二个寄存器中指定第一寄存器的一个存储单元,其中这个第一寄存器要存入许多位。
2.根据权利要求
1的一种方法,另外包括下列步骤在所述指令内指定所述的许多位。
3.根据权利要求
1的一种方法,另外包括在与指令分开的第二寄存器中,指定所述的许多位的一个初始存储单元的步骤。
4.根据权利要求
1的一种方法,另外包括下述步骤将第一寄存器内的所有位清至零;将许多位存入第一寄存器中。
5.在计算机体系结构中,一个方法包括下列步骤在一指令内指定,将许多位存入第一寄存器的一种操作,第一寄存器的一地址,上述许多位的长度;将第一寄存器的所有位清至零;将许多位存入第一寄存器。
6.根据权利要求
5的一种方法,另外还包括这一步骤在指令中指定上述许多位。
7.根据权利要求
5的一种方法,另外包括在与指令分开的第二寄存器中,指定该许多位的一个初始存储单元的步骤。
8.一计算机的指令其特征在于包括指定一个存储操作的一个字段;指定第一寄存器来接收第一组位的一个字段;指定第一组位的位数的一个字段。第二寄存器包含有在第一寄存器中指定第一位置的一个字段,第一位置是要接收来自第一组位的一个最低有效位的。
9.根据权利要求
8的一种指令另外包括在第一寄存器内指定第一位置的一个字段,第一位置是接收来自第一组位的最低有效位的。
10.根据权利要求
8的一种指令,其中的指令装置另外包括含有第一组位的一个字段。
11.根据权利要求
8的一种指令,另外包括一个第二寄存器,它开始时包含第一组位。
12.一种计算装置其特征在于包括用于控制计算装置操作的指令装置,该指令装置包括指定一个存储操作的装置,指定第一寄存器来接收第一组位的装置,指定第一组位的位数的装置;和响应于这种指令装置并将第一组位存到第一寄存器的ALU(算术逻辑单元)装置;一第二寄存器;它包含有在第一寄存器内一个存储单元的地址,第一寄存器要存储字段位,其中ALU装置将第一个多位存入这存储单元内。
13.根据权利要求
12的一种计算装置,其指令装置中另外包括含有第一组位的一个存储单元,其中,在单指令周期内,ALU装置接收来自初始存储单元的第一组位。
14.根据权利要求
12的一种计算装置,另外包括一第二寄存器,它开始时包含有第一组位。
15.根据权利要求
12的一种计算装置,其中ALU装置包括将第一寄存器的所有位清至零的清零装置,和将第一组位存入第一寄存器的存储装置。
16.一种计算装置其特征在于包括用于控制计算装置操作的指令装置;指令装置包括指定存储操作的装置;指定第一寄存器接收第一组位的装置;指定第一组位的位数的装置;将第一寄存器内的所有位清至零的清零装置;将第一组位存入第一寄存器的存储装置。
17.根据权利要求
16的一种计算装置,其中的指令装置,另外包括指定第一寄存器内的一个存储单元的装置,其中第一寄存器是要存储位的字段,此外其中,在单指令周期内,将第一组位存到这存储单元去的存储装置。
专利摘要
依照本发明的各种实施方案,提出了目的地寄存器存位的一种方法和装置。指令寄存器内的位指定算术逻辑运算部件(ALU)的一个位源,若干位和目的地寄存器内的一个存储单元。在一个单指令循环时间内,ALU将来自位源的指令传送到目的地寄存器内的存储单元。此位源可以是另外一寄存器或指令寄存器内的一个立即字段。
文档编号G06F7/00GK86103906SQ86103906
公开日1986年12月24日 申请日期1986年6月2日
发明者艾伦·J·鲍姆, 威廉·R·布里格, 迈克尔·J·马洪 申请人:惠普公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1