第三章 计算机组成原理 存储系统_第1页
第三章 计算机组成原理 存储系统_第2页
第三章 计算机组成原理 存储系统_第3页
第三章 计算机组成原理 存储系统_第4页
第三章 计算机组成原理 存储系统_第5页
已阅读5页,还剩264页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章存储系统主存储器高速缓冲存储器辅助存储器存储器是计算机系统的重要组成部分,有主存和辅助存储之分。计算机工作的过程是执行程序的过程。程序连同所需要的数据要事先存入主存储器中,cpu在执行程序的过程中,要从主存储器中取出指令和参加运算的操作数,运算结束后,再将运算结果写回到主存储器的指定地址。因此,cpu在工作过程中要频繁地与主存储器交换信息,主存储器的性能在很大程度上影响整个计算机系统的性能。可以说,高性能的中央处理器必须与高性能的主存储器配合工作,才能构成高性能的计算机系统。基本概念存储器——存放程序和数据的部件,有主存和辅助存储之分主存储器——用来存放计算机运行期间所需要的程序和数据,cpu可直接随机地进行读/写访问辅助存储器——又称外存储器,用来存放当前暂时不参与运行的程序和数据以及一些需要永久性保存的信息基本概念

存储系统——由几个容量、速度和价格各不相同的存储器构成的系统存储介质——能表示二进制数1和0的物理器件,目前主要采用半导体器件和磁性材料基本概念存储元——存储1位二进制代码信息的器件存储单元——若干个存储元的集合,它可以存放一个字或一个字节存储体——若干个存储单元的集合地址——存储单元的编号基本概念30001H30000H存储元存储单元存储体地址01010100计算机在存取数据时,以存储单元为单位进行存取。机器的所有存储单元长度相同,一般由8的整数倍个存储元构成。同一单元的存储元必须并行工作,同时读出、写入。由许多存储单元构成一台机器的存储体。基本概念例如,某存储器字长16位,共有1024个存储字,那么该存储器的容量为:

102416=16384(位)=16K(位)

=2K(字节)如果主存储器由m个并行工作的存储体构成,那么,主存的容量应为:存储容量——整个存储器所能存放的二进制信息的总位数,通常定义为:基本概念存取时间TA——存取时间又称存储访问时间,是指从启动一次存储器操作到完成该操作所经历的时间,即从向存储器发出读命令开始,到从存储器中读出信息为止所需要的时间。存取时间越短,存储器速度越快。存储周期TM——又称“访问周期”、“读周期”、“写周期”、“读写周期”。它是指连续两次访问存储器的最小时间间隔。基本概念存储器带宽Bm——单位时间里存储器所存取的信息量

由m个并行工作的存储体构成的主存储器带宽应为:Bm=m·L/Tm(位/秒,字节/秒)

显然,Tm越小,Bm越大,存储器速度越快。存储器的分类随着存储器技术的发展,存储器的种类越来越多,根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法:

按存储介质分半导体存储器:用半导体器件组成的存储器。磁表面存储器:用磁性材料做成的存储器。存储器的分类

按存储方式分随机存取存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。顺序存取存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。存储器的分类按存储器的读写功能分只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。随机读写存储器(RAM):既能读出又能写入的半导体存储器。存储器的分类按信息的可保存性分非永久记忆的存储器:断电后信息即消失的存储器。永久记忆性存储器:断电后仍能保存信息的存储器。存储器的分类按在计算机系统中的作用分主存储器辅助存储器高速缓冲存储器控制存储器存储器的分类按对信息的访问方式分

按地址访问存储器——访问时需要给出信息在存储器中的地址按内容访问的存储器——访问时需要给出的是信息本身,常称为“关键字”存储器的分类按读出方式分破坏性读出存储器——每读出一次就会破坏被读出的信息,必须立即将被读出的信息写回去(又称做“再生”)非破坏性读出存储器——不管读出多少次,所存信息一直保持不变存储器的分级结构为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,通常把各种不同存储容量、不同存取速度的存储器,按一定的体系结构组织起来,形成一个统一整体的存储系统。目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。存储器的分级结构高速缓冲存储器:高速存取指令和数据存取速度快,但存储容量小主存储器主存存放计算机运行期间的大量程序和数据存取速度较快,存储容量不大外存储器外存存放系统程序和大型数据文件及数据库存储容量大,位成本低CPU辅助硬件辅助软硬件高速缓冲存储器主存储器辅助存储器主存存放程序的“活跃部分”,直接与cpu交换信息;辅存存放暂时不执行的程序或暂时不用的数据,需要时,将程序或数据以信息块为单位从辅存调入主存储器中。什么时候应将辅存中的信息块调入主存,什么时间将主存中已用完的信息块调入辅存,所有这些操作都是由辅助软硬件来完成辅助硬件完成主存与cache之间的地址变换功能。高速缓冲存储器的访问速度可与CPU相匹配,但其容量比主存储器更小,任何时候cache中的信息是主存储器中一部分信息的副本。当cpu需要访问主存储器时,根据给定的主存储器地址迅速判定该地址中的信息是否已进入cache中,如果已进入cache中,则经地址变换后立即访问cache,如果cache不命中,则直接访问主存储器存储器的用途和特点名称简称用途特点高速缓冲存储器Cache高速存取指令和数据存取速度快,但存储容量小主存储器主存存放计算机运行期间的大量程序和数据存取速度较快,存储容量不大外存储器外存存放系统程序和大型数据文件及数据库存储容量大,位成本低主存储器的主要技术指标主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽指标含义表现单位存储容量在一个存储器中可以容纳的存储单元总数存储空间的大小字,字节数存取时间启动到完成一次存储器操作所经历的时间主存的速度ns存储周期连续启动两次操作所需间隔的最小时间主存的速度ns储器带宽单位时间里存储器所存取的信息量数据传输速率技术指标位/秒,字节/秒主存储器的操作CPUMARMDR主存2k字字长n位k位ABn位DBreadwrite操作:(对CPU而言)取:发送地址——通过AB

