【计组】-- 存储系统和结构(2):主存储器的连接和控制


概述

参考:《计算机组成原理》(第三版) 蒋本珊编著


由于存储芯片的容量有限,主存储器往往是由一定数量的芯片构成


主存容量的扩展

选片

求出总片数



EX. 存储器容量为 8K * 4, 芯片容量为 1K * 4

=8K81K4=82=16


将多片组合起来常采用位扩展法,字扩展法,字和位同时扩展法

位扩展法

位扩展是指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的;
位扩展的连接方式是将各存储芯片的地址线、片选线和读写线相应地并联起来,而将各芯片的数据线单独列出


  • EX.如用64K×1的SRAM芯片组成64K×8的存储器
    1. 所需芯片数为
      64K×864K×1=8
    2. 连接
      CPU将提供16根地址线( 216 =65536)、8根数据线与存储器相连;而存储芯片仅有16根地址线、1根数据线。具体的连接方法是:8个芯片的地址线A15~A0分别连在一起,各芯片的片选信号 CS¯¯¯¯¯ 以及读写控制信号 WE¯¯¯¯¯¯ 也都分别连到一起,只有数据线D7~D0各自独立,每片代表一位


      【计组】-- 存储系统和结构(2):主存储器的连接和控制_第1张图片


      当CPU访问该存储器时,其发出的地址和控制信号同时传给8个芯片,选中每个芯片的同一单元,相应单元的内容被同时读至数据总线的各位,或将数据总线上的内容分别同时写入相应单元


      注:也就是说,这样达到的效果就是 CPU 每次都访问到了一个 8 位的存储单元,每片芯片贡献一位




字扩展

字扩展是指仅在字数方向扩展,而位数不变。字扩展将芯片的地址线、数据线、读写线并联,由片选信号来区分各个芯片

  • EX.用16K×8的SRAM组成64K×8的存储器
    1. 所需芯片数为:
      64K×816K×8=8
    2. 连接
      CPU将提供16根地址线、8根数据线与存储器相连;而存储芯片仅有14根地址线、8根数据线。四个芯片的地址线A13~A0、数据线D7~D0及读写控制信号 WE¯¯¯¯¯¯ 都是同名信号并联在一起;高位地址线A15、A14经过一个地址译码器产生四个片选信号\overline{CS},分别选中四个芯片中的一个


      【计组】-- 存储系统和结构(2):主存储器的连接和控制_第2张图片


      注:CPU 通过片选每次只选择一个芯片,方位其中一个 8 位的存储单元




字和位同时扩展

是以上两种方式的结合


  • EX. 用 16K×4 的 SRAM 组成 64K×8 的存储器
    1. 所需芯片数:
      64K×816K×4=42
    2. 连接
      【计组】-- 存储系统和结构(2):主存储器的连接和控制_第3张图片


      注:行并联,列串联;CPU 通过片选信号选择行,数据总线读取两块芯片,每片贡献 4 位,相当于读取了一个 8 位的存储单元


存储芯片的地址分配和片选

CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量 2N 决定)。而存储芯片的片选信号则大多是通过高位地址译码后产生的


片选信号的译码方法又可细分为线选法、全译码法和部分译码法


线选法

线选法就是用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片


  • EX. 4 片 2K*8 用线选法构成的 8K*8 存储器,地址分配如下:
芯片 A14 ~ A11 A10 ~ A0 地址范围空间
0# 1110 00···0 ~ 11···1 7000~77FFH
1# 1101 00···0 ~ 11···1 6800~6FFFH
2# 1011 00···0 ~ 11···1 5800~5FFFH
3# 0111 00···0 ~ 11···1 3800~3FFFH


线选法的优点是不需要地址译码器,线路简单,选择芯片无须外加逻辑电路,但仅适用于连接存储芯片较少的场合。同时,线选法不能充分利用系统的存储器空间,且把地址空间分成了相互隔离的区域,给编程带来了一定的困难


全译码法

全译码法将除片内寻址外的全部高位地址线都作为地址译码器的输入,译码器的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择



EX. 假如 CPU 的地址总线为 20 位,现用 4 片 2K*8 的存储芯片组成一个 8K*8 的存储器,全译码法要求除了片内寻址用到的 11 位地址线外,高九位地址 A19 ~ A11 都要参与译码,虽然用不了那么多

全译码法的优点是每片(或组)芯片的地址范围是唯一确定的,而且是连续的,也便于扩展,不会产生地址重叠的存储区,但全译码法对译码电路要求较高


部分译码

所谓部分译码即用除片内寻址外的高位地址的一部分来译码产生片选信号


  • EX
    用4片2K×8的存储芯片组成8K×8存储器,需要4个片选信号,因此只需要用两位地址线来译码产生。
    由于寻址8K×8存储器时未用到高位地址 A19 ~ A13 ,所以只要 A12 = A11 =0,而无论 A19 ~ A13 取何值,均选中第一片;只要 A12 =0, A11 =1,而无论 A19 ~ A13 取何值,均选中第二片……也就是说,8K RAM中的任一个存储单元,都对应有 22013 = 27 个地址,这种一个存储单元出现多个地址的现象称地址重叠

主存储器和 CPU 的连接

硬连接

主存与 CPU 的硬连接有 3 组连线 : 地址总线(AB)、数据总线(DB)、控制总线(CB)
【计组】-- 存储系统和结构(2):主存储器的连接和控制_第4张图片

  • MAR : 存储器地址寄存器
  • MDR : 存储器数据寄存器
  • MFC : 主存工作完成信号


读写操作

读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU

  1. 地址→MAR→AB    CPU将地址信号送至地址总线;
  2. Read         CPU发读命令;
  3. Wait for MFC     等待存储器工作完成信号;
  4. M(MAR)→DB→MDR  读出信息经数据总线送至CPU

写操作是指将要写入的信息存入CPU所指定的存储单元中

  1. 地址→MAR→AB    CPU将地址信号送至地址总线;
  2. 数据→MDR→DB    CPU将要写入的数据送至数据总线;
  3. Write         CPU发写命令;
  4. Wait for MFC     等待存储器工作完成信号

你可能感兴趣的:(计组)