EMMC基础知识总结

news2024/11/17 3:39:59

1、说明

1.0 整体架构

‘ EMMC最简单的可理解为带有控制器的FLASH,具体结构如下:
在这里插入图片描述
EMMC: Embedded multiMediaCard EMMC.

EMMC内部: host interface 、 flash controller 、 flash memory

1.1 flash memory 结构

EMMC 中一般都有4个分区:

  • Boot Area partitions:支持EMMC 启动系统,该分区在EMMC上电后,可通过简单协议就可读取
    • Boot Area partition 1
    • Boot Area partition 2
  • RPMB partition : replay protected Memory block,用于存放的数据不被非法篡改,如指纹,安全支付密钥等
  • General Purpose Partitions: 存储系统或者用户数据,芯片出厂时,通常不存在,需主动配置
  • User Data Area:主要用于存储系统和用户数据。通常在此区域分成:boot、system、userdata

在这里插入图片描述

1.2 FLash controller

flash 与 emmc 很重要的区别之一就是对于一些特殊功能储在的控制链路的位置:

  • flash :仅有存储设备,ECC 和 坏块管理等都在host 侧
  • emmc: ECC 和 wear leveling 块管理都在 EMMC的芯片侧, host侧秩序提供emmc Driver接口

几个关键词的实际含义:

  • ECC : error checking and correcting,实现数据纠错(奇偶校验只能发现并不能纠错)。
  • wer leveling: 跟踪flash存储空间的使用情况,使得每次数据的写入都能写入到不同的位置去,尽量减少内存控制的磨损程度。
  • Bad Block management: :坏块管理,对memory中坏块进行标记

在这里插入图片描述

1.3 flash interface

如下为host和eMMC之间的接口定义:

  • clk:时钟同步信号
  • data strobe: 有的接口有,有的接口没有
  • CMD: 信号用于host 的 command 和 device 的response
  • data0 - 7 : 数据位
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

2、芯片电路参数

2.0 EMMC的工作模式

在这里插入图片描述

2.1 基本接口设计

十分注意:
对于EMMC的接口中,data strobe 可以不管,一般集成在主控或者不涉及。但是其他的线如CMD data 都需要额外挂接上拉电阻,防止总线出现浮空

在这里插入图片描述

如下图是JEDEC 中的标准描述,对每一个上拉电阻的设计都给出了推荐:
在这里插入图片描述

2.2 电源设计

EMMC 的电源分成了两个部分:

  • VCC: 给存储供电
  • VCCq: 给控制器供电

在这里插入图片描述
“”“”“”“”“”额外注意: VCCQ的电压不能大于VCC的电压“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“

在这里插入图片描述

2.2.2 布线基本原则

  • 去耦考虑
    • 信号CLK、CMD、DQ和DS均做阻抗50Ω±10%匹配管控。
    • 信号CLK、CMD、DQ和DS约束为同组信号,长度差控制在±50mil范围内。
    • 所有信号线走线长度约束在2000mil以内,且注意使用IBIS模型进行仿真评估阻抗匹配和反射情况。
    • 信号线有完整的参考层。
    • 内部走不出来的信号可以从NC PAD走,不能从RFU PAD上走线。
    • CLK和RST_N长度差在1000mil以内。

加粗样式

3、特别注意

3.1 NAND 的操作管理方式

单位换算:
1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages)
1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes)
除OOB第六字节外,通常至少把OOB的前3个字节存放Nand Flash硬件ECC码)。

  • OOB 区域,每个page都有,每512个字节有16字节的ODB; 因此,2K的page 就是64字节的Page

3.2 坏块

  • 为什么出现坏块

    • Nand flash 的工艺,不能保证其在整个生命周期中性能可靠,因此产生坏块 -
  • 坏块分类

    • 固有坏块:这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将每个坏块 第一个page的spare area的第6个byte标记为不等于0xff的值。
    • 使用坏块:Nand flash 在使用过程中,Block erase 或者 page program 错误的时候,就可以将其简单标记为坏块。新发现的坏块的第一个page 的spare area 的 第6个 Byte标记为 非0xff
  • 坏块管理

    • 1、 擦除块之前,需检查是否为坏块(spare 的 第6个字节是否为0xff),如果是0xff,就是好块,可擦除。否则为坏块,其不能擦除。
    • 2、 这种操作方法可能会由于电压不稳定导致nand 操作错误(即本来是好块,但还是被标记成了坏块)
    • 3、BBT: bad block table : 坏块表管理。

OOB是每个页都有的数据,里面存的有ECC(当然不仅仅);而BBT是一个FLASH才有一个;针对每个BLOCK的坏块识别则是该块第一页spare area的第六个字节。

3.3 坏块纠正

  • Nand flash 出错一般不会造成block 或者 page 不能读取
  • 如果page(512Bytes)中, 只有一个bit 或者几个bit 出错,ECC 能够纠正单bit错误和检测双bit错误,2bit以上不保证能检测到

3.4 补充

  • 由于page program发现的坏块:如果变成时候出错就标记坏块,则需要把块里面的内容首先备份到新的好块里面,然后对此标记的坏块有可能本身是好块,造成”错杀“
  • 补救方法如下: 完成备份后,再将此坏块进行擦除,如果block erase 错误,则说明该坏块是一个不折不扣的坏块。
  • 每个block(块)的 第一页 的spare area 的第6个字节作为坏块标记” 这个是nand 厂商的默认约定“
  • 为什么好块用0xff 来标记: nand flash的擦除实际是将所有的块变为1,写操作也只能将1变成0

4 总结

本文介绍了EMMC的基本结构,接口设计,电路设计,工作模式及特殊功能,包括ECC及坏块管理的基本逻辑

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

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

相关文章

学习Vue3——watchEffect(高级侦听器)

立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行。 watchEffect有两个参数 第一个参数就是要运行的副作用函数 第二个参数是一个可选的选项,可以用来调整副作用的刷新时机或调试副作用的依赖 API—watchEffect 基本用法 …

电脑必备,推荐几款好用的程序软件,让你工作更加高效

在当今的信息化时代,电脑已成为我们日常生活中必不可少的工具。而在电脑上安装一些好用的程序软件,能够大大提高我们的工作效率和体验。但是市面上的软件五花八门,要如何选择呢?下面将为大家推荐几款值得使用的程序软件&#xff0…

告别脚本小子系列丨JAVA安全(8)——反序列化利用链(下)

0x01 前言 在前面的文章中介绍了基于CC链的反序列化利用方式,并且通过最终调用Runtime类的exec方法达到命令执行的效果。在CC链中还可以通过xalan来执行命令。 xalan是java操作xml的库,属于java内置的官方库之一,在CC链中主要用到的是com.sun…

论文研读|TNNLS 期刊近三年对话生成工作介绍(2篇)

前言:本篇博客记录TNNLS期刊近三年的对话生成相关工作中本人比较感兴趣的两篇工作。首先给大家分享一下论文精确查找的方式,然后对两篇工作的主要思想进行简要介绍。 目录 1. 论文精确查找方法2. 论文简介2.1 面向用户个性保持与回复多样性的两阶段对话生…

错误:No module named ‘osgeo’

from osgeo import gdal 报错:No module named ‘osgeo’ pip install gdal 会出错,也不知道什么原因。 解决方案: 下载whl,然后pip install .whl即可。 详细步骤如下: whl下载地址:https://www.lfd.uci.edu/~go…

基于java+servlet+mysql-图书商城

基于javaservletmysql-图书商城 一、系统介绍二、功能展示1.项目骨架2.首页3.图书详情4.我的订单5.我的购物车6、注册7、登录8、图书管理9、订单管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于javaservlet…

浅谈企业能源监测管理系统的设计与应用

安科瑞 华楠 摘要: 针对企业目前能源监测现状, 结合企业信息化建设情况和发展需要, 介绍了能源监测管理信息系统, 提出了企业能源监测管理系统建设建议。 关键词:管理系统; 能源监测; 企业信息化 0 引言 节能降耗是缓解中国资源约束的根本出路, 也是提高企业自主创新能力的…

【机器学习】如何选择合适的假设函数

在前面的线性回归中,我们可以使用不同次数的多项式对数据集进行拟合,但是选择次数过低的多项式会导致欠拟合,选用次数过多的多项式会过拟合,那么如何选择合适的多项式呢?这就是本文需要解决的问题。 想要了解自己训练…

什么是α测试β测试和灰度测试?

吃软件测试这碗饭的,如果基础理论都不懂,谈何长久? 欢迎来学习本系列,基础理论比较枯燥,这也是为什么现在很少人掌握的主要原因。热饭尽量用浅显易懂 生动的例子 来帮助大家学习基础理论,所以请耐心看完此系…

