» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 66 12345
发新话题
打印

继续科普___________关于YY评测中关于“扇区”的误解 [AK卡恐怖的未明推论发现]

引用:
Free Space的问题探讨

  有些朋友从幺幺截的Acekard Manager软件界面图中看到了“Free Space”的字样,于是有些不解,幺幺当然就要给大家讲解一下具体的情况,实际上这也是Acekard的AKFS格式所带来的问题之一。
  Acekard的系统为仿NDS正版卡设计,那么AKFS磁盘系统跟NDS正版卡就同为连续空间,这一点就和Fat不连续的特点区别开来,NDS的 Rom使用的是连续空间,倘若读取Clean Rom,Fat格式的不连续特性无法保证速度,于是AKFS格式也就设计成连续空间以便保证读取速度,这样一来,就会出现一些情况:
     1、        大多数TF卡都会分内部扇区,倘若在存放Rom时,遇到两个扇区的分界,Rom就会从下一个扇区开始存放,也就是不能跨扇区,Rom存放的空间一定要保证不小于Rom的体积,那么这就带来一个问题,倘若A扇区有100M,B扇区有100M,在A扇区存放了一个64M的Rom还剩下36M的空间,倘若再要加一个32M的Rom,可以继续放到A扇区;倘若要加的是64M的Rom,就只能放到B扇区去,这样一来在Acekard Manager的界面就会出现“Free Space”,这个“Free Space”下一次拷贝小于36M的Rom还可以继续用,倘若新加入的Rom一直都大于36M,那么“Free Space”就会一直存在。在这里提一下PNY 1G的TF卡,它内部是没有分区的,也就是整张1G的卡不用担心跨扇区的问题,比较赞。
  2、        倘若经常这样操作,那么就会留下磁盘碎块,长期下来,会使得磁盘使用效率不高,于是就要需要用软件再格式化一次。
  以上两个问题因为AKFS磁盘系统而产生,由此可见技术的两面性,既带来了进步,又产生一些新的问题。
看到现在游戏界里面对基本的计算机知识实在是了解得太少了,虽然YY也是烧录界的名人,但是毕竟是计算机门外汉啊,为了大家今后走出去不至于闹笑话,看来我的科普还是有继续的必要了。虽然我对这方面也不是太了解,不过……聊胜于无吧。

首先,既然是对“扇区”这个词的纠错,那我们就来看看什么是“扇区”,先来个图。

扇区这个词,jun4rui最早是从软盘、硬盘里面学会的,至于“扇区”这个名字的来由,首先还要说说“磁道”的概念。在硬盘或者软盘上,每个盘片上面被分成若干个同心圆磁道,每个磁道被分成若干段,由于每段的形状像扇面一样,顾名“扇区”。而且现在大家通常用的电脑,扇区的大小是固定的512,单位是“字节”。目前很多存储设备都是按照硬盘/软盘的传统,划分的“逻辑上”的扇区、磁道,实际上物理结构当然早没有盘片了。

计算机上,存储文件的最小单位叫“簇”(好像是这么写的吧?多少年不用的名字,忘记了……:D),大家都在用的FAT32最大每个簇也只有64个扇区而已(废话,多了太浪费了嘛,即使存个1字节的文件,也要占用32K的空间,绝对不划算)。所以YY文中提到的,100M一个扇区…………目前在物理上是不会存在的…………。

FAT16和FAT32的区别也就在于,前者的簇总数只有2^16=65536个,而后者有2^32=4294967296个,可支持的容量自然大幅提升!

所以,要说AKFS的FREE SPACE的问题,应该是这个AKFS文件系统的“簇”实在是太………………太不一样了。它把TF卡格式化以后,所建立的逻辑上的“簇”大小和标准的PC用的磁盘分区的差异恐怕是相当大的。这也就是AKFS会很难支持支持其它自制软件的FATLIB的缘故,因为人家都是用标准的FAT分区格式,只要做一下和烧录卡的接口而已。但是AKFS连磁盘格式都变了,不但要做烧录卡的接口,连分区的接口都要开发。而且这个分区格式和传统的FAT的差异还不小,人家存小文件最多只要32K,你存一个小文件100M?

