用于数据处理装置的附加指令缓存电路制造方法及图纸

技术编号:2845144 阅读:223 留言:0更新日期:2012-04-11 18:40
一种用于数据处理装置(包括微处理器、微控制器和数字信号处理器)的新型附加指令缓存电路(以下简称附加缓存)。该附加缓存在微处理器系统中位于微处理器内核与指令存储器之间。该附加缓存通过发现并暂存程序中的小循环体,继而在微处理器持续执行该小循环体期间,改由附加缓存提供所需指令,避免微处理器进行指令存储器的访问操作,从而降低微处理器的功耗。附加缓存的控制电路可以在微处理器访问指令存储器之前精确地知道是否将由其来提供下一条指令,无需进行任何预测,从而不会导致微处理器性能的损失。本发明专利技术实现了用较小的成本代价大幅度降低微处理器系统功耗的目的,并且对微处理器性能没有任何不利影响。

【技术实现步骤摘要】

本专利技术涉及的是一种数据处理装置(包括微处理器、微控制器和数字信号处理器)设计技术,特别是一种低功耗微处理器设计技术,属于微处理器

技术介绍
内嵌微处理器的系统级芯片(SOC)已经被广泛地用于各种电子产品。其中,由电池供电的手持式电子产品(移动电话、MP3播放器、手持式测量仪等)所占的比重很大。手持式电子产品要求所采用的芯片具有很低的功耗,这对作为这些电子产品核心部件的系统级芯片的低功耗设计技术提出了挑战。在系统级芯片内部,微处理器模块的功耗占有很大比重,并且,微处理器功耗主要集中在其对存储器的读写访问上。通过改善这一部分电路,尤其是指令读取电路的设计,可以使芯片的整体功耗大幅度降低。研究表明,嵌入式微处理器工作时的一个重要特征是其很大一部分时间是在执行循环(loop)操作(高级语言中表现为for语句,或者while语句),并且这些循环往往是循环体只有几条或十几条指令的小循环(或称为短循环,shortloop)。如附图说明图1所示一般应用中,微处理器有38%的时间用于执行小循环;而在数字信号处理应用中,这一比例会达到80%以上。利用这一特征,采用适当的指令缓存技术,可以大幅度减少微处理器对指令存储器的读取,从而降低芯片功耗。这里的指令存储器,是指微处理器内核可以直接访问的指令存储设备。在不同的系统中,它可以是一级缓存、片外/片内随机存储器/只读存储器、片外/片内闪存等。在这方面,国内外芯片设计人员已经作了大量的研究,并提出了各自的解决方法(见参考文献)。但是,这些方法在降低功耗的同时,通常会导致微处理器性能下降(性能下降的一个重要后果是系统工作时间变长,从而导致系统功耗增加),并且往往由于设计较为复杂而使芯片成本增加。
技术实现思路
本专利技术的目的在于提出一种新型附加缓存电路,以克服现有技术的不足。这种缓存电路具有结构简单、易于实现的特点。通过只增加极少的芯片资源,就使微处理器的功耗明显下降,并且对微处理器的性能没有任何不利影响。本专利技术所提出的附加缓存在系统级芯片中的位置处于微处理器内核与指令存储器之间。通过监视指令总线接口及少数由微处理器内核提供的辅助信号,发现并暂存程序中的小循环体,继而在微处理器持续执行该小循环体期间,改由附加缓存提供所需指令,避免微处理器进行指令存储器的访问操作,从而降低微处理器的功耗。图2反映了微处理内核与指令存储器的传统连接结构,图3反映了使用附加缓存以后的连接结构。附加缓存由指令阵列和控制器两部分组成。指令阵列用于暂存正在执行中的小循环体,是一个直接映射的小型存储器,一般可以存放十几或几十条指令,并且它与传统缓存的最大不同处在于它不需要存储相应的地址标识(TAG);控制器用于控制附加缓存的工作状态,决定微处理器对指令存储器的访问是否可以被避免,并决定对指令阵列的读写控制。附加缓存的工作原理基于对小循环的识别。为了定义小循环,我们首先定义向后短跳转指令几乎所有的微处理器都支持的相对跳转指令。通常,相对跳转指令的编码由操作码及偏移量两部分组成(如图4所示)。操作码用于表明该指令是一条相对跳转指令(可以是条件跳转或者无条件跳转),偏移量用于表明跳转目标地址与当前程序地址的距离。我们进一步把相对跳转指令的偏移量分成高位和低位两部分,规定低位部分的长度为w,并且定义当高位部分为全′1′时,该跳转指令为向后短跳转指令。也即,向后短跳转指令是指偏移量为绝对值≤2w的负数的相对跳转指令。我们把向后短跳转指令作为识别小循环的标志,由此可以定义小循环是指指令数量不超过2w条的循环体。进而还可以确定附加缓存的指令阵列应该具有2w条指令的容量,以确保小循环体可以全部暂存入附加缓存的指令阵列。以下描述附加缓存的工作细节及实施方法 当附加缓存的控制器监测到一条有效的向后短跳转指令(无条件跳转,或者条件跳转且条件满足),就假定微处理器将开始执行一个小循环,进而启动整个附加缓存开始工作。同时,我们定义该条向后短跳转指令为触发指令。附加缓存开始工作后,首先是让微处理器继续正常访问指令存储器,同时将微处理器从指令存储器读到的指令存入其指令阵列;一旦整个小循环体被存入指令阵列,附加缓存将把微处理器对指令存储器的读取请求转向为对指令阵列的读取请求,从而由指令阵列来提供所需的指令。微处理器对指令存储器的访问将持续停止,直到循环结束。附加缓存的指令阵列最多可以存放2w条指令,图5显示了指令阵列的结构及其如何通过微处理器发出的指令地址被访问。附加缓存在工作时,控制器需要随时知道微处理器要读取的下一条指令是否已经在附加缓存中。如果下一条指令已经在附加缓存中,则可以阻止微处理器向指令存储器发出读取请求,而直接由附加缓存提供下一条指令,以实现降低功耗的目的。为此,附加缓存需要以下信息a)下一条指令的地址是连续的,还是发生了跳转?b)如果发生了跳转,该跳转是否是由前面导致附加缓存进入工作状态的那条指令(触发指令)引起的?c)是否小循环体的全部指令都已经可以从附加缓存的指令阵列中获得?对于a),微处理器的指令解码电路很容易知道程序是否发生了跳转,并将这一信息通过辅助信号通知附加缓存控制器。对于b),我们在控制器中引入一个w位宽的计数器。当程序发生后向短跳转时,相应的跳转偏移量被装载入该计数器。然后,每当微处理器读取一条指令时,计数器自动加一。当计数器计到零时(需要注意到最初被装载入计数器的偏移量是一负值),表明程序再次执行到后向短跳转指令。如果该指令再次有效(即无条件跳转,或者条件跳转且条件满足),则跳转偏移量将再次被装载入计数器,如此不断循环。采用这种方法,如果在计数器未计到零时发生程序跳转,则表明该跳转不是由触发指令引起的,正常的循环执行被打断(诸如高级语言中的break语句)。图6显示了计数器部分的电路结构。对于c),我们在控制器中引入了一个状态机来表明附加缓存的状态。该状态机包含三个状态空闲状态,装载状态和激活状态。当状态机处于空闲状态时,微处理器正常从指令存储器读取指令,附加缓存不产生任何影响。状态机在空闲状态下监测到程序发生向后短跳转时,进入装载状态,同时将w位跳转偏移量装载入计数器。在装载状态下,微处理器依然从指令存储器读正常读取指令,但是处理器读到的指令将同时被逐条装载入指令阵列,每装一条,计数器自动加一。当计数器计到零时,表明程序再次执行到触发指令。如果该指令无效(跳转条件且条件不满足),表明循环结束,状态机回到空闲状态,否则,就进入激活状态。在装载过程中,如果发生其他非触发指令引起的跳转,也将导致状态机回到空闲状态。在激活状态下,微处理器所需指令由附加缓存提供,从而避免了指令存储器的读取。同时,在激活状态下,当发生触发指令跳转无效(触发指令为条件跳转且条件不满足),或者发生其他非触发指令引起的跳转,都将导致状态机回到空闲状态。图7显示了状态机的状态迁移流程。为了验证此项附加缓存技术的效果,我们采用XC16内核(一款16位微处理器)进行仿真测试。在其指令总线上接16KB的Flash存储器,数据总线上接1KB的SRAM存储器,以模拟一个目前主流的闪存单片微机工作环境。并设定附加缓存指令阵列的容量可以存储16条指令(w=4)。使用一般应用程序测试的结果表明使用了附加缓存后,微处理器对指令内存本文档来自技高网
...

【技术保护点】
一种用于数据处理装置(包括微处理器、微控制器和数字信号处理器)的附加指令缓存电路(以下简称附加缓存)。该附加缓存位于嵌入式微处理器内核与指令存储器之间。包含一个用于控制整个附加缓存工作的控制器;以及一个可以存放2↑[w](w为整数)条指令的指令阵列。该附加缓存通过检测并在指令阵列中暂存正在执行的小循环体,继而在微处理器持续执行该小循环体期间,改由附加缓存提供所需指令,从而避免微处理器进行指令存储器的访问操作直至循环结束。

【技术特征摘要】
1.一种用于数据处理装置(包括微处理器、微控制器和数字信号处理器)的附加指令缓存电路(以下简称附加缓存)。该附加缓存位于嵌入式微处理器内核与指令存储器之间。包含一个用于控制整个附加缓存工作的控制器;以及一个可以存放2w(w为整数)条指令的指令阵列。该附加缓存通过检测并在指令阵列中暂存正在执行的小循环体,继而在微处理器持续...

【专利技术属性】
技术研发人员:陈新顾萌
申请(专利权)人:上海采微电子科技有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1