複製鏈接
請複製以下鏈接發送給好友

閃存芯片

鎖定
主板上的BIOS大多使用Flash Memory製造,翻譯成中文就是"閃動的存儲器",通常把它稱作"快閃存儲器",簡稱"閃存"。閃存盤是一種移動存儲產品,可用於存儲任何格式數據文件便於隨身攜帶,是個人的“數據移動中心”。 閃存盤採用閃存存儲介質(Flash Memory)和通用串行總線(USB)接口,具有輕巧精緻、使用方便、便於攜帶、容量較大、安全可靠、時尚潮流等特徵,是大家理想的便攜存儲工具。
中文名
閃存芯片
概    述
閃存盤是一種移動存儲產品
決定因素
頁數量 頁容量
閃存特點
斷電後數據不消失

閃存芯片簡介

我們常説的閃存其實只是一個籠統的稱呼,準確地説它是非易失隨機訪問存儲器(NVRAM)的俗稱,特點是斷電後數據不消失,因此可以作為外部存儲器使用。
閃存芯片 閃存芯片
而所謂的內存是揮發性存儲器,分為DRAM和SRAM兩大類,其中常説的內存主要指DRAM,也就是我們熟悉的DDR、DDR2、SDR、EDO等等。

閃存芯片分類

閃存也有不同類型,其中主要分為NOR型和NAND型兩大類。
NOR型與NAND型閃存的區別很大,打個比方説,NOR型閃存更像內存,有獨立的地址線和數據線,但價格比較貴,容量比較小;而NAND型更像硬盤,地址線和數據線是共用的I/O線,類似硬盤的所有信息都通過一條硬盤線傳送一般,而且NAND型與NOR型閃存相比,成本要低一些,而容量大得多。因此,NOR型閃存比較適合頻繁隨機讀寫的場合,通常用於存儲程序代碼並直接在閃存內運行,手機就是使用NOR型閃存的大户,所以手機的“內存”容量通常不大;NAND型閃存主要用來存儲資料,我們常用的閃存產品,如閃存盤、數碼存儲卡都是用NAND型閃存。

閃存芯片速度

這裏我們還需要端正一個概念,那就是閃存的速度其實很有限,它本身操作速度、頻率就比內存低得多,而且NAND型閃存類似硬盤的操作方式效率也比內存的直接訪問方式慢得多。因此,不要以為閃存盤的性能瓶頸是在接口,甚至想當然地認為閃存盤採用USB2.0接口之後會獲得巨大的性能提升。
前面提到NAND型閃存的操作方式效率低,這和它的架構設計和接口設計有關,它操作起來確實挺像硬盤(其實NAND型閃存在設計之初確實考慮了與硬盤的兼容性),它的性能特點也很像硬盤:小數據塊操作速度很慢,而大數據塊速度就很快,這種差異遠比其他存儲介質大的多。這種性能特點非常值得我們留意。

閃存芯片NAND型

內存和NOR型閃存的基本存儲單元是bit,用户可以隨機訪問任何一個bit的信息。而NAND型閃存的基本存儲單元是頁(Page)(可以看到,NAND型閃存的頁就類似硬盤的扇區,硬盤的一個扇區也為512字節)。每一頁的有效容量是512字節的倍數。所謂的有效容量是指用於數據存儲的部分,實際上還要加上16字節的校驗信息,因此我們可以在閃存廠商的技術資料當中看到“(512+16)Byte”的表示方式。2Gb以下容量的NAND型閃存絕大多數是(512+16)字節的頁面容量,2Gb以上容量的NAND型閃存則將頁容量擴大到(2048+64)字節。

閃存芯片擦除操作

NAND型閃存以塊為單位進行擦除操作。閃存的寫入操作必須在空白區域進行,如果目標區域已經有數據,必須先擦除後寫入,因此擦除操作是閃存的基本操作。一般每個塊包含32個512字節的頁,容量16KB;而大容量閃存採用2KB頁時,則每個塊包含64個頁,容量128KB。
每顆NAND型閃存的I/O接口一般是8條,每條數據線每次傳輸(512+16)bit信息,8條就是(512+16)×8bit,也就是前面説的512字節。但較大容量的NAND型閃存也越來越多地採用16條I/O線的設計,如三星編號K9K1G16U0A的芯片就是64M×16bit的NAND型閃存,容量1Gb,基本數據單位是(256+8)×16bit,還是512字節。

閃存芯片尋址

尋址時,NAND型閃存通過8條I/O接口數據線傳輸地址信息包,每包傳送8位地址信息。由於閃存芯片容量比較大,一組8位地址只夠尋址256個頁,顯然是不夠的,因此通常一次地址傳送需要分若干組,佔用若干個時鐘週期。NAND的地址信息包括列地址(頁面中的起始操作地址)、塊地址和相應的頁面地址,傳送時分別分組,至少需要三次,佔用三個週期。隨着容量的增大,地址信息會更多,需要佔用更多的時鐘週期傳輸,因此NAND型閃存的一個重要特點就是容量越大,尋址時間越長。而且,由於傳送地址週期比其他存儲介質長,因此NAND型閃存比其他存儲介質更不適合大量的小容量讀寫請求。

閃存芯片決定因素

閃存芯片頁數量

前面已經提到,越大容量閃存的頁越多、頁越大,尋址時間越長。但這個時間的延長不是線性關係,而是一個一個的台階變化的。譬如128、256Mb的芯片需要3個週期傳送地址信號,512Mb、1Gb的需要4個週期,而2、4Gb的需要5個週期。

閃存芯片頁容量

每一頁的容量決定了一次可以傳輸的數據量,因此大容量的頁有更好的性能。前面提到大容量閃存(4Gb)提高了頁的容量,從512字節提高到2KB。頁容量的提高不但易於提高容量,更可以提高傳輸性能。我們可以舉例子説明。以三星K9K1G08U0M和K9K4G08U0M為例,前者為1Gb,512字節頁容量,隨機讀(穩定)時間12μs,寫時間為200μs;後者為4Gb,2KB頁容量,隨機讀(穩定)時間25μs,寫時間為300μs。假設它們工作在20MHz。
讀取性能:NAND型閃存的讀取步驟分為:發送命令和尋址信息→將數據傳向頁面寄存器(隨機讀穩定時間)→數據傳出(每週期8bit,需要傳送512+16或2K+64次)。
K9K1G08U0M讀一個頁需要:5個命令、尋址週期×50ns+12μs+(512+16)×50ns=38.7μs;K9K1G08U0M實際讀傳輸率:512字節÷38.7μs=13.2MB/s;K9K4G08U0M讀一個頁需要:6個命令、尋址週期×50ns+25μs+(2K+64)×50ns=131.1μs;K9K4G08U0M實際讀傳輸率:2KB字節÷131.1μs=15.6MB/s。因此,採用2KB頁容量比512字節也容量約提高讀性能20%。
寫入性能:NAND型閃存的寫步驟分為:發送尋址信息→將數據傳向頁面寄存器→發送命令信息→數據從寄存器寫入頁面。其中命令週期也是一個,我們下面將其和尋址週期合併,但這兩個部分並非連續的。
K9K1G08U0M寫一個頁需要:5個命令、尋址週期×50ns+(512+16)×50ns+200μs=226.7μs。K9K1G08U0M實際寫傳輸率:512字節÷226.7μs=2.2MB/s。K9K4G08U0M寫一個頁需要:6個命令、尋址週期×50ns+(2K+64)×50ns+300μs=405.9μs。K9K4G08U0M實際寫傳輸率:2112字節/405.9μs=5MB/s。因此,採用2KB頁容量比512字節頁容量提高寫性能兩倍以上。

閃存芯片塊容量

塊是擦除操作的基本單位,由於每個塊的擦除時間幾乎相同(擦除操作一般需要2ms,而之前若干週期的命令和地址信息佔用的時間可以忽略不計),塊的容量將直接決定擦除性能。大容量NAND型閃存的頁容量提高,而每個塊的頁數量也有所提高,一般4Gb芯片的塊容量為2KB×64個頁=128KB,1Gb芯片的為512字節×32個頁=16KB。可以看出,在相同時間之內,前者的擦速度為後者8倍。

閃存芯片I/O位寬

以往NAND型閃存的數據線一般為8條,不過從256Mb產品開始,就有16條數據線的產品出現了。但由於控制器等方面的原因,x16芯片實際應用的相對比較少,但將來數量上還是會呈上升趨勢的。雖然x16的芯片在傳送數據和地址信息時仍採用8位一組,佔用的週期也不變,但傳送數據時就以16位為一組,帶寬增加一倍。K9K4G16U0M就是典型的64M×16芯片,它每頁仍為2KB,但結構為(1K+32)×16bit。
模仿上面的計算,我們得到如下。K9K4G16U0M讀一個頁需要:6個命令、尋址週期×50ns+25μs+(1K+32)×50ns=78.1μs。K9K4G16U0M實際讀傳輸率:2KB字節÷78.1μs=26.2MB/s。K9K4G16U0M寫一個頁需要:6個命令、尋址週期×50ns+(1K+32)×50ns+300μs=353.1μs。K9K4G16U0M實際寫傳輸率:2KB字節÷353.1μs=5.8MB/s
可以看到,相同容量的芯片,將數據線增加到16條後,讀性能提高近70%,寫性能也提高16%。

