CN113064552A - 一种自主分离的NVMe PRP获取加速方法 - Google Patents

一种自主分离的NVMe PRP获取加速方法 Download PDF

Info

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
Application number
CN202110311372.6A
Other languages
English (en)
Inventor
段好强
吴斌
乔子龙
孙中琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN202110311372.6A priority Critical patent/CN113064552A/zh
Publication of CN113064552A publication Critical patent/CN113064552A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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 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,
Figure 132360DEST_PATH_IMAGE001
进一步的,将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 +
Figure 681284DEST_PATH_IMAGE002
(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,
Figure 286709DEST_PATH_IMAGE001
当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 +
Figure 893271DEST_PATH_IMAGE002
(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;
在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,
Figure DEST_PATH_IMAGE001
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 +
Figure 565055DEST_PATH_IMAGE002
(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。
CN202110311372.6A 2021-03-24 2021-03-24 一种自主分离的NVMe PRP获取加速方法 Pending CN113064552A (zh)

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)

* Cited by examiner, † Cited by third party
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 苏州浪潮智能科技有限公司 一种主机读写数据的处理方法及相关装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
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