Flash是存儲器的一種統稱(chēng),單片機內部Flash、外掛Flash、U盤(pán)、SSD等,到處都有Flash的身影。
大家都知道Flash是用于存儲數據的存儲器,但很多讀者看到頁(yè)(Page)、扇區(Sector)、塊(Block)等這些單位時(shí)一臉懵逼,這到底是什么,有什么區別?
【資料圖】
下面就來(lái)講講關(guān)于Flash內部結構組織以及相關(guān)的內容。
頁(yè)、扇區、塊的描述
扇區、塊這些專(zhuān)用名詞,其實(shí)是從早期的軟盤(pán)、硬盤(pán)等存儲器發(fā)展而來(lái),目的是將一個(gè)存儲器劃分為多個(gè)(扇區、塊)區域,更方便的編程管理這些存儲單元。
1.頁(yè)(Page)
Flash存儲器中一種區域劃分的單元,好比一本書(shū)中一頁(yè)(其中包含N個(gè)字)。
比如:STM32F1中小容量芯片內部Flash,1K字節為1頁(yè),整個(gè)Flash分為32頁(yè)(當然,不同容量的芯片,頁(yè)數不同)。
注:不同廠(chǎng)家的、不同類(lèi)型存儲器的頁(yè)大小不同,1KB、2KB、4KB等各種容量的頁(yè)大小都有。
2.扇區(Sector)
扇區和頁(yè)類(lèi)似,也是一種存儲結構單元,只是扇區更常見(jiàn),大部分Flash主要還是以扇區為最小的單元。
比如:W25Q256芯片以4KB為1扇區。
同樣:不同廠(chǎng)家的、不同類(lèi)型存儲器的扇區大小可能不同。
3.塊(Block)
塊,比扇區更高一個(gè)等級,一般1塊包含多個(gè)扇區。
同樣,以上圖W25Q256芯片為例:1塊包含16個(gè)扇區。
4.額外說(shuō)明
不同廠(chǎng)家的、不同類(lèi)型存儲器的劃分方式不同,有的以頁(yè)為最小單元,有的以扇區為最小單元,但大部分都以扇區為最小單元。
還有,你可能會(huì )看到一些其他的名詞,比如:和扇區一個(gè)級別的SubSector,和塊一個(gè)級別的Bank、Bulk等。
它們的區別
其實(shí),從上面的描述,大家應該看出來(lái)它們的區別了。
用包含關(guān)系來(lái)描述Flash物理分區的話(huà):芯片包含多個(gè)塊,塊又包含多個(gè)扇區,扇區又包含多個(gè)頁(yè),頁(yè)包含多個(gè)字節。
根據容量大小來(lái)說(shuō),它們的關(guān)系:** ** 頁(yè)(Page)** <扇區(Sector)< 塊(Block)<芯片(Chip)**
網(wǎng)上有一個(gè)很形象的比如:
Flash芯片就像一列火車(chē),塊(Block)就像一節車(chē)廂,車(chē)廂里的每排座位就像一個(gè)扇區(Sector)。
文件系統中的扇區、塊
上面描述的Flash存儲器物理地址的劃分,為了方便管理,編程讀寫(xiě)操作Flash時(shí)引入了文件系統。
文件系統的種類(lèi)很多,比如:FAT、FAT32、exFAT 、 Ext3、 NFS、 NTFS等。不同文件系統,底層對存儲地址的劃分可能不同。
在MCU這類(lèi)嵌入式系統中,頁(yè)、扇區是最小的物理存儲單元,但在Windows、Linux這類(lèi)系統中,這么小的存儲單元已經(jīng)不能滿(mǎn)足要求了(不能對眾多扇區尋址),于是就會(huì )以塊作為最小的尋址單元。
在Windows環(huán)境下,塊是另外一種稱(chēng)呼,叫簇,可以理解一群、一組(扇區)。
注:簇是操作系統所使用的邏輯概念,而非磁盤(pán)的物理特性。
最小存儲單元如果太小了,會(huì )造成尋址空間不夠,像現在動(dòng)輒上G、T的存儲容量,太小了肯定
如果太大,會(huì )造成存儲空間的浪費,也就是所謂的碎片。
所以,最小存儲單元應該要根據存儲器大小設置一個(gè)合理的值,就如U盤(pán)分配單元大小一樣:
U盤(pán)格式化時(shí),一般建議選擇默認配置即可。
審核編輯:湯梓紅
標簽: