0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UFS设备的物理存储空间可以有若干个独立的逻辑地址空间

SSDFans 来源:未知 作者:李倩 2018-06-13 16:19 次阅读

熟悉NVMe的朋友知道,NVMe里面有namespace的概念,就是把SSD物理空间划分成若干个逻辑地址空间。在UFS的世界里,它也有这个特性。UFS设备的物理存储空间可以有若干个独立的逻辑地址空间,我们把逻辑地址空间叫做LU,即Logical Unit,俗称“撸”。前面看到,在每个UPIU的Header中,有个LUN(Logical Unit Number)的域,就是标识该UPIU关联的命令或者请求的目标逻辑单元。每个LU的地址空间是独立的,主机在发命令或者请求给设备的时候,须通过LUN指定目标逻辑单元。

如上图所示,UFS设备有若干个LU,每个LU接收主机发过来的命令或者请求,这些命令或者请求可来自应用层的SCSI模块、设备管理器或者任务管理器。每个LU都是独立的,“独立”表现在下面几个方面:

逻辑地址空间是独立的,都是从LBA 0开始;

逻辑块大小可以不同,可以为4KB,..;

可以有不同的安全属性,比如可以设置不同的写保护属性;

每个LU可以有自己的命令队列;

不同的LU可以存储不同的数据,比如有的LU存储系统启动代码,有的LU存储普通的应用数据,有的LU存储用户特殊数据...

。。。

UFS2.1中可以有最多32个普通LU和“四大名撸”(四个Well known LU,众所周知的LU)。

普通LU的逻辑块大小至少是4KB,但RPMB LU逻辑块大小为256B。至于什么是RPMB LU,后面再讲。

普通LU我觉得没有什么好讲的,就是分别用来存储用户数据的。我们主要来讲讲“四大名撸”。

Report LUNS LU

Report LUNS主要用来代表设备向主机汇报设备LU清单。主机想知道设备LU的支持情况,就需要发命令或者请求给该LU。UFS其中有个命令“Report LUNS” (和该LU名字一样)用来访问Report LUNS。

UFS Device LU

UFS设备的法人。当UFS主机不针对某个具体LU,而是对整个UFS设备发命令的时候,UFS Device LU就成为该命令接收的对象,比如格式化UFS设备(FORMAT UNIT命令)、切换UFS设备的功耗模式(START STOP UNIT命令)等等。

BOOT LU

顾名思义,就是用来存储启动代码的LU。不过,BOOT LU本身是不存储启动代码的,它只是个虚拟的LU,启动代码物理上是存储在普通LU上的。

有两个Boot LU,LU A和LU B,可以用来存储不同启动代码(比如一个新,一个旧),但在启动过程中,只有一个是活跃的(Active)的。32个普通LU中的任意一个可以配成Boot LU A或者Boot LU B。

举例说明:

在上例中,LU 1 充当Boot LU A,LU 4 充当Boot LU B。由于有两份启动代码,分别保存在LU 1和LU 4,那启动的时候读取哪一份呢?

主机启动时,首先应该通过设备管理器,发送Query 请求给设备,获取一个叫做“bBootLunEn ”的属性,该属性标识当前活跃(Active)的Boot LU。

在上例中,bBootLunEn = 01,说明Boot LU A是当前活跃的Boot LU,因此主机会从LU 1上读取启动代码完成系统的启动。

值得一提的是,Boot LU不是必须的。如果系统的启动代码不是存储在UFS设备上,那么Boot LU就不需要,因此bBootLunEn = 0。

RPMB LU

在UFS里,有这么一个LU,主机往该LU写数据时,UFS设备会校验数据的合法性,只有特定的主机才能写入;同时,主机在读取数据时,也提供了校验机制,保证了主机读取到的数据是从该LU上读的数据,而不是攻击者伪造的数据。这个LU就是RPMB LU。

关于RPMB,后面有专门章节介绍,这里不多说。

“四大名撸” 每个LU分工明确,分别执行不同的任务。下面把 “四大名撸” 能接收的命令列一下:

他们能接收一些通用的命令(如上图绿色命令),还有只有该LU能执行的命令(如红色命令),具体命令可查看Spec。

