CN116368472A - 数据处理方法及相关设备 - Google Patents
数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN116368472A CN116368472A CN202080106444.7A CN202080106444A CN116368472A CN 116368472 A CN116368472 A CN 116368472A CN 202080106444 A CN202080106444 A CN 202080106444A CN 116368472 A CN116368472 A CN 116368472A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- read
- command
- storage controller
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法及相关设备,该方法应用于计算机系统,当主设备要对第一数据进行更新或舍弃的时候,可以向存储控制器发送包括读指令和删除指令的指示命令,以使得存储控制器从所管理的存储阵列读取并返回第一数据,并删除该第一数据,该指示命令只进行一次交互,即可同时实现读指令和删除指令,减少了交互次数,并且存储控制器删除第一数据不需要等待主设备再次下发删除命令,可以减少写放大。
Description
本申请涉及存储技术领域,尤其涉及一种数据处理方法及相关设备。
基于闪存的固态硬盘(solid state disk,SSD)是一种主要以闪存(nand flash)作为永久性存储器的计算机存储设备。SSD的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡或U盘等样式。这种SSD最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,适合于个人用户使用,一般它擦写次数普遍为3000次左右。由于与非门(nand)介质的特性该SSD需要顺序写入数据,当处理器在SSD随机写入数据时,已写入的数据中有些数据可能不会再被使用,这些数据就成了无效数据,后期在出现无效数据时就需要有多余的冗余空间(over provision,OP)和垃圾回收(garbage collection,GC)的方式来整理空间。
现有技术中处理器需要及时对SSD的无效数据下发删除命令,以保证足够的OP和减少GC的搬移量。
但是现有技术中删除命令的下发需要再次下发命令,并且如果删除命令下发不及时,会导致GC搬移量增大,使SSD的写放大增大,即占用更多的写入次数,从而减少了SSD的使用寿命。
发明内容
本申请提供一种数据处理方法及相关设备,通过减少命令交互和及时下发删除命令,节省了命令开销和减少写放大。
本申请第一方面提供一种数据处理方法,该方法包括:主设备根据第一数据确定指示命令,第一数据为待从存储控制器所管理的存储阵列读取的数据,且第一数据为需要在主设备进行更新或舍弃的数据,指示命令包括第一数据的逻辑地址、读指令和删除指令;主设备向存储控制器发送指示命令,以指示存储控制器根据物理地址从存储阵列中确定第一数据,根据读指令读取并返回第一数据,并根据删除指令从存储阵列中删除第一数据,物理地址为存储控制器根据逻辑地址查表获得的。
上述第一方面中,主设备在需要从存储阵列中读取第一数据时,由于该第一数据为主设备需要对其进行更新或者舍弃的数据,存储阵列中的旧的第一数据就没有用处了,主设备可以直接向存储控制器发送包括第一数据的逻辑地址、读指令和删除指令的指示命令,该指示命令只占用一次命令交互,减少了命令开销,并且及时删除数据,可以减少写放大。
在第一方面的一种可能的实现方式中,第一数据可以为即时性数据,该即时性数据为不会被再次使用的数据,可以提高方案的可行性。
本申请第二方面提供一种数据处理方法,该方法包括:存储控制器接收来自主设备的对第一数据的指示命令,第一数据为主设备待从存储控制器所管理的存储阵列读取的数据, 指示命令包括第一数据的逻辑地址、读指令和删除指令;存储控制器根据逻辑地址查表获得第一数据的物理地址;存储控制器根据物理地址从存储阵列中确定第一数据,根据读指令读取并向主设备返回第一数据,并根据删除指令从存储阵列中删除第一数据。
上述第二方面中,指示命令包括第一数据的逻辑地址、读指令和删除指令,存储控制器可以直接根据该指示命令,读取根据逻辑地址查表获得的物理地址上的数据并返回给主设备,并对该物理地址上的第一数据进行删除,只需进行一次命令交互,减少了命令开销,并且及时删除数据,可以减少写放大。
在第二方面的一种可能的实施方式中,上述步骤并根据所述删除指令从所述存储阵列中删除所述第一数据之前,该方法包括:存储控制器确定在执行对第二数据的读操作或写操作,则在日志中记录对第一数据的删除操作;上述步骤并根据删除指令从存储阵列中删除第一数据,包括:存储控制器在执行完对第二数据的读操作或写操作后,根据日志中的记录,执行对第一数据的删除操作。
该种可能的实现方式中,在根据删除指令执行对第一数据的删除操作之前,还需要确认是否有除第一数据之外的其他数据(第二数据)在执行读操作或写操作,如果存在第二数据在执行读操作,可以将第一数据的删除操作记录在日志中,当第二数据的读操作或写操作执行完毕后,即可按照日志中记录的删除操作的记录顺序依次执行删除操作,可以避免增加数据的读写时延。
本申请第三方面提供一种数据处理方法,该方法包括:主设备向存储控制器发送第一数据的写入命令,写入命令包括第一数据、写指令和第一逻辑地址,第一数据为需要在主设备进行更新或舍弃的数据,第一逻辑地址所指示的第一物理地址处于存储控制器所管理的存储阵列中的预设存储区域,预设存储区域为预配置的数据读取后再执行删除的区域。
上述第三方面中,主设备基于需要对第一数据进行更新或舍弃的应用场景,将该第一数据存储到存储控制器所管理的存储阵列中的预设存储区域中,该预设存储区域为主设备预先配置的,该预设存储区域中的数据在进行读取后都需要执行删除操作,主设备可以不用向存储控制器发送删除命令,减少命令交互。
在第三方面的一种可能的实施方式中,该方法还包括:主设备向存储控制器发送对第二数据的指示命令,第二数据为处理装置待从存储管理装置所管理的存储阵列读取的数据,指示命令包括第一数据的第二逻辑地址和读指令,以指示存储控制器根据第二物理地址从存储阵列中确定第二数据,根据读指令读取并返回第二数据,并删除第一数据,第二物理地址为存储控制器根据第二逻辑地址查表获得的。
该种可能的实施方式中,主设备只需要向存储控制器发送正常的读取命令(指示命令),当该读取命令中的第二逻辑地址指示的存储阵列中的第二物理地址处于预设存储区域时,主设备无需再次发送删除命令,减少了命令交互,减少命令开销。
本申请第四方面提供一种数据处理方法,该方法包括:存储控制器接收来自主设备的写入命令,写入命令包括第一数据、写指令和第一逻辑地址,第一数据为需要在主设备进行更新或舍弃的数据;存储控制器根据第一逻辑地址查表获得第一物理地址,第一物理地址位于存储控制器所管理的存储阵列中预设存储区域内,预设存储区域为预配置的数据读 取后再执行删除的区域;存储控制器根据写指令将第一数据存储到第一物理地址所指示的存储位置。
上述第四方面中,存储控制器所管理的存储阵列中预配置有一个预设存储区域,该预设存储区域中的数据需要在读取后则执行删除操作。主设备基于需要对第一数据进行更新或舍弃的应用场景,将写入命令中的第一逻辑地址指示的第一物理地址设置在预设存储区域内,存储控制器可以将该第一数据直接存储到该第一物理地址指示的存储位置上。
在第四方面的一种可能的实施方式中,该方法还包括:存储控制器接收来自主设备的对第二数据的指示命令,指示命令包括第一数据的第二逻辑地址和读指令;存储控制器根据第二逻辑地址查表获得第一数据的第二物理地址;如果第二物理地址处于预设存储区域,则存储控制器确定删除操作和读指令对应的读操作;存储控制器根据第二物理地址从存储阵列中确定第二数据,根据读操作读取并向主设备返回第二数据,并根据删除操作删除第二数据。
该种可能的实施方式中,主设备发送的指示命令只需要指示第二数据的第二逻辑地址和读指令,当存储控制器根据第二逻辑地址查表获得的第二物理地址位于上述预设存储区域时,则表示该第二数据需要在主设备进行更新或舍弃的数据,即闪存阵列中存储的第二数据没有用处了,则闪存设备控制器确定需要对该第二数据执行读操作并执行删除操作,无需等待主设备下发的删除命令,可以减少写放大。
在第四方面的一种可能的实施方式中,上述步骤并根据删除操作删除第一数据之前,该方法还包括:存储控制器确定在执行对第三数据的读操作或写操作,则在日志中记录对第二数据的删除操作;上述步骤并根据删除操作删除第二数据,包括:存储控制器在执行完对第三数据的读操作或写操作后,根据日志中的记录,执行对第二数据的删除操作。
该种可能的实施方式中,在读取并向主设备返回该第二数据后,删除存储阵列中的第二数据之前,还需要确认是否有除第二数据之外的其他数据(第三数据)在执行读操作或写操作,如果存在第三数据在执行读操作,可以将第二数据的删除操作记录在日志中,当第三数据的读操作或写操作执行完毕后,即可按照日志中记录的删除操作的记录顺序依次执行删除操作,可以避免增加其他数据的读写时延。
本申请第五方面提供一种主设备,该存储管理装置具有实现上述第一方面、第一方面任意一种可能实现方式、第三方面或第三方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:接收单元和处理单元。
本申请第六方面提供一种存储控制器,该处理装置具有实现上述第二方面、第二方面任意一种可能实现方式、第四方面或第四方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:发送单元和处理单元。
本申请第七方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储系统、输入/输出(input/output,I/O)接口以及存储在存储系统中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面、第一方面 任意一种可能实现方式、第三方面或第三方面任意一种可能实现方式的方法。
本申请第八方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面、第二方面任意一种可能实现方式、第四方面或第四方面任意一种可能实现方式的方法。
本申请第九方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面至第四方面或第一方面至第四方面任意一种可能的实现方式的方法。
本申请第十方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面至第四方面或第一方面至第四方面任意一种可能的实现方式的方法。
图1为本申请实施例提供的数据读写的系统框架示意图;
图2为本申请实施例提供的命令交互方式示意图;
图3为本申请实施例提供的数据处理方法一实施例流程图;
图4为本申请实施例提供的数据处理方法另一实施例流程图;
图5为本申请实施例提供的主设备的一实施例示意图;
图6为本申请实施例提供的存储控制器的一实施例示意图;
图7为本申请实施例提供的主设备的另一实施例示意图;
图8为本申请实施例提供的存储控制器的另一实施例示意图;
图9为本申请实施例提供的计算机设备的一实施例示意图;
图10为本申请实施例提供的计算机设备的另一实施例示意图。
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种数据处理方法及相关设备,用于节省了命令开销和减少写放大。
本申请实施例可应用于如图1所示的数据读写的系统框架,该系统框架包括主设备11和存储控制器12,主设备11可以为处理器,本实施例以主机(host)为例。存储控制器12可以为以nand介质的固态存储设备中的控制装置,示例性的本申请实施例以固态硬盘(solid state disk,SSD)的闪存设备控制器(storage device controller)为例。主设备11在确定所要读取的内容后,可以将读命令发送给存储控制器12,存储控制器12在接收到该读命令后可以根据该读命令携带的逻辑地址查表获取物理地址以读取主设备11所需的内容。主设备11也可以将要添加的新文件和写命令发送给存储控制器12,存储控制器12可以根据写命令执行新文件的写入操作。主设备11包括实时操作系统(kernel)111、驱动程序(driver)112和第一接口(interface)113。存储控制器12包括第二接口121、处理器(central processing unit,CPU)122、静态随机存取存储器(static random access memory,SRAM)123和nand控制器(controller)124,本系统框架还包括闪存阵列(nand flash array)13,以及包括存储控制器12和闪存阵列13的存储设备14。
实时操作系统111用于对存储控制器12下发的读命令的地址映射或写命令的地址分配。
驱动程序112是一个和存储控制器12进行数据交互的程序。这个程序包括一些如何与存储控制器12传输信息,如何设置数据格式,如何进行初始化,如何中止等配置数据。
第一接口113用于传输主设备11和存储控制器12之间的信息交互。
第二接口121用以连接第一接口113,承担数据传输的功能。通过例如通用闪存存储(universal flash storage,UFS)、嵌入式多媒体卡(embedded mutlti-media card,EMMC)、总线和接口标准(peripheral component interconnect express,PCIE)等方式与主机传输数据。
处理器122用于处理来自第二接口121的数据。
静态随机存取存储器123用于加速处理器122内部数据的传输。
nand控制器124用于控制和管理nand。
闪存阵列13是数据最终存储的物理载体,通常包含有多个闪存裸片(nand flash die)131。
存储设备14用于承载存储控制器12和闪存阵列13。
当前,通过大数据和用户应用软件(application,APP)使用场景的统计中,手机用户每天新增几十个G的数据写入量,但产生的容量增长一般仅为数据写入量的5%以下,而且手机每天读取的数据量要多于写入的数据量,并且这些读取写入操作的地址重叠概率很高。因此实际上在手机用户使用过程中存在很多热数据或临时缓冲在数据读完之后处于无效状态,这些热数据或临时缓冲的物理地址已经可以被覆盖重新写入其他数据。主设备需要发布删除命令来告知存储控制器这些热数据或者临时缓冲为无效数据,若直接覆盖重新写入其他数据则可能会造成闪存阵列空间虚占,导致器件写放大增大。请参阅图2所示的现有技术的命令交互方式示意图,主设备向存储控制器发送读命令(read command)后,存储控制器向主设备发送反馈信息(response),主设备再向存储控制器发送删除命令(erase command),并接受存储控制器发送的反馈信息(response)。主设备需要通过2步 完成读完之后做删除操作。第一步发送读命令,逻辑区块地址(logical block address,LBA)为0,长度为0x100,第二步告知器件LBA为0,长度0x100的地址需要删除,即占用了额外的命令通道,为减少命令通道的使用,本申请实施例提供了相应的数据处理方法,该方法包括存储控制器接收来自主设备的对第一数据的操作命令,第一数据为主设备待从存储控制器所管理的存储阵列读取的数据;存储控制器根据操作命令确定对第一数据执行读操作和删除操作;存储控制器根据读操作将第一数据从存储阵列中读出并发送给主设备,再对存储阵列中存储的第一数据执行删除操作。
可选的,上述数据处理方法也可以应用在一次性读完并清除缓存和安全交互数据的应用场景中。
下面,基于上述的系统框架,下面对本申请实施例中的数据处理方法进行描述。
本实施例的存储控制器可以为所有基于与非门颗粒(nand flash)的非易失性存储器(nonvolatile memory,NVM),它不用定期地刷新存储器内容,这包括所有形式的只读存储器(read only memory image,ROM),像是可编程只读存储器(programmable read only memory image,PROM)、可擦可编程只读存储器(erasable programmable read only memory image,EPROM)、电可擦除只读存储器(electrically erasable programmable read only memory image,EEPROM)和闪存,也包括电池供电的随机存取储存器(random access memory,RAM)。
存储控制器上通常按页来存储和读取数据。而按块(block)来擦除数据。块(也称物理块)包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在存储控制器中,可以利用闪存转换层(flash translation layer,FTL)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。FTL表的数据项记录了存储控制器中以数据单元为单位的地址映射关系。在一个例子中,FTL表中的逻辑页对应4KB存储空间,而物理页的存储空间也为4KB(还包括附加的带外存储空间)。FTL表为每个4KB的数据单元提供一条记录,以记录其逻辑地址到物理地址的映射。在另一个例子中,数据单元对应的存储空间大小和物理页的存储空间大小不同,例如物理页可容纳多个数据单元,数据单元对应4KB的存储空间,而物理页的存储空间能够容纳多个数据单元(例如4个)。
FTL表包括多个FTL表条目(或称表项)。在一种情况下,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一种情况下,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一种情况下,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一种情况下,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。
本申请实施例中,主设备可以直接指示存储控制器第一数据需要执行读完即删除操作,也可以间接指示存储控制器该数据需要执行读完即删除操作。
一、主设备直接指示存储控制器该数据需要执行读完即删除操作。
本实施例中,主设备直接发送读命令和删除命令。请参阅图3,本申请实施例中数据处理方法一实施例包括:
301、host根据第一数据确定指示命令。
本实施例中,host在确定接下来要读取的第一数据后,可以根据该第一数据的应用场景确定指示命令,例如,该应用场景可以为第一数据为需要在host进行更新或舍弃的数据,则host可以确定该第一数据在存储阵列中为读完即删除的数据,可以确定第一数据对应的同时包括逻辑地址、读指令和删除指令的指示命令,该指示命令只需要占用一次命令交互。
第一数据为待从固态硬盘中的nand阵列中读取的数据。
该第一数据可以为即时性数据或者临时缓冲数据,示例性的,对于手机交换区(SWAP)应用场景,该功能预估会带来每天一定的写入量,而这部分写入量也会有额外的写放大;由于SWAP数据换入到内存后,这部分数据即为即时性数据,需要尽快下发删除命令对该部分数据做删除,否则就会造成器件侧的无效数据搬移,导致SWAP使用场景的写放大变大。
写放大即为垃圾回收(garbage collection,GC)垃圾回收技术中将有效的数据搬到另一个块(block)中,原本就已经写入过一次的数据再加上这次搬迁就又多了一次写入,构成了写入放大。
302、host向闪存设备控制器发送指示命令。
host在确定上述第一数据的指示命令后,可以通过host与固态硬盘之间的接口传输该指示命令,该指示命令可以使得闪存设备控制器获得该指示命令中的逻辑地址、读指令和删除指令。
303、闪存设备控制器根据逻辑地址确定存储阵列中的第一数据。
本实施例中,闪存设备控制器在接收到指示命令后,可以获取该指示命令中的逻辑地址,然后根据该逻辑地址查询FTL表以获得该第一数据对应的物理地址,即可确定该第一数据在闪存阵列中的存储位置。
304、闪存设备控制器根据读指令向闪存阵列发送读取第一数据的读取命令。
本实施例中,闪存设备控制器在确定物理地址后,可以从固态硬盘中的闪存阵列对应的物理地址上读取该第一数据作为对读指令的响应。
305、闪存阵列向闪存设备控制器发送第一数据。
闪存阵列在接收到闪存设备控制器发送的关于读取第一数据的读取命令后,闪存阵列可以基于该读取命令上携带的物理地址信息读取第一数据,然后发送给闪存设备控制器。
306、闪存设备控制器向host发送的第一数据。
闪存设备控制器在基于读命令的读操作执行对闪存阵列中的第一数据的读取之后,可以通过接口向host发送该第一数据。
307、闪存设备控制器确定在执行对第二数据的读操作或写操作时,则在日志中记录对第一数据的删除操作。
闪存设备控制器在执行完上述读操作后,可以判断当前是否还接收到host发送的关于第二数据的读命令或写命令,即可以判断当前是否还需执行对闪存阵列中的第二数据的读操作。如果当前没有关于第二数据的读操作或写操作,则闪存设备控制器可以直接基于该删除操作指示的物理地址执行对上述nand阵列的第一数据的删除操作;如果当前还存在关于第二数据的读操作或写操作,为避免影响第二数据的读操作或写操作的执行,即为避免影响处理时延,闪存设备控制器可以将该删除操作记录在日志(log)中,以便延后处理。
第二数据为与第一数据不同的数据,该第二数据可以为一个或多个。
308、闪存设备控制器在执行完对第二数据的读操作或写操作后,根据日志中的记录,执行对第一数据的删除操作。
本实施例中,闪存设备控制器在执行完对第二数据的读操作或写操作后,即当前没有接收到host发送的任何数据的读写命令,则可以查询日志中的记录以对第一数据的删除操作。可选的,日志中记录基于多个数据的删除操作时,闪存设备控制器可以基于日志中记录时间按顺序对nand阵列执行删除操作。
本申请实施例的技术方案中,host发送的指示命令中同时包括读指令和删除指令,闪存设备控制器对第一数据执行读操作后执行删除操作,host不需要再次发送删除命令,解决了现有技术中EMMC的host发布命令所需开销大的问题,并且删除命令下发更及时,减少固态硬盘的写放大,提升了固态硬盘的使用寿命。
二、主设备间接指示存储控制器该数据需要执行读完即删除操作。
本实施例中,主设备在存储阵列中预配置一个预设存储区域,只需发送读指令。请参阅图4,本申请实施例中数据处理方法另一实施例包括:
401、host向存储控制器发送第一数据的写入命令。
本实施例中,基于需要对第一数据进行更新或舍弃的应用场景,host将该第一数据存储到闪存设备控制器所管理的闪存阵列中的预设存储区域中,该预设存储区域为host预先配置的,该预设存储区域中的数据在进行读取后都需要执行删除操作。host可以向闪存设备控制器发送写入命令,该写入命令包括第一数据、第一逻辑地址和写指令,该第一逻辑地址可以指示处于该预设存储区域中的第一物理地址。闪存设备控制器可以接收该写入命令并执行相应操作。
402、闪存设备控制器根据第一逻辑地址查表获得第一物理地址。
闪存设备控制器可以根据指示命令中的第一逻辑地址查询FTL表获得第一数据对应的第一物理地址。
403、闪存设备控制器根据写指令将第一数据存储到第一物理地址所指示的存储位置。
闪存设备控制器在确定第一物理地址后,可以直接将该第一数据存储到预设存储区域中。
404、host向闪存设备控制器发送对第二数据的指示命令。
当host需要读取闪存阵列中的第二数据时,可以对闪存设备控制器发送只包括逻辑地址和读指令的指示命令。
405、闪存设备控制器根据第二逻辑地址查表获得第二物理地址,并确定第二数据。
闪存设备控制器可以根据该第二逻辑地址查询FTL表获得该第二数据在闪存阵列中的物理地址,即确定第二数据的存储位置。
406、如果第二物理地址处于预设存储区域,闪存设备控制器确定删除操作和读操作。
当第二数据的第二物理地址处于上述预设存储区域时,则表示该第二数据需要在host进行更新或舍弃的数据,即闪存阵列中存储的第二数据没有用处了,则闪存设备控制器确定需要对该第二数据执行读操作并执行删除操作。
407、闪存设备控制器根据读操作向闪存阵列发送读取第二数据的读取命令。
408、闪存阵列向闪存设备控制器发送第二数据。
409、闪存设备控制器向host发送的第二数据。
410、闪存设备控制器确定在执行对第三数据的读操作或写操作,则在日志中记录对第二数据的删除操作。
411、闪存设备控制器在执行完对第三数据的读操作或写操作后,根据日志中的记录,执行对第二数据的删除操作。
本实施例步骤407-411中读取第二数据并删除闪存阵列中的第二数据可以参照图3所述的数据处理方法实施例中的步骤304-308中读取第一数据并删除闪存阵列中的第一数据的相关描述,具体此处不再赘述。
本申请实施例的技术方案中,host发送的指示命令中同时包括读指令和删除指令,闪存设备控制器对第一数据执行读操作后执行删除操作,host不需要再次发送删除命令,解决了现有技术中EMMC的host发布命令所需开销大的问题,并且删除命令下发更及时,减少固态硬盘的写放大,提升了固态硬盘的使用寿命。
以上描述了数据处理方法,下面结合附图介绍本申请实施例的存储控制器和主设备。
图5为本申请实施例中主设备50的一实施例示意图。
如图5所示,本申请实施例提供了一种主设备,该主设备包括:
确定单元501,用于根据第一数据确定指示命令,第一数据为待从存储控制器所管理的存储阵列读取的数据,且第一数据为需要在主设备进行更新或舍弃的数据,指示命令包括第一数据的逻辑地址、读指令和删除指令;
发送单元502,用于向存储控制器发送指示命令,以指示存储控制器根据物理地址从存储阵列中确定第一数据,根据读指令读取并返回第一数据,并根据删除指令从存储阵列中删除第一数据,物理地址为存储控制器根据逻辑地址查表获得的。
可选的,第一数据为即时性数据,即时性数据为不会被再次使用的数据。
以上所描述的主设备可以参阅前述方法实施例部分的相应内容进行理解,此处不做过多赘述。
图6为本申请实施例中存储控制器60的一实施例示意图。
如图6所示,本申请实施例提供了一种存储控制器,该存储控制器包括:
接收单元601,用于接收来自主设备的对第一数据的指示命令,第一数据为主设备待从存储控制器所管理的存储阵列读取的数据,指示命令包括第一数据的逻辑地址、读指令和删除指令;
查询单元602,用于根据逻辑地址查表获得第一数据的物理地址;
处理单元603,用于根据物理地址从存储阵列中确定第一数据,根据读指令读取并向主设备返回第一数据,并根据删除指令从存储阵列中删除第一数据。
可选的,存储控制器60还包括记录单元604,记录单元604用于确定在执行对第二数据的读操作或写操作,则在日志中记录对第一数据的删除操作;处理单元603具体用于:在执行完对第二数据的读操作或写操作后,根据日志中的记录,执行对第一数据的删除操作。
以上所描述的存储控制器可以参阅前述方法实施例部分的相应内容进行理解,此处不做过多赘述。
图7为本申请实施例中主设备70的一实施例示意图。
如图7所示,本申请实施例提供了一种主设备,该主设备包括:
发送单元701,用于主设备向存储控制器发送第一数据的写入命令,写入命令包括第一数据、写指令和第一逻辑地址,第一数据为需要在主设备进行更新或舍弃的数据,第一逻辑地址所指示的第一物理地址处于存储控制器所管理的存储阵列中的预设存储区域,预设存储区域为预配置的数据读取后再执行删除的区域。
可选的,发送单元701还用于向存储控制器发送对第二数据的指示命令,第二数据为处理装置待从存储管理装置所管理的存储阵列读取的数据,指示命令包括第二数据的第二逻辑地址和读指令,以指示存储控制器根据第二物理地址从存储阵列中确定第一数据,根据读指令读取并返回第一数据,并删除第一数据,第二物理地址为存储控制器根据第二逻辑地址查表获得的。
以上所描述的主设备可以参阅前述方法实施例部分的相应内容进行理解,此处不做过多赘述。
图8为本申请实施例中存储控制器80的一实施例示意图。
如图8所示,本申请实施例提供了一种存储控制器,该存储控制器包括:
接收单元801,用于接收来自主设备的写入命令,所述写入命令包括第一数据、写指令和第一逻辑地址,所述第一数据为需要在所述主设备进行更新或舍弃的数据;
查询单元802,用于根据所述第一逻辑地址查表获得第一物理地址,所述第一物理地址位于所述存储控制器所管理的存储阵列中的预设存储区域内,所述预设存储区域为预配置的数据读取后再执行删除的区域;
存储单元803,用于根据所述写指令将所述第一数据存储到所述第一物理地址所指示的存储位置。
可选的,接收单元801还用于接收来自主设备的对第二数据的指示命令,第二数据为处理装置待从存储管理装置所管理的存储阵列读取的数据,指示命令包括第二数据的第二逻辑地址和读指令;查询单元802还用于根据第二逻辑地址查表获得第二数据的第二物理地址;存储控制器80还包括处理单元804,用于当第二物理地址处于预设存储区域时,存储控制器确定删除操作和读指令对应的读操作;存储控制器根据第二物理地址从存储阵列中确定第二数据,根据读操作读取并向主设备返回第二数据,并根据删除操作删除第二数据。
图9所示,为本申请的实施例提供的计算机设备90的一种可能的逻辑结构示意图。计算 机设备90包括:处理器901、通信接口902、存储系统903以及总线904。处理器901、通信接口902以及存储系统903通过总线904相互连接。在本申请的实施例中,处理器901用于对计算机设备90的动作进行控制管理,例如,处理器901用于执行图3至图4的方法实施例中存储控制器所执行的步骤。通信接口902用于支持计算机设备90进行通信。存储系统903,用于存储计算机设备90的程序代码和数据。
其中,处理器901可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线904可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
主设备50中的发送单元502相当于计算机设备90中的通信接口902,存储控制器50中的确定单元501可以相当于处理器901。
主设备70中的发送单元701相当于计算机设备90中的通信接口902。
本实施例的计算机设备90可对应于上述各个方法实施例中的主设备,该计算机设备90中的处理器901和通信接口902可以实现上述各个方法实施例中的主设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
图10所示,为本申请的实施例提供的计算机设备100的一种可能的逻辑结构示意图。计算机设备100包括:处理器1001、通信接口1002、存储系统1003以及总线1004。处理器1001、通信接口1002以及存储系统1003通过总线1004相互连接。在本申请的实施例中,处理器1001用于对计算机设备100的动作进行控制管理,例如,处理器1001用于执行图3至图4的方法实施例中主设备所执行的步骤。通信接口1002用于支持计算机设备100进行通信。存储系统1003,用于存储计算机设备100的程序代码和数据。
其中,处理器1001可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1004可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储控制器60中的接收单元601相当于计算机设备100中的通信接口1002,存储控制器60中的查询单元602、处理单元603和记录单元604可以相当于处理器1001。
存储控制器80中的接收单元801相当于计算机设备100中的通信接口1002,存储控制器80中的查询单元802、存储单元803和处理单元804可以相当于处理器1001。
本实施例的计算机设备100可对应于上述各个方法实施例中的存储控制器,该计算机设备100中的处理器1001和通信接口1002可以实现上述各个方法实施例中的存储控制器所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图3至图4中存储控制器所执行的数据处理方法的步骤。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图3至图4中主设备所执行的数据处理方法的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图3至图4中存储控制器所执行的数据处理方法的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图3至图4中主设备所执行的数据处理方法的步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出 来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-only memory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (13)
- 一种数据处理方法,其特征在于,包括:主设备根据第一数据确定指示命令,所述第一数据为待从存储控制器所管理的存储阵列读取的数据,且所述第一数据为需要在所述主设备进行更新或舍弃的数据,所述指示命令包括第一数据的逻辑地址、读指令和删除指令;所述主设备向所述存储控制器发送所述指示命令,以指示所述存储控制器根据物理地址从所述存储阵列中确定所述第一数据,根据所述读指令读取并返回所述第一数据,并根据所述删除指令从所述存储阵列中删除所述第一数据,所述物理地址为所述存储控制器根据所述逻辑地址查表获得的。
- 根据权利要求1所述的数据处理方法,其特征在于,所述第一数据为即时性数据,所述即时性数据为不会被再次使用的数据。
- 一种数据处理方法,其特征在于,包括:存储控制器接收来自主设备的对第一数据的指示命令,所述第一数据为所述主设备待从存储控制器所管理的存储阵列读取的数据,所述指示命令包括第一数据的逻辑地址、读指令和删除指令;所述存储控制器根据所述逻辑地址查表获得所述第一数据的物理地址;所述存储控制器根据所述物理地址从所述存储阵列中确定所述第一数据,根据所述读指令读取并向所述主设备返回所述第一数据,并根据所述删除指令从所述存储阵列中删除所述第一数据。
- 根据权利要求3所述的数据处理方法,其特征在于,所述并根据所述删除指令从所述存储阵列中删除所述第一数据之前,所述方法还包括:所述存储控制器确定在执行对第二数据的读操作或写操作,则在日志中记录对所述第一数据的删除操作;所述并根据所述删除指令从所述存储阵列中删除所述第一数据,包括:所述存储控制器在执行完对所述第二数据的读操作或写操作后,根据所述日志中的记录,执行对所述第一数据的删除操作。
- 一种数据处理方法,其特征在于,包括:主设备向存储控制器发送第一数据的写入命令,所述写入命令包括所述第一数据、写指令和第一逻辑地址,所述第一数据为需要在所述主设备进行更新或舍弃的数据,所述第一逻辑地址所指示的第一物理地址处于存储控制器所管理的存储阵列中的预设存储区域,所述预设存储区域为预配置的数据读取后再执行删除的区域。
- 根据权利要求5所述的数据处理方法,其特征在于,所述方法还包括:所述主设备向所述存储控制器发送对第二数据的指示命令,所述第二数据为所述处理装置待从所述存储管理装置所管理的存储阵列读取的数据,所述指示命令包括所述第二数据的第二逻辑地址和读指令,以指示所述存储控制器根据第二物理地址从所述存储阵列中确定所述第一数据,根据所述读指令读取并返回所述第一数据,并删除所述第一数据,所述第二物理地址为所述存储控制器根据所述第二逻辑地址查表获得的。
- 一种数据处理方法,其特征在于,包括:存储控制器接收来自主设备的写入命令,所述写入命令包括第一数据、写指令和第一逻辑地址,所述第一数据为需要在所述主设备进行更新或舍弃的数据;所述存储控制器根据所述第一逻辑地址查表获得第一物理地址,所述第一物理地址位于所述存储控制器所管理的存储阵列中的预设存储区域内,所述预设存储区域为预配置的数据读取后再执行删除的区域;所述存储控制器根据所述写指令将所述第一数据存储到所述第一物理地址所指示的存储位置。
- 根据权利要求7所述的数据处理方法,其特征在于,所述方法还包括:所述存储控制器接收来自所述主设备的对第二数据的指示命令,所述第二数据为所述处理装置待从所述存储管理装置所管理的存储阵列读取的数据,所述指示命令包括所述第二数据的第二逻辑地址和读指令;所述存储控制器根据所述第二逻辑地址查表获得所述第二数据的第二物理地址;如果所述第二物理地址处于所述预设存储区域,则所述存储控制器确定删除操作和所述读指令对应的读操作;所述存储控制器根据所述第二物理地址从所述存储阵列中确定所述第二数据,根据所述读操作读取并向所述主设备返回所述第二数据,并根据所述删除操作删除所述第二数据。
- 根据权利要求8所述的数据处理方法,其特征在于,所述并根据所述删除操作删除所述第一数据之前,所述方法还包括:所述存储控制器确定在执行对第三数据的读操作或写操作,则在日志中记录对所述第二数据的所述删除操作;所述并根据所述删除操作删除所述第二数据,包括:所述存储控制器在执行完对所述第三数据的读操作或写操作后,根据所述日志中的记录,执行对所述第二数据的所述删除操作。
- 一种计算机设备,其特征在于,包括:处理器、存储器以及通信接口,所述处理器用于执行所述存储器中存储的指令,使得所述计算机设备执行权利要求1至2和5至6中任一项所述的方法。
- 一种计算机设备,其特征在于,包括:处理器、接口以及存储器,所述处理器用于根据所述接口传输的数据执行所述存储器中存储的指令,使得所述计算机设备执行权利要求3至4和7至9中任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中保存有程序,当所述计算机执行所述程序时,执行如权利要求1至9中任一项所述的方法。
- 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上执行时,所述计算机执行如权利要求1至9中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/132844 WO2022110172A1 (zh) | 2020-11-30 | 2020-11-30 | 数据处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116368472A true CN116368472A (zh) | 2023-06-30 |
Family
ID=81755192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080106444.7A Pending CN116368472A (zh) | 2020-11-30 | 2020-11-30 | 数据处理方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116368472A (zh) |
WO (1) | WO2022110172A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707992A (zh) * | 2022-09-13 | 2024-03-15 | 华为技术有限公司 | 一种数据运算方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9111598B2 (en) * | 2013-09-16 | 2015-08-18 | Netapp, Inc. | Increased I/O rate for solid state storage |
CN104978280B (zh) * | 2015-06-04 | 2020-10-30 | 上海川源信息科技有限公司 | 数据储存系统及其特定指令执行方法 |
CN105528307B (zh) * | 2015-11-27 | 2019-03-29 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
CN111625281A (zh) * | 2020-05-25 | 2020-09-04 | 上海载德信息科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2020
- 2020-11-30 WO PCT/CN2020/132844 patent/WO2022110172A1/zh active Application Filing
- 2020-11-30 CN CN202080106444.7A patent/CN116368472A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022110172A1 (zh) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
KR102002830B1 (ko) | 세그먼트 클리닝 장치 및 방법 | |
CN109144886B (zh) | 数据储存装置 | |
US9183136B2 (en) | Storage control apparatus and storage control method | |
CA2673434C (en) | Memory device performance enhancement through pre-erase mechanism | |
US10048884B2 (en) | Method for erasing data entity in memory module | |
US11301331B2 (en) | Storage device and operating method of storage device | |
EP3748509A1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
CN105718530A (zh) | 文件存储系统及其文件存储控制方法 | |
JP4745465B1 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
US11669264B2 (en) | Method for improving trim command response time | |
KR20120084906A (ko) | 비휘발성 메모리 시스템 및 그 관리 방법 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
CN116225334A (zh) | 一种冷热数据存储方法、装置以及介质 | |
CN106326132B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
CN116368472A (zh) | 数据处理方法及相关设备 | |
CN113641597A (zh) | 管理数据存储的方法及装置以及计算机可读取存储介质 | |
KR101979715B1 (ko) | 컴퓨팅 시스템 및 그 데이터 관리 방법 | |
JP5204265B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium | |
CN114661238B (zh) | 带缓存的存储系统空间回收的方法及应用 | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
WO2022021337A1 (zh) | 闪存控制方法和装置 | |
KR20230034194A (ko) | 듀얼 모드 스토리지 장치 | |
KR20210089055A (ko) | 지우기 성능이 향상된 플래시메모리 저장 장치 및 그 방법 |
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 |