CN102789428B - 一种指令高速缓冲存储器装置及其控制方法 - Google Patents
一种指令高速缓冲存储器装置及其控制方法 Download PDFInfo
- Publication number
- CN102789428B CN102789428B CN201210242426.9A CN201210242426A CN102789428B CN 102789428 B CN102789428 B CN 102789428B CN 201210242426 A CN201210242426 A CN 201210242426A CN 102789428 B CN102789428 B CN 102789428B
- Authority
- CN
- China
- Prior art keywords
- loop body
- address
- instruction
- body code
- tag memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- Y02B60/1225—
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种指令高速缓冲存储器装置及其控制方法,该装置包括指令Cache控制器、与所述指令高速缓冲存储器控制器相连接的标志存储器和数据存储器,其中指令Cache控制器包括片选控制电路,该片选控制电路用于在执行循环体代码时,禁能所述标志存储器;当所述循环体代码执完毕后,使所述标志存储器正常工作。该控制方法包括:在循环体代码执行时,禁能标志存储器;当循环体代码执行完毕后,所述标志存储器正常工作。本发明在处理器内核执行循环体代码时,通过禁能标志存储器,减少了处理器内核对标志存储器的读操作和比较操作,从而降低了处理器的整体功耗。
Description
技术领域
本发明涉及一种处理器技术,尤其涉及一种指令高速缓冲存储器装置及其控制方法。
背景技术
目前数字信号处理器(Digital Signal Processor,简称DSP)在便携设备上得到了广泛的应用,对于以电池作为电源的移动设备,由于电池容量的大量提升在短期内是不容易实现的,这就要求DSP设计者在进行设计时不仅要考虑电路的速度,而且要考虑电路的功耗。在DSP中,存储器已经成为最大的组成部分,也是最主要的功耗来源。
指令高速缓冲存储器(简称:指令Cache)作为提高处理器内核取指速度的关键部件,占据了系统很大一部分功耗,因为内核取指令几乎在程序执行的每个周期都发生。
图1为现有技术直接相联方式的指令Cache结构示意图,它主要由标志(tag)存储器、数据(data)存储器和状态位(state)组成。当处理器内核访问指令Cache时,tag存储器根据内核地址的索引位(Index)作为地址读出标志位,并与内核地址中的Tag位进行比较,如果相等则表示命中,处理器内核直接从指令Cache中读取数据;如果不相等则表示没有命中,这时会启动一个访问主存的操作。从指令Cache的工作原理可以看出,处理器内核的取指操作需要进行大量的读tag存储器操作和比较操作,这个过程需要消耗大量的功耗。
在典型的DSP应用程序中,其核心往往是循环体代码,通常不到10%的核心代码占用了90%以上的执行时间,如果能够降低这10%的循环体代码运行时的取指功耗,则可以有效降低处理器的整体功耗。
在现有技术中,中国专利200680050607.4公布了一种使用循环缓冲器降低功耗的处理器(如图2所示)。该处理器201的处理器内核202在从指令高速缓存器203中取指令时,将形成循环的指令存储在循环缓冲器204中,待循环体代码存储完成之后,指令提取单元205开始从循环缓冲器204中取指令并交由执行单元206执行,同时禁能指令高速缓存器203以降低功耗;当循环退出时,重新使能指令高速缓存器203,指令提取单元205开始从指令高速缓存器203中取指令。
在期刊 IEEE Computer Architecture Letters,Vol.1,NO.1,April2002中Ann Gordon-Ross等人发表的《Exploiting Fixed ProgramsinEmbedded Systems:A Loop Cache Example》文章中提出了一种循环Cache(Loop Cache)的结构(如图3所示)。该结构的主要特点是在处理器内核304和指令Cache301之间插入一块更小的循环缓冲器(Loop Cache)302。Loop Cache302采用直接相联的方式,没有tag存储器。它的工作原理是:首先根据编译器提供的信息,将占用执行时间最多的循环放入Loop Cache302中,然后由选择器303根据后向跳转指令来判断是从Cache301中取指还是从Loop Cache302中取指。
上述现有技术的缺点在于:1、由于缓冲器的容量很小,当循环体的指令数目大于缓冲器的容量时,循环体代码不能装入缓冲器,处理器内核仍然需要从指令高速缓冲器中取指令;2、在填充循环缓冲器的过程中需要进行循环体代码的拷贝操作,这个过程需要消耗处理器功耗;3、现有技术需要增加一个额外的存储器,而且需要设计一个对应的存储器控制器,增加了DSP设计的面积和复杂度。
发明内容
本发明的目的是为了降低循环体代码执行过程中指令Cache的功耗。
为实现上述目的,一方面,本发明提供了一种指令高速缓冲存储器装置,该装置包括指令Cache控制器、与所述指令高速缓冲存储器控制器相连接的标志存储器和数据存储器,其中指令Cache控制器包括片选控制电路,片选控制电路用于在执行循环体代码时,禁能标志存储器;当循环体代码执行完毕后,使标志存储器正常工作。
另一方面,本发明提供了一种指令高速缓冲存储器控制方法,该方法步骤包括:在循环体代码执行时,禁能标志存储器;当循环体代码执行完毕后,标志存储器正常工作。
本发明实施例提供的指令高速缓冲存储器装置增加了对标志存储器的控制,处理器内核在执行循环体代码时,禁能标志存储器;在循环退出时,撤销标志存储器禁能信号,使标志存储器正常工作。本发明实施例在处理器内核执行循环体代码时,通过禁能标志存储器减少了对标志存储器的读操作和比较操作,从而降低了处理器的整体功耗。
附图说明
通过以下结合附图以举例方式对本发明的实施方式进行详细描述后,本发明的其他特征、特点和优点将会更加明显。
图1为现有技术指令Cache结构示意图;
图2为现有技术带有循环缓冲器的处理器结构示意图;
图3为现有技术带有Loop Cache的处理器结构示意图;
图4为本发明实施例指令Cache装置结构图;
图5为lb指令编码格式示意图;
图6为汇编指令结构示意图。
具体实施方式
本发明实施例提供了一种指令高速缓冲存储器装置,该装置增加了用于对标志存储器进行控制的片选控制电路。处理器内核在执行循环体代码时,通过片选控制电路产生禁能控制信号,禁能标志存储器;在循环退出时撤销标志存储器禁能信号,使标志存储器正常工作。本发明实施例在处理器内核执行循环体代码时,通过禁能标志存储器,减少了处理器内核对标志存储器的读操作和比较操作,从而降低了处理器的整体功耗。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
以下结合图4针对本发明实施例提供的指令Cache装置及其控制方法进行详细描述。图4为本发明实施例指令Cache装置结构示意图。如图4所示,该装置包括指令Cache控制器和存储体,其中指令Cache控制器包括指令Cache控制电路410和片选控制电路420,存储体包括与指令Cache控制器相连接的数据存储器430和标志存储器440。
指令Cache控制器与存储体直接相连,接收处理器内核发送的读控制信号、循环首地址、循环尾地址和指令地址PC,并向处理器内核发送读出数据。
片选控制电路420包括用于存储循环体代码首地址的第一寄存器421,该第一寄存器421的输出端与第一比较单元423的输入端相连、用于存储循环体代码尾地址的第二寄存器422,该第二寄存器422的输出端与第一比较单元423的输入端,以及与第二比较单元424的输入端相连、用于判断指令地址PC是否处于循环体范围内的第一比较单元423、用于判断指令地址PC是否等于循环体代码尾地址的第二比较单元424、连接第一比较单元423的非门电路425、以及连接该非门电路425输出端的与门电路426,该与门电路426的输出端与第二比较单元424的输出端一起连接到或门电路427的输入端、该或门电路427的输出端连接D触发器428的输入端,该D触发器428接收系统时钟信号和复位信号,其输出端连接到与门电路426和或门电路429的输入端、或门电路429的输入端还与指令Cache控制电路410的一个输出端连接,其输出端口与标志存储器440的片选信号连接。
指令Cache控制电路410用于输出标志存储器的片选信号(tag_cen)和其他控制信号,例如数据存储器的片选控制信号、读写控制信号、地址;以及标志存储器的读写控制信号、地址。
在程序运行过程中,如果处理器内核(图中未标示)在指令译码阶段检测到循环体代码,则向指令Cache控制器发送循环体代码首地址和循环体代码尾地址。指令Cache控制器将接收到的循环体代码首地址存储到片选控制电路420的第一寄存器421中,将接收到的循环体代码尾地址存储到片选控制电路420的第二寄存器422中。处理器内核在取指过程中,指令Cache控制器先通过片选控制电路420的第二比较单元424将指令地址PC与第二寄存器422中存储的循环体代码尾地址进行比较。如果相等,则输出eq信号(eq=1),通过或门电路427输出高电平,D触发器428产生一个控制信号(tag_ctl=1),或门电路429输出高电平,禁能标志存储器440(标志存储器的片选信号为低有效)。此时循环体的代码已全部读到数据存储器430中,在循环体代码的运行过程中,处理器内核将数据存储器430当作普通的存储器直接进行取指操作,而不需要再对标志存储器440进行读操作和比较操作。当片选控制电路420的第一比较单元423满足比较条件时,即指令地址PC小于循环体代码首地址或大于循环体代码尾地址(循环体代码执行完毕),则输出glt信号(glt=1),glt信号经过非门电路425输出低电平,通过与门电路426输出低电平,或门电路427输出低电平,D触发器428产生一个控制信号tag_ctl(tag_ctl=0),或门电路429的输出由指令Cache控制电路输出的标志存储器片选信号(tag_cen)控制,此时标志存储器440正常工作。
以下针对本发明实施例中的循环体代码首地址和尾地址的生成过程进行描述:
循环体代码的检测需要由编译器来控制,编译器通过一条特殊指令(例如,指令lb)来实现(处理器需要支持lb指令)。lb指令的指令形式为lb size,其中size代表循环体代码中的指令数量,它的编码格式如图5所示,其中opcode为指令操作码,size为循环体代码的指令数量,其位宽w根据指令Cache的容量来定。编译器从程序代码中识别出循环体,当循环体中的指令数量小于指令Cache所容纳的指令数量时,将lb指令插入到循环体指令的入口处。在指令执行过程中,处理器内核在译码阶段检测到lb指令,如果lb指令的地址为lb_addr,指令位宽为32bit,则循环体代码的首地址(lb_begin)和尾地址(lb_end)分别为:
lb_begin=lb_addr+4;
lb_end=lb_addr+(size<<2);
当循环体代码全部取回到指令Cache中之后,指令Cache控制器禁能标志存储器,处理器内核直接从指令Cache中取指令,而不需要进行标志的比较;当循环体代码执行完成后,指令Cache控制器将取消标志存储器禁能信号,使标志存储器正常工作。标志存储器440禁能信号的生成电路可以用以下的Verilog代码描述:
其中clk为系统时钟信号,rst为复位信号。将tag_ctl控制信号与指令Cache控制电路输出的控制信号tag_cen进行或操作,其结果作为标志存储器440新的片选控制信号,即可完成执行循环体代码时对标志存储器440的控制。
以下通过一个例子来说明本发明实施例的具体应用。
假如指令Cache的容量为16KB,块大小为128bit,采用直接相联的方式。指令带宽为128bit,处理器内核一次可以取回4条指令。由于指令Cache可以容纳216=4096条指令,从而循环体检测指令lbs ize指令编码中的size位宽应小于或等于12。编译器生成的汇编指令结构如图6所示,其中循环体指令数量为200条。编译器在循环体代码的入口处插入一条循环体检测指令lb0x00c8,该指令的地址为pc_lb=0x00004000,处理器内核在执行lb指令时,会生成循环体代码的首地址和尾地址:
lb_begin=0x00004000+4=0x00004004;
lb_end=0x00004000+(0x00c8<<2)=0x00004320;
由于处理器内核访问指令Cache的带宽为128bit,当检测循环体指令地址时,地址的低4位不需要进行比较。即
eq=(pc[31:4]==0x0000432);
glt=(pc[31:4]<0x0000400)||(pc[31:4]>0x0000432);
假设循环体执行50次,传统的指令Cache结构需要读标志存储器的次数为:N=100/4+(200/4)*50+300/4=2600次。本发明实施例需要进行的读标志存储器的次数为:N_opt=100/4+200/4+300/4+1=151,本发明实施例相对于传统的指令Cache结构减少了2449次读标志存储器操作,从而可以降低处理器的整体功耗。
本发明实施例提供的指令Cache装置在处理器内核执行循环体代码时,通过禁能标志存储器,减少了处理器内核对标志存储器的读操作和比较操作,从而降低了处理器的整体功耗。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种指令高速缓冲存储器装置,包括指令高速缓冲存储器控制器、与所述指令高速缓冲存储器控制器相连接的标志存储器和数据存储器,其特征在于,所述指令高速缓冲存储器控制器包括:
片选控制电路,用于在执行循环体代码时,禁能所述标志存储器;当所述循环体代码执行完毕后,使所述标志存储器正常工作;
所述片选控制电路包括:控制寄存器、输入端与所述控制寄存器输出端相连的第一比较单元和输入端与所述控制寄存器输出端相连的第二比较单元,所述控制寄存器,用于存储所述循环体代码的首地址和尾地址;
第一比较单元,用于判断所述指令地址PC是否处在所述循环体范围内;
第二比较单元,用于判断所述指令地址PC是否等于所述循环体代码的尾地址。
2.根据权利要求1所述的装置,其特征在于,所述片选控制电路还用于:
接收循环体代码的首地址和尾地址,当指令地址PC等于所述循环体代码的尾地址时,禁能所述标志存储器;当所述指令地址PC不在循环体范围内时,使所述标志存储器正常工作。
3.根据权利要求2所述的装置,其特征在于,所述控制寄存器包括输出端与所述第一比较单元的输入端相连的第一寄存器、输出端与所述第一比较单元的输入端,以及与所述第二比较单元的输入端相连的第二寄存器,所述
第一寄存器,用于存储所述循环体的首地址;所述
第二寄存器,用于存储所述循环体的尾地址。
4.一种指令高速缓冲存储器控制方法,其特征在于:
在执行循环体代码时,禁能标志存储器;当所述循环体代码执行完毕后,所述标志存储器正常工作;
所述在执行循环体代码时,禁能标志存储器步骤具体包括:
将所述循环体代码的尾地址与指令地址PC进行比较,当所述指令地址PC等于所述循环体代码的尾地址时,禁能标志存储器;
所述当所述循环体代码执行完毕后,所述标志存储器正常工作步骤具体包括:
将所述循环体代码的首地址和尾地址与指令地址PC进行比较,当所述指令地址PC不在循环体范围内时,所述标志存储器正常工作。
5.一种处理器装置,其特征在于包括如权利要求1至3任一权利要求所述的指令高速缓冲存储器装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242426.9A CN102789428B (zh) | 2012-07-12 | 2012-07-12 | 一种指令高速缓冲存储器装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242426.9A CN102789428B (zh) | 2012-07-12 | 2012-07-12 | 一种指令高速缓冲存储器装置及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789428A CN102789428A (zh) | 2012-11-21 |
CN102789428B true CN102789428B (zh) | 2014-12-31 |
Family
ID=47154833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210242426.9A Expired - Fee Related CN102789428B (zh) | 2012-07-12 | 2012-07-12 | 一种指令高速缓冲存储器装置及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789428B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242904B (zh) * | 2015-09-21 | 2018-05-18 | 中国科学院自动化研究所 | 用于处理器指令缓冲与循环缓冲的装置及其操作方法 |
US10459727B2 (en) * | 2015-12-31 | 2019-10-29 | Microsoft Technology Licensing, Llc | Loop code processor optimizations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101375244A (zh) * | 2005-11-15 | 2009-02-25 | Mips技术公司 | 使用循环缓冲器降低功耗的处理器 |
-
2012
- 2012-07-12 CN CN201210242426.9A patent/CN102789428B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101375244A (zh) * | 2005-11-15 | 2009-02-25 | Mips技术公司 | 使用循环缓冲器降低功耗的处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN102789428A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240457A (zh) | 一种基于risc-v的动态功耗管理方法 | |
CN104380257A (zh) | 在处理器核之间调度任务 | |
US9201658B2 (en) | Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries | |
CN103069497B (zh) | 减少内容可寻址存储器的电力使用的系统和方法 | |
CN101960433A (zh) | 用于高速缓冲存储器线替代的系统和方法 | |
KR102377361B1 (ko) | 전자 시스템 및 그것의 출력 방법 | |
CN104516477B (zh) | 进入低功率状态的技术 | |
CN101189574B (zh) | 指令存储器单元和操作方法 | |
EP2207101A1 (en) | Method and device for parallel interfacing | |
CN108572931B (zh) | 存储器加载到加载熔合 | |
CN102789428B (zh) | 一种指令高速缓冲存储器装置及其控制方法 | |
CN105242904B (zh) | 用于处理器指令缓冲与循环缓冲的装置及其操作方法 | |
US20240020246A1 (en) | Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium | |
CN112578895A (zh) | 降低非易失性存储器中的由于待机泄漏电流引起的功耗 | |
CN101681274B (zh) | 接口处理器 | |
CN101164035B (zh) | 基于已知的处理器状态而选择性地启用内容可寻址存储器重命名寄存器文件中的比较器的功率节约方法和设备 | |
CN102637149B (zh) | 一种处理器及其运行方法 | |
CN110929830A (zh) | 一种uhf-rfid标签芯片的基带架构及状态控制方法 | |
CN104391563B (zh) | 一种寄存器堆的循环缓冲电路及其方法,处理器装置 | |
CN106776394B (zh) | 一种数据转换的硬件系统和存储器 | |
US20040128573A1 (en) | Processor core and methods to reduce power by not using components dedicated to wide operands when a micro-instruction has narrow operands | |
CN102467410B (zh) | 一种通用流程调度引擎的控制方法、装置及终端 | |
CN104423927A (zh) | 指令处理方法及装置、处理器 | |
CN114721464A (zh) | 片上系统和计算装置 | |
WO2020155545A1 (zh) | 一种可编程gpio装置及基于该装置的时序实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141231 Termination date: 20190712 |
|
CF01 | Termination of patent right due to non-payment of annual fee |