一种NVMe控制器制造技术

技术编号:26606066 阅读:44 留言:0更新日期:2020-12-04 21:30
本实用新型专利技术公开了一种NVMe控制器,包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。本实用新型专利技术一种NVMe控制器基于现有的NVMe标准协议,实现了对寄存器模块的读写操作,提供了一组简单的外部接口供使用,并达到了较高的读写带宽。

【技术实现步骤摘要】
一种NVMe控制器
本技术涉及电子
,尤其涉及一种NVMe控制器。
技术介绍
HDD和早期的寄存器模块绝大多数都是使用SATA接口,使用的是AHCI(AdvancedHostControllerInterface)协议,在HDD时代或者寄存器模块早期,AHCI协议和SATA接口足够满足系统的性能需求,但是随着底层闪存技术的发展,寄存器模块盘的性能得到极大提升,AHCI协议和SATA接口已经不能满足如今寄存器模块性能的需求了,在这种背景下,NVMe(Non-VolatileMemoryExpress)协议应运而生,NVMe协议是运行在PCIe接口上的协议标准,具有低时延、高性能、低功耗等优点,作为一种新兴的通信协议,现在并没有通用的NVMe控制器。
技术实现思路
本技术的目的就在于为了解决上述问题而提供一种NVMe控制器。本技术通过以下技术方案来实现上述目的:一种NVMe控制器,包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。具体地,所述命令队列处理模块包括SQ管理模块、SQ缓存模块和prplist模块,所述SQ管理模块、所述SQ缓存模块和所述prplist模块电连接;所述SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块数据的读写操作;所述SQ缓存模块用于缓存读写命令;所述prplist模块用于缓存prplist数据;所述随机存取存储器用于存储读写命令和prplist数据。具体地,所述数据缓存模块包括数据处理模块和缓存模块,所述数据处理模块通过所述缓存模块与所述高速串行总线电连接,所述数据处理模块与所述内存模块电连接;所述内存模块用于存储所述寄存器模块写入或读取的数据;所述数据处理模块用于将所述寄存器发送的非对齐的读写命令转换为所述内存模块支持的对齐的读写命令;所述缓存模块用于预取数据,所述缓存模块的写通道包括5组缓存FIFO,所述缓存模块的读通道包括6组缓存FIFO。优选地,所述访问模块通过locabus总线与所述中央处理器电连接。本技术的有益效果在于:本技术一种NVMe控制器基于现有的NVMe标准协议,实现了对寄存器模块的读写操作,提供了一组简单的外部接口供使用,并达到了较高的读写带宽。附图说明图1是本技术所述的一种NVMe控制器的结构示意图;图2是本技术所述命令队列处理模块的示意图。具体实施方式下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一种实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术的保护范围。为使本申请的目的、技术方案和优点更加清楚,下面结合图1和图2对本技术作进一步说明:一种NVMe控制器,包括命令队列处理模块SQ、完成队列处理模块CQ、数据缓存模块、访问模块cpu_accrss_regs、寄存器模块SSD、随机存取存储器RAM、内存模块DDR、高速串行总线PCIE和中央处理器CPU,命令队列处理模块SQ、完成队列处理模块CQ、数据缓存模块、访问模块cpu_accrss_regs均与高速串行总线PCIE电连接,访问模块cpu_accrss_regs与中央处理器CPU电连接,随机存取存储器RAM与命令队列处理模块SQ电连接,内存模块DDR与数据缓存模块电连接。命令队列处理模块SQ包括SQ管理模块、SQ缓存模块cache和prplist模块,SQ管理模块、SQ缓存模块cache和prplist模块电连接;SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块SSD数据的读写操作;SQ缓存模块cache用于缓存读写命令;prplist模块用于缓存prplist数据;随机存取存储器RAM用于存储读写命令和prplist数据。命令队列处理模块SQ将命令和prplist都存储在随机存取存储器RAM中,没有写入内存模块内,主要是为了减少读延迟命令队列处理模块SQ向外提供一组自定义的命令接口,包括命令ID、内存地址、寄存器模块SSD的逻辑地址、数据大小、命令类型、使能和将满信号,命令队列处理模块SQ接收来自外部模块的命令,将其打包成NVMe协议规定的读写命令,完成对寄存器模块SSD数据的读写操作。完成队列处理模块CQ的结构比较简单,主要用于接收并分析寄存器模块SSD返回的命令响应,判断对应的命令是否出错,对于出错的命令将被提取出需要的命令信息写入FIFO中以供中央处理器CPU读取分析错误;正确的命令则将命令ID返回给命令队列处理模块SQ进行分析管理。数据缓存模块包括数据处理模块DQ和缓存模块cache,数据处理模块DQ通过缓存模块cache与高速串行总线PCIE电连接,数据处理模块DQ与内存模块DDR电连接;内存模块DDR用于存储寄存器模块SSD写入或读取的数据;数据处理模块DQ用于将寄存器发送的非对齐的读写命令转换为内存模块DDR支持的对齐的读写命令;缓存模块cache用于预取数据,缓存模块cache的写通道包括5组缓存FIFO,缓存模块cache的读通道包括6组缓存FIFO。数据缓存模块连接高速串行总线PCIE,接收来自寄存器模块SSD的读写命令,对于内存模块DDR来说,读写命令都是按照32字节对齐的操作,数据缓存模块需要将寄存器模块SSD发来的非对齐命令转换成相应的对齐命令,才能正确访问内存模块DDR。为保证读写带宽,进行了预取的操作,设立缓存模块cache,因为寄存器模块SSD一个4KB的数据是顺序的,因此采用FIFO代替随机存取存储器RAM实现,简化了逻辑操作。这样在读数据处理模块DQ的数据侧从FIFO中读取出数据的延迟远小于从内存模块DDR中读取数据的延迟;在写数据处理模块DQ数据侧,数据写入FIFO中时是以burst的形式写的,提高了内存模块DDR带宽的利用效率。同时考虑到寄存器模块SSD发起的多个4KB的读写命令有可能会乱序,因此设计了多个这样的FIFO对读写数据进行缓存来保序。对于SQ和prplist以及其他的非数据处理模块DQ数据,另外有一个FIFO进行存储。优选地,访问模块cpu_accrss_regs通过locabus总线与中央处理器CPU电连接。通过localbus总线连接中央处理器CPU,自定义了一种通信协议用于中央处理器CPU发起读写寄存器模块SSD的操作,中央处理器CPU发起的本文档来自技高网...

【技术保护点】
1.一种NVMe控制器,其特征在于:包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。/n

【技术特征摘要】
1.一种NVMe控制器,其特征在于:包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。


2.根据权利要求1所述的一种NVMe控制器,其特征在于:所述命令队列处理模块包括SQ管理模块、SQ缓存模块和prplist模块,所述SQ管理模块、所述SQ缓存模块和所述prplist模块电连接;
所述SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块数据的读写操作;
所述SQ缓存模块用于缓存读写命令;<...

【专利技术属性】
技术研发人员:熊士杰
申请(专利权)人:成都智明达电子股份有限公司
类型:新型
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1