痞子衡嵌入式:並行NOR接口標准(CFI-JESD68)及SLC Parallel NOR簡介



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是CFI標准及SLC Parallel NOR

  NOR Flash是嵌入式世界里最常見的存儲器,常常內嵌在微控制器里(Parallel型)或外置作為內存擴展(Serial型),作為代碼存儲器。對於嵌入式開發而言,NOR主要分為兩大類:Serial NOR、Parallel NOR,最早出現的NOR是Parallel NOR,后來為了簡化引腳數,逐漸發展出了Serial NOR,目前的格局是Serial NOR主要占據低容量NOR市場(128Mb以下),而Parallel NOR主要占據高容量NOR市場(128Mb以上),生產Parallel NOR的廠商有很多,但無論是哪個廠商的Parallel NOR基本上都兼容CFI接口標准,這給軟件驅動開發帶來了便利。

一、CFI-JESD68標准由來

  關於NOR Flash發展史,我們知道早在1988年Intel便發表了NOR Flash結構,從此改變了由EPROM/EEPROM一統天下的局面。早期的NOR產品主要是Parallel NOR,作為半導體行業領導大廠,為了使NOR產品發展標准化,Intel於1996年制定了CFI 1.0標准(1.0版本屬於draft版本,正式版本是1997年發布的1.1),CFI標准的存在是為了讓Host能夠從NOR Flash device中直接獲取制造商ID、設備ID、Flash大小以及各種物理特性,從而使得NOR Flash產品在前后兼容性上表現更好,軟件驅動設計也更加標准化。
  鑒於CFI已慢慢發展成為NOR Flash事實上的接口標准,JEDEC組織於1999年9月正式將CFI標准命名為JESD68,下表是CFI-JESD68標准制定的時間關系:

時間 NOR標准 制定者
1996.07 CFI 1.0 Intel
1997.05 CFI 1.1 Intel
1999.09 JESD68 JEDEC
2001.12 CFI 2.0 AMD
2003.09 JESD68.01 JEDEC

Note: CFI-JESD68標准原則上是為Parallel NOR制定的,但是部分Serial NOR也支持這一標准。

二、SLC Parallel NOR原理

2.1 Parallel NOR分類

  從軟件驅動開發角度而言,Parallel NOR可以從以下幾個方面進一步細分:

單元層數(bit/cell):SLC(1bit/cell) / MLC(2bit/cell)
地址模式: ADP / ADM / AADM
數據線寬度:x8 / x16
信號線模式:Asynchronous / Synchronous
數據采集模式:SDR / DDR
接口標准:CFI

  本文的主要研究對象是兼容CFI 2.0 (JESD68.01)標准的Asynchronous SDR SLC Parallel NOR Flash。

2.2 Parallel NOR內存模型

  NOR內存單元從大到小一般分為如下5層:Device、Block、Sector、Page、Byte,其中Byte、Page和Sector是必有的,因為Byte是讀取的最小單元(即可以任意地址隨機訪問),Page是編程的最小單元,Sector是擦除的最小單元,而Block則不是必有的(如沒有,可認為Block=1)。

Note: 關於Block有一點需要特別說明,即NOR的RWW(Read While Write)特性,我們知道NOR是可以存儲代碼直接原地執行XIP的,如果在某個Block里執行代碼(即CPU從NOR中讀取指令數據)的同時去擦除或編程這塊Block會發生什么情況呢?有些NOR是支持這種RWW操作的,但也有的NOR不支持RWW(此時會產生hardfault/lockup),Block的存在是為了規避RWW問題,RWW問題的作用范圍是Block,如果某Block中執行代碼擦除/編程的是另一塊Block,則完全不用擔憂RWW問題。

2.3 Parallel NOR信號與封裝

  CFI手冊里並沒有明確規定Parallel NOR信號線與封裝,但業界有默認的標准,從信號線角度來說NOR和SRAM基本是一樣的,如下是典型的Parallel NOR內部結構圖,除了內存單元外,還有三大組成,分別是控制單元、地址譯碼單元和輸出緩沖單元,信號線主要掛在這三大組成上,關於各信號線具體作用,請查閱相關文檔。

  NOR芯片根據Flash size大小不同封裝也不盡相同,以經典的128Mb容量的ADP NOR芯片為例,其封裝一般有三種TSOP-56, TFBGA-56, LFBGA-64,下圖是TSOP-56封裝信號分布:

2.4 Parallel NOR接口命令

  CFI手冊里也沒有明確規定Parallel NOR接口命令,同樣地業界還是有默認的標准,如下是從Micron MT28EW系列手冊里截取的部分基本命令,包括Reset、Read、Read CFI、Program(Word program)、Buffer Program、Block(Sector) Erase,涵蓋讀寫擦最基本的三種操作,這些基本命令在主流廠商的NOR產品里都被支持。此外,NOR還支持更多高級命令(Blank Check、security/protect相關,lower power相關等),那些命令因Device而異,不是本文討論重點。

  除了讀寫擦這三個最基本命令外,還有一個Data Polling機制也非常常用,這個機制用於獲取命令(主要是Program/Erase)執行狀態與結果,當Program/Erase命令發給NOR device之后,NOR device是通過DQ[7:0]引腳來返回命令執行狀態的,各bit意義如下圖所示,簡單來說DQ3(Erase timer bit)表明操作的開始,DQ5(Error bit)表明操作過程中是否發生硬件錯誤,DQ6(Toggle bit)表明操作是否結束。

  下圖為Toggle bit檢測的流程圖,這個檢測流程是最常用的,主要用於確認Program/Erase操作是否成功地執行了。

  此外,還有一個必有命令不得不提,這個命令是Read CFI,用於獲取芯片內部存儲的出廠信息(包括內存結構、特性、其他行為參數等),這個query table最多由五部分組成,其結構已由CFI規定如下表,痞子衡已經圈出了一些重要信息,在設計NOR軟件驅動時,可以通過獲取這個query table來做到代碼通用。

2.5 Parallel NOR數據速率

  數據存取速率是個重要的技術指標,對於這個指標,CFI手冊里並沒有定義,所以需要根據NOR Flash手冊里的AC characteristics表來確定。以異步模式Read命令為例講解(以Micron生產的型號為MT28EW128ABA為例),下面是Read的兩種模式Random Read和Page Read完整時序簡圖:

  從上述時序圖,我們可以知道Page Read平均數據率肯定是比Random Read要高的,那么這兩種數據率分別能達到多少呢?可繼續參看如下時序參數表,tRC最小為70ns,那么Random Read數據率最大為2Bytes/70ns = 228.571Mbps,而tPAGE最大為20ns,那么Page Read的數據率最小為2Bytes / 20ns = 800Mbps。(注:均以x16 Device為例)

  如果想快捷地了解NOR Flash的性能,最簡單的就是打開NOR Flash手冊,看首頁的feature介紹,如下是MT28EW128ABA的簡要feature:

• Single-level cell (SLC) process technology
• Density: 128Mb
• Supply voltage
  – VCC = 2.7–3.6V (program, erase, read)
  – VCCQ = 1.65 - VCC (I/O buffers)
• Asynchronous random/page read
  – Page size: 16 words or 32 bytes
  – Page access: 20ns
  – Random access: 70ns (VCC = VCCQ = 2.7-3.6V)
  – Random access: 75ns (VCCQ = 1.65-VCC)
• Buffer program (512-word program buffer)
  – 2.0 MB/s (TYP) when using full buffer program
  – 2.5 MB/s (TYP) when using accelerated buffer program (VHH)
• Word/Byte program: 25us per word (TYP)
• Block erase (128KB): 0.2s (TYP)
• Memory organization
  – Uniform blocks: 128KB or 64KW each
  – x8/x16 data bus
• CFI (Common Flash Interface) support

三、SLC Parallel NOR產品

  最后痞子衡收集了可以售賣SLC Parallel NOR芯片的廠商及產品系列:

廠商 芯片系列 官方網址
Micron MT28EW, MT28FW https://www.micron.com
parallel-nor-part-catalog
Macronix MX68GL
MX29LA, MX29GL, MX29GA, MX29LV
MX29VS, MX29NS, MX29SL, MX29F
http://www.macronix.com
parallel-nor-part-catalog
Winbond W29GL http://www.winbond.com.tw
parallel-nor-part-catalog
Spansion S29GL, S29AL, S29AS, S29PL http://www.cypress.com/
parallel-nor-part-catalog
ISSI IS29GL www.issi.com
parallel-nor-part-catalog
Microchip SST38VF, SST39VF https://www.microchip.com
parallel-nor-part-catalog

  至此,CFI標准及SLC Parallel NOR痞子衡便介紹完畢了,掌聲在哪里~~~

歡迎訂閱

文章會同時發布到我的 博客園主頁CSDN主頁微信公眾號 平台上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM