2010-06-21 65 views
0

我可以通過任何方式更改存儲在閃存驅動器上的文件塊的ECC代碼嗎? 存儲在硬盤上的文件(雖然我不認爲這兩者之間會有差別)更改塊的ECC代碼

也許,通過一些硬件中斷或類似的東西?

此外我需要的解決方案是在C/C++中。

+0

如果有人仍然不清楚,我正在討論閃存驅動器中的ECC代碼http://www.eurekatech.com/products/memory/NAND_Flash_faq.htm#11作爲示例 – 2010-06-25 10:59:15

回答

1

NAND閃存驅動器由多個數據頁和閃存控制器組成。 NAND閃存上的ECC代碼由閃存控制器使用。控制器使用它來確定關聯的數據頁是否有任何錯誤。文件系統(如fat32,NTFS或ext3)通常在原始數據頁面結構上實現。文件可能分佈在一個或多個Flash頁面上。請注意,每個Flash頁面都有一個錯誤代碼,這意味着一個大於一個數據頁面的文件將爲其使用的每個頁面提供一個錯誤代碼。硬盤驅動器由一個或多個盤片,在盤片上讀寫數據的磁頭以及磁盤控制器組成。每個盤片被分成扇區。硬盤驅動器也有錯誤代碼來檢查盤片上扇區的完整性。再次,文件系統通常在原始磁盤扇區之上實現。如果文件大於扇區,則會有多個扇區與文件相關聯,每個扇區都有自己的錯誤代碼。要訪問數據頁面或扇區錯誤代碼,您需要直接與Flash或硬件潛水控制器連接。這將需要與設備的設備驅動程序接口。您需要閱讀設備驅動程序的文檔,才能發現它提供的功能以允許您訪問錯誤代碼。在任何一種情況下,除非一個文件只佔用一個數據頁面或扇區,否則它將有多個與之關聯的錯誤代碼。有些文件系統爲文件創建錯誤代碼,無論長度如何,但訪問文件系統級別的錯誤代碼通常不需要硬件訪問。