跳轉SD Card 跟USB stick Data recovery
一般memory card ( XD 例外 XD 是沒有Controller 設計)
像SD card 內部像這樣
NAND Flash 放大
PCB 版+不同家主控SMI,邦芯,incomm 等 再配上 1~2 棵 tsop 48 pin flash memory
就完成一張Sd card
當主控損毀 或是部份Nand Memory data 遺失 都會造成工作不正常
這種狀況. 要獨立於Controller 外 從建算法表
FLASH Memory 不像是DRAM 儲存數據 那樣單純,因為 FLASH memory有壽命限制問題,必需用均衡寫入與讀取算法來存儲數據,必須分析出數據存儲的結搆和組織關系, 如數據里有無規律的ID號、通道交換、塊間交換、頁間交換等情況. 才能得到正確數據.
白話點,Dump 出來raw data.不是單存線性數據
Nand Flash Architecture
閃存架構是很重要的 要清楚瞭解才能正確還原其數據塊
bytes
Pages
Block
Bank (同於 ,Die )
顆數( Channel)
Page (有幾塊pages 數是flash memoery 硬體參數決定.同一model pages一樣)
管理區(Spare area簡稱SA) 位置是不定,觀察閃存IC內容時,最重要就是要區格開管理塊跟數據塊
至於Pages 有幾Bytes 可不一定的
比如說
1 Pages= 2048 Bytes的User Data 數據塊 加上 64 Bytes的Spare Data所構成的 管理塊
1 Pages= 4096 KBytes的User Data 數據塊 加上 128 Bytes的Spare Data所構成的 管理塊
若 1 Pages= 2048 Bytes的User Data 數據塊 加上 64 Bytes的Spare Data所構成的 管理塊 = 2112 Bytes
Pages 組成 不會這樣單純 由主控制IC 跟量產工具所控制
比如說單頁容量值=單元頭大小+(資料塊個數×資料長度)+資料頭大小+(管理區(SA區)個數×資料尾長度)+單元尾大小。
表示可如下 0+ (4×512)+0+(4×16)+0=2112。
Pages 再組成 Blocks (塊)
組成方法也不同 64 Pages or 128 Pages= 1 Blocks 等都有
以 1 Pages 2112 bytes, 1 block =128 Pages 為例
2112 * 128 /1024 = 264 故每個Block的容量為264 Kbytes =135168 bytes
Blocks 再組成 Bank
Bank為nand flash 層數
通常2048 Block = 1 Bank = 528MB 每顆的Bank 容量 但是還是有不同的定義 比如說高容量Nand flash 1 bank =8192 block
NAND Flash除了Page Data 有header + SA 與定位非線性外, 每個Pages, block, Bank還有不同交替格式
比Raid還要複雜