考研计组chap3存储系统

目录

[一、存储器的基本概念 80](#一、存储器的基本概念 80)

1.按照层次结构

2.按照各种分类

(41)存储介质

(2)存取方式

(3)内存是否可更改

(4)信息的可保存性

(5)读出之后data是否破坏

3.存储器的性能指标

1)存储容量存储容量)

2)单位成本单位成本)

3)存储速度存储速度)

[二、主存的基本组成 87+89](#二、主存的基本组成 87+89)

1.基本元件

2.存储芯片的结构

3.寻址

[三、SRAM vs DRAM 86](#三、SRAM vs DRAM 86)

1.DRAM

(1)工作原理

(2)特点

[1)破坏性读出 and 需要再生](#1)破坏性读出 and 需要再生)

2)需要刷新

3)分两次送行列地址

(3)DRAM刷新

1)集中刷新集中刷新)

2)分散刷新分散刷新)

3)异步刷新异步刷新)

(4)DRAM地址复用技术

2.SRAM

(1)工作原理

(2)特点

[1)非破坏性读出 不需要重生](#1)非破坏性读出 不需要重生)

2)不需要刷新

3)同时送行列地址

[四、ROM (Read-Only Memory) 88](#四、ROM (Read-Only Memory) 88)

[1.MROM(Mask) 掩模式·····](#1.MROM(Mask) 掩模式·····)

[2.PROM(Programable) 一次可编程·····](#2.PROM(Programable) 一次可编程·····)

[3.EPROM(Erasable) 可擦除可编程·····](#3.EPROM(Erasable) 可擦除可编程·····)

[(1)UVEPROM 紫外线擦除](#(1)UVEPROM 紫外线擦除)

[(2)EEPROM (E^2PROM) 电擦除](#(2)EEPROM (E^2PROM) 电擦除)

4.闪存(Flash存储器)

5.固态硬盘(SSD)

6.ATTN

(1)许多ROM依然可以写

(2)ROM是非易失性的,也可以随机存取

[五、提高主存速度 90](#五、提高主存速度 90)

1.reason

[2.多模块存储器 90](#2.多模块存储器 90)

(1)多体并行存储器

1)高位交叉编址

2)低位交叉编址

(2)单体并行存储器

[六、主存与CPU之间的连接 101](#六、主存与CPU之间的连接 101)

1.存储器芯片的基本结构

2.位扩展

3.字扩展

(1)线选法

(2)译码片选法

4.字位同时扩展

[七、外存 109](#七、外存 109)

1.disk原理

(1)disk组成

(2)性能指标

1)容量

2)记录密度

3)平均存取时间

4)data传输率

(3)硬盘地址

[2.独立冗余磁盘阵列 RAID](#2.独立冗余磁盘阵列 RAID)

(1)RAID0

(2)RAID1

(3)RAID2

(4)RAID3~RAID5(了解)

[八、固态硬盘 SSD 111](#八、固态硬盘 SSD 111)

1.原理

2.组成

3.读写性能

[4. vs 机械接盘](#4. vs 机械接盘)

5.磨损均衡技术

[6. 联系 OS](#6. 联系 OS)

[九、Cache 115](#九、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](#十、主存与Cache之间的映射关系 118)

1.Cache存放data格式

2.全相联映射

3.直接映射

4.组相连映射

[十一、Cache的替换算法 122](#十一、Cache的替换算法 122)

1.随机算法(RAND)

2.先入先出(FIFO)

3.最近最少使用算法(LRU)

(1)手算

(2)机器

4.最不经常使用算法(LFU)

[十二、Cache写策略 123](#十二、Cache写策略 123)

1.命中

(1)全写法

(2)回写法

2.未命中

(1)写分配法

(2)非写分配法

3.多级Cache


一、存储器的基本概念 80

1.按照层次结构

Attn:①寄存器集成在CPU中

②辅存和外存的区分不大

2.按照各种分类

(41)存储介质

半导体:Cache 磁介质:disk、硬盘 光介质:光盘

(2)存取方式

随机存储器(RAM):EPROM、SRAM、DRAM

顺序存取存储器(SAM):磁带

直接存取存储器(DAM):磁盘(SSD) 、光盘 (CD-ROM)

相联存储器(内存存储器)(CAM):快表

只读存储器 (ROM)

ATTN:不要根据东西的名称分,要根据具体内容

(3)内存是否可更改

只能读ROM

可读写else

(4)信息的可保存性

断电是否发生data丢失:易失性存储器

RAM

非易失性存储器:ROM、磁性存储器、光存储器

(5)读出之后data是否破坏

读了之后摧毁data / 不摧毁:破坏性读出 DRAM and 非破坏性输出 SRAM

3.存储器的性能指标

1)存储容量

2)单位成本

每bit价格

3)存储速度

存储时间、存取周期、主存带宽(data传输率)

存储周期 = 存储时间+恢复时间

主存带宽 :每秒读写的data

二、主存的基本组成 87+89

1.基本元件

存储元 : 电容 + MOS管

电容存储电荷,写就充电,读就放电

工作原理:根据高低电平(电荷)

因为电容这边接地,为0V,so用高电平的时候MOS导电,电容充电表示1,之后断开MOS管,电荷就保存在了电容中,在另一端读就为1

低电平MOS绝缘,电容还是0V,无电荷0,在另一端读就为0

多个存储元组成存储单元(存储字),多个存储单元组成存储矩阵(存储体)

2.存储芯片的结构

CPU发出指令,通过MAR获取进行读写的内存地址,通过译码器进行选择哪一块存储芯片的读写,读完之后通过data线送到MDR中,整体过程由CPU控制

MAR存储nbit数据,则译码器就有2^n个存储单位

读写控制线可以由一条or两条线组成

①一条 WE (有上划线) 低写高读

②两条线 WE (有上划线)写 OE(有上划线)读

片选控制线:选择读写内存中的那一块存储芯片上的data,低电平确定

CS (有上划线)、CE (有上划线) ,上划线表示低电平激活

3.寻址

按字节or 字编址

按字节 、字、半字、双字寻址

ATTn:在32bit机器中,1字= 32bit = 4B

三、SRAM vs DRAM 86

1.DRAM

(1)工作原理

运用栅极电容存储信息,1个MOS管,即存储元,多个存储元组成存储体

(2)特点

1)破坏性读出 and 需要再生

通过电容充放电进行读写,so读的时候会放电,电容中的电荷没了,so是破坏性读出

放电之后需要重新充电,"再生"

2)需要刷新

即使不重新读写,电荷也会慢慢流失,so需要定期刷新,三种方式

刷新与重生dis:刷新是按行为单位的

3)分两次送行列地址

地址复用技术

(3)DRAM刷新

1)集中刷新

计算出全部刷新需要的时间,则else进行CPU读取,留下这些时间进行全部刷新,这一部分时间称作死区,此时CPU不能读取

2)分散刷新

读一下刷一次,dis:存取周期翻倍

3)异步刷新

计算出全部刷新的时间,将其分布到每个刷新周期之间,这样就分散了死区,cpu不会等待时间过长

(4)DRAM地址复用技术

未使用之前,1条地址线对应1存储元,译码器连着这么多的线,设计比较难,so使用行译码器和列译码器,条数就开方了,并且芯片引脚也减少

2.SRAM

(1)工作原理

使用6个MOS管,so会存储信息

(2)特点

1)非破坏性读出 不需要重生
2)不需要刷新
3)同时送行列地址

