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