发送读选通信号——通过CB(read)

取数据到CPU——通过DB主存储器的操作操作:(对CPU而言)存:发送地址——通过AB

发数据到总线DB发送写选通信号——通过CB(write),数据存入主存.CPUMARMDR主存2k字字长n位k位ABn位DBreadwrite随机读写存储器(RAM)目前广泛采用的半导体存储器是MOS半导体存储器。半导体存储器优点:存取速度快,存储体积小,可靠性高,价格低缺点:非永久性存储器,断电后存储器不能保存信息MOS存储器根据存储元的结构又可分为静态MOS存储器SRAM动态MOS存储器DRAM基本存储元存储元是存储器中的最小存储单位。它的基本作用是存储1位二进制信息。作为存储元的材料或电路,须具备以下基本功能:(1)具有两种稳定状态;(2)两种稳定状态经过外部信号控制可以互相转换;(3)经过控制,能读出其中的信息;(4)如无外部原因,其中的信息能长期保存。SRAM基本存储元两个稳态:T1截止、T2导通为“1”态T2截止、T1导通为“0”态保持状态(X、Y译码线为低电平,T5、T6、T7、T8均截止)保持“1”态:A高→T2导通→B低→T1截止→保持“0”态:A低→T2截止→B高→T1导通→SRAM基本存储元写入状态(X、Y译码线为高电平,T5、T6、T7、T8均导通)写“1”:I/O线加高电平→A高→T2导通I/O线加低电平→B低→T1截止写“0”:I/O线加低电平→A低→T2截止I/O线加高电平→B高→T1导通SRAM基本存储元读出状态(X、Y译码线为高电平,T5、T6、T7、T8均导通)读“1”:(T1截止、T2导通):Vcc从T3到T5、T7使D线有电流;读“0”:(T2截止、T1导通):Vcc从T4到T6、T8使D线有电流,D线无电流。所以,通过判断D线有无电流即可判断读出的是“1”信息还是“0”信息。问题:如何用存储元构成存储器?SRAM存储器的组成半导体读写存储器(RAM)的主体是由许许多多的存储元集合而成,根据存储器的字长,若干个存储元构成一个存储字,若干个存储字构成整个存储器,为了能访问到存储器中任何一个存储字完成读/写功能,存储器中还应包含:地址译码器、读/写控制部件等。存储体地址译码器读/写控制部件等存储器的基本结构地址译码驱动器:存储器I/O读写控制电路数据寄存器2nn位m位(CPU)(CPU)R/W(CPU)地址译码器把输入端二进制代码表示的地址转换成输出端的有效电位,表示选中了某一存储单元。然后由驱动器提供驱动电流去驱动相应的读写电路,完成对被选中存储单元的读写操作。包括读出放大器、写入电路和读写控制电路,用于完成被选中存储单元中各位的读出和写入操作。存储体存储单元的集合,在较大容量的存储器中,往往把各个字的同一位组织在一个集成片中.如4096×1位,是指4096个字的同一位.由这样的16个片子则可组成4096×16的存储器.010:0140954096×1010:01409510……4096×16116016363……1164096×16同一位的这些字通常排列成矩阵的形式,如64×64=4096.由X选择线(行线)和Y选择线(列线)的交叉选择所需要的单元。16块片子的同一位构成一个存储单元,16块片子的同一位并行工作。地址译码器地址译码器:用来指出要写入或读出的数据在存储器中的地址。AR地址译码器地址寄存器存放所要访问(写入或读出)的存储单元的地址把用二进制代码表示的地址转换成输出端的高电位,用来驱动相应的读写电路,以便选择所要访问的存储单元译码方式单译码方式地址译码器只有一个,译码器的输出叫字选线,而字选线选择某个字(某存储单元)的所有位。例如,地址线n=4,经地址译码器译码,可译出24=16个状态,分别对应16个字地址.地址译码驱动器0115……Z00115……Z10115……Z15A0A1A2A3地址译码有两种方式。译码方式双译码方式有两个地址译码器,分成X向和Y向。若每一个有n/2个输入端,它可译出2n/2个输出状态,那么两个译码器交叉译码的结果,共可译出2n/22n/2=2n个输出状态,其中n为地址输入量的二进制位数。但此时译码输出线却只有22n/2根。例如n=12,双译码输出状态为212=4096个,而译码线仅只有2212/2=128根。SRAM存储器的组成X、Y译码器:用来指出要写入或读出的数据在存储器中的地址。片选与读/写控制电路:由于每一个集成片的存储容量终究是有限的,所以需要一定数量的片子按一定方式进行连接后才能组成一个完整的存储器。在地址选择时,首先要片选。只有当片选信号有效时,此片所连的地址线才有效。存储体:409616=8KBSRAM存储器的组成I/O电路:用来控制数据信息的输入和输出,即信息的写入和读出。驱动器:双译码结构中,一条X方向选择线要控制挂在其上的所有存储元电路,故其所带的电容负载很大。为此,在译码器输出后加驱动器,驱动挂在各条X方向选择线上的所有存储元电路。输出驱动电路:为了扩展存储器的容量,常需要将几个芯片的数据线并联使用;另外存储器的读出数据或写入数据都放在双向的数据总线上。这就用到三态输出缓冲器。SRAM存储芯片实例(Inter2114)2114是一个1K4位的SRAM,其结构框图如右:该芯片有:1K4个存储元10条地址输入线A0~A94条数据输入/输出线I/O1~I/O42条控制线WE、CS1K4个存储元集合成一个6464的方阵。SRAM存储芯片实例(Inter2114)采用双译码方式:6位地址码(A8~A3)做行地址,译码后产生64条行选线X0~X63;4位地址码(A9,A2,A1,A0)做列地址,译码后产生16条列选线(Y0~Y15),每条线同时接至4位。当任何一条X选择线和Y选择线被选时,其交点上的4个存储元被选,在WE和CS信号控制下可从该存储字中读出或写入4位信息。SRAM存储芯片实例(Inter2114)写过程:CS、WE有效→输入三态门打开→数据总线上的数据信息写入存储器读过程CS有效、WE无效→输出三态门打开→数据从存储器读出,送至数据总线上注意:由于读操作与写操作是分时进行的,读时不写,写时不读,因此,输入三态门与输出三态门是互锁的,数据总线上的信息不致于造成混乱。2114芯片的读写周期时序读周期:读周期与读出时间是两个不同的概念。读出时间是从给出有效地址到外部数据总线上稳定地出现所读出的数据信息所经历的时间。读周期时间则是存储器进行两次连续读操作时所必须间隔的时间,它总是大于或等于读出时间。写周期:要实现写操作,要求片选CS和写命令WE信号都为低,并且CS信号与WE信号相“与”的宽度至少应为tW。2114芯片的读写周期时序例:下图是某SRAM的写入时序图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按当时地址2450H把数据线上的数据写入存储器。请指出图中的错误,并画出正确的写入时序图。245021592200地址245021592200地址数据245021592200地址数据在R/W线为低电平时,地址、数据都不能再变化。R/WR/W例题某RAM芯片,其存储容量为16K×8位,问:(1)该芯片引出线的最小数目应为多少?(2)存储器芯片的地址范围是什么?(1)16K=214,AB:14DB:8CS:1WE:1VCC:1GND:126(2)0000H~3FFFH各种RAM芯片的外引脚主要有:地址线——Ai数据线——Di片选线——CS读写控制线——WE电源线:Vcc——+5V,工作电源GND——地DRAM存储器六管静态存储元四管动态存储元将六管静态存储元电路中的两个负载管T3、T4去掉,增加一列存储元公用的两个预冲管T9、T10,就形成了四管动态存储元电路。T1、T2为工作管,T5、T6、T7、T8为控制管。由于MOS管的栅极电阻很大,泄漏电流很小,在一定时间内这些信息电荷可以维持住,故动态存储元是利用栅极电容来存储信息的。DRAM存储器两个稳态:C1有电荷、C2无电荷为“0”态C2有电荷、C1无电荷为“1”态保持状态(X、Y译码线为低电平,T5、T6、t7、T8均截止)保持“0”态:C1有电荷→T1导通→A低→C2无电荷→T2截止→B高保持“1”态:C1无电荷→T1截止→A高→C2有电荷→T2导通→B低DRAM存储器写入状态(X、Y译码线为高电平,T5、T6、T7、T8均导通)写“1”:I/O线加高电平→A高→C2充电→T2导通I/O线加低电平→B低→C1放电→T1截止写“0”:I/O线加低电平→A低→C2放电→T2截止I/O线加高电平→B高→C1充电→T1导通DRAM存储器读出状态(X、Y译码线为高电平,T5、T6、T7、T8均导通,同时预充信号为高,T9、T10导通)读“1”:(C2有电荷,C1无电荷):预充信号通过T9到T5、T2对C2补充电荷→T2导通→B低→C1无电荷→T1截止→A高→D线为高;读“0”:(C1有电荷,C2无电荷):预充信号通过T10到T6、T1对C1补充电荷→T1导通→A低→D线为低所以,通过判断D线的高低即可判断读出的是“1”信息还是“0”信息;同时还刷新了所读的存储元。DRAM存储器刷新操作(X译码线为高电平,即T5、T6导通,同时预充信号为高,T9、T10导通)若C2有电荷,C1无电荷,则预充信号通过T9到T5、T2对C2补充电荷若C1有电荷,C2无电荷,预充信号通过T10到T6、T1对C1补充电荷由于刷新时不加Y译码信号,所以刷新时不读出。即:读出时可以刷新,但刷新时不读出。由于存储的信息电荷终究是有泄漏的,电荷数又不能像六管电路那样经负载管来不断补充,时间一长,就会丢失信息。为此,必须设法由外界按一定规律不断给栅极进行充电,补充栅极的信息电荷,这就是所谓”刷新“单管动态存储元为了进一步缩小存储器的体积,提高它们的集成度,人们又设计了单管动态存储元。单管动态存储元电路由一个管子T1和一个电容C构成。晶体管数目进一步减少。写入:字选择线为“1”→该存储元被选→T1管导通→写入信息由位线D(数据线)经T1管向C充电D=1时C上充有电荷,完成写”1“功能;D=0时C上充无电荷,完成写”0“功能。读出:字选择线为“1”,若原存信息为”1“,C上的电荷通过T1从D线输出“1”,完成读“1”功能;若原存信息为”0“,D线上无输出,完成读“0”功能。单管动态存储元电容C的容量一般比D线上的分布电容Cd还要小。每进行一次读出,电容C上的电荷都会被泄放掉,也就是说,这种存储元每读出一次,原来读出的信息将被破坏,称为“破坏性读出”。访问这种存储器时,每进行一次读出,必须立即进行一次重写操作。单管动态存储元的信息是存储在一个很小电容C上,只能保留2ms的时间,因此也必须在2ms之内进行一次“刷新”操作。单管存储元电路和六、四管存储元电路对比

名称优点缺点六管存储元电路(静态)不需要刷新管子多,速度受到影响,占用的芯片面积大,功耗较大,平时需要保持电流四管存储元电路(动态)外围电路比较简单,刷新时不需要另加外部逻辑管子多,占用的芯片面积大,功耗降低单管存储元电路(动态)元件数量少,集成度高,功耗小破坏性读出,需要有高鉴别能力的读出放大器配合工作,外围电路比较复杂。DRAM存储芯片实例(2116)Intel2116是动态存储器芯片,其容量为16K1(位),其结构框图如图所示:要寻址16K的存储容量,需要14条地址线。14条地址线分成2组,每组7位,用来分时输入行地址和列地址。因此内部设置了两个7位地址锁存器,在RAS和CAS信号控制下,分别用来锁存行地址和列地址。DRAM存储芯片实例(2116)16K(16384)个存储元排列成128128的方阵。读出的一位数据由Dout线输出,写入的一位数据由Din线输入,它们各自设置一位数据锁存器,任何时候哪一个存储元被选,经过读出放大器放大后锁存到输出锁存器中;写入时将输入数据锁存器中的一位数据写入被选的存储元中。控制线只有一条写允许信号WE。共设置256个读出放大器,每64个存储元共用一个读出放大器,这是因为动态存储元的读出信号非常微弱。DRAM的刷新需要定期刷新是动态存储器的最大特点,动态MOS存储器采用“读出”方式进行刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期。在各种动态存储器中常用的刷新方式有集中式、分散式和异步式三种。DRAM的刷新集中式刷新:在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/写或维持周期,而逐行刷新整个存储器。以2116芯片为例,假定读/写周期为500ns,那么刷新128行所需时间为50012810-3=64µs,如果采用集中式刷新方式,那么必须在2ms的时间内集中用64µs的时间对存储器进行刷新,在此期间不允许cpu或其他处理机访问存储器。DRAM的刷新从图中可以看出,在2ms的刷新间隔时间内,共包含4000个读/写周期,集中用128个“假读”周期完成128行的刷新操作,在此期间,存储器不能被访问,常称作“死时间”。该时间占2ms时间的3.2%。显然,存储器的速度越快,“死时间”所占比例越小,因此这种刷新方式宜在高速存储器中使用。DRAM的刷新分散式刷新:把一个存储系统周期tc分为两半,周期前半段时间tm用来读/写操作或维持信息,周期后半段时间tr作为刷新操作时间。从图中可以看出,分散式刷新方式是每读/写一次存储器就刷新一行存储元,这样,每经过128个系统周期时间,整个存储器便全部刷新一遍。假定存储器的读/写周期为500ns,那么相当于读/写周期延长为1000ns。这就是说,每读/写128次存储器就能对128行存储元刷新一遍,其刷新的间隔为128µs,在2ms时间内能对每个存储元刷新16遍。这显然没有必要,而且存储器访问速度因此而降低一倍。其优点是不出现“死时间”。DRAM的刷新异步式刷新方式是前两种方式的结合。其基本思想是将刷新操作平均分配到整个刷新间隔内进行。仍以2116芯片为例,访问周期为500ns,整个芯片共128行,即2ms时间内,只要求刷新128次,于是每行的刷新间隔为:于是将2ms时间分成128段,每段15.5µs,在每段内利用0.5µs的时间刷新一行,保证在2ms时间内能对整个芯片刷新一遍。DRAM的刷新R/WR/WR/W12128…15µs0.5µs15µs0.5µs0.5µs15µs2ms(刷新间隔)从图可见,这种刷新方式是把集中式刷新的64µs“死时间”分散成每15.5µs出现0.5µs的死时间,这对cpu的影响不大,而且不降低存储器的访问速度,控制上也并不复杂,是一种比较实用的方式。DRAM的刷新例:说明1M×1位DRAM片子(内部结构为512×2048)的刷新方法,刷新周期定为8ms。【解】如果选择一个行地址进行刷新,刷新地址为A0—A8,因此这一行上的2048个存储元同时进行刷新,即在8ms内进行512个周期的刷新。按照这个周期数,512×2048=1048576,即对1M位的存储元全部进行刷新。刷新方式可采用:在8ms中进行512次刷新操作的集中刷新方式,假定读/写周期为0.1μs,则所需刷新时间为512×0.1μs,死时间率=51.2/8000×100%=0.64%或按8ms÷512=15.5μs刷新一次的异步刷新方式。三种刷新方式的特点集中刷新方式优点:读写操作时不受刷新工作的影响,因此系统的存取速度比较高;缺点:存在死时间,在死时间内必须停止读写,而且存储容量越大,死区越长。分散式刷新方式优点:没有死区;缺点:加长了系统的存储周期,降低了整机的速度;刷新过于频繁,没有充分利用所允许的最大刷新时间间隔。异步式刷新方式虽然有死区,但比集中方式的死区小得多,这样可以避免使CPU连续等待过长时间,而且减少了刷新次数,充分利用了最大刷新时间间隔。刷新控制为了控制刷新,需要增加刷新控制电路。刷新控制电路的主要任务是解决刷新和CPU访问存储器时间的矛盾。刷新控制电路包括刷新计数器、刷新/访存裁决、刷新控制逻辑等。(1)地址多路开关:刷新时需要提供刷新地址,由多路开关进行选择。(2)刷新定时器:定时电路用来提供刷新请求。存储器控制电路(3)刷新地址计数器:只用RAS信号的刷新操作,需要提供刷新地址计数器。(4)仲裁电路:对同时产生的来自CPU的访问存储器的请求和来自刷新定时器的刷新请求的优先权进行裁定。(5)定时发生器:提供行地址选通信号RAS、列地址选通信号CAS和写信号WE.DRAM的刷新要注意的问题刷新的原因:单管动态RAM是破坏性读出;栅极电容泄漏刷新通常是一行一行地进行,每一行中的存储元同时被刷新,故刷新操作时仅需要行地址,不需要列地址。操作类似于读出操作,但又有所不同。因为刷新操作仅是给栅极电容补充电荷,不需要信息输出。刷新时不需要加片选信号,整个存储器中的所有芯片同时被刷新。因为所有芯片同时被刷新,所以在考虑刷新问题时,应当从单个芯片的存储容量着手,而不是从整个存储器的容量着手。刷新和再生刷新和再生(重写)是两个不同的概念:重写是随机的,某个存储单元只有在破坏性读出之后才需要重写;而刷新是定时的,即使许多记忆单元长期未被访问,若不及时补充电荷的话,信息业会丢失。重写一般是按存储单元进行的,而刷新通常以存储体矩阵中的一行为单位进行。只读存储器

只读存储器(Read-OnlyMemory简称ROM)是指在一般情况下只能读出、不能写入的存储器,要写入时必须采取特殊的方式。优点是具有不易失性,存储器中的信息一旦写入将能永久保持,即使供电电源切断,ROM中存储的信息也不会丢失,因此对于一些需要长期保存、不允许破坏的信息,存储在只读存储器中是非常理想的。只读存储器

只读存储器存入数据的过程,称为对ROM进行编程。根据编程方法不同,ROM通常分为以下几类:只读存储器只读存储器定义优点缺点掩模式ROM数据在芯片制造过程中就确定可靠性和集成度高,价格便宜不能重写,灵活性差一次编程PROM用户可自行改变产品中某些存储元可以根据用户需要编程只能一次性改写多次编程EPROM、EEPROM可以用紫外光照射或电擦除原来的数据,然后再重新写入新的数据可以多次改写ROM中的内容EPROM只读存储元在N基片上生长两个高浓度P区分别形成源极(S)和漏极(D),在S和D之间有一个由多晶硅制作的浮栅,被绝缘物二氧化硅所包围。初始状态时,硅栅上没有电荷,管内无导电沟道,管子截止,S和D之间不通,表示存储的是“1”信息。EPROM只读存储元当需要重新写入新的信息时,需要先用紫外线光照射芯片上的窗口,迫使浮栅上的电荷被泄放掉,管子重新恢复成截止状态,成为全“1”片。需要写入“0”信息时,在S和D之间加上高压和编程脉冲,S和D之间被瞬时击穿,形成导电沟道,迫使管子导通,表示存储的是“0”信息。高压去除后,由于浮栅被SiO2包围,浮栅上的电子无处泄漏,管子保持导通状态,使存储的“0”信息保持不变。EPROM只读存储元读出时地址经译码后某字线被选,迫使各位的T1管导通,若T2管截止,相应位线输出为“1”若T2管导通,电源ED经T3、T1、T2管入地,相应位线输出为“0”。T1T3T2EDEPROM存储元用于存储矩阵中的符号如右图。字线上连接该字的各位存储元,位线与各个字的同一位上的存储元相连,每个存储元包含T1和T2两个MOS管。EPROM和RAM不能。(1)EPROM的编程次数(寿命)是有限的;(2)写入时间过长,即使对于EEPROM,擦除一个字节大约需要10ms,写入一个字节大约需要10s,比SRAM或DRAM的时间长100~1000倍。问题:EPROM既可读,又可写,可以用它代替RAM吗?EPROM2716EPROM芯片的容量为2K8(位),构成8个12816的长方阵,故用11条地址线,7条用于行译码,4条用于列译码。8位输出均有缓冲器。128条行选择线(X0~X127)中每条线上连接16个存储元,16条列选择线(Y0~Y15)中每条列线上连接1288个存储元。EPROM2716读出时Vcc加+5v→PD/PGM端接地→A0~A10确定被选的Xi线和Yj线→8个交点的存储元被选→读出存储在该地址中的8位信息Vcc正常工作时使用+5V电源Cs片选端Vpp片子脱机编程时加+25V电源PD/PGM功率下降/编程输入端EPROM2716写入时Vpp加+25V高压→PD/PGM端上加编程正脉冲(宽度不小于50ms)→8条数据线上给定要求写入的信息→写”1”的存储元其源极被断开→保持截止状态不变→写”0”的存储元,+25V高压迫使浮栅带电→管子导通2716芯片上面有一个圆形玻璃窗口,需要改写时,必须用紫外线从玻璃窗口照射几分钟,整个芯片回到全”1”状态,然后才可重新写入新的内容.EPROM2716工作模式选择PD/PGMCSVppVcc数据输出读低低+5V+5V输出未选中无关高+5V+5V高阻功率下降高无关+5V+5V高阻编程由低到高脉冲高+25V+5V输入存储器的扩展及与cpu的连接主存储器通常由ROM和RAM构成。ROM用来存放操作系统的核心程序,RAM用来供用户随机读写,存放各种信息。不管是ROM还是RAM,通常都是由许多个不同容量的芯片组成,其芯片的数量取决于主存储器的总容量和每个芯片容量的大小。存储器的扩展及与cpu的连接存储器同cpu的连接,要完成:(1)地址线的连接,包括内部地址线和芯片选择线的连接。(2)数据线的连接,数据线对应相连。(3)控制线的连接,控制线主要有读/写线WE和存储器访问线MREQ。连接时,必须根据芯片容量的大小确定出地址线、数据线的数目地址线和数据线数目容量存储单元数决定地址线的数目,n条地址线可访问的存储单元数目为2n存储器字长决定数据线的数目整个存储器所能存放的二进制信息的总位数,通常定义为:地址线和数据线数目某RAM芯片,其存储容量为1024K16位,该芯片的地址线和数据线数目分别为:20,16640KB的内存容量为:6401024=655360字节若一台计算机的字长为4个字节,则表明该机器在cpu中能够作为一个整体加以处理的二进制代码为:32位主存储器的编址方式早期主存储器均按字编址,这就是说cpu访问主存储器时,给出一个地址码,就能从主存储器中读出一个字长的信息或者是将一个字长的信息写入主存储器中,将这样的存储器称做按字地址编址的存储器。随着计算机技术的飞速发展,存储器的字长不断增长,例如存储器字长为32位,如果仍然采用按字编址方式,则每访问一次存储器只能读出或写入32位的信息。32位包含4个字节,如果能让访问存储器的地址指向一个字中的4个字节,就能大大增强访问存储器的灵活性,使得访问一次存储器可读出或写入任何一个字节的信息,也可读出或写入整个字的信息,这就要求主存储器能按字节编址。主存储器的编址方式某系统中主存储器容量为16K32(位),如果采用按字编址方式则访存地址码长度应为14(位),如果采用按字节编址,则访存地址码长度应为16(位)。31000,0000,0000,000000,0000,0000,000100,0000,0000,001011,1111,1111,1111B73A629518403100000,0000,0000,00000000,0000,0000,01000000,0000,0000,10001111,1111,1111,1100FFFFHFFFEHFFFDHFFFCH主存储器的编址方式左图和右图的存储容量相同,都是16K32(位),左图按字编址,每个地址指向一个存储字(32位);右图按字节遍址,每个地址指向一个字节(8位)。由于一个存储字中包含4个字节,所以,按字节编址时,其地址码的长度要比按字编址的地址码长2,这两位为00、01、10、11分别指向一个存储字中的4个字节。可以看出,左图中的地址码是连续的,从0000H~3FFFH,而右图中的地址码是不连续的,这是由于它所指向的是该字中最低端的那个字节。采用按字节编址的存储器可根据给定的字节地址访问存储器中的任何一个字节,也可以根据给定的字节地址访问一个存储字。主存储器的编址方式字节寻址:一个存储单元存放两个或四个字节,并按每个字节进行编址。存储器字存储器内容高字节低字节字地址024

