【计算机组成原理】存储系统

刷新

刷新是所有芯片的某行同时被刷新,在考虑刷新问题时,应当从单个芯片的存储容量着手,而不是从整个存储器的容量着手。

计算

异步刷新 = 刷新周期(一般为2MS)/ 行数
集中刷新死时间率 = (存取周期*行数) / 刷新周期

存储效率的计算

  • 命中率 H = Hc / (Nc + Nm)
  • 平均访问时间 Ta = Tc / e
  • Cache主存系统的效率 e = 访问Cache的时间 / 平均访问时间

作图

  1. 考虑扩展方式,是字扩展还是位扩展,画出芯片图形(如果是字位同时扩展,位扩展为同一个组,画在一起)。
  2. 画出CPU和两端的CS和WE线。
  3. 分别考虑并画出地址线和数据线(注意扩展方式和编制方式)。

画存储器的逻辑图

  1. 计算地址线数,写出首行的地址线编号。
  2. 考虑每个分区的始末地址,写出各个分区(系统程序区和用户程序区)。
  3. 从右往左找出地址线起始地址不同的连续几位,写出片选信号。

引脚数的计算

引脚数 = 数据线数 + 地址线数(DRMA使用地址复用技术,减半)

绘制存储器与CPU的连接图

判断是否命中

对某个主存地址,先写出它的地址结构。然后查看对应块号(行号)中的主存标记是否相同。

  • 不相同,未命中。
  • 相同,再查看有效位。如果有效位为1,则命中,否则不命中。

映射计算的公式

  • 组数 = cache数 / Q = (缓存区大小 / 主存块大小)/ Q
  • 组号位数 = ceil(log2 组数)
  • 组地址 j = i mod Q
  • 主存字块标记 t = i / Q
  • 替换算法控制位数=ceil(log2 N)
    Q为组数,N为每组块数

二路组相联的标记阵列

这个结构非常重要,一定要牢记。n路组相联有n列

标记项标记项
标记项标记项
标记项标记项
标记项标记项

标记项结构

有效位[脏位][替换控制位]标记位

Cache容量的计算

Cache容量 = 数据容量 + 标记容量
标记容量 = Cache行数 * (有效位 + 标记位 + [脏位] + [替换控制位])
详细如下:

  • 有效位总是1位
  • 使用写回法的时候才会有脏位,也是固定的1位。
  • 标记位的计算见下文
  • 替换控制位数=ceil(log2 N)

对Cache和主存的映射方式的理解和计算分析

直接映射地址结构

主存字块标记Cache字块标记字块内地址

组相联映射地址结构

主存字块标记组地址字块内地址

我们可以将组相联映射的一组看做一块,这样,上述两个结构是相同的,只是名称略有不同。

全相连映射

我们可以将全相连映射看成整个缓存区只有一组的组相联映射,因为所有块都在同一组中,也就不需要组地址了。结构如下:

主存字块地址字块内地址

除了块内地址,剩下的高位即是主存字块地址。它的结构由组相联映射(直接映射)退化而来。

Cache字块地址标记/组地址计算方法

假设我们的Cache分为8组(或者8块)。求9块主存块的主存字块标记和组地址(Cache字块地址)。
将9写成二进制形式: 1001
因为低3位能表示8个数值,9的二进制表示中低3位为组地址(Cache字块地址)。高1位为主存字块标记。
也可以使用公式j = i mod Q(i为主存块号,j为组地址,Q为组数)
其中 i = 9, Q = 8,则j = 1。

快速求组地址和主存字块标记的方法

  • 计算组地址位数len =ceil(log2 Q) (Q为组数)
  • 将主存块号(如果题目给出的是主存单元地址,由公式主存块号=[主存地址/一个主存块的地址数] /[主存地址/(主存块大小/字长度)])转换成二进制表示方法。低len位为组内地址,剩余高位为主存字块标记。
  • 或者可以直接使用公式j = i mod Q,tag = i / Q(i为主存块号,j为组地址,Q为组数, tag为主存字块标记)

对流水线方式存取的理解

设模块一个字的存取周期为T,总线传送周期为r,连续存取m个字所需的时间为 t 1 = T + ( m − 1 ) r t1=T+(m-1)r t1=T+(m1)r
对于m个模块,我们仅需要花(m - 1)r时间就可以将它们全部启动,最后一个模块启动到完成传送还需要一个存取周期T。即得以上公式。计算时尤其要注意
计算例题:《王道》P117t5

