CN1746865A - 数字信号处理器可重构指令高速缓存部分的实现方法 - Google Patents
数字信号处理器可重构指令高速缓存部分的实现方法 Download PDFInfo
- Publication number
- CN1746865A CN1746865A CNA2005100304559A CN200510030455A CN1746865A CN 1746865 A CN1746865 A CN 1746865A CN A2005100304559 A CNA2005100304559 A CN A2005100304559A CN 200510030455 A CN200510030455 A CN 200510030455A CN 1746865 A CN1746865 A CN 1746865A
- Authority
- CN
- China
- Prior art keywords
- cache
- set associative
- road set
- caches
- pseudo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种处理器技术领域的数字信号处理器可重构指令高速缓存部分的实现方法,在2路组相联高速缓存的基础上增加两块可重配置起始地址即高位匹配地址的直接映射高速缓存,直接映射高速缓存的打开与关闭以及起始地址均可配置。直接相联高速缓存必须在2路组相联高速缓存打开的情况下才可工作,直接相联高速缓存具有较高优先级,打开一块直接映射高速缓存与2路组相联高速缓存构成伪3路组相联高速缓存;打开两块直接映射高速缓存于2路组相联高速缓存构成伪4路组相联高速缓存,直接映射高速缓存的高位匹配地址是统一的。本发明针对数字信号处理器的特点,基于高速缓存组相联路数可选的思想,提供了结构灵活、实现简单、性能优化的低功耗伪多路组相联高速缓存。
Description
技术领域
本发明涉及的是一种处理器技术领域的方法,特别是一种数字信号处理器可重构指令高速缓存部分的实现方法。
背景技术
高速缓存(cache)是一种解决主存储器访问速度远远滞后于处理器运算速度而采用的重要技术。通常在处理器和主存之间设置小容量的固定结构的高速存储器,采用特定的算法实现主存存取数据与处理器运算速度的匹配,如ARM9系列的处理器。数字信号处理器作为嵌入式设备的处理器对功耗和性能有比较高的要求。一般的数字信号处理器的高速缓存能提升处理器的性能,但在功耗和资源方面会带来一定损失。而且,嵌入式应用丰富多样,一般固定结构的高速缓存无法对不同的应用进行相应的重配置来更好地发挥高速缓存的功能。
经对现有技术的文献检索发现,1999年第32届国际微结构年会学报(Proceedings of the 32nd Annual International Conference onMicroarchitecture,1999)《Selective Cache Ways:On-Demand Cache ResourceAllocation》(《选择性缓存法:按需分配缓存资源》)一文中提出高端处理器针对不同应用选择高速缓存组相联路数的思想。该文基于传统多路组相联高速缓存结构,通过关闭多余的高速缓存路数的方法达到对不同应用处理器性能的优化,由于该文讨论基于高端处理器,在功耗和存储容量上未作特别考虑(减少高速缓存组相联路数会减少高速缓存的容量,额外控制逻辑要求更大的功耗)。
2000年IEEE/ACM国际微处理器结构年会(Microarchitecture,2000.MICRO-33.Proceedings.33rd Annual IEEE/ACM International Symposium)《Memory hierarchy reconfiguration for energy and performance ingeneral-purpose processor architecuture》(《在通用处理器架构中的基于功耗和性能的内存层次配置》)一文中提出可重构高速缓存的思想。可重构高速缓存思想多应用于结构复杂的处理器以处理一级高速缓存和二级高速缓存间的重新构建。但是未有具体的可重构高速缓存技术的说明。
在进一步的检索中,尚未发现与本发明主题相同或者类似的文献报道。
发明内容
本发明的目的在于针对现有技术的不足以及数字信号处理器大运算量的特点,提供一种数字信号处理器可重构指令高速缓存部分的实现方法,使其实现的用于数字信号处理器的可重构高速缓存(reconfigurable cache)具体低功耗的灵活的特点,能通过配置构成2路组相联、伪3路及伪4路组相联高速缓存或片上内存4种形式,同时构成伪多路组相联高速缓存时映射地址可重配置。针对数字信号处理器的不同的应用,实现同一处理器通过重构高速缓存结构和实时配置实现功耗与性能的最优化。
本发明是通过以下技术方案实现的,本发明是在2路组相联高速缓存的基础上增加两块可重配置起始地址的直接映射高速缓存(ramset),ramset的打开与关闭以及起始地址均可配置。可重构成2路组相联高速缓存,伪3路及伪4路组相联高速缓存以及片上内存4种形式。ramset必须在2路组相联高速缓存打开的情况下才可工作,ramset具有较高优先级,因为直接相联命中速度比2路组相联更快速。打开一块ramset可与2路组相联高速缓存构成伪3路组相联高速缓存;打开两块ramset可与2路组相联高速缓存构成伪4路组相联高速缓存。一般多路组相联高速缓存每一路共享相同的地位地址而高位地址I(相当于tag部分)可自由变动,且各组之间在替换时不存在优先级。直接映射高速缓存的高位匹配地址是统一的,故形成的高速缓存称为伪多路组相联高速缓存。
这种结构对于高位匹配地址与ramset匹配的程序段其命中时间比采用一般多路组相联结构更快速,因为ramset是直接映射结构,其结构和工作速度要比多路组相联结构更快。
基于低功耗的考虑,ramset2路组相联高速缓存均采用门控时钟实现低功耗设计。2路组相联高速缓存时钟由系统时钟提供,由高速缓存打开关闭信号控制;第一块ramset打开可构成伪3路组相联高速缓存,这块ramset的时钟由2路组相联时钟提供,ramset1开关信号控制;第二块ramset打开可构成为4路组相联高速缓存,这块ramset的时钟由第一块ramset的时钟提供,由ramset2开关信号控制。门控时钟的采用可以在各组成部分不被使用时关闭其工作时钟从而避免不必要的功率上的消耗。
本发明实现的可重构指令高速缓存部分是数字信号处理器的一个组成部分,属于数字信号处理器片上部分,针对数字信号处理器的运算特点提出4种可重构结构。通过配置相关寄存器,将高速缓存重构成2路组相联高速缓存,伪3路及伪4路组相联高速缓存以及片上内存4种形式。其中2路组相联高速缓存是基本构成形式;伪3路及伪4路组相联高速缓存的设计是考虑到数字信号处理器会大量循环使用一段连续地址空间中的程序的特点,提供更快速的高速缓存,同时也增加了高速缓存组相联的数目,可以提高高速缓存的命中率,加快取址速度;片上内存的重构是考虑到某些低功耗应用不使用高速缓存,即可扩展内存的容量,扩展大小为2路组相联高速缓存和2块直接映射缓存大小之和。
本发明通过配置一组相关寄存器来确定可重构指令高速缓存的结构,具体为:采用1比特的caen寄存器位,控制是作为高速缓存工作还是作为片上内存;采用ICGC寄存器配置是作为2路组相联、伪3路组相联还是伪4路组相联高速缓存;采用ICRTAG1和ICRTAG2两个寄存器控制伪多路组相联高速缓存第3路和第4路的匹配地址,ICRTAG1和ICRTAG2可编程修改,实现实时配置。2路组相联工作方式遵循普通意义上的组相联高速缓存工作方式。
本发明实现的是数字信号处理器片上部分,其控制信号包括工作使能信号、工作时钟、取指地址等均有中央处理器(CPU)提供,高速缓存同时向CPU提供的命中的数据或者从主存中取数据后再传送给CPU,从结构上高速缓存隔离了CPU与主存,从性能上提高了CPU的取指效率。CPU是数字信号处理器控制和运算部件,有时也称为core。
本发明在传统多路组相联高速缓存基础上添加2块比多路组相联高速缓存结构更简单、命中速度更快的直接映射高速缓存构成伪多路组相联高速缓存,同时对不同应用有可重构性实现高速缓存组相联路数的可选性及性能速度的优化;同时未被构成高速缓存的部分可作为内存使用,避免浪费;利用门控时钟的方式实现低功耗设计。本发明针对数字信号处理器的特点和高速缓存组相联路数可选的思想,提供了结构灵活、实现简单、性能优化的低功耗伪多路组相联高速缓存。
附图说明
图1本发明方法实现的可重构指令高速缓存部分外围联系图
图2本发明方法实现的可重构指令高速缓存部分详细结构框图
图3本发明方法实现的可重构指令高速缓存部分设计图
图4本发明方法实现的门控时钟框图
图5本发明方法实现的可重构指令高速缓存部分工作框图
具体实施方式
如图1所示本发明方法实现的可重构指令高速缓存部分外围联系图。描述了高速缓存与数字信号中央处理器(CPU)、主存间的关系。CPU通过控制信号配置高速缓存结构同时提供高速缓存指令地址。高速缓存根据CPU提供地址在缓存内或者主存中找到指令并传送回CPU的指令队列用于CPU的执行。图中,高速缓存控制位cean位于CPU中,ICGC,ICRTAG1和ICRTAG2均属于高速缓存控制寄存器。
如图2所示本发明方法实现的可重构指令高速缓存部分详细结构框图。本发明内部由一个2路组相联的高速缓存和2个直接映射高速缓存(ramset1,ramset2)组成,每个组成部分的时钟都是门控时钟,CPU提供控制信号和指令地址,高速缓存从主存取指令提供给CPU。
如图3所示本发明方法实现的可重构指令高速缓存部分设计图。2路组相联高速缓存内部包含数据列和标志列两部分。数据列用于存储指令,标志列(tag部分)存储指令所在地址的高位部分用于地址匹配,lru部分用于高速缓存替换算法。两块直接映射高速缓存用于与2路组相联高速缓存构成伪多路组相联高速缓存。根据图示结构,以程序地址中(Addr)部分确定2路组相联高速缓存数据列位置及直接映射高速缓存数据列位置,程序地址中标志位部分(Tag)分别与ICRTAG1,ICRTAG2和2路组相联标志比较,若和ICRTAG1或者ICRTAG2匹配成功,选择直接映射高速缓存中的数据;若否,但与2路组相联高速缓存标志列匹配,选择2路组相联高速缓存相应数据列中的数据;若均不成功则不命中,从主存中重新读入数据。
如图4所示本发明方法实现的门控时钟框图。2路组相联高速缓存的时钟(cah_clk)由高速缓存打开关闭信号(cah_en)控制,由系统时钟(sys_clk)提供;第一块ramset由其开关信号控制(rs1_en),由2路组相联的时钟(cah_clk)提供;第二块ramset由其开关信号控制(rs2_en),由第一块直接映射高速缓存地时钟(rs1_clk)提供。
如图5所示本发明方法实现的可重构指令高速缓存部分工作框图。匹配时遵循ramset1,rasmset2和2路组相联高速缓存从高到低的优先级(当所有部分都打开的情况下,若未打开则跳过这一部分,其他部分优先级不变)。先看高位部分是否与ICRTAG1,ICRTAG2或者标志列相应位置是否匹配,若否则匹配不成功,从主存中调入数据,对2路组相联采用lru替换算法;若匹配,看数据项是否有效(valid),若无效则与标志不匹配一样处理,若有效则命中,直接将高速缓存中的数据送出。
Claims (7)
1、一种数字信号处理器可重构指令高速缓存部分的实现方法,其特征在于,在2路组相联高速缓存的基础上增加两块可重配置起始地址即高位匹配地址的直接映射高速缓存,直接映射高速缓存的打开与关闭以及起始地址均可配置,直接相联高速缓存必须在2路组相联高速缓存打开的情况下才可工作,直接相联高速缓存具有较高优先级,打开一块直接映射高速缓存与2路组相联高速缓存构成伪3路组相联高速缓存;打开两块直接映射高速缓存于2路组相联高速缓存构成伪4路组相联高速缓存,直接映射高速缓存的高位匹配地址是统一的。
2、根据权利要求1所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,直接映射高速缓存在容量设置和相联方式上提供最大程度的缓存处理,同时能实现伪多路组相联功能,直接映射高速缓存的起始地址可编程重配置,通过编程能实时监控其命中情况并实现实时重配置与重构,直接映射高速缓存与2路组相联高速缓存均采用门控时钟实现低功耗设计。
3、根据权利要求1或者2所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,2路组相联高速缓存时钟由系统时钟提供,通过配置高速缓存控制寄存器来实现打开关闭信号控制;第一块直接映射高速缓存打开可构成伪3路组相联高速缓存,这块直接映射高速缓存的时钟由2路组相联时钟提供,通过开关信号实现控制;第二块直接映射高速缓存打开构成伪4路组相联高速缓存,这块直接映射高速缓存的时钟由第一块直接映射高速缓存的时钟提供,通过开关信号实现控制。
4、根据权利要求1或者2所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,2路组相联高速缓存内部包含数据列和标志列两部分,数据列用于存储指令,标志列即tag部分存储指令所在地址的高位部分用于地址匹配,lru部分用于高速缓存替换算法。
5、根据权利要求1所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,通过配置一组相关寄存器来确定可重构指令高速缓存的结构,具体为:采用1比特的caen寄存器位,控制是作为高速缓存工作还是作为片上内存;采用ICGC寄存器配置是作为2路组相联、伪3路组相联还是伪4路组相联高速缓存;采用ICRTAG1和ICRTAG2两个寄存器控制伪多路组相联高速缓存第3路和第4路的匹配地址,ICRTAG1和ICRTAG2可编程修改,实现实时配置。
6、根据权利要求1或者5所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,以程序地址中Addr部分确定2路组相联高速缓存数据列位置及直接映射高速缓存数据列位置,程序地址中标志位部分Tag分别与ICRTAG1,ICRTAG2和2路组相联标志比较,若和ICRTAG1或者ICRTAG2匹配成功,选择直接映射高速缓存中的数据;若否,但与2路组相联高速缓存标志列匹配,选择2路组相联高速缓存相应数据列中的数据;若均不成功则不命中,从主存中重新读入数据。
7、根据权利要求1或者5所述的数字信号处理器可重构指令高速缓存部分的实现方法,其特征是,两块直接映射高速缓存和2路组相联高速缓存匹配时,遵循从高到低的优先级,先看高位部分是否与ICRTAG1,ICRTAG2或者标志列相应位置是否匹配,若匹配不成功,从主存中调入数据,对2路组相联采用lru替换算法;若匹配,看数据项是否有效,若无效则与标志不匹配一样处理,若有效则命中,直接将高速缓存中的数据送出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005100304559A CN1746865A (zh) | 2005-10-13 | 2005-10-13 | 数字信号处理器可重构指令高速缓存部分的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005100304559A CN1746865A (zh) | 2005-10-13 | 2005-10-13 | 数字信号处理器可重构指令高速缓存部分的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1746865A true CN1746865A (zh) | 2006-03-15 |
Family
ID=36166409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005100304559A Pending CN1746865A (zh) | 2005-10-13 | 2005-10-13 | 数字信号处理器可重构指令高速缓存部分的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1746865A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377116C (zh) * | 2006-04-04 | 2008-03-26 | 浙江大学 | 处理器高速数据缓存重配置方法 |
CN101387986B (zh) * | 2007-09-13 | 2011-07-27 | 索尼株式会社 | 集成器件及其布置方法 |
CN103221930A (zh) * | 2010-09-27 | 2013-07-24 | 先进微装置公司 | 用于减少由积极预取所致的处理器缓存污染的方法及装置 |
WO2013113206A1 (zh) * | 2012-02-01 | 2013-08-08 | 中兴通讯股份有限公司 | 智能缓存及智能终端 |
CN104391676A (zh) * | 2014-11-10 | 2015-03-04 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种低成本高带宽的微处理器取指方法及其取指结构 |
CN105138474A (zh) * | 2015-08-11 | 2015-12-09 | 中国电子科技集团公司第三十二研究所 | 低功耗组相联高速缓存的预访问方法 |
WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
US9652400B2 (en) | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
US9652398B2 (en) | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
US9811468B2 (en) | 2014-12-14 | 2017-11-07 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US9910785B2 (en) | 2014-12-14 | 2018-03-06 | Via Alliance Semiconductor Co., Ltd | Cache memory budgeted by ways based on memory access type |
WO2019062747A1 (zh) * | 2017-09-29 | 2019-04-04 | 华为技术有限公司 | 数据访问方法以及计算机系统 |
CN110322979A (zh) * | 2019-07-25 | 2019-10-11 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110990299A (zh) * | 2020-03-03 | 2020-04-10 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
-
2005
- 2005-10-13 CN CNA2005100304559A patent/CN1746865A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377116C (zh) * | 2006-04-04 | 2008-03-26 | 浙江大学 | 处理器高速数据缓存重配置方法 |
CN101387986B (zh) * | 2007-09-13 | 2011-07-27 | 索尼株式会社 | 集成器件及其布置方法 |
CN103221930B (zh) * | 2010-09-27 | 2016-09-07 | 先进微装置公司 | 用于减少由积极预取所致的处理器缓存污染的方法及装置 |
CN103221930A (zh) * | 2010-09-27 | 2013-07-24 | 先进微装置公司 | 用于减少由积极预取所致的处理器缓存污染的方法及装置 |
WO2013113206A1 (zh) * | 2012-02-01 | 2013-08-08 | 中兴通讯股份有限公司 | 智能缓存及智能终端 |
US9632940B2 (en) | 2012-02-01 | 2017-04-25 | Zte Corporation | Intelligence cache and intelligence terminal |
CN104391676A (zh) * | 2014-11-10 | 2015-03-04 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种低成本高带宽的微处理器取指方法及其取指结构 |
CN104391676B (zh) * | 2014-11-10 | 2017-11-10 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种低成本高带宽的微处理器取指方法及其取指结构 |
WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
US9652400B2 (en) | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
US9652398B2 (en) | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
US9811468B2 (en) | 2014-12-14 | 2017-11-07 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US9898411B2 (en) | 2014-12-14 | 2018-02-20 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
US9910785B2 (en) | 2014-12-14 | 2018-03-06 | Via Alliance Semiconductor Co., Ltd | Cache memory budgeted by ways based on memory access type |
CN105138474A (zh) * | 2015-08-11 | 2015-12-09 | 中国电子科技集团公司第三十二研究所 | 低功耗组相联高速缓存的预访问方法 |
WO2019062747A1 (zh) * | 2017-09-29 | 2019-04-04 | 华为技术有限公司 | 数据访问方法以及计算机系统 |
CN110322979A (zh) * | 2019-07-25 | 2019-10-11 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110322979B (zh) * | 2019-07-25 | 2024-01-30 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110990299A (zh) * | 2020-03-03 | 2020-04-10 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1746865A (zh) | 数字信号处理器可重构指令高速缓存部分的实现方法 | |
CN103562866B (zh) | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 | |
Jones et al. | A time-multiplexed FPGA architecture for logic emulation | |
Ranganathan et al. | Reconfigurable caches and their application to media processing | |
CN103635875B (zh) | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 | |
US6205537B1 (en) | Mechanism for dynamically adapting the complexity of a microprocessor | |
EP2808783B1 (en) | Smart cache and smart terminal | |
Wang et al. | Run-time power-gating in caches of GPUs for leakage energy savings | |
AU2204299A (en) | Computer cache memory windowing | |
JPH077360B2 (ja) | キヤツシユメモリを具えた情報処理装置 | |
CN101178690B (zh) | 低功耗高性能高速暂存器 | |
US20140181413A1 (en) | Method and system for shutting down active core based caches | |
CN100399299C (zh) | 一种高速缓存失效的处理器访存指令处理方法 | |
Zhang et al. | Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads | |
Michaud | Exploiting the cache capacity of a single-chip multi-core processor with execution migration | |
CN101004715B (zh) | 地址转换器和地址转换方法 | |
Armejach et al. | Using a reconfigurable L1 data cache for efficient version management in hardware transactional memory | |
Shi et al. | A triplet-based computer architecture supporting parallel object computing | |
CN114064560B (zh) | 一种面向粗粒度可重构阵列的可配置便笺式缓存设计方法 | |
CN100428200C (zh) | 一种片上指令cache的实现方法 | |
CN105893036A (zh) | 一种嵌入式系统的兼容式加速器扩展方法 | |
Ungethüm et al. | Overview on hardware optimizations for database engines | |
Albonesi | An architectural and circuit-level approach to improving the energy efficiency of microprocessor memory structures | |
Wong et al. | A hardware cache memcpy accelerator | |
CN1295599C (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 |