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

作者 | strongerHuang

微信公众号 | 嵌入式专栏

大家都知道Flash是用于存储数据的存储器,但很多读者看到页(Page)、扇区(Sector)、块(Block)等这些单位时一脸懵逼,这到底是什么,有什么区别?

dc973dfbbfd7f5774891f614cc5d7e96.png

下面就来讲讲关于Flash内部结构组织以及相关的内容。

页、扇区、块的描述

扇区、块这些专用名词,其实是从早期的软盘、硬盘等存储器发展而来,目的是将一个存储器划分为多个(扇区、块)区域,更方便的编程管理这些存储单元。

1.页(Page)

Flash存储器中一种区域划分的单元,好比一本书中一页(其中包含N个字)。

比如:STM32F1中小容量芯片内部Flash,1K字节为1页,整个Flash分为32页(当然,不同容量的芯片,页数不同)。

bcf9c3a727d2c7030541a3c467bf492e.png

注:不同厂家的、不同类型存储器的页大小不同,1KB、2KB、4KB等各种容量的页大小都有。

2.扇区(Sector)

扇区和页类似,也是一种存储结构单元,只是扇区更常见,大部分Flash主要还是以扇区为最小的单元。

比如:W25Q256芯片以4KB为1扇区。

2d81b1d927c45403e8068f6bdb194bae.png

同样:不同厂家的、不同类型存储器的扇区大小可能不同。

3.块(Block)

块,比扇区更高一个等级,一般1块包含多个扇区。

同样,以上图W25Q256芯片为例:1块包含16个扇区。

4.额外说明

不同厂家的、不同类型存储器的划分方式不同,有的以页为最小单元,有的以扇区为最小单元,但大部分都以扇区为最小单元。

还有,你可能会看到一些其他的名词,比如:和扇区一个级别的SubSector,和块一个级别的Bank、Bulk等。

fe27d75d21223424f515a2fe3db6413a.png

它们的区别

其实,从上面的描述,大家应该看出来它们的区别了。

用包含关系来描述Flash物理分区的话:芯片包含多个块,块又包含多个扇区,扇区又包含多个页,页包含多个字节

d3d0942c851ef2f309821211ed5fd282.png

根据容量大小来说,它们的关系:
 页(Page)< 扇区(Sector) < 块(Block)< 芯片(Chip)

dcbe9d52f3fb25d412abef25f5e74e38.png

网上有一个很形象的比如:

Flash芯片就像一列火车,块(Block)就像一节车厢,车厢里的每排座位就像一个扇区(Sector)。

文件系统中的扇区、块

上面描述的Flash存储器物理地址的划分,为了方便管理,编程读写操作Flash时引入了文件系统。

文件系统的种类很多,比如:FAT、FAT32、exFAT 、 Ext3、 NFS、 NTFS等。不同文件系统,底层对存储地址的划分可能不同。

在MCU这类嵌入式系统中,页、扇区是最小的物理存储单元,但在Windows、Linux这类系统中,这么小的存储单元已经不能满足要求了(不能对众多扇区寻址),于是就会以块作为最小的寻址单元。

在Windows环境下,块是另外一种称呼,叫簇,可以理解一群、一组(扇区)。

150635d89f4cf4cefe934c0d1fa8cada.png

注:簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。

最小存储单元如果太小了,会造成寻址空间不够,像现在动辄上G、T的存储容量,太小了肯定

如果太大,会造成存储空间的浪费,也就是所谓的碎片。

所以,最小存储单元应该要根据存储器大小设置一个合理的值,就如U盘分配单元大小一样:

2f8c8c31b8ba0506192d4f23ca2732a9.png

U盘格式化时,一般建议选择默认配置即可。

------------ END ------------


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

3852894470d83ae1b58d235e107dac24.png

嵌入式Linux

微信扫描二维码,关注我的公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

volatile用法

许多程序员无法正确的理解C语言关键字volatile。这并不奇怪&#xff0c;大多数C原因书籍不过一两句一带而过。本文将告诉你如何正确使用它。 在C/C嵌入式代码中&#xff0c;你是否经历过下面的情况&#xff1a; ● 代码执行正常–直到你打开了编译器优化 ● 代码执行正常–直…

Linux 终端(TTY)

TTY 是 Teletype 或 Teletypewriter 的缩写&#xff0c;原来是指电传打字机&#xff0c;后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器&#xff0c;都是作为计算机的终端设备存在的&#xff0c;所以 TTY 也泛指计算机的终端(terminal)设备。为了支持这些 …

印象笔记 MAC安装使用旧版本

印象笔记终于支持markdown了&#xff0c;赞&#xff01;第一个beta版用起来非常不错。提示更新安装新版本后保存markdown一直提示 “Note content is invalid.”&#xff0c;无法保存&#xff0c;无奈下只能安装旧版本印象笔记markdown 密码:wa23安装旧版本后&#xff0c;打开印…

你打开的那些网页,大概率是被监控了

你有没有这样的经历&#xff1a;当用手机搜索一件物品时&#xff0c;APP很快就会给你精准推荐这件物品。这并不是APP有多懂你&#xff0c;而是你的隐私已被APP监视了。哪怕你用的是“清理历史记录切换无痕模式”&#xff0c;后台依然可以记录你的搜索……还有&#xff0c;长夜漫…

操作系统常见面试题

1.进程的常见状态&#xff1f;以及各种状态之间的转换条件&#xff1f; 就绪&#xff1a;进程已处于准备好运行的状态&#xff0c;即进程已分配到除CPU外的所有必要资源后&#xff0c;只要再获得CPU&#xff0c;便可立即执行。执行&#xff1a;进程已经获得CPU&#xff0c;程序…

加强型的记录集权限(数据集权限、约束表达式设置功能)实现方法界面参考...