四、ROM (Read-Only Memory) 88

1.MROM(Mask) 掩模式·····

厂家根据用户需求进行设计,之后任何人不能再修改

2.PROM(Programable) 一次可编程·····

用户可DIY,保存之后不能再修改

3.EPROM(Erasable) 可擦除可编程·····

(1)UVEPROM 紫外线擦除

紫外线照射 8~20min

(2)EEPROM (E^2PROM) 电擦除

4.闪存(Flash存储器)

先擦除后写 so V读 > V写

5.固态硬盘(SSD)

控制单元 + Flash芯片

6.ATTN

(1)许多ROM依然可以写

(2)ROM是非易失性的,也可以随机存取

五、提高主存速度 90

1.reason

存取周期 = 存取时间 + 恢复时间

恢复时间占主要时间,且恢复期间cpu无法读写

2.多模块存储器 90

(1)多体并行存储器

多体模块(理解成内存条)组成

1)高位交叉编址

体号+体内地址,体号表示选择的是哪一块,体内表示模块内的第几个,"竖着编址"

2)低位交叉编址

体内地址+体号,"横着编址"

best 模块数m = 存取周期T/存取时间r

if 想cpu不停止,则 m>= T/r ;m> T/r,模块会有空闲,无法达到最高效,增加成本;m<T/r,cpu仍需等待

