CN111758085A - 基于主机系统的工作负载识别存储装置的读取操作 - Google Patents

基于主机系统的工作负载识别存储装置的读取操作 Download PDF

Info

Publication number
CN111758085A
CN111758085A CN201980014968.0A CN201980014968A CN111758085A CN 111758085 A CN111758085 A CN 111758085A CN 201980014968 A CN201980014968 A CN 201980014968A CN 111758085 A CN111758085 A CN 111758085A
Authority
CN
China
Prior art keywords
memory device
workload
read
host system
word line
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
CN201980014968.0A
Other languages
English (en)
Inventor
M·汉密尔顿
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN111758085A publication Critical patent/CN111758085A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0613Improving I/O performance in relation to throughput
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

可接收来自主机系统的读取请求。可关于所述读取请求是否与确定性工作负载相关联做出确定。响应于确定来自所述主机系统的所述读取请求与所述确定性工作负载相关联,可提供使存储器装置基于与所述读取请求相关联的所述确定性工作负载执行一类型的读取操作的指示。

Description

基于主机系统的工作负载识别存储装置的读取操作
技术领域
本发明一般来说涉及一种存储装置,且更具体来说,涉及基于主机系统的工作负载识别存储装置的读取操作。
背景技术
存储装置可包含存储数据的一或多个存储器组件。举例来说,固态驱动器(SSD)可包含例如非易失性存储器装置等存储器装置。SSD可进一步包含SSD控制器,其可管理存储器装置中的每一者且指配待存储于存储器装置处的数据。主机系统可利用SSD及向SSD请求数据。SSD控制器可用于从对应存储器装置检索数据且将所检索数据传回到主机系统。
附图说明
将从下文所给出的详细说明及从本发明的各种实施方案的附图更完全地理解本发明。
图1图解说明根据本发明的一些实施例包含存储装置的实例计算环境。
图2是根据一些实施例的存储装置的实例控制器的框图。
图3是根据本发明的一些实施例用以基于主机系统的工作负载识别待由存储器装置执行的读取操作的实例方法的流程图。
图4是根据本发明的一些实施例用以基于主机系统的工作负载指示待由存储器装置用来检索数据的读取操作的实例方法的流程图。
图5A图解说明根据本发明的一些实施例的确定性工作负载的实例。
图5B图解说明根据本发明的一些实施例的随机工作负载的实例。
图6A图解说明根据本发明的一些实施例基于字线斜坡读取操作的存储器装置的字线与位线的断言。
图6B图解说明根据本发明的一些实施例基于离散读取操作的存储器装置的字线与位线的断言。
图7是根据一些实施例用以确定待由存储器装置用来检索数据的读取操作的实例方法的流程图。
图8是根据本发明的一些实施例用以基于来自主机系统的读取请求的聚合确定待由存储器装置使用的读取操作的实例方法的流程图。
图9是其中本发明的实施方案可操作的实例计算机系统的框图。
具体实施方式
本发明的各方面是针对基于主机系统的工作负载识别存储装置的读取操作。一般来说,主机系统可利用包含一或多个存储器装置的存储装置。主机系统可提供待存储于存储装置处的数据且可随后检索存储于存储装置处的数据。可存储并从存储装置内的存储器装置读取数据。主机系统的工作负载可为由主机系统提供以从存储器装置检索数据的读取请求的群组。
存储装置的实例是固态驱动器(SSD),其包含非易失性存储器及用以管理非易失性存储器的控制器。控制器可识别或指示待由非易失性存储器用来检索存储于非易失性存储器的特定位置处的数据的操作。存储于非易失性存储器处的数据可组织在对应于非易失性存储器的逻辑单元的存储器页(即,存储器胞元)处。存储器页中的每一者可通过非易失性存储器的字线及位线来存取。举例来说,控制器可提供操作(例如,提供电压输入)来断言特定字线及特定位线以检索存储于非易失性存储器的对应存储器页处的数据。因此,可通过在字线及位线处提供电压输入而从非易失性存储器的存储器页检索数据。
可通过使用由非易失性存储器用来从非易失性存储器的存储器页内读取数据的不同读取操作来检索非易失性存储器处的数据。举例来说,第一类型的读取操作可为字线斜坡读取操作,其对应于在与字线相关联的不同位线也被断言时在所述字线处施加的变化或增加的电压输入。此字线斜坡读取操作可导致对存储于通过经断言的同一字线及经断言的各种不同位线存取的每一存储器页处的数据的读取或检索。因此,对应于多个存储器页的数据可通过使用字线斜坡读取操作来检索。第二类型的读取操作可为离散读取操作,其对应于通过在字线处施加经指定电压输入来断言字线并断言单个位线。此离散读取操作可导致对存储于通过字线及单个位线存取的单个存储器页(或页的部分)处的数据的读取或检索。因此,对应于单个存储器页(或部分)的数据可通过使用离散读取操作来检索。
如此,使用字线斜坡读取操作可导致与离散读取操作相比从更多个存储器页检索数据,但字线斜坡读取操作可花费比单个离散读取操作长的时段来执行。然而,使用字线斜坡读取操作以从特定字线的每一存储器页检索数据可使用比执行离散读取操作以从特定字线的每一存储器页检索数据少的累积时间,这是因为对于每一离散读取操作,针对断言位线的每一实例可单独断言字线。因此,如果主机系统提供对存储于非易失性存储器处的数据的读取请求,那么非易失性存储器的特定读取操作可导致比由非易失性存储器执行的另一读取操作快地检索数据。举例来说,如果主机系统正提供对确定性数据(例如,存储于同一字线上的各种存储器页或顺序存储器页处的数据)的读取请求,那么可使用字线斜坡读取操作来以比针对与字线相关联的每一位线的离散读取操作少的时间检索所请求数据。或者,如果主机系统正提供对随机数据(例如,对在非易失性存储器的不同字线处存取的数据)的读取请求,那么可使用离散读取操作来比字线斜坡读取操作快地检索所请求数据,这是因为来自单个存储器页(而不是与字线相关联的多个存储器页)的数据可被请求。然而,非易失性存储器可能不知晓由主机系统提供的读取请求的类型且因此当字线斜坡读取操作或离散读取操作中的一者可以更少时间检索所请求数据时可不执行所述类型的读取操作。
本发明的方面通过基于主机系统的工作负载识别针对固态驱动器的非易失性存储器装置的特定读取操作来执行而解决以上及其它缺陷。举例来说,固态驱动器的控制器可识别主机系统的工作负载是否是确定性工作负载(例如,主机系统已请求存储于顺序存储器页或来自顺序存储器页的群组的存储器页处的数据)或者主机系统的工作负载是否是随机工作负载(例如,主机系统已请求存储于存储器页处在随机位置或不同字线处的数据)。如果来自主机系统的工作负载是确定性工作负载,那么控制器可指示非易失性存储器执行字线斜坡读取操作以检索存储于通过特定字线存取的存储器页中的每一者处的数据。否则,如果来自主机系统的工作负载是随机工作负载,那么控制器可指示非易失性存储器执行离散读取操作以从通过字线及特定位线存取的特定存储器页检索数据。
当检索数据时使用固态驱动器的控制器识别待由非易失性存储器执行的读取操作的类型可改进固态驱动器的性能。举例来说,当主机系统的工作负载是确定性的时,可使用字线斜坡读取操作,这是因为通过单个经断言字线存取的存储器页可随后由主机系统使用。因此,与多个离散读取操作检索存储器页相对比,可使用单个字线斜坡读取操作来检索存储器页,从而导致以较少时间检索预期由主机系统使用或请求的存储器页。此外,当主机系统的工作负载是随机的时,与字线斜坡读取操作相对比,可使用离散读取操作来检索存储器页,这是因为由主机系统请求的数据可通过断言非易失性存储器的不同字线来存取,且跨越单个字线的存储器页可包含预期不由主机系统使用或请求的数据。因此,固态驱动器的读取性能可因以较少时间执行来自主机系统的读取操作而得以改进。
图1图解说明包含存储装置110的实例计算环境100。一般来说,计算环境100可包含使用存储装置110的主机系统120。举例来说,主机系统120可将数据写入到存储装置110且从存储装置110读取数据。
主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。主机系统120可包含或耦合到存储装置110,使得主机系统120可从存储装置110读取数据或将数据写入到存储装置110。举例来说,主机系统120可经由物理主机接口耦合到存储装置110。物理主机接口的实例包含但不限于串行高级技术附接(SATA)接口、高速外围组件互连(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可用于在主机系统120与存储装置110之间传输数据。当存储装置110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用高速NVM(NVMe)接口来存取存储器装置112A到112N。
如图1中所展示,存储装置110可包含控制器111及存储器装置112A到112N。在一些实施例中,存储器装置112A到112N可为基于非易失性存储器。举例来说,存储器装置112A到112N可为与非(NAND)类型快闪存储器。存储器装置112A到112N中的每一者可包含一或多个存储器胞元(例如单电平胞元(SLC)、多电平胞元(MLC)或四电平胞元(QLC))阵列。存储器胞元中的每一者可存储由主机系统120使用的数据位(例如,数据块)。尽管描述例如NAND类型快闪存储器等非易失性存储器装置,但存储器装置112A到112N可为基于任一其它类型的存储器。举例来说,存储器装置112A到112N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。此外,存储器装置112A到112N的存储器胞元可分组为存储器页或数据块,其可指用于存储数据的存储器装置的单位。
控制器111可与存储器装置112A到112N通信以在存储器装置112A到112N处执行例如读取数据、写入数据或擦除数据等操作及其它此类操作。控制器111可包含例如一或多个集成电路及/或离散组件的硬件、例如固件或其它指令的软件或其组合。一般来说,控制器111可从主机系统120接收命令或操作且可将命令或操作转换为指令或适当命令以实现对存储器装置112A到112N的所要存取。控制器111可负责其它操作,例如磨损均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓冲操作以及与存储器装置112A到112N相关联的逻辑块地址与物理块地址之间的地址翻译。
参考图1,控制器111可包含读取指示器组件113,其可用于当检索存储于相应存储器装置处的数据时指示待由存储器装置112A到112N执行的读取操作的类型。举例来说,读取指示器组件113可识别与主机系统120相关联的工作负载的类型且可基于工作负载的经识别类型指示待由对应存储器装置112A到112N执行的特定读取操作。举例来说,主机系统120可提供对存储于特定存储器装置处的数据的读取请求。控制器111可识别存储所请求数据的特定存储器装置112A到112N且可进一步识别来自主机系统120的工作负载的类型。控制器111可随后将指示提供到特定存储器装置以在存储器装置内针对所请求数据执行特定类型的读取操作。下文描述关于读取指示器组件113的操作的进一步细节。
存储装置110可包含未图解说明的额外电路或组件。举例来说,存储装置110可包含高速缓冲存储器或缓冲器(例如,DRAM)及地址电路(例如,行解码器及列解码器),其可从控制器111接收地址且解码所述地址以存取存储器装置112A到112N。
图2是存储装置的实例控制器200的框图。一般来说,控制器200可对应于图1的控制器111。
如图2中所示,非易失性存储器可包含若干个存储器单元250且控制器200可包含易失性存储器212。存储器单元250可为可由控制器200独立控制的非易失性存储器的一部分(例如,存储器页、物理数据块、存储器装置的裸片等)。控制器200可包含主机接口电路214以经由物理主机接口206与主机系统介接。控制器可进一步包含主机-存储器翻译电路216、存储器管理电路218、交换机220、非易失性存储器控制电路222及/或易失性存储器控制电路224。
主机接口电路214可耦合到主机-存储器翻译电路216。主机接口电路214可与主机系统介接。一般来说,主机接口电路214可负责将从主机系统接收的命令包转换成用于主机-存储器翻译电路216的命令指令,且将主机-存储器翻译响应转换成用于传输到请求的主机系统的主机系统命令。
参考图2,主机-存储器翻译电路216可耦合到主机接口电路214、存储器管理电路218及/或交换机220。主机-存储器翻译电路216可经配置以将主机地址翻译为存储器地址(例如,与所接收命令(例如来自主机系统的读取及/或写入命令)相关联的地址)。举例来说,主机-存储器翻译电路216可将由主机系统读取及写入操作指定的逻辑块地址(LBA)转换为针对特定存储器单元250的命令(例如,物理块地址)。主机-存储器翻译电路216可包含错误检测/校正电路,例如可基于从主机接口电路214接收的信息计算奇偶信息的异或(XOR)电路。
存储器管理电路218可耦合到主机-存储器翻译电路216及交换机220。存储器管理电路218可控制若干个存储器操作,包含但不限于初始化、磨损均衡、垃圾收集、回收及/或错误检测/校正。虽然存储器管理电路218可包含处理器228,但本发明的若干个实施例提供由处理器228对电路中的存储器操作的控制(例如,不依赖指令(例如软件及/或固件)的执行)。存储器管理电路218可包含块管理电路240以从易失性存储器212及/或非易失性存储器的存储器单元250检索数据。举例来说,块管理电路240可检索信息(例如存储器单元250的有效数据块的识别、擦除计数及存储器单元250的其它状态信息)以执行存储器操作。
交换机220可耦合到主机-存储器翻译电路216、存储器管理电路218、非易失性存储器控制电路222及/或易失性存储器控制电路224。交换机220可包含及/或耦合到若干个缓冲器。举例来说,交换机220可包含内部静态随机存取存储器(SRAM)缓冲器(ISB)225。交换机可耦合到包含于易失性存储器212中的DRAM缓冲器227。在一些实施例中,交换机220可在控制器200的各种组件之间提供接口。举例来说,交换机220可计及可与控制器200的不同组件相关联的经定义信令协议的差异,以便在不同组件之间提供一致存取及实施方案。
非易失性存储器控制电路222可将对应于所接收读取命令的信息存储于缓冲器(例如,ISB 225或缓冲器227)中的一者处。此外,非易失性存储器控制电路222可从缓冲器中的一者检索信息且将信息写入到非易失性存储器的对应存储器单元250。若干个存储器单元250可通过若干个通道耦合到非易失性存储器控制电路222。在一些实施例中,所述若干个通道可由非易失性存储器控制电路222来统一控制。在一些实施例中,每一存储器通道可耦合到离散通道控制电路248。特定通道控制电路248可通过单个通道来控制并耦合到一个以上存储器单元250。
如图2中所展示,非易失性存储器控制电路222可包含耦合到通道控制电路248中的每一者的通道请求队列(CRQ)242。此外,每一通道控制电路248可包含耦合到多个存储器单元命令队列(CQ)246的存储器单元请求队列(RQ)244。CRQ 242可经配置以存储在通道之间共享的命令(例如,写入请求或读取请求),且RQ 244可经配置以存储在存储器单元250之间在特定通道上的命令,并且CQ 246可经配置以将当前命令及待在当前命令之后执行的下一命令排队。
CRQ 242可经配置以从交换机220接收命令且将所述命令中继到RQ 244中的一者(例如,与关联于定为所述命令的目标的特定存储器单元250的通道相关联的RQ 244)。RQ244可经配置而以由RQ 244接收第一数目个命令的次序将用于特定存储器单元250的第一数目个命令中继到与特定存储器单元250相关联的CQ 246。命令管线可经构造使得去往同一存储器单元250的命令以特定次序(例如,以由RQ 244接收命令的次序)移动。RQ 244可经配置以响应于与特定存储器单元250相关联的CQ 246是满的而将用于特定存储器单元250的命令排队,且CRQ 242可经配置以响应于特定RQ 244是满的而将用于特定RQ 244的命令排队。
RQ 244可以根据不同存储器单元250的状态的次序将用于不同存储器单元250的若干个命令中继到与不同存储器单元250相关联的CQ 246。举例来说,不同存储器单元250的状态可为就绪/忙碌状态。命令管线经构造使得不同存储器单元250之间的命令可乱序(例如,以与根据当时对总体存储器操作来说是高效的由RQ 244接收命令的次序不同的次序)移动。举例来说,RQ 244可经配置以响应于与第二CQ 246相关联的不同存储器单元250的状态是忙碌而在将来自第二数目个命令中的第二命令中继到第二CQ 246之前将第二数目个命令中的第一命令中继到第一CQ 246,其中第一命令在时间上迟于第二命令而接收。RQ 244可经配置以响应于与第二CQ 246相关联的存储器单元250的状态是就绪而将第二命令中继到第二CQ 246(例如,继中继第一命令之后)。
在一些实施例中,用于每一通道的控制电路可包含耦合到每一通道控制电路248的离散错误检测/校正电路232(例如,错误校正码(ECC)电路)及/或可与一个以上通道搭配使用的若干个错误检测/校正电路232。错误检测/校正电路232可经配置以应用校正(例如博斯-乔赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem)(BCH)错误校正)来检测及/或校正与存储于存储器单元250中的信息相关联的错误。错误检测/校正电路232可经配置以提供用于SLC、MLC或QLC操作的不同错误校正方案。非易失性存储器控制电路222可进一步包含图1的读取指示器组件113以指示待由对应于存储器单元250中的一者的特定存储器装置执行的特定类型的读取操作。尽管读取指示器组件113图解说明为在非易失性存储器控制电路222内,然而读取指示器组件113的功能性可在控制器200内的另一位置(例如,处理器228)处实施。
图3是用以基于主机系统的工作负载识别待由存储器装置执行的读取操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300可由图1的控制器111的读取指示器组件113执行。
如图3中所展示,方法300可在框310处以处理逻辑接收与主机系统的工作负载相关联的读取请求而开始。所述读取请求可从主机系统的应用程序接收且可用于检索或读取存储于由主机系统使用的存储装置处的数据。在一些实施例中,读取请求中的每一者可识别可用于指定所请求数据在存储装置处的位置的逻辑块地址(LBA)。处理逻辑可进一步识别与已从主机系统接收的读取请求相关联的工作负载的类型(框320)。在一些实施例中,可在已从主机系统接收到阈值数目个读取请求之后识别工作负载。工作负载可识别为确定性工作负载或随机工作负载。确定性工作负载可对应于对存储于存储装置处的数据的分组在一起的读取请求。举例来说,当来自主机系统的连续接收的读取请求的逻辑块地址递增(例如,来自读取请求的LBA在来自后续读取请求的后续LBA前面)时,可识别确定性工作负载。因此,当接收到顺序读取请求的群组时可识别确定性工作负载。在同一或替代实施例中,当所接收读取请求的逻辑块地址各自是顺序逻辑块地址的群组的一部分(例如,来自第一读取请求的LBA是在LBA群组内且来自后续读取请求的后续LBA是在同一LBA群组内)时,可识别确定性工作负载。当来自主机系统的连续接收的读取请求的逻辑块地址不递增(例如,来自读取请求的LBA不在来自后续读取请求的后续LBA前面)时,可识别随机工作负载。结合图5A及5B描述关于识别确定性工作负载与随机工作负载的进一步细节。
处理逻辑可进一步基于主机系统的工作负载的经识别类型从多种类型的读取操作选择读取操作(框330)。读取操作的类型可为存储器装置(例如,NAND快闪存储器装置)可执行以检索存储器装置的存储器页处的数据的操作。因此,所述读取操作类型可为在存储器装置中的一者内内部执行的操作。一种类型的读取操作可为离散读取操作,其检索与存储器装置的字线及位线相关联的数据。另一类型的读取操作可为字线斜坡读取操作,其检索与存储器装置的字线及多个位线相关联的数据。在一些实施例中,当主机系统的工作负载识别为随机工作负载时,存储器装置可使用离散读取操作,且当主机系统的工作负载识别为确定性工作负载时,存储器装置可使用字线斜坡读取操作。此外,处理装置可提供待由存储器装置执行的所选择读取操作的指示(框340)。提供到存储器装置的指示可为操作码(opcode),所述操作码是指定待由存储器装置执行的读取操作的类型的指令。因此,当从存储器装置的存储器页检索数据时,存储由主机系统请求的数据的存储器装置可使用所指定读取操作。结合图6A及6B描述关于可由存储器装置执行的读取操作的类型的进一步细节。
如此,存储装置(例如,固态驱动器)的控制器可识别主机系统的工作负载。如果工作负载是确定性的,那么控制器可指示存储器装置通过使用字线斜坡读取操作来检索存储于多个存储器页处的数据。否则,如果工作负载是随机的,那么控制器可指示存储器装置通过使用离散读取操作来检索存储于存储器页处的数据。在一些实施例中,在工作负载已识别为是确定性的或随机的之后,可将对工作负载的识别存储于与存储器装置耦合的控制器处。经存储识别可由控制器用来提供对存储器装置针对随后接收的读取请求执行特定类型的读取操作的指示(例如,操作码)。
图4是用以基于主机系统的工作负载识别待由存储器装置用来检索数据的读取操作的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400可由图1的控制器111的读取指示器组件113执行。
如图4中所展示,方法400可在框410处以处理逻辑接收对应于主机系统的工作负载的读取请求而开始。处理逻辑可进一步确定读取请求是否与顺序逻辑块地址相关联(框420)。当读取请求与顺序逻辑块地址相关联时,读取请求可视为是确定性的。举例来说,每一读取请求可为对检索映射到包含于存储装置中的特定存储器装置的特定部分(例如,物理块地址)的数值逻辑块地址处的数据的请求。当每一读取请求的对应逻辑块地址从前一读取请求的前一逻辑块地址递增时,逻辑块地址可视为是顺序的。如果逻辑块地址是递增的,那么与读取请求中的每一者相关联的基本数据可存储于特定存储器装置的连续或邻近部分(例如,连续物理块地址)处。在一些实施例中,当读取请求的阈值数目个逻辑块地址是在逻辑块地址的特定范围(例如,顺序逻辑块地址的群组)内时,读取请求可视为与顺序逻辑块地址相关联。举例来说,可接收对存储于100个逻辑块地址处的数据的100个读取请求,且如果100个读取请求中的90个指定在100个连续逻辑块地址的范围内的逻辑块地址,那么与100个读取请求相关联的工作负载可视为是确定性的,并且因此,所述读取请求可视为与顺序逻辑块地址相关联。否则,如果少于阈值个读取请求(例如,90个读取请求)指定在100个连续逻辑块地址的范围内的逻辑块地址,那么工作负载可视为是随机的。因此,当读取请求的逻辑块地址对应于顺序逻辑块地址时,可识别确定性工作负载。举例来说,当每一后续逻辑块地址从前一读取请求的前一逻辑块地址递增或读取请求的每一逻辑块地址是在顺序逻辑块地址的群组内时,可识别确定性工作负载。在一些实施例中,可将来自用于识别工作负载是否是确定性的读取请求的数据传回到主机系统。在同一或替代实施例中,可由存储器装置使用由控制器指定的读取操作来检索此数据。举例来说,所述读取操作可为由控制器基于从主机系统接收的前一工作负载而指定的离散读取操作或字线斜坡读取操作。
响应于确定读取请求与顺序逻辑块地址相关联,那么处理逻辑可识别主机系统的工作负载是确定性工作负载(框430)。此外,处理逻辑可接收后续读取请求且指示存储器装置执行字线斜坡读取操作来检索用于后续读取请求的数据(框440)。举例来说,可将指定字线斜坡读取操作的操作码提供到存储器装置以检索用于后续读取请求的数据。当被执行时,字线斜坡读取操作可将增加的电压输入施加到字线以读取与存储器装置的多个位线相关联的多个存储器页的数据,如结合图6B所描述。处理逻辑可进一步基于字线斜坡读取操作从存储器装置的多个存储器页接收数据(框450)。举例来说,可接收来自跨越字线的多个存储器页(例如,与跨越字线的每一位线相关联的存储器页)的数据。来自多个存储器页的数据可包含用于所接收后续读取请求的数据以及可通过在稍后时间接收的其它读取请求所请求的额外数据。随后,处理逻辑可将所接收数据的一部分提供到主机系统且任选地将所接收数据的另一部分存储于缓冲器存储器处(框460)。举例来说,所接收数据的所述所提供部分可来自由后续读取请求识别的逻辑块地址的存储器页,且所接收数据的所述另一部分可来自在未由后续读取请求识别的逻辑块地址处的其它存储器页。可将所接收数据的所述另一部分存储于控制器的缓冲器存储器或存储装置处以用于随后响应于识别对应逻辑块地址的来自主机系统的稍后读取请求而传输到主机系统。如此,当先前已接收对来自多个存储器页的数据的一部分的读取请求时,可将数据的所述部分传回到主机系统,且可将数据的另一部分存储于缓冲器存储器处,直到已从主机系统接收对数据的所述另一部分的后续读取请求。因此,来自多个存储器页的数据可包含当前与所接收读取请求相关联的数据及与所预期后续读取请求相关联的数据。
参考图4,响应于确定读取请求不与顺序逻辑块地址相关联(框420),那么处理逻辑可识别主机系统的工作负载是随机工作负载(框470)。处理逻辑可随后接收后续读取请求且指示存储器装置执行离散读取操作以检索用于后续读取请求的数据(框480)。举例来说,可将指定离散读取操作的另一操作码提供到存储器装置。当被执行时,离散读取操作可将恒定电压输入施加到字线以读取与存储器装置的单个位线相关联的一或多个存储器页的数据,如结合图6A所描述。处理逻辑可进一步基于离散读取操作从存储器装置的存储器页接收数据(框490)。举例来说,可接收来自通过单个位线及字线存取的一或多个存储器页的数据。随后,处理逻辑可将所接收数据提供到主机系统(框495)。举例来说,可响应于后续读取请求而将数据传回到主机系统。
在一些实施例中,可在提供到主机系统之前将从离散读取操作接收的数据存储于缓冲器存储器处。在一些实施例中,与字线斜坡读取操作相比,离散读取操作可从存储器装置传回更少数据。因此,离散读取操作可导致比当由存储装置的存储器装置执行字线斜坡读取操作时少的数据存储于缓冲器存储器处。
图5A图解说明确定性工作负载500的实例。在一些实施例中,确定性工作负载500可由图1的控制器111的读取指示器组件113识别。工作负载可对应于由主机系统提供的读取请求的群组。
如图5A中所展示,逻辑块地址0到14可对应于或映射到特定存储器装置的物理块地址。在一些实施例中,具有数值上邻近另一逻辑块地址的值的值的逻辑块地址可导致所述逻辑块地址的数据物理上邻近所述另一逻辑块地址的数据(例如,数据位于邻近的物理块地址处)。来自主机系统的读取请求可指定对存储于如以‘X’所图解说明的逻辑块地址0到4处的数据的检索。在一些实施例中,可从主机系统连续接收读取请求。在同一或替代实施例中,每一读取请求可指定单个逻辑块地址或多个逻辑块地址。如此,由于读取请求的逻辑块地址是数值上邻近或在顺序逻辑块地址的群组的范围(例如,‘0’到‘4’)内,那么来自主机系统的读取请求可经识别为确定性工作负载。在一些实施例中,确定性工作负载的读取请求可识别映射到与存储器装置的单个字线相关联的物理块地址的逻辑块地址。
图5B图解说明随机工作负载550的实例。在一些实施例中,随机工作负载550可由图1的控制器111的读取指示器组件113识别。
如图5B中所展示,来自主机系统的读取请求可识别逻辑块地址0、4、6、7及14。如此,由于读取请求的逻辑块地址是不递增的或数值上邻近另一所请求逻辑块地址,那么来自主机系统的读取请求可识别为随机工作负载。在一些实施例中,读取请求可识别映射到与存储器装置的不同字线相关联的物理块地址的逻辑块地址。
在一些实施例中,来自主机系统的工作负载可识别为已从确定性工作负载改变为随机工作负载(或反之亦然)。可针对来自主机系统的连续接收的读取请求的群组识别主机系统的工作负载。举例来说,第一群组的读取请求可包含阈值数目个读取请求。可基于来自第一群组的读取请求的逻辑块地址而识别主机系统的工作负载。随后,可从主机系统接收第二读取请求群组。第二读取请求群组可包含阈值数目个读取请求且所述读取请求可为连续接收的。然后可基于来自第二群组的读取请求的逻辑块地址而识别主机系统的工作负载。如果经识别工作负载在第一读取请求群组与第二读取请求群组之间是不同的,那么可改变针对后续接收的读取请求执行的读取操作的类型。工作负载的识别可针对后续读取请求群组继续,使得在接收后续读取请求群组时经识别工作负载可在确定性工作负载与随机工作负载之间改变,从而导致存储器装置在执行字线斜坡读取操作与离散读取操作之间改变。
尽管图5A及5B图解说明15个逻辑块,但可将任何数目个逻辑块地址指配到存储器装置。
图6A图解说明基于字线斜坡读取操作的存储器装置600的字线及位线的断言。在一些实施例中,字线及位线的断言可基于来自图1的控制器111的读取指示器组件113的对存储器装置600的指示。
如图6A中所展示,存储器装置600可包含多个字线(例如,字线‘0’到‘N’)及多个位线(例如,位线‘0’到‘N’)。字线与位线的相交点可对应于对应物理块地址处的存储器胞元或存储器页。举例来说,字线‘1’与位线‘0’到‘N’之间的相交点653、654、655及656可对应于存储器装置的不同物理块地址处的不同存储器页。为检索位于相交点处的存储器页处的数据,可将电压输入提供到对应位线及对应字线。举例来说,在字线斜坡读取操作中,可将斜坡电压信号652(即,斜坡输入电压信号)施加到字线‘1’的输入以检索位于相交点653、654、655及656处的存储器页处的数据。在一些实施例中,斜坡电压信号652可在一时段内增加直到检索到相交点653、654、655及656处的存储器页处的数据。举例来说,当提供斜坡电压信号652时,可在位线‘0’的输入上断言电压信号660以检索存储于位于相交点653处的存储器页处的数据。类似地,可在位线‘1’到‘N’的输入上断言额外电压信号661、662及663以检索存储于位于相交点654、655及656处的存储器页处的数据。在一些实施例中,随着斜坡电压信号652增加,可在位线的输入上断言电压信号。在一些实施例中,斜坡电压信号652可随时间线性地增加。举例来说,斜坡电压信号652可处于第一电压电平且电压信号660可经断言以检索位于相交点653处的存储器页处的数据。随后,斜坡电压信号652可增加到较高第二电压电平且电压信号661可经断言以检索位于相交点654处的存储器页处的数据。类似地,随着斜坡电压信号652增加,可各自在位线上断言额外电压信号662及663。如此,字线斜坡读取操作可用于检索存储于跨越与用斜坡电压信号652断言的字线相交的位线中的每一者的存储器页处的数据。
图6B图解说明基于离散读取操作的存储器装置600的字线及位线的断言。在一些实施例中,字线及位线的断言可基于来自图1的控制器111的读取指示器组件113的对存储器装置600的指示。
如图6B中所展示,电压信号601可在位线‘2’上断言且另一电压信号602可在字线‘1’上断言以检索位于相交点603处的存储器页处的数据。在一些实施例中,在字线‘1’的输入上断言的电压信号602可保持处于恒定电平且可不在一时段内增加。因此,可由存储器装置执行离散读取操作以读取对应于字线与单个位线的相交点的单个存储器页处的数据。因此,当断言恒定输入电压信号时,与字线斜坡读取操作相比,存储于跨越相交于字线的位线的存储器页处的数据被更少地检索。
因此,由存储器装置基于指示执行的不同读取操作可对应于施加到存储器装置的输入(例如,字线)的不同输入电压信号。尽管图6A及6B描述字线斜坡读取操作及离散读取操作,但本发明的方面并不限于这些读取操作。举例来说,本发明的方面可用于确定是否使用用于读取存储器装置的存储器页处的数据的任何其它此类操作。举例来说,断言到字线及/或位线的电压输入的其它组合可与本发明搭配使用。
图7是用以确定由存储器装置用来检索数据的读取操作的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700可由图1的控制器111的读取指示器组件113执行。
如图7中所展示,方法700可在框710处以处理逻辑从主机系统接收读取请求而开始。随后,处理逻辑可识别与来自主机系统的读取请求相关联的存储器装置的字线(框720)。举例来说,读取请求的逻辑块地址可映射到对应于存储器装置的字线与位线的相交点的存储器装置的物理块地址。从相交点识别字线。处理逻辑可随后确定存储于经识别字线的位线处的数据是否将由主机系统请求(框730)。举例来说,如先前所描述,可关于与主机系统相关联的工作负载是否是确定性的做出确定。确定性工作负载可利用且提供对跨越字线及相交于字线的位线中的每一者定位的存储器页中的每一者或多数者的读取请求。在一些实施例中,确定性工作负载可利用阈值数目个存储器页或与字线相交的位线处的数据。随机工作负载可利用且提供对跨越字线定位的一个或较少数目个存储器页的请求。响应于确定存储于经识别字线的位线处的数据将由主机系统请求(例如,工作负载是确定性的),处理逻辑可指示存储器装置对经识别字线及位线处的存储器页执行字线斜坡读取操作(框740)。举例来说,字线斜坡读取操作可用于检索存储于经识别字线及相交于经识别字线的位线处的数据。否则,响应于确定存储于经识别字线的位线处的数据将不由主机系统请求(例如,工作负载是随机的),处理逻辑可指示存储器装置对经识别字线及相交于字线的单个位线处的存储器页执行离散读取操作(框750)。
尽管描述将主机系统的工作负载识别为确定性的或随机的以确定是否指示存储器装置执行字线斜坡读取操作或离散读取操作,但与主机系统或主机系统的工作负载相关联的任何其它特性可用于确定选择由存储器装置执行哪种类型的读取操作。此些特性的实例包含但不限于提供与工作负载相关联的读取请求的应用程序的识别、提供读取请求的客户端系统的识别等。举例来说,第一经识别应用程序可用于指定每一读取请求应使用字线斜坡读取操作来执行,第二经识别应用程序可用于指定每一读取请求应使用离散读取操作来执行,且第三经识别应用程序可指定每一读取请求应识别为确定性工作负载或随机工作负载,如先前所描述。
图8是用以基于来自主机系统的读取请求的聚合确定由存储器装置使用的读取操作的实例方法800的流程图。方法800可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法800可由图1的控制器111的读取指示器组件113执行。
如图8中所展示,方法800可在框810处以处理逻辑从第一主机系统接收第一读取请求群组而开始。处理逻辑可进一步从第二主机系统接收第二读取请求群组(框820)。举例来说,可从不同主机系统接收不同读取请求群组。在一些实施例中,第一主机系统及第二主机系统可与同一实体(例如,同一客户端、用户或其它此类实体)或同一物理位置(例如,同一数据中心)或同一区域相关联。处理逻辑可随后聚合第一读取请求群组与第二读取请求群组(框830)。举例来说,当不同主机系统与同一实体或同一物理位置相关联时,来自第一及第二群组的读取请求的聚合可导致对来自不同主机系统的读取请求的逻辑块地址的识别。在一些实施例中,不同主机系统可运行提供读取请求的相关应用程序。举例来说,第一主机系统可提供分布式应用程序的第一部分且第二主机系统可提供分布式应用程序的第二部分。因此,来自第一主机系统及第二主机系统的读取请求可聚合为与同一分布式应用程序相关联的读取请求。
参考图8,处理逻辑可确定经聚合读取请求是否对应于确定性工作负载(框840)。举例来说,第一及第二群组的逻辑块地址可经组合以确定经聚合读取请求的逻辑块地址的值是否是递增的或在顺序逻辑块地址的范围内。响应于确定经聚合读取请求对应于确定性工作负载,那么处理逻辑可指示存储器装置执行字线斜坡读取操作(框850)。举例来说,可通过存储器装置使用字线斜坡读取操作来检索数据且随后可将数据传回到第一主机系统及第二主机系统。否则,响应于确定经聚合读取请求不对应于确定性工作负载,那么处理装置可执行离散读取操作(框860)。举例来说,可通过存储器装置使用离散读取操作来检索用于读取请求中的每一者的数据。
图9图解说明计算机系统900的实例性机器,可在所述计算机系统内执行用于致使所述机器执行本文中所论述的方法中的任何一或多者的指令集。举例来说,计算机系统900可包含或利用存储装置(例如,图1的存储装置110)或可用于执行控制器的操作(例如,用于执行操作系统以执行对应于图1的读取指示器组件113的操作)。在替代实施方案中,可将所述机器连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的能力作为对等(或分布式)网络环境中的对等机器或云计算基础设施或环境中的服务器或客户端机器来操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、web器具、服务器、网络路由器、交换机或桥接器或者能够执行指定将由所述机器采取的动作的指令集(顺序的或其它)的任何机器。此外,虽然图解说明单个机器,但术语“机器”也应视为包含个别地或联合地执行一指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多者的机器的任何集合。
实例性计算机系统900包含处理装置902、主存储器904(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)等)、静态存储器906(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储装置918,所述装置经由总线930彼此通信。
处理装置902表示一或多个通用处理装置,例如,微处理器、中央处理单元等。更特定来说,所述处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、极长指令字(VLIW)微处理器或实施其它指令集的处理器或者实施指令集的组合的处理器。处理装置902也可为一或多个专用处理装置,例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置902经配置以执行用于执行本文中所论述的操作及步骤的指令926。
计算机系统900可进一步包含网络接口装置908以经由网络920通信。计算机系统900也可包含视频显示单元910(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置912(例如,键盘)、光标控制装置914(例如,鼠标)、图形处理单元922、信号产生装置916(例如,扬声器)、图形处理单元922、视频处理单元928及音频处理单元932。
数据存储装置918可包含机器可读存储媒体924(也称作计算机可读媒体),其上存储有体现本文中所描述的方法或功能中的任何一或多者的一或多个指令集或软件926。指令926也可在其由计算机系统900执行期间完全地或至少部分地驻存于主存储器904内及/或处理装置902内,主存储器904及处理装置902也构成机器可读存储媒体。机器可读存储媒体924、数据存储装置918及/或主存储器904可对应于图1的存储装置110。
在一个实施方案中,指令926包含用以实施对应于读取指示器组件(例如,图1的读取指示器组件113)的功能性的指令。虽然在实例性实施方案中将机器可读存储媒体924展示为单个媒体,但术语“机器可读存储媒体”应视为包含存储一或多个指令集的单个媒体或多个媒体(例如,集中式或分布式数据库及/或相关联高速缓冲存储器及服务器)。术语“机器可读存储媒体”也应视为包含能够存储或编码用于由机器执行且致使机器执行本发明的方法中的任何一或多者的指令集的任何媒体。因此,术语“机器可读存储媒体”应视为包含(但并不限于)固态存储器、光学媒体及磁性媒体。
已在算法及对计算机存储器内的数据位的操作的符号表示方面呈现前述详细说明的一些部分。这些算法说明及表示是由数据处理技术领域的技术人员用以最有效地将其工作的实质传达给所属领域的其它技术人员的方法。此处且一般来说,将算法设想为达到所要结果的自洽操作序列。所述操作是需要对物理量的物理操纵的那些操作。通常(但未必),这些量采取能够被存储、组合、比较及以其它方式加以操纵的电信号或磁信号的形式。已证明,主要出于常用的原因,将这些信号称作位、值、元素、符号、字符、项、数字等有时比较方便。
然而,应记住,所有这些术语及类似术语均与适当的物理量相关联,且仅是应用于这些量的方便标签。除非如从以上论述明了另有具体陈述,否则应了解,在本说明书通篇中,利用例如“接收”或“确定”或“提供”等术语的论述是指计算机系统或类似电子计算装置的动作及过程,其对表示为计算机系统的寄存器及存储器内的物理(电子)量的数据进行操纵并将其变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储装置内的物理量的其它数据。
本发明也涉及一种用于执行本文中的操作的设备。此设备可特别针对预期目的而构造,或其可包括通用计算机,所述通用计算机由存储于所述计算机中的计算机程序来选择性地激活或重新配置。此计算机程序可存储于计算机可读存储媒体中,例如(但并不限于)任何类型的磁盘(包含软盘、光盘、CD-ROM及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中所呈现的算法及显示并不与任何特定计算机或其它设备内在地相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以执行方法的更专门化设备是方便的。用于各种这些系统的结构将显现为在下文中的说明中所陈述。另外,本发明并非参考任何特定编程语言而描述。将了解,各种编程语言可用于实施如本文中所描述的本发明的教示。
本发明可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含上面存储有指令的机器可读媒体,所述指令可用以编程计算机系统(或其它电子装置)以执行根据本发明的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机构。举例来说,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,已参考本发明的特定实例性实施方案描述本发明的实施方案。将显而易见,在不背离如所附权利要求书中所陈述的本发明的实施方案的较宽广精神及范围的情况下,可对本发明做出各种修改。因此,应将本说明书及图式视为具有说明性意义而非限制性意义。

Claims (31)

1.一种方法,其包括:
从主机系统接收多个读取请求;
确定所述多个读取请求是否与确定性工作负载相关联;及
响应于确定来自所述主机系统的所述多个读取请求与所述确定性工作负载相关联,由处理装置提供使存储器装置基于所述确定性工作负载执行一类型的读取操作的指示。
2.根据权利要求1所述的方法,其进一步包括:
响应于确定来自所述主机系统的所述多个读取请求不与所述确定性工作负载相关联,提供使存储器装置基于随机工作负载执行第二类型的读取操作的指示,其中所述类型的读取操作不同于所述第二类型的读取操作。
3.根据权利要求2所述的方法,其中基于所述确定性工作负载的所述类型的读取操作对应于将斜坡输入电压信号施加到所述存储器装置的字线,且其中基于所述随机工作负载的所述第二类型的读取操作对应于将恒定输入电压信号施加到所述存储器装置的所述字线。
4.根据权利要求3所述的方法,其中所述斜坡输入电压信号对应于施加到所述存储器装置的所述字线的增加的输入电压,且其中基于所述确定性工作负载的所述类型的读取操作对应于随着所述斜坡输入电压信号增加而将电压信号施加到所述存储器装置的位线的输入。
5.根据权利要求1所述的方法,其中确定所述多个读取请求是否与所述确定性工作负载相关联包括:
确定所述多个读取请求是否对应于所述存储器装置的顺序块地址;及
响应于所述多个读取请求对应于所述存储器装置的所述顺序块地址,将所述多个读取请求识别为与所述确定性工作负载相关联。
6.根据权利要求1所述的方法,其中基于所述确定性工作负载的所述类型的读取操作是与检索与所述存储器装置的字线相交的所述存储器装置的多个位线处的数据相关联。
7.根据权利要求1所述的方法,其中所述存储器装置是固态驱动器的非易失性存储器。
8.一种系统,其包括:
存储器装置;及
控制器,其与所述存储器装置操作性地耦合以:
从主机系统接收读取请求;
识别与所述读取请求相关联的所述存储器装置的字线;
确定与相交于所述存储器装置的所述字线的所述存储器装置的多个位线相关联的数据是否与对应于来自所述主机系统的所述读取请求的工作负载相关联;及
响应于确定与相交于所述字线的所述多个位线相关联的所述数据是与所述工作负载相关联,提供使所述存储器装置通过使用读取操作检索与相交于所述字线的所述位线中的每一者对应的数据来检索对应于所述读取请求的数据的指示。
9.根据权利要求8所述的系统,其中所述控制器进一步用以:
响应于确定与相交于所述字线的所述多个位线相关联的所述数据不与所述工作负载相关联,提供使所述存储器装置通过使用另一读取操作检索与相交于所述字线的单个位线对应的数据来检索对应于所述读取请求的数据的指示。
10.根据权利要求9所述的系统,其中用以检索与相交于所述字线的所述位线中的每一者对应的数据的所述读取操作对应于将斜坡输入电压信号施加到所述存储器装置的所述字线,且其中用以检索与相交于所述字线的所述单个位线对应的数据的所述另一读取操作对应于将恒定输入电压信号施加到所述存储器装置的所述字线。
11.根据权利要求10所述的系统,其中所述斜坡输入电压信号对应于施加到所述存储器装置的所述字线的增加的输入电压。
12.根据权利要求8所述的系统,其中为确定与相交于所述存储器装置的所述字线的所述存储器装置的所述多个位线相关联的所述数据是否与所述主机系统的所述工作负载相关联,所述控制器进一步用以:
确定来自所述主机系统的后续读取请求是否与所述存储器装置的顺序块地址相关联;及
响应于确定来自所述主机系统的所述后续读取请求与所述存储器装置的所述顺序块地址相关联,将所述工作负载识别为确定性工作负载。
13.根据权利要求12所述的系统,其中所述存储器装置的所述顺序块地址对应于与所述字线相交的所述位线中的每一者。
14.根据权利要求8所述的系统,其中所述存储器装置是固态驱动器的非易失性存储器。
15.一种方法,其包括:
从主机系统接收读取请求;
识别所述主机系统的特性;
基于所述主机系统的所述经识别特性识别来自多个读取操作中的读取操作;及
由处理装置将所述经识别读取操作提供到存储器装置以从所述存储器装置检索对应于所述读取请求的数据。
16.根据权利要求15所述的方法,其中所述主机系统的所述特性是对所述主机系统的工作负载是确定性工作负载或随机工作负载的识别。
17.根据权利要求16所述的方法,其中当来自所述主机系统的多个读取请求与所述存储器装置的顺序块地址相关联时,所述主机系统的所述工作负载是所述确定性工作负载,且其中当来自所述主机系统的所述多个读取请求不与所述顺序块地址相关联时,所述主机系统的所述工作负载是所述随机工作负载。
18.根据权利要求16所述的方法,其中当所述工作负载是所述确定性工作负载时,所述经识别读取操作对应于将斜坡输入电压信号用于所述存储器装置的字线,且其中当所述工作负载是所述随机工作负载时,所述经识别读取操作对应于将恒定输入电压用于所述存储器装置的所述字线。
19.根据权利要求18所述的方法,其中所述斜坡输入电压信号对应于施加到所述存储器装置的所述字线的增加的输入电压。
20.根据权利要求15所述的方法,其中所述主机系统的所述特性是对从所述主机系统提供所述读取请求的应用程序的识别。
21.一种系统,其包括:
存储器装置;及
处理装置,其与所述存储器装置操作性地耦合以:
从主机系统接收多个读取请求;
确定来自所述主机系统的所述多个所述读取请求是对应于确定性工作负载还是随机工作负载;
响应确定所述多个读取请求对应于所述确定性工作负载,识别多个读取操作中的第一读取操作;及
将所述经识别第一读取操作提供到所述存储器装置以检索存储于所述存储器装置的多个顺序块处的数据。
22.根据权利要求21所述的系统,其中所述处理装置进一步用以:
响应确定所述多个读取请求对应于所述随机工作负载,识别所述多个读取操作中的第二读取操作,其中所述第二读取操作不同于所述第一读取操作;及
将所述经识别第二读取操作提供到所述存储器装置以检索存储于与所述多个读取请求中的一个读取请求对应的所述存储器装置的块处的数据。
23.根据权利要求22所述的系统,其中所述第一读取操作对应于将斜坡输入电压信号施加到所述存储器装置的字线,且其中所述第二读取操作对应于将恒定输入电压信号施加到所述存储器装置的所述字线。
24.根据权利要求23所述的系统,其中所述斜坡输入电压信号对应于施加到所述存储器装置的所述字线的增加的输入电压。
25.根据权利要求21所述的系统,其中为确定来自所述主机系统的所述多个读取请求是对应于所述确定性工作负载还是所述随机工作负载,所述处理装置进一步用以:
识别所述多个读取请求是否识别所述存储器装置的顺序块地址,其中当所述多个读取请求识别所述存储器装置的所述顺序块地址时,确定所述多个读取请求对应于所述确定性工作负载,且其中当所述多个读取请求不识别所述存储器装置的所述顺序块地址时,确定所述多个读取请求对应于所述随机工作负载。
26.一种系统,其包括:
存储器装置;及
处理装置,其与所述存储器装置操作性地耦合以:
从主机系统接收多个读取请求;
基于所述多个读取请求识别所述主机系统的工作负载;
确定所述主机系统的所述工作负载是确定性的还是随机的;
响应于确定所述主机系统的所述工作负载是确定性的,指示所述存储器装置通过将第一电压信号施加到所述存储器装置的输入来检索与所述多个读取请求相关联的数据;及
响应于确定所述主机系统的所述工作负载是随机的,指示所述存储器装置通过将第二电压信号施加到所述存储器装置的所述输入来检索与所述多个读取请求相关联的所述数据。
27.根据权利要求26所述的系统,其中所述第一电压信号对应于施加到所述存储器装置的所述输入的增加的电压,且其中所述第二电压信号对应于施加到所述存储器装置的所述输入的恒定电压。
28.根据权利要求27所述的系统,其中所述存储器装置的所述输入是所述存储器装置的字线。
29.根据权利要求26所述的系统,其中为确定所述主机系统的所述工作负载是确定性的还是随机的,所述处理装置进一步用以:
确定所述多个读取请求是否与所述存储器装置的顺序块地址相关联,其中当所述多个读取请求与所述存储器装置的所述顺序块地址相关联时,将所述主机系统的所述工作负载确定为是确定性的,且其中当所述多个读取请求不与所述顺序块地址相关联时,将所述主机系统的所述工作负载确定为是随机的。
30.根据权利要求26所述的系统,其中当将所述第一电压信号施加到所述存储器装置的所述输入时检索来自多个存储器页的数据,且其中当将所述第二电压信号施加到所述存储器装置的所述输入时检索来自比所述多个存储器页少的一量的存储器页的数据。
31.根据权利要求26所述的系统,其中将所述第一电压信号施加到所述存储器装置的所述输入是与随着所述第一电压信号的电压增加而将另一电压信号施加到所述存储器装置的多个位线相关联。
CN201980014968.0A 2018-01-23 2019-01-18 基于主机系统的工作负载识别存储装置的读取操作 Pending CN111758085A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/878,315 2018-01-23
US15/878,315 US20190227743A1 (en) 2018-01-23 2018-01-23 Identifying a read operation for a storage device based on a workload of a host system
PCT/US2019/014181 WO2019147490A1 (en) 2018-01-23 2019-01-18 Identifying a read operation for a storage device based on a workload of a host system

Publications (1)

Publication Number Publication Date
CN111758085A true CN111758085A (zh) 2020-10-09

Family

ID=67298677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980014968.0A Pending CN111758085A (zh) 2018-01-23 2019-01-18 基于主机系统的工作负载识别存储装置的读取操作

Country Status (6)

Country Link
US (1) US20190227743A1 (zh)
EP (1) EP3743800A4 (zh)
KR (2) KR20220148944A (zh)
CN (1) CN111758085A (zh)
TW (1) TW201939261A (zh)
WO (1) WO2019147490A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099781B2 (en) 2018-07-19 2021-08-24 Silicon Motion, Inc. Flash memory controller, flash memory module and associated electronic device
US10761778B2 (en) * 2018-10-31 2020-09-01 International Business Machines Corporation Aggregation of read requests requesting common data objects into a common read operation in a data storage system for improving throughput

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170751A1 (en) * 2013-12-13 2015-06-18 Micron Technology, Inc. Adjusted read for partially programmed block
US9846554B1 (en) * 2016-08-04 2017-12-19 Sandisk Technologies Llc Storage system and method for grouping blocks based on deterministic data patterns

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100120517A (ko) * 2009-05-06 2010-11-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 워드 라인 또는 비트 라인의 제어방법
US9053808B2 (en) * 2012-06-21 2015-06-09 Sandisk Technologies Inc. Flash memory with targeted read scrub algorithm
KR102233810B1 (ko) * 2014-02-03 2021-03-30 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 워드라인 구동 방법
US9431121B2 (en) 2014-10-24 2016-08-30 Micron Technology, Inc. Read voltage adjustment
KR20170085286A (ko) * 2016-01-14 2017-07-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10008273B2 (en) * 2016-06-13 2018-06-26 Sandisk Technologies Llc Cell current based bit line voltage
US10289313B2 (en) 2016-06-28 2019-05-14 Intel Corporation Method and apparatus for improving sequential reading in NAND flash

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170751A1 (en) * 2013-12-13 2015-06-18 Micron Technology, Inc. Adjusted read for partially programmed block
US9846554B1 (en) * 2016-08-04 2017-12-19 Sandisk Technologies Llc Storage system and method for grouping blocks based on deterministic data patterns

Also Published As

Publication number Publication date
KR20200102527A (ko) 2020-08-31
KR20220148944A (ko) 2022-11-07
TW201939261A (zh) 2019-10-01
EP3743800A1 (en) 2020-12-02
WO2019147490A1 (en) 2019-08-01
EP3743800A4 (en) 2021-10-20
US20190227743A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
US20240004587A1 (en) Specifying media type in write commands
US11574664B2 (en) Parsing stream identifiers to determine data stream attributes
US11682446B2 (en) Selective wordline scans based on a data state metric
US11385836B2 (en) Read look ahead data size determination
US20220172769A1 (en) Sequential slc read optimization
US11455242B2 (en) Scrubber driven wear leveling in out of place media translation
US20230185712A1 (en) Implementing mapping data structures to minimize sequentially written data accesses
US11995338B2 (en) Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks
CN111758085A (zh) 基于主机系统的工作负载识别存储装置的读取操作
US11188459B2 (en) Data block switching at a memory sub-system
CN115552531A (zh) 共享字线上的存储器存取冲突管理
US20200089610A1 (en) Cache operations in a hybrid dual in-line memory module
US10872039B2 (en) Managing redundancy contexts in storage devices using eviction and restoration
US20210110250A1 (en) Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11941276B2 (en) Incomplete superblock management for memory systems
US20210110249A1 (en) Memory component with internal logic to perform a machine learning operation

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