一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
第四章]存储系统
存储器概述
- 概念
- 记忆元件(位)
- 具有两种稳定状态的物理原件
- 存储单元(字)
- 多个位构成一个存储单元
- 为区别存储单元,每个存储单元有一个地址
- 最少一个字节
- 地址线的位数是2^(存储单元个数)
- 存储体/存储阵列
- 所有存储单元
- 存储单元个数*存储单元字长
- 存储器访问方式
- 给出地址
- 选中存储字
- 读/写
- 编址方式
- 按字节编址
- 按字编址
- 半字寻址
- 双字节寻址
存储器分类
- 按存取方式分类
- 顺序存取
- 随机存取
- 直接存取
- 先随机指向一个区域再顺序查找
- 相联存数器
- 按介质分类
- 半导体存储器
- 磁存储器
- 激光存储器
- 读写方式分类
- 只读(ROM)
- 读写
- 随机存储器(RAM)
- BIOS:开机自检
- 信息的可保存性分类
- 易失存储器
- 断电丢失(RAM
- 非易矢存储器
- ROM
存储系统主要技术指标
- 存储时间
- 接收命令到读/写完的时间
- 存储周期
- 连续两次读写时间(包括等待休息的时间)
- 读写+恢复
- 存储带宽
- Byte
- 存储容量/速度/成本
- 存储器分层结构
- 寄存器 (与CPU直接连接)
- 主存(与CPU直接连接)(只有这俩)
- 磁盘光盘等外存(辅存)
- 主存
- 外存
内存是易失的
外存不易失
- 内存/外存区别
- CPU能直接访问的叫内存
- 不能叫外存
- 二级存储系统
- 三级存储系统
- 为了提高CPU访问存储器的速度引入cache(高速缓冲存储器)
- 缓存在CPU里面
- 主存
- 外存
- 存储系统的两个层次
- 目的:容量
- 主存—辅存
- 目的:速度
- 缓存—主存
- CPU—缓存—主存—辅存
- 数据在相邻两级间复制
- 一般以定字长的块作为最小单位
主存储器
- 地址译码器
- 字线
- 驱动器:增强带负载能力
- 地址寄存器MAR
- 数据寄存器MDR
- 两种常见的译码驱动方式
- 线选法
- 字选择
- 双译码法
- x/y向
- 几片选几位
- 静态存储器芯片结构
- 控制电路
- RD
- WR读写
- CS片选
- 主存储器基本特征
- 半导体MOS存储器组成
- 存储单元/地址
- 按字节编址
- 地址放在第一个字节里
- 数据的存储和排列
- 大端方式
- 低位放最高有效位
- 按顺序列出,地址小的放高位字符串,一次放两个字符
- 小端方式
- 低位放最低有效位
- 按顺序列出,地址小的放低位字符串,一次放两个字符
- 11223344
- 字的边界对齐
- 降低读写周期
半导体存储器
- 随机存储器
- SRAM/DRAM
- 六管SRAM读/非读非写/写操作
- 数字逻辑
- 接地为0(即使有一边给1)
- 用双稳态来存0和1
- 易失存储
- 管多,存储密度低,功耗大,成本高
- 三维存储体结构
- 4k*4
- 2114芯片SRAM
- VCC电源
- GND地
- A地址线→存储单元个数
- IO数据线→存储字长
- CS片选
- WE读写
- 单管DRAM存储器
- 通过电容放电实现读
- 刷新
- 定期补充电荷,防止电荷泄露信息丢失
- 刷新周期
- 两次刷新时间间隔
- 按行刷新
- 刷新方式
- cpu与刷新控制器征用问题
- 集中刷新有死区
- 分散刷新
- 异步刷新
- 2ms/128是能保证信息不丢失的最大时间
- 2116DRAM
- 16k*1
- 7个地址,14个地址线
- -WE
- -CAS通过时钟发生器控制列地址锁存器
- -RAS通过时钟发生器控制行地址锁存器
- V BB
- V SS
- V DD
- V CC 1
- D in输入
- D out输出
- ROM只读存储器
- 掩膜ROM只读不写
- 熔丝式ROM(PROM)可读,只写一次
- EPROM
- EPROM
- 紫外线全部擦除
- 高压写入
- EEPROM
- 电可擦除
- 闪存
- MRAM
- TMR(隧道型磁电阻)磁性单元存储
- 无限刷新,高容量,高速度,高价格
- 主储存器与CPU连接
- MREQ#接片选CS
- R/W#接读写W/E
- 字长扩展
- CS,WE都同时选(并行)
- 扩展数据线
- 1K*4→1K*8
- 字数扩展
- CS不同时选(串行)WE同时选
- 多出来的地址线当片选信号(用译码器)
- 扩展地址线
- 1K*8→2K*8
- 计算
- 存储容量范围求数据线和地址线(双向)
- 1111是2^4范围
- 6000~FFFF
- 15-6+1
- 高速主存储器
- 提高Cache
- 高速RAM
- 双端口存储器
- 多模块存储器
- 单体多字
- 多体单字
- 多模块交叉存储器
- 高位(顺序
- 低位(交叉
高速缓冲存储器
- 小容量的SRAM
- 数据局部性
- 空间局部性 预读处理(空间相邻
- 时间局部性 淘汰算法(反复读取相同
- Cache被分为槽,主存被分为块,块的长度称为块长或Cache 行长。
- Cache内容是主存的映象
- 读取
- CPU读取Cache和主存一次读一个字
- Cache读主存一个字块或者CPU读过的字所属的字块
- 命中/缺失
- Cache关键技术
- 数据查找
- Cache查找表
- 地址映射
- 地址格式
- 主存数格式+块内地址
- 主存与Cache
- Cache内不止存数据
- 传送单位是块
- 直接相联映射
- 主存按Cache的容量分区,一个cache一个区
- 每个区和Cache大小相等,映射位置固定
- 主存:区号 行索引 块内
- Cache:行索引表示Cache中的第几个,有效位+区号+数据块副本(主存去掉块内)
- 根据行索引放Cache的位置
- Cache内存区号就行了
- 主存长度除以块长即块数,同样,cache里也分为同样“块长”的大小的槽
- 关联度为1
- 全相联映射
- 直接相邻主存可放任意槽
- 主存:块地址+块内
- Cache:有效位+主存地址位+数据块副本(数据)
- Cache的块标记是主存的块号
- n路并行比较器来检测是否命中
- 组相联映射
- 按高速缓存的组数分区
- cache中按路分组,每组路数就是几路
- 主存:区号+组号+块内
- Cache:组号代表在Cache的位置,有效位+区号+数据库副本
- 几路Cache里就有几个选
- 计数器的位数取决于关联度
- 大容量才用直接相联映射
- 替换算法
- 先进先出(FIFO)
- 最不经常使用(LFU)
- 近期最少使用(LRU)
- 随机替换
- 写入策略
- 写穿操作
- 写回操作
- 写分配
- 写不分配
- 写直达中的写缓冲
- 在CPU和主存加一个缓冲器
- 高频访问不行
- 命中
- 命中率
- 命中时间
- 访问效率
- 缺失率
- Cache容量大命中率高
- 块容量不是越大越好
写Cache同时写主存
缺失标记才写回。多一个位(dirty)
放到Cache再用写回/写穿
直接改主存
h=Nc/(Nc+Nm)
ta = htc + (1-h)tm
tc/ta
外部存储
磁纪录
- 磁方向表示0/1
- 写入
电生磁
- 读
磁生电
磁盘数据
- 盘片,有两面
- 磁道
- 扇区
扇区是最小的单位
- 读写头
有几个面就有几个读写头
- 格式化
重新划分扇区
- 磁盘 盘片 柱面 扇区
- 位密度
- 道密度
- 数据传输率
- 转速,存储速率有关
- 位密度M
Byte/s
- T =平均找道时间+平均等待时间
Prev
第三章]运算方法与运算器
Next
第六章]中央处理器
Loading...