历史上的今天
今天是: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必须在两个位置而不是一个位置进行搜索,但是缓存命中的几率要大得多。
史海拾趣
|
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模块是BenQ的M23,要实现的是利用单片机将数据通过GPRS传输到Internet网站上,M23是自带的通信协议,如果要连接Internet网络,那么有关ppp协议和TCP/IP协议的相互转换,要如何实现呢???? 另外,GPR ...… 查看全部问答> |
|
在列表控件上显示设置里的图标,有的大有的小,如何才能拉伸致一样大?还有个问题,如何知道设置里的图标是在个人还是在系统还是在连接里?谢谢 void GetFileIcon(DWORD fpid,SHFILEINFO *info) { ZeroMemory(info, ...… 查看全部问答> |
|
我写了一个程序,用于读取8259A的中断请求寄存器IRR,中断服务寄存器ISR, 中断屏蔽寄存器IMR,为什么读出的IRR和ISR都总是0,而IMR总是0x18,是什么原因,望高手指点! 读取IRR寄存器的源程序: #include #include \"IOport.h\" /*定义了O ...… 查看全部问答> |
|
STM32的RESET脚一直处于有效状态,导致程序一直不能下载。。检查了硬件复位电路,(采用上拉电阻串电容并复位开关,再接地),硬件没问题的,但再上啦电阻和电容中间电压就为0 了,那么可能是软件复位的。我检查供电电压也正常,不能理解为何会软件 ...… 查看全部问答> |




