可跨边界对齐复数暂存器资料的处理器及其方法

文档序号:6421002阅读:154来源:国知局
专利名称:可跨边界对齐复数暂存器资料的处理器及其方法
技术领域
本发明是关于资料处理的技术领域;尤指一种利用可跨边界对齐复数暂存器资料的处理器及其方法。
背景技术
在处理器进行资料处理时,资料的对齐与否关系到许多关键运算的效能,例如字串、阵列等运算的效能。如图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个指令周期才能完成读取动作,此使得程序码冗长,占据储存空间,同时也增加处理器的负担使得处理器效率不彰。
针对公知方法使用处理器指令处理未对齐资料所引超程序码冗长及效率的问题,于美国第USP4,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个指令周期才能完成读取动作。而且因为对同一储存器与暂存器位置作重复读写,使处理机管线停止(Pipeline Stall)可能性提高。对同一储存器位置作重复读取,会浪费总线频宽,尤其在有些不具有快取储存器的系统,所造成的延误更是明显。

发明内容
本发明的目的在于提供一种以可跨边界对齐复数暂存器资料的处理器及其方法,以避免公知技术的程序码冗长、占据储存空间的问题,同时可避免因为对同一储存器作重复读取,浪费总线频宽□□□□依据本发明的特色之一,提出一种可跨边界对齐复数暂存器资料的处理器装置,其主要包含一解码装置,以对一多重移位指令进行解码;一暂存器档案,具有复数个暂存器,每一暂存器均为N位元,该暂存器档案可依据一第一位址及一第二位址分别读取暂存器,并由一第一输出端及一第二输出端输出,及可依据一第三位址经由一输入端写入该复数暂存器其中之一(N为正整数);一移位器,耦合至该暂存器档案的第一输出端及第二输出端,并将该第一输出端及第二输出端的输出内容串接成一2N位元字组,再依据一移位值w将该2N位元字组移位w位元(w为正整数),并输出该2N位元字组中的前N个位元;以及一控制装置,耦合至该解码装置及暂存器档案,依据该解码后的多重移位指令,以设定该第一位址、第二位址、第三位址及移位值w,读出对应暂存器的内容,以由该移位器将所读出暂存器的内容移位w位元,并依据该第三位址将该移位器的输出写入该暂存器档案。
所述的装置,其中N为32。
所述的装置,其中w为8、16、24其中之一。
所述的装置,其中该移位器可向左或向右移位w位元。
所述的装置,其中该第三位址是设定与该第一位址相同。
所述的装置,其中该第二位址是设定为该第一位址的后续位址。
依据本发明的另一特色,提出一种可跨边界对齐复数个暂存器资料的方法,该复数个暂存器形成一暂存器档案,每一暂存器均为N位元,该暂存器档案可依据一第一位址及一第二位址分别读取暂存器,并由一第一输出端及一第二输出端输出,及可依据一第三位址经由一输入端写入该复数暂存器其中之一(N为正整数),该方法主要包含下列步骤(A)依据一多重移位指令设定该第一位址、该第二位址、该第三位址及一移位值w;(B)依据该第一位址及第二位址读出对应暂存器的内容;以及(C)将步骤(B)所读出暂存器的内容串接成2N位元的字组,再对该2N位元字组进行移位w位元,并将移位后的该2N位元字组中前N个位元,依据该第三位址写入该多个暂存器其中之一。
所述的方法,其中步骤(A)至步骤(C)是重覆执行,直到一预定个数的暂存器均已完成移位。
所述的方法,其中N为32。
所述的方法,其中w为8、16、24其中之一。
所述的方法,其中步骤(C)中移位w位元可为向左或向右移位w位元。
所述的方法,其中该第三位址是设定与该第一位址相同。
所述的方法,其中该第二位址是设定为该第一位址的后续位址。


