CN1445661A - 一种降低指令cache功耗的控制逻辑 - Google Patents

一种降低指令cache功耗的控制逻辑 Download PDF

Info

Publication number
CN1445661A
CN1445661A CN 03116564 CN03116564A CN1445661A CN 1445661 A CN1445661 A CN 1445661A CN 03116564 CN03116564 CN 03116564 CN 03116564 A CN03116564 A CN 03116564A CN 1445661 A CN1445661 A CN 1445661A
Authority
CN
China
Prior art keywords
cache
visit
group selection
group
power consumption
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.)
Pending
Application number
CN 03116564
Other languages
English (en)
Inventor
张宇弘
王界兵
严晓浪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN 03116564 priority Critical patent/CN1445661A/zh
Publication of CN1445661A publication Critical patent/CN1445661A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种降低指令cache功耗的控制逻辑。一方面利用访问索引标志存储器的间隙来提前访问索引标志存储器,得到并保存下一个cache行的行匹配和组选择信息,这使得在取指过程中,只需开启一个组的数据存储器就可以得到指令,从而减少对数据存储器的访问;在提前访问索引标志存储器时,还可利用预测机制来减少对索引标志存储器的访问。另一方面利用环形历史缓冲区来记录每次访问索引标志存储器得到的组选择信息及地址范围,在程序跳转时如果地址落在环形历史缓冲区内,组选择信息可以被重用,从而减少对索引标志存储器的访问次数来节省功耗。利用本发明可以极大地节省功耗,而且具有硬件代价小,实现简单的优点。

Description

一种降低指令cache功耗的控制逻辑
                          技术领域
本发明涉及一种降低指令cache功耗的控制逻辑。
                          背景技术
cache可以提供比主存快得多的访问速度,已经成为现代CPU的必要组成部件。但同时cache也成为芯片的主要耗电部件,在有些设计中,cache的耗电量占了整个芯片的30%以上。在对功耗非常敏感的应用中,cache的应用受到了限制,结果往往是减少cache的容量来求得折衷的效果。
Cache的基本结构一般由数据存储器和索引标志存储器两部分组成。下面以一块32位CPU中的指令cache为例来说明其工作原理,该cache容量8K字节,行大小为16字节,映像方式是2路组关联,如图1所示。
1)来自CPU的地址被分为28位行帧地址和4位行内地址,行帧地址又分成20位标志和8位索引。
2)根据8位索引同时访问cache中的两路组,读取相应索引标志存储器的有效位、标志以及数据存储器的数据。
3)行帧地址的标志域与步骤2读取的两个行标志作相等比较。为保证相应行的数据有效,对应行的有效位必须是被置位的,否则比较结果无效。
4)假设有一行标志与行帧地址的标志相匹配,则由2选1多路选择器选取相应的数据行。两个行标志同时匹配的情况是不可能发生的,因为替换算法保证了一个数据行只有一个行标志。
5)读cache失配时,cache向CPU发出一个停顿信号通知CPU等待,并从主存中读入数据。
在图1中,两块索引标志存储器可以用一个静态RAM来实现。
除去cache的控制通路外,cache的数据通路就是几块静态RAM。节省功耗的办法可以是改进静态RAM的内部结构,这一方法已被广泛地研究和讨论。另外在低功耗SRAM基础上,设法减少对cache的访问次数。
在此之前,对减少cache访问次数的研究集中在分步访问上。即先访问索引标志存储器,以访问的结果来确定是否访问某一组数据存储器,如图2所示。这样会不可避免地把索引标志存储器和数据存储器放在不同的流水节拍上,从而增加流水线级数,影响系统性能。
                          发明内容
本发明提出了一种降低指令cache功耗的控制逻辑。
它的步骤如下:
1)根据程序顺序执行的特点,在一个cache行内只访问一次索引标志存储器,保存行匹配和组选择结果;
2)当下一个指令仍然在该cache行内,利用所保存的组选择结果来减少对数据存储器的访问;
3)根据程序顺序执行的特点,作出对下一个要访问的cache行的预测并利用间隙提前访问索引标志存储器,从而提前得到下一个cache行的行匹配和组选择结果;
4)当取下一cache行的指令时,利用步骤3的组选择结果来减少对数据存储器的访问;
5)使用环形历史缓冲区来保存组选择的历史记录,并通过保存历史记录来减少对索引标志存储器的访问
本发明的优点在于硬件开销小,方法简单,节省功耗效果明显,适用于16位,64位等不同字长,多路组相关的指令cache的设计。本发明适用于不同字长的CPU或ASIC芯片。
                          附图说明
