第4章 存储器和高速缓存技术

4.1 存储器和存储器件

存储器的概述
存储器是计算机(包括微机)硬件系统的重要组成部分,有了存储器,计算机才具有“记忆”功能,才能把程序及数据的代码保存起来,才能使计算机系统脱离人的干预,而自动完成信息处理的功能。
存储器系统的三项主要性能是指标容量、速度和成本。
存储容量是存储器系统的首要性能指标,因为存储容量越大,则系统能够保存的信息量就越多,相应计算机系统的功能就越强;
存储器的存取速度直接决定了整个微机系统的运行速度,因此,存取速度也是存储器系统的重要的性能指标;
存储器的成本也是存储器系统的重要性能指标。
为了在存储器系统中兼顾以上三个方面的指标,目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而其成本则接近廉价慢速的辅存平均价格。

4.1.1 存储器的分类

  1. 构成存储器的器件和存储介质分类
    按构成存储器的器件和存储介质主要可分为:磁芯存储器、半导体存储器、光电存储器、磁膜、磁泡和其它磁表面存储器以及光盘存储器等。

  2. 存取方式分类

可将存储器分为随机存取存储器、只读存储器两种形式。

  • 随机存储器RAM(Random Access Memory)
    又称读写存储器,指能够通过指令随机地、个别地对其中各个单元进行读/写操作的一类存储器。
    按照存放信息原理的不同,随机存储器又可分为静态和动态两种。静态RAM是以双稳态元件作为基本的存储单元来保存信息的,因此,其保存的信息在不断电的情况下,是不会被破坏的;而动态RAM是靠电容的充、放电原理来存放信息的,由于保存在电容上的电荷,会随着时间而泄露,因而会使得这种器件中存放的信息丢失,必须定时进行刷新。

  • 只读存储器ROM (Read-Only Memory)
    在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器。ROM通常用来存放固定不变的程序、汉字字型库、字符及图形符号等。随着半导体技术的发展,只读存储器也出现了不同的种类,如可编程的只读存储器PROM(Programmable ROM),可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)和EEPROM(Electric Erasible Programmable ROM)以及掩膜型只读存储器MROM(Masked ROM)等,近年来发展起来的快擦型存储器(F1ash Memory)具有EEPROM的特点。

  1. 按在微机系统中位置分类

分为主存储器(内存)、辅助存储器(外存)、缓冲存储器等,主存储器又称为系统的主存或者内存,位于系统主机的内部,CPU可以直接对其中的单元进行读/写操作;辅存存储器又称外存,位于系统主机的外部,CPU对其进行的存/取操作,必须通过内存才能进行;缓冲存储器位于主存与CPU之间,其存取速度非常快,但存储容量更小,可用来解决存取速度与存储容量之间的矛盾,提高整个系统的运行速度。
另外,还可根据所存信息是否容易丢失,而把存储器分成易失性存储器和非易失性存储器。如半导体存储器(DRAM,SRAM),停电后信息会丢失,属易失性;而磁带和磁盘等磁表面存储器,属非易失性存储器。

存储器分类表如下所示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.1.2 存储器的系统结构

一般情况下,一个存储器系统由以下几部分组成。

  1. 基本存储单元
    一个基本存储单元可以存放一位二进制信息,其内部具有两个稳定的且相互对立的状态,并能够在外部对其状态进行识别和改变。不同类型的基本存储单元,决定了由其所组成的存储器件的类型不同。
  2. 存储体(以图示讲解说明)
    一个基本存储单元只能保存一位二进制信息,若要存放M×N个二进制信息,就需要用M×N个基本存储单元,它们按一定的规则排列起来,由这些基本存储单元所构成的阵列称为存储体或存储矩阵。
  3. 地址译码器
    由于存储器系统是由许多存储单元构成的,每个存储单元一般存放8位二进制信息,为了加以区分,我们必须首先为这些存储单元编号,即分配给这些存储单元不同的地址。地址译码器的作用就是用来接受CPU送来的地址信号并对它进行译码,选择与此地址码相对应的存储单元,以便对该单元进行读/写操作

存储器地址译码有两种方式,通常称为单译码与双译码。
(1) 单译码
单译码方式又称字结构,适用于小容量存储器。
(2) 双译码
在双译码结构中,将地址译码器分成两部分,即行译码器(又叫X译码器)和列译码器(又叫Y译码器)。X译码器输出行地址选择信号,Y译码器输出列地址选择信号。行列选择线交叉处即为所选中的内存单元,这种方式的特点是译码输出线较少。双译码可简化芯片设计。

