閃存芯片主要分為NOR型和NAND型兩大類。它們的區別如下:
1、容量:NOR型與NAND型閃存的區別很大,打個比方說,NOR型閃存更像內存,有獨立的地址線和數據線,但價格比較貴,容量比較小;而NAND型更像硬盤,地址線和數據線是共用的I/O線,類似硬盤的所有信息都通過一條硬盤線傳送一般,而且NAND型與NOR型閃存相比,成本要低一些,而容量大得多。
2、應用:NOR型閃存比較適合頻繁隨機讀寫的場合,通常用于存儲程序代碼并直接在閃存內運行,手機就是使用NOR型閃存的大戶,所以手機的“內存”容量通常不大;NAND型閃存主要用來存儲資料,我們常用的閃存產品,如閃存盤、數碼存儲卡等。
3、速度:閃存的速度其實很有限,它本身操作速度、頻率就比內存低得多,而且NAND型閃存類似硬盤的操作方式效率也比內存的直接訪問方式慢得多。因此,不要以為閃存盤的性能瓶頸是在接口,甚至想當然地認為閃存盤采用USB2.0接口之后會獲得巨大的性能提升。
NAND型閃存的操作方式效率低,這和它的架構設計和接口設計有關,就像硬盤一樣(其實NAND型閃存在設計之初就考慮了與硬盤的兼容性)。它的性能特點也很像硬盤:小數據塊操作速度很慢,而大數據塊速度就很快,這種差異遠比其他存儲介質大的多。這種性能特點非常值得我們留意。
4、存儲單元:NAND型內存和NOR型閃存的基本存儲單元是bit,用戶可以隨機訪問任何一個bit的信息。而NAND型閃存的基本存儲單元是頁(Page),每一頁的有效容量是512字節的倍數,就類似硬盤的扇區。
所謂的有效容量是指用于數據存儲的部分,實際上還要加上16字節的校驗信息,因此我們可以在閃存廠商的技術資料當中看到“(512+16)Byte”的表示方式。
5、擦除操作:NAND型閃存以塊為單位進行擦除操作。閃存的寫入操作必須在空白區域進行,如果目標區域已經有數據,必須先擦除后寫入,因此擦除操作是閃存的基本操作。
一般每個塊包含32個512字節的頁,容量16KB;而大容量閃存采用2KB頁時,則每個塊包含64個頁,容量128KB。
每顆NAND型閃存的I/O接口一般是8條,每條數據線每次傳輸(512+16)bit信息,8條就是(512+16)×8bit。但較大容量的NAND型閃存也越來越多地采用16條I/O線的設計,如三星編號K9K1G16U0A的芯片但基本單位還是512字節。
6、尋址:尋址時,NAND型閃存通過8條I/O接口數據線傳輸地址信息包,每包傳送8位地址信息。由于閃存芯片容量比較大,一組8位地址只夠尋址256個頁,但這顯然不夠,因此通常一次地址傳送需要分若干組,占用若干個時鐘周期。
NAND的地址信息包括列地址(頁面中的起始操作地址)、塊地址和相應的頁面地址,傳送時分別分組,至少需要三次,占用三個周期。隨著容量的增大,地址信息會更多,需要占用更多的時鐘周期傳輸,因此NAND型閃存的一個重要特點就是容量越大,尋址時間越長屬于NAND型閃存不太適合大量的小容量讀寫請求。