CN212084122U - 一种NVMe控制器 - Google Patents
一种NVMe控制器 Download PDFInfo
- Publication number
- CN212084122U CN212084122U CN202021020644.4U CN202021020644U CN212084122U CN 212084122 U CN212084122 U CN 212084122U CN 202021020644 U CN202021020644 U CN 202021020644U CN 212084122 U CN212084122 U CN 212084122U
- Authority
- CN
- China
- Prior art keywords
- module
- data
- cache
- read
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本实用新型公开了一种NVMe控制器,包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。本实用新型一种NVMe控制器基于现有的NVMe标准协议,实现了对寄存器模块的读写操作,提供了一组简单的外部接口供使用,并达到了较高的读写带宽。
Description
技术领域
本实用新型涉及电子技术领域,尤其涉及一种NVMe控制器。
背景技术
HDD和早期的寄存器模块绝大多数都是使用SATA接口,使用的是AHCI(AdvancedHost Controller Interface)协议,在HDD时代或者寄存器模块早期,AHCI协议和SATA接口足够满足***的性能需求,但是随着底层闪存技术的发展,寄存器模块盘的性能得到极大提升,AHCI协议和SATA接口已经不能满足如今寄存器模块性能的需求了,在这种背景下,NVMe(Non-Volatile Memory Express)协议应运而生,NVMe协议是运行在PCIe接口上的协议标准,具有低时延、高性能、低功耗等优点,作为一种新兴的通信协议,现在并没有通用的NVMe控制器。
实用新型内容
本实用新型的目的就在于为了解决上述问题而提供一种NVMe控制器。
本实用新型通过以下技术方案来实现上述目的:
一种NVMe控制器,包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。
具体地,所述命令队列处理模块包括SQ管理模块、SQ缓存模块和prp list模块,所述SQ管理模块、所述SQ缓存模块和所述prp list模块电连接;
所述SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块数据的读写操作;
所述SQ缓存模块用于缓存读写命令;
所述prp list模块用于缓存prp list数据;
所述随机存取存储器用于存储读写命令和prp list数据。
具体地,所述数据缓存模块包括数据处理模块和缓存模块,所述数据处理模块通过所述缓存模块与所述高速串行总线电连接,所述数据处理模块与所述内存模块电连接;
所述内存模块用于存储所述寄存器模块写入或读取的数据;
所述数据处理模块用于将所述寄存器发送的非对齐的读写命令转换为所述内存模块支持的对齐的读写命令;
所述缓存模块用于预取数据,所述缓存模块的写通道包括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和prp list模块,SQ管理模块、SQ缓存模块cache和prp list模块电连接;
SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块SSD数据的读写操作;SQ缓存模块cache用于缓存读写命令;prp list模块用于缓存prp list数据;随机存取存储器RAM用于存储读写命令和prp list数据。命令队列处理模块SQ将命令和prp list都存储在随机存取存储器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发起的读写命令会被写入FIFO中,逻辑会将命令发送给高速串行总线PCIE,完成对寄存器模块SSD的读写操作。
在以下描述中,对“一个实施例”、“实施例”、“一个示例”、“示例”等等的引用表明如此描述的实施例或示例可以包括特定特征、结构、特性、性质、元素或限度,但并非每个实施例或示例都必然包括特定特征、结构、特性、性质、元素或限度。另外,重复使用短语“根据本申请的一个实施例”虽然有可能是指代相同实施例,但并非必然指代相同的实施例。
对所公开的实施例的上述说明,是本领域专业技术人员能够实现或使用本实用新型。对这些实施例的多种修改对本领域的专业技术人员来说将使显而易见的,本文所定义的一般原理可以在不脱离实用新型的精神或范围的情况下,在其他实施例中实现。因此,本实用新型将不会被限制与本文所示的这些实施例,而是要符合与本文所公开的原理和新颖性特点相一致的最宽的范围。
Claims (4)
1.一种NVMe控制器,其特征在于:包括命令队列处理模块、完成队列处理模块、数据缓存模块、访问模块、寄存器模块、随机存取存储器、内存模块、高速串行总线和中央处理器,所述命令队列处理模块、所述完成队列处理模块、所述数据缓存模块、所述访问模块均与高速串行总线电连接,所述访问模块与所述中央处理器电连接,所述随机存取存储器与所述命令队列处理模块电连接,所述内存模块与所述数据缓存模块电连接。
2.根据权利要求1所述的一种NVMe控制器,其特征在于:所述命令队列处理模块包括SQ管理模块、SQ缓存模块和prp list模块,所述SQ管理模块、所述SQ缓存模块和所述prp list模块电连接;
所述SQ管理模块接收命令指令,并将其打包成NVMe协议规定的读写命令,完成对寄存器模块数据的读写操作;
所述SQ缓存模块用于缓存读写命令;
所述prp list模块用于缓存prp list数据;
所述随机存取存储器用于存储读写命令和prp list数据。
3.根据权利要求1所述的一种NVMe控制器,其特征在于:所述数据缓存模块包括数据处理模块和缓存模块,所述数据处理模块通过所述缓存模块与所述高速串行总线电连接,所述数据处理模块与所述内存模块电连接;
所述内存模块用于存储所述寄存器模块写入或读取的数据;
所述数据处理模块用于将所述寄存器发送的非对齐的读写命令转换为所述内存模块支持的对齐的读写命令;
所述缓存模块用于预取数据,所述缓存模块的写通道包括5组缓存FIFO,所述缓存模块的读通道包括6组缓存FIFO。
4.根据权利要求1所述的一种NVMe控制器,其特征在于:所述访问模块通过locabus总线与所述中央处理器电连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202021020644.4U CN212084122U (zh) | 2020-06-06 | 2020-06-06 | 一种NVMe控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202021020644.4U CN212084122U (zh) | 2020-06-06 | 2020-06-06 | 一种NVMe控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN212084122U true CN212084122U (zh) | 2020-12-04 |
Family
ID=73558108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202021020644.4U Active CN212084122U (zh) | 2020-06-06 | 2020-06-06 | 一种NVMe控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN212084122U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559420A (zh) * | 2020-12-21 | 2021-03-26 | 国家电网有限公司能源互联网技术研究院 | 基于双高速总线自主可控的数据通信网关机及通信方法 |
-
2020
- 2020-06-06 CN CN202021020644.4U patent/CN212084122U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559420A (zh) * | 2020-12-21 | 2021-03-26 | 国家电网有限公司能源互联网技术研究院 | 基于双高速总线自主可控的数据通信网关机及通信方法 |
CN112559420B (zh) * | 2020-12-21 | 2024-01-23 | 国家电网有限公司能源互联网技术研究院 | 基于双高速总线自主可控的数据通信网关机及通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990287B2 (en) | Data storage device capable of reducing latency for an unmap command, and operating method thereof | |
US11288014B2 (en) | Controller, operating method of controller and storage device including the same | |
KR20200025184A (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
CN212084122U (zh) | 一种NVMe控制器 | |
KR20210006556A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
US20210397558A1 (en) | Storage device and operating method thereof | |
CN105205017A (zh) | 一种基于pcie ssd的存储控制器 | |
US11861224B2 (en) | Data transfer management from host buffers | |
US11966631B2 (en) | Command queue order adjustment in a data storage device | |
US12045506B2 (en) | Combining operations during reset | |
US12039198B2 (en) | Dynamic write shaping | |
US20230376244A1 (en) | Dynamic Write Shaping | |
US11656798B1 (en) | Immediate partial host buffer fetching | |
US11397699B2 (en) | Interrupt coalescing protection logic | |
US11640264B2 (en) | Parallel commands overlap detection based on queue-depth | |
US11822793B2 (en) | Complete and fast protection against CID conflict | |
US20230297277A1 (en) | Combining Operations During Reset | |
CN111831227B (zh) | 一种nvme协议命令加速处理*** | |
US20240143228A1 (en) | Fast execution of barrier command | |
CN115826882B (zh) | 一种存储方法、装置、设备及存储介质 | |
US12039173B2 (en) | Data storage device that detects and releases input queue bottlenecks | |
US20240086108A1 (en) | Parallel fragmented sgl fetching for hiding host turnaround time | |
US20240053923A1 (en) | Write coalescing via hmb to optimize write performance | |
US11966582B2 (en) | Data storage device that detects and releases bottlenecks | |
US20240111427A1 (en) | Data Storage Device That Detects And Releases Input Queue Bottlenecks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |