CN109840047A - 一种降低读延时的方法及装置 - Google Patents

一种降低读延时的方法及装置 Download PDF

Info

Publication number
CN109840047A
CN109840047A CN201711208323.XA CN201711208323A CN109840047A CN 109840047 A CN109840047 A CN 109840047A CN 201711208323 A CN201711208323 A CN 201711208323A CN 109840047 A CN109840047 A CN 109840047A
Authority
CN
China
Prior art keywords
read voltage
storage region
controller
management information
storage
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.)
Pending
Application number
CN201711208323.XA
Other languages
English (en)
Inventor
贾学超
玄在雄
夏天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711208323.XA priority Critical patent/CN109840047A/zh
Priority to EP18880718.4A priority patent/EP3702897A4/en
Priority to PCT/CN2018/116257 priority patent/WO2019101044A1/zh
Priority to KR1020207017575A priority patent/KR102374239B1/ko
Publication of CN109840047A publication Critical patent/CN109840047A/zh
Priority to US16/884,158 priority patent/US11210210B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本申请实施例提供一种降低读延的方法及装置,涉及数据存储技术领域,用于降低读延时。该方法应用于控制器中,控制器的前端连接主机,后端连接Flash阵列,包括:接收主机发送的读请求,该读请求中包括请求数据的位置指示信息;根据位置指示信息所指示的第一物理位置,从读电压管理信息中获取第一物理位置所在的第一存储区域对应的读电压,第一物理位置为所述请求数据在Flash阵列中的物理位置,Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似,读电压管理信息包括存储区域与读电压之间的对应关系,读电压管理信息中的读电压是动态更新的;根据第一存储区域对应的读电压,获取请求数据,并将请求数据发送给主机。

Description

