基于闪存的星载大容量存储器的研究和实现

发布者:InspiredDreamer最新更新时间:2006-09-07 来源: 电子查询网关键字:模块  编程  映射  写入 手机看文章 扫描二维码
随时随地手机看文章

  空间飞行器的数据记录设备是卫星上的关键设备之一。自20世纪90年代初起,各航天大国开始研制固态记录器(Solid State Recorder,简称SSR)。由于SSR使用半导体存储芯片作为存储介质,所以其存储密度高、无转动部件、可靠性高、体积小、重量轻,因而逐渐成为空间飞行器的数据记录器的主流方案。闪速存储器(简称闪存)作为一种新兴的半导体存储器件,以其独有的特点得到了迅猛的发展,其主要特点有:(1)具有非易失性,掉电时数据不丢失,可靠性高;(2)功耗小,不加电的情况下可长期保持数据信息;(3)寿命长,可以在在线工作情况下进行写入和擦除,标准擦写次数可达十万次;(4)密度大、成本低,存储单元由一个晶体管构成,具有很高的容量密度,且价格也在不断降低;(5)适应恶劣的空间环境,具有抗震动、抗冲击、温度适应范围宽等特点。由于闪存的这些特点,使它受到了航天领域研究人员的关注。20世纪90年代中期,Firechild公司就曾为F-16侦察星成功设计了SSR2,使用的主要存储芯片就是闪存;国内的FY-2卫星也曾采用闪存作为该星的固态存储器的存储介质。虽然有这些成功的应用案例,但是闪存也存在一些明显的缺点,如写入速度较慢、使用过程中会出现无效块等。本文将探讨如何解决和突破这些缺点,并依此给出一个具体的系统实现方案。

1 闪存构成星载大容量存储器的关键问题

1.1 写入速度问题

目前闪存有多种技术架构,其中以NOR技术和NAND技术为主流技术3。NOR型闪存是随机存取的设备,适用于代码存储;NAND型闪存是线性存取的设备,适用于大容量数据存储4。NAND型闪存有一定的工业标准,具有一些统一的特点,现以三星公司的K9K1G08U0M型芯片为例进行介绍。该芯片容量为1Gbit,由8192个块组成,每块又由32个页组成,一页有(512+16)×8bit,该片的8位I/O总线是命令、地址、数据复用的。读写操作均以页为单位,擦除操作则以块为单位,写入每页的典型时间为200μs4,平均每写一个字节约需400ns,即约20Mb/s。这样的写入(编程)速度对于要求高速的应用场合来讲是难以满足的,因此必须采取一定的技术措施。

1.1.1 并行总线技术

并行总线技术亦称宽带总线技术,即通过拓宽数据总线的带宽实现数据宏观上的并行操作。比如,由四片K9K1G08U0M型闪存芯片组成一个32位宽的闪存子模块,它们共用相同的控制信号,包括片选信号、读写信号、芯片内部地址等。子模块总是被看做一个整体而进行相同的操作,只是数据加载的时候是不同的数据。这样,数据量将是使用单独一块芯片时的4倍,所以理论上速度也将是非并行时的4倍。

1.1.2 流水线技术

借鉴现今高性能计算机中的流水线操作原理,可在时间片上实现微观并行。针对闪存的写入速度慢的问题,可以对其进行流水处理。K9K1G08U0M型闪存的写入操作可分为三个步骤:(1)加载操作,即完成命令、地址和数据的载入工作;(2)自动编程操作,即由闪存芯片自动完成编程操作,将载入到页寄存器的数据写到内部存储单元的;(3)检测操作,即在自动编程结束后检测写入的数据是否正确。如果不正确,需要重新编程;如果正确,继续下一步的操作。写流水原理图如图1所示。由图1可以看到,流水线运行起来后,在任一时间片上总有若干小操作在同时进行,即在时间片上实现了复用,因此从整体上看速度将会提高。

  1.2 无效块的管理

三星闪存芯片在使用过程中会出现无效块。无效块是指一个块中存在一个或多个无效位,其可靠性不能得到保证,必须加以标识和旁路(当然无效块不会影响到其它块的有效性)4并进行数据备份。为了对无效块实现管理,可以建立一张无效块到冗余区有效块的映射表。映射表结构如图2所示。映射原理如下: 开始是一张初始无效块映射表,这张表可以根据三星公司技术手册给出的算法建立起来。按照图示的映射数据结构对整个存储区进行编号,并根据这个编号对映射表进行排序。进行写操作时,按照上述的映射结构将写地址与映射表进行比较,比较到块级即可。如果是无效块,将待写入的数据写到被映射到的块;如果不是,则直接写入该块。如果在写某块的某页时出现编程错误,则将该块添加进无效块映射表(当编程出错时就表明出错页对应的块无效),同时从该出错页开始,将该块后面的页数据都写入到对应的映射块。这样,在数据读出时,可将读地址与映射表比较,并且需要比较到页级以确定每一页的确切存放位置。如果该页编程正确,则直接读出;如果错误,则到被映射的块的对应页读数据,并且该页之后的页也从被映射块中读数据。根据三星的技术资料,对无效块进行读操作是允许的,即对于编程出错页前面的那些编程正确的页是可以正确读出的,而对无效块进行编程和擦除的操作是不推荐的,因为有时这些操作会使邻近的块也失效4。所以读操作要查找到每一页的对应存放位置,而写操作只要查找到块就行。查找时采用二分查找算法。擦除完后,将擦除出错的块也添加进无效块映射表。无效块映射表需要不断维护和更新。

2 闪存构成星载大容量存储器的系统实现方案

2.1 系统的组成

该实现方案将上述关键问题的解决方法融合进来,系统由存储区模块、接口模块、数据缓冲模块及主控模块四部分组成,系统原理图如图3所示。

  2.1.1 存储区模块

为了实现并行和流水技术,整个存储区模块按如下方式构成:由4片K9K1G08U0M型三星闪存芯片组成一个子模块,8个子模块组成8级流水的大模块,而这个大模块即是整个存储区,其总容量为32Gbit。无效块备份的冗余区可以设在每个子模块内部,即从子模块的每块芯片中预留出一部分空间。这种模块化管理的方式既便于系统扩展,又可以在不影响系统正常工作的情况下旁路已损坏的存储块。

2.1.2 接口模块

系统与外部的接口有两个。一是与CPU的接口,主要完成系统的初始化、外部命令和地址的输入以及内部状态参数的输出,同时CPU 还要对存储区完成管理:无效块的管理、地址的译码和映射等;二是与外部高速数据源的接口,主要完成外部高速数据的接收和发送。这里选用了1394高速总线作为数据源总线。

2.1.3 数据缓冲模块

这一模块包括数据输入FIFO、数据输出FIFO和一个作为数据备份的SRAM。由于闪存的写入速度比较慢,如果没有数据缓冲区,外部的高速数据很有可能会丢失,而且数据回放时也需要一个缓冲区使内外的数据率匹配。考虑到编程出错时需要重新加载数据,按照流水线的工作方式,如果不进行数据备份,可能会出现出错时的数据丢失,因此选用了一个SRAM进行数据备份。当将输入FIFO的数据写入FLASH时,同时也将数据写入到SRAM进行备份;当需要重新编程时,再从SRAM中将相应的备份数据重新写入FLASH。

2.1.4 主控模块

这一模块完成整个存储器系统的内部控制,是核心控制机构,连接着存储区、数据缓冲以及外部接口三个模块,完成它们之间的数据、命令、地址、状态的相互传递、转换和处理。主控模块又分为三个子模块,即存储区控制子模块、存储区数据子模块和1394接口控制子模块,分别由三片FPGA(现场可编程逻辑阵列)完成。

3 系统的基本工作原理

下面以闪存的写(编程)操作为线索,阐述系统的基本工作原理。

3.1 写操作的准备和启动

1394高速总线上的串行数据通过一定的接口芯片变换成并行数据。当大容量存储器接收到外部1394高速总线上的数据存储握手信号时,1394接口控制子模块利用握手信号产生一定的时钟和控制信号,控制高速数据缓存入32位的输入FIFO。当输入FIFO的存储量达到一次8级流水运行的数据量时,就向CPU发出中断,申请写操作启动。

  3.2 写流水操作的加载和自动编程

存储区的寻址采用内存寻址方式,即为FLASH存储区分配一段内存空间,CPU象访问内存一样对其进行寻址,大小为2M,共21根地址线,其中高3位是子模块选择,选择8级流水中的某一级;低18位是子模块的每块芯片的页(行)地址。对于芯片内的列地址,由于向每一页写入数据时,总是从页的起始处开始写,即列地址(页内编程起始地址)是固定的,因此可以直接由FPGA给出。当CPU接收到写操作启动的中断申请时,给出写操作命令,并进行地址译码。存储区控制子模块将CPU给出的命令和地址经过一定的逻辑转换成片选、命令、地址及控制信号,依次对8级存储子模块进行片选并完成各级命令和内部地址的加载工作。然后再由存储区控制子模块产生一定的控制信号,控制输入FIFO启动对8级存储子模块的数据加载工作:首先对第一级进行片选,数据流由输入FIFO经存储区数据子模块驱动后输入第一级存储子模块,经过512个写周期后(页有效数据),完成对四片并行的FLASH芯片的页加载,加载完成后由存储区控制子模块给出自动编程的起始指令10H,第一级子模块的四片芯片就开始将加载到页寄存器的数据写入到芯片内部,进行自动编程工作。页编程操作时序图如图4所示,这时它们的片选可以无效。然后使第二级片选信号有效,开始对第二级进行数据加载。依次下去,完成8级存储子模块的数据加载。

