历史上的今天
返回首页

历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2021年11月25日 | ARM使用术语清除(flush)和清理(clean)表示对cache的基本操作

2021-11-25 来源:eefocus

清除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

推荐阅读

史海拾趣

CQR SECURITY公司的发展小趣事

CQR SECURITY公司在追求商业成功的同时,也积极履行社会责任。公司定期举办网络安全宣传活动,提高公众的网络安全意识。同时,CQR还积极参与社会公益事业,为弱势群体提供网络安全支持和帮助。这种积极履行社会责任的举措不仅提升了CQR的品牌形象,还为公司赢得了社会的广泛赞誉。

这些故事虽然虚构,但反映了电子安全公司可能经历的一些普遍发展路径和挑战。希望这些故事能够为您提供一些启发和参考。如果需要更多关于特定公司的信息,建议您查阅相关新闻报道、行业分析报告或公司官网等渠道。

Festo公司的发展小趣事

Festo公司成立于1925年,由Albert Fezer和Gottlieb Stoll两位创始人共同创立。最初,公司专注于木工机械和木工工具的生产,其品牌Festool在行业内享有盛誉。凭借对工艺的精湛掌握和对品质的严格把控,Festo迅速在木工机械领域崭露头角,为公司的后续发展奠定了坚实的基础。

Furukawa Electric Co Ltd公司的发展小趣事

1993年,Festo公司正式进入中国市场,成立了费斯托(中国)有限公司。进入中国后,Festo迅速抓住了中国改革开放的机遇,通过直销的销售理念和优质的服务赢得了客户的信任和支持。经过多年的努力,Festo在中国市场取得了长足的发展,成为了德国总部以外最大的子公司。同时,Festo还不断加大在中国的投资力度,建立了多个研发中心和生产基地,为中国客户提供更加优质的产品和服务。

Elekon Industries公司的发展小趣事

在快速发展的同时,Elekon也积极履行社会责任。公司注重环保和可持续发展,积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Elekon还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elekon的社会责任感,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事均为虚构,旨在为您提供关于Elekon Industries公司发展起来的相关故事。如有需要,请参考公司官方发布的信息或相关新闻报道。

High Energy Corp公司的发展小趣事

随着业务的不断发展,Elekon开始寻求更广阔的市场空间。公司制定了全球化战略,积极开拓国际市场。通过参加国际展会、建立海外销售网络等方式,Elekon成功将产品打入国际市场,并赢得了众多客户的青睐。同时,Elekon还与国际知名电子企业建立了合作关系,共同研发新产品、开拓新市场。

Davico Industrial Ltd公司的发展小趣事

在快速发展的同时,Elekon也积极履行社会责任。公司注重环保和可持续发展,积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Elekon还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elekon的社会责任感,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事均为虚构,旨在为您提供关于Elekon Industries公司发展起来的相关故事。如有需要,请参考公司官方发布的信息或相关新闻报道。

问答坊 | AI 解惑

ISP下载线+原理图

ISP下载线+原理图  学单片机的朋友能用的上!…

查看全部问答>

【转】VCC、VDD和VSS三种标号的区别

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压 ...…

查看全部问答>

界面美化问题

请问大家是如何美化自己开发的基于windows mobile的应用程序的界面的呢?包括使用c++和c#?希望大家指点,谢谢大家!…

查看全部问答>

[请教]keil中如何更合理处理多中断,不容易出现异常?

譬如说: 我用个循环队列存储和发送消息,队列使用固定长度的数组,其中数组的长度肯定长于每条消息,队列中有8个数组(均存在XRAM中); 一个串口中断(每个字节触发一次) 另一个中断(固定T触发一次) 串口中断优先级高 波特率400Kbps; 串口是接收 ...…

查看全部问答>

Linux 2.6.14.1 DM9000A 网卡移植问题

首先向四川地震遇难同胞表示深切的哀悼!!! 我用的开发板是博创UP-NETARM2410 S3C2410,网卡是DM9000AEP. 开发板提供的是vivi,2.4内核,我先在开发板原有vivi的基础上移植了Linux 2.6.14,然后参考2.4提供的网卡驱动,基本上没作什么修改, ...…

查看全部问答>

请问:74HC08的静态工作电流,灌电流,输出电流

看到对74HC08的介绍, 说:    静态工作电流为2uA,灌电流为1mA,输出电流为25mA 请教: 以上电流参数分别是哪些管脚的电流, 灌电流和输出电流的是指最大值吗?…

查看全部问答>

MSP430BSL下载困惑

关于MSP430单片机的下载方式,开始很困惑,下载方式有很多人都说用到了仿真器,什么UIF,PIF的,上网查了一下,仿真器还真不便宜。买了一个开发板,七八十吧,功能不多,但是用的是usb下载程序,其实就是使用了MSP430的BSL下载方式,其所用芯片为PL ...…

查看全部问答>

给还在用CCSV3.3的朋友......正版最新CCSV3.3.....无需破解

replyreload += \',\' + 1285328;  CCSV3.3最新版:   Timson,如果您要查看本帖隐藏内容请回复   CCSV3.3的code generation tools: Timson,如果您要查看本帖隐藏内容请回复     CCSV3.3的升级包(其实下载最新 ...…

查看全部问答>

看 任哲 《嵌入式实时操作系统Uc/os-ii原理及应用》学习笔记

学习任哲《嵌入式实时操作系统UCOS-II原理及应用》有一周了,看了两章的内容。把自己的一些收获及遇到的问题和解决方法总结一下,希望对大家有用…

查看全部问答>

三极管串联稳压电路

朋友们,能不能推荐几个三极管串联稳压电路 上面的照片只是其中的一个,最近在忙这个,一直没有找到合适的!…

查看全部问答>