一种降低读延时的方法及装置
技术领域
本申请实施例涉及数据存储技术领域,尤其涉及一种降低读延时的方法及装置。
背景技术
固态存储驱动(Solid State Drive,SSD)是指用固态电子存储芯片阵列制成的硬盘或者存储卡等存储介质,SSD的服务质量(Quality of Service,QoS)是SSD产品向主机提供稳定、一致和可预测性的请求应答服务的能力,它是塑造SSD产品竞争力的关键因素之一。SSD可应用于数据中心以及服务器等场景中,读响应时间(Read Latency)是QoS的关键性能指标,主要取决于响应主机IO请求的Flash介质中发生的读操作次数。Flash作为SSD的主要存储介质,它的特性受擦写次数(Program/Erase Cycles,PE)、数据保留时间(Retention Time)等多种因素的影响,承载数据的电压信号会发送漂移,从而需要多次读操作才能成功响应主机IO请求,因此造成QoS中读延时较长。
目前,现有技术中可以通过读电压预制表技术降低读延时,即通过分析影响读电压的因素与电压偏移量的关系,制作影响因素与读电压补偿表或者通过拟合的方法归纳特定的公式,使用时按照影响因素值查表或计算后对读电压进行补偿,从而提高首次读成功率,进而减小读延时。但是,读电压预制表技术与采样的样本有关,对于不同的存储介质需要制作不同的读电压预制表,工作量较大。另外,存储介质在使用过程中会发生变化,使用读电压预制表技术的可靠性较低,首次读成功率的提升幅度有限,因此降低读延时的效果不佳。
发明内容
本申请的实施例提供一种降低读延时的方法及装置,解决了现有技术中读延时较长的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种降低读延时的方法,应用于控制器中,控制器的前端连接主机,后端连接Flash阵列,该方法包括:控制器接收主机发送的读请求,该读请求中包括请求数据的位置指示信息;控制器根据该位置指示信息所指示的第一物理位置,从读电压管理信息中获取第一物理位置所在的第一存储区域对应的读电压;其中,第一物理位置为该请求数据在Flash阵列中的物理位置,Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似,读电压管理信息包括存储区域与读电压之间的对应关系,读电压管理信息中的读电压是动态更新的;控制器根据第一存储区域对应的读电压,获取请求数据,并将请求数据发送给主机。上述技术方案中,由于第一存储区域包括的多个物理位置的物理特性和读电压特性相同或相似,且读电压管理信息中的读电压是动态更新的,从而可以保证控制器获取的读电压的准确性,基于该读电压获取请求数据时,可以提高首次读成功率,减少读操作次数,进而降低读延时。
在第一方面的一种可能的实现方式中,同一存储区域中包含的物理位置的读电压特性相同或相似;和/或,不同存储区域包含的物理位置的物理特性不同;和/或,不同存储区域包含的物理位置的读电压特性不同。上述可能的实现方式中,通过将物理特性相同或相似和/或读电压特性相同或相似的多个物理位置划分在同一存储区域,在读电压管理信息中对应一个读电压,可以节省控制器中内存的开销。
在第一方面的一种可能的实现方式中,对于多个存储区域中的任一存储区域,该方法还包括:当满足预设更新条件时,控制器更新读电压管理信息中存储区域对应的读电压。上述可能的实现方式中,通过动态更新读电压管理信息中的读电压,可以保证读电压的实时有效,从而以该读电压获取读取数据时的成功率较高,进而降低了读延时。
在第一方面的一种可能的实现方式中,读电压管理信息中的读电压是动态更新的,包括:当满足预设更新条件时,控制器更新读电压管理信息中存储区域对应的读电压,包括:当处于系统空闲时间窗或者满足预设更新周期时,控制器确定存储区域对应的读电压下的第一出错参数;当第一出错参数大于或等于第一阈值时,控制器更新读电压管理信息中存储区域对应的读电压。上述可能的实现方式中,控制器通过主动的动态更新读电压管理信息中的读电压,可以保证读电压的实时有效,从而以该读电压获取读取数据时的成功率较高,进而降低了读延时。
在第一方面的一种可能的实现方式中,预设更新周期与存储区域的使用状态相关;或者,预设更新周期与Flash阵列包括的多个存储区域的平均使用寿命相关。上述可能的实现方式中,通过设置合适的预设更新周期,按照预设更新周期动态更新读电压管理信息中的读电压,可以在保证读电压的实时有效的同时,避免不必要的更新操作,节省了控制器的能耗。
在第一方面的一种可能的实现方式中,当满足预设更新条件时,控制器更新读电压管理信息中存储区域对应的读电压,包括:当在存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,控制器更新读电压管理信息中存储区域对应的读电压。上述可能的实现方式中,控制器通过被动的动态更新读电压管理信息中的读电压,可以在读电压出现首次读数据失败后快速有效的更新读电压,减小读操作次数,进而降低了读延时。
在第一方面的一种可能的实现方式中,对于多个存储区域中的任一个存储区域,当控制器在第一时间段内更新读电压管理中存储区域对应的读电压、在第二时间段内从读电压管理中获取存储区域对应的读电压时,第一时间段与第二时间段不存在重叠;和/或,对于多个存储区域中的任意两个存储区域,当控制器在第三时间段内更新读电压管理中一个存储区域对应的读电压、在第四时间段内从读电压管理中获取另一个存储区域对应的读电压时,第一时间段与第二时间段存在重叠、或者第一时间段与第二时间段不重叠。上述可能的实现方式中,控制器可以在不同的时间段内对读电压管理信息进行不同的操作,从而节省管理读电压管理信息的时间,提高系统性能。
在第一方面的一种可能的实现方式中,一个存储区域包括至少一个存储单元,存储单元包括以下中的至少一项:颗粒Device、逻辑单元Die、面Plane、块Block、超级块SuperBlock、层Layer、子块Sub-Block、字线WL和页面Page。上述可能的实现方式中,控制器通过合理的划分存储区域,可以减小读电压管理信息的数据量,进而节省控制器中内存的开销。
第二方面,提供一种控制器,控制器的前端连接主机,后端连接Flash阵列,该控制器包括:接收单元,用于接收主机发送的读请求,该读请求中包括请求数据的位置指示信息;处理单元,用于根据该位置指示信息所指示的第一物理位置,从读电压管理信息中获取第一物理位置所在的第一存储区域对应的读电压;其中,第一物理位置为该请求数据在Flash阵列中存储的物理位置,Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似,读电压管理信息包括存储区域与读电压之间的对应关系,读电压管理信息中的读电压是动态更新的;处理单元,还用于根据第一存储区域对应的读电压,获取请求数据;发送单元,用于将请求数据发送给主机。
在第二方面的一种可能的实现方式中,同一存储区域中包含的物理位置的读电压特性相同或相似;和/或,不同存储区域包含的物理位置的物理特性不同;和/或,不同存储区域包含的物理位置的读电压特性不同。
在第二方面的一种可能的实现方式中,处理单元,具体用于:对于多个存储区域中的任一存储区域,当满足预设更新条件时,更新读电压管理信息中存储区域对应的读电压,以使读电压管理信息中的读电压是动态更新的。
在第二方面的一种可能的实现方式中,处理单元,还用于:当处于系统空闲时间窗或者满足预设更新周期时,确定存储区域对应的读电压下的第一出错参数;当第一出错参数大于或等于第一阈值时,更新读电压管理信息中存储区域对应的读电压。
在第二方面的一种可能的实现方式中,预设更新周期与存储区域的使用状态相关;或者,预设更新周期与Flash阵列包括的多个存储区域的平均使用寿命相关。
在第二方面的一种可能的实现方式中,处理单元,还用于:当在存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,更新读电压管理信息中存储区域对应的读电压。
在第二方面的一种可能的实现方式中,对于多个存储区域中的任一个存储区域,当在第一时间段内更新读电压管理中存储区域对应的读电压、在第二时间段内从读电压管理中获取存储区域对应的读电压时,第一时间段与第二时间段不存在重叠;和/或,对于多个存储区域中的任意两个存储区域,当在第三时间段内更新读电压管理中一个存储区域对应的读电压、在第四时间段内从读电压管理中获取另一个存储区域对应的读电压时,第一时间段与第二时间段存在重叠、或者第一时间段与第二时间段不重叠。
在第二方面的一种可能的实现方式中,一个存储区域包括至少一个存储单元,存储单元包括以下中的至少一项:颗粒Device、逻辑单元Die、面Plane、块Block、超级块SuperBlock、层Layer、子块Sub-Block、字线WL和页面Page。
第三方面,提供一种系统,该系统包括主机、控制器和Flash阵列,Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似;其中,主机,用于向控制器发送读请求,以及接收控制器返回的请求数据,该读请求包括请求数据的位置指示信息;控制器,用于管理读电压管理信息,读电压管理信息包括存储区域与读电压之间的对应关系,读电压管理信息中的读电压是动态更新的;控制器,还用于当接收到该读请求时,根据该位置指示信息所指示的第一物理位置,从读电压管理信息中获取第一物理位置所在的第一存储区域对应的读电压,第一物理位置为该请求数据在Flash阵列中存储的物理位置;控制器,还用于根据第一存储区域对应的读电压,获取请求数据,并将请求数据发送给主机。
在第三方面的一种可能的实现方式中,同一存储区域中包含的物理位置的读电压特性相同或相似;和/或,不同存储区域包含的物理位置的物理特性不同;和/或,不同存储区域包含的物理位置的读电压特性不同。
在第三方面的一种可能的实现方式中,控制器,具体用于:对于多个存储区域中的任一存储区域,当满足预设更新条件时,更新读电压管理信息中存储区域对应的读电压,以使读电压管理信息中的读电压是动态更新的。
在第三方面的一种可能的实现方式中,控制器,具体用于:当处于系统空闲时间窗或者满足预设更新周期时,确定存储区域对应的读电压下的第一出错参数;当第一出错参数大于或等于第一阈值时,更新读电压管理信息中存储区域对应的读电压。
在第三方面的一种可能的实现方式中,预设更新周期与存储区域的使用状态相关;或者,预设更新周期与Flash阵列中多个存储区域的平均使用寿命相关。
在第三方面的一种可能的实现方式中,控制器,具体用于:当在存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,更新读电压管理信息中存储区域对应的读电压。
在第三方面的一种可能的实现方式中,对于多个存储区域中的任一个存储区域,当控制器在第一时间段内更新读电压管理中存储区域对应的读电压、在第二时间段内从读电压管理中获取存储区域对应的读电压时,第一时间段与第二时间段不存在重叠;和/或,对于多个存储区域中的任意两个存储区域,当控制器在第三时间段内更新读电压管理中一个存储区域对应的读电压、在第四时间段内从读电压管理中获取另一个存储区域对应的读电压时,第一时间段与第二时间段存在重叠、或者第一时间段与第二时间段不重叠。
在第三方面的一种可能的实现方式中,一个存储区域包括至少一个存储单元,存储单元包括以下中的至少一项:颗粒Device、逻辑单元Die、面Plane、块Block、超级块SuperBlock、层Layer、子块Sub-Block、字线WL和页面page。
本申请的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的实现方式所提供的降低读延时的方法。
本申请的又一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的实现方式所提供的降低读延时的方法。
可以理解地,上述提供的任一种降低读延时的方法的装置、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种存储颗粒的结构示意图;
图2为本申请实施例提供的一种通信系统的结构示意图;
图3为本申请实施例提供的另一种通信系统的结构示意图;
图4为本申请实施例提供的一种降低读延时的方法的流程示意图;
图5为本申请实施例提供的另一种降低读延时的方法的流程示意图;
图6为本申请实施例提供的一种更新读电压管理信息的流程示意图;
图7为本申请实施例提供的另一种更新读电压管理信息的流程示意图;
图8为本申请实施例提供的一种处理读请求的流程示意图;
图9为本申请实施例提供的一种对读电压管理信息的操作示意图;
图10为本申请实施例提供的一种控制器的结构示意图;
图11为本申请实施例提供的另一种控制器的结构示意图。
具体实施方式
目前,大多数存储设备均使用固态存储驱动(Solid State Drive,SSD)进行数据存储,比如硬盘或存储卡等。SSD的服务质量(Quality ofService,QoS)是存储设备向主机提供稳定、一致和可预测性的请求应答服务的能力,它是影响存储设备的市场竞争力的关键因素之一。QoS可以包括多个性能指标,其中读响应时间(Read Latency)是QoS的关键性能指标,主要取决于响应主机IO请求的Flash介质中发生的读操作次数。而Flash介质作为SSD的主要存储介质,它的特性受擦写次数(Program/Erase Cycles,PE)、数据保留时间(RetentionTime)、读操作次数(Read Counts)等多种因素的影响,承载数据的电压信号会发送漂移,从而后端需要多次读操作(试错)才能成功响应主机IO请求,因此影响了QoS的读延时指标,造成读延时较长。
随着更高存储密度的单元(Cell)由3D TLC(Triple-Level Cell)逐渐替代2D MLC(Multi-Level Cell)成为主流存储介质,QoS的读延时指标正面临着越来越多的挑战。如图1所示,为本申请实施例提供的一种颗粒的内部的层次结构图。其中,写操作的最小单位为页面(Page),页面可以划分为三种类型,即上页(Upper Page)、中页(Middle Page)和下页(Lower page’)。一个上页、一个中页和一个下页可以组成一个字线(Word Line,WL),若干个WL按不同的方向组成层(Layer)或子块(Sub-Block),比如,图1中横向的多个WL组成Layer,纵向的多个WL组成Sub-Block。Page组成的最小擦除操作单元称为块(Block)。多个Block组成面(Plane),多个Plane可以组成逻辑单元(Die)。多个Die组成颗粒(Device),每个Device对应一个Channel。
此外,在许多应用中控制器会将一些Block组成Super Block。Super Block在应用中的特征是内部的Block会被同时擦除、或同时被编程,Super Block内部的Block的使用条件的状态是一致或接近的,比如,擦写次数(Program/Erase Cycles,PE)、以及数据保留时间(RetentionTime)等。
3D TLC与2D MLC相比,每个单元(Cell)中的逻辑状态从4个(2bit)增加到8个(3bit),区分不同逻辑状态的电压信号窗口变小,从而读电压的准确度要求提升。另外,Block中的Page数、以及Die中的Block数逐步增加,Flash内部各层次的物理不一致性增加,对所有Page设置统一的有效读电压变得越来越困难。
因此,为了有效提升读延时必须同时解决两个问题:读电压随着使用条件变化而变化,Flash内部存在个层次的物理差异。基于此,本申请实施例提供一种降低读延时的方法及装置,用于提升QoS中的读延时指标。
图2为本申请实施例所应用的一种通信系统的硬件架构图,参见图2,该系统包括主机、SSD控制器和Flash阵列,主机可以通过SSD控制器存/取Flash阵列中的数据。其中,主机可以通过NVMe/SAS/PCIe等多种接口与SSD控制器的前端相连,SSD控制器的后端可以通过NFI与Flash阵列相连,主机通过SSD控制器对Flash阵列中的数据进行读写或擦除等操作。
可选的,如图3所示,为本申请实施例所应用的另一种通信系统的硬件架构图。该系统中的控制器与图2所示的系统中的SSD控制器类似。不同的是,该系统中的控制器与Flash阵列封装成独立的芯片,主机通过UFS/eMMC等接口与控制器相连,并通过该接口存取数据。示例性的,控制器与Flash阵列封装成的芯片可应用于诸如手机、平板电脑、可穿戴设备等移动终端中。
图4为本申请实施例提供的一种降低读延时的方法的流程示意图,该方法可应用于上述图2或图3所示的通信系统中,参见图4,该方法包括以下几个步骤。
步骤401:控制器接收主机发送的读请求,该读请求中包括请求数据的位置指示信息。
其中,当主机需要从控制器管理的Flash阵列中读取某一数据时,主机可以向控制器发送读请求,该读请求所请求的数据可以称为请求数据,在该读请求中可以携带位置指示信息。该位置指示信息可以用于指示逻辑地址,即主机用于访问该请求数据时的逻辑地址,逻辑地址与物理地址存在映射关系,根据该请求数据的逻辑地址可以确定该请求数据在Flash阵列中的物理位置。在实际应用中,该位置指示信息也可以是与物理位置存在对应关系的其他信息,比如,该位置指示信息可以是key值,通过预设的key值与Value值之间的对应关系,获取对应的Value值,该Value值可以是数据的物理位置,本申请实施例对此不作限定。
具体的,当控制器接收到主机发送的读请求时,控制器可以根据该位置指示信息获取请求数据在Flash阵列中存储的物理地址,这里将该请求数据的物理地址称为第一物理位置。
步骤402:控制器从读电压管理信息中获取第一物理位置所在的第一存储区域对应的读电压。其中,Flash阵列包括多个存储区域,同一存储区域包括的多个物理位置的物理特性相同或者相似,该读电压管理信息包括存储区域与读电压之间的对应关系,该读电压管理信息中的读电压是动态更新的。
其中,多个存储区域中的每个存储区域可以包括至少一个存储单元,每个存储单元可以通过对应的物理位置进行表示,一个存储区域包括的多个物理位置可以是其包括的至少一个存储单元对应的物理位置。同一存储区域包括的多个物理位置的物理特性相同或相似,即同一存储区域中包括的存储单元的物理特性相同或相似。不同存储区域包括的多个物理位置的物理特性不同,即不同存储区域中包括的存储单元的物理特性不同。这里存储单元的物理特性可以包括多个方面,比如,纳米级的几何尺寸、材质的电学特性、存储单元组合的结构、以及内部的控制电路等等。在本申请实施例中,两个存储单元的物理特性相同或相似是指两个存储单元的物理特性差异较小,比如,其物理特性的对应的某一参数小于设定门限、或者其物理特性对应的多个参数均小于各自对应的设定门限,则确定其物理特性差异较小。两个存储单元的物理特性不同是指两个存储单元的物理特性差异较大,比如,其物理特性的对应的某一参数大于设定门限、或者其物理特性对应的多个参数均大于各自对应的设定门限,则确定其物理特性差异较小。
另外,存储单元的物理特性与存储单元对应的读电压特性有关,读电压是指从模拟信号向数据信号转换时对应的转换电压,读电压特性可以是指在不同条件(比如,不同温度、不同时间、不同PE、不同数据保留时间、不同读操作次数(Read Counts))下,使用不同的设备读取读电压时,对应的出错参数的变化规律。具体的,物理特性相同或者相似的多个存储单元对应的读电压特性之间的差异较小,物理特性不同的多个存储单元对应的读电压特性之间的差异较大。因此,同一存储区域中包括的存储单元的物理特性相同或相似,则同一存储区域包括的存储单元对应的读电压特性的差异较小,从而一个存储区域可以对应一个读电压。不同存储区域中包括的存储单元的物理特性不同,则不同存储区域包括的存储单元对应的读电压特性的差异较大,从而不同的存储区域可以对应不同的读电压。
再者,对于Flash阵列包括的多个存储区域,同一存储区域包括的存储单元的读电压特性相同或相似,不同存储区域包括的存储单元的读电压特性不同。当多个存储单元的读电压特性相同或相似,即该多个存储单元的读电压特性差异较小时,则该多个存储单元可以属于同一存储区域中;当多个存储单元的读电压特性不同,即该多个存储单元的读电压特性差异较大时,则该多个存储单元可以属于不同存储区域中。确定读电压特性差异较小和较大的方法,可以与确定物理特性差异较小或较大的方法类似。本申请实施例中,通过将物理特性相同或相似、以及读电压特性相同或相似的多个物理位置划分在同一存储区域,对应一个读电压,可以节省系统开销。
对于多个存储区域中的每个存储区域,读电压管理信息中可以包括每个存储区域与读电压之间的对应关系。读电压管理信息中包括的读电压是动态更新的,即读电压管理信息中每个存储区域对应的读电压是及时刷新的,以保证每个存储区域对应的读电压的准确性。
具体的,当控制器接收到读请求时,控制器可以根据读请求中包括的第一物理位置,确定第一物理位置在多个存储区域中所在的存储区域,这里将物理位置所在的存储区域称为第一存储区域。控制器根据第一存储区域,从动态更新的读电压管理信息包括的存储区域与读电压之间的对应关系中,获取第一存储区域对应的读电压,获取的读电压的准确性较好,从而以该读电压从第一存储区域中读取数据时的成功率较高。
可选的,当控制器接收到读请求时,控制器根据还可以特定的读请求策略,选择是否通过读电压管理信息获取读电压。当根据特定的读请求策略,选择通过读电压管理信息获取读电压(即选择是)时,则根据上述步骤402获取对应的读电压。特定的读请求策略可以事先进行设置,对于不同的读请求,可以设置不同的读请求策略,也可以设置相同的读请求策略,本申请实施例对此不作具体限定。
进一步的,Flash阵列可以包括多个Device,每个Device的内部结构可以如图1所示。当Flash阵列中的每个存储区域可以包括至少一个存储单元时,该存储单元可以包括以下中的至少一项:颗粒(Device)、逻辑单元(Die)、面(Plane)、块(Block)、超级块(SuperBlock)、层(Layer)、子块(Sub-Block)、字线(WL)和页面(Page)。也即是,Flash阵列划分为多个存储区域时的划分粒度可以包括上述中的至少一项。
比如,当划分粒度包括Device时,则一个存储区域中可以包括至少一个Device。当划分粒度包括Die时,则一个存储区域中可以包括至少一个Die。当划分粒度包括Plane时,则一个存储区域中可以包括至少一个Plane。当划分粒度包括Block时,则一个存储区域中可以包括至少一个Block。当划分粒度包括Super Block时,则一个存储区域中可以包括至少一个Super Block。当划分粒度包括Layer时,则一个存储区域中可以包括至少一个Layer。当划分粒度包括Sub-Block时,则一个存储区域中可以包括至少一个Sub-Block。当划分粒度包括WL时,则一个存储区域中可以包括至少一个WL。当划分粒度包括Page时,则一个存储区域中可以包括至少一个Page。
可选的,通常由于Flash阵列中各Block的使用条件(比如,PE/Retention Time等)一般不同,从而不同的Block可以位于不同的存储区域中。此外,Block内部Page的读电压特性与Page在Block中的物理位置相关,因此可以将读电压特性相同或相似的Page划分在同一存储区域中,本申请实施例对此不作具体限定。
步骤403:控制器根据第一存储区域对应的读电压获取请求数据,并将请求数据发送给主机。
其中,当控制器获取到第一存储区域对应的读电压时,控制器可以根据第一存储区域对应的读电压,从第一存储区域中获取第一物理位置处所存储的请求数据。之后,控制器可以将该请求数据发送给主机,从而主机可以接收到该请求数据。
在本申请实施例中,当控制器接收到主机发送的读请求时,控制器可以根据读请求包含的位置指示信息所指示的第一物理位置,从读电压管理信息包括的存储区域与读电压之间的对应关系中,获取第一物理位置所在的第一存储区域对应的读电压,由于第一存储区域包括的多个物理位置的物理特性和读电压特性相同或相似,且读电压管理信息中的读电压是动态更新的,从而可以保证获取的读电压的准确性,基于该读电压获取请求数据时,可以提高首次读成功率,减少读操作次数,进而降低了读延时。
进一步的,参见图5,读电压管理信息中的读电压是动态更新的,可以包括步骤404:对于多个存储区域中的任一存储区域,当满足预设条件时,控制器更新读电压管理信息中该存储区域对应的读电压。步骤404与步骤401-步骤403可以不分先后顺序。
其中,当满足预设条件时,控制器可以通过特定的在线读电压的优化算法,确定该存储区域对应的有效读电压,并根据该有效读电压更新读电压管理信息中该存储区域对应的读电压。其中,控制器动态更新读电压管理信息中该存储区域对应的读电压时,控制器可以主动的更新该存储区域对应的读电压,也可以被动的更新该存储区域对应的读电压。主动的更新读电压管理信息中的读电压,或者被动的读电压管理信息中的更新读电压,都可以保证读电压管理信息中的读电压是动态更新的。下面分别对这两种方式进行详细说明。
第一种、控制器主动的更新该存储区域对应的读电压,具体可以包括:当控制器处于系统空闲时间窗或者满足预设更新周期时,控制器确定该存储区域对应的读电压下的第一出错参数;当第一出错参数大于或等于第一阈值时,控制器更新读电压管理信息中该存储区域对应的读电压。
其中,控制器处于系统空闲时间窗可以是指控制器处于空闲状态,该空闲状态可以理解为控制器的读写IO的负载低于某一特定值,从而控制器相对比较空闲。预设更新周期可以事先进行设置,且预设更新周期可以包括一个周期,也可以包括多个不同的周期。一个存储区域对应的预设更新周期的设置可以与该存储区域的使用状态相关(比如,PE次数和读操作次数),或者与Flash阵列中包括的多个存储区域的平均使用寿命相关。比如,多个存储区域的平均使用寿命可以通过平均PE来表示,当平均PE较大(比如,生命早期)时可以使用较大的预设更新周期,当平均PE较小(比如,生命末期)时可以使用较小的预设更新周期。
另外,第一出错参数可以用于指示读取数据中的出错程度,第一出错参数可以是出错比特数或者比特误码率RBER。第一阈值可以是事先设置的容错门限,若第一出错参数小于第一阈值,则表示在容错范围之内,若第一出错参数大于或等于第一阈值,则表示不在容错范围之内。
具体的,当控制器处于系统空闲时间窗或者满足预设更新周期时,控制器将读电压管理信息中当前存储的该存储区域对应的读电压作为被检测的读电压,根据被检测的读电压,对该存储区域中包括的物理位置进行采样,获取被检测的读电压下的出错参数为第一出错参数。如果第一出错参数小于第一阈值,则控制器可以确定该存储区域对应的读电压有效,从而不对其进行更新。如果第一出错参数大于或等于第一阈值,则控制器可以确定该存储区域对应的读电压无效,需要对其进行更新。
当控制器对该存储区域对应的读电压进行更新时,控制器可以通过尝试的方法确定当前的有效读电压,比如,控制器可以按照电压逐步递增或递减的方式测试多个电压下的出错参数,将出错参数最小的读电压确定为当前的有效读电压,从而将读电压管理信息中该存储区域对应的读电压替换为当前的有效读电压,以实现对该存储区域对应的读电压的更新。
上述主动的更新读电压管理信息中的读电压的方法中,控制器会在每个系统空闲时间窗内主动的更新读电压管理信息中的读电压,或者在每个预设更新周期内主动的更新读电压管理信息中的读电压,从而实现了每隔一段时间即对读电压管理信息中的读电压更新一次。因此,主动的更新读电压管理信息中的读电压,可以使得读电压管理信息中的读电压处于动态更新的状态,从而保证读电压管理信息中的读电压是实时有效性的。
此外,当通过预设更新周期触发控制器主动地更新该存储区域对应的读电压时,可以通过定时器中断的方式进行触发。还可以通过其他强制信号触发控制器主动地更新该存储区域对应的读电压,具体的强制信号可以事先进行设置,本申请实施例对此不作限定。
第二种、控制器被动的更新该存储区域对应的读电压,具体可以包括:当在该存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,控制器更新读电压管理信息中该存储区域对应的读电压。
其中,首次读取的请求数据是指控制器根据读电压管理中该存储区域对应的读电压,第一次从该存储区域中读取的请求数据,该请求数据是基于主机发送的读请求所获取的数据,并不是控制器主动的进行采样获取的数据。
具体的,控制器在该存储区域对应的读电压下,首次从该存储区域中读取请求数据,读取的请求数据的出错参数为第二出错参数。如果第二出错参数小于第一阈值,则控制器可以确定该存储区域对应的读电压有效,从而不对其进行更新。如果第二出错参数大于或等于第一阈值,则控制器可以确定该存储区域对应的读电压无效,需要对其进行更新。
需要说明的是,控制器对该存储区域对应的读电压进行更新(即获取当前的有效读电压)时,也可以按照电压逐步递增或递减的方式进行更新,具体实现过程与第一种方式中的描述一致,本申请实施例在此不再赘述。
当控制器对读电压管理信息中多个存储区域对应的读电压进行更新时,控制器可以先确定出读电压无效的存储区域,之后,控制器可以仅对读电压管理信息中读电压无效的存储区域的读电压进行更新。在本申请实施例中,控制器在更新读电压管理信息中该存储区域对应的读电压时,通过先确定读电压管理信息中存储的该存储区域对应的读电压是否有效,并在确定其无效时进行更新,从而可以避免不必要的操作,进而节省了系统带宽和负载开销。
上述被动的更新读电压管理信息中的读电压的方法中,控制器会在读电压管理信息中的读电压无效时,将其更新为当前的有效读电压,从而在每段时间内,当读电压管理信息中出现一个或者多个无效的读电压时,控制器都会对该一个或者多个读电压进行更新。因此,被动的更新读电压管理信息中的读电压,可以使得读电压管理信息中的读电压处于动态更新的状态,从而保证读电压管理信息中的读电压是实时有效性的。
为便于理解,通过图6和图7所示的处理流程,对控制器主动地更新读电压管理信息和被动地更新读电压管理信息的过程分别进行举例说明。
图6为一种控制器主动地更新读电压管理信息的流程图,以控制器处于系统空闲时间窗为例。具体的,假设读电压管理信息中所有的读电压都需要更新,则当控制器处于系统空闲时间窗时,控制器可以确定读电压管理信息中每个读电压下对应的出错参数,确定读电压管理信息中需要更新的读电压(比如,当其对应的出错参数小于第一阈值时则确定不需要更新,当其对应的出错参数大于或等于第一阈值时则确定需要更新),从而得到待更新读电压记录信息(即读电压管理信息中读电压无效的存储记录);控制器通过读电压更新的方法(比如,上述步骤404中提供的方法)对待更新读电压记录信息进行更新。当全部的待更新读电压记录信息更新完成后结束,或者系统空闲时间窗结束。
图7为一种控制器被动地更新读电压管理信息的流程图。具体的,控制器接收到主机发送的读请求,根据读请求包括的物理位置信息从读电压管理信息中获取对应的读电压(即通过读电压管理信息响应读请求),基于该读电压首次获取的请求数据数据失败(即首次读数据失败)时,将读电压管理信息中该读电压标记为无效的读电压;之后,进入错误恢复流程(即更新无效的读电压)或结束。
需要说明的是,控制器确定读电压管理信息中无效的读电压的步骤,以及更新读电压管理信息中无效的读电压的步骤可以同步执行,也可以异步执行。也即是,控制器可以先确定读电压管理信息中所有无效的读电压,然后对所有无效的读电压逐一进行更新;或者,控制器每确定读电压管理信息中的一个无效的读电压后,即对该无效的读电压进行更新,然后再确定下一个无效的读电压进行更新,以此类推;或者,控制器一边确定读电压管理信息中无效的读电压,一边对已确定的无效的读电压进行更新,本申请实施例对此不作具体限定。
在实际应用中,当控制器更新读电压管理信息时,若该读电压管理信息驻留在内存等快速存储介质中,则需要在非易失性存储介质中作备份,当系统初始化时,将该读电压管理信息从非易失性存储介质导入快速存储介质已完成初始化。或者,控制器将读电压管理信息直接存储在同时具备快速存取和非易失特性的存储介质中。
进一步的,控制器不仅可以从读电压管理信息中获取读电压以及根据该读电压获取请求数据,也可以更新读电压管理信息中的读电压。其中,为便于理解,将控制器从读电压管理信息中获取读电压以及获取请求数据的操作称为获取操作,此时读电压管理信息的状态可以称为操作相面;将控制器更新读电压管理信息中的读电压的操作称为更新操作,此时读电压管理信息的状态可以称为维护相面。获取操作与更新操作之间的关系具体如下所述。
对于多个存储区域中的任一个存储区域,当控制器在第一时间段内更新读电压管理中该存储区域对应的读电压,在第二时间段内从读电压管理中获取该存储区域对应的读电压时,第一时间段与第二时间段不存在重叠。也即是,对于读电压管理信息中同一存储区域对应读电压,控制器不能同时进行获取操作和更新操作;或者,读电压管理信息中的同一存储区域,不能同时处于操作相面和维护相面。
对于多个存储区域中的任意两个存储区域,当控制器在第三时间段内更新读电压管理中一个存储区域对应的读电压、在第四时间段内从读电压管理中获取另一个存储区域对应的读电压时,第一时间段与第二时间段存在重叠、或者第一时间段与第二时间段不重叠。即控制器不能在同一时间段对读电压管理信息中同一存储区域对应读电压同时进行获取操作和更新操作。也即是,对于读电压管理信息中不同存储区域对应读电压,控制器可以同时进行获取操作和更新操作,也可以不同时进行获取操作和更新操作;或者,读电压管理信息中的不同存储区域,可以同时处于操作相面和维护相面,也可以不同时处于操作相面和维护相面。
为便于理解,通过图8所示的读请求处理流程图,对本申请实施例的方案进行举例说明。如图8所示,当控制器接收到主机发送的读请求时,可以根据特定的读响应策略,确定是否通过读电压管理信息获取对应的读电压。如果否,则通过现有技术中其他的应答方式进行处理。如果是,则根据读请求中包括的物理位置信息从读电压管理信息中获取对应的读电压;根据对应的读电压获取请求数据;判断读请求应答是否成功;若是(即应答成功)则结束,若否(即不成功)则进入错误恢复流程。
示例性的,如图9所示,为读电压管理信息在操作相面和维护相面下对应的不同操作的示意图,图9中以Flash阵列包括颗粒0~颗粒n,每个颗粒中包括块0~块n为例进行说明。具体的,在操作相面,控制器根据主机发送的读请求,假设该请求中包括的物理位置为颗粒n中的块0,则控制器从读电压管理信息中获取块0对应的读电压,并根据块0对应的读电压从Flash阵列中获取请求数据,之后将请求数据返回给主机。在维护相面,在确定读电压管理信息中块n对应的读电压为无效的读电压时,控制器通过读电压更新方法(比如,上述步骤404中提供的方法)确定块n对应的当前有效的读电压,之后将当前有效的读电压更新至读电压管理信息中。
上述主要从各个设备之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个设备,例如主机和控制器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的设备及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,本申请实施例提供了上述实施例中所涉及的控制器的一种可能的结构示意图。参见图10,该控制器包括:接收单元1001、处理单元1002和发送单元1003。其中,接收单元1001用于支持控制器执行图4或图5所提供的降低读延时的方法中的步骤401;处理单元1002用于支持控制器执行图4或图5所提供的降低读延时的方法中的步骤402和步骤403中获取请求数据的过程、以及图5中的步骤404,和/或用于本文所描述的技术的其他过程;发送单元1003用于支持控制器执行图4或图5所提供的降低读延时的方法中步骤403将请求数据发送给主机的过程。具体描述参见上述实施例中的相关阐述,本申请实施例在此不再赘述。
在硬件实现上,上述处理单元1002可以为处理器;接收单元1001可以为接收器,发送单元1003可以为发送器,接收器和发送器可以构成通信接口。
本申请实施例提供了上述实施例中所涉及的控制器一种可能的逻辑结构示意图。参见图11,该控制器包括:处理器1102、通信接口1103、存储器1101以及总线1104,处理器1102、通信接口1103以及存储器1101通过总线1104相互连接。在本申请的实施例中,处理器1102用于对控制器的动作进行控制管理,例如,处理器1102用于支持控制器执行图4或图5所提供的降低读延时的方法中的步骤402和步骤403中获取请求数据的过程,和/或用于本文所描述的技术的其他过程。通信接口1103用于支持控制器进行通信。存储器1101,用于存储控制器的程序代码和数据。
其中,处理器1102可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1102也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1104可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线1104可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种系统,该系统包括主机、控制器和Flash阵列,Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似该系统。该系统可以为图2或者图3所示的系统。在本申请实施例中,主机可以用于Flash阵列,以及向控制器发送读请求,以及接收控制器发送的请求数据;控制器可以用于管理可以用于执行图4或图5所提供的降低读延时的方法中控制器的步骤。控制器用于执行图4中的步骤401-步骤403,或者用于执行图5中的步骤401-步骤404,和/或本文所描述的技术的其他过程。具体过程参见上述图4或图5所示的实施例中的描述,本申请实施例在此不再赘述。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,使得该设备执行图4或图5所提供的降低读延时的方法。
在本申请发明的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施执行图4或图5所提供的降低读延时的方法。
在本申请实施例中,当控制器接收到主机发送的读请求时,控制器可以根据读请求包含的位置指示信息所指示的第一物理位置,从读电压管理信息包括的存储区域与读电压之间的对应关系中,获取第一物理位置所在的第一存储区域对应的读电压,由于第一存储区域包括的多个物理位置的物理特性和读电压特性相同或相似,且读电压管理信息中的读电压是动态更新的,从而可以保证获取的读电压的准确性,基于该读电压获取请求数据时,可以提高首次读成功率,减少读操作次数,进而降低了读延时。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种降低读延时的方法,其特征在于,应用于控制器中,所述控制器的前端连接主机,后端连接Flash阵列,所述方法包括:
所述控制器接收主机发送的读请求,所述读请求中包括请求数据的位置指示信息;
所述控制器根据所述位置指示信息所指示的第一物理位置,从读电压管理信息中获取所述第一物理位置所在的第一存储区域对应的读电压;其中,所述第一物理位置为所述请求数据在所述Flash阵列中的物理位置,所述Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似,所述读电压管理信息包括存储区域与读电压之间的对应关系,所述读电压管理信息中的读电压是动态更新的;
所述控制器根据所述第一存储区域对应的读电压,获取所述请求数据,并将所述请求数据发送给所述主机。
2.根据权利要求1所述的方法,其特征在于,同一存储区域中包含的物理位置的读电压特性相同或相似;和/或,不同存储区域包含的物理位置的物理特性不同;和/或,不同存储区域包含的物理位置的读电压特性不同。
3.根据权利要求1或2所述的方法,其特征在于,所述读电压管理信息中的读电压是动态更新的,包括:
对于所述多个存储区域中的任一存储区域,当满足预设更新条件时,所述控制器更新所述读电压管理信息中所述存储区域对应的读电压。
4.根据权利要求3所述的方法,其特征在于,所述当满足预设更新条件时,所述控制器更新所述读电压管理信息中所述存储区域对应的读电压,包括:
当处于系统空闲时间窗或者满足预设更新周期时,所述控制器确定所述存储区域对应的读电压下的第一出错参数;
当所述第一出错参数大于或等于第一阈值时,所述控制器更新所述读电压管理信息中所述存储区域对应的读电压。
5.根据权利要求4所述的方法,其特征在于,所述预设更新周期与所述存储区域的使用状态相关;或者,所述预设更新周期与所述Flash阵列包括的多个存储区域的平均使用寿命相关。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述当满足预设更新条件时,所述控制器更新所述读电压管理信息中所述存储区域对应的读电压,包括:
当在所述存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,所述控制器更新所述读电压管理信息中所述存储区域对应的读电压。
7.根据权利要求1-6任一项所述的方法,其特征在于,
对于所述多个存储区域中的任一个存储区域,当所述控制器在第一时间段内更新所述读电压管理中所述存储区域对应的读电压、在第二时间段内从所述读电压管理中获取所述存储区域对应的读电压时,所述第一时间段与所述第二时间段不存在重叠;和/或,
对于所述多个存储区域中的任意两个存储区域,当所述控制器在第三时间段内更新所述读电压管理中一个存储区域对应的读电压、在第四时间段内从所述读电压管理中获取另一个存储区域对应的读电压时,所述第一时间段与所述第二时间段存在重叠、或者所述第一时间段与所述第二时间段不重叠。
8.根据权利要求1-7任一项所述的方法,其特征在于,一个存储区域包括至少一个存储单元,所述存储单元包括以下中的至少一项:颗粒Device、逻辑单元Die、面Plane、块Block、超级块Super Block、层Layer、子块Sub-Block、字线WL和页面Page。
9.一种系统,其特征在于,所述系统包括主机、控制器和Flash阵列,所述Flash阵列中包括多个存储区域,同一存储区域中包含的多个物理位置的物理特性相同或相似;
所述主机,用于向所述控制器发送读请求,以及接收所述控制器返回的请求数据,所述读请求包括所述请求数据的位置指示信息;
所述控制器,用于管理读电压管理信息,所述读电压管理信息包括存储区域与读电压之间的对应关系,所述读电压管理信息中的读电压是动态更新的;
所述控制器,还用于当接收到所述读请求时,根据所述位置指示信息所指示的第一物理位置,从所述读电压管理信息中获取所述第一物理位置所在的第一存储区域对应的读电压,所述第一物理位置为所述请求数据在所述Flash阵列中的物理位置;
所述控制器,还用于根据所述第一存储区域对应的读电压,获取所述请求数据,并将所述请求数据发送给所述主机。
10.根据权利要求9所述的系统,其特征在于,同一存储区域中包含的物理位置的读电压特性相同或相似;和/或,不同存储区域包含的物理位置的物理特性不同;和/或,不同存储区域包含的物理位置的读电压特性不同。
11.根据权利要求9或10所述的系统,其特征在于,所述控制器,具体用于:
对于所述多个存储区域中的任一存储区域,当满足预设更新条件时,更新所述读电压管理信息中所述存储区域对应的读电压,以使所述读电压管理信息中的读电压是动态更新的。
12.根据权利要求11所述的系统,其特征在于,所述控制器,具体用于:
当处于系统空闲时间窗或者满足预设更新周期时,确定所述存储区域对应的读电压下的第一出错参数;
当所述第一出错参数大于或等于第一阈值时,更新所述读电压管理信息中所述存储区域对应的读电压。
13.根据权利要求12所述的系统,其特征在于,所述预设更新周期与所述存储区域的使用状态相关;或者,所述预设更新周期与所述Flash阵列中多个存储区域的平均使用寿命相关。
14.根据权利要求11-13任一项所述的系统,其特征在于,所述控制器,具体用于:
当在所述存储区域对应的读电压下,首次读取的请求数据的第二出错参数大于或等于第一阈值时,更新所述读电压管理信息中所述存储区域对应的读电压。
15.根据权利要求9-14任一项所述的系统,其特征在于,
对于所述多个存储区域中的任一个存储区域,当所述控制器在第一时间段内更新所述读电压管理中所述存储区域对应的读电压、在第二时间段内从所述读电压管理中获取所述存储区域对应的读电压时,所述第一时间段与所述第二时间段不存在重叠;和/或,
对于所述多个存储区域中的任意两个存储区域,当所述控制器在第三时间段内更新所述读电压管理中一个存储区域对应的读电压、在第四时间段内从所述读电压管理中获取另一个存储区域对应的读电压时,所述第一时间段与所述第二时间段存在重叠、或者所述第一时间段与所述第二时间段不重叠。
16.根据权利要求9-15任一项所述的系统,其特征在于,一个存储区域包括至少一个存储单元,所述存储单元包括以下中的至少一项:颗粒Device、逻辑单元Die、面Plane、块Block、超级块Super Block、层Layer、子块Sub-Block、字线WL和页面page。
17.一种可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述可读存储介质在设备上运行时,使得所述设备执行权利要求1-8任一项所述的降低读延时的方法。
18.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行权利要求1-8任一项所述的降低读延时的方法。
CN201711208323.XA 2017-11-27 2017-11-27 一种降低读延时的方法及装置 Pending CN109840047A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201711208323.XA CN109840047A (zh) 2017-11-27 2017-11-27 一种降低读延时的方法及装置
EP18880718.4A EP3702897A4 (en) 2017-11-27 2018-11-19 METHOD AND DEVICE FOR REDUCING READING LATENCY
PCT/CN2018/116257 WO2019101044A1 (zh) 2017-11-27 2018-11-19 一种降低读延时的方法及装置
KR1020207017575A KR102374239B1 (ko) 2017-11-27 2018-11-19 판독 지연 시간 단축 방법 및 장치
US16/884,158 US11210210B2 (en) 2017-11-27 2020-05-27 Read latency reduction method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711208323.XA CN109840047A (zh) 2017-11-27 2017-11-27 一种降低读延时的方法及装置