纯JavaScript简单实现移动端网页的上拉加载、下拉刷新

公司要在安卓软件中,添加H5网页包,实现订单卡片列表,要求有上拉加载、下拉刷新的功能。 经过搜索资料后,实现如下: 创建一个类PullData class PullData() {/*** 类的构造函数,在new PullData({xx: xxx})时…

尚硅谷甄选--(暂时不更新,实习,后期有时间更)

文章目录 搭建后台管理系统模板项目的资源地址项目初始化2.1.1环境准备2.1.2初始化项目2.2项目配置一、eslint配置1.1vue3环境代码校验插件1.2修改.eslintrc.cjs配置文件1.3.eslintignore忽略文件1.4运行脚本 二、配置**prettier**2.1安装依赖包2.2.prettierrc.json添加规则2.3…

OpenCV——总结《车牌识别》

1.图片中的hsv hsv提取蓝色部分 # hsv提取蓝色部分 def hsv_color_find(img):img_copy img.copy()cv2.imshow(img_copy, img_copy)"""提取图中的蓝色部分 hsv范围可以自行优化cv2.inRange()参数介绍:第一个参数:hsv指的是原图第二个参…

阿里老员工吐槽:部门来了个“卷”王同事,我们都要跟着加班..

随着IT互联网热愈演愈烈,大批应届生选择毕业后进入IT圈,还有另一批打工人冲着高薪福利待遇转行IT行业,越来越多人涌入程序员大军中。加之互联网行业的火爆,催生了大量程序员岗位,门槛也较之前来说越来越低了&#xff0…

Python采集商品数据信息,看看一般怎样销量会多

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: python 3.8 >>>>>> 运行代码 pycharm 2022.3 >>>>>> 辅助敲代码 模块使用: selenium >>> pip install selenium3.141.0 指定版本安装 <模拟人的行为去操…

《论文阅读07》Segment Anything in 3D with NeRFs

一、论文 研究领域&#xff1a;图像分割(3D)论文&#xff1a;Segment Anything in 3D with NeRFsSubmitted on 24 Apr 2023 (v1), last revised 1 Jun 2023 (this version, v3)Computer Vision and Pattern Recognition (cs.CV)nvos数据集论文链接 二、论文概要 三、全文翻译 …

通用vs垂直?热门AI大模型你更看好哪个?(附免费资源)

自ChatGPT发布以来&#xff0c;通用大模型就仿佛坐了火箭&#xff0c;短短几个月的时间&#xff0c;各大企业便争相发布自己的大模型&#xff0c;这其实也反应了目前人工智能发展的方向。 不过从长远来看&#xff0c;垂直领域大模型的发展会比通用大模型更具势头&#xff0c;一…

Java线程面试题

0. Java线程面试题 0.1 线程占用的内存 JDK1.4默认单个线程占用256KJDK1.5默认单个线程占用1M可以通过-Xss参数设定 0.2 为什么要使用线程池 手动创建线程池的缺点 不受风险控制&#xff1a;服务器CPU资源有限&#xff0c;如果每个人都显示手动创建线程&#xff0c;不知道哪…

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

Office远程代码执行漏洞&#xff08;CVE-2017-11882&#xff09;漏洞复现 1.漏洞原理2.在Kali平台查看漏洞利用文件3.登录目标靶机&#xff0c;打开FTP服务器4.登录Kali&#xff0c;利用FTP服务器上传payload-cale.doc文件5.登录目标靶机&#xff0c;触发doc文件&#xff0c;验…

虚函数,抽象基类

编译器处理虚函数的方法&#xff1a; 给每个对象添加一个隐藏成员&#xff0c;隐藏成员保存了一个指向函数地址的数组指针&#xff0c;数组被称为虚函数表&#xff0c;虚函数表存储了为类对象声明的虚函数的地址&#xff0c;比如基类包含一个指针&#xff0c;该指针指向基类中…

阿里巴巴变革,盒马“一马当先”

配图来自canva可画 随着数字经济成为当前经济社会发展的“新宠”&#xff0c;诸多数字企业也开始走上了发展的快车道。而作为国内互联网大厂的阿里巴巴集团&#xff0c;为了打造数字经济时代的商业、金融、物流、云计算和大数据等新一代商业基础设施&#xff0c;就于前不久启动…