520 likes | 696 Views
第 6 章 存储器接口. 存储器是信息存放的载体,是计算机系统的重要组成部分。有了它,计算机才能有记忆功能,才能把要计算和处理的数据以及程序存入计算机,使计算机能脱离人的直接干预,自动地工作。 本章讲述 CPU 与主存储器的连接. 退出. 外 存. 主 存. C P U. 快存. 系统对存储器的要求. 容量大 , 速度高 , 成本低 采用分级的存储结构 大的便宜 , 小的昂贵. 三级存储器结构. 本章内容. 6.1 半导体存储器的分类 6.2 存储器接口技术
E N D
第6章 存储器接口 • 存储器是信息存放的载体,是计算机系统的重要组成部分。有了它,计算机才能有记忆功能,才能把要计算和处理的数据以及程序存入计算机,使计算机能脱离人的直接干预,自动地工作。 • 本章讲述CPU与主存储器的连接 退出
外 存 主 存 C P U 快存 系统对存储器的要求 • 容量大,速度高,成本低 • 采用分级的存储结构 • 大的便宜,小的昂贵 三级存储器结构
本章内容 • 6.1 半导体存储器的分类 • 6.2 存储器接口技术 • 6.3虚拟存储器管理与IA-32微处理器的MMU单元 • 高速缓冲存储器接口 • 6.4应用举例
6.1 半导体存储器的分类 • 半导体存储器从使用功能上来分,可分为:读写存储器RAM(Random Access Memory)又称为随机存取存储器;只读存储器ROM(Read Only Memory)两类。RAM主要用来存放各种现场的输入、输出数据,中间计算结果,与外存交换的信息和作堆栈用。它的存储单元的内容按需要既可以读出,也可以写入或改写。而ROM的信息在使用时是不能改变的,也即只能读出,不能写入故一般用来存放固定的程序,如微型机的管理、监控程序,汇编程序等,以及存放各种常数、函数表等。
RAM的种类 • 在RAM中,又可以分为双极型(Bipolar)和MOS RAM两大类。 • 1.双极型RAM的特点 • (1)存取速度高。 • (2)以晶体管的触发器(F-F——Flip-Flop)作为基本存储电路,故管子较多。 • (3)集成度较低(与MOS相比)。 • (4)功耗大。 • (5)成本高。 • 所以,双极型RAM主要用在速度要求较高的微型机中或作为cache。
2.MOS RAM • 用MOS器件构成的RAM,又可分为静态(Static)RAM(有时用SRAM表示)和动态(Dynamic)RAM(有时用DRAM表示)两种。 • (1)静态RAM的特点 • ① 6管构成的触发器作为基本存储电路。 • ② 集成度高于双极型,但低于动态RAM。 • ③ 不需要刷新,故可省去刷新电路。
④ 功耗比双极型的低,但比动态RAM高。 • ⑤ 易于用电池作为后备电源(RAM的一个重大问题是当电源去掉后,RAM中的信息就会丢失。为了解决这个问题,就要求当交流电源掉电时,能自动地转换到一个用电池供电的低压后备电源,以保持RAM中的信息)。 • ⑥ 存取速度较动态RAM快。
(2)动态RAM的特点 • ① 基本存储电路用单管线路组成(靠电容存储电荷)。 • ② 集成度高。 • ③ 比静态RAM的功耗更低。 • ⑤ 价格比静态便宜。 • ⑥ 因动态存储器靠电容来存储信息,由于总是存在着泄漏电流,故需要定时刷新。典型的是要求每隔1ms刷新一遍。
ROM的种类 • 1.掩模ROM • 早期的ROM由半导体厂按照某种固定线路制造的,制造好以后就只能读不能改变。 • 2.可编程序的只读存储器PROM(Programmable ROM) • 为了便于用户根据自己的需要来写ROM,就发展了一种PROM,可由用户对它进行编程,但这种ROM用户只能写一次。
3.可擦去的可编程只读存储器EPROM(Erasable PROM) • 为了适应科研工作的需要,希望ROM能根据需要写,也希望能把已写上去的内容擦去,然后再写,能改写多次。EPROM就是这样的一种存储器。EPROM的写入速度较慢,而且需要一些额外条件,故使用时仍作为只读存储器来用。 • 只读存储器电路比RAM简单,故而集成度更高,成本更低。而且有一重大优点,就是当电源去掉以后,它的信息是不丢失的。 • 随着应用的发展,ROM也在不断发展,目前常用的还有电可擦除的可编程ROM及新一代可擦除ROM(闪烁存储器)等。
6.2 存储器接口技术 • 解决存储器与CPU的连接问题 • 在微型计算机中,CPU对存储器进行读写操作,首先要由地址总线给出地址信号,然后要发出相应的是读还是写的控制信号,最后才能在数据总线上进行信息交流。所以,存储器与CPU的连接,主要有以下三个部分: • 地址线的连接; • 数据线的连接; • 控制线的连接。
一. 在连接中要考虑的问题有以下几个方面 • (1)CPU总线的负载能力。 • (2)CPU的时序和存储器的存取速度之间的配合问题。 • (3)存储器的地址分配和选片问题。 • (4)控制信号的连接。 • 如果组成1K×8位,可以采用1024×1位的片子,也可采用256×4的片子,如图所示。
CPU总线的负载能力 • 采用MOS存储器时,主要是电容负载,负载小,CPU与存储器可直接连接。 • 对于较大的系统,CPU负载能力不足时,需要缓冲器或驱动器以提高总线的负载能力。 • 地址线和控制线是单向的,采用单向驱动器(74LS244,8282),数据线是双向的,采用双向驱动器(74LS245,8287)
存储芯片的选择 • 芯片的选择直接影响接口设计 • 一般应根据存储器的存放对象、总体性能、芯片类型和特征综合考虑 • 主存要兼顾速度、容量和价格 • 还要考虑存储器的多种类型
二 存储器地址译码方法 • 确保CPU对所有存储单元实现正确寻址,是设计存储系统的核心内容 • 因一个存储器系统总是由多个存储芯片构成,故存储器的地址译码分为片选控制译码和片内地址译码两部分 • 片选信号由高位地址译码产生;片内地址由低位地址译码产生
片选控制的译码方法 • 线选法 • 全译码法 • 部分译码法 • 混合译码法
(1) 1KB CS (2) 1KB CS (3) 1KB CS (4) 1KB CS 1 1 1 1 线选法 • 用高位地址线直接作为存储芯片的片选信号,每一根地址线选通一个存储芯片,低位地址直接连接,如图: A0~A9 A10 A11 A12 A13
线选法的优点是简单 • 缺点是存储器地址分布不连续
A0~A12 8KB (1) CS 8KB (2) CS 8KB (8) CS … … A15 A14 A13 3-8 译码器 全译码法 • 高位地址经译码器译码后产生各芯片的片选信号,低位地址直接连接存储芯片,如图:
地址分配 • 芯片1:000000000000000~000111111111111B 即0000H~1FFFH • 芯片2:001000000000000~001111111111111B 即2000H~3FFFH • 芯片3:010000000000000~010111111111111B 即4000H~5FFFH • 芯片4:011000000000000~011111111111111B 即6000H~7FFFH • 芯片5:100000000000000~100111111111111B 即8000H~9FFFH • 芯片6:101000000000000~101111111111111B 即A000H~BFFFH • 芯片7:110000000000000~110111111111111B 即C000H~DFFFH • 芯片8:111000000000000~111111111111111B 即E000H~FFFFH 存储器的地址连续且唯一,无地址间断和地址重复
部分译码法 • 将高位地址中的一部分进行译码,产生片选信号,用于不需要全部地址空间的寻址情况,而采用线选法不够用。 • 例如:当CPU的地址总线为16位,存储器用4片容量为8KB的芯片组成时。
A0~A12 8KB (3) CS 8KB (4) CS 8KB (1) CS 8KB (2) CS A15不参加译码 A14 A13 3-8 译码器
混合译码法 A0~A10 • 将线选法和部分译码法相结合的一种译码方法 2KB (2) CS 2KB (8) CS 2KB (9) CS 2KB (10) CS 2KB (1) CS A11 A12 A13 3-8 译码器 1 1 A14 A15
三. 由多个存储芯片组成的存储器 • 组成1K×8位的存储器: • 可以采用1024×1位的片子, • 也可采用256×4的片子, • 如图所示:
在上图中,每一片是1024×1,故其地址线为10条,满足整个存储体容量的要求。每一片相应于一位(只有一条数据线),故只要把它们分别接到数据总线上的相应位即可。对片子没有选片要求,如片子有在上图中,每一片是1024×1,故其地址线为10条,满足整个存储体容量的要求。每一片相应于一位(只有一条数据线),故只要把它们分别接到数据总线上的相应位即可。对片子没有选片要求,如片子有 • — • 选片输入端(CS或CE),可把它们直接接至IO/M。
在上图的电路中,每一片为256×4,故片上的地址为256(8条地址线)。因此,总的存储体容量1K就要分成四部分(或称为页),所以,用地址总线上的A0~A7直接与各个片的地址输入端相连,可寻址256,即实现页内寻址;由A8、A9经过译码输出四条线,代表1K的不同的四个部分(四个页),即0~256为第一页;256~511为第二页;512~767为第三页;768~1023为第四页,实现页的寻址。因为每一片上的数据为4位(4条数据线),用2片可组成一页,故有四条页寻址线,每一条同时接两片。在上图的电路中,每一片为256×4,故片上的地址为256(8条地址线)。因此,总的存储体容量1K就要分成四部分(或称为页),所以,用地址总线上的A0~A7直接与各个片的地址输入端相连,可寻址256,即实现页内寻址;由A8、A9经过译码输出四条线,代表1K的不同的四个部分(四个页),即0~256为第一页;256~511为第二页;512~767为第三页;768~1023为第四页,实现页的寻址。因为每一片上的数据为4位(4条数据线),用2片可组成一页,故有四条页寻址线,每一条同时接两片。 • 一页内两片的数据线,一个接到数据总线的D0~D3,另一个接到D4~D7。而各页的数据线就得并联。
若用Intel 2114 1K×4位的片子,构成一个2K RAM系统,其连接如图所示。
通常的微型机系统的内存储器中,总有相当容量的ROM,它们的地址必须与RAM一起考虑,分别给它们一定的地址分配。通常的微型机系统的内存储器中,总有相当容量的ROM,它们的地址必须与RAM一起考虑,分别给它们一定的地址分配。
四. DRAM与CPU的连接 CPU DRAM 刷新地 址计数器 地址多 路开关 地址 地址总线 刷新 定时器 仲裁 电路 RAS 定时 发生器 CAS WR 读/写
连接说明 • 地址多路开关:分时送入行地址和列地址 • 刷新定时器:定时提供刷新信号 • 刷新地址计数器:提供刷新的地址.每刷新一行,计数器自动加1 • 仲裁电路:当来自CPU的访问存储器请求和来自刷新请求同时到达时,做出裁定 • 定时发生器:提供行地址选通信号,列地址选通信号和写允许信号
6.4 虚拟存储器管理与IA-32微处理器的MMU单元 • 虚拟存储器概念 • 虚拟存储管理技术,使一个进程的逻辑地址空间远大于实际的主存空间时,仍能正常地运行进程。要正确地了解虚拟存储器的概念,首先要分清进程运行时访问的地址空间和主存的实际地址空间。 • 目标程序中指令和数据放置的位置,称为相对地址或逻辑地址,它不同于CPU能直接访问的主存的物理地址空间。前者是逻辑上的而非物理上的存储空间,而后者是程序在执行时实际存放其指令和数据的物理空间。
在虚存管理中,把一个进程访问的地址称为“虚拟地址(逻辑地址)”,而处理机可直接访问的主存地址称为“实地址(物理地址)”。把一个进程可访问的虚拟地址的集合称为“虚拟地址空间”,而把一个计算机所实际配置的主存称为“实地址空间(物理地址空间)”。为了使进程能运行,就必须把虚地址空间中的指令和数据放入到主存的实地址空间中去,建立虚地址与实地址的映射关系,也就是要由虚拟地址转换到物理地址。这种转换由虚存管理中的动态地址映射机制来实现。在虚存管理中,把一个进程访问的地址称为“虚拟地址(逻辑地址)”,而处理机可直接访问的主存地址称为“实地址(物理地址)”。把一个进程可访问的虚拟地址的集合称为“虚拟地址空间”,而把一个计算机所实际配置的主存称为“实地址空间(物理地址空间)”。为了使进程能运行,就必须把虚地址空间中的指令和数据放入到主存的实地址空间中去,建立虚地址与实地址的映射关系,也就是要由虚拟地址转换到物理地址。这种转换由虚存管理中的动态地址映射机制来实现。
实际上,程序只需要有一部分在主存中就可以正确地执行,只需要把最近要用到的那部分程序和数据装入主存,以后要用到别的部分时,把那部分调入,而把不用的部分调出主存。这种调入和调出工作是由具有虚拟存储器功能的操作系统实现的。实际上,程序只需要有一部分在主存中就可以正确地执行,只需要把最近要用到的那部分程序和数据装入主存,以后要用到别的部分时,把那部分调入,而把不用的部分调出主存。这种调入和调出工作是由具有虚拟存储器功能的操作系统实现的。
Intel IA-32结构微处理器的存储管理单元 • IA-32结构微处理器芯片上,就提供了段页式的存储管理机制,为现代操作系统的请页式虚存管理提供了直接支持。 • IA-32结构微处理器的存储管理机制分为两部分:段机制和页机制。段机制把虚拟地址(逻辑地址)转换为线性地址;页机制则把由段机制产生的线性地址转换为物理地址。若不启用分页机制(CR0的PG=0),则线性地址即为物理地址;若启用分页机制(CR0的PG=1),线性地址要通过分页机制的转换才变为物理地址。
线性地址空间中的页,是通过页表映射到物理页的。页表本身是存放在物理地址空间中的。页表可以看作为一个具有220物理地址的数组,所以线性地址与物理地址之间的映射,可以简化为对数组的查找。线性地址空间中的页,是通过页表映射到物理页的。页表本身是存放在物理地址空间中的。页表可以看作为一个具有220物理地址的数组,所以线性地址与物理地址之间的映射,可以简化为对数组的查找。 • 在IA-32结构微处理器的段机制中,用全局描述符表(gdt)和局部描述符表(ldt),来实现虚拟地址的寻址。
6.5 应用举例---之一 • 1.要求:某8位微机有地址总线16根,双向数据总线8根,控制总线有MREQ(允许访问),读写信号R/W,试用SRAM芯片2114为该机设计一个8KB的存储器,并画出连接图。 • 2.分析:2114芯片为1KX4位,则构造一个8K的存储器共需16片2114,每两片组成1KB,分8组;每个芯片的片内寻址需要10根地址线,可使用低10位A9~A0;片选信号由74LS138译码器产生,可在MREQ控制下由A12~A10产生;读写信号直接与芯片连接。 • 3.实现连接的框图为:
应用举例---之二 • 地址译码电路的设计步骤: • 根据选通中实际存储容量,确定存储器在整个寻址空间中的位置; • 根据所选用的存储芯片的容量,画出地址分配图或列出地址分配表 • 根据地址分配图或地址列表确定译码方法并画出相应的地址位图 • 选用合适的器件,画出译码电路图
应用举例---之二 • 某微机系统地址总线为16位,实际存储器容量为16KB,ROM区和RAM区各占8KB,其中,ROM区采用容量为2KB的EPROM芯片,RAM区采用容量为1KB的静态RAM芯片,试设计该存储器的地址译码电路。
设计步骤 • 由16位地址总线知系统的寻址空间为64KB,假定实际存储器占用最低16KB的存储空间,即地址空间为:00000H~3FFFH,其中00000H~1FFFH为EPROM区;20000H~3FFFH为RAM区。 • 画出地址分配图
片选控制译码电路图 • Tu6.10
应用举例---之四(略) • Intel2716芯片与8位CPU的连接方法: • 低位地址线和数据线直接相连 • 工作电源VCC直接与+5V电源相连 • CE和OE信号分别由CPU高位地址线和控制总线译码后产生 • 设计图(三种连接方法)为: