CN108595110B - 一种利用Nand特性提高读性能的方法及固态硬盘 - Google Patents
一种利用Nand特性提高读性能的方法及固态硬盘 Download PDFInfo
- Publication number
- CN108595110B CN108595110B CN201810187322.XA CN201810187322A CN108595110B CN 108595110 B CN108595110 B CN 108595110B CN 201810187322 A CN201810187322 A CN 201810187322A CN 108595110 B CN108595110 B CN 108595110B
- Authority
- CN
- China
- Prior art keywords
- data
- nand
- cache register
- reading
- logical
- 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/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/0638—Organizing or formatting or addressing of data
-
- 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/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]
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种利用Nand特性提高读性能的方法及固态硬盘,其特征在于在Nand数据写入时按照如下规则进行地址分配,将同一个通道的地址连续的多个逻辑页写命令按Nand的物理页结构进行分组,按组将逻辑页的数据写入到物理页中;当同一个通道接收到一个逻辑页数据的读命令,将该逻辑页数据所在的物理页数据和其它层与该物理页对应的逻辑地址相邻的物理页的数据都并行读取到缓存寄存器,后续主机读命令先检索缓存寄存器中是否存在当前请求的数据,如果存在则直接读取。从Nand结构和特性入手,针对性地优化读写规则,尽可能地利用Cache Register提供的数据缓存功能,有效提高Nand的数据操作效率。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种利用Nand特性提高读性能的方法及固态硬盘。
背景技术
图1是固态硬盘的一个通道Die的示意图,一般一个固态硬盘都支持多个通道,每个通道通过一组Nand IO与系统连接;同时一个通道Die又至少包括2个操作层Plane,以包括两个为例,Plane 0和Plane 1。Die内每个Plane都有其对应的数据寄存器Data Register和缓存寄存器Cache Register,Data Register和Cache Register存储空间大小等同于Page大小,且无法通过命令手段获取当前Cache Register缓存的是哪一个Block哪一个Page的数据。其中①②表示一种从Nand读取数据流向过程的步骤,数据先从Nand存储阵列Nand Array中读到Cache Register,再从Cache Register读到Data Register,再通过NandIO输出;Cache Register与Data Register不同之处在于Cache Register提供数据缓存功能,即当前Plane操作后,Cache Register缓存刚刚读写的数据。现有系统两个Plane都是单独独立的进行控制和执行的,因此其性能上还存在优化的空间。
发明内容
针对以上缺陷,本发明目的在于如何有效利用好Nand内部的缓存寄存器和并行通道的特性,提高Nand读性能。
为了实现上述目的,本发明提供了一种利用Nand特性提高读性能的方法,Nand包括2个以上通道,每个通道包括2个以上操作层,每个操作层都有对应的数据寄存器和缓存寄存器,其特征在于在Nand数据写入时按照如下规则进行地址分配,将同一个通道的地址连续的多个逻辑页写命令按Nand的物理页结构进行分组,按组将交替连续的写入到同一个通道的多个操作层中;当同一个通道接收到一个逻辑页数据的读命令,将该逻辑页数据所在的物理页数据和其它操作层与该物理页对应的逻辑地址相邻的物理页的数据都并行读取到缓存寄存器,后续主机读命令先检索缓存寄存器中是否存在当前请求的数据,如果存在则直接读取。
所述的利用Nand特性提高读性能的方法,其特征在于还包括缓存寄存器记录信息Cache Register记录信息,所述Cache Register记录信息记录每个Plane的CacheRegister的数据来源于的Block和Page信息,所述Cache Register记录信息在执行完一个读命令完毕后更新为有效状态,同时更新Cache Register记录信息的数据的地址信息。
一种利用Nand特性提高读性能的固态硬盘,Nand包括2个以上通道,每个通道包括2个以上操作层,每个操作层都有对应的数据寄存器和缓存寄存器,其特征在于在Nand数据写入时按照如下规则进行地址分配,将同一个通道的地址连续的多个逻辑页写命令按Nand的物理页结构进行分组,按组将逻辑页的数据写入到物理页中;当同一个通道接收到一个逻辑页数据的读命令,将该逻辑页数据所在的物理页数据和其它操作层与该物理页对应的逻辑地址相邻的物理页的数据都并行读取到缓存寄存器,后续主机读命令先检索缓存寄存器中是否存在当前请求的数据,如果存在则直接读取。
所述的利用Nand特性提高读性能的固态硬盘,其特征在于还包括缓存寄存器记录信息Cache Register记录信息,所述Cache Register记录信息记录每个Plane的CacheRegister的数据来源于的Block和Page信息,所述Cache Register记录信息在执行完一个读命令完毕后更新为有效状态,同时更新Cache Register记录信息的数据的地址信息。
本发明从Nand结构和特性入手,针对性地优化读写规则,尽可能地利用CacheRegister提供的数据缓存功能,有效提高Nand的数据操作效率。基于Die的操作时串行化的前提下,Cache Register记录信息可在Read Cmd执行完毕后更新为有效状态同时更新Cache Register数据的地址信息,其他对Die的操作均更新为无效状态。这种安全追踪Cache数据源的方法能避免Cache Register缓存的数据失效。
附图说明
图1是固态硬盘的一个通道Die的示意图;
图2是写入时地址分配规则示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
同一个Die内Plane 0和Plane 1的Block可组成多层操作Multi_Plane操作,其中多层擦除Multi_Plane Erase要求满足不同的Plane即可,多层写入Multi_Plane Program、多层读Multi_Plane Read另外还要求Page也一致,以Multi_Plane Erase为例,Erase两个Block的时间消耗等同于单层擦除Signle_Plane Erase一个Block的时间,即Multi_Plane操作效率翻倍。
本方案实施依赖特定的写地址分配规则。主机一系列连续LPA类型的数据散列到Nand的地址分配规则如图2所示。图2简单展示连续LPA的地址分配与Plane、Block、Page的关系。这种写地址分配规则能有效提升写性能,同时也是应用本方案的前提。LPA 0-LPA 7这个区间段的数据LPA 0-LPA 3属于Plane 0 Block 0Page 0,LPA 4-LPA 7属于Plane1Block 1Page 0,满足Multi_Plane操作规则,可使得写入LPA 0-LPA 3数据的时间内,同时也能写入LPA 4-LPA 7的数据。
在顺序读场景中,被读取数据的LPA也是连续的,但到Nand命令执行层面有可能变成分散的读命令,即LPA 0-LPA 3这种本可以一次读操作完成的动作;因为LPA 0-LPA 3属于一个Page,且数据紧凑分布,可以一次性从Nand读取,但被分散成多个LPA的读操作,而每个读操作的都需要tR的数据准备时间,数据准备时间是指的Nand内部准备数据的时间,读效率低下。本方案的思想是一次性在Nand Cache Register准备预期读数据,譬如在顺序读场景中,执行LPA 0读得时候,将读操作拆分成两步:Multi_Plane Read Cmd+Read DataCmd,Multi_Plane在一个tR时间内将LPA 0-LPA 3以及LPA 4-LPA 7的数据在Plane 0、Plane 1的Cache Register准备好,更新Cache Register记录信息,Cache Register记录信息记录每个Plane的Cache Register的数据来源于哪个Block哪个Page,再执行LPA 0的Read Data Cmd,后续紧接着有LPA 1-LPA 7的读取需求时,查询Cache Register记录信息,确认Cache Register内存储着当前请求数据,直接执行LPA 1-LPA 7的Read Data Cmd。
基于Die的操作时串行化的前提下,Cache Register记录信息可在Read Cmd执行完毕后更新为有效状态同时更新Cache Register数据的地址信息,其他对Die的操作,譬如Program Cmd、Erase Cmd等会影响Cache Register状态的操作,均更新为无效状态。本方案实施依赖特定的写地址分配规则。主机一系列连续LPA类型的数据散列到Nand的地址分配规则如图2所示。图2简单展示连续LPA的地址分配与Plane、Block、Page的关系。这种写地址分配规则能有效提升写性能,同时也是应用本专利方法的前提。LPA 0-LPA 7这个区间段的数据LPA 0-LPA 3属于Plane 0Block 0Page 0,LPA 4-LPA 7属于Plane 1Block 1Page 0,满足Multi_Plane操作规则,可使得写入LPA 0-LPA 3数据的时间内,同时也能写入LPA 4-LPA 7的数据。
在顺序读场景中,被读取数据的LPA也是连续的,但到Nand命令执行层面有可能变成分散的读命令,即LPA 0-LPA 3这种本可以一次读操作完成的动作(LPA 0-LPA 3属于一个Page,且数据紧凑分布,可以一次性从Nand读取)被分散成多个LPA的读操作,而每个读操作的都需要tR的数据准备时间(Nand内部准备数据的时间),读效率低下。本专利的思想是一次性在Nand Cache Register准备预期读数据,譬如在顺序读场景中,执行LPA 0读得时候,将读操作拆分成两步:Multi_Plane Read Cmd+Read Data Cmd,Multi_Plane在一个tR时间内将LPA 0-LPA 3以及LPA 4-LPA 7的数据在Plane 0、Plane 1的Cache Register准备好,更新Cache Register记录信息(记录每个Plane的Cache Register的数据来源于哪个Block哪个Page),再执行LPA 0的Read Data Cmd,后续紧接着有LPA 1-LPA 7的读取需求时,查询Cache Register记录信息,确认Cache Register内存储着当前请求数据,直接执行LPA 1-LPA 7的Read Data Cmd。
基于Die的操作时串行化的前提下,Cache Register记录信息可在Read Cmd执行完毕后更新为有效状态同时更新Cache Register数据的地址信息,其他对Die的操作(譬如Program Cmd、Erase Cmd等会影响Cache Register状态的操作)均更新为无效状态。这种安全追踪Cache数据源的方法能避免Cache Register缓存的数据失效。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (4)
1.一种利用Nand特性提高读性能的方法,Nand包括2个以上通道,每个通道包括2个以上操作层,每个操作层都有对应的数据寄存器和缓存寄存器,其特征在于在Nand数据写入时按照如下规则进行地址分配,将同一个通道的地址连续的多个逻辑页写命令按Nand的物理页结构进行分组,按组将交替连续的写入到同一个通道的多个操作层中;当同一个通道接收到一个逻辑页数据的读命令,将该逻辑页数据所在的物理页数据和其它操作层与该物理页对应的逻辑地址相邻的物理页的数据都并行读取到缓存寄存器,后续主机读命令先检索缓存寄存器中是否存在当前请求的数据,如果存在则直接读取。
2.根据权利要求1所述的利用Nand特性提高读性能的方法,其特征在于还包括缓存寄存器记录信息Cache Register记录信息,所述Cache Register记录信息记录每个Plane的Cache Register的数据来源于的Block和Page信息,所述Cache Register记录信息在执行完一个读命令完毕后更新为有效状态,同时更新Cache Register记录信息的数据的地址信息。
3.一种利用Nand特性提高读性能的固态硬盘,Nand包括2个以上通道,每个通道包括2个以上操作层,每个操作层都有对应的数据寄存器和缓存寄存器,其特征在于在Nand数据写入时按照如下规则进行地址分配,将同一个通道的地址连续的多个逻辑页写命令按Nand的物理页大小进行分组,按组将交替连续的写入到同一个通道的多个操作层中;当同一个通道接收到一个逻辑页数据的读命令,将该逻辑页数据所在的物理页数据和其它操作层与该物理页对应的逻辑地址相邻的物理页的数据都并行读取到缓存寄存器,后续主机读命令先检索缓存寄存器中是否存在当前请求的数据,如果存在则直接读取。
4.根据权利要求3所述的利用Nand特性提高读性能的固态硬盘,其特征在于还包括缓存寄存器记录信息Cache Register记录信息,所述Cache Register记录信息记录每个Plane的Cache Register的数据来源于的Block和Page信息,所述Cache Register记录信息在执行完一个读命令完毕后更新为有效状态,同时更新Cache Register记录信息的数据的地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810187322.XA CN108595110B (zh) | 2018-03-07 | 2018-03-07 | 一种利用Nand特性提高读性能的方法及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810187322.XA CN108595110B (zh) | 2018-03-07 | 2018-03-07 | 一种利用Nand特性提高读性能的方法及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595110A CN108595110A (zh) | 2018-09-28 |
CN108595110B true CN108595110B (zh) | 2021-12-14 |
Family
ID=63625720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810187322.XA Active CN108595110B (zh) | 2018-03-07 | 2018-03-07 | 一种利用Nand特性提高读性能的方法及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595110B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918023A (zh) * | 2019-02-22 | 2019-06-21 | 深圳忆联信息系统有限公司 | 基于内存受限ssd的预读取方法、装置和计算机设备 |
CN110007876A (zh) * | 2019-04-15 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘数据存储方法、装置、设备及介质 |
CN110134333B (zh) * | 2019-05-07 | 2022-06-07 | 深圳忆联信息系统有限公司 | 一种重排写入数据流提升ssd读拼接率的方法及其系统 |
CN110442531B (zh) * | 2019-08-08 | 2021-10-26 | 深圳忆联信息系统有限公司 | 基于固态硬盘的读性能提升方法、装置和计算机设备 |
CN110688325B (zh) * | 2019-09-05 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
CN110990301A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 多plane存储介质的顺序读方法及相关装置 |
CN114217750B (zh) * | 2021-12-28 | 2023-07-04 | 深圳忆联信息系统有限公司 | Ssd低功耗优化方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN104809075A (zh) * | 2015-04-20 | 2015-07-29 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
-
2018
- 2018-03-07 CN CN201810187322.XA patent/CN108595110B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN104809075A (zh) * | 2015-04-20 | 2015-07-29 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN108595110A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595110B (zh) | 一种利用Nand特性提高读性能的方法及固态硬盘 | |
EP3673377B1 (en) | Logical to physical mapping | |
US7076598B2 (en) | Pipeline accessing method to a large block memory | |
RU2661280C2 (ru) | Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных | |
US10534718B2 (en) | Variable-size table for address translation | |
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
CN102819408B (zh) | 可动态调整条带深度的raid 0的实现方法及系统 | |
US8914579B2 (en) | Access device, information recording device, controller, and information recording system | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
KR100533682B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
EP2665065A2 (en) | Electronic device employing flash memory | |
JP5969130B2 (ja) | 情報処理装置 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
CN102306124A (zh) | Nand Flash芯片硬件驱动层的实现方法 | |
CN114356246B (zh) | Ssd内部数据的存储管理方法、装置、存储介质及ssd设备 | |
CN111949222B (zh) | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 | |
US8954662B2 (en) | SSD controller, and method for operating an SSD controller | |
CN111026678B (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
CN115933994B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
JP6100927B2 (ja) | 情報処理装置 | |
CN117806570B (zh) | 在线内存扩展方法、装置、设备及存储介质 | |
TWI805937B (zh) | 記憶體控制器與資料處理方法 | |
KR20030095820A (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 |