1.19k likes | 1.41k Views
第 四 章 存 储 器 系 统. 4.1 存储器概述 4.2 存储器子系统组成和接口 4.3 I/O 子系统组成和接口 4.4 辅助存储器 4.5 相对简单计算机 4.6 实例:一台基于 8085 的计算机. 同济大学 软件学院. 4.1 存储器概述. ◆ 存储器 计算机的存储部件,用于存放程序和数据。 ◆ 计算机发展的 重要问题 之一,就是如何设计容量 大、速度快、价格低的存储器。 ◆ 本章讨论 : 存储器的基本结构与读写原理. 4.1.1 存储器的种类. 1. 按存储介质分类
E N D
第 四 章 存 储 器 系 统 4.1 存储器概述 4.2 存储器子系统组成和接口 4.3 I/O子系统组成和接口 4.4 辅助存储器 4.5 相对简单计算机 4.6 实例:一台基于8085的计算机 同济大学 软件学院
4.1 存储器概述 ◆ 存储器 计算机的存储部件,用于存放程序和数据。 ◆ 计算机发展的重要问题之一,就是如何设计容量 大、速度快、价格低的存储器。 ◆ 本章讨论:存储器的基本结构与读写原理
4.1.1 存储器的种类 • 1. 按存储介质分类 • 存储介质特点:①两种稳定状态;②方便检测; • ③容易相互转换。 • (1) 半导体存储器:速度快,用作内存。 ◆ 记忆原理:触发器、电容(静态、动态) ◆ 双极型晶体管(ECL、TTL、I2L) ◆ 场效应管型MOS (PMOS、NMOS、CMOS) • (2) 磁表面存储器:容量大,用作外存。 • (3) 光存储器:可靠性高,保存时间长。
2. 按存储方式分类 • 存储方式:访问存储单元的方法。 • 两个名词术语: • ◆ 存储位元:记录(存储)一位二进制信息的存储 介质区域或存储元器件。 ◆ 存储单元:存储一个机器字或一个字节,且具有 唯一地址的存储场所。 • (1) 随机访问存储器RAM • 存储器的任意单元都可随机访问。 ◆ 访问时间与存储单元的位置无关
(2) 只读存储器ROM • 正常工作时只读,能随机读出,不能随机写入。 ◆MROM:只读 ◆PROM:一次写 ◆ 可多次改写ROM:EPROM、E2PROM • (3) 顺序存取存储器 • ◆ 信息以文件形式组织,一个文件包含若干个块, 一个块包含若干字节; ◆ 存储时以数据块为单位存储,数据的存储时间 与数据物理位置关系极大; ◆ 速度慢,容量大,成本低; ◆ 磁带、电荷耦合器件CCD、VCD
扇间空隙 盘片 扇区 磁道 (4) 直接存取存储器信息的组织同顺序存取存储器。对信息 的存储分两步:先随机查找数据区域,找到 后再顺序存储。 例:磁盘
3. 按存储器信息的可保存性分 (1)断电后是否丢失数据 ◆ 易失性存储器 特点:断电后,信息就丢失。如SRAM ◆ 非易失性存储器(永久性存储器) 特点:断电后,信息不丢失。如磁盘 (2) 读出后是否保持数据◆ 破坏性存储器 特点:读出时,原存信息被破坏,需重写。 如:DRAM◆ 非破坏性存储器 特点:读出时,原存信息不被破坏。如:SRAM
4. 按在计算机系统中的作用分类 • (1) 高速缓冲存储器:位于主存和CPU之间 • (2) 主存储器 • (3) 辅助存储器:不能由CPU的指令直接访问, • 必须通过专门的程序或专门的通道把所需 • 的信息与主存进行成批交换,调入主存后 • 才能使用。
MDR MAR 4.1.2 主存储器的基本操作 1.主存与CPU之间的连接 数据总线 读 主 存 CPU 写 地址总线
3. 主存的基本操作 MAR:地址寄存器 MDR:数据寄存器 读操作(取操作) 写操作(存操作) AB AB 地址(MAR) 地址(MAR) MEM MEM CPU CPU 读命令(Read) CB 写命令(Write) CB MEM MEM DB 存储单元内容(M) 存储单元M DB MEM MEM MDR MDR
◆ 从系统的角度看计算机怎样执行这些操作 图4.2 存储器读写数据的操作时序
4.1.3 存储器的主要技术指标 (1) 存储容量:存储器所能存储的二进制信息总量。 (2) 速度: 主存的一项重要技术指标。 ◆ 存取时间:又称访问时间,是指从启动一次存储 器操作到完成该操作所经历的时间。 ◆ 存储周期: 指连续启动两次独立的存储体操作所 需的最小时间间隔。它包括存储器的存取时间和 自身恢复时间。
(3) 带宽(存储器数据传输率、频宽):存储器单位时间 所存取的二进制信息的位数。 带宽=存储器总线宽度/存取周期 (4) 价格(每位价格) 除上述指标外,影响存储器性能的还有功耗、 可靠性等因素。
4.2 存储器子系统组成和接口 4.2.1 半导体存储器的种类 ◆ 主存储器主要由半导体存储器实现 ◆ 半导体存储器(按存储方式分) (1)随机存取存储器 (Random Access Memory,RAM) (2)只读存储器 (Read-Only Memory,ROM) 它们各自有许多不同的类型。
4.2.1.1 ROM芯片 1. 按可编程方式和频度的不同,ROM芯片有几种不同 的类型: (1) 掩膜式ROM(或简单地称为ROM) 在芯片制作时就将数据编程进去了。一 旦安装完毕,数据就不再更改。
(2) PROM(可编程ROM)可由用户使用标准的PROM编程器编程。 具有保险丝一样的内部连接,只能编程一次。 存储位元的基本结构有两种: 全“1”熔断丝型、全“0”肖特基二极管型
(3) EPROM是可擦除PROM能编程,内容可以擦除,即可以重复编程。 编程类似电容器充电,紫外线照射可重置其内 容。 叠栅注入MOS管(Stacked-gate Injection MOS,SIMOS)
(4) EEPROM,或E2PROM,电可擦除PROM和EPROM相似,但用电擦除和重编程,不用 紫外线。可修改个别单元,重编程只要几秒钟。 (5) flash E2PROMIntel公司 80年代后期 一种高密度、非易失性的可读/写存储器 可用电擦除数据块,而不是单个的存储单 元。兼备了EEPROM和RAM的优点。
读 写 电 路 地 址 线 存 储 体 译 码 驱 动 数 据 线 …… …… 读/写控制线 2. 不管哪一种ROM,它们的外部配置几乎一样。 把存储体及其外围电路(包括地址译码与驱动电路、读写放大电路及时序控制电路等))集成在一块硅片上,称为存储器芯片。 片选线 (使能端) 存储器芯片的基本结构
ROM芯片:2n ×m位 则它有:n个地址输入An-1~A0 m个数据输出Dm-1~D0 芯片使能输入端(CE) 输出允许端(OE) 除掩膜式ROM,其它所有的ROM都有一个编程 控制输入端(VPP),用来控制向芯片输入数据。
4.2.1.2 RAM芯片 1. 按保持数据方式的不同,RAM芯片分为: (1) 动态RAM(DRAM)利用MOS晶体管极电容(或MOS电容)上充 积的电荷来存储信息的。 通常定义:电容充电至高电平,为1; 电容放电至低电平,为0。 由于有漏电阻存在,电容上的电荷不可 能长久保存,需要周期地对电容进行充电, 以补允泄漏的电荷,这就叫刷新。
单管MOS动态存储位元电路定义:C上有电荷 —“1” C无电荷 —“0” 保持:字线w低,T截止, 切断了C的通路,C 上电荷状态保持不 变。当然由于漏电 存在,需刷新。 W T C C0 D
写入操作 写入“1”,位线D上加高电位,对电容C充电。 写入“0”,位线D上加低电位,电容C通过T放电。 读操作 当T导通以后,若原存信息为“1”,电容C上的电荷通过T输出到位线上,在位线上检测到电流,表示所存信息为“1”。 若原存信息为“0,电容C上几乎无电荷,在位线上检测不到电流,表示所存信息为“0”。
(2) 静态RAM(SRAM)利用触发器来存储信息 。一旦写入数据, 内容一直保持有效,不需要刷新。 一种六管静态存贮元件电路,它由两个反相器彼此交叉反馈构成一个双稳态触发器。 定义:T1通导,T2截止,为“1”状态;T2通导, T1截止,为 “0 ”状态。
保持 字驱动线W处于低电位时,T5、T6截止,切断了两根位线与触发器之间的联系。 写入操作 写入“1”:位线D上加低电位,位线D上加高电位,即B点为高电位,A点为低电位,导致T1导通,T2截止,保存了信息“1”。 写入“0”:位线D上加高电位,位线D上加低电位,即B点为低电位,A点为高电位,导致T2导通,T1截止,保存了信息“0”。
读操作 若原存信息为“1”,即T1导通,T2截止。这时B点为高电位,A点为低电位,分别传给两根位线,使得位线D为低电位,位线D为高电位,表示读出的信息为“1”。 若原存信息为“0”,即T2导通,T1截止。这时A点为高电位,B点为低电位,分别传给两根位线,使得位线D为高电位,位线D为低电位,表示读出的信息为“0”。
2. 动态RAM与静态RAM的比较 集成度、功耗、容量、速度、价格 3. 两种RAM外部配置相同2n×m的芯片都有:n个地址输入m个双向数据引脚 (正常操作条件下数据引脚也可输入数据) 芯片使能端(CE或者CE’) 读使能端(RD或RD’) 写使能端(WR或WR’) 或一个组合的信号,如R/W’
4.2.2 内部芯片组成 ROM、RAM芯片内部组成相似。 1. 线性组成(linear organization) 随着单元数量的增加,线性组成中地址译码 器的规模变得相当的大。此时可使用多维译码。图4.4 8×2的ROM芯片的内部线性组成 ◆ 三位地址被译码,以选择8个单元中的1个, 但CE要有效。如果CE=0,译码器无效,则不选 择任何单元。译码选中单元的三态缓冲器有效, 允许数据传送到输出缓冲器中。如果CE=1且OE=1,则输出缓冲器有效,数据从芯片中输出; 否则,输出是三态。
2. 二维组成(two-dimensional organization) 多维译码带来的节省很重要。 如:4096×1的芯片,其线性组成需要一个12~4096译码器,大小与输出的数量(4096)成正比。如 果排列成64×64的二维数组,则要两个6~64译 码器,大小正比于2×64。两个译码器一起大约 是那个大译码器大小的3%。图4.5 8×2的ROM芯片的内部二维组成
4.2.3 存储器子系统的组成 构造单个芯片的存储器只需从系统总线上连接地址、 数据和控制信号。大多数存储器系统需要组合多个芯片。 要组成一个主存储器,需要考虑的问题: ① 如何选择芯片 根据存取速度、存储容量、电源电压、功耗及成本等方面的要求进行芯片的选择。 ② 所需的芯片数量
例:用1K×4位芯片组成32K×8位的存储器,所需芯片为:例:用1K×4位芯片组成32K×8位的存储器,所需芯片为: ③ 如何把许多芯片连接起来。 通常存储器芯片在单元数和位数方面都与实际存储器要求有很大差距,所以需要在字方向和位方向两个方面进行扩展。
一、组合构造多位 连接芯片相应的地址和控制信号,数据引脚连 到数据总线的不同位。 例:2个8×2的芯片组合成一个8×4的存储器◆ 共同的三位地址输入,共同的CE、OE信号。 ◆ 第一个芯片数据引脚连到数据总线的第3位 和第2位, ◆ 第二个芯片数据引脚则连在第1位和第0位。
二、组合构造多字 两个8×2芯片组成一个16×2的存储子系统。 图4.7(a)使用高位交叉,各芯片高位地址相同, 同一芯片所有存储单元在系统内存中相邻。
图4.7(b)用的是低位交叉,各芯片低位地址相同。图4.7(b)用的是低位交叉,各芯片低位地址相同。 低位交叉能为流水线存储器访问提供速度上的优势,对能同时从多于一个存储器单元中读取数据的CPU来说,低位交叉也存在速度上的优势。
例:用16K×8位的RAM存储器芯片构成64K×8位的存储器。例:用16K×8位的RAM存储器芯片构成64K×8位的存储器。 需要4片16K×8位的芯片 64K×8位的存储器:16位地址线A15~A0 16K×8位的芯片的片内地址线:14根 用16位地址线中的低14位A13~A0进行片内寻址 高两位地址A15、A14用于选择芯片 设存储器从0000H开始连续编址,则四块芯片的地址分配: 第一片地址范围为:0000H~3FFFH 第二片地址范围为:4000H~7FFFH 第三片地址范围为:8000H~BFFFH 第四片地址范围为:C000H~FFFFH
芯片使能端地址 片内地址
CE0 CE1 CE2 CE3
三、字、位扩展 用2K×4位的存储芯片构成4K×8位存储器
4.2.4 多字节数据组成 用多个字节表示整型、浮点或字符串数值,必须存 储在多个单元中,CPU应定义数据在这些单元中的顺序。1. 两种多字节数据排列顺序 ◆ 高端优先(big endian)数值的最高字节存储在单元X中,次高字节存 储在单元X+1中,以此类推。 ◆ 低端优先(little endian) 最低字节存储在单元X中,次低字节存储在X+1中,以此类推。
2. 同一字节的不同位也有大、小endian结构 ◆ 大endian结构0位代表字节中最右边的位,最左边的位是位7。 ◆ 小endian结构最左边的位是位0,最右边的位是位7。 3. 对齐(信息存储的整数边界原则 ) 存储多字节值的起始单元刚好是某个多字节读取 模块的开始单元。 该多字节值的首字节地址必须是该信息宽度(字 节数)的整数倍。 对齐的CPU具有更好的性能。