计算机组成原理之地址映射

news2024/11/23 13:11:04

例1:某计算机主存容量256MB,按字编址,字长1B,块大小32B,Cache容量512KB。对如下的直接映射方式、4-路组相联映射方式、全相联映射方式的内存地址格式,求:
(1)计算A、B、C、D、E、G字段的位数;(6分)
(2)若某字的地址为(2BF3A2E)16,若采用4-路组相连映射方式,则该字对应的标记D是什么?对于包含该地址在内的组,对应的字地址范围是多少?(结果用十六进制表示。)(3分)

直接映射方式:

标记ACache行号B字地址C
4-路组相联映射方式:
标记DCache组号E字地址F
全相联映射方式:
标记G字地址H

解题:
(1)由主存容量256MB=2^28B,且按字编址,字长为1B,可得地址总位数为28位。由块大小为32B,字长1B,得字地址位数为5位。Cache容量为512KB,总共可以分为512KB/32B=16K(行),Cache行号位数为14位。若按4-路组相连进行组织,则共有16K/4=4K(组),组号位数12位。
B的位数14,C的位数5,A的位数28-5-14=9.
E的位数12,F的位数5,D的位数28-5-12=11.
H的位数5,G的位数28-5=23.
(2)(2BF3A2E)16=(0010 1011 1111 0011 1010 0010 1110) 2
若采用4-路组相连,则标记D为高11位地址(0010 1011 111)2,用十六进制表示为(15F)16。
 **由于内存和Cache映射时是以块为单位进行映射,因此在4-路组相连映射情况时,相当于将D和E固定,对F进行排列组合。**也就是说,包含该地址在内的组对应的字地址范围是:(0010 1011 1111 0011 1010 0010 0000) 2 ~ (0010 1011 1111 0011 1010 0011 1111) 2,即有(2BF3A20)16~(2BF3A3F)16

例2:将 4K×8 的 DRAM 存储芯片组装成 128M×32 的存储器,按字节从地址 0 开始编址,字长 32 位。设存储周期为 400ns,数据总线宽度为 32 位,总线传送周期为50ns,试求:
(1)若采用顺序存储方式,则地址为(1A2C0005)16的字位于哪个模块?在模块内第几个字?(从 0 开始编号;结果用十六进制表示)

解题:因按字节编址,每一 32 位字长需要 2 位来进行编码,128M 个字长需要 27 位来进行编码,因此 128M×32 位的存储器地址线为 29 位。 (易错)
用 4K×8 的 DRAM 存 储 芯 片 组 装 成 128M×32 的 存 储 器 , 总 共 需 要(128M×32)/(4K×8)=217 块存储芯片。其中,每 4 个存储芯片为一个模块来进行字长扩展,则总共有 215模块。
因采用顺序存储方式,因此 29 位地址中,高 15 位用于模块选择,接下去的 12 位为片内选择,最后 2 位是字长内不同字节选择。
对于给定的地址(1A2C0005)16=(0001 1010 0010 1100 0000 0000 0000 0101)2,最高 3 位000 位无效地址,接下来的 15 位 1 1010 0010 1100 00 为模块编号,随后的 12 位 00 0000 0000 01 为片内编号,最后 2 位 01 为字长内字节编号。因此该地址位于(68B0)16模块内的(001) 16字。

例3: 某机器字长为 32 位,按字编址,总容量为 64M×32。其中,ROM 的容量为4M×32,占用低位地址空间,由 1M×16 的 ROM 芯片构成;RAM 的容量为 60M×32,占用高位地址空间,由 4M×16 的 DRAM 芯片构成。ROM 芯片有CS̅̅̅信号控制端,DRAM
芯片有CS̅̅̅和WE ̅̅̅̅̅信号控制端,CPU 的控制信号为𝑅/𝑊̅ (读/写)。请问:
(1) 总共需要多少 ROM 芯片?ROM 的地址范围是多少(用十六进制表示)?(2 分)
(2) 总共需要多少 DRAM 芯片?RAM 的地址范围是多少(用十六进制表示)?(2 分)
(3) 若 ROM 和 RAM 采用顺序方式进行字、位扩充,请画出存储器 ROM 和 DRAM 同CPU 连接的组成逻辑框图。(6 分)
(4) 若在 CPU 和内存间引入 512K 的高速缓存 Cache,且采用 4-路组相连映射方式,块大小为 32 字节,则 Cache 可以分为多少组?若将包含内存地址(5010 CA00)16的块调入 Cache,则将映射到 Cache 的哪个组(下标从 0 开始)?