Publications (1)

Publication Number Publication Date
CN109840047A true CN109840047A (zh) 2019-06-04

Family

ID=66630450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711208323.XA Pending CN109840047A (zh) 2017-11-27 2017-11-27 一种降低读延时的方法及装置

Country Status (5)

Country Link
US (1) US11210210B2 (zh)
EP (1) EP3702897A4 (zh)
KR (1) KR102374239B1 (zh)
CN (1) CN109840047A (zh)
WO (1) WO2019101044A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124278A (zh) * 2019-11-21 2020-05-08 苏州浪潮智能科技有限公司 一种固态硬盘提高读性能的方法、设备及介质
CN112858712A (zh) * 2019-11-28 2021-05-28 深圳市帝迈生物技术有限公司 试剂信息的导入方法、样本检测设备以及存储介质
WO2023087267A1 (zh) * 2021-11-19 2023-05-25 华为技术有限公司 数据读取方法、控制器和存储系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117794982A (zh) 2021-06-07 2024-03-29 瓦克化学股份公司 含有具有聚苯醚基团的聚有机硅氧烷的组合物
CN116469439A (zh) * 2022-01-11 2023-07-21 慧荣科技股份有限公司 计算机可读取存储介质、使用优化读取电压表以读取数据的方法及装置
CN114489519B (zh) * 2022-04-18 2022-07-12 创新科技术有限公司 一种io请求的处理方法、装置、设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101405813A (zh) * 2006-06-22 2009-04-08 桑迪士克股份有限公司 用于对非易失性存储器进行非实时重新编程以实现较紧密的阈值电压分布的方法
CN102543196A (zh) * 2010-12-14 2012-07-04 群联电子股份有限公司 数据读取方法、存储器储存装置及其控制器
US20130314988A1 (en) * 2012-05-22 2013-11-28 Sandisk Technologies Inc. Systems and methods of updating read voltages
CN104102598A (zh) * 2013-04-09 2014-10-15 群联电子股份有限公司 数据读取方法、控制电路、存储器模块与存储器储存装置
CN104347113A (zh) * 2014-11-21 2015-02-11 中国科学院上海微系统与信息技术研究所 一种相变存储器的读出电路及读出方法
CN104737232A (zh) * 2012-09-06 2015-06-24 美光科技公司 用以提供针对存储器装置的电力管理的设备及方法
CN106169308A (zh) * 2015-03-16 2016-11-30 爱思开海力士有限公司 存储器控制器及其操作方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
KR101391362B1 (ko) 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
US8072805B2 (en) 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
US9779020B2 (en) * 2011-02-08 2017-10-03 Diablo Technologies Inc. System and method for providing an address cache for memory map learning
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
KR20140045168A (ko) 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9244763B1 (en) * 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US10475523B2 (en) * 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
KR102211865B1 (ko) * 2014-05-20 2021-02-04 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
CN104461399B (zh) * 2014-12-19 2018-08-28 上海新储集成电路有限公司 非易失性存储器的写缓存器系统及其数据读写方法
US10339048B2 (en) * 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
KR20200067848A (ko) * 2017-09-30 2020-06-12 마이크론 테크놀로지, 인크. 우선적 유휴 시간 판독 스캔
KR102524096B1 (ko) * 2021-07-30 2023-04-20 현대제철 주식회사 열간 프레스용 강판 및 이를 이용하여 제조된 핫 스탬핑 부품

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101405813A (zh) * 2006-06-22 2009-04-08 桑迪士克股份有限公司 用于对非易失性存储器进行非实时重新编程以实现较紧密的阈值电压分布的方法
CN102543196A (zh) * 2010-12-14 2012-07-04 群联电子股份有限公司 数据读取方法、存储器储存装置及其控制器
US20130314988A1 (en) * 2012-05-22 2013-11-28 Sandisk Technologies Inc. Systems and methods of updating read voltages
CN104737232A (zh) * 2012-09-06 2015-06-24 美光科技公司 用以提供针对存储器装置的电力管理的设备及方法
CN104102598A (zh) * 2013-04-09 2014-10-15 群联电子股份有限公司 数据读取方法、控制电路、存储器模块与存储器储存装置
CN104347113A (zh) * 2014-11-21 2015-02-11 中国科学院上海微系统与信息技术研究所 一种相变存储器的读出电路及读出方法
CN106169308A (zh) * 2015-03-16 2016-11-30 爱思开海力士有限公司 存储器控制器及其操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
智联教育等: "《2006 网管员特训》", 28 February 2006, 四川出版集团 四川电子音像出版中心 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124278A (zh) * 2019-11-21 2020-05-08 苏州浪潮智能科技有限公司 一种固态硬盘提高读性能的方法、设备及介质
CN112858712A (zh) * 2019-11-28 2021-05-28 深圳市帝迈生物技术有限公司 试剂信息的导入方法、样本检测设备以及存储介质
WO2023087267A1 (zh) * 2021-11-19 2023-05-25 华为技术有限公司 数据读取方法、控制器和存储系统

Also Published As

Publication number Publication date
US20200285575A1 (en) 2020-09-10
EP3702897A1 (en) 2020-09-02
EP3702897A4 (en) 2020-12-16
KR20200089300A (ko) 2020-07-24
KR102374239B1 (ko) 2022-03-14
WO2019101044A1 (zh) 2019-05-31
US11210210B2 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
CN109840047A (zh) 一种降低读延时的方法及装置
CN103049397B (zh) 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
Li et al. Access characteristic guided read and write cost regulation for performance improvement on flash memory
CN103810112B (zh) 一种非易失性内存系统及其管理方法
US8595414B2 (en) Selectively combining commands for a system having non-volatile memory
TWI437439B (zh) 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器
TWI630540B (zh) 資料儲存裝置及非揮發式記憶體操作方法
GB2507410A (en) Storage class memory having low power, low latency, and high capacity
US11449443B2 (en) Identification and classification of write stream priority
US20140095555A1 (en) File management device and method for storage system
US20170075591A1 (en) Method for providing nonvolatile storage write bandwidth using a caching namespace
US20190004723A1 (en) Throttling components of a storage device
CN103207846A (zh) 内存控制器及控制方法
US20240086315A1 (en) Memory access statistics monitoring
TW202026891A (zh) 閃存的資料寫入方法及電腦程式產品
US10108350B2 (en) Method for providing nonvolatile storage write bandwidth using a caching namespace
CN113574497A (zh) 数据存储方法及存储芯片
CN206331414U (zh) 一种固态硬盘
WO2020237637A1 (zh) 一种数据读取方法、存储控制器及电子设备
CN116235138A (zh) 一种应用于固态硬盘ssd的数据读取方法及相关装置
CN108073475A (zh) 固态硬盘备份对照表的方法
US20240061782A1 (en) Method and device for data caching
CN108170380B (zh) 一种固态硬盘提升顺序读性能的方法及固态硬盘
CN203733100U (zh) 基于相变存储器的存储系统结构
Sun et al. CalmWPC: A buffer management to calm down write performance cliff for NAND flash-based storage systems

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