CN115220641A - 存储装置及其数据处理方法 - Google Patents
存储装置及其数据处理方法 Download PDFInfo
- Publication number
- CN115220641A CN115220641A CN202110412151.8A CN202110412151A CN115220641A CN 115220641 A CN115220641 A CN 115220641A CN 202110412151 A CN202110412151 A CN 202110412151A CN 115220641 A CN115220641 A CN 115220641A
- Authority
- CN
- China
- Prior art keywords
- sub
- command
- subcommands
- data
- commands
- 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
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000013507 mapping Methods 0.000 claims description 9
- 239000007787 solid Substances 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000036316 preload Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0656—Data buffering 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/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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及数据处理技术领域,公开了存储装置及其数据处理方法。该方法包括:接收数据处理命令;将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;将每组子命令缓存于对应的存储单元;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。通过上述方式,能够提升存储装置的数据处理效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及存储装置及其数据处理方法。
背景技术
存储装置是计算机系统的重要部分,这些年来发展很快。如,磁盘和磁带一直是计算机的主要存储装置。磁盘分硬盘和软盘两种,硬盘的存取速度比软盘大得多。微机用的硬盘容量已达数十个GB容量,工作站的硬盘已超过上百GB的容量。光盘的存储技术近年来已商品化,其存储容量一般为650MB,另一种很有应用前景的可擦写光盘也已投放市场,它能以更高的数据密度存取数据。
相关的存储装置在处理命令时,均是按照先后顺序处理完一个命令后再继续处理下一个命令,造成处理数据的效率低下。
发明内容
本申请主要解决的技术问题是提供存储装置及其数据处理方法,能够提升存储装置的数据处理效率。
为了解决上述问题,本申请采用的一种技术方案是提供一种存储装置的数据处理方法,该方法包括:接收数据处理命令;将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;将每组子命令缓存于对应的存储单元;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
其中,将数据处理命令转换为多组子命令,包括:将数据处理命令进行拆解,以得到多个子命令;基于预设映射表将多个子命令进行转换,并按照转换后的每一子命令对应的存储单元进行分组。
其中,将每组子命令缓存于对应的存储单元,包括:将每组子命令缓存于对应的存储单元的缓存队列中;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令,包括:将每一缓存队列中的子命令按照顺序提交给存储介质控制器,以执行子命令。
其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址,包括:当缓存队列中有至少两个子命令时,获取后一子命令的命令类型;当后一子命令的命令类型为读取命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
其中,将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令,包括:
在提交前一子命令时,同时提交后一子命令的数据地址给存储介质控制器,以使存储介质控制器在执行前一子命令时,基于后一子命令的数据地址进行数据读取;
将存储介质控制器读取的数据存储于缓冲区。
其中,基于后一子命令的数据地址进行数据读取,包括:判断存储装置的缓存区中是否存在与数据地址对应的目标数据;若是,则对目标数据进行读取;若否,则从存储装置的存储区读取与数据地址对应的目标数据。
其中,基于预设映射表将多个子命令进行转换,并按照转换后的每一子命令对应的存储单元进行分组,包括:基于预设映射表将多个子命令的逻辑地址分别转换为物理地址;按照每一物理地址对应的存储单元进行分组。
其中,该方法还包括:当缓存队列中的至少两个子命令的命令类型均为读取命令时,至少两个子命令的数据地址不连续。
为了解决上述问题,本申请采用的另一种技术方案是提供一种存储装置,该存储装置包括主控制器以及与主控制器连接的存储器和存储介质控制器;存储器用于存储程序数据;主控制器用于执行程序数据,以实现上述技术方案提供的方法。
其中,存储装置为固态硬盘、U盘、TF卡或eMMC(Embedded Multi Media Card,嵌入式多媒体卡)存储装置。
本申请的有益效果是:区别于现有技术的情况,本申请的一种存储装置的数据处理方法,该方法包括:接收数据处理命令;将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;将每组子命令缓存于对应的存储单元;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。通过上述方式,在提交前一子命令时,同时提交后一子命令的数据地址,使存储装置能够在执行前一子命令的同时预加载后面的数据,使两个子命令的处理时间产生叠加,减少处理时间,能够提升存储装置的数据处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的存储装置的数据处理方法一实施例流程示意图;
图2是本申请提供的存储装置的数据处理方法另一实施例流程示意图;
图3是本申请提供的步骤23一实施例的流程示意图;
图4是本申请提供的步骤25一实施例的流程示意图;
图5是本申请提供的步骤41一实施例的流程示意图;
图6是本申请提供的步骤25另一实施例的流程示意图;
图7是本申请提供的存储装置一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的存储装置的数据处理方法一实施例流程示意图。该方法包括:
步骤11:接收数据处理命令。
在本实施例中,存储装置设置于外部设备中。如外部设备可以是主机,存储装置可用于与主机交互,实现数据的读取、写入和删除等操作。存储装置可以为固态硬盘、U盘、TF卡或eMMC存储装置中任一种。
数据处理命令可以是一系列的读取、写入和删除等命令的集合。如,数据处理命令中包括三个读取命令、两个写入命令和一个删除命令。
步骤12:将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令。
存储装置包括多个存储单元,每一存储单元用于存放数据,因此,每一存储单元对应有数据地址。将属于同一存储单元的子命令划分为一组。
如,存储装置包括A、B、C和D四个存储单元,数据处理命令中包括四个读取命令(R1、R2、R3和R4)、两个写入命令(W1和W2)和一个删除命令(S1)。其中,上述的命令的排序为R1-W1-R2-R3-W2-R4-S1。将该数据处理命令转换后,得到读取命令R1、R2、R3和R4、写入命令W1和W2以及删除命令S1。以及每个命令对应的存储单元。
其中,R1对应存储单元A,W1、R2和R3对应存储单元B,R4对应存储单元C,W2和S1对应存储单元D。则R1为一组,W1、R2和R3为一组,R4为一组,W2和S1为一组。
步骤13:将每组子命令缓存于对应的存储单元。
在本实施例中,可按照每组子命令中的每个子命令在数据处理命令中的先后顺序缓存于对应的存储单元。
如,数据处理命令的排序为R1-W1-R2-R3-W2-R4-S1,则在缓存W1、R2和R3时,按照W1、R2和R3的顺序进行存储。
如,数据处理命令的排序为R1-W1-R2-R3-W2-R4-S1,则在缓存W1、R2和R3时,按照R3、R2和W1的顺序进行存储。
步骤14:将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
在一些实施例中,每一存储单元对应一存储介质控制器,该存储介质控制器对应处理该存储单元中缓存的子命令。
如,以上述W1、R2和R3对应的存储单元B为例进行说明:
若存储单元B中是按照W1、R2和R3的顺序进行存储,则按照W1、R2和R3的顺序提交给存储介质控制器,以使存储介质控制器执行相应的子命令。如在提交W1时,同时提交R2中的数据地址。可以理解,存储介质控制器在执行W1时,在执行W1完成后,会向存储装置的主控制器反馈信息,在反馈信息时,可开始执行R2。执行R2完成后,因R2为读取命令,会向存储装置的主控制器发送读取的数据,此时则同步执行R3中的数据地址,以获取R3对应的数据。
若存储单元B中是按照R3、R2和W1的顺序进行存储,则按照W1、R2和R3的顺序提交给存储介质控制器。
在本实施例中,通过接收数据处理命令;将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;将每组子命令缓存于对应的存储单元;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。通过上述方式,在提交前一子命令时,同时提交后一子命令的数据地址,使存储装置能够在执行前一子命令的同时预加载后面的数据,使两个子命令的处理时间产生叠加,减少处理时间,能够提升存储装置的数据处理效率。
参阅图2,图2是本申请提供的存储装置的数据处理方法另一实施例流程示意图。该方法包括:
步骤21:接收数据处理命令。
步骤22:将数据处理命令进行拆解,以得到多个子命令。
步骤21-22与上述实施例具有相同或相似的技术方案,这里不做赘述。
步骤23:基于预设映射表将多个子命令进行转换,并按照转换后的每一子命令对应的存储单元进行分组。
预设映射表中记录了逻辑地址与物理地址之间的对应关系。逻辑地址是指在计算机体系结构中从应用程序角度看到的内存单元(memory cell)、存储单元(storageelement)、网络主机(network host)的地址。物理地址是指在存储装置里以字节或比特为单位存储信息,为正确地存放或取得信息,每一个字节或比特单元给以一个唯一的存储地址,称为物理地址,又叫实际地址或绝对地址。
在一些实施例中,参阅图3,步骤23可以是如下流程:
步骤231:基于预设映射表将多个子命令的逻辑地址分别转换为物理地址。
在一些实施例中,若数据处理命令一系列的读取命令,可以理解,在多个读取命令为随机读取的情况下,多个读取命令对应的物理地址不连续。
如,以存储装置为Flash存储装置为例,Flash存储装置以页为单位存储数据,多个页形成一存储单元。如存储单元中包括页1-页10。相邻两个读取命令对应的逻辑地址为页1和页9。
步骤232:按照每一物理地址对应的存储单元进行分组。
将属于同一存储单元的物理地址对应的子命令分为一组。
步骤24:将每组子命令缓存于对应的存储单元的缓存队列中。
在一些实施例中,初始化存储装置时,为每一存储单元建立一缓存队列,将划分为一组的子命令缓存于其中。
可选的,缓存队列可以是FIFO(First Input First Output,先进先出)队列。存储于FIFO队列中的子命令,在执行时按照存储的先后顺序执行,先存储的先执行。
步骤25:将每一缓存队列中的子命令按照顺序提交给存储介质控制器,以执行子命令。
当缓存队列中的子命令为写入命令时,存储介质控制器则将写入命令中的数据写入至存储单元中对应的数据地址中。
当缓存队列中的子命令为擦除命令时,存储介质控制器则按照擦除命令中的数据地址将存储单元中该数据地址对应的数据进行擦除。
在一些实施例中,参阅图4,步骤25可以是如下流程:
步骤41:当缓存队列中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址给存储介质控制器,以使存储介质控制器在执行前一子命令时,基于后一子命令的数据地址进行数据读取。
可以理解,后一子命令为读取命令。通过这种方式,可以在执行前一子命令的同时能准确无误的预加载后一子命令,能够提高数据读取的命中率和读取效率。
在一些实施例中,参阅图5,数据读取的方式可以为如下流程:
步骤411:判断存储装置的缓存区中是否存在与数据地址对应的目标数据。
在一些实施例中,在存储装置的缓存区存储有预设时间内处理过的数据,通过这种方式,可以在下次读取时,若缓存区中存在该数据,则无需去存储区再次进行读取,直接读取缓存区中的数据,可提升读取效率。
在步骤411中,若判断存储装置的缓存区中存在与数据地址对应的目标数据,则执行步骤412;若判断存储装置的缓存区中不存在与数据地址对应的目标数据,则执行步骤413。
步骤412:对目标数据进行读取。
若缓存区中存在与数据地址对应的目标数据,则直接在缓存区读取该目标数据。
步骤413:从存储装置的存储区读取与数据地址对应的目标数据。
在步骤413中,此次读取的目标数据会存储于缓存区中。
步骤42:将存储介质控制器读取的数据存储于缓冲区。
缓冲区在上述进行逻辑地址转换时即可进行设置,在确定数据处理命令中存在读取命令时,则在为这些读取命令分配对应的缓冲区,以进行后续的存储。
在一些实施例中,参阅图6,步骤25可以是如下流程:
步骤61:当缓存队列中有至少两个子命令时,获取后一子命令的命令类型。
可以理解,每一子命令有对应的命令标识,在执行该命令时,根据该命令标识确定该子命令的命令类型。
步骤62:当后一子命令的命令类型为读取命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
在一些实施例中,存储装置中设置有Cache读功能。Cache读功能的作用就是在主控制器启动数据传输的同时让存储介质控制器启动加载下一个主控需要的数据。
存储介质控制器在完成前一子命令的同时,按照提交的后一子命令的数据地址进行数据读取。
在一些实施例中,提交前一子命令时可以是指主控制器向主机端提交命令处理结果,如前一命令为读取命令,则主控制器向主机端发送读取的数据;或提交前一子命令时可以是指存储介质控制器向主控制器提交命令处理结果,如前一命令为读取命令,则存储介质控制器向主控制器发送读取的数据。提交后一子命令的数据地址。
在一些实施例中,当后一子命令的命令类型不是读取命令时,在提交前一子命令时,同时提交后一子命令的数据地址,因该子命令不是读取命令,存储介质控制器不会执行Cache读功能。
上述方法可应用于随机读取的场景,当缓存队列中的至少两个子命令的命令类型均为读取命令时,至少两个子命令的数据地址不连续。通过上述方式,能够解决在随机读取过程中,必须在每一读取子命令执行完成后再执行下一读取子命令,造成的无法加速的问题,能够让存储装置每次都能准确无误的Cache读取需要的下一个子命令的数据。
在一应用场景中,以存储装置为固态硬盘为例,可以理解,固态硬盘是以Flash晶粒(Die)作为存储介质。在存储装置上电后进行初始化,在初始化过程给Flash的每个Die创建一个FIFO结构。再将主机端下发的一序列命令拆解转换成对应Flash各物理通道上对应Die的子命令,把这些子命令按所在通道、片选缓存到对应FIFO中。然后按照上述实施例的方式对子命令进行执行。当FIFO中的子命令大于或等于2时,开始提交给Flash控制器执行,在提交当前子命令的同时获取后一条子命令的数据地址一并提交给Flash控制器,在后一条子命令为读取命令时,执行Cache读功能,假如后一条子命令不是读取命令,则不发起Cache读功能。
可以理解,当FIFO中的子命令小于2时,可直接有主控制器执行该子命令。
通过上述方式,在提交前一子命令时,同时提交后一子命令的数据地址,使存储装置能够在执行前一子命令的同时预加载后面的数据,使两个子命令的处理时间产生叠加,减少处理时间,能够提升存储装置的数据处理效率,能够解决在随机读取过程中,必须在每一读取子命令执行完成后再执行下一读取子命令,造成的无法加速的问题,能够让存储装置每次都能准确无误的Cache读取需要的下一个子命令的数据。
参阅图7,图7是本申请提供的存储装置一实施例的结构示意图,该存储装置70包括主控制器71以及与主控制器71连接的存储器72和存储介质控制器73;存储器72用于存储程序数据;主控制器71用于执行程序数据,以实现以下方法:
接收数据处理命令;将数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;将每组子命令缓存于对应的存储单元;将每一存储单元中的子命令按照顺序提交给存储介质控制器,以执行子命令;其中,当存储单元中有至少两个子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
可以理解的,本实施例中的主控制器71还用于执行程序数据,以实现上述任一实施例的方法,其具体的实施步骤可以参考上述实施例,这里不再赘述。
在一些实施例中,存储器72按照不同区域进行划分,可分为程序数据区和读写数据区。上述的程序数据存储于程序数据区,而上述任一实施例中的数据、写入、擦除等均在读写数据区中完成。
在其他实施例中,存储装置70为Flash存储装置。具体地,可以是NAND Flash存储装置或NOR Flash存储装置,相应的,存储介质控制器73可以是Flash控制器。
在一些实施例中,存储介质控制器73可以集成于主控制器71中。
在其他实施例中,存储装置70还可以是固态硬盘、U盘、TF卡或eMMC存储装置中任一种。
本申请的上述任一实施例通过在提交前一子命令时,同时提交后一子命令的数据地址,使存储装置能够在执行前一子命令的同时预加载后面的数据,使两个子命令的处理时间产生叠加,减少处理时间,能够提升存储装置的数据处理效率。还能够解决固态硬盘中随机读取效率低下的问题。
另外,上述任一实施例的方法可应用于存储装置的测试场景中,通常在测试存储装置时,会反复测试存储装置的读写性能,如顺序读取、随机读取。通过上述实施例提供方法,能够提升读写性能,减少测试时间,提高测试效率。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种存储装置的数据处理方法,其特征在于,所述方法包括:
接收数据处理命令;
将所述数据处理命令转换为多组子命令;其中,每一组子命令包括至少一个子命令;
将每组子命令缓存于对应的存储单元;
将每一所述存储单元中的子命令按照顺序提交给存储介质控制器,以执行所述子命令;其中,当所述存储单元中有至少两个所述子命令时,在提交前一子命令时,同时提交后一子命令的数据地址。
2.根据权利要求1所述的方法,其特征在于,
所述将所述数据处理命令转换为多组子命令,包括:
将所述数据处理命令进行拆解,以得到多个子命令;
基于预设映射表将多个所述子命令进行转换,并按照转换后的每一所述子命令对应的所述存储单元进行分组。
3.根据权利要求2所述的方法,其特征在于,
所述将每组子命令缓存于对应的存储单元,包括:
将每组所述子命令缓存于对应的所述存储单元的缓存队列中;
所述将每一所述存储单元中的子命令按照顺序提交给存储介质控制器,以执行所述子命令,包括:
将每一所述缓存队列中的子命令按照顺序提交给存储介质控制器,以执行所述子命令。
4.根据权利要求3所述的方法,其特征在于,
所述当所述存储单元中有至少两个所述子命令时,在提交前一子命令时,同时提交后一子命令的数据地址,包括:
当所述缓存队列中有至少两个所述子命令时,获取后一所述子命令的命令类型;
当后一所述子命令的命令类型为读取命令时,在提交前一所述子命令时,同时提交后一所述子命令的数据地址。
5.根据权利要求4所述的方法,其特征在于,
所述将每一所述存储单元中的子命令按照顺序提交给存储介质控制器,以执行所述子命令,包括:
在提交前一所述子命令时,同时提交后一所述子命令的数据地址给所述存储介质控制器,以使所述存储介质控制器在执行前一所述子命令时,基于后一所述子命令的数据地址进行数据读取;
将所述存储介质控制器读取的数据存储于缓冲区。
6.根据权利要求5所述的方法,其特征在于,
所述基于后一所述子命令的数据地址进行数据读取,包括:
判断所述存储装置的缓存区中是否存在与所述数据地址对应的目标数据;
若是,则对所述目标数据进行读取;
若否,则从所述存储装置的存储区读取与所述数据地址对应的所述目标数据。
7.根据权利要求2所述的方法,其特征在于,
所述基于预设映射表将多个所述子命令进行转换,并按照转换后的每一所述子命令对应的所述存储单元进行分组,包括:
基于所述预设映射表将多个所述子命令的逻辑地址分别转换为物理地址;
按照每一所述物理地址对应的所述存储单元进行分组。
8.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
当所述缓存队列中的至少两个所述子命令的命令类型均为读取命令时,至少两个所述子命令的数据地址不连续。
9.一种存储装置,其特征在于,所述存储装置包括主控制器以及与所述主控制器连接的存储器和存储介质控制器;所述存储器用于存储程序数据;所述主控制器用于执行所述程序数据,以实现如权利要求1-8任一项所述的方法。
10.根据权利要求9所述的存储装置,其特征在于,
所述存储装置为固态硬盘、U盘、TF卡或eMMC存储装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110412151.8A CN115220641A (zh) | 2021-04-16 | 2021-04-16 | 存储装置及其数据处理方法 |
PCT/CN2021/089259 WO2022217637A1 (zh) | 2021-04-16 | 2021-04-23 | 存储装置及其数据处理方法 |
US18/242,525 US20230418522A1 (en) | 2021-04-16 | 2023-09-06 | Storage device and data processing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110412151.8A CN115220641A (zh) | 2021-04-16 | 2021-04-16 | 存储装置及其数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220641A true CN115220641A (zh) | 2022-10-21 |
Family
ID=83604494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110412151.8A Pending CN115220641A (zh) | 2021-04-16 | 2021-04-16 | 存储装置及其数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230418522A1 (zh) |
CN (1) | CN115220641A (zh) |
WO (1) | WO2022217637A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606596B2 (en) * | 2013-07-15 | 2020-03-31 | Texas Instruments Incorporated | Cache preload operations using streaming engine |
CN109101444A (zh) * | 2018-08-22 | 2018-12-28 | 深圳忆联信息系统有限公司 | 一种降低固态硬盘随机读延迟的方法及装置 |
US10732978B2 (en) * | 2018-08-24 | 2020-08-04 | Arm Limited | Data processing systems |
CN111124314A (zh) * | 2019-12-25 | 2020-05-08 | 深圳忆联信息系统有限公司 | 映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质 |
-
2021
- 2021-04-16 CN CN202110412151.8A patent/CN115220641A/zh active Pending
- 2021-04-23 WO PCT/CN2021/089259 patent/WO2022217637A1/zh active Application Filing
-
2023
- 2023-09-06 US US18/242,525 patent/US20230418522A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022217637A1 (zh) | 2022-10-20 |
US20230418522A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061842B2 (en) | Context-aware dynamic command scheduling for a data storage system | |
US8583854B2 (en) | Nonvolatile storage device with NCQ supported and writing method for a nonvolatile storage device | |
US11630766B2 (en) | Memory system and operating method thereof | |
US10628081B2 (en) | Managing internal command queues in solid state storage drives | |
US20090172264A1 (en) | System and method of integrating data accessing commands | |
US11086568B2 (en) | Memory system for writing fractional data into nonvolatile memory | |
US20140019670A1 (en) | Data writing method, memory controller, and memory storage device | |
US20150149741A1 (en) | Storage System and Control Method Thereof | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
CN107797755B (zh) | 固态硬盘系统的原子写入方法以及使用该方法的装置 | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
KR102366512B1 (ko) | 논리 블록 어드레싱 범위 충돌 크롤러 | |
CN111966281A (zh) | 数据储存装置与数据处理方法 | |
US11106390B1 (en) | Combining in-process reads to reduce die collisions | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
US10007601B2 (en) | Data storage device and operating method for flash memory | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN107797756A (zh) | 固态硬盘系统的优先写入方法以及使用该方法的装置 | |
CN115220641A (zh) | 存储装置及其数据处理方法 | |
WO2015118623A1 (ja) | 情報処理装置 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 | |
US20240201902A1 (en) | Method and non-transitory computer-readable storage medium and apparatus for executing host write commands | |
US20240004811A1 (en) | Memory controller, storage device, and method of operating the same |
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 |