计算机组成原理 | Cache与主存的地址映射计算(笔记)

2024-02-14 12:38

本文主要是介绍计算机组成原理 | Cache与主存的地址映射计算(笔记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

地址映射

1.全相联映射 (fully-associated)

2.直接相联映射 (direct mapped)

3.组相联映射 (set-associated)

例题

地址映射

地址映射 --- 由主存地址映象到cache地址称为地址映射

1.全相联映射 (fully-associated)

概念 —— 各主存都可以映射到cache的任意数据块。

地址划分

 主存划分的计算

2.直接相联映射 (direct mapped)

概念 —— 每一个主存块地址只可以映射到cache的固定行。

 地址划分

主存划分的计算

 

3.组相联映射 (set-associated)

概念 —— 在组间采用直接映射,在组内采用全相联映射。

  地址划分

主存划分的计算

4.例题

【例1】某计算机的 cache 由 1K个存储块构成,主存包含 64K 个存储块,每块由 256 个字组成,访问地址为字地址

(1)若采用全相联映射方式,列出主存地址的划分情况,并标出各部分的位数。

        块内偏移 w --- 存储块每块256字,即2^8字,块内偏移需要8位,即 w=8

        主存块地址 s --- 主存有64K块,即2^16 块,主存块地址16位,即 s=16        

(2)若采用直接映射方式,列出主存地址的划分情况,并标出各部分的位数。

        块内偏移 w --- 同上,即 w=8

        行索引 r --- cache有1k块,即2^10块(行),区内行索引字段位数10位,即 r=10

        区地址 s-r --- 主存有64K块,即2^16 块, s=16; 区地址字段位数 = s-r = 16-10 = 6位。

                              或 主存块数 / cache块数 = 64K / 1K = 64 = 2^6 ,即s-r = 6

(3)若采用8路组相联映射方式,列出主存地址的划分情况,并标出各部分的位数。         

        块内偏移 w --- 同上,即 w=8

        组索引 r --- cache的块数 / n = 1K/8 = 128 =2^7,组索引字段位7位,即d=7

        区地址 s-r --- 主存有64K块,即2^16 块,s=16;标记(tag)地址字段位数 = s-d = 16-7 = 9

【例2】某计算机字长32位, cache 由 1K个存储块构成,主存包含 64K 个存储块,每块由 256 个字组成,访问地址为字节地址

(1)在字长32位计算机中,1字 = 4字节

        [附]  字(Word) = (计算机字长 / 8)  字节(Byte) = (计算机字长) 位(bit)

                1 字节(Byte) = 8 位(bit)

(2)若采用全相联映射方式,列出主存地址的划分情况,并标出各部分的位数。

        块内偏移 w --- 存储块每块256字,即2^8字 = 2^10字节,块内偏移需要10位,即 w=10

        主存块地址 s --- 同上题,即 s=16       

(3)若采用直接映射方式,列出主存地址的划分情况,并标出各部分的位数。

        块内偏移 w --- 同上,即 w=10

        行索引 r --- 同上题,即 r=10

        区地址 s-r --- 同上题,即 s-r = 6

(3)若采用8路组相联映射方式,列出主存地址的划分情况,并标出各部分的位数。         

        块内偏移 w --- 同上,即 w=10

        组索引 r --- 同上题,即 d=7

        区地址 s-r --- 同上题,即 s-d = 16-7 = 9

这篇关于计算机组成原理 | Cache与主存的地址映射计算(笔记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708518

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

Spring Cache注解@Cacheable的九个属性详解

《SpringCache注解@Cacheable的九个属性详解》在@Cacheable注解的使用中,共有9个属性供我们来使用,这9个属性分别是:value、cacheNames、key、key... 目录1.value/cacheNames 属性2.key属性3.keyGeneratjavascriptor

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,