CN113064552A - 一种自主分离的NVMe PRP获取加速方法 - Google Patents
一种自主分离的NVMe PRP获取加速方法 Download PDFInfo
- Publication number
- CN113064552A CN113064552A CN202110311372.6A CN202110311372A CN113064552A CN 113064552 A CN113064552 A CN 113064552A CN 202110311372 A CN202110311372 A CN 202110311372A CN 113064552 A CN113064552 A CN 113064552A
- Authority
- CN
- China
- Prior art keywords
- prp
- transmission
- length
- nvme
- ram
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000001133 acceleration Effects 0.000 title claims abstract description 12
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims description 86
- 238000000926 separation method Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 7
- 239000007787 solid Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开一种自主分离的NVMe PRP获取加速方法,本方法接收NVMe IO命令后,获取NVMe IO命令中的LBA Format、Number LBA、PRP Entry1、PRP Entry2,根据LBA Format和Number LBA计算要传输的数据长度m,m=LBA Format*Number LBA;根据数据长度m和PRP Entry1的偏移量计算需要用到的N个PRP Entry,PRP Entry1的偏移量为0时,N=m/4K,PRP Entry1的偏移量不为0时,N=m/4K+1。N>2时,从PRP Entry2中获取PRP List,将PRP Entry2和PRP List中的PRP Entry做拆分后,写入到RAM。本发明可以显著提高固件对PRP Entry和PRP List的处理速度,为PRP Entry和PRP List的使用提供更高的便利性。
Description
技术领域
本发明涉及存储领域,具体是一种自主分离的NVMe PRP获取加速方法。
背景技术
NVMe SSD是遵循非易失性内存主机控制器接口规范(Non-Volatile Memoryexpress)的固态驱动器(Solid State Disk)。SSD由控制器和存储器组成。一个优秀的NVMeSSD的控制器,能够充分利用PCIE通道的低延时以及并行性,在可控制的存储成本下,极大地提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。
在NVMe SSD和主机的数据交互中,PRP Entry和PRP List是不可或缺的关键因素。控制器获取Host的PRP Entry和PRP List的方式决定了SSD的性能。传统的NVMe SSD控制器中,多采用软件获取PRP Entry的方式,此方式对于命令处理有较大的延时。所以PRP Entry和PRP List的获取方式显得尤为重要。
PRP是指物理区域页面(Physical Region Range),PRP Entry实质是本质就是一个64位内存物理地址,只不过把这个物理地址分成两部分:页起始地址和页内偏移。最后两bit是0,说明PRP表示的物理地址只能四字节对齐访问。PRP页内偏移可以是0,也可以是个非零的值。
PRP Entry描述的是一段连续的物理内存的起始地址。如果需要描述若干个不连续的物理内存,则需要若干个PRP Entry。把若干个PRP Entry链接起来,就成了PRP List。
LBA是逻辑区块地址(Logical Block Address),LBA是描述计算机存储设备上数据所在区块的通用机制,一般用在像硬盘这样的辅助记忆设备。LBA Format是指LBA格式,根据不同的LBA格式,LBA Format可以是4K或其他数值,Number LBA是指LBA序号。
发明内容
本发明要解决的技术问题是提供一种自主分离的NVMe PRP获取加速方法,本方法可以显著提高固件对PRP Entry和PRP List的处理速度,为PRP Entry和PRP List的使用提供更高的便利性。
为了解决所述技术问题,本发明采用的技术方案是:一种自主分离的NVMe PRP获取加速方法,包括以下步骤:
S01)、接收NVMe IO命令;
S02)、获取NVMe IO命令中的LBA Format、Number LBA、PRP Entry1、PRP Entry2,根据LBA Format和Number LBA计算要传输的数据长度m,m=LBA Format*Number LBA;
S03)、根据数据长度m和PRP Entry1的偏移量计算需要用到的N个PRP Entry,PRPEntry1的偏移量为0时,N=m/4K,PRP Entry1的偏移量不为0时,N=m/4K+1;
S04)、判断N≤2是否成立:
若N≤2不成立,从PRP Entry2中获取PRP List,将PRP Entry2和PRP List中的PRPEntry做拆分后,写入到RAM;
若N≤2成立,继续判断N≤1是否成立,若N≤1成立,将PRP Entry1写入到RAM中,若N≤1不成立,将PRP Entry1和PRP Entry2写入到RAM中。
进一步的,将NVMe IO命令中的PRP Entry1、PRP Entry2分别称为地址P1、地址P2,当P1偏移量为0时:
在m等于4k的情况下,使用P1即可传输完所有数据,将P1传输长度标记为L1,L1=4K,将P1和L1放入RAM队列中,传输数据长度为L1=4K;
在m等于8k的情况下,使用P1和P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K;P2传输长度标记为L2,L2=4K,将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K+4K=8K;
在m大于8k的情况下,使用P1和P2无法传输所有数据,则向PRP Entry2中按照q =(m-4k)/4k的数量获取PRR List,获取下来的PRP List中含有q个PRP Entry,记为P1、P2、···Pq,将各个PRP Entry传输长度都记为Lq,Lq=4K,此时将P1、L1和所有PRP Entry及其传输长度全部写入RAM队列,传输数据长度记为L,。
进一步的,将NVMe IO命令中的PRP Entry1、PRP Entry2分别称为地址P1、地址P2,当P1偏移量不为0时,将P1偏移量记为O1:
则在m等于4k的情况下,使用P1、P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K -O1,将P2传输长度记为L2,L2=O1,将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K-O1+O1=4K;
在m等于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = 2获取PRR List,获取下来的PRP List中含有2个PRPEntry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRP Entry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRP Entry记为Pq3,它的传输长度记为Lq3,Lq3=O1;此时将P1、L1和所有Pqn、Lqn写RAM队列,n∈[1,3],传输数据长度为L1 + L2 + L3 = 4K-O1+O1+4K-O1+O1=8k;
在m大于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = (m-4k)/4k + 1的数量获取PRR List,获取下来的PRPList中含有q个PRP Entry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRP Entry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRPEntry记为Pq3,它的传输长度记为Lq3,Lq3=O1,将第二个PRP Entry加上O1的偏移记为Pq4,它的传输长度记为Lq4,Lq4=O1,依次类推,直到将最后一个PRP Entry拆分为Pqn和Lqn,将P1、L1和所有Pqi、Lqi写RAM队列,n∈[1,n],传输数据长度为L1 + (q+1)4K。
进一步的,所述方法在SSD控制器单独设置的硬件模块中运行,硬件模块自带RAM,获取的NVMe PRP及其传输长度写入硬件模块自身的RAM中。
进一步的,硬件模块使用Tail寄存器表征队列的生产者指针,当硬件模块写入RAM时,更新此寄存器;CPU使用Head寄存器表征消费者指针,当软件读出RAM时,更新Head寄存器。
进一步的,LBA Format为4K。
本发明的有益效果:本发明充分考虑了PRP Entry1对齐和不对齐时的各种传输长度。能够获取准确获取PRP Entry个数并将其自主拆分为可以传输不同长度数据的地址。有效减少了软件拆分PRP Entry的步骤,也就将传统的CPU获取PRP Entry方式进行了替代,加速了软件对于NVMe 命令中PRP的获取,减少了IO命令处理的延时。本发明采用单独的硬件实施本方法,可以显著提高固件对PRP Entry和PRP List的处理速度,为软件对于PRPEntry和PRP List的使用提供更高的便利性。
附图说明
图1为本方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种自主分离的NVMe PRP获取加速方法,如图1所示,包括以下步骤:
S01)、接收NVMe IO命令;
S02)、获取NVMe IO命令中的LBA Format、Number LBA、PRP Entry1、PRP Entry2,根据LBA Format和Number LBA计算要传输的数据长度m,m=LBA Format*Number LBA;
S03)、根据数据长度m和PRP Entry1的偏移量计算需要用到的N个PRP Entry,PRPEntry1的偏移量为0时,N=m/4K,PRP Entry1的偏移量不为0时,N=m/4K+1;
S04)、判断N≤2是否成立:
若N≤2不成立,从PRP Entry2中获取PRP List,将PRP Entry2和PRP List中的PRPEntry做拆分后,写入到RAM;
若N≤2成立,继续判断N≤1是否成立,若N≤1成立,将PRP Entry1写入到RAM中,若N≤1不成立,将PRP Entry1和PRP Entry2写入到RAM中。
本实施例中,物理内存页为4K,则一个PRP Entry在偏移为0的情况下,可传输4K大小的数据。控制器收到NVMe IO命令时,该IO命令中含有PRP Entry1和PRP Entry2,在此分别称为地址P1、地址P2;含有Number LBA称作为nlb;也有nsid,通过nsid则可以获取到该命令所在ns的LBA Format。本实施例中,LBA Format为4K,则要传输的Data长度m=nlb*4K。
本实施例所述方法在SSD控制器单独设置的硬件模块中运行,硬件模块自带RAM,获取的NVMe PRP及其传输长度写入硬件模块自身的RAM中。
硬件模块使用Tail寄存器表征队列的生产者指针,当硬件模块写入RAM时,更新此寄存器;CPU使用Head寄存器表征消费者指针,当软件读出RAM时,更新Head寄存器。
当P1偏移量为0时:
在m等于4k的情况下,使用P1即可传输完所有数据,将P1传输长度标记为L1,L1=4K,此时硬件模块将P1和L1放入RAM队列中,传输数据长度为L1=4K,更新Tail寄存器。
在m等于8k的情况下,使用P1和P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K;P2传输长度标记为L2,L2=4K,Entry,记为P1、P2、···Pq,将各个PRP Entry传输长度都记为Lq,Lq=4K,此时硬件模块将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K+4K=8K,更新Tail寄存器。
在m大于8k的情况下,使用P1和P2无法传输所有数据,则向PRP Entry2中按照q =(m-4k)/4k的数量获取PRR List,获取下来的PRP List中含有q个PRP Entry,记为P1、P2、···Pq,将各个PRP Entry传输长度都记为Lq,Lq=4K,此时硬件模块将P1、L1和所有PRP Entry及其传输长度全部写入RAM队列,传输数据长度记为L,。
当P1偏移量不为0时,将P1偏移量记为O1:
则在m等于4k的情况下,使用P1、P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K -O1,将P2传输长度记为L2,L2=O1,此时硬件模块将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K-O1+O1=4K,更新Tail寄存器。
在m等于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = 2获取PRR List,获取下来的PRP List中含有2个PRPEntry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRP Entry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRP Entry记为Pq3,它的传输长度记为Lq3,Lq3=O1;此时硬件模块将P1、L1和所有Pqn、Lqn写RAM队列,n∈[1,3],传输数据长度为L1 + L2 + L3 = 4K-O1+O1+4K-O1+O1=8k,更新Tail寄存器。在此过程中,硬件模块将3个PRP Entry自主拆分为4组Pi、Li,i={1,q1, q2, q3}。
在m大于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = (m-4k)/4k + 1的数量获取PRR List,获取下来的PRPList中含有q个PRP Entry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRP Entry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRPEntry记为Pq3,它的传输长度记为Lq3,Lq3=O1,将第二个PRP Entry加上O1的偏移记为Pq4,它的传输长度记为Lq4,Lq4=O1,依次类推,直到将最后一个PRP Entry拆分为Pqn和Lqn,将P1、L1和所有Pqi、Lqi写RAM队列,n∈[1,n],传输数据长度为L1 + (q+1)4K,并更新Tail寄存器。
在此过程中,总共有n+1组Pi、Li,硬件模块将q+1个PRP Entry自主拆分为n+1组Pi、Li,n=2q,i={1,q1, q2, ···,qn}。
本实施例所述方法充分考虑了PRP Entry1对齐和不对齐时的各种传输长度。能够获取准确获取PRP Entry个数并将其自主拆分为可以传输不同长度数据的地址。有效减少了软件拆分PRP Entry的步骤,也就将传统的CPU获取PRP Entry方式进行了替代,加速了软件对于NVMe 命令中PRP的获取,减少了IO命令处理的延时。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (6)
1.一种自主分离的NVMe PRP获取加速方法,其特征在于:包括以下步骤:
S01)、接收NVMe IO命令;
S02)、获取NVMe IO命令中的LBA Format、Number LBA、PRP Entry1、PRP Entry2,根据LBA Format和Number LBA计算要传输的数据长度m,m=LBA Format*Number LBA;
S03)、根据数据长度m和PRP Entry1的偏移量计算需要用到的N个PRP Entry,PRPEntry1的偏移量为0时,N=m/4K,PRP Entry1的偏移量不为0时,N=m/4K+1;
S04)、判断N≤2是否成立:
若N≤2不成立,从PRP Entry2中获取PRP List,将PRP Entry2和PRP List中的PRPEntry做拆分后,写入到RAM;
若N≤2成立,继续判断N≤1是否成立,若N≤1成立,将PRP Entry1写入到RAM中,若N≤1不成立,将PRP Entry1和PRP Entry2写入到RAM中。
2.根据权利要求1所述的自主分离的NVMe PRP获取加速方法,其特征在于:将NVMe IO命令中的PRP Entry1、PRP Entry2分别称为地址P1、地址P2,当P1偏移量为0时:
在m等于4k的情况下,使用P1即可传输完所有数据,将P1传输长度标记为L1,L1=4K,将P1和L1放入RAM队列中,传输数据长度为L1=4K;
在m等于8k的情况下,使用P1和P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K;P2传输长度标记为L2,L2=4K,将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K+4K=8K;
3.根据权利要求1所述的自主分离的NVMe PRP获取加速方法,其特征在于:将NVMe IO命令中的PRP Entry1、PRP Entry2分别称为地址P1、地址P2,当P1偏移量不为0时,将P1偏移量记为O1:
则在m等于4k的情况下,使用P1、P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K -O1,将P2传输长度记为L2,L2=O1,将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K-O1+O1=4K;
在m等于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = 2获取PRR List,获取下来的PRP List中含有2个PRP Entry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRP Entry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRP Entry记为Pq3,它的传输长度记为Lq3,Lq3=O1;此时将P1、L1和所有Pqn、Lqn写RAM队列,n∈[1,3],传输数据长度为L1 + L2+ L3 = 4K-O1+O1+4K-O1+O1=8k;
在m大于8k的情况下,使用P1和P2无法传输所有数据,P1的传输长度记为L1,L1=4k-O1,向PRP Entry2中按照q = (m-4k)/4k + 1的数量获取PRR List,获取下来的PRP List中含有q个PRP Entry且第一个PRP Entry记为Pq1,它的传输长度记为Lq1,Lq1=O1,将第一个PRPEntry加上O1的偏移记为Pq2,它的传输长度记为Lq2,Lq2=4k-O1,将第二个PRP Entry记为Pq3,它的传输长度记为Lq3,Lq3=O1,将第二个PRP Entry加上O1的偏移记为Pq4,它的传输长度记为Lq4,Lq4=O1,依次类推,直到将最后一个PRP Entry拆分为Pqn和Lqn,将P1、L1和所有Pqi、Lqi写RAM队列,n∈[1,n],传输数据长度为L1 + (q+1)4K。
4.根据权利要求1-3任一项所述的自主分离的NVMe PRP获取加速方法,其特征在于:所述方法在SSD控制器单独设置的硬件模块中运行,硬件模块自带RAM,获取的NVMe PRP及其传输长度写入硬件模块自身的RAM中。
5.根据权利要求4所述的自主分离的NVMe PRP获取加速方法,其特征在于:硬件模块使用Tail寄存器表征队列的生产者指针,当硬件模块写入RAM时,更新此寄存器;CPU使用Head寄存器表征消费者指针,当软件读出RAM时,更新Head寄存器。
6.根据权利要求1所述的自主分离的NVMe PRP获取加速方法,其特征在于:LBA Format为4K。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110311372.6A CN113064552A (zh) | 2021-03-24 | 2021-03-24 | 一种自主分离的NVMe PRP获取加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110311372.6A CN113064552A (zh) | 2021-03-24 | 2021-03-24 | 一种自主分离的NVMe PRP获取加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113064552A true CN113064552A (zh) | 2021-07-02 |
Family
ID=76563229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110311372.6A Pending CN113064552A (zh) | 2021-03-24 | 2021-03-24 | 一种自主分离的NVMe PRP获取加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064552A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003943A (zh) * | 2016-12-05 | 2017-08-01 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
JP2018077564A (ja) * | 2016-11-07 | 2018-05-17 | 株式会社アクセル | 情報処理装置、及び情報処理システム |
CN110825669A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 修改NVMe PRP列表指针和数据指针以利于路由PCIe存储器请求 |
CN111177034A (zh) * | 2019-12-27 | 2020-05-19 | 鸿秦(北京)科技有限公司 | 一种固态硬盘的自适应ftl算法 |
CN111221476A (zh) * | 2020-01-08 | 2020-06-02 | 深圳忆联信息系统有限公司 | 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 |
US10817446B1 (en) * | 2015-04-30 | 2020-10-27 | Mobiveil, Inc. | Optimized multiport NVMe controller for multipath input/output applications |
CN112463041A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种主机读写数据的处理方法及相关装置 |
-
2021
- 2021-03-24 CN CN202110311372.6A patent/CN113064552A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817446B1 (en) * | 2015-04-30 | 2020-10-27 | Mobiveil, Inc. | Optimized multiport NVMe controller for multipath input/output applications |
JP2018077564A (ja) * | 2016-11-07 | 2018-05-17 | 株式会社アクセル | 情報処理装置、及び情報処理システム |
CN107003943A (zh) * | 2016-12-05 | 2017-08-01 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
CN110825669A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 修改NVMe PRP列表指针和数据指针以利于路由PCIe存储器请求 |
CN111177034A (zh) * | 2019-12-27 | 2020-05-19 | 鸿秦(北京)科技有限公司 | 一种固态硬盘的自适应ftl算法 |
CN111221476A (zh) * | 2020-01-08 | 2020-06-02 | 深圳忆联信息系统有限公司 | 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 |
CN112463041A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种主机读写数据的处理方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732893B2 (en) | Non-volatile memory over fabric controller with memory bypass | |
TWI428917B (zh) | 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法 | |
US7433994B2 (en) | On-device data compression to increase speed and capacity of flash memory-based mass storage devices | |
US10372620B2 (en) | Devices, systems, and methods having high data deduplication and low read latencies | |
US20100057992A1 (en) | Portable storage device with an accelerated access speed | |
CN101273413A (zh) | 使用单层单元和多层单元闪速存储器的便携式数据存储 | |
TWI761419B (zh) | 最大化可去重複記憶體的方法、記憶體系統和產品 | |
US20110016261A1 (en) | Parallel processing architecture of flash memory and method thereof | |
US11721388B2 (en) | Large file integrity techniques | |
CN113841128B (zh) | 大型数据读取方法、装置及可读介质 | |
WO2009149059A1 (en) | Ssd with a controller accelerator | |
US20210365395A1 (en) | Direct memory access (dma) commands for noncontiguous source and destination memory addresses | |
CN115113799A (zh) | 主机命令的执行方法及装置 | |
CN114780448A (zh) | 数据快速拷贝的方法、装置、计算机设备及存储介质 | |
CN113064552A (zh) | 一种自主分离的NVMe PRP获取加速方法 | |
US20090282064A1 (en) | On the fly compression and storage device, system and method | |
US7644191B2 (en) | Legacy-compatible extended command input-output control block | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
US20060277326A1 (en) | Data transfer system and method | |
US8392620B2 (en) | Accelerated access apparatus and reading and writing methods thereof | |
TWI774277B (zh) | 主機命令的執行方法及裝置 | |
TWI805505B (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
CN106528452B (zh) | 动态逻辑分段方法以及使用该方法的装置 | |
US20230376201A1 (en) | Persistence logging over nvm express for storage devices application | |
US20120131236A1 (en) | Communication between a computer and a data storage device |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210702 |
|
RJ01 | Rejection of invention patent application after publication |