0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高速ssd存储系统中数据缓存控制器流程控制设计

高速传输与存储 来源:高速传输与存储 作者:高速传输与存储 2025-04-14 10:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

流程控制模块的框图如图1所示,该模块主要由寄存器、读状态机、写状态机和命令生成模块组成。

wKgZO2f3KXqABiCPAAAptLhP0ls288.png

图1 流程控制模块框图

流程控制模块的工作首先从配置模块中的寄存器组开始,由于只需要配置四个寄存器,因此使用资源占用较小的AXI_Lite总线接口来实现。表1所示为流程控制模块内寄存器的类型与功能描述等信息。

wKgZPGf3KaeAI3zfAAAgGdy4N_8868.png

表1中的操作码寄存器(OPCODE)用于表示命令类型,流程控制模块通过操作码寄存器不同的值来组装相应的NVMe命令,本设计主要实现了NVMe协议中常用的识别、读、写、SMART、FLUSH以及关机命令。数据地址寄存器(ADDR)用于指定要读取的数据块的起始地址。数据块大小寄存器(SIZE)用于指定要读取的数据块的大小。状态寄存器(STATUS)为只读状态,用来指示当前控制器的状态信息。

为了提升系统性能,将读写划分为两个传输通道,每个通道可独立工作。因此需要通过两个状态机来实现了读写控制。同时,采用乒乓操作的方式进行读写,通过A和B两个缓存区之间的切换来使输入输出数据可以无间断地进行传输,并减小NVMe命令执行过程中产生的延迟。

读状态机跳转图如图2所示。

wKgZO2f3MoSAQcpIAABEUPxvyH0457.png

图2 状态机跳转图

写状态机跳转图如图3所示。

wKgZPGf3MuqATIXxAABBNA_xWUc699.png

图3 写状态机跳转图

各状态说明如下:

IDLE:空闲状态,该状态为该模块上电后的初始化状态,在该状态下等待接口转换模块输入的empty信号为低电平时,表示有数据输入,状态跳转至SW_A状态,否则维持在IDLE状态。

SW_A:发送A区域写命令状态,该状态下等待缓存区域A存满后,控制命令生成模块组装区域A的NVMe写命令并通过AXI4_Stream接口发送给NVMe Host控制器。发送完成后若b_busy信号有效且empty信号为低电平时,状态跳转至WAIT,若b_busy信号为低电平且empty信号为低电平时,状态跳转至SC_B状态,此外,在设计中还添加了超时检测机制,通过计数器实现,当长时间无数据输入时,则控制命令生成模块组装相应大小的NVMe写命令,发送至NVMe Host控制器。

SW_B:发送B区域写命令状态,该状态下根据接口转换模块输入的转换数据量信息生成相应的NVMe写命令并通过AXI4_Stream接口发送给NVMe Host控制器。发送完成后若a_busy信号有效且empty信号为低电平时,状态跳转至WAIT,若a_busy信号为低电平且empty信号为低电平时,状态跳转至SC_A状态,该状态下同样使用超时检测。

WAIT:等待状态,在该状态下等待NVMe Host控制器返回done信号,表示命令执行完毕。若上一个状态为SW_A,检测到done信号有效后,且buf_cnt的值不为0,则状态跳转至SW_B。若上一个状态为SW_B,检测到done信号有效后,且buf_cnt的值不为0,则状态跳转至SW_A。否则状态跳转至IDLE。

