行情
HOME
行情
正文内容
nand读写范围 物联网:关于Nand flash读写范围的问题
发布时间 : 2024-11-23
作者 : 小编
访问数量 : 23
扫码分享至微信

物联网:关于Nand flash读写范围的问题

物联网:Nand flash读写范围的问题

很多时候对nand的操作都是通过主控的nand控制器直接完成,或者更多时候是通过MTD标准操作接口完成读写擦的过程,然而有些细节问题有必要在这里讨论一下,我分为以下几点进行说明:

1、擦除过程 :擦除过程是将0变成1的过程,即充电的过程(比如SLC中,当低于某个电压值表示0,高于这个电压值则表示1;而对于MLC来说可以有多个阈值,所以可以保存更多bit)。擦除过程是按块进行的,但启始地址是页地址,不过擦除过程在内部是有边界对齐的,也就是说当擦除启始地址不是块对齐时,只能擦除本块,而不能垮越到第二个块继续擦除,也就是无论我们给的地址是否页对齐,本块都将擦除,不会有任何保留。

需要注意的是:块擦除时每一页的oob区也同时被擦除掉了,所以一般擦除前先读取块的第一页的两个字节看是否为0xff(512Byte页大小nand的坏块信息放在第6个字节中,ECC占用0、1、2、3、6、7字节;2k页大小的nand有24位ECC放在oob区的40-63字节处),不是的话就不要擦除,0xff表示正常,其它值表示错误,否则将会擦掉所有坏块信息,尤其是出厂时写入的。

2、写入过程 :写入过程就是将1变成0的过程,即,放电降压的过程,理论上在写之前一定要先擦除,但实际上只要之前的值为1,不用擦也可以写入(举个例子,比如某一存储单元存放的值为7,那么可以写入比7小的值,比如6,然而反过来则不行,即,未擦之前是不能将6改写成7的)。写入过程可以是任意地址,如果不满一页(开头、中间、结尾都可以任意写入),剩下没有写入的存储单元不会因为未写而变成1,而是保持之前的状态不变(因为只有擦除才会变成1)。写入过程在内部也是有边界对齐的,也就是说写入起始地址不是页对齐时,只能从当前字节写到本页结尾,而不能垮越到第二个页继续写,即使写入长度够长,也不能一次写入垮越两页。

3、读取过程 :读取过程只是通过解码电路将存储阵列中的电压信号变换成数字信号,并输出到nand的页缓冲器中,然后依次按一个或多个字节顺序读出的过程。读取过程在nand内部也是有边界对齐的,也就是读取起始地址不是页对齐时,只能从当前字节开始读到本页结尾,而不能垮越到第二页继续读取,即使读取长度够长,也不能一次垮越两页读取。

4、读写过程 :前面的读写过程中的页大小问题,假如:page=2048Byte,oob=64Byte,那么,理论上要读写oob时,需要给出大于2048的列地址,但实际上在读取前面的2048字节数据区时,如果在不重新下达命令并给出列地址的情况下而继续向后读写数据,是可以直接读写oob区的,除非是要单独对oob区进行操作。其实对于oob区来说,nand并没有做过多特殊处理,就是多出来的数据区而已,只是大家约定在这里可以存放一些校验和坏块信息等,如果不存放这些信息,那么oob就是普通数据区。

5、操作地址 :对一个1GByte的nand,可以用30位二进制来表示地址,即A0-A29,当我们希望读取某一个地址中的数据时,那么应该怎样给出这个地址呢,比如我要访问0x9000000这个地址开始的数据,那么这个地址又是否包含oob区域呢(实际上并不包含)。

首先对于nand操作本身来说就没有比页更小的单位(但是可以按字节读写),所以我们给出的地址其实是要进行地址分解的,分解为行地址(页偏移)和列地址(页内偏移),比如K9K8G08U0B(page=2048Byte)就从A11开始分,A0-A10为列址,A11-A29为行地址,那么oob怎么访问呢,

举个例子:

