Skip to content
Notes
GitHub

第 6 章 存储器

一. 概述

为了使容量、速度与成本适当折中,现代计算机系统都是采用多级存储体系结构:主存储器(内存储器)、辅助(外)存储器以及网络存储器

public/wj8086/06/wj0601.png

1. 总体分类

1.1. 内存

  • 主内存
  • 高速缓冲存储器 Cache

1.2. 外存

  • 联机外存
  • 脱机外存

2. 存储器系统

两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或软硬件相结合的方法连接起来。

使整个系统的存储速度接近最快的存储器容量接近最大的存储器价格接近最便宜的存储器

2.1. Cache 存储系统

  • 高速缓冲存储器(Cache)和主内存构成,由硬件系统负责管理
  • 对程序员透明:对原本存在的事物,从某个角度看上去不存在。
  • 提高 CPU 访问内存的存储速度

2.2. 虚拟存储系统

  • 主内存部分硬磁盘构成,主要由操作系统管理。
  • 解决主存容量不足的问题,使得编写程序时不用考虑主存大小:部分硬磁盘的空间可以作为主存使用。
  • 扩大存储容量

二. 半导体存储器的分类

1. 定义

  • 能够表示二进制数 0 和 1 的具有记忆功能的半导体器件组成
  • 能存放一位二进制数的半导体器件称为一个存储元
  • 每个存储单元需要 8 个存储元构成

分类树

  • 半导体存储器
    • 读写存储器 RAM
      • 双极型
      • MOS
        • 静态
        • 动态
    • 只读存储器 ROM
      • 掩模 ROM
      • 可编程 ROM(PROM)
      • 可擦去的 ROM(EPROM)

2. 读写存储器 RAM(随机存取存储器)

主要用来存放各种现场的输入输出数据,中间计算结果,与外村交换的信息和堆栈作用。

2.1. 双极型 RAM 特点

  • 存取速度高
  • 以晶体管的触发器(F-F——Flip-Flop)作为基本存储电路,故管子较多。
  • 集成度较低(与 MOS 相比)。
  • 功耗大
  • 成本高

双极型 RAM 主要用在对速度要求较高的微型机中或作为 Cache

2.2. MOS RAM

2.2.1. 静态 RAM(SRAM)
  • 6 管构成的触发器作为基本存储电路。
  • 集成度高于双极型,但低于动态 RAM。
  • 不需要刷新,故可省去刷新电路。
  • 功耗比双极型的低,但比动态 RAM 高。
  • 易于用电池作为后备电源。
  • 存取速度较动态 RAM 快。
2.2.2. 动态 RAM(DRAM)
  • 基本存储电路用单管线路组成(靠电容存储电荷)。
  • 集成度高。
  • 比静态 RAM 的功耗更低。
  • 价格比静态便宜。
  • 动态存储器靠电容来存储信息,由于存在着泄漏电流,故需要定时刷新。典型的是要求每隔 1ms 刷新一遍。

3. 只读存储器 ROM

用来存放固定的程序,如微型机的管理、监控程序,汇编程序,存放各种常数、函数表等。

  • ROM 电路比 RAM 简单,集成度更高成本更低
  • ROM 在电源去掉之后不会丢失信息,因此计算机经常将一些管理和监控程序、操作系统的基本输入输出程序(BIOS)以及各种典型的程序放在 ROM 中。

3.1. 掩模 ROM

  • 按照固定线路制造,出厂时已经制作好数据,只能读不能改变;
  • 适用于批量生产的产品,成本较低,不适用于研究工作。

3.2. 可编程序的只读存储器 PROM(Programmable ROM)

  • 用户可对 PROM 进行编程;
  • PROM 只能写入一次

3.3. 可擦去的可编程只读存储器 EPROM(Erasable PROM)

  • EPROM 能够根据需求写入信息,能够将写入的信息擦掉,内容可以改写多次
  • EPROM 的写入速度较慢并需要一些额外条件,使用时仍作为只读存储器使用
半导体存储器的主要技术指标
  • 存储容量 = 存储单元数 × 每单元的二进制数
  • 存取时间 = 实现一次读/写所需要的时间
  • 存取周期 = 连续启动两次独立的存储器操作所需间隔的最小时间
  • 可靠性、功耗

三. 读写存储器 RAM

1. 基本存储电路

组成存储器的基础和核心,分为 SRAM 和 DRAM

1.1. 六管 SRAM

静态存储电路是由两个增强型的 NMOS 反相器交叉耦合而成的触发器。

