1. 存储系统层次结构程序员
主存速度缓慢的缘由:主存增速与CPU不一样步,执行指令期间屡次访问主存算法
主存容量不足的缘由:编程
- 存在制约主存容量的技术因素:如由CPU、主板等相关技术指标规定了主存容量
- 应用对主存容量需求不断扩大:window98 -- 8M,windows 8 -- 1G
-----> 存储体系结构化层次: CPU -- Cache1 -- Cache2(解决速度) -- 主存 -- 辅存(解决容量)windows
存储体系结构化层次理论基础:缓存
- 时间局部性:程序体现为循环结构
- 空间局部性:程序体现为顺序结构
2. 主存中的数据组织dom
存储字长:主存的一个存储单元所包含的二进制位数,目前大多数计算机主存按字节编址,主要由32为和64位异步
数据存储与边界的关系:分布式
- 按边界对齐的数据存储,未按边界对齐的数据存储
- 边界对齐与存储地址的关系:(32位为例)
- 双字长边界对齐:起始地址最末三位为000(8字节整数倍)
- 单字长边界对齐:起始地址最末二位为00(4字节整数倍)
- 半字长边界对齐:起始地址最末一位为0(2字节整数倍)
大端与小端存储方式:ide
- 大端:最高字节地址是数据地址(0123存成0123)
- 小端:最低字节地址是数据地址(0123存成3210)
3. 存储器分类spa
- SRAM存储器:存取速度快,但集成度低,功耗大,作缓存
- DRAM存储器:存取速度慢,但集成度高,功耗低,作主存
DRAM刷新方式:集中刷新、分散刷新、异步刷新
4. 主存容量的扩展
- 位扩展法:8K * 8位 --> 8K * 32位
- 字扩展法:8K * 8位 --> 32K * 8位
- 字位同时扩展法:8K * 8位 --> 32K * 32位
5. Cache的基本原理
- cache的工做过程
- 数据:cpu与cache交换字,cache与内存交换块
- 读:命中,不命中
- 写:写穿策略,写回策略
- 写策略
- 写穿策略(write through):同时写缓存和内存,好像穿过缓存同样。若不命中,先写到主存中,并选择性地同时分配到缓存中(写分配/非写分配)
- 写回策略(write back):写到缓存后无论了,只有当缓存的内容替换回主存时再管,需有脏位。好像隔段时间后再写回到主存中同样
- 地址映射机制
- 相联存储器:地址自己包含着位置啊可比较的信息啊等内容信息,可根据区分地址内容进行寻址
- 主存地址 = 块地址 + 块内偏移地址 = (Tag + Index) + 块内偏移地址
- cache结构
- 好多行,每行与主存块大小相等
- 每行 = tag + data + valid + dirty
- 三种映射方式
- 全相联:cache行号 = random(内存块号)
- 直接相联:cache行号 = 内存块号 % cache行数
- 组相联:二者结合。8行1路组相联就是全相联,8行8路组相联就是直接相联
- 替换算法
- 先进先出法-FIFO
- 最近最不常用法-LFU
- 近期最少使用法-LRU
- 随机替换法
6. 虚拟存储器
- 解决问题:主存容量不足。但愿向程序员提供更大(比主存大)的编程空间
- 分类:页式,段式,段页式
- 页式实现方式:MMU(Memory Management Unit) + 页表 + TLB(Transaction Lookaside Buffer:地址转换后备缓冲器)
- 页式转换过程:虚拟地址 = 虚拟页号 + 页内偏移 ==> 物理页号 + 页内偏移
7. RAID
- 概念:独立磁盘构成的具备冗余能力的阵列(Redundant Arrays Independent Disks)
- 核心技术:使用异或运算恢复数据 (x⊕y = z --> x = y⊕z)
- 分类:
- RAID0:条带均匀分布
磁盘0 |
磁盘1 |
磁盘2 |
磁盘3 |
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
D8 |
D9 |
D10 |
D11 |
- RAID1:以镜像为冗余方式
磁盘0 |
磁盘1 |
D0 |
D0 |
D1 |
D1 |
D2 |
D2 |
- RAID3/4:有校验盘
磁盘0 |
磁盘1 |
磁盘2 |
校验磁盘 |
D0 |
D1 |
D2 |
P0 |
D3 |
D4 |
D5 |
P1 |
D6 |
D7 |
D8 |
P2 |
- RAID5:校验信息分布式
磁盘0 |
磁盘1 |
磁盘2 |
磁盘3 |
D0 |
D1 |
D2 |
P0 |
D3 |
D4 |
P1 |
P5 |
D6 |
P2 |
D7 |
D8 |
P3 |
D9 |
D10 |
D11 |
- RAID10/01:10是先镜像再条带化,01是先条带化再镜像
- RAID50:先RAID5,再条带化