案例分析,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操作原理及裸机程序分析——FLASH操作原理
来源:韦东山嵌入式专栏_ARM裸机加强版维基教程
作者:韦东山
本文字数:1056,阅读时长:10分钟
NAND_FLASH操作原理
NAND FLASH原理图NAND FLASH是一个存储芯片那么: 这样的操作很合理”读地址A的数据,把数据B写到地址A”
答1. 在DATA0~DATA7上既传输数据,又传输地址当ALE为高电平时传输的是地址,
那么在数据线上是不是只传输数据和只传输地址呢?
我们参考NAND FLASH的芯片手册可以知道,对NAND FLASH的操作还需要发出命令,下面有个NAND FLASH的命令表格
问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令怎么传入命令?
答2. 在DATA0~DATA7上既传输数据,又传输地址,也传输命令:
当ALE为高电平时传输的是地址。当CLE为高电平时传输的是命令。当ALE和CLE都为低电平时传输的是数据。问3. 数据线既连接到NAND FLASH,也接到NOR FLASH,还接到SDRAM、DM9000等等那么怎么避免干扰?
答3. 这些设备,要访问时必须”选中”,没有选中的芯片不会工作,相当于没接一样。
问4. 假设烧写NAND FLASH,把命令、地址、数据发给它之后,NAND FLASH肯定不可能瞬间完成烧写的,怎么判断烧写完成?
答4. 通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平表示正忙
问5. 怎么操作NAND FLASH呢?
答5. 根据NAND FLASH的芯片手册,一般的过程是:
发出命令
发出地址
发出数据/读数据
看上面的命令表格,不容易看,我们看一下读ID的时序图,
每个NAND FLASH都内嵌一些ID(譬如:厂家ID,设备ID),时序图从左往右看,纵向放是一列一列的看。
对于我们s3c2440来说,内部集成了一个NAND FLASH控制器,2440和外设连接的简易图,如下图所示
NAND FLASH控制器,帮我们简化了对NAND FLASH的操作,下面来分析一下不使用NAND FLASH控制器和使用NAND FLASH控制器对外设NAND FLASH的操作。
发命令:
发地址:
发数据:
读数据 :
用UBOOT来体验NAND FLASH的操作:
1.读ID
下图是读操作时序图
对于存储为256M的NAND FLASH,需要28条地址线,来表示这个地址值,根据原理图可以,只用8根地址线,所以需要4个周期的地址,为了兼容更大容量的NAND FLASH,要发出5个周期的地址:(如下图所示)
2.读数据
「新品首发」STM32MP157开发板火爆预售!首批仅300套
相关问答
arm内部数据怎么保 存 到 flash ?ARM处理器内部的数据可以通过特定的指令或编程接口保存到外部的Flash存储器中。以下是一些可能的方法:使用ARMCortex-M系列处理器的STM(StoretoFlash)指...
Flash存 储芯片如何存储数据的?Flash芯片并不是像光盘那样把信息刻上去的。为了更加清楚地说明,我首先让你知道计算机的信息是怎样储存的。计算机用的是二进制,也就是0与1。在二进制中,0...
想把一个电脑软件 存在 云盘里,让后下载到别的电脑,打个比方例...下载了之后,找到文件夹,并压缩,保存到云盘,到另一个电脑解压有用(0)回复qwqwqweqewqeq先下一个软件的app不要安装,直接复制粘贴在云盘里有用(0)回复你下...
NANDflash 和NORflash的区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
手机ROM采用的是什么 存 储器?手机ROM采用的是闪存存储器。闪存存储器具有非易失性、高速度、低功耗等优点,适用于存储手机操作系统、应用程序和数据等重要信息。闪存存储器分为NORFlash和...
flash 保 存 格式?flash的保存格式是swf。Flash一般指AdobeFlash。AdobeFlash(原称MacromediaFlash,简称Flash;前身FutureSplash)是美国Macrome...
flash 保 存 不了怎么办?一是通过“命令提示符”强制删除缓存,具体步骤是:点【开始】-【运行】,然后输入cmd-【确认】,在出来的窗口里输入“del*.sol/s”(注意:只输入引号内的内容...
adobe flash cs6怎么直接保 存 ?针对你这问题,目前有两种方法:其一:点击浏览器的“工具”,在下拉菜单中找到“internet选项”,在弹出的窗口中鼠标移到“浏览历史记录”这里,然后点“设置...
flash 怎么 保存 GIF文件 - WbPLAyX4 的回答 - 懂得选择“文件”/“导出影片”命令;在弹出的“输出电影”对话框中,选择好保存的位置,在“文件类型”中选择“动画Gif(*.gif)”一项(注意:不要选成“gif...
flash 怎么 保存 GIF文件 - 157****2379 的回答 - 懂得你可以在发布设置(ctrl+shift+f12)里设置GIF在把后面目录改下!crrl+回车!搞定!呵呵选择“文件”/“导出影片”命令;在弹出的“输出电影”对话框中,...