将触发器作为存储电路需要控制能否被选中,形成下图所示的 6 管的基本存储电路。

public/wj8086/06/wj0602.png

  • T1,T2\displaystyle{ T _{ 1 } , T _{ 2 } } 为控制管
  • T3,T4\displaystyle{ T _{ 3 } , T _{ 4 } } 为负载管
  • X\displaystyle{ X } 的译码输出线为高电平,T5,T6\displaystyle{ T _{ 5 } , T _{ 6 } } 导通,A,B\displaystyle{ A , B } 端与位线 D0,D0D_0,\overline{D_0} 相连
  • Y\displaystyle{ Y } 的译码输出线为高电平,T7,T8\displaystyle{ T _{ 7 } , T _{ 8 } } 导通,D0,D0D_0,\overline{D_0} 与输入输出电路 I/O,I/OI/O,\overline{I/O} 相通
  • 只要电源不掉电,就能保持信号
Example
  • A=1,B=0\displaystyle{ A = 1 , B = 0 }
    • T2\displaystyle{ T _{ 2 } } 导通,T1\displaystyle{ T _{ 1 } } 截止,相当于把输入电荷存储于 T1,T2\displaystyle{ T _{ 1 } , T _{ 2 } } 管的栅极
    • XY\displaystyle{ X Y } 地址线为高电平时,A\displaystyle{ A }I/O\displaystyle{ I {/} O } 相通,B\displaystyle{ B }I/O\overline{I/O} 相通
  • 读出时将 I/O\displaystyle{ I {/} O }I/O\overline{I/O} 线连接到一个差动放大器,由其电流方向判定存储单元的信息是“1”还是“0”
  • 也可以只有一个输出端接到外部,以其有无电流通过而判定所存储的信息

1.2. 单管存储电路

public/wj8086/06/wj0603.png

1.2.1. 写入
  • 字选线为高电平,T1\displaystyle{ T _{ 1 } } 管导通,信号由数据线存入电容 C
1.2.2. 读出
  • 字选线为高电平,T1\displaystyle{ T _{ 1 } } 管导通,存储在电容 C 上的电荷通过 T1\displaystyle{ T _{ 1 } } 输出到数据线
  • 每次读出数据后,存储内容会被破坏(电容放电),如需保存原信息必须采取恢复措施
  • 电容会漏电,需要定期刷新

1+. 存储单元的编址

地址线

以 8086 为例,由于单片 8086 的性能有限,在实际工作时是需要其他的部件进行配合的。

public/wj8086/06/wj0604.png

  • 以 8086 的 20 位地址信号通过地址锁存器地址总线连接。
  • 20 位地址信号用来确定某一个要访问的内存单元的地址。

public/wj8086/06/wj0605.png

IO/MIO/\overline{M} 为低电平,进行存储器访问

译码电路

  • 将输入的一组高位地址信号通过变换,产生一个有效的输出信号(片选信号 CS\overline{CS}),用于选中某一个存储器芯片,从而确定了该存储器芯片在内存中的地址范围。

public/wj8086/06/wj0606.png

编址

任何一个存储单元在存储空间中都有唯一的地址,即如果假设对应的存储单元在某一芯片上,这个存储单元一定要有一个完整存储空间的地址。

高位地址-低-位-地-址-
片选地址-片-内-地-址-
片选:地址存储单元片选:地址存储单元片选:地址存储单元
00:00XX01:00XX10:00XX
00:01XX01:01XX10:01XX
00:10XX01:10XX10:10XX
00:11XX01:11XX10:11XX

2. RAM 的结构

  • 一个基本存储电路表示一个二进制位,因而存储器是由大量的存储电路组成的。存储电路有规则地组合起来就是存储体;
  • 为了区别不同的存储单元,需要对存储单元进行编号,即地址
  • 电路通过地址寄存器地址译码器以及驱动电路选择对应单元,通过放大器将信息放大读出信息。总之,存储器中除了存储体外还需要相应的外围电路。
  • 较大容量的存取器中,往往将各个字的同一位组织在一个片中

2.1. 典型 RAM 示意

public/wj8086/06/wj0607.png

  • 1024 个字的同一位按照矩阵形式排列,32 × 32 = 1024
  • XY\displaystyle{ X Y } 地址译码器确定存储单元和所在行和列,最终找到存储单元

