CN113032293A - 缓存管理器及控制部件 - Google Patents
缓存管理器及控制部件 Download PDFInfo
- Publication number
- CN113032293A CN113032293A CN201911346536.8A CN201911346536A CN113032293A CN 113032293 A CN113032293 A CN 113032293A CN 201911346536 A CN201911346536 A CN 201911346536A CN 113032293 A CN113032293 A CN 113032293A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- storage
- request
- manager
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了缓存管理器及控制部件。其中,缓存管理器包括接口、分配模块和存储器,所述接口接收缓存分配请求,并将所述缓存分配请求发送给所述分配模块;以及所述接口接收所述分配模块返回的第一缓存索引信息,并输出第一所述缓存索引信息;响应于所述缓存分配请求,所述分配模块分配N个空闲的存储块,并生成所述第一缓存索引信息,所述存储块位于缓存内,所述N为正整数,所述第一缓存索引信息包括所述N个存储块的索引;所述存储器存储至少N个存储块的索引。利用硬件实现的缓存管理器代替现有技术中的软件管理缓存,从而减少控制部件中分配缓存时的软件和硬件之间的交互次数,提高控制部件内部的信息交互速度,达到减少主机到闪存芯片之间的数据传输的时间的技术效果。
Description
技术领域
本申请涉及存储技术,特别地,涉及缓存管理器及控制部件。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机***接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
随着信息量的飞速增长,存储设备与主机之间进行单次数据传输都会携带大量的数据,并且受到闪存的存储特性的影响,主机和闪存之间无法直接进行数据传输。因此,目前控制部件中通常设置有缓存,该缓存用于临时存放待传输的数据。设置了缓存,控制部件传输数据的过程就分成的两个阶段,一个阶段为主机和缓存之间数据传输,另一个阶段为缓存和存储设备之间数据传输。因此,现有技术实现了主机到闪存芯片的数据传输,但不可避免地,将数据分成两个阶段进行传输增加了控制部件内部的信息交互次数,从而存在主机到闪存芯片之间的数据传输时间长的技术问题。
发明内容
为了解决现有技术中主机到闪存芯片之间的数据传输时间长的技术问题,本申请提供了缓存管理器及控制部件。
根据本申请的第一方面,提供了根据本申请第一方面的第一缓存管理器,包括接口、分配模块和存储器,其中,所述接口接收缓存分配请求,并将所述缓存分配请求发送给所述分配模块;以及所述接口接收所述分配模块返回的第一缓存索引信息,并输出第一所述缓存索引信息;响应于所述缓存分配请求,所述分配模块分配N个空闲的存储块,并生成所述第一缓存索引信息,所述存储块位于缓存内,所述N为正整数,所述第一缓存索引信息包括所述N个存储块的索引;所述存储器存储至少N个存储块的索引。
本实施方式中,利用硬件实现的缓存管理器代替现有技术中的软件管理缓存,从而减少控制部件中分配缓存时的软件和硬件之间的交互次数,提高控制部件内部的信息交互速度,达到减少主机到闪存芯片之间的数据传输的时间的技术效果。
根据本申请第一方面的第一缓存管理器,提供了根据本申请第一方面的第二缓存管理器,所述缓存管理器还包括释放模块,其中,所述接口接收缓存释放请求,并将所述缓存释放请求发送给所述释放模块,所述缓存释放请求携带第二缓存索引信息,所述第二缓存索引信息包括M个待被释放的存储块的索引,所述待被释放的存储块位于所述缓存内,所述M为正整数;响应于所述缓存释放请求,所述释放模块将所述M个存储块的索引写入所述存储器,以使所述待被释放的存储块成为空闲的存储块。
根据本申请第一方面的第一或第二缓存管理器,提供了根据本申请第一方面的第三缓存管理器,所述存储器包括至少一个存储空间,每个存储空间长度相等,每个存储空间存放一个存储块的索引。
根据本申请第一方面的第一至第三缓存管理器之一,提供了根据本申请第一方面的第四缓存管理器,所述分配模块管理第一指针,所述第一指针指向第一存储空间,所述第一存储空间存放空闲的存储块的索引,且所述第一存储空间两侧相邻的两个存储空间分别存放空闲的存储块的索引和已分配的存储块的索引;在分配所述N个存储块时,所述分配模块从所述第一存储空间开始的连续N个存储空间读取N个存储块的索引;修改所述第一指针,使所述第一指针指向第二存储空间,所述第二存储空间为所述第一存储空间开始的第N+1个存储空间,且所述第二存储空间存放空闲的存储块的索引。
根据本申请第一方面的第一至第四缓存管理器之一,提供了根据本申请第一方面的第五缓存管理器,所述释放模块管理第二指针,所述第二指针指向第三存储空间,所述第三存储空间存放有已分配的存储块的索引,且所述第三存储空间两侧相邻的两个存储空间分别存放空闲的存储块的索引和已分配的存储块的索引;在将所述M个存储块的索引写入所述存储器时,所述释放模块从所述缓存释放请求获取所述M个存储块的索引;将所述M个存储块的索引,依次写入所述第三存储空间开始的连续M个存储空间;修改所述第二指针,使所述第二指针指向第四存储空间,所述第四存储空间为所述第三存储空间开始的第M+1个存储空间,且所述第四存储空间存放已分配的存储块的索引。
根据本申请第一方面的第三缓存管理器,提供了根据本申请第一方面的第六缓存管理器,存储块的索引以数组或链表的形式存放在所述存储器中,所述数组或链表对应于所述至少N个存储空间。
根据本申请的第二方面,提供了根据本申请的第二方面的第一控制部件,包括命令管理器、第一直接内存存取DMA单元、第二DMA单元、缓存和如上述第一方面中任一项所述的缓存管理器,其中,所述命令管理器向所述第一DMA单元发送第一数据搬移请求,所述第一数据搬移请求包括源地址和工作模式;在所述工作模式为第一模式时,响应于所述第一数据搬移请求,所述第一DMA单元访问所述源地址,获取所述源地址中的第一数据,以及向所述缓存管理器发送缓存分配请求;响应于所述缓存分配请求,所述缓存管理器分配N个存储块,并向所述第一DMA单元返回缓存索引信息;接收到所述缓存索引信息之后,所述第一DMA单元根据所述N个存储块的索引,将所述第一数据搬移至所述N个存储块。
根据本申请第二方面的第一控制部件,提供了根据本申请的第二方面的第二控制部件,在所述第一数据搬移请求中的工作模式为第二模式时,所述第一数据搬移请求还包括目标地址;在向所述第一DMA单元发送第一数据搬移请求之前,所述命令管理器向所述缓存管理器发送所述缓存分配请求;响应于所述缓存分配请求,所述缓存管理器为所述第一数据分配所述N个存储块,并向所述命令管理器返回缓存索引信息;所述命令管理器根据所述N个存储块的索引,获取所述目标地址。
根据本申请第二方面的第二控制部件,提供了根据本申请的第二方面的第三控制部件,在工作模式为第二模式时,响应于所述第一数据搬移请求,所述第一DMA单元将所述第一数据从所述源地址对应的存储空间搬移至所述N个存储块。
根据本申请第二方面的第一至第三控制部件之一,提供了根据本申请的第二方面的第四控制部件,向所述第一DMA单元发送第一数据搬移请求之前,所述命令管理器获取第一命令,并根据所述第一命令生成所述第一数据搬移请求,所述第一命令为读命令或写命令;在所述第一命令为写命令时,所述第一数据搬移请求中的源地址为主机地址;在所述第一命令为读命令时,所述第一数据搬移请求中的源地址指向闪存。
根据本申请第二方面的第一至第四控制部件之一,提供了根据本申请的第二方面的第五控制部件,在将所述第一数据搬移至所述N个存储块之后,所述第一DMA单元向所述命令管理器返回完成信息,以表征所述第一数据已搬移到所述缓存;接收到所述完成信息之后,所述命令管理器向所述第二DMA单元发送第二数据搬移请求,所述第二数据搬移请求包括源地址和目标地址;响应于所述第二数据搬移请求,所述第二DMA单元访问所述源地址,获取所述源地址中的第二数据,并向所述第二数据搬移至所述目标地址对应的存储空间。
根据本申请第二方面的第五控制部件,提供了根据本申请的第二方面的第六控制部件,在所述第一命令为写命令时,所述第二数据搬移请求中的源地址为所述N个存储块的物理地址,目标地址指向闪存;所述第一命令为读命令时,所述第二数据搬移请求中的源地址为所述N个存储块的物理地址,目标地址指向主机。
根据本申请第二方面的第一至第四控制部件之一,提供了根据本申请的第二方面的第七控制部件,在将所述第一数据搬移至所述N个存储块时,所述第一DMA单元将所述第一数据分成N个第一消息,并将所述N个第一消息依次搬移至所述N个存储块,每个存储块存放不同的第一消息,每个第一消息的长度相同。
根据本申请第二方面的第七控制部件,提供了根据本申请的第二方面的第八控制部件,所述第一数据搬移请求还包括反馈模式,所述反馈模式指示每搬移X个第一消息,所述第一DMA单元向所述命令管理器返回一个完成信息,所述X为小于等于N的正整数。
根据本申请第二方面的第一或第六控制部件,提供了根据本申请的第二方面的第九控制部件,将所述第二数据搬移至所述目标地址对应的存储空间之后,所述第二DMA单元向所述缓存管理器发送缓存释放请求,所述缓存释放请求携带所述第二数据所在存储块的索引;响应于所述缓存释放请求,所述缓存管理器保存所述第二数据所在存储块的索引,以完成所述第二数据所在存储块的资源释放。
本申请提供了缓存管理器进行缓存的分配与释放管理,代替控制部件中固件的缓存管理功能,从而减少控制部件中软件和硬件的交互次数。本申请采用交互速度更快的硬件和硬件的交互方式,解决现有技术中主机和闪存芯片之间的数据传输时间长的问题,达到提高数据传输过程中控制部件的交互速度,进而提高控制部件的数据传输速度、减少数据传输时间的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中的存储设备的框图;
图2A为本申请实施例提供的缓存管理器的结构示意图;
图2B为本申请实施例提供的存储器中存放数据的状态示意图;
图2C为本申请实施例提供的存储空间和指针的关系示意图;
图3A为本申请实施例提供的控制部件的结构示意图;
图3B为本申请实施例提供的控制部件执行读命令的流程示意图;
图4A为本申请实施例提供的DMA单元的结构示意图;
图4B为本申请实施例提供的触发器保存及传输数据的示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请说明、权利要求书及附图中的术语“第一”、“第二”和“第三”等是用于区分不同对象,而不是用于限定特定顺序。此外,术语“包括”和“具有”以及它们的各种变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,二是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或模块。
本申请中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请中的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,表示单独存在A、同时存在A和B、或单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图2A中给出了一种缓存管理器的结构示意图。如图2A所示,缓存管理器200包括接口201、分配模块202、存储器203和释放模块204。接口201与分配模块202耦合,接口201也和释放模块204耦合,分配模块202和释放模块204均与存储器203耦合。
其中,接口201接收缓存分配请求,并将缓存分配请求发送给分配模块202。响应于缓存分配请求,分配模块202分配N个空闲的存储块,并生成第一缓存索引信息,存储块位于缓存内,N为正整数,第一缓存索引信息包括N个存储块的索引。分配模块202将第一缓存索引信息反馈给接口201,接口201接收分配模块202返回的第一缓存索引信息,并输出第一缓存索引信息。存储器203存储至少N个存储块的索引。N为正整数,例如N等于64。
具体的,分配模块202管理存储器203中存储的数据,从而分配模块202在接收到缓存分配请求之后,读取存储器203中的数据,就得到N个空闲的存储块的索引。
接口201还接收缓存释放请求,并将缓存释放请求发送给释放模块204。缓存释放请求携带有第二缓存索引信息,第二缓存索引信息包括M个待被释放的存储块的索引,M为正整数。响应于缓存释放请求,释放模块204将M个存储块的索引写入存储器203,从而待被释放的存储块就成为空闲的存储块。
本申请中,存储块均位于缓存内,缓存和缓存管理器200存在映射关系,但缓存和缓存管理器200不一定需要耦合连接。除了初次使用或被擦除数据的存储块中没有数据,缓存内的空闲的存储块和待被释放的存储块中通常都写有数据。空闲的存储块和待被释放的存储块的区别在于,空闲的存储块中的数据已经完成了主机和闪存芯片之间数据传输,即空闲的存储块中的数据不需要继续使用。待被释放的存储块中的数据尚未完成主机和闪存芯片之间的数据传输,即待被释放的存储块中的数据仍在使用中。
可选地,为了便于管理,存储器203包括至少一个存储空间,在存储器203包括多个存储空间时,每个存储空间的长度相等,每个存储空间均存放一个存储块的索引。例如,图2B给出了存储器203包括50个存储空间的示意图,图2B中的每个存储空间的长度为4字节,每个存储空间中的存储块的索引也为4字节。本实施例中,存储空间的长度可根据存储块的索引的长度进行调整,在此不作限制。
进一步可选地,存储器203中的存储块的索引是以数组或链表的形式存放的,该数组或链表对应于至少N个存储空间。例如,图2B中的50个存储空间对应于数组的形式。
可选地,本实施例中的分配模块202和释放模块204利用指针管理存储器203中的数据。
具体的,图2C给出了存储空间、第一指针和第二指针的关系示意图。图2C中共有40个存储空间。如图2C所示,分配模块202管理第一指针205,第一指针205指向第一存储空间C31,第一存储空间C31存放空闲的存储块的索引,且第一存储空间C31两侧相邻的两个存储空间(C30和C32)分别存放空闲的存储块的索引和已分配的存储块的索引,其中,存储空间C32存放空闲的存储块的索引,存储空间C30存放已分配的存储块的索引。在分配N个存储块时,分配模块202从第一存储空间C31开始的连续N个存储空间读取N个存储块的索引;修改第一指针205,使第一指针指向第二存储空间,第二存储空间为第一存储空间C31开始的第N+1个存储空间,且第二存储空间存放空闲的存储块的索引。例如,N=5,则第二存储空间为存储空间C36。
继续参见图2C,释放模块204管理第二指针207,第二指针207指向第三存储空间C15,第三存储空间C15存放有已分配的存储块的索引,且第三存储空间C15两侧相邻的两个存储空间(C14和C16)分别存放空闲的存储块的索引和已分配的存储块的索引,其中,存储空间C14存放空闲的存储块的索引,存储空间C16存放已分配的存储块的索引。在将M个存储块的索引写入存储器203时,释放模块204从缓存释放请求获取M个存储块的索引;将M个存储块的索引,依次写入第三存储空间C15开始的连续M个存储空间;修改第二指针207,使第二指针207指向第四存储空间,第四存储空间为第三存储空间C15开始的第M+1个存储空间,且第四存储空间存放已分配的存储块的索引。例如M=10,则第四存储空间为存储空间C25。
参见图3A,控制部件300包括命令管理器301、直接内存存取DMA单元302、DMA单元303、缓存304和如上述实施例中的缓存管理器200。命令管理器301响应于接收到的读/写命令,生成第一数据搬移请求或第二数据搬移请求。控制部件300与主机310和闪存芯片320耦合。
读命令和写命令均指示数据在主机和闪存芯片之间传输,然而由于数据无法直接在主机和闪存芯片之间传输,现有技术中通常采用缓存(例如Dynamic Random AccessMemory,DRAM)作为数据的中转站。从而在执行一条读命令或写命令时,分成两个阶段进行数据传输,一个阶段是主机和缓存之间进行数据传输,另一个阶段是缓存和闪存芯片之间进行数据传输,本实施例中的第一数据搬移请求和第二数据搬移请求就是对应于这两个阶段。例如,命令管理器301接收到读命令,命令管理器301生成的第一数据搬移请求指示将第一数据从闪存芯片320搬移到缓存304,命令管理器301生成的第二数据搬移请求指示将第二数据从缓存304搬移到主机310。又如,命令管理器301接收到写命令,命令管理器301根据写命令生成的第一数据搬移请求指示将第一数据从主机310搬移到缓存304,命令管理器301生成的第二数据搬移请求指示将第二数据从缓存304搬移至闪存芯片320。本实施例中,第一数据是源地址指向主机310或闪存芯片320的数据,第二数据是源地址指向缓存304的数据。需要说明的是,本申请中第一DMA单元是执行第一数据搬移请求的DMA单元,第二DMA单元是执行第二数据搬移请求的DMA单元,图3A中的DMA单元302和DMA单元303既可以执行第一数据搬移请求也可以执行第二数据搬移请求,即本申请中的第一DMA单元和第二DMA单元并不是限定某个固定的DMA单元。
具体的,响应于读命令或写命令,命令管理器301向第一DMA单元发送第一数据搬移请求,第一数据搬移请求包括源地址和工作模式。本实施例中,工作模式包括第一模式和第二模式,其中,第一模式是指由DMA单元请求分配缓存的模式,第二模式是指将由CPU分配缓存的模式。可选地,命令管理器301根据读/写命令的类型或源地址确定第一DMA单元。例如,命令管理器301接收到读命令,该读命令携带的源地址为闪存的逻辑页地址,则第一DMA单元为DMA单元303,命令管理器301向DMA单元303发送该第一数据搬移请求。
下面以命令处理器301接收到写命令为例对本实施例进行描述。
在工作模式为第一模式时,响应于第一数据搬移请求,DMA单元302访问源地址,获取源地址中的第一数据,以及向缓存管理器200发送缓存分配请求。具体的,DMA单元302获知第一数据搬移请求中的工作模式为第一模式,生成缓存分配请求,并向缓存管理器200发送该缓存分配请求。
响应于缓存分配请求,缓存管理器200分配N个存储块,并向DMA单元302返回缓存索引信息。本实施例中的存储块位于缓存304内,N为正整数。该缓存索引信息包括N个存储块的索引,例如,缓存索引信息为N个存储块的物理地址。接收到缓存索引信息之后,DMA单元302根据N个存储块的索引,将第一数据搬移至N个存储块。
在工作模式为第二模式时,第一数据搬移请求还包括目标地址。具体的,第二模式下,缓存分配由命令管理器301进行,命令管理器301将分配的N个存储块的索引携带于第一数据搬移请求发送给命令管理器301,从而命令管理器301直接得到目标地址。
例如,在向DMA单元302发送第一数据搬移请求之前,命令管理器301向缓存管理器200发送缓存分配请求。响应于缓存分配请求,缓存管理器200为第一数据分配N个存储块,并向命令管理器301返回缓存索引信息。命令管理器301根据N个存储块的索引,获取目标地址。
可选地,在工作模式为第二模式时,响应于第一数据搬移请求,DMA单元302将第一数据从源地址对应的存储空间搬移至N个存储块。DMA单元302从第一数据搬移请求中直接获得源地址和目标地址,从而DMA单元302直接访问源地址获取第一数据,并将该第一数据发送至N个存储块。
可选地,在向DMA单元302发送第一数据搬移请求之前,命令管理器301获取第一命令,并根据第一命令生成第一数据搬移请求,第一命令为读命令或写命令;在第一命令为写命令时,第一数据搬移请求中的源地址为主机地址;在第一命令为读命令时,第一数据搬移请求中的源地址指向闪存。
可选地,在将第一数据搬移至N个存储块之后,DMA单元302向命令管理器301返回完成信息,以表征第一数据已搬移到缓存304。本实施例中,在一个阶段的数据搬移完成之后,才能开始另一阶段的数据搬移,本申请中DMA单元302就在搬移完数据后向命令管理器301发送完成信息的方式,来告知命令管理器301可以继续下一阶段的数据搬移。
接收到完成信息之后,命令管理器301向DMA单元303发送第二数据搬移请求,第二数据搬移请求包括源地址和目标地址。响应于第二数据搬移请求,DMA单元303访问源地址,获取源地址中的第二数据,并向第二数据搬移至目标地址对应的存储空间。本实施例中,源地址指向缓存304,目标地址指向闪存芯片320,DMA单元303访问源地址,从N个存储块中获取第二数据,并将第二数据存储到闪存芯片320中。需要注意的是,为了便于区别数据传输的两个阶段,第一数据搬移请求对应于第一数据,第二数据搬移请求对应于第二数据,对于一条写命令,第二数据实际上就是存储到N个存储块中的第一数据。
在一些实施例中,在第一命令为写命令时,第二数据搬移请求中的源地址为N个存储块的物理地址,目标地址为闪存芯片320的逻辑页地址。第一命令为读命令时,第二数据搬移请求中的源地址为N个存储块的物理地址,目标地址为主机地址。
在一些实施例中,在将第一数据搬移至N个存储块时,第一DMA单元将第一数据分成N个第一消息,并将N个第一消息依次搬移至N个存储块,每个存储块存放不同的第一消息,每个第一消息的长度相同。例如,N=24,第一命令为读命令,则DMA单元303将第一数据分成24个等长的第一消息,依次将24个第一消息搬移到24个存储块中。
可选地,在将第二数据搬移至目标地址对应的存储空间时,第二DMA单元将第二数据分成多个第二消息,并将多个第二消息依次搬移至目标地址对应的存储空间。
在一些实施例中,第一数据搬移请求还包括反馈模式,反馈模式指示每搬移X个第一消息,第一DMA单元向命令管理器返回一个完成信息,X为小于等于N的正整数。例如,第一命令为读命令,X=6,N=24,则DMA单元303每搬移6个第一消息就向命令管理器301反馈一次完成信息,共反馈4次完成信息。这一完成信息表征当前已搬移的数据状态,比如,第一次反馈完成信息,命令管理器301就获知已经有6个第一消息搬移到了缓存304,第二次反馈完成信息,命令管理器301获知又有6个第一消息搬移到缓存304。可选地,第二数据搬移请求包括反馈模式,该反馈模式可参见第一数据搬移请求的反馈模式的描述,在此不再赘述。
可选地,将第二数据搬移至目标地址对应的存储空间之后,第二DMA单元向缓存管理器发送缓存释放请求,缓存释放请求携带第二数据所在存储块的索引。响应于缓存释放请求,缓存管理器保存第二数据所在存储块的索引,以完成第二数据所在存储块的资源释放。例如,第二数据搬移请求指示DMA单元303将第二数据从缓存304搬移到闪存芯片320,DMA单元303在将第二数据搬移到闪存芯片320之后,向缓存管理器200发送缓存释放请求,该缓存释放请求携带第二数据已经被搬移走的存储块的索引。缓存管理器200保存这些存储块的索引,完成存储块的资源释放,从而这些索引指向的存储块成为空闲的存储块,可以再次存入数据。
可选地,本申请中的命令管理器301可以由CPU代替。
图3B给出了控制部件300执行读命令的流程示意图。下面以读命令为例,对控制部件300处理读命令的过程进行描述。
在步骤S310,控制部件300将读命令发送给命令管理器301。在步骤S320,命令管理器301根据读命令生成第一数据搬移请求,并将第一数据搬移请求发送给DMA单元303。该第一数据搬移请求携带的源地址为闪存芯片320的逻辑页地址、工作模式为第一模式。继续执行步骤S330,DMA单元303响应于第一数据搬移请求,向缓存管理器200发送缓存分配请求,以及访问闪存芯片320的逻辑页地址,获取第一数据。
在步骤S340,DMA单元303接收到缓存管理器200反馈的目标地址,将第一数据搬移到目标地址对应的存储空间,并向命令管理器301反馈完成信息。其中,该目标地址为缓存304中的物理地址。在步骤S350,命令管理器301向DMA单元302发送第二数据搬移请求,该第二数据搬移请求中的源地址为缓存304中的物理地址,目标地址为主机地址。在步骤S360,DMA单元302将第二数据从缓存304中搬移到主机,并向缓存管理器200发送缓存释放请求,该缓存释放请求携带缓存304中的物理地址。执行步骤S370,在搬移完第二数据后,DMA单元302向命令管理器301反馈完成信息,以表征读命令执行完成。
参见图4A,图4A给出了一种直接内存存取DMA单元的结构示意图,其中,DMA单元400包括控制逻辑模块401、定时模块402、缓冲寄存器403和触发器404。
DMA单元400接收数据搬移请求,数据搬移请求携带源地址和工作模式。本实施例中,数据搬移请求是命令管理器或CPU响应于读/写命令生成的。例如,命令管理器接收到读命令后生成数据搬移请求,该请求携带的源地址指向闪存芯片或缓存。又如,数据搬移请求是CPU根据写命令生成的,则该请求携带的源地址指向主机或缓存。除了主机和命令管理器,数据搬移请求还可以是其它具备命令处理能力的器件生成的,在此不作限定。本实施例中的数据搬移请求携带源地址和工作模式,根据工作模式可选地携带目标地址。这里的工作模式和前文中的实施例中的描述相同,在此不再赘述。在第一模式下,数据搬移请求不携带目标地址;在第二模式下,数据搬移请求携带目标地址。
在源地址指向主机或闪存芯片时,响应于数据搬移请求,DMA单元400访问源地址,以获取第一数据。例如,源地址为主机地址,则DMA单元400控制总线访问主机地址,从而从主机中获取第一数据。又如,源地址为闪存芯片的逻辑页地址,DMA单元400控制总线通过介质接口控制器访问闪存芯片,以从闪存芯片中获取第一数据。
DMA单元400访问源地址时起的预设时长之后,输出缓存分配请求,以获取目标地址,预设时长大于等于0。本实施例中,缓存分配请求被输出给管理缓存的器件,例如,缓存是由缓存管理器这一硬件管理,则向缓存管理器发送缓存分配请求。又如,缓存是由固件管理,则DMA单元400向CPU(固件运行于CPU)发送缓存分配请求。接收到缓存分配请求之后,相应的器件(例如缓存管理器和CPU)会分配若干个存储块(存储块位于缓存中),并向DMA单元400返回存储块的索引。根据存储块的索引可以得到目标地址,或者存储块的索引本身就是目标地址。在获得目标地址后,DMA单元400将第一数据搬移至目标地址所在的存储空间。本实施例中的预设时长与管理缓存的器件相关,例如,使用缓存管理器时,预设时长为3us。使用固件管理缓存时,预设时长为10us。预设时长还可以为0。该预设时长在DMA单元400的初始化过程中进行配置,也可在数据搬移请求中携带该预设时长。
具体的,DMA单元400接收到数据搬移请求之后,由控制逻辑模块401解析数据搬移请求,获取解析结果。本实施例中,数据搬移请求具有固定的格式,控制逻辑模块401根据预设规则,从数据搬移请求中提取出进行数据搬移所需的信息,并存储到相应的寄存器中。预设规则与通信协议相关,在此不做限制。例如,数据搬移请求中的源地址会存储到地址寄存器(未在图中示出)中。
根据解析结果,控制逻辑模块401控制总线,访问源地址。本实施例中,在给DMA单元400发送数据搬移请求时,CPU将总线的控制权让给DMA单元400,不需要DMA单元400去请求总线控制权,减少交互行为,从而提高数据传输效率。需要注意的是,给DMA单元400发送数据搬移请求的不一定是CPU。控制逻辑模块401向定时模块402发送计时开始信号。本实施例中,定时模块402接收外部输入的时钟信号,从而实现计时以及与外部器件保持相同的时间状态。该计时开始信号用于指示定时模块402启动计时功能。响应于计时开始信号,定时模块402开始计时,在计时时间到达预设时长之后,定时模块402向控制逻辑模块401反馈计时完成信号。响应于计时完成信号,控制逻辑模块401输出缓存分配请求。特别地,在预设时长为0时,不进行计时,控制逻辑模块401直接输出缓存分配请求。
在一些实施例中,根据解析结果,控制逻辑模块401控制总线,访问源地址,以及控制逻辑模块401输出缓存分配请求。在接收到反馈的目标地址之前,若已获取到第一数据,利用触发器404暂时保存第一数据中已传输至DMA单元的部分数据,直至接收到目标地址。接收到目标地址之后,控制逻辑模块401控制总线,将触发器404中的数据和总线中的部分第一数据,搬移至目标地址所在的存储空间。
本实施例中,第一数据从源地址传输到DMA单元400并不是一次性完成的,而是将第一数据分成多次进行传输,如一次传输一个字节。例如,第一数据总长度为20字节,每次传输1字节,在获取到目标地址之前,第一数据会有5个字节传输到DMA单元400,则利用触发器404暂时保存这5个字节,直到获取到目标地址后,停止利用触发器保存其它15个字节。在接收目标地址之后,控制逻辑模块401根据时间顺序,先将触发器404中5个字节的数据搬移到目标地址所在的存储空间,然后再将仍在总线中传输的15个字节的数据搬移到该存储空间。
可选地,在获取到目标地址后,继续利用触发器404保存及传输剩余的15个字节的第一数据。参见图4B,图4B给出了利用触发器404保存及传输第一数据的示意图。图4B中有5个触发器,分别是触发器404-1、404-2、404-3、404-4和404-5。T0时刻接收到目标地址之前,触发器404保存5个字节的数据的状态,其中每个触发器保存一个字节的数据,触发器404-1、404-2、404-3、404-4和404-5分别保存数据D1、D2、D3、D4和D5。T1时刻接收到目标地址之后并已经传输了1个字节的数据的状态,此时的触发器404-1、404-2、404-3、404-4和404-5分别保存数据D2、D3、D4、D5和D6。T2时刻为仅剩余3个字节没有传输,此时的触发器404-1、404-2、404-3、404-4和404-5分别保存数据D18、D19、D20、0和0。
在又一实施例中,根据解析结果,控制逻辑模块401控制总线,访问源地址。在接收到第一数据之后,控制逻辑模块401输出缓存分配请求,并利用缓冲寄存器403暂时保存第一数据中已传输至DMA单元400的部分数据,直至接收到目标地址。接收到目标地址之后,控制逻辑模块401控制总线,将缓冲寄存器403中的数据和总线中的部分第一数据,搬移至目标地址所在的存储空间。本实施例中,要等待接收到第一数据后再发出缓存分配请求,触发器的容量无法满足需要临时保存的数据量,从而采用缓冲寄存器来临时保存数据,节省硬件资源。
在一个实施例中,利用触发器404暂时保存第一数据中已传输至DMA单元的部分数据,直至接收到目标地址,包括:控制逻辑模块401每个周期向触发器404发送启动信号,直至接收到目标地址停止发送启动信号;触发器404接收到启动信号后,保存当前周期接收到的第一数据的部分数据的时序状态。可选地,触发器404为D型触发器。触发器404在接收到启动信号时,保存一次数据。每个周期会传输1字节的数据进入DMA单元400,从而每个周期发送一次启动信号,使得触发器404保存当前周期进入DMA单元400的数据。
在一些实施例中,在源地址指向缓存时,DMA单元访问源地址,获取第二数据。在源地址指向缓存时,数据搬移请求还携带目标地址。控制逻辑模块401控制总线,将第二数据搬移至目标地址对应的存储空间。例如,目标地址为主机地址,则将第二数据从缓存搬移到主机。控制逻辑模块401输出缓存释放请求,缓存释放请求携带源地址的缓存索引,以完成资源释放。
在一个实施例中,输出缓存释放请求,缓存释放请求携带源地址的缓存索引,包括:控制逻辑模块401在每搬运固定长度的数据后,输出一个缓存释放请求,一个缓存释放请求携带固定长度的数据对应的缓存索引;或者,控制逻辑模块401在第二数据搬运完成后,输出缓存释放请求,缓存释放请求携带第二数据对应的缓存索引。
本实施例中,控制逻辑模块401采用多种方式输出缓存释放请求。例如,每搬运4字节的数据,就输出一次缓存释放请求,该缓存释放请求会携带这4字节数据对应的缓存索引。又如,控制逻辑模块401在将第二数据全部搬移完之后,发送一个缓存释放请求,该缓存释放请求就包括第二数据整体对应的缓存索引。本实施例中输出缓存释放请求的方式可在DMA单元400初始化时进行配置,在此不做限定。
在一些实施例中,若数据搬移请求还包括目标地址,DMA单元400从源地址获取第一数据之后,将第一数据搬移至目标地址对应的存储空间。本实施例中,控制逻辑模块401在访问源地址后,直接将第一数据搬移至目标地址对应的存储空间,不需要利用触发器404或缓冲存储器403临时保存数据。
可选地,本申请中的DMA单元400可以和上述实施例中的缓存管理器200以及控制部件300结合使用,使用方式可参见上文中的描述,在此不进行展开。在结合使用时,由于DMA单元400和缓存管理器200都是硬件,DMA单元400和缓存管理器200之间的交互方式是速度极快的硬件交互方式,从而可以进一步减少控制部件300内部的交互速度,达到进一步提高主机和闪存芯片之间的数据传输速度的技术效果。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种缓存管理器,其特征在于,包括接口、分配模块和存储器,其中,
所述接口接收缓存分配请求,并将所述缓存分配请求发送给所述分配模块;以及所述接口接收所述分配模块返回的第一缓存索引信息,并输出第一所述缓存索引信息;
响应于所述缓存分配请求,所述分配模块分配N个空闲的存储块,并生成所述第一缓存索引信息,所述存储块位于缓存内,所述N为正整数,所述第一缓存索引信息包括所述N个存储块的索引;
所述存储器存储至少N个存储块的索引。
2.如权利要求1所述的缓存管理器,其特征在于,所述缓存管理器还包括释放模块,其中,
所述接口接收缓存释放请求,并将所述缓存释放请求发送给所述释放模块,所述缓存释放请求携带第二缓存索引信息,所述第二缓存索引信息包括M个待被释放的存储块的索引,所述待被释放的存储块位于所述缓存内,所述M为正整数;
响应于所述缓存释放请求,所述释放模块将所述M个存储块的索引写入所述存储器,以使所述待被释放的存储块成为空闲的存储块。
3.如权利要求1或2所述的缓存管理器,其特征在于,所述存储器包括至少一个存储空间,每个存储空间长度相等,每个存储空间存放一个存储块的索引。
4.如权利要求1-3中任一项所述的缓存管理器,其特征在于,所述分配模块管理第一指针,所述第一指针指向第一存储空间,所述第一存储空间存放空闲的存储块的索引,且所述第一存储空间两侧相邻的两个存储空间分别存放空闲的存储块的索引和已分配的存储块的索引;
在分配所述N个存储块时,所述分配模块从所述第一存储空间开始的连续N个存储空间读取N个存储块的索引;
修改所述第一指针,使所述第一指针指向第二存储空间,所述第二存储空间为所述第一存储空间开始的第N+1个存储空间,且所述第二存储空间存放空闲的存储块的索引。
5.如权利要求1-4中任一项所述的缓存管理器,其特征在于,所述释放模块管理第二指针,所述第二指针指向第三存储空间,所述第三存储空间存放有已分配的存储块的索引,且所述第三存储空间两侧相邻的两个存储空间分别存放空闲的存储块的索引和已分配的存储块的索引;
在将所述M个存储块的索引写入所述存储器时,所述释放模块从所述缓存释放请求获取所述M个存储块的索引;
将所述M个存储块的索引,依次写入所述第三存储空间开始的连续M个存储空间;
修改所述第二指针,使所述第二指针指向第四存储空间,所述第四存储空间为所述第三存储空间开始的第M+1个存储空间,且所述第四存储空间存放已分配的存储块的索引。
6.一种控制部件,其特征在于,包括:命令管理器、第一直接内存存取DMA单元、第二DMA单元、缓存和如权利要求1-5中任一项所述的缓存管理器,其中,
所述命令管理器向所述第一DMA单元发送第一数据搬移请求,所述第一数据搬移请求包括源地址和工作模式;
在所述工作模式为第一模式时,响应于所述第一数据搬移请求,所述第一DMA单元访问所述源地址,获取所述源地址中的第一数据,以及向所述缓存管理器发送缓存分配请求;
响应于所述缓存分配请求,所述缓存管理器分配N个存储块,并向所述第一DMA单元返回缓存索引信息;
接收到所述缓存索引信息之后,所述第一DMA单元根据所述N个存储块的索引,将所述第一数据搬移至所述N个存储块。
7.如权利要求6所述的控制部件,其特征在于,在所述第一数据搬移请求中的工作模式为第二模式时,所述第一数据搬移请求还包括目标地址;
在向所述第一DMA单元发送第一数据搬移请求之前,所述命令管理器向所述缓存管理器发送所述缓存分配请求;
响应于所述缓存分配请求,所述缓存管理器为所述第一数据分配所述N个存储块,并向所述命令管理器返回缓存索引信息;
所述命令管理器根据所述N个存储块的索引,获取所述目标地址。
8.如权利要求7所述的控制部件,其特征在于,在工作模式为第二模式时,响应于所述第一数据搬移请求,所述第一DMA单元将所述第一数据从所述源地址对应的存储空间搬移至所述N个存储块。
9.如权利要求6-8中任一项所述的控制部件,其特征在于,
在将所述第一数据搬移至所述N个存储块之后,所述第一DMA单元向所述命令管理器返回完成信息,以表征所述第一数据已搬移到所述缓存;
接收到所述完成信息之后,所述命令管理器向所述第二DMA单元发送第二数据搬移请求,所述第二数据搬移请求包括源地址和目标地址;
响应于所述第二数据搬移请求,所述第二DMA单元访问所述源地址,获取所述源地址中的第二数据,并向所述第二数据搬移至所述目标地址对应的存储空间。
10.如权利要求9所述的控制部件,其特征在于,将所述第二数据搬移至所述目标地址对应的存储空间之后,所述第二DMA单元向所述缓存管理器发送缓存释放请求,所述缓存释放请求携带所述第二数据所在存储块的索引;
响应于所述缓存释放请求,所述缓存管理器保存所述第二数据所在存储块的索引,以完成所述第二数据所在存储块的资源释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346536.8A CN113032293A (zh) | 2019-12-24 | 2019-12-24 | 缓存管理器及控制部件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346536.8A CN113032293A (zh) | 2019-12-24 | 2019-12-24 | 缓存管理器及控制部件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113032293A true CN113032293A (zh) | 2021-06-25 |
Family
ID=76452051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911346536.8A Pending CN113032293A (zh) | 2019-12-24 | 2019-12-24 | 缓存管理器及控制部件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032293A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599705A (zh) * | 2022-12-07 | 2023-01-13 | 摩尔线程智能科技(北京)有限责任公司(Cn) | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658328A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658327A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658326A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
WO2024016617A1 (zh) * | 2022-07-21 | 2024-01-25 | 苏州元脑智能科技有限公司 | 高速缓存管理方法、装置、***、设备及介质 |
CN117472794A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
CN117472792A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
-
2019
- 2019-12-24 CN CN201911346536.8A patent/CN113032293A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472794A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
CN117472792A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
WO2024016617A1 (zh) * | 2022-07-21 | 2024-01-25 | 苏州元脑智能科技有限公司 | 高速缓存管理方法、装置、***、设备及介质 |
CN115599705A (zh) * | 2022-12-07 | 2023-01-13 | 摩尔线程智能科技(北京)有限责任公司(Cn) | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658328A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658327A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658326A (zh) * | 2022-12-07 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115599705B (zh) * | 2022-12-07 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658328B (zh) * | 2022-12-07 | 2023-10-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658327B (zh) * | 2022-12-07 | 2023-10-31 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
CN115658326B (zh) * | 2022-12-07 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备、芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467975B2 (en) | Data processing method and NVMe storage device | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
CN111427808B (zh) | 用于管理存储设备和主机单元之间的通信的***和方法 | |
US9395921B2 (en) | Writing data using DMA by specifying a buffer address and a flash memory address | |
US9734085B2 (en) | DMA transmission method and system thereof | |
CN109983449B (zh) | 数据处理的方法和存储*** | |
US9329783B2 (en) | Data processing system and data processing method | |
US9467512B2 (en) | Techniques for remote client access to a storage medium coupled with a server | |
CN114443529B (zh) | 内存直接访问架构、***、方法、电子设备和介质 | |
JP2021515318A (ja) | NVMeベースのデータ読み取り方法、装置及びシステム | |
JP2021501941A (ja) | メモリブロックリクレーム方法およびメモリブロックリクレーム装置 | |
CN113485643B (zh) | 用于数据存取的方法及数据写入的控制器 | |
CN115048034A (zh) | 用于sgl的存储空间映射方法及其装置 | |
CN113031849A (zh) | 直接内存存取单元及控制部件 | |
US11650736B2 (en) | SGL processing acceleration method and storage device | |
US20210149588A1 (en) | Information processing method, apparatus, device, and system | |
CN114840447B (zh) | 一种加速器 | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
CN113515234B (zh) | 一种用于控制数据读出到主机的方法及控制器 | |
CN116955228A (zh) | 一种处理写命令的加速器 | |
CN110865952B (zh) | 利用缓存优化dma传输 | |
CN117009259A (zh) | 一种l2p加速器 | |
TW202349214A (zh) | 輸入/輸出裝置的位址變換預取出 | |
CN116860664A (zh) | 一种处理读命令的加速器 |
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 |