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必须在两个位置而不是一个位置进行搜索,但是缓存命中的几率要大得多。
关键字:ARM64 体系结构 编程 高速缓存
引用地址:
ARM64体系结构编程与实践学习笔记(九) 高速缓存介绍
推荐阅读最新更新时间:2024-11-05 20:13
STM8库编程笔记之时钟管理
STM8库函数学习笔记之时钟管理 相关函数: void CLK_DeInit(void); void CLK_HSECmd(FunctionalState NewState); void CLK_HSICmd(FunctionalState NewState); void CLK_LSICmd(FunctionalState NewState); void CLK_CCOCmd(FunctionalState NewState); void CLK_ClockSwitchCmd(FunctionalState NewState); void CLK_FastHaltWakeUpCmd(FunctionalState New
[单片机]
STM32自打包的UART串口通讯编程方法
在对通讯时间要求比较高的时候,就需要自己对UART的通讯底层直接进行操作。我以STM32单片机为例,讲一下比较快速的UART编程方法。——其实不止是STM32这么处理,我以前使用过51的单片机,TI的MSP单片机,三菱的16位单片机,都可以采用这种方法。 基本的处理思路如下: 1. UART接收的处理方法 打开UART的接收中断,每收到一个字节就放到接收缓冲区,同时更新接收指针。当连续100ms没有收到接收字符,则认为本次帧接收完毕,置位帧接收完成标志,由主程序进行处理。 2. UART发送的处理方法 将需要发送的数据放到发送缓冲区,设置发送长度。然后发送第一个字节,并打开发送中
[单片机]
s3c2440裸机-I2c编程-4-i2c中断服务程序
1.顺寻访问(Page Read) 下图的表格,来说明NAND FLASH内部结构,前面2K(0~2047)表示页数据,后边64字节(2048~2111)表示oob。 CPU想读取,第2048个数据,它是哪以一个? 是Page1的第0个字节。CPU使用某个地址访问数据的时候,是在页数据空间来寻址的。 下图为读NAND FLASH的read时序操作: 1.首先需要锁存00命令,nCE、CLE、nWE有效,0x00命令被锁存; 2.此时CLE无效,ALE开始有效,地址被锁存(从NAND FLASH的地址周期中可以看出来,先发出2个周期的col列地址,再发出3个周期的Row行地址); 3.锁存0x30命令; 4.然后会有
[单片机]
基于STM32和CPLD可编程逻辑器件的等精度测频技术
在电子工程、资源勘探、仪器仪表等相关应用中,频率测量是电子测量技术中最基本最常见的测量之一,频率计也是工程技术人员必不可少的测量工具。但是,传统的频率测量方法在实际应用中有较大的局限性,基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化,传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低。本文中提出一种基于ARM与CPLD宽频带的数字频率计的设计,以微控器STM32作为核心控制芯片,利用CPLD可编程逻辑器件,实现闸门测量技术的等精度测频。 本设计的技术指标: 测频范围:1Hz~200MHz,分辨率为0.1Hz,测频相对误差百万分之一。 周期测量:信号测量范围与精度要求
[单片机]
Aeroflex推出5800系列ATE系统
Aeroflex 推出具备数字测试能力的5800 系列 ATE 系统。5800系列专门为从事混合信号测试、器件编程、功能测试、在线测试(ICT)编程或简单协议通信的工程人员而设计,采用开放式架构或高度可配置架构,便于适应不断演进的印刷电路板 (PCB) 工业标准,为轻松升级满足今后出现的新的测试需求提供通用解决方案。 图片说明: Aeroflex 推出具备数字功能测试能力的 5800系列ATE系统. 5800系列是一种无缝集成模拟套件的易用数字系统,支持混合信号测试以及纯数字化功能测试。系统基于数字测试控制板,最多可配置18块数字测试点卡,数字功能测试点最多可支持1,152个非复用I/O通道。 美国《
[测试测量]
51单片机编程 第五节:键盘驱动
第五节:键盘驱动 指提供一些函数给任务调用,获取按键信息,或读取按键值。 定义一个头文档 KEY.H ,描述可用函数,如下: 代码 1. #ifndef _KEY_H_ //防止重复引用该文档,如果没有定义过符号 _KEY_H_,则编译下面语句 2. #define _KEY_H_ //只要引用过一次,即 #include key.h ,则定义符号 _KEY_H_ 3. unsigned char keyHit( void ); //如果按键,则返回非0,否则返回0 4. unsigned char keyGet( void ); //读取按键值,如果没有按键则等待到按键为止 5.
[单片机]
mini2440裸机编程------IIS
这段时间做了IIS的试验。被这个试验也折腾了很久。总的来讲IIS还是一个相对简单的通信协议。 s3c2440一共有5个引脚用于IIS:IISDO、IISDI、IISSCLK、IISLRCK和CDCLK。前两个引脚用于数字音频信号的输出和输入,另外三个引脚都与音频信号的频率有关。 要用好IIS,就要把信号频率设置正确。下面介绍这几个时钟: fs:采样频率。fs不是任意设置的,一般基于不同的应用场合和听觉效果,设置不同的几个固定的值,如8kHz、16kHz、22.05kHz、44.1kHz、48kHz、96kHz等。通常,在wav文件的头部中, 会给出该文件的fs。 IISSCLK:串行时钟,每一个时钟信号传送一位音频
[单片机]
Willtek 在基于picoChip软件无线电技术的WCDMA和CDMA手机综合测试仪上成功添加TD-SCDMA测试功能
picoChip 加强与 Willtek Communications 的合作 picoChip公司今天宣布:德国威尔泰克通讯技术有限公司(Willtek Communications)已经将对TD-SCDMA标准的支持添加到其基于软件的第三代移动通信(3G)手机测试仪系列中,Willtek是一家为无线制造商和网络运营商提供测试设备的领先供应商。自2003年该公司成为picoChip的第一个客户后,这个举措进一步强化了两公司之间的合作。除了TD-SCDMA外,基于picoChip可编程基带技术的Willtek测试设备,已经可以支持WCDMA和1xEV-DO等标准,其产品全面的标准覆盖使得该公司在业界独
[新品]