i15…….87……..0字节2n-2字节2n-1::字节i字节i+1::字节2字节3字节0字节1

2n-2字长=2字节低字节——偶地址高字节——奇地址字地址=低字节地址地址线和数据线数目设有一个1MB容量的存储器,字长为32位,问:(1)按字节编址,地址寄存器、数据寄存器各为几位?编址范围为多大?按字节编址,1MB=2208,地址寄存器为20位,数据寄存器为8位,编址范围为00000H~FFFFFH。(2)按半字编址,地址寄存器、数据寄存器各为几位?编址范围为多大?按半字编址,1MB=2208=21916,地址寄存器为19位,数据寄存器为16位,编址范围为00000H~7FFFFH。(3)按字编址,地址寄存器、数据寄存器各为几位?编址范围为多大?按字编址,1MB=2208=21832,地址寄存器为18位,数据寄存器为32位,编址范围为00000H~3FFFFH。地址线和数据线数目机器字长32位,其存储容量为4MB,若按字编址,它的寻址范围是:4MB=2228=22032=0~1MW机器字长16位,其存储容量为2MB,若按半字编址,它的寻址范围是:2MB=2218=0~2MW机器字长32位,其存储容量为8MB,若按双字编址,它的寻址范围是:8MB=2238=22064=0~1M主存储器容量的扩充存储芯片的容量是一定的,一般情况下,一个芯片无法满足主存储器的容量要求,通常可采用位扩展、字扩展或字位同时扩展的方式将许多个芯片组织起来构成主存储器。位扩展:由mKn1的存储器芯片组成mKn2的存储器,需(n2/n1)片mKn1的存储器芯片。字扩展:由m1Kn的存储器芯片组成m2Kn的存储器,需(m2/m1)片m1Kn的存储器芯片。字位同时扩展:由m1Kn1的存储器芯片组成m2Kn2的存储器,需(m2/m1)(n2/n1)片m1Kn1的存储器芯片。位扩展方式16K*1位芯片扩展为16K*8位的存储器CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13当主存储器的字数与单个存储芯片的字数相同而位数不同时,可采用位扩展的方式来组织多个芯片构成主存储器。连接方式:将多片存储器芯片的地址、片选、读写控制端并联,数据端单独引出。位扩展方式例:16K*1位芯片扩展为16K*8位的存储器CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEA0A13D0D1D2D3D4D5D6D7位扩展方式例如,主存储器总容量为64K8(位),而所选用的存储器芯片容量为64K1(位)时,主存储器应由8个芯片构成。csA15A14:64K(位)A0WEDcsA15A14:64K(位)A0WEDcs

A15A14:64K(位)A0WEDWED7D6D0::A15A14A0:::CSooo位扩展方式如果主存储器总容量仍为64K8(位),而所选用的存储器芯片容量为64K2(位),那么主存储器只需4个芯片构成。csA15A14:64K(位)A0WED1D0csA15A14:64K(位)A0WED1D0csA15A14:64K(位)A0WED1D0D7D6D0:D5D4D1::A15A14A0::WECSooo位扩展方式上述两种情况都属于位扩展方式。只是前者每增加一个芯片只扩展一位,而后者每增加一个芯片扩展2位,总字数保持不变,“位扩展”由此而得名。当cpu访问该存储器时,由cpu给定的地址码(A15~A0)、选片信号(CS)和写允许信号(WE)并行送至每个芯片,选中每个芯片上的同一个地址,可从该地址中读出8位数据送至数据总线,或将数据总线上的8位数据写入位于各芯片的同一地址中。位扩展:主存储器的字数与单个存储芯片的字数相同而位数不同时使用,由mKn1的存储器芯片组成mKn2的存储器,需(n2/n1)片mKn1的存储器芯片。字扩展方式当主存储器的字长与单个存储芯片的字长相同而字数不同时,可采用字扩展的方式来组织多个芯片构成主存储器。连接方式:将多片存储器芯片的地址、数据线、读写控制端并联,片选端单独引出。例:由16K*8位扩充成64K*8位的存储器CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13字扩展方式例:由16K*8位扩充成64K*8位的存储器CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13WEA0-A13D0D7字扩展方式例:由16K*8位扩充成64K*8位的存储器CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13WEA0-A13D0|D7译码器A14A15mK→nk,需n/m组芯片,每组一片字扩展方式例如,主存储器总容量为64K8(位),而所选用的存储器芯片容量为8K8(位)每个芯片的容量为8k×8(位),芯片本身只有十三条地址线(A12~A0),由CPU输出的16条地址线分成两部分:A12~A0直接与8个芯片的13位地址复连,高端的3位地址码(A15~A13)经译码后分别用作8个芯片的选片信号CS。字扩展方式csA12A11:64K(位)A0WED7~D0csA12A11:64K(位)A0WED7~D0csA12A11:64K(位)A0WED7~D0::A12A11A0::WED7~D0oooooo译码器Y1Y0A15A14A13Y7字扩展方式芯片号选片地址A15A14A13片内地址A12A11A10A9A8A7A6A5A4A3A2A1A0地址范围000000000000000000011111111111110000~1FFFH001001000000000000011111111111112000~3FFFH010010000000000000011111111111114000~5FFFH011011000000000000011111111111116000~7FFFH100100000000000000011111111111118000~9FFFH10110100000000000001111111111111A000~BFFFH11011000000000000001111111111111C000~DFFFH11111100000000000001111111111111E000~FFFFH8个芯片各包含一片连续的地址区域,如表所示字扩展方式如果主存储器总容量仍为64K8(位),而所选用的存储器芯片容量为16K8(位)csA13A12:64K(位)A0WED7~D0csA13A12:64K(位)A0WED7~D0csA13A12:64K(位)A0WED7~D0::A13A12A0::WED7~D0oooooo译码器Y1Y0A15A14Y4那么主存储器只需4个芯片构成。片内地址增加了一位,选片的地址减少一位字扩展方式可以看出,片内地址增加了一位,选片的地址便减少一位,只需设置2:4译码器来完成选片功能。每个芯片的地址范围扩大了一倍。每增加一片存储芯片,便扩展一片字地址范围,其扩展的范围大小,取决于芯片本身的容量,“字扩展”由此而得名。字扩展方式字扩展:由m1Kn的存储器芯片组成m2Kn的存储器,需(m2/m1)片m1Kn的存储器芯片。1片:0000~3FFFH2片:4000~7FFFH3片:8000~BFFFH4片:C000~FFFFH4个芯片各包含一片连续的地址区域,如表所示:C000H~FFFFHY3=0000000000000111111111111001111118000H~BFFFHY2=0000000000000111111111111001110104000H~7FFFHY1=0000000000000111111111111001101010000H~3FFFHY0=000000000000011111111111100110000A11A10A9A8A7A6A5A4A3A2A1A0A13A12A15A14地址范围译码输出片内地址选片字位同时扩展方式实际中更多出现的是存储器芯片的字长和字数均不能满足主存储器容量要求的情况,这时要采用字位同时扩展方式来构成主存储器。主存储器总容量为64K×8(位),而所选用的存储器芯片容量为8K×4(位)时,主存储器应由16个芯片构成。连接方式:将芯片分组,组内芯片完成位扩展,组芯片实现字扩展。组内芯片的地址、片选、读写控制端并联,数据端单独引出。组间芯片的地址、数据线、读写控制端并联,片选端单独引出。D7~D4译码器Y1Y0A15A14A13D3~D0csA12A11:64K(位)A0WED3~D0csA12A11:64K(位)A0WED3~D0csA12WEA11:64K(位)A0D3~D0csA12WEA11:64K(位)A0D3~D0::A12A11A0::WEoooooooooY7ocsA12WEA11:64K(位)A0D3~D015D3~D0csA12A11:64K(位)A0WE16字位同时扩展方式CPU输出的任何地址码总是位于任何两个芯片中,它们构成一个小组,与一个选片信号相连。任何时候读出或写入的8位数据分别位于同一小组的2个芯片的同一地址中。字位同时扩展方式主存储器总容量为64K×8(位),而所选用的存储器芯片容量为8K×1(位)时,主存储器应由64芯片构成,如图所示。可以看出,任何一列包含8个芯片,构成一个小组与一个片选信号相连,实现位方向的扩展;任何一行包含8个芯片,它们属于不同字的同一位,与一条数据线相连,实现字方向的扩展。当CPU访问主存储器时,任何时候只有同一组的8个芯片被选,可从该组芯片的同一地址中读出或写入8位数据。字位同时扩展:由m1Kn1的存储器芯片组成m2Kn2的存储器,需(m2/m1)(n2/n1)片m1Kn1的存储器芯片。访存地址的译码方式CPU访问主存储器时需要给出地址码,其长度取决于CPU可直接访问的最大存储空间,一般要将其地址码分为片内地址和选片地址两部分。片内地址由低端的地址码构成,其长度取决于存储器芯片的字数,例如芯片容量为8k×4(位)或8k×1(位),它们的片内地址相同,均为13位;而高端的地址码为选片地址,经译码后用来产生选片信号,因此访存地址的译码问题实际只涉及到选片地址部分。关于选片地址的译码有全译码和部分译码之分。访存地址的译码方式全译码方式所谓全译码方式是指选片地址部分全部参加译码,有两种方式需要采用全译码方式。(1)如果实际所使用的存储空间与CPU可访问的最大存储空间相同。例如,CPU给出的访存地址长16位(A15~A0),即可访问的最大存储空间为64K字节。选用存储芯片容量为16k×4(位)共8片,构成四个小组,这时片内地址为14位,选片地址为2位,2位选片地址必须全部参加译码才能产生4个选片信号,分别作为4个小组的选片信号。这种情况下,4个小组的地址范围分别为:0000H~3FFFH4000H~7FFF8000H~BFFFHC000H~FFFFH访存地址的译码方式(2)如果实际使用的存储空间小于CPU可访问的最大存储空间,而对实际空间地址范围有严格的要求。全译码方式74LS138译码器例如,CPU给出访存地址码长16位(A15~A0),可访问的最大存储范围为64KB,而系统中实际使用的存储空间只有8KB,且选用的存储芯片容量为4k×2(位)共8片,并要求其地址范围在4000H~5FFFH范围内.访存地址的译码方式74LS138译码器1162153144135126117108974LS138ABCG2AG2BG1Y7GNDVccY0Y1Y2Y3Y4Y5Y6

