瀏覽單個文章
thx
Major Member
 

加入日期: Jun 2000
您的住址: Taipei
文章: 288
跳轉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還要複雜
__________________
~有任何問題 歡迎詢問!!~


自取地址:台北市長春路15號11樓之2
聯絡電話: (02)25214840
手機: 0915153332
Line:@osslab
營業時間為週一至週五 早上10:00 ~18:30


夢理都是DATA
http://www.osslab.com.tw/
舊 2010-07-31, 08:43 PM #67
回應時引用此文章
thx離線中