可快速重复多次执行一指令的微计算机装置的制作方法

文档序号:6433871阅读:209来源:国知局
专利名称:可快速重复多次执行一指令的微计算机装置的制作方法
技术领域
本发明公开一种微计算机装置,特别是指一种用于数字信号处理技术中,可快速重复多次执行一指令的微计算机装置。
背景技术
数字信号处理器(digital signal processor,DSP)是现今这个电子时代中一个常见的关键电子元件。基本上,数字信号处理器技术的基础在于以数字的形式对信息进行处理(至于数字形式的信息通常由模拟形式的信息转换得来)。以数字的形式对信号进行处理,比起以模拟的形式对信号进行处理有更多的优点,其中一个主要的优点就是可以在信号质量不退化(degrade)的情形下,对信号进行处理。
为了让数字信号处理器有效率地对信号进行处理,对信号的运算速率(operation rate)通常要非常快,主要的原因是现今大多的技术都需要对信号进行实时(real-time)的处理。举例来说,一移动电话对一声音信号执行噪声滤除工作通常就必须是实时的,若执行噪声滤除工作的数字信号处理器芯片的运算速率过低,则使用者会很容易的感觉到声音信号的延迟,这常常是移动通信的使用者所不能接受的情形。
在数字信号处理器技术刚被提出的时期,主要的目的是要在可接受的质量下进行信号的处理。如之前所述,数字信号处理器所处理的数字信号通常是从模拟形式的信号转变过来的。而这样的数字信号的质量则会受限于几个主要的因素,包括取样频率(sampling rate)、每一个样本的位数等。只要将数字信号的质量从高质量降低到可接受的质量,对于实时运算所需的运算速率就可以变得较低。然而,即使只使用可接受的质量,可提供实时运算所需的运算速率的高速度处理单元还是少之又少,而且这样的高速度处理单元通常又具有太大的面积、太高的成本,而不适用于一般的应用系统之中。
显而易见,要提高运算速率最直接的方法就是加快处理单元的运算速度。依据摩尔定律(Moore′s Law),每过18个月,芯片的运算能力就会倍增,故只要摩尔定律持续成立,市面上会渐渐出现更多可以执行数字信号处理器技术的处理芯片,且芯片会具有比目前更小的面积。当然,随着数字信号处理器芯片的越变越小、成本越降越低、其应用的领域也将越变越广。
然而,这并不表示运算速率的重要程度也会跟着越降越低,事实上,因为人们对信号质量的要求会越来越高,而当信号质量越变越高,数字信号处理器的运算速率当然也就必须跟着提高。事实上,数字信号是对模拟信号进行离散取样后所得的结果,只要有需求,数字信号的质量是可以持续提升的(因为可以增加取样率、或增加每一样本的位数)。因此,提升数字信号处理器运算速率的需求还是会持续存在。
如同先前所述,要提高数字信号处理器芯片的运算速率,最直接的方法就是加快处理单元的运算速度。然而,还有一种方法亦可提高数字信号处理器芯片的运算速率,因为数字信号处理器芯片所处理的指令常常会有重复的现象发生,若妥善利用这样的现象,亦可以达到提高数字信号处理器芯片的运算速率的目的。类似其他类型芯片的处理单元,数字信号处理器芯片的处理单元通常会花费一些时间在提取(fetch)将被执行的指令上面。若有的指令是会被重复执行的,则表示数字信号处理器芯片必须重复地提取这样的指令,然而,一次又一次地重复提取这些特定的指令,是没有意义的工作。因此Magar等人在美国专利第4713749号的专利中,即提出了一种方法,可以使用硬件来进行重复指令的执行,如此一来,处理单元只需对那些会被重复执行的指令提取一次即可,故可将更多的运算时间花在信号的处理上面,因此可以提升数字信号处理器芯片的运算速率。
然而,上述的方法虽然可以提升数字信号处理器芯片的运算速率,该方法依旧不是用来使用一数字信号处理器芯片重复执行同一指令数次的最佳方法,举例来说,要重复执行一指令(例如加)数次时,“重复”(repeat)这个指令会耗掉一个时钟周期,第一次执行“加”这个指令又会耗掉另一个时钟周期,也就是说,执行“重复”这个指令与第一次执行“加”这个指令各会耗掉一个时钟周期,并没有办法在同一个时钟周期内执行完毕,这是常规技术所面临的一个问题。

