新型大容量闪存芯片-K9K2GXXU0M
摘要:K9K2GXXU0M是三星公司生产的大容量闪存芯片,它的单片容量可高达256M。文中主要介绍了K9K2GXXU0M的特性、管脚功能和操作指令,重点说明了K9K2GXXU0M闪存的各种工作状态,并给出了它们的工作时序。
关键词:闪存;K9K2GXXU0M;大容量 Flash
闪存(FLASH MEMORY闪烁存储器)是一种可以进行电擦写,并在掉电后信息不丢失的存储器,同时该存储器还具有不挥发、功耗低、javascript:window.open(this.src);" style="cursor:pointer;"/>擦写速度快等特点,因而可广泛应用于外部存储领域,如个人计算机和MP3、数码照相机等。但随着闪存应用的逐渐广泛,对闪存芯片容量的要求也越来越高,原来32M、64M的单片容量已经不能再满足人们的要求了。而 K9K2GXXX0M的出现则恰好弥补了这一不足。K9K2GXXX0M是三星公司开发的目前单片容量最大的闪存芯片,它的单片容量高达256M,同时还提供有8M额外容量。该闪存芯片是通过与非单元结构来增大容量的。芯片容量的提高并没有削弱K9K2GXXX0M的功能,它可以在400μs内完成一页2112个字节的编程操作,还可以在2ms内完成128k 字节的擦除操作,同时数据区内的数据能以50ns/byte的速度读出。
K9K2GXXU0M大容量闪存芯片的I/O口既可以作为地址的输入端,也可以作为数据的输入/输出端,同时还可以作为指令的输入端。芯片上的写控制器能自动控制所有编程和擦除操作,包括提供必要的重复脉冲、内部确认和数据空间等。
1 K9K2GXXU0M的性能参数
K9K2GXXU0M的主要特点如下:
●采用3.3V电源;
●芯片内部的存储单元阵列为(256M+8.192M)bit×8bit,数据寄存器和缓冲存储器均为(2k+64)bit×8bit;
●具有指令/地址/数据复用的I/O口;
●在电源转换过程中,其编程和擦除指令均可暂停;
●由于采用可靠的CMOS移动门技术,使得芯片最大可实现100kB编程/擦除循环,该技术可以保证数据保存10年而不丢失。
表1所列是K9K2GXXU0M闪存芯片的编程和擦除特性参数。表中的tCBSY的最长时间取决于内部编程完成和数据存入之间的间隔。
表1 K9K2GXXU0M的编程和擦除特性
参 数 | 符 号 | 最 短 | 典 型 | 最 长 | 单 位 | |
编程时间 | tPROG | 300 | 700 | μs | ||
缓存编程的虚拟忙时间 | tCBSY | 3 | 700 | μs | ||
在同一页中的局部编程循环 | 主列 | NOP | 4 | 周期 | ||
空列 | 4 | 周期 | ||||
块擦除时间 | tBERS | 2 | 3 | ms |
2 K9K2GXXU0M的管脚说明
K9K2GXXU0M有48个引脚,其引脚排列如图1所示。具体功能如下:
I/O0~I/O7:数据输入输出口,I/O口常用于指令和地址的输入以及数据的输入/输出,其中数据在读的过程中输入。当芯片没有被选中或不能输出时,I/O口处于高阻态。
javascript:window.open(this.src);" style="cursor:pointer;"/>
CLE:指令锁存端,用于激活指令到指令寄存器的路径,并在WE上升沿且CLE为高电平时将指令锁存。
ALE:地址锁存端用于激活地址到内部地址寄存器的路径,并在WE上升沿且ALE为高电平时,地址锁存。
CE:片选端用于控制设备的选择。当设备忙时CE为高电平而被忽略,此时设备不能回到备用状态。
RE:读使能端,用于控制数据的连续输出,并将数据送到I/O总线。只有在RE的下降沿时,输出数据才有效,同时,它还可以对内部数据地址进行累加。
WE:写使能控制端,用于控制I/O口的指令写入,同时,通过该端口可以在WE脉冲的上升沿将指令、地址和数据进行锁存。
WP:写保护端,通过WP端可在电源变换中进行写保护。当WP为低电平时,其内部高电平发生器将复位。
图3 编程操作时序图
R/ B:就绪/忙输出,R/ B的输出能够显示设备的操作状态。R/ B处于低电平时,表示有编程、擦除或随机读操作正在进行。操作完成后,R/ B会自动返回高电平。由于该端是漏极开路输出,所以即使当芯片没有被选中或输出被禁止时,它也不会处于高阻态。
PRE:通电读操作,用于控制通电时的自动读操作,PRE端接到VCC可实现通电自动读操作。
● VCC:芯片电源端。
● VSS:芯片接地端。
● NC:悬空。
3 K9K2GXXU0M的坏块
闪存同其它固体存储器一样都会产生坏块。坏块是包含一位或多位无效位的块。在K9K2GXXU0M中坏块并不影响正常部分的工作,这是因为在K9K2GXXU0M中,各块之间是隔离的。坏块均可以通过地址的布置系统找到,而在K9K2GXXU0M中地址为00h的第一块一定应当是正常的。坏块在大多数情况下也是可擦写的,并且一旦被擦掉就不可能恢复。因此,系统必须能根据坏块信息来识别坏块,并通过流程图建立坏块信息表,以防止坏块信息被擦除。
在闪存的使用中,可能会产生新的坏块,从而使正常工作出现一些错误。在擦除和编程操作后,如果出现读失败,应当进行块置换。块置换是由容量为一页的缓冲器来执行的,可以通过发现一个可擦的空块和重新对当前数据对象进行编程来复制块中的剩余部分。为了提高存储空间的使用效率,当由单个字节错误而引起的读或确认错误时,应由ECC收回而不要进行任何块置换。
4 K9K2GXXU0M的工作状态
4.1 按页读操作
K9K2GXXU0M的默认状态为读状态。读操作是以通过4个地址周期将00h地址写到指令寄存器为开始指令,一旦该指令被锁存,就不能在下页中写入读操作了。
当地址变化时,随机读操作可以将选定页中的2112字节数据在25μs内存入数据寄存器中。系统可以通过分析R/ B脚的输出来判断数据转移是否完成。而存入数据寄存器的数据可以很快地被读出,如一页的数据通过连续的RE脉冲可以在50ns内读出。
可以通过写入随机数据输出指令来从一页中随机地输出数据。数据地址可以从将要输出的数据地址中通过随机输出指令自动找到下一个地址。随机数据输出操作可以多次使用。图2给出了读操作的时序图。
4.2 页编程
K9K2GXXU0M的编程是按页进行的,但它在单页编程周期中支持多个部分页编程,而部分页的连续字节数为2112。写入页编程确认指令(10h)即可开始编程操作,但写入指令(10h)前还必须输入连续数据。
连续装载数据在写入连续数据输入指令(80h)后,将开始4个周期的地址输入和数据装载,而字却不同于编程的数据,它不需要装载。芯片支持在页中随机输入数据,并可根据随机数据输入指令(85h)自动变换地址。随机数据输入也可以多次使用。图3为其编程操作时序图。
4.3 缓存编程
缓存编程是页编程的一种,可以由2112字节的数据寄存器执行,并只在一个块中有效。因为K9K2GXXU0M有一页缓存,所以当数据寄存器被编入记忆单元中时它便可以执行连续数据输入。缓存编程只有在未完成的编程周期结束且数据寄存器从缓存中传数后才能开始。通过R/ B脚可以判断内部编程是否完成。如果系统只用R/ B来监控程序的进程,那么,最后一页目标程序的次序则必须由当前页编程指令来安排。如果由缓存编程指令来安排,状态位必须在最后一个程序执行完和下一个操作开始前确定。图4为缓存编程操作时序图。
图4 缓存编程时序图