目录
2.PROM(Programable) 一次可编程·····
(3)cpu修改Cache的data,则如何保持与主存中的原data的一致性
Attn:①寄存器集成在CPU中
②辅存和外存的区分不大
半导体:Cache 磁介质:disk、硬盘 光介质:光盘
随机存储器(RAM):EPROM、SRAM、DRAM
顺序存取存储器(SAM):磁带
直接存取存储器(DAM):磁盘(SSD) 、光盘 (CD-ROM)
相联存储器(内存存储器)(CAM):快表
只读存储器 (ROM)
ATTN:不要根据东西的名称分,要根据具体内容
只能读ROM
可读写else
断电是否发生data丢失:易失性存储器
RAM
非易失性存储器:ROM、磁性存储器、光存储器
读了之后摧毁data / 不摧毁:破坏性读出 DRAM and 非破坏性输出 SRAM
每bit价格
存储时间、存取周期、主存带宽(data传输率)
存储周期 = 存储时间+恢复时间
主存带宽 :每秒读写的data
存储元 : 电容 + MOS管
电容存储电荷,写就充电,读就放电
工作原理:根据高低电平(电荷)
因为电容这边接地,为0V,so用高电平的时候MOS导电,电容充电表示1,之后断开MOS管,电荷就保存在了电容中,在另一端读就为1
低电平MOS绝缘,电容还是0V,无电荷0,在另一端读就为0
多个存储元组成存储单元(存储字),多个存储单元组成存储矩阵(存储体)
CPU发出指令,通过MAR获取进行读写的内存地址,通过译码器进行选择哪一块存储芯片的读写,读完之后通过data线送到MDR中,整体过程由CPU控制
MAR存储nbit数据,则译码器就有2^n个存储单位
读写控制线可以由一条or两条线组成
①一条 WE (有上划线) 低写高读
②两条线 WE (有上划线)写 OE(有上划线)读
片选控制线:选择读写内存中的那一块存储芯片上的data,低电平确定
CS (有上划线)、CE (有上划线) ,上划线表示低电平激活
按字节or 字编址
按字节 、字、半字、双字寻址
ATTn:在32bit机器中,1字= 32bit = 4B
运用栅极电容存储信息,1个MOS管,即存储元,多个存储元组成存储体
通过电容充放电进行读写,so读的时候会放电,电容中的电荷没了,so是破坏性读出
放电之后需要重新充电,“再生”
即使不重新读写,电荷也会慢慢流失,so需要定期刷新,三种方式
刷新与重生dis:刷新是按行为单位的
地址复用技术
计算出全部刷新需要的时间,则else进行CPU读取,留下这些时间进行全部刷新,这一部分时间称作死区,此时CPU不能读取
读一下刷一次,dis:存取周期翻倍
计算出全部刷新的时间,将其分布到每个刷新周期之间,这样就分散了死区,cpu不会等待时间过长
未使用之前,1条地址线对应1存储元,译码器连着这么多的线,设计比较难,so使用行译码器和列译码器,条数就开方了,并且芯片引脚也减少
使用6个MOS管,so会存储信息
厂家根据用户需求进行设计,之后任何人不能再修改
用户可DIY,保存之后不能再修改
紫外线照射 8~20min
先擦除后写 so V读 > V写
控制单元 + Flash芯片
存取周期 = 存取时间 + 恢复时间
恢复时间占主要时间,且恢复期间cpu无法读写
多体模块(理解成内存条)组成
体号+体内地址,体号表示选择的是哪一块,体内表示模块内的第几个,“竖着编址”
体内地址+体号,“横着编址”
best 模块数m = 存取周期T/存取时间r
if 想cpu不停止,则 m>= T/r ;m> T/r,模块会有空闲,无法达到最高效,增加成本;m 一般是进行字扩展,组与组之间串联,由此确定模块的个数 将m体模块合并成一个模块,每次并行读出m个连续的字,so每个存储单元存储m个字,总线宽度也为m个字 移码驱动电路+存储体+读写电路+地址线、片选线、数据线、读/写控制线 芯片并联,增加data总路读写的效率 芯片串联,扩容 直接连接,1地址线--1芯片(组) 使用译码器,n地址线 -- 2^n 芯片(组) 结合位扩展+字扩展 磁盘驱动器、磁盘控制器、盘片 道密度、位密度、盘密度 因为每条磁道中data数量相同,so外道密度<内道密度 寻道时间、旋转延迟时间、传输时间 磁盘存储器再单位时间内想主机传送data的字节数 Dr = rN (转速 * 每条磁道容量) 柱面扇 因为 数据总线发送data时只能1bit的发,so用串-并交换电路,能同时nbit 实现:多个独立的物理disk组成一个独立的逻辑盘 RAID的应用是在实现手段,安全性差距,等级越大越安全 无冗余的,无校验的磁盘阵列,(类比低位编址的多体存储器) disa:不能检验,错了就错了 镜像磁盘阵列(有冗余,有检验) disa:冗余50%,检验就比较另一份 采用可以纠错的海明码的磁盘阵列,,采用k位disk和n位海明校验码 eg:4个disk则最少需要3位海明校验码 reason:k+n位最多表示2^(k+n) -1种错误,有一种是没错 so 2^(k+n) -1 >= k+n 参考视频: 闪存技术 、可电擦除 闪存翻译层 + Flash Chips 以页为单位读写(类比disk的块) 以块为单位进行擦除,擦完之后才能写,即使块中有空页,也不能写 支持随机访问 SSD快、安静、贵,擦除次数太多就坏了 因为擦除太多会损坏,so采用方法 (1)动态擦除 --选擦除次数min (2)静态擦除 -- 读写需求大的使用擦除次数少的,只读的使用擦除次数多的 SRAM构建,将主存中的部分data先拷贝到Cache中,缓解CPU和主存之间的速度矛盾 时间和空间 Cache命中率 :CPU访问Cache的概率 H = Nc /(Nc +Nm) 平均访问时间Ta= Htc + (1-H)(tc+tm) 先访问Cache再主存 平均访问时间Ta= Htc + (1-H)tm 同时访问 先访问Cache再主存;同时Cache 和主存 Cache与主存之间的映射关系 Cache替换算法 Cache写策略 有效位+标记+整块data 有效位表示data是否有效,∵全0也可表示具体data 标记表示data在内存中的pos 随便放,有空就行 主存地址 = 块号 + 块内地址 adv:空间利用充分 disa:确定data在内存中的位置较慢 地址号 mod 块号 ,位置唯一 映射到的块号 = 内存地址低位c c = log2Cache块数 先将Cache块进行分组,然后直接映射入组,组内随意放空地方 当Cache满了之后,if有新的内存块要访问,随机替换一个Cache行中的data eg:4个Cache行,依次访问1,2,3,4,1,2,5,1,2,3,4,5主存块 绿色表示命中,红色代表替换,(中间相同ele省略) [tip] 使用辅助队列 由图中后半部分发现频繁替换,称作抖动现象 替换在访问的前几个中没有使用的那一个 往前看,差1个 使用计数器,计数器表示已经几次没有访问该Cache行了,if命中,该块对应清0,else+1;if未命中,有空行,填入Cache,else+1,无空行,找max,剔除,该行置0,else+1 分步解析 此时Cache满了 到5应该替换3,此行置0,else+1 到了3,替换4 到了4,此时最大5,count=3,替换5 到了5,此时最大1,count=3,替换1 全局不常用,使用计数器,表示该行Cache访问次数。每次访问一个,if为空,放入Cache行,count+1,if不空,命中,+1,未命中,替换min,if有同,FIFO or 行数小的 逐步分解(先换行号小) 此时3Cache2 、3小,5替3 此时3替5 同时修改主存和Cache,存在速度矛盾,so使用写缓存,等止呕控制电路一块写入 写入Cache,等Cache中该块被替换时,写入主存 未命中说明去主存中寻找,根据将data放不放入Cache进行分 放入Cache 不放入Cache Attn:非写分配法不放入Cache,全写法全修改,就不需要从主存放入Cache中了,so搭配使用 写分配 和 回写法搭配使用 再将Cache进行分级,级越高离CPU越近,容量越小,速度越快(2)单体并行存储器
六、主存与CPU之间的连接 101
1.存储器芯片的基本结构
2.位扩展
3.字扩展
(1)线选法
(2)译码片选法
4.字位同时扩展
七、外存 109
1.disk原理
(1)disk组成
(2)性能指标
1)容量
2)记录密度
3)平均存取时间
4)data传输率
(3)硬盘地址
2.独立冗余磁盘阵列 RAID
(1)RAID0
(2)RAID1
(3)RAID2
(4)RAID3~RAID5(了解)
八、固态硬盘 SSD 111
1.原理
2.组成
3.读写性能
4. vs 机械接盘
5.磨损均衡技术
6. 联系 OS
九、Cache 115
1.工作原理
2.局部性原理
3.性能分析
(1)Cache命中率、缺失率
(2)方式
4.else(联系OS)
5.存在的question
(1)Cache与主存中data块的对应关系
(2)Cache块小,满了咋办
(3)cpu修改Cache的data,则如何保持与主存中的原data的一致性
十、主存与Cache之间的映射关系 118
1.Cache存放data格式
2.全相联映射
3.直接映射
4.组相连映射
十一、Cache的替换算法 122
1.随机算法(RAND)
2.先入先出(FIFO)
3.最近最少使用算法(LRU)
(1)手算
(2)机器
4.最不经常使用算法(LFU)
十二、Cache写策略 123
1.命中
(1)全写法
(2)回写法
2.未命中
(1)写分配法
(2)非写分配法
3.多级Cache