需要注意的是,写Boot LU和RPMB LU时,它是不支持cache操作的,就是说,数据必须写到闪存中以后,这笔写命令才算完成。而对一般LU的写,一般都是cache操作的,即主机数据到设备的内部buffer,设备就会回命令完成状态给主机.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储系统
    +关注

    关注

    2

    文章

    381

    浏览量

    40704
  • 逻辑
    +关注

    关注

    2

    文章

    818

    浏览量

    29293
  • UFS
    UFS
    +关注

    关注

    6

    文章

    101

    浏览量

    23546

原文标题:蛋蛋读UFS之五:逻辑单元(LU)

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IN100 eFuse存储空间分布

    存储空间
    橙群微电子
    发布于 :2023年06月12日 10:20:08

    ARM11存储空间的问题

    各位大虾好!最近在学习ARM,遇到一些问题无法解决,求帮助!我使用S3C6410,他的存储空间分为4个部分。两个问题:1.静态存储区分为6块,其中Bank2,3可以使用NANDFLA
    发表于 05-18 21:31

    产生若干个周期的正弦波数据并存储

    产生若干个周期的正弦波数据,以当前系统日期和自己的姓名为文件名,分别存储为文本文件,二进制文件和电子表文件。
    发表于 05-15 08:07

    CC2530存储空间的介绍和使用

    256K的Flash,其代码存储空间如图2-2(来自CC2530User‘s Guide)所示,但是51单片机只支持64K的访问空间。 于是CC2530便采用Bank映射的方式,地址空间
    发表于 04-14 16:02

    I/O存储空间什么意思?

    DSP的片内存储,不是只有程序存储空间区(RAM)和数据存储空间区(ROM)吗?那个 I/O存储空间区是什么意思?它属于片内存储吗?
    发表于 05-29 21:26

    DSP的存储空间分配说明

    存放C程序的代码.bss为C程序中的全局和静态变量保留存储空间.far 为C程序中用far声明的全局和静态变量保留空间.stack为C程序系统堆栈保留存储空间,用于保存返回地址、函数间
    发表于 05-07 21:56

    存储空间的分配

    (1)存储空间的分配###1.片上SRAM
    发表于 07-28 06:06

    8051单片机三个存储空间

    存储器结构从用户的角度上,8051单片机三个存储空间:1. 片内外统一编址的64K的程序存储地址空间
    发表于 11-18 07:46

    你知道单片机的存储空间哪些吗

    你知道单片机的存储空间哪些吗?
    发表于 01-26 06:11

    单片机的存储器主要有几个物理存储空间

    单片机的存储器主要有几个物理存储空间
    发表于 11-01 06:22

    单片机的存储器从物理上可划分为4个存储空间,其存储器的空间范围是多少?

    单片机的存储器从物理上可划分为4个存储空间,其存储器的空间范围是多少?
    发表于 11-01 06:20

    存储空间的概念

    什么是云存储空间存储空间是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间
    发表于 05-09 11:59 1870次阅读

    C语言存储空间与MCU(单片机)

    首先,最近因公司项目需求,暂时学习的去做单片机的开发,因此,需要具备的C编程语言,结合自己以前的移动App开发,总结出如下C语言的常规基础知识;一:存储空间本节介绍nX-U8 内核支持的存储空间
    发表于 10-28 09:41 11次下载
    C语言<b class='flag-5'>存储空间</b>与MCU(单片机)

    细说MCS-51单片机的物理存储空间

    (内部或者外部程序存储器)。按照具体数据的物理存储空间来说,MCS-51单片机在有四个物理存储空间,它们分别是:片内程序
    发表于 01-11 17:14 8428次阅读
    细说MCS-51单片机的<b class='flag-5'>物理</b><b class='flag-5'>存储空间</b>

    Linux虚拟地址空间物理地址空间的关系

    过程,这其实也是MMU的工作原理。 我们知道,在Linux中,每个进程都有自己独立地址空间,且互不干扰。每个进程的地址空间又分为用户
    的头像 发表于 10-08 11:40 505次阅读
    Linux虚拟<b class='flag-5'>地址</b><b class='flag-5'>空间</b>和<b class='flag-5'>物理地址</b><b class='flag-5'>空间</b>的关系