发明内容
因此本发明的一个目的,在于提供一种包含有一专用的回路计数器的微计算机装置,以解决常规技术所面临的问题。
根据本发明所提出的实施例,是公开了一种微计算机装置,包含有一处理单元,用来执行指令;以及一回路计数器,耦合于该处理单元,用来依据该处理单元所执行的一回路指令,接收并存储一回路计数值;其中每当一指令被回路执行一次时,该处理单元即递减存储于该回路计数器中的该回路计数值;当该处理单元执行到一回路指令时,该处理单元则将位于该回路指令之前的指令回路执行由该回路计数值所定义的次数。
本发明的一个优点在于,通过使用专用的回路计数器,回路执行位于一回路指令之前的指令多次,可以比常规技术更快完成重复执行指令的操作,因此微计算机装置可以比常规技术的具有更高的运算速率。


图1为本发明的微计算机装置的一实施例示意图。
图2为本发明用来操作图1中的微计算机装置的方法实施例流程图。
主要元件符号说明10微计算机装置20第一存储器30程序计数器40处理单元42指令解码器44执行单元50存储单元52第二存储器54第三存储器60回路计数器62第一多工器64第二多工器66第四存储器具体实施方式
请参阅图1,图1为本发明的微计算机装置的一实施例示意图。在本实施例中,微计算机装置10包含有一第一存储器20,一程序计数器30,一处理单元40,一存储单元50,以及一专用的回路计数器60。
第一存储器20是用来存储一程序,该程序中包含有一表格,该表格中则存储了多个回路计数值(loop count value)的地址(address)。处理单元40可利用程序计数器30来对第一存储器20进行定址(addressing)的工作。处理单元40包含有一指令解码器42,用来进行指令的解码及调度(dispatch)的工作,并用来检查回路计数器60中的一回路计数值;以及一执行单元44,用来执行指令解码器42所调度的指令,并于一指令被回路执行(looped)一次时,递减回路计数器60中的该回路计数值。存储单元50包含有一第二存储器52,用来存储第一存储器20中该程序所使用的该表格;以及一第三存储器54,用来存储多个对应于该表格包含的各个地址的各个回路计数值。
至于专用的回路计数器60中则包含有一第一多工器62,用来自第二存储器52中的该表格内,依据指令解码器42所解码得出的一回路指令(loop),选择出一回路计数值所对应的一地址,并将该地址传送至第三存储器54;一第二多工器64,用来自指令解码器42或第三存储器54接收一回路计数值,并将接收到的回路计数值传送至一第四存储器66;第四存储器66则用来存储自第二多工器64接收得来的回路计数值。在本实施例中,多工器64和62分别受指令解码器42所发出的控制信号A和控制信号B所控制。
另外,在一些例子之中。第一存储器20可以是只读存储器(read onlymemory,ROM),存储单元50中的第二存储器52可以是一组地址寄存器(address register),存储单元50中的第三存储器54可以是随机存取存储器(random access memory,RAM),回路计数器60中的第四存储器66则可以是回路计数寄存器(loop count register)。
接下来请参阅图2,图2为本发明用来操作图1的微计算机装置10的方法实施例流程图。在进行图2所示的流程图之前,只读存储器20中程序内存储了多个回路计数值的表格会先被读出,然后存储于地址寄存器52中。图2所示的流程图是从对只读存储器20内的一程序中的一回路指令(loop)的解码操作开始,直到回路执行的操作结束为止。在图2所示的流程图进行完毕后,微计算机装置10即可以执行其他后续的指令。
步骤100指令解码器42对该回路指令进行解码。该回路指令可以包含有一回路计数值或一表格栏。
步骤105检查该回路指令的内容。若该回路指令内包含有一回路计数值,则进入步骤140。若该回路指令内包含有一表格栏,则进入步骤110。
步骤110指令解码器42藉由控制信号B将该表格栏传送至第一多工器62。
步骤120利用指令解码器42所发出的控制信号B,多工器62自地址寄存器52中存储的表格内得出一地址值。
步骤130第一多工器62将于步骤120中得出的该地址值传送至随机存取存储器54。
步骤140第二多工器64接收该回路计数值。该回路计数值可以是于步骤100中得出的,此时指令解码器42会直接将所得出的回路计数值当成输入信号传送至第二多工器64;该回路计数值亦可以是于步骤130中得出的,此时该回路计数值会从随机存取存储器54传送至第二多工器64。第二多工器64则可以藉由指令解码器42所发出的控制信号A选择回路计数值的来源。
步骤150第二多工器64将于步骤140中接收到的该回路计数值传送至回路计数寄存器66。此时的回路计数值则表示了在回路执行的过程中,还需要回路执行几次。
步骤160指令解码器42检查存储于回路计数寄存器66中的回路计数值。若回路计数值大于0,即表示回路尚未执行完毕,进入步骤170。若回路计数值等于0,则表示回路已经执行完毕,进入步骤190。
步骤170当步骤160中检查出的回路计数值大于0时,执行单元44会再次执行位于回路指令前的那个指令。如此一来,即完成了一次的回路操作。
步骤180当于步骤170中完成一次的回路操作之后,执行单元44即将回路计数值递减1,然后回到步骤160。
步骤190由于步骤160中检查出的回路计数值等于0,表示不需要在回路执行指令了,换句话说,不需要再次执行位于回路指令前的那个指令,故回路的操作至此完成,处理单元40可以继续执行存储于只读存储器20中后续的指令。
在上述实施例流程图中,处理单元40可利用程序计数器30对只读存储器20进行定址(addressing),以依据存储于只读存储器20中的程序执行指令。当处理单元40中的指令解码器42解码到一个回路指令(loop)时,指令解码器42可以选择是直接传送一回路计数值至第二多工器64;或以控制信号B的形式传送一表格栏至第一多工器62。至于指令解码器42所选择的操作为何,则是视解码出的回路指令的形式而决定,若解码出的回路指令中已经包含有一回路计数值,则指令解码器42可以直接将该回路计数值传送至第二多工器64;若解码出的回路指令中包含的是一表格栏,则指令解码器42则是以控制信号B的形式将该表格栏传送至第一多工器62。而由指令解码器42所送出的控制信号A则可以决定指令解码器42该采取上述的哪一种作法。
若直接将一回路计数值传送至第二多工器64,则第二多工器64会再将该回路计数值送至回路计数寄存器66。然后指令解码器42会对存储于回路计数寄存器66的该回路计数值进行检查。若该回路计数值等于0,则处理单元40就会直接执行下一个指令。
然而,或该回路计数值不等于0,执行单元44则会执行位于该回路指令之前的那个指令,并将该回路计数值递减1。然后指令解码器42会再次对该回路计数值进行检查。由“执行位于该回路指令之前的那个指令”、“将该回路计数值递减1”、“再次对该回路计数值进行检查”这三个操作所构成的回圈会执行到该回路计数值递减成0为止。当检查出的该回路计数值等于0时,处理单元40就会移动到下一个指令进行执行。
在指令解码器42以控制信号B的形式将一表格栏传送至第一多工器62的情形下,第一多工器62会使用控制信号B在存储于地址寄存器52中的一表格内找到相对应的一地址值,找到之后,第一多工器62会将该地址值传送至随机存取存储器54,然后随机存取存储器54会依据该地址值找出一回路计数值,再将找出的该回路计数值传送至第二多工器64。之后会执行的步骤就与在直接将一回路计数值传送至第二多工器64之后会执行的步骤相同。
比起Magar等人在美国专利第4713749号的专利中提出的方法(使用重复指令,即repeat),通过使用专用的回路计数器60来依据一回路指令(loop)执行位于该回路指令之的那个指令多次,微计算机装置10可以以更快的速度完成需执行的工作。因此微计算机装置10的运算速率即可提升(因为花费较少的时间处理重复的指令),此时微计算机装置即可使用节省下来的时间执行其他的指令。
至于可以让微计算机装置10花费较少的时间处理重复的指令,一个原因就是在于回路指令(loop)与重复指令(repeat)本质上的不同。举例来说,假设需要将一个指令A重复执行10次,若使用重复指令则程序中会先列出重复指令(加工需重复的次数),接下来才会列出指令A,处理单元虽然可以在一个时钟周期内执行一个以上的指令,但是于一个时钟周期内却仅能提取(fetch)一个指令,故当处理单元执行到重复指令时,虽然处理单元会知道要重复执行一个指令(即指令A)10次,但是由于指令A位于重复指令的后方,处理单元还是必须再花掉一个时钟周期来提取指令A(在这个周期内可以同时执行指令A一次),然后再使用接下来的9个周期各执行指令A一次。故整体而言,在使用重复指令的情形下,处理单元总共需要花费11个时钟周期的时间才有办法重复执行指令A总共10次。
至于在本发明中,使用的却是回路指令(loop),程序会先列出指令A,然后再列出一个回路指令(回路值则设为9),因为指令A是位于回路指令之前,在处理单元执行到回路指令之后,并不需要重新提取指令A,因此,处理单元在第二个时钟周期执行到回路指令时,不必再花一个时钟周期去提取指令A,于第二个时钟周期时即可直接执行指令A(这是指令A被执行的第二次)。然后处理单元还需要再花8个时钟周期,以完成重复执行指令A总共10次的工作。整体而言,在使用回路指令的情形下,处理单元总共仅需要花费10个时钟周期的时间,即有办法重复执行指令A总共10次。
在图1的实施例所提出的硬件结构还有一个优点,就是可以选择性地将一回路计数值嵌入(embed)回路指令内,或将一表格栏嵌入(embed)回路指令内(系统可以再使用该表格栏找出所对应的回路计数值),这是另一个与Magar等人所提出的美国专利第4713749号的专利有明显不同的地方,在该专利案件中所使用的硬件仅能处理将重复次数嵌入重复指令内的情形。至于本发明的方法则可以提供使用者更大的设计弹性。
相较于常规技术,本发明可以使用较少的时间完成重复多次执行一指令的工作,能提供使用者更大的设计弹性,且因为使用了专用的回路计数器,微计算机装置的运作效能可以比使用常规技术的方法更为提升。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。
权利要求
1.一种微计算机装置,包含有一处理单元,用来执行指令;以及一回路计数器,耦合于该处理单元,用来依据该处理单元所执行的一回路指令,接收并存储一回路计数值;其中每当一指令被回路执行一次时,该处理单元即递减存储于该回路计数器中的该回路计数值;当该处理单元执行到该回路指令时,该处理单元则将位于该回路指令之前的指令回路执行由该回路计数值所定义的次数。
2.如权利要求1所述的微计算机装置,其中该微计算机装置还包含有一第一存储器,耦合于该处理单元,用来存储一程序,该程序包含有一表格,该表格内则包含有多个回路计数值的地址。
3.如权利要求2所述的微计算机装置,其中该第一存储器是为一只读存储器。
4.如权利要求2所述的微计算机装置,其中该微计算机装置还包含有一程序计数器,耦合于该处理单元,用来对该第一存储器进行定址。
5.如权利要求1所述的微计算机装置,其中该处理单元包含有一指令解码模块,用来进行指令解码,及调度欲被执行的指令,并检查存储于该回路计数器中的该回路计数值;以及一执行单元,用来执行指令解码模块所调度的指令,并对存储于该回路计数器中的该回路计数值进行递减。
6.如权利要求1所述的微计算机装置,其中该回路计数器包含有一第一多工器,用来选择该回路计数值的一地址;一第二多工器,用来决定该回路计数值是由该处理单元发出或为一地址所对应的回路计数值;以及一第四存储器,用来存储该回路计数值,以及将该回路计数值的状态发送至处理单元;其中每当一指令被回路执行一次时,该处理单元即将该回路计数值递减,并持续回路执行该指令,直到该回路计数值递减0为止。
7.如权利要求6所述的微计算机装置,其中该第四存储器是为一回路计数寄存器。
8.如权利要求1所述的微计算机装置,其中该微计算机装置还包含有一存储单元,耦合于该处理单元以及该回路计数器。
9.如权利要求8所述的微计算机装置,其中该存储单元包含有一第二存储器,耦合于该处理单元以及该回路计数器,用来存储一表格,该表格包含有多个回路计数值的地址;以及一第三存储器,耦合于该回路计数器,用来存储多个回路计数值。
10.如权利要求9所述的微计算机装置,其中该第二存储器包含有一组寄存器。
11.如权利要求9所述的微计算机装置,其中该第三存储器是为一随机存取存储器。
全文摘要
本发明公开一种微计算机装置,包含有一处理单元,用来执行指令;以及一回路计数器,耦合于该处理单元,用来依据该处理单元所执行的一回路指令,接收并存储一回路计数值;其中每当一指令被回路执行一次时,该处理单元即递减存储于该回路计数器中的该回路计数值;当该处理单元执行到该回路指令时,该处理单元则将位于该回路指令之前的指令回路执行由该回路计数值所定义的次数。
文档编号G06F9/00GK1617094SQ20041008579
公开日2005年5月18日 申请日期2004年10月22日 优先权日2003年11月10日
发明者黄维宏, 谢燿晃 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1