POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: 寻岸游子
打印 上一主题 下一主题

爱妻~ 你什么时候才跳水啊?

[复制链接]
61#
发表于 2009-3-6 22:47 | 只看该作者
19# itany
纠错机制是要有代价的,如果光是想知道错了,加一个parity bit就可以,问题是你不知道正确的是什么。
想要纠正单独一个byte里面一个bit的错误,就需要4个bit的额外数据(虽然2的三次方已经是8了,但是 ...
xbill 发表于 2009-3-5 00:50


很专业..



帮LZ把贴子顶上去
回复 支持 反对

使用道具 举报

62#
发表于 2009-3-6 23:12 | 只看该作者
需要amd强大点,i7才会跳水吧。不过等i7跳水的时候,也许就看不上i7了
回复 支持 反对

使用道具 举报

63#
发表于 2009-3-6 23:23 | 只看该作者
51# boris_lee
你的记忆力实在是有问题,从软盘时代过来的是zip,的确坏一点点可以恢复,以前flashget就可以,原因是因为MD5 Hash早就被破解了,而且算起来很快。

现在基于SHA系列Hash的数字签名和完整性检查, ...
xbill 发表于 2009-3-6 21:03

要不要查查rar 1.X 版本的推出日期?
回复 支持 反对

使用道具 举报

64#
发表于 2009-3-7 01:08 | 只看该作者
本帖最后由 xbill 于 2009-3-7 01:10 编辑

68# boris_lee
rar最早什么时候发表我一点都不关心。因为它跟这个主题没有关系。

就趁着午休给你科普一下hash吧。

首先你要明白什么样的错误是软件能够修复的
    一些下载软件可以修复zip的前提是各层的网络协议有自己的查错机制,终端收到的数据错误的概率可以忽略不计,那么出错的情况下仅仅一个bit发生变化的可能性就很高,所以,只要尝试顺次更改文件每一个bit,并且重新计算hash,就有可能在整个操作结束之前找到一个可以满足hash的原文。这个运算量很大,但是毕竟是随着文件长度线性增长的,在一般情况下可以接受。
    问题是,SSD的出错概率跟以太网能够相提并论吗?
    无论是SLC的十万次次擦写还是MLC的一万次擦写寿命,导致的出错的概率都远远的高于网络出错的概率,特别是在长期使用之后(这个长期,在最糟糕的情况下对于一个特定的存储单元而言是以分钟计算的)。
    仅仅一个bit出错了,可以用这种方式修复,而错误如果增加到2个bit怎么办?运算量的系数瞬间就变成了文件长度的平方,不多说,一个1M的文件,用这种方式查错就需要重新计算hash 1000000000000次。如果是1G呢?1的后面就是18个0,而且这个还是系数,还要乘以单次的运算量。而每一次的计算跟文件长度成正比,如果文件无法完全装进内存,就需要调用硬盘,最后得出的时间基本上可以肯定是以 “百年” 或以上作为计数单位的。

    SSD的出现倒是为病毒的研究带来了一个新的方向。病毒不再仅仅可以破坏软设施,也就是硬盘上的数据,还可以通过对硬盘特定地址的反复刷写迅速地破坏硬盘。对于一个平均寻址时间0.1ms的设备,反复擦鞋1万次(MLC)只需要1秒(当然因为I/O的效率不可能这么快,但是也绝对是以秒来计数的),那么只要巧妙地让这些被破坏的地址均匀地分布在SSD上,彻底毁掉一个SSD需要的时间仅仅是以分钟或者小时计算的。
    想象一下,中了这样一个病毒,在不知不觉之间,比如一个小时,硬盘上已经有3600个sector被破坏掉。这种病毒无声无息蔓延的时候,才是目前SSD技术的末日吧。
    偏偏是这么容易想到的东西,也许已经出现了也说不定。
回复 支持 反对

使用道具 举报

65#
发表于 2009-3-7 01:43 | 只看该作者
本帖最后由 xbill 于 2009-3-7 03:17 编辑

65# jstrend
纠正统一区段多个错误有什么新鲜的,hamming活着的时候自己就提出过。我上面说的话是为了说明纠错机制不是像某些人想的什么错简简单单就能纠正过来。是给不懂的人普及知识的。既然来了个明白的,就换一种方式说话吧。

任何纠错机制有效的前提是错误率要合理的低。硬盘的ECC之所以是有效的,是因为硬盘本身的硬件错误率已经低到了完全可以用一个简单Sector coding控制的程度。

SSD可就不是了。对于平均只要擦写1万次就会报废的MLC和10万次就会报废的SLC存储单元而言,512+16是安全的?不要忘了硬盘操作的单元是什么,是sector,在任何正常的系统中,同一个sector都是一起被读取和擦写的,就算每个bit被擦写的次数会有不同,每个bit的寿命也不同,但是这个机制导致的结果就是当一个sector开始出现问题的时候,很可能这个问题不是仅仅一个bit,而且从这个时刻开始,因为这个sector中大多数的单元都临近平均寿命,在近期损坏的概率就会骤然提高。

简而言之,就是要么不错,要错就错的一塌糊涂。对于一个大多数单元临近寿命的sector,512+16够吗?恐怕再擦写个千把次,512+512都不够。

你在最后说如果ssd有这个问题,其他flash memory也有。很遗憾,这也是不对的。flash memory在ssd出现之前,是主要用于频繁反复擦写的环境吗?比如手机里的ssd卡,首先,写入操作就非常非常之不频繁,而且写入的都是需要持久保存的数据,也就是说,同一个单元被擦写的概率非常的低。

就比如一个16G的数码相机用闪存,假设使用十年的时间,每天都拍16G照片(条件都够极端了吧?),每天清空一次,那么整整10年,平均每个记忆单元被擦写的次数也不过是3650次左右(因为删除不是真的擦写,所以只有存储文件结构的部分会高于这个数字,不过文件结构一般都是重复保存的,一个坏了还有备份,无法读取的时候直接将该sector添加到坏扇区列表中不再使用就可以了),才是一般MLC存储单元平均寿命的三分之一。而情况显而易见,有几个闪存卡会使用10年,还一直这么高强度?所以在这种设备上使用flash memeory当然是合理的,一般的纠错机制当然是绰绰有余的。flash memroy的最初形式就是为了bios这种一辈子擦写几次的东西而研发出来的。

ssd就不同了,上面的帖子我已经说了,在最理想的情况下,写废一个mlc单元只需要1秒时间。而硬盘偏偏就是一个就要被频繁读写的设备。跟存储卡有可比性吗?
回复 支持 反对

使用道具 举报

66#
发表于 2009-3-7 03:33 | 只看该作者
68# boris_lee
rar最早什么时候发表我一点都不关心。因为它跟这个主题没有关系。

就趁着午休给你科普一下hash吧。

首先你要明白什么样的错误是软件能够修复的
    一些下载软件可以修复zip的前提是各层的网 ...
xbill 发表于 2009-3-7 01:08


哎,我看您还是ATA出现之前的老人啊
硬盘分柱面、柱面再分簇、簇再分扇区是不是?
看看62楼

另外,让覆写操作写到同一个硬件地址上,这种控制器只有山寨U盘才会用的
回复 支持 反对

使用道具 举报

67#
发表于 2009-3-7 04:15 | 只看该作者
本帖最后由 xbill 于 2009-3-7 04:20 编辑

71# itany
        你到底想说什么呢?你说的跟我说的有任何矛盾吗?不管硬盘怎么分,到今天为止,硬盘最小的读写单位是不是扇区?不知道哪个厂商的硬盘,或者哪个操作系统是直接对硬盘上的字节或者比特读写的,您给介绍介绍?
        复写当然不是必须写到同一个位置了,这个是理论常识,前提是性能不考虑。当你改写一个文件所占存储区域的一个sector,难道不写到原来的位置?莫非制造磁盘碎片是编写控制器程序的主旨?就连内存操作都要考虑到存储数据的连续性,硬盘倒可以免了,真是新奇的理论。无论是内存还是硬盘,重复改写同一个位置都是正常操作中出现频率极高的操作,这种东西都需要讨论吗?
        硬盘在正常使用中不同部分使用强度当然不一样,但是必然有一些区域,使用强度要远远超过平均水平。出于效率和设计的方便,这些都是不可避免的。区别就在于,ssd这么做会迅速的坏掉,普通硬盘则不会。        67楼那个我已经批驳过了,没看到的话自己回头看看。向上2楼。
回复 支持 反对

使用道具 举报

68#
发表于 2009-3-7 04:27 | 只看该作者
本帖最后由 xbill 于 2009-3-7 04:29 编辑

居然被你给绕进去了。
知不知道磁盘控制器是干什么的?磁盘控制器还能自己决定把数据写到哪里了?要是这样子,磁盘碎片整理程序可以直接删除了,因为你永远不知道经过磁盘控制器自行决定的位置到底是连续的还是分散的。

看来是个写过程序,不过是个连API call都没用过的。光知道什么是File objcet吧。给你抽象出来的高级简易操作居然都当成磁盘控制器的命令了,好好复习复习操作系统理论吧。
回复 支持 反对

使用道具 举报

69#
发表于 2009-3-7 09:33 | 只看该作者
本帖最后由 boris_lee 于 2009-3-7 09:36 编辑
68# boris_lee
rar最早什么时候发表我一点都不关心。因为它跟这个主题没有关系。

就趁着午休给你科普一下hash吧。

首先你要明白什么样的错误是软件能够修复的
    一些下载软件可以修复zip的前提是各层的网 ...
xbill 发表于 2009-3-7 01:08

.................
比flash更不可靠的软盘rar都挺过来了.....
RAID 5的原理是什么?压缩包的恢复和网络协议有个鸟关系?
要不做一个包含许多文件的rar文件(不用添加恢复记录) ,然后用HEX edit随便改掉几百个字节,看看是不是整个文件都无法修复?还是只有被损坏的部分无法修复?
真是吹皱一池春水,干卿底事...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

70#
发表于 2009-3-7 10:52 | 只看该作者
索性再说几句
65# jstrend
纠正统一区段多个错误有什么新鲜的,hamming活着的时候自己就提出过。我上面说的话是为了说明纠错机制不是像某些人想的什么错简简单单就能纠正过来。是给不懂的人普及知识的。既然来了个明白的,就换一种方式说话吧。

任何纠错机制有效的前提是错误率要合理的低。硬盘的ECC之所以是有效的,是因为硬盘本身的硬件错误率已经低到了完全可以用一个简单Sector coding控制的程度。
Flash的错误率没有你想象中那么高,而且完全可以根据厂家数据计算出来每个page位反转发生的概率是多少,然后决定用多少bit ecc
如果对保存时间有要求的话,还要再增加ecc位数
至于你那个前提。。。考虑下光盘吧,光盘远远不如flash可靠,没有ECC,大家看得恐怕都是有 码 动作片了{lol:]

SSD可就不是了。对于平均只要擦写1万次就会报废的MLC和10万次就会报废的SLC存储单元而言,512+16是安全的?不要忘了硬盘操作的单元是什么,是sector,在任何正常的系统中,同一个sector都是一起被读取和擦写的,就算每个bit被擦写的次数会有不同,每个bit的寿命也不同,但是这个机制导致的结果就是当一个sector开始出现问题的时候,很可能这个问题不是仅仅一个bit,而且从这个时刻开始,因为这个sector中大多数的单元都临近平均寿命,在近期损坏的概率就会骤然提高。
字太多懒得打了,自己去看坏块管理
简而言之,就是要么不错,要错就错的一塌糊涂。对于一个大多数单元临近寿命的sector,512+16够吗?恐怕再擦写个千把次,512+512都不够。

你在最后说如果ssd有这个问题,其他flash memory也有。很遗憾,这也是不对的。flashmemory在ssd出现之前,是主要用于频繁反复擦写的环境吗?比如手机里的ssd卡,首先,写入操作就非常非常之不频繁,而且写入的都是需要持久保存的数据,也就是说,同一个单元被擦写的概率非常的低
拜托,我说的是基于flash的存储设备,不是flash memory。任何用flash memory组成的存储都会存在一样的问题。
也许你的sd卡写的不频繁,但对于做卡的人来讲,他是不能有这个前提的,你可以去试下正牌大厂的卡,看看持续读写一个扇区多久后会挂
不管对于哪种flash存储,只要是有正常逻辑的rd安正常思路设计出来的,每个单元被擦写的频率确实不高,而且存储容量越大,概率越低,为什么,自己去看平衡算法

就比如一个16G的数码相机用闪存,假设使用十年的时间,每天都拍16G照片(条件都够极端了吧?),每天清空一次,那么整整10年,平均每个记忆单元被擦写的次数也不过是3650次左右(因为删除不是真的擦写,所以只有存储文件结构的部分会高于这个数字,不过文件结构一般都是重复保存的,一个坏了还有备份,无法读取的时候直接将该sector添加到坏扇区列表中不再使用就可以了),才是一般MLC存储单元平均寿命的三分之一。而情况显而易见,有几个闪存卡会使用10年,还一直这么高强度?所以在这种设备上使用flash memeory当然是合理的,一般的纠错机制当然是绰绰有余的。flashmemroy的最初形式就是为了bios这种一辈子擦写几次的东西而研发出来的。
很好的例子,自己换成SSD和硬盘的容量算算看,看看各自能撑多久
eeprom 和flash的差别!最近几年spi flash才开始替代eeprom存bios

ssd就不同了,上面的帖子我已经说了,在最理想的情况下,写废一个mlc单元只需要1秒时间而硬盘偏偏就是一个就要被频繁读写的设备跟存储卡有可比性吗?
开玩笑吧,你去拿片mlc的试试,看看能不能在你那种理想情况下花1秒写废一个单元,顺便再看看把所有单元都写坏要花多久,千万别拿slc和nor试哦
自己去估算下,你硬盘上每天才多少数据别更新,占整个容量的多少比例,即便是100%更新,你觉得hdd能撑多久
都是基于flash的存储,一样应用了坏块管理和平衡算法,怎么没有可比性:rolleyes:
xbill 发表于 2009-3-7 01:43
回复 支持 反对

使用道具 举报

71#
发表于 2009-3-7 10:57 | 只看该作者
本帖最后由 jstrend 于 2009-3-7 10:59 编辑
71# itany
        你到底想说什么呢?你说的跟我说的有任何矛盾吗?不管硬盘怎么分,到今天为止,硬盘最小的读写单位是不是扇区?不知道哪个厂商的硬盘,或者哪个操作系统是直接对硬盘上的字节或者比特读写的,您给介绍介绍?
        复写当然不是必须写到同一个位置了,这个是理论常识,前提是性能不考虑。当你改写一个文件所占存储区域的一个sector,难道不写到原来的位置?莫非制造磁盘碎片是编写控制器程序的主旨?就连内存操作都要考虑到存储数据的连续性,硬盘倒可以免了,真是新奇的理论。无论是内存还是硬盘,重复改写同一个位置都是正常操作中出现频率极高的操作,这种东西都需要讨论吗?
        硬盘在正常使用中不同部分使用强度当然不一样,但是必然有一些区域,使用强度要远远超过平均水平。出于效率和设计的方便,这些都是不可避免的。区别就在于,ssd这么做会迅速的坏掉,普通硬盘则不会。

对硬盘来讲也许是的,对于基于flash的存储,可能真的只有山寨U盘会这么搞
拿个U盘试一下,看看会不会,千万别拿山寨的
回复 支持 反对

使用道具 举报

72#
发表于 2009-3-7 11:10 | 只看该作者
貌似这个帖子已经跑题了
回复 支持 反对

使用道具 举报

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

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-1 13:00

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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