数据处理装置及其方法

文档序号:6462292阅读:111来源:国知局
专利名称:数据处理装置及其方法
技术领域
本发明涉及一种数据处理装置及方法,且特别涉及一种可降低执行乘加
(Multiply-accumulate, MLA)指令时需使用的寄存器数量的数据处理装置及方 法。
背景技术
随着科技的发展日新月异,数据处理装置,例如是可执行乘加 (Multiply-accumulate, MLA)运算的微处理器。已被广泛地应用在多种不同应 用方面中。
请参照图1,其绘示乃传统数据处理装置的方块图。在传统微处理器100 中,寄存器组(Register Bank)120中的寄存器Rel Re4分别被用来存储数据 Pa、 Pb、 Pc及运算数据Pd。其中,运算数据Pd满足方程式Pd=PaxPb+Pc
然而,传统数据处理装置必须使用四个寄存器Rel Re4来执行MLA操 作。因此,如何设计出可使用较少的寄存器来执行MLA操作的数据处理装 置为业界不断致力的方向之一。

发明内容
本发明提供一数据处理装置及其方法,其可有效地解决传统数据处理装 置需必须使用四个寄存器来执行乘加(Multiply-accumulate, MLA)操作的问 题,而具有可使用较少的寄存器来执行MLA操作的优点。
根据本发明提出一种数据处理装置,包括寄存器组(Register Bank)、 影子寄存器(Shadow Register)及操作单元。寄存器组包括多个寄存器,用以 分别存储多个操作数(Operand)。寄存器中包括第一寄存器,操作数中包括第 一操作数。其中,这些寄存器为n位寄存器,n为自然数。影子寄存器用以 响应于第一控制信号来对第一操作数进行备份,以得到并存储第一备份操作 数。其中,第一操作数被存储在第一寄存器中。操作单元用以响应于算术操 作指令来对操作数执行至少 一算术操作以得到运算数据,并存储运算数据至第一寄存器中。
根据本发明提出一种数据处理方法,包括下列的步骤首先,提供寄存 器组,其中包括多个寄存器,用以分别存储多个操作数。其中这些寄存器中
包括第一寄存器,操作数中包括第一操作数;接着,响应于第一控制信号来 对第一操作数进行备份,以得到并存储第一备份操作数。其中,第一操作数 存储于第一寄存器中;接着,响应于运算操作指令来对这些操作数执行至少 一运算操作,以得到运算数据;之后,存储运算数据于第一寄存器中。
为让本发明的上述内容能更明显易懂,下文特举一较佳实施例,并配合 所附附图,作详细说明如下


