处理器中读取未对齐资料的方法与装置的制作方法

文档序号:6421281阅读:66来源:国知局
专利名称:处理器中读取未对齐资料的方法与装置的制作方法
技术领域
本发明是关于资料处理的技术领域,尤指一种处理器中读取未对齐资料的架构及其方法背景技术在处理器进行资料处理时,资料的对齐与否关是到许多关键运算的效能,例如字串、阵列等运算的效能。如图1所示,一笔需处理的资料(ABCDEFGHIJKL)往往跨越资料储存边界,当一处理器对该笔资料进行字串或阵列运算时,需先执行许多额外的运算,以便能将该笔资料还原成对齐的格式后,该处理器才能对笔资料进行相关运用。
针对处理资料未对齐的问题,一种已知方法是将资料载入处理器后,再利用各种处理器指令操作来得到所需要的资料。如图2所示,先将位于100h处的资料(ZABC)载入暂存器R16中,将暂存器R16左移8比特以将不需要的资料(Z)移除,再将位于104h处的资料(DEFG)载入暂存器R17中,并将暂存器R17右移24比特以将不需要的资料(EFG)移除,最后将暂存器R16及暂存器R17进行或(OR)运算并将其结果存至暂存器R16中,此时暂存器R16中的内容即为所需处理的资料(ABCD)。依上述相同步骤,将资料EFGH及IJKL依序载入暂存器R17及暂存器R18中。
由上述说明可知,若所需载入的未对齐资料长度为n个字组(一个字组为32比特),已知方法则需则需5n个指令才能描述读取动作,同时至少需5n个指令周期才能完成读取动作。此使得程序码冗长,占据储存空间,同时也增加处理器的负担使得处理器效率不彰。
针对已知方法使用处理器指令处理未对齐资料所引起程序码冗长及效率的问题,于美国第USP 4,814,976号专利案公告中,是在载入未对齐资料即同时进行对齐的动作,并将跨越边界的一笔资料,分成两次读取。如图3所示,先将位于101h至103h处的资料(ABC)载入暂存器R16的比特组0、1、2中,此时暂存器R16的比特组3中的资料为X(don’t care),再将位于104h处的资料(D)载入R16的比特组3中,此时暂存器R16中的内容即为所需处理的资料(ABCD)。依此相同步骤,依序将资料EFGH及IJKL载入暂存器R17及暂存器R18中。
由上述说明可知,若所需载入的未对齐资料长度为n个字组,则需2n个指令才能描述读取动作,同时至少需2n个指令周期才能完成读取动作。而且因为对同一存储器与暂存器位置作重复读写,使处理机管线迟滞(Stall)可能性提高。对同一存储器位置作重复读取,会浪费汇流排频宽,尤其在有些不具有快取存储器的系统,所造成的延误更是明显。发明人爰因于此,本于积极发明的精神,亟思一种可以解决上述问题的「以处理机中读取未对齐资料的方法与架构」,几经研究实验终至完成此项发明。

