CN112767976B - 平稳闪存写速度的方法、装置、存储介质和计算机设备 - Google Patents
平稳闪存写速度的方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN112767976B CN112767976B CN202110027038.8A CN202110027038A CN112767976B CN 112767976 B CN112767976 B CN 112767976B CN 202110027038 A CN202110027038 A CN 202110027038A CN 112767976 B CN112767976 B CN 112767976B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- memory unit
- data transmission
- flash
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- 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
- Read Only Memory (AREA)
Abstract
本发明揭示了一种平稳闪存写速度的方法、装置、存储介质和计算机设备,其中,所述方法包括:将第一闪存中的指定数据块设置为SLC模式,作为SLC缓冲块;获取单次写入第一闪存所需的数据传输时间和编程时间;根据数据传输时间和编程时间,计算闪存写数据所需的闪存单元的数量;将数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一存储单元的编程时间并行,监测到前面闪存单元有空闲时间后,及时切换到前面闪存单元开始后台数据整理操作,这样可以及时的释放前面闪存单元的SLC缓存块,就可以避免SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速。
Description
技术领域
本发明涉及到闪存领域,特别是涉及到一种平稳闪存写速度的方法、装置、存储介质和计算机设备。
背景技术
闪存的单次写操作一般包含两个部分:第一,将待写数据传输到闪存内部缓存,第二,闪存将内部缓存的数据进行编程,固化在闪存内部存储单元,这部分所花时间通常称为编程busy时间。对于新的TLC(Trinary-Level Cell,三层式存储单元)闪存和QLC(Quad-Level Cell,四层式存储单元),编程busy时间长达1ms以上。
对于SATA(Serial Advanced Technology Attachment hard disk,SATA硬盘)、PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)和UFS这些高速host(主机)接口,空闲时间越来越少,不足以在后台把数据搬移完成,造成闪存写速度明显下降,即出现明显的掉速现象。
发明内容
本发明的主要目的为提供一种平稳闪存写速度的方法,旨在解决闪存写数据时的掉速的技术问题。
本发明提出一种平稳闪存写速度的方法,包括:
将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,第一闪存包含于闪存存储设备中的所有闪存,第一闪存包括TLC单元或QLC单元;
获取单次写入第一闪存所需的数据传输时间和编程时间;
根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
优选的,根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量的步骤,包括:
将编程时间除以数据传输时间,得到商值,商值取整数;
当运算结果不存在余数时,将商值加一,得到闪存单元的第一保底数量;当运算结果存在余数时,商值加二,得到闪存单元的第二保底数量;闪存单元的数量值大于闪存单元的第一保底数量值或第二保底数量值,其中,第一保底数量值和第二保底数量值为保证闪存正常工作所需的闪存单元数量值,为了实现不掉速,闪存中的闪存单元的实际数量的值大于第一保底数量或第二保底数量的值。
优选的,将数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行的步骤,包括:
增加预设数量的闪存单元;
按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
循环执行上述步骤,直至闪存结束写数据。
优选的,将数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行的步骤,包括:
按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
当序列中存在编程时间结束的闪存单元时,优先向该闪存单元发送搬移数据命令信息,然后继续向一待接收数据的闪存单元传输数据,直至闪存结束写数据。
本发明还提供一种平稳闪存写速度的装置,包括:
设置模块,用于将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,第一闪存包含于闪存存储设备中的所有闪存,第一闪存包括TLC单元或QLC单元;
获取模块,用于获取单次写入第一闪存所需的数据传输时间和编程时间;
计算模块,用于根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
执行模块,用于将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
优选的,计算模块包括:
第一计算子模块,用于将编程时间除以数据传输时间,得到商值,商值取整数;
第二计算子模块,用于当运算结果不存在余数时,将商值加一,得到闪存单元的第一保底数量;当运算结果存在余数时,商值加二,得到闪存单元的第二保底数量;闪存单元的数量值大于闪存单元的第一保底数量值或第二保底数量值,其中,第一保底数量值和第二保底数量值为保证闪存正常工作所需的闪存单元数量值,为了实现不掉速,闪存中的闪存单元的实际数量的值大于第一保底数量或第二保底数量的值。
优选的,执行模块包括:
第一执行子模块,用于增加预设数量的闪存单元;
第二执行子模块,用于按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
第三执行子模块循环执行上述步骤,直至闪存结束写数据。
优选的,执行模块还包括:
第四执行子模块,用于按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
第五执行子模块,用于当序列中存在编程时间结束的闪存单元时,优先向该闪存单元发送搬移数据命令信息,然后继续向一待接收数据的闪存单元传输数据,直至闪存结束写数据。
本发明还提供一种存储介质,其为计算机可读的存储介质,其上存储有计算机程序,计算机程序被执行时实现如上述的平稳闪存写速度的方法。
本发明还提供一种计算机设备,其包括处理器、存储器及存储于存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的平稳闪存写速度的方法。
本发明的有益效果在于:将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,使得闪存单元将SLC块中存储的数据转移至TLC块,闪存单元又变成空闲状态,使得数据从SLC块搬移到TLC块,然后在第一闪存单元组中择一闪存单元继续传输数据,这样可以及时的释放前面闪存单元的SLC缓存块,就可以避免SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速,使得主机能正常传输数据到闪存中,平稳了闪存的写速度。
附图说明
图1为本发明一种平稳闪存写速度的方法的第一实施例的流程示意图;
图2为图1中一种平稳闪存写速度的数据传输过程示意图;
图3为本发明一种平稳闪存写速度的方法的第一数据传输过程示意图;
图4为本发明一种平稳闪存写速度的方法的第二数据传输过程示意图;
图5为本发明一种平稳闪存写速度的装置的第一实施例的结构示意图;
图6为本申请提供的存储介质一实施例的结构框图;
图7为本申请提供的计算机设备一实施例的结构框图。
标号说明:
1、设置模块;2、获取模块;3、计算模块;4、执行模块;
100、存储介质;200、计算机程序;300、计算机设备;400、处理器。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1和图2,本发明提供一种平稳闪存写速度的方法,包括:
S1:将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,所述第一闪存包含于闪存存储设备中的所有闪存,所述第一闪存包括TLC单元或QLC单元;
S2:获取单次写入第一闪存所需的数据传输时间和编程时间;
S3:根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
S4:将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的所述编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
在本发明实施例中,闪存单元以TLC单元为例,将TLC单元中的指定数据块设置为SLC模式,其作用为缓冲块,将host(主机)传输来的数据先缓存到SLC块,待闪存单元的空闲时间(未接收数据传输,未处于编程状态)再在后台把SLC块里的数据搬移到TLC块中,其中,SLC模式编程时间一般为200μs左右,依不同的闪存型号会有不同。获取单次写入一闪存中所需的数据传输时间和编程时间。根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量。将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,使得闪存单元将SLC块中存储的数据转移至TLC块,闪存单元又变成空闲状态,使得数据从SLC块搬移到TLC块,然后在第一闪存单元组中择一闪存单元继续传输数据,这样可以及时的释放前面闪存单元的SLC缓存块,就可以避免SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速,使得主机能正常传输数据到闪存中,平稳了闪存的写速度。
进一步地,根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量的步骤S3,包括:
S31:将编程时间除以数据传输时间,得到商值,所述商值取整数;
S32:当运算结果不存在余数时,将所述商值加一,得到闪存单元的第一保底数量;当运算结果存在余数时,所述商值加二,得到闪存单元的第二保底数量;闪存单元的数量值大于闪存单元的第一保底数量值或第二保底数量值,其中,第一保底数量值和第二保底数量值为保证闪存正常工作所需的闪存单元数量值,为了实现不掉速,闪存中的闪存单元的实际数量的值大于第一保底数量或第二保底数量的值。
在本发明实施例中,将编程时间TB除以数据传输时间TA得到一商值,其中,商值取整数。当运算结果不存在余数时,将所述商值加一,得到闪存单元的第一保底数量值;当所述运算结果存在余数时,所述商值加二,得到闪存单元第二保底数量值,所述第一保底数量值和所述第二保底数量值为保证闪存正常工作所需的所述闪存单元数量值。举例的,当将编程时间TB是数据传输时间TA的三倍时,闪存中闪存单元的第一保底数量的值为4。当编程时间TB是数据传输时间TA的非整数倍时,如编程时间TB是数据传输时间TA的1.2倍,则闪存中闪存单元的第二保底数量值为3。通过本技术方案,保证有足够数量的闪存单元,供闪存写数据时用,以平稳闪存写速度。
参照图3,将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行的步骤S4,包括:
S41:增加预设数量的闪存单元;
S42:按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
S43:循环执行上述步骤,直至闪存结束写数据。
在本发明实施例中,以图3为例,闪存的闪存单元数量从四个增加至八个,各闪存单元以串联的形式连接。此外,闪存单元都有CE pin,操作闪存时要先选中它(一般是把CE引脚设成低电平),然后再进行读,写,编程,擦除等操作,如果没有选中,则闪存不会执行这些操作。如果闪存控制器搭配多个闪存单元,则控制器一般是有多个CE引脚分别连接到不同的闪存单元,操作某片闪存之前先选中对应的CE,然后再控制其他控制信号和DATA信号。数据的传输过程如下:host(主机)从CE0开始传输数据,在第一传输时间结束后,不等CE0编程完成,则切换到CE1,将待写数据传输至CE1,CE1数据传输完成后不等编程完成就切换到CE1,向CE1传输待写数据,CE1数据传输完成后不等CE2完成编程,则切换到CE3,向CE3传输待写数据。以此类推,循环执行上述步骤,直至闪存结束写数据。这就将后一闪存单元的数据传输时间和前一闪存单元的编程时间并行,与此同时,前面的闪存单元有足够的空闲时间将数据从SLC块转移到TCL块,使得前面的闪存单元有足够的缓存空间供写入数据,从而避免顺序在前的SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速。
参照图4,将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的所述编程时间并行,检测闪存中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行的步骤S4,包括:
S4A:按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
S4B:当序列中存在编程时间结束的闪存单元时,优先向该闪存单元发送搬移数据命令信息,然后继续向一待接收数据的闪存单元传输数据,直至闪存结束写数据。
本发明实施例中,编程时间TB是数据传输时间TA的三倍。闪存包括八个闪存单元,分别是CE0、CE1.....CE7。按照排序顺序,依次向各闪存单元传输数据,即数据流向为CE0→CE1→CE2→CE3.....CE6→CE7,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行。举例的,CE1开始接收数据时,CE0在编程;CE3在接收数据时,CE2在编程,以此类推。由于在本发明实施例中,编程时间TB是数据传输时间TA的三倍,则当CE0完成编程时,恰好是轮到CE3接收数据。在CE3接收完数据后,此时,闪存控制器并非直接向CE4传输数据,而是向CE0发送搬移数据命令信息,即将CEO对应的闪存单元中SLC块存储的数据搬移至TLC块中。在发送完搬移数据命令信息后,切换到CE4继续传输数据,在数据传输时间4结束后,恰好编程时间1结束,此时,闪存控制器继续向CE1发送搬移数据命令信息。以此类推,直至闪存结束写数据。经过上述设置,当编程结束的闪存单元处于空闲状态时,闪存控制器会立即向其发送搬移数据命令信息,后台开始从SLC块搬移数据到TLC块中,高效地利用闪存单元的空闲时间,保证了host传输数据时有合适数量的闪存单元有足够SLC缓冲块接收数据,从而保证了闪存的传输速度不会掉速。
参照图5,本发明提供一种平稳闪存写速度的装置,包括:
设置模块1,用于将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,所述第一闪存包含于闪存存储设备中的所有闪存,所述第一闪存包括TLC单元或QLC单元;
获取模块2,用于获取单次写入第一闪存所需的数据传输时间和编程时间;
计算模块3,用于根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
执行模块4,用于将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的所述编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在第一闪存单元组中择一闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
在本发明实施例中,闪存单元以TLC单元为例,将TLC单元中的指定数据块设置为SLC模式,其作用为缓冲块,将host(主机)传输来的数据先缓存到SLC块,待闪存单元的空闲时间(未接收数据传输,未处于编程状态)再在后台把SLC块里的数据搬移到TLC块中,其中,SLC模式编程时间一般为200μs左右,依不同的闪存型号会有不同。获取单次写入一闪存中所需的数据传输时间和编程时间。根据数据传输时间和编程时间,计算闪存写数据不掉速所需的闪存单元的数量。将所述数量的闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行,检测闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测闪存存储设备中编程结束的闪存单元的数量,生成第二闪存单元组,在第二闪存单元组中择一闪存单元发送搬移数据命令信息,使得闪存单元将SLC块中存储的数据转移至TLC块,闪存单元又变成空闲状态,使得数据从SLC块搬移到TLC块,然后在第一闪存单元组中择一闪存单元继续传输数据,这样可以及时的释放前面闪存单元的SLC缓存块,就可以避免SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速,使得主机能正常传输数据到闪存中,平稳了闪存的写速度。
进一步地,计算模块3,包括:
第一计算子模块,用于将编程时间除以数据传输时间,得到商值,所述商值取整数;
第二计算子模块,用于当运算结果不存在余数时,将所述商值加一,得到闪存单元的第一保底数量;当运算结果存在余数时,所述商值加二,得到闪存单元的第二保底数量;闪存单元的数量值大于闪存单元的第一保底数量值或第二保底数量值,其中,第一保底数量值和第二保底数量值为保证闪存正常工作所需的闪存单元数量值,为了实现不掉速,闪存中的闪存单元的实际数量的值大于第一保底数量或第二保底数量的值。
在本发明实施例中,将编程时间TB除以数据传输时间TA得到一商值,其中,商值取整数。当运算结果不存在余数时,将所述商值加一,得到闪存单元的第一保底数量值;当所述运算结果存在余数时,所述商值加二,得到闪存单元第二保底数量值,所述第一保底数量值和所述第二保底数量值为保证闪存正常工作所需的所述闪存单元数量值。举例的,当将编程时间TB是数据传输时间TA的三倍时,闪存中闪存单元的第一保底数量的值为4。当编程时间TB是数据传输时间TA的非整数倍时,如编程时间TB是数据传输时间TA的1.2倍,则闪存中闪存单元的第二保底数量值为3。通过本技术方案,保证有足够数量的闪存单元,供闪存写数据时用,以平稳闪存写速度。
进一步地,执行模块4包括:
第一执行子模块,用于增加预设数量的闪存单元;
第二执行子模块,用于按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
第三执行子模块,用于循环执行上述步骤,直至闪存结束写数据。
在本发明实施例中,以图3为例,闪存的闪存单元数量从四个增加至八个,各闪存单元以串联的形式连接。此外,闪存单元都有CE pin,操作闪存时要先选中它(一般是把CE引脚设成低电平),然后再进行读,写,编程,擦除等操作,如果没有选中,则闪存不会执行这些操作。如果闪存控制器搭配多个闪存单元,则控制器一般是有多个CE引脚分别连接到不同的闪存单元,操作某片闪存之前先选中对应的CE,然后再控制其他控制信号和DATA信号。数据的传输过程如下:host(主机)从CE0开始传输数据,在第一传输时间结束后,不等CE0编程完成,则切换到CE1,将待写数据传输至CE1,CE1数据传输完成后不等编程完成就切换到CE1,向CE1传输待写数据,CE1数据传输完成后不等CE2完成编程,则切换到CE3,向CE3传输待写数据。以此类推,循环执行上述步骤,直至闪存结束写数据。这就将后一闪存单元的数据传输时间和前一闪存单元的编程时间并行,与此同时,前面的闪存单元有足够的空闲时间将数据从SLC块转移到TCL块,使得前面的闪存单元有足够的缓存空间供写入数据,从而避免顺序在前的SLC缓冲块用完时,闪存单元无法写数据,导致闪存写速度突然掉速。
进一步地,执行模块4还包括:
第四执行子模块,用于按照排序顺序,依次向各闪存单元传输数据,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行;
第五执行子模块,用于当序列中存在编程时间结束的闪存单元时,优先向该闪存单元发送搬移数据命令信息,然后继续向一待接收数据的闪存单元传输数据,直至闪存结束写数据。
本发明实施例中,编程时间TB是数据传输时间TA的三倍。闪存包括八个闪存单元,分别是CE0、CE1.....CE7。按照排序顺序,依次向各闪存单元传输数据,即数据流向为CE0→CE1→CE2→CE3.....CE6→CE7,使得后一闪存单元的数据传输时间与前一闪存单元的编程时间并行。举例的,CE1开始接收数据时,CE0在编程;CE3在接收数据时,CE2在编程,以此类推。由于在本发明实施例中,编程时间TB是数据传输时间TA的三倍,则当CE0完成编程时,恰好是轮到CE3接收数据。在CE3接收完数据后,此时,闪存控制器并非直接向CE4传输数据,而是向CE0发送搬移数据命令信息,即将CEO中SLC块存储的数据搬移至TLC块中。在发送完搬移数据命令信息后,切换到CE4继续传输数据,在数据传输时间4结束后,恰好编程时间1结束,此时,闪存控制器继续向CE1发送搬移数据命令信息。以此类推,直至闪存结束写数据。经过上述设置,当编程结束的闪存单元处于空闲状态时,闪存控制器会立即向其发送搬移数据命令信息,后台开始从SLC块搬移数据到TLC块中,高效地利用闪存单元,保证了host传输数据时有合适数量的闪存单元有足够空间接收数据,从而保证了闪存的传输速度不会掉速。
参考附图6,本申请还提供了一种存储介质100,存储介质100中存储有计算机程序200,当其在计算机上运行时,使得计算机执行以上实施例所描述的平稳闪存写速度的方法。
参考附图7,本申请还提供了一种包含指令的计算机设备300,当其在计算机设备300上运行时,使得计算机设备300通过其内部设置的处理器400执行以上实施例所描述的平稳闪存写速度的方法。
本领域技术人员可以理解,本发明所述的平稳闪存写速度的方法和上述所涉及用于执行本申请中所述方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序或应用程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种平稳闪存写速度的方法,其特征在于,包括:
将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,所述第一闪存包含于闪存存储设备中的所有闪存,所述第一闪存包括TLC单元或QLC单元;
获取单次写入所述第一闪存所需的数据传输时间和编程时间;
根据所述数据传输时间和所述编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
将所述数量的所述闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各所述闪存单元,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行,检测所述闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测所述闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在所述第二闪存单元组中择一所述闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在所述第一闪存单元组中择一所述闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
2.根据权利要求1所述的平稳闪存写速度的方法,其特征在于,所述根据所述数据传输时间和所述编程时间,计算闪存写数据不掉速所需的闪存单元的数量的步骤,包括:
将所述编程时间除以所述数据传输时间,得到商值,所述商值取整数;
当运算结果不存在余数时,将所述商值加一,得到所述闪存单元的第一保底数量;当所述运算结果存在余数时,所述商值加二,得到所述闪存单元的第二保底数量;所述闪存单元的数量值大于所述闪存单元的所述第一保底数量值或所述第二保底数量值,其中,所述第一保底数量值和所述第二保底数量值为保证闪存正常工作所需的所述闪存单元数量值,为了实现不掉速,所述闪存中的所述闪存单元的实际数量的值大于所述第一保底数量或所述第二保底数量的值。
3.根据权利要求2所述的平稳闪存写速度的方法,其特征在于,所述将所述数量的所述闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各所述闪存单元,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行的步骤,包括:
增加预设数量的所述闪存单元;
按照排序顺序,依次向各所述闪存单元传输数据,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行;
循环执行上述步骤,直至闪存结束写数据。
4.根据权利要求2所述的平稳闪存写速度的方法,其特征在于,所述将所述数量的所述闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各所述闪存单元,使得后一闪存单元的数据传输时间与前一闪存单元的所述编程时间并行,检测所述闪存中空闲闪存单元的数量,生成第一闪存单元组,检测所述闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在所述第二闪存单元组中择一所述闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在所述第一闪存单元组中择一所述闪存单元继续传输数据,传输数据和后台搬移数据并行的步骤,包括:
按照排序顺序,依次向各所述闪存单元传输数据,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行;
当序列中存在所述编程时间结束的所述闪存单元时,优先向该所述闪存单元发送搬移数据命令信息,然后继续向一待接收数据的所述闪存单元传输数据,直至闪存结束写数据。
5.一种平稳闪存写速度的装置,其特征在于,包括:
设置模块,用于将第一闪存中的指定存储单元设置为SLC模式,作为SLC缓冲块,其中,所述第一闪存包含于闪存存储设备中的所有闪存,所述第一闪存包括TLC单元或QLC单元;
获取模块,用于获取单次写入所述第一闪存所需的数据传输时间和编程时间;
计算模块,用于根据所述数据传输时间和所述编程时间,计算闪存写数据不掉速所需的闪存单元的数量;
执行模块,用于将所述数量的所述闪存单元依次排序,从第一闪存单元起,按照预设顺序将数据写入各所述闪存单元,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行,检测所述闪存存储设备中空闲闪存单元的数量,生成第一闪存单元组,检测所述闪存存储设备中编程结束的所述闪存单元的数量,生成第二闪存单元组,在所述第二闪存单元组中择一所述闪存单元发送搬移数据命令信息,从而释放SLC缓冲块,然后在所述第一闪存单元组中择一所述闪存单元继续传输数据,传输数据和后台搬移数据并行,在不影响传输数据的情况下避免了SLC缓冲块用完,以平稳闪存写速度。
6.根据权利要求5所述的平稳闪存写速度的装置,其特征在于,所述计算模块包括:
第一计算子模块,用于将所述编程时间除以所述数据传输时间,得到商值,所述商值取整数;
第二计算子模块,用于当运算结果不存在余数时,将所述商值加一,得到所述闪存单元的第一保底数量;当所述运算结果存在余数时,所述商值加二,得到所述闪存单元的第二保底数量;所述闪存单元的数量值大于所述闪存单元的所述第一保底数量值或所述第二保底数量值,其中,所述第一保底数量值和所述第二保底数量值为保证闪存正常工作所需的所述闪存单元数量值,为了实现不掉速,所述闪存中的所述闪存单元的实际数量的值大于所述第一保底数量或所述第二保底数量的值。
7.根据权利要求6所述的平稳闪存写速度的装置,其特征在于,所述执行模块包括:
第一执行子模块,用于增加预设数量的所述闪存单元;
第二执行子模块,用于按照排序顺序,依次向各所述闪存单元传输数据,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行;
第三执行子模块循环执行上述步骤,直至闪存结束写数据。
8.根据权利要求6所述的平稳闪存写速度的装置,其特征在于,所述执行模块还包括:
第四执行子模块,用于按照排序顺序,依次向各所述闪存单元传输数据,使得后一所述闪存单元的所述数据传输时间与前一所述闪存单元的所述编程时间并行;
第五执行子模块,用于当序列中存在所述编程时间结束的所述闪存单元时,优先向该所述闪存单元发送搬移数据命令信息,然后继续向一待接收数据的所述闪存单元传输数据,直至闪存结束写数据。
9.一种存储介质,其特征在于,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如权利要求1~4任一项所述的平稳闪存写速度的方法。
10.一种计算机设备,其特征在于,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~4任一项所述的平稳闪存写速度的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110027038.8A CN112767976B (zh) | 2021-01-09 | 2021-01-09 | 平稳闪存写速度的方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110027038.8A CN112767976B (zh) | 2021-01-09 | 2021-01-09 | 平稳闪存写速度的方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112767976A CN112767976A (zh) | 2021-05-07 |
CN112767976B true CN112767976B (zh) | 2023-09-01 |
Family
ID=75701151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110027038.8A Active CN112767976B (zh) | 2021-01-09 | 2021-01-09 | 平稳闪存写速度的方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112767976B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116931842B (zh) * | 2023-09-12 | 2023-12-08 | 合肥康芯威存储技术有限公司 | 一种存储器、数据处理方法、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293648A (ja) * | 2008-08-05 | 2008-12-04 | Renesas Technology Corp | 半導体記憶装置 |
CN109524044A (zh) * | 2017-09-18 | 2019-03-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110033809A (zh) * | 2018-01-11 | 2019-07-19 | 英特尔公司 | 可编程逻辑器件的可编程逻辑结构可访问的扇区对齐存储器 |
CN110989918A (zh) * | 2018-10-03 | 2020-04-10 | 慧荣科技股份有限公司 | 写入控制方法以及数据存储装置及其控制器 |
CN111625481A (zh) * | 2020-04-28 | 2020-09-04 | 深圳市德明利技术股份有限公司 | 一种防止闪存比特错误放大的方法和装置以及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4225749B2 (ja) * | 2002-08-07 | 2009-02-18 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
KR100621637B1 (ko) * | 2005-06-03 | 2006-09-07 | 삼성전자주식회사 | 프로그램 시간을 단축시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법 |
TWI415128B (zh) * | 2009-08-03 | 2013-11-11 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
JP2012119038A (ja) * | 2010-12-02 | 2012-06-21 | Toshiba Corp | 不揮発性半導体メモリ及び記憶装置 |
-
2021
- 2021-01-09 CN CN202110027038.8A patent/CN112767976B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293648A (ja) * | 2008-08-05 | 2008-12-04 | Renesas Technology Corp | 半導体記憶装置 |
CN109524044A (zh) * | 2017-09-18 | 2019-03-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110033809A (zh) * | 2018-01-11 | 2019-07-19 | 英特尔公司 | 可编程逻辑器件的可编程逻辑结构可访问的扇区对齐存储器 |
CN110989918A (zh) * | 2018-10-03 | 2020-04-10 | 慧荣科技股份有限公司 | 写入控制方法以及数据存储装置及其控制器 |
CN111625481A (zh) * | 2020-04-28 | 2020-09-04 | 深圳市德明利技术股份有限公司 | 一种防止闪存比特错误放大的方法和装置以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112767976A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9679658B2 (en) | Method and apparatus for reducing read latency for a block erasable non-volatile memory | |
US8667229B2 (en) | Data access method of a memory device | |
US20160291878A1 (en) | Memory controller including host command queue and method of operating the same | |
US11630766B2 (en) | Memory system and operating method thereof | |
EP3511814B1 (en) | Storage device storing data in order based on barrier command | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
US20120254520A1 (en) | Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices | |
US10140024B2 (en) | Data storage device and data reading method thereof | |
CN112534392A (zh) | 用于存储器系统中的读取操作的服务质量控制 | |
CN109471819B (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN111897743B (zh) | 数据储存装置及逻辑至物理地址映射表的载入方法 | |
CN108932108A (zh) | 快闪存储器的命令排程及执行方法以及使用该方法的装置 | |
CN111813703B (zh) | 数据储存装置及逻辑至物理地址映射表的更新方法 | |
CN109614049B (zh) | 闪存控制方法、闪存控制器及闪存系统 | |
CN107797755A (zh) | 固态硬盘系统的原子写入方法以及使用该方法的装置 | |
CN108958643A (zh) | 数据存储装置及其操作方法 | |
CN112767976B (zh) | 平稳闪存写速度的方法、装置、存储介质和计算机设备 | |
KR20170001235A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN106484315B (zh) | 读取及写入命令排程方法以及使用该方法的装置 | |
US8250319B2 (en) | Operating an emulated electrically erasable (EEE) memory | |
CN107797756A (zh) | 固态硬盘系统的优先写入方法以及使用该方法的装置 | |
CN112256203A (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
CN110874333B (zh) | 存储设备及存储方法 | |
US10282328B2 (en) | Apparatus having direct memory access controller and method for accessing data in memory | |
KR20210055448A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |