『计算机组成原理』储存器概述
『计算机组成原理』储存器概述
首先说一个概念:
DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
1.储存器的分类:
(1).按介质分类:
存储介质是指能够寄存 0,1 两种代码并能区分两种状态的介质或元器件。存储介质主要有半导器件,磁性材料,和光盘。
1° 半导体存储器
储存元件由巴脑体期间组成的存储称为半导体储存器。现代半导体存储元件都使用超大规模集成电路工艺支撑芯片,像现在的内存条固态硬盘都是半导体储存器。
优点: 半导体存储器具有存取速度快、存储容量大、体积小等优点,并且存储单元阵列和主要外围逻辑电路兼容,可制作在同一芯片上,使输入输出接口大为简化。
缺点: 当电源消失时,所存信息也会随即丢失,他是一种易失性的存储器。
但是近年来Flash 闪存的发展,是的半导体存储器作为长期存储器成为了可能。
2° 磁表面存储器
磁表面存储器是利用涂覆在载体表面的磁性材料具有两种不同的磁化状态来表示二进制信息的“0”和“1”。将磁性材料均匀地涂覆在圆形的铝合金或塑料的载体上就成为磁盘,涂覆在聚酯塑料带上就成为磁带。
磁头是磁表面存储器用来实现“电 ←→ 磁”转换的重要装置,一般由铁磁性材料(铁氧体或玻莫合金)制成,上面绕有读写线圈,在贴近磁表面处开有一个很窄的缝隙。
优点:
磁表面存储器的优点为存储容量大、单位价格低、记录介质可以重复使用、记录信息可以长期保存而不丢失,甚至可以脱机存档、非破坏性读出,读出时不需要再生信息
缺点:
存取速度较慢,机械结构复杂,对工作环境要求较高。磁表面存储器由于存储容量大,单位成本低,多在计算机系统中作为辅助大容量存储器使用,用以存放系统软件、大型文件、数据库等大量程序与数据。
3° 磁芯存储器
1970年左右被淘汰,不提了。
4° 光盘存储器
光盘存储器是(ODM Optical Disk Memory)是用于记录的薄层涂覆在基体上构成的记录介质。不同的是基体的圆形薄片由热传导率很小、耐热性很强的有机玻璃制成。在记录薄层的表面再涂覆或沉积保护薄片,以保护记录面。记录薄层有非磁性材料和磁性材料两种,前者构成光盘介质,后者构成磁光盘介质。
优点:存储量很大且盘片易于更换非易失
缺点:满,比磁盘还有慢一个数量级
(2).按存取方式分类
1° 随机存储器(Random Access Memory ,RAM)
“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的
位置无关。也叫主存,是与 CPU 直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM 工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与 ROM 的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM 在计算机和数字系统中用来暂时存储程序、数据和中间结果。
分类:
静态随机存储器(SRAM)
动态随机存储器(DRAM)
2° 只读存储器(Read Only Memory,ROM)
只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。按存取信息的不同方式,存储器可以分为随机存取存储器(RAM)和非随机存取存储器。只读存储器就属于非随机存取存储器。
根据编程方式的不同,只读存储器共分为以下 5 种:
- 掩膜工艺 ROM
这种 ROM 是工艺厂家根据客户所要存储的信息,设计专用的掩膜板进行生产的。一旦生产出成品后,ROM 中的信息即可被读出使用,但不能改变。这类 ROM 一般用于批量生产,成本比较低。 - 可一次性编程 ROM(PROM)
PROM 是用熔丝(通常用镍铬合金、多晶硅或钛钨合金制造)制造的,用户可以烧断这些熔丝,以实现存储器存储元件之间的互联,从而写入信息,一旦写入之后,信息就会永久的固定下来,只可读出,不可再改变其内容。 - 紫外线擦除可改写 ROM(EPROM)
EPROM 中的内容可由用户写入,也允许用户反复擦除重新写入。EPROM 用电信号编程用紫外线擦除,在芯片外壳上方有一个圆形的窗口,通过这个窗口照射紫外线就可以擦除原有信息。由于太阳光中含有紫外线,所以当程序写好后要使用昂贵的带有石英窗口的陶瓷封装,避免阳光射入而破坏程序。而且在擦除过程中不能选择性地擦除存储字单元,如果用户需要改程序,必须擦除整个存储阵列。 - 电擦除可改写 ROM(EEPROM)
EEROM 是 ROM 发展过程中的一个主要进展,它的写操作采用了热载流子隧穿,擦除操作采用了热电子的量子力学隧穿效应。EEPROM 有相当多的优点,如单一的 5V 电压编程能力、编程之前无需进行擦除操作、字节模式和页模式的写操作、中等的存取时间、低功耗、全军用工作温度范围,以及在严峻的环境条件下的不挥发性。 - 快闪 ROM(flash ROM)
在 20 世纪 80 年代中期,人们发现把热载流子编程和隧穿擦除结合在一起是一种实现一个单管 EPROM 单元的方法,这种新技术被称为快闪存储器(flashROM)。这种技术结合了 EPROM 的编程能力和 EEPROM 的擦除能力,读写速度都很快。这种芯片的改写次数最大能达到 100 万次。
3° 串行访问存储器
如果对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址,则这种存储器称为串行访问存储器。
4° 按在计算机中的作用分类
2.存储器的层次结构
存储器有 3 个主要性能指标:速度、容量和每位价格(简称位价)。
一般来说,速度越高,位价就越高;容量越大,位价就越低,而且容量越大,速度必越低。
实际上,存储系统体系结构主要体现在缓存-主存和主存-辅存这两个层次结构上
缓存–主存层次
缓存-主存层次主要解决 CPU 和主存速度不匹配的问题
从 CPU 角度来看,缓存-主存这一层次的速度接近于缓存,高于主存;其容量和位价却接近于主存,这就从速度和成本的矛盾中获得了理想的解决办法
主存-辅存层次
主存-辅存层次主要解决存储系统的容量问题
主存-辅存这一层次,从整体分析,其速度接近于主存,容量接近于辅存,平均为假也接近于低速、廉价的辅存位价,这有解决了速度、容量、成本这三者的矛盾
从主存-辅存这一层次的不断发展中,逐渐形成了虚拟存储系统
主存的基本组成
存储体由若跟个存储单元组成,存储单元由多个存储元件组成
存储体—-存储单元(存储一串二进制串)—-存储元件(存储一个 0/1)
存储单元:存放一串二进制代码。
存储字:存储单元中的二进制代码
存储字长:存储单元中二进制代码位数。
存储单元按照地址进行寻址
MAR:存储器地址寄存器,反应存储单元个数。保存了存储体的地址(存储单元的编号),反应了存储单元的个数。所以 MAR 的位数和存储单元的个数有关。
MDR:存储器数据寄存器,反应存储字长(存储单元长度)。保存了要送入 CPU 中的数据或要保存到存储体中的数据或者刚刚从存储体中取出来来的数据。这个寄存器的长度和存储单元的长度相同。
主存中存储单元的地址分配
如 12345678 H 在主存储器中如何进行存储?
1、高位字节地址为字地址(大端大尾)
2、低位字节地址为字地址(小端小尾)
寻址方式及寻址范围计算:
地址线 24 根,按字节寻址,地址个数 = 2^24 * 1B = 16MB
如果字长 16 位,按字寻址,地址个数 = 8MW
如果字长 32 位,按字寻址,地址个数 = 4MW
半导体存储芯片基本结构
容量计算
地址线(单向) | 数据线 (双向) | 芯片容量 |
---|---|---|
10 | 4 | 2^10 _ 4 = 1K _ 4 |
14 | 1 | 2^14 _ 1 = 16K _ 1 |
13 | 8 | 2^13 _ 1 = 8K _ 8 |
片选线作用
让某一组芯片同时进行工作。如下图所示,使用 32 片 16K _ 1 位的存储器组成 64K _ 8 位的存储器。16 K _ 1 说明每个存储器的数据线为 1 根,要组成 64K _ 8 位的存储器,只需使得每次读数据是从 8 个 16 K _ 1 存储器中各读取一位即可,这时候就可以使用片选线同时选中 8 个 16K _ 1 的存储器。
半导体芯片译码驱动方式
1、线选法
从上图可以看出,地址总线为 4,数据总线为 8,按照字节进行寻址,内存大小为 16 _ 8 b。通过地址线判断从那个字节进行数据的读取,换句话说,如果地址输入为 0000,在只有字线 0 有效,其他字线无效。
线选法存在的问题:
如果容量稍大,比如为 1M _ 1 ,则此时有 20 根地址线,相应的有 2^20 = 100 万根字线,这样导致芯片字线非常密集,并且很难把芯片的密集程度做的很高。
2、重合法
对于重合法,同样如果有 1M * 1 的容量,此时 X(行)、Y(列)各有十根地址线,对应的字线各有 1024 条,则公有 2048 跟字线。
随机存储器(RAM)
(一) 静态 RAM
1、静态 RAM 保存 0 和 1 的原理是什么?
静态 RAM 使用的是触发器进行存储数据,触发器由四根晶体管构成,属于双稳态触发器,具有源端和非端用于存储数据,一方为 0 另一方为 1,一方为 1,另一方为 0。
2、静态 RAM 基本单元电路的构成是什么?
图中是保存一个 0 位或者 1 位的电路。
行地址线选择:相当于重合法图中的 Xn,每行有多个基本单元电路,行地址选中一行中所有的基本单元电路。
列地址选择:相当于重合法图中的 Yn,每列有多个基本单元电路,列地址选中一列中所有的基本单元电路。
每次读取数据,需要行和列同时被选中。
T1 ~ T4 为触发器,T1 和 T4 用于存储 0 和 1,T5 和 T6 用于控制读取哪一端数据。
在实际的芯片中,会将虚框中的内容(T1 ~ T 4, T5 和 T6)进行列分布而非单独一个,T7 和 T8 属于列开关,行列交叉点会有多个基本单元电路,能读出多位数据。
3、静态 RAM 对单元电路如何进行读出和写入?
(1)读操作:
读数据时,虽然 T5 开,T7 开,但是非端数据到写放大器就终止了。
(2)写操作
写数据时,左边的写放大器把右边的写放大器的值取非后进行输出,保证 A 和非 A 端的值相反。
4、Intel 2114 静态 RAM 芯片的结构及读写操作?
以 Intel 2114 芯片举例,Intel 2114 外特性如下图:
2114RAM 芯片结构示意图
Intel 2114 芯片是由 64 * 64 位矩阵构成。由图中可知,芯片地址线 9 根,数据线 4 根,那芯片内部是如何进行布局的呢?具体布局如下图:
如图所示,地址线共 10 位,其中行地址线 6 位,列地址线 4 位,行字线 2^ 6 = 64,列字线 2^ 4 = 16。读取数据时如下所示:
将 64 列数据分为四组,每组 16 列。数据读取的时候,如,行地址为 000000,列地址为 0000,此时,行位线选中第一行中所有的元件,列地址选中每组中的第一列,这样就从每组中读取一位,共读取四位数据。写数据和读数据同理。
(二)动态 RAM
1、动态 RAM 保存 0 和 1 的原理是什么?
动态 RAM 使用电容,电容中保存了电荷为 1,电容没有被充电为 0。
2、动态 RAM 基本单元电路的构成是什么?
动态 RAM 基本电路有两种,如上图左(三管动态 RAM)、右(单管动态 RAM)。
3、动态 RAM 对单元电路如何进行读出和写入?
(1)左侧电路读写操作
读操作: T4 为预充电信号,如果预充电信号有效,T4 会被打开,Vdd 通过 T4 对读数据线进行充电,使得读数据线成为高电平,如果是进行读操作,则读选择信号有效,T2 打开,如果此时 CG 中保存的数据是 0,也就是 CG 没有充电,则 T1 不会导通,则读数据线就会保持高电平,所以,如果保存的数据是 0,则在读数据时候,读出的数据是 1。如果 CG 电容中保存的数据是 1,T1 导通,此时读数据线上的电平通过 T2,T1 线路进行放电,读数据线低电平,读出的数据为 0。所以电容读出的信息和原存的信号是相反的。
写操作: 写入和输入信息相同。如果是写操作,写选择线有效,T3 导通 写数据线会通过 T3 向 CG 充电,或者 CG 通过 T3 进行放电,如果写入的数据是 1 高电平,写数据线会通过 T3 向 CG 充电,CG 写入 1.如果写入是 0,则 CG 通过 T3 进行放电,CG 放电为 0。
(2)右侧电路读写操作
读操作: 如果相应的行被选中,字线连接的 T 被打开,电容就会通过 T 进行充电或者放电,如果 CG 中有电位 1,此时放电,则数据线有电流,如果 CS 中没有充电,则数据线无电流,通过数据数据线有无电流判断 CS 中保存的是 1 还是 0。
写操作: 写入时,写入 1,数据线有电流,进行充电为 1。写入 0,数据线无电流,放电为 0。
4、动态 RAM 芯片的结构及读写操作?
(1) 三管动态 RAM(Intel 1103)
三管动态 RAM 读写操作:
(2)单管动态 RAM(Intel 4116)
单管动态 RAM 外特性:
上图中,大小为 16k X 1,所以有 14 根地址线,图中地址线只有 A0 – A6 共 7 根线,此时行地址和列地址分为两次传输,将行地址和列地址分别保存早缓存器中。
图中的读放大器的工作原理像一个撬撬板电路,一端为 0,另一端就是 1,一端为 1,另一端就是 0。
读操作: 如果选中 63 行,0 列。则 63 行中所有的开关都被打开,如果电容中有电,则读放大器左端为 1,则右端为 0,此时读出的数据为 0。如果电容中没有电,读放大器左端为 0,则右端为 1,此时读出数据为 1。
写操作: 如果如果选中 63 行,0 列。写入 1,读放大器右端为 1,左端为 0,写入 0。如果写入 0,读放大器右端为 0,左端为 1,写入 1。
以上电容中实际数据和写入读出数据相反,但是读出和写入的数据相同。
三管动态 RAM 和单管动态 RAM 电路比静态 RAM 电路多出放大器,放大器所用:电容存在漏掉,需要刷新放大器没过一段时间对每一列上的电容进行刷新重现。
5、动态 RAM 为什么要进行刷新,刷新方法是什么?
由于动态 RAM 使用电容存储信息,电容容易漏电,经过一段时间,电容漏电,会导致数据有 1 变为 0,。动态 RAM 刷新只和行地址有关,和列地址无关,每次刷新的是一行中的所有基本电容电路。给出行地址,某一行被全部选中,这个行上所有电容中的信息都会被送到读电路,如果在读数据线和写数据线之间增加一个刷新放大器(每一列都加),就会完成对一行数据的刷新。
(1) 集中刷新:以 128 * 128 矩阵为例
首先主存储器的存储周期 为 0.5us。
上图中的集中式刷新:每隔 2ms 对 128 行进行全部刷新,存取周期为 0.5us,所以刷新每行也需要 0.5us,2ms 内,刷新需要 64us。在这段死区内,CPU 无法对动态 RAM 进行读写操作。
(2)分散刷新:以 128 * 128 矩阵为例
上图的分散式刷新:延长存取周期为正常存取周期的两倍(0.5us * 2 = 1us)。每 1us 对其中的一行进行刷新,128us 刷新全部的 128 行。虽然没有死区,但是刷新过于频繁,并且延长了 CPU 的读写周期。
(3)分散集中相结合:以 128 * 128 矩阵为例
这种方式存取周期为 0.5us,在集中式刷新中,每隔 2ms 对 128 行进行全部刷新,2ums= 2000us,即如果平均分到每行,则每 15.6um 刷新一行。若将刷新安排在指令译码阶段,就不会出现死区。
(三)静态 RAM 和动态 RAM 比较
DRAM 用于做主存,SRAM 用于主存和 CPU 之间的缓存。这样就可以降低成本同时加快访问速度。
只读存储器 ROM
(一)只读存储器发展历史
早期的只读存储器,在厂家就写好了内容,无法修改。
改进 1:用户可以自己写,一次性修改。
改进 2:可以多次写,能对信息进行擦除。
改进 3:电可擦写,特定设备。
改进 4:电可擦写,直接连接到计算机上。
(二)只读存储器(ROM 类型)
1、掩模 ROM ( MROM )
行列选择线交叉处有 MOS 管为“1”
行列选择线交叉处无 MOS 管为“0”
熔丝断为 “0”
熔丝未断为 “1”
3、EPROM (多次性编程 )
G:栅极 S:源 D:漏
使用紫外线进行擦洗
D 端加正电压形成浮动栅,S 与 D 不导通为 “0”。
D 端不加正电压不形成浮动栅,S 与 D 导通为 “1”。
4、EEPROM (多次性编程 )
使用电擦写,可局部擦写,也可全部擦写。
5、Flash Memory (闪速型存储器)
第三种 EPROM 价格便宜,集成度高。
第四种 EEPROM,电可擦洗重写。
Flash Memory 比 EEPROM 快,具备 RAM 功能。
存储器容量的扩展
1、位扩展(增加存储字长)
上图为用两个 1k _ 4 位存储芯片组成一个 1K _ 8 位的存储芯片。在读取数据的时候,通过 cs 片选线同时选中两个芯片,将每个芯片中的四位组成 8 位传送到数据线上。
图中是将连个 1k _ 8 的存储芯片组成一个 2k _ 8 的存储芯片。共需要 11 根地址线 ,8 根数据线,其中 10 根地址线选中具体的一个地址,第十根地址线用作片选线,当第十根为 0 时候,使用芯片 1,当第十根为 1 时候,使用芯片 2。
3、字和位同时扩展
用 8 片 1K _ 4 位的芯片组成 4K _ 8 位的芯片。其中有 12 根地址线,8 根数据线,其中两根地址线作为片选线,一个片选地址选中两片芯片。