PC3000 FLASH通过ID确定某些芯片参数
在某些情况下,您在读取芯片时看到检测到的芯片 ID,但无法将其应用于任务中。因此,它不允许从内存芯片读取转储。如果出现以下情况,则可能出现此类行为:
► 芯片在拆焊过程中
有物理损坏或过热 ► 存储芯片参考书没有特定芯片 ID 的读取参数。
在为新的(未知的)存储芯片添加读取参数时,以下信息将非常有用,适用于了解NAND主要原理的用户。
如果您不熟悉 NAND 数据恢复,我们建议您先学习这些原则。
当然,您可以尝试找到某个存储芯片的数据表,并从那里读取参数。但有时不可能找到数据表或那里缺少某些参数(未描述)。
读取参数检测是一个调查过程,需要一些特定的知识。在本文中,我们将概述一些在此过程中对您有所帮助的想法。无论如何,如果您在数据恢复过程中遇到不受支持的 NAND ID,我们强烈建议您联系我们的技术支持部门。
大家都习惯了芯片ID由4个字节组成,
例如98DE9892,但实际上,完整的芯片ID由6个字节组成,例如98DE9892-7656xxxx。
在这种情况下,PC-3000 闪存读卡器读取 8 个字节,但最后 2 个字节并不重要,不会被考虑在内。
为了将一个存储芯片与另一个存储芯片区分开来,ID本身是必要的。
这就是为什么芯片的一些基本特性被提及/存储在 ID 中,并且一些非常重要的特征也隐藏在第 5 和第 6 字节中。
首先,让我们看一下哪个字节负责什么。
1 – 供应商 ID、制造商的识别码。
2 – 设备 ID、设备标识码。但是,事实上,ID 的第二个字节长期以来一直负责其他事情。
3-6 – 定义芯片特性的字节,我们将在下面考虑。
第一个字节
是供应商 ID 字节,可以是:
2C | Micron |
45 | Sandisk |
89 | Intel |
98 | Toshiba |
AD | Hynix |
EC | Samsung |
第二个字节
是设备 ID 字节。
该字节是多功能的,它负责存储芯片的容量,在某些情况下还负责存储芯片的位深度。
查看存储芯片组容量与 ID 的第二个字节之间的依赖关系表(值以兆字节为单位):
E6 | 8 | 88 | 8192 | |
73 | 16 | D9 | 8192 | |
75 | 32 | DE | 8192 | |
66 | 64 | CE | 8192 | |
76 | 64 | EE | 8192 | |
79 | 128 | 64 | 8192 | |
F1 | 128 | AE | 8192 | |
01 | 128 | 50 | 8192 | |
AA | 256 | 4A | 16384 | |
DA | 256 | A8 | 16384 | |
CA | 256 | 84 | 16384 | |
DC | 512 | 3A | 16384 | |
CC | 512 | 4C | 16384 | |
29 | 512 | 1A | 16384 | |
D3 | 1024 | 2D | 8192 | |
38 | 1024 | 4D | 8192 | |
48 | 2048 | 6D | 16384 | |
D5 | 2048 | 78 | 4096 | |
C5 | 2048 | 98 | 8192 | |
28 | 4096 | 3C | 32768 | |
D7 | 4096 | C8 | 32768 | |
68 | 4096 | A4 | 32768 | |
C7 | 4096 | 4E | 32768 | |
E7 | 4096 | 3E | 65536 | |
44 | 4096 |
该表可能不完整,但它涵盖了大多数现代存储芯片。
另外,值得一提的是,芯片 ID 的第二个字节决定了一个组的容量,而不是整个芯片的容量。
换句话说,如果我们有一个具有“DE”第二个字节 (8192) 的芯片,同时这个存储芯片有 4 个部分,那么这个存储芯片的总容量是 32768。
但是在PC-3000闪存工具的参考书中,需要添加一个Bank的容量= 8192。
此外,第二个字节允许确定存储芯片的总线宽度(8位或 16位)。
例如,让我们比较 2 个字节 D7 和 C7 的位表示:
D7 = 11010111
C7 = 11000111
正如我们所看到的,第 4 位对 D7 有“1”值,对 C7 有“0”值。
该位决定了东芝和Sandisk等制造商的芯片宽度,在某些情况下还决定了三星的芯片宽度。
但与此同时,值得记住的是,如果指定的位是 = ‘0‘,
那么这并不意味着总线是 16 位。这只是一个标志,或者我们可以说“支持”16位操作模式,例如,在实践中可以变成16-8。
然后是使用 16 位数据总线的较低 8 位。
此外,例如,如果我们有 2 个存储芯片:
45DE9892-7256
45CE9892-7256,
两个芯片的读取参数相同,但总线宽度除外。
第三字节
:对于大多数芯片来说,它负责 LUN 的数量和内存类型。
例如,我们有两个存储芯片:
98DE9892 和 98DE9532
第一个字节 98 – 东芝
第二个字节 DE – 每个组
8192 MB 第三个字节二进制表示:
98 = 10011000
95 = 10010101
最后 2 位(蓝色)负责 LUN 的数量,并采用以下值:
0 0 – 1
0 1 – 2
1 0 – 4
1 1 – 8
该参数对于存储芯片的特殊读取规则具有决定性作用。
在PC-3000闪存软件中,在特殊读取规则窗口中,它被称为“平面数”。
接下来的 2 位(红色)负责类型并采用以下值:
0 0 – SLC(2 级单元)
0 1 – MLC(4 级单元)
1 0 – TLC(8 级单元)
1 1 – QLC(16 级单元)
根据存储器的类型,可以切断可能不正确的读取算法,从而大大减少优化读取参数的时间。
第三个字节 ID 的剩余位保留用于其他一些事情,它们的用途未知。
第 4 个和第 5 个字节具有很强的“供应商依赖性”。
每个制造商根据自己的概念确定参数,即使在同一制造商但不同代的芯片中,任命也可能不同。
第五字节
它编码了平面的数量(不要与第三个字节中的 LUN 数量混淆)。
平面的数量会影响交错(2 路(单路)/4 路(双路))的存在、不存在和类型。我们可以从 ID 的第五个字节的第 2 位和第 3 位获取有关平面数量的信息:
0 0 – 1 平面
0 1 – 2 平面
1 0 – 4 平面
1 1 – 8 平面
以两个存储芯片为例:
453C9A92-7Axxxxxx – the fifth byte in the ID = 7A, bin view 01111010,
according to table 10 = 4 planes,
98DE9892-76xxxxxx – the fifth byte in the ID = 76, bin view 01110110,
according to table 01 = 2 planes.
因此,可以预见交错的存在。
合乎逻辑的是,如果芯片有 2 或 4 个平面,那么很可能会有一个交错——如果有 2 个平面,则有一个交错,如果有 4 个平面,则有两个交错。
如果芯片具有单个平面,则还可以预见没有交错。
第六字节
在确定读取参数方面,它是最后一个感兴趣的字节。
它允许确定读取模式:DDR 或 SDR。
例如,下面是两个芯片 ID:
98DE9892-7256
98DE9892-72D6
在位视图中:
56 = 01010110
D6 = 11010110
正如我们所看到的,只有第一位是不同的:0 和 1。
该位允许确定读取模式。
1 = DDR
0 = 特别提款权
但是,有时,尤其是在旧的东芝和闪迪内存芯片上,该位定义了对 DDR 模式的支持,并且可以通过固件的特殊命令启用它。不过,默认情况下,读取模式为 SDR。
还值得记住的是,除了读取模式(SDR 和 DDR)外,98DE9892-7256 和 98DE9892-72D6 等成对存储芯片的其余参数将是相同的。
如果您对数据恢复案例有疑问,欢迎您向技术支持部门提出。