UFS深入浅出 第二章 UFS结构 第四节 UFS分块图解
Section 4 UFS block diagram
第四节 UFS分块图解
In this section, we will have a high-level view of UFS block diagram. Meanwhile we will also have a data flow overview in-between each block. Detail of each block will be covered in the following chapter.
在这一节里,我们会比较笼统的看一下UFS的分块图解。同时,我们也会看一些各个块之间的数据流动。每个块的具体细节会在接下来的章节里面涵盖。
On left of the diagram is Host, is composed by SoC, RAM and UFS Host Controller. The Host here does not simply mean UFS host, but the host of the whole system. While the UFS device is on the right side, which contains UFS Device Controller with embedded SRAM and standalone NAND Flash media.
在分解图的左边是Host,由SoC,RAM和UFS 主机控制器组成。这里的主机不是简单的指UFS 主机,而是整个系统的主机。UFS器件则在右边,包括了UFS 器件控制器以及内嵌的SRAM和独立的NAND Flash 闪存。
If you look into detail of UFS Host Controller and UFS Device Controller, you will find they are quite similar like each other with the same internal layer structures. The difference is that there is a UFS Host Controller Interface called UFS HCI in Host Diagram to communicate with Host SoC, while UFS device controller has got a NAND interface to connect with NAND in which Logic Unit and Registers physically reside. The same part in both sides is defined in the JEDEC UFS specification (latest one is JESD220F UFS4.0). JEDEC also has a HCI Specification (latest one is JESD223E UFSHCI4.0) for UFS Host Controller Interface. Regarding NAND interface, JEDEC absorbs ONFI (Open NAND Flash Interface), and this part will be covered in the article NAND Step by Step.
如果你仔细看UFS 主机控制器和UFS 器件控制器,你会发现他们彼此非常相像,都有着一样的内部层结构。不同的地方是UFS 主机控制器里面有一个叫做UFS HCI的UFS 主机控制器接口与主机SoC通讯。而UFS 器件控制器则有一个NAND接口与保存逻辑单元和寄存器的NAND 闪存通讯。两边相同的地方是在JEDEC UFS规范(最新的是JESD220F UFS4.0)。JEDEC还有一个给UFS 主机控制器接口的HCI规范(最新的是JESD3F UFSHCI4.0)
Usually in a traditional small system, there will be a CPU, RAM, and Disk. When we take a full picture of this diagram, the SoC (System on Chip) here acts as CPU in embedded system, RAM here refers volatile Dynamic RAM memory normally,either DDR RAM or LPDDR (Low Power DDR) RAM,for high-speed code or data access. Disk here is our leading role UFS device, which is a non-volatile memory to store the code and data without power supply. Please take a note that, Disk here is not an accurate name. Disk originally refers to Hard Disk Drive (aka HDD) which uses magnetic material for data non-volatile storage. Now we use this terminology simply for all non-volatile memory for easy understanding.
通常在一个传统的小型系统里面会有CPU,RAM和Disk。当我们整体来看分解图的时候,SoC(片上系统)在嵌入式系统里面扮演了CPU的角色。RAM这里通常是指易失的动态RAM存储器,可以是DDD RAM或者是LPDDR(低功耗DDR)RAM,主要是为了高速代码或者数据的访问。这里的Disk是我们的主角UFS器件,不需要电的非易失存储器。请注意这里的Disk不是一个准确的名字。Disk原本指的是为了数据的非易失存储而使用磁存储介质的硬盘驱动器(也叫HDD)。为了便于理解,现在我们用这个术语简单指代所有非易失存储器。
If we zoom in to focus only on UFS device side, the internal SoC (Yes, there is one SoC inside UFS device controller as well, invisible in this Diagram)of UFS Device controller will be CPU, controller internal SRAM will act as volatile RAM, and NAND flash is non-volatile Disk. Since in this article, we illustrate UFS protocol only, hence we will not go deeper into UFS device small system.
如果我们放大聚焦在UFS器件这边,UFS器件控制器里面的 SoC (是的,在UFS器件控制器里面也有SoC,这个图解里面不可见) 是CPU,控制器内嵌的SRAM是易失的RAM,而NAND闪存就是非易失的Disk。因为这篇文章我们只解释UFS协议,所以我们不会深入探究UFS器件的小系统。
Back to the small system SoC, DRAM, UFS, the main function of Flash is to store data since it is non-volatile memory and could keep data inside without power supply. But in order to load and save data into the NAND Flash, Host SoC need go all the way down through each layer of the UFS host Controller to the physical signals and goes up back through the correlative layers of UFS Device Controller to communicate with NAND Flash. This is the way that we use NAND Flash to save data, the opposite direction is load data.
回到SoC,DRAM和UFS的小系统,Flash的主要功能是存储数据,因为它是非易失存储器,可以在没有电供应的情况下保持数据。但是为了提取和保存数据,主机SoC需要一路向下穿过UFS主机控制器的每一层直到物理信号,然后再往上穿过相对应的UFS器件控制器的每一层去和NAND闪存通讯。这个是我们用NAND闪存存数数据的方式,相反的方向则是提取数据的方向。
We could also use dot line with arrow to see how they communicate with each other logically. On the top is the pair of Host SoC and NAND Flash for read and write operation. In the very beginning, Host SoC do access NAND Flash directly, but limitation is quite obvious. NAND 8-bit parallel I/O is not good to increase data rate for long distance transmission. NAND is born with bit errors for cost effective higher density, hence ECC (Error Correction Code), BBM (Bad Block Management) which bring extra burden for SoC. It does not count WL(wear-leveling)for overcoming limited NAND Flash P/E(Program/Erase) characteristic and FTL (File Transfer Layer) of easily use NAND Flash which need be access by pages but not bit. This is the reason why NAND controller and complex protocol needed for higher and higher data rate.
我们还可以给每一层用虚线箭头来展示逻辑上它们是怎么互相联系的。在最上面是读写操作的一对,主机SoC和NAND闪存。在最开始,主机SoC确实是直接访问NAND的,但是局限性也非常明显。NAND的8比特并行I/O不利于在长距离传输提高数据传输率。NAND天生就是为了更高容量节省成本而有比特错误,所以ECC(错误纠正码),BBM(坏块管理)会给SoC额外的负担。这个还没算为了克服有限的NAND闪存的P/E(编程/擦除)特性而使用的WL (磨损均衡),以及为了方便管理NAND闪存这种使用页而不是比特访问而使用的FTL(文件转换层)。这个也是为了越来越高的速度需要使用NAND控制器以及复杂的协议的原因。
UCS (UFS Command Set) block use CDB (Command Descriptor block) for communication. CDB is defined by SCSI specification which implement not only read/write command but also other functional commands.
UCS(UFS指令集)模块用CDB(命令描述符块)来做通讯。CDB是SCSI协议定义的用来实现读写命令以及其它功能命令。
These commands CDB are embedded in in the next lower UTP (UFS transport Protocol) layer‘s UPIU (UFS Protocol Information Unit) Frame. Besides the communication to the peer layer, UPIU is also used internally by Task Manager block and Device Manager block.
这些命令CDB会嵌入到下面低一层的UTP(UFS传输层)的UPIU(UFS协议信息单元)帧里面。除了用于与对面对应层的通讯,UPIU也被用于内部的任务管理块和器件管理块。
Go deeper to UIC (UFS InterConnect) layer, UniPro is a software stack to hand so called credit-based flow control data transmission. PDU (Protocol data Unit) is the common name for the data packet in UniPro, each sub layer has its specific PDU name. UPIU from upper UTP layer will be divided here to fit for the PDU format. Device Manger block could skip UTP layer to access directly the DME (Device Manager Entity) in UniPro. This is like the internal employee private path for better control low level configuration.
在深一点去到UIC层, UniPro是一个软件协议栈用于处理被称为基于信用的流控数据传输。PDU (协议数据单元) 是UniPro里数据包的通用名字,每一个子层都有各自的专用PDU命名。从上面UTP层来的包在这里会被拆分来适配PDU格式。器件管理块能够越过UTP层直接访问UniPro里的DME(器件管理实体)。这个就像是内部员工的私人通道来更好地控制底层配置。
M-PHY in the UIC will finally encoded sending data or decoded receiving data into symbols and turn it to or from physical signals in the lane. M-PHY use 8b/10 line encoding to turns 8bit data into 10bit symbol for both High-Speed and Low-Speed. Regarding binary encoding,M-PHY for UFS use PWM (Pulse Width Modulation) for low Speed, while NRZ (Non Returned to Zero) for High Speed.
UIC里的M-PHY最终会把发送数据编码或者把接收数据编码成字符,然后转化成通道上的物理信号。高速或者低速M-PHY都使用8b/10b的线路编码把8比特字节转换成10比特的字符。而二进制编码,UFS的M-PHY的低速使用PWM(脉宽调制),高速则使用NRZ(非归零)。
The access point of in-between each diagram block is called SAP (Service Access Point), this could be thought of as logical API (Application Programming Interface).
在各个块之间的访问点被叫做SAP(服务访问点),这个可以被想象成为逻辑API(应用编程接口)。
SoC will utilize the system RAM to maintain the Task Manager request list and Command Transfer request list. These will notify UFS host controller for dispatching instructions by doorbell register which reside in UFS HCI. The name doorbell is quite vivid as if someone is knocking your door to tell you, hey, the tasks and commands are waiting for you to execute them. UFS device controller also maintains the task and command queue in its internal SRAM which is not defined in UFS specification and should be implemented by UFS device vendors.
SoC会使用系统RAM来维护任务管理请求列表和命令传输请求列表。这个会通过UFS HCI里面的门铃寄存器来通知UFS主机控制器分发指令。门铃寄存器这个名字非常生动,好像是有人正在敲门告诉你,嘿,任务和命令已经准备好等你执行了。UFS器件控制器同样在它内部的SRAM维护了任务和命令队列,这个在UFS规范里面没有定义,需要UFS器件厂家自己实现。
内存(RAM或ROM)和FLASH存储的真正区别总结
1)ROM是Read Only Memory的缩写
是一种半导体内存,其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。
只能读出事先所存数据的固态半导体存储器。 英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。
为便于使用和大批量生产 ,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM) 。EPROM需用紫外光长时间照射才能擦除,使用很不方便。20世纪 80 年代制出的 EEPROM ,克服了EPROM的不足,但集成度不高 ,价格较贵。于是又开发出一种新型的存储单元结构同 EPROM 相似的快闪存储器 。其集成度高、功耗低 、体积小 ,又能在线快速擦除 , 因而获得飞速发展,并有可能取代现行的硬盘和软盘而成为主要的大容量存储媒体。大部分只读存储器用金属-氧化物-半导体(MOS)场效应管制成。
2)RAM是Random Access Memory的缩写。
又称为随机存取存储器;存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。
ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM分为两大类:
1)一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
2)另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。
DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
再不明白的请看例子:
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。
NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的'闪盘',可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。
相关问答
Flash 是否有能力取代ROM?首先,这个题目写成一本书都不够说明清楚,所以在这里也不可能回答的非常仔细。题目本身其实问的不够“专业”,因为没有在根本上弄清楚什么是ROM,什么是Flash,...
rom和ram的区别英文介绍_作业帮[回答]UwantsomethingfromWiki?Read-onlymemory(ROM)isaclassofstoragemediausedincomputersand...
yaffs是什么品牌?yaffs文件系统,不是什么品牌YAFFS是Aleph1的工程师CharlesManning开发的NANDFlash文件系统。YAFFS1和YAFFS2主要差异还是在于PAGE读写s...
ez flash 2怎么使用?华硕EZFlash支持外接U盘来更新BIOS,所以请务必准备一个U盘。华硕主板的BIOS通过EZFLASH2更新的具体步骤如下:1、首先前往官网驱动下载页面下载好最新版本...
EEPROM与 FLASH 闪存到底有什么区别?区别主要是他们的用途不同:现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据....
SRAM ,静态随机存储器,和 flash 闪存的区别, - 187****1007 ...SRAM是运行程序的空间,FLASH是存储程序的地方RAM(randomaccessmemory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元...
Flash ROM是什么意思、?-ZOL问答FLASHROM是刷BIOS的小程序,ROM--ReadOnlyMemory中文意思是:只读存贮器以前的游戏机用的都是卡带,里面是一块或几块集成电路芯片,游戏程序就是在生产厂家一...
Flash 安装步骤?1、启动Flash安装程式,然后点击下一步2、接受许可协议3、在安装选项中,只需选择“在桌面上生成快捷方式”项即可4、选中安装FlashPlayer项(记住是独立的,...
当iPhone遇到开机 NAND 的问题该怎么办?可能是存储方面的原因,NAND]_FindFlashmediaAndKeepout:600physicalnandblockoffset1发现媒体和隔离:600物理NAND块偏移1[...
请大家帮我翻译一下读卡器的英语说明书USB2.0接口智能卡阅读器/作者热插拔和发挥黄色工作指标USB2.0的高速接口产品特点全速USB1.0版或2.0版连通阅读和书写闪存卡真正的即插即...