案例分析,NAND FLASH流水实现高速存储
流水技术原理
所谓流水线处理,如同生产装配线一样,是将操作执行工作量分成若干个时间上均衡的操作段,从流水线的起点连续地输入,流水线的各操作段以重叠方式执行。这使得操作执行速度只与流水线输入的速度有关,而与处理所需的时间无关。这样,在理想的流水操作状态下,其运行效率很高。
如果某个设计的处理流程分为若干步骤,而且整个数据处理是单流向的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以采用流水线设计方法来提高系统的工作效率。
利用流水线的设计方法,可大大提高系统的工作速度。这种方法可广泛运用于各种设计,特别是大型的、对速度要求较高的系统设计。虽然采用流水线会增大资源的使用,但是它可降低寄存器间的传播延时,保证系统维持高的系统时钟速度。在实际应用中,考虑到资源的使用和速度的要求,可以根据实际情况来选择流水线的级数以满足设计需要。
下面我们以房屋装修为例展示一下流水线的流程,如图3-7所示。
图3-7 房屋装修流水线示意图
房屋装修分4个步骤,分别是水电改造、木工上场、瓦工上场和油工上场。
如果设计团队由4个人员组成,那么在装修A小区某房屋的时候,需要按照上述出场顺序工作。水电改造工人完成A小区的工作后,可以去B小区某房屋工作,B小区工作完毕后,再去C小区工作。同理,木工、瓦工和油工也是如此。
我们可以得出结论,从水平方向上看,对于某个小区的房屋,需要四个人顺序出场;但是基于某个特定人员,在整个平面上来看,在平面方向上是排满饱和的。
所以基于团队,用流水线的方式确保了高效率,每个人工作量饱满,收益最大。
案例:NAND FLASH流水实现高速存储
NAND FLASH的详细介绍见第9章。
我们知道,NAND FLASH的特点是读/写速度比较慢。
以写为例,写数据后,必须有长时间的编程等待时间,编程结束之后,才能进行下一次写数据过程。
例如:K9K4G08UOM这款芯片的最大写入时间(编程时间)为700 μs,写数据阶段的时间为125 μs(2 Kb/16 M,假如用16 MHz时钟,一次写入2 Kb个数据)。评估一下有效的写入速率为2 Kb/(125 μs+700 μs)=2.42 Mb/s。
我们可以利用流水线技术来提高读/写速度,如图3-8所示。
图3-8 FLASH控制器流水线式进行写操作
示例中,我们用了5片芯片,为写入时间(编程时间)分配了800 μs的时间,为写数据分配了200 μs时间,组成了5级流水。第一片芯片写数据结束、编程等待的时候,对第二片芯片进行写数据,第二片芯片写数据结束、编程等待的时候,对第三片芯片进行写数据,以此类推,第五片芯片写数据结束后,重新对第一片芯片进行写数据。
重新评估一下写入速度为2Kb/200 μs=10Mb/s。
当然,上面的计算是为了方便读者理解来设定的,目的是让800 μs成为200 μs的整数倍,图片看上去美观一些。实际上我们还是用125 μs来进行写数据,写入速度接近16Mb/s。
在大容量存储类的项目中,不止使用流水线技术,还采用并行工作方式,优化之后的速度能达到几百兆。
以上介绍的为FLASH写阶段的流水线过程,读和擦除也可以利用流水线技术,此处不展开论述。
专栏推荐,【零基础学FPGA】
本专栏基于Altera公司的器件和Verilog HDL语言。学完以后,相信读者能够掌握FPGA开发的基本技术,并能够独立进行FPGA项目开发。
NAND flash 信号线的理解
上一篇我们已经讲了NAND flash的分类,这一篇介绍NAND flash 的硬件接口。例如
由NAND Flash的原理图封装,然后查看芯片手册。
由图可知:IO0-IO7:既可传送数据也可传送地址,也可以送传命令。那到底是读是写,还是擦除?怎么区分IO0-IO7传送的是数据?地址?命令? 那么就需要通过CLE与ALE的状态来区分了。
假如2440要读取A地址的数据,或将数据写入B地址。当CLE为高电平表示IO0-IO7传送的是命令;当ALE为高电平表示IO0-IO7传送的是地址;当ALE与CLE都为低电平的时候,表示IO0-IO7传送的是数据。
CE:片选。当2440要操作访问Nand的时候,首先必须选中。
RE:读信号,当RE为低的时候,表示数据由Nand流向2240;
WE:写信号,当RE为低电的时候,表示数据由2240流向Nand;
WP:写保护,只能写,不能擦除。
R/B:Ready信号,表示Nand Flash烧写完成
这些引脚具体怎么组合起来的,需要查看手册中的时序图。
发(写)命令的时序图:
首先CE发出片选信号,CLE发出高电平,IO 0-7将命令驱动出去,WE写脉冲,在写脉冲的上升沿,Nand flash在上升沿,将IO 0-7中数据读取出来。
发地址的时序图:
CE片选, ALE由低变高,IO 0-7驱动 数据,WE发出写脉冲。
输入(写)数据的时序图:
CE选中,ALE、CLE低电平,2440 IO 0-7驱动 数据,WE写信号,Nand flash根据ALE、CLE低电平,读取数据。
输出(读)数据的时序图:
CE低电平选中,RE由高变为低(Nand flash收到RE由高变低时,马上准备数据,然后在RE的上升沿将数据发送出去),Nand flash 驱动数据到IO 0-7,在上升沿,2440取数据。
2440这些引脚发出的数据,必须满足Nand flash的时序要求。需要查看2440芯片手册,查看设备哪个寄存器的某些位来控制时序
相关问答
nand flash 可以同时读写吗?答:不可以虽然NAND不能同时执行读写操作,它可以采用称为"映射(shadowing)"的方法,在系统级实现这一点。NAND闪存阵列分为一系列128kB的区块(block),...
inand是什么文件?inand是一个文件系统的缩写,全称为"InternalNANDFlashDisk",意为内部NAND闪存磁盘。它是一种用于嵌入式系统中的存储设备,通常用于存储操作系统、应用...
flash 和norflash区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100...
nand flash 寿命多长?nand闪存寿命3年左右,寿命基本差不多,个人觉得闪存卡还是寿命短于U盘因为U盘是存储芯片焊接在一个微电路板上的,外面还有塑料或者金属的外壳保护,而闪存里面...
求Teclast NANDFlash U盘量产修复具体步骤,谢谢?你好,下载IS916-BO量产工具。插上U盘,解压后,点击EXE应用程序,在量产设置项中输入PID和VID,开始量产就可以了。你好,下载IS916-BO量产工具。插上U盘,解压后...
nand flash 最小容量?NAND闪存的最小容量可以是1GB。然而,随着技术的进步,现在市面上的NAND闪存的最小容量已经远远超过了1GB,常见的容量包括16GB、32GB、64GB、128GB、256GB等。...
NandFlash 和NorFlash的区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
nandflash 温度过高会怎么样?回答如下:当nandflash温度过高时,可能会导致以下问题:1.寿命缩短:高温会加速芯片内部元件的老化,导致寿命缩短。2.数据丢失:高温会导致数据的稳定性变...
NAND Flash 和Nor Flash 到底有什么区别?NANDFlash和NorFlash是两种不同类型的闪存存储器。区别如下:1.读取速度不同NorFlash在小容量数据存储、读取速度和随机访问方面表现优异,读取速度比NAN...
3d nand flash 制作工艺流程?具体步骤有:第一步:手绘动画图形结构。根据预先创意的图形概念,手绘出适合的图形结构,这是三维动画制作最基础的部分。第二步:3D角色模型。根据概念设计以...