Compact Flash卡 – 是市场上速度最快的存储卡。CF的主要秘密在于其非常强大的控制器,它可以直接访问CF PCB上的多个物理存储芯片。Compact Flash控制器的架构更接近SSD CPU,而不是普通的USB闪存盘控制器。
最流行的Compact Flash卡控制器之一是Silicon Motion SM2234H。通常该控制器与4个物理存储芯片协同工作,并提供高速的读写操作。

当客户接到基于此控制器的恢复任务时,他采取了错误的恢复步骤,通常无法获得良好结果。在本文中,我们将尝试解释如何处理此控制器,以及为了从此类案例中获取用户数据,您究竟应该做什么!
首先 – 我们应该记住,SM2234H将数据拆分到4个物理芯片之间,在我们看到任何文件头之前,我们应该执行几个步骤。
-
当所有存储芯片读取完毕后,启动ECC自动检测并修复所有芯片上的所有比特错误!
-
之后,我们应该更改我们存储部分的顺序。

在当前案例中,我们有4个物理芯片,每个存储器中有2个逻辑部分,部分的完整顺序为:0, 1, 2, 3, 4, 5, 6, 7;


所有偶数部分 – 将是我们芯片的第一部分:0, 2, 4, 6;
所有奇数部分 – 将是我们芯片的第二部分:1, 3, 5, 7;
SM2234H固件程序将所有部分视为2个逻辑芯片阵列,所有与块和页面的写入操作都将通过这些虚拟逻辑存储芯片执行。同时,控制器将按字节拆分所有数据,并将数据放置在每个CE部分中。
例如,如果我们需要写入单词:RECOVERY,控制器将整个单词按字节拆分:R, E, C, O, V, E, R, Y,然后 – 将写入:
R – 到第0部分(NAND 0, CE0)虚拟逻辑存储器0
E – 到第2部分(NAND 1, CE0)虚拟逻辑存储器0
C – 到第4部分(NAND 2, CE0)虚拟逻辑存储器0
O – 到第6部分(NAND 3, CE0)虚拟逻辑存储器0
V – 到第0部分(NAND 0, CE0)虚拟逻辑存储器0
E – 到第2部分(NAND 1, CE0)虚拟逻辑存储器0
R – 到第4部分(NAND 2, CE0)虚拟逻辑存储器0
Y – 到第6部分(NAND 3, CE0)虚拟逻辑存储器0
这就是为什么我们需要将部分的顺序从默认值更改:
0, 1, 2, 3, 4, 5, 6, 7 改为
0, 2, 4, 6, 1, 3, 5, 7

我们不应忘记真实的存储芯片顺序! 我们记得这个顺序非常重要,在NAND拆卸和读取期间,我们需要使用PCB上芯片的Ux标记。在我们的案例中,我们只有转储文件,不知道真实顺序。那么,我们该怎么办?
存在一种非常有趣的方法,可以检测SM2234H控制器中的存储芯片顺序。如果我们在服务信息工具中检查每个部分(0, 2, 4, 6)的第一个块的前几个字节,我们将看到字节片段:S4R, M2A, 2P, 2A。




如果我们将所有部分连接在一起,我们将得到我们的控制器名称:SM2234PARA.

我们执行两次按字节连接操作,得到以下结果:

不幸的是,我们看到的是S2M24P2ARA,而不是正确的标记SM2234PARA。这意味着出了问题,部分设置不正确。
请记住!在所有SM2234H案例中,标记的正确顺序必须是:
第0部分 – S4R
第2部分 – 2P
第4部分 – M2A
第6部分 – 2A
这就是为什么我们应该将部分的顺序更改为:0, 4, 2, 6, 1, 5, 3, 7




下一步 – 页面转换。在这种情况下,ECC自动检测将帮助我们应用正确的页面转换!

第一个范围是540 x 4 = 2160(我们进行两次按字节连接,我们的范围增加了四倍)
所有其他范围是538 x 4 = 2152;

将我们所有的范围不成比例地拆分为2048(4个扇区,每个扇区DA为512字节):

将我们的DA拆分为2048字节,分为4部分:512+512+512+512:

现在,我们需要获取包含块号信息的SA标记。将此8字节添加到所有512字节的DA范围,并应用此结构:

应用交错消除并为配对进行按字节连接:

启动原始恢复:

并使用转换器类型-45 SM2234H构建镜像:


就这样!
再次强调,几个重要规则:
-
在芯片拆卸期间,不要忘记使用Ux标记来确定良好的芯片顺序;
-
不要忘记在芯片读取后应用ECC;
-
存储芯片的第一部分应在转换图的一侧,第二部分 – 在另一侧(例如 0, 2, 4, 6 和 1, 3, 5, 7)。
-
检查所有部分中SM2234H控制器名称的标记!芯片应按以下顺序排列:S4R(第0部分),2P(第2部分),M2A(第4部分),2A(第6部分)!
-
使用ECC进行页面转换!