一种在FPGA中实现UFS阵列控制器的实现方式的制作方法

文档序号:24695513发布日期:2021-04-16 11:47阅读:537来源:国知局
一种在FPGA中实现UFS阵列控制器的实现方式的制作方法
一种在fpga中实现ufs阵列控制器的实现方式
技术领域
1.本发明涉及存储器阵列控制技术领域,特别涉及一种在fpga中实现ufs阵列控制器的实现方式


背景技术:

2.当前,以flash存储芯片作为介质的sata、msata、nvme电子盘应用广泛,性能越来越高,成本越来越低;在一些嵌入式电子设备中,受限于体积以及结构的限制,采用嵌入式计算机+电子盘的方案实现有困难,在一些高速流数据的处理系统中,数据需要实时存储,事后分析,而高性能计算机+电子盘磁盘阵列的解决方案体积较大,并且环境适应性也不能满足一些特定要求,因此在很多定制嵌入式设备尤其是军用电子设备里,直接采用fpga控制flash芯片阵列,这样集成度更高,结构更灵活,提高了可靠性。
3.在航空电子领域使用fpga或者其它处理器控制flash芯片阵列最为灵活方便,但需要考虑坏块管理与数据纠错,缺点就是在大容量存储上slc成本高昂,mlc成本低,但数据纠错比较复杂,即使加上数据纠错,也需要通过设置一系列参数才能实现纠错,tlc的数据纠错处理极其复杂,目前常用的ldpc纠错算法也非常消耗fpga的逻辑资源,在高速存储中难以找到对应的fpga实现,因此目前在高速存储中大量应用sata ssd/pcie ssd sip并行实现,sip将mlc/tlc以及控制器集成在一个sip封装内,实现了体积小型化与接口标准化,因此在控制端实现大幅降低了复杂度与技术门槛,但是sip依然存在着成本较高的缺点,目前,在同等容量下,sip的成本依然比嵌入式flash高一个数量级。
4.综上,目前使用fpga直接控制flash阵列以及ssd sip(将sata ssd或者pcie ssd用sip工艺封装在一个芯片封装内)存储数据在军用电子设备数据存储是常用解决方案,但是现有的直接采用fpga控制flash或者nvme sip阵列,存在如下问题:
5.a)采用slc/mlc/tlc等flash芯片,由于flash工艺本身的缺陷,flash芯片结构存在坏块以及坏点,需要复杂坏块管理以及数据纠错算法,设计复杂,特别消耗fpga资源,受限于fpga资源限制,难以实现理想的存储速度。
6.b)采用slc/mlc/tlc受限于进口,由于市场规模的原因,国产slc/mlc并未被芯片厂家提上日程,对于军用电子设备,受限很大。
7.c)sata ssd sip或者pcie ssd sip相比较slc/mlc/tlc,不需要复杂的坏块管理以及数据纠错算法,因而使用fpga控制变得简单,对资源要求不高,但是这类实现采用的是sip技术,内部依然使用的是进口flash芯片,受制于国外限制,而且成本较高。
8.目前ufs flash作为嵌入式flash的主流产品,与sata ssd sip和pcie ssd sip相比,成本比较低,但是当前ufs flash主要应用于移动终端产品,ufs标准中没有考虑在一个系统中多个ufs flash使用的情况(面向物联网与移动设备的ufs标准明确禁止一个主控制器连接多个cport的情况,这是因为建立在unipro协议之上utp传输协议非常简洁,没有考虑多个ufs终端的应用情况),因此现有的集成有ufs控制器的处理器或者ufs控制器ip不支持多个ufs flash并行扩展。


技术实现要素:

9.为解决上述技术问题,本发明提供了一种在fpga中实现ufs阵列控制器的实现方式,在ufs控制器与ufshci控制器之间增加了一个阵列管理,在fpga中实现类似于磁盘阵列管理的多个ufs flash的阵列控制,从而实现ufs大容量高速存储阵列,大幅降低航空电子设备中存储阵列的成本。
10.本发明提供了一种在fpga中实现ufs阵列控制器的实现方式,整个系统通过应用模块、os/公共ufs主机控制器驱动模块、ufs阵列控制器和ufs控制器组成,所述ufs阵列控制器通过ufs主机控制器接口与所述os/公共ufs主机控制器驱动模块连接,所述ufs阵列控制器通过ufs内部接口与所述ufs控制器连接实现ufs控制器的阵列管理。
11.所述ufs阵列控制器包括物理层、协议层和应用层,所述物理层和应用层分层控制。
12.所述应用层包括mmio空间管理模块、磁盘阵列管理模块、ufs操作命令集控制管理模块、设备管理器和任务管理器,所述设备管理器、任务管理器与所述协议层的接口连接遵循ufs标准;
13.所述mmio空间管理模块通过mmio接口实现数据循环队列或描述符队列的控制,所述磁盘阵列管理模块实现磁盘阵列数据与地址映射,所述ufs操作命令集控制管理模块实现若干ufs器件的数据读写控制。
14.所述物理层m

phy通过利用分层查表在fpga中调用7series fpgas transceivers wizard,将pwm脉冲调制、差分高电平脉冲、差分低电平脉冲、配置数据编码、8b/10b编码设计到若干查找表进行映射,实现m

phy在m

tx以及m

rx上的编码/解码器。
15.进一步的,所述m

phy层的第一层查找表对应m

tx框架中的8b/10b,将8b/10b编码表和不同状态下的10位编码与传输线的高/低分别用0xxxxxxxx0b,1111111111b,0000000000b设计到不同的查找表内。
16.进一步的,所述m

phy层的第二层为pwm_g1数据码流查找表,对状态下8b/10b转换查表的高位地址设计一个查找表,建立不同状态对应不同高位地址的映射。
17.进一步的,所述m

phy层的第三层将m

phy的17位接口接到所述m

phy层第二层查找表的映射,包括8b/10b的直接映射、dif

n,dif

p,dif

n到dif

p跳变过程以及pwm

g1数据流按照hs

gx速率取样进行映射。
18.进一步的,所述pwm

g1数据流至少支持pwm

g1和/或pwm

g0以及pwm

g2

7。
19.进一步的,所述mmio空间管理模块的mmio接口按照jesd223c/d的ufshci标准规定设计与主机的接口,或按照扇区大小管理的512b*2
n
大小fifo堆栈,将外部接口以简单的fifo接口实现。
20.进一步的,所述ufs阵列控制器中并行的多个ufs flash芯片采用统一的配置信息进行配置,且从udm_sap接入点和uio_sap接入点读取的各种参数信息与配置信息存储在不同的内存空间。
21.本发明的有益效果如下:
22.通过m

phy层最底层编码的实现,在ufs控制器与ufshci控制器之间增加一个阵列管理,采用分层查表的方法在fpga中实现对mipi

m

phy协议规定的ls

pwm

gx以及hs

gear

gx自适应通讯,在fpga中实现类似于磁盘整列管理的多个ufs flash的阵列控制,进
而实现ufs大容量高速存储阵列,ufs flash使用寿命相当于mlc flash,价格相当于tlc flash,控制不再需要涉及坏块管理、数据纠错等复杂技术,技术复杂度相当于pcie ssd/sata ssd存储,但体积比ssd以及ssd sip小,成本远低于pcie/sata ssd sip,依赖于物联网、移动设备生态链,大幅降低了航空电子数据存储设备开发成本;
23.采用分层控制的物理层和应用层,应用层主要用于高速数据流的记录,针对多任务文件系统的管理的设计按照ufshci标准接口是可选的,设备管理与ufs互联层遵循ufs标准,实现在fpga中控制多个ufs flash阵列的读、写以及设备管理;
24.本发明的实现复杂度较低,没有使标准中规定的各种速率与模式均适应,在m

phy速率设置中选择ls

pwm

g1配置以及理想的hs

gear

g速率,这样在工作中不会更改速率配置设置,由ls

pwm

g1配置成功以后即进入固定的hs

gearx(1/2/3/4)速率运行,不会进入极低功耗状态,省电模式为进入stall/sleep模式。
附图说明
25.图1是本发明的ufs阵列控制系统整体结构示意图;
26.图2是本发明的ufs阵列控制器内部逻辑结构示意图;
27.图3是本发明的m

rx框架示意图;
28.图4是本发明的m

tx框架示意图。
具体实施方式
29.在下面的描述中对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.本发明的实施例提供了一种在fpga中实现ufs阵列控制器的实现方式,如图1所示,系统包括应用模块、os/公共ufs主机控制器驱动模块、ufs阵列控制器和ufs控制器,通过在所述ufs阵列控制器和ufs控制器之间增加阵列管理,所述ufs阵列控制器通过ufs主机控制器接口与所述os/公共ufs主机控制器驱动模块连接,所述ufs阵列控制器通过ufs内部接口的m

tx和m

