计算机组成原理-L09-memory

本文最后更新于:7 个月前

计算机组成与实践 -存储体系结构

一.简介

计算机主要组成部件

组件

存储“墙”问题

发展限制

存储器发展

发展

存储系统

存储器容量由寻址策略决定

例如:
采用16位地址,寻址空间大小为2^16=65536存储单元

大多数存储器是字节可寻址(byte-addressable)

每个存储单元的大小为1字节

大多数计算机以字为单位(word)检索或存储数据

常用缩写:

1K ≈ 2^10(Kilo)

1M ≈ 2^20(Mega)

1G ≈ 2^30(Giga)

1T ≈ 2^40(Tera)

主存访问模式

数据传输通过

  • MAR:地址寄存器
  • MDR:数据寄存器

交互

主存的基本结构

贮存结构

存储系统设计

处理器的运行速度远快于存储访问速度

  • 小容量访问速度快,大容量访问速度慢
  • 设计缓存存储常用数据加速存储访问速度

内存容量有限:

  • 使用虚拟存储器增加内存容量
  • 内存管理单元(memory management unit,MMU)进行虚拟地址与物理地址之间的转换

局部性原理

程序局部性的访问地址空间

时间局部性(Temporal locality)
如果某个数据项被访问,那么在不久的将来它可能再次被访问

例如,loop循环中的指令

空间局部性(Spatial locality)
如果某个数据项被询问,与它地址相邻的数据项可能很快也将被访问

例如,顺序的指令执行,数组数据等

利用局部性原理
  • 存储层次结构(Memory hierarchy)
  • 所有数据存储在磁盘
  • 最近访问的数据(相邻数据)从磁盘拷贝到较小的DRAM存储器
    • 主存(Main memory)
  • 最近经常访问的数据(相邻数据)从DRAM拷贝到更小的SRAM存储器
    • 缓存(Cache)

存储体系结构

tu

计算机的存储器是如何运作的

tt

https://www.bilibili.com/video/av19939336/

相关术语

随机访问存储器(Random Access Memory, RAM)
根据地址访问存储空间中的单元 Ø存储空间中的任意地址的访问时间相同
块(Block)
缓存中数据交换的最小单元

命中率(Hit Rate):在高层存储器中找到目标数据的存储访问比例

缺失率(Miss Rate):在高层存储器中不能找到目标数据的存储访问比例,Miss Rate = 1 - Hit Rate

命中时间(Hit Time)
访问某存储器层次结构所需的时间,包括了判断当前访问是命中还是缺失所需的时间
缺失代价(Miss Penalty)
将相应的块从低层存储器器替换到高层存储器所需的时间,包括访问块、将数据逐层传输、将数据插入缺失的层和将目标块传递给请求者的时间

命中时间 << 缺失代价

带宽和延迟

  • 带宽(Bandwidth)
    • 描述数据传输时每秒传输的数据量(bits or bytes)
  • 延迟(Latency)
    • 发出访问信号到开始传输第一个字的时间
    • 以时钟周期为单位

二.寄存器

基于反馈的存储

给两个反相器加上反馈信号

中间可以稳定输出1信号

通常称为交叉耦合反相器(Cross-coupled Inverter)

稳定存储1 bit数据的方式

0/1

S-R锁存器(latch)

  • 用或非门替换反相器

  • S-R锁存器(set-reset Latch)

    这个是数电讲过的东西吧

锁存器(latch)
一种存储元件,它的输出与内部存储的状态一致,并且当时钟有效时,只要输入发生变化,存储状态就会随之发生变化。

锁存器

input output
A B (A+B) ̅
0 0 1
1 0 0
0 1 0
1 1 0

根据不同的R,S输入,Q的值

  • R=S=0:Q=1(其实是保持上次信号,Q不一定是1)
  • S=0,R=1:Q=0
  • S=1,R=0:Q=1
  • R=S=1:亚稳定状态

S是set,置位1

R是reset,复位0

D锁存器

D锁存器:

  • 两个输入:要存储的数据D,时钟信号C
  • 两个输出:输出信号Q,其反向信号Q ̅
  • 当输入时钟C有效时,锁存器称为打开状态,此时输出信号Q 的值为输入信号D 的值。
  • 当输入时钟无效时,锁存器处于关闭状态,输出信号Q 等于锁存器最后一次打开时所存储的数据。

D锁存器

D触发器(flip-flop)

触发器(flip-flop)
一种存储元件,它的输出与内部存储的状态一致,并且内部状态只在时钟的边沿发生变化。
  • 下降沿触发的D触发器
    • 第一个锁存器称为主锁存器,第二个锁存器称为从锁存器
    • 当输入时钟C有效时,主锁存器打开,输入数据D。
    • 当输入时钟C被拉低时,主锁存器关闭,但第二个锁存器打开,并且主锁存器的输出作为第二个锁存器的输入信号。

D

Q

寄存器

D触发器构造寄存器

寄存器构造

三.随机访问存储器(RAM)

静态随机存储器(SRAM)

  • 存储1 bit数据需要6个晶体管
  • 大多数芯片使用SRAM
  • 一对弱交叉耦合反相器
  • 数据存储在交叉耦合反相器

SRAM

X地址译码线(行选通)

Y地址译码线(列选通)

T1、T2保存数据;
T3、T4补充电荷;

T5、T6、T7、T8开关作用

静态存储器结构

结构

  • N位地址,寻址2n个存储单元,2n/2+1根译码线
  • 一行存储1 block数据(word line),列地址(bit line)选择请求访问的字节或字

按块存取,而非字节(具体取字节在内存中)

配套

动态随机存储器(DRAM)

1-T DRAM存储单元

  • 1个晶体管
  • 需要一个存储电容(Capacitor)
  • 提高存储密度
  • 电容存储数据,有电荷为1,否则是0

1-T

动态存储器结构

block

DRAM技术

  • 存储单元使用电容保存电荷的方式来存储数据
    • 使用一个晶体管对电容进行访问
    • 必须周期性的刷新才能保持数据
      • 读出内容再写回
      • 对一整行数据进行刷新

dram

DRAM的优化

  • DRAM中的bit以矩形数组的结构组织排列
    • DRAM访问一整行数据
    • 突发模式(burst mode):减少从行中连续访问字的开销
  • 双倍数据速率(Double data rate, DDR)DRAM
    • 在时钟的上升沿和下降沿传输数据,以获得双倍的数据带宽
  • 四倍数据速率(Quad data rate, QDR)DRAM
    • 将DDR的传输数据线路分为输入和输出,以获得四倍的数据带宽

影响DRAM性能的因素

  • 行缓冲器(Row buffer)
    • 允许同时访问和刷新多个字的数据
  • 同步DRAM(Synchronous DRAM)
    • 以突发方式连续访问数据时,不需要发送所有字的地址
    • 增加带宽
  • DRAM划分存储块(banking)
    • 支持多个存储块的并发访问
    • 增加带宽

1到4代内存规格变化

内存规格 时钟频率 数据传输率 数据传输带宽
SDRAM-133 133MHz 133MT/s 1.06GB/s
DDR-266 133MHz 266MT/s 2.1GB/s
DDR2-533 133MHz 533MT/s 4.2GB/s
DDR3-1066 133MHz 1066MT/s 8.5GB/s
DDR3-1600 200MHz 1600MT/s 12.8GB/s
DDR4-2133 133MHz 2133MT/s 21.3GB/s
DDR4-3200 200MHz 3200MT/s 25.6GB/s

四.交叉存取(Interleaving)

存储控制器(Memory Controller)

  • 控制处理器与存储器间交互
  • DRAM需要频繁刷新, 并且使用时分复用信号减少引脚数
  • SRAM管理简单,通常不需要存储控制器

控制器

RAS(CAS):行(列)地址选通,CS:片选信号

存储控制器

  • 存储控制器接收处理器发送的访问地址和R/W信号
  • 生成RAS和CAS信号
  • 在RAS信号的控制下,部分高位地址作为行地址,选通存储结构中的某一行
  • 在CAS信号的控制下,部分低位地址作为列地址,在选通的某一行存储结构中的选通某一列
  • 根据地址选中相应的存储模块后,建立处理器与存储器间的数据线路
  • DRAM需要频繁刷新,但是刷新开销少于总存储访问时间的1%

存储模块交叉

  • 处理器和缓存访问速度快,内存访问慢
  • 可以通过交叉访问几个存储模块来隐藏访问延迟
  • 每个存储模块都有自己的地址缓冲寄存器(Address Buffer Register,ABR)和数据缓冲寄存器(Data Buffer Register,DBR)

存储模块交叉存取

处理器和缓存访问速度快,内存访问慢

可以通过交叉访问几个存储模块来隐藏访问延迟

每个存储模块都有自己的地址缓冲寄存器(Address Buffer Register,ABR)和数据缓冲寄存器(Data Buffer Register,DBR)

2

哪种策略更好?

两个或多个兼容的存储模块

在一个存储模块中,采用多个并行访问的片

例如:
8个存储模块,每个模块有8个片,实现8×8=64 bit的存储器总线

交叉存储可以在类似双通道内存架构中实现

2

非交叉存储V.S.交叉存储

vs

交叉存取例子

假设指令访问数据缓存发生read miss,需要从内存将数据读入缓存

缓存块大小为8 bytes

假设发送地址到内存花费1 个时钟周期,从内存发送数据花费1个时钟周期

此外,内存的访问延迟为6个时钟周期,即从接收到地址到发送第一个字节需要6个时钟周期

访问相同行的字节的延迟为4个时钟周期

读取

非交叉存取

非

访问第一个字节需要6 cycles

假设所有随后的字节都在同一行,每个需要4 cycles

非交叉存取
1+6+7×4+1= 36 cycles

4个模块交叉存取

4

交叉存取
1+6+1×8= 15 cycles

课题练习

如果只有2个模块交叉存取,传输8 bytes数据,需要多少个时钟周期?

4-8

交叉存取
1+6+2×3+1×8= 21 cycles

五.二级存取器

  • 长期的非易失性存储
  • 存储体系结构的底层:访问速度慢、容量大、便宜
  • 带有磁性图层的可旋转的圆盘
  • 通过可移动的读/写头来访问数据

磁盘

闪存(Flash Storage)

磁盘替代者

固态硬盘(SSD):基于闪存

非易失性,比磁盘快100~1000倍

磨损问题:采用磨损均衡技术

flash

六.小结

  • 处理器速度与存储器的访问速度间不匹配问题——存储墙
  • 通用RAM类型:
    • SRAM、DRAM、SDRAM、DDR SDRAM
  • 局部性原理:时间局部性和空间局部性
  • 存储体系结构:
    • 寄存器->缓存->内存->磁盘->磁带

计算机组成原理-L09-memory
https://www.emokable.top/计算机组成原理-L09-memory/
作者
emokable
发布于
2023年5月9日
许可协议