注:参考课本《计算机组成原理》(第二版)唐朔飞编著

注:下文部分图片摘自哈尔滨工业大学《计算机组成原理(上)》慕课

注:学的不好,博文可能有雾(欢迎指正~

目录

一、直接映射

计算方法

二、全相联映射

计算方法

三、组相联映射

计算方法

例题1(课本P120页例4.8):

例题2(课本P120页例4.9)

按照字节编址和按字编址的区别:

补充1:

补充2:


一、直接映射

计算方法:

  • 主存地址长度:主存中存储单元个数为,则主存地址长度就是10
  • Cache地址长度:Cache中存储单元个数为,则Cache地址长度就是10
  • t:主存地址长度 - Cache地址长度
  • c:Cache可以被分为
  • m:主存可以被分为
  • b:块长为(按访存地址计算)
  • m = t + c
  • m=主存地址长度 - b
  • 主存地址长度 = t + c + b

二、全相联映射

计算方法:

全相联中的t,c,b,m和直接映射中的都一样,所以计算方法同上。

三、组相联映射

计算方法:

  •  表示Cache的总块数
  •  表示Cache分组个数(分组个数=分块个数/组内块数)
  •  表示组内包含的块数(r=1,每组包含2块,叫做二路组相联)
  • s = t + r
  • q = c - r

例题1(课本P120页例4.8):

假设主存容量为512KB,Cache容量为4KB,每个字块为16个字,每个字为32位。问: 
(1).Cache地址为多少位?可容纳多少块? 
(2).主存地址为多少位?可容纳多少块? 
(3).在直接映射方式下,主存的第几块映射到Cache中的第五块(设起始字块号为1) 
(4).画出直接映射方式下主存地址字段中各段的位数。

(1)题上没有说是按字访问还是按字节访问,并且题上给出的容量是4KB,那么我们默认是按字节访问,那么根据存储容量的公式:存储容量=存储单元个数*存储字长(课本P17),那么Cache容量为4KB,即有个数据单元,每个数据单元为8位。所以,Cache地址长度为12。每个字块有16*32位,则4KB的Cache可容纳的块数为:4KB/(16*32位)=(*8) / (16*32)=64块。

(2)同理,主存地址为19位(512K=),可容纳(*8)/(16*32)=8192块.

(3)Cache共有64块,则按照主存块号按照64取模为5的主存块都会映射到Cache中的第5块,则满足要求的主存块号为5,64+5,2∗64+5.....2^13-64+5。

(4)第四个就是求t、c、b。t=主存地址长度 - Cache地址长度=19-12=7。Cache共有64块,c=6。

默认其是按字节访问,那么块长就是6位,每个字为32/8=4字节,每个字块就有16x4=64字节(就是),所以b=6。

当然,计算方法不止一种,也可以通过关系式推导得出。

例题2(课本P120页例4.9)

假设主存容量为512K*16位,Cache容量为4096*16位,块长为4个16位的字,访存地址为字。 
(1).在直接映射下,设计主存的地址格式。 
(2).在全相联映射下,设计主存的地址格式。 
(3).在二路组相联映射方式下,设计主存的地址格式。 
(4).若主存容量为512K*32位,块长不变,在四路组相联映射下,设计主存的地址格式。

(1)直接映射下,求t、c、b。注意,访存地址为字,每个字是16位,所以块长是4,所以b=2。

主存地址长度是19(512K=),Cache地址长度为12(4096=),则t=19-12=7。

Cache能分1024块,就是块(4096/4=1024块),所以c=10。

(2)根据第一问,则b=2,m=19 - 2 = 17

(3)因为是二路组相联,所以r=1。s = t + r = 8。q = c - r = 9。b = 2。

(4)注意,块长没变,主存容量改为512K*32位,访存地址是字地址,所以主存容量可以改写为1024K*16位,主存地址长度为20。Cache没变,所以Cache长度仍然是12位,所以t=20-12=8。c也没变还是10,(Cache能分1024块),四路组相联,所以r=2。s = t + r = 10。q = c - r = 8。块长没变,所以b也没变,还是2。

(也可以用另一种方法:Cache能分1024块,每组是=4块,那么就能分1024/4=256个组,256=,所以q=8)

按照字节编址和按字编址的区别:

补充1:

课本P73页讲主存中存储单元地址的分配的时候,介绍了计算机系统可以按字寻址,也可以按字节寻址

  • 按字节寻址,指的是存储空间的最小寻址单位是字节
  • 按字寻址,是指存储空间的最小寻址单位是字

在上面两道例题中:

“假设主存容量为512KB,Cache容量为4KB,每个字块为16个字,每个字为32位(课本P120页例4.8),那么这里没说访存地址,我们按照其给的容量的格式,默认其是按字节访问,那么块长就是6位,每个字为32/8=4字节,每个字块就有16x4=64字节(就是),所以b=6。

“假设主存容量为512K*16位,Cache容量为4096*16位,块长为4个16位的字,访存地址为字(课本P120页例4.9),那就是按字寻址,块长为4个字,那么块长就是4(),那么b就等于2

总结:一般来说,题目上没有明确指定按字编址,那么就默认是按字节编址(一字节8位),如果题目给出的容量是xxxK*xx位,并且说了访存地址为字,那就是按字访问的。

补充2:

  • 例4.8中,主存容量为512KB,我们计算主存地址为19位,512K=
  • 例4.8中,Cache容量为4KB,我们计算Cache地址为12位,4K=
  • 例4.9中,主存容量为512K*16位,我们计算主存地址为19位,512K=

看上面这三个计算,因为512KB也可以换成512K*8位,那么有的同学就会觉得,是不是我们计算地址长度的时候,就是把存储容量换成xxxK*xx位,然后不管后边的位,只看前边的是2的多少次方就行。是这样吗?

其实不是的,我们看例4.9第四问,主存容量变为512K*32位,如果按照刚才错误的方法,那么主存地址还是19位,512K=。而这里,主存地址是20位,以为按字访存,一个字是16位,所以我们容量可以改写为1024K*16位,1024K=。所以,计算存储地址长度,我们要看是按字访存还是按字节访存。

练习题

课后题4.8

设主存容量为256K字,Cache容量为2K字,块长为4。

(1)设计Cache地址格式,Cache中可装入多少块数据?
(2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。
(4)在全相联映射方式下,设计主存地址格式。
(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式

答案解析:戳一戳---看解析

计算机组成原理----Cache主存地址映射(计算题)相关推荐

  1. 计算机组成原理解答题和计算题

    第一章:计算机系统概论 1.衡量计算机的指标主要有哪些?(答主要三项)说明为什么? (1)字长 计算机CPU能同时并行处理二进制信息的位数.与加法器.寄存器.数据总线的位数有关,字长越长,精度越高,可 ...

  2. 计算机组成原理—Cache主存块中的替换算法

    建议将思维导图保存下来观看,或点击这里在线观看

  3. 福州大学计算机组成原理试题,2016年福州大学计算机专业基础C复试之计算机组成原理复试笔试最后押题五套卷...

    目录 2016年福州大学计算机专业基础C 复试之计算机组成原理复试笔试最后押题五套卷(一) .... 2 2016年福州大学计算机专业基础C 复试之计算机组成原理复试笔试最后押题五套卷(二) .... ...

  4. 计算机组成原理——Cache与主存的地址映射

    Cache–主存的地址映射 由主存地址映象到cache地址称为地址映射 cache的基本结构: Cache的工作过程: CPU发出一个地址,同时发给主存和cache的地址映射机构,CPU会从主存中取出 ...

  5. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...

    唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...

  6. [计算机组成原理] Cache 行长一般指 Cache 行中的数据部分的长度,Cache 容量一般指 Cache 数据部分的容量

    在组号映射的地方清楚地讲了 Cache 行中包含标记部分和有效位 同理,在 Cache 写策略处写了若采用回写法,Cache 行还包含一位脏位 由此看来 Cache 总容量 = 行数×行长 = 行数× ...

  7. 计算机组成原理 Cache超仔细详解 期末一遍过

    目录 一.为什么要使用Cache(什么是Cache)? 二.Cache采用的程序访问的局部性原理 1.程序访问的局部性原理是什么? 三.Cache的工作原理 1.主存地址的划分 2.Cache的基本结 ...

  8. 哈工程816计算机专业考研资料,哈尔滨工程大学计算机科学与技术学院816计算机专业基础综合(自命题①数据结构,②计算机组成原理)历年考研真题汇编.pdf...

    目 录 [数据结构] 2 2005 年哈尔滨工程大学计算机科学与技术学院 816 数据结构考研真题 2 2004 年哈尔滨工程大学计算机科学与技术学院 816 数据结构考研真题 9 2003 年哈尔滨 ...

  9. 计算机组成原理_主存与CPU的连接

    计算机组成原理总目录 主存与CPU的连接 在主存储器里我们已知存储器的结构如下 而在介绍主存与CPU的连接时,我们将进一步简化结构图各个连线的名称表示 地址线:用A0.A1.A2-An表示(Addre ...

  10. 计算机控制技术大林算法计算题,计算机控制技术作业

    计算机控制技术作业 一.填空题(每小题1分,共30分) (1)计算机控制系统有和两种结构. (2)计算机控制系统由.两大部分组成.(3)A/D转换器与单片机的硬件接口有三种方式,分别为方式.方式和方式 ...

最新文章

  1. Windows Server 2008 R2 DNS 服务器迁移方法
  2. 撒花!吴恩达《Machine Learning Yearning》完结!
  3. java string
  4. ACM MM 2020视频目标检测挑战赛冠军DeepBlueAI团队技术分享
  5. wxWidgets:wxWidgets 示例演示网络相关功能
  6. Asterisk Queue呼叫中心的实现
  7. 数据备份资深老牌厂商 Commvault 的新玩法
  8. virtualbox linux 挂载u盘,Ubuntu 10.04 在Virtualbox 虚拟机上挂载U盘
  9. 【榜首团队专访】冲刺复赛,他们有绝招
  10. 黑马程序员——一些常用类的代码实践
  11. Excel 2010 VBA 入门 002 录制和运行宏
  12. 卡尔曼滤波器工作原理
  13. 【AGC031E】Snuke the Phantom Thief(费用流)
  14. 微信营销诀窍:有朋自各方来
  15. SEH X64(2)
  16. 自用win软件小合集
  17. 设计模式 模版方法模式 展现程序员的一天
  18. 给所有正在寻找另一半的朋友
  19. javascript实现下拉列表框显示(输入拼音头显示选项)
  20. ddr老化测试_【鼎阳硬件智库原创︱DDR 】 DDR硬件调试篇:DDR硬件设计调试测试 之二...

热门文章

  1. [置顶] Eclipse显示中文 在线安装教程
  2. 死锁的产生原因和解决办法
  3. 把一个web项目改名后复制,再把改名后的web项目发布到tomcat,访问出现404错误的解决办法
  4. 用 servlet 来创建一个用户登录界面
  5. H3C交换机配件RS232配置线(DB9针转RJ45)
  6. 0084-CYX的异己
  7. CentOS6.5 安装+ Tengine + PHP + MySQL
  8. XenServer 6.5实战系列之六:Creating a Storage Repository (CIFS)
  9. CentOS修改时区
  10. 黑客获取数据信息的目的和进攻手段及应对之策