分享
ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf
下载文档

ID:304812

大小:520.81KB

页数:4页

格式:PDF

时间:2023-03-20

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
ZYNQ NVME 协议 模块化 存储系统 设计 殷平天
年第期 与 协议的模块化存储系统设计殷平天,赵福海,吴侠义,左臣瑞,尹航(中国科学院大学,北京 ;中国科学院 空天信息创新研究院)摘要:随着技术的发展,传统的机械硬盘和 等存储设备已经不能满足高速以及大存储容量的使用需求。本文基于 公司的 芯片,采用模块化设计理念,提出了一种基于 协议的高速存储方案。该设计由 端获取数据块信息后构造和解析协议,端完成底层驱动实现数据缓存以及与 的数据交互,通过 与 端的配合完成 的数据写入和读出。该设计可实现 的写入速率、的读出速率以及最大 的存储容量。关键词:协议;固态硬盘;中图分类号:文献标识码:,(,;,):,:;引言相比传统硬盘,拥有读写快、容量大、功耗低等显著优势,近年来作为一种高效的存储设备,在各行业得到了广泛应用。在当前的机载雷达系统中,存储设备容量往往需要达到几 ,现有的 通常运行 协议,其接口传输速率往往不超过 ,已逐渐落后于实际需求。在此背景下,基于 接口,采用非易失性存储器协议(,)的 可以有效提升数据传输效率。提供了一种通过 访问 的标准方法,达成了安全的端到端数据保护支持,从而减少延迟,简化指令集,并显著提高了性能。在硬件基础方面,可为高端嵌入式应用提供性能处理与计算。本设计采用 系列 ,单片可连接最多块 ,最大存储容量达到 ,从而实现数据的高速传输与大容量存储。协议简介是闪存类存储介质的逻辑接口总线传输协议规范,此规范专为 设计,规定了主机与 之间的通信方式,具有精简的内存接口、命令集和队列设计,极大提升了数据传输带宽与指令并行处理能力。队列协议拥有提交队列(,)与完成队列(,),二者均位于主机端()的内存中。主机端发送命令时,将命令存放在 中并通知 读取;当一个命令执行完成后,向 中写入命令完成状态,并由主机端读取。其队列采用固定深度的环形队列,并使用生产消费模型。环形队列有头()与尾()两个元素,队尾指向队列中的第一个空位,生产者往其中写入命令;队头指向下一个将被执行的命令所在位置,消费者从其中取出命令。命令协议 隶 属 于 应 用 层,其 发 出 的 命 令 均 通 过敬请登录网站在线投稿()年第期 总线进行传输。命令的执行需要 、与门铃寄存器 三要素,其中 存在于 控制器内部,用于与主机端内存中的 与 通信。与 都有两个对应的 ,记录其队尾与队头的位置。其命令执行过程分为以下步:主机端写命令到 队尾;主机端写 ,通知 取指;收到通知,从 队头取指;执行指令;指令执行完毕,向 队尾写指令执行结果;产生中断,通知主机端指令完成;主机端收到中断,处理,查看指令完成状态;主机端处理完毕,写 通知 。相比 协议,的队列数量更多,队列深度更大,命令执行过程更加简洁,且其自由配置队列深度赋予了其无与伦比的灵活性。多个 并行处理命令以及灵活分配 优先级的特性使得能更加高效地执行读写操作,建立于此之上的存储系统也能获得相比传统存储设备更加优越的性能。存储系统整体架构本设计使用 公司的 芯片与接口的 。与数据输入连接至 的 端,端运行 操作系统。在图所示的整体架构中,将输入数据缓存至 ,端控制数据从 写入 ,并可逆向操作将数据从 中导出,从而实现高速存储。图存储系统整体架构 端收到数据后先通过路 (深度为)将数据缓存到 的 。在接收数据过程中,端依次向 中填写数据并记录 ,当 超出队列大小时,从队列头 开始存放数据。当有一个 存放满时,将该 值和数据大小写入到对应寄存器。驱动查询到寄存器有数据时,通过地址映射表得到地址信息,并将需要写数据的地址放入下传队列中,然后通过异步方式通知应用层写数据。应用程序根据数据类型打开对应的文件,从队列中取出地址信息,然后向该地址写入指定数据。文件系统收到指令后,将需要写入的文件拆分成对应的 指令,并通过 驱动写入 队列。驱动写完 指令后,通过 的 寄存器写 门铃寄存器 ,通知 控制器取 指令。以 方式从 队列中将 指令取到控制器并执行,指令完成后更新 门铃寄存器 。控制器解析 指令得到 地址,以方式将 中的数据写入 盘。执行完成 命令,将执行结果以方式写 指令到 队列,并更新 门铃寄存器 ,同时发送中断通知 有新的 指令到来。收到中断后取出 指令并执行,执行完成后通过 寄存器更新 门铃寄存器 。执行 指令将上报应用态本次数据交互是否正常。模块设计 驱动模块设计本设计选用 核,通过 实现()如下功能:支持 桥基础功能,能按照正常流程扫描 树形拓扑结构,识别出 桥下挂载的设备。支持映射 空间地址到 地址空间,将 对 的访问转换为 空间访问。既可以设定为固定地址映射,也可以由 端写 相关寄存器进行映射关系配置,支持 域地址空间到 域地址空间的转换。支持解析 数据包的地址。当解析到特殊 域地址段空间时,从映射表中读写数据,映射表在上电时由 端写入 寄存器空间。年第期 数据接口模块设计数据写入系统的瞬间数据量很大,可能导致不能及时将数据写入到 ,故在 端引入 缓存。当数据到来时,将数 据 存 放 在 自 身 的 中 并 通 知,再 按 照协议将数据写入 接口的 盘。缓存分配个 大小的块,编号分别为。当有某个缓存数据装满时,将 值按规则写入指定寄存器中,嵌入式驱动程序通过轮询 寄存器得到缓存块,并根据 值得到需要写入的数据大小、通道类型、是否为完整数据块等信息,然后将固定地址空间写入 队列中,盘采用方式从固定地址空间按照 顺序取数据。由于缓存块设计容量较小,由 中断通知 的方式效率不高,因此采用 轮询 方式查询是否有数据。若有数据到来,则将需要写入的数据地址和大小记录到队列中等待写入。查询数据大小和 值由一个 位寄存器构成,只需通过 一次访问就能够查询到所有需要的信息。寄存器组成如表所列。表寄存器设计 标志位异常掉电数据大小 :表示缓存块 值,表示没有数据。:表示数据块中真实数据大小,有可能不是完整的 大小。:异常掉电标志位。置表示异常掉电产生;置表示没有异常掉电。:标志位。置表示是一个完整 数据块;置表示不是完整数据块。数据导出数据导出和写入流程基本一致,数据文件通过 端下发的命令进行导出。端解析命令,根据文件信息获取文件在 中的 ()地址,然后按照协议交互方式进行数据导出。当 的 接收 控 制 器 发 起 的 数 据 写 请 求 时,将数据写入到 缓存中,余下的更新 队列等操作流程和数据写入流程相同。端设计本设计在 端运行 系统,采用 文件系统进行管理,通过读写文件实现数据的写入与导出。软件驱动 驱动需要实现 和 两个驱动程序。为了实现 数据可以不经过 端通过 直接读写,需要修订 内核部分。修改内核的方式为直接在驱动层操作 和 命令进行读写,驱动支持对盘的状态信息读取,命令创建、指定,以及 读写等相关操作。该方法不支持队列,自定义实现需要考虑的状态较多。驱动 驱动需要扫描 盘并建立 ,扫描 空间并实 现 空 间 映 射,以 及 支 持 中 断 请 求 和 中断请求。两种中断的实现方式如图所示。图 硬件中断()硬件中断 函数内核调用 驱动实现中断域映射函数,驱动不需要依赖具体 控制器硬件。()中断图中 函数读取设备的中断向量,并分配 消息包内存地址,将地址写入 ,同时通过 驱动的中断域映射函数根据中断向量得到一个虚拟中断号,并将该中断号也写入 。当设备发出 中断后,解析此中断,并通过中断方式通知 ,读取中断号后触发二级中断。中断如图所示。自定义驱动该驱动实现 读写接口封装、轮询查询数据、地址映射表创建、队列创建。其数据交互流程如图所示。文件信息管理为方便文件的快速检索以及数据存储时的文件管理,系统上电后会将文件信息读取到内存中,当需要更改某个文件信息时,再将文件信息所在的扇区写入 。文件信息并非顺序存储,如果用户删除中间文件,那么该文件信息所占空间将会空闲,新添加的文件可能会使用这个空间,文件顺序将处于乱序状态。本设计通过在文敬请登录网站在线投稿()年第期 图 中断图自定义驱动交互流程件信息寄存器中使用两个指针控制真正的文件顺序,以此避免文件的排序问题。空间划分根据 的访问特性,的访问地址最小为扇区地址,一个扇区对应的存储空间为 字节,为了提高访问效率,将多个连续扇区组合成一个块(簇)进行管理。本设计将单个 的块大小设计为 ,根据 的技术规格书,的 芯片可用容量为 ,因此块地址最大为 。在进行分区时,只需调整存储空间的起始块地址和结束块地址即可。系统数据存储区默认为 ,使用 空间作为存储系统管理空间。地址分配详细情况如表所列。表地址分配详细情况参数簇地址区域()簇数量扇区地址区域()容量管理空间 数据空间 系统测试与仿真经测试,此系统可以在 驱动层操作 和 命令进行读写,并基于 协议,通过扩展 的方式实现高速大容量数据存储。使用 中的逻辑分析仪模块对系统进行调试,仿真图如图所示。系统收到用户命令后,在 处 信 号 置 高,链 路 层 速 度 协 商 完 成,处 信号置高,表示数据已准备完毕,可以进行传输。图 仿真图为 枚举函数通过串口打印出的 读写 速率,可以看到,此系统读单片 数据的速率可以达到,写速率可达。单片 最多可以连接片 ,写速率可达,读速率可达,容量可以达到 。图实测结果 结语本文基于 平台实现了数据在 中的高速读写与大容量数据存储。该产品已在某机载校飞项目中得到验证,其存储速率及存储容量均能满足需求,同时该产品在雷达、通信、图像处理等领域具有一定的应用前景。参考文献程晓航基于 的 盘大容量存储系统的设计与实现 西安:西安电子科技大学,李晋涛,任勇峰,杨志文,等基于 的存储系统优化设计电子技术应用,():郝嘉,候梦清 存储协议浅论 信息系统工程,():陆启帅,陆彦婷,王地 与嵌入式 设计实战指南 北京:清华大学出版社,标准组织 :王磊 基于 的嵌入式高性能存储技术研究 杭州:浙江大学,陈思扬 基于 的 接口设计 西安:西安电子科技大学,殷平天(研究生),主要研究方向为高速数字电路设计;赵福海(助理研究员),主要研究方向为高速数字电路设计、雷达系统设计。通信作者:赵福海,。(责任编辑:薛士然收修改稿日期:)

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开