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

例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.rhkb.cn/news/90924.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

案例研究|大福中国通过JumpServer满足等保合规和资产管理双重需求

“大福中国为了满足安全合规要求引入堡垒机产品&#xff0c;在对比了传统型堡垒机后&#xff0c;发现JumpServer使用部署更加灵活&#xff0c;功能特性丰富&#xff0c;能够较好地满足公司在等保合规和资产管理方面的双重需求。” ——大福&#xff08;中国&#xff09;有限公…

网络编程(8.14)TCP并发服务器模型

作业&#xff1a; 1. 多线程中的newfd&#xff0c;能否修改成全局&#xff0c;不行&#xff0c;为什么&#xff1f; 2. 多线程中分支线程的newfd能否不另存&#xff0c;直接用指针间接访问主线程中的newfd,不行&#xff0c;为什么&#xff1f; 多线程并发服务器模型原代码&…

YOLOv5基础知识入门(3)— 目标检测相关知识点

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLO算法发展历程和YOLOv5核心基础知识学习完成之后&#xff0c;接下来我们就需要学习目标检测相关知识了。为了让大家后面可以顺利地用YOLOv5进行目标检测实战&#xff0c;本节课就带领大家学习一下目标检测的基础知识点&…

SpringBootWeb案例

通过该综合案例,我们就可以知道,在开发一个Web程序时,前端程序、后端程序以及数据库这三者之间是如何交互、如何协作的,而通过这个综合案例也需要掌握根据接口文档开发服务端接口的能力。 而这个案例呢,就是Tlias智能学习辅助系统。 产品经理所绘制的页面原型: 在这个案…

less基本使用

1 less中的变量 //对值进行声明 link-color: #ccc//定义变量名称 .{sleName} {}bg: background-color; //定义属性名称 .container {{bg}: red; }2 继承&#xff08;复用重复样式&#xff09; //继承必须位于选择器最后 //继承选择器名不能为变量 .a:hover:extend(.b) {}.a {…

数据结构篇七:排序

文章目录 前言1.插入排序1.1 基本思想1.2 代码实现1.3 特性总结 2.希尔排序2.1 基本思想2.2 代码实现2.3 特性总结 3. 选择排序3.1 基本思想3.2 代码实现3.3 特性总结 4. 堆排序4.1 基本思想4.2 代码实现4.3 特性总结 5. 冒泡排序5.1 基本思想5.2 代码实现5.3 特性总结 6. 快速…

浦东优秀解决方案!闪马智能加速赋能数字化转型

近日&#xff0c;由上海市浦东新区城市数字化转型应用促进中心和上海数字产业发展有限公司联合主办的2023年浦东新区“数转汇”品牌活动启动仪式暨上海数产“科技下午茶”活动举行。现场“2022年浦东新区数字化转型应用优秀解决方案”正式发布&#xff0c;凭借智慧交通一体化感…

VM中linux虚拟机配置桥接模式(虚拟机与宿主机网络互通)

VM虚拟机配置桥接模式&#xff0c;可以让虚拟机和物理主机一样存在于局域网中&#xff0c;可以和主机相通&#xff0c;和互联网相通&#xff0c;和局域网中其它主机相通。 vmware为我们提供了三种网络工作模式&#xff0c;它们分别是&#xff1a;Bridged&#xff08;桥接模式&…

智头条|DFM-2大模型吹热智能家居,360安全云正式发布

行业动态 DFM-2大模型吹热智能家居 近期,思必驰行业语言计算大模型DFM-2正式发布,也带来了人机交互能力的提升和优秀的技术落地能力。DFM-2大模型与DUI平台结合推出DUI2.0,完成了对话式AI全链路技术的升级,推进深度产业应用。在智能家居领域,目前思必驰已与海信、长虹美菱、老…

ORA-00845: MEMORY_TARGET not supported on this system

处理故障时&#xff0c;发现startup实例失败&#xff0c;报错ORA-00845: MEMORY_TARGET not supported on this system SYSorcl1> startup; ORA-00845: MEMORY_TARGET not supported on this system 查看alert日志&#xff0c;报错如下 Starting ORACLE instance (normal…

一个脚本 专治杂乱

背景 之前不是自己手动搞了一个COS嘛&#xff0c;直接复制粘贴图片&#xff0c;上传到后端的服务器&#xff0c;返回一个可访问的地址。我在哔哩哔哩上也分享过这样的一期视频。 今天偶尔上服务器一看&#xff0c;我靠&#xff0c;我的文件真的乱&#xff01; 这还得了了&…

ViewFs And Federation On HDFS

序言 ViewFs 是在Federation的基础上提出的,用于通过一个HDFS路径来访问多个NameSpace,同时与ViewFs搭配的技术是client-side mount table(这个就是具体的规则配置信息可以放置在core.xml中,也可以放置在mountTable.xml中). 总的来说ViewFs的其实就是一个中间层,用于去连接不…

Redis - 数据类型映射底层结构

简介 从数据类型上体现就是&#xff0c;同一个数据类型&#xff0c;在不同的情况下会使用不同的编码类型&#xff0c;底层所使用的的数据结构也不相同。 字符串对象 字符串对象的编码可以是 int、raw 和 embstr 三者之一。 embstr 编码是专门用于保存简短字符串的一种优化编…

日常BUG——代码提交到了本地但是没有push,删除了本地分支如何恢复

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 代码在本地提交了&#xff0c;但是没有push到远程&#xff0c;然后删除了本地的分支。想要恢…

FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX实时搜索插件

FiboSearch Pro是最受欢迎的WooCommerce 产品搜索插件。它为您的用户提供精心设计的高级 AJAX 搜索栏&#xff0c;并提供实时搜索建议。默认情况下&#xff0c;WooCommerce 提供非常简单的搜索解决方案&#xff0c;没有实时产品搜索&#xff0c;甚至没有 SKU 搜索。FiboSearch&…

iTOP-i.MX8M开发板添加USB网络设备驱动

选中支持 USB 网络设备驱动&#xff0c;如下图所示&#xff1a; [*] Device Drivers→ *- Network device support → USB Network Adapters→ {*} Multi-purpose USB Networking Framework 将光标移动到 save 保存&#xff0c;如下图所示&#xff1a; 保存到 arch/arm64/c…

ESLint是什么?

ESLint 介绍 ESLint 是一款插件&#xff0c;主要用来检测编写的&#xff08; JavaScript &#xff09;代码是否符合规范。当然在一个团队中也会自定义一些规范条件。另外正常情况下我们不需要单独安装 ESLint 去使用&#xff0c;这里只是为了做演示。例如 vue-cli 脚手架搭建的…

FFmpeg常见命令行(五):FFmpeg滤镜使用

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》&#xff0c;结合我自己的工作学习经历&#xff0c;我准备写一个音视频系列blog。本文是音视频系…

电脑ip地址怎么改 ip地址怎么改到别的城市

一、ip地址怎么改到别的城市 1.ip地址怎么改到别的城市&#xff0c;1、重启WIFI路由设备 一般手机或电脑在家或公司上网时都是接入到路由器的WIFI网络,再由路由器分配上网IP地址,如果要更换上网IP那么重启路由器设备后,路由器会向网络运营商进行宽带的重新拨号,此时手机或电脑设…

Fortinet数据中心防火墙及服务ROI超300%!Forrester TEI研究发布

近日&#xff0c;专注网络与安全融合的全球网络安全领导者 Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;联合全球知名分析机构Forrester发布总体经济影响独立分析报告&#xff0c;详细阐述了在企业数据中心部署 FortiGate 下一代防火墙&#xff08;NGFW&#xff09…