rx分别与若干所述ufs控制器进行数据连接,实现ufs控制器的阵列管理。
31.如图2所示,所述ufs阵列控制器包括应用层、协议层和物理层,所述应用层包括mmio空间管理模块、磁盘阵列管理模块、ufs操作命令集控制管理模块、设备管理器和任务管理器,其中所述设备管理器、任务管理器与所述协议层的接口连接遵循ufs标准;
32.所述应用层第一层为所述ufs操作命令集控制管理模块实现若干ufs器件的数据读写控制;所述应用层第二层为磁盘真累管理模块,实现磁盘阵列数据与地址的映射,所述应用第三层为所述mmio空间管理模块通过mmio接口实现数据循环队列或描述符队列的控制。
33.所述设备管理器通过udm_sap接入点和uio_sap接入点对接所述协议层utp层和uic层,完成处理设备级别操作和配置设备级别配置,所述uic层包括unipro的四层协议遵循unipro协议标准,所述设备级配置由设备管理器通过维护和存储一组描述符来管理,例如处理查询请求之类的命令,该命令允许修改或检索设备的配置信息,本实施例中,所述
ufs阵列控制器中并行的多个ufs flash芯片采用统一的配置信息进行配置,且从所述udm_sap接入点和uio_sap接入点读取的各种参数信息与配置信息存储在不同的内存空间。
34.所述mmio空间管理模块的mmio接口按照jesd223c/d的ufshci标准规定设计与主机的接口,或按照扇区大小管理的512b*2
n
大小fifo堆栈,将外部接口以简单的fifo接口实现。
35.所述物理层m

phy电源状态有9种,每种状态传输线上传输不同的电平或编码,包括pwm脉冲调制、差分高电平脉冲、差分低电平脉冲、配置数据编码、8b/10b编码等,所述配置数据编码包括ls

mode(pwm低速)和hs

mode(高速)。
36.如图3和图4所示,在m

phy中,通讯接口在所述8b/10b编码的底层协议包括三层分别为8b/10b层,s2p层,rcv/drv层,对于该分层需要在xilinx的开发工具vavado中调用7series fpgas transceivers wizard例化一个不包含8b/10b编码的gtx传输ip,实现控制逻辑到gtx的映射,该ip支持10/20/40等数据宽度,即将所述pwm脉冲调制、差分高电平脉冲、差分低电平脉冲、配置数据编码、8b/10b编码设计到若干查找表中进行映射,实现m

phy在m

tx以及m

rx上的编码器和解码器。
37.所述m

phy层的第一层查找表为8b/10b编码查找表,对应m

tx框架中的8b10b层,包括8b/10b编码映射表,所述8b/10b编码映射表由3b4b数据表、5b6b数据表空间、k码表组成,将8b/10b编码表和不同状态下的10位编码与传输线的高/低分别用0xxxxxxxx0b,1111111111b,0000000000b设计到不同的查找表内;
38.所述m

phy层的第二层查找表为pwm_g1数据码流查找表,对状态下8b/10b转换查表的高位地址设计了一个查找表,建立不同状态对应不同高位地址的映射,对应所述m

phy底层协议的s2p层。
39.所述pwm

g1数据码流至少要支持pwm

g1,其它pwm

g0以及pwm

g2~7可选,所述pwm

g1按照hs

gx速率取样进行映射,ufs3.0能够支持hs

g1/2/3/4四种传输速率,根据hs

gx的速率进行映射,例如当选择hs

g2的速率进行映射时,即传输速率为2.496gbps时;
40.所述pwm

g1脉冲编码数据流的速率范围在3m

9mbps之间,本实施例中所述pwm

g1脉冲编码数据流的速率为6mbps,即每个pwm

g1 ui在gtx ip线上分为416个ui,其中0和1的占空比为1/3和2/3,分别为138ui连续的dif

n加278ui连续的dif

p;10个ui符号对应4160ui gtx符号,实现所有gtx符号流与pwm

g1符号流进行映射。
41.所述m

phy层的第三层查找表包括8b/10b的直接映射、dif

n,dif

p,dif

n到dif

p跳变过程以及pwm

g1数据流按照hs

gx速率取样进行映射,形成m

tx以及m

rx线上串行符号流到s2p层的映射将不同状态对应的的dif

n,dif

p以及dif

z映射到gtx ip接口,不同状态的映射控制变为地址线能够直接从码表中读取数据并输出。
42.如果是hs模式的数据流,则越过第二层、第三层直接映射到gtx数据接口;
43.如果是pwm

g1以及配置状态,则通过第2层查找表继续向下映射。
44.本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1