一条指令完成一次反量化的微处理器实现方法

文档序号:6575275阅读:137来源:国知局
专利名称:一条指令完成一次反量化的微处理器实现方法
技术领域
本发明涉及计算机技术领域,特别涉及一种一条指令完成一次反量化 的微处理器实现方法。
背景技术
微处理器是一个集成在一片上的半导体集成电路,包括对一系列算术
逻辑操作的控制和执行。微处理器大致可以分为两类通用微处理器和专 用微处理器。通用微处理器可以使用户通过编程的方法实现广泛的功能, 因此常在个人电脑(PC)上用作中央处理器(CPU)。与之对应的是,专 用处理器只用于特定的环境,因为知道处理器的主要功能,设计者就可以 使用需求来建立处理器结构,使得在性能上专用处理器的专用单元可以比 通用处理器对应单元显著增强。
数字信号处理就是专用处理器的一个典型应用。数字信号处理包括信 号获取,信号传输,信号处理,使用大量技术的一种专用微处理器即数字 信号处理器(DSP)。数字信号处理需要处理大量数据,为了适应此特征, 数字信号处理器优化了密集运算和存储器访问的效率。比如,在快速傅里 叶变换(FFTs )和数字滤波器的实现中包括大量重复操作比如乘加和位移, 数字信号处理器提供了特别的功能以适应这些重复的操作,使得在实时应 用比如图像和声音处理中其性能比起通用处理器有很大的提升。
DSP在目前的电子产品中有广泛的应用,比如数字电话,视频会议设 备,复杂自动化系统等。可以预见的是,DSP在将来会有更多的数字系统 中能有更广泛的应用。
目前,微处理器设计者正在努力开发指令并行度以增加微处理器的性 能。应用于现代处理器中的一种并行结构,具有取指指令包和多个执行指 令包以及多个功能单元,参见超长指令字(VLIW)结构。设计者也使用一些通用于微处理器的方法成功提升了 DSP的性能。包 括,增加时钟速度,在电路结构中消除数据处理的瓶颈,在处理器中增加 更多的执行单元,增加编译器的调度能力以产生更有效的执行代码。 现有技术存在的缺点是,当前微处理器的性能还有待提升。

