免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fender0107401
打印 上一主题 下一主题

[算法] 固态硬盘的平衡算法 + 如何干掉一个固态硬盘的方法。 [复制链接]

论坛徽章:
6
酉鸡
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23双鱼座
日期:2014-01-23 13:08:332015亚冠之鹿岛鹿角
日期:2015-09-03 14:36:002015亚冠之武里南联
日期:2015-09-18 10:48:1315-16赛季CBA联赛之山西
日期:2016-05-05 00:05:33
11 [报告]
发表于 2014-07-18 10:53 |只看该作者
应该不可行

因为是对每个块擦写次数一致

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
12 [报告]
发表于 2014-07-18 12:12 |只看该作者
看起来可行,多给我几个SSD,我帮你反复测试

论坛徽章:
0
13 [报告]
发表于 2014-07-18 15:00 |只看该作者
首先,不是擦写10万次.  而是写10万次.

其次,不是都10万次.是这样:
1. TLC 理论1000次,实际在300到500次,主要用于低端U盘
2. MLC 理论10000次,实际在2000到5000次,主要用于民用级U盘和SSD
3. SLC 理论值100000次,实际在50000次到80000次,主要用于工业领域,和高端服务器。

你能买到的SSD大部分都是MLC的,所以没有10万次的可擦写性。

因为只是写可能会写坏,所以平衡算法主要是平均每个块的写次数,一旦确认有坏的,无非就是打个标记换个地方写,所以你是感觉不到的。最大的感觉就是,容量越来越少。

尔等小妖怎可以意淫写固件的那群吊逼。做鸟兽散了吧

评分

参与人数 1可用积分 +10 收起 理由
amarant + 10 赞一个!

查看全部评分

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
14 [报告]
发表于 2014-07-18 16:45 |只看该作者
这个想法真奇特,一直不懂什么叫固态硬盘,今天懂了点

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2014-07-18 17:09 |只看该作者
hoowa 发表于 2014-07-18 15:00
首先,不是擦写10万次.  而是写10万次.


擦除不算吗?

我下意识的以外,bit位0变1或1变0,就会有风险,所以擦除比写入更影响寿命。
可能观念要修正吧

以前在一个产品里,需要频繁的将计数值写入flash,
于是用三个措施记录flash的收据 --
1. 用二次写入,减少擦除次数
2. 写入后,重新读取校验,并剔除验证出错的位置
3. 计数值本身只有8个字节,但分布在一大块的flash上循环写入
这样做过后,产品的flash从未用坏过。


论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
16 [报告]
发表于 2014-07-18 17:34 |只看该作者
回复 15# 群雄逐鹿中原


    不是说nand flash写入前要先擦除吗?写入两次如何减少擦除次数?

论坛徽章:
0
17 [报告]
发表于 2014-07-18 17:42 |只看该作者
hoowa 发表于 2014-07-18 15:00
首先,不是擦写10万次.  而是写10万次.

其次,不是都10万次.是这样:


于是买个超极本100G硬盘,写进去最多100G * 5000 = 500T就报废了
大概是这么算不?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
18 [报告]
发表于 2014-07-18 18:20 |只看该作者
zhaohongjian000 发表于 2014-07-18 17:34
不是说nand flash写入前要先擦除吗?写入两次如何减少擦除次数?


那不是绝对的。

如果你的写入,只将 bit 1 改为 bit 0,不需要擦除。
大多数情况下,写入的各个位,不可能只有1变0的情况,还有0变1。

但是如果你精心设计数值结构,尽量只做1变0,不做0变1,就能减少很多的擦除。


论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
19 [报告]
发表于 2014-07-18 19:20 |只看该作者
回复 18# 群雄逐鹿中原


    那个,flash都是写块的,你就算只改了一个bit都需要擦写整个块。一个块大概512字节,恩……

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2014-07-18 22:44 |只看该作者
回复 19# starwing83
那不是绝对的。

你那个可能用的是spi flash吧,它里面有mcu,已然包装了一层。

flash 0变1,需要按块擦除,很多一块就是512字节或256字节,擦除后所有位都是1.
1变0,可以精确控制到某1位,一个bit一个bit的写,
写很多次都没问题,这就是所谓的二次写入。




   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP