在处理器中写出资料的方法与装置的制作方法

文档序号:6421284阅读:135来源:国知局
专利名称:在处理器中写出资料的方法与装置的制作方法
技术领域
本发明是关于资料处理的技术领域,尤指一种在处理器中写出资料至储存器中未对齐位置的方法与装置。
背景技术
在处理器进行资料处理时,资料的对齐与否关系到许多关键运算的效能,例如字串、阵列等运算的效能。如图1所示,一笔需处理的资料(ABCDEFGHIJKL)当欲由暂存器R16、R17及R18中写至一储存装置100的101h至10Ch处,往往跨越该储存装置100的资料储存边界。由于该储存装置100并无处理资料能力,故当处理器欲将该笔资料储存至该储存装置100非对齐位置处,处理器需先执行许多额外的运算。
针对处理资料未对齐的问题,一种现有方法是将该储存装置100非对齐位置处的资料载入处理器后,再利用各种处理器指令操作来得到所需要的资料。如图2所示,要将一笔资料ABCD写入非对齐位置处,先将位于100h处的资料(abcd)载入暂存器R1中,将暂存器R1右移24位元以将需要保存的资料(a)保存,将暂存器R1左移24位元以将需要保存的资料(a)放置适当位置。再将暂存器R16的资料(ABCD)右移8位元再存入暂存器R2(0ABC)中,将暂存器R1与暂存器R2进行或(OR)运算并将结果存入暂存器R1中(aABC)。其次,再先将位于104h处的资料(efgh)载入暂存器R1中,将暂存器R1左移8位元以将需要保存的资料(fgh)保存,将暂存器R1右移8位元以将需要保存的资料(fgh)放置适当位置。再将暂存器R16的资料(ABCD)左移24位元再存入暂存器R2(D000)中,将暂存器R1与暂存器R2进行或运算并将结果存入暂存器R1中(Dfgh),最后将暂存器R1的内容值写至储存器104h处。
由上述说明可知,若所需写出至储存器的未对齐资料长度为n个字组(一个字组为32位元),现有方法则需12n个指令才能描述写出动作,同时至少需12n个指令周期才能完成写出动作。此使得程序码冗长,占据储存空间,同时也增加处理器的负担使得处理器效率不高。
针对现有方法使用处理器指令处理未对齐资料所引起程序码冗长及效率的问题,于美国第USP4,814,976号专利案中,是在载入未对齐资料即同时进行对齐的动作,并将跨越边界的一笔资料,分成两次写出。如图3所示,先将暂存器R16中的内容(ABC)写出至储存器101h至103h处,此时储存器100h处的资料并没有被更动。再将暂存器R16中的内容(D)写出至储存器104h处,此时储存器105h至107h处的资料并没有被更动。同理,依序将暂存器R17及暂存器R18的内容分别写至储存器105h至10Ch处。
由上述说明可知,若所需写出的未对齐资料长度为n个字组,则需2n个指令才能描述写出动作,同时至少需2n个指令周期才能完成写出动作。而且因为对同一储存器与暂存器位置作重复读写,使处理机管线迟滞(Stall)可能性提高。且对同一储存器位置作重复写出,会浪费总线频宽,尤其在有些不具有快取储存器的系统,所造成的延误更是明显。因此,现有处理器的设计仍有诸多缺失而有予以改进的必要。
本发明人本着积极发明的精神,提出一种可以解决上述问题的「在处理器中写出资料的方法与装置」,几经研究实验终至完成此项发明。