2.2. 存储器外围电路

  • 地址译码器
    • 存储器对 CPU 发出的地址信号进行译码用以选择需要访问的存储单元
  • I/O 电路
    • 位于数据总线和被选用的存储单元之间,用以控制被选中单元的读写,并具有放大信息的作用
  • 片选控制端(CS, Chip Select)
    • 由于单片芯片的存储容量优先,所以一个存储体由多个芯片组成。因此,在地址选择时需要先进行选片,用地址译码器输出和一些控制信号形成片选信号。只有 CS 有效选中某一片时,此片所连的地址线才有效,进而可以对选中芯片上的存储单元进行读写操作
  • 集电极开路或三态缓冲器
    • 通过集电极开路可以实现多片 RAM 数据线的并联使用,扩展存储器指数。通过三态输出缓冲器实现存储体与双向数据总线的连接

2.3. 地址译码的方式

2.3.1. 单译码结构
  • 单译码结构适用于小容量存储器,存储器==线性==排列,以字选择线来选择某个字的所有位,特点是地址译码器输出线较多;
  • 当地址译码器有 n\displaystyle{ n } 根输入线时,其对应的输出线为 2n\displaystyle{ 2 ^{ n } } 根。
  • 图中,地址信号 0100 选择第 5 条字线的所有位

public/wj8086/06/wj0608.png

2.3.2. 双译码结构
  • 存储器以矩阵的形式排列,将地址线分为两部分,对应的译码器也是两部分,即行译码器和列译码器
  • 行译码器输出行地址选择信号,列译码器输出列地址选择信号,行列选择选择线交叉处即为选中的内存单元;
  • 一共可以表示X×YX\times Y个存储单元

public/wj8086/06/wj0609.png

例题

若需要 1024 个输出状态,在双译码结构的条件下,X\displaystyle{ X }Y\displaystyle{ Y } 地址译码器的输入端数目一致,那么单个译码器的输入端有多少?这种情况下两个译码器需要多少选择线?

  • n=10\displaystyle{ n = 10 },双译码的输出状态为 210=1024\displaystyle{ 2 ^{ 10 } = 1024 } 个,那么单个译码器的输入端需要 5 个。
  • 两个译码器的选择线=单个译码器的选择线×2=25×2=64\times 2=2^5\times 2=64

单个译码器支持 1024 个输出状态需要 1024 根选择线

双译码结构译码输出线较少,适用于较大的存储器系统。

public/wj8086/06/wj0610.png

  • 10 根地址线
    • A0A4A_0\sim A_4 输出至 X\displaystyle{ X } 译码器输出 32\displaystyle{ 32 } 条选择线,分别选择 1321\sim 32
    • A5A9A_5\sim A_9 输出至 Y\displaystyle{ Y } 译码器输出 32\displaystyle{ 32 } 条选择线,分别选择 1321\sim 32
  • 输入地址 00100 00010
    • X\displaystyle{ X } 方向选中 00100,对应第 5 行
    • Y\displaystyle{ Y } 方向选中 00010,对应第 3 列

2.4. 静态 RAM 实例 Intel 2114

public/wj8086/06/wj0612.png

  • A0A9A_0\sim A_9 地址线
  • CS\overline{CS} 片选信号
  • WE\overline{WE} 写允许
  • I/O1I/O4I/O_1\sim I/O_4 数据输入输出

public/wj8086/06/wj0611.png

1K × 4 位芯片,需要 1024 个地址(10 根地址线),每个地址对应 4 位数据。设计为 64 × 16 的结构。

  • A3A8A_3\sim A_8 行译码
  • A0,A1,A2,A9\displaystyle{ A _{ 0 } , A _{ 1 } , A _{ 2 } , A _{ 9 } } 列译码
  • CS\overline{CS} 有效时,通过 WE\overline{WE} 进行写入/读出控制
    • WE\overline{WE} 低电平:输出三态门导通,信号由数据总线写入
    • WE\overline{WE} 高电平:输出三态门打开,从存储器读出信号送至数据总线

3. RAM 与 CPU 的连接

3.1. 连接

CPU 对存储器进行读写操作,首先要由地址总线给出地址信号,然后要发出读/写的控制信号,最后在数据总线上进行信息交流。所以,RAM 与 CPU 的连接,主要有以下三个部分:

  • 地址线的连接
  • 数据线的连接
  • 控制线的连接

3.2. 需考虑的问题

3.2.1. CPU 的负载能力
  • 小型系统中,CPU 直接与存储器相连
  • 大型系统中,需要考虑 CPU 是否能带动,需要时加上缓冲器,由缓冲器的输出再带来负载
