赞
踩
目录
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<T/r,cpu仍需等待
一般是进行字扩展,组与组之间串联,由此确定模块的个数
将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越近,容量越小,速度越快
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。