对它感兴趣,想看视频搜B站用户名: z专注与守望

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17638

    浏览量

    190253
  • SSD
    SSD
    +关注

    关注

    21

    文章

    3061

    浏览量

    121784
  • 存储系统
    +关注

    关注

    2

    文章

    428

    浏览量

    41776
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA的DDR控制器设计

    DDR控制协议 DDR3读写控制器主要用于生成片外存储器DDR3 SDRAM进行读写操作所需要的时序,继而实现对片外存储器的读写访问。由摄像头采集得到的图像
    发表于 10-21 14:30

    SSD为何需要DRAM缓存?天硕工业级SSD带来深度解析!

    键技术的特点与价值。 Q1:什么是DRAM缓存,它在SSD起什么作用? DRAM(动态随机存取存储器)在固态硬盘扮演着"
    的头像 发表于 10-20 17:59 538次阅读
    <b class='flag-5'>SSD</b>为何需要DRAM<b class='flag-5'>缓存</b>?天硕工业级<b class='flag-5'>SSD</b>带来深度解析!

    微爱芯高速吹风筒控制器解决方案

    高速吹风筒控制器设计用于永磁同步电机驱动的吹风类产品。控制器通过调节输入到高速永磁电机的电流或电压来控制电机的启停、转向以及速度等参数,从而
    的头像 发表于 08-19 14:07 1754次阅读
    <b class='flag-5'>中</b>微爱芯<b class='flag-5'>高速</b>吹风筒<b class='flag-5'>控制器</b>解决方案

    宏集方案 | 如何选择适合您的过程控制器

    在现代工业,过程控制器是确保生产效率、质量和安全性的关键设备。它们可以精准监测温度、湿度等变量,优化制造流程,减少人工干预,从而降低错误率和运营成本。但您是否清楚,哪种过程控制器更适
    的头像 发表于 08-08 18:12 285次阅读
    宏集方案 | 如何选择适合您的过<b class='flag-5'>程控制器</b>?

    NVME控制器之队列管理模块

    时,表示队列为满;当Head指针等于Tail指针时,表示队列为空。该模块的状态机用来实现门铃寄存信息更新的流程控制工作。队列管理状态机的跳转图如图2所示。 图2 队列管理状态机跳转图 各状态说明如下
    发表于 05-03 20:19

    NVME控制器之指令控制模块设计

    指令控制模块由一个指令信息缓存, 一个指令组装状态机和一个 ID 池组成。 指令信息缓存存放着由系统控制模块写入的待处理指令信息; 指令组
    发表于 04-25 08:07

    如何选择适合您的过程控制器

    在现代工业,过程控制器是确保生产效率、质量和安全性的关键设备。它们可以精准监测温度、湿度等变量,优化制造流程。但您是否清楚如何选择合适的过程控制器
    的头像 发表于 04-18 17:54 490次阅读
    如何选择适合您的过<b class='flag-5'>程控制器</b>?

    27MHz HCSL 差分晶体振荡数据中心网络存储系统的应用方案

    一、应用背景:存储系统需要高精度参考时钟保障稳定性 在现代数据中心中,服务主板、RAID控制器、企业级SSD以及
    发表于 04-14 21:19

    高速SSD存储+传输系统方案设计

    系统主要包含数据缓存控制器、NVMe Host控制器、以太网控制器、Microblaze处理
    的头像 发表于 04-14 13:38 611次阅读
    <b class='flag-5'>高速</b><b class='flag-5'>SSD</b><b class='flag-5'>存储</b>+传输<b class='flag-5'>系统</b>方案设计

    高速SSD存储系统数据缓存控制器整体顶层设计

    数据缓存控制器主要实现了对大量突发数据缓存、AXI4接口与AXI4-Stream接口之间的转换和NVMe命令的生成等功能。这里主要介绍相关
    的头像 发表于 04-14 10:46 606次阅读
    <b class='flag-5'>高速</b><b class='flag-5'>SSD</b><b class='flag-5'>存储系统</b><b class='flag-5'>中</b><b class='flag-5'>数据</b><b class='flag-5'>缓存</b><b class='flag-5'>控制器</b>整体顶层设计

    什么是MPU控制器及其应用

    MPU控制器是现代电子系统不可或缺的组成部分,它们在各种设备扮演着核心角色,从简单的嵌入式系统到复杂的计算机和服务
    的头像 发表于 01-08 09:23 1377次阅读

    如何配置 RAID 5 存储系统

    配置 RAID 5 存储系统是一个涉及硬件和软件设置的过程。以下是配置 RAID 5 存储系统的一般步骤,以及一些注意事项。请注意,具体步骤可能会因不同的硬件和操作系统而有所不同。 1. 准备硬件
    的头像 发表于 12-27 17:02 3230次阅读

    PLC可编程控制器的简介

    第一台可编程控制器(PDP一14),在通用汽车公司的生产线上试用后,效果显著;1971年,日本研制出第一台可编程控制器;1973年,德国研制出第一台可编程控制器;而在我国于1974年研制可编
    的头像 发表于 12-23 09:09 2077次阅读

    缓存对大数据处理的影响分析

    缓存对大数据处理的影响显著且重要,主要体现在以下几个方面: 一、提高数据访问速度 在大数据环境数据
    的头像 发表于 12-18 09:45 1108次阅读

    什么是缓存(Cache)及其作用

    缓存(Cache)是一种高速存储器,用于临时存储数据,以便快速访问。在计算机系统
    的头像 发表于 12-18 09:28 1.5w次阅读