在这里插入图片描述

  1. 片选与读/写控制电路
    片选信号用以实现芯片的选择。对于一个芯片来讲,只有当片选信号有效时,才能对其进行读/写操作。片选信号一般由地址译码器的输出及一些控制信号来形成,而读/写控制电路则用来控制对芯片的读/写操作。
  2. I/O电路
    I/O电路位于系统数据总线与被选中的存储单元之间,用来控制信息的读出与写入,必要时,还可包含对I/O信号的驱动及放大处理功能。
  3. 集电极开路或三态输出缓冲器
    为了扩充存储器系统的容量,常常需要将几片RAM芯片的数据线并联使用或与双向的数据线相连,这就要用到集电极开路或三态输出缓冲器。
  4. 其它外围电路
    对不同类型的存储器系统,有时,还专门需要一些特殊的外围电路,如动态RAM中的预充电及刷新操作控制电路等,这也是存储器系统的重要组成部分。
    在这里插入图片描述

4.1.3 选择存储器器件的考虑因素

  1. 易失性
    易失性是区分存储器种类的重要外部特性之一。易失性是指电源断开之后,存储器的内容是否丢失。
    如果某种存储器在断电之后,仍能保存其中的内容,则为非易失性存储器(外部存储器、ROM) ;否则,就叫易失性存储器(RAM)

  2. 只读性
    只读性是区分存储器种类的又一个重要特性。
    如果某个存储器中写入数据后,只能被读出,但不能写入,那么这种存储器叫只读存储器,即ROM(read only memory);如果一个存储器在写入数据后,既可对它进行读出,又可再对它修改,那么就叫可读写存储器。

  3. 存储容量
    每个芯片中的存储单元的总数即存储容量。存储容量和芯片集成度有关,也和器件基本单元的工作原理和类型有关。
    内存条有8位数据宽度的30引线的SIMM(single inline memory module)、 32位数据宽度的72引线的SIMM和64位数据宽度的168引线DIMM (dual inline memory module)

  4. 速度
    存储器的速度是用存储器访问时间来衡量的。访问时间就是指存储器接收到稳定的地址信号到完成操作的时间。访问时间的长短决定于许多因素,主要与制造器件的工艺有关。
    当前,半导体存储器主要用两大类工艺,一类是双极性的TTL技术,一类是金属氧化物半导体MOS技术,后者又分CMOS和HMOS等技术

  5. 功耗
    在用电池供电的系统中,功耗是非常重要的问题。CMOS能够很好地满足低功耗要求。但CMOS能够很好地满足低功耗要求。但CMOS器件容量较小,并且速度慢。功耗和速度是成正比的。

4.1.4 随机存取存储器RAM

RAM按其结构和工作原理分为静态RAM即SRAM(static RAM)和动态RAM即DRAM(dynamic RAM)。 SRAM速度快,不需要刷新,但片容量低,功耗大。 DRAM片容量高,但需要刷新,否则其中的信息就会丢失。

  1. SRAM
    SRAM保存信息的机制是基于双稳态触发器的工作原理,组成双稳态触发器的A、B两管中,A导通B截止时为1,反之,A截止B导通时为0。其内部基本电路中,用2个晶体管构成双稳态触发器,2个晶体管作为负载电路,还有2个晶体管用来控制双稳态触发器。
    缺点:容量小、功耗大
    优点:不需要刷新,简化了外部电路
  2. DRAM
    (1) DRAM器件
    DRAM是利用电容存储电荷的原理来保存信息的,它将晶体管结电容的充电状态和放电状态分别作为1和0。
    DRAM的基本单元电路简单,最简单的DRAM单元只需一个管子构成,这使DRAM器件的芯片容量很高,而且功耗低。但是由于电容会逐渐放电,所以对DRAM必须不断进行读出和再写入,以使泄放的电荷得到补充,也就是刷新。
    一次刷新过程实际上就是对存储器进行一次读取、放大和再写入。

(2)动态RAM存储器芯片Intel 2164A
Intel2164A是一种64K×1的动态RAM存储器芯片,它的基本存储单元就是采用单管存储电路,其它的典型芯片有Ietel 21256/21464等。
在这里插入图片描述
Intel 2164A的内部结构
存储体:64K×1的存储体由4个128×128的存储阵列构成;
地址锁存器:由于Intel 2164A采用双译码方式,故其16位地址信息要分两次送入芯片内部。但由于封装的限制,这16位地址信息必须通过同一组引脚分两次接收,因此,在芯片内部有一个能保存8位地址信息的地址锁存器;
数据输入缓冲器: 用以暂存输入的数据;
数据输出缓冲器: 用以暂存要输出的数据;
1/4I/O门电路:由行、列地址信号的最高位控制,能从相应的4个存储矩阵中选择一个进行输入/输出操作;
行、列时钟缓冲器:用以协调行、列地址的选通信号;
写允许时钟缓冲器:用以控制芯片的数据传送方向;
128读出放大器:与4个128×128存储阵列相对应,共有4个128读出放大器,它们能接收由行地址选通的4×128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分;
1/128行、列译码器: 分别用来接收7位的行、列地址,经译码后,从128×128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。

Intel 2164A的外部结构
Intel 2164A是具有16个引脚的双列直插式集成电路芯片,其引脚安排如图4-6所示。
•A0~A7:地址信号的输入引脚,用来分时接收CPU送来的8位行、列地址;
•RAS :行地址选通信号输入引脚,低电平有效,兼作芯片选择信号。当RAS为低电平时,表明芯片当前接收的是行地址;
•CAS :列地址选通信号输入引脚,低电平有效,表明当前正在接收的是列地址(此时RAS应保持为低电平);
•WE : 写允许控制信号输入引脚,当其为低电平时,执行写操作;否则,执行读操作。
• DIN:数据输入引脚;
• DOUT:数据输出引脚;
• VDD:十5V电源引脚;
• Css:地;
• N/C:未用引脚。
在这里插入图片描述

4.1.5 只读存储器ROM

指在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器,在不断发展变化的过程中,也产生了掩模型ROM、可编程只读性PROM、可擦出可编程EPROM、EEPROM、闪烁存储器FLASH等各种不同类型。

ROM器件有两个显著的优点:
结构简单,所以位密度比可读写存储器高。
具有非易失性,所以可靠性高。

  1. 掩膜型ROM
    掩膜型ROM中的信息是厂家根据用户给定的程序或数据对芯片掩膜进行二次光刻而决定的。根据制造技术,掩膜型ROM又可分为MOS型和双极性两种。MOS型功耗小,但速度比较慢,微型机系统中用的ROM主要是这种类型。双极性速度比MOS型快,但功耗大,只用在速度较高的系统中。

  2. 可编程的ROM(PROM)
    掩膜ROM的存储单元在生产完成之后,其所保存的信息就已经固定下来了,这给使用者带来了不便。为了解决这个矛盾,设计制造了一种可由用户通过简易设备写入信息的ROM器件,即可编程的ROM,又称为PROM。
    PROM 的类型有多种,我们以二极管破坏型PROM为例来说明其存储原理。这种PROM存储器在出厂时,存储体中每条字线和位线的交叉处都是两个反向串联的二极管的PN结,字线与位线之间不导通,此时,意味着该存储器中所有的存储内容均为“1”。如果用户需要写入程序,则要通过专门的PROM写入电路,产生足够大的电流把要写入“1”的那个存储位上的二极管击穿,造成这个PN结短路,只剩下顺向的二极管跨连字线和位线,这时,此位就意味着写入了“1”。读出的操作同掩模ROM。
    除此之外,还有一种熔丝式PROM,用户编程时,靠专用写入电路产生脉冲电流,来烧断指定的熔丝,以达到写入“1”的目的。
    对PROM来讲,这个写入的过程称之为固化程序。由于击穿的二极管不能再正常工作,烧断后的熔丝不能再接上,所以这种ROM器件只能固化一次程序,数据写入后,就不能再改变了。

  3. 可擦除、可编程的ROM(EPROM)

  4. 电可擦除可编程序的ROM(Electronic Erasible Programmable ROM)

  5. 快擦型存储器(F1ash Memory)

4.2 微型机系统中存储器的体系结构

4.2 .1 层次化的存储器体系结构

微型计算机系统中,整个存储器体系采用层次化结构。这种层次化结构不但出现在存储器总体结构中,也出现在内存结构中。

  1. 层次化总体结构
    层次化:把各种速度不同、容量不同、存储技术也可能不同的存储设备分为几层,通过硬件和管理软件组成一个既有足够大的空间又能保证满足CPU存取速度要求而且价格适中的整体。这样的存储器具有最好的性能价格比。