发明内容
本发明的目的是在提供一种以处理机中读取未对齐资料的方法与架构,以避免已知技术因使用较多指令才能描述读取动作的问题,同时减少指令周期以完成读取动作,而提高执行效率。
依据本发明的一特色,本发明一种处理器中读取未对齐资料的方法,其特征在于,其中,未对齐资料是储存在一存储装置,该存储装置具有由字组边界所分隔的复数个m比特的字组,该未对齐资料被字组边界分隔为第一部份、第二部份及第三部份,该方法主要包含一起始撷取步骤,是执行一第一指令,以由包含该第一部份的该存储装置处,撷取一第一字组;一中继撷取步骤,是执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;一第一移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置;一结束撷取步骤,是执行一第三指令,以由包含该第三部份的该存储装置处,撷取一第三字组;以及一第二移位步骤,是将该第二字组与该第三字组串接,并移位至第一位置。
其还包含
一连续中继撷取步骤,是将该第二字组取代该第一字组,并执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;一第三移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置。
其中移位步骤为平移方式。
其中移位步骤为旋转方式。
其中,该第一部份及第三部份是小于m比特。
其中,该第一部份是等于m比特。
其中,m为32。
其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位8比特。
其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位16比特。
其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位24比特。
依据本发明的另一特色,本发明一种处理器中读取未对齐资料的方法,其中,未对齐资料是储存在一存储装置,该存储装置具有由字组边界所分隔的复数个m比特的字组,该未对齐资料被字组边界分隔为第一部份及第二部份,其特征在于,该方法主要包含一起始撷取步骤,是执行一第一指令,以由包含该第一部份的该存储装置处,撷取一第一字组;
一结束撷取步骤,是执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;以及一第一移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置。
其中移位步骤为平移方式。
其中移位步骤为旋转方式。
其中,该第一部份及第二部份是小于m比特。
其中,该第一部份是等于m比特。
其中,m为32。
其中,该第一移位步骤及该第二移位步骤是向左移位8比特。
其中,该第一移位步骤及该第二移位步骤是向左移位16比特。
其中,该第一移位步骤及该第二移位步骤是向左移位24比特。
依据本发明的再一特色,一种处理器中读取未对齐资料的装置,其特征在于,其中,未对齐资料是储存在一存储装置,其被字组边界分隔为第一部份、第二部份及第三部份,该存储装置具有由字组边界所分隔的复数个m比特的字组,该装置主要包含一读取组合暂存器,其是耦合至该存储装置,以暂存由该存储装置所读取的资料;一移位装置,其是耦合至该读取组合暂存器及该存储装置,以依据该未对齐资料的储存地址,而对该读取组合暂存器及该存储装置进行移位;以及一控制装置,是由包含该第一部份的该存储装置处,撷取一第一字组并暂存至该读取组合暂存器;由包含该第二部份的该存储装置处,撷取一第二字组,而以该移位装置将该第一字组与该第二字组串接,并移位至第一位置;再由包含该第三部份的该存储装置处,撷取一第三字组,而以该移位装置将该第二字组与该第三字组串接,并移位至第一位置。
其中移位装置的移位方式为平移移位。
其中移位装置的移位方式为旋转移位。
其中,该第一部份及第三部份是小于m比特。
其中,该第一部份是等于m比特。
其中,m为32。
其中,该移位装置是向左移位8比特。
其中,该移位装置是向左移位16比特。
其中,该移位装置是向左移位24比特。
由于本发明设计新颖,能提供产业上利用,且确有增进功效,故依法申请发明专利。


为进一步说明本发明的具体技术内容,以下结合实施例及附图详细说明如后,其中图1是一组未对齐资料在存储器中排列的示意图。
图2是已知技术载入一组未对齐资料的程序码。
图3是另一已知技术载入一组未对齐资料的程序码及暂存器的示意图。
图4是本发明的处理机中读取未对齐资料的方块图。
图5是本发明技术的指令格式。
图6是本发明技术的LCB指令的示意图。
图7是本发明技术的LCW指令的示意图。
图8是本发明技术的LCE指令的示意图。
图9是本发明技术的LCB、LCW及LCE指令的执行情形。
图10是本发明技术的一应用范例。
图11是本发明技术的另一应用范例。
具体实施例方式
图4显示本发明的处理器中读取未对齐资料的装置的方块图,其主要包含一存储装置100、一读取组合暂存器200(Load CombineRegister、LDCR)、一移位装置300及一控制装置400。其中,该存储装置100具有由字组边界所分隔的复数个m比特的字组,于本实施例中,m较佳为32比特,亦即该存储装置100是由复数个32比特的字组所组成。该未对齐资料(ABCDEFGHIJKL)是储存在该存储装置100,并被字组边界分隔为第一部份110、第二部份120及第三部份130。
该读取组合暂存器200是耦合至该存储装置100,以暂存由该存储装置100所读取的资料。该移位装置300其是耦合至该读取组合暂存器200及该存储装置100,以依据该未对齐资料的储存地址,而对该读取组合暂存器200及该存储装置100进行移位。该移位装置的移位方式,可以为平移(Shift)或旋转(Rotate)方式。
该控制装置400是由包含该第一部份的该存储装置110处,撷取一第一字组并暂存至该读取组合暂存器200;且由包含该第二部份的该存储装置120处,撷取一第二字组,而以该移位装置300将该第一字组与该第二字组串接,并移位至第一位置;再由包含该第三部份的该存储装置130处,撷取一第三字组,而以该移位装置300将该第二字组与该第三字组串接,并移位至第一位置。
本发明的处理器中读取未对齐资料的装置中定义三个指令以让该控制装置400产生相关的控制讯号。该三个指令分别为载入组合起始指令(Load Combine Begin、LCB)、载入组合字组指令(Load Combine Word、LCW)及载入组合结束指令(Load Combine End、LCE)。其格式如图5所示。
LCB[Addr]指令是将地址为Addr处的存储器内容载入该读取组合暂存器200(LDCR)中,如图6所示,LCB[101]是将存储器101处的内容(ABC)载入该LDCR 200中。
LCW rD,[Addr]指令如图7所示是将地址为Addr处的存储器内容与该读取组合暂存器200(LDCR)中内容结合,并依据该Addr向左移位后,写入该暂存器rD中,并将地址为Addr处的存储器内容载入该读取组合暂存器200(LDCR)中,其中,当该Addr为4N时,则不移位,当该Addr为4N+1时,则向左移位8比特,当该Addr为4N+2时,则向左移位16比特,当该Addr为4N+3时,则向左移位24比特。
LCE rD,[Addr]指令如图8所示。其中,当该Addr为4N时,将组合暂存器200(LDCR)中内容直接写入暂存器rD中,但不将地址为Addr处的存储器内容载入该读取组合暂存器200(LDCR)中。当该Addr不为4N时,是将地址为Addr处的存储器内容与该读取组合暂存器200(LDCR)中内容结合,并依据该Addr向左移位后,写入该暂存器rD中,并将地址为Addr处的存储器内容载入该读取组合暂存器200(LDCR)中,其中,当该Addr为4N+1时,则向左移位8比特,当该Addr为4N+2时,则向左移位16比特,当该Addr为4N+3时,则向左移位24比特。
图9则为该LCB[Addr]、LCW rD,[Addr]及LCE rD,[Addr]指令在二种资料排列方式(little endian、big endian)下的各种执行情形,其中,在该读取组合暂存器200(LDCR)中的资料为abcd,在存储器中的资料为ABCD,s=0代表所存取存储器地址为4N,s=1代表所存取存储器地址为4N+1,s=2代表所存取存储器地址为4N+2,s=3代表所存取存储器地址为4N+3。在图9中,以4N=100举例。
图10是显示本发明的运用的示意图,当欲将一组未对齐资料(ABCDEFGHIJKL)载入至暂存器R16、R17及R18中时,其是先执行一LCB[101h]指令,以将该存储装置100中的位于地址为101h处的资料(ZABC)先载入该读取组合暂存器200(LDCR)中,执行完该LCB[101h]指令后,该读取组合暂存器200的内容为ZABC([LDCR]=ZABC)。再执行一LCW R16,[105h]指令,以将包含地址为105h处的存储器内容(DEFG)与该读取组合暂存器200(LDCR)中内容(ZABC)结合为ZABCDEFG,并依据该地址(105h)向左移位8比特后的高32比特(ABCD),写入该暂存器R16中,并将包含地址为105h处的存储器内容载入该读取组合暂存器200(LDCR)中,故当执行完该LCW R16,[105h]指令后,暂存器R16的内容为ABCD,该读取组合暂存器200的内容为DEFG([LDCR]=DEFG)。
其后,再执行一LCW R17,[109h]指令,以将包含地址为109h处的存储器内容(HIJK)与该读取组合暂存器200(LDCR)中内容(DEFG)结合为DEFGHIJK,并依据该地址(109h)向左移位8比特后的高32比特(EFGH),写入该暂存器R17中,并将包含地址为109h处的存储器内容载入该读取组合暂存器200(LDCR)中,故当执行完该LCW R17,[109h]指令后,暂存器R17的内容为EFGH,该读取组合暂存器200的内容为HIJK([LDCR]=HIJK)。
最后,执行该LCE R18,[10Dh]指令,以将地址包含为10Dh处的存储器内容(LZZZ)与该读取组合暂存器200(LDCR)中内容(HIJK)结合为HIJKLZZZ,并依据该地址(109h)向左移位8比特后的高32比特(IJKL),写入该暂存器R18中,且将包含地址为10Dh处的存储器内容载入该读取组合暂存器200(LDCR)中,故当执行完该LCE R18,[10Dh]指令后,暂存器R18的内容为IJKL,该读取组合暂存器200的内容为LZZZ([LDCR]=LZZZ)。
图11是显示本发明的另一运用的示意图,当欲将一组未对齐资料(ABCD)载入至暂存器R16中时,其是先执行一LCB[101h]指令,以将该存储装置100中的位于地址为101h处的资料(ZABC)先载入该读取组合暂存器200(LDCR)中,执行完该LCB[101h]指令后,该读取组合暂存器200的内容为ZABC([LDCR]=ZABC)。
再执行一LCE R16,[105h]指令,以将地址包含为105h处的存储器内容(D)与该读取组合暂存器200(LDCR)中内容(ZABC)结合为ZABCDZZZ,并依据该地址(105h)向左移位8比特后的高32比特(ABCD),写入该暂存器R16中,并将包含地址为105h处的存储器内容载入该读取组合暂存器200(LDCR)中,故当执行完该LCE R16,[105h]指令后,暂存器R16的内容为ABCD,该读取组合暂存器200的内容为DZZZ([LDCR]=DZZZ)。
由上述的说明可知,若所需读取的未对齐资料长度为n个字组,本发明的技术只需(n+1)个指令就能描述读取动作,不仅可减短程序码,同时只需(n+1)个指令周期就能完成读取动作,亦大幅提高执行效率。而且不会对同一存储器与暂存器位置作重复读写,使处理机管线迟滞(Stall)可能性降低,由于对同一存储器位置只作一次必要的读取,节省总线频宽,使总线频宽使用能达最佳化。
综上所陈,本发明无论就目的、手段及功效,均不同于已知技术的特征,实为一极具实用价值的发明。惟应注意的是,上述诸多实施例仅是为了便于说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。
权利要求
1.一种处理器中读取未对齐资料的方法,其特征在于,其中,未对齐资料是储存在一存储装置,该存储装置具有由字组边界所分隔的复数个m比特的字组,该未对齐资料被字组边界分隔为第一部份、第二部份及第三部份,该方法主要包含一起始撷取步骤,是执行一第一指令,以由包含该第一部份的该存储装置处,撷取一第一字组;一中继撷取步骤,是执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;一第一移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置;一结束撷取步骤,是执行一第三指令,以由包含该第三部份的该存储装置处,撷取一第三字组;以及一第二移位步骤,是将该第二字组与该第三字组串接,并移位至第一位置。
2.如权利要求1所述的处理器中读取未对齐资料的方法,其特征在于,其还包含一连续中继撷取步骤,是将该第二字组取代该第一字组,并执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;一第三移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置。
3.如权利要求1所述的处理器中读取未对齐资料的方法,其特征在于,其中移位步骤为平移方式。
4.如权利要求1所述的处理器中读取未对齐资料的方法,其特征在于,其中移位步骤为旋转方式。
5.如权利要求1所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一部份及第三部份是小于m比特。
6.如权利要求1所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一部份是等于m比特。
7.如权利要求2所述的处理器中读取未对齐资料的方法,其特征在于,其中,m为32。
8.如权利要求7所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位8比特。
9.如权利要求7所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位16比特。
10.如权利要求7所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤、该第二移位步骤及该第三移位步骤是向左移位24比特。
11.一种处理器中读取未对齐资料的方法,其中,未对齐资料是储存在一存储装置,该存储装置具有由字组边界所分隔的复数个m比特的字组,该未对齐资料被字组边界分隔为第一部份及第二部份,其特征在于,该方法主要包含一起始撷取步骤,是执行一第一指令,以由包含该第一部份的该存储装置处,撷取一第一字组;一结束撷取步骤,是执行一第二指令,以由包含该第二部份的该存储装置处,撷取一第二字组;以及一第一移位步骤,是将该第一字组与该第二字组串接,并移位至第一位置。
12.如权利要求11所述的处理器中读取未对齐资料的方法,其特征在于,其中移位步骤为平移方式。
13.如权利要求11所述的处理器中读取未对齐资料的方法,其特征在于,其中移位步骤为旋转方式。
14.如权利要求11所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一部份及第二部份是小于m比特。
15.如权利要求11所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一部份是等于m比特。
16.如权利要求11所述的处理器中读取未对齐资料的方法,其特征在于,其中,m为32。
17.如权利要求16所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤及该第二移位步骤是向左移位8比特。
18.如权利要求16所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤及该第二移位步骤是向左移位16比特。
19.如权利要求16所述的处理器中读取未对齐资料的方法,其特征在于,其中,该第一移位步骤及该第二移位步骤是向左移位24比特。
20.一种处理器中读取未对齐资料的装置,其特征在于,其中,未对齐资料是储存在一存储装置,其被字组边界分隔为第一部份、第二部份及第三部份,该存储装置具有由字组边界所分隔的复数个m比特的字组,该装置主要包含一读取组合暂存器,其是耦合至该存储装置,以暂存由该存储装置所读取的资料;一移位装置,其是耦合至该读取组合暂存器及该存储装置,以依据该未对齐资料的储存地址,而对该读取组合暂存器及该存储装置进行移位;以及一控制装置,是由包含该第一部份的该存储装置处,撷取一第一字组并暂存至该读取组合暂存器;由包含该第二部份的该存储装置处,撷取一第二字组,而以该移位装置将该第一字组与该第二字组串接,并移位至第一位置;再由包含该第三部份的该存储装置处,撷取一第三字组,而以该移位装置将该第二字组与该第三字组串接,并移位至第一位置。
21.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中移位装置的移位方式为平移移位。
22.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中移位装置的移位方式为旋转移位。
23.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,该第一部份及第三部份是小于m比特。
24.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,该第一部份是等于m比特。
25.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,m为32。
26.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,该移位装置是向左移位8比特。
27.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,该移位装置是向左移位16比特。
28.如权利要求20所述的处理器中读取未对齐资料的装置,其特征在于,其中,该移位装置是向左移位24比特。
全文摘要
本发是提出一种处理器中读取未对齐资料的装置及方法,未对齐资料是储存在一存储装置,一读取组合暂存器耦合至存储装置,以暂存所读取的资料;一移位装置耦合至读取组合暂存器及存储装置,以依据储存地址,而对读取组合暂存器及存储装置进行移位;该控制装置撷取一第一字组并暂存至该读取组合暂存器,并撷取一第二字组,该移位装置将该第一字组与该第二字组串接,并移位至第一位置,该控制装置撷取一第三字组,该移位装置将该第二字组与该第三字组串接,并移位至第一位置。
文档编号G06F12/02GK1632741SQ200310122428
公开日2005年6月29日 申请日期2003年12月23日 优先权日2003年12月23日
发明者梁伯嵩 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1