Ⅰ 存储器的功能是什么
存储器是用以保存和记录原始数据、运算步骤及中间结果等多种信息的装置。存储器又分内存储器和外存储器。内存储器可以直接和运算器联系。外存储器的容量比内存储器大,它与运算器不直接发生联系,但可以和内存储器交换代码。控制器是用来实现机器各部分的联系和控制,以保证计算过程的装置。控制器能够判读存储器中的程序,判读出指令后,分别发出指令脉冲,取出数据,送到运算器中进行运算。运算器是对代码进行算术运算和逻辑运算的装置。内存储器、运算器和控制器又统称为中央处理器。电子计算机进行自动化运算,都是由中央处理器来完成的。中央处理器是电子计算机内部完成指令读出、解释和执行的部件,简称CPU。
Ⅱ 单片机 flash存储器 大容量数据存储方案
lz想多快?
直接读出来不是挺快的么?按顺序存储。才15个字节,数据量很小了
Ⅲ 存储器层次结构主要体现在什么地方为什么要分这些层次,计算机如何管理这些层次
cpu的内部
第一层:通用寄存器堆
第二层:指令与数据缓冲栈
第三层:高速缓冲存储器
第四层:主储存器(DRAM)
第五层:联机外部储存器(硬磁盘机)
第六层:脱机外部储存器(磁带、光盘存储器等)
这就是存储器的层次结构~~~ 主要体现在访问速度~~~
① 设置多个存储器并且使他们并行工作。本质:增添瓶颈部件数目,使它们并行工作,从而减缓固定瓶颈。
② 采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。本质:把瓶颈部件分为多个流水线部件,加大操作时间的重叠、提高速度,从而减缓固定瓶颈。
③ 在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。增加CPU中寄存器的数量,也可大大缓解对存储器的压力。本质:缓冲技术,用于减缓暂时性瓶颈。
Ⅳ 可以实现虚拟存储器的方案是() A、固定分区方式B、可变分区方式C、纯分页方式D、请求页式
1. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?
a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的-库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存; b. 装入模块的方式有: 绝对装入方式,可重定位方式和动态运行时装入方式; c. 绝对装入方式适用于单道程序环境下; d. 可重定位方式适用于多道程序环境下; e. 动态运行时装入方式也适用于多道程序环境下.
2. 何谓静态链接及装入时动态链接和运行时的动态链接?
a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式;
b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式;
c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行.
3. 在进行程序链接时,应完成哪些工作?
a. 对相对地址进行修改; b. 变换外部调用符号.
4. 在动态分区分配方式中,可利用哪些分区分配算法?
a. 首次适应算法; b. 循环首次适应算法; c. 最佳适应算法.
5. 在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?
应在每个分区的起始地址部分,设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针;在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链.
6. 为什么要引入动态重定位?如何实现?
a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位. b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真-
正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.
8. 在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?
a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分配新表项,而只修改前邻接分区的大小;
b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大-小为两者之和;
c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三区之和,取消后邻接分区的表项;
d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大小,并根据其首址,插入到空闲链中的适当位置.
9. 在系统中引入对换后带有哪些好处?
能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率.
10 为实现对换,系统应具备哪几方面功能?
a. 对对换空间的管理; b. 进程的换出; c. 进程的换入.
11 在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?
a. 以进程为单位进行对换时,每次都将整个进程换出; b. 目的为了解决内存紧张的问题,提高内存的利用率.
13 请较详细地说明,引入分段存储管理是为了满足用户哪几方面的需要?
a. 方便了编程; b. 实现了分段共享; c. 实现了分段保护; d. 实现了动态链接; e. 实现了动态增长.
14 在具有快表的段页式存储管理方式中,如何实现地址变换?
首先,必须配置一段表寄存器,在其中存放段表始址和段长TL. 进行地址变换时,先利用段号S,与段长TL进行比较,若S<TL,表示未越界,(若S>=TL,表示段号太大,访问越界,产生越界中断信号)于是利用段表始址和段号来求出该段对应的段表项在段表中的位置,从中求出该段的页表始址,并利用逻辑地址中
的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再用块号b和页内地址构成物理地址.
15 为什么说分段系统较之分页系统更易于实现信息共享和保护?
a. 对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;
b. 而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时.只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可.
16 分页和分段有何区别?
a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;
b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要;
c. 页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;
d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的.
17 试全面比较连续分配和离散分配方式.
a. 连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的
多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法FF,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但
会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;
b. 离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理
则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;
c. 综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.57
Ⅳ (单片机)如下图为单片机扩展存储器方案。如何实现篇选哪些是数据存储器哪些是程序存储器
(单片机)如下图为单片机扩展存储器方案。如何实现篇选?哪些是数据存储器?哪些是程序存储器?
用 139,二变四的译码器,输出四路,分别送到各个 CE 端,来实现片选;同RD、WR 相连的,是数据存储器,而同PSEN 相连的,是程序存储器。
Ⅵ 存储器的原理是什么
存储器讲述工作原理及作用
介绍
存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
2.按存取方式分类
(1)随机存储器(RAM):如果存储器中任何存储单元的内容都能被随机存取,且存取时间与存储单元的物理位置无关,则这种存储器称为随机存储器(RAM)。RAM主要用来存放各种输入/输出的程序、数据、中间运算结果以及存放与外界交换的信息和做堆栈用。随机存储器主要充当高速缓冲存储器和主存储器。
(2)串行访问存储器(SAS):如果存储器只能按某种顺序来存取,也就是说,存取时间与存储单元的物理位置有关,则这种存储器称为串行访问存储器。串行存储器又可分为顺序存取存储器(SAM)和直接存取存储器(DAM)。顺序存取存储器是完全的串行访问存储器,如磁带,信息以顺序的方式从存储介质的始端开始写入(或读出);直接存取存储器是部分串行访问存储器,如磁盘存储器,它介于顺序存取和随机存取之间。
(3)只读存储器(ROM):只读存储器是一种对其内容只能读不能写入的存储器,即预先一次写入的存储器。通常用来存放固定不变的信息。如经常用作微程序控制存储器。目前已有可重写的只读存储器。常见的有掩模ROM(MROM),可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM).ROM的电路比RAM的简单、集成度高,成本低,且是一种非易失性存储器,计算机常把一些管理、监控程序、成熟的用户程序放在ROM中。
3.按信息的可保存性分类
非永久记忆的存储器:断电后信息就消失的存储器,如半导体读/写存储器RAM。
永久性记忆的存储器:断电后仍能保存信息的存储器,如磁性材料做成的存储器以及半导体ROM。
4.按在计算机系统中的作用分
根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
能力影响
从写命令转换到读命令,在某个时间访问某个地址,以及刷新数据等操作都要求数据总线在一定时间内保持休止状态,这样就不能充分利用存储器通道。此外,宽并行总线和DRAM内核预取都经常导致不必要的大数据量存取。在指定的时间段内,存储器控制器能存取的有用数据称为有效数据速率,这很大程度上取决于系统的特定应用。有效数据速率随着时间而变化,常低于峰值数据速率。在某些系统中,有效数据速率可下降到峰值速率的10%以下。
通常,这些系统受益于那些能产生更高有效数据速率的存储器技术的变化。在CPU方面存在类似的现象,最近几年诸如AMD和 TRANSMETA等公司已经指出,在测量基于CPU的系统的性能时,时钟频率不是唯一的要素。存储器技术已经很成熟,峰值速率和有效数据速率或许并不比以前匹配的更好。尽管峰值速率依然是存储器技术最重要的参数之一,但其他结构参数也可以极大地影响存储器系统的性能。
影响有效数据速率的参数
有几类影响有效数据速率的参数,其一是导致数据总线进入若干周期的停止状态。在这类参数中,总线转换、行周期时间、CAS延时以及RAS到CAS的延时(tRCD)引发系统结构中的大部分延迟问题。
总线转换本身会在数据通道上产生非常长的停止时间。以GDDR3系统为例,该系统对存储器的开放页不断写入数据。在这期间,存储器系统的有效数据速率与其峰值速率相当。不过,假设100个时钟周期中,存储器控制器从读转换到写。由于这个转换需要6个时钟周期,有效的数据速率下降到峰值速率的 94%。在这100个时钟周期中,如果存储器控制器将总线从写转换到读的话,将会丢失更多的时钟周期。这种存储器技术在从写转换到读时需要15个空闲周期,这会将有效数据速率进一步降低到峰值速率的79%。表1显示出针几种高性能存储器技术类似的计算结果。
显然,所有的存储器技术并不相同。需要很多总线转换的系统设计师可以选用诸如XDR、RDRAM或者DDR2这些更高效的技术来提升性能。另一方面,如果系统能将处理事务分组成非常长的读写序列,那么总线转换对有效带宽的影响最小。不过,其他的增加延迟现象,例如库(bank)冲突会降低有效带宽,对性能产生负面影响。
DRAM技术要求库的页或行在存取之前开放。一旦开放,在一个最小周期时间,即行周期时间(tRC)结束之前,同一个库中的不同页不能开放。对存储器开放库的不同页存取被称为分页遗漏,这会导致与任何tRC间隔未满足部分相关的延迟。对于还没有开放足够周期以满足tRC间隙的库而言,分页遗漏被称为库冲突。而tRC决定了库冲突延迟时间的长短,在给定的DRAM上可用的库数量直接影响库冲突产生的频率。
大多数存储器技术有4个或者8个库,在数十个时钟周期具有tRC值。在随机负载情况下,那些具有8个库的内核比具有4个库的内核所发生的库冲突更少。尽管tRC与库数量之间的相互影响很复杂,但是其累计影响可用多种方法量化。
存储器读事务处理
考虑三种简单的存储器读事务处理情况。第一种情况,存储器控制器发出每个事务处理,该事务处理与前一个事务处理产生一个库冲突。控制器必须在打开一个页和打开后续页之间等待一个tRC时间,这样增加了与页循环相关的最大延迟时间。在这种情况下的有效数据速率很大程度上决定于I/O,并主要受限于DRAM内核电路。最大的库冲突频率将有效带宽削减到当前最高端存储器技术峰值的20%到30%。
在第二种情况下,每个事务处理都以随机产生的地址为目标。此时,产生库冲突的机会取决于很多因素,包括tRC和存储器内核中库数量之间的相互作用。tRC值越小,开放页循环地越快,导致库冲突的损失越小。此外,存储器技术具有的库越多,随机地址存取库冲突的机率就越小。
第三种情况,每个事务处理就是一次页命中,在开放页中寻址不同的列地址。控制器不必访问关闭页,允许完全利用总线,这样就得到一种理想的情况,即有效数据速率等于峰值速率。
第一种和第三种情况都涉及到简单的计算,随机情况受其他的特性影响,这些特性没有包括在DRAM或者存储器接口中。存储器控制器仲裁和排队会极大地改善库冲突频率,因为更有可能出现不产生冲突的事务处理,而不是那些导致库冲突的事务处理。
然而,增加存储器队列深度未必增加不同存储器技术之间的相对有效数据速率。例如,即使增加存储器控制队列深度,XDR的有效数据速率也比 GDDR3高20%。存在这种增量主要是因为XDR具有更高的库数量以及更低的tRC值。一般而言,更短的tRC间隔、更多的库数量以及更大的控制器队列能产生更高的有效带宽。
实际上,很多效率限制现象是与行存取粒度相关的问题。tRC约束本质上要求存储器控制器从新开放的行中存取一定量的数据,以确保数据管线保持充满。事实上,为保持数据总线无中断地运行,在开放一个行之后,只须读取很少量的数据,即使不需要额外的数据。
另外一种减少存储器系统有效带宽的主要特性被归类到列存取粒度范畴,它规定了每次读写操作必须传输的数据量。与之相反,行存取粒度规定每个行激活(一般指每个RAS的CAS操作)需要多少单独的读写操作。列存取粒度对有效数据速率具有不易于量化的巨大影响。因为它规定一个读或写操作中需要传输的最小数据量,列存取粒度给那些一次只需要很少数据量的系统带来了问题。例如,一个需要来自两列各8字节的16字节存取粒度系统,必须读取总共32字节以存取两个位置。因为只需要32个字节中的16个字节,系统的有效数据速率降低到峰值速率的50%。总线带宽和脉冲时间长度这两个结构参数规定了存储器系统的存取粒度。
总线带宽是指连接存储器控制器和存储器件之间的数据线数量。它设定最小的存取粒度,因为对于一个指定的存储器事务处理,每条数据线必须至少传递一个数据位。而脉冲时间长度则规定对于指定的事务处理,每条数据线必须传递的位数量。每个事务处理中的每条数据线只传一个数据位的存储技术,其脉冲时间长度为1。总的列存取粒度很简单:列存取粒度=总线宽度×脉冲时间长度。
很多系统架构仅仅通过增加DRAM器件和存储总线带宽就能增加存储系统的可用带宽。毕竟,如果4个400MHz数据速率的连接可实现 1.6GHz的总峰值带宽,那么8个连接将得到3.2GHz。增加一个DRAM器件,电路板上的连线以及ASIC的管脚就会增多,总峰值带宽相应地倍增。
首要的是,架构师希望完全利用峰值带宽,这已经达到他们通过物理设计存储器总线所能达到的最大值。具有256位甚或512位存储总线的图形控制器已并不鲜见,这种控制器需要1,000个,甚至更多的管脚。封装设计师、ASIC底层规划工程师以及电路板设计工程师不能找到采用便宜的、商业上可行的方法来对这么多信号进行布线的硅片区域。仅仅增加总线宽度来获得更高的峰值数据速率,会导致因为列存取粒度限制而降低有效带宽。
假设某个特定存储技术的脉冲时间长度等于1,对于一个存储器处理,512位宽系统的存取粒度为512位(或者64字节)。如果控制器只需要一小段数据,那么剩下的数据就被浪费掉,这就降低了系统的有效数据速率。例如,只需要存储系统32字节数据的控制器将浪费剩余的32字节,进而导致有效的数据速率等于50%的峰值速率。这些计算都假定脉冲时间长度为1。随着存储器接口数据速率增加的趋势,大多数新技术的最低脉冲时间长度都大于1。
选择技巧
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。
选择存储器时应遵循的基本原则
1、内部存储器与外部存储器
一般情况下,当确定了存储程序代码和数据所需要的存储空间之后,设计工程师将决定是采用内部存储器还是外部存储器。通常情况下,内部存储器的性价比最高但灵活性最低,因此设计工程师必须确定对存储的需求将来是否会增长,以及是否有某种途径可以升级到代码空间更大的微控制器。基于成本考虑,人们通常选择能满足应用要求的存储器容量最小的微控制器,因此在预测代码规模的时候要必须特别小心,因为代码规模增大可能要求更换微控制器。目前市场上存在各种规模的外部存储器器件,我们很容易通过增加存储器来适应代码规模的增加。有时这意味着以封装尺寸相同但容量更大的存储器替代现有的存储器,或者在总线上增加存储器。即使微控制器带有内部存储器,也可以通过增加外部串行EEPROM或闪存来满足系统对非易失性存储器的需求。
2、引导存储器
在较大的微控制器系统或基于处理器的系统中,设计工程师可以利用引导代码进行初始化。应用本身通常决定了是否需要引导代码,以及是否需要专门的引导存储器。例如,如果没有外部的寻址总线或串行引导接口,通常使用内部存储器,而不需要专门的引导器件。但在一些没有内部程序存储器的系统中,初始化是操作代码的一部分,因此所有代码都将驻留在同一个外部程序存储器中。某些微控制器既有内部存储器也有外部寻址总线,在这种情况下,引导代码将驻留在内部存储器中,而操作代码在外部存储器中。这很可能是最安全的方法,因为改变操作代码时不会出现意外地修改引导代码。在所有情况下,引导存储器都必须是非易失性存储器。
可以使用任何类型的存储器来满足嵌入式系统的要求,但终端应用和总成本要求通常是影响我们做出决策的主要因素。有时,把几个类型的存储器结合起来使用能更好地满足应用系统的要求。例如,一些PDA设计同时使用易失性存储器和非易失性存储器作为程序存储器和数据存储器。把永久的程序保存在非易失性ROM中,而把由用户下载的程序和数据存储在有电池支持的易失性DRAM中。不管选择哪种存储器类型,在确定将被用于最终应用系统的存储器之前,设计工程师必须仔细折中考虑各种设计因素。
Ⅶ 数据安全解决方案需要哪种存储器
数据安全问题值得企业重视,对于企业来说,都需要一套数据安全解决方案,而这离不开好的存储器的支持。现在很多企业都生产存储器,可选的种类很多,其中戴尔的产品是个不错的选择。在戴尔生产的存储器中,Dell EMC SC5020存储阵列值得选购,它利用现代架构,在优化数据中心经济效益的同时,提供变革性的固态硬盘、硬盘或混合存储性能,自动节省存储成本。戴尔存储器能为企业数据安全提供保障。
Ⅷ 请比较多模块存储器的地址分配方案
首先,买一个三层的核心交换机,分出三个VLAN,分别连接三个大楼的中心交换机,因为你的机器数量较多,大楼之间建议用光纤连接。然后根据机器数量来分配IP,内部IP就可以了,不用申请外部的IP。
再在核心交换机的出口配置上申请的C类地址,做个路由,就可以通过核心交换机上网了,各个大楼内也可以互相访问共享,但是,如果你想各个大楼之间也可以互相访问和共享,那么要在核心交换里设置一下VLAN间的访问了。
(8)存储器处理方案扩展阅读:
模块它具有两个基本的特征:外部特征和内部特征。外部特征是指模块跟外部环境联系的接口(即其他模块或程序调用该模块的方式,包括有输入输出参数、引用的全局变量)和模块的功能;内部特征是指模块的内部环境具有的特点(即该模块的局部数据和程序代码)。
模块有各种类型,如单元操作模块(换热器、精馏塔、压缩机等)、计算方法模块(加速收敛算法、最优化算法等)、物理化学性质模块(汽液相平衡计算、热焓计算等)等。
Ⅸ 如何解决存储器和CPU之间的时序配合问题,述说其详细过程
http://blog.21ic.com/user1/3794/archives/2007/40244.html
分享】存储器与CPU的连接2007-7-19 16:46:00
存储器与CPU的连接
存储器与CPU或系统总线的连接,这个题目很大。注意到以字节为单位组织的存储器是16位宽度、乃至32位宽度的存储器的基础,本着由易到难、由浅入深的原则,这里先考虑以字节为单位组织的存储器与8位CPU的连接,在下一节介绍16位宽度的存储器与16位CPU(以8086为例)的连接,在后面的章节再讨论32位CPU(以80386为例)的存储器组织。
在考虑存储芯片类型时,也是先考虑与CPU连接较为方便的SRAM和ROM,然后再指出DRAM与CPU连接时要特别考虑的地方。
在存储器与CPU连接时一般要考虑以下几个问题:
·CPU总线的负载能力。
·CPU与存储器速度的配合问题。
·存储器的地址空间分配。
·读/写控制信号的连接。
·数据线的连接。
·地址线的连接与存储芯片片选信号的产生。
1.CPU总线的负载能力
CPU总线的驱动能力有限,通常为一到数个,TTL负载,因此,在较大的系统中需要考虑总线驱动。一般做法是,对单向传送的地址和控制总线,可采用三态锁存器(如74LS373、8282等)和三态单向驱动器(如74LS244)等来加以锁存和驱动;对双向传送的数据总线,可采用三态双向驱动器(如74LS245、8286等)来加以驱动。三态双向驱动器也称总线收发器或数据收发器。
2.CPU与存储器速度的配合问题
每一种存储芯片都有自己固有的时序特性,这在前面已多次讲到。在和cPu相连时必须处理好时序的配合问题。处理这个问题应以CPU的时序为基准,从CPU的角度提要求。
例如,存储芯片读取时间应小于CPU从发出地址到要求数据稳定的时间间隔;存储芯片从片选有效到输出稳定的时间应小于系统自片选有效到cPu要求数据稳定的时间间隔。如果没有满足要求的存储芯片,或者出于价格因素而选用速度较慢的存储芯片时,则应提供外部电路,以产生READY信号,迫使CPU插入等待时钟Tw。看一个具体的例子,2114-2的读取时间最大为200 ns,而cPu要求的从地址有效到数据稳定的时间间隔为150 ns,则不能使用2114—2,可选用比它快的芯片。如果出于价格因素,一定要用2114—2,则需要设计READY产生电路,以便插入Tw。
3.存储器的地址空间分配
内存通常分为RAM和ROM两大部分,而RAM又分为操作系统占用区和用户区。另外,目前生产的存储器芯片,单片的容量仍然是有限的,即它的寻址空间是有限的,一般要由若干芯片组成一个存储器。所以,在和CPU连接时需进行存储器的地址空间分配,即需要事先确定每个芯片(或由“×l位”或“×4位”芯片组成的芯片组)所占用的地址空间。
4.读/写控制信号的连接
总的原则是CPU的读/写控制信号分别和存储器芯片的读/写信号输入端相连。实际上,一般存储器芯片没有读输入端,是用写无效时的片选信号兼作读信号。有的存储器芯片设有输出允许()引脚,一般将该引脚和CPU的读信号相连,以便该片被选中且读信号有效时将片内数据输出三态门打开。对于不需要在线编程的ROM芯片,不存在写信号的连接。
5.数据线的连接
这个问题与存储器的读/写宽度有关,而存储器读/写的最大宽度一般为CPU对外数据总线的位数。在考虑存储器与CPU的数据线连接时,总的原则是:如果选用芯片的芯片字和所要设计的存储器的读/写宽度相同,则直接将它的数据线分别和CPU的数据线相连;如果芯片字的位数小于所要设计的存储器的读/写宽度,则需进行“位扩展”,即用几片组合在一起,使它们的芯片字位数的总和等于存储器的读/写宽度,将它们的数据线分别和CPU的数据线按对应关系相连。
这里以8位CPU配8位宽度的存储器为例。若选用“×8位”存储芯片,则将它的8根数据线分别和CPU的8根数据线相连即可;而选用芯片字不足8位的存储芯片,则需要用几片(“×1位”芯片需8片,“×4位”位芯片需2片)才能构成一个8位宽度的存储器,这时,需将这些芯片的数据线按位的对应关系分别和CPU的8根数据线相连。
有些存储芯片,数据的输入和输出分别缓冲,一位数据设置DIN和DOUT两个数据线引脚。对于这种芯片,需将一位的DIN和DOUT引脚连起来,再和CPU的一根数据线相连。
6.地址线的连接及存储芯片片选信号的产生
一个存储器系统通常需要若干个存储芯片。为了能正确实现寻址,一般的做法是,将cPu或系统的一部分地址线(通常是低位地址线,位数取决于存储芯片的容量)连到所有存储芯片,以进行片内寻址(存储芯片内均设有地址译码器);而用另一部分地址线(高位地址线)进行芯片选择。存储器系统设计的关键在于如何进行芯片选择,即如何对高位地址译码以产生芯片的片选信号,常用以下三种方法:
(1)线选法
用一根地址线直接作一个存储芯片的片选信号。例如,一台8位微机,有16根地址线,现要配2 KB RAM和2 KB ROM,均选用2 K×8位的芯片,则各需一片。这时可采用一种最简单的地址选择方法,如图3.24所示。将CPU的地址线的低11位(A10~A0)和两个芯片的地址线分别相连,芯片的片选直接和其他的高位地址线中的一根相连,图中A15反相后接RAM的,A14反相后接ROM的。这样,A15、A14为1 0时选中RAM片,为0 1时选中ROM片。
这里分析一下RAM芯片占用地址空间的情况。未用的地址位(这里是A13~A11)通常取0,即RAM芯片的设计地址空间为8000H~87FFH。将A15、A14固定为1 0,A10一AO作片内寻址,当A13~A11取不同的组合时,可形成包括上述设计空间在内的8个区域。除去设计空间外,其他区域是:8800H~8FFFH,9000H~97FFH,…,B800H~BFFFH。由于A13~A11没有参加译码,访问这7个区域中的任何一个单元都会影响到设计空间中相应的单元,因此,这7个区域不得他用。可以认为这些区域也被该RAM芯片所占用着,称这些区域为设计空间的重叠区。对于该例中的ROM芯片,同样也存在7个重叠区,读者可自行分析。
线选法的优点是简单、无需外加选择电路;缺点是不能有效地利用地址空间,也不便于系统的扩充。该方法可用在存储容量需求小,且不要求扩充的场合,例如单片机应用系统。
(2)全译码
全部地址线参加译码,除去进行片内寻址的低位地址线外,其余地址线均参加译码,以进行片选。例如,一台8位微机,现要求配8 KB RAM,选用2 K×8位的芯片,安排在64 KB地址空间低端的8 KB位置。图3.25所示为该8 KB RAM与CPU(或系统总线)的连接。图中74Lsl38是3线一8线译码器。它有3个代码输入端c、B、A(A为低位)和8个译码输出端Y0~Y7。74LSl38还有3个使能端(或叫允许端)G1、和,第一个为高电平有效,后两个为低电平有效。只有当它们为l 0 0时,译码器才进行正常译码;否则,译码器不工作,所有的输出均无效(为高)。表3.5是74LSl38的真值表。此外,常用的3线一8线译码器还有8205,其输入/输出特性和74LS138完全一样,只是使用了另一组信号名称。
从图3.25中可以看到,除片内寻址的低位地址线外,高位地址都参与了译码。根据图中的接法,当A15~A1l为00000时,YO有效,选中左起第一片;为00001时,Y1有效,选中左起第二片,其他依此类推。
全译码的优点是可利用全部地址空间,可扩充性好;缺点是译码电路开销大。
(3)部分译码
它是前两种方法的综合,即除进行片内寻址的低位地址线外,其余地址线有一部分参加译码以进行片选。以图3.26所示为例,这里最高位A15没有参加译码。因为A15没有参加译码,所以也存在重叠区问题。
部分译码是界于线选法和全译码之间的一种方法,其性能也界于二者之间:可寻址空间比线选法大,比全译码小;而译码电路比线选法复杂,比全译码简单。
上面围绕存储芯片片选信号的产生,说明了三种译码方法。这些方法也适用于后面要介绍的I/O端口的寻址。