3.2.2. CPU 的时序和存储器的存取速度之间的配合问题
  • CPU 在取指和存储器读或写操作时,是有固定时序的,因此对存储器的存取速度有要求。在存储器确定的情况下,需要考虑是否需要 Tw\displaystyle{ T _{ w } } 周期,以及如何实现。
3.2.3. 存储器的地址分配和选片问题
  • 内存通常分为 RAM 和 ROM,RAM 又分为:系统区用户区(数据区和程序区)→ 内存的地址分配
  • 单片存储器容量有限,需要多片共同组成一个存储器 → 产生片选信号进行选片
3.2.4. 控制信号的连接
  • CPU 发出的控制信号 IO/M,RD,WR,READYIO/\overline{M},\overline{RD},\overline{WR},READY 与存储器要求的控制信号相连。

3.3. 例子

用 Intel 2114 来构成一个 2KB RAM,需要 (2KB×8bit)÷(1KB×4bit)=4(2\,\mathrm{KB}\times 8\,\mathrm{bit})\div (1\,\mathrm{KB}\times 4\,\mathrm{bit})=4 片 2114 芯片,两片一组,每组为一个 1KB × 8 位的 RAM

  • 数据信号
    • 每片 RAM 的地址线 A0A9A_0\sim A_9 直接与 CPU 的地址总线 A0A9A_0\sim A_9 相连接,可寻址 1KB
    • A10A15A_{10}\sim A_{15} 经过译码后可以产生 64 条选择线以控制不同的组,系统共为 2KB,RAM 可以分为两组,通过片选信号进行区分
  • 控制信号
    • IO/MIO/\overline{M} 连接译码器控制译码器工作
    • WR\overline{WR} 连接 WE\overline{WE}

public/wj8086/06/wj0613.png

高位地址地位地址
A15A10A_{15}\sim A_{10}0000000000
A15A10A_{15}\sim A_{10}1111111111

3.4. 译码方式

3.4.1. 全地址译码

将全部的高位地址信号作为译码信号,使得存储器芯片的每一个单元都占据一个唯一的内存地址

  • 不浪费地址资源
  • 线路设计相对复杂

实例系统为 2KB,只需要两条选择线,比如使用地址最低的两条,即 000000 和 000001,两组存储器的地址分配为:

第一组A15A10A_{15}\sim A_{10}A9A0A_{9}\sim A_{0}
地址最低0000000000000000
地址最高0000001111111111

即为:0000~03FFH

第二组A15A10A_{15}\sim A_{10}A9A0A_{9}\sim A_{0}
地址最低0000010000000000
地址最高0000011111111111

即为:0400~07FFH

3.4.2. 部分地址译码

部分的高位地址信号作为译码信号,被选中的存储芯片占有几组不同的地址范围。

  • 减少了控制线的数量
  • 浪费了地址资源
例题

部分译码方式下对 Intel 2114 进行选片控制,如果采用 A15\displaystyle{ A _{ 15 } }A14\displaystyle{ A _{ 14 } } 控制选片,那么可以控制几片 Intel 2114 芯片,这种情况下被选中的芯片在内存中的重叠区域有多大?

  • 可以控制 22=4\displaystyle{ 2 ^{ 2 } = 4 }
  • 被选中芯片内存重叠区域为 2162=16KB2^{16-2}=16\,\mathrm{KB}
    • A15\displaystyle{ A _{ 15 } }A14\displaystyle{ A _{ 14 } } 用于片选,其他线进行地址分配
3.4.3. 线选方式
  • 将 CPU 的地址线直接与芯片的 CS\overline{CS} 相连
  • 结构简单,不需要译码电路

三. 只读存储器

1. 掩模 ROM

由二极管,双极型晶体管或 MOS 电路构成,这类 ROM 工作原理是类似的。掩模 ROM 在制造时就已经将数据从电路上写好,无法修改。

1.1. 字译码结构

采用字译码方式,字地址译码器,输出选择线,每一条选中一个字,位线输出即为这个字的各位。

public/wj8086/06/wj0614.png

地址信号 00 选中第一条字线,输出高电平。与位线 1、位线 4 相连的 MOS 管到店,位线输出为 0;位线 2 与位线 3 无 MOS 管相连,输出为 1。实际输出到总线上是 1 还是 0,取决于输出线上是否有反相

1.2. 复合译码结构

地址信号线分为两组,分别进行 X\displaystyle{ X }Y\displaystyle{ Y } 译码,选中对应单元。

