微机原理与嵌入式接口技术课件:存储器及其扩展_第1页
微机原理与嵌入式接口技术课件:存储器及其扩展_第2页
微机原理与嵌入式接口技术课件:存储器及其扩展_第3页
微机原理与嵌入式接口技术课件:存储器及其扩展_第4页
微机原理与嵌入式接口技术课件:存储器及其扩展_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

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

文档简介

存储器及其扩展9.1存储器概述9.2存储器系统的层次结构9.3半导体存储器9.4存储芯片的主要技术指标9.5存储器的扩展9.6FSMC扩展存储器接口组习题9

本章要点

☆存储器系统的层次结构

☆存储器的分类

☆存储芯片的主要技术指标

☆存储器容量扩展的一般方法

☆STM32的FSMC扩展存储器

9.1存储器概述

计算机的存储器,从体系结构的观点来划分,可根据其在主机内还是主机外分为内部存储器和外部存储器两大类。

内部存储器(简称内存或主存)是计算机主机的组成部分之一,用来存储当前运行所需要的程序和数据,CUP

可以直接访问内存并与其交换信息。相对外部存储器(简称外存或辅存)而言,内存的容量小、存取速度快。而外存刚好相反,外存用于存放暂时不参加运行的程序和数据,CUP

不能对它直接访问,而必须通过专门的设备才能够对它进行读写(如磁盘驱动器等)。外存的信息调入内存后才能使用,这是它与内存之间的本质区别。外存容量一

般都很大,但存取速度比较慢。

存储器按照使用的存储介质不同,可分为半导体存储器、磁介质存储器(如磁盘存储器与磁带存储器)、光介质存储器(如光盘);按存取方式的不同,可分为随机存储器、顺序存储器、半顺序存储器;按照信息是否可保存,可分为易失性存储器和非易失性存储器;按其在计算机系统中的作用不同,可分为主存储器、辅助存储器、缓冲存储器和控制存储器等。

从使用者的角度来看,存储器具有一维线性结构,有地址和数据两个要素,对存储器进行读写操作时必须提供地址,如图9.1

所示。由于大容量存储器所需的地址较长,在指令中直接使用地址,会使指令变得很长。另外,还希望能灵活地以多种形式访问存储器,因此在CUP

指令中有多种地址形成方式,如寄存器间接寻址、基址寻址等。图9.1存储器的一维线性结构

存储容量是反映存储能力的指标。对于存储芯片及其制造商,一般采用biT

表示存储容量;对于存储器系统和用户,一般用ByTE

表示存储容量。当容量不够时还可以进行横向的位扩展、纵向的字节扩展,字节扩展和位扩展也可以同时进行。在图9.1

中位扩展的是存储器横向数据空间,字节扩展的是存储器纵向地址空间。

9.2存储器系统的层次结构

9.2.1存储器系统的层次结构概述存储器系统是微机重要的子系统,随着计算机技术的发展,它的性能已成为衡量计算机系统性能的核心指标。衡量存储器系统有三个指标:容量、速度和价格/位。

一般来讲,速度高的存储器,单位容量价格也高,因此不能单纯地采用大容量的高速存储器来构成存储器系统。必须采用硬件、软件或软硬件相结合的方法,将各种存储器按层次结构组织起来形成存储器系统,如图9.2

所示。图9.2典型微型计算机存储系统结构

现代计算机的存储系统是分层次的,它们依次是:寄存器→高速缓存→主存→虚拟存储器→各种外存储器,如图9.3

所示,呈现出金字塔结构。图9.3

CachE—主存—辅存三级存储结构

9.2.2

CachE

1.

程序访问的局部性

尽管计算机程序往往需要巨大的快速存储空间,但程序对存储空间的访问并不是均匀的。通过对大量典型程序运行情况的分析表明,在一个较短的时间间隔内,CUP

访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中,而对此范围以外的地址访问甚少,这种现象就称为程序访问的局部性。

存在两种不同类型的局部性:

时间局部性:如果一个数据项正在被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。

空间局部性:将要用到的数据很可能与正在使用的数据在地址空间上是临近的。

指令的顺序执行、循环程序和子程序的多次调用,以及数组、堆栈等连续存放数据结构的使用是产生空间局部性的原因。

