1. 程式人生 > >CFI(Common Flash Interface)詳解

CFI(Common Flash Interface)詳解

【什麼是CFI】
CFI(Common Flash Interface),是JEDEC(Joint Electron Device Engineering Council,電子器件工程聯合委員會)制定的一個介面,
用來幫助程式讀取Flash的製造商ID和裝置ID,確定Flash的大小,獲得flash的各個物理特性,比如block塊的擦除時間等等。

【為什麼需要這個CFI】
在應用CFI之前,Flash器件的有關資訊都儲存在系統軟體的表格中。當有新的器件釋出時,一般必須修改軟體來新增該器件的描述資訊。
CFI出現後,工程師們正在利用CFI來構建程式碼,它不僅能夠執行在現在的Flash儲存器上,而且隨時準備著應用在下一代的低成本版本上。
這使得原始裝置製造商能夠在低成本Flash儲存器裝置可用時使用它而不必重寫程式碼。

由於生產Flash Memory的半導體制造商眾多,不同廠商Flash Memory產品的操作命令集
和電氣引數又千差萬別,這些人在設計硬體的時候,已經在陣腳的相容性等方面,
做了足夠多的文章,做得很好了,但是與此對應的軟體方面,由於硬體升級,軟體都要改動很大,
這給Flash Memory的開發設計人員和OEM製造商帶來許多不便。
為了對現有的Flash Memory的產品進行升級或使用其它公司的Flash Memory產品替換,
必須對原有的程式程式碼和硬體結構進行修改。
所以,由Intel、AMD、Sharp和Fujutsu出面,通過JEDEC(Joint Electron Device Engineering Council,電子器件工程聯合委員會)
制定了這個CFI。

【CFI的好處】
它可以使系統軟體查詢已安裝的Flash Memory器件的各種引數,
包括器件陣列結構引數、電氣和時間引數以及器件支援的功能等。
利用CFI可以不用修改系統軟體就可以用新型的和改進的產品代替舊版本的產品。
例如:如果新型的Flash Memory的擦除時間只有舊版本的一半,
系統軟體只要通過CFI讀取新器件的擦除時間等引數,修改一下定時器的時間引數即可。
簡單說就是:
1.使得軟體和硬體升級更加方便。
2.使得不同廠商之間的硬體相容性更好,也就是如果都支援了CFI,很多時候,可以實現底層硬體的互換。
比如,軟體是基於CFI的,那麼底層硬體的flash,換了另一廠商的,,而上層軟體就不需要改動,也可以工作。

【CFI內容簡介】
CFI標準,其實也就是一系列的表格,包含了5個部分:
1.“CFI Query Identification String”,CFI查詢識別碼字串
2.“System Interface String”,系統介面字串
3. “Device Geometry Definition”,裝置物理結構資訊定義
4. “Primary Vendor-Specific Extended Query”,原始裝置提供商相關的擴充套件查詢資訊
5.“Alternate Vendor-Specific Extended Query”,可選/備用提供商相關的擴充套件查詢資訊

【其他】
1.現在(截至2008年6月5號),CFI標準只支援並行(parallel) Nor flash,
還不支援SPI的Flash和Spansion的ORNAND flash。關於SPI的Flash,比如Spansion的FL系列的。