CN112596681B - 一种重读命令处理方法、闪存控制器及固态硬盘 - Google Patents
一种重读命令处理方法、闪存控制器及固态硬盘 Download PDFInfo
- Publication number
- CN112596681B CN112596681B CN202011568082.1A CN202011568082A CN112596681B CN 112596681 B CN112596681 B CN 112596681B CN 202011568082 A CN202011568082 A CN 202011568082A CN 112596681 B CN112596681 B CN 112596681B
- Authority
- CN
- China
- Prior art keywords
- command
- read
- read command
- information
- current
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 84
- 239000007787 solid Substances 0.000 title claims abstract description 43
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 15
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 239000002245 particle Substances 0.000 description 15
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000008187 granular material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000012212 insulator Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例涉及固态硬盘应用领域,公开了一种重读命令处理方法、闪存控制器及固态硬盘,所述方法包括:接收处理器下发的读命令,将所述读命令挂载到命令队列;顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息;根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令。通过更新读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令,本发明实施例能够提高固态硬盘的读性能。
Description
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种重读命令处理方法、闪存控制器及固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘***中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。
闪存(NAND Flash)是固态硬盘的主要存储介质。NAND Flash数据存储原理:对于写入颗粒的数据值,每个数据值对应一个电荷量,颗粒通过存储电荷量的方式来保存数据。在数据读出时,颗粒将对应的电荷量和内部的参考电压作比较来区分出不同的数据。因此内部参考电压会影响读出的数据值。NAND Flash颗粒由于自身特性原因存入的电荷量会产生偏移,因此在数据读出时会存在一定比例的错误。此时通过调整颗粒内部的参考电压,可以改变读出数据结果。在合适的参考电压下读出数据出错情况会得到改善。这种通过调节内部参考电压的方式就是重读(read retry)功能。
目前,通常由颗粒厂商提供一组参考电压调节挡位,在读颗粒出错的情况下,按照挡位调整参考值,之后再次执行读操作。但是,采用连续执行时,当前颗粒操作单位(一般为Die)将一直执行读操作,后续的命令必须等待当前重读操作完成之后才可执行,导致影响后续命令的响应时间,导致耗时长实时性差。
基于此,现有技术亟待改进。
发明内容
本发明实施例旨在提供一种重读命令处理方法、闪存控制器及固态硬盘,其解决了现有固态硬盘重读操作存在的耗时长、实时性差的技术问题,提高固态硬盘的读性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种重读命令处理方法,应用于固态硬盘,所述方法包括:
接收处理器下发的读命令,将所述读命令挂载到命令队列;
顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;
在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息;
根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令。
在一些实施例中,所述读命令信息包括读命令对应的至少一个重读链表,每一所述重读链表包括至少一个重读指针,每一重读指针指向唯一的重读代码,每一重读代码包括一个参考电压。
在一些实施例中,所述读命令信息包括重读链表的当前重读指针信息,所述根据所述读数据译码结果,更新当前读命令对应的读命令信息,包括:
判断读数据译码结果是否有错误;
若所述读数据译码结果有错误,则更新当前读命令对应的读命令信息中的重读链表的当前重读指针信息。
在一些实施例中,所述读命令信息包括数据段标识信息,所述数据段标识信息包括多个编码处理数据标识,每一编码处理数据标识对应且唯一的编码处理数据,所述判断读数据译码结果是否有错误,包括:
判断所述读数据译码结果对应的编码处理数据标识是否与预设的编码处理数据标识相同;
若是,则确定所述读数据译码结果无错误;
若否,则确定所述读数据译码结果有错误。
在一些实施例中,所述方法还包括:
判断所述当前重读指针信息是否包括最后一次重读标识;
若所述当前重读指针信息包括最后一次重读标识,则确定当前重读指针信息对应的重读代码,根据当前重读指针信息对应的重读代码进行重读之后,不再进行重读。
在一些实施例中,所述读命令信息包括命令完成信息,所述方法还包括:
若所述当前重读指针信息包括最后一次重读标识,则将所述命令完成信息设置为命令完成有效。
在一些实施例中,所述读命令信息包括命令完成信息,所述方法还包括:
若所述读数据译码结果无错误,则将所述命令完成信息设置为命令完成有效,并删除当前读命令对应的读命令信息。
第二方面,本发明实施例提供一种闪存控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,所述闪存控制器包括:
命令接收模块,用于接收处理器下发的读命令,并将所述读命令挂载到命令队列;
缓存模块,连接所述命令接收模块,用于缓存所述命令队列中的读命令及其读命令信息;
命令执行模块,连接所述缓存模块,用于获取所述命令队列中的读命令对应的读命令信息,解析所述读命令信息并执行与所述读命令对应的闪存操作;
解码模块,用于对闪存介质返回的数据进行解码操作,生成解码结果;
重读控制模块,连接所述命令接收模块以及解码模块,用于接收解码模块发送的解码结果,触发所述命令接收模块改写所述读命令信息,以重新挂载所述读命令信息对应的读命令到所述命令队列。
在一些实施例中,所述闪存控制器还包括:
物理层控制模块,连接所述命令执行模块,用于根据所述命令执行模块发送的执行结果,生成闪存操作。
在一些实施例中,所述读命令信息包括数据段标识信息、当前读命令是否支持自动重读的标识、读命令对应的重读链表、重读链表的当前重读指针信息、命令完成信息中的至少一个。
第三方面,本发明实施例提供一种固态硬盘,包括:
闪存介质,用于存储闪存数据;
如上所述的闪存控制器;
主控制器,用于执行如上所述的重读命令处理方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使固态硬盘能够执行如上所述的重读命令处理方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种重读命令处理方法,应用于固态硬盘,所述方法包括:接收处理器下发的读命令,将所述读命令挂载到命令队列;顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息;根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令。通过更新读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令,本发明实施例能够提高固态硬盘的读性能。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种固态硬盘的结构示意图;
图2是本发明实施例提供的一种闪存控制器的结构示意图;
图3是本发明实施例提供的一种闪存控制器的工作流程示意图;
图4是现有技术的一种普通读命令的操作流程图;
图5是现有技术的读命令的重读操作流程图;
图6是图5中的读命令的重读操作的连续执行重读的时间轴示意图;
图7是本发明实施例提供的一种重读命令处理方法的流程示意图;
图8是本发明实施例提供的一种cw_bitmap信息的示意图;
图9是本发明实施例提供的一种读命令执行的整体流程图;
图10是图9中的步骤S91的细化流程图;
图11是图9中的步骤S92的细化流程图;
图12是本发明实施例提供的一种多次执行重读与连续执行重读的对比示意图;
图13是本发明实施例提供的另一种多次执行重读与连续执行重读的对比示意图;
图14是图9中的步骤S93的细化流程图;
图15是本发明实施例提供的更新数据段标识信息的示意图;
图16是本发明实施例提供的重读链表与重读指针的示意图;
图17是本发明实施例提供的一种命令完成信息的更新流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
典型的固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器(主控制器)、闪存阵列、缓存单元以及其他***单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部***;闪存阵列(NANDFlash),作为存储单元,用于存储数据,包括用户数据和***数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,所述缓存单元一般为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)。其他***单元可以包括传感器、寄存器等部件。
其中,闪存阵列(NAND Flash)的数据存储原理为:对于写入颗粒的数据值,每个数据值对应一个电荷量,颗粒通过存储电荷量的方式来保存数据。在数据读出时,颗粒将对应的电荷量和内部的参考电压作比较来区分出不同的数据。因此内部参考电压会影响读出的数据值。
NAND Flash颗粒由于自身特性原因存入的电荷量会产生偏移,因此在数据读出时会存在一定比例的错误。此时通过调整颗粒内部的参考电压,可以改变读出数据结果。在合适的参考电压下读出数据出错情况会得到改善。这种通过调节内部参考电压的方式就是read retry功能。
目前,通常由颗粒厂商提供一组参考电压调节挡位,在读颗粒出错的情况下,按照挡位调整参考值,之后再次执行read操作。但是,采用连续执行时,当前颗粒操作单位(一般为Die)将一直执行read操作,后续的命令必须等待当前重读操作完成之后才可执行,导致影响后续命令的响应时间,导致耗时长实时性差。
有鉴于此,本发明实施例提供一种重读命令处理方法、闪存控制器及固态硬盘,以提高固态硬盘的读性能。
下面结合说明书附图阐述本发明的技术方案。
请参阅图1,图1是本发明实施例提供的一种固态硬盘的结构示意图;
如图1所示,所述固态硬盘100包括闪存介质110以及与所述闪存介质110连接的固态硬盘控制器120。其中,所述固态硬盘100通过有线或无线的方式与所述主机200通信连接,用以实现数据交互。
闪存介质110,作为所述固态硬盘100的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质110得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质110可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。
一个Nand FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是Nand FLASH执行擦除操作的最小单位,Page页为Nand FLASH执行读写操作的最小单位,一个Nand FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质10按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
固态硬盘控制器120,包括数据转换器121、处理器122、缓存器123、闪存控制器124以及接口125。
数据转换器121,分别与处理器122和闪存控制器124连接,所述数据转换器121用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器124向所述闪存介质110写入数据时,通过所述数据转换器121将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质110。当所述闪存控制器124从所述闪存介质110读取数据时,通过所述数据转换器121将闪存介质110中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器121可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器122,分别与数据转换器121、缓存器123、闪存控制器124以及接口125连接,其中,处理器122与数据转换器121、缓存器123、闪存控制器124以及接口125可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器123中的非易失性软件程序、指令以及模块,从而实现本发明任一方法实施例。
缓存器123,主要用于缓存主机200发送的读/写指令以及根据主机200发送的读/写指令从闪存介质110获取的读数据或者写数据。缓存器123作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器123可以包括存储程序区,存储程序区可存储操作***、至少一个功能所需要的应用程序。此外,缓存器123可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器123可选包括相对于处理器124远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述缓存器123可以为静态随机存取存储器(StaticRandom Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random AccessMemory,DDR SRAM)。
闪存控制器124,与闪存介质110、数据转换器121、处理器122以及缓存器123连接,用于访问后端的闪存介质110,管理闪存介质110的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机200发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flashtranslation layer,闪存转换层)的核心处理。
接口125,连接主机200以及数据转换器121、处理器122以及缓存器123,用于接收主机200发送的数据,或者,接收所述处理器122发送的数据,实现主机200与处理器122之间的数据传输,所述接口125可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
具体的,请再参阅图2,图2是本发明实施例提供的一种闪存控制器的结构示意图;
如图2所示,该闪存控制器124,包括:命令接收模块1241、命令执行模块1242、物理层控制模块1243、缓存模块1244、重读控制模块1245以及解码模块1246,其中,所述命令接收模块1241连接所述命令执行模块1242以及所述重读控制模块1245,所述缓存模块1244连接所述命令接收模块1241以及所述命令执行模块1242,所述物理层控制模块1243连接所述命令执行模块1242以及所述解码模块1246,所述重读控制模块1245连接所述命令接收模块1241以及所述解码模块1246,所述解码模块1246连接所述重读控制模块1245以及所述物理层控制模块1243。
具体的,所述命令接收模块1241,连接处理器122、命令执行模块1242、缓存模块1244以及重读控制模块1245,用于接收处理器122下发的读命令,并将接收到的命令挂载到对应的命令队列上,其中,所述命令接收模块1241还用于在接收到重读控制模块的信息后,改变读命令信息(read命令信息),以将所述读命令信息对应的读命令重新挂载到命令队列上;
具体的,所述命令执行模块1242,连接所述命令接收模块1241、物理层控制模块1243以及所述缓存模块1244,用于从所述缓存模块1244中获取命令队列上的命令信息,根据命令信息解析执行相应操作。
具体的,所述物理层控制模块1243,连接所述命令执行模块1242以及解码模块1246,用于接收所述命令执行模块1242发送的操作结果,并根据所述命令执行模块1242的操作结果,按照Flash颗粒工作要求产生闪存操作(Flash操作),其中,所述物理层控制模块1243还连接闪存介质(NANDFlash),用于向所述闪存介质发送所述闪存操作(Flash操作),例如:向所述闪存介质发送读操作,以获取所述闪存介质返回的读数据;
具体的,所述缓存模块1244,连接所述命令接收模块1241、命令执行模块1242,用于存储命令队列上的命令及其对应的命令信息,例如:读命令及其对应的读命令信息;在本发明实施例中,所述缓存模块1244包括随机存取存储器(Random Access Memory,RAM)。
具体的,所述重读控制模块1245,连接所述命令接收模块1241、解码模块1246,用于接收所述解码模块1246发送的解码结果,并在接收到读数据(read数据)所有的信息之后,触发所述命令接收模块1241改写所述读命令对应的读命令信息(read命令信息),以重新挂载所述读命令信息对应的读命令到所述命令队列,即将所述读命令(read命令)再次挂载到对应的命令队列上;
具体的,所述解码模块1246,连接所述物理层控制模块1243以及所述重读控制模块1245,用于对闪存介质返回的数据进行解码操作,生成解码结果,即LDPC译码结果,例如:接收所述物理层控制模块1243发送的读数据进行解码操作,生成解码结果,并将解码结果发送到所述重读控制模块;
请再参阅图3,图3是本发明实施例提供的一种闪存控制器的工作流程示意图;
如图3所示,CPU下发命令到命令接收模块,例如:读命令,命令接收模块将接收到的读命令对应的命令信息存储在缓存模块,并将所述读命令加入对应的命令队列,所述命令执行模块顺序执行所述命令队列中的命令,并将执行结果发送到所述物理层控制模块,由所述物理层控制模块将所述执行结果按照颗粒工作要求产生Flash操作,并将所述Flash操作发送到闪存介质,以获取所述闪存介质返回的数据,例如:读数据,所述物理层控制模块在接收到闪存介质返回的数据之后,将所述返回的数据发送到解码模块,由所述解码模块对所述返回的数据进行解码,并将解码结果发送到所述重读控制模块,由所述重读控制模块确定是否触发命令接收模块更新读命令信息,以将读命令信息对应的读命令重新挂载于命令队列。
在本发明实施例中,通过提供一种闪存控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,所述闪存控制器包括:命令接收模块,用于接收处理器下发的读命令,并将所述读命令挂载到命令队列;缓存模块,连接所述命令接收模块,用于缓存所述命令队列中的读命令及其读命令信息;命令执行模块,连接所述缓存模块,用于获取所述命令队列中的读命令对应的读命令信息,解析所述读命令信息并执行与所述读命令对应的闪存操作;解码模块,用于对闪存介质返回的数据进行解码操作,生成解码结果;重读控制模块,连接所述命令接收模块以及解码模块,用于接收解码模块发送的解码结果,触发所述命令接收模块改写所述读命令信息,以重新挂载所述读命令信息对应的读命令到所述命令队列。通过设置重读控制模块,接收解码模块发送的解码结果,触发所述命令接收模块改写读命令信息,以重新挂载所述读命令信息对应的读命令到所述命令队列,本发明实施例能够提高固态硬盘的读性能。
请再参阅图4,图4是现有技术的一种普通读命令的操作流程图;
如图4所示,该普通读命令的操作流程,包括:
步骤S401:下发读命令;
步骤S402:接收闪存返回的读数据;
步骤S403:读命令完成;
请再参阅图5,图5是现有技术的读命令的重读操作流程图;
如图5所示,该读命令的重读操作流程,包括:
步骤S501:下发读命令;
步骤S502:接收闪存返回的读数据;
步骤S503:是否存在数据ECC错误;
步骤S504:若否,则读命令完成;
步骤S505:若是,则设置参考电压;
步骤S506:下发读命令;
步骤S507:接收闪存返回的读数据;
步骤S508:是否存在数据ECC错误;
步骤S509:若否,则设置参考电压为默认值;
步骤S510:读命令重读操作完成;
请再参阅图6,图6是图5中的读命令的重读操作的连续执行重读的时间轴示意图;
如图6所示,在现有技术的读命令的重读操作(retry)采用连续执行时,当前颗粒操作单位(一般为Die)将一直执行read操作,后续的命令必须等当前重读操作完成之后才可执行,这将影响后续命令的响应时间。重读操作需要等到ECC结果之后才决定下一步操作,而数据译码得到ECC结果需要一段执行时间,在这段等待时间内当前颗粒操作单位上是不执行其他命令的,将造成带宽浪费。也就是说,对于连续执行重读过程中重读命令直接不可执行其他命令,此时颗粒总线在空闲状态浪费带宽,影响后续命令的执行;
基于此,本发明实施例提供一种重读命令处理方法,以提高固态硬盘的读性能。
请参阅图7,图7是本发明实施例提供的一种重读命令处理方法的流程示意图;
其中,该重读命令处理方法,应用于固态硬盘,具体的,应用于上述实施例中所述的闪存控制器中的一个或多个处理器;
如图7所示,该重读命令管理方法,包括:
步骤S10:接收处理器下发的读命令,将所述读命令挂载到命令队列;
具体的,每一读命令对应一个读命令信息,所述处理器在下发读命令时,将确定所述读命令对应的读命令信息,其中,所述读命令信息包括:读操作需要读取的数据段标识信息、读命令是否支持自动重读(retry)、读命令对应的重读链表、重读链表的当前信息、命令完成信息。
其中,所述处理器在下发读命令时,将确定所述读命令对应的读命令信息中的读操作需要读取的数据段标识信息、读命令是否支持自动重读(retry)、读命令对应的重读链表。具体的,所述重读链表包括至少一个重读指针,每一重读指针指向唯一的重读代码,每一重读代码包括一个参考电压。可以理解的是,当所述重读链表只包括一个重读指针时,则第一个重读指针为最后一个重读指针,即last flag。
可以理解的是,在读命令的执行过程中,所述读操作需要读取的数据段标识、重读链表的当前信息、命令完成信息会被重读控制模块根据当前读命令的执行情况所改写。
在接收到处理器下发的读命令之后,命令接收模块将所述读命令挂载到对应的命令队列中,并且缓存模块缓存所述读命令对应的读命令信息。
步骤S20:顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;
具体的,命令执行模块根据所述命令队列的顺序,顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;
步骤S30:在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息;
具体的,所述读命令信息包括重读链表的当前重读指针信息,所述根据所述读数据译码结果,更新当前读命令对应的读命令信息,包括:
判断读数据译码结果是否有错误;
若所述读数据译码结果有错误,则更新当前读命令对应的读命令信息中的重读链表的当前重读指针信息。
具体的,所述读命令信息包括数据段标识信息,所述数据段标识信息包括多个编码处理数据标识,每一编码处理数据标识对应且唯一的编码处理数据,所述判断读数据译码结果是否有错误,包括:
判断所述读数据译码结果对应的编码处理数据标识是否与预设的编码处理数据标识相同;
若是,则确定所述读数据译码结果无错误;
若否,则确定所述读数据译码结果有错误。
其中,所述数据段标识信息包括cw_bitmap(表示对应的cw中有效的bitmap,按照cw大小可以将一个页的数据拆分为多个cw,使用cw_bitmap中每一个bit标识页中的cw。)信息,所述数据段标识信息包括多个编码处理数据标识,每一编码处理数据标识对应且唯一的编码处理数据。具体的,所述编码处理数据标识用于标识编码处理数据(cw),每一cw_bitmap包括多个编码处理数据标识(cw标识),每一编码处理数据标识对应唯一的一个编码处理数据,即每一个数据页page中的cw。
可以理解的是,存入Flash颗粒中的数据需要做数据保护处理,如使用LDPC做编码操作。编码操作处理的数据量是有固定大小值(目前常规使用的LDPC数据量为4K),一次编码处理的这一笔数据称为一个cw。对应编码过程的逆过程译码过程中也按照cw处理数据。按照cw大小可以将一个page的数据拆分为多个cw,使用cw_bitmap中每一个比特bit来标识page中的cw。
具体的,请再参阅图8,图8是本发明实施例提供的一种cw_bitmap信息的示意图;
如图8所示,将一个数据页page拆分为4个cw,采用4bit的cw_bitmap表示cw信息。控制器内部按照cw为单位操作读写入颗粒的数据。program操作时由于颗粒限制需要整个page做操作,因此cw_bitmap全为1对应一个page;读操作时可以读取一个page中的任意cw,因此采用cw_bitmap表示需要读取page中的哪些数据。
步骤S40:根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令。
在本发明实施例中,所述方法还包括:
判断所述当前重读指针信息是否包括最后一次重读标识;
若所述当前重读指针信息包括最后一次重读标识,则确定当前重读指针信息对应的重读代码,根据当前重读指针信息对应的重读代码进行重读之后,不再进行重读。
在本发明实施例中,所述方法还包括:
若所述当前重读指针信息包括最后一次重读标识,则将所述命令完成信息设置为命令完成有效。
在本发明实施例中,所述读命令信息包括命令完成信息,所述方法还包括:
若所述读数据译码结果无错误,则将所述命令完成信息设置为命令完成有效,并删除当前读命令对应的读命令信息。
下面结合附图具体说明本发明实施例中的读命令执行的过程:
请参阅图9,图9是本发明实施例提供的一种读命令执行的整体流程图;
如图9所示,该读命令执行的整体流程,包括:
步骤S91:读命令接收;
步骤S92:读命令解析执行;
步骤S93:读数据译码信息收集及处理;
具体的,请再参阅图10,图10是图9中的步骤S91的细化流程图;
如图10所示,该步骤S91:读命令接收,包括:
步骤S911:命令接收模块接收处理器下发的命令;
具体的,命令接收模块接收处理器下发的读命令;
步骤S912:命令接收模块将命令信息存入缓存模块中,同时根据命令信息将命令挂载到对应的命令队列上;
具体的,命令接收模块将所述读命令对应的读命令信息存储到缓存模块中,并根据所述读命令信息将所述读命令挂载到对应的命令队列上。
具体的,请再参阅图11,图11是图9中的步骤S92的细化流程图;
如图11所示,该步骤S92:读命令解析执行,包括:
步骤S921:执行命令队列命令,从缓存模块读取对应的读命令信息,解析执行读命令;
具体的,命令执行模块根据所述命令队列的顺序,确定当前读命令,从缓存模块中读取当前读命令对应的读命令信息,解析执行当前读命令;
步骤S922:读命令是否完成;
具体的,判断当前读命令是否完成,若是,则进入步骤S923;若否,则进入步骤S924;
步骤S923:返回读命令的执行结果信息,释放当前命令空间;
具体的,若当前读命令的执行结果为完成,则将当前读命令从命令队列中清除;
步骤S924:初次执行读操作,非重读操作;
具体的,读操作为首次执行,并且不是重读操作(retry);
步骤S925:通过物理层控制模块向闪存介质发送读命令,将读数据发送给解码模块;
具体的,通过物理层控制模块(PHY_CTRL)向闪存介质(NANAFlash)发送读命令,将闪存介质(NANA Flash)返回的读数据发送给解码模块(LDPCdecode)。
步骤S926:根据重读链表指定重读指针执行重读代码,设置参考电压;
具体的,根据重读链表(retrylist)指定重读指针(entrypointer),执行重读代码(retryentrycode),通过setfeature操作设置参考电压;
步骤S927:通过物理层控制模块向闪存介质发送读命令,将读数据发送给解码模块;
步骤S928:执行重读恢复操作,将参考电压设置为默认值;
具体的,执行重读恢复操作,通过set feature操作将参考电压设置为默认值;
步骤S929:当前读命令执行过程完成,将命令从当前命令队列清除;
具体的,若当前读命令执行过程完成,则将当前读命令从所述命令队列中清除;
请再参阅图12,图12是多次执行重读与连续执行重读的示意图;
如图12所示,图12的上半部分为多次执行重读(retry),即本发明中的重读方式,下半部分为连续执行重读(retry),即现有技术的重读方式;
请再参阅图13,图13是本发明实施例提供的另一种多次执行重读与连续执行重读的对比示意图;
如图13所示,对于现有技术的连续执行重读(retry)过程中,重读命令之间不可执行其他命令,此时颗粒总线在空闲状态,浪费带宽,影响后续读命令的执行,而本申请中的多次执行重读(retry)过程,将读命令分多次执行,从而可有效提高命令执行效率,通过两个读命令的切换执行,例如:读命令1和读命令2,相比多次执行重读过程,其可以执行其他命令,从而能够提高总线效率。
请再参阅图14,图14是图9中的步骤S93的细化流程图;
如图14所示,该步骤S93:读数据译码信息收集及处理,包括:
步骤S931:收集解码模块返回的数据纠错信息;
具体的,所述重读控制模块接收解码模块返回的解码结果,所述解码结果包括数据纠错信息;
步骤S932:判断是否完成当前读命令信息收集;
具体的,判断当前读命令是否支持重读(retry),以及,当前返回的cw是否出现错误,以及当前是否执行到最后一次重读,即执行到重读链表的最后位置(lastflag);
步骤S933:更新当前读命令信息;
具体的,更新当前读命令信息中的数据段标识信息(cw_bitmap信息)、重读指针信息(retry list位置信息)以及命令完成信息。
具体的,请再参阅图15,图15是本发明实施例提供的更新数据段标识信息的示意图;
如图15所示,数据段标识信息cw_bitmap的更新规则为:对于解码模块(LDPCdecode)返回错误的cw标识为1,表示该cw读数据有错,下一次retry时候需要重新读取。
请再参阅图16,图16是本发明实施例提供的重读链表与重读指针的示意图;
如图16所示,每一重读链表(retrylist)包括多个重读指针(entrypointer),其中,每一重读指针(entry pointer)对应唯一的重读代码(retrycodeentry),其中,重读链表retry list更新规则为:retry list为一个链表,初次执行重读retry时从重读链表retry list的头位置开始,之后每次执行重读retry操作,将位置移到下一个重读指针entrypointer位置。
其中,重读代码retry code entry中存放有执行设置参考电压对应的命令操作信息(通过set feature操作设置参考电压),该操作信息由软件根据颗粒参考电压设置规则编写。对应不同的参考电压设置,存在若干重读代码retry code entry。
可以理解的是,重读链表retry list为一组指向重读代码retry code entry的指针链表,重读链表retry list中的重读指针entry pointer为指向重读代码retry codeentry的指针,最后一个重读指针entry pointer处有是否执行到最后一次重读的标志,即last flag标志,表示当前为最后一个电压调节档位,当控制器执行检测到last flag时则不再执行重读retry操作。
为方便不同的参考电压调节策略,本发明实施例通过编写多组不同的retry list供读命令使用。
在本发明实施例中,所述方法还包括:在运行过程中生成重读链表retry list,以实现参考电压调节策略的实时优化。
请再参阅图17,图17是本发明实施例提供的一种命令完成信息的更新流程示意图;
如图17所示,命令完成信息的更新流程,包括:
步骤S1701:是否支持重读;
具体的,判断当前读命令是否支持重读,若是,则进入步骤S1702:译码是否无错误;若否,则进入步骤S1704:设置命令完成有效;
步骤S1702:译码是否无错误;
具体的,判断解码模块的解码结果是否无错误,所述解码结果即LDPC译码结果,通过比对原始cw_bitmap信息和LDPC译码结果完成判断,若无错误,则进入步骤S1704:设置命令完成有效;若有错误,则进入步骤S1703:是否执行到最后一次重读;
步骤S1703:是否执行到最后一次重读;
具体的,判断当前读命令的执行次数是否等于预设次数阈值,若是,则确定执行到最后一次重读,进入步骤S1704:设置命令完成有效;若否,则返回步骤S1702:进行再次重读以确定译码是否无错误;
步骤S1704:设置命令完成有效;
具体的,将当前读命令对应的读命令信息中的命令完成信息设置为命令完成有效;
步骤S934:将当前读命令挂载到命令队列上;
具体的,若当前读命令未完成,则在更新当前读命令信息之后,将当前读命令再次挂载到命令队列上;
在本发明实施例中,通过提供一种重读命令处理方法,应用于固态硬盘,所述方法包括:接收处理器下发的读命令,将所述读命令挂载到命令队列;顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息;根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令。通过更新读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令,本发明实施例能够提高固态硬盘的读性能。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的重读命令处理方法,例如,执行上述任意方法实施例中的重读命令处理方法,例如,执行以上描述的重读命令处理方法的各个步骤。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种重读命令处理方法,应用于固态硬盘,其特征在于,所述方法包括:
接收处理器下发的读命令,将所述读命令挂载到命令队列;
顺序执行所述命令队列中的读命令,在当前读命令执行完成之后,在所述命令队列中释放当前读命令,并执行所述命令队列中的下一读命令;
在接收到当前读命令对应的读数据译码结果之后,根据所述读数据译码结果,更新当前读命令对应的读命令信息,其中,所述读命令信息包括读命令对应的至少一个重读链表,每一所述重读链表包括至少一个重读指针;
根据更新后的读命令信息,将当前读命令再次挂载到命令队列,以重复执行当前读命令,其中,所述读命令信息还包括重读链表的当前重读指针信息;
所述根据所述读数据译码结果,更新当前读命令对应的读命令信息,包括:
判断读数据译码结果是否有错误;
若所述读数据译码结果有错误,则更新当前读命令对应的读命令信息中的重读链表的当前重读指针信息。
2.根据权利要求1所述的方法,其特征在于,每一重读指针指向唯一的重读代码,每一重读代码包括一个参考电压。
3.根据权利要求2所述的方法,其特征在于,所述读命令信息包括数据段标识信息,所述数据段标识信息包括多个编码处理数据标识,每一编码处理数据标识对应且唯一的编码处理数据,所述判断读数据译码结果是否有错误,包括:
判断所述读数据译码结果对应的编码处理数据标识是否与预设的编码处理数据标识相同;
若是,则确定所述读数据译码结果无错误;
若否,则确定所述读数据译码结果有错误。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
判断所述当前重读指针信息是否包括最后一次重读标识;
若所述当前重读指针信息包括最后一次重读标识,则确定当前重读指针信息对应的重读代码,根据当前重读指针信息对应的重读代码进行重读之后,不再进行重读。
5.根据权利要求4所述的方法,其特征在于,所述读命令信息包括命令完成信息,所述方法还包括:
若所述当前重读指针信息包括最后一次重读标识,则将所述命令完成信息设置为命令完成有效。
6.根据权利要求1所述的方法,其特征在于,所述读命令信息包括命令完成信息,所述方法还包括:
若所述读数据译码结果无错误,则将所述命令完成信息设置为命令完成有效,并删除当前读命令对应的读命令信息。
7.一种闪存控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,其特征在于,所述闪存控制器包括:
命令接收模块,用于接收处理器下发的读命令,并将所述读命令挂载到命令队列;
缓存模块,连接所述命令接收模块,用于缓存所述命令队列中的读命令及其读命令信息,其中,所述读命令信息包括读命令对应的至少一个重读链表,每一所述重读链表包括至少一个重读指针;
命令执行模块,连接所述缓存模块,用于获取所述命令队列中的读命令对应的读命令信息,解析所述读命令信息并执行与所述读命令对应的闪存操作,其中,所述读命令信息还包括重读链表的当前重读指针信息;
解码模块,用于对闪存介质返回的数据进行解码操作,生成解码结果,其中,所述解码结果包括读数据译码结果;
重读控制模块,连接所述命令接收模块以及解码模块,用于接收解码模块发送的解码结果,触发所述命令接收模块改写所述读命令信息,以重新挂载所述读命令信息对应的读命令到所述命令队列;
所述重读控制模块,具体用于:
判断读数据译码结果是否有错误;
若所述读数据译码结果有错误,则触发所述命令接收模块更新当前读命令对应的读命令信息;
所述命令接收模块还用于:
若所述读数据译码结果有错误,则更新当前读命令对应的读命令信息中的重读链表的当前重读指针信息。
8.根据权利要求7所述的闪存控制器,其特征在于,所述闪存控制器还包括:
物理层控制模块,连接所述命令执行模块,用于根据所述命令执行模块发送的执行结果,生成闪存操作。
9.根据权利要求7或8所述的闪存控制器,其特征在于,所述读命令信息包括数据段标识信息、当前读命令是否支持自动重读的标识、命令完成信息中的至少一个。
10.一种固态硬盘,其特征在于,包括:
闪存介质,用于存储闪存数据;
如权利要求7-9任一项所述的闪存控制器;
主控制器,用于执行如权利要求1-6任一项所述的重读命令处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011568082.1A CN112596681B (zh) | 2020-12-25 | 2020-12-25 | 一种重读命令处理方法、闪存控制器及固态硬盘 |
PCT/CN2021/123077 WO2022134741A1 (zh) | 2020-12-25 | 2021-10-11 | 重读命令处理方法、闪存控制器及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011568082.1A CN112596681B (zh) | 2020-12-25 | 2020-12-25 | 一种重读命令处理方法、闪存控制器及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112596681A CN112596681A (zh) | 2021-04-02 |
CN112596681B true CN112596681B (zh) | 2023-12-22 |
Family
ID=75202346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011568082.1A Active CN112596681B (zh) | 2020-12-25 | 2020-12-25 | 一种重读命令处理方法、闪存控制器及固态硬盘 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112596681B (zh) |
WO (1) | WO2022134741A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596681B (zh) * | 2020-12-25 | 2023-12-22 | 深圳大普微电子科技有限公司 | 一种重读命令处理方法、闪存控制器及固态硬盘 |
CN113806108A (zh) * | 2021-08-25 | 2021-12-17 | 海光信息技术股份有限公司 | 一种重传方法、内存控制器、处理器***及电子设备 |
CN114138190B (zh) * | 2021-11-19 | 2022-10-28 | 北京得瑞领新科技有限公司 | 闪存设备的数据读取方法、装置、存储介质及闪存设备 |
CN114049910B (zh) * | 2022-01-13 | 2022-04-22 | 深圳华电通讯有限公司 | 一种nand重读档位的换档方法、***及相关组件 |
CN114116015B (zh) * | 2022-01-21 | 2022-06-07 | 上海登临科技有限公司 | 用于管理硬件命令队列的方法及*** |
CN115509462B (zh) * | 2022-11-15 | 2023-02-24 | 北京得瑞领新科技有限公司 | 重读方法及装置、介质、固态硬盘 |
CN117032594B (zh) * | 2023-10-09 | 2024-01-23 | 北京忆恒创源科技股份有限公司 | 一种读命令调度方法、处理方法、装置及存储设备 |
CN117055820B (zh) * | 2023-10-09 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种固态硬盘的命令处理方法、固态硬盘和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
CN109582490A (zh) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | 智能重读命令生成 |
CN109582228A (zh) * | 2018-11-15 | 2019-04-05 | 深圳忆联信息***有限公司 | 基于nand闪存控制器的自动读重试的硬件加速方法及装置 |
CN110795270A (zh) * | 2018-08-03 | 2020-02-14 | 建兴储存科技(广州)有限公司 | 固态储存装置及其读取重试方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160078536A1 (en) * | 2014-09-15 | 2016-03-17 | Trading Technologies International Inc. | Systems and Methods for Managing Retry Orders |
US10514863B2 (en) * | 2016-08-02 | 2019-12-24 | SK Hynix Inc. | Memory system and operation method for the same |
KR20180051272A (ko) * | 2016-11-08 | 2018-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI686804B (zh) * | 2019-04-26 | 2020-03-01 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
CN112596681B (zh) * | 2020-12-25 | 2023-12-22 | 深圳大普微电子科技有限公司 | 一种重读命令处理方法、闪存控制器及固态硬盘 |
-
2020
- 2020-12-25 CN CN202011568082.1A patent/CN112596681B/zh active Active
-
2021
- 2021-10-11 WO PCT/CN2021/123077 patent/WO2022134741A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
CN109582490A (zh) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | 智能重读命令生成 |
CN110795270A (zh) * | 2018-08-03 | 2020-02-14 | 建兴储存科技(广州)有限公司 | 固态储存装置及其读取重试方法 |
CN109582228A (zh) * | 2018-11-15 | 2019-04-05 | 深圳忆联信息***有限公司 | 基于nand闪存控制器的自动读重试的硬件加速方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112596681A (zh) | 2021-04-02 |
WO2022134741A1 (zh) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112596681B (zh) | 一种重读命令处理方法、闪存控制器及固态硬盘 | |
EP2115594B1 (en) | Memory system | |
KR20180118329A (ko) | 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법 | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
JP2011118469A (ja) | メモリ管理装置およびメモリ管理方法 | |
US10168951B2 (en) | Methods for accessing data in a circular block mode and apparatuses using the same | |
KR20130010343A (ko) | 플래시 메모리 장치 | |
KR20200126533A (ko) | 메모리 시스템 및 그의 온도 조절 방법 | |
US20230014869A1 (en) | Interruption of program operations at a memory sub-system | |
US20160172043A1 (en) | Semiconductor device and method of operating the same | |
CN109411002B (zh) | 一种数据读取的方法及闪存控制器 | |
US20150234741A1 (en) | Command Execution Using Existing Address Information | |
CN113467713B (zh) | 数据分离方法及固态硬盘 | |
US20220269616A1 (en) | Electronic system including memory system and host | |
KR20210077230A (ko) | 메모리 시스템의 동작 방법 및 장치 | |
US11556268B2 (en) | Cache based flow for a simple copy command | |
KR20210012641A (ko) | 메모리 시스템, 데이터 시스템 및 그 동작방법 | |
US11815985B2 (en) | Apparatus and method for checking an operation status of a memory device in a memory system | |
KR20220077041A (ko) | 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법 | |
CN109918315B (zh) | 存储器***及存储器***的操作方法 | |
CN114174977B (zh) | 改进对存储器子***中的主机起始的请求的处置 | |
US11301132B2 (en) | Scheduling media management operations based on provided host system usage requirements | |
KR20200066907A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US20230281114A1 (en) | Memory control method, memory storage device and memory control circuit unit | |
US11977745B2 (en) | Data retry-read method, memory storage device, and memory control circuit element |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |