当前位置: 首页 > news >正文

片外存储器_FLASH的页、扇区、块介绍

目录标题

  • 1、什么是FLASH存储器?
  • 2、Flash中页、扇区、块是什么意思?有什么区别?
    • 2.1、芯片内部框图
    • 2.2、页
    • 2.3、扇区
    • 2.4、块
    • 2.5、包含示意图
  • 3、使用FLASH 时候,必须知道的事。

1、什么是FLASH存储器?

FLASH属于广义的ROM,因为它也是带电擦除的ROM。但是为了区别于一般的按字节为单位的擦写的E2PROM,我们叫它FLASH。FLASH做的改进就是擦除时不再以字节为单位,而是以块为单位

FLASH分为Nor FLASH和NAND FLASH。NOR FLASH数据线和地址线分开,可以实现RAM一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。

NAND FLASH同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取(NAND FLASH按块来擦除,按页来读,NOR FLASH没有页)。由于NAND FLASH引脚上复用,因此读取速度比NORFLASH慢一点,但是擦除和写入速度比NORFLASH快很多。NAND FLASH内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的FLASH都是NAND型的。小容量的2~12M的FLASH多是NOR型的。

NORFLASH可以进行字节寻址,所以程序可以在NOR FLASH中运行。嵌入式系统多用一个小容量的NOR FLASH存储引导代码,用一个大容量的NAND FLASH存放文件系统和内核。

2、Flash中页、扇区、块是什么意思?有什么区别?

Flash是用于存储数据的存储器,但很多人看到页(Page)、扇区(Sector)、块(Block)等这些单位时总是分不清楚到底是什么含义,下面就来详细讲解一下!
  下面以W25Q128芯片为例,先看下面这段话:
  W25Q128存储芯片是由65536可编程的页组成的,每页有256个字节。一次最多可以写256个字节。可以一次擦除16页(4K字节)、128页(32K字节)、256页(64K字节)或者一整片。W25Q128有4096个可擦除的扇区,256个可擦除的块。4K字节的扇区对于数据和参数存储有更高的灵活性。

2.1、芯片内部框图

在这里插入图片描述

2.2、页

页就是flash中一种区域划分的单元,就像一本书中的一页一样,图中红色框选部分就为1页。
一页内存地址为 :0X000000-0X0000FFh,共256个字节(16x16=256)。
 不同存储器的页大小是不同的。

2.3、扇区

扇区和页类似,也是一种存储结构单元,只是扇区更常见,大部分Flash主要还是以扇区为最小的单元。图中粉红色部分为一个扇区的大小。我们从sector 0 ,也就是扇区0 开始分析(粉红色框下下面的扇区)。我们看到:

一个扇区是从 0x000000-----0x0000FF
         0x000100-----0x0001FF
         0x000200-----0x0002FF
         0x000300-----0x0003FF


         0x000f00----0x000FFF 为止 ===========16*256=4096字节=4K

一个扇区有16个页,又因为每一个页有256字节,所以一个扇区有4k字节。

2.4、块

块是比扇区更高一个等级,一般1块包含多个扇区也就是图中蓝色标识的区域。我们看到:

一块的是从 0x000000-0x000FFF

0x001000-0x001FFF

0x002000-0x002FFF

0x003000-0x003FFF


0x00F000-0x00FFFF为止= ====================4K*16=64K

可以看出,一个块有16个扇区组成。
而一个芯片内部存储区域是绿色部分所画的,有256个块,所以W25Q128总共的存储空间为256个块。即一个FLASH为256个块,一个块为16个扇区,一个扇区为4K字节。所以:256164K=16384K=16M/8=128Mbit。

2.5、包含示意图

在这里插入图片描述

3、使用FLASH 时候,必须知道的事。

1、由于FLASH的物理特性,决定了FLASH每一位的操作只能从1变为0(写操作)。
2、大多数FLASH芯片或单片机内未使用FLASH存储空间每一位出厂默认都是1。
3、对FLASH写操作之前必须将待操作FLASH空间数据都置为1。

如果内存地址上的数据是0的话,不进行置1的擦除动作,当我们想内存地址写1时候是失败的,因为内存只能从1变为0,不能从0变为1。所以必须在写操作之前将flash擦除。

4、对FLASH的擦除操作即是把待操作的空间的每一位都置为1。
5、所以FLASH写操作前需有擦除操作。
W25Q128JV存储芯片的擦除比较灵活,可以按扇区、块甚至是整片擦除。(擦除是需要时间的,比如整片擦除约用时几十秒)。

http://www.lryc.cn/news/284537.html

相关文章:

  • Python——字符串的基本操作
  • 【cuda】四、基础概念:Cache Tiled 缓存分块技术
  • [C#]winform部署openvino官方提供的人脸检测模型
  • Java中对日期的处理
  • 【Linux install】Ubuntu和win双系统安装及可能遇到的所有问题
  • Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI
  • 【Guava笔记01】Guava Cache本地缓存的常用操作方法
  • Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】
  • Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲
  • openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c
  • AI辅助编程工具—Github Copilot
  • 三大3D引擎对比,直观感受AMRT3D渲染能力
  • k8s之对外服务ingress
  • Ubuntu使用docker-compose安装mysql8或mysql5.7
  • 【办公类-21-02】20240118育婴员操作题word打印2.0
  • SpringMVC 文件上传和下载
  • 强缓存、协商缓存(浏览器的缓存机制)是么子?
  • android 13.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能
  • 【蓝桥杯EDA设计与开发】立创开源社区分享的关于蓝桥被EDA真题与仿真题的项目分析
  • 电影《潜行》中说的蜜罐是什么(网络安全知识)
  • 基于 UniAPP 社区论坛项目多端开发实战
  • Ubuntu 22.04 安装MySql
  • Centos常用命令整理,常用的比较全了
  • 专业137总分439东南大学920专业基础综合考研经验电子信息与通信电路系统芯片
  • C++总结笔记
  • 数据库重点简答题
  • Cmake(1)——Cmake的基本介绍和原理、Cmake的安装、如何使用Cmake构建项目
  • Spring Boot程序的打包与运行:构建高效部署流程
  • 【Linux取经路】初探进程地址空间
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net