A、B、C:地址输入G1、G2A、G2B:允许输入Y0~Y7:译码器输出Vcc:电源GND:地74LS13874LS138译码器真值表G1G2AG2BCBAY0Y1Y2Y3Y4Y5Y6Y71000000100001010001001000110100100010010101001100100111011访存地址的译码方式因此,CPU给出地址码长16位,而系统中实际使用的存储空间只有8KB,且选用的存储芯片容量为4k×2(位)共8片,并要求其地址范围在4000H~5FFFH范围内时,其地址译码方式如图所示:访存地址的译码方式按照这种译码方式,当前使用的存储空间的地址范围被严格地定义在4000H~5FFFH范围内,最大可扩充到32K×8(位)的存储空间。访存地址的译码方式使用芯片号选片地址片内地址译码输出地址范围A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A000000000000000000000111111111111Y0=00000H~0FFFFH00010001000000000000111111111111Y1=01000H~1FFFH00100010000000000000111111111111Y2=02000H~2FFFH00110011000000000000111111111111Y3=03000H~3FFFH①②③④01000100000000000000111111111111Y4=04000H~4FFFH⑤⑥⑦⑧01010101000000000000111111111111Y5=05000H~5FFFH01100110000000000000111111111111Y6=06000H~6FFFH01110111000000000000111111111111Y7=07000H~7FFFH问题:如果将主存容量扩充到64K×8(位),那么译码部分应该怎样修改?部分译码方式全译码方式,它们的共同特点是所使用的存储芯片的地址范围是唯一的。如果实际使用的存储空间比CPU可访问的最大存储空间小,而且对其地址范围没有严格要求的情况下可采用部分译码方式。例如,CPU可提供的地址码为16位,而实际使用的存储容量为16KB,拟采用4K×4(位)的存储芯片共8片,则可采用部分译码方式。部分译码方式CPU输出的16条地址线中,低端的12位(A11~A0)用做片内地址,直接与8个芯片的地址线复连,高端的2位地址码(A13、A12)用作选片地址,经译码后产生4个选片信号分别与4组芯片的CS端相连,最高的2个地址码(A15、A14)没有参加译码,因此被称作部分译码。D3~D0csA11A10:64K(位)A0WED3~D0csA11A10:64K(位)A0WEcsA11WEA10:64K(位)A0D3~D0csA11WEA10:64K(位)A0D3~D0::A11A10A0::oooooooooY3ocsA11WEA10:64K(位)A0D3~D07D3~D0csA11A10:64K(位)A0WE8译码器Y3