解题:(1)ROM 芯片数:4M×32/(1M×16)=8(片)由于总存储容量是 64M×32 位,按字编址,且字长为 32 位,因此地址线数量是 26 位。且ROM 占低位地址,因此最低的 4M 字是 ROM 的范围,具体而言地址范围是(000 0000)16 –(03F FFFF) 16。 (1 分)
(2)DRAM 芯片数:60M×32/(4M×16)=30(片) (1 分)
根据题意,DRAM 占高位地址内存空间,即高 60M 均属于 DRAM 的。具体而言,地址范围是(040 0000)16 – (3FF FFFF) 16。 (1 分)
(3)ROM 和 DRAM 芯片,都是两片经由位数扩充组成一组,ROM 共 4 组,DRAM 共15 组。按 32 位字长进行编制,因此实际的地址位数为 26 位。对于 ROM 而言,片内是 20位,片选是高 2 位;对于 RAM 而言,片内是 22 位,片选是 4 位。由于 ROM 和 RAM 的片内地址线和片选线数量均不一致,因此只能向 ROM 看齐。具体而言,26 位地址线中的高 6 位用于片选译码,译出 64 种片选信号,其中对应000000–000011 的属于 ROM 的 4 组片选信号,剩余的 000100–111111 共 60 种情况用于 RAM 的片选。然而 RAM 实际上只有15 组,且 RAM 的片内地址线应该为 22 位,因此每连续的 4 种情况对应 RAM 的一组。例如 000100~000111 对应用于 RAM 的组 0,其它依次类推。
(4))因采用 4-路组相连,因此每个组大小为 4×32=128B。这样 512KB 的 Cache 总共可以分成512KB/128B=4K=4096组
对于给定的 DRAM 地址(110 CA00)16,共 28 位,其中最高 2 位超出地址线数量 26,因此这最高 2 位没有作用;接下来的 26 位为有效地址。由于内存按 32 位字长进行编址,因此块内实际有 8 个字,因此块内编号需要 3 位;由于 Cache 有 4096 组,因此组号为 12
位;剩下的 tag 为 26-3-12=11 位。按此格式,可知包含(110 CA00)16 的块映射到的组号为(1001 0100 0000)2=(940)16
在这里插入图片描述

例4:设某机器字长32位(即数据线、地址线位数均为32位),按字编址。在该机器上运行如下的C语言程序:
int a[16], k, sum=0;
for (k=0; k<16; k++) sum += a[k];
设整型数据在内存中占4个字节(即一个字长),内存足够大,数组元素放在内存中的连续单元,k和sum已经放在寄存器中。假设主存和Cache的块大小为4字长,数组元素a[0]-a[3]存放在主存的B0块中,数组a的其它元素依次存放;计算机的Cache有8行,行号为L0-L7;内存数据块映射到Cache时采用直接映射方法。试回答下列问题:
(1) 采用直接映射时,内存地址格式如何?简述理由;(3分)
(2) 数组元素a[5]放在Cache的哪一行中?简述理由;(2分)
(3) 就该程序而言,Cache的命中率是多少?简述理由。

