清除cache的意思是清除cache中存储的全部数据。对处理器而言,清除操作只要清零相应cache行的有效位即可。当存储器配置上有变化时,整体或部分cache可能需要进行清除操作。有时也用术语作废(invalidate)来代替术语“清除”。然而,对于采用写回策略的D-cache,就需要使用清理(clean)操作。
清理cache的意思是把脏的(即被改写过的)cache行强制写到主存,并把cache行中的脏位清零。清理cache可以重建cache与主存之间的一致性,它只用在使用写回策略的D-cache上。
改变系统的存储器配置可能要执行清除和清理cache的操作。访问权限、cache和缓冲策略的变化或者重新映射虚拟地址等操作都需要清理或清除cache。
在分离cache中执行自修改代码之前,cache也需要执行清理和清除操作。自修改代码包括将代码简单地从一个地方拷贝到另一个地方。清理和清除操作是由两种可能的情况引起的:第一,自修改代码可能别承载在D-cache中,因此,不可能作为一条指令从主存中进行加载;第二,I-cache中现存的指令可能会屏蔽写到主存中的新指令。
如果cache使用写回策略并且自修改代码被写入主存中,那么第一步就是将指令以数据块的形式写到主存中某处;稍后,程序跳转到主存中,以指令流的形式从主存中的该处开始执行。其中,当代码作为数据写入到主存中时,如果cache存储器中代表自修改代码被写入的主存位置的cache行有效,那么代码有可能会被写入到cache中(没有写入主存)。这些cache行会被拷贝到D-cache,而不是被拷贝到主存。如果发生了这种情况,那么当程序跳转到自修改代码所在的地方(主存某处)时,就会执行原来数据表示的代码,因为自修改代码此时实际上还在D-cache中。为了防止这种情况发生,可以进行D-cache的清理操作,把指令代码强制作为数据存到主存中,从而这些数据就可以作为指令流从主存中读出来。
D-cache被清理后,新的指令就被写到主存中。但是,I-cache中可能会有效cache行存储新数据(代码)地址对应的指令。接下来,在新代码所在的地址读取指令时,仍然会得到I-cache中的老代码,而不是主存中的新代码。清除I-cache可以防止这种情况的发生。
在linux的代码中涉及到自搬运代码的地方有:
1.应用程序的装载:
Load_aout_binary
Load_aout_libary
Load_aout_interp
Load_flat_file
2.Fiq代码的搬运:
3.Signal.c中:
Setup_frame
Setup_rt_frame
上一篇:ARM基础学习-Cache和写缓冲器
下一篇:ARMv8-AArch64寄存器和指令集
推荐阅读
史海拾趣
为了拓展国际市场,德艺隆制定了国际化战略。他们积极参加国际展会,与全球客户建立联系;同时,公司还加大了对海外市场的投入,建立了海外销售网络和售后服务体系。通过多年的努力,德艺隆的产品已经出口到多个国家和地区,赢得了国际市场的认可。
为了保持技术领先地位和市场竞争力,ERA Transformers公司非常重视创新与研发工作。公司每年都会投入大量资金用于新产品的研发和技术创新。在一次研发项目中,公司成功开发出了一种具有超高能效和极低损耗的新型变压器。这款产品的问世立即引起了市场的广泛关注,并成功获得了多项国内外专利。持续的创新与研发使得ERA Transformers公司在电子行业中始终保持着领先地位。
随着技术的不断进步,ERA Transformers公司的产品逐渐受到了业界的广泛关注。一次,一家国际知名的电子设备制造商找到他们,希望合作开发一款适用于其新产品的变压器。这对ERA Transformers公司来说是一个难得的机会,也是一个巨大的挑战。公司迅速组织技术团队,与这家制造商紧密合作,经过数轮的设计、测试和修改,最终成功研发出了一款完全符合客户要求的高性能变压器。这一成功合作不仅为公司带来了可观的收益,更赢得了客户的极高评价和长期合作意向。
近年来,电子行业面临着技术更新换代快、市场竞争激烈等挑战。Arco Electronics公司敏锐地捕捉到了这些变化,及时调整了公司的战略方向。公司加大了对新兴技术的研发投入,如物联网、人工智能等领域,以保持技术上的领先地位。同时,公司还通过优化生产流程、提高产品质量等方式来降低成本,增强市场竞争力。
随着公司规模的扩大,Arco Electronics开始实施全球化战略。公司先后在多个国家和地区设立了研发中心和生产基地,以便更好地服务当地市场。通过全球化的布局,Arco不仅降低了生产成本,还提高了产品的竞争力。同时,公司还积极与当地的合作伙伴建立战略合作关系,共同开拓市场,实现了互利共赢。
BOOKLY公司深知品质是赢得市场的关键。因此,公司从创立之初就建立了严格的质量管理体系,确保每一款产品的品质和性能都达到最高标准。同时,BOOKLY还注重品牌塑造,通过精心的品牌设计和营销活动,提升了品牌知名度和美誉度。这些努力使得BOOKLY的产品在市场上获得了良好的口碑和广泛的认可。
我的根目录下有两个中文文件夹:(目) (我) 用loacale -a命令显示出来的locale有以下几项 .... zh_CN zh_CN.GB2312 zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.my zh_CN.utf8 .... 系统启动之后locale 命令的输出结果为 L ...… 查看全部问答∨ |
|
我用的2440的板子,S3C2440A芯片,支持3个串口,硬件引出两个,一个用于控制台,另外一个是不是叫做扩展串口,按照《完全开发手册》上添加了扩展串口驱动, 使用命令:cat /proc/tty/driver/serial 显示:serinfo:1.0 ...… 查看全部问答∨ |
有没有用VB.NET做WIN MOBILE 5.0的串口通讯程序啊,最近在网上找到一些资料,可是总是调试不正确,无法打开端口,发送接收数据。 我现在是使用WIN MOBILE 5.0系统的PDA,希望开发WIN CE 串口通讯软件,进行对单片机的数据采集,只采集温度数据。 ...… 查看全部问答∨ |
SIPEX SP6682 为白色LED配置的高效电荷泵调节器 SP6683 平行结构配置的高功率LED驱动器 SP6685 用于照相机闪光灯的电荷泵LED驱动器 SP6686 400mA降压/升压电荷泵LED驱动器 SP6687&nb ...… 查看全部问答∨ |
|
我使用STM32F105RB程序作了一段写U盘扇区的代码 U8 MassStorageDevSectWrite(U32 LBAddr,U16 Len,U8 *PtrBuf){ U32 *tmp; U32 Tag=0x0000000c,TotalByteNum_32,MassStorageDevSectReadTryCnt; &nb ...… 查看全部问答∨ |
开源一个mjpeg播放器程序,STM32F407 avi视频播放 嗨大了!!!!!!! 之前看到日本人做的那个视频播放器,真是羡慕加妒忌呀,于是自己花时间做了这个,虽然效果相差甚远,但总算是对得起观众,我这个没有超频,所以只能是牺牲尺寸,有点小,将就着看个视频,挺有成就感的!!该播放器是基于FATFS作者开源的tjpgd编写的 ...… 查看全部问答∨ |