CN115576876A - 一种应用于NVMe SSD的DMA分配与管理方法 - Google Patents
一种应用于NVMe SSD的DMA分配与管理方法 Download PDFInfo
- Publication number
- CN115576876A CN115576876A CN202211263901.0A CN202211263901A CN115576876A CN 115576876 A CN115576876 A CN 115576876A CN 202211263901 A CN202211263901 A CN 202211263901A CN 115576876 A CN115576876 A CN 115576876A
- Authority
- CN
- China
- Prior art keywords
- dma
- transmission
- data
- data volume
- management method
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开一种应用于NVMe SSD的DMA分配与管理方法,本方法估算每个DMA工作量,并且为下次DMA传输分配适量的数据。首先计算某笔数据传输的数据量,当数据量小于某个最小数据量阈值时,则采取着重保持某个DMA的连续工作而不是所有DMA都在频繁传输完毕后又开始的小数据量传输;当数据量大于某个最小数据量阈值时,则认为是大数据量的传输,着重保持所有DMA的连续工作而不是将工作堆积于某个DMA。本方法充分考虑了DMA运行过程中能够体现DMA负载的因素,能够获取准确的DMA状态统计信息,以筛选出最符合开启的DMA进行下次的数据传输,提高控制器中DMA的利用率,提升控制器前端IO处理速度。
Description
技术领域
本发明涉及NVMe存储领域,具体是一种应用于NVMe SSD的DMA分配与管理方法。
背景技术
NVMe SSD是遵循非易失性内存主机控制器接口规范(Non-Volatile Memoryexpress)的固态驱动器(Solid State Disk)。SSD由控制器和存储器组成。一个优秀的NVMeSSD的控制器,能够充分利用PCIE通道的低延时以及并行性,在可控制的存储成本下,极大地提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放STAT时代固态硬盘的极致性能。
作为NVMe SSD重要组成部分的控制器,承担着搭建Host和存储器之间的数据通路,处理Host下发的IO,Admin命令和优化存储器使用等重要任务。在Host与存储器的数据交互中,DMA是提高数据传输效率的一种典型的功能。
在一个典型的NVMe SSD控制器的构成中,一般存在多个前端DMA,以达到数据并行,充分利用总线带宽的目的。前端DMA负责将Host内存中的数据传输到控制器的buffer中,或者将控制器buffer中的数据传输到Host内存中。所以前端DMA的分配管理也就显得尤为重要。现如今的主流控制器中,大多采用固定权重分配的方式,为每个DMA分配固定权重的工作量,此举会造成DMA的不均衡传输,即有的DMA满负荷工作,有的DMA确因为分配权重低不进行DMA传输,造成DMA资源的浪费。
发明内容
针对现有技术的缺陷,本发明提供一种应用于NVMe SSD的DMA分配与管理方法,在主机与控制器数据传输的过程中,提供灵活高效的调度方式。基于此种方法设计的前端固件,可以显著提高数据传输效率,提升NVMe SSD IOPS和带宽,降低固件对于DMA传输的干预和影响。
为了解决所述技术问题,本发明采用的技术方案是:一种应用于NVMe SSD的DMA分配与管理方法,包括以下步骤:
S01)、固件在收到主机下发的IO/Admin命令,解析后发起DMA请求;
S02)、固件通过DMA状态信息中的传输字节数,即DMA负载统计,来判断DMA是否处于空闲状态,负载统计为0,则该DMA处于空闲状态;
S03)、如果全部DMA都处于空闲状态,那么依据DMA权重优先级开启最高优先级的DMA进行传输;
S04)、如果有存在处于非空闲状态的DMA,就去比较非空闲状态中的DMA的负载统计;
S05)、如果非空闲状态的DMA存在传输数据量m小于最小数据量阈值M,并且传输字节s小于阈值S,那么就开启本DMA进行传输;
S06)、如果不存在上述状态的DMA,那么所有DMA都在进行传输并且传输本笔数据量m不小于阈值M,传输字节s不小于阈值;
S07)、选取当前DMA传输耗时最小者启动传输;
S08)、固件检测DMA 该笔数据传输的完成;
S09)、更新DMA状态信息结构。
进一步的,设单个DMA的启动时间为Ts ,DMA开启次数为k,启动后至传输单位字节结束耗费时间为单位字节传输时间Tb ,单个DMA正在执行的该笔数据量为n,每个描述符要传输字节数为mi,那么从DMA开启数据传输到传输完成所耗费的时间应该为,步骤S07)中,根据该公式确定每个DMA的传输耗时。
进一步的,步骤S01)至步骤S07)通过线程1运行,步骤S08)至步骤S09)通过线程2运行,数据连续传输时,线程1与线程2并行运行。
进一步的,步骤S09)更新的DMA状态信息结构包括DMA负载统计即传输字节数s、DMA 传输的数据的数量m。
本发明的有益效果:本方法充分考虑了DMA运行过程中的传输字节数、Descriptor数量等能够体现DMA负载的因素,能够获取准确的DMA状态统计信息,以筛选出最符合开启的DMA进行下次的数据传输。有效利用了NVMe SSD控制器中的DMA进行数据传输,提高控制器中DMA的利用率,提升控制器前端IO处理速度。
附图说明
图1 为本发明的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的说明。
实施例1
在多DMA的数据传输中,保持每个DMA的传输连续性能够增强数据的传输能力。在DMA传输完成某笔数据传输时,会暂停此DMA以等待下次DMA数据传输的配置,重新启动DMA的系列操作,在NVMe SSD中是由固件控制分配,这无疑会增添不必要的启动耗时。
每笔数据传输会配置一个DMA Descriptor(数据描述符),DMA通过读取Descriptor(数据描述符)来判断数据的传输量。在有多笔要使用DMA进行串行传输的数据时,DMA则可以传输完当前这笔数据后,根据读取的Descriptor(数据描述符)自动启动下一笔要传输的数据。因此,固件层可以为某个DMA准备好多笔要传输的数据,或者在当前DMA传输数据完成前,将接下来要传输数据的Descriptor准备好并移至当前DMA传输数据的Descriptor(数据描述符)之后。
为了估算每个DMA工作量,并且为下次DMA传输分配适量的数据,本实施例采取以下措施。首先计算某笔数据传输的数据量,当数据量小于某个最小数据量阈值时,则采取着重保持某个DMA的连续工作而不是所有DMA都在频繁传输完毕后又开始的小数据量传输,即数据量小于某个最小数据阈值,则优先为每笔小数据量的传输使用同一个DMA,而不是把每笔小数据量的传输分配到所有DMA上,同时将此笔数据量记录到该DMA的负载统计中;当数据量大于某个最小数据量阈值时,则认为是大数据量的传输,着重保持所有DMA的连续工作而不是将工作堆积于某个DMA,即按照数据量和DMA的权重优先级,将本笔数据分配到负载最小的且权重最高的DMA上,同时将此笔数据量记录到该DMA的负载统计中。因此,本方法中将DMA权重优先级、DMA负载、DMA正在运行的Descriptor数量这三者作为DMA分配与管理方法中的三个要素,能够获取准确的DMA状态统计信息,以筛选出最符合开启的DMA进行下次的数据传输。
如图1所示,本实施例所述方法的具体步骤为:
S01)、固件在收到主机下发的IO/Admin命令,解析后发起DMA请求;
S02)、固件通过DMA状态信息中的传输字节数,即DMA负载统计,来判断DMA是否处于空闲状态,负载统计为0,则该DMA处于空闲状态;
S03)、如果全部DMA都处于空闲状态,那么依据DMA权重优先级开启最高优先级的DMA进行传输;
S04)、如果有存在处于非空闲状态的DMA,就去比较非空闲状态中的DMA的负载统计;
S05)、如果非空闲状态的DMA存在传输数据量m小于最小数据量阈值M,并且传输字节s小于阈值S,那么就开启本DMA进行传输;
S06)、如果不存在上述状态的DMA,那么所有DMA都在进行传输并且传输本笔数据量m不小于阈值M,传输字节s不小于阈值;
S07)、选取当前DMA传输耗时最小者启动传输;
S08)、固件检测DMA 该笔数据传输的完成;
S09)、更新DMA状态信息结构,包括DMA负载统计即传输字节数s、DMA 传输的数据的数量m。
假设单个DMA的启动时间为Ts ,DMA开启次数为k,启动后至传输单位字节结束耗费时间为单位字节传输时间Tb ,单个DMA正在执行的该笔数据量为n,每个描述符要传输字节数为mi,那么从DMA开启数据传输到传输完成所耗费的时间应该为,步骤S07)中,根据该公式确定每个DMA的传输耗时。在该公式中,DMA启动时间Ts 和单位字节传输时间Tb 为常数,DMA开启次数k和数据传输的数量n以及每个笔数据要传输字节数mi 为影响DMA传输的关键因素。由此三个因素可估算DMA传输时间。
本实施例中,步骤S01)至步骤S07)通过线程1运行,步骤S08)至步骤S09)通过线程2运行,数据连续传输时,线程1与线程2并行运行。
以上,描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改机和替换,属于本发明的保护范围。
Claims (4)
1.一种应用于NVMe SSD的DMA分配与管理方法,其特征在于:包括以下步骤:
S01)、固件在收到主机下发的IO/Admin命令,解析后发起DMA请求;
S02)、固件通过DMA状态信息中的传输字节数,即DMA负载统计,来判断DMA是否处于空闲状态,负载统计为0,则该DMA处于空闲状态;
S03)、如果全部DMA都处于空闲状态,那么依据DMA权重优先级开启最高优先级的DMA进行传输;
S04)、如果有存在处于非空闲状态的DMA,就去比较非空闲状态中的DMA的负载统计;
S05)、如果非空闲状态的DMA存在传输数据量m小于最小数据量阈值M,并且传输字节s小于阈值S,那么就开启本DMA进行传输;
S06)、如果不存在上述状态的DMA,那么所有DMA都在进行传输并且传输本笔数据量m不小于阈值M,传输字节s不小于阈值;
S07)、选取当前DMA传输耗时最小者启动传输;
S08)、固件检测DMA 该笔数据传输的完成;
S09)、更新DMA状态信息结构。
3.根据权利要求1所述的应用于NVMe SSD的DMA分配与管理方法,其特征在于:步骤S01)至步骤S07)通过线程1运行,步骤S08)至步骤S09)通过线程2运行,数据连续传输时,线程1与线程2并行运行。
4.根据权利要求1所述的应用于NVMe SSD的DMA分配与管理方法,其特征在于:步骤S09)更新的DMA状态信息结构包括DMA负载统计即传输字节数s、DMA 传输的数据的数量m。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211263901.0A CN115576876A (zh) | 2022-10-17 | 2022-10-17 | 一种应用于NVMe SSD的DMA分配与管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211263901.0A CN115576876A (zh) | 2022-10-17 | 2022-10-17 | 一种应用于NVMe SSD的DMA分配与管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576876A true CN115576876A (zh) | 2023-01-06 |
Family
ID=84585569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211263901.0A Pending CN115576876A (zh) | 2022-10-17 | 2022-10-17 | 一种应用于NVMe SSD的DMA分配与管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576876A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807002A (zh) * | 2024-03-01 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 基于直接存储器访问通道的负载均衡方法、装置及介质 |
-
2022
- 2022-10-17 CN CN202211263901.0A patent/CN115576876A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807002A (zh) * | 2024-03-01 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 基于直接存储器访问通道的负载均衡方法、装置及介质 |
CN117807002B (zh) * | 2024-03-01 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 基于直接存储器访问通道的负载均衡方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8341374B2 (en) | Solid state drive and related method of scheduling operations | |
US11281572B2 (en) | Information processing apparatus and memory access method | |
KR20190009694A (ko) | 멀티-티어 올-플래시 데이터센터의 자동 데이터 배치 관리자 | |
US9635123B2 (en) | Computer system, and arrangement of data control method | |
US10261897B2 (en) | Tail latency aware foreground garbage collection algorithm | |
KR101505395B1 (ko) | 플래시 메모리 시스템에서 페이징된 가비지 수집과 하우스 키핑 동작 | |
CN104090847A (zh) | 一种固态存储设备的地址分配方法 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
CN115576876A (zh) | 一种应用于NVMe SSD的DMA分配与管理方法 | |
US20080301381A1 (en) | Device and method for controlling commands used for flash memory | |
US20240078013A1 (en) | Optimized I/O Performance Regulation for Non-Volatile Storage | |
WO2019136967A1 (zh) | 一种应用在存储系统中的任务调度优化方法 | |
CN105242955A (zh) | 一种虚拟机磁盘输入输出调度方法及系统 | |
US11307797B2 (en) | Storage device and information processing system | |
WO2023035113A1 (zh) | 一种存储装置的控制方法及装置 | |
CN108170380B (zh) | 一种固态硬盘提升顺序读性能的方法及固态硬盘 | |
CN111582739B (zh) | 一种多租户固态盘性能隔离条件下实现高带宽的方法 | |
US10783096B2 (en) | Storage system and method of controlling I/O processing | |
CN116343849B (zh) | 提升ssd混合读写性能的方法、装置、存储介质及设备 | |
KR20210158744A (ko) | 플래시 저장 장치 및 페이지 희생 스케줄링 방법 | |
US11030007B2 (en) | Multi-constraint dynamic resource manager | |
CN117389485B (zh) | 存储性能优化方法、装置、存储系统、电子设备和介质 | |
US20240104468A1 (en) | Maintenance background task regulation using feedback from instrumented waiting points | |
WO2024109076A1 (zh) | 内存管理方法、计算机设备及存储介质 | |
CN116225626A (zh) | 一种面向zns ssd的多芯片协同调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |