FLASH存儲(chǔ)-----NOR Flash
所謂Flash,是內(nèi)存(Memory)的一種,但兼有RAM和ROM 的優(yōu)點(diǎn),是一種可在系統(tǒng)(In-System)進(jìn)行電擦寫,掉電后信息不丟失的存儲(chǔ)器,同時(shí)它的高集成度和低成本使它成為市場(chǎng)主流。
Flash 芯片是由內(nèi)部成千上萬(wàn)個(gè)存儲(chǔ)單元組成的,每個(gè)單元存儲(chǔ)一個(gè)bit。具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點(diǎn),并且可由內(nèi)部嵌入的算法完成對(duì)芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。
作為一種非易失性存儲(chǔ)器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。
常用的Flash為8位或16位的數(shù)據(jù)寬度,編程電壓為單3.3V。主要的生產(chǎn)廠商為INTEL、ATMEL、AMD、HYUNDAI等。Flash 技術(shù)根據(jù)不同的應(yīng)用場(chǎng)合也分為不同的發(fā)展方向,有擅長(zhǎng)存儲(chǔ)代碼的NOR Flash和擅長(zhǎng)存儲(chǔ)數(shù)據(jù)的NAND Flash。一下對(duì)NOR Flash和NAND Flash的技術(shù)分別作了相應(yīng)的介紹。
一.NOR Flash
1. 市場(chǎng)介紹
隨著技術(shù)的發(fā)展,愈來(lái)愈多的電子產(chǎn)品需要更多的智能化,這也對(duì)這些產(chǎn)品的程序存儲(chǔ)提出了更高的要求。Flash 作為一種低成本、高集成度的存儲(chǔ)技術(shù)在電子產(chǎn)品領(lǐng)域的應(yīng)用非常廣泛。今天90%的PC、超過(guò)90%的手機(jī)、超過(guò)50%的Modem,都是用了Flash,如今Flash市場(chǎng)規(guī)模已經(jīng)超過(guò)了100億美元。
如此巨大的市場(chǎng)規(guī)模,也導(dǎo)致市場(chǎng)上的Flash 品牌層出不窮。在NOR Flash市場(chǎng)中,Intel公司是非常重要的一家生產(chǎn)廠商。Intel公司生產(chǎn)的Flash芯片多年來(lái)占據(jù)著市場(chǎng)的很大份額,而它的芯片封裝形式和接口也成為業(yè)界標(biāo)準(zhǔn),從而為不同品牌的Flash帶來(lái)了兼容的方便。
2. NOR Flash 的硬件設(shè)計(jì)和調(diào)試
首先,F(xiàn)lash 要通過(guò)系統(tǒng)總線接在處理器上,即保持一個(gè)高速的數(shù)據(jù)交換的通道。那么就必須了解一下Flash在系統(tǒng)總線上的基本操作。
1) 先了解一下處理器存儲(chǔ)空間BANK的概念。以32位處理器S3C2410為例,理論上可以尋址的空間為4GB,但其中有3GB的空間都預(yù)留給處理器內(nèi)部的寄存器和其他設(shè)備了,留給外部可尋址的空間只有1GB,也就是0X00000000~0X3fffffff,總共應(yīng)該有30根地址線。這1GB的空間,2410處理器又根據(jù)所支持的設(shè)備的特點(diǎn)將它分為了8份,每份空間有128MB,這每一份的空間又稱為一個(gè)BANK。為方便操作,2410獨(dú)立地給了每個(gè)BANK一個(gè)片選信號(hào)(nGCS7~nGCS0)。其實(shí)這8個(gè)片選信號(hào)可以看作是2410處理器內(nèi)部30根地址線的最高三位所做的地址譯碼的結(jié)果。正因?yàn)檫@3根地址線所代表的地址信息已經(jīng)由8個(gè)片選信號(hào)來(lái)傳遞了,因此2410處理器最后輸出的實(shí)際地址線就只有A26~A0(如下圖1)
圖1 2410內(nèi)存BANK示意圖
2)以圖2(帶nWAIT信號(hào))為例,描述一下處理器的總線的讀操作過(guò)程,來(lái)說(shuō)明Flash整體讀、寫的流程。第一個(gè)時(shí)鐘周期開始,系統(tǒng)地址總線給出需要訪問(wèn)的存儲(chǔ)空間地址,經(jīng)過(guò)Tacs時(shí)間后,片選信號(hào)也相應(yīng)給出(鎖存當(dāng)前地址線上地址信息),再經(jīng)過(guò)Tcso時(shí)間后,處理器給出當(dāng)前操作是讀(nOE為低)還是寫(new為低),并在Tacc時(shí)間內(nèi)將數(shù)據(jù)數(shù)據(jù)準(zhǔn)備好放之總線上,Tacc時(shí)間后(并查看nWAIT信號(hào),為低則延長(zhǎng)本次總線操作),nOE 拉高,鎖存數(shù)據(jù)線數(shù)據(jù)。這樣一個(gè)總線操作就基本完成
圖2 帶nWAIT 信號(hào)的總線讀操作