收藏 分销(赏)

ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf

上传人:自信****多点 文档编号:230748 上传时间:2023-03-20 格式:PDF 页数:4 大小:520.81KB
下载 相关 举报
ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf_第1页
第1页 / 共4页
ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf_第2页
第2页 / 共4页
ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf_第3页
第3页 / 共4页
ZYNQ与NVME协议的模块化存储系统设计_殷平天.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 年第期 与 协议的模块化存储系统设计殷平天,赵福海,吴侠义,左臣瑞,尹航(中国科学院大学,北京 ;中国科学院 空天信息创新研究院)摘要:随着技术的发展,传统的机械硬盘和 等存储设备已经不能满足高速以及大存储容量的使用需求。本文基于 公司的 芯片,采用模块化设计理念,提出了一种基于 协议的高速存储方案。该设计由 端获取数据块信息后构造和解析协议,端完成底层驱动实现数据缓存以及与 的数据交互,通过 与 端的配合完成 的数据写入和读出。该设计可实现 的写入速率、的读出速率以及最大 的存储容量。关键词:协议;固态硬盘;中图分类号:文献标识码:,(,;,):,:;引言相比传统硬盘,拥有读写快、容量大、

2、功耗低等显著优势,近年来作为一种高效的存储设备,在各行业得到了广泛应用。在当前的机载雷达系统中,存储设备容量往往需要达到几 ,现有的 通常运行 协议,其接口传输速率往往不超过 ,已逐渐落后于实际需求。在此背景下,基于 接口,采用非易失性存储器协议(,)的 可以有效提升数据传输效率。提供了一种通过 访问 的标准方法,达成了安全的端到端数据保护支持,从而减少延迟,简化指令集,并显著提高了性能。在硬件基础方面,可为高端嵌入式应用提供性能处理与计算。本设计采用 系列 ,单片可连接最多块 ,最大存储容量达到 ,从而实现数据的高速传输与大容量存储。协议简介是闪存类存储介质的逻辑接口总线传输协议规范,此规范

3、专为 设计,规定了主机与 之间的通信方式,具有精简的内存接口、命令集和队列设计,极大提升了数据传输带宽与指令并行处理能力。队列协议拥有提交队列(,)与完成队列(,),二者均位于主机端()的内存中。主机端发送命令时,将命令存放在 中并通知 读取;当一个命令执行完成后,向 中写入命令完成状态,并由主机端读取。其队列采用固定深度的环形队列,并使用生产消费模型。环形队列有头()与尾()两个元素,队尾指向队列中的第一个空位,生产者往其中写入命令;队头指向下一个将被执行的命令所在位置,消费者从其中取出命令。命令协议 隶 属 于 应 用 层,其 发 出 的 命 令 均 通 过敬请登录网站在线投稿()年第期

4、总线进行传输。命令的执行需要 、与门铃寄存器 三要素,其中 存在于 控制器内部,用于与主机端内存中的 与 通信。与 都有两个对应的 ,记录其队尾与队头的位置。其命令执行过程分为以下步:主机端写命令到 队尾;主机端写 ,通知 取指;收到通知,从 队头取指;执行指令;指令执行完毕,向 队尾写指令执行结果;产生中断,通知主机端指令完成;主机端收到中断,处理,查看指令完成状态;主机端处理完毕,写 通知 。相比 协议,的队列数量更多,队列深度更大,命令执行过程更加简洁,且其自由配置队列深度赋予了其无与伦比的灵活性。多个 并行处理命令以及灵活分配 优先级的特性使得能更加高效地执行读写操作,建立于此之上的存

5、储系统也能获得相比传统存储设备更加优越的性能。存储系统整体架构本设计使用 公司的 芯片与接口的 。与数据输入连接至 的 端,端运行 操作系统。在图所示的整体架构中,将输入数据缓存至 ,端控制数据从 写入 ,并可逆向操作将数据从 中导出,从而实现高速存储。图存储系统整体架构 端收到数据后先通过路 (深度为)将数据缓存到 的 。在接收数据过程中,端依次向 中填写数据并记录 ,当 超出队列大小时,从队列头 开始存放数据。当有一个 存放满时,将该 值和数据大小写入到对应寄存器。驱动查询到寄存器有数据时,通过地址映射表得到地址信息,并将需要写数据的地址放入下传队列中,然后通过异步方式通知应用层写数据。应

6、用程序根据数据类型打开对应的文件,从队列中取出地址信息,然后向该地址写入指定数据。文件系统收到指令后,将需要写入的文件拆分成对应的 指令,并通过 驱动写入 队列。驱动写完 指令后,通过 的 寄存器写 门铃寄存器 ,通知 控制器取 指令。以 方式从 队列中将 指令取到控制器并执行,指令完成后更新 门铃寄存器 。控制器解析 指令得到 地址,以方式将 中的数据写入 盘。执行完成 命令,将执行结果以方式写 指令到 队列,并更新 门铃寄存器 ,同时发送中断通知 有新的 指令到来。收到中断后取出 指令并执行,执行完成后通过 寄存器更新 门铃寄存器 。执行 指令将上报应用态本次数据交互是否正常。模块设计 驱

7、动模块设计本设计选用 核,通过 实现()如下功能:支持 桥基础功能,能按照正常流程扫描 树形拓扑结构,识别出 桥下挂载的设备。支持映射 空间地址到 地址空间,将 对 的访问转换为 空间访问。既可以设定为固定地址映射,也可以由 端写 相关寄存器进行映射关系配置,支持 域地址空间到 域地址空间的转换。支持解析 数据包的地址。当解析到特殊 域地址段空间时,从映射表中读写数据,映射表在上电时由 端写入 寄存器空间。年第期 数据接口模块设计数据写入系统的瞬间数据量很大,可能导致不能及时将数据写入到 ,故在 端引入 缓存。当数据到来时,将数 据 存 放 在 自 身 的 中 并 通 知,再 按 照协议将数据

