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