图1为一组未对齐资料在储存器中排列的示意图。
图2为公知技术载入一组未对齐资料的程序码。
图3为另一公知技术载入一组未对齐资料的程序码及暂存器的示意图。
图4为本发明的可跨边界对齐复数暂存器资料的处理器装置的方块图。
图5为本发明技术控制装置5的详细电路图。
图6为本发明技术运作示意图。
图7为本发明技术的一应用范例。
具体实施例方式
图4显示本发明的利用可跨边界对齐复数暂存器资料的处理器的方块图,其包括有一解码装置100、一控制装置200、一暂存器档案300及一移位器400。暂存器档案300具有复数个暂存器3001,每一暂存器3001均为N位元,在本实施例中,N值较佳为32。该暂存器档案300可依据一第一位址301及一第二位址302分别读取暂存器3001,并由一第一输出端310及一第二输出端320输出,及可依据一第三位址303经由一输入端330写入该复数暂存器3001其中之一(N为正整数)。
该解码装置100是对一多重移位指令进行解码,该多重移位指令可分为一多重左移指令(Multiple Left Shin Instruction、MLSI)及一多重右移指令(Multiple Right Shift Instruction、MRSI)。其中,多重左移指令格式为MLSI Rx,Ry,w,其代表将x至y范围内的暂存器内容值,整体进行向左移位的动作w位元。而多重右移指令格式为MRSI Rx,Ry,w,其代表将x至y范围内的暂存器内容值,整体进行向右移位的动作w位元。解码装置100是对一多重移位指令进行解码后,会产生x、y,L_R*及w讯号,并输出至该控制装置200,其中,L_R*讯号用以指示向左或向右移动w仅元,当L_R*讯号为1时,表示向左移动w位元,当L_R*讯号为0时,表示向右移动w位元。
该移位器400是耦合至该暂存器档案300的第一输出端310及第二输出端320,并将该第一输出端310及第二输出端320的输出内容串接成一64位元宇组,再依据一移位值w及L_R*讯号将该64位元字组向左或向右移位w位元(w为正整数),并输出该移位后64位元字组中的前32个位元。
该控制装置200耦合至该解码装置100及暂存器档案300,依据该解码后的x、y,L_R*及w讯号,以设定该暂存器档案300的第一位址301、第二位址302、第三位址303及移位值w,并由该暂存器档案300的第一输出端310及第二输出端320读出该暂存器档案300中第x个暂存器及第y个暂存器的内容。
图5是该控制装置200的详细电路图,其主要包含一多工器210、一比较器220、一第一位址暂存器230、一加法器240及一第二位址暂存器250。该多工器210选择一由解码装置100所产生的x讯号或由该第二位址暂存器250的内容值。该多工器210的输出写入该第一位址暂存器230,其输出至该暂存器档案300的第一位址301,以存取该第一位址301所指的暂存器3001。该加法器240将该第一位址暂存器230的内容值加1后再写至该第二位址暂存器250,该第二位址暂存器250的内容值用以存取该第二位址302所指的暂存器3001。该比较器220比较该第一位址暂存器230的内容值与解码装置100所产生的y讯号,若该第一位址暂存器230的内容值大于或等于该y讯号时,则产生一停止讯号(stop signal)。
图6显示本发明的运作示意图,其执行一MLSI R16,R19,8指令,该指令表示将暂存器R16、R17、R18及R19的内容值向左移位8位元。当第一执行周期开始时,该解码装置100解码该指令,并产生x=16、y=19,L_R*=1及w=8讯号。该多工器210选择一由解码装置100所产生的x讯号(=16),控制装置200则将该第一位址暂存器230填入16,并经由该加法器240运算将该第二位址暂存器250填入17。由于第一位址暂存器230为16,其小于19,故比较器220不会产生该停止讯号(stop signal)。亦即该暂存器档案300可依据该第一位址301(=16)及第二位址302(=17)分别读取暂存器R16的内容值(=ZABC)及R17的内容值(=DEFG)。并由第一输出端310及第二输出端320输出至该移位器400。
该移位器400将该第一输出端310的内容值(=ZABC)及第二输出端320的内容值(=DEFG)串接成一64位元字组(=ZABCDEFG),再依据一移位值w=8及L_R*=1讯号将该64位元字组向左移位8位元(=ABCDEFG0),并输出该移位后64位元字组中(=ABCDEFG0)的前3个位元(=ABCD)。控制装置200则依据该第三位址303将该移位器400的输出(=ABCD)写入该暂存器档案300的暂存器R16中。
当第二执行周期开始时,该多工器210选择该第二位址暂存器250的内容值(=17),控制装置200则将该第一位址暂存器230填入18,并经由该加法器240运算将该第二位址暂存器250填入18。其执行过程相同于第一执行周期,故当第二执行周期结束时,该暂存器R17的内容值为EFGH。同理,故当第三执行周期结束时,该暂存器R18的内容值为IJKL。
当第四执行周期开始时,该多工器210选择该第二位址暂存器250的内容值(=19),控制装置200则将该第一位址暂存器230填入19,由于第一位址暂存器230为19,故比较器220会产生该停止讯号(stop signal)终止执行程序,亦即仅需三个执行周期即可。
图7是显示本发明的运用示意图,当欲将一组未对齐资料载入时,可先用载入指令(LW)分别将未对齐资料载入暂存器R16、R17、R18及R19中,再使用本发明的多重左移指令(MLSI)即可完成。由图7可知,其程序码仅需5个字组。
由上述说明可知,本发明的技术可解决公知技术程序码冗长、占据储存空间的问题,同时可避免因为对同一储存器作重复读取,浪费总线频宽的问题。
应注意的是,上述诸多实施例仅是为了便于说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。
权利要求
1.一种可跨边界对齐复数暂存器资料的处理器装置,主要包含一解码装置,以对一多重移位指令进行解码;一暂存器档案,具有复数个暂存器,每一暂存器均为N位元,该暂存器档案可依据一第一位址及一第二位址分别读取暂存器,并由一第一输出端及一第二输出端输出,及可依据一第三位址经由一输入端写入该复数暂存器其中之一(N为正整数);一移位器,耦合至该暂存器档案的第一输出端及第二输出端,并将该第一输出端及第二输出端的输出内容串接成一2N位元字组,再依据一移位值w将该2N位元字组移位w位元(w为正整数),并输出该2N位元字组中的前N个位元;以及一控制装置,耦合至该解码装置及暂存器档案,依据该解码后的多重移位指令,以设定该第一位址、第二位址、第三位址及移位值w,读出对应暂存器的内容,以由该移位器将所读出暂存器的内容移位w位元,并依据该第三位址将该移位器的输出写入该暂存器档案。
2.如权利要求1所述的装置,其特征在于,其中N为32。
3.如权利要求1所述的装置,其特征在于,其中w为8、16、24其中之一。
4.如权利要求1所述的装置,其特征在于,其中该移位器可向左或向右移位w位元。
5.如权利要求1所述的装置,其特征在于,其中该第三位址是设定与该第一位址相同。
6.如权利要求1所述的装置,其特征在于,其中该第二位址是设定为该第一位址的后续位址。
7.一种可跨边界对齐复数个暂存器资料的方法,该复数个暂存器形成一暂存器档案,每一暂存器均为N位元,该暂存器档案可依据一第一位址及一第二位址分别读取暂存器,并由一第一输出端及一第二输出端输出,及可依据一第三位址经由一输入端写入该复数暂存器其中之一(N为正整数),该方法主要包含下列步骤(A)依据一多重移位指令设定该第一位址、该第二位址、该第三位址及一移位值w;(B)依据该第一位址及第二位址读出对应暂存器的内容;以及(C)将步骤(B)所读出暂存器的内容串接成2N位元的字组,再对该2N位元字组进行移位w位元,并将移位后的该2N位元字组中前N个位元,依据该第三位址写入该多个暂存器其中之一。
8.如权利要求7所述的方法,其特征在于,其中步骤(A)至步骤(C)是重覆执行,直到一预定个数的暂存器均已完成移位。
9.如权利要求7所述的方法,其特征在于,其中N为32。
10.如权利要求7所述的方法,其特征在于,其中w为8、16、24其中之一。
11.如权利要求7所述的方法,其特征在于,其中步骤(C)中移位w位元可为向左或向右移位w位元。
12.如权利要求7所述的方法,其特征在于,其中该第三位址是设定与该第一位址相同。
13.如权利要求7所述的方法,其特征在于,其中该第二位址是设定为该第一位址的后续位址。
全文摘要
本发明提出一种以可跨边界对齐复数暂存器资料的处理器及其方法,其中,一解码装置用以对一多重移位指令进行解码;一暂存器档案具有复数个暂存嚣,每一暂存器均为N位元;一移位器将暂存器档案第一输出端及第二输出端的输出内容串接成一2N位元字组,再将该2N位元字组移位w位元,并输出其前N个位元;一控制装置依据该解码后的多重移位指令,以设定暂存器档案,读出对应暂存器的内容,以由移位器将所读出暂存器的内容移位w位元,并依将该移位器的输出写入该暂存器档案。
文档编号G06F9/315GK1622031SQ20031011881
公开日2005年6月1日 申请日期2003年11月28日 优先权日2003年11月28日
发明者梁伯嵩 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1