2.

CachE

工作原理

据局部性原理,可以在主存和CUP

之间设置一个高速但容量相对较小的CachE,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,访问这个高速存储器即可,不必从主存取指令和数据,从而提高了程序运行速度。例如,一段循环程序要重复执行许多次,把相应的指令和数据放在CachE

中,这段程序的执行就可以加快。

3.

处理器中的CachE

因为由MOS型半导体存储器构成的大容量主存的速度已经完全跟不上处理器的速度,为了匹配CUP

与主存之间的访问速度,处理器中的CachE

通常由速度与CUP

处于一个数量级的双极型SRAM构成,其工作速度极快,通常被称为高速缓存。

4.

外存中的CachE

CachE

本身只是一种存储技术,而不是一种新型的存储器,它通常用来匹配不同工作设备之间的访问速度。在计算机系统中,只要有不同工作速度设备相连接的地方就有可能出现CachE。硬盘驱动器和光盘驱动器中设有CachE,是因为磁存储介质的硬盘和光存储介质的光盘的访问速度比较慢。为了让其他的高速设备访问它们时不至于空等,在进行写入操作时,高速设备可以把写入的内容直接写入到CachE

中,随后驱动器再将缓存的数据真正地写入硬盘或光盘。

在进行读取操作时,驱动器按照一定的算法,预先把高速设备可能需要的数据从硬盘或光盘中读取到CachE

中,若CachE

中的数据恰好是所需的数据,驱动器直接把它送给高速设备。

5.

CachE

工作中存在的问题

作为CachE,它要完成读和写两种缓冲操作。硬盘驱动器和光盘驱动器的CachE

主要用于缓冲写操作,它们需要完成的工作也比较简单。对于写操作的缓冲,只要把缓冲的数据随后写入硬盘或光盘中即可,对于读操作的缓冲工作也不是很复杂。

处理器中的CachE

工作比较复杂,它必须同时完成读和写两种缓冲操作。读操作缓冲的主要性能标志是命中率,它是指CUP

真正需要的数据在CachE

中的概率,显然,只要增加CachE

的容量就能提高命中率,但这不是一种经济的做法,也不是提高命中率的唯一做法。为了充分发挥处理器中CachE

的功效,最大限度地提高其命中率,一些相关的算法应运而生,这些算法主要与CachE

中数据的更新替换有关,它们被统称为CachE

的“替换算法”。替换算法所要解决的问题是如何更新CachE

中的内容,以保证它们正是CUP

当前所需的。

论是写操作缓冲还是读操作缓冲,都要面临CachE

与主存之间内容上的一致性问题。CUP

对CachE

进行写操作后,会使CachE

中的副本与保存在主存中的原型出现不一致。另外,当主存中的内容被其他输入、输出设备修改后也会出现CachE

与主存的不一致。这时,需要对它们进行同步以消除这种不一致性。何时将它们同步、如何将它们同步就是“一致性算法”所要解决的问题。

9.2.3虚拟内存

1.

虚拟内存

虚拟内存实际上是外部存储器(通常是硬盘)中划分出的一部分,用来当做内存使用和管理。CUP

将当前正在运行的程序中暂时不使用的指令和数据存入虚拟内存,从而可以执行比实际物理内存容量更大的程序。

所有的应用程序只需要使用虚拟地址寻址数据,处理器的MMU,内存管理单元)具备内存地址映射和寻址功能,操作系统采取“按需调页”策略,使用MMU

完成从虚拟地址到物理地址的转换。这种使用虚拟地址寻址整个系统内存空间和在辅存中扩展主存的方式被称为虚拟内存。

MMU

在完成从虚拟地址到物理地址之间转换的同时,还可以实现内存管理,使得不同进程有自己单独的进程空间,有效地提高了系统可靠性和安全性。不过,与虚拟内存频繁交换数据会严重影响系统的运行速度。

2.

虚拟内存的应用

目前,通用计算机系统都使用了虚拟内存,如WinDows

的“虚拟内存”、Linux

的“交换空间”等。在WinDows

的“系统属性/高级/性能设置”页面下有虚拟内存的设置,在硬盘上表现为PagEFilE.sys页面文件。