对于n体低位交叉编制存储器,在相邻的n次访问内出现对同一个存储模块的访问,则可能发生访存冲突。我的理解是相邻的n次请求之间的时间间隔为(m - 1)r < T。在一个存取周期内,上一个访问尚未完成,所以可能发送冲突。而相邻的n+1次请求之间的时间间隔为mr >= T,不会发生冲突,即证。
例题:《王道》P117t7

知识点

  • 主存和cache之间的数据调动是硬件自动完成的,对所有程序员均是透明的。而主存和辅存之间的数据调动则是由硬件和操作系统共同完成的,对应用程序员是透明的。
  • 闪存是EEPROM的进一步发展,可读可写,用MOS管的浮栅上有无电荷来存储信息。闪存依然是ROM的一种,写入时必须先擦除原有的数据,故写速度比读速度要慢不少(硬件常识)。闪存是一种非易失性存储器,它采用随机访问方式。现在常见的SSD固态硬盘,它由Flash芯片组成。
  • 判断缓存是否命中除了要对比主存字块标记,还要注意有效位是否为1。
  • 主存储器的主要性能指标包括存储容量、存取时间、存储周期和存储器带宽
  • 连续两次启动同一存储器所需的最小时间间隔称为存储周期
  • 在全相联映射、直接映射和组相联映射3种映射方式中,全相联映射的块冲突概率最小,直接映射的块冲突概率最大,组相联映射的块冲突概率居中。

往年真题

选择题

  • 各类存储器的性质。特别注意闪存,考过一道题四个选项都是考察闪存的性质[《王道》P100t12]
  • 考察主存芯片数,要注意编制方式和容量大小。
  • 引脚数的计算。
    • 特别注意DRAM的地址复用技术。见[《王道》P108t16、《王道》P100t10]。
    • 结合主存地址空间考察MAR位数的计算,MAR位数与max(主存地址空间大小,存储器地址大小)有关。见[《王道》P107t4]。这道题具有迷惑性,我感觉题干给出的主存储器信息是多余信息
  • 考察DRMA的地址复用技术。见[《王道》P108t1]
  • 计算交叉存储器的组号、块号。
    • 结合对流水线方式存取的理解《王道》P117t7]
  • 对交叉编制和存取的理解。可能会结合C语言的基本数据类型进行考察。《王道》P117t8
  • 结合C语言程序段考察Cache缺失率。[《王道》P127t13]
    • 注意数组的访存次数。
    • 采用指令Cache与数据Cache分离的主要目的是减少指令流水线资源冲突[参考唐书《计算机与组成原理》P115(2)统一缓存与分立缓存]看来Cache的改进也属于考察范围,包括两级缓存和分立缓存
  • 虚地址和实地址之间的转化。[《王道》P140t5]
  • 关于虚拟存储器和Cache系统中的访存次数。[《王道》P141t11]
  • Cache容量的计算。[《王道》P141t12]
  • 考察存储器系统的命中过程。
      • TLB是Page的一个很小的副本,所以若TLB命中则Page一定命中。[《王道》P140t4]

综合题

  • 考察Cache容量的计算。
  • 考察Cache映射方式。
  • 结合操作系统的虚拟存储技术进行考察。
  • 主存——Cache系统和主存——辅存系统的对比。
    • 例:是Cache缺失处理的时间开销大还是缺页处理的时间开销大,为什么?
    • 例:为什么Cache可以采用直写策略,而修改页面内容总是采用回写策略?
    • 以上问题主要从主存和辅存的存取速度这个方面来考虑。
  • Cache的地址分配。
  • 替换算法的应用。
  • 10
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机组成原理中的存储系统是计机中用于存储程序和数据的一部分。存储系统主要包括内存储器、磁盘存储器和高速缓存等组成部分。内存储器是计机中存放正在执行的程序和数据的地方,其速度较快但容量有限。内存储器由半导体器件构成,可以随机存取其中的内容,即存取时间和存储单元的物理位置无关,因此被称为随机存取存储器。磁盘存储器则是一种半顺序存取存储器,存取时需要按照一定的顺序进行。除了内存储器和磁盘存储器外,存储系统还包括高速缓存,它是位于CPU和内存之间的一层快速存储器,用于提高CPU对数据的访问速度。整个存储系统的设计和组织能够有效地提高计机的存储效率和运行速度,从而提升计机的整体性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [计算机组成原理——存储系统](https://blog.csdn.net/m0_67784353/article/details/124613650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【计算机组成原理存储系统】超级详细](https://blog.csdn.net/champion564/article/details/125739210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值