历史上的今天
返回首页

历史上的今天

今天是:2025年12月09日(星期二)

正在发生

2022年12月09日 | ARM64体系结构编程与实践学习笔记(九) 高速缓存介绍

2022-12-09 来源:zhihu

1. 高速缓存简介


由于处理器的访问速度和内存的访问速度差距越来越大,使得极端及整体系统的性能受到了巨大的影响。高速缓存,也就是Cache位于CPU和主存之间。相比于主存,它的容量要小的多,但是速度也快很多。它的存取速度能与中央处理器相匹配。


根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。


2. 高速缓存的映射方式


根据组的高速缓存行数,高速缓存分为直接映射、全相连映射、组相连映射。


2.1直接映射


使用直接映射缓存,高速缓存中只有一个地方可以存储RAM中的给定数据块。


这意味着CPU只需要查看高速缓存中的一个位置,就可以查看它正在寻找的数据或指令是否存在,如果存在,就会很快找到。直接映射缓存的缺点是,它严重限制了可以存储在高速缓存中的数据或指令,因此缓存命中的次数很少。


2.2全相连映射


也称为完全关联映射,这与直接映射相反。使用关联映射方案,RAM中的任何数据块或指令都可以放在任何高速缓存块中。这意味着CPU必须搜索整个高速缓存,以查看它是否包含要查找的内容,但是缓存命中的几率要高得多。


2.3组相联映射


这两种映射类型之间的折衷是组相联映射(set-associative mapping),它可以将一个RAM块映射到有限数量的不同高速缓存块。


2路相联映射系统允许将RAM块放在高速缓存中两个位置中的一个,相比之下,8路相联映射系统允许将RAM块放在8个高速缓存块中的任意一个。


2路系统的搜索时间是直接映射系统的两倍,因为CPU必须在两个位置而不是一个位置进行搜索,但是缓存命中的几率要大得多。

推荐阅读

史海拾趣

Crocus Technology公司的发展小趣事

Crocus Technology的创立源于2006年法国格勒诺布尔的自旋电子学Spintec研究实验室。这家公司在创立之初就面临着巨大的挑战,因为磁阻随机存取存储器(MRAM)市场当时竞争激烈,众多公司因技术难题和市场定位不当而相继倒闭。然而,Crocus Technology凭借其独特的技术视角和坚定的市场信念,成功地在这场竞争中生存下来。

达晶微(CREATEK)公司的发展小趣事

达晶微注重企业文化建设和团队建设。公司倡导创新、协作、务实、进取的企业精神,鼓励员工勇于挑战、追求卓越。同时,公司还建立了完善的培训体系和人才激励机制,为员工提供了广阔的发展空间和良好的职业前景。这些措施有效地激发了员工的工作热情和创造力,为公司的发展注入了源源不断的动力。

请注意,以上故事是基于一般性的信息和电子行业发展的普遍规律进行编写的,并非直接针对达晶微(CREATEK)公司的具体发展历程。如需了解更多详细信息,建议您查阅达晶微(CREATEK)公司的官方网站或相关新闻报道。

Gruner AG公司的发展小趣事
使用绝缘测试仪等工具检查输入和输出之间的电气隔离性能是否符合要求。
Golledge Electronics公司的发展小趣事
明确电路需要实现的功能,如信号传输、电气隔离、放大等。
Free2Move公司的发展小趣事
通过给LED施加适当的电压和电流,观察其发光情况是否正常。
ADTech公司的发展小趣事

随着QCL技术的成熟和市场需求的增长,AdTech公司开始积极拓展国际市场。通过与全球多家知名企业建立合作伙伴关系,公司成功将产品打入欧洲、亚洲等多个地区。同时,AdTech还积极参与国际技术交流与合作,不断提升自身的研发能力和产品质量。这些举措不仅增强了公司的品牌影响力,也为其带来了更多的商业机会。

问答坊 | AI 解惑

FLASH MEMORY 的具体操作指南

Typical storage methods are shown. Read operation A read operation starts with a command (00h), followed by five address cycles, followed by the read confirm (30h). After the read transfer time (tR) of approximately 25 μs, the ...…

查看全部问答>

GPRS与Internet的连接问题

    我现在用的GPRS模块是BenQ的M23,要实现的是利用单片机将数据通过GPRS传输到Internet网站上,M23是自带的通信协议,如果要连接Internet网络,那么有关ppp协议和TCP/IP协议的相互转换,要如何实现呢????     另外,GPR ...…

查看全部问答>

列表控件如何拉伸图标?

在列表控件上显示设置里的图标,有的大有的小,如何才能拉伸致一样大?还有个问题,如何知道设置里的图标是在个人还是在系统还是在连接里?谢谢 void GetFileIcon(DWORD fpid,SHFILEINFO *info) {         ZeroMemory(info, ...…

查看全部问答>

请教,PDA内存卡操作

1如何获取PDA内存卡名称?我用多普达的叫“存储卡” HP的叫 “SD CARD”? 2频繁读写文件会不会导致 该内存卡无响应,资源管理器无法关闭? …

查看全部问答>

求救!关于8259A的问题

我写了一个程序,用于读取8259A的中断请求寄存器IRR,中断服务寄存器ISR, 中断屏蔽寄存器IMR,为什么读出的IRR和ISR都总是0,而IMR总是0x18,是什么原因,望高手指点! 读取IRR寄存器的源程序: #include #include \"IOport.h\"   /*定义了O ...…

查看全部问答>

香版主,奇怪问题关于GPIO

                                 大家都讨论了gpio的输出速度,疑惑的是如果对一个输入管脚连续读入,那么可以实现的读入频率是多大呢?如果是单片 ...…

查看全部问答>

第一个不眠之夜

本帖最后由 paulhyde 于 2014-9-15 04:01 编辑     今天是大赛的第一天,题目刚拿到的狂喜或者大悲已经过去了吧,现在应该是白天苦思冥想之后开始静下心来读数据手册和确定方案的时间了吧。如果方案确定了,你还没有睡,早点休息吧 ...…

查看全部问答>

STM32一直处于复位状态复位

STM32的RESET脚一直处于有效状态,导致程序一直不能下载。。检查了硬件复位电路,(采用上拉电阻串电容并复位开关,再接地),硬件没问题的,但再上啦电阻和电容中间电压就为0 了,那么可能是软件复位的。我检查供电电压也正常,不能理解为何会软件 ...…

查看全部问答>

谁有TI官方2530+2591的PCB文件

从官网上下载的那个yongcadstar没法打开,那位大侠有的话能否上传一份,谢谢啦…

查看全部问答>