技术简介:
本专利针对嵌入式系统中指令缓存刷新效率低的问题,提出一种通过独立寄存器管理指令状态的高速缓存器。当CPU进行编程操作时,仅将匹配地址对应的状态位置为无效,避免刷新整个缓存,显著缩短清除时间并提升系统性能。该方案通过指令数据寄存器、地址寄存器和状态寄存器协同工作,实现精准的缓存段管理,确保数据一致性的同时减少冗余操作。
关键词:高速缓存器,指令状态管理
用于嵌入式系统的高速缓存器的制造方法
【专利摘要】本发明提供一种用于嵌入式系统的高速缓存器,包括地址路径模块、数据路径模块、控制逻辑模块和指令存储模块;指令存储模块包括指令数据寄存器、指令地址寄存器、状态寄存器,指令数据寄存器用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器用于集中存放所述若干个指令段中各自的有效状态信息;当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器中相应的指令状态位置“0”即无效。本发明可以方便的清除指令段,且在CPU对指令存储器执行编程操作后,可以支持仅清除掉高速缓存器中该编程地址对应的指令段,大大缩短了清除缓存的时间。
【专利说明】用于嵌入式系统的高速缓存器
【技术领域】
[0001]本发明涉及嵌入式系统领域,具体涉及一种用于嵌入式系统的高速缓存器。
【背景技术】
[0002]目前针对指令Cache的实现主要包括以下几种:内嵌在CPU中,通过CPU执行特殊的Cache指令来实现Cache的flush等操作;还有就是独立在CPU外部的片上指令Cache,但其属性等状态信息和数据、地址信息一起存储到一块memory中,当用户读取指令后,读入的指令会填充到Cache内部的一个cache line中,此后如果用户对外部的存储设备执行编程操作,为了保证外部存储器与cache的一致性,就需要flush整块memory,这样带来的后果就是效率低下,因为用户需要对指令存储器的编程操作及其少,如果因为编程操作导致用户flush整块memory,不仅耗时较长,而且严重降低了整个系统的性能。
【发明内容】
[0003]本发明目的是提供一种用于嵌入式系统的高速缓存器,该用于嵌入式系统的高速缓存器不仅可以方便的flush cache,而且在CPU对指令存储器执行编程操作后,可以支持仅flush掉Cache中该编程地址对应的cache line,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要flush cache的时间,而且只会flush被修改的cache line,不会影响cache里其他的内容,不会对系统性能造成大的影响。
[0004]为达到上述目的,本发明采用的技术方案是:一种用于嵌入式系统的高速缓存器,包括地址路径模块、数据路径模块、控制逻辑模块和指令存储模块;所述地址路径模块用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块用于响应CPU处理单元的读请求将位于指令存储器内的指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块和数据路径模块;
所述指令存储模块存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;
所述指令存储模块包括指令数据寄存器、指令地址寄存器、状态寄存器,所述指令数据寄存器用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器用于集中存放所述若干个指令段中各自的有效状态信息;
当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器中相应的指令状态位置“O”即无效;当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器的指令状态位有效时,指令段匹配成功,由指令数据寄存器输出数据通过数据路径模块传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器相应位置,指令地址寄存器存放读出的指令信息在指令存储器的地址信息,且状态寄存器中相应的指令状态位置“I”即有效。
[0005]上述技术方案中的进一步改进方案如下:
上述方案中,所述指令数据位存放至少2个指令信息。
[0006]由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
本发明用于嵌入式系统的高速缓存器,其不仅可以方便的flush cache,而且在CPU对指令存储器执行编程操作后,可以支持仅flush掉Cache中该编程地址对应的cache line,大大缩短了原有技术在遇到CPU对指令存储器执行编程操作时需要flush cache的时间,而且只会flush被修改的cache line,不会影响cache里其他的内容,不会对系统性能造成大的影响。
【专利附图】
【附图说明】
[0007]附图1为本发明用于嵌入式系统的高速缓存器结构示意图;
附图2为本发明用于嵌入式系统存储系统结构示意图。
[0008]以上附图中:1、地址路径模块;2、数据路径模块;3、控制逻辑模块;4、指令存储模块;41、指令数据寄存器;42、指令地址寄存器;43、状态寄存器。
【具体实施方式】
[0009]下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于嵌入式系统的高速缓存器,包括地址路径模块1、数据路径模块2、控制逻辑模块3和指令存储模块4 ;所述地址路径模块I用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块2用于响应CPU处理单元的读请求将位于指令存储器内指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块3根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块I和数据路径模块2 ;
所述指令存储模块4存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;
所述指令存储模块4包括指令数据寄存器41、指令地址寄存器42、状态寄存器43,所述指令数据寄存器41用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器42用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器43用于集中存放所述若干个指令段中各自的有效状态信息;当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器42内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器43中相应的指令状态位置“O”即无效;
当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器42进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器43的指令状态位有效时,指令段匹配成功,由指令数据寄存器41输出数据通过数据路径模块2传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否则,指令段匹配失败,所述指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块2传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器41相应位置,指令地址寄存器42存放读出的指令信息在指令存储器的地址信息,且状态寄存器43中相应的指令状态位置“I”即有效。
[0010]上述指令数据位存放至少2个指令信息。
[0011]状态位(V)指示本cache line是否已填充有效的数据,当读指令时,读入的指令会根据地址填充到相应的cache line。此时,状态位“V”置“ 1”,表示该cache line有效。当需要清除该cache line中的数据时,将状态位“V”置“O”。当CPU读取指令时,首先会判断该指令是否已经在cache里,如果地址匹配且V有效,则表示该数据在cache里,发生cache hit ;反之如果地址不匹配,或者对应cache line的V无效,则表示该数据不在cache里,发生 cache miss。
[0012]在本技术方案中,将每个cache line中的状态位V独立出来,不再和地址及数据存储在ram中,而是通过寄存器组来实现,并通过一个系统控制寄存器可以在单周期实现cache的初始化,简化了软件初始化过程,节省了初始化时间。
[0013]上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种用于嵌入式系统的高速缓存器,其特征在于:包括地址路径模块(I)、数据路径模块(2 )、控制逻辑模块(3 )和指令存储模块(4 );所述地址路径模块(I)用于将来自CPU处理单元的读/编程地址信息传输到指令存储器;所述数据路径模块(2)用于响应CPU处理单元的读请求将位于指令存储器内的指令信息传输给CPU处理单元,或者,响应CPU处理单元发出的指令编程操作,改变指令存储器内的指令内容;所述控制逻辑模块(3)根据来自CPU处理单元的读/编程控制信号和来自指令存储器的响应信号,控制地址路径模块(I)和数据路径模块(2);所述指令存储模块(4)存储若干个指令段,该指令段由指令地址位、指令状态位和指令数据位组成,所述指令数据位用于存储来自指令存储器的指令信息,所述指令地址位用于存储指令数据位中指令信息在指令存储器中对应的指令地址信息,所述指令状态位用于标识所述指令段中指令信息是否有效;所述指令存储模块(4)包括指令数据寄存器(41)、指令地址寄存器(42)、状态寄存器(43),所述指令数据寄存器(41)用于集中存放所述若干个指令段中各自的指令信息,所述指令地址寄存器(42)用于集中存放所述若干个指令段中各自的指令地址信息,所述状态寄存器(43)用于集中存放所述若干个指令段中各自的有效状态信息;当CPU处理单元向所述指令存储器进行指令编程操作时,如果指令地址寄存器(42)内指令地址信息与所述指令编程操作的地址匹配,则状态寄存器(43)中相应的指令状态位置“O”即无效;当CPU处理单元向所述指令存储器读指令信息时,待读指令地址与指令地址寄存器(42)进行比较,如果待读指令地址与其中一个地址匹配且该指令地址对应状态寄存器(43)的指令状态位有效时,指令段匹配成功,由指令数据寄存器(41)输出数据通过数据路径模块(2)传输给CPU处理单元,同时控制逻辑会生成对应的总线应答信号输出给处理器;否贝1J,指令段匹配失败,所述指令读操作被bypass到指令存储器,由指令存储器输出数据通过数据路径模块(2)传输给CPU处理单元,同时,读出的指令信息会根据其地址填充到所述指令数据寄存器(41)相应位置,指令地址寄存器(42)存放读出的指令信息在指令存储器的地址信息,且状态寄存器(43)中相应的指令状态位置“I”即有效。
2.根据权利要求1所述的用于嵌入式系统的高速缓存器,其特征在于:所述指令数据位存放至少2个指令信息。
【文档编号】G06F13/16GK103810122SQ201310721853
【公开日】2014年5月21日 申请日期:2013年12月24日 优先权日:2013年12月24日
【发明者】郑茳, 肖佐楠, 匡启和, 竺际隆, 张艳丽, 李利 申请人:苏州国芯科技有限公司