3.3 检验写流水操作是否成功

第一级存储子模块在完成了数据加载后开始自动编程,待到8级的数据加载都完成后,其自动编程已接近尾声。此时不断检测该级四片芯片的忙/闲端口,一旦它们都处于“闲”状态时,说明自动编程都已经结束。这时由存储区控制子模块的控制逻辑产生片选信号,选通第一级存储子模块并发读状态命令70H,通过采样四片芯片的I/O端口的“0”状态来检测编程是否成功,并将检测结果锁存进FPGA内部的寄存器;然后按同样的方式对第二级存储子模块进行检测,依次下去,直到“记录”下8级存储子模块的编程成功与否的状态信息后,向CPU申请中断并将这些状态值返回给CPU。CPU则根据这些状态值更新无效块映射表,并将无效块映射到冗余区,对编程出错的存储子模块重新编程。重新编程与正常编程的工作原理是一致的 只不过数据是由SRAM输出给FLASH,且不能进行流水操作。

4 采用并行及流水技术后速率的估算

根据上述实现方案以及三星闪存芯片的时序和各项性能指标参数,可以对采用四片并行和8级流水技术后的写速率做一个理论上的大致估算,整个流水操作完成所需的时间应以最后一级流水完成的时间为准。估算方法如下:令FLASH芯片中一页的数据量为a 并行操作的芯片数为b 流水的总级数为c,命令、地址和数据的加载时间为d 芯片自动编程时间为e,检测时间为f,需重新编程的级数为g,正常写速率为S1,重新写入时的写速率为S2,则:

S1=(a×b×c)/(d×c+e+f)

S2=(a×b×c)/[(d×c+e+f)+(d+e+f)×g]

采用并行和流水技术前后的写速率比较如表1所示。可以看出,采用该方案后的速率较采用前有了大幅度的提高。即使考虑到硬软件的延迟及其它一些因素,这个速率的提升仍然是可观的,说明这个设计方案是可行的。

表1 采用并行和流水技术前后的写速率比较

 

(写入)正常情况

重新写入

编程典型时间200μs

编程最大时间500μs

编程典型时间200μs

编程最大时间500μs

采用前

18.11Mbps

7.78Mbps

9.05Mbps

3.89Mbps

采用后

320.80Mbps

184.98Mbps

206.48Mbps

106.15Mbps

随着空间技术的不断进步,要求空间飞行器上的大容量存储器件朝着更大容量、更高速度、更低功耗、更小的重量和体积、更合理有效的存储区管理以及更高可靠性的方向发展。从商业领域发展而来的闪存,存储密度大、功耗小、可靠性高、体积小、重量轻且成本也在不断降低。对于其写入速度慢及存在无效块等主要缺点,可以通过其自身工艺技术的不断发展及融合其它领域的思想和技术,如本文所述的并行技术、流水线技术等得到解决,因而有着良好的应用前景。

关键字:模块  编程  映射  写入 引用地址:基于闪存的星载大容量存储器的研究和实现

上一篇:基于FLASH介质嵌入式存储方案的设计与实现
下一篇:基于单片机的通用示波器存储功能扩展设计

推荐阅读最新更新时间:2024-05-13 18:14

