存储器是计算机系统中的记忆设备,用来存放程序和数据。
从某种意义而言,存储器的性能已经成为计算机系统的核心。
从不同的角度对存储器可作不同的分类。
存储介质是指能寄存“0”、“1”两种代码并能区分两种状态的物质或元器件。
存储介质主要有半导体期间、磁性材料和光盘等。
现代半导体存储器都用超大规模集成电路工艺制成芯片
其优点是体积小、功耗低、存取时间短。
其缺点是当电源消失时,所存储的信息也随即丢失,它是一种易失性存储器。
半导体存储器又可按其材料的不同,分为双极型(TTL)半导体存储器和MOS半导体存储器两种。
前者具有高速的特点。
后者具有高集成度的特点,并且制造简单,成本低廉,功耗小。
故MOS半导体存储器被广泛应用。
磁表面存储器具有非易失性的特点。
不易失的永久记忆存储器。
具有非易失的特点。
光盘具有记录密度高、耐用性好、可靠性高和可互换性强的特点。
RAM是一种可读/写存储器
特点:存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。
计算机系统中的主存都采用这种随机存储器。
由于存储信息的原理不同,RAM又分为静态RAM(以触发器原理寄存信息)和动态RAM(与电容充放电原理寄存信息)。
ROM是能对其存储的内容读出,而不能对其重新写入的寄存器。
通常用它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化。
它与随机存储器可共同作为主存的一部分,统一构成主存的地址域。
如果对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址,则这种存储器称为串行访问存储器。
分为主存储器、辅助存储器、缓冲存储器。
主存储器(简称主存)的主要特点是它可以和CPU直接交换信息。
主存速度快、容量小、每位价格高。
辅助存储器(简称辅存)是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,它不能与CPU直接交换顺序。
辅存速度慢、容量大、每位价格低。
缓冲存储器(简称缓存)用在两个速度不同的部件之中,起到缓冲作用(例如CPU与主存之间)
存储器有3个主要性能指标:速度、容量和每位价格(简称位价)。
一般来说,速度越高,位价就越高;容量越大,位价就越低,而且容量越大,速度必越低。
实际上,存储系统体系结构主要体现在缓存-主存和主存-辅存这两个层次结构上
缓存-主存层次主要解决CPU和主存速度不匹配的问题
从CPU角度来看,缓存-主存这一层次的速度接近于缓存,高于主存;其容量和位价却接近于主存,这就从速度和成本的矛盾中获得了理想的解决办法
主存-辅存层次主要解决存储系统的容量问题
主存-辅存这一层次,从整体分析,其速度接近于主存,容量接近于辅存,平均为假也接近于低速、廉价的辅存位价,这有解决了速度、容量、成本这三者的矛盾
从主存-辅存这一层次的不断发展中,逐渐形成了虚拟存储系统
若要向主存存入一个信息字
主存各存储单元的空间位置是由单元地址号来表示的
而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字
不同的机器存储字长也不同
常用8位二进制数表示一个字节
通常计算机系统即可按字寻址,也可按字节寻址
主存的主要技术指标是存储容量和存储速度
存储容量是指主存能存放二进制代码的总位数,即
存 储 容 量 = 存 储 单 元 个 数 × 存 储 字 长 存储容量 = 存储单元个数 \times 存储字长 存储容量=存储单元个数×存储字长
它的容量也可用字节总数来表示,即
存 储 容 量 = 存 储 单 元 个 数 × 存 储 字 长 ÷ 8 存储容量 = 存储单元个数 \times 存储字长 \div 8 存储容量=存储单元个数×存储字长÷8
存储速度是由存取时间和存取周期来表示的
存取时间又称为存储器的访问时间(Memory Access Time),是指启动一次存储器操作(读或写)到完成该操作所需的全部时间。
存取时间分读出时间和写入时间两种
存取周期(Memory Cycle Time)是指存储器进行连续两次独立的存储器操作所需的最小间隔时间
通常存取周期大于存取时间
与存取周期密切相关的指标为存储器带宽,它表示单位时间内存储器存取的信息量,单位可用 字/秒 或 字节/秒 或 位/秒 表示
为提高存储器的带宽,可以采用以下措施:
译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作
读/写电路包括读出放大器和写入电路,用来完成读/写操作。
存储芯片通过地址总线、数据总线和控制总线与外部相连
地址线是单向输入的,其位数与芯片容量有关
数据线是双向的,其位数与芯片可读出或写入的数据位数有关。数据线的位数与芯片容量有关
地址线和控制线的位数共同反映存储芯片的容量
控制线主要有读/写控制线与片选线两种
读写控制线用来决定芯片进行读/写操作,片选线用来选择存储芯片
半导体存储芯片的译码驱动方式有两种:线选法和重合法
用一根字选择线(字线),直接选中一个存储单元的各位(如一个字节)。
这种方式结构较简单,但只适用于容量不大的存储芯片
只需要64根选择线(X、Y两个方向各32根),便可选择 32 × 32 32 \times 32 32×32矩阵中的任一位
由于被选单元是由X、Y两个方向的地址线决定的,故称为重合法
随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类
存储器中用寄存“0”和“1”代码的电路称为存储器的基本单元电路
Intel 2114 芯片
读
常见的动态RAM的基本单元电路有三管式和单管式两种
它们的共同特点都是靠电容存储电荷的原理来寄存信息
电容上的电荷一般只能维持1~2ms,为此必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新
它与静态RAM相比,具有集成度更高、功耗更低等特点
三管动态RAM芯片
Intel 1103 芯片
单管动态RAM芯片
Intel 4116 芯片
读时序
刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程
必须采用定时刷新的方法,在一定时间内,对动态RAM的全部基本单元电路必作一次刷新,一般取2ms,这个时间称为刷新周期,又称再生周期
集中刷新是在规定的一个刷新周期内,对存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作
不能进行读/写操作的时间称为“死时间”,又称访问“死区”,所占比率称为死时间率
分散刷新是指对每行存储单元的刷新分散到每个存储周期内完成
异步刷新是前两种方式的结合,它即可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点
位扩展是指增加存储字长
字扩展是指增加存储器字的数量
字、位扩展是指既增加存储字的数量,又增加存储字长
存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。
通常总是将CPU地址线与存储芯片的地址线相连。
CPU的高位或在存储芯片扩充时用,或做其他用途,如片选信号等。
CPU的数据线数与存储芯片的数据线数也不一定相等。
此时,必须对存储芯片扩位,使其数据位数与CPU的数据线数相等
CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常为高电平为读,低电平为写
存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端CS能否接收到来自CPU的片选有效信号
存储芯片类型(RAM或ROM)和数量的选择
由编码纠错理论得知,任何一种编码是否具有检测能力和纠错能力,都与编码的最小距离有关。
所谓编码最小距离,是指在一种编码系统中,任意两组合法代码之间的最少二进制位数的差异。
根据纠错理论得
L − 1 = D + C , D ≥ C L - 1 = D + C, D \ge C L−1=D+C,D≥C
即编码最小距离L越大,则其检测错误的位数D越大,纠正错误的位数C也越大,且纠错能力恒小于等于检错能力。
设欲检测的二进制代码为n位,为使其具有纠错能力,需增添k位检测位,组成 n + k 位的代码。
为了能准确地对错误定位以及指出代码没错,新增添的检测位数 k应满足:
2 k ≥ n + k + 1 2^k \ge n + k + 1 2k≥n+k+1
检测位的位置为 2 i ( i = 0 , 1 , 2 , 3 , ⋯   ) 2^i ( i = 0,1,2 ,3 ,\cdots ) 2i(i=0,1,2,3,⋯)
检测位的取值与该位所在的检测“小组” 中承担的奇偶校验任务有关
各检测位承担的检测小组为
对传送后的汉明码形成新的检验位 P i ( i = 1 , 2 , 4 , 8 ) P_i (i = 1, 2, 4, 8) Pi(i=1,2,4,8),根据 P i P_i Pi的状态,便可直接指出错误的位置。
其位数与增添的检测位有关
汉明码常常被用在纠错一位的场合,若欲实现检错两位,实用时还得在增添一位检验位
采用多体模块组成的存储器。
每个模块有相同的容量和存取速度,各自拥有独立的模块。
它们能并行工作,又能够交叉工作
顺序编址,各个体并行工作
各个体轮流编址
可以在不改变每个模块存取周期的前提下,提高存储器的带宽
在某一时刻,决定主存究竟与哪个部件交换信息必须由**存储器控制部件(简称存控)**来承担
存控具有合理安排各部件请求访问的顺序以及控制主存读/写操作的功能
在系统时钟的控制下进行读出和写入
CPU 无须等待
由 Rambus 开发,主要解决存储器带宽问题
在 DRAM 的芯片内集成了一个由SRAM组成的Cache,有利于猝发式读取
Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息
块的大小相同
B 为块长
缓存共有 C 块,主存共有 M 块,M >> C(M远远大于C)
命中:
主存块 调入 缓存,主存块与缓存块 建立 了对应关系
用 标记记录 与某缓存块建立了对应关系的 主存块号
未命中:
主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
一般每块可取 4 ~ 8 个字
块长取一个存取周期内从主存调出的信息长度
效率 e 与 命中率 有关
e = 访 问 C a c h e 的 时 间 平 均 访 问 时 间 × 100 % e = \frac{访问 Cache 的时间}{平均访问时间} \times 100 \% e=平均访问时间访问Cache的时间×100%
设 Cache 命中率 为 h,访问 Cache 的时间为 t c t_c tc,访问 主存 的时间为 t m t_m tm
e = t c h × t c + ( 1 − h ) × t m × 100 % e = \frac{t_c}{h \times t_c + (1 - h) \times t_m} \times 100 \% e=h×tc+(1−h)×tmtc×100%
读操作
写操作,分为写直达法和写回法。
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间
读操作时不涉及对主存的写操作,更新策略比较容易实现
写操作时只把数据写入 Cache 而不写入主存
当 Cache 数据被替换出去时才写回主存
写操作时间就是访问 Cache 的时间
读操作 Cache 失效发生数据替换时,被替换的块需写回主存,增加了 Cache 的复杂性
增加Cache的级数
片载(片内)Cache 和 片外 Cache
分为 指令 Cache 和 数据 Cache
与主存结构有关
与指令执行的控制方式有关(是否流水)
辅助存储器作为主存的后援设备又称为外部存储器,简称外存,它与主存一起组成了存储器系统的主存-辅存层次
与主存相比,辅存具有容量大、速度慢、价格低、可脱机保存信息等特点,属于“非易失性”存储器
磁表面存储器的技术指标
可分为
固定磁头和移动磁头
可换盘和固定盘
硬磁盘存储器结构
采用光存储技术,利用激光写入和读出
光盘的存储原理