实存储器管理不需要经过MMU,对于内存的访问是直接的,访问的地址直接送到地址线上输出,所有指令访问的地址都是实际的物理地址。在这种方式下,一个进程在执行前,系统必须为它分配足够大的连续地址空间,然后全部载入主存储器的连续空间。

9.3半导体存储器

9.3.1半导体存储器的分类

1.

ROM与RAM半导体存储器按照易失性和可写性标准可分为ROM和RAM

两大类。需要说明的是ROM和RAM

是在不同分类方法下的两个类别,两者本来不具备可比性,但是由于二者的特点十分鲜明,让人直观感受到半导体存储器就是由它们组成的,使得ROM和RAM

的分类方法成为了半导体存储器分类的习惯和现实。

ROM和RAM

都有着对方不具备的显著优点,因此从它们问世开始,让ROM具有RAM

的可直接写入功能、让RAM

具有ROM的非易失性一直是半导体存储器的发展方向。Flash存储器较好地融合了ROM和RAM

的优点。尽管它不能像RAM

那样直接写入,但它的编程速度和方式都有很大改进,目前已经有了非常广泛的应用。而具有非易失性特点的RAM

存储器目前也处于快速的发展过程中,各方面性能还有待提高。

2.

双极型与MOS型半导体存储器

按照存储器内部使用的晶体管类型,半导体存储器被分为了双极型和MOS型两大类。双极型晶体管以电流方式工作,工作速度快,但集成度低、功耗大、价格偏高;MOS型晶体管以电压方式工作,工作速度慢,具有集成度高、制造简单、成本低廉、功耗低等显著优点。

3.

异步型与同步型半导体存储器

按照访问操作时时钟来源的不同,半导体存储器又可分为异步型和同步型。

异步型存储器的工作时钟独立于CUP(或系统总线)的时钟,其访问操作时序的脉冲节拍由存储器本身确定。对于异步型的存储器而言,如果其自身的工作速度很慢,CUP

在访问它时就必须插入额外的等待状态。

9.3.2半导体存储芯片的一般结构

半导体存储芯片的结构如图9.4

所示,下面对其进行简要说明。

存储矩阵是半导体存储芯片的核心部分,负责信息的具体存储工作。它由大量的存储元构成,一个存储元存储一位信息。CUP

发出一个地址,可以寻址一个存储单元,一个存储单元可以有若干条数据线,即一个存储单元可以有若干个存储元。存储单元数据线的数目和芯片数据线的数目一致。图9.4半导体存储芯片结构

对于RAM

来说,如果是读,则被选中的存储单元的数据经数据总线传送给CUP;如果是写,则CUP

发送到数据总线上的数据被控制单元存入被选中的存储单元。

对于早期的ROM来说,由于它们只能被读,所以没有写控制线。

对于可编程的ROM来说,这里的写控制线通常称为“编程模式”选择线。

9.3.3静态RAM

静态RAM以触发器构成存储单元,数据一旦存入就能够稳定地保持下去。基本的6

管NMOS静态存储单元如图9.5

所示,由6

只NMOS管(T

1

~T

6

)组成。T

1

与T

2

构成一个反相器,T

3

与T

4

构成另一个反相器,两个反相器的输入与输出交叉连接,构成基本触发器作为数据存储单元。当T

1

导通、T

3

截止时,F

为0,E

为1;当T

3

导通、T

1

截止时,F为1,E

为0。所以,可用F

点电平的高低来表示“1”和“0”两种信息。图9.5

NMOS静态存储单元

与异步SRAM相比,同步SRAM与CUP

的连接要复杂许多,其价格也高出不少。它的优点是速度快,且支持突发模式(所谓突发模式,是指在一个周期内能完成多个存储区域的读取或写入操作,是一种高速的数据传输模式)。

9.3.4动态RAM

DRAM是通过对电容充、放电来存放信息的。在实际的电路中,电容上的电荷总是不稳定的,会随着放电的过程而逐渐消失。因此需要定时给电容进行充电以保持当前存储的信息。正是因为DRAM需要这种周期性的刷新操作,所以相对于SRAM来说,DRAM是动态的,即DRAM上存储的信息是会在一定范围内波动的。

DRAM是由IBM

公司工程师RobErT

DEnnarD

于1966