发明内容
本发明目的是提供一种以处理器写出未对齐资料的方法与装置,以避免现有技术因使用较多指令才能描述写出动作的问题,同时减少指令周期以完成写出动作,而提高执行效率。
依据本发明的一特色,是提出一种在处理器中写出资料的方法,其中,资料是写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该方法主要包含一起始旋转步骤,是检索该资料并依据写出的未对齐位址将其旋转至第一位置,以产生一第一旋转资料;一第一遮罩写出步骤,是依据写出的未对齐位址对该第一旋转资料遮罩并写出至该储存装置;一中继旋转步骤,是检索该资料的后续资料,依据写出的未对齐位址将其旋转至第一位置,以产生一第二旋转资料;一第一写出步骤,是组合该第一旋转资料未写出部分及该第二旋转资料的一部分,并写出至该储存装置;一结束旋转步骤,是将该资料的后续资料旋转至第一位置,以产生一第三旋转资料;一第二写出步骤,是组合该第二旋转资料未写出部分及该第三旋转资料的一部分,并将之写出至该储存装置;以及,一第二遮罩写出步骤,对该第三旋转资料遮罩并写出至该储存装置。
依据本发明的另一特色,是提出一种于处理器中写出的方法,其中,资料是写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该方法主要包含一起始旋转步骤,是检索该资料并依据写出的未对齐位址将其旋转至第一位置,以产生一第一旋转资料;一第一遮罩写出步骤,是依据写出的未对齐位址对该第一旋转资料遮罩并写出至该储存装置;以及,一第二遮罩写出步骤,是对该第一旋转资料中未写出部分,执行遮罩并写出至该储存装置。
依据本发明的再一特色,是提出一种于处理器中写出资料的装置,其中,该资料是储存在该处理器的内部暂存器,其将被写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该装置主要包含一旋转装置、一写出组合暂存器及一选择遮罩装置。该旋转装置是耦合至该内部暂存器,依据该未对齐资料的写出位址,以将该内部暂存器的资料旋转至一第一位置;该写出组合暂存器是耦合至该旋转装置,以暂存该旋转装置的资料;以及,该选择遮罩装置是耦合至该旋转装置及写出组合暂存器,依据该写出位址,以选择遮罩该旋转装置及写出组合暂存器的资料,并将之写出至该储存装置。
本发明设计新颖,能提供产业上利用,且确实能增进功效。