public/wj8086/06/wj0615.png

2. EPROM

public/wj8086/06/wj0616.png

2.1. 基本存储电路

  • D、S 之间绝缘物 SiO2\mathrm{SiO_2} 包裹多晶硅栅极,初始状态硅栅上没有电荷,D、S 之间不导电。
  • EPROM 管用于存储矩阵时的基本电路。
  • 写入时在 D、S 两极之间加上 25V 的高压,D、S 之间被击穿,电子注入硅栅。去除高压后,硅栅上电子无法漏走,形成导电沟道使 EPROM 导通输出为“0”(或“1”)

2.2. 功能

  • EPROM 存储电路做出的芯片上方有一个石英玻璃的窗口,用紫外线通过窗口照射时,所有电路中的浮空晶栅上的电荷会将光电流泄漏走,电路恢复起始状态将写入的信号擦去
  • 照射之后的 EPROM 可以实现重写。由于写入过程很慢,因此 EPROM 一般作为只读存储器使用

2.3. 实例 Intel 2716 (2K × 8 bit)

public/wj8086/06/wj0617.png

  • A0A10A_0\sim A_{10} : 共 11 条地址线
  • O0O7O_0\sim O_7 : 共 8 位数据输出,8 位输出均有缓冲器
  • XY\displaystyle{ X Y } 译码 : 7 条地址线用于 X\displaystyle{ X } 译码,用以选择 128 行中的一行,4 条地址线用作 Y\displaystyle{ Y } 译码
  • CE\overline{CE} : 片选
  • OE\overline{OE} : 输出允许
Intel 2716 的编程写入
  • 2716 在出厂时或在擦除后,所有单位的内容全为“1”,要使某一位为“0”必须通过编程;
  • 编程需要逐单元的进行;编程时 VPP\displaystyle{ V _{ P P } } 接至 +25V,OE\overline{OE} 接高电平,写入数据接至 2716 的数据输出线;
  • 地址和数据稳定之后在 CE\overline{CE} 输入端加上一个 50ms 的正脉冲,在正脉冲的作用下,可以使内部的管子瞬时击穿,浮空栅截获足够数量的电子。脉冲过后管子恢复,相当于给浮空栅加上负电源,管子导通,存储内容变为“0”。
  • 使用时需要避免阳光照射以免电荷泄漏,芯片的照射窗口需要贴上黑色保护层。

2.4. 高集成度 EPROM (Intel 27128)

  • Intel 27128 的最大访问时间为 250ns;
  • Intel 27128 是一个128K(16K × 8 位)的 EPROM,需要 14 条地址输入线,经过译码后选中一个单元,此单元的8位同时输出,有8条数据线。
  • 输出、编程和各种工作方式由三条控制线:选片信号 CE\overline{CE}输出允许信号 OE\overline{OE}编程控制信号 PGM\overline{PGM}

public/wj8086/06/wj0618.png

Intel 27128 的 8 种工作方式,VPP=21V\displaystyle{ V _{ P P } = 21 \text{V} }VCC=5V\displaystyle{ V _{ C C } = 5 \text{V} }

方式/引脚CE\overline{CE}OE\overline{OE}PGM\overline{PGM}AG\displaystyle{ A G }VPP\displaystyle{ V _{ P P } }VCC\displaystyle{ V _{ C C } }输出端
×VCC\displaystyle{ V _{ C C } }VCC\displaystyle{ V _{ C C } }数据输出
输出禁止×VCC\displaystyle{ V _{ C C } }VCC\displaystyle{ V _{ C C } }高阻
备用×××VCC\displaystyle{ V _{ C C } }VCC\displaystyle{ V _{ C C } }高阻
编程×VPP\displaystyle{ V _{ P P } }VCC\displaystyle{ V _{ C C } }数据输入
校验×VPP\displaystyle{ V _{ P P } }VCC\displaystyle{ V _{ C C } }数据输出
编程禁止×××VPP\displaystyle{ V _{ P P } }VCC\displaystyle{ V _{ C C } }高阻
Intel 标识符VCC\displaystyle{ V _{ C C } }VCC\displaystyle{ V _{ C C } }编码
Intel 编程方法×VPP\displaystyle{ V _{ P P } }VCC\displaystyle{ V _{ C C } }数据输入

2.5 例题

