1.概述1.存储器的存储结构 CPU->Cache->主存->辅存->外存 2.存储器的分类 (1)层次 (2)存储介质:半导体存储器–主存,cache;磁性材料—磁盘、磁带;光存储器—光盘 (3)存取方式:随机存取存储器(RAM)、顺序存取存储器(SAM)、直接存取存储器(DAM)、相联存储器(按内容访问的存储器CAM) (4)信息的可更改性:读写存储器、只读存储器(ROM) (5)信息的可保存性:异失性存储器(主存、cache)、非异失性存储器(磁盘、光盘)、破坏性读出(DRAM芯片)、非破坏性读出(SRAM) 3.存储器的性能指标 (1)存储容量=存储字数×存储字长=MAR×MDR (2)单位成本:每位价格=总成本/总容量 (3)存储速度:数据传输率(主存带宽)=数据宽度(存储字长)/存储周期;存储周期=存取时间 恢复时间 1.1 主存储器的基本组成基本元件:MOS管,电容 存储芯片的结构:译码驱动器、存储矩阵、读写电路、地址线、片选线、数据线、读写控制线 寻址:按字节寻址,也可按字寻址、按半字寻址、按双字寻址 1.2 SRAM&DRAMDRAM:动态随机存储器—用于主存—使用栅极电容存储(一条数据线) (1)破坏性读出,读出后应有重写操作,也称“再生”–读写速度慢 (2)成本低,集成度高,功耗低 SRAM::静态随机存储器—用于Cache–使用双稳态触发器存储(1:A高B低;0:A低B高,两条数据线) (1)非破坏性读出,无需重写—读写速度快 (2)成本高,集成度低,功耗大 DRAM刷新—由存储器独立完成,不需要CPU控制 (1)2ms刷新一次 (2)每次刷新一行存储单元,使用行列地址减少选通线的数量 (3)如何刷新? 有硬件支持,读出一行的信息后重新写入,占用1个读/写周期 (4)在什么时候刷新?分散刷新(每次读写完都刷新一行)、集中刷新(集中安排时间全部刷新,此时无法访问存储器,称为访存“死去”)、异步刷新(2ms内每行刷新一次,可在译码阶段刷新) DRAM的地址线复用技术–n/2条地址线分两次传送,可使地址线更少,引脚更小。地址引脚减半 1.3 只读存储器ROM非易失性芯片,断电后数据不会丢失 1.MROM:掩模式只读存储器。厂家按照客户需求定制,任何人不可重写 2.PROM:可编程只读存储器。用户用专门PROM写入器写入信息,写入一次就不可更改 3.EPROM:可擦除可编程只读存储器 (1)UVEPROM:用紫外线照射8-20min,擦除所有信息 (2)EEPROM:可用电擦除,擦除特点的字 4.Flash Memory:闪存存储器,可进行多次快速擦除重写。写速度比读速度更慢。每个存储园只需Mos管,位密度比RAM高 5.SSD:固态硬盘。控制单元 存储单元(Flash芯片),可进行多次快速擦除重写。速度快、功耗低、价格高 6.BIOS芯片:存储量自举装入程序,负责引导开机。逻辑上主存由RAM ROM且二者统一编制 1.4 主存与CPU的连接CS或CE片选线信号:上有横线代表低电平有效 WE/OE读写控制线信号 1.位扩展。8片8k×1位的扩展成1片8k×8位的芯片 2.字扩展。 (1)线选法,多出的地址线控制片选信号。地址空间不连续 (2)译码器片选法。n条线对应2^n个片选信号。地址空间连续 3.字位同时扩展法: 1.5双端口RAM和多模块存储器1.双端口RAM,优化多核CPU访问一根内存条的速度 (1)需要有两组完全独立的数据线、地址线、控制线、CPU、RAM中也要有更复杂电路 (2)两个端口对同一主存操作情况: a两个端口对不同地址单元存取数据 b两个端口对同一地址单元读取数据 c两个端口对同一地址单元写入数据× d两个端口同时对同一地址单元一个写入数据,一个读出数据× 2.多体并行存储器(m>=T/r) (1)高位交叉编制:连续取n个存储字,耗时nT (2)低位交叉编制:连续取n个存储字,耗时T (n-1)r 2.Cache2.1Cache基本概念将某些主存块复制到Cache中,缓和CPU和内存之间的速度矛盾 命中率(H):CPU欲访问的信息已在Cache中的比率。 缺失(未命中)率M=1-H Cache-主存系统的平均访问时间t为
先
访
问
C
a
c
h
e
后
访
问
内
存
t
=
H
t
c
(
1
−
H
)
(
t
c
t
m
)
同
时
访
问
C
a
c
h
e
和
内
存
t
=
H
t
c
(
1
−
H
)
t
m
先访问Cache后访问内存 t=Ht_c (1-H)(t_c t_m)\\ 同时访问Cache和内存 t=Ht_c (1-H)t_m
先访问Cache后访问内存t=Htc (1−H)(tc tm)同时访问Cache和内存t=Htc (1−H)tm 如何界定目标访问地址的“周围”?将主存存储空间分块,主存与Cache以块为单位进行数据交换主存地址可拆分为(主存块号,块内陆址) 2.2 Cache和主存的映射方式有效位:当前标记位是否有效 标记位:记录主存块的块号 1.全相联映射:存放在Cache任意位置 优点:存储空间利用充分,命中率高 缺点:查找标记慢,可能需要对比所有行的标记 2.直接映射:只能存放到一个特定位置,Cache=主存块号�che总块数 若Cache总块数为2^n,则主存块号末尾n位放映了,它在cache中的位置,因此标记位可以记录主存块号-n末尾 优点:只需对比一个标记,速度最快 缺点:其他地方有空闲Cache块,但只能放到固定位置,命中率低 3.组相联映射:把Cache块分为若干分组,每个主存块可放到特定分组中的任意一个位置,Cache所属分组=主存块号�che分组数。2路组相联映射–2块为一组 优点:另外两种方式,综合效果最好 2.3 Cache替换算法1.随机算法(RAND) 若Cache已满,则随机选取一块替代 2.先进先出算法(FIFO)–实现简单,易产生抖动现象 若Cache已满,则替换最先被调入cache的块 3.近期最少使用算法(LRU)—实际运行效果优秀,Cache命中率高。但频繁访问的主存块数量>Cache行的数量,也会发生抖动现象 为每一个Cache块设置一个计数器,用于记录Cache已经多久没有被访问过了。当Cache满后替换计数器最大的。块的总数为2^n,则计数器只需要n位 4.最不经常使用算法(LFU) 为每一个Cache块设置一个计数器,用于记录Cache被访问过几次。当Cache满后替换计数器最小的。若有多个则按“行号递增”或“FIFO先进先出”替换 2.4 Cache写策略1.写命中 写回法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存。只有当此块被换出时才写回主存,一般用脏位(脏位:表示Cache数据是否被更改) 全写法(write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般用写缓冲(SRAM,实现FIFO的队列) 2.写不命中 写分配法:当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常配合<写回法>使用 非写分配法:当CPU对Cache写不命中时,只写入主存,不调入Cache。搭配<全写法>使用 现代计算机采用多级Cache,靠近CPU速度越快,容量越小。越远离CPU的速度越慢,容量越大。各级Cache之间采用“全写法 非写分配法”,Cache和主存之间采用“写回法 写分配法” 3.虚拟存储器3.1页式存储器页表:存放逻辑页号与主存块号映射关系的数据结构 快表存储的是页表项的副本;Cache中存储的是主存块的副本 详见计算机操作系统–内存管理 3.2虚拟存储器详见计算机操作系统–内存管理 来源:https://www./content-4-879951.html
|