图1绘示乃传统数据处理装置的方块图。 图2绘示依照本发明第一实施例的数据处理装置的方块图。 图3绘示依照本发明第一实施例的数据处理方法的流程图。 图4绘示依照本发明第二实施例的数据处理装置的方块图。 图5绘示依照本发明第三时失利的数据处理装置的方块图。 图6绘示依照本发明第三实施例的数据处理方法的流程图。主要元件符号说明
100:微处理器 120、 12、 12,寄存器组 Rel Re4、 Rl Rm:寄存器 Pa、 Pb、 Pc:数据 Pd、 Qd、 Qd,运算数据 10、 10,、 20:数据处理装置 14、 14,影子寄存器 16、 16,、 16":运算操作单元 18、 18,:逻辑单元
Qa、 Qb、 Qc、 Qa,、 Qb,、 Qc,、 Qe:操作数 Qrl、 Qr2:备份操作数
具体实施方式
第一实施例
请参照图2,其绘示依照本发明第一实施例的数据处理装置的方块图。
数据处理装置10包括寄存器组(Register Bank)12、影子寄存器(Shadow Register)14及运算操作单元16。寄存器组12包括多个寄存器,这些寄存器 分别用以存储多个操作数。影子寄存器14用以响应于第一控制信号来对这 些操作数中的第一操作数进行备份,并存储第一备份操作数。第一操作数被 存储在这些寄存器中的第一寄存器中。运算操作单元16用以响应于运算操 作指令来对这些寄存器中的操作数执行至少一个运算操作,以得到运算数据 Qd,并将运算数据Qd存储在第一寄存器中。接下来,以数据处理装置10 为乘力口(Multiply-accumulate, MLA)运算单元的情形为例作说明。
举例来说,寄存器组12中包括寄存器R1 R3,寄存器R1 R3分别用以 存储操作数Qa、 Qb及Qc。寄存器R1 R3为n位的寄存器,其中n为自然 数。乘加运算单元用以对操作数Qa、 Qb及Qc执行一个相乘运算及一个累 加运算。举例来说,乘加运算单元执行运算Qd=QaxQb+Qc。之后,乘加 运算单元输出运算数据Qd至寄存器R3,并将运算数据Qd存储于寄存器R3 中,以完成乘加运算。
在运算数据Qd被存储在寄存器R3之前,需对原本存储在寄存器R3中 的操作数Qc进行备份,以避免操作数Qc被覆写。影子寄存器14用以在乘 加运算单元存储运算数据Qd至寄存器R3之前,响应于控制信号SC1对操 作数Qc进行备份,以得到并存储备份操作数Qrl(未绘示)。备份操作数Qrl 实质上等于操作数Qc。如此,当运算数据Qd被存储到寄存器R3中时,操 作数Q3仍可有效地被保存。
请参照图3,其绘示依照本发明第一实施例的数据处理方法的流程图。 首先,如步骤(a),提供包括寄存器R1 R3的寄存器组12,其中,寄存器R1 R3 分别存储操作数Qa、 Qb及Qc。接着,如步骤(b),影子寄存器14响应于控 制信号SC1对操作数Qc进行备份,以存储备份操作数Qrl 。
接着,如步骤(c),乘加运算单元响应于乘加指令来根据操作数Qa、 Qb 及Qc产生运算数据Qd。之后,如步骤(d),逻辑单元18输出运算数据Qd 至寄存器R3。
在本实施例中虽仅以运算操作单元16为乘加运算单元,乘加运算单元 执行运算操作Qd-QaxQb+Qc的情形为例作说明,然而,前述的乘加运算单元不局限于执行上述运算操作,而可根据操作数Qa、 Qb及Qc执行其他 乘加运算操作。本实施例的运算操作单元16亦不局限于为乘加运算单元。 第二实施例
请参照图4,其绘示依照本发明第二实施例的数据处理装置的方块图。 本实施例的数据处理装置IO,与第一实施例中的数据处理装置不同之处在于 数据处理装置IO,还包括逻辑单元18,来根据操作数Qa、 Qb及Qc产生操 作数Qa,、 Qb,及Qc,。另外,数据处理装置IO,中的运算操作单元16,系执行 运算Qd,=Qa,xQb,+Qc,,并输出运算数据Qd,。
逻辑单元18更用以接收运算数据Qd,、选择信号SS1 SS3及控制信号 SC2。逻辑单元18用以响应于选择信号SS1选择操作数Qa、 Qb及Qc中其 中之一做为操作数Qa,、响应于选择信号SS2选择操作数Qa、 Qb及Qc其 中的另一做为操作数Qb,与响应于选择信号SS3选择操作数Qa、 Qb及Qc 其中之再一做为操作数Qc,。 一般来说,逻辑单元18分别以操作数Qa、 Qb 及Qc做为操作数Qa,、 Qb,及Qc,输出。在逻辑单元18自运算操作单元16, 接收运算数据Qd,后,逻辑单元18响应于控制信号SC2输出运算数据Qd, 至寄存器R3。影子寄存器14用以响应于控制信号SC1对操作数Qc,进行备 份,以存储备份操作数Qrl'。 一般来说,备份操作数Qrl,实质上等于寄存器 R3中存储的操作数,即备份操作数Qrl'等于操作数Qc。
逻辑单元18更接收备份操作数QiT,并判断数据处理装置IO,是否欲执 行任何需参考操作数Qc来执行的运算操作。当数据处理装置IO,执行需参考 操作数Qc的运算操作时,逻辑单元18输出备份操作数Qrl,至原先用以存 储操作数Qc的寄存器,即是寄存器R3。如此,寄存器R3存储与操作数Qc 实质上相等的备份操作数Qrl,,而数据处理装置10可等效地经由存取寄存 器R3来存取操作数Qc,并执行此需参考操作数Qc的运算操作。
在本实施例中虽仅以操作数Qa,至Qc,分别等于操作数Qa至Qc的情形 为例作说明,然,操作数Qa,至Qc,并不局限于为等于操作数Qa至Qc,而 可透过逻辑单元18根据对应的选择信号SS1至SS3来分别决定操作数Qa, 至Qc,。举例来说,操作数Qa,、 Qb,及Qc,可分别等于操作数Qa、 Qc及Qb。
第一及第二实施例中的数据处理装置具有可降低执行运算操作时所需 使用的寄存器数目的优点。透过使用影子寄存器14存储备份操作数Qrl或 Qrl,,来对原先存储在寄存器R3中的操作数Qc进行备份。透过提供根据操作数Qa至Qc或Qa,至Qc,运算得到的运算数据Qd或Qd,至寄存器R3,第 一及第二实施例中的数据处理装置可仅使用三个寄存器来执行运算操作(例 如是乘加运算操作)。因此,相较于绘示于图1中的传统数据处理装置需使 用四个寄存器Rei至Re4来执行乘加运算操作,第一及第二实施例中的数据 处理装置可有效地降低其所需的寄存器数量。 第三实施例
请参照图5,其绘示依照本发明第三时失利的数据处理装置的方块图。 第三实施例的数据处理装置20与第二实施例中的数据处理装置IO,不同之处 在于寄存器组12,更额外地包括寄存器R4至Rm,其中m为大于3之自然数。 另一个不同之处在于第三实施例的逻辑单元18,在数据处理装置20欲执行需 参考操作数Qc的操作时,传送运算数据Qd,至寄存器R4至Rm其中一。
举例来说,逻辑单元18,在传送被存储在影子寄存器14,中的备份操作数 Qrl,至寄存器R3之前,先传送先前被存储在寄存器R3中的运算数据Qd, 至寄存器R4。如上所述,备份操作数Qrl,实质上等于先前存储在寄存器R3 中的操作数,即是操作数Qc。之后,存储在寄存器R1至R4中的数据实质 上分别等于存储在传统数据处理装置(如图1所示)中寄存器Rel至Re4中的 数据。换句话说,在数据处理装置20执行运算操作(例如是乘加运算操作) 之后,寄存器R1至R4将分别地存储操作数Qa、 Qb、 Qc及运算数据Qd,。 如此,寄存器R1至R4与传统数据处理装置(如图l所示)中分别用以存储数 据Pa、 Pb、 Pc及运算数据Pd的暂存Rel至Re4具有实质上相同的寄存器 数据结构。这样一来,数据处理装置20可有效地被用以控制传统数据处理 装置(如图1所示)的传统指令所控制,以存取存储在寄存器Rl至R4中的操 作数Qa、 Qb、 Qc及运算数据Qd,。
在前述操作中,运算数据Qd,被存储在寄存器R4中。在运算数据Qd, 被存储在寄存器R4之前,需对原先存储在寄存器R4中的操作数进行备份, 以避免原先存储在寄存器R4中的此操作数被覆盖而遗失。据理来说,原先 存储在寄存器R4中的操作数被标示为Qe。如此,本实施例的影子寄存器 14,更用意在运算数据Qd被存储在寄存器R4之前,存储实质上等于操作数 Qe的备份操作数Qr2。因此,操作数Qe可在运算数据Qd被存储在寄存器 R4时仍有效地被保存。
逻辑单元18,更接收备份操作数Qr2,并判断数据处理装置20是否执行需参考操作数Qe的运算操作。当数据处理装置20即将执行需参考操作数 Qe的运算操作时,逻辑单元18,传送备份运算数据Qr2至原先用以存储操作 数Qe的寄存器,即寄存器R4。因此,数据处理装置可有效地执行需参考操 作数Qe来执行的运算操作。
请参照图6,其绘示依照本发明第三实施例的数据处理方法的流程图。 本实施例的数据处理方法与第一实施例的数据处理方法在于步骤(d)之后还 包括步骤(e)及(f)。如步骤(e),逻辑单元18,输出运算数据Qd,至寄存器R4。 之后如步骤(f),逻辑单元18系将自影子寄存器14,中存取得到的备份操作数 Qrl,输出至寄存器R3。
此外,在本实施例的数据处理方法中,步骤(b)还包括影子寄存器14,响 应于控制信号SC1来对操作数Qe进行备份,并存储备份操作数Qr2的操作。
本发明第一及第二实施例中的数据处理装置可仅使用三个寄存器来执 行运算操作,相较于传统微处理器,本发明第一及第二实施例中的数据处理 装置可使用较少的寄存器数目来执行运算操作。另外,本发明第三实施例的
构。如此,本发明第三实施例的数据处理装置具有可与传统数据处理装置的 控制指令相容的优点。
综上所述,虽然本发明已以一较佳实施例公开如上,然其并非用以限定 本发明。本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的 更动与润饰。因此,本发明的保护范围当视所附的权利要求书所界定者为准。
权利要求
1. 一种数据处理装置,包括一寄存器组,包括多个寄存器,用以分别存储多个操作数,所述寄存器中包括一第一寄存器,所述操作数中包括一第一操作数,其中,所述寄存器为n位寄存器,n为自然数;一影子寄存器,用以响应于一第一控制信号来对该第一操作数进行备份,以得到并存储一第一备份操作数,其中,该第一操作数被存储在该第一寄存器中;以及一操作单元,用以响应于一算术操作指令来对所述操作数执行至少一算术操作以得到一运算数据,并存储该运算数据至该第一寄存器中。
2. 如权利要求1所述的数据处理装置,其中所述寄存器中还包括一第二 寄存器,该数据处理装置还包括一逻辑单元,用以响应于一第二控制信号来提供该第一寄存器中的该运 算数据至该第二寄存器,接着提供存储在该影子寄存器中的该第一备份操作 数至该第一寄存器。
3. 如权利要求2所述的数据处理装置,其中该逻辑单元更用以响应于多 个选择信号来分别提供所述操作数至该操作单元。
4. 如权利要求2所述的数据处理装置,其中该影子寄存器更用以响应于 该第 一控制信号来对该第二操作数进行备份,以得到并存储一第二备份操作 数。
5. 如权利要求1所述的数据处理装置,其中该运算操作指令为一乘加指 令,该操作单元对所述操作数执行至少一相乘操作及至少一累加操作。
6. 如权利要求5所述的数据处理装置,其中所述寄存器包括一第三寄存器及一第四寄存器,该第三及该第四寄存器 用以分别存储一第三操作数及一第四操作数;及该操作单元用以对该第一、该第三及该第四操作数执行一相乘操作及一 累加操作,以得到并存储该运算数据。
7. —种数据处理方法,包括提供一寄存器组,该寄存器组包括多个寄存器,用以分别存储多个操作 数,其中所述寄存器中包括一第一寄存器,所述操作数中包括一第一操作数;响应于一第一控制信号来对该第一操作数进行备份,以得到并存储一第一备份操作数,其中,该第一操作数存储于该第一寄存器中;响应于一运算操作指令来对所述操作数执行至少一运算操作,以得到一运算数据;以及存储该运算数据于该第一寄存器中。
8. 如权利要求7所述的数据处理方法,其中所述寄存器包括一第二寄存 器,该数据处理方法还包括响应于一第二控制信号来存储该运算数据于一第二寄存器;及 存储该第 一备份操作数于该第 一寄存器中。
9. 如权利要求7所述的数据处理方法,其中对该第一操作数进行备份以 存储该第 一备份操作数的步骤中还包括响应于该第 一控制信号来对 一 第二寄存器中存储的 一 第二操作数进行 备份,以得到并存储一第二备份操作数。
全文摘要
本发明提供了一种数据处理装置。该数据处理装置包括寄存器组(Register BanK)、影子寄存器(Shadow Register)及操作单元。寄存器组包括多个寄存器,用以分别存储多个操作数(Operand)。寄存器中包括第一寄存器,操作数中包括第一操作数。其中,这些寄存器为n位寄存器,n为自然数。影子寄存器用以响应于第一控制信号来对第一操作数进行备份,以得到并存储第一备份操作数。其中,第一操作数被存储在第一寄存器中。操作单元用以响应于算术操作指令来对操作数执行至少一算术操作以得到运算数据,并存储运算数据至第一寄存器中。
文档编号G06F9/302GK101419542SQ20081009232
公开日2009年4月29日 申请日期2008年4月22日 优先权日2007年10月22日
发明者刘恕民, 陈俊裕 申请人:奇景光电股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1