解题:(1)由于每块有 4 个字,因此块内地址 2 位。Cache 总共有 8 行,因此采用直接映射方式时,用于 Cache 行号的地址为 3 位,剩余的 32-2-3=27 位为标记位。因此,内存地址格式如下:
标记(27 位) Cache 行号(3 位) 块内编址(2 位)
(2)a[5]属于内存数据块 B1,通过 1%8=1 方式映射到 Cache 的 L1 行。
(3)当对 a[0]进行累加时,a[0]在内存中,因此需要访问内存来获得 a[0]。内存在将 a[0]传送给 CPU 的同时,根据局部性原理将 a[0]-a[3]同时传送给 Cache。因此,在累加 a[1]-a[3]时,这 3 个元素均可以在 Cache 中找到。对于其它数据块,有类似的情况,即某块的第 0
个元素需要访问内存,该块内的其余元素可以在 Cache 中获得。因此,执行此段 C 语言程序,共访问内存 4 次,访问 Cache 12 次,则 Cache 的命中率为:12/(12+4)=75%

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是层叠上下文(stacking context)?它是如何形成的?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 层叠上下文&#xff08;Stacking Context&#xff09;是什么&#xff1f;⭐ 层叠上下文的形成⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎…

DNS主域名服务器搭建之深入了解

一些DNS的配置文件以及重要信息&#xff1a; 主配置文件&#xff1a;/etc/named.conf 次要配置文件&#xff1a; /etc/named.rfc1912.zones 主进程名字&#xff1a;named named.ca 记录13台根域名服务器地址的文件 监听的端口&#xff1a;53 tcp/udp 1、修改次要配置文件…

【HarmonyOS】API9沉浸式状态栏

对于沉浸式状态栏&#xff0c;在之前API8 FA模型开发中可以通过在config.json配置主题的方式实现应用的沉浸式体验&#xff0c;在最新的API9 Stage模型中系统提供了沉浸式窗口的示例&#xff08;管理应用窗口&#xff08;Stage模型&#xff09;-窗口管理-开发-HarmonyOS应用开发…

【Spring Cloud Alibaba】RocketMQ的基础使用,如何发送消息和消费消息

在现代分布式架构的开发中&#xff0c;消息队列扮演着至关重要的角色&#xff0c;用于解耦系统组件、保障可靠性以及实现异步通信。RocketMQ作为一款开源的分布式消息中间件&#xff0c;凭借其高性能、高可用性和良好的扩展性&#xff0c;成为了众多企业在构建高可靠性、高吞吐…

关于统一事件管理,一定有你想知道的(一)

本文部分内容来源于布博士----擎创科技资深产品专家 IT技术已经无处不在&#xff0c;各行各业都离不开它。无论是银行、券商、家庭、学校还是个人&#xff0c;都离不开IT技术。例如&#xff1a; 我们⼈与⼈之间社交的软件&#xff0c;如微信、QQ、陌陌、Facebook等。 银⾏通过…

火山引擎DataLeap的Data Catalog系统公有云实践

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 Data Catalog是一种元数据管理的服务&#xff0c;会收集技术元数据&#xff0c;并在其基础上提供更丰富的业务上下文与语义&#xff0c;通常支持元数据编目、查找、…

常见分辨率时序信息