假如我们要访问的地址是2050,那么现在开始分解,首先将2050右移11位,即除以2048进行页对齐处理,其实就是将A0-A10作为列址,A11-A29作为行地址,分别放到两个变量中结果就是row=1,col=2,那么最后读写的数据到底是什么呢(如果包含oob区域,那读写的数据肯定是oob区的数据),实际上就是跳过第一页(跳过包括oob区域)到第二页中读写2这个地址的数据。

到这里我们应该清楚了,不管用户给出什么样的地址,这个地址偏移都是针对数据区域而不会包含oob区的,如果非要读取oob区,那么在分解地址的时候,可以将列地址加上2047(col=col+2047),否则读写的就只是数据区(如果读完数据区继续向后读写的话也可以读写到oob区,因为系统会自动累加列地址)。

以上信息只是在s5pv210作为主控,操作K9K8G08U0B得出的结论,不同主控和nand型号可能会略有不同。

全球首款72层3D NAND速度太猛:读写提升20%!

SK海力士今天正式宣布推出世界首款72层256Gb 3D NAND闪存,基于TLC阵列。这也是在2016年11月首颗48层3D NAND芯片宣布仅仅5个月之后,SK海力士再次取得的重大突破。

据介绍,相比于之前推出的48层3D NAND芯片,72层芯片将单元数量提升了1.5倍,生产效率增加了30%。

同时,由于加入了高速电路设计,72层芯片的内部运行速度达到了48芯片的2倍,读写性能大幅增加20%。

SK海力士表示,72层3D NAND芯片将于今年下半年大规模生产,满足高性能固态硬盘和智能手机设备的需求。

微信公众号搜索"驱动之家"加关注,每日最新的手机、电脑、汽车、智能硬件信息可以让你一手全掌握。推荐关注!

相关问答

为啥不建议使用 nand 启动?

不建议使用nand启动。使用nand启动存在一些问题和限制。使用nand启动存在以下几个1.可靠性问题:nand启动方式在某些情况下可能会导致系统启动失败或出现错误...

目前,机械硬盘-固态硬盘-内存-闪存,他们之间的 读写 速度分别差几个数量级?

仅仅考虑机械硬盘、固态硬盘、内存、闪存的读写速度,其实这几个类别都有不同的产品,读写速度不好去比较,但通常来讲,内存>固态硬盘和闪存>机械硬盘。固态硬...

m2固态硬盘 读写 速度?

第一款、惠普EX950系列512GNvmeM.2固态硬盘,这款固态的性价比还是非常高的,容量是500G、1TB、2TB可供选择,闪存类型TLC,高速读取速度3500MB/s。第二款、...

什么是 NAND 芯片?

NAND芯片是一种闪存芯片,广泛应用于各种数字设备,如闪存卡、USB闪存驱动器、固态硬盘等。它是一种非易失性存储器,可以长期存储数据,而不需要任何电源支持。...

norflash和nandflash的区别?

NANDflash和NORflash的区别一、NANDflash和NORflash的性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的....

sata固态硬盘写入速度?

SATA3接口是一个发布于2009年的接口规范,只制定了使用此标准接口的硬盘理论传输速率达到了6Gbps(750MB每秒),不是硬盘的实际读写速度。SATA3接口的硬盘分为S...

NAND 与ROM有什么不同-ZOL问答

我的PPC有8G的NAND但是ROM只有128MB,我想问在WM系统中NADN和ROM的使用功能一样...它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储...

nand 版本和emmc版本区别?

1.nand版本和emmc版本有一些区别。2.nand版本是一种闪存技术,它使用了非易失性存储器来存储数据。它的读取速度相对较快,但写入速度较慢。而emmc版本则是一...

128G SSD硬盘能写入多少数据-ZOL问答

这个要看你的SSD使用的Nandflash是哪种了,要是SLC/MLC,恭喜你,你买到不错的东东,要是TLC的,这个就不好说了,TLC寿命比较短,真的没用几年,容量就没了。有用(0)...

sata3.0固态4k 读写 速度?

SATA3接口是一个发布于2009年的接口规范,只制定了使用此标准接口的硬盘理论传输速率达到了6Gbps(750MB每秒),不是硬盘的实际读写速度。SATA3接口的硬盘分为S...

 无线数据传输  午夜交易 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部