发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别是解决现有微处 理器性能不足的问题。
为达到上述目的,本发明一方面提出一种一条指令完成一次反量化的 微处理器实现方法,包括以下步骤解码级解析指令,并产生操作码;根 据所述解析指令从源寄存器中获取操作数;根据所述操作数的符号对所述 操作数进行反量化操作,并将结果存入目标寄存器。
在本发明的一个实施例中,所述根据操作数的符号对所述操作数进行 反量化操作包括如果所述操作数的符号为正,则取所述操作数的低n-l 位并在最低位补0,之后加l;如果所述操作数的符号为负,则取所述操作 数的低n-l位并在最低位补0,之后,并减1;如果所述操作数的符号为零, 则将结果置为0。
在本发明的一个实施例中,所述操作数为32位。 在本发明的一个实施例中,所述操作数的第32位为符号位。 在本发明的一个实施例中,根据所述操作数的第32位判断所述操作数 的正负。
在本发明的一个实施例中,所述微处理器包括一个指令获取单元、指 令分发单元、六个执行单元XA, XM, XD, YA, YM, YD、和三组通用 寄存器堆X, Y, G。
在本发明的一个实施例中,各个执行单元与寄存器的连接是完全对称的。
通过本发明能够实现一条指令完成一次反量化的功能,从而能够有效 地提高处理器的性能。本发明正是在VLIW架构下,通过适当的数学变形, 实现单条指令完成一次反量化的运算,从而为常用运算增加硬件支持,提高处理器面向特定应用的处理性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面 的描述中变得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描
述中将变得明显和容易理解,其中
图1为本发明实施例的处理器结构图2为本发明实施例中执行单元与寄存器的连接结构图3为本发明实施例的XA单元功能框图4所示,为本发明实施例的DQUANT指令执行过程;
图5为本发明实施例的处理器流水级;
图6为本发明处理器实现了 一条指令完成一次反量化的流程图。
具体实施例方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其 中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功 能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发 明,而不能解释为对本发明的限制。
如图1所示,为本发明实施例的处理器结构图。该处理器是一个超长 指令字(VLIW)结构的数字信号处理器(DSP)。需要说明的是,图l只 显示了处理器中与理解此发明相关的部分,其他部分已为本领域普通技术 人员所公知,在此不再赘述。图1所示处理器实现当前发明的细节下面将 详细进行描述。
如图l所示,处理器包含一个指令获取单元(Fetch)、指令分发单元 (Dispatch)、和六个执行单元(XA, XM, XD, YA, YM, YD)以及X, Y, G三组通用寄存器堆,每个功能单元由指令控制访问X或者Y,每个 执行单元同时可访问G寄存器堆。处理器系统包括处理器内核(CPU), 数据RAM,数据緩存(cache),程序RAM,程序緩存(cache)以及管理RAM和緩存的MMU。对于緩存和RAM,可以编程选择其有效或者无效, 其与此发明的关键无关。当此处理器执行处理操作的时候,有更多的存储 器或者外设需要连接,比如,外部RAM,只读存储器(ROM),磁盘, 总线,DMA控制器等。
各个执行单元与寄存器的连接是完全对称的,如图2所示,为本发明 实施例中执行单元与寄存器的连接结构图。其中,各个功能单元分别有一 组接口与G寄存器堆相连,同时,每个功能单元还有一组接口由多路选择 器选择访问X寄存器堆或者Y寄存器堆,在每个指令周期,每个功能单元 都能访问X寄存器堆和G寄存器堆,访问或者Y寄存器堆和G寄存器堆。 功能单元访问X寄存器堆或者Y寄存器堆由指令中的某一位控制。
处理器的各个功能单元用来执行特定的指令,功能单元可分为两部分: 解码和执行,解码在一个周期完成,执行需要花费一到多个周期不等。
以下就对各个功能单元XA、 XM、 XD以及XLSU的功能进行简单介绍。
其中,XA单元是处理器中完成算术逻辑运算以及移位运算的单元。 XA单元中共有两级级流水线解码、执行。解码阶段的功能是接受指令、 并根据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,指 令分发单元将需要在XA单元执行的指令写入指令寄存器A—IR,然后解码 逻辑根据指令寄存器(AJR)中的内容产生各部分的控制码。执行阶段接 受两个操作数,然后根据其控制代码对两个操作数进行相应的运算,并在 执行阶段结束时的时钟上升沿将运算结果写入目标寄存器。
其中,XM单元是处理器中完成乘法运算的单元,可以完成32位乘法、 16位乘法、8位乘法等运算,以及部分算术逻辑操作和位操作。XM单元 共分为解码单元、流水线控制旁路单元,乘法运算单元、算术逻辑单元、 目标寄存器写使能信号产生单元等部分。XM单元中实现乘法功能需要三 级流水线解码,乘法执行一级和乘法执行二级。其中乘法执行一级采用 乘法单元实现,乘法执行二级采用加法单元来实现。XM单元中实现算术 逻辑操作以及位操作需要两级流水线解码,执行。执行不同的指令采用
不同的流水线结构,流水线控制旁路单元通过解码单元产生的旁路信号(bypass)进行控制。解码阶段的功能是接受指令、并根据指令产生其余 各部分的控制码。在解码阶段开始的时钟上升沿,需要在XM单元执行的 指令被写入指令寄存器(M_IR),然后解码逻辑根据指令寄存器(M_IR) 中的内容产生各部分的控制码。
其中,XD单元的主要功能是实现存储器的存取以及实现程序的跳转, 同时它也可以完成部分算术逻辑运算。XD单元共分为解码单元、操作数选 择单元、ALU执行单元和目标寄存器写使能信号产生单元等四大部分。XD 单元中共有两级流水线解码、执行。解码阶段的功能是接受指令,并根 据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,指令分 发单元将需要在XD单元执行的指令写入指令寄存器(D—IR),然后解码 逻辑根据指令寄存器(D_IR)中的内容产生各部分的控制码。执行阶段接 受两个操作数,然后根据其控制代码对两个操作数进行相应的运算,并在 执行阶段结束时的时钟上升沿将运算结果写入目标寄存器。XD单元中执行 存储器操作的是XLSU单元,XLSU分4级流水线进行,El为地址产生级, E2为地址发送级,E3为等待LID Cache处理级,E4为获取数据和寄存器 回写或存储器写入级。XLSU根据D单元E1级组合逻辑输出存储器访问使 能信号和存储器访问模式信号等控制信号控制存储器访问。 由于此发明涉及
此发明只有加法操作操作,所以本发明实施了的指令在上述微处理器 结构中的XA单元中执行。
如图3所示,为本发明实施了的XA单元功能框图。其中,XA单元获 取指令及指令模式后,开始解码,解码阶段的功能是接受指令,并根据指 令产生其余各部分的控制码。解码周期后一个时钟上升沿执行级根据操作 码和对应的源操作数执行相应的指令,并在执行周期结束后的时钟上升沿 将指令写入目标寄存器。
如图4所示,为本发明实施例的DQUANT指令的执行过程。解码单元 将指令解码后送入后面的流水级,在A单元中,NORM, SH一gen和ASH 三个模块共同完成移位操作。其中,NORM根据控制位计算操作数l从最 位开始到第一个0的长度,例如如果是11111011100则返回5,其用于判断后面的移位是否溢出。SH一gen根据操作码和操作数2产生移位控制信 号,例如左移右移,移位位数等。ASH根据NORM和SH—gen的结果进行 移位操作。饱和单元根据NORM和sh_gen判断移位结果是否溢出并进行 饱和操作。在本发明实施例的DQUANT指令中,源操作数存放于一个32 位寄存器中,当源操作数非0时,加法器的第一输入为源操作数的低31位 (即左移一位并补0,完成乘2操作),第二输入根据源操作数的符号进 行选择,即选择加1 (源操作数为正时)或减1 (源搡作数为负时)。当源 操作数为O,不经过加法器运算直接将输出置O。在执行周期末尾的时钟上 升沿,将操作结果存入目标寄存器。
在本发明的实施例中,处理器釆用超长指令字(VLIW)结构,每个周 期能发射一条到六条指令不等,因此每个执行包长度不固定。在程序中, DQUANT指令要一个执行级才能完成,指令执行结果必须要在其一个执行 包以后才能使用,如图5A, DQUANT指令在El级执行完成并在其后的上 升沿写入结果到目标寄存器,此时DC级的执行包已经读取操作数,DP及 以后的执行包可以使用DQUANTS指令的结果。
本发明实施例的处理器执行DQUANT指令时,DQUANT指令将判断 源操作数的正负,如果源操作数为正数,则将其左移一位(乘以2)后加 一,并将结果存入目标寄存器,如果源操作数为负数,将其左移一位(乘 以2)后减一,并将结果存入目标寄存器。
在当前发明实施例的实现中,处理器的指令有16位和32位两种长度, 六个功能单元,每周期最多发射六条指令。取指令和指令分发两个单元共 有五级流水线,其中取值单元有程序地址产生(PCG),程序地址发送(PCS), 指令有效性判断(PWT),指令获取扩展(FPR)四级流水,分发单元 (DISPATCH) —级流水,分发后进入执行单元,处理器流水级如图5A。 取指包包含多个指令字。执行包的指令可以被多个功能单元并行执行。在 处理器中有取指包和执行包两种指令包,取指包具有固定长度,执行包包
含一条或多条可以在一个处理器周期内并行执行的指令,执行包可能跨越 两个取指包。分发单元以后,指令进入各个功能单元,功能单元第一级为 解码级,解码源操作数地址目标操作数地址及执行级各级所需控制信号等,DQUANT指令在XA单元执行。
本发明实施例的处理器实现了一条指令完成一次反量化,包括以下步 骤,如图6所示,为本发明实施例实现一条指令完成一次反量化的流程图
步骤S601,取源操作数(32位),并判断操作数的符号。
步骤S602,根据搡作数的符号对操作数进行反量化操作。如果所述操 作数的符号为正,则取所述操作数的低n-l位并在最低位补0,之后加1; 如果所述操作数的符号为负,则取所述操作数的低n-l位并在最低位补0, 之后,并减1;如果所述操作数的符号为零,则将结果置为O。
步骤S603,将运算结果存入32位目标寄存器中。在XA单元中,共 有两个流水级,分别是解码级(DC)和执行级(EX1),执行完成加减法 移位和逻辑操作。
通过本发明能够实现一条指令完成一次反量化功能,从而能够有效地 提高处理器的性能。特别是反量化在音视频处理程序中有广泛的使用,反 量化运算将操作数的绝对值乘以二加一后进行符号扩展。本发明正是在 VLIW架构下,通过适当的数学变形,实现单条指令完成一次反量化的运 算,从而为常用运算增加硬件支持,提高处理器面向特定应用的处理性能。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员 而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例 进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等 同限定。
权利要求
1、一种一条指令完成一次反量化的微处理器实现方法,其特征在于,包括以下步骤解码级解析指令,并产生操作码;根据所述解析指令从源寄存器中获取操作数;根据所述操作数的符号对所述操作数进行反量化操作,并将结果存入目标寄存器。
2、 如权利要求1所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,所述根据操作数的符号对所述操作数进行反量化操作包 括如果所述操作数的符号为正,则取所述操作数的低n-l位并在最低位 4卜0,之后力口 1;如果所述操作数的符号为负,则取所述操作数的低n-l位并在最低位 补0,之后,并减1;如果所述操作数的符号为零,则将结果置为0。
3、 如权利要求2所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,所述操作数为32位。
4、 如权利要求3所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,所述操作数的第32位为符号位。
5、 如权利要求4所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,根据所述操作数的第32位判断所述操作数的正负。
6、 如权利要求1所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,所述微处理器包括一个指令获取单元、指令分发单元、 六个执行单元XA, XM, XD, YA, YM, YD、和三组通用寄存器堆X, Y, G。
7、 如权利要求6所述的一条指令完成一次反量化的微处理器实现方 法,其特征在于,各个执行单元与寄存器的连接是完全对称的。
全文摘要
本发明提出一种一条指令完成一次反量化的微处理器实现方法,包括以下步骤解码级解析指令,并产生操作码;根据所述解析指令从源寄存器中获取操作数;根据所述操作数的符号对所述操作数进行反量化操作,并将结果存入目标寄存器。通过本发明能够实现一条指令完成一次反量化的功能,从而能够有效地提高处理器的性能。
文档编号G06F9/30GK101615111SQ20091009020
公开日2009年12月30日 申请日期2009年7月31日 优先权日2009年7月31日
发明者虎 何, 源 刘, 钲 沈, 王增丽 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1