搜索
bottom↓
回复: 12

关于linux 文件读写寿命请教

[复制链接]

出0入0汤圆

发表于 2017-10-23 17:21:15 | 显示全部楼层 |阅读模式
最近在做linux应用开发,需要将一些数据存储到nandflash中,我将要保存的数据定义了一个结构体,每次读写都将此结构体保存到同一个文件中,对于这个做法,我想请教以下问题:
1:据我所知,nandflash空间读写次数是有限的,大概是10万次级别,如果像我这样的保存方式(5秒钟保存一次),是不是很快的突破寿命限制,导致文件损坏?
2:有没有什么好的方式来提高使用寿命,保存结构体?谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出200入657汤圆

发表于 2017-10-23 17:36:36 | 显示全部楼层
5s写一次肯定不行的。我的应用1天写一次我都有点纠结了
查了下资料,据说linux对于nandflash做了写leveling操作,写均衡操作,尽量让写操作均衡分布在所有page上,提高写寿命。哪个大虾知道确切的信息,对于arm cpu板?
至于lz的问题,我感觉至少得用eeprom外挂存储,或铁电存储器

出0入0汤圆

 楼主| 发表于 2017-10-23 17:48:51 | 显示全部楼层
ziruo2002ab 发表于 2017-10-23 17:36
5s写一次肯定不行的。我的应用1天写一次我都有点纠结了
查了下资料,据说linux对于nandflash做了写leveling ...

对啊,我也觉得有问题,对于同一个文件,在创建的时候已经决定了具体的nandflash位置了,不断对它进行写,肯定是有损寿命的!
期待高手出来解惑!

出0入0汤圆

发表于 2017-10-23 18:15:11 | 显示全部楼层
emmc是不是有自己的写均衡算法,这点上是不是比nand更加耐写,为此我选的核心板就是emmc的。
另外,我的做法是应用先写到内存做缓存,没到一个节点在存文件,这个节点可以是时间节点,或者缓存满和半满,但这样断电汇丢失缓存中的数据。
期待高手出来!

出0入0汤圆

发表于 2017-10-23 18:26:20 | 显示全部楼层
只有SLC才能有10万次的寿命,现在的Flash基本上没有SLC的了.都是MLC或者TLC.寿命堪忧啊

出0入442汤圆

发表于 2017-10-23 18:36:56 来自手机 | 显示全部楼层
wx-ta 发表于 2017-10-23 18:15
emmc是不是有自己的写均衡算法,这点上是不是比nand更加耐写,为此我选的核心板就是emmc的。
另外,我的做 ...

当然有啊,不过别太老。你想啊,平板用ntfs文件系统,要是没有均衡,装个系统就坏了。

出0入0汤圆

发表于 2017-10-23 19:28:48 来自手机 | 显示全部楼层
slc:10万,mlc:1千,tlc:500

出0入0汤圆

 楼主| 发表于 2017-10-23 19:34:10 | 显示全部楼层
wx-ta 发表于 2017-10-23 18:15
emmc是不是有自己的写均衡算法,这点上是不是比nand更加耐写,为此我选的核心板就是emmc的。
另外,我的做 ...

我现在的系统就是没办法做到断电保存,所以需要定期保存:现在数据就是在内存中的,因为没有掉电检测机制就导致了读写次数的频繁。

出0入0汤圆

发表于 2017-10-23 20:34:20 | 显示全部楼层
MLC一般都是5000
linux的话最好用SLC的nand,或者emmc
系统会做均衡处理,所以不必太纠结
对于经常保存的数据,而且数据量不大,可以考虑外挂一个spi的eprom

出0入0汤圆

 楼主| 发表于 2017-10-23 22:47:13 | 显示全部楼层
yerrmin 发表于 2017-10-23 20:34
MLC一般都是5000
linux的话最好用SLC的nand,或者emmc
系统会做均衡处理,所以不必太纠结

不知道你说的MLC和SLC是不是指擦写次数的区别,我查了一下,SLC擦写约为10万次,MLC约5000次,TLC约500,你指的应该是这个吧?这个我会查下我的系统是采用哪一个的。
关于系统的均衡处理,我想你指的应该是读写均衡,但我的理解上,读写均衡是指对整个系统内存来说,每一次新建文件都采用使用较少的flash 区来写入,保证各个块之间的读写次数基本一致,我现在的情况是:新建了这个文件之后,一直对这个文件读写,我认为是对同一扇区的同一个block的写入和读取,系统会对这个有什么措施保护吗?

出0入0汤圆

发表于 2017-10-24 00:37:23 | 显示全部楼层
简单理解:1底层会自动把这个文件移到其它块,均衡处理,不会在真实某个块死命的擦写
                2操作系统会做缓冲机制,多次写合并一次写入

出0入8汤圆

发表于 2017-10-24 08:44:04 | 显示全部楼层
sinc_mark 发表于 2017-10-23 22:47
不知道你说的MLC和SLC是不是指擦写次数的区别,我查了一下,SLC擦写约为10万次,MLC约5000次,TLC约500, ...

均衡处理 就是为了避免在同一个数据块 反复擦写的。  

出0入0汤圆

发表于 2017-10-31 17:37:51 | 显示全部楼层
那就建立新的文件啊。比如2017-10-31 173512.txt   2017-10-31 173517.txt
写够一定数量就将他们全删掉
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 09:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表