一、存储器的层次、类型及特点

1. 存储器

{Cache速度快,容量小内存(主存)外存速度慢,容量大\begin{cases}Cache\qquad\qquad\qquad 速度快,容量小\\ 内存(主存)\\ 外存\qquad\qquad\qquad 速度慢,容量大 \end{cases}Cache
Cache是介于CPU和内存(主存)之间的高速缓冲存储器.
计算机中采用cache-主存主存-辅存两个存储层次,来解决容量、速度和价格之间的矛盾。

(1)内存:存放当前运行的程序和数据

  1. 特点:速度快、容量小、随机存取方式、CPU可直接访问内存。
  2. 通常由半导体存储器构成。
  3. RAM、ROM。
  4. 任何程序都必须加载到内存中才能被CPU执行。内存是计算机中的重要部件之一,它是外存与cpu进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。内存性能的强弱影响计算机整体发挥的水平。
  5. 采用虚拟存储器是为了扩大主存的存储空间

(2)外存(辅存):存放非当前运行的程序和数据

  1. 特点:速度慢、容量大、顺序存取/块存取、需调入内存后CPU才能访问(CPU不能直接访问)。
  2. 通常由磁、光存储器构成,也可以由半导体存储器构成。
  3. 磁盘、磁带、固态硬盘。

2. 分类

(1)RAM(Random Access Memory) 随机存取存储器

  1. 随机存储器即RAM是指:存储器中存取操作与存储单元物理位置的顺序无关。

  2. 三个特性:
    a. 可读可写非破坏性读出写入时覆盖原内容
    b. 随机存取,存取任意单元所需的时间相同。
    c. 易失性,当断电后,存储器中的内容立即消失。

  3. (静态)SRAM 特点:
    a. 只要不断电,就不会丢失信息(断电丢数据)。
    b. 相对于DRAM,存取速度快
    c. 由触发器构成,集成度较低、功耗大、造价成本高。
    d. 一般用作高速缓冲存储器

  4. (动态)DRAM 特点:
    a. 相对于SRAM,存取速度慢
    b. 由电容构成、集成度高、功耗小、造价成本低。
    c. 适合制作大规模和大容量的内存。
    d. 由于电容漏电,数据不能长久保存,需要专门的动态刷新电路,定期给电容补充电荷,即定时刷新

(2)ROM(Read-Only Memory)只读存储器

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

当EPROM擦除后,每个单元的内容为FFH

3. 静态与动态存储器

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

二、8086存储器的分体结构

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网
16位数据总线{高8位DB15∼DB8<−>奇地址存储器低8位DB7∼DB0<−>偶地址存储器16位数据总线 \begin{cases} 高8位\ DB_{15}\sim DB_8 <-> 奇地址存储器\\ 低8位\ DB_7\sim DB_0 <-> 偶地址存储器\\ \end{cases}16线{8 DB15DB8<>8 DB7DB0<>
{BHE‾=0时,CPU访问奇体BHE‾=1时,CPU访问偶体\begin{cases} \overline{BHE}=0时,CPU访问奇体\\ \overline{BHE}=1时,CPU访问偶体\\ \end{cases}{BHE=0CPU访BHE=1CPU访
{A0=1时,CPU访问奇体A0=0时,CPU访问偶体\begin{cases} A_0=1时,CPU访问奇体\\ A_0=0时,CPU访问偶体\\ \end{cases}{A0=1CPU访A0=0CPU访
(有效奇地址,无效偶地址)

BHE‾\overline{BHE}BHE A0A_0A0 操作 所用数据线
规则字 0 0 偶地址\pmb{偶地址}偶地址单元开始读/写一个字\pmb字,需要1个总线周期 D15∼D0D_{15}\sim D_0D15D0
字节 1 0 偶地址\pmb{偶地址}偶地址单元读/写一个字节\pmb{字节}字节 D7∼D0D_7\sim D_0D7D0
0 1 奇地址\pmb{奇地址}奇地址单元读/写一个字节\pmb{字节}字节 D15∼D8D_{15}\sim D_8D15D8
非规则字 1 0 奇地址\pmb{奇地址}奇地址读/写一个字\pmb字,需要2个总线周期,第一个总线周期高八位数据有效,第二个总线周期低八位数据有效 D15∼D8D_{15}\sim D_8D15D8 D7∼D0D_7\sim D_0D7D0
0 1 奇地址\pmb{奇地址}奇地址读/写一个字\pmb字,需要2个总线周期,第一个总线周期高八位数据有效,第二个总线周期低八位数据有效 D15∼D8D_{15}\sim D_8D15D8 D7∼D0D_7\sim D_0D7D0
1 1 无效

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网
MOVAL,[2000H];AL=12H{BHE‾=1,A0=0MOV AL,[2000H];AL=12H\begin{cases} \overline{BHE}=1,A_0=0 \end{cases}MOVAL,[2000H];AL=12H{BHE=1,A0=0
MOVAX,[2000H];AX=3412H{BHE‾=0,A0=0MOV AX,[2000H];AX=3412H\begin{cases} \overline{BHE}=0,A_0=0 \end{cases}MOVAX,[2000H];AX=3412H{BHE=0,A0=0
MOVAH,[2001H];AH=34H{BHE‾=0,A0=1MOV AH,[2001H];AH=34H \begin{cases} \overline{BHE}=0,A_0=1 \end{cases}MOVAH,[2001H];AH=34H{BHE=0,A0=1
MOVBX,[2001H];BX=5634H{第一个总线周期:BHE‾=0,A0=1第二个总线周期:BHE‾=1,A0=0MOV BX,[2001H];BX=5634H \begin{cases} 第一个总线周期:\overline{BHE}=0,A_0=1\\ 第二个总线周期:\overline{BHE}=1,A_0=0\\ \end{cases}MOVBX,[2001H];BX=5634H{线BHE=0,A0=1线BHE=1,A0=0
(以上都是存储器读总线操作,MOV [BX],AX ;这是存储器写总线操作)

例:
已知(2000H)=78H,(2001H)=6AH已知(2000H)=78H,(2001H)=6AH2000H=78H2001H=6AH
①执行MOVBL,[2001H]指令后,①执行MOV\ BL,[2001H]指令后,MOV BL,[2001H],
BL=BL=BL=___ 6AH __
BHE‾=\overline{BHE}=BHE=__ 0 ___
A0=A_0=A0=___ 1 __
②执行MOVBX,[2000H]指令后,②执行MOV\ BX,[2000H]指令后,MOV BX,[2000H],
BX=BX=BX=___ 6A78H __
BHE‾=\overline{BHE}=BHE=__ 0___
A0=A_0=A0=__ 0 ___

AX、BX、CX、DX可以称为数据寄存器(字)
这4个16位寄存器又可分别分成:(字节)
{高8位(AH、BH、CH、DH)低8位(AL、BL、CL、DL)\begin{cases}高8位(AH、BH、CH、DH)\\ 低8位(AL、BL、CL、DL)\end{cases}{8AHBHCHDH8ALBLCLDL

{规则字/对准好的字:从偶地址取字非规则字/未对准好的字:从奇地址取字\begin{cases} 规则字/对准好的字:从\pmb{偶地址}取\pmb{字}\\ 非规则字/未对准好的字:从\pmb{奇地址}取\pmb{字} \end{cases}{/偶地址/奇地址

三、主存的容量

1. 概念

{位:bit(0/1)字节:Byte(8个位)字:word:(16个位)(2个字节)\begin{cases} \pmb位:bit(0/1)\\ \pmb{字节}: Byte(8个位)\\ \pmb{字}: word:(16个位)(2个字节) \end{cases}bit0/1字节Byte8word162
{存储元:1个二进制位(0/1)存储单元:8个二进制位(1个字节)存储体:存储单元的集合\begin{cases} \pmb{存储元}:1个二进制位(0/1)\\ \pmb{存储单元}:8个二进制位(1个字节)\\ \pmb{存储体}:存储单元的集合\\ \end{cases}存储元10/1存储单元81存储体

2. 存储器性能指标

(1)存储容量

  1. 存储器能够存储的二进制信息量(基本单位:位,字节)
  2. 存储器能够存储的字数每字位数的乘积(64MB=64M∗8位(bit)64MB=64M*8位(bit)64MB=64M8bit
  3. 存储器的地址线的编制数×数据线条数

(2)

存取时间:CPU启动一次总线进行读/写的时间。
存储周期:连续两次进行存储器的访问需要最短时间间隔。

3. 主存空间

(1)8088/8086主存容量 1MB

  1. 64KB,从0地址开始,末地址64KB,从0地址开始,末地址64KB0__ FFFFH ___
    ①1KB=210,64KB=216=24∗24∗24∗24(从右向左写)=10000H①\ 1KB=2^{10} ,64KB=2^{16}=2^4*2^4*2^4*2^4(从右向左写)=10000H 1KB=210,64KB=216=24242424=10000H
    ②10000H+0−1=FFFFH②\ 10000H+0-1=FFFFH 10000H+01=FFFFH
  2. 32KB,从0地址开始,末地址32KB,从0地址开始,末地址32KB0__ 7FFFH ___
    ①32KB=215=23∗24∗24∗24=8000H①\ 32KB=2^{15}=2^3*2^4*2^4*2^4=8000H 32KB=215=23242424=8000H
    ②8000H+0−1=7FFFH②\ 8000H+0-1=7FFFH 8000H+01=7FFFH

    (末地址−首地址+1=空间大小)(末地址-首地址+1=空间大小)+1=)
    (空间大小+首地址−1=末地址)(空间大小+首地址-1=末地址)+1=)

  3. 一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是()
    ①首地址:逻辑地址→物理地址12AB0H+00ABH=12B5BH①首地址:逻辑地址\rightarrow物理地址 12AB0H+00ABH=12B5BH12AB0H+00ABH=12B5BH
    ②容量:128个字=256字节(byte),256B=24+24=100H②容量:128个字=256字节(byte),256B=2^4+2^4=100H128=256byte256B=24+24=100H
    ③末地址:100H+12B5BH−1=12C5A③末地址:100H+12B5BH-1=12C5A100H+12B5BH1=12C5A
    ④12C5AH−1=12C59H④12C5AH-1=12C59H12C5AH1=12C59H
    微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

(2)8088/8086主存空间分段

  1. 主存分为4个段 DS、CS、SS、ES
    最大访问地址容量1MB
    4个逻辑段:CPU随机分配可以重叠
    4个段大小≤\leq 64KB
    段首地址必须从小节开始
    (小节:每小节为16字节(XXX0H))
  2. 物理地址:CPU访问主存时使用的地址(8088/8086为20位)
    逻辑地址:程序员编程时使用的地址 (8088/8086为16位)

a. 在CPU内ALU中实现有效地址(偏移地址)计算,在CPU的地址加法器上实现物理地址的计算
b. 逻辑地址:(段地址:偏移地址)
物理地址:段地址*16+偏移地址
段地址:CPU的段寄存器中的值
偏移地址:相对于段地址的位移量

地址2000H:0480H的物理地址:地址2000H:0480H的物理地址:2000H0480H
2000H∗16+0480H2000H* 16+0480H2000H16+0480H
=2000H∗10H+0408H=2000H* 10H+0408H=2000H10H+0408H
=20408H→1MB:00000H∼FFFFFH=20408H→1MB:00000H\sim FFFFFH=20408H1MB00000HFFFFFH
物理地址按顺序依次给存储单元编制
物理地址每个地址是唯一空间,对应多个逻辑地址。
(一个物理地址对应多个逻辑地址)

四、主存与CPU的连接

1. 原则

(1)CPU的三种系统总线依次对应主存的三种总线
(2)
8088为8位数据线D7∼D0<=>主存芯片8位数据线D_7\sim D_0<=>主存芯片8位数据线D7D0<=>8线
8086为16位数据线D15∼D0<=>主存芯片16位数据线D_{15}\sim D_0<=>主存芯片16位数据线D15D0<=>16线
(3)CPU为20位地址线A19∼A0A_{19}\sim A_0A19A0
① 片内地址线,CPU最低地址 => 主存芯片地址线
② 中位地址线 => 地址译码器
③ 高位地址线=>地址译码器,也可以不用
(4)控制线
微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

2. 主存芯片

(1)RAM{SARM:6116芯片2k∗8bit{AB(地址总线):A10∼A0(2k=211:11条地址线)DB(数据总线):D7∼D0(8条数据线)CB(控制总线):OE‾、WE‾、CS‾DRAM:2116芯片16k∗1bit{AB:A13∼A0DB:D0CB:OE‾、WE‾、CS‾(1)\pmb{RAM}\begin{cases} \pmb{SARM}:6116芯片 2k*8bit\begin{cases} \pmb{AB(地址总线):A_{10}\sim A_0}(2k=2^{11}:11条地址线)\\ \pmb{DB(数据总线):D_{7}\sim D_0}(8条数据线)\\ CB(控制总线):\overline{OE}、\overline{WE}、\overline{CS} \end{cases}\\ \pmb{DRAM}:2116芯片 16k*1bit\begin{cases} \pmb{AB:A_{13}\sim A_0}\\ \pmb{DB:D_0}\\ CB:\overline{OE}、\overline{WE}、\overline{CS}\\ \end{cases} \end{cases}1RAMRAMRAMSARMSARMSARM61162k8bitAB线A10A0AB(地址总线):A10A0AB线A10A02k=21111线DB线D7D0DB(数据总线):D7D0DB线D7D08线CB线OEWECSDRAMDRAMDRAM211616k1bitABA13A0ABA13A0ABA13A0DBD0DBD0DBD0CBOEWECS
(2)ROM、EPROM{2764芯片8k∗8bit{AB:A12∼A0DB:D7∼D0CB:DE‾、CS‾2732芯片4K∗8bit{AB:A11∼A0DB:D7∼D0CB:DE‾、CS‾(2)\pmb{ROM}、EPROM\begin{cases} 2764芯片 8k*8bit \begin{cases} \pmb{AB:A_{12}\sim A_0}\\ \pmb{DB:D_7\sim D_0}\\ CB:\overline{DE}、\overline{CS} \end{cases}\\ 2732芯片4K*8bit\begin{cases} \pmb{AB:A_{11}\sim A_0}\\ \pmb{DB:D_7\sim D_0}\\ CB:\overline{DE}、\overline{CS} \end{cases} \end{cases}2ROMROMROMEPROM27648k8bitABA12A0ABA12A0ABA12A0DBD7D0DBD7D0DBD7D0CBDECS27324K8bitABA11A0ABA11A0ABA11A0DBD7D0DBD7D0DBD7D0CBDECS

3. 译码

将输入的一组二进制编码变换为一个特定的控制信号。
将输入的一组高位地址信号通过变换产生一个有效的控制信号,用于选中某一个存储器芯片,从而确定该存储器芯片在内存中的地址范围。

4. 地址译码器

(1)2:4译码器(2个输入端、4个输出端)

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

A、B输入端连接的是CPU的地址线A、B输入端连接的是CPU的地址线ABCPU线
Y0‾、Y1‾、Y2‾、Y3‾输出端连接的存储芯片的片选端CS‾\overline{Y_0}、\overline{Y_1}、\overline{Y_2}、\overline{Y_3}输出端连接的存储芯片的片选端\overline{CS}Y0Y1Y2Y3CS

真值表

B A Yi‾\overline{Y_i}Yi
0 0 Y0‾\overline{Y_0}Y0
0 1 Y1‾\overline{Y_1}Y1
1 0 Y2‾\overline{Y_2}Y2
1 1 Y3‾\overline{Y_3}Y3

(2)3:8译码器(3个输入端、8个输出端)

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

接地给低电平
74LS138(典型的38译码器)

真值表

C B A Yi‾\overline{Y_i}Yi
0 0 0 Y0‾\overline{Y_0}Y0
0 0 1 Y1‾\overline{Y_1}Y1
0 1 0 Y2‾\overline{Y_2}Y2
1 1 1 Y7‾\overline{Y_7}Y7

微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网
2764的地址范围___
CBA\quad\quad\quad\quad\quad\quad C\quad B\quad ACBA
A19A18A17A16A15A14A13A12…A0A_{19}A_{18}A_{17}A_{16}\pmb{A_{15}A_{14}A_{13}}A_{12}…A_{0}A19A18A17A16A15A14A13A15A14A13A15A14A13A12...A0
00000100…004000H\quad0\quad0\quad0\quad0\quad0\quad1\quad0\quad0\quad…0\qquad04000H00000100...004000H
00000101…105FFFH\quad0\quad0\quad0\quad0\quad0\quad1\quad0\quad1\quad…1\qquad05FFFH00000101...105FFFH
地址范围:4000H∼5FFFH4000H\sim 5FFFH4000H5FFFH

5. 译码方式

  1. 全译码:CPU的20位地址线均用上
    用全部的高位地址信号作为译码信息,使得存储器芯片的每一个单元都占据一个唯一的地址
  2. 部分译码:CPU的20位地址线只用了一部分低地址线
    n条地址线,确定2n地址范围n条地址线,确定2^n地址范围n线2n
    (没有地址的地址线称为片内地址线,首地址全0,末地址全1。)(没有地址的地址线称为片内地址线,首地址全0,末地址全1。)线线01
  3. 线选法CPU访问的芯片比较少,直接使用CPU的地址线片选存储芯片.

(部分地址译码和线选法都会出现地址重迭,全译码可避免。)

6. 画图

2764为8K×8的EPROM芯片,要求其地址范围是FA000H~ FBFFFH,设计其连线。
分析:地址范围和容量的关系
容量=末地址+1-首地址=FBFFFH+1-FA000H=2000H=8K
微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网

例:请利用下图给定的集成电路(图中的集成电路为示意图,只包含题目中用到的引脚),试连接其地址总线、数据总线和控制总线,使其构成64K×8位的全地址译码存储器系统,并指出IC6和IC7存储器芯片的地址范围。
微机原理与接口技术 第五章 存储器系统(河北专升本计算机)-编程知识网
8086芯片的ALE连接8282地址锁存器的STB8086芯片的ALE 连接 8282地址锁存器的STB8086ALE8282STB
8086芯片RD‾接RAM随机存取存储器/ROM只读存储器的OE‾8086芯片\overline{RD} 接 RAM随机存取存储器/ROM只读存储器的\overline{OE}8086RDRAM/ROMOE
8086芯片WR‾接RAM随机存取存储器的WE‾8086芯片\overline{WR} 接 RAM随机存取存储器的\overline{WE}8086WRRAMWE

本文仅供本人学习总结使用,文中观点,均为本人拙见,如有错误或不妥之处,请及时指正。