在 8086 系统中,用 32K × 8 位的 EPROM 272562K × 8 位的静态 RAM 6116,构成一个 32KB 的ROM(末端地址 FFFFFH)和 8KB 的 RAM(从 00000H 开始),设 CPU 工作于最小模式。写出 ROM和 RAM 的地址范围。

  • 芯片数量:EPROM 27256 1 片,RAM 6116 4片
  • 片内地址定义
    • EPROM 片内地址: A14A0A_{14}\sim A_0
    • RAM 片内地址:A10A0A_{10}\sim A_0
  • 译码地址定义
    • EPROM 片选地址:A19A15A_{19}\sim A_{15}=1111 # EPROM CS
    • RAM 片选地址:
      • A19A11A_{19}\sim A_{11}=0000 0000 0 # CS0
      • A19A11A_{19}\sim A_{11}=0000 0000 1 # CS1
      • A19A11A_{19}\sim A_{11}=0000 0001 0 # CS2
      • A19A11A_{19}\sim A_{11}=0000 0001 1 # CS3

四. 提高存储器性能的技术

1. Cache

1.1. 映像方式

1.1.1. 全相联映像
  • 主存与缓存分成相同大小的数据块,主存的任意一块可以映象到 Cache 中的任意一块
  • 全相联映像模式下,命中率较高,Cache 存储空间利用率高,但是,速度低、成本高。

public/wj8086/06/wj0619.png

1.1.2. 直接相联映像
  • 主存与缓存分成相同大小的数据块,主存容量应是缓存容量的整数倍
  • 将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等,主存储器中某区的一块存入缓存时只能映象到 Cache 的一个特定块中。
  • 简言之,Cache 块号 = 主存块号 % Cache 块数
  • 直接相联映像方式简单,数据访问时只需要检查区号即可,因此可以获得较快的访问速度,硬件设施简单。但替换操作频繁,命中率比较低
1.1.3. 组相联映像
  • 主存和 Cache 分成相同大小的数据块,主存容量应是缓存容量的整数倍,主存按照 Cache 的大小分成区;
  • 主存的数据调入缓存时,主存与缓存的组号应相等,组内各块地址之间可以任意存放,即从主存的组到 Cache 的组之间采用直接映象方式;两个对应的组内部采用全相联映象方式。
  • 简言之,Cache 组号 = 主存块号 % Cache 组数,每组内有一些小块。
  • 组相联映像中块的冲突概率比较低,块的利用率大幅提高。

public/wj8086/06/wj0620.png

1.2. 读写过程

CPU 访问主存时首先访问 Cache,在 Cache 中查找所需数据

1.2.1. 读过程

查找和读出可以同时进行,如果找到数据则读出信息正确,如果没有找到读出信息作废则访问主存将对应主存块调入 Cache,再进行读操作

1.2.2. 写过程

查找和读出不能同时进行,只有找到之后才能进行写操作

  • 写回法:执行写操作时只写入 Cache,并作标志,替换时才写入主存,这种方式复杂不能保证主存和 Cache 内容一致性,但是速度快;
  • 直写法:写入Cache的同时也写入主存,这种方法简单,但是速度慢。

1.3. 替换策略

  • 随机法:随机替换存储块;
  • 先进先出法:最先调入并被多次命中的块,优先替换;
  • 最近最少使用法:最近最少使用的块被替换。

2. 虚拟存储器

由主存和硬盘的一部分构成,在系统软件和辅助硬件的管理下可以当主存使用。虚拟存储器作为一种主存-辅存层次的存储系统,解决了主存容量不足的问题,使得用户可以在一个很大的存储空间编程,不必考虑主存的实际大小。

3. 并行存储器

  • 双端口存储器:具有两个彼此独立的读写口,每个读写口都有一套自己的地址寄存器和译码电路,可以并行独立工作;
  • 多体并行存储器:由多个独立的,容量相同的存储模块构成,每个模块各自以等同的方式与CPU传递信息,既能并行工作,又能交叉工作。

五. 微机主存空间的分配

主存是微处理器能直接存取指令和数据的部分,能否合理地利用主存,很大程度上将影响到整个计算机的性能:

  • 系统 RAM 区:DOS 系统的核心程序、设备驱动程序
  • 显示 RAM 区:系统显示缓存,存放屏幕上显示的信息
  • 扩展 ROM 区:安排各种 I/O 接口电路卡上的 ROM,为相应外设提供底层驱动程序
  • 系统 ROM 区:安排系统提供的 ROM-BIOS 程序,负责系统上电检测、磁盘 DOS 的引导等初始化操作

public/wj8086/06/wj0621.png