8、写入 接口的 盘。缓存分配个 大小的块,编号分别为。当有某个缓存数据装满时,将 值按规则写入指定寄存器中,嵌入式驱动程序通过轮询 寄存器得到缓存块,并根据 值得到需要写入的数据大小、通道类型、是否为完整数据块等信息,然后将固定地址空间写入 队列中,盘采用方式从固定地址空间按照 顺序取数据。由于缓存块设计容量较小,由 中断通知 的方式效率不高,因此采用 轮询 方式查询是否有数据。若有数据到来,则将需要写入的数据地址和大小记录到队列中等待写入。查询数据大小和 值由一个 位寄存器构成,只需通过 一次访问就能够查询到所有需要的信息。寄存器组成如表所列。表寄存器设计 标志位异常掉电数据大小 :表示缓存块

9、 值,表示没有数据。:表示数据块中真实数据大小,有可能不是完整的 大小。:异常掉电标志位。置表示异常掉电产生;置表示没有异常掉电。:标志位。置表示是一个完整 数据块;置表示不是完整数据块。数据导出数据导出和写入流程基本一致,数据文件通过 端下发的命令进行导出。端解析命令,根据文件信息获取文件在 中的 ()地址,然后按照协议交互方式进行数据导出。当 的 接收 控 制 器 发 起 的 数 据 写 请 求 时,将数据写入到 缓存中,余下的更新 队列等操作流程和数据写入流程相同。端设计本设计在 端运行 系统,采用 文件系统进行管理,通过读写文件实现数据的写入与导出。软件驱动 驱动需要实现 和 两个驱动

10、程序。为了实现 数据可以不经过 端通过 直接读写,需要修订 内核部分。修改内核的方式为直接在驱动层操作 和 命令进行读写,驱动支持对盘的状态信息读取,命令创建、指定,以及 读写等相关操作。该方法不支持队列,自定义实现需要考虑的状态较多。驱动 驱动需要扫描 盘并建立 ,扫描 空间并实 现 空 间 映 射,以 及 支 持 中 断 请 求 和 中断请求。两种中断的实现方式如图所示。图 硬件中断()硬件中断 函数内核调用 驱动实现中断域映射函数,驱动不需要依赖具体 控制器硬件。()中断图中 函数读取设备的中断向量,并分配 消息包内存地址,将地址写入 ,同时通过 驱动的中断域映射函数根据中断向量得到一个

11、虚拟中断号,并将该中断号也写入 。当设备发出 中断后,解析此中断,并通过中断方式通知 ,读取中断号后触发二级中断。中断如图所示。自定义驱动该驱动实现 读写接口封装、轮询查询数据、地址映射表创建、队列创建。其数据交互流程如图所示。文件信息管理为方便文件的快速检索以及数据存储时的文件管理,系统上电后会将文件信息读取到内存中,当需要更改某个文件信息时,再将文件信息所在的扇区写入 。文件信息并非顺序存储,如果用户删除中间文件,那么该文件信息所占空间将会空闲,新添加的文件可能会使用这个空间,文件顺序将处于乱序状态。本设计通过在文敬请登录网站在线投稿()年第期 图 中断图自定义驱动交互流程件信息寄存器中使

12、用两个指针控制真正的文件顺序,以此避免文件的排序问题。空间划分根据 的访问特性,的访问地址最小为扇区地址,一个扇区对应的存储空间为 字节,为了提高访问效率,将多个连续扇区组合成一个块(簇)进行管理。本设计将单个 的块大小设计为 ,根据 的技术规格书,的 芯片可用容量为 ,因此块地址最大为 。在进行分区时,只需调整存储空间的起始块地址和结束块地址即可。系统数据存储区默认为 ,使用 空间作为存储系统管理空间。地址分配详细情况如表所列。表地址分配详细情况参数簇地址区域()簇数量扇区地址区域()容量管理空间 数据空间 系统测试与仿真经测试,此系统可以在 驱动层操作 和 命令进行读写,并基于 协议,通过

13、扩展 的方式实现高速大容量数据存储。使用 中的逻辑分析仪模块对系统进行调试,仿真图如图所示。系统收到用户命令后,在 处 信 号 置 高,链 路 层 速 度 协 商 完 成,处 信号置高,表示数据已准备完毕,可以进行传输。图 仿真图为 枚举函数通过串口打印出的 读写 速率,可以看到,此系统读单片 数据的速率可以达到,写速率可达。单片 最多可以连接片 ,写速率可达,读速率可达,容量可以达到 。图实测结果 结语本文基于 平台实现了数据在 中的高速读写与大容量数据存储。该产品已在某机载校飞项目中得到验证,其存储速率及存储容量均能满足需求,同时该产品在雷达、通信、图像处理等领域具有一定的应用前景。参考文献程晓航基于 的 盘大容量存储系统的设计与实现 西安:西安电子科技大学,李晋涛,任勇峰,杨志文,等基于 的存储系统优化设计电子技术应用,():郝嘉,候梦清 存储协议浅论 信息系统工程,():陆启帅,陆彦婷,王地 与嵌入式 设计实战指南 北京:清华大学出版社,标准组织 :王磊 基于 的嵌入式高性能存储技术研究 杭州:浙江大学,陈思扬 基于 的 接口设计 西安:西安电子科技大学,殷平天(研究生),主要研究方向为高速数字电路设计;赵福海(助理研究员),主要研究方向为高速数字电路设计、雷达系统设计。通信作者:赵福海,。(责任编辑:薛士然收修改稿日期:)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服