年发明。实际的DRAM都是用一个MOS管来存储信息的,如图9.6所示。图9.6

MOS管存储单元

图9.7是DRAM的写操作时序图。读操作与此类似,只是写控制信号是高电平。图9.7

DRAM的写操作时序

DRAM存储器经过不断地发展,先后出现了以下几种主要的类型。

1)DRAM

最原始的DRAM存储器,上面介绍的就是这种DRAM。

2)FOM

DRAM

为提高存储器访问的速度,除了采用更高速度的器件外,还可以采用改进存储空间的组织结构和访问方式来实现。

3)EDO

DRAM

EDO

DRAM,扩展数据输出DRAM)在技术上与FPMDRAM大致相同,它改进了数据输出的控制逻辑和缓冲电路。EDO

DRAM在本周期的数据输出尚未完成时,即可进行下一个连续地址的访问操作,因而取名为“扩展数据输出”。

4)SDRAM

SDRAM(SynchronousDRAM,同步DRAM)中加入了同步控制逻辑,它与CUP(或系统总线)同步工作,避免了对异步DRAM进行操作时可能会出现的额外等待时间,所以提高了数据的传输速度和效率。

5)DDRSDRAM

传统的SDRAM只能在时钟信号的上升沿传输数据,而DDRSDRAM(DoublE

DaTaRaTE

SDRAM,双倍数据速率的SDRAM)的数据线有特殊的电路,可以让它在时钟的上升/下降沿都传输数据。这样能在不改变芯片时钟频率的情况下,使访问速度提升近两倍。

6)DDRIISDRAM

DDRIISDRAM(DoublE

DaTaRaTE

IISDRAM,第二代DDRSDRAM)仍然采用了在时钟的上升/下降沿进行数据传输的基本方式但与DDRSDRAM相比,最大的不同就是拥有两倍于DDRSDRAM的预读取能力。

9.3.5

ROM

只读存储器(REaD

OnlyMEmory,ROM)常用于存储数字系统及计算机中不需改写的数据,例如数据转换表及计算机操作系统程序等。ROM存储的数据不会因断电而消失,即具有非易失性。对可编程的ROM芯片,需要额外的条件,或者专门的写入设备,或者CUP

对其执行一系列规定的总线操作才能将信息写入,这与RAM

的写入过程有较大的区别。一般把对ROM的这种“写”操作称为编程(ProgRAMming)。再次编程要先把ROM中原有信息擦除,另外对ROM的编程有次数限制。

1.

掩模式只读存储器(MROM)

掩模式只读存储器(MaskROM,MROM)中储存的信息在芯片制造过程中就固化好了,用户无法修改。制作掩模板工艺较复杂,生产周期长,因此生产第一片MROM的费用很大,而复制同样的ROM就很便宜了,所以适合于大批量生产,而不适用于科学研究和小批量产品。MROM有双极型、MOS型等几种电路形式。

图9.8

是一个简单的4×4

位MOS管ROM,采用单译码结构,两位地址线A1

、A0

经过译码器译码后有4

种状态,输出4

条选择线,分别选中4

个存储单元,每个存储单元有4位输出。在此矩阵中,行和列交点处有管子连接表示存储“0”信息;没有连接管子表示存储“1”信息。若地址线A1A0=00,则选中0

号单元,即字线0

为高电平,若有管子与其相连(如位线D

2

、D

0

),其相应的MOS管导通,位线输出为0,而位线D

3

、D

1

没有管子与字线相连,则输出为1。因此,单元0

存储1010。对于图9.8

中矩阵,单元1

存储1101;单元2

存储0101;单元3

存储0110。图9.8掩模式ROM

2.

可编程只读存储器(PROM)

可编程只读存储器出厂时各单元内容全为0,用户可用专门的PROM写入器将信息写入,这种写入是破坏性的,即某个存储位一旦写入1,就不能再变为0,因此对这种存储器只能进行一次编程。图9.9

是熔丝型PROM的一个存储单元示意图。图9.9熔丝型PROM存储单元

3.

可擦除/可编程的只读存储器(EPROM)

目前,根据擦除芯片内已有信息方法的不同,可擦除1可编程EPROM可分为两种类型:紫外线擦除PROM(简称EPROM)和电擦除PROM(简称EEPROM或E

2

PROM)。

