基于eMMC大容量存储U盘的研究
2016-06-18楼向雄王维建
王 庆,楼向雄,王维建,张 雪,刘 莎
(1.杭州电子科技大学通信工程学院,浙江 杭州 310018;2.杭州电子科技大学电子信息学院,浙江 杭州 310018)
基于eMMC大容量存储U盘的研究
王庆1,楼向雄1,王维建2,张雪1,刘莎1
(1.杭州电子科技大学通信工程学院,浙江 杭州 310018;2.杭州电子科技大学电子信息学院,浙江 杭州 310018)
摘要:针对移动存储的大容量、高性能需求,采用国产自主USB2.0安全控制器芯片S261,研制了一款基于嵌入式多媒体卡大容量存储U盘.介绍了U盘的硬件架构和固件设计,重点研究了S261控制器的eMMC管理单元的固件设计.控制器和eMMC之间的数据传递采用Ping-Pong传输,采用两张eMMC以交叉存储的方式存储数据.实验结果表明,该U盘的读写速度较普通U盘有很大的提高.
关键词:嵌入式多媒体卡;大容量;高速;U盘
0引言
随着社会信息技术的高速发展,数据交换和存储变得越来越频繁,移动存储设备已经成为人们生活中必不可少的一部分.移动存储设备的发展经历了几次革新,从最初的纸质存储,到后来的盒式磁带,然后又出现了软盘和光盘[1].自1999年深圳朗科科技公司全球第一款U盘问世以来,U盘技术不断地快速发展.U盘采用USB接口,支持热插拔,传输速度快,USB2.0的最大传输带宽为60 MB/s[2].U盘也由于其体积小,容量大,便于携带,得到广泛使用,成为移动存储和信息交换的最为重要数码存储产品之一.U盘最重要的组件就是主控芯片和存储介质,目前U盘设计厂商多采用NAND Flash作为存储介质.但是NAND Flash芯片目前没有统一的标准,不同厂商、不同制造工艺的NAND Flash技术特性差别很大,更为困难的是,随着NAND Flash的制造工艺的不断进步,需要更为强大的纠错硬件和复杂的Flash管理算法[3]进行支持,这对U盘产品的稳定性、可靠性提出更高的要求,不可避免地推迟了新产品投放市场的周期.eMMC(embedded Multi-Media Card)是内嵌控制器的存储芯片,它采用统一的eMMC接口标准,Flash纠错和管理在eMMC芯片内部完成,非常有利于将产品快速推向市场.近年来随着eMMC接口技术和封装技术的不断提升,其总线带宽已经提升至400 MB/s[4].基于eMMC的这些优点,本文采用eMMC而不是传统的NAND Flash作为存储介质,提高U盘的性能,少数U盘厂商也开始采用单张eMMC作为存储介质,但是还不能同时管理多张eMMC.为了实现U盘的高速、大容量存储,本文研究的U盘采用两张eMMC作为存储介质,以RAID0方式进行操作,读写操作被两张eMMC并行执行,更大地提高了性能和容量.本文首先介绍了U盘的硬件设计架构,然后在研究USB协议和eMMC协议的基础上,介绍了SUP的固件设计流程、eMMC的初始化以及CHP对eMMC读写函数的设计,最后对本文设计的U盘和普通U盘进行性能测试比较.
1系统设计方案
1.1硬件设计
本文采用两张Samsung 128 GB eMMC作为存储介质,eMMC是由JEDEC标准化组织所制定的一种内嵌式存储器标准规格,eMMC内置控制器芯片,采用球栅阵列(Ball Grid Array,BGA)封装;内部具有Flash的算法管理功能,比如,Flash的错误检测和纠正技术、Flash的坏块管理技术[5]等,使使用者无需处理复杂的Flash存储管理算法.目前在读写性能和容量方面比NAND Flash有较大的优势,缩短了产品的上市周期,减少了研发成本.
图1 硬件系统框图
目前市场上几乎所有的U盘主控都是采用单核架构,主控同时管理存储介质和USB接口,扩展性不高[6].本文采用杭州华澜微科技有限公司自主设计的USB2.0存储控制器芯片S261,它采用创新的双核架构设计,两个CPU分别负责USB接口和存储介质接口(支持Flash和eMMC接口)的管理,使得固件工程师能够快速专注的实现其各自功能,也有利于产品的二次开发.
基于eMMC大容量存储U盘的硬件系统框图如图1所示,主要由USB2.0接口、U盘控制器芯片S261、存储介质eMMC和外围电路等组成.主控S261主要负责与主机端通信和控制eMMC的读写操作.S261支持双通道操作,可以管理两张eMMC,增大U盘容量.
1.2USB2.0控制器芯片S261
主控S261采用创新的双核架构设计,分别命名为SUP(Supervisor Unit Processor)和CHP(Channel Processor),SUP负责USB的接口管理,采用32位的精简指令集计算机(Reduced Instruction Set Computer,RISC),CHP负责管理eMMC存储介质,采用8位的RISC.S261控制器支持USB2.0接口规范,向下兼容USB1.x规范,支持控制传输、批量传输等功能.在存储介质方面支持异步ONFI/Toggle NAND Flash和SD/MMC/eMMC存储介质.芯片内部采用可配置硬件BCH纠错模块(最大纠错能力为72 bit/1 024 Byte).S261支持全系列SD/MMC/eMMC接口,包括SD2.0/SD3.0,eMMC4.3/4.4/4.5/5.0接口.
2固件设计
图2 SUP固件流程
由于主控S261的双核架构设计,固件由SUP固件和CHP固件两部分构成,根据USB2.0协议及eMMC协议完成固件设计,SUP固件的编译器采用MPLAB IDE,CHP固件的编译器采用CSC C.通过量产工具把固件下载到eMMC卡中,上电后,主控首先运行ROM代码(芯片出厂烧录的,不可更新,相当于BootLoader),然后ROM代码将eMMC卡上的固件分别加载到SUP和CHP的RAM中运行固件.
2.1SUP固件设计
S261 SUP主要负责USB2.0接口和CHP的接口处理,其中USB2.0接口处理包括控制传输和SCSI命令的处理和响应,例如USB设备的枚举、SCSI读写命令等处理.SUP和CHP的接口包括使能CHP、CHP状态检测、向CHP发送读写命令和数据传输控制等.SUP和CHP的数据传递采用Ping-Pong传输,SUP用大小为4 kB的先进先出(First Input First Output,FIFO)来传递数据,数据传递由一个直接存储器存取(Direct Memory Access,DMA)引擎控制,每次传递的数据单元是2 kB.SUP固件的整体流程如图2所示.
2.2CHP固件设计
2.2.1eMMC初始化
本文研究的大容量存储U盘采用Samsung 128 GB eMMC作为存储介质,符合eMMC5.0协议规范.主控S261通过时钟线、命令线和数据线对eMMC卡进行控制,所有的总线操作都是由主控S261主动发起的.eMMC4.1版本之前的eMMC卡采用32位的字节寻址,这种寻址机制允许eMMC卡的最大容量是2 GB;之后的协议采用32位的块(512 Byte)寻址机制,容量大于2 GB的eMMC卡都使用块寻址,主控可以通过读取eMMC卡的OCR寄存器的[30∶29]位来判定它是字节寻址还是块寻址.
eMMC卡上电后,要对它进行初始化,完成对eMMC卡的配置.主控首先向eMMC发送CMD0,让eMMC进入空闲状态;然后不停地发送CMD1直到卡上电完成,eMMC进入准备状态;然后发送CMD2,让卡进入识别状态;接着发送CMD3,为卡分配一个相对地址,eMMC从卡识别模式进入到数据转移模式,此时卡的状态是备用状态;然后发送CMD7切换卡的状态,使卡进入转移状态,只有卡处于转移状态,主控才可以对卡进行读写操作;最后发送CMD6设置卡的数据总线宽度(8位)和切换到高速接口时钟模式.
2.2.2主程序设计
S261 CHP主要负责控制eMMC.S261的CHP全面支持eMMC协议,CHP根据接收到SUP的命令,对eMMC进行初始化以及读写操作.
图3 CHP固件流程
当对eMMC进行写操作时,SUP向CHP发送一个逻辑块地址(Logic Block Address, LBA),固件把LBA转换成CHP的FIFO基地址,FIFO大小是8 kB,地址从0x00到0x0F.CHP把SUP发送的LBA经过偏移后赋值给写命令CMD25的参数,然后发送给eMMC.地址设定好之后,SUP通过DMA引擎向CHP传递数据,每次传递以4 kB为单位,写数据时,SUP把4 kB的数据传递到CHP的FIFO,然后FIFO再把4 kB的数据传递到eMMC,每张eMMC同时接受2 kB的数据.为了提高数据的传输效率,本文采用FIFO的Ping-Pong传输,把FIFO分为4kB的FIFO0(0x00到0x07)和4 kB的FIFO1(0x08到0x0F).第一次写入时,FIFO的起始地址不确定,传递数据可能小于4 kB,假设FIFO0开始接收SUP的数据,然后FIFO1接收SUP的数据,同时FIFO0的数据会写入eMMC中;然后FIFO0继续接受SUP的数据,同时FIFO1的数据写入eMMC中,循环执行此操作,直到SUP发送停止命令.对eMMC的读操作,过程和写操作相似,只不过数据的传递方向是从卡到SUP,然后通过USB模块和电脑通讯.CHP固件流程如图3所示.
3性能测试
3.1可靠性测试
用专业测试软件对U盘进行可靠性测试,不停地对U盘进行读写大小文件,连续测试了72 h,没有出现错误字节,可靠性达标.
3.2读写速度测试
通过测速软件Benchmark分别对本文的U盘和普通U盘进行测速,它们的测速结果分别如图4和图5所示.比较可知,本eMMC U盘的最大读取速度约为28.2 MB/s,最大写入速度约为20 MB/s;普通U盘的最大读取速度约为15.5 MB/s,最大写入速度约为6.5 MB/s;尤其在对0.5~32 kB的小文件读写时,本文设计的U盘读写速度是普通U盘的10倍之多,eMMC U盘在对小文件读写时比普通U盘有更大的优势.
图4 本文eMMC U盘读写速度
图5 普通U盘读写速度
4结束语
本文研究的U盘采用我国自主研发的加密芯片S261作为主控,采用USB2.0高速接口,以eMMC作为存储介质,通过系统设计和固件设计完成该U盘的设计.该U盘实现了高速、大容量的存储.本文的创新点是采用两张eMMC作为存储介质,以RAID0方式进行操作,增大了存储容量,提高了U盘的读写速度.经过可靠性及速度测试验证,该U盘性能优良,具有很好的应用价值和市场前景.
参考文献
[1]李莺,詹旭,罗毅,等.USB存储设备访问控制与数据安全系统[J].微计算机应用,2010,31(6):50-53.
[2]李亚强.基于Z8HM2芯片的加密U盘的设计[D].哈尔滨:哈尔滨工业大学,2010.
[3]TAKEUCHI K.Nand flash application and solution[J].Solid-State Circuits Magazine,IEEE,2013,5(4):34-40.
[4]老虎.eMMC与SSD搅动未来嵌入式存储市场[J].电子产品世界,2011,18(9):284-287.
[5]刘智勇,陈鹏飞,宿磊,等.基于STM32芯片的U盘/SD卡文件传输技术研究[J].现代电子技术,2014,37(18):107-109.
[6]SUN C,SOGA A,ONAGI T,et al.A workload-aware-design of 3D-NAND flash memory for enterprise SSDs[C]//Quality Electronic Design (ISQED),2014 15th International Symposium on.Santa Clara:IEEE,2014:554-561.
Research of High-capacity Storage U Disk Based on eMMC
WANG Qing1, LOU Xiangxiong1, WANG Weijian2, ZHANG Xue1, LIU Sha1
(1.SchoolofCommunicationEngineering,HangzhouDianziUniversity,HangzhouZhejiang310018,China;2.SchoolofElectronicEngineering,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
Abstract:In order to meet the requirement of high-capacity and high-speed mobile storage devices, a high-capacity storage U disk based on embedded multi-media card (eMMC) is studied in this paper, which adopts self-developed USB2.0 security chip S261 as U disk master. This paper introduces the U disk hardware architecture and firmware design and focuses on studying eMMC’s management unit of S261. The Ping-Pong transfer strategy is used between S261 and eMMC to improve reading and writing performance. The data is stored in eMMC by the cross-storage way. The experimentation results show that the reading and writing speed of the U disk has been greatly improved, meeting the design goal.
Key words:embedded multi-media card; high-capacity; high-speed; U disk
DOI:10.13954/j.cnki.hdu.2016.02.008
收稿日期:2015-06-25
作者简介:王庆(1990-),男,河南永城人,硕士研究生,电子与通信工程.通信作者:楼向雄副教授,E-mail:brian.lou@sage-micro.com.cn.
中图分类号:TP303
文献标识码:A
文章编号:1001-9146(2016)02-0037-05