计算机组成原理 存储器

一、概述

1.存储器分类

按 存储介质 分:

  • 半导体器件:分双极型(TTL)和 MOS 管两种
  • 磁表面存储器:非易失性
  • 磁芯存储器:非易失性,已淘汰
  • 光盘:非易失性

按 存储方式 分:

  • RAM  随机存储器  Random Access Memory     随机访问   访问时间与物理地址无关
  • ROM  只读存储器  Read Only Memory              随机访问   访问时间与物理地址无关
  •            顺序存取存储器                                       串行访问   访问时间与物理地址有关
  •            直接存取存储器                                       串行访问   访问时间与物理地址有关

在计算机中作用 分:

2.存储器结构层次

缓存-主存 :解决 速度 需求

主存-辅存 :解决 容量 需求

对存储器分层次,很好解决了性能与价格、容量的矛盾

二、主存储器

1.概述

(1)组成结构

(2)与 CPU 联系

(3)存储单元地址分配

  1. 高位字节地址为字地址
  2. 低位字节地址为字地址

(4)技术指标

  1. 存储容量:存储二进制代码总位数                                                                                                                                                                              存储容量 = 存储单元个数 *存储字长                                                                                                                                        存储容量(字节表示) = 存储单元个数 *存储字长 / 8       
  2. 存储速度:用存取时间、存取周期表示
  3. 带宽:每秒从存储器进出信息的最大数量,单位 字/s 或 字节/s 或 位/s

提高带宽的方法:

  • 缩短存取周期
  • 增加存储字长,使每个周期可以访问更多数据
  • 增加存储体

2.半导体存储芯片

(1)基本结构

(2)译码驱动方式

  • 线选法
  • 重合法

3.随机存取存储器(RAM)

  • 静态 RAM (Static RAM 或 SRAM)
  • 动态 RAM (Dynamic RAM 或 DRAM)
SRAM 与 DRAM 特性比较
  DRAM SRAM
存储原理

电容 

触发器
集成度
芯片引脚
价格
功耗
速度
刷新

  • 只读存储器 (ROM)
  1. 掩膜 ROM(MROM):厂家写入,只读,不可擦除
  2.         PROM :一次性编程,熔丝烧断为 0
  3. 可擦洗可编程只读存储器 (EPROM) :擦除方法 紫外线照射或电气方法
  4. 闪速存储器(Flash Memory):较一般 EPROM 重写、擦除速度快,具备 RAM 功能。

4.存储器与 CPU 连接

(1)存储容量扩展

  • 位扩展:增加存储字长,如 1K*4 位(10 根地址线 4 根数据线)扩展位 1K*8 位  (10 根地址线 8 根数据线)
  • 字扩展:增加存储器字的数量,如 1K*4 位(10 根地址线 4 根数据线)扩展位 2K*8 位  (11 根地址线 8 根数据线)
  • 字、位扩展:既增加存储字长又增加存储器字的数量

(2)与 CPU 连接(做两道题就明白了)

参考题目:https://blog.csdn.net/qq_41913072/article/details/85137196

或者 计算机组成原理 P93 (唐朔飞)

5.存储器校验

(1)编码最小距离

$L-1=D+C(D \geq C)$

  • L   编码最小距离
  • D  检查错误位数
  • C  纠错位数

若 L = 3,则这种编码最多检错 2 位 或 检错 1 位、纠错 1 位。

因此,对于 n 位二进制代码,要能检错并对错误定位,需要增加 k 位检测位,k 应满足:2^{k}\geq n+k+1

(2)汉明码(Hanming)

具有 1 位纠错能力的编码,L = 3,采用奇偶校验、分组校验。

对于 k 位 检测位的位置$2^{i}(i=0,1,2\cdot \cdot\cdot k-1)$  

 分组 如下:

检测位 取值(看几道题就会了):

纠错方式:

6.提高访存速度

  • 用高速元件
  • 层次结构
  • 调整主存结构

(1)单体多字系统

按地址在一个存取周期可以读出 4 *W 位指令或数据,增加了存储器带宽。

条件:指令和数据在内存中必须连续存放

(2)多体并行系统

由多模块组成,各模块容量相同,存储速度相同,既能并行工作也可交叉工作。

  • 高位交叉编址:高位地址表示模块号(体号),低位表示体内地址,各模块并行工作

  • 低位交叉编址:低位地址表示表示模块号(体号),高位表示体内地址,各模块轮流工作,在不改变存取周期前提下,增加了存储器带宽。

(3)高性能存储芯片

三、高速缓存存储器(Cache)

1.概述

  • 时间局部性:被引用过一次的存储器位置在未来会被多次引用
  • 空间局部性:如果一个存储器的位置被引用,那么它附近的位置也会被引用。

(1)Cache 工作原理

  • 主存和 Cache 均按块存储,块大小相同(B个字)
  • M\gg C,因此每个缓冲块有一个标记,做主存块的标号,表示存的是哪个主存块

(2)命中率

用命中率来衡量 Cache 效率,Cache 容量越大,命中率越高

定义:CPU 要访问的信息在 Cache 中的比率,若访问 Cache n次,主存 m 次,则命中率为 \frac{n}{n+m}

命中率与 Cache 的 容量 和 块长 有关,增大容量或块长,命中率提高,但块长过长,会使缓存中块数减少,命中率下降,块长最好取一个存取周期从主存中取出的信息长度。

(3)Cache -主存系统效率(e

2.Cache 基本结构

3.Cache 读写

读操作如上图,写操作有两种: 写直达法写回法

  • 写直达法:Cache 数据与主存始终一致,每次向 Cache 写入,都向主存写入,写操作时间就是访问主存时间
  • 写回法:只把 数据写入 Cache,直到 Cache 块中数据被替换时才写入主存,速度快,但数据可能失效,写操作时间就是访问 Cache 时间

4. Cache-主存地址映像

  • 直接映象(固定)
  • 全相联映象(灵活)
  • 组相联映象(上两种折衷)
  • 段相联映象

(1)直接映象

每个主存块固定对应某一个缓存块,一个缓存块可以对应多个主存块,缓存空间利用不充分。

(2)全相联映象

允许主存中每一个字块映象到 Cache 的任意块,成本太高。

(3) 组相联映象

将 Cache 分为 N 组,每组 L 块,每个主存块可以映象到固定的某一组的任一块。

(4) 段相联映象

将主存和 Cache 都分为若干段,每段块数相同,段间采用全相联映象,段内直接映象

5.替换算法

  • 先进先出(FIFO):容易实现,开锁小,但违反局部性原理
  • 近期最少使用算法(LRU)

这里书上写的开锁小,但我没弄清楚什么意思,向各位大神请教一下,万分感谢!

四、辅助存储器

即外部存储器,不直接与 CPU 交换信息。

1.磁表面存储器主要技术指标

  • 记录密度:磁盘沿半径方向单位长度磁道数
  • 位密度(线密度):单位长度磁道能记录的二进制信息位数
  • 存储容量:盘面数 * 每盘面磁道数 * 每条磁道记录二进制代码数
  • 数据传输率
  • 误码率

2.软盘硬盘比较

  硬盘 软盘
速度
磁头 固定、活动 活动
盘片 固定 可换
价格
环境 苛刻 苛刻

本文中图片均为刘宏伟教授在中国大学MOOC上的课件截图

发布了23 篇原创文章 · 获赞 11 · 访问量 8335

猜你喜欢

转载自blog.csdn.net/weixin_42107217/article/details/103760320