1)紫外线可擦除的只读存储器EPROM

EPROM采用绝缘栅(或称浮栅)MOS管构成,结构如图9.10

所示。图9.10

EPROM存储单元

EPROM可擦除的次数有限,成本较高,可靠性不如掩模式ROM和PROM。只能对EPROM整个芯片进行擦除,不能只擦除某个单元或者某个位,擦除时间较长,擦/写均需离线操作,使用不方便。因此,能够在线擦写的E

2

PROM芯片近年来得到广泛应用。

2)电可擦除可编程ROM

E

2

PROM也是采用浮栅技术生产的可编程ROM,它同样以浮栅上是否带有电荷决定存储的信息为1

还是0。不同的是,E⁃2

PROM在MOS管的浮栅附近增加了一个栅极(控制栅),给控制栅加上一个正电压,就可

在浮栅和漏极之间形成一个氧化物隧道。通过该隧道,电荷可以被注入浮栅中,从而实现数据的写入;如果给控制栅加上一个负电压,将使浮栅上的电荷泄漏,从而实现数据的“电”可擦除。E2PROM的擦除速度要比紫外线擦除EPROM快得多。

尽管经过改进的E

2

PROM能够在线编程,但它还有很多不完善的地方,如它的擦除速度很快,但编程时间相对RAM

而言还是太长,特别是对大容量的芯片更是如此。在实际应用中,迫切需要一种写入速度类似于RAM,掉电后存储内容又不丢失的存储器。为此,一种新型的称为闪存的快速擦除读写存储器被研制出来。

9.3.6

Flash

闪速存储器(Flash)简称闪存,是在E

2

PROM的技术基础上发展而成,两者的内部结构和技术细节有很多相似之处。Flash的擦除/编程也需要输入一个较高的电压,因此Flash芯片内都备有升压电路。Flash与E

2

PROM一样是用电来擦除,与EPROM一样用单管来存储一位信息。不同的是,Flash能进行整片或整区的擦除,介于E

2

PROM的单个存储区域和EPROM的整片擦除或更新之间。闪存的编程速度快,掉电后存储内容又不丢失,从而得到很广泛的应用。

NOR和NAND是Flash存储器的两种不同制造方式,其命名来源于它们当中单个CEll所使用的逻辑门的类型(NNOR:或非门,NAND:与非门)。NORFlash和NANDFlash经过不断地发展,形成了当今世上两种特色鲜明、不同类型的Flash存储器。下面对这两种Flash进行对比分析。

1.

应用特点

NORFlash的目标是替代现有的EPROM和E

2

PROM。它的突出特点是可以单个字读取,实现片上执行,在NORFlash中既可以保存程序,也能直接执行程序,不必再把代码读到系统RAM

中。NORFlash通常用来存放固件、系统启动代码、PC的BIOS

等一系列不需要经常改写的小程序。

2.

存储空间的组织方式

NORFlash的存储空间的组织方式是:Word→Sector/Block→Bank→Chip。字是其最小单位,字的大小由芯片的数据总线宽度决定。地址连续的一片字存储空间被组成一个Sector/Block。生产NORFlash的各大IC

厂商对Sector/Block

存储空间的定义没有统一标准,所以Sector/Block

的大小不定,通常为KB数量级。Bank

级别的存储空间定义也没有统一标准,通常是多个Sector/Block

构成一个Bank。Chip

为单个存储芯片。

3.

擦除操作

作为Flash存储器,NORFlash和NANDFlash在编程前都需要先擦除。NORFlash的擦除以Sector/Block

为基本单位,也可进行整个Bank/Chip

的擦除操作。

4.

读取与编程操作

NORFlash以字为基本单位进行读取或编程,读取一个字所需的时间通常为几十纳秒,编程一个字所需的时间通常为几至十几微秒。

5.

容量和价格

NAND结构的CE11尺寸几乎仅为NOR结构的CE11尺寸的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量。现有的NORFlash存储芯片,其单片的容量都在lGbiT

以下,而NANDFlash的单片容量已经达到GbiT

的级别,市场上已经有单片容量达32

GbiT

的NANDFlash存储芯片。以单位存储空间的价格计算,NANDFlash要比NORFlash便宜很多。

6.

耐用性和可靠性

Flash存储器的耐用性主要体现在可擦写次数上。在这一点,NANDFlash与NORFlash相比具有一定的优势,常见NANDFlash存储芯片能保证的最大可擦写次数通常在105以上,而常见NORFlash存储芯片能保证的最大可擦写次数通常小于10

5

7.

接口差别与易用性

NORFlash的接口与异步SRAM十分相似,各种微处理器、微控制器都能直接支持NORFlash,并可以在其上面执行代码。

8.

Flash存储器的发展

由于Flash存储器在编程速度上的突破,其应用范围一直在不断扩大。NANDFlash的一个重要发展方向是替换现有的磁介质硬盘,成为计算机系统的海量外存。而NORFlash由于具有片上执行功能,它的一个重要发展方向就是替代现有的各种RAM

存储器,让计算机的主存具有非易失性。

在嵌入式系统中,通常选择NORFlash构建一个小容量的存储区域,该区域被用来存储系统的启动代码,用NANDFlash构建一个海量的存储空间,该区域用来存放操作系统和保存各种需要掉电后保持的海量数据。

9.4存储芯片的主要技术指标

1.存储容量存储容量是指存储器所能存储二进制数据的数量,即所含存储元的总数。存储器芯片的存储容量用“存储单元个数×每个存储单元的位数”来表示。

2.存取时间和存取周期

存取时间又称存储器访问时间,即启动一次存储器操作(读或写)到完成该操作所需要的时间。也就是从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间,即为存储器存取时间。

3.可靠性

可靠性是指存储器对电磁场和温度变化的抗干扰性能。一般用平均无故障时间来表示。

4.功耗

功耗通常是指每个存储单元消耗功率的大小,单位为μW/biT

或者mW/biT。

5.集成度

集成度指在一块存储芯片内能集成多少个基本存储电路,每个基本存储电路存放一位二进制信息,所以集成度常用位/片来表示。

6.性能/价格比

性能/价格比(简称性价比)是衡量存储器经济性能好坏的综合指标,它关系到存储器的实用价值。其中性能包括前述的各项指标,而价格是指存储单元本身和外围电路的总价格。

7.其他指标

体积小、重量轻、价格便宜、使用灵活是微型计算机的主要特点及优点,所以存储器的体积大小、工作温度范围、成本高低等也成为人们关注的性能指标。

9.5存储器的扩展

9.5.1存储器扩展时的问题除了常规的接口引脚定义、逻辑电平与驱动能力、时序逻辑等问题之外,在进行存储器的扩展接口设计时还应考虑以下问题。

1.

存储器容量

不同处理器所能支持的片外存储空间的大小可能不同。

存储器容量有两层含义,一是指系统中的全部存储芯片的总容量;二是指单个存储芯片的容量。

2.

存储空间的安排

处理器所能支持的整个存储空间被划分为多个Bank

时,不同Bank

的功能、存储空间大小均可能不同。

3.

数据总线的宽度

这里的数据总线宽度同时包含了CUP

和半导体存储芯片两者的数据总线宽度。现代计算机的最小存储单位是字节,所以常见的处理器和半导体存储芯片的数据总线宽度都是8

位的整数倍。通常情况下,存储芯片的数据总线宽度就是它的存储单元数据线的数目,所以其存储容量(位)为

芯片存储容量(位)=存储单元数量×数据总线宽度

9.5.2存储容量的位扩展

当给定的存储器芯片存储单元的位数与系统需要的内存单元字长不相等时采用的方法,称为存储容量的位扩展。

下面以用64

K×1

位的存储芯片经过扩展构成64

K×8

位的存储系统为例进行讲解。

1.

计算需要的存储芯片数量

2.

位扩展

位扩展构成的存储器系统中,每个存储单元的内容被存储在不同的存储器芯片上。如图9.11

所示,64

K×8

位存储器中每个单元的8

位二进制数被分别存储在8

个芯片上,即每个芯片存储1

位。因此需要将它们的数据线分别接到数据总线(D

7~D

0

)的相应位上。从数据空间的角度来看,位扩展后存储单元的位数增加了。图9.11存储器的位扩展

因此位扩展存储器时,各存储芯片是“数据并联”工作的。以“三总线”的观点来看,所谓“数据并联”的位扩展有三个方面的含义:

