计算机组成原理第5章5.1存储系统的组成5.2主存储器的组织5.3半导体随机存储器和只读存储器5.4主存储器的连接与控制5.5提高主存读写速度的技术5.6多体交叉存储技术5.7高速缓冲存储器5.8虚拟存储器计算机组成原理5.4主存储器的连接与控制5.4.1主存容量的扩展要组成一个主存,首先要考虑选片的问题,然后就是如何把芯片连接起来的问题。根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出总的芯片数,即总容量芯片容量总片数=计算机组成原理5.4主存储器的连接与控制1.位扩展位扩展指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。位扩展的连接方式是将各存储芯片的地址线、片选线和读/写线相应地并联起来,而将各芯片的数据线单独列出。如用64K×1的SRAM芯片组成64K×8的存储器,需要8个芯片。容量地址数据存储器64K×8168存储芯片64K×1161计算机组成原理5.4主存储器的连接与控制64K×8芯片组A15~A0D7~D0__CS___WE__CSA0A15D0D7___WE64K×112345678I/OI/OI/OI/OI/OI/OI/OI/O......................……地址总线数据总线..计算机组成原理5.4主存储器的连接与控制当CPU访问该存储器时,其发出的地址和控制信号同时传给8个芯片,选中每个芯片的同一单元,其单元的内容被同时读至数据总线的相应位,或将数据总线上的内容分别同时写入相应单元。D0D6D7D7~D0CSA15~A0WE64K×164K×164K×1计算机组成原理5.4主存储器的连接与控制2.字扩展字扩展是指仅在字数方向扩展,而位数不变。字扩展将芯片的地址线、数据线、读/写线并联,由片选信号来区分各个芯片。如用16K×8的SRAM组成64K×8的存储器,需要4个芯片。容量地址数据存储器64K×8168存储芯片16K×8148计算机组成原理5.4主存储器的连接与控制16K×816K×816K×816K×8___WE__CSD7~D0A15~A0A13~A0A15~A14___WE___WE___WE___WED7~D0D7~D0D7~D0A13~A0__CS__CS__CS__CSA13~A0A13~A0译码器__Y3__Y2__Y1__Y0...。。。。。A13~A0D7~D064K×8芯片组A15~A0D7~D0__CS___WE计算机组成原理5.4主存储器的连接与控制D7~D0CS0A13~A0WE16K×816K×816K×816K×82:4译码器A14A15CS1CS2CS3计算机组成原理5.4主存储器的连接与控制在同一时间内四个芯片中只能有一个芯片被选中。四个芯片的地址分配如下:第一片最低地址0000H最高地址3FFFH第二片最低地址4000H最高地址7FFFH第三片最低地址8000H最高地址BFFFH第四片最低地址C000H最高地址FFFFH计算机组成原理5.4主存储器的连接与控制3.字和位同时扩展当构成一个容量较大的存储器时,往往需要在字数方向和位数方向上同时扩展,这将是前两种扩展的组合,实现起来也是很容易的。如用16K×4的SRAM组成64K×8的存储器,需要8个芯片。容量地址数据存储器64K×8168存储芯片16K×4144注意计算机组成原理5.4主存储器的连接与控制2:4译码器D7~D0A13~A0WED7~D4D3~D016K×416K×416K×416K×416K×416K×416K×416K×4CS0A14A15CS1CS2CS3计算机组成原理5.4主存储器的连接与控制5.4.2存储芯片的地址分配和片选CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量2N决定),而片选信号则是通过高位地址得到的。实现片选的方法可分为3种:即线选法、全译码法和部分译码法。计算机组成原理5.4主存储器的连接与控制1.线选法线选法就是用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片。请注意,这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片(或组)。芯片A14~A11A10~A0地址范围0#111000…07000~11…177FFH1#110100…06800~11…16FFFH计算机组成原理2#101100…05800~11…15FFFH3#011100…03800~11…13FFFH线选法的优点是不需要地址译码器,线路简单,选择芯片不需要外加逻辑电路,但仅适用于连接存储芯片较少的场合。同时,线选法不能充分利用系统的存储器空间,且把地址空间分成了相互隔离的区域,给编程带来了一定的困难。5.4主存储器的连接与控制计算机组成原理5.4主存储器的连接与控制2.全译码法全译码法将片内寻址外的全部高位地址线作为地址译码器的输入,把经译码器译码后的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。全译码法的优点是每片(或组)芯片的地址范围是唯一确定的,而且是连续的,也便于扩展,不会产生地址重叠的存储区,但全译码法对译码电路要求较高。计算机组成原理5.4主存储器的连接与控制芯片A19~A13A12A11A10~A0地址范围0#0…00000…000000~11…1007FFH1#0…00100…000800~11…100FFFH2#0…01000…001000~11…1017FFH3#0…01100…001800~11…101FFFH计算机组成原理5.4主存储器的连接与控制3.部分译码所谓部分译码即用片内寻址外的高位地址的一部分来译码产生片选信号。如用4片2K×8的存储芯片组成8K×8存储器,需要四个片选信号,因此只要用两位地址线来译码产生。设地址总线有20位(A19~A0),则寻址8K×8存储器时,无论A19~A13取何值,只要A12=A11=0,而均选中第一片,只要A12=0,A11=1,均选中第二片,……。也就是说,8KRAM中的任一个存储单元,都对应有2(20-13)=27个地址,这种一个存储单元出现多个地址的现象称地址重叠。计算机组成原理5.4主存储器的连接与控制从地址分布来看,这8KB存储器实际上占用了CPU全部的空间(1MB)。每片2K×8的存储芯片有1/4M=256K的地址重叠区。0000H00000H07FFH007FFH0FFFH00FFFH17FFH017FFH1FFFH01FFFH027FFH0800H1000H1800H00800H01000H01800H02000H0123012301232K2K2K2K2K2K2K2K8K×8存储器1M×8存储空间…8K8K计算机组成原理5.4主存储器的连接与控制令未用到的高位地址全为0,这样确定的存储器地址称为基本地址,本例中8K×8存储器的基本地址即00000H~01FFFH。部分译码法较全译码法简单,但存在地址重叠区。计算机组成原理5.4主存储器的连接与控制5.4.3主存储器和CPU的连接1.主存和CPU之间的硬连接主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。此时,我们把主存看作一个黑盒子,存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口。MAR可以接受来自程序计数器的指令地址或来自运算器的操作数地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。计算机组成原理5.4主存储器的连接与控制主存容量2k字字长n位地址总线数据总线ReadWriteMFCk位n位CPUMDRMAR计算机组成原理5.4主存储器的连接与控制2.CPU对主存的基本操作CPU与主存的硬连接是两个部件之间联系的物理基础,而两个部件之间还有软连接,即CPU向主存发出的读或写命令,这才是两个部件之间有效工作的关键。CPU对主存进行读/写操作时,首先CPU在地址总线上给出地址信号,然后发出相应的读或写命令,并在数据总线上交换信息。计算机组成原理5.4主存储器的连接与控制(1)读读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,其操作过程是:地址→MAR→ABCPU将地址信号送至地址总线ReadCPU发读命令WaitforMFC等待存储器工作完成信号((MAR))→DB→MDR读出信息经数据总线送至CPU计算机组成原理5.4主存储器的连接与控制主存容量2k字字长n位地址总线数据总线ReadWriteMFCk位n位CPUMDRMARMARMDR计算机组成原理5.4主存储器的连接与控制(2)写写操作是指将要写入的信息存入CPU所指定的存储单元中,其操作过程是:地址→MAR→ABCPU将地址信号送至地址总线数据→MDR→DBCPU将要写入的数据送至数据总线WriteCPU发写命令WaitforMFC等待存储器工作完成信号计算机组成原理5.4主存储器的连接与控制主存容量2k字字长n位地址总线数据总线ReadWriteMFCk位n位CPUMDRMARMARMDR计算机组成原理5.4主存储器的连接与控制由于CPU和主存的速度存在着差距,所以两者之间的速度匹配是很关键的,通常有两种匹配方式:同步存储器读取和异步存储器读取。上面给出的读/写基本操作是以异步存储器读取来考虑的,CPU和主存间没有统一的时钟,由存储器工作完成信号(MFC)通知CPU存储器工作已完成。对于同步存储器读取,CPU和主存采用统一时钟,因为主存速度较慢,所以CPU与之配合必须放慢速度。在这种存储器中,不需要存储器工作完成信号。计算机组成原理5.4主存储器的连接与控制5.4.4PC系列微机的存储器接口数据总线一次能并行传送的位数,称为总线的数据通路宽度,常见的有8位、16位、32位、64位几种。但大多数主存储器常采取字节编址,每次访存允许读/写8位,以适应对字符类信息的处理。1.8位存储器接口如果数据总线为8位(如微机系统中的PC总线),而主存按字节编址,则匹配关系比较简单。一个总线周期中读/写8位。计算机组成原理5.4主存储器的连接与控制2.16位存储器接口对于16位的微处理器8086(或80286),在一个总线周期内可读/写两个字节,即先送出偶地址,然后同时读/写这个偶地址单元和随后的奇地址单元,用低8位数据总线传送偶地址单元的数据,用高8位数据总线传送奇地址单元的数据,这样读/写的字(16位)被称为规则字。如果读/写的是非规则字,即是从奇地址开始的字,这时需要安排两个总线周期才能实现。计算机组成原理5.4主存储器的连接与控制为了实现这样的传送,需要将存储器分为两个存储体,一个存储体的地址均为偶数,称为偶地址(低字节)存储体,它与低8位数据线相连;另一个存储体的地址均为奇数,称为奇地址(高字节)存储体,与高8位数据线相连。8086和主存之间可以传送一个字节(8位)数据,也可以传送一个字(16位)数据。任何两个连续的字节都可以作为一个字来访问,地址值较低的字节是低位有效字节,地址值较高的字节是高位有效字节。8086微处理器的地址线A19~A1同时送至两个存储体,BHE(高位存储体)和最低位地址线A0用来选择一个或两个存储体进行数据传送。计算机组成原理5.4主存储器的连接与控制奇存储体512KB偶存储体512KB00000H00002H00004HFFFFEHFFFFFH00001H00003H00005HA19~A1A0D15~D8D7~D0____BHE。……。计算机组成原理5.4主存储器的连接与控制8086微处理器的地址线A19~A1同时送至两个存储体,BHE(高位存储体)和最低位地址线A0用来选择一个或两个存储体进行数据传送。BHEA0特征00全字(规则字)传送01在数据总线高8位上进行字节传送10在数据