Y2

Y1Y0A15A13A12A14o部分译码方式由于采用部分译码方式,使得各组芯片的地址范围不再是唯一的,以由①、②芯片构成的第一组为例,其地址范围如表:选片地址片内地址译码输出地址范围A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A000000000000000000000111111111111Y0=00000H~0FFFH01000100000000000000111111111111Y0=04000H~4FFFH10001000000000000000111111111111Y0=08000H~8FFFH11001100000000000000111111111111Y0=0C000H~CFFFH部分译码方式由于同样的原因,其他3组的地址范围分别是:第2组:1000H~1FFFH,5000H~5FFFH,9000H~9FFFH,D000H~DFFFH第3组:2000H~2FFFH,6000H~6FFFH,A000H~AFFFH,E000H~EFFFH第4组:3000H~3FFFH,7000H~7FFFH,B000H~BFFFH,F000H~FFFFH可以看出,采用部分译码方式的结果,使得各组芯片出现了重叠的地址范围,其他地址重叠区的个数取决于没有参加译码的地址码的位数,上例中,2位地址码(A15、A14)没有参加译码,所以每组芯片都出现4个地址重叠区。2114例题例:用2114芯片组成容量为4K*8位的主存储器,地址范围为1000H~1FFFH。字、位扩展,确定芯片数位:4位→8位—需2片字:1K→4K—分4组CSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WE2114例题CSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WE2114例题CSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECSA0|A9I/O1-4WECS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论