1。功能要求相对复杂的信息管理系统&#xff0c;有比较严格的权限管理设置的需求。例如业务管理系统中的一个角色只能查看金额小于500万的合同&#xff0c;而且只能看自己所在部门的合同&#xff0c;系统要求限制条件能灵活设置过滤所能看到的&#xff0c;所能操作的数据项&…

性能强悍的MCU,主频干到GHz

目前有两款高性能MCU印象深刻&#xff0c;不是多核心就是主频上1GHz。这也许是为了满足一些高数据吞吐量但仍需高实时性的需求吧。比如机械臂。一、第一款是来自于TI的Sitara AM2x&#xff0c;如型号为AM2434的单片机&#xff0c;拥有四个800MHz的核心&#xff0c;官方称为双核…

Unity3D_(游戏)控制物体的上、下、左、右移动

通过键盘上↑、↓、←、→实现对物体的控制 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Gary_Text : MonoBehaviour {public Transform WuTi;public float speed 1;// Use this for initializationvoid Start () {}// Upda…

糟糕的C语言睡眠排序算法

不知道大家知道这个算法没有&#xff0c;就是靠睡觉完成排序的。比如数字1 4 3&#xff0c;第一个数字1的时候&#xff0c;创建一个线程&#xff0c;然后让线程休眠1个时间单位&#xff0c;依次是 4 和 3个单位。因为睡眠的时间不同&#xff0c;线程醒的时间也不同。3会比4先醒…

写给小白看的,逆向工程怎么上路?

什么是逆向工程大家好&#xff0c;我是写代码的篮球&#xff0c;这篇文章转自小白哥的文章。给大家出一道思考题&#xff1a;用C语言设计一个程序&#xff0c;验证输入的密码是否是“12345678”&#xff0c;如果验证成功&#xff0c;就输出“success”&#xff0c;如果验证失败…

线程、同步与锁——Mutex想说爱你不容易

除了Lock&#xff08;&#xff09;、Monitor之外&#xff0c;我们最长用的就是Mutex了&#xff0c;但是玩不好Mutex就总会造成死锁或者AbandonedMutexException&#xff08;我就玩的不怎么好&#xff0c;在并发性访问测试的时候总是遇到关于Mutex的问题&#xff0c;各位线虫见笑…

STM32F4 串口DMA

串口DMA方式收发 笔者使用的是STM32F407VET6&#xff0c;共包含6路串口&#xff0c;页尾处程序已将全部串口的DMA收发配置完成&#xff0c;本文仅以串口1为例进行讲解。&#xff08;查看代码可直接跳至第二节或页尾处下载&#xff09; 1 STM32F4 DMA 简介 DMA&#xff0c;全称为…

由马化腾谈“微博修改功能”,看什么是优秀的产品经理

我仔细阅读过马化腾的的简历&#xff0c;他是一位技术出身的企业家。也是腾讯最大的产品经理,大家都知道产品经理的对产品的重要性那是不言而喻的&#xff0c;而产品是公司的灵魂。 今天早上起床&#xff0c;看到马化腾先生更新的微博。有位网络公司的CTO建议腾讯微博加一个修改…

flask 必知必会

在局域网中让其它电脑访问我的网站 from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return hello worldif __name__ __main__:app.run(debugTrue,host0.0.0.0,port9000) 转载于:https://www.cnblogs.com/wuheng-123/p/9665004.html

KEIL编译生成bin文件,并输出内存使用情况

一、STM32CubeMX生成的代码输出bin文件 输出bin文件&#xff1a; Run#1框填入的是&#xff1a;fromelf.exe空格–bin空格-o空格"$LL.bin"空格"#L"。“–bin”是两根英文短杆。 fromelf.exe --bin -o "$LL.bin" "#L"编译的时候&#x…

建议去华为

提问&#xff1a;老师&#xff0c;您好&#xff01;我现在手里有两个offer&#xff0c;正在艰难抉择中&#xff0c;一个是小米的相机图像调校工程师&#xff08;camera tuning&#xff09;&#xff0c;工作地在深圳&#xff0c;工资是12k*14&#xff0c;还有大概700元的餐补&am…

快学好这个去给学妹修热水器

作者&#xff1a;晓宇&#xff0c;排版&#xff1a;晓宇微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09;2021年6月25号晚上9点&#xff0c;中国南方某一线城市&#xff0c;小张正在看着前阵子新出的电影误杀2&#xff0c;窗外&#xff0c;疲…

Win10系统添加 Win10 LTSC2019闹钟

1、本文主要针对没有windows闹钟的情况。 2、下载Win10 LTSC 2019闹钟应用&#xff0c;并解压&#xff1a; http://www.winwin7.com/soft/xtbd-2695.html 链接&#xff1a;https://pan.baidu.com/s/1S_g6XUIezeF8_Q0rJ09cBQ 提取码&#xff1a;68gs 3、搜索Windows Powershell&…

iPhone开发笔记[1/50]:初学iPhone上用Quartz 2D画图

参考了An iOS 4 iPhone Graphics Drawing Tutorial using Quartz 2D这篇文章&#xff0c;用了30分钟在iPhone上画出了一条直线&#xff0c;核心代码全在drawRect这个方法中&#xff1a; -(void)drawRect:(CGRect)rect { CGContextRef context UIGraphicsGetCurrentContext(); C…

昨晚上跟读者闲聊

昨天发了一篇华为小米的求职文章&#xff0c;今天一个知识星球的朋友找我聊天&#xff0c;也是关于择业的问题。本来是聊找工作的&#xff0c;然后聊着聊着就聊到了生活的一些事情。我平时比较关注微信信息&#xff0c;有重要能回复就会回复&#xff0c;但是&#xff0c;也不喜…