9.5.3存储容量的字扩展

当存储芯片字长已满足要求,但存储单元的个数不够时,需要增加的是存储单元的数量,称为存储容量的字扩展。

1.

计算需要的存储芯片数量

2.

字扩展

字扩展是存储芯片字长满足要求,即不需要扩展存储器的数据空间,需要增加的是存储器的地址空间,因此字扩展是对存储器的一种“地址串联”扩展,如图9.12

所示。图9.12存储器的字扩展

“地址串联”扩展需要把各芯片地址空间串联起来,形成一个连续但不重叠的地址空间,一个时刻只能有一个芯片工作。图9.12

中4

个存储芯片的地址分配如表9.1

所示。

以“三总线”的观点来看,所谓字扩展的“地址串联”有三个方面的含义:

3.

高位地址译码选择存储芯片

通常通过线选法、部分译码法和全译码法三种典型的方法来解决高位地址译码选择存储芯片的问题,这是字扩展主要需要解决的问题。

1)线选法

线选法是直接使用高位地址线来选择不同的存储芯片。一条地址线选择一个存储芯片,所以称为线选法。

线选法的基本原理是使用CUP

空余的高位地址线经过一个“非门”后,直接作为存储芯片的片选信号,图9.13

是其连接示意图。图9.13线选法译码

列出每个芯片的高位地址,芯片的片内地址从全0

变化到全1,就可以确定每个芯片的地址范围。图9.13

中各芯片的地址范围见表9.2。

线选法的优点是结构简单,不需要添加很多的硬件电路。缺点也很明显:首先是系统中有效存储空间的地址不连续,为存储器的使用带来不便;第二,CUP

的可寻址空间被严重浪费。

2)部分译码法

部分译码法是用高位地址的一部分作为译码电路的输入,通过译码电路产生片选信号,选择不同的存储器芯片。对图9.13

改用部分译码法实现,如图9.14

所示。图9.14部分译码法

当然,也可以使用其他的高位地址组合作为译码器的输入。使用不同的高位地址组合将会影响每个存储芯片的地址范围。图9.14

中各芯片的地址范围见表9.3。

3)全译码法

全译码是指将全部高位地址线都作为译码器的输入,再用译码器的输出作为选择存储芯片的片选信号。全译码和部分译码的实现原理没有本质区别,只是使用地址线的数量不同。全译码存储系统需要更复杂的译码器,但没有部分译码的地址重叠现象,地址空间可以得到最充分的利用。对图9.14

改用全译码法实现,如图9.15

所示。图9.15全译码法

在线选法、部分译码法和全译码法的示意图中,都没有画出读/写控制线和数据总线,是因为它们的连接并不是设计的要点。只要按照对应关系,把多个8

位异步SRAM存储芯片的读/写控制线和数据总线分别并在一起,再与CUP

相应的引脚相连即可。

9.5.4

32

位数据总线的存储器接口设计

下面以32

位CUP

与8

位存储器的接口设计为例进行讲解。如图9.16

所示,首先有4个8

位存储器芯片0#~3#,分别挂在32

位数据总线上,这一点看起来有点像位扩展。读/写控制线与前面也没有区别,而在地址总线上却有问题发生。图9.16

32

位CUP

与8

位存储器的接口设计方法A

1.

字节寻址与字寻址的矛盾

不论是16

位还是32

位的CUP,它在进行各种操作时,基本的数据单位都是Byte。因此,它们在访问外部存储芯片时,需要具有可“字节寻址”的地址总线,完成对存储器的“字节访问”。即CUP

的地址总线上,一个有效的“字节地址”寻址一个字节。然而为了提高访问速度,充分利用16/32

位CUP

数据总线宽度,在访问外部存储器时,又需要可“字寻址”的地址总线,完成对存储器的“字访问”,一次存取多个字节。即CUP

的地址总线上,一个有效的“字地址”值寻址一个字。32

位CUP

还可以“半字寻址”。不同数据总线宽度下

的寻址要求见表9.4。

2.

读逻辑修改

由于CUP

是智能部件,具有运算和处理能力,因此在CUP

内部引入一定的控制机制,当CUP

以32

位模式读取一个字节或半字时,能根据自己寻址的字节自动滤去夹杂的无效数据,CUP

外部则无需额外的部件。

3.

地址总线错位对齐与写逻辑修改

1)地址总线错位对齐

如图9.16

所示,设计32

位存储系统时,CUP

地址总线与存储器地址线错两位对齐,它实现了按32

位字访问的要求,这是系统设计的关键点之一。

2)写逻辑修改

为了实现CUP

按字节访问的要求,消除字节寻址与字寻址的矛盾,常见的各种32

位数据总线宽度的处理器写入字节数据时,需要在外部添加一些额外的控制信号线,通常采用以下两种改进方法。图9.17

32

位CUP

与8

位存储器的接口设计方法B

与方法A相比,方法B实际上是将字节选择线和写控制线的逻辑进行了整合,两种改进方法各有特点,其线路连接的方法也有所不同。图9.18

32

位CUP

与16

位存储器的接口设计

9.6

FSMC扩展存储器接口

9.6.1

FSMC简介

FSMC实质上是一种MCU内嵌的可编程时序部件。它综合考虑了各种存储芯片的特点,硬件上FSMC对外提供了地址/数据/控制三总线对应连接存储器;软件上FSMC内置了若干时序模型以匹配不同的存储芯片,对于每种时序模型又有一组时序参数配合,拓宽了可选用的外部存储器的范围,时序模型和参数都可以通过相应的寄存器进行设置。

1.

FSMC的技术优势

(1)支持多种静态存储器类型。STM32通过FSMC即可支持SRAM、PSRAM、NORFlash类型存储器,也支持NANDFlash、PCCARD、CF

及CF+类型存储器。

(2)支持丰富的存储操作方法。FSMC不仅支持多种数据宽度的异步读/写操作,而且支持NOR/PSRAM存储器的同步突发访问。

(3)支持同时扩展多种存储器。FSMC的映射地址空间中,不同的Bank

是独立的,可用于扩展不同类型的存储器。当系统中使用多个外部存储器时,通过FSMC相关参数的设置,可以避免存储器对总线的访问冲突。

(4)支持更为广泛的存储器型号。通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。

(5)支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。

2.

FSMC的结构与工作原理

在STM32内部,FSMC的一端通过内部高速总线AHB

连接到内核CORTExM3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB

总线后,经过FSMC转换为符合外部存储器通信规范的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整。在屏蔽了不同存储类型的差异后,使之对内核而言没有区别。

FSMC功能框图如图9.19

所示。FSMC包含三个主要模块:AHB

接口(包含FSMC配置寄存器)、NORFlash/PSRAM控制器、NANDFlash/PC卡控制器。图9.19

FSMC功能框图

当AHB

操作的数据宽度小于存储器的数据宽度

时,根据外部设备的类型,异步的数据传输有以下两种情况:

(1)与具有字节选择功能的存储器进行异步传输时,FSMC一次读入全部字节,然后舍弃不用的字节,期间字节控制NBL[1:0]为低电平;写入时,FSMC通过控制BL[1:0]取值保证写入正确。

(2)与不具有字节选择功能的存储器进行异步传输时,禁止执行字节写入操作,但可以进行字节读操作(控制器读出16

位数据,舍弃不用的字节,NBL[1:0]为低电平)。

3.

FSMC外部存储器接口信号

FSMC支持的外部存储器种类较多,接口信号可分为四类:NORFlash/PSRAM信号、公用信号、NANDFlash信号、PC卡信号。由于篇幅限制,这里只介绍与SRAM扩展有关的NORFlash/PSRAM信号和公用信号。

FSMC的NORFlash/PSRAM接口信号如表9.8

所示。

9.6.2

FSMC扩展存储器

1.

存储芯片简介

IS62WV51216

是ISSI

公司生产的1

MB(512

K×16)CMOS静态存储器芯片,该芯片具有如下特点:

2.

硬件设计与地址映像

1)FSMC扩展SRAM接口设计从FSMC的外部存储器接口信号和IS62WV51216

引脚功能来看,其引脚是兼容的,因而扩展SRAM比较简单。依据三总线连接规律,得到信号连接方式如表9.10

所示,图9.20是其电路图。图9.20

温馨提示

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

评论

0/150

提交评论