在各種電子技術快速發展和電子市場高速擴大的今天,記憶體的需求量迅速增長。在眾多記憶體類型中,NOR快閃記憶體由於具有隨機讀寫速度快、可靠性高等優點,被廣泛應用於各種電子設備,如可攜式產品、汽車電子等。從1988年發展至今,NOR快閃記憶體技術隨市場需求也不斷地進步更新,不僅容量日益增大,可靠性與隨機讀寫速度也不斷提升。隨著各種電子設備的系統功能日益複雜,對記憶體進行頻繁讀寫成了基本操作,讀寫速度成為衡量NOR快閃記憶體在實際應用中效能方面日趨重要的指標。
隨機讀取/擦除/寫入 操作三部曲
隨機讀取、擦除(使儲存內容從0變1)和寫入(使儲存內容從1變0)是對快閃記憶體的三種基本操作。任何快閃記憶體元件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前,必須先執行擦除。隨著製程和電路設計上的提高,NOR快閃記憶體的隨機讀取速度基本在100奈秒(ns)以內,而同步讀取速度最高可達333MHz。
對NOR快閃記憶體進行擦除一般是以64K~128KB區塊為整體來進行,通常執行一個擦除操作的時間約為0.2~4秒。對NOR快閃記憶體的寫入可以按照緩衝區大小、雙位元組(byte)甚至位元(bit)操作,其中按位元寫入可使任一位元由1變成0。NOR的寫入速度除了與產品製程和設計有關外,還與寫入緩衝區容量有著密切關係。目前,市場上的快閃記憶體產品大都採用低於64位元組的寫入緩衝區容量,例如常見的S29GL和SSF29產品系列等。64位元組的寫入緩衝區容量意味著一次寫入操作之最大能寫入的位址空間範圍為64位元組。
緩衝區大小也會影響寫入速度
在實際應用中,工程師總是希望記憶體具有較快的寫入速度,但往往容易忽略緩衝區大小和寫入速度的關係。本文以恆憶(Numonyx)基於65奈米技術、最高可達1,024位元組寫入緩衝區容量的NOR型M29EW快閃記憶體為例,分析寫入緩衝區大小與寫入速度的關係,作為工程師在實際應用中,選擇合適的寫入緩衝區大小,以盡可能優化擦寫速度的參考。
平均每位元組寫入速度快百倍
恆憶的M29EW快閃記憶體有兩種寫入方式。一種是字寫入方式(Word Program),每次可對單個或兩個位元組進行寫入;另一種是緩存寫入方式(Buffer Program),根據選擇的寫入緩衝區大小,每次可對1~1,024個位元組進行寫入。
字寫入方式具有較高的靈活性,可以對任意單個位址空間進行寫入操作,但寫入時間較長,在須要對連續位址空間進行寫入時,寫入效率較低。緩存寫入方式,不但同樣具備單字節或雙位元組寫入能力,最多還可以一次性寫入連續的1,024位元組的位址空間。
本文以M29EW系列中的128MB產品為例,著重對緩存寫入方式進行分析。使用不同的寫入緩衝區大小對連續位址空間進行寫入,發現採用較大寫入緩衝區單次寫入時間較長。在-40℃的環境溫度下,用2位元組寫入緩衝區大小寫入2位元組的連續位址空間,大概需要200微秒(μs)。
在相同測試條件,用1,024位元組的寫入緩衝區對1,024位元組連續位址空間進行寫入大概需要近700微秒。但是採用大的寫入緩衝區一次寫入操作可以對更多的位址空間進行操作。這樣一來,每位元組所需的平均寫入時間,反而是採用大的寫入緩衝區時間較短(圖1)。
|
圖1 採用不同寫入緩衝區大小寫入與平均每位元組寫入時間的關係。 |
圖1中的兩條線分別表示-40℃和85℃的使用環境溫度,橫座標表示採用的寫入緩衝區大小,縱座標是平均每位元組的寫入時間,為方便結果比較,縱座標採用了對數座標。
由圖中資料可得,同樣在-40℃的環境溫度下,使用2位元組的寫入緩衝區大小,每位元組的平均寫入時間大約是100微秒,而採用64位元組的寫入緩衝區大小,平均每位元組的寫入時間就減少到10微秒以下,如果採用1,024位元組的寫入緩衝區大小,平均每位元組所需的寫入時間已經低於1微秒。特別需要說明的是,所要寫入的資料不同,也會對寫入時間造成較大的影響,為方便比較,本文對各種寫入操作採用相同的寫入內容,這裡測試的結果重點也放在採用不同緩衝區大小的速度相對值的比較上,而不是絕對值。
由於採用大的寫入緩衝區可以提高單字節的寫入速度,因此當工程師進行大塊位元組的擦寫操作時,採用盡可能大的寫入緩衝區來提高擦寫效率。例如,當須要對一塊連續128KB的位址空間進行擦寫操作時,可選擇採用不同的寫入緩衝區大小,圖2顯示了寫入緩衝區大小與完成操作的寫入時間的關係。不難看出,與圖1相同,採用1,024位元組寫入緩衝區大小所需的時間最短,相較2位元組的寫入緩衝區大小,速度提高百倍以上。
|
圖2 採用不同的寫入緩衝區大小寫入128KB連續位址空間所需時間。 |
除寫入緩衝區大小外,由以上的資料還可以發現,適當的降低寫入時快閃記憶體所處的環境溫度,也可以提高寫入速度。
除此之外,適當地提高寫入電壓,也會提升寫入速度。但是對於一個複雜的電子系統,內部操作電壓和環境溫度往往受到其他元件影響而難以控制,因此改變溫度和寫入電壓對於擦寫速度的提高效果,在實際應用中往往存在較大的局限性。 相比之下,選擇較大的寫入緩衝區大小,僅對快閃記憶體本身進行操作,在相同環境條件下是提高寫入效率最簡便易行的方法。
小範圍位址空間 寫入表現亦佳
還有一個在實際應用中值得工程師關注的問題是,當須要寫入的位址空間僅僅是小範圍的時候,如果只有512位元組或者更低至64位元組,該如何選取寫入緩衝區大小才會具有較高的寫入速度?解決辦法是,採用不同的寫入緩衝區大小(64~1,024位元組)分別對64~512位元組的連續位址空間進行寫入操作,記錄各自所用的寫入時間(圖3)。
|
圖3 對小位址空間(64~512位元組)進行寫入操作時,採用不同緩衝區大小與寫入時間關係。 |
這裡之所以最低考慮到64位元組位址空間,是因為寫入到NOR快閃記憶體的資料量通常要高於64位元組。如果實際應用中只須要寫入更少的位址空間,如只有兩位元組位址範圍,本文的結果依然適用。在使用1,024位元組的寫入緩衝區大小去寫入512位元組的位址空間時,緩衝區中的前512個位元組填入所須要寫入的資料,其餘用冗餘數據(FFh)來填充。
結果如圖3所示,每條線代表不同的位址空間大小,橫座標表示採用的寫入緩衝區大小,縱座標表示完成所有位址空間寫入所用的時間。結果顯示,當對64位元組連續位址空間進行寫入時,採用大於64位元組的寫入緩衝區大小的寫入時間基本相當。
同樣地,當對連續空間大小為512位元組時,512位元組與1,024位元組的寫入緩衝區大小所用寫入時間基本一致,而較低的寫入緩衝區大小,如64/128/256位元組,則所需時間明顯增加。但考慮到用1,024位元組的寫入緩衝區相比使用512位元組緩衝區須要多發送512個位元組的冗餘數據,會耗費512個命令週期時間,因此選擇512位元組緩衝區大小具有最高的寫入效率。
有此可見,當只須寫入較小範圍的位址空間時,可以選擇與寫入位址空間大小相同的緩衝區大小,寫入效率最高。
當然,在實際應用中,如果為了簡化操作須要採用固定的寫入緩衝區大小,使用大容量的寫入緩衝區由於具有較高的平均每位元組寫入速度,依然具有較高的寫入效率。
對比同類產品大容量明顯具優勢
對比恆憶的M29EW與市場上的同類產品S29GL256P。M29EW具有1,024位元組的寫入緩衝區大小,而S29GL256P最大的寫入緩衝區為64位元組。為了說明問題,這裡同時對兩種快閃記憶體晶片相同大小的位址空間進行擦寫操作(圖4)。
|
圖4 M29EW與S29GL256P寫入速度比較(均採用產品最大寫入緩衝區大小,M29EW為1,024位元組,而S29Gl256P是64位元組) |
測試結果顯示,M29EW整體的寫入時間是S29GL256P的30%,寫入效率遠遠高於S29GL256P。究其原因很簡單,M29EW採用1,024位元組的寫入緩衝區大小,使得其在寫入時間優於最高採用64位元組寫入緩衝區的S29GL256P。
綜上所述,測試分析恆憶的NOR快閃記憶體M29EW,並與市場上同類的S29GL系列產品進行比較,分析其結果後顯示,對於須要經常進行讀寫操作的電子產品,如行動電子設備、汽車電子設備來說,在設計過程中採用盡可能加大的緩衝區,提高平均每位元組寫入速度,是優化提高讀寫速度的關鍵,同時也是最簡單可行的辦法。在執行相同的寫入操作時,選用1,024位元組的寫入緩衝區大小,使其寫入速度比採用64位元組緩衝區的產品至少快2.5倍以上。
(本文作者任職於恆憶)