版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑Cache在嵌入式处理器中的使用问题-新品速递随着嵌入式计算机应用的发展,嵌入式CPU的主频不断提高,这就造成了慢速系统存储器不能匹配高速CPU处理能力的情况。为了解决这个问题,许多高性能的嵌入式处理器内部集成了高速缓存Cache。其中,三星公司的S3C44B0X内部就集成了8KB空间统一的指令和数据Cache。Cache即高速缓冲存储器,是位于CPU与主存之间一种容量较小,但速度很高的存储器。由于CPU在进行运算时,所需的指令和数据都是从主存中提取的,而CPU运算速度要比主存读写速度快得多,这样极其影响整个系统的性能。采用Cache技术,即在Cache中存放CPU常用的指令和数据,然后将这些数据和指令以一定的算法和策略从主存中调入,使CPU可以不必等待主存数据而保持高速操作。这样就满足了嵌入式系统实时、高效的要求。但Cache的使用也带来了一致性的问题,在应用中应特别注意。1Cache一致性问题的发现本项目的目标板为:处理器采用ARM芯片S3C44B0X,存储器采用2片Flash和1片SDRAM,在调试的时候输入采用键盘,输出采用显示器,用RS232串口实现通信。在项目的开发过程中,经软件仿真调试成功的程序,烧入目标板后,程序却发生异常中止。通过读存储器的内容发现,程序不能正常运行在目标板上,是因为存储器中写入的数据与程序编译生成的数据不一致,总是出现一些错误字节。经过一段时间的调试发现,只要在程序中禁止Cache的使用,存储器中写入的数据将不再发生错误,程序可以正常运行,但速度明显减慢。经过分析,认为问题是由于Cache数据与主存数据的不一致性造成的。Cache数据与主存数据不一致是指:在采用Cache的系统中,同样一个数据可能既存在于Cache中,也存在于主存中,两者数据相同则具有一致性,数据不相同就叫做不一致性。如果不能保证数据的一致性,那么,后续程序的运行就要出现问题。2分析Cache的一致性问题要解释Cache的一致性问题,首先要了解Cache的工作模式。Cache的工作模式有两种:写直达模式(writethrough)和写回模式(writeback)。写直达模式是,每当CPU把数据写到Cache中时,Cache控制器会立即把数据写入主存对应位置。所以,主存随时跟踪Cache的版本,从而也就不会有主存将新数据丢失这样的问题。此方法的优点是简单,缺点是每次Cache内容有更新,就要对主存进行写入操作,这样会造成总线活动频繁。S3C44B0X中的Cache就是采用的写直达模式(writethrough)。在写直达模式下,数据输出时,系统会把数据同时写入高速缓冲存储器Cache和主存中,这样就保证了输出时高速缓冲存储器的一致性。但该模式下,却无法保证输入时的高速缓冲存储器的一致性。下面再看一下Cache的组织方式。按照主存和Cache之间的映像关系,Cache有三种组织方式。全相联方式、直接映像方式和组相联方式。其中,直接映像方式的原理如图1所示。图1直接映像示意图按照Cache的行数m,把主存分为n/m个区域,每个区中有m个存储块。各区中的0~(m-1)块一一对应地固定映射到Cache中L0~Lm-1行。这样,标签只要给定区地址(区号),就能确定Cache行与存储器的对应关系。当CPU发出存储器访问时,以存储器地址作为行索引,寻址到一高速缓冲行,检测该行的标签。若标签与存储器的相应地址匹配,则Cache命中。该高速缓存行当前即为欲访问存储块的映像。从上面的分析可以看出,在写直达模式下,由于每次Cache内容有更新,就要对主存进行写入操作,造成总线活动频繁。在Cache命中的过程中,如果总线遇到干扰,就会出现数据不一致的现象。3Cache一致性问题的解决方法该问题可以从软件及硬件两方面着手解决。3.1软件解决的方法S3C44B0X的Cache提供完整的Cache使能和禁止操作模式。能够通过设置SYSCFG寄存器中CM域中的值为01或11来使能Cache(其中,01为使能4KBCache,11为使能8KBCache),而通过清除SYSCFG寄存器中[2:1]域为0来禁止Cache功能。用禁止Cache的方法来消除数据不一致性问题,具体代码如下:#definerSYSCFG(*(volatileunsigned*)0x1c00000)#defineWRBUFOPT(0x8)//write_buf_on#defineSYSCFG_0KB(0x0|WRBUFOPT)#defineSYSCFG_4KB(0x2|WRBUFOPT)#defineSYSCFG_8KB(0x6|WRBUFOPT)#defineCACHECFGSYSCFG_0KBrSYSCFG=CACHECFG;//禁止Cache另外,S3C44B0X还提供了2个不能Cache访问的区域(noncacheablearea)。每个区域要求两个Cache控制域,用来表明每一个不能Cache访问区域的起始和结束地址。在不能Cache访问的区域,当Cache没有命中,一个读的时候,Cache不能更新。在已知影响到数据不一致的地址情况下,可以在使能Cache的条件下,用设定不能Cache访问区域的方法,防止产生数据不一致现象。有时,如果数据区域被安排在不能Cache区域,程序执行速度更高,因为多数变量是不能重用的。对于不能重用的变量,刷新16B的Cache存储器是浪费的。本系统中设定不能Cache访问的区域为0x2000000~0xc000000,就可以解决数据不一致问题。代码如下:#definerSYSCFG(*(volatileunsigned*)0x1c00000)#defineWRBUFOPT(0x8)//write_buf_on#defineSYSCFG_0KB(0x0|WRBUFOPT)#defineSYSCFG_4KB(0x2|WRBUFOPT)#defineSYSCFG_8KB(0x6|WRBUFOPT)#defineCACHECFGSYSCFG_8KB#definerNCACHBE0(*(volatileunsigned*)0x1c00004)#definerNCACHBE1(*(volatileunsigned*)0x1c00008)#defineNon_Cache_Start(0x2000000)//不能Cache访问的区域开始地址#defineNon_Cache_End(0xc000000)//不能Cache访问的区域结束地址rSYSCFG=CACHECFG;//8KBcache,写缓冲使能,dataabort使能rNCACHBE0=((Non_Cache_End12)16)|(Non_Cache_Start12);//在上面的数据区域不使用高速缓存Cache采用上述两种方法,排除了数据不一致性的问题。但一个高性能的系统是需要Cache的,禁止Cache的使用会大大降低系统的性能。所以,在嵌入式系统的设计中,还应从硬件方面考虑,从根本上防止数据不一致的产生。3.2硬件的解决方法由于现在的嵌入式处理器,主频越来越高,地址、数据线越来越多,所以在硬件的设计和焊接过程中应特别注意高频干扰的问题。因为高频干扰可以引起信号的不完整性,这些不完整的信号会引起总线传输过程中出现一些坏字节,所以高速PCB设计变得尤为重要。高速PCB设计中,对高速信号网络的特征与走线控制的设计技术,已成为高速数字设备成功与否的关键。在设计中应注意下列问题:①在成本允许的条件下,PCB尽量采用多层板布线。②高频电路布线的引线采用全直线,需要转折时,可以用45°折线或圆弧转折。在高频电路中,满足这一要求可以减少高频信号对外的发射和相互间的耦合。③高频电路器件引脚的引线层间的交替越少越好,过孔越少越好。据测,一个过孔可带来约0.5pF的分布电容,减少过孔数量能显著提高速度。④高频电路布线要注意信号线近距离平行走线所引入的“交叉干扰”,若无法避免平行分布,可在平行信号线的反面布置大面积“地”来减少干扰。同一层内的平行走线几乎无法避免,但是在相邻的两个层,走线的方向务必取为相互垂直。⑤每个集成电路块的附近应设置一个高频退耦电容。⑥模拟电路和数字电路部分,应有各自独立的地线。⑦对特别重要的信号线或局部单元实施地线包围的措施,各类信号走线不能形成环路,地线也不能形成电流环路。在注意了上面的设计规则之后,制作出的PCB基本上可以满足高速信号的要求。,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 修枝剪产业规划专项研究报告
- 医用隔离衣市场发展预测和趋势分析
- 医用口香糖市场需求与消费特点分析
- 指甲干燥用化妆制剂产品供应链分析
- 凸轮链轮引擎定时组件产业深度调研及未来发展现状趋势
- 提供麻将馆行业相关项目经营管理报告
- 人教版英语八年级上册 期末补全对话练习
- 医用佐药产品供应链分析
- 制动液更换加注机产业深度调研及未来发展现状趋势
- 声音接收装置产业深度调研及未来发展现状趋势
- 2024年艾滋病防治知识竞赛考试题库200题(含答案)
- HG-T 2006-2022 热固性和热塑性粉末涂料
- 食安员抽考必备知识考试题库(含答案)
- 金光修持法(含咒诀指印、步骤、利益说明)
- 小学英语作业设计PPT课件
- 勘察报告(标准)
- 施工资源需求计划(投标阶段)
- 机械制图(六)焊接
- 深圳地铁接触网施工方案讲解
- 语言文字规范化自查报告(共5篇)
- 抗燃油颜色加深原因分析及处理
评论
0/150
提交评论