Cache存取的控制方法及装置制造方法及图纸

技术编号:7603130 阅读:221 留言:0更新日期:2012-07-22 05:59
本发明专利技术公开了一种Cache存取的控制方法及装置,该方法包括:处理器获取执行周期中的关键指令和/或数据;在执行周期中,处理器将指令和/或数据存储到Cache中,并锁定指令和/或数据。本发明专利技术解决了相关技术中不能灵活进行Cache存取的动态控制的问题,进而达到了动态Cache存取的灵活控制的效果。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种缓存(Cache)存取的控制方法及装置。
技术介绍
Cache的应用可以大幅提高程序执行效率,并减少对外部总线以及外部存储器的访问。但是,Cache的工作一般情况下是不可控的,这就给某些实时性应用带来了问题。为了减少增加Cache而带来的时间不确定问题,有些实时性系统甚至关掉Cache来满足实际需要,更有的实时操作系统将Cache也归入实时性能杀手(RealTime-Killer)的行列。如果可以使Cache能够按照需求动态控制,就可以避免上述问题,应用系统可以根据应用场景的不同动态配置好Cache中的数据,使其工作情况完全可控,进而达到了既满足需求又不丧失实时性的目的。一般Cache控制的方式是开辟特定的随机接入存储器(Random Access Memory, 简称为RAM)区间,将该区间设为可Cache的,这样产生的需快速存取的代码段和程序段都需要在编译的时候放置到预先设为可Cache的固定地址空间中去,从而达到快速存取的目的。该方案的好处就在于操作更简单,Cache控制器只需要具备地址的Cache Mask功能即可实现,能够达到Cache控制的目的,但是该方法不能灵活控制Cache内容。例如,Linux内核就是使用分配特定地址区间的方式来使特定的数据或指令放置到可Cache空间中去的。相应的字段(Action)关键字为. data. read_mostly. data. cacheline_aligned图1是根据相关技术的普通Cache控制方式的示意图,如图1所示,在普通Cache 的控制方式中,程序的代码段和数据段可以加载到不同的RAM区间或者加载到连续的RAM 区间。这些区间可以统一设为可Cache的或者不可Cache的。在普通Cache的控制方式中没有Cache段的概念。用户不容易控制特定程序或特定数据一定存放在Cache中。图2是根据相关技术的Cache段方式的示意图,如图1所示,在特定Cache段的处理方式中,程序中的需要经常访问的指令和数据被统一放置到特定的段中,并进而被放置到特定的地址区间中去,该地址区间为可Cache的内存空间,这样,就可以实现某些指令和数据的静态Cache控制的方式,使其可以在程序编译和加载时被确切放置在Cache中。Cache段方式在一定程度上解决了特定指令和数据的存放问题,使其可以人工控制放置在Cache中,但是该方法有一定的局限性数据是静态控制的,只能在编译的时候就设定好,在程序加载时放置到Cache空间中,其不能实现动态控制的目的,并且被放置到 Cache中之后,还有被置换出来的隐患。申请号为200810156535. 2名称为《一种面向嵌入式应用的软件可控Cache的实现方法》的专利申请提供了一种Cache的控制方法,图3是根据相关技术的硬件Cache 控制器方式进行Cache控制的示意图,如图3所示,其实际实现时为ARM (Advanced RISC Machines)另外增加了一个缓存控制器(Cache控制器),该方案具有以下局限性一方面主中央控制器(Central Processor Unit,简称为CPU)局限于ARM控制器,另外一方面还需要另外增加Cache控制器这样的硬件设备,操作方法也显繁琐和复杂。具体地,该方案虽然确实也可以实现Cache控制的功能,其优点在于另外增加的Cache控制器逻辑可以实现某应用Cache存取的数据统计和汇总,并根据汇总结果得到三类不同的数据(CN,CSl, CS2), 该分类信息再重新输入给Cache硬件控制器,使其对于这三类信息分别处理,不通过Cache 或者直接被锁定到Cache中并进而提高系统执行效率,但是该方法基本仍属于静态控制方式,针对特定应用产生特定数据来配置Cache控制器。由于该方案另外增加了 Cache控制器硬件,并且,该设计基于ARM7CPU,不方便向其他平台进行移植和扩展。综上所述,图1所示的方案中没有任何Cache控制的策略,Cache执行对上层应用完全透明,用户无法把指定的需要加速处理的程序和数据告知Cache控制器。图2所示的方案中,只能在程序加载时将需要加速的数据和指令放置到固定的地址区间,属于静态控制,在软件执行过程中不能动态修改,数据和指令如果在加载时被锁定到Cache中,那么在其不需要频繁读写时也不能被释放,这样,减少了 Cache实际可用空间, 造成Cache利用率的下降。如果在加载时数据和指令没有被锁定到Cache中,则将造成频繁读写指令和数据被其他非频繁指令数据替换出去的危险。图3所示的方案中,另外增加了 Cache硬件控制器,这和目前的主流Cache控制器设计存在兼容性的问题,另外,需要根据特定应用来实际统计Cache使用情况,这增加了附加操作,不能灵活加以使用,并且其需要根据特定应用产生特定的分类信息,本质上还属于静态控制的范畴,另外,由于该方案是硬件设计,对特定的硬件平台(例如ARM)有比较大的依赖性,不方便向其他平台移植和扩展。
技术实现思路
本专利技术的主要目的在于提供一种Cache存取的控制方案,以至少解决上述的相关技术中不能灵活进行Cache存取的动态控制的问题。根据本专利技术的一个方面,提供了一种Cache存取的控制方法,包括处理器获取执行周期中的关键指令和/或数据;在执行周期中,处理器将指令和/或数据存储到Cache 中,并锁定指令和/或数据。根据本专利技术的另一方面,提供了一种Cache存取的控制装置,包括获取模块,用于获取执行周期中的关键指令和/或数据;存储模块,用于在执行周期中将指令和/或数据存储到Cache中;锁定模块,用于锁定指令和/或数据。通过本专利技术,采用在执行周期内,使用软件的方式动态地将常用的指令和数据存储到Cache中,并锁定存储的指令和数据的方式,解决了相关技术中不能灵活进行Cache存取的动态控制的问题,进而达到了动态Cache存取的灵活控制的效果。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中图1是根据相关技术的普通Cache控制方式的示意图;图2是根据相关技术的Cache段方式的示意图3是根据相关技术的硬件Cache控制器方式进行Cache控制的示意图;图4是根据本专利技术实施例的Cache存取的控制方法的流程图;图5是根据本专利技术实施例的软件动态Cache控制方式的示意图;图6是根据本专利技术实施例的Cache RAM动态变化情况的示意图;图7是根据本专利技术实施例三的硬件系统的示意图;图8是根据本专利技术实施例的清lock标志流程图;图9是根据本专利技术实施例的写Cache tag RAM的流程图;图10是根据本专利技术实施例的写Cache RAM流程图;图11是根据本专利技术实施例的Cache存取的控制装置的结构框图。具体实施例方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一本专利技术实施例提供了一种Cache存取的控制方法,图4是根据本专利技术实施例的 Cache存取的控制方法的流程图,如图4所示,该方法包括步骤S402本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王翔宇
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术