一般是进行字扩展,组与组之间串联,由此确定模块的个数

(2)单体并行存储器

将m体模块合并成一个模块,每次并行读出m个连续的字,so每个存储单元存储m个字,总线宽度也为m个字

六、主存与CPU之间的连接 101

1.存储器芯片的基本结构

移码驱动电路+存储体+读写电路+地址线、片选线、数据线、读/写控制线

2.位扩展

芯片并联,增加data总路读写的效率

3.字扩展

芯片串联,扩容

(1)线选法

直接连接,1地址线--1芯片(组)

(2)译码片选法

使用译码器,n地址线 -- 2^n 芯片(组)

4.字位同时扩展

结合位扩展+字扩展

七、外存 109

1.disk原理

(1)disk组成

磁盘驱动器、磁盘控制器、盘片

(2)性能指标

1)容量
2)记录密度

道密度、位密度、盘密度

因为每条磁道中data数量相同,so外道密度<内道密度

3)平均存取时间

寻道时间、旋转延迟时间、传输时间

4)data传输率

磁盘存储器再单位时间内想主机传送data的字节数

Dr = rN (转速 * 每条磁道容量)

(3)硬盘地址

柱面扇

2.独立冗余磁盘阵列 RAID

因为 数据总线发送data时只能1bit的发,so用串-并交换电路,能同时nbit

实现:多个独立的物理disk组成一个独立的逻辑盘

RAID的应用是在实现手段,安全性差距,等级越大越安全

(1)RAID0

无冗余的,无校验的磁盘阵列,(类比低位编址的多体存储器)

disa:不能检验,错了就错了

(2)RAID1

镜像磁盘阵列(有冗余,有检验)

disa:冗余50%,检验就比较另一份

(3)RAID2

采用可以纠错的海明码的磁盘阵列,,采用k位disk和n位海明校验码

eg:4个disk则最少需要3位海明校验码

reason:k+n位最多表示2^(k+n) -1种错误,有一种是没错

so 2^(k+n) -1 >= k+n

参考视频:

b占-里昂-海明码

(4)RAID3~RAID5(了解)

八、固态硬盘 SSD 111

1.原理

闪存技术 、可电擦除

2.组成

闪存翻译层 + Flash Chips

3.读写性能

为单位读写(类比disk的块)

为单位进行擦除,擦完之后才能写,即使块中有空页,也不能写

支持随机访问

4. vs 机械接盘

SSD快、安静、贵,擦除次数太多就坏了

5.磨损均衡技术

因为擦除太多会损坏,so采用方法

(1)动态擦除 --选擦除次数min

(2)静态擦除 -- 读写需求大的使用擦除次数少的,只读的使用擦除次数多的

6. 联系 OS

九、Cache 115

1.工作原理

SRAM构建,将主存中的部分data先拷贝到Cache中,缓解CPU和主存之间的速度矛盾

