CN103810122B - 用于嵌入式系统的高速缓存器 - Google Patents
用于嵌入式系统的高速缓存器 Download PDFInfo
- Publication number
- CN103810122B CN103810122B CN201310721853.XA CN201310721853A CN103810122B CN 103810122 B CN103810122 B CN 103810122B CN 201310721853 A CN201310721853 A CN 201310721853A CN 103810122 B CN103810122 B CN 103810122B
- Authority
- CN
- China
- Prior art keywords
- instruction
- address
- command
- information
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种用于嵌入式系统的高速缓存器,包括地址路径模块、数据路径模块、控制逻辑模块和指令存储模块;指令存储模块包括指令数据寄存器、指令地址寄存器、状态寄存器,指令数据寄存器用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器用于集中存放所述若干个指令段中各自的有效状态信息;当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器中相应的指令状态位置“0”即无效。本发明可以方便的清除指令段,且在CPU对指令存储器执行编程操作后,可以支持仅清除掉高速缓存器中该编程地址对应的指令段,大大缩短了清除缓存的时间。
Description
技术领域
本发明涉及嵌入式系统领域,具体涉及一种用于嵌入式系统的高速缓存器。
背景技术
目前针对指令Cache的实现主要包括以下几种:内嵌在CPU中,通过CPU执行特殊的Cache指令来实现Cache的flush等操作;还有就是独立在CPU外部的片上指令Cache,但其属性等状态信息和数据、地址信息一起存储到一块memory中,当用户读取指令后,读入的指令会填充到Cache内部的一个cache line中,此后如果用户对外部的存储设备执行编程操作,为了保证外部存储器与cache的一致性,就需要flush整块memory,这样带来的后果就是效率低下,因为用户需要对指令存储器的编程操作及其少,如果因为编程操作导致用户flush整块memory,不仅耗时较长,而且严重降低了整个系统的性能。
发明内容
本发明目的是提供一种用于嵌入式系统的高速缓存器,该用于嵌入式系统的高速缓存器不仅可以方便的flush cache,而且在CPU对指令存储器执行编程操作后,可以支持仅flush掉Cache中该编程地址对应的cache line,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要flush cache的时间,而且只会flush被修改的cache line,不会影响cache里其他的内容,不会对系统性能造成大的影响。
为达到上述目的,本发明采用的技术方案是:一种用于嵌入式系统的高速缓存器,包括地址路径模块、数据路径模块、控制逻辑模块和指令存储模块;所述地址路径模块用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块用于响应CPU处理单元的读请求将位于指令存储器内的指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块和数据路径模块;
所述指令存储模块存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;
所述指令存储模块包括指令数据寄存器、指令地址寄存器、状态寄存器,所述指令数据寄存器用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器用于集中存放所述若干个指令段中各自的有效状态信息;
当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器中相应的指令状态位置“0”即无效;
当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器的指令状态位有效时,指令段匹配成功,由指令数据寄存器输出数据通过数据路径模块传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器相应位置,指令地址寄存器存放读出的指令信息在指令存储器的地址信息,且状态寄存器中相应的指令状态位置“1”即有效。
上述技术方案中的进一步改进方案如下:
上述方案中,所述指令数据位存放至少2个指令信息。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
本发明用于嵌入式系统的高速缓存器,其不仅可以方便的flush cache,而且在CPU对指令存储器执行编程操作后,可以支持仅flush掉Cache中该编程地址对应的cacheline,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要flush cache的时间,而且只会flush被修改的cache line,不会影响cache里其他的内容,不会对系统性能造成大的影响。
附图说明
附图1为本发明用于嵌入式系统的高速缓存器结构示意图;
附图2为本发明用于嵌入式系统存储系统结构示意图。
以上附图中:1、地址路径模块;2、数据路径模块;3、控制逻辑模块;4、指令存储模块;41、指令数据寄存器;42、指令地址寄存器;43、状态寄存器。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于嵌入式系统的高速缓存器,包括地址路径模块1、数据路径模块2、控制逻辑模块3和指令存储模块4;所述地址路径模块1用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块2用于响应CPU处理单元的读请求将位于指令存储器内指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块3根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块1和数据路径模块2;
所述指令存储模块4存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;
所述指令存储模块4包括指令数据寄存器41、指令地址寄存器42、状态寄存器43,所述指令数据寄存器41用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器42用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器43用于集中存放所述若干个指令段中各自的有效状态信息;
当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器42内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器43中相应的指令状态位置“0”即无效;
当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器42进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器43的指令状态位有效时,指令段匹配成功,由指令数据寄存器41输出数据通过数据路径模块2传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块2传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器41相应位置,指令地址寄存器42存放读出的指令信息在指令存储器的地址信息,且状态寄存器43中相应的指令状态位置“1”即有效。
上述指令数据位存放至少2个指令信息。
状态位(V)指示本cache line是否已填充有效的数据,当读指令时,读入的指令会根据地址填充到相应的cache line。此时,状态位“V”置“1”,表示该cache line有效。当需要清除该cache line中的数据时,将状态位“V”置“0”。当CPU读取指令时,首先会判断该指令是否已经在cache里,如果地址匹配且V有效,则表示该数据在cache里,发生cache hit;反之如果地址不匹配,或者对应cache line的V无效,则表示该数据不在cache里,发生cache miss。
在本技术方案中,将每个cache line中的状态位V独立出来,不再和地址及数据存储在ram中,而是通过寄存器组来实现,并通过一个系统控制寄存器可以在单周期实现cache的初始化,简化了软件初始化过程,节省了初始化时间。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种用于嵌入式系统的高速缓存器,其特征在于:包括地址路径模块(1)、数据路径模块(2)、控制逻辑模块(3)和指令存储模块(4);所述地址路径模块(1)用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块(2)用于响应CPU处理单元的读请求将位于指令存储器内的指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块(3)根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块(1)和数据路径模块(2);
所述指令存储模块(4)存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;
所述指令存储模块(4)包括指令数据寄存器(41)、指令地址寄存器(42)、状态寄存器(43),所述指令数据寄存器(41)用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器(42)用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器(43)用于集中存放所述若干个指令段中各自的有效状态信息;
当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器(42)内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器(43)中相应的指令状态位置“0”即无效;
当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器(42)进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器(43)的指令状态位有效时,指令段匹配成功,由指令数据寄存器(41)输出数据通过数据路径模块(2)传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块(2)传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器(41)相应位置,指令地址寄存器(42)存放读出的指令信息在指令存储器的地址信息,且状态寄存器(43)中相应的指令状态位置“1”即有效;状态位指示本 cache line 是否填充有效的数据。
2.根据权利要求1所述的用于嵌入式系统的高速缓存器,其特征在于:所述指令数据位存放至少2个指令信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310721853.XA CN103810122B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的高速缓存器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310721853.XA CN103810122B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的高速缓存器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810122A CN103810122A (zh) | 2014-05-21 |
CN103810122B true CN103810122B (zh) | 2017-03-22 |
Family
ID=50706916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310721853.XA Active CN103810122B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的高速缓存器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810122B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312192B (zh) * | 2023-11-29 | 2024-03-29 | 成都北中网芯科技有限公司 | 一种Cache存储系统及访问处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430746A (zh) * | 2000-06-29 | 2003-07-16 | 摩托罗拉公司 | 用于存储和提供解码信息的带高速缓存器的装置及其方法 |
CN102012872A (zh) * | 2010-11-24 | 2011-04-13 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983346B2 (en) * | 2002-05-10 | 2006-01-03 | Texas Instruments Incorporated | Reducing tag-ram accesses and accelerating cache operation during cache miss |
WO2007097030A1 (ja) * | 2006-02-27 | 2007-08-30 | Fujitsu Limited | キャッシュ制御装置およびキャッシュ制御方法 |
-
2013
- 2013-12-24 CN CN201310721853.XA patent/CN103810122B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430746A (zh) * | 2000-06-29 | 2003-07-16 | 摩托罗拉公司 | 用于存储和提供解码信息的带高速缓存器的装置及其方法 |
CN102012872A (zh) * | 2010-11-24 | 2011-04-13 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103810122A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49273E1 (en) | Switch and memory device | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN103049058B (zh) | 使用空数据令牌指令管理存储设备中的数据的装置、系统和方法 | |
CN103946826B (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN104461393B (zh) | 一种闪存存储器的混合映射方法 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN103324585B (zh) | 分级缓存的处理器中的协作预取处理 | |
CN102460400B (zh) | 基于管理程序的本地和远程虚拟内存页面管理 | |
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
CN111684434A (zh) | 多层存储器系统中的预测数据协作 | |
CN103729306B (zh) | 高速缓存块无效的方法和数据处理设备 | |
CN107111551A (zh) | 用于高速缓存经压缩的数据背景的装置、系统和方法 | |
CN106484628A (zh) | 基于事务的混合存储器模块 | |
CN103946811A (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104781794B (zh) | 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 | |
CN101657802A (zh) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 | |
CN111684435A (zh) | 实施于存储器系统中的通过消息传递接口的存储器存取通信 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
WO2018034875A1 (en) | Method and apparatus for compressing addresses | |
CN106030549B (zh) | 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统 | |
CN105094691B (zh) | 一种数据操作的方法、设备和系统 | |
KR101789190B1 (ko) | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 | |
CN105095138B (zh) | 一种扩展同步内存总线功能的方法和装置 | |
CN108351833A (zh) | 用来压缩密码元数据以用于存储器加密的技术 | |
TWI502346B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 215011 Zhuyuan Road 209, New District, Suzhou City, Jiangsu Province Patentee after: Suzhou Guoxin Technology Co., Ltd. Address before: 215011 Zhuyuan Road 209, New District, Suzhou City, Jiangsu Province Patentee before: C*Core Technology (Suzhou) Co., Ltd. |