分辨率列表 分辨率一:640x480(逐行) 分辨率二:800x600(逐行) 分辨率三:1024x768(逐行) 分辨率四:大名鼎鼎720P(逐行) 注:选择720P@30帧的,需拉长HOR TOTAL TIME 分辨率五:1280x800(逐行) 分辨率六:1280x960(逐行

MySQL和Redis如何保证数据一致性

MySQL与Redis都是常用的数据存储和缓存系统。为了提高应用程序的性能和可伸缩性&#xff0c;很多应用程序将MySQL和Redis一起使用&#xff0c;其中MySQL作为主要的持久存储&#xff0c;而Redis作为主要的缓存。在这种情况下&#xff0c;应用程序需要确保MySQL和Redis中的数据是…

Bootstrap-fileinput 插件的使用

1.bootstrap-fileinput 下载地址 https://github.com/kartik-v/bootstrap-fileinput.git 2.bootstrap-fileinput 使用 input 标签 multiple"multiple" 表示可以多选文件 <div class"container-fluid"><div class"card border-0 shadow-sm…

深度学习在MRI运动校正中的应用综述

运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的&#xff0c;因此除了其他MR成像伪影之外&#xff0c;成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的MR采集序列、感兴趣的解剖结构和病理学以及运动模式&…

这四种订货系统不能选(四):不能源码交付

订货系统在现代企业管理中具备着重要的地位和作用。通过订货系统&#xff0c;企业能够更好地掌握市场需求&#xff0c;提高订单的准确性和及时性&#xff0c;优化企业的供应链管理&#xff0c;并加强与供应商之间的合作与沟通。今天我们分享最后一个不能选的、也是最重要的一点…

ArcGIS Pro发布地图服务(影像、矢量)

本文示例使用&#xff08;因为portal的授权的版本只有10.5的&#xff0c;故使用10.5进行示例&#xff09;&#xff1a; 软件:ArcGIS Pro3.0.1&#xff08;破解版&#xff09;&#xff0c; ArcGIS Portal10.5 当ArcGIS Pro和Portal不在一个机器或者版本不一样的时候&#xff0…

日常问题——git推送代码被拒绝

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 Push to origin/master was rejected 提交代码时提示&#xff0c;被拒绝。 二、问题原因 …

(七)Unity VR项目升级至Vision Pro需要做的工作

Vision Pro 概述 定位为混合现实眼镜&#xff0c;对AR支持更友好 无手柄&#xff0c;支持手&#xff08;手势&#xff09;、眼&#xff08;注视&#xff09;、语音交互 支持空间音频&#xff0c;相比立体声、环绕声更有沉浸感和空间感 支持VR/AR应用&#xff0c;支持多种应用模…

零基础官网下载jdk

Oracle 官网总是隔一段时间一改版&#xff0c;时间长了博客可能不适用&#xff0c;望注意&#xff0c;但是精髓不变。 Oracle官网 官网地址百度搜索&#xff0c;其他任何官网都一个套路&#xff0c;但要识别下一些广告网站会模仿官方网站。 官网地址&#xff1a;https://www.…

k8s服务注册发现

Service 是 将运行在一个或一组pod上的网络应用程序公开为网络服务的方法。 定义service前端为service名称、ip、端口等不变的部分&#xff0c;后端为符合标签选择的pod集合 注册 通过api server提交注册service请求到DNSservice随后得到clusterIP&#xff08;虚拟ip地址&am…

UHPC的疲劳计算——兼论ModelCode2010的适用性

文章目录 0. 背景1、结论及概述2、MC10对于SN曲线的调整&#xff08;囊括NC、HPC、UHPC&#xff09;2.1 疲劳失效曲面的构建2.2 新模型的验证 3、MC10对于疲劳设计强度的调整及其背后的原因4. 结语 0. 背景 今年年初&#xff0c;有一位用UHPC做混凝土塔筒的同行告诉我&#xf…

多平台1688、淘宝、京东搜索商品聚合接口,示例返回值说明

多平台根据关键词取商品列表 API 返回值说明 item_search-根据关键词取商品列表 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;Taobao。拼多多。京东&#xff0c;1688API 接口测试secretString是调用密钥api_nameString是A…

Deep Learning With Pytorch - 最基本的感知机、贯序模型/分类、拟合

文章目录 如何利用pytorch创建一个简单的网络模型&#xff1f;Step1. 感知机&#xff0c;多层感知机&#xff08;MLP&#xff09;的基本结构Step2. 超平面 ω T ⋅ x b 0 \omega^{T}xb0 ωT⋅xb0 or ω T ⋅ x b \omega^{T}xb ωT⋅xb感知机函数 Step3. 利用感知机进行决策…

我们为什么需要API管理系统?

我们为什么需要API管理系统&#xff1f; 随着web技术的发展&#xff0c;前后端分离成为越来越多互联网公司构建应用的方式。前后端分离的优势是一套Api可被多个客户端复用&#xff0c;分工和协作被细化&#xff0c;大大提高了编码效率&#xff0c;但同时也带来一些“副作用”:…