图1是cache的基本结构示意图;
图2是已公布的低功耗cache的结构示意图;
图3是利用组选择环形历史缓冲区的低功耗指令cache的结构示意图;
图4是对组选择环形历史缓冲区的工作状态示意图;
图5是cache控制通路的状态示意图;
                         具体实施方式
本发明充分利用了指令执行的行为特点。
对于地址上相邻的两条指令,设前一条指令为A,后一条指令为B,在cache里的存放可能有两种情况。即A和B可能在同一行内,也可能在相邻的行内。由于指令执行具有顺序性的特点,据研究结果,80%左右的程序代码都是顺序执行的。本发明利用这个特点对行内和相邻行之间的cache访问进行优化。
对于A和B在行内的情况,因为一个行只有一个标志,对索引标志存储器的一次访问得到的信息就可以代表这个行内其它地址的信息。在访问A后,保持所选中的组选择和行匹配(命中)信息,并把这两个信息位用于这个行的其它地址的指令的读取。因为指令的顺序性,在大部分情况下,下一个要取的指令就是指令B。在取B时,与图1所示的cache基本结构的工作过程不同,步骤2对索引标志存储器的访问可以略去,对数据存储器的访问也只要访问其中被选中的那组就可以了。
对于A和B分别在相邻行的情况,也可以利用指令顺序的特点。由于一个行内只需要访问一次索引标志存储器,所以在大部分情况下,索引标志存储器处于空闲状态。所以在取A所在的行的指令时,预测下一条要取的指令B在顺序的下一个行中,提前访问索引标志存储器以得到B所在行的组选择和行匹配信息。这样,当取指令B时,对数据存储器的访问也只要访问其中被选中的那组就可以了。所以说,提前访问索引标志存储器可以大大减少数据存储器上的功耗,这是本发明的一个显著特征。
另外根据对程序行为的研究得出,向后的跳转远远多于向前的跳转,所以如果能够能把以前访问索引标志存储器的结果记录下来,就可以避免重复访问索引标志存储器。本发明利用环形历史缓冲区来记录组选择的历史。
利用组选择环形历史缓冲区的低功耗指令cache的结构如图3所示。环形历史缓冲区
在说明之前,先定义跳转指令分类:
1)相对位移指令,作相对地址的跳转,如MIPS中的b,beq等指令。
2)绝对位移指令,作绝对地址的跳转,如MIPS中的j,jal等指令。
本发明通过环形历史缓冲区来记录组选择的结果。如图4所示。环形历史缓冲区中设置三个指针,一个头指针,一个尾指针和一个当前行指针。在头指针和尾指针之间的部分是有效区,代表了一段连续的地址区域。环形历史缓冲区中位于有效区的信息单元记录着这个连续地址区域内的cache行上的组选择信息。
1)程序复位后,环形历史缓冲区的三个指针都为0。如图4a
2)当索引标志缓冲区在空闲状态,如果下一行在有效区以外,即头指针与当前行指针相等,则提前访问下一行的一个组,访问所预测的组的索引标志存储器。
3)在开始访问下一行的指令时,环形历史缓冲区的当前行指针下移。如果步骤2预测成功,组选择结果存入环形历史缓冲区的头指针所指的位置,头指针下移,如图4b;如果步骤2预测失败,环形历史缓冲区等待正确的组选择结果,头指针直到得到行匹配和组选择结果后才下移,如图4c。
4)如果发生相对位移指令,只要位移量落在环形历史缓冲区的有效区内,当前行指针作相应变动,如图4d。
5)如果环形历史缓冲区满了,头指针和尾指针指向同一单元,如图4e。
6)如果发生绝对位移指令,或者相对位移指令落在环形历史缓冲区的有效区外,将环形历史缓冲区清空,跳到步骤2开始执行。
因为环形历史缓冲区记录的是顺序的行,可以推理得出:只要环形历史缓冲区的信息单元个数小于cache行数,在除了绝对位移和相对位移跳出有效区的情况外,即使发生cache不命中,有效区内的信息仍然维持有效。控制状态机
仍然以上述的32位CPU为例,以下作举例说明。在举例说明前,先定义Cache的访问模式:
1)基本模式指同时访问所有组的索引标志存储器和数据存储器,以索引标志存储器的结果来选择数据存储器的输出。
2)组选择省电模式指只访问一个组的索引标志存储器和数据存储器。
3)数据省电模式指只访问一个组的数据存储器。
4)索引省电模式指在访问当前行的一个组的数据存储器的同时,根据预测访问下一行的一个组的索引标志存储器。
5)行替换模式在cache不命中时,从主存取数据来替换cache行。
Cache控制通路状态机如图5所示,在状态机中共有五个状态,对应五种访问模式,状态的切换过程如下:
1)状态机被复位到正常模式访问cache.
2)如果正常模式访问cache没有命中,就进入行替换模式。
3)在行替换完成后,根据低位地址来区别是进入数据省电模式还是索引省电模式。更新环形历史缓冲器。
4)在数据省电模式下,由低位地址判断是否进入索引省电模式。
5)如果在索引省电模式下预测命中,回到数据省电模式,否则进入组选择省电模式。更新环形历史缓冲器。
6)如果在组选择省电模式下命中,回到数据省电模式,否则,进入行替换模式。更新环形历史缓冲器。
7)如果发生绝对跳转或相对转移跳出有效区,进入正常模式,清空环形历史缓冲器。
在顺序执行时,只需要地址的低位就可以判断访问地址是否落在上次访问的行内了。比如说在介绍基本结构时拿来举例的cache里,对32位指令,地址线A1,A0是没有实际意义的。所以如果次低的两位地址线(A3,A2)都为O,则没有落在上次访问的行内,反之,则落在上次访问的行内。同理,在判断何时进入索引省电模式时,也可以用地址的低位来判断。
如果程序控制发生转移,可以通过流水线其它节拍来的转移控制信号和地址偏移量来判断是否落在环形历史缓冲区内。例如,在上例中如果实现了一个包括8个信息单元的环形历史缓冲区,在向后位移时,先用一个3位减法器计算当前行指针和尾指针的位移
Figure A0311656400071
将行位移量和当前低位地址合并得到当前地址相对尾指针的偏移量 如果程序位移偏移量的低5位小于当前地址相对尾指针的偏移量,就说明程序位移仍然在有效区内。
可以看出,在例子中,如果一行有8个指令,在顺序执行的情况下,第一个指令在预测成功时工作在数据省电模式,在预测失败时工作在组选择省电模式下;取接着的6个指令时,工作在最省电的数据省电模式下;第8个指令工作在索引省电模式下。所以在顺序执行的情况下,每个cache行指令越多越省电。当然在系统设计中,还有性能方面的考虑。对下一行所在的组进行预测的分析
在索引省电模式下,可以对下一个cache行所在的组进行预测,并只访问所预测的组的索引标志存储器。如果预测命中,就不需要访问另一个组的索引标志存储器;如果不命中,进入组选择省电模式。在例子中,如果随机作出预测,指令在所预测的组内的概率应该为50%。采用更准确的预测算法可以节省远远高于50%的索引标志存储器访问次数。

Claims (7)

1.一种降低指令cache功耗的控制逻辑,其特征在于,它的步骤如下:
1)在一个cache行内只访问一次索引标志存储器,保存行匹配和组选择结果;
2)利用所保存的组选择结果来减少对数据存储器的访问;
3)作出对下一个要访问的cache行的预测并利用间隙提前访问索引标志存储器,从而得到下一行的cache行的行匹配和组选择结果;
4)在行与行切换时,利用步骤3的组选择结果来减少对数据存储器的访问;
5)使用环形历史缓冲区来保存组选择的历史记录和预测结果。
2.根据权利要求1所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的利用所保存的组选择结果来减少对数据存储器的访问,即设置一存储单元保存上次访问过的数据存储器的组号,在同一cache行内,只需访问该存储单元所指的数据存储器,而不需要访问索引标志存储器和其它组的数据存储器。
3.根据权利要求1所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的作出对下一个要访问的cache行的预测并提前访问索引标志存储器,从而提前得到所预测的cache行的行匹配和组选择结果。
4.根据权利要求1所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的在行与行切换时,利用预先获得的组选择结果来减少对数据存储器的访问。就是在取下一行的指令时,只需访问预先得到的组选择结果所指的数据存储器,而不需要访问索引标志存储器和其它组的数据存储器。
5.根据权利要求1所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的使用环形历史缓冲区来保存组选择的历史记录和预测结果,在顺序执行和相对位移跳转仍然落在有效区内时,利用环形历史缓冲区的输出来替代访问索引标志存储器。
6.根据权利要求1或3所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的作出对下一个要访问的cache行的预测并提前访问索引标志存储器,一次只访问一个组的索引标志存储器,在命中的情况下,不对其它组的索引存储器进行访问。
7.根据权利要求1或5所述的一种降低指令cache功耗的控制逻辑,其特征在于:所说的相对位移跳转落在有效区内,其判断方法是利用相对位移的偏移量及跳转地址的低位。
CN 03116564 2003-04-21 2003-04-21 一种降低指令cache功耗的控制逻辑 Pending CN1445661A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03116564 CN1445661A (zh) 2003-04-21 2003-04-21 一种降低指令cache功耗的控制逻辑

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 03116564 CN1445661A (zh) 2003-04-21 2003-04-21 一种降低指令cache功耗的控制逻辑

