CN108170380B - 一种固态硬盘提升顺序读性能的方法及固态硬盘 - Google Patents
一种固态硬盘提升顺序读性能的方法及固态硬盘 Download PDFInfo
- Publication number
- CN108170380B CN108170380B CN201711461395.5A CN201711461395A CN108170380B CN 108170380 B CN108170380 B CN 108170380B CN 201711461395 A CN201711461395 A CN 201711461395A CN 108170380 B CN108170380 B CN 108170380B
- Authority
- CN
- China
- Prior art keywords
- command
- splicing unit
- splicing
- reading
- unit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- 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
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)
- Read Only Memory (AREA)
Abstract
本发明公开了一种固态硬盘提升顺序读性能的方法及固态硬盘,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读请求加入拼接单元,将读命令按照写入的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。简单的根据读命令的逻辑地址是否连续判定是否为顺序读命令,通过增加的拼接单元,将读命令按照写入的规则进行拼接,实现多个命令并行的读取操作,有效地提升了顺序读性能。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种固态硬盘提升顺序读性能的方法及固态硬盘。
背景技术
图1是Nand Flash的内部组成示意图:通道Die,可独立并发操作的单元;块Block,擦除的单元;页Page,读写的单元。
图2是每个Die的内部组织结构图。平面Plane 0和平面Plane 1的Block组织在一起进行并行操作即为Multi_Plane操作,Multi_Plane操作能有效提升Nand Flash的利用率,其要求是Block组属于不同的Plane,且操作的Page需一致(Erase除外)。以Read为例,读取Block 0和Block 1的Page 0,如果是非Multi_Plane操作,则需要两个读时钟tR,如果是Multi_Plane操作,则仅需要一个读时钟tR。。
发明内容
针对以上缺陷,本发明目的是如何提高顺序读可并行操作的概率,整体上提高固体硬盘的性能。
为了解决以上问题本发明提出了一种固态硬盘提升顺序读性能的方法,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定时间间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读命令加入拼接单元,将读命令按照写入SSD时的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
所述的固态硬盘提升顺序读性能的方法,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
所述的固态硬盘提升顺序读性能的方法,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
一种固态硬盘,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定时间间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读命令加入拼接单元,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
所述的固态硬盘,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
所述的固态硬盘,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
本发明的有益效果是:简单的根据读命令的逻辑地址是否连续判定是否为顺序读命令,通过增加的拼接单元,将读命令按照写入的规则进行拼接,实现多个命令并行的读取操作,有效地提升了顺序读性能。
附图说明
图1是Nand Flash内部组成示意图;
图2是每个Die内部组织结构示意图;
图3是连续LPA的写入地址分配规则示意图;
图4是任务驱动时的执行流程图;
图5是超时机制触发的执行流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实现以前文所述的技术要点的顺序展开。
顺序读场景中,读命令的逻辑地址LPA是连续的,且读命令的量级比较大,被读取数据在Nand Flash上的源地址与这些数据的写入分配规则相关图3是连续LPA的写入地址分配规则示意图,能简单表示写入分配规则产生的效果,这种写入分配规则在顺序读场景时能最大机率触发并行读操作Multi_Plane Read。LPA 0-LPA 7分散到Block n和Block m同一个索引Index的Page,Block n和Block m属于一个Die下两个不同的Plane,符合并行Multi_Plane规则,可使得LPA 0-LPA 7的读取可以通过Nand Flash端的并行读操作Multi_Plane Read来实现。
对于如何识别出顺序读命令,本专利的做法是固件系统判断读命令的LPA ID,如果连续的LPA达到一定的数量,则认定当前是系统处于顺序读场景,且将这些及后续的连续LPA的读命令标记为顺序读。
顺序读场景中,拼接机制执行(专指拼接成Multi_Plane操作)流程如图4和图5所示。图4是任务驱动时的执行流程图;图5是超时机制触发的执行流程图。任务驱动和超时机制相配合,任务驱动的拼接机制流程执行依赖输入的请求。首先解析请求、并根据请求类型作判断,如果当前请求是顺序读命令,则依据当前是否存在拼接单元以继续流程。当系统中存在拼接单元时,表明前面的顺序读命令新生成或者集合成了拼接单元,此时输入的顺序读命令根据是否符合拼接单元的Multi_Plane规则来确定是否加入此拼接单元。若不符合拼接单元的Multi_Plane拼接规则,则刷新当前的拼接单元(即让Nand Flash端执行此拼接单元对应的Multi_Plane Read操作),同时输入的顺序读命令新生成对应的拼接单元。每当当前的顺序读命令加入拼接单元后,系统进行拼接单元的检查,确认更新后的拼接单元是否已经达到此拼接单元的最大容纳能力。举例说明,LPA 0-LPA 7的顺序读场景,LPA 0的读命令新生成Page 0的Multi_Plane拼接单元,LPA 1-LPA 7的读命令与Page 0拼接单元符合Multi_Plane规则,加入拼接单元中,当LPA 7加入拼接单元集合中后,此时拼接单元包含LPA 0-LPA 7的读命令,拼接单元的检查发现已经达到最大容纳能力(图3中可看出Blockn、Block mPage 0的Multi_Plane Read最大的LPA ID只能支持到LPA 7),随后进行拼接单元的刷新动作。
超时机制能增加顺序读命令时间量上的弹性,避免拼接单元的长时间等待,同时也能避免请求的延时引起的拼接单元未组成Multi_Plane操作而被刷新执行。考虑没有超时机制控制的顺序读场景,本模块一次性接收到LPA 0–LPA 3的顺序读命令并集合成一个拼接单元(一次性只接收到LPA 0-LPA 3的读命令而非一次性接收到LPA 0-LPA 7的读命令的原因在于模块的调度策略和请求的饱和程度),存在两种对拼接单元处理的可能策略:①立即刷新,接收到最后一个顺序读命令后刷新拼接单元,即接收到最后一个LPA 3顺序读命令后刷新拼接单元,此时拼接单元实际上只有Block nPage 0的Signle_Plane Read;②一直等到下一个请求驱动拼接单元的刷新(请求与拼接单元不符合Multi_Plane拼接规则)或者更新(顺序读命令加入拼接单元),即接收到最后一个LPA 3顺序读命令后,等待时间未知。当采用策略①时,有可能下一批LPA 4-LPA 7的顺序读命令随后就到,本来可以进行Block n、Block mPage 0的Multi_Plane Read被分解成Block 0 Page 0的Signle_PlaneRead和Block m Page 0的Signle_Plane Read,同样的LPA 0-LPA 7的读,Nand Flash端的执行时间被延长。当采用策略②后,由于等待时间未知,本可以在等待的这段时间内完成的LPA 0-LPA 3读命令一直在等待,严重浪费性能。本专利引入超时机制控制,在新生成的拼接单元的同时记录其时间点,当当前拼接单元等待超过一定的时间立即刷新执行。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (6)
1.一种固态硬盘提升顺序读性能的方法,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定时间间隔内的命令是否属于顺序读命令,如果当前请求是顺序读命令,则依据当前是否存在拼接单元以继续流程;当系统中存在拼接单元时,表明前面的顺序读命令新生成或者集合成了拼接单元,此时输入的顺序读命令根据是否符合拼接单元的Multi_Plane规则来确定是否加入此拼接单元;如果是则将当前的顺序读命令加入拼接单元,将读命令按照写入SSD时的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
2.根据权利要求1所述的固态硬盘提升顺序读性能的方法,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
3.根据权利要求1所述的固态硬盘提升顺序读性能的方法,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
4.一种固态硬盘,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定时间间隔内的命令是否属于顺序读命令,如果当前请求是顺序读命令,则依据当前是否存在拼接单元以继续流程;当系统中存在拼接单元时,表明前面的顺序读命令新生成或者集合成了拼接单元,此时输入的顺序读命令根据是否符合拼接单元的Multi_Plane规则来确定是否加入此拼接单元;如果是则将当前的顺序读命令加入拼接单元,将读命令按照写入SSD时的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
5.根据权利要求4所述的固态硬盘,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
6.根据权利要求4所述的固态硬盘,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461395.5A CN108170380B (zh) | 2017-12-28 | 2017-12-28 | 一种固态硬盘提升顺序读性能的方法及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461395.5A CN108170380B (zh) | 2017-12-28 | 2017-12-28 | 一种固态硬盘提升顺序读性能的方法及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170380A CN108170380A (zh) | 2018-06-15 |
CN108170380B true CN108170380B (zh) | 2021-02-05 |
Family
ID=62519254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711461395.5A Active CN108170380B (zh) | 2017-12-28 | 2017-12-28 | 一种固态硬盘提升顺序读性能的方法及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170380B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271107A (zh) * | 2018-09-01 | 2019-01-25 | 苏州韦科韬信息技术有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN110990301A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 多plane存储介质的顺序读方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN103562895A (zh) * | 2011-06-01 | 2014-02-05 | 国际商业机器公司 | 通过选择性聚合相邻数据单元来便于路由 |
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283111A1 (en) * | 2015-03-26 | 2016-09-29 | Intel Corporation | Read operations in memory devices |
-
2017
- 2017-12-28 CN CN201711461395.5A patent/CN108170380B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN103562895A (zh) * | 2011-06-01 | 2014-02-05 | 国际商业机器公司 | 通过选择性聚合相邻数据单元来便于路由 |
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN108170380A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237765B2 (en) | Data writing method and storage device | |
CN107168647B (zh) | Flash数据读写方法及系统 | |
US9183136B2 (en) | Storage control apparatus and storage control method | |
US9836226B2 (en) | Method of processing input/output in storage device and storage device and non-volatile memory device using the method | |
EP2927779A1 (en) | Disk writing method for disk arrays and disk writing device for disk arrays | |
KR20090006920A (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
US20120210045A1 (en) | Data access method, and memory controller and memory storage apparatus using the same | |
CN108170380B (zh) | 一种固态硬盘提升顺序读性能的方法及固态硬盘 | |
KR102653373B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US20100023677A1 (en) | Solid state storage system that evenly allocates data writing/erasing operations among blocks and method of controlling the same | |
CN108563586B (zh) | 一种分离固态盘中垃圾回收数据与用户数据的方法 | |
WO2024109489A1 (zh) | 一种固态硬盘及其数据写方法、装置、主机和存储介质 | |
TW202038106A (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
CN110134333B (zh) | 一种重排写入数据流提升ssd读拼接率的方法及其系统 | |
CN113377278A (zh) | 固态硬盘、垃圾回收及控制方法、设备、系统及存储介质 | |
CN103456354B (zh) | 一种非易失性存储器差分存储格的方法和装置 | |
TW202032547A (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
CN111897745B (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
LU101773B1 (en) | Method for improving sequential read performance of solid-state drive | |
CN106202262A (zh) | 一种信息处理方法及电子设备 | |
US10310746B2 (en) | Method, associated memory device and controller thereof for performing dynamic resource management | |
US20240220118A1 (en) | Systems, methods, and media for controlling background wear leveling in solid-state drives | |
CN112114737B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN109189348B (zh) | 基于电荷捕获型3d tlc闪存的存储系统的读性能优化方法 |
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 |