CN103810116B - 用于嵌入式系统的指令存储装置 - Google Patents
用于嵌入式系统的指令存储装置 Download PDFInfo
- Publication number
- CN103810116B CN103810116B CN201310722461.5A CN201310722461A CN103810116B CN 103810116 B CN103810116 B CN 103810116B CN 201310722461 A CN201310722461 A CN 201310722461A CN 103810116 B CN103810116 B CN 103810116B
- Authority
- CN
- China
- Prior art keywords
- instruction
- command
- memory
- information
- address
- 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处理单元、用于存储指令信息的指令存储器和存放有若干个指令段的高速缓存单元;所述高速缓存单元包括地址路径模块、数据路径模块、控制逻辑模块、随机存储器和状态寄存器;所述指令段由指令地址位、指令状态位和指令信息位组成;随机存储器包括指令信息存储区、指令地址存储区,所述指令信息存储区用于集中存放所述若干个指令段中各自的指令信息,所述指令地址存储区用于集中存放所述若干个指令段中各自的指令地址信息。本发明可以方便的清除指令段,且在CPU对指令存储器执行编程操作后,可以支持仅清除掉高速缓存器中该编程地址对应的指令段,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要flush cache的时间。
Description
技术领域
本发明涉及嵌入式系统领域,具体涉及一种用于嵌入式系统的指令存储装置。
背景技术
目前针对指令Cache的实现主要包括以下几种:内嵌在CPU中,通过CPU执行特殊的Cache指令来实现Cache的flush等操作;还有就是独立在CPU外部的片上指令Cache,但其属性等状态信息和数据、地址信息一起存储到一块memory中,当用户读取指令后,读入的指令会填充到Cache内部的一个cache line中,此后如果用户对外部的存储设备执行编程操作,为了保证外部存储器与cache的一致性,就需要flush整块memory,这样带来的后果就是效率低下,因为用户需要对指令存储器的编程操作及其少,如果因为编程操作导致用户flush整块memory,不仅耗时较长,而且严重降低了整个系统的性能。
发明内容
本发明目的是提供一种用于嵌入式系统的指令存储装置,该用于嵌入式系统的指令存储装置不仅可以方便的清除指令段,而且在CPU对指令存储器执行编程操作后,可以支持仅清除掉缓存中该编程地址对应的指令段,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要清除指令段的时间,而且只会清除被修改的指令段,不会影响缓存里其他的内容,不会对系统性能造成大的影响。
为达到上述目的,本发明采用的技术方案是:一种用于嵌入式系统的指令存储装置,包括CPU处理单元、用于存储指令信息的指令存储器和存放有若干个指令段的高速缓存单元;所述高速缓存单元包括地址路径模块、数据路径模块、控制逻辑模块、随机存储器和状态寄存器;所述地址路径模块位于CPU处理单元和指令存储器之间,用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块位于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、CPU处理单元;2、指令存储器;3、高速缓存单元;4、地址路径模块;5、数据路径模块;6、控制逻辑模块;7、状态寄存器;8、随机存储器;81、指令信息存储区;82、指令地址存储区。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于嵌入式系统的指令存储装置,包括CPU处理单元1、用于存储指令信息的指令存储器2和存放有若干个指令段的高速缓存单元3;所述高速缓存单元3包括地址路径模块4、数据路径模块5、控制逻辑模块6、随机存储器8和状态寄存器7;所述地址路径模块4位于CPU处理单元1和指令存储器2之间,用于将来自CPU处理单元1的读/编程地址信息传输到指令存储器2;所述数据路径模块5位于CPU处理单元1和指令存储器2之间,用于响应CPU处理单元1的读请求将位于指令存储器2内指令信息传输给CPU处理单元1,或者,响应CPU处理单元1发出的指令编程操作,改变指令存储器2内的指令内容;所述控制逻辑模块6根据来自CPU处理单元1的读/编程控制信号和来自指令存储器2的响应信号,控制地址路径模块4和数据路径模块5;
所述指令段由指令地址位、指令状态位和指令信息位组成,所述指令信息位用于存储来自指令存储器2的指令信息,所述指令地址位用于存储指令信息位中指令信息在指令存储器2中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效,所述状态寄存器7用于集中存放所述若干个指令段中各自的有效状态信息;
所述随机存储器8包括指令信息存储区81、指令地址存储区82,所述指令信息存储区81用于集中存放所述若干个指令段中各自的指令信息,所述指令地址存储区82用于集中存放所述若干个指令段中各自的指令地址信息;
当CPU处理单元1向所述指令存储器进行指令编程操作时,如果指令地址存储区82内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器7中相应的指令状态位置“0”即无效;
当CPU处理单元1向所述指令存储器2读指令信息时,待读指令地址Address Bus与随机存储器8中指令地址存储区82进行比较,如果待读指令地址Address Bus与其中一个地址匹配且该指令地址对应状态寄存器7的指令状态位有效时,指令段匹配成功,由指令信息存储区81输出数据通过数据路径模块5传输给CPU处理单元1,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器2,由指令存储器2输出数据通过数据路径模块5传输给CPU处理单元1,同时,读出的指令信息会根据其地址填充到所述指令信息存储区81相应位置,指令地址存储区82存放读出的指令信息在指令存储器2的地址信息,且状态寄存器7中相应的指令状态位置“1”即有效。
上述指令信息位存放至少2个指令信息。
下面是一个cache line的结构:
一个cache line包括地址位,状态位(V)和数据位。状态位(V)指示本cache line是否已填充有效的数据,当读指令时,读入的指令会根据地址填充到相应的cache line。此时,状态位“V”置“1”,表示该cache line有效。当需要清除该cache line中的数据时,将状态位“V”置“0”。当CPU读取指令时,首先会判断该指令是否已经在cache里,如果地址匹配且V有效,则表示该数据在cache里,发生cache hit;反之如果地址不匹配,或者对应cacheline的V无效,则表示该数据不在cache里,发生cache miss。
在本技术方案中,将每个cache line中的状态位V独立出来,不再和地址及数据存储在ram中,而是通过寄存器组来实现,并通过一个系统控制寄存器可以在单周期实现cache的初始化,简化了软件初始化过程,节省了初始化时间。
如附图2所示,CPU处理单元在执行写操作时,控制逻辑、数据路径模块和地址路径模块会直接将总线控制信号、写数据和Address Bus bypass到指令存储器,实现对指令存储器的写操作。同时,该写地址会被记录在写访问记录寄存器中,该寄存器的V同时置位,软件可以查询该寄存器,如果需要清除该写地址对应的cache中的数据项,只需要向S位写“1”即可以实现该写地址对应的cache line的清除。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种用于嵌入式系统的指令存储装置,包括CPU处理单元(1)、用于存储指令信息的指令存储器(2)和存放有若干个指令段的高速缓存单元(3);其特征在于:所述高速缓存单元(3)包括地址路径模块(4)、数据路径模块(5)、控制逻辑模块(6)、随机存储器(8)和状态寄存器(7);所述地址路径模块(4)位于CPU处理单元(1)和指令存储器(2)之间,用于将来自CPU处理单元(1)的读/编程地址信息传输到指令存储器(2);所述数据路径模块(5)位于CPU处理单元(1)和指令存储器(2)之间,用于响应CPU处理单元(1)的读请求将位于指令存储器(2)内的指令信息传输给CPU处理单元(1),或者,响应CPU处理单元(1)发出的指令编程操作,改变指令存储器(2)内的指令内容;所述控制逻辑模块(6)根据来自CPU处理单元(1)的读/编程控制信号和来自指令存储器(2)的响应信号,控制地址路径模块(4)和数据路径模块(5);
所述指令段由指令地址位、指令状态位和指令信息位组成,所述指令信息位用于存储来自指令存储器(2)的指令信息,所述指令地址位用于存储指令信息位中指令信息在指令存储器(2)中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效,所述状态寄存器(7)用于集中存放若干个指令段中各自的有效状态信息;
所述随机存储器(8)包括指令信息存储区(81)、指令地址存储区(82),所述指令信息存储区(81)用于集中存放所述若干个指令段中各自的指令信息,所述指令地址存储区(82)用于集中存放所述若干个指令段中各自的指令地址信息;
当CPU处理单元(1)向所述指令存储器(2)进行指令编程操作时,如果指令地址存储区(82)内指令地址信息与所述指令编程的地址匹配,则状态寄存器(7)中相应的指令状态位置“0”即无效;
当CPU处理单元(1)向所述指令存储器(2)读指令信息时,待读指令地址与随机存储器(8)中指令地址存储区(82)进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器(7)的指令状态位有效时,指令段匹配成功,由指令信息存储区(81)输出数据通过数据路径模块(5)传输给CPU处理单元(1),同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器(2),由指令存储器(2)输出数据通过数据路径模块(5)传输给CPU处理单元(1),同时,读出的指令信息会根据其地址填充到所述指令信息存储区(81)相应位置,指令地址存储区(82)存放读出的指令信息在指令存储器(2)的地址信息,且状态寄存器(7)中相应的指令状态位置“1”即有效;
在 CPU 执行指令编程操作时,在地址匹配时需要将状态置” 0 ”无效,并且,需要 CPU处理单元在执行指令编程操作时,控制逻辑、数据路径模块和地址路径模块会直接将总线控制信号、写数据和地址总线旁路到指令存储器,实现对指令存储器的指令编程操作;
在执行编程操作的同时,写地址会被记录在写访问记录寄存器中,该寄存器的状态位同时置位;可以查询该寄存器,如果需要清除该写地址对应的 cache 中的数据项,只需要向状态位写“1”即可以实现该写地址对应的缓存线的清除。
2.根据权利要求1所述的指令存储装置,其特征在于:所述指令信息位存放至少2个指令信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310722461.5A CN103810116B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的指令存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310722461.5A CN103810116B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的指令存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810116A CN103810116A (zh) | 2014-05-21 |
CN103810116B true CN103810116B (zh) | 2017-06-20 |
Family
ID=50706910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310722461.5A Active CN103810116B (zh) | 2013-12-24 | 2013-12-24 | 用于嵌入式系统的指令存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810116B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016070431A1 (zh) * | 2014-11-07 | 2016-05-12 | 华为技术有限公司 | 内存访问方法、装置和计算机设备 |
CN111290851B (zh) * | 2018-12-20 | 2022-11-29 | 展讯通信(上海)有限公司 | 一种信息处理方法、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131155A (en) * | 1997-11-07 | 2000-10-10 | Pmc Sierra Ltd. | Programmer-visible uncached load/store unit having burst capability |
US6647462B1 (en) * | 2000-06-29 | 2003-11-11 | Motorola, Inc. | Apparatus and a method for providing decoded information |
EP1361518B1 (en) * | 2002-05-10 | 2013-08-07 | Texas Instruments Incorporated | Reducing TAG-RAM accesses and accelerating cache operation during cache miss |
JP4409620B2 (ja) * | 2006-02-27 | 2010-02-03 | 富士通株式会社 | 演算処理装置、キャッシュメモリ制御装置及び制御方法 |
CN102012872B (zh) * | 2010-11-24 | 2012-05-02 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
CN102609240B (zh) * | 2011-01-20 | 2016-04-06 | 瑞昱半导体股份有限公司 | 处理器电路及读取数据的方法 |
-
2013
- 2013-12-24 CN CN201310722461.5A patent/CN103810116B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103810116A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095116B (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
JP5417879B2 (ja) | キャッシュ装置 | |
CN103365627B (zh) | 执行单元内的数据转发系统和方法 | |
CN109783004A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN108475194A (zh) | 在片上网络架构中的寄存器通信 | |
CN105094691B (zh) | 一种数据操作的方法、设备和系统 | |
JP2012198811A5 (ja) | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム | |
WO2010000101A1 (zh) | 用于嵌入式系统扩展存储空间的装置和方法 | |
CN105393210B (zh) | 用于处理数据存储器引用的存储器单元和方法 | |
CN108431896A (zh) | 用于非易失性储存阵列操作的数据寄存器复制 | |
CN106802870A (zh) | 一种高效的嵌入式系统芯片Nor‑Flash控制器及控制方法 | |
CN107592927A (zh) | 管理扇区高速缓存 | |
CN103810116B (zh) | 用于嵌入式系统的指令存储装置 | |
CN102541761B (zh) | 应用于嵌入式芯片的只读高速缓冲存储器 | |
JP5129023B2 (ja) | キャッシュメモリ装置 | |
CN104808950B (zh) | 对嵌入式存储器元件的模式依赖性访问 | |
CN109791510A (zh) | 在异构计算中管理数据流 | |
JP2001306265A5 (zh) | ||
CN104346295B (zh) | 一种缓存刷新方法和装置 | |
JP2002007373A (ja) | 半導体装置 | |
CN105404591B (zh) | 处理器系统及其存储器控制方法 | |
CN103810117B (zh) | 处理器用指令存储系统 | |
US10621098B2 (en) | Computing device and non-volatile dual in-line memory module that evict and prefetch data with respect to memories having different operating speeds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
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. |
|
CP01 | Change in the name or title of a patent holder |