Publications (1)

Publication Number Publication Date
CN1445661A true CN1445661A (zh) 2003-10-01

Family

ID=27814897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03116564 Pending CN1445661A (zh) 2003-04-21 2003-04-21 一种降低指令cache功耗的控制逻辑

Country Status (1)

Country Link
CN (1) CN1445661A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100444134C (zh) * 2005-05-31 2008-12-17 国际商业机器公司 数据处理系统和方法
CN101106776B (zh) * 2007-06-04 2010-11-10 北京中星微电子有限公司 一种降低基带芯片接口功耗的方法及相应芯片
CN103257850A (zh) * 2013-05-03 2013-08-21 中国科学院声学研究所 一种基于标志位访问踪迹的指令高速缓冲存储器
CN101727311B (zh) * 2009-12-03 2013-11-27 浙江大学 用于降低指令缓存功耗的分支序列缓冲器
CN105446840A (zh) * 2015-11-24 2016-03-30 无锡江南计算技术研究所 一种Cache一致性极限测试方法
CN113138657A (zh) * 2020-01-17 2021-07-20 炬芯科技股份有限公司 一种降低cache访问功耗的方法和电路

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100444134C (zh) * 2005-05-31 2008-12-17 国际商业机器公司 数据处理系统和方法
CN101106776B (zh) * 2007-06-04 2010-11-10 北京中星微电子有限公司 一种降低基带芯片接口功耗的方法及相应芯片
CN101727311B (zh) * 2009-12-03 2013-11-27 浙江大学 用于降低指令缓存功耗的分支序列缓冲器
CN103257850A (zh) * 2013-05-03 2013-08-21 中国科学院声学研究所 一种基于标志位访问踪迹的指令高速缓冲存储器
CN105446840A (zh) * 2015-11-24 2016-03-30 无锡江南计算技术研究所 一种Cache一致性极限测试方法
CN113138657A (zh) * 2020-01-17 2021-07-20 炬芯科技股份有限公司 一种降低cache访问功耗的方法和电路

Similar Documents

Publication Publication Date Title
US7228388B2 (en) Enabling and disabling cache bypass using predicted cache line usage
US7694077B2 (en) Multi-port integrated cache
CN100517274C (zh) 高速缓冲存储器及其控制方法
US6961821B2 (en) Reconfigurable cache controller for nonuniform memory access computer systems
CN102937937B (zh) 数据预取器及预取数据至高速缓存存储器的方法
CN1302376C (zh) 利用第二级分支预测表的分支预测的方法和设备
US20080276044A1 (en) Processing apparatus
TWI382426B (zh) 預測快取記憶體之存取位置的方法及系統
CN1341242A (zh) 高速处理器系统,使用该系统的方法和记录介质
CN101256481A (zh) 数据处理器以及存储器读激活控制方法
CN1659525A (zh) 简化了缓存替换策略的实现的多线程缓存方法和装置
CN100541452C (zh) 处理高速缓存未命中的方法和装置
CN1306419C (zh) 一种高速缓存及从高速缓存读取数据的方法
CN103198026A (zh) 指令高速缓存功耗降低
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
US6898671B2 (en) Data processor for reducing set-associative cache energy via selective way prediction
CN1728111B (zh) 清除而不用写回包含失效数据的高速缓存行
CN1155893C (zh) 具有低电耗指令高速缓冲存储器的数据处理器
US8271732B2 (en) System and method to reduce power consumption by partially disabling cache memory
CN1445661A (zh) 一种降低指令cache功耗的控制逻辑
US7555610B2 (en) Cache memory and control method thereof
CN103092774A (zh) 一种处理器末级高速缓存的管理系统及方法
CN102541761A (zh) 应用于嵌入式芯片的只读高速缓冲存储器
CN100595738C (zh) 一种面向嵌入式应用的软件可控Cache的实现方法
CN107506139A (zh) 一种面向相变存储器的写请求优化装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication