CN108920387A - 降低读延迟的方法、装置、计算机设备及存储介质 - Google Patents
降低读延迟的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN108920387A CN108920387A CN201810574322.5A CN201810574322A CN108920387A CN 108920387 A CN108920387 A CN 108920387A CN 201810574322 A CN201810574322 A CN 201810574322A CN 108920387 A CN108920387 A CN 108920387A
- Authority
- CN
- China
- Prior art keywords
- read
- nand
- data
- buffer
- inspection result
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及降低读延迟的方法、装置、计算机设备及存储介质,该方法包括在NAND数据写入阶段按照特定的规则进行地址分配;获取请求,判断请求是否为读请求;若是,根据读请求进行缓存记录表的检查,获取检查结果;根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取。本发明通过按照特定的规则进行地址分配,并结合基于NAND的两级缓存机制和预读特性的预读策略,减少数据响应的延迟,有效提高NAND的数据操作效率。
Description
技术领域
本发明涉及固态硬盘数据读取方法,更具体地说是指降低读延迟的方法、装置、计算机设备及存储介质。
背景技术
DIE是Nand基本的操作单元,含有不少于一个面(即Plane),DIE内的块(即Block)划分后属于不同的面。每个面均有其对应的第一级缓存器和第二级缓存器,多个面可通过DIE级别的命令并行对数据操作。第二级缓存器和第一级缓存器的存储空间大小等同于物理页单元的大小,第一级缓存器缓存的数据可以通过特定的命令访问,但无法通过命令手段获取当前第一级缓存器缓存的是哪一个块中的哪一个物理页的数据,而第二级数据缓存对外界不可见,不能通过命令手段获取,它的作用在于为NAND内部的缓存功能,即第二级缓存器和第一级缓存器不同之处在于第一级缓存器提供对外界可见的数据缓存功能。
如图1所示,常规读策略是检测到读请求直接发起NAND的读操作,NAND响应命令,等待NAND存储阵列准备好数据,将准备好的数据转移到数据地址所属面的第一级缓存器,读请求响应时间为NAND存储阵列的数据准备时间加上数据在IO总线上的传输时间。在顺序读场景中,被读取数据的LPA也是连续的,但到NAND命令执行层面有可能变成分散的读命令,以LPA0-LPA7的数据块读取为例,如果LPA0-LPA3属于某个物理页,LPA4-LPA7属于另一个物理页,LPA0-LPA3和LPA4-LPA7均可物理页一次性读取,但如果这两个物理页属于不同的面,可进行数据的并行准备,否则只能进行依次操作。由于LPA0-LPA3和LPA4-LPA7分属于两个面,消耗一个物理页的数据准备时间内,实际上准备好了两个物理页数据。
因此,有必要设计一种新的方法,实现减小数据响应延迟,有效提高NAND的数据操作效率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供降低读延迟的方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:降低读延迟的方法,所述方法包括:
在NAND数据写入阶段按照特定的规则进行地址分配;
获取请求,判断请求是否为读请求;
若是,根据读请求进行缓存记录表的检查,获取检查结果;
根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取。
其进一步技术方案为:在NAND数据写入阶段按照特定的规则进行地址分配的步骤,所述特定的规则包括:
将连续读取的数据块按物理页切分,形成的物理页大小的次级数据块;将物理页级别的数据块按照NAND端并行数据操作的原则分散到不同的面。
其进一步技术方案为:根据读请求进行缓存记录表的检查,获取检查结果的步骤,包括以下具体步骤:
根据读请求进行缓存记录表的检查,获取命中缓存器的情况;
根据命中缓存器的情况形成检查结果。
其进一步技术方案为:根据命中缓存器的情况形成检查结果的步骤,包括以下具体步骤:
判断数据暂存的区域是否为NAND的第一级缓存器;
若是,则检查结果为命中第一级缓存器;
若否,则判断数据暂存的区域是否为NAND的第二级缓存器;
若是,则检查结果为命中第二级缓存器;
若否,则检查结果为非命中缓存器。
其进一步技术方案为:根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取的步骤,包括以下具体步骤:
判断检查结果是否为命中第一级缓存器;
若检查结果是命中第一级缓存器,则读取第一级缓存器的数据;
若检查结果不是命中第一级缓存器,则判断检查结果是否为命中第二级缓存器;
若检查结果是命中第二级缓存器,则判断是否可通过预读策略获取预读地址;
若是,则发起预读操作;
更新缓存记录表,返回读取第一级缓存器的数据的步骤;
若否,则关闭NAND预读功能,并返回所述更新缓存记录表,返回读取第一级缓存器的数据的步骤;
若检查结果不是命中第二级缓存器,则判断NAND是否处于预读状态;
若NAND不处于预读状态,则发起当前读请求的操作命令;
更新缓存记录表;
判断是否可通过预读策略获取预读地址;
若可通过预读策略获取预读地址,则返回发起预读操作的步骤;
若不可通过预读策略获取预读地址,则返回读取第一级缓存器的数据的步骤;
若NAND处于预读状态,则关闭NAND的预读功能,并返回发起当前读请求的操作命令的步骤。
其进一步技术方案为:获取请求,判断请求是否为读请求的步骤之后,还包括:
若否,则判断NAND是否处于预读状态;
若NAND处于预读状态,则关闭NAND预读功能,并更新缓存记录表;
若NAND不处于预读状态,则进入结束步骤。
本发明还提供了降低读延迟的装置,包括分配单元、请求获取单元、结果获取单元以及读取单元;
所述分配单元,用于在NAND数据写入阶段按照特定的规则进行地址分配;
所述请求获取单元,用于获取请求,判断请求是否为读请求;
所述结果获取单元,用于若是,根据读请求进行缓存记录表的检查,获取检查结果;
所述读取单元,用于根据检查结果,利用NAND的两级第一级缓存器的预读特性对数据进行读取。
其进一步技术方案为:所述结果获取单元包括区域获取模块以及命中情况获取模块;
所述区域获取模块,用于根据读请求进行缓存记录表的检查,获取命中缓存器的情况;
所述命中情况获取模块,用于根据命中缓存器的情况形成检查结果。
本发明还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的降低读延迟的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的降低读延迟的方法。
本发明与现有技术相比的有益效果是:本发明的降低读延迟的方法,通过对NAND数据写入阶段按照特定的规则进行地址分配,结合基于NAND的两级缓存机制和预读特性的预读策略,减少数据响应的延迟,有效提高NAND的数据操作效率。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为现有技术的常规读策略的示意流程图;
图2为本申请一具体实施例提供的降低读延迟的方法的示意流程图;
图3为本申请一具体实施例提供的在NAND数据写入阶段按照特定的规则进行地址分配的示意流程图;
图4为图2提供的降低读延迟的方法的子步骤示意流程图;
图5为图2提供的根据数据暂存的区域获取命中缓存器的情况并形成检查结果的示意流程图;
图6为图2提供的降低读延迟的方法的子步骤示意流程图;
图7为本申请一具体实施例提供的降低读延迟的装置的示意性框图;
图8为本申请一具体实施例提供的结果获取单元的示意性框图;
图9为本申请一具体实施例提供的命中情况获取模块的示意性框图;
图10为本申请一具体实施例提供的读取单元的示意性框图;
图11为本申请一具体实施例提供的一种计算机设备的示意性框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如图2~11所示的具体实施例,本实施例提供的降低读延迟的方法、装置、计算机设备及存储介质,可以运用在对SSD进行数据读取的过程中,实现减小数据响应延迟,有效提高NAND的数据操作效率。
请参照图2,图2是本申请一具体实施例提供的降低读延迟的方法的示意流程图;如图2所示,降低读延迟的方法,方法包括步骤S101~S106:
S101、在NAND数据写入阶段按照特定的规则进行地址分配。
在本实施例中,上述的特定的规则包括:将连续读取的数据块按物理页切分,形成的物理页大小的次级数据块;将物理页级别的数据块按照NAND端并行数据操作的原则分散到不同的面块。提高读阶段NAND端数据准备效率。
上述的地址分配特定的规则能有效利用NAND的并行操作(Multi_Plane)的特性,在消耗同样的NAND存储阵列的数据准备时间内,使得单位NAND存储阵列的数据准备时间内数据量加倍。
请参阅图3,地址分配的特定规则描述时均以常规读策略为例说明。主机一系列连续LPA类型的数据散列到NAND的地址分配规则如图3所示。图3展示连续LPA的地址分配与操作、块、物理页的关系,这种写地址分配规则能有效提升顺序读性能,同时也是应用预读特性对数据进行读取的前提。如图3所示,逻辑页地址LPA0-LPA7这个区间段的数据LPA0-LPA3属于Plane0Block0Page0(面0中块0的物理页0),逻辑页地址LPA4-LPA7属于Plane1Block1Page0(面1中块1的物理页0),满足Multi_Plane并行操作规则,可使得写入LPA0-LPA3数据的时间内,同时也能写入LPA4-LPA7的数据。
设置该特定的规则进行地址分配,在读取数据时,一次性在NAND的第一级缓存器准备预期读数据,譬如在顺序读场景中,执行逻辑页地址LPA0读的时候,将读操作拆分成两步:Multi_Plane Read Cmd和Read Data Cmd,Multi_Plane在一个tR时间内将逻辑页地址LPA0-LPA3以及逻辑页地址LPA 4-LPA 7的数据在面0、面1的第一级缓存器准备好,更新第一级缓存器的记录信息(即记录表记录每个操作的第一级缓存器的数据来源于哪个块内的哪个物理页),再执行逻辑页地址LPA 0的读取数据操作,后续紧接着有LPA1-LPA7的读取需求时,查询第一级缓存器记录信息,确认第一级缓存器内存储着当前请求数据,直接执LPA1-LPA 7的读取数据操作。
基于DIE(可独立并行操作的单元)的操作时串行化的前提下,第一级缓存器记录信息可在读取操作执行完毕后更新为有效状态,同时更新第一级缓存器数据的地址信息,其他对DIE的操作(譬如编写命令、擦除命令等会影响第一级缓存器状态的操作)均更新为无效状态。
同一个DIE内面0和面1的块可组成Multi_Plane操作,其中Multi_Plane擦除要求满足不同的操作即可,Multi_Plane编写、Multi_Plane读取另外还要求物理页也一致,以Multi_Plane擦除为例,擦除两个块的时间消耗等同于擦除单一个块的时间,即Multi_Plane操作效率翻倍。
保证连续的主机读请求能落到组成Multi_Plane操作的NAND物理块页地址上,使得需求数据并行读取以减少总体的NAND存储阵列的数据准备时间。
S102、获取请求,判断请求是否为读请求。
确保是针对读取数据的过程中,进行预读取的操作。
S103、若是,根据读请求进行缓存记录表的检查,获取检查结果。
在本实施例中,具体是根据缓存记录表内的登记内容,获取读请求需要读取的数据对应的地址,也就是存储在哪个块内的哪个物理页内。
S104、根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取。
NAND的预读功能实现建立在NAND的两级缓存机制和预读特性的基础上,两级缓存机制和预读特性的结合有效降低读请求在慢速NAND端的响应延迟。
NAND提供的预读特性可以充分利用两级缓存器(即第二级缓存器和第一级缓存器)。以物理页0、1读取为例,高效的读取方式应按照如下命令流组织,首先发起物理页0的读命令操作,使得物理页0数据进入第二级缓存器,再发起物理页1的预读取命令操作,使得物理页0数据从第二级缓存器转移到第一级缓存器,当第一级缓存器数据可读时,发起读数据命令读取物理页0数据,IO总线输出物理页0数据的同时,NAND数组准备物理页1数据送往第二级缓存器,最后要读取物理页1数据,先发起结束预读命令操作,使得物理页1数据转移到第一级缓存器,该命令流的操作相比常规读策略可节约NAND数组物理页1的数据准备时间、物理页0数据在IO总线上的传输时间中的最小者的时间值。
预读特性的支持涉及到两种类型的读命令,其一正常读操作命令,其二预读操作命令,前者是NAND数组准备好数据直接放入第一级缓存器,后者是NAND数组准备好数据放入第二级缓存器,从第一级缓存器中可通过读取数据命令获取到缓存的数据。
从NAND结构和特性入手,并以优化的读写规则作适配,尽可能地利用NAND的两级缓存器提供的数据缓存功能实现预读功能以最大程度地减小数据响应延迟,有效提高NAND的数据操作效率。
S105、若否,则判断NAND是否处于预读状态;
S106、若NAND处于预读状态,则关闭NAND预读功能,并更新缓存记录表;
若NAND不处于预读状态,则进入结束步骤。
每涉及到NAND端的第一级缓存器或第二级缓存器状态的命令操作都会触发更新缓存记录表,不管是读操作还是写操作等其他任一操作,预读功能考虑封闭性,任何非读请求的操作都会导致NAND端预读状态的关闭,直至后面的读请求重建预读状态,预读命令流的关闭与否同时也取决于预读策略调度的输出。
具体地,如图4所示,S103、根据读请求进行缓存记录表的检查,获取检查结果的步骤,包括步骤S1031~S1032:
S1031、根据读请求进行缓存记录表的检查,获取命中缓存器的情况;
S1032、根据命中缓存器的情况形成检查结果。
记录表记录请求读取的数据来源于哪个块内的哪个物理页,即可获取到数据暂存的区域,由获取的暂存区域获取到数据命中哪个缓存器或者是否未命中缓存器。
另外,请参阅图5所示,S1032、根据命中缓存器的情况形成检查结果的步骤,包括S1032a~S1032e:
S1032a、判断数据暂存的区域是否为NAND的第一级缓存器;
S1032b、若是,则检查结果为命中第一级缓存器;
S1032c、若否,则判断数据暂存的区域是否为NAND的第二级缓存器;
S1032d、若是,则检查结果为命中第二级缓存器;
S1032e、若否,则检查结果为非命中缓存器。
具体地,如图6所示,S104、根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取的步骤,包括步骤S104a~S104l:
S104a、判断检查结果是否为命中第一级缓存器;
若检查结果是命中第一级缓存器,则S104b、读取第一级缓存器的数据;
S104c、若检查结果不是命中第一级缓存器,则判断检查结果是否为命中第二级缓存器;
S104d、若检查结果是命中第二级缓存器,则判断是否可通过预读策略获取预读地址;
若是,则S104e、发起预读操作;
S104f、更新缓存记录表,并返回S104b步骤;
S104g、若否,则关闭NAND预读功能,并返回S104f步骤;
S104h、若检查结果不是命中第二级缓存器,则判断NAND是否处于预读状态;
若NAND不处于预读状态,则S104i、发起当前读请求的操作命令;
S104j、更新缓存记录表;
S104k、判断是否可通过预读策略获取预读地址;
若可通过预读策略获取预读地址,则返回S104e步骤;
若不可通过预读策略获取预读地址,则返回S104b步骤;
S104l、若NAND处于预读状态,则关闭NAND的预读功能,并返S104i步骤。
对于读请求首先进行缓存记录表的检查,命中第一级缓存器,则表明数据暂存于NAND端的第一级缓存器,此时可直接发起读取数据命令的操作读取该数据;命中第二级缓存器时,则表明数据暂存于第二级缓存器,可通过预读策略选择下一个地址的预读操作命令或者预读操作终止命令触发NAND端第二级缓存器内部搬移到第一级缓存器,即当下一个地址的预读操作命令被触发或预读操作终止命令被出发,则将NAND端第二级缓存器内部的数据搬移到第一级缓存器内,然后再发起读取数据命令的操作读取预期数据;非命中缓存器时,需要根据记录信息确认NAND端是否处于预读状态,如果是则发起预读操作终止命令关闭NAND的预读状态,然后再发起当前读请求的读操作命令,预读策略的调度决定是否预读下一个地址的数据,再直接读取存放于第一级缓存器的当前读请求的数据。
每涉及到NAND端的第一级缓存器或第二级缓存器状态的命令操作都会触发更新缓存记录表,预读功能考虑封闭性,任何非读请求的操作都会导致NAND端预读状态的关闭,直至后面的读请求重建预读状态。预读命令流的关闭与否同时也取决于预读策略调度的输出。
对于S104k而言,上述的预读策略会解析当前DIE紧接着当前读请求之后的请求,存在两种可能性:一是后面存在请求,根据后面的请求类型决定是否存在预读的可能性,非读请求则预读调度策略会决定关闭NAND的预读状态,读请求则可以直接获取到其地址进行预读;二是当前读请求之后并不存在其他请求,此时根据当前读请求是否是顺序读类型以及是否是NAND块的末尾页,对于随机读请求(非顺序读类型),无法预测出下一个预读块页地址,对于顺序读类型,如果当前读请求是块的末尾页,也无法预测出下一个预读块页地址(固件系统并非顺序使用块)。
通过预读机制使用两级缓存器在NAND存储阵列准备数据阶段IO总线并行输出预期数据,相对于减少每个读请求在NAND端的数据准备时间。
NAND数据写入阶段按照特定的规则进行地址分配,保证连续的主机读请求能落到组成Multi_Plane操作的NAND物理块页地址上,使得需求数据并行读取以减少总体的NAND存储阵列数据准备时间,同时有效利用NAND的两级第一级缓存器,进行第一次Multi_Plane读操作数据进入第一级缓存器,预测下一段需求数据的地址进行预读取数据进入第二级缓存器,后续主机读命令先检索NAND的两级缓存器中是否存在当前请求的数据,如果存在于第一缓存器则直接读取,如果存在于第二缓存器则继续预测下一段需求数据的地址发起预读取的动作,同时NAND内部自动触发命中数据从第二缓存器转移到第一缓存器,以远小于NAND数组准备数据时间的代价实现数据的快速响应,从NAND结构和特性入手,并以优化的读写规则作适配,尽可能地利用NAND的两级缓存器提供的数据缓存功能实现预读功能以最大程度地减小数据响应延迟,有效提高NAND的数据操作效率。
上述的降低读延迟的方法,通过对NAND数据写入阶段按照特定的规则进行地址分配,结合基于NAND的两级缓存机制和预读特性的预读策略,减少数据响应的延迟,有效提高NAND的数据操作效率。
请参阅图7,图7是为本申请一具体实施例提供的降低读延迟的装置的示意性框图;如图7所示,降低读延迟的装置,包括分配单元1、请求获取单元2、结果获取单元3、读取单元4、预读判断单元5以及预读状态处理单元6。
分配单元1,用于在NAND数据写入阶段按照特定的规则进行地址分配。
请求获取单元2,用于获取请求,判断请求是否为读请求。
结果获取单元3,用于若是,根据读请求进行缓存记录表的检查,获取检查结果。
读取单元4,用于根据检查结果,利用NAND的两级第一级缓存器的预读特性对数据进行读取。
预读判断单元5,用于若否,则判断NAND是否处于预读状态;
预读状态处理单元6,用于若NAND处于预读状态,则关闭NAND预读功能,并更新缓存记录表。
具体地,如图8所示,结果获取单元3包括区域获取模块31以及命中情况获取模块32。
区域获取模块31,用于根据读请求进行缓存记录表的检查,获取命中缓存器的情况。
命中情况获取模块32,用于根据命中缓存器的情况形成检查结果。
另外,如图9所示,上述的命中情况获取模块32包括第一判断模块321以及第二判断模块322。
第一判断模块321,用于判断数据暂存的区域是否为NAND的第一级缓存器;若是,则检查结果为命中第一级缓存器。
第二判断模块322,用于若否,则判断数据暂存的区域是否为NAND的第二级缓存器;若是,则检查结果为命中第二级缓存器;若否,则检查结果为非命中缓存器。
具体地,如图10所示,上述的读取单元4包括第一命中判断模块41、数据读取模块42、第二命中判断模块43、第一预读判断模块44、关闭模块45、预读操作发起模块46、第一更新模块47、预读状态判断模块48、操作命令发起模块49、第二更新模块491以及第二预读判断模块492。
第一命中判断模块41,用于判断检查结果是否为命中第一级缓存器。
数据读取模块42,用于若检查结果是命中第一级缓存器,读取第一级缓存器的数据。
第二命中判断模块43,用于若检查结果不是命中第一级缓存器,则判断检查结果是否为命中第二级缓存器。
第一预读判断模块44,用于若检查结果是命中第二级缓存器,则判断是否可通过预读策略获取预读地址。
关闭模块45,用于若否,则关闭NAND预读功能。
预读操作发起模块46,用于若是,则发起预读操作。
第一更新模块47,用于更新缓存记录表。
预读状态判断模块48,用于若检查结果不是命中第二级缓存器,则判断NAND是否处于预读状态。
操作命令发起模块49,用于若NAND不处于预读状态,则发起当前读请求的操作命令。
第二更新模块491,用于更新缓存记录表。
第二预读判断模块492,用于判断是否可通过预读策略获取预读地址。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的降低读延迟的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述降低读延迟的装置可以实现为一种计算机程序的形式,计算机程序可以在如图11所示的计算机设备上运行。
上述的降低读延迟的装置,通过对NAND数据写入阶段按照特定的规则进行地址分配,结合基于NAND的两级缓存机制和预读特性的预读策略,减少数据响应的延迟,有效提高NAND的数据操作效率。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700设备可以是终端或服务器。
参照图11,该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种降低读延迟的方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种降低读延迟的方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
在NAND数据写入阶段按照特定的规则进行地址分配;
获取请求,判断请求是否为读请求;
若是,根据读请求进行缓存记录表的检查,获取检查结果;
根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码以实现根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取的步骤之后,还实现了以下步骤:
若否,则判断NAND是否处于预读状态;
若NAND处于预读状态,则关闭NAND预读功能,并更新缓存记录表;
若NAND不处于预读状态,则进入结束步骤。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码以实现在NAND数据写入阶段按照特定的规则进行地址分配的步骤中,所述特定的规则包括:将七个逻辑页地址内前三个逻辑页地址写入某一物理页的数据;将七个逻辑页地址内前三个逻辑页地址写入不同程序中不同块的同一物理页的数据。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码以实现根据读请求进行缓存记录表的检查,获取检查结果,包括以下具体内容:根据读请求进行缓存记录表的检查,获取命中缓存器的情况;以及根据命中缓存器的情况形成检查结果。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码以实现根据命中缓存器的情况形成检查结果中,包括以下具体内容:判断数据暂存的区域是否为NAND的第一级缓存器;若是,则检查结果为命中第一级缓存器;若否,则判断数据暂存的区域是否为NAND的第二级缓存器;若是,则检查结果为命中第二级缓存器;以及若否,则检查结果为非命中缓存器。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码以实现根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取中,包括以下具体内容:判断检查结果是否为命中第一级缓存器;若检查结果是命中第一级缓存器,则读取第一级缓存器的数据;若检查结果不是命中第一级缓存器,则判断检查结果是否为命中第二级缓存器;若检查结果是命中第二级缓存器,则判断是否可通过预读策略获取预读地址;若是,则发起预读操作;更新缓存记录表,返回读取第一级缓存器的数据的步骤;若否,则关闭NAND预读功能,并返回所述更新缓存记录表,返回读取第一级缓存器的数据的步骤;若检查结果不是命中第二级缓存器,则判断NAND是否处于预读状态;若NAND不处于预读状态,则发起当前读请求的操作命令;更新缓存记录表;判断是否可通过预读策略获取预读地址;若可通过预读策略获取预读地址,则返回发起预读操作的步骤;若不可通过预读策略获取预读地址,则返回读取第一级缓存器的数据的步骤;以及若NAND处于预读状态,则关闭NAND的预读功能,并返回发起当前读请求的操作命令的步骤。
上述的一种计算机设备,通过对NAND数据写入阶段按照特定的规则进行地址分配,结合基于NAND的两级缓存机制和预读特性的预读策略,减少数据响应的延迟,有效提高NAND的数据操作效率。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(CentralProcessing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图11中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本领域普通技术人员可以理解的是实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。如本发明实施例中,该计算机程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各降低读延迟的方法的实施例的流程步骤。
该计算机可读存储介质可以是磁碟、光盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的降低读延迟的装置和方法,可以通过其它的方式实现。例如,以上所描述的降低读延迟的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (10)
1.降低读延迟的方法,其特征在于,所述方法包括:
在NAND数据写入阶段按照特定的规则进行地址分配;
获取请求,判断请求是否为读请求;
若是,根据读请求进行缓存记录表的检查,获取检查结果;
根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取。
2.根据权利要求1所述的降低读延迟的方法,其特征在于,在NAND数据写入阶段按照特定的规则进行地址分配的步骤,所述特定的规则包括:
将连续读取的数据块按物理页切分,形成的物理页大小的次级数据块;将物理页级别的数据块按照NAND端并行数据操作的原则分散到不同的面。
3.根据权利要求1所述的降低读延迟的方法,其特征在于,根据读请求进行缓存记录表的检查,获取检查结果的步骤,包括以下具体步骤:
根据读请求进行缓存记录表的检查,获取命中缓存器的情况;
根据命中缓存器的情况形成检查结果。
4.根据权利要求3所述的降低读延迟的方法,其特征在于,根据命中缓存器的情况形成检查结果的步骤,包括以下具体步骤:
判断数据暂存的区域是否为NAND的第一级缓存器;
若是,则检查结果为命中第一级缓存器;
若否,则判断数据暂存的区域是否为NAND的第二级缓存器;
若是,则检查结果为命中第二级缓存器;
若否,则检查结果为非命中缓存器。
5.根据权利要求4所述的降低读延迟的方法,其特征在于,根据检查结果,利用NAND的两级缓存器的预读特性对数据进行读取的步骤,包括以下具体步骤:
判断检查结果是否为命中第一级缓存器;
若检查结果是命中第一级缓存器,则读取第一级缓存器的数据;
若检查结果不是命中第一级缓存器,则判断检查结果是否为命中第二级缓存器;
若检查结果是命中第二级缓存器,则判断是否可通过预读策略获取预读地址;
若是,则发起预读操作;
更新缓存记录表,返回读取第一级缓存器的数据的步骤;
若否,则关闭NAND预读功能,并返回所述更新缓存记录表,返回读取第一级缓存器的数据的步骤;
若检查结果不是命中第二级缓存器,则判断NAND是否处于预读状态;
若NAND不处于预读状态,则发起当前读请求的操作命令;
更新缓存记录表;
判断是否可通过预读策略获取预读地址;
若可通过预读策略获取预读地址,则返回发起预读操作的步骤;
若不可通过预读策略获取预读地址,则返回读取第一级缓存器的数据的步骤;
若NAND处于预读状态,则关闭NAND的预读功能,并返回发起当前读请求的操作命令的步骤。
6.根据权利要求1至5任一项所述的降低读延迟的方法,其特征在于,获取请求,判断请求是否为读请求的步骤之后,还包括:
若否,则判断NAND是否处于预读状态;
若NAND处于预读状态,则关闭NAND预读功能,并更新缓存记录表;
若NAND不处于预读状态,则进入结束步骤。
7.降低读延迟的装置,其特征在于,包括分配单元、请求获取单元、结果获取单元以及读取单元;
所述分配单元,用于在NAND数据写入阶段按照特定的规则进行地址分配;
所述请求获取单元,用于获取请求,判断请求是否为读请求;
所述结果获取单元,用于若是,根据读请求进行缓存记录表的检查,获取检查结果;
所述读取单元,用于根据检查结果,利用NAND的两级第一级缓存器的预读特性对数据进行读取。
8.根据权利要求7所述的降低读延迟的装置,其特征在于,所述结果获取单元包括区域获取模块以及命中情况获取模块;
所述区域获取模块,用于根据读请求进行缓存记录表的检查,获取命中缓存器的情况;
所述命中情况获取模块,用于根据命中缓存器的情况形成检查结果。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的降低读延迟的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至6任意一项所述的降低读延迟的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574322.5A CN108920387B (zh) | 2018-06-06 | 2018-06-06 | 降低读延迟的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574322.5A CN108920387B (zh) | 2018-06-06 | 2018-06-06 | 降低读延迟的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920387A true CN108920387A (zh) | 2018-11-30 |
CN108920387B CN108920387B (zh) | 2021-04-20 |
Family
ID=64418912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810574322.5A Active CN108920387B (zh) | 2018-06-06 | 2018-06-06 | 降低读延迟的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920387B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739570A (zh) * | 2018-12-24 | 2019-05-10 | 新华三技术有限公司 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
CN109783025A (zh) * | 2019-01-10 | 2019-05-21 | 深圳忆联信息系统有限公司 | 顺序数据页颗粒度离散分布的读方法和装置 |
CN109783027A (zh) * | 2019-01-15 | 2019-05-21 | 深圳忆联信息系统有限公司 | 命令存储管理方法、装置、计算机设备及存储介质 |
CN112131144A (zh) * | 2020-09-27 | 2020-12-25 | 深圳市芯天下技术有限公司 | 串行接口nand存储芯片及从其中读取数据的方法 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
WO2021140385A1 (en) * | 2020-01-07 | 2021-07-15 | International Business Machines Corporation | Managing data structures in a plurality of memory devices that are indicated to demote after initialization of data structures |
CN114077588A (zh) * | 2020-08-20 | 2022-02-22 | 荣耀终端有限公司 | 一种预读方法及装置 |
CN114217750A (zh) * | 2021-12-28 | 2022-03-22 | 深圳忆联信息系统有限公司 | Ssd低功耗优化方法、装置、计算机设备及存储介质 |
US11573709B2 (en) | 2020-01-07 | 2023-02-07 | International Business Machines Corporation | Maintaining data structures in a memory subsystem comprised of a plurality of memory devices |
CN116719760A (zh) * | 2023-05-15 | 2023-09-08 | 合芯科技有限公司 | 一种低延迟处理缓存读取请求的方法、设备及存储介质 |
US11907543B2 (en) | 2020-01-07 | 2024-02-20 | International Business Machines Corporation | Managing swappable data structures in a plurality of memory devices based on access counts of the data structures |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005069150A1 (en) * | 2004-01-20 | 2005-07-28 | Trek 2000 International Ltd. | Portable data storage device using multiple memory devices |
CN102193872B (zh) * | 2010-03-17 | 2014-09-17 | 株式会社东芝 | 存储系统 |
CN107766464A (zh) * | 2017-09-28 | 2018-03-06 | 努比亚技术有限公司 | 一种文件存储方法、终端及计算机可读存储介质 |
-
2018
- 2018-06-06 CN CN201810574322.5A patent/CN108920387B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005069150A1 (en) * | 2004-01-20 | 2005-07-28 | Trek 2000 International Ltd. | Portable data storage device using multiple memory devices |
CN102193872B (zh) * | 2010-03-17 | 2014-09-17 | 株式会社东芝 | 存储系统 |
CN107766464A (zh) * | 2017-09-28 | 2018-03-06 | 努比亚技术有限公司 | 一种文件存储方法、终端及计算机可读存储介质 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739570A (zh) * | 2018-12-24 | 2019-05-10 | 新华三技术有限公司 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
CN109739570B (zh) * | 2018-12-24 | 2022-04-08 | 新华三技术有限公司 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
CN109783025A (zh) * | 2019-01-10 | 2019-05-21 | 深圳忆联信息系统有限公司 | 顺序数据页颗粒度离散分布的读方法和装置 |
CN109783025B (zh) * | 2019-01-10 | 2022-03-29 | 深圳忆联信息系统有限公司 | 顺序数据页颗粒度离散分布的读方法和装置 |
CN109783027B (zh) * | 2019-01-15 | 2022-03-29 | 深圳忆联信息系统有限公司 | 命令存储管理方法、装置、计算机设备及存储介质 |
CN109783027A (zh) * | 2019-01-15 | 2019-05-21 | 深圳忆联信息系统有限公司 | 命令存储管理方法、装置、计算机设备及存储介质 |
US11573709B2 (en) | 2020-01-07 | 2023-02-07 | International Business Machines Corporation | Maintaining data structures in a memory subsystem comprised of a plurality of memory devices |
WO2021140385A1 (en) * | 2020-01-07 | 2021-07-15 | International Business Machines Corporation | Managing data structures in a plurality of memory devices that are indicated to demote after initialization of data structures |
GB2607478A (en) * | 2020-01-07 | 2022-12-07 | Ibm | Managing data structures in a plurality of memory devices that are indicated to demote after initialization of data structures |
US11620055B2 (en) | 2020-01-07 | 2023-04-04 | International Business Machines Corporation | Managing data structures in a plurality of memory devices that are indicated to demote after initialization of the data structures |
US11907543B2 (en) | 2020-01-07 | 2024-02-20 | International Business Machines Corporation | Managing swappable data structures in a plurality of memory devices based on access counts of the data structures |
CN114077588A (zh) * | 2020-08-20 | 2022-02-22 | 荣耀终端有限公司 | 一种预读方法及装置 |
CN112131144A (zh) * | 2020-09-27 | 2020-12-25 | 深圳市芯天下技术有限公司 | 串行接口nand存储芯片及从其中读取数据的方法 |
CN112131144B (zh) * | 2020-09-27 | 2023-09-26 | 芯天下技术股份有限公司 | 串行接口nand存储芯片及从其中读取数据的方法 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112256338B (zh) * | 2020-10-27 | 2023-12-05 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN114217750A (zh) * | 2021-12-28 | 2022-03-22 | 深圳忆联信息系统有限公司 | Ssd低功耗优化方法、装置、计算机设备及存储介质 |
CN114217750B (zh) * | 2021-12-28 | 2023-07-04 | 深圳忆联信息系统有限公司 | Ssd低功耗优化方法、装置、计算机设备及存储介质 |
CN116719760A (zh) * | 2023-05-15 | 2023-09-08 | 合芯科技有限公司 | 一种低延迟处理缓存读取请求的方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108920387B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920387A (zh) | 降低读延迟的方法、装置、计算机设备及存储介质 | |
US9317209B2 (en) | Using external memory devices to improve system performance | |
US8949544B2 (en) | Bypassing a cache when handling memory requests | |
CN103927277B (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
US11500797B2 (en) | Computer memory expansion device and method of operation | |
JP4652344B2 (ja) | 圧縮されたキャッシュラインのワース・オブ・インフォメーションを利用したマルチプロセッサ計算システム及び当該システムに利用可能なプロセッサ | |
CN101593160B (zh) | 减少来自侦听过滤器的后无效事务 | |
CN102023931B (zh) | 一种自适应缓存预取方法 | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
CN110287010B (zh) | 一种面向Spark时间窗口数据分析的缓存数据预取方法 | |
CN108459826A (zh) | 一种处理io请求的方法及装置 | |
CN108920096A (zh) | 一种ssd的数据储存方法、装置、计算机设备及存储介质 | |
CN105095138B (zh) | 一种扩展同步内存总线功能的方法和装置 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
CN103257932A (zh) | 用于管理计算机可读高速缓存系统中的数据的方法和系统 | |
JP2020502694A (ja) | バイトアドレス可能メモリとして不揮発性メモリにアクセスする方法及び装置 | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储系统 | |
CN109359063A (zh) | 面向存储系统软件的缓存置换方法、存储设备及存储介质 | |
US20230120184A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
CN107133183B (zh) | 一种基于tcmu虚拟块设备的缓存数据访问方法及系统 | |
CN118312102A (zh) | Io请求处理方法、装置、存储设备及存储介质 | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
CN116820342A (zh) | 磁盘阵列的数据处理方法、装置和磁盘阵列 | |
KR20200080165A (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 |