电子产业一站式赋能平台

PCB联盟网

搜索
查看: 92|回复: 0
收起左侧

存储器Flash页、扇区、块的区别

[复制链接]

334

主题

334

帖子

3289

积分

四级会员

Rank: 4

积分
3289
发表于 2024-7-2 11:45:00 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容
! {0 X- F1 Y: m- `) v0 Z; R! F

5453qatvqa564063118352.jpg

5453qatvqa564063118352.jpg

! A! z. [% V$ q作者 | strongerHuang
5 ?4 |3 q/ i1 ~0 j) _* s9 Z微信公众号 | 嵌入式专栏0 f6 s) Q; g4 {  t* M' P- @
) E* X/ `5 B) J- x: D3 }5 b
大家都知道Flash是用于存储数据的存储器,但很多读者看到页(Page)、扇区(Sector)、块(Block)等这些单位时一脸懵逼,这到底是什么,有什么区别?
2 N0 o! T5 j' X

ae0ajquxdyw64063118452.png

ae0ajquxdyw64063118452.png

, q3 Z' ?3 s' _: V" S" S  G
4 S  n$ _, D1 T/ ?- w( h: |% u4 p下面就来讲讲关于Flash内部结构组织以及相关的内容。
# A& W& a; N0 r4 w$ J# S- r4 A! P
" W0 N: g; B& p" j* `页、扇区、块的描述
0 ?. A* `: W. K& o" `扇区、块这些专用名词,其实是从早期的软盘、硬盘等存储器发展而来,目的是将一个存储器划分为多个(扇区、块)区域,更方便的编程管理这些存储单元。" N$ |+ y) H! B( t: |' f
1.页(Page)
/ H# Q  Y9 g/ M# x% M; BFlash存储器中一种区域划分的单元,好比一本书中一页(其中包含N个字)。0 Q: U6 U5 z9 l: a" }
比如:STM32F1中小容量芯片内部Flash,1K字节为1页,整个Flash分为32页(当然,不同容量的芯片,页数不同)。
  M/ i8 F0 o0 A

eh2251ljmvm64063118552.png

eh2251ljmvm64063118552.png

/ C- ~0 r( C$ Z1 `+ k8 W& `/ t$ P
! H2 `. W- I" i: L% H* U注:不同厂家的、不同类型存储器的页大小不同,1KB、2KB、4KB等各种容量的页大小都有。
% {* m* v5 r6 h7 q4 z
5 ~  R4 j/ C, q7 `% g% g2.扇区(Sector)
3 P# u9 ]- k# J扇区和页类似,也是一种存储结构单元,只是扇区更常见,大部分Flash主要还是以扇区为最小的单元。
. J1 j: E8 c& y4 X$ m比如:W25Q256芯片以4KB为1扇区。
& S1 U" D' Z: q/ ~" o- Y1 K$ r- y- P8 Q4 L. U/ S! R
+ f$ P; C/ E. {& ~% T8 y
同样:不同厂家的、不同类型存储器的扇区大小可能不同。* Z( C- _" I% x+ T$ [2 U
3.块(Block)& a( ~7 g- u4 U8 n0 b1 a5 U
块,比扇区更高一个等级,一般1块包含多个扇区。  j: J* n" O, S: y- t  b

0 j! d" L- g  O. u同样,以上图W25Q256芯片为例:1块包含16个扇区。
: N5 T1 l) w  \& G3 S) K
! d5 d& t+ B6 Y, p! {4.额外说明1 x2 M2 h$ A8 x
不同厂家的、不同类型存储器的划分方式不同,有的以页为最小单元,有的以扇区为最小单元,但大部分都以扇区为最小单元。6 a+ g$ f1 {( p
  G/ D: \2 x7 a* W) R- j; j
还有,你可能会看到一些其他的名词,比如:和扇区一个级别的SubSector,和块一个级别的Bank、Bulk等。  Q: y# `2 Q  |' X' @. Q9 {# }2 k

kco3b2iyloo64063118652.png

kco3b2iyloo64063118652.png
& w$ s% F8 p$ x- V4 S: ]

5 c' d! v$ {* o! l它们的区别; n% c( }3 G. u+ g) J
其实,从上面的描述,大家应该看出来它们的区别了。5 q0 b4 o- j4 J6 z

9 i$ h' E: V$ O; d0 m& N用包含关系来描述Flash物理分区的话:芯片包含多个块,块又包含多个扇区,扇区又包含多个页,页包含多个字节1 `) |& {8 I8 a. `' d

tsk4lfclgq464063118752.png

tsk4lfclgq464063118752.png
5 _! m. `' ^* Z8 B) e$ Y4 i

4 ]- r3 W% k6 K$ i! L# X  o根据容量大小来说,它们的关系:/ t8 b- Q/ _  _6 w8 F( d
页(Page)扇区(Sector) 芯片(Chip)4 y  q2 m. Y0 N8 B  k% n3 j

azkpn0ekv4w64063118852.png

azkpn0ekv4w64063118852.png
* b/ j) u) H" C* @: j2 M4 r+ u5 I
7 U+ X6 E- \& K3 o  ?& S
网上有一个很形象的比如:Flash芯片就像一列火车,块(Block)就像一节车厢,车厢里的每排座位就像一个扇区(Sector)。7 Q  c: ~% f) }' R- z8 s
文件系统中的扇区、块
) r) e8 w( P: w  o! H上面描述的Flash存储器物理地址的划分,为了方便管理,编程读写操作Flash时引入了文件系统。& g* A2 f# ^* K" {$ j
  }' _" y9 p1 Q7 h/ U. Y0 L
文件系统的种类很多,比如:FAT、FAT32、exFAT 、 Ext3、 NFS、 NTFS等。不同文件系统,底层对存储地址的划分可能不同。3 s  b9 v& S+ N2 z8 a+ }& s* ]0 w# _

7 X5 ^, x& T. W7 c+ W& F6 A$ X在MCU这类嵌入式系统中,页、扇区是最小的物理存储单元,但在Windows、Linux这类系统中,这么小的存储单元已经不能满足要求了(不能对众多扇区寻址),于是就会以块作为最小的寻址单元。
4 [  O$ S1 ]& C- I4 n, h3 I; m: G* I& I1 `* _9 Z, @+ `
在Windows环境下,块是另外一种称呼,叫簇,可以理解一群、一组(扇区)。
" K2 _2 }* l. Z0 W  Y% G& ^

fzspdqpc5l464063118952.png

fzspdqpc5l464063118952.png

; p4 Q7 I0 Z$ {8 o8 ?9 S, m7 }6 l1 `& F: N3 `/ A& j$ a
注:簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。7 L/ N2 L1 Z) S5 n" l3 m5 l
最小存储单元如果太小了,会造成寻址空间不够,像现在动辄上G、T的存储容量。
, q+ T8 ]$ @8 S' S2 ]% ?& k* v- p如果太大,会造成存储空间的浪费,也就是所谓的碎片。
) t* ]. R4 {3 e/ t所以,最小存储单元应该要根据存储器大小设置一个合理的值,就如U盘分配单元大小一样:0 N3 p* D5 g: ?) S5 D

fjnb4osgepe64063119052.png

fjnb4osgepe64063119052.png

1 _  |; v8 r* v  p+ ]; t
' w! Y3 }" T+ d3 Y8 ?0 {U盘格式化时,一般建议选择默认配置即可。' b/ ^) Q7 ]# l! Q8 i8 i
------------ END ------------! B9 v$ t& v0 A, g3 I

cfwqr3dqotb64063119153.gif

cfwqr3dqotb64063119153.gif
! l4 |8 T2 `% H' F
●专栏《嵌入式工具●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程
' h3 Z1 ]$ ?5 w关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。; H& G- f+ w& q+ e2 n' A* H

% X+ W: g) k* q2 s$ P4 ~+ E

phrrfu54mpl64063119253.png

phrrfu54mpl64063119253.png
. ^' q% W7 t# w! F: S
点击“阅读原文”查看更多分享。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表