分层结构思想:用Cache、内存和辅存来构成层次式的存储器,按使用频度将数据分为不同的档次分放在不同的存储器中,不同层次的存储器之间可以互相传输。

Cache是速度最快的存储器,是静态RAM类型,存取速度和CPU的速度相匹配,但价格也较高,且容量较小。CPU运行过程中,自动将当前要运行的指令和数据装入Cache。 Cache的内容是不断更新的, CPU所需要的信息都可以在Cache中找到,只有较少数情况下, CPU需通过访问DRAM来获得当前所要的信息。

内存由DRAM构成,速度比Cache慢,但容量较大。
辅助存储器即外存(如软盘、硬盘和光盘),速度比内存慢得多,但容量比内存大得多。
为了使Cache、内存和辅存构成协调工作的存储体系,采用虚拟存储技术来实现内存和辅存之间的映射,采用高速缓冲技术来实现Cache和内存之间的映射。
存储器的层次化总体结构:
在这里插入图片描述

  1. 内存的分区结构
    在这里插入图片描述(1)基本内存区
    基本内存区主要供DOS操作系统使用,其中容纳了DOS操作系统、DOS运行需要的系统数据、驱动程序以及中断向量表等。基本内存区为640K,从00000H~9FFFFH。
    在这里插入图片描述

(2)高端内存区
高端内存区留给系统ROM和外部设备的适配卡缓冲区使用。大小为384KB,地址范围为A0000H~FFFFFH。

4.3 高速缓冲技术

4.3.1 Cache概述

一、 问题的提出
微机系统中的内部存储器通常采用动态RAM构成,具有价格低,容量大的特点,但由于动态RAM采用MOS管电容的充放电原理来表示与存储信息,其存取速度相对于CPU的信息处理速度来说较低。这就导致了两者速度的不匹配,也就是说,慢速的存储器限制了高速CPU的性能,影响了微机系统的运行速度,并限制了计算机性能的进一步发挥和提高。高速缓冲存储器就是在这种情况下产生的。

二、 存储器访问的局部性
微机系统进行信息处理的过程就是执行程序的过程,这时,CPU需要频繁地与内存进行数据交换,包括取指令代码及数据的读写操作。通过对大量典型程序的运行情况分析结果表明,在一个较短的时间内,取指令代码的操作往往集中在存储器逻辑地址空间的很小范围内(因为在多数情况下,指令是顺序执行的,因此指令代码地址的分布就是连续的,再加上循环程序段和子程序段都需要重复执行多次,因此对这些局部存储单元的访问就自然具有时间上集中分布的倾向);数据读写操作的这种集中性倾向虽不如取指令代码那么明显,但对数组的存储和访问以及工作单元的选择也可以使存储器单元相对集中。这种对局部范围的存储器单元的防问比较频繁,而对此范围以外的存储单元访问相对甚少的现象,称为程序访问的局部性

三、 Cache-主存存储结构及其实现
为了解决存储器系统的容量、存取速度及单位成本之间的矛盾,可以采用Cache-主存存储结构,即在主存和CPU之间设置高速缓冲存储器Cache,把正在执行的指令代码单元附近的一部分指令代码或数据从主存装入Cache中,供CPU在一段时间内使用,由于存储器访问的局部性,在一定容量Cache的条件下,我们可以做到使CPU大部分取指令代码及进行数据读写的操作都只要通过访问Cache,而不是访问主存而实现

优点:
Cache的读写速度几乎能够与CPU进行匹配,所以微机系统的存取速度可以大大提高;
Cache的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有上升很多。
采用了Cache-主存存储结构以后,整个存储器系统的容量及单位成本能够主存相当,而存取速度可以与Cache的读写速度相当,这就很好地解决了存储器系统的上述三个方面性能之间的矛盾。
在这里插入图片描述一个Cache系统包含三个部分:

  • Cache模块,既CPU和较慢速主存之间的SRAM
  • 主存,即较慢速DRAM
  • Cache控制器,用来对Cache系统进行控制。

在主存—Cache存储体系中,所有的程序代码和数据仍然都存放在主存中,Cache存储器只是在系统运行过程中,动态地存放了主存中的一部分程序块和数据块的副本,这是一种以块为单位的存储方式。块的大小称为“块长”,块长一般取一个主存周期所能调出的信息长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值