閃存芯片頻率

工作頻率的影響很容易理解。NAND型閃存的工作頻率在20~33MHz,頻率越高性能越好。前面以K9K4G08U0M為例時,我們假設頻率為20MHz,如果我們將頻率提高一倍,達到40MHz,則
K9K4G08U0M讀一個頁需要:6個命令、尋址週期×25ns+25μs+(2K+64)×25ns=78μs。K9K4G08U0M實際讀傳輸率:2KB字節÷78μs=26.3MB/s。可以看到,如果K9K4G08U0M的工作頻率從20MHz提高到40MHz,讀性能可以提高近70%。當然,上面的例子只是為了方便計算而已。在三星實際的產品線中,可工作在較高頻率下的應是K9XXG08UXM,而不是K9XXG08U0M,前者的頻率可達33MHz。

閃存芯片製造工藝

製造工藝可以影響晶體管的密度,也對一些操作的時間有影響。譬如前面提到的寫穩定和讀穩定時間,它們在我們的計算當中佔去了時間的重要部分,尤其是寫入時。如果能夠降低這些時間,就可以進一步提高性能。90nm的製造工藝能夠改進性能嗎。答案恐怕是否。實際情況是,隨着存儲密度的提高,需要的讀、寫穩定時間是呈現上升趨勢的。前面的計算所舉的例子中就體現了這種趨勢,否則4Gb芯片的性能提升更加明顯。
綜合來看,大容量的NAND型閃存芯片雖然尋址、操作時間會略長,但隨着頁容量的提高,有效傳輸率還是會大一些,大容量的芯片符合市場對容量、成本和性能的需求趨勢。而增加數據線和提高頻率,則是提高性能的最有效途徑,但由於命令、地址信息佔用操作週期,以及一些固定操作時間(如信號穩定時間等)等工藝、物理因素的影響,它們不會帶來同比的性能提升。
1Page=(2K+64)Bytes;1Block=(2K+64)B×64Pages=(128K+4K)Bytes;1Device=(2K+64)B×64Pages×4096Blocks=4224Mbits
其中:A0~11對頁內進行尋址,可以被理解為“列地址”。
A12~29對頁進行尋址,可以被理解為“行地址”。為了方便,“列地址”和“行地址”分為兩組傳輸,而不是將它們直接組合起來一個大組。因此每組在最後一個週期會有若干數據線無信息傳輸。沒有利用的數據線保持低電平。NAND型閃存所謂的“行地址”和“列地址”不是我們在DRAM、SRAM中所熟悉的定義,只是一種相對方便的表達方式而已。為了便於理解,我們可以將上面三維的NAND型閃存芯片架構圖在垂直方向做一個剖面,在這個剖面中套用二維的“行”、“列”概念就比較直觀了。

閃存芯片容量識別

081G128M
082G256M
084G512M
088G1G
08AG2G
AG081G
BG084G

閃存芯片供應動態

日前,SandForce的新東家芯片公司LSI表示,他們正在研發一款用於超極本中SF主控SSD的新固件,而主要作用就是降低SSD的功耗,此外還能提升SSD的性能,加快啓動速度。  [1] 

閃存芯片參數

採用3. 3V電源;
芯片內部的存儲單元陣列為(256M +8.192M) bit ×8bit,數據寄存器和緩衝存儲器均為(2k + 64) bit ×8bit ;
具有指令/地址/數據複用的I/O口;
在電源轉換過程中,其編程和擦除指令均可暫停;
由於採用可靠的CMOS移動門技術, 使得芯片最大可實現100kB編程/擦除循環,該技術可以保證數據保存10 年而不丟失。

閃存芯片説明

I/O0~I/O7:數據輸入輸出口, I/O口常用於指令和地址的輸入以及數據的輸入/輸出,其中數據在
讀的過程中輸入。當芯片沒有被選中或不能輸出時, I/O口處於高阻態。
CLE:指令鎖存端,用於激活指令到指令寄存器的路徑, 並在WE上升沿且CLE 為高電平時將指令鎖存。
ALE: 地址鎖存端, 用於激活地址到內部地址寄存器的路徑,並在WE上升沿且ALE為高電平時,地址鎖存。
CE: 片選端, 用於控制設備的選擇。當設備忙時, CE 為高電平而被忽略, 此時設備不能回到備用狀態。
RE: 讀使能端,用於控制數據的連續輸出,並將數據送到I/ O 總線。只有在RE的下降沿時,輸出數據才有效, 同時, 它還可以對內部數據地址進行累加。
WE: 寫使能控制端, 用於控制I/O口的指令寫入,同時,通過該端口可以在WE脈衝的上升沿將指令、地址和數據進行鎖存。
WP: 寫保護端, 通過WP 端可在電源變換中進行寫保護。當WP為低電平時,其內部高電平發生器將復位。
R/ B : 就緒/ 忙輸出, R/ B 的輸出能夠顯示設備的操作狀態。R/ B 處於低電平時,表示有編程、擦除或隨機讀操作正在進行。操作完成後, R/B會自動返回高電平。由於該端是漏極開路輸出, 所以即使當芯片沒有被選中或輸出被禁止時, 它也不會處於高阻態
PRE:通電讀操作,用於控制通電時的自動讀操作,PRE 端接到VCC可實現通電自動讀操作。
VCC :芯片電源端。
VSS :芯片接地端。
NC:懸空。

閃存芯片工作狀態

1 按頁讀操作
閃存芯片的默認狀態為讀狀態。讀操作是以通過4個地址週期將00h 地址寫到指令寄存器為開始指令,一旦該指令被鎖存,就不能在下頁中寫入讀操作了。
可以通過寫入隨機數據輸出指令來從一頁中隨機地輸出數據。數據地址可以從將要輸出的數據地址中通過隨機輸出指令自動找到下一個地址。隨機數據輸出操作可以多次使用。
2 頁編程
閃存芯片的編程是按頁進行的, 但它在單頁編程週期中支持多個部分頁編程, 而部分頁的連續字節數為2112。寫入頁編程確認指令(10h) 即可開始編程操作,但寫入指令(10h) 前還必須輸入連續數據。
連續裝載數據在寫入連續數據輸入指令(80h)後,將開始4個週期的地址輸入和數據裝載,而字卻不同於編程的數據, 它不需要裝載。芯片支持在頁中隨機輸入數據,並可根據隨機數據輸入指令(85h)自動變換地址。隨機數據輸入也可以多次使用。
3 緩存編程
緩存編程是頁編程的一種, 可以由2112 字節的數據寄存器執行, 並只在一個塊中有效。因為閃存芯片有一頁緩存, 所以當數據寄存器被編入記憶單元中時它便可以執行連續數據輸入。緩存編程只有在未完成的編程週期結束且數據寄存器從緩存中傳數後才能開始。通過R/B腳可以判斷內部編程是否完成。如果系統只用R/B來監控程序的進程,那麼,最後一頁目標程序的次序則必須由當前頁編程指令來安排。
4 存儲單元復錄
該作用可以快速有效地改寫一頁中的數據而不需要訪問外部存儲器。因為消耗在連續訪問和重新裝載上的時間被縮短, 因而系統的執行能力會提高。尤其當塊的一部分被升級而剩下的部分需要複製到新的塊中去時, 它的優勢就明顯顯示出來了。該操作是一個連續執行的讀指令, 但不用連續地到目的地址訪問和複製程序。一個原始頁地址指令為“35h" 的讀操作, 就可以把整個2112字節的數據轉移到內部數據緩衝器中。當芯片返回就緒狀態時,帶有目的地址循環的頁複製數據輸入指令就會寫入。而該操作中的錯誤程序會由“通過/ 失敗”狀態給出。但是,如果該操作的運行時間過長,將會由於數據丟失而引起位操作錯誤,從而導致外部錯誤“檢查/ 糾正”設備檢查失效。由於這個原因, 該操作應使用兩位錯誤糾正。
5 塊擦除
閃存芯片的擦除操作是以塊為基礎進行的。塊地址裝載將從一個塊擦除指令開始, 並在兩個循環內完成。實際上, 當地址線A12~A17 懸空時,只有地址線A18~A28 可用。裝入擦除確認指令和塊地址即可開始擦除。該操作必須按此順序進行, 以免存儲器中的內容受到外部噪聲的影響而出現擦除錯誤。
6 讀狀態
閃存芯片內的狀態寄存器可以確認編程和擦除操作是否成功完成。在寫入指令(70h) 到指令寄存器後, 讀循環會把狀態寄存器的內容在CE或RE 的下降沿輸出到I/O。而在新的指令到達前, 指令寄存器將保持讀狀態, 因此如果狀態寄存器在一個隨機讀循環中處於讀狀態, 那麼在讀循環開始前應給出一個讀指令。

閃存芯片發展歷程

2022年2月,總投資10億元的台資項目——長晟半導體閃存芯片封測項目在南通市2022年第一季重大項目集中開工儀式現場亮相。 [2] 
參考資料