简易可编程式电子音乐装置电路图
本装置可以编制12秒钟的音乐(还可以扩展时间更长的),把触摸开关装在门上,也可以作为音乐门铃。电路如图10.4.1所示。
[模拟电子]
简易可<font color='red'>编程</font>式电子音乐装置电路图
比亚迪半导体推出集成 PFC 的 IGBT 模块
11 月 30 日消息,据 比亚迪 半导体官方消息,目前,PFC(功率因数校正)电路设计正朝着高效、高频、小体积、低成本以及集成化的方向发展。 比亚迪 半导体基于市场需求及技术发展趋势,推出集成 PFC 的 IGBT 模块新品。 功率因数是用来衡量用电设备用电效率的参数,低功率因数代表低电力效能。为了提高用电设备功率因数的技术就称为 PFC(功率因数校正)。 比亚迪 半导体共推出两款新品: BG50D07N10S5:650V 50A 整流+PFC+逆变模块,采用比亚迪 miniPIM2 封装 BG30K07Q10S5-R:650V 30A PFC+逆变+检流电阻模块,采用比亚迪 miniPIM2 系列封装
[汽车电子]
比亚迪半导体推出集成 PFC 的 IGBT <font color='red'>模块</font>
AVR高压并行编程器的制作方法
手上刚好有几片锁死了的M8,估计连RESET也被禁用了,这些芯片已经无法通过下载线来恢复了。为了减少损失(现在atmega8网上报价20以上,还不敢确定是全新原装货),故在网上一阵搜索,原来AVR的芯片的熔丝都是可重复编程的,不像OTP熔丝,一次配置了就不能修改了,只不过不是需要高压编程器罢了(12v的,不是ISP下载线能胜任的),上淘宝网看了一下,成品高压编程器的价格可不菲,况且我也不是经常用,平时有ISP下载线也就够用了,而且也方便,不用从目标板上取下芯片即可编程,据现在的情况看来,自己做一个简单的高压编程器是势在必行了,并且为了推扬我们的DIY精神,我找了一些资料和软件,准备自己制作高压并行编程器了,经过一阵子的捣鼓,编程器
[单片机]
AVR高压并行<font color='red'>编程</font>器的制作方法
MSP430 我的低功耗系统编程模板
主要应用前后台程序结构来实现,前台程序是各种中断等突发事件,后台程序就是主循环,处理各种事件引起的各种任务. #include MSP430G2553.h int gTaskFlag=0; //任务标志 位 void sysInit() { } void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; sysInit(); //系统初始化 _EINT(); //开中断 while(1) { if((gTask
[单片机]
基于可编程控制的交通红绿灯模拟系统设计
1. 需求分析   本系统的设计首先必须了解交通路灯的亮灭规律。设有一个十字路口,1、3 为南,北方向, 2、4 为东,西方向,初始态为4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮,2、4 路口的红灯亮, 1、3 路口方向通车。延迟一段时间后, 1、3 路口的绿灯熄灭,而1、3 路口的黄灯开始闪烁。闪烁若干次后, 1、3 路口的红灯亮, 同时 2、4 路口的绿灯亮, 2、4 路口方向开始通车。延迟一段时间后, 2、4 路口的绿灯熄灭,而黄灯开始闪烁。闪烁若干次后,再切换到1、3 路口方向。之后,重复上述过程。对于各组灯的亮灭,我们运用的是8255A 的输入输出功能。   2. 对于各组灯亮灭的时间控制方案   A 利用
[工业控制]
基于可<font color='red'>编程</font>控制的交通红绿灯模拟系统设计
STM32操作访问flash,包括写入数据到flash和从flash读取数据
序言:flash相关知识背景 STM32中存储区分为:随机存取存储器RAM和只读存储器ROM。 其中: RAM为常说的内存,比如手机的2G内存4G内存等,就是程序跑起来的时候所占用的存储空间,特点是掉电数据丢失。 ROM为常说的硬盘,比如手机的64G和128G等,可以简单的理解为硬盘的存储空间,特点是掉电数据不丢失,所以又叫“非易失性存储器件”。 ROM又包含:EEPROM和flash。 画个嵌入式产品存储器件的思维导图如下(如有什么地方不对,恳请大神们进行指正): 作为ROM的一份子,flash的特点自然是掉电数据不丢失。但是,flash在STM32中比较重要,程序也是保存在这个地方,所以轻易不让用户进行随意的读写,以
[单片机]
STM32操作访问flash,包括<font color='red'>写入</font>数据到flash和从flash读取数据
欧菲光回应被苹果剔除出局相机模块供应链?
集微网消息,据财联社报道,针对海外媒体关于欧菲光被剔除出苹果相机模块供应链的消息,欧菲光相关负责人表示,相关产品目前仍在正常生产并对苹果供货,该消息不属实。
[手机便携]
欧菲光回应被苹果剔除出局相机<font color='red'>模块</font>供应链?
现代可编程计算机控制器PCC及其应用
    摘 要: 阐述了可编程计算机控制器PCC的硬件特点、软件特点,并结合齐鲁大厦的消防自动化(FA)系统,举例说明了PCC在工程建设计中的应用及其所具有的优势。     关键词: 可编程计算机控制器PCC 硬件特点 软件特点 模块结构 消防自动化         可编程计算机控制器(PCC)作为一个全新的概念是由奥地利B&R在工控界提出的。无论是内部的硬件功能,还是外部的编程、开发环境,PCC都比常规的可编程逻辑控制器(PLC)有较大的增强和提高。     1 PCC的硬件特点     PCC2005采用的是16位MOTOROLA 68000处理器。它得以使PLC演变到PCC的关键是B&R成功地将P
[半导体设计/制造]
小广播
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
502 Bad Gateway

502 Bad Gateway


openresty