当然,办法也还是有的,可以把小文件打包成类似ROM的格式(要知道NDS的ROM里面也是一些小文件打包的哦),然后传进去,自制软件就在这个“簇”里面读取小说和音乐好了。但是这个ROM要自己做,麻烦多了,而且你不塞满这个100M“簇”,就是浪费空间了。

这个大的簇,在磁盘管理上也会有相当的麻烦。本来你1G的卡,为了安全起见都划分成128M的“簇”,这样保证可以放8个游戏。但是如果你要玩32M/64M的游戏,空间的浪费就大了。而你把空间划小了,装不下128M的游戏,到时候要玩,就要把游戏全部删除,然后再重新格式化,然后再传游戏。每次玩新游戏,都可能会不得不进行这样的“折腾”。但是这么大一个“簇”,用起来实在是不会太“舒服”的,浪费了空间不说,玩家肯定是要做频繁调整的。看见有玩家要求AK出个压缩或者裁减ROM的功能,其实如果一个簇128M,正好放下,你压缩(目前压缩比很少有50%以上的),或者裁减(也没有见过ROM能裁减50%以上的),还是会有64M以上,压缩下来,嘿嘿,你分的128M的区剩下的空间还是会浪费掉嘛,能剩下多少还真不好说。要不,你再格式化卡把ROM重新传一次?


另外,YY的结论中有两个问题,因为一个128M的簇,可以先放64M的数据,再放32M的数据,然后还剩下32M,再装一个64M的数据,就只能从第二个簇开始存放了。

但是…………


从图片上看,
从图片上看,这块512M的TF明显是分了3个簇!为何?如果放不下就从第二个簇放,那图片上只有三个 FREE SPAVE,显然这就是没法放下更多数据造成的浪费空间,而且显然这就是簇的末尾,所以这块卡如果照YY的说法,为何第一个区还有64M以上空间的时候,完全可以放在第一个区的《恶魔城》为何要放到第二个区开头去?当然,这可能是可以由玩家选择设定的。但是,这样就第二个问题就浮出水面了。

每个簇的大小,究竟是由谁来决定的?
根据一般的计算机原理,每个簇的大小理论上应该是一样大小的。但是根据图片的“3簇说”,我们可以进行一个简单的计算:

第一个簇:33554432+512+67502080 = 101057024
第二个簇:67108864+67108864+18743296 =  152961024
第三个簇:134217728+116391936 = 250609664

看来,我得到了一个莫名其妙的数字,这显然不符合簇划分的逻辑。或者说,根本不存在“三个簇”的说法?

再来看看下面一张图:


开始的时候,居然要选择SD卡类型……

这样,我们面前突然多了很多问题:
1、AK卡是按照硬件分“簇”的,卡上的硬件分了多大的区,在烧录软件里面就是多大的区,有一个区在烧录软件里面就有几个“簇”,硬件已经定死,玩家物理更改。
1的理由:因为YY评测中提到了 PNY 1G卡的“簇”是连续的,其它卡的不是,而且没有任何来源说过格式化的时候可以手工指定每个”簇“大小的;

2、如果照YY的说法,使用久了,要消除”Free Space“这些磁盘碎块就要重新格式化卡,但是硬件上划分的簇,格式化以后不还是存在吗?既然硬件簇大小的限制,格式化前128M只能装一个100M的ROM,你格式化后还是只能装一个100M的ROM,何来消除一说?

3、如果推翻2和1的说法,格式化的时候可以选择”簇“大小,那么大家用已知大小的ROM后可以比较精确的调整”簇“用来适应ROM了,但是这样以来,面临的将是更加频繁的磁盘格式化。

矛盾的地方出现了:
不过既然可以调整”簇“大小,那不就证明这些“簇”是逻辑上的,而不是物理上的吗?既然是物理上的,那为啥不干脆把所有空间就划分一个“簇”,那不就可以随意放文件而没有所谓的Free Space的困扰了?如此看来,“簇”应该是物理上的。但是物理上的话,为什么每块的“簇”大小会不一样?万一我今后买了每个“硬件簇”都小于64M的卡,是不是空有4G容量,也无法装下128M的游戏了(从三个簇容量计算上来看,第一个簇是小于128M的,最大的簇也没有两个128M大,所以这种卡…………貌似只能装两个128M的游戏?!!)?

从硬件上看,我个人觉得可能性比较偏向“硬件簇”上,AKFS完全是根据硬件的块来划分出不规则大小的“簇”的,但是这样就会造成一个相当可怕的现实…………YY范例中的512M卡带,居然只能装下2个128M游戏,而且将来出了256M游戏,将无法运行!

如果“簇”只是逻辑上的,那其它烧录卡厂家也可以把自己的卡格式化成类似的磁盘格式化(反正是逻辑上的嘛!磁盘格式化成Linux格式也可以,格式化成FAT32也可以,当然也可以格式化成逻辑上的任意格式了),而且也不会存在只有PNY 1G卡才有全部的连续空间,其它卡没有连续空间的问题上来。






本来文章开头只准备给大家科普科普,没想到…………最后居然得出一个可怕的推测
4rui哥哥瞬间被冰冻了……
:fq22:

我看YY是指望不上了,厂家自己出来说一下,你们到底是什么原理,广大等待购买AK卡的用户如果被打击了可是相当郁闷的啊!

次世代的AKFS文件系统,究竟是福是祸?!谁来告诉我们!

欢迎厂商或者高人来本人论坛讨论!
http://game.jun4rui.com/bbs/view ... &extra=page%3D1

[ 本帖最后由 acejun4rui 于 2006-10-24 23:05 编辑 ]


TOP

顶技术贴~~~~~~~~



TOP

完全看不懂
不过如果真被LZ不幸言中,那这卡还有什么可期待的?


TOP

有够专业.烧录卡,有用的就得了,不要无止境的折腾鸟




TOP

引用:
原帖由 iiwang 于 2006-10-24 19:32 发表
有够专业.烧录卡,有用的就得了,不要无止境的折腾鸟




如果YY测试的卡只能固定分3个“簇”,恐怕大批准备买AK的人都会再考虑考虑了,这可是个严重问题啊,官方应该出来说说,现在的1G PNY卡可以,今后的就不清楚了,一个型号的显卡,游戏厂商用料可能就换了几批,别将来1G的PNY也变成几个“簇”了,那就晕菜了。

主要是给准备买的玩家提个醒,反正还没有发售,先提出疑问,这比买回家才发现大哭卖掉大骂要好啊,无论是对玩家还是厂商。

TOP

:D 迷迷糊糊的看完了。

[ 本帖最后由 cc0128 于 2006-10-24 19:44 编辑 ]

TOP

既然YY使用过,应该更有发言权,等YY来说明

TOP

看不懂
但是知道应该挺严重的

TOP

怕什么
TG就是不缺小白鼠
等出货吧

TOP

支持JUNJUN葛格的科普~
:D

你不说,我还根本没往那边想呢~
呵呵~

TOP

回头就发解释文章//
关心的可以去我论坛蹲点。

TOP

关于Jun4rui提出的疑问,确实代表了一些人的看法,不过这里可以给出解释:

Acekard使用的TF卡涉及到卡的硬件分区,目前检查出来的,最小的分区是 256M(当然别拿128M的TF说。^_^),这是 512M的卡的分区大小。最大的分区是1G的,PNY以及KingSton的都是这么大的。AK要对卡进行格式化就是要标识这些分区的边界,让ROM不能跨越这些边界。
那就是说,最小的512的256分区,也能放下256M的游戏。
至于FREE Space出现有两个问题:
第一个问题是拷贝进去一个游戏之后,再把它删掉,那么它所占的空间就会变成free space,再拷贝其他游戏的时候,系统会从上往下寻找第一个能放下的free space,把游戏放进去,自然了,Acekard把Windows代码开源之后,有兴趣的人可以自己来对它进行优化。
第二种情况是当前连续的空间,遇到分区的界限了,不够大,就会把这个空间空出来,出现一个free space,也就是会遭遇我们之前的那个边界问题。
综上,Jun4rui的担心是多虑的,只要是使用512M以及512M以上的TF卡,那么以后即便是出了256M的Rom,Acekard也可以支持。如果用256的卡,最少也能用现在的128的游戏。

TOP

扇区……簇……乱了……
最后的结论是:AKFS格式的最小连续存储区块是闪存卡厂家选用的闪存颗粒或控制芯片决定的?

TOP

太专业了。完全不懂

TOP

用什么原理关我P事?

只要产品好用就行,只关心兼容性和稳定性。

TOP

 66 12345
发新话题
     
官方公众号及微博