计算机组成原理——主存 半导体存储器 缓存Cache

笔记整理来源王道考研

存储器的基本概念

分类

在这里插入图片描述

按存储介质

  • 半导体存储器
  • 磁表面存储器(具有非易失性)
    • 磁盘(直接存取)
    • 磁带(顺序存现)
  • 磁芯存储器
  • 光盘存储器(不易失性)

按存取方式

  • 随机存储器RAM
    • 静态(触发器原理)
    • 动态(电容原理)
  • 只读存储器ROM(只能读,不能写)
  • 串行访问存储器(按照其物理地址的先后顺序寻找地址)

性能指标

性能指标

速度,容量,每位价格(位价)

  • 一般来说,速度越高,位价就越高;容量越大,位价就越低;容量越大,速度必越低

层次化结构

在这里插入图片描述


主存简单模型和寻址概念

主存储器

在这里插入图片描述

  • 存储元<存储单元<存储体(都是物理实体)

在这里插入图片描述

  • 存储容量=存储单元个数*存储字长 (按二进制位)
  • 存储容量=存储单元个数*存储字长/8 (按字节总数)

存储容量256MB2^8\*2^10\*2^10Byte,对应28位地址线位数

K–M--G–T

  • n位地址–2^n个存储单元(和MAR位数相同)
  • 片选线–芯片的控制开关

寻址

总容量1KB,即1024Byte,地址线10位,10根

  • 按字节寻址,1K个单元,每个单元1B
  • 按字寻址,256个单元,每个单元4B

在这里插入图片描述

多字节存放

  • 大端方式:字节从左到右,高位字节在高位地址存放
  • 小端方式:字节从右到左,高位字节在低位地址存放(符合计算机的思维)

半导体存储器RAM

半导体存储芯片的基本结构

在这里插入图片描述

  • 地址线:单向输入,其位数与存储字的个数有关
  • 数据线:双向的,其位数与读出或写入的数据位数有关

随机存取存储器

  • 静态随机存储器
  • 动态随机存储器

在这里插入图片描述


DRAM的刷新

  1. 刷新周期:2ms,(电容上的电荷只能维持2ms

  2. 每次刷新多少存储单元:以行为单位,每次刷新一行存储单元

  3. 为什么要用行列地址:减少选通线的数量

    在这里插入图片描述

  4. 如何刷新:有硬件支持,读出一行的信息后重新写入,占用1个读/写周期

  5. 在什么时候刷新

    读写周期0.5us,有三种不同的思路

    在这里插入图片描述


SARM的读周期

存取周期=存取时间+恢复时间

在这里插入图片描述

SARM的写周期

在这里插入图片描述


半导体存储器ROM

特点

  • 非易失性,可靠性高
  • 结构简单,位密度比RAM高

分类

在这里插入图片描述


主存与CPU的连接

主存容量扩展-位扩展

多片芯片为一组

在这里插入图片描述


主存容量扩展-字扩展

线选法 译码片选法
n条线–>n个选片信号 n条线–>2^n选片信好
电路简单 电路复杂
地址空间不连续 地址空间可连续,可以增加逻辑设计

因为这些芯片同一时间只能有一个工作,所以通过译码片对不同的芯片进行控制,n条线对应2^n选片信号

在这里插入图片描述


在这里插入图片描述


译码器

在这里插入图片描述

“使能端口”可以控制移码器的工作状态,在没有O的端口设置1,其它设置0,就能使译码器正常工作;其它的编码都不能使译码器正常工作

字位同时扩展

在这里插入图片描述

例题

在这里插入图片描述


在这里插入图片描述


双口RAM和多模块存储器

在这里插入图片描述


单体多字存储器

在这里插入图片描述

  • 由于程序和数据在存储体内是连续存放的,因此CPU取出的信息也是连续的

多体并行存储器

  • 采用多体模块组成的存储器,每个模块有相同的容量和存取速度,它们既能并行工作,又能交叉工作

在这里插入图片描述

m个模块组成的地位交叉编址存储器,可以将带宽提升为m倍


流水线方式

  • 假设低位交叉的存储器模块数为n,存取周期为T,总线传输周期为t,那么当采用流水线方式存取时,应满足T=nt
  • 为了保证启动某体后,经过nt时间再次启动该体时,它的上次存取操作已经完成,要求低位交叉存储器的模块数大于等于n
  • 连续存储n个字所需的时间t'

t ′ = T + ( n − 1 ) t t'=T+(n-1)t t=T+(n1)t

在这里插入图片描述


局部性原理及性能分析

高速缓冲存储器

  • 由于I/O设备向主存请求的级别高于CPU访存
  • 为了避免CPUI/O设备争抢访存,可在CPU与主存之间加一级缓存,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取信息。

  • 空间局部性:在最近的未来要使用到信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的
  • 时间局部性:在最近的未来要使用的信息,很可能是现在正在使用的信息

使用高速缓冲存储器作为中介,将CPU要使用的数据从主存中取出放在缓冲Cache中,然后CacheCPU直接对话,提高访问效率

在这里插入图片描述

例题

直接访问主存

在这里插入图片描述


先访问Cache,没有命中的话,再去访问主存

在这里插入图片描述


地址映射方式

  1. 主存中的块放到Cache的哪个位置?
    • 空位随意放:全相联映射
    • 对号入座:直接映射
    • 按号分组,组内随意放:组相联映射
  2. Cache满了如何处理?
    • 随机算法
    • 先进先出算法
    • 近期最少使用算法
    • 最不经常使用算法

在这里插入图片描述

  • 空位随意放

在这里插入图片描述

  • 对号入座(取余方法)

在这里插入图片描述

  • 按号分组,组内随意放

在这里插入图片描述


在这里插入图片描述


替换算法和写策略

  1. 随机算法
  2. 先进先出算法
  3. 近期最少使用算法
  4. 最不经常使用算法

在这里插入图片描述

  • 全相联映射

在这里插入图片描述

  • 直接映射

在这里插入图片描述

  • 组相连映射(二路)

先进先出

在这里插入图片描述

近期最少使用

在这里插入图片描述

写策略——命中

  • 写回法

在这里插入图片描述


  • 全写法

    在这里插入图片描述


写策略——没有命中

  • 写分配法

    在这里插入图片描述

  • 非写分配法

    在这里插入图片描述


写回法搭配写分配法

全写法搭配非写分配法

在这里插入图片描述

例题

在这里插入图片描述

  • 不存在替换问题,因为Cache没有满,而且是从上到下挨个存储的

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


虚拟存储器

https://blog.csdn.net/chen1083376511/article/details/81902755

  • 页式虚拟存储器

在这里插入图片描述


  • 段式虚拟存储器

在这里插入图片描述


  • 段页式虚拟存储器

快表

在这里插入图片描述

例题

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/weixin_46250447/article/details/113091132