图1是一组暂存器资料写至储存器中未对齐位置的示意图;图2是现有技术将一组暂存器资料写至储存器中未对齐位置的程序码;
图3是另一现有技术将一组暂存器资料写至储存器中未对齐位置的程序码;图4是本发明的处理器中写出资料装置的方块图;图5是本发明技术的指令格式;图6是本发明技术的SCB指令的示意图;图7是本发明技术的SCW指令的示意图;图8是本发明技术的SCE指令的示意图;图9是本发明技术的SCB、SCW及SCE指令的执行情形;图10是本发明技术的一应用范例;图11是本发明技术的另一应用范例。
具体实施例方式
图4显示本发明的于处理器中写出资料的装置的方块图,其包括有一旋转装置200、一写出组合暂存器300(Store Combine Register、STCR)及一选择遮罩装置400。其中,资料是储存在该处理器的内部暂存器100中,其将被写出至一储存装置500中的未对齐位置处,该储存装置500具有由字组边界所分隔的复数个m位元的字组,于本实施例中,m较佳为32位元,亦即该储存装置500是由复数个32位元的字组所组成。
该旋转装置200是耦合至该内部暂存器100,依据该资料的写出未对齐位址,以将该内部暂存器100的资料旋转至一第一位置。该写出组合暂存器300是耦合至该旋转装置200,以暂存该旋转装置200的资料。该选择遮罩装置400是耦合至该旋转装置200及写出组合暂存器300,依据该资料的写出未对齐位址,以选择遮罩该旋转装置200及写出组合暂存器300的资料,并将之写出至该储存装置500。
本发明的处理器中写出资料的装置中定义三个指令以对该旋转装置200、写出组合暂存器300及选择遮罩装置400产生相关的控制信号。该三个指令分别为储存组合起始指令(Store Combine Begin、SCB)、储存组合字组指令(Store Combine Word、SCW)及储存组合结束指令(StoreCombine End、SCE)。其格式如图5所示。
SCB rD,[Addr]指令如图6所示,是将暂存器rD内容值依据写出的位址Addr(s=Addr[1:0])分别旋转0、1、2及3个位元组(byte),再写至该写出组合暂存器300(STCR),并依据写出的位址Addr(s=Addr[1:0])分别遮罩0、1、2及3个位元组后,再写至该储存器装置500。例如,SCB R16,[101h]指令是将暂存器R16内容值依据写出的位址101h(s=1)旋转1个位元组,再写至该写出组合暂存器300(STCR),并依据写出的位址101h(s=1)遮罩1个位元组后,再写至该储存器装置500位址101h处,设暂存器R16内容值为ABCD且执行完SCB R16,[101h]指令后,该写出组合暂存器300(STCR)内容值为DABC,而储存器装置位址101h至013h处内容值为ABC,且储存器装置位址100h处内容值并未改变。
SCW rD,[Addr]指令如图7所示,是将暂存器rD内容值依据写出的位址Addr(s=Addr[1:0])分别旋转0、1、2及3个位元组,并依据写出的位址Addr(s=Addr[1:0])分别遮罩0、1、2及3个位元组,再与储存在写出组合暂存器300(STCR)的位元组组合后,写至该储存器装置500,最后,将旋转过的暂存器rD内容值写至该写出组合暂存器300(STCR)中。例如,SCW R16,[101h]指令是将暂存器R16内容值(ABCD)依据写出的位址101h(s=1)旋转1个位元组(DABC),并依据写出的位址101h(s=1)遮罩1个位元组(D),再与储存在写出组合暂存器300(STCR)的位元组(abcd)组合后(aABC),再写至该储存器装置500位址101h处(aABC),最后,将旋转过的暂存器rD内容值(DABC)写至该写出组合暂存器300(STCR)中,故执行完SCB R16,[101h]指令后,该写出组合暂存器300(STCR)内容值为DABC,而储存器装置位址101h至013h处内容值为ABC,且储存器装置位址100h处内容值为a。
SCE[Addr]指令如图8所示,是将写出组合暂存器300(STCR)的内容值依据写出的位址Addr(s=Addr[1:0])分别遮罩0、1、2及3个位元组,再写至该储存器装置500。例如,SCW[101h]指令是将写出组合暂存器300(STCR)的内容值(abcd)依据写出的位址101h(s=1)遮罩3个位元组(bcd),再写至该储存器装置500位址100h处(a),故执行完SCE[101h]指令后,储存器装置位址101h至103h处内容值并未改变,且储存器装置位址100h处内容值为a。
图9则为该SCB rD,[Addr]、SCW rD,[Addr]及SCE[Addr]指令在二种资料排列方式(little endian、big endian)下的各种执行情形,其中,在该写出组合暂存器300(STCR)中的资料为abcd,在储存器中100h~103h处的资料为XYZW,在暂存器rD中的资料为ABCD,s=0代表所存取储存器位址为4N,s=1代表所存取储存器位址为4N+1,s=2代表所存取储存器位址为4N+2,s=3代表所存取储存器位址为4N+3。N为正整数。
图10是显示本发明的运用的示意图,当欲将一组在暂存器R16、R17及R18中的资料(ABCDEFGHIJKL)写至储存器500的101h~10Ch位置时,其是先执行一SCB R16,[101h]指令,以将该暂存器R16内容值(ABCD)依据写出的位址101h(s=1)旋转1个位元组(DABC)(起始旋转步骤),再写至该写出组合暂存器300(STCR),并依据写出的位址101h(s=1)遮罩1个位元组后,再写至该储存器装置500位址101h~103h处(第一遮罩写出步骤),故执行完SCB R16,[101h]指令后,该写出组合暂存器300(STCR)内容值为DABC,而储存器装置位址101h至103h处内容值为ABC,且储存器装置位址100h处内容值并未改变(a)。
其后,再执行一SCW R17,[105h]指令,以将暂存器R17内容值(EFGH)依据写出的位址105h(s=1)旋转1个位元组(HEFG)(中继旋转步骤),并依据写出的位址105h(s=1)遮罩1个位元组(H),再与储存在写出组合暂存器300(STCR)的位元组(DABC)组合后(DEFG),再写至该储存器装置500包含位址105h的4个Byte 104h~108h处(DEFG)(第一写出步骤),最后,将旋转过的暂存器R17内容值(HEFG)写至该写出组合暂存器300(STCR)中,故执行完SCW R17,[105h]指令后,该写出组合暂存器300(STCR)内容值为HEFG,而储存器装置位址104h至107h处内容值为DEFG。
之后,再执行一SCW R18,[109h]指令,以将暂存器R18内容值(IJKL)依据写出的位址109h(s=1)旋转1个位元组(LIJK)(中继旋转步骤),并依据写出的位址109h(s=1)遮罩1个位元组(L),再与储存在写出组合暂存器300(STCR)的位元组(HEFG)组合后(HIJK),再写至该储存器装置500包含位址109h处的4个Byte 108h~10Bh(HIJK)(第二写出步骤),最后,将旋转过的暂存器R18内容值(IJKL)写至该写出组合暂存器300(STCR)中,故执行完SCW R18,[109h]指令后,该写出组合暂存器300(STCR)内容值为LIJK,而储存器装置位址108h至10Ch处内容值为HIJK。
最后,执行该SCE[10Dh]指令,其是将写出组合暂存器300(STCR)的内容值(LIJK)依据写出的位址10Dh(s=1)遮罩3个位元组(IJK),再写至该储存器装置500位址10Ch处(L)(第二遮罩写出步骤),故执行完SCE[10Dh]指令后,该写出组合暂存器300(STCR)内容值为LIJK,而储存器装置位址10Dh至10Fh处内容值并未改变(n,o,p),且储存器装置位址10Ch处内容值为L。
图11是显示本发明的另一运用的示意图,当欲将一组在暂存器R16中的资料(ABCD)写至储存器500的101h~104h位置时时,其是先执行一SCBR16,[101h]指令,以将该暂存器R16内容值(ABCD)依据写出的位址101h(s=1)旋转1个位元组(DABC),再写至该写出组合暂存器300(STCR),并依据写出的位址101h(s=1)遮罩1个位元组后,再写至该储存器装置500位址101h~103h处,故执行完SCB R16,[101h]指令后,该写出组合暂存器300(STCR)内容值为DABC,而储存器装置位址101h至013h处内容值为ABC,且储存器装置位址100h处内容值并未改变(a)。
其后,执行一SCE[105h]指令,其是将写出组合暂存器300(STCR)的内容值(DABC)依据写出的位址105h(s=1)遮罩3个位元组(ABC),再写至该储存器装置500位址104h处(D),故执行完SCE[105h]指令后,该写出组合暂存器300(STCR)内容值为DABC,而储存器装置位址105h至107h处内容值并未改变(f,g,h),且储存器装置位址104h处内容值为D。
由上述的说明可知,若所需写出至储存器500的未对齐位置的资料长度为n个字组,本发明的技术只需(n+1)个指令就能描述写出动作,不仅可减短程序码,同时只需(n+1)个指令周期就能完成写出动作,亦大幅提高执行效率。而且不会对同一储存器与暂存器位置作重复写出,使处理机管线迟滞(Stall)可能性降低,由于对同一储存器位置只作一次必要的写出,节省总线频宽,使总线频宽使用能达最佳化。
综上所陈,本发明无论就目的、手段及功效,均显示其迥异于现有技术的特征,实为一极具实用价值的发明。但应注意的是,上述诸多实施例仅是为了便于说明而举例而已。
权利要求
1.一种在处理器中写出资料的方法,其特征在于,其中,资料是写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该方法主要包含一起始旋转步骤,是检索该资料并依据写出的未对齐位址将其旋转至第一位置,以产生一第一旋转资料;一第一遮罩写出步骤,是依据写出的未对齐位址对该第一旋转资料遮罩并写出至该储存装置;一中继旋转步骤,是检索该资料的后续资料,依据写出的未对齐位址将其旋转至第一位置,以产生一第二旋转资料;一第一写出步骤,是组合该第一旋转资料未写出部分及该第二旋转资料的一部分,并写出至该储存装置;一结束旋转步骤,是将该资料的后续资料旋转至第一位置,以产生一第三旋转资料;一第二写出步骤,是组合该第二旋转资料未写出部分及该第三旋转资料的一部分,并将之写出至该储存装置;以及一第二遮罩写出步骤,对该第三旋转资料遮罩并写出至该储存装置。
2.如权利要求1所述的方法,其特征在于,其中,m为32。
3.如权利要求2所述的方法,其特征在于,所述该旋转至第一位置是向右旋转8位元。
4.如权利要求2所述的方法,其特征在于,所述该旋转至第一位置是向右旋转16位元。
5.如权利要求2所述的方法,其特征在于,所述该旋转至第一位置是向右旋转24位元。
6.一种于处理器中写出的方法,其特征在于,其中资料是写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该方法主要包含一起始旋转步骤,是检索该资料并依据写出的未对齐位址将其旋转至第一位置,以产生一第一旋转资料;一第一遮罩写出步骤,是依据写出的未对齐位址对该第一旋转资料遮罩并写出至该储存装置;以及一第二遮罩写出步骤,是对该第一旋转资料中未写出部分,执行遮罩并写出至该储存装置。
7.如权利要求6所述的方法,其特征在于,所述该第一部份旋转资料未写出部分是小于m位元。
8.如权利要求6所述的方法,其特征在于,其中,m为32。
9.如权利要求8所述的方法,其特征在于,所述该旋转至第一位置是向右旋转8位元。
10.如权利要求8所述的方法,其特征在于,所述该旋转至第一位置是向右旋转16位元。
11.如权利要求8所述的方法,其特征在于,所述该旋转至第一位置是向右旋转24位元。
12.一种于处理器中写出资料的装置,其特征在于,所述该资料是储存在该处理器的内部暂存器,其将被写出至一储存装置中未对齐位址,该储存装置具有由字组边界所分隔的复数个m位元的字组,该装置主要包含一旋转装置,是耦合至该内部暂存器,依据该资料的写出未对齐位址,以将该内部暂存器的资料旋转至一第一位置;一写出组合暂存器,是耦合至该旋转装置,以暂存该旋转装置的资料;以及一选择遮罩装置,是耦合至该旋转装置及写出组合暂存器,依据该写出未对齐位址,以选择遮罩该旋转装置及写出组合暂存器的资料,并将之写出至该储存装置。
13.如权利要求12所述的装置,其特征在于,所述该处理器执行一第一指令,以使该旋转装置依据该资料的写出位址,俾将该内部暂存器的资料旋转至一第一位置,以产生一第一旋转资料,并暂存至该写出组合暂存器,该选择遮罩装置依据该资料的写出位址,以选择遮罩该旋转装置及写出组合暂存器的资料,并将之写出至该储存装置
14.如权利要求12所述的装置,其特征在于,所述该处理器执行一第二指令,以使该旋转装置检索该资料的后续资料,并将其旋转至第一位置,以产生一第二旋转资料,并暂存至该写出组合暂存器,该选择遮罩装置依据该资料的写出位址,组合该第一旋转资料未写出部分及该第二旋转资料的一部分,并写出至该储存装置。
15.如权利要求12所述的装置,其特征在于,所述该处理器执行一第三指令,以使该旋转装置检索该资料的后续资料,并将其旋转至第一位置,以产生一第三旋转资料,并暂存至该写出组合暂存器,该选择遮罩装置依据该资料的写出位址,组合该第二旋转资料未写出部分及该第三旋转资料的一部分,并将之写出至该储存装置。
16.如权利要求12所述的装置,其特征在于,所述该选择遮罩装置依据该资料的写出位址,对该第三旋转资料未写出部分,将之写出至该储存装置。
17.如权利要求12所述的装置,其特征在于,其中,m为32。
18.如权利要求17所述的装置,其特征在于,所述该旋转装置是向右旋转8位元。
19.如权利要求17所述的装置,其特征在于,所述该旋转装置是向右旋转16位元。
20.如权利要求17所述的装置,其特征在于,所述该旋转装置是向右旋转24位元。
全文摘要
本发是提出一种于处理器中写出资料的装置,其中,该资料是储存在该处理器的内部暂存器,其被写出至一储存装置中未对齐位址,一旋转装置是耦合至该内部暂存器,依据该未对齐资料的写出位址,以将该内部暂存器的资料旋转至一第一位置;一写出组合暂存器是耦合至该旋转装置,以暂存该旋转装置的资料;以及,一选择遮罩装置是耦合至该旋转装置及写出组合暂存器,依据该写出位址,以选择遮罩该旋转装置及写出组合暂存器的资料,并将之写出至该储存装置。
文档编号G06F12/02GK1632743SQ20031012243
公开日2005年6月29日 申请日期2003年12月23日 优先权日2003年12月23日
发明者梁伯嵩 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1