2.局部性原理

时间和空间

3.性能分析

(1)Cache命中率、缺失率

Cache命中率 :CPU访问Cache的概率

H = Nc /(Nc +Nm)

平均访问时间Ta= Htc + (1-H)(tc+tm) 先访问Cache再主存

平均访问时间Ta= Htc + (1-H)tm 同时访问

(2)方式

先访问Cache再主存;同时Cache 和主存

4.else(联系OS)

5.存在的question

(1)Cache与主存中data块的对应关系

Cache与主存之间的映射关系

(2)Cache块小,满了咋办

Cache替换算法

(3)cpu修改Cache的data,则如何保持与主存中的原data的一致性

Cache写策略

十、主存与Cache之间的映射关系 118

1.Cache存放data格式

有效位+标记+整块data

有效位表示data是否有效,∵全0也可表示具体data

标记表示data在内存中的pos

2.全相联映射

随便放,有空就行

主存地址 = 块号 + 块内地址

adv:空间利用充分

disa:确定data在内存中的位置较慢

3.直接映射

地址号 mod 块号 ,位置唯一

映射到的块号 = 内存地址低位c

c = log2Cache块数

4.组相连映射

先将Cache块进行分组,然后直接映射入组,组内随意放空地方

十一、Cache的替换算法 122

1.随机算法(RAND)

当Cache满了之后,if有新的内存块要访问,随机替换一个Cache行中的data

2.先入先出(FIFO)

eg:4个Cache行,依次访问1,2,3,4,1,2,5,1,2,3,4,5主存块

绿色表示命中,红色代表替换,(中间相同ele省略)

[tip] 使用辅助队列

由图中后半部分发现频繁替换,称作抖动现象

3.最近最少使用算法(LRU)

替换在访问的前几个中没有使用的那一个

(1)手算

往前看,差1个

(2)机器

使用计数器,计数器表示已经几次没有访问该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

4.最不经常使用算法(LFU)

全局不常用,使用计数器,表示该行Cache访问次数。每次访问一个,if为空,放入Cache行,count+1,if不空,命中,+1,未命中,替换min,if有同,FIFO or 行数小的

逐步分解(先换行号小)

此时3Cache2 、3小,5替3

此时3替5

十二、Cache写策略 123

1.命中

(1)全写法

同时修改主存和Cache,存在速度矛盾,so使用写缓存,等止呕控制电路一块写入

(2)回写法

写入Cache,等Cache中该块被替换时,写入主存

2.未命中

未命中说明去主存中寻找,根据将data放不放入Cache进行分

(1)写分配法

放入Cache

(2)非写分配法

不放入Cache

Attn:非写分配法不放入Cache,全写法全修改,就不需要从主存放入Cache中了,so搭配使用

写分配 和 回写法搭配使用

3.多级Cache

再将Cache进行分级,级越高离CPU越近,容量越小,速度越快

相关推荐
TANGLONG2224 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
TANGLONG2229 小时前
【C语言】字符和字符串函数(2)
java·c语言·c++·python·考研·面试·蓝桥杯
大二转专业13 小时前
408算法题leetcode--第21天
考研·算法·leetcode
西电研梦17 小时前
西电25考研 VS 24考研专业课大纲变动汇总
考研·研究生·西电·西安电子科技大学
张小虎在学习17 小时前
考研日语 - 高频核心 2200 词(八)
笔记·考研
张小虎在学习17 小时前
考研日语 - 高频核心 2200 词(九)
笔记·考研
TANGLONG2222 天前
【C语言】内存函数的使用和模拟实现
java·c语言·c++·python·考研·面试·蓝桥杯
抓哇能手2 天前
王道408考研数据结构-图-第六章
c语言·数据结构·考研·算法·图论·408
LIC_woodBird2 天前
【数一线性代数】021入门
考研
shiji-lu3 天前
针对考研的C语言学习(2019链表大题)
c语言·学习·考研