CN113495689A - 用于控制存储器系统的输入/输出吞吐量的设备和方法 - Google Patents

用于控制存储器系统的输入/输出吞吐量的设备和方法 Download PDF

Info

Publication number
CN113495689A
CN113495689A CN202011087263.2A CN202011087263A CN113495689A CN 113495689 A CN113495689 A CN 113495689A CN 202011087263 A CN202011087263 A CN 202011087263A CN 113495689 A CN113495689 A CN 113495689A
Authority
CN
China
Prior art keywords
memory
data
read requests
mapping
controller
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.)
Withdrawn
Application number
CN202011087263.2A
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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113495689A publication Critical patent/CN113495689A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • 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/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0653Monitoring storage devices or systems
    • 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/0656Data buffering 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • 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/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开涉及一种存储器系统,包括:存储器装置,包括能够独立输入或输出数据的多个存储单元;以及控制器,经由多个数据路径与多个存储单元联接。控制器被配置为对从外部装置输入的多个读取请求之中的两个或更多个读取请求执行关联操作,使得多个存储单元基于交错方式经由多个数据路径输出与多个读取请求相对应的多条数据。控制器被配置为:在多个读取请求的计数达到阈值之前,确定是否加载与多个读取请求相关联的映射数据,基于是否加载映射数据将多个读取请求划分为两组,以及对每组执行关联操作。

Description

用于控制存储器系统的输入/输出吞吐量的设备和方法
相关申请的交叉引用
本专利申请要求于2020年4月1日提交的申请号为10-2020-0039616的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
这里描述的一个或多个实施例涉及一种用于控制存储器系统的数据吞吐量的方法和设备。
背景技术
许多现代计算装置已经被设计为随时随地可访问。这些计算装置的示例包括移动电话、数码相机和笔记本电脑。这些装置通常使用或包括具有至少一个用于存储数据的存储器装置的存储器系统。该至少一个存储器装置可以用作主存储器装置或辅助存储器装置。
与硬盘不同,非易失性半导体存储器装置由于没有机械驱动部件(例如,机械臂)而表现出优异的稳定性和耐久性。它们还具有高数据访问速度和低功耗。示例非易失性半导体存储器装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统以及操作过程或方法,其可以通过降低存储器系统的操作复杂度和性能下降而快速且可靠地将数据处理到存储器装置中,从而提高存储器装置的使用效率。
根据一个或多个实施例,提供了用于向存储器系统中的多个存储单元输入和/或从存储器系统中的多个存储单元输出多个数据项的方法和设备。这可以使用交错方案或模式来完成,该交错方案或模式可以在至少一个实施例中提高存储器系统的数据输入/输出性能(例如,I/O吞吐量)。在本文中,数据的项或数据项可以是位序列。例如,数据项可以包括文件、文件的一部分、存储器中的页面、面向对象程序中的对象、数字消息、数字扫描图像、视频或音频信号的一部分、或可以用位序列表示的任何其他实体的内容。根据实施例,数据项可以包括离散对象。
这些或其他实施例可以提供一种存储器系统,其在执行将数据存储在多个存储单元中的过程期间,不受要存储的、用于交错操作的数据的物理位置的限制。因此,可以高效和有效地使用存储器系统中的多个存储单元,这反过来可以提高存储器系统的操作稳定性和寿命。
这些或其他实施例可以提供用于动态地确定是继续进行还是停止对多个请求的关联操作的设备和方法。可以基于存储器系统的配置和/或关联操作的特性来执行该决定,例如,这可以影响在存储器系统中执行的诸如读取或写入数据的操作。因此,可以减少与存储器系统有关的处理开销。
这些或其他实施例可以提供一种减少易失性存储器中的映射替换的存储器系统。映射替换可以由用于关联操作的控制器执行和控制,以便支持关于存储器系统中的多个存储单元的交错操作。因此,可以提高存储器系统的操作效率。
在实施例中,一种存储器系统可以包括:存储器装置,包括能够独立输入或输出数据的多个存储单元;以及控制器,经由多个数据路径与多个存储单元联接。控制器可以被配置为对从外部装置输入的多个读取请求之中的两个或更多个读取请求执行关联操作。可以执行关联操作,使得多个存储单元基于交错方式经由多个数据路径输出与多个读取请求相对应的多个数据项。控制器可以进一步被配置为:在多个读取请求的计数达到阈值之前,确定是否加载与所述多个读取请求相关联的映射数据;基于是否加载映射数据来将多个读取请求划分为两组;以及对每组执行关联操作。
控制器可以被配置为:在被输出到外部装置之前存储在输出缓冲器中的数据项的数量大于阈值时,执行关联操作。
输出缓冲器可以包括能够根据所存储的数据的输入序列输出所存储的数据的队列。控制器可以被配置为:基于外部装置与存储器系统之间的第一数据输入/输出速度以及控制器与多个存储单元之间的第二数据输入/输出速度来确定阈值。
控制器可以被配置为:建立被分配用于在高速缓冲存储器或易失性存储器中存储映射数据的区域;将从多个存储单元传递的映射数据存储在该区域中;当与连同多个读取请求一起输入的一个或多个逻辑地址相关联的映射数据未被加载在该区域中时,向多个存储单元请求未加载的映射数据。
控制器可以被配置为:当所请求的映射数据不能存储在该区域中时,释放该区域中最近最少使用的映射数据项。
控制器可以被配置为:当所请求的映射数据不能存储在该区域中时,释放该区域中最不频繁使用的映射数据项。
存储器系统可以进一步包括:存储器,被配置为存储用于地址转换的映射数据;输入缓冲器,被配置为存储多个读取请求;以及输出缓冲器,被配置为存储被输出到外部装置的多个数据项。
控制器可以包括:缓冲器控制电路,被配置为监视输入缓冲器和输出缓冲器两者的状态以确定是否执行关联操作;分组电路,被配置为基于对应于和多个读取请求一起输入的逻辑地址的映射数据是否被加载在所述存储器中,将多个读取请求划分为包括映射未命中组和映射命中组的两组;关联电路,被配置为:对映射命中组中的第一读取请求执行第一关联操作,向存储器装置请求与映射未命中组中的一个或多个第二读取请求相对应的映射数据以将请求的映射数据存储在存储器中,并执行对一个或多个第二读取请求和未通过第一关联操作被关联的一个或多个第一读取请求两者均执行第二关联操作;以及操作控制电路,被配置为基于读取请求的关联序列,将通过第一关联操作和第二关联操作关联的读取请求经由多个数据路径传输到多个存储单元。
操作控制电路可以被配置为:在对被关联的读取请求执行地址转换之后,顺序地执行对未被关联的读取请求的地址转换,并将未被关联的读取请求发送到多个存储单元。
关联电路可以被配置为:当操作控制电路处于空闲状态时,在不执行第一关联操作的情况下,监视操作控制电路的操作状态,并将第一读取请求中的至少一个发送至操作控制电路。
例如,彼此关联的读取请求的计数可以与多个数据路径的计数相同。
在另一实施例中,一种用于操作存储器系统的方法可以包括:从外部装置接收多个读取请求;当多个读取请求的计数达到阈值时,确定是否加载与多个读取请求相关联的映射数据;基于是否加载映射数据,将多个读取请求划分为两组;对每组执行关联操作;根据关联序列,经由多个通道将被关联的读取请求传输到多个存储单元;基于交错方式,经由多个通道从多个存储单元接收与被关联的读取请求相对应的数据;并将数据输出到外部装置。
该方法可以进一步包括:对未被关联的读取请求执行地址转换,以经由多个通道将未被关联的读取请求传送到多个存储单元;以及从多个存储单元接收与未被关联的读取请求相对应的其他数据,以将其他数据输出到外部装置。
该方法可以进一步包括:确定在被输出到外部装置之前存储在输出缓冲器中的数据项的数量是否大于阈值。
可以基于外部装置和存储器系统之间的第一数据输入/输出速度以及控制器和多个存储单元之间的第二数据输入/输出速度来确定阈值。
确定是否加载映射数据可以包括:当与连同多个读取请求一起输入的一个或多个逻辑地址相关联的映射数据没有被加载在高速缓冲存储器或易失性存储器的区域中时,向多个存储器请求未加载的映射数据。
该方法可以进一步包括:当所请求的映射数据不能存储在该区域中时,释放该区域中最近最少使用的映射数据项。
该方法可以进一步包括:当所请求的映射数据不能存储在该区域中时,释放该区域中最不频繁使用的映射数据项。
划分多个读取请求可以包括:基于对应于和多个读取请求一起输入的逻辑地址的映射数据是否被加载在存储器中,将多个读取请求划分为包括映射未命中组和映射命中组的两组。
执行关联操作可以包括:对映射命中组中的第一读取请求执行第一关联操作;向存储器装置请求与映射未命中组中的一个或多个第二读取请求相对应的映射数据,以将请求的映射数据存储在存储器中;以及对一个或多个第二读取请求和未通过第一关联操作被关联的一些第一读取请求都执行第二关联操作。
在另一实施例中,一种设备可以包括:至多个数据路径的一个或多个联接器;以及控制器,被配置为经由至多个数据路径的一个或多个联接器与多个存储器通信。控制器可以被配置为对从外部装置输入的多个读取请求之中的一个或多个读取请求执行关联操作,执行关联操作以使得多个存储单元基于交错模式经由多个数据路径输出与多个读取请求相对应的多个数据项。控制器还可以被配置为:在多个读取请求的计数达到阈值之前,确定是否加载与多个读取请求相关联的映射数据;基于是否加载映射数据,将多个读取请求划分为两组;并且对每组执行关联操作。
附图说明
本文中的描述参考了附图,其中相同的附图标记在若干视图中始终指代相同的部件。
图1示出根据实施例的存储器系统。
图2示出根据实施例的数据处理系统。
图3示出根据实施例的存储器系统中的控制器。
图4示出根据实施例的存储器系统中的存储器装置。
图5示出根据实施例的控制器。
图6示出根据实施例的用于控制存储器系统的方法。
图7示出根据实施例的用于控制存储器系统的方法。
图8示出根据实施例的用于控制存储器系统的方法。
图9示出根据实施例的关联处理的结果。
图10示出根据实施例的用于操作存储器系统的方法。
在本公开中,对包括在“一个实施例”、“示例实施例”、“实施例”、“另一实施例”“一些实施例”、“各种实施例”、“其他实施例”、“替代实施例”等中的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在表示任何这样的特征被包括在本公开的一个或多个实施例中,但是可以或可以不必在相同的实施例中组合。
具体实施方式
下面参考附图描述本公开的各种实施例。然而,本公开的元件和特征可以不同地配置或布置以形成其他实施例,其可以是任何公开的实施例的变型。
在本公开中,术语“包含”、“包含有”、“包括”和“包括有”是开放式的。如在所附权利要求书中所使用的,这些术语指定所陈述的元件的存在,并且不排除一个或多个其他元件(例如,接口、电路等)的存在或添加。
在本公开中,各种单元、电路或其他组件可以被描述或声称为“配置为”执行一个或多个任务。在这样的语境中,“配置为”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来示意结构。这样,即使在该块/单元/电路/组件当前不工作(例如,未接通)时,也可以说该块/单元/电路/组件被配置为执行任务。与措辞“配置为”一起使用的块/单元/电路/组件可以包括硬件,例如电路、存储可运行以实施操作的程序指令的存储器等。此外,“配置为”可以包括由软件和/或固件(例如,运行软件的通用处理器或FPGA)操纵的通用结构(例如,通用电路),以能够执行所讨论任务的方式进行操作。“配置为”还可包括调整制造过程(例如,半导体制造设施)以制造适于实施或执行一个或多个任务的装置(例如,集成电路)。
如本公开中所使用的,术语“电路”指的是以下全部:(a)纯硬件电路实施方式(诸如仅在模拟和/或数字电路中的实施方式)和(b)电路与软件(和/或固件)的组合,诸如(如适用):(i)处理器的组合或(ii)一起工作以使诸如移动电话或服务器的设备执行各种功能的处理器/软件(包括数字信号处理器)的一部分,软件和存储器以及(c)电路,诸如微处理器或微处理器的一部分,即使软件或固件物理上不存在,也需要软件或固件以进行操作。“电路”的该定义适用于该术语在本申请中、包括在任意权利要求中的所有使用。作为另一示例,如在本申请中使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)随附软件和/或固件的实施方式。例如,术语“电路”还涵盖(并且如果适用于特定的要求保护的元素)用于存储装置的集成电路。
如本文所使用的,这些术语“第一”、“第二”、“第三”等被用作它们之后的名词的标签,并且不暗示任何类型的排序(例如,空间的、时间的、逻辑的等的排序)。术语“第一”和“第二”并不一定暗示着第一个值必须写在第二个值之前。此外,尽管本文中可以使用这些术语来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个否则具有相同或相似名称的元件区分开。例如,可以将第一电路与第二电路区分开。
此外,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的其他因素。也就是,确定可以仅基于那些因素或至少部分地基于那些因素。考虑短语“基于B确定A”。尽管在这种情况下,B是影响A的确定的因素,但这样的短语不排除:A的确定也基于C。在其他情况下,可以仅基于B来确定A。
下面参考附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出了存储器系统110的实施例,其例如可以被包括在计算装置或移动装置中。存储器系统可以被包括在主机中或联接到主机(例如,图2的主机102),并且可以执行数据输入/输出(I/O)操作。主机可以是例如与存储器系统110可操作地接合的一种外部装置。
参照图1,存储器系统110可以包括控制器130和存储器装置150。控制器130可以输出由主机102请求并从存储器装置150传递来的数据,和/或可以将从主机102输入的数据存储到存储器装置150中。存储器装置150可以包括多个非易失性存储器单元,每个非易失性存储器单元能够存储数据。存储器装置150的内部结构和/或配置可以根据存储器装置150的预期应用或期望性能而变化,反过来,存储器装置150的预期应用或期望性能可以基于存储器系统110的使用目的或主机102的要求。
控制器130和存储器装置150可以通过多个数据路径联接。例如,存储器装置150可以包括多个存储器管芯240A、240B、240C、240D,其可以通过不同的数据路径与控制器130联接。例如,第一存储器管芯240A和控制器130通过第一通道(CH1)和第一通路(W1)CH1W1联接。第二存储器管芯240B和控制器130通过第一通道(CH1)和第二通路(W2)CH1W2联接。第一存储器管芯240A和第二存储器管芯240B可以共享第一通道CH1,但是第一存储器管芯240A可以使用第一通路W1,第二存储器管芯240B可以使用第二通路W2。也就是说,在实施例中,第一存储器管芯240A和第二存储器管芯240B可以独立地使用不同的通路W1、W2。
另外,第三存储器管芯240C和控制器130通过第二通道(CH2)和第一通路(W1)CH2W1联接。第四存储器管芯240D和控制器130经由第二通道(CH2)和第二通路(W2)CH2W2联接。构成控制器130与存储器装置150之间的数据路径的通道和/或通路的数量可以根据例如存储器装置150中的存储器管芯的数量而变化。将存储器管芯240A、240B、240C、240D连接至控制器130的通道和通路的数量可以例如根据存储器系统110的预期应用和/或主机102的要求而不同。
存储器装置150中的多个存储器管芯240A、240B、240C、240D可以配置为不同的模块,并且可以经由不同的数据路径独立地与控制器130联接。当使用多个数据路径进行数据交换时,多个存储器管芯240A、240B、240C、240D和控制器130可以使用经由多个数据路径的交错方案来交换数据以提高数据传送的速度。
对于用以提高存储器装置150与控制器130之间的数据传送速度的交错方案,待存储的数据可以被分配到若干个模块而不是在单个模块中。在执行交错方案时,存储器系统可以使用地址限制结构或地址方案以在存储器装置150的多个模块上和多个模块中分配和存储多个新的数据项。例如,当对四个数据项进行编程时,已经提出的一种类型的存储器系统将四个数据项独立(例如,分别)存储在四个存储器管芯中。这里,数据项的数量可以指:可以通过执行单个编程操作或者单个写入操作一起存储的数据单位的数量。例如,当可以执行以页面为单位的编程操作(或写入操作)时,四个数据项可以包括在四个页面中编程的数据的量。
为了提高编程操作和读取操作的操作效率并增强分布式存储,存储器系统可以采用地址限制结构。在地址限制结构中,当在四个存储器管芯中编程四个数据项时,在每个存储器管芯中分配相同的物理位置。例如,当将四个数据项存储在四个存储器管芯中时,四个数据项中的每一个被独立存储在四个存储器管芯中的相应一个的第五物理位置中。此后,当对八个数据项进行编程时,八个数据项可以被存储在每个存储器管芯的第六物理位置和第七物理位置中。物理位置可以指示存储器管芯中的块或页面。
当在具有地址限制结构的存储器系统中的四个存储器管芯中存储五个数据项时,可以在同一存储器管芯的第一物理位置和第二物理位置中存储两个数据项,并且在其他三个存储器管芯的第一物理位置中分别独立存储三个数据项。在具有地址限制结构的存储器系统中,由于与下一个编程请求一起输入的数据项随后无法写入其他三个存储器管芯的第二物理位置中,三个虚拟数据项独立写入剩余的三个存储器管芯的第二物理位置中。
当存储器系统具有用于交错操作的地址限制结构时,由于每当执行具有奇数条数据的编程操作时可能需要对虚拟数据项进行编程,因此操作效率可能会下降。此外,由于每个存储器管芯并不总是具有相同的操作状态(就质量状况、磨损等而言),存储器系统可能必须独立执行附加操作以补偿每个存储器管芯状况,这可能会增加处理开销。
根据一个或多个实施例,存储器系统110可以采用完全同步交错结构,该结构能够在没有地址限制结构的情况下支持控制器130和存储器装置150之间的交错操作。完全同步交错结构不具有用于将数据存储在存储器装置150中的多个存储器管芯240A,240B,240C,240D的每一个中的相同位置处的地址限制。
在操作中,控制器130可以根据每个存储器管芯的操作条件和操作状态来分配待编程的数据项。这样做时,数据项不必均匀地被分配到每个存储器管芯。例如,如果四个存储器管芯240A、240B、240C、240D之一(例如,存储器管芯240A)由于在内部执行内部操作而不能立即对数据项进行编程,则控制器130可以将多个数据项传送到其他三个存储器管芯(例如240B、240C、240D)。控制器130可以在多个存储器管芯240A、240B、240C、240D上分配多个数据项,以提高数据传输的效率并减少编程操作的操作裕度,但是并未应用诸如地址限制结构的严格规则。另外,在根据实施例的存储器系统110中,不必要像具有地址限制结构的存储器系统中的情况那样对虚拟数据进行编程。
在控制器130将数据项传送到存储器装置150并且在存储器装置150中对数据项进行编程之后,控制器130可以生成或更新将逻辑地址和与数据相对应的物理位置(例如,物理地址)相关联的映射信息。另外,控制器130可以将生成或更新的映射信息存储在存储器装置150中。
因为存储器系统110不采用如上所述的地址限制结构,所以在以交错方式(例如,通过交错方案)执行的、读取和输出由主机(或外部装置)请求的多个数据项的过程中可能难以保证控制器130与存储器装置150之间的数据传输。因此,控制器130可以包括用于关联由主机请求的多个读取操作的关联电路194,从而可以使用交错方案来传输通过多个读取操作从存储器装置150输出的多个数据项。
在图1中,控制器130可以包括关联电路194、操作控制电路196和缓冲器控制电路198。
缓冲器控制电路198可以控制输入缓冲器和输出缓冲器。输入缓冲器配置为临时存储从主机输入的命令或数据项。输出缓冲器配置为在将数据项传输到主机之前临时存储与从主机输入的命令相对应的数据项。例如,当主机向存储器系统110发送用于读取与20个逻辑地址相对应的多个数据项的读取请求(或读取命令)时,控制器130从存储器装置150接收与20个逻辑地址相对应的多个数据项,将多个数据项临时存储在输出缓冲器中,并且将多个数据项输出到主机。缓冲器控制电路198可以监视或识别:在输出到主机之前,多少个数据项被临时存储在输出缓冲器中。
操作控制电路196可以检查存储器装置150中与逻辑地址相对应的物理位置,并读取存储在该物理位置中的数据项。响应于来自输入缓冲器的读取请求(或读取命令)连同逻辑地址,操作控制电路196可以基于映射信息将逻辑地址转换为物理地址并向存储器装置150请求(存储在由物理地址指示的非易失性存储器单元中的)数据项。物理地址可以指示存储器装置150中的多个存储器管芯240A、240B、240C、240D中的特定物理位置。
当操作控制电路196根据由缓冲器控制电路198传递的多个读取请求的顺序或次序来处理多个读取请求时,可以将与多个读取请求相对应的物理地址随机地分布在多个存储器管芯240A、240B、240C、240D上。例如,三个连续的物理地址可以指示相同的存储器管芯中的不同位置,或者四个连续的物理地址可以指示不同的存储器管芯中的不同位置。在这种情况下,有时可以以交错方式执行控制器130与多个存储器管芯240A、240B、240C、240D之间的数据传输,但是通常是在控制器130与多个存储器管芯240A、240B、240C、240D之间随机地交换数据,而不是以交错的方式。
当缓冲器控制电路198确定在输出缓冲器中存在待输出到主机的数据项时,来自主机的多个读取请求(或多个读取命令)和多个逻辑地址可以被传输到关联电路194。关联电路194可以检查与来自缓冲器控制电路198的多个读取请求相对应的多个逻辑地址有关的映射信息,以关联多个读取请求。因此,操作控制电路196可以根据交错方案执行与多个读取请求相对应的多个读取操作,例如,在控制器130和多个存储器管芯240A、240B、240C、240D之间以交错方式传送多个数据项。
由关联电路194执行的关联操作可以支持控制器130与多个存储器管芯240A、240B、240C、240D之间的并行处理和分布式计算。在多个组件共享单个数据路径的情况下,多个组件可以在单个数据路径中交错其信号或其数据。此外,在单个组件使用多个数据路径的情况下,单个组件可以在多个数据路径上分配多个信号或多个数据。关联操作可以使得多个读取请求中的一些读取请求能够通过多个通道被并行地传递到多个存储器管芯中,从而与多个读取请求相对应的多个数据项经由多个通道从多个存储器管芯中并行地输出。针对多个读取请求的关联操作可以基于交错方式来控制向存储器管芯240A、240B、240C、240D请求的从存储器装置150到控制器130的多个数据项的传送。
例如,关联操作可以包括关联与物理位置有关的读取请求,该物理位置处可以支持多个读取请求之间的交错。支持交错的物理位置可以指示这样的物理位置:通过不同的通道或不同的通路,可以通过所述物理位置传输和接收不同的数据项。例如,控制器130可以通过关联操作来对在存储器装置150的管芯中的不同平面的请求进行关联,并且重新排列待被传递到存储器装置150中的被关联的请求。可以根据关联序列,而不是输入序列,将读取的请求传递到存储器装置150。响应于通过关联操作传输的请求,存储器装置150可以在被建立为处理请求的操作裕度内输出每个请求的结果。
根据实施例,关联操作可以基于响应于存储器装置150的内部配置而建立的交错操作来关联不同的读取请求。存储器装置150可以包括多个存储单元(memory unit)。存储单元可以分别并且独立地执行数据输入/输出操作。因为每个存储单元可以独立地执行数据输入/输出操作,所以多个存储单元可以并行地执行多个数据输入/输出操作。例如,当控制器130基于包括与页面大小相对应的缓冲器的平面以交错方式控制存储器装置150时,控制器130可以关联针对存储在不同平面中的数据的读取请求。如果存储器装置150可以基于管芯、通道或通路执行交错操作,则控制器130可以执行操作以关联与支持交错操作的不同管芯、不同通道或不同通路有关的多个读取请求。
在一种情况下,主机可以请求存储在存储器系统110中的20个数据项。控制器130可以接收从主机输入的针对20个数据项的20个读取请求。缓冲器控制电路198可以将针对20个数据项的20个读取请求传输到关联电路194。关联电路194试图关联20个读取请求,使得20个数据项之中的至少一些数据项以交错方式输出。例如,关联电路194可以检查与连同20个读取请求之中的第一读取请求一起输入的第一逻辑地址相对应的物理地址,然后识别出与第一逻辑地址相对应的第一数据存储在第一存储器管芯240A中。关联电路194可以检查与连同20个读取请求之中的第二读取请求一起输入的第二逻辑地址相对应的物理地址。当与第二读取请求相对应的第二数据被存储在第三存储器管芯240C或第四存储器管芯240D中时,由于分别对应于第一读取请求和第二读取请求的第一数据和第二数据可以经由不同的通道CH1、CH2传输,所以可以期望第一读取请求和第二读取请求之间的交错操作。因此,第一读取请求和第二读取请求可以由关联电路194配对或关联,并且被配对或被关联的读取请求可以被传输到操作控制电路196。
如果第二数据被存储在第一存储器管芯240A或第二存储器管芯240B中,由于分别对应于第一读取请求和第二读取请求的第一数据和第二数据可以经由相同的通道CH1传输,可以不期望第一读取请求和第二读取请求之间的交错操作。在这种情况下,关联电路194可以不使第一读取请求和第二读取请求配对或关联。然后,关联电路194可以检查针对第三读取请求的物理地址。当与第三读取请求相对应的第三数据被存储在第三存储器管芯240C或第四存储器管芯240D中时,由于分别对应于第一读取请求和第三读取请求的第一数据和第三数据可以经由不同的通道CH1、CH2传输,可以期望第一读取请求和第三读取请求之间的交错操作。关联电路194可以关联第一读取请求和第三读取请求,并且将被关联的读取请求传输到操作控制电路196。
第三读取请求可以比第二读取请求更早地传输。
如果第三数据被存储在第一存储器管芯240A或第二存储器管芯240B中,由于第一数据和第三数据经由相同的通道传输,则可以不期望在第一读取请求和第三读取请求之间的交错操作。然后,关联电路194可以检查针对第四读取请求的物理地址。
如上所述,关联电路194可以:检查存储与读取请求相对应的数据的物理位置;当可以期望在读取请求之间的交错操作时,关联一些读取请求;并且将被关联的读取请求传送到操作控制电路196。对于关联操作,关联电路194可以参考控制器130中的映射信息或加载在控制器130的存储器或缓冲器中的映射信息。
由于关联操作可能导致延迟,由关联电路194执行的关于多个读取请求的关联操作可能不利地影响数据输入/输出性能,诸如存储器系统110的I/O吞吐量。因此,关联电路194可以不对来自主机的所有读取请求执行关联操作。例如,缓冲器控制电路198可以检查输出缓冲器中的输出到主机的数据项,以确定:如果关联电路194执行针对多个读取请求的关联操作,存储器系统110的数据输入/输出性能是否不会下降。在确定关联操作对I/O吞吐量没有影响或影响很小的情况下,关联电路194可以执行关于多个读取请求的关联操作。
关联电路194可以不关联来自缓冲器控制电路198的所有多个读取请求。当考虑到与多个读取请求相对应的数据项的物理位置可以期望交错操作时,关联电路194可以执行关联操作。但是,在由关联电路194对这些读取请求进行关联之后接收到的其他读取请求可以不被关联地传送到操作控制电路196。
响应于操作环境,控制器130可以关联来自主机的多个读取请求中的至少一些,使得:基于交错方案在存储器装置150和控制器130之间传送多个数据项。另外,存储器系统110不必采用地址限制结构来在存储器系统110内使用交错方式来交换信号或数据。可以基于存储器装置150中的多个存储器管芯240A、240B、240C、240D的操作环境和操作状态来分配和存储多个数据项。控制器130可以尝试关联用于读取存储在存储器装置150中的多个存储器管芯240A、240B、240C、240D中的多个数据项的读取请求。
由于存储器系统110不必使用地址限制结构,所以可以更有效地操作存储器装置150中的多个存储器管芯240A、240B、240C、240D。另外,可以提高存储器装置150中的存储器管芯240A、240B、240C、240D的寿命。另一方面,由于可以基于交错方案来执行多个存储器管芯240A、240B、240C、240D与控制器130之间的数据传送,因此根据实施例的存储器系统110可以避免恶化其数据输入/输出性能(例如,I/O吞吐量)。
图2示出了根据实施例的数据处理系统100。数据处理系统100可以包括与存储器系统110接合或可操作地联接的主机102。
主机102可以包括例如各种便携式电子装置中的任意一种。示例包括移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视、投影仪或其他装置或系统。主机102还包括至少一个操作系统(OS),其可以管理和/或控制在主机102中执行的功能和操作。在一个实施例中,OS可以在与存储器系统110接合的主机102和存储器系统110的用户之间提供互操作性。OS可以支持与用户请求相对应的功能和操作。
作为示例而非限制,根据主机102的移动性,OS可以包括通用操作系统和移动操作系统。根据系统要求或用户环境,通用操作系统可以分为个人操作系统和企业操作系统。个人操作系统(例如Windows、Chrome等)可能需要为一般目的提供支持服务。在某些情况下,企业操作系统可能专门用于确保和支持高性能,包括Windows服务器、Linux和Unix。此外,移动操作系统可以包括Android、iOS和Windows mobile。移动操作系统可能需要支持移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。例如,主机102可以对应于用户请求,与存储器系统110合作运行多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110中,从而执行与存储器系统110内的命令相对应的操作。图4和图5示出了用于处理存储器系统110中的多个命令的示例实施例。
存储器系统110可以响应于来自主机102的请求执行特定的功能或操作,例如,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以用各种类型的存储器装置中的任意一种来实施,所述存储器装置可以根据主机接口的协议与主机102电联接。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡和记忆棒。
用于存储器系统110的存储装置可以用诸如动态随机存取存储器(DRAM)或静态RAM(SRAM)的易失性存储器装置,和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM或ReRAM)或闪速存储器的非易失性存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储要由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。在一个实施例中,控制器130和存储器装置150可以被集成到单个半导体装置中,该单个半导体装置可以包括在上面举例说明的各种类型的存储器系统的任意一种中。作为示例而非限制,控制器130和存储器装置150可以被集成到单个半导体装置中。控制器130和存储器装置150可以被集成以形成SSD用于提高操作速度。当将存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度可以比连接有硬盘的主机102的操作速度提高更多。在另一实施例中,控制器130和存储器装置150可以被集成到一个半导体装置中以形成存储卡,诸如PC卡(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(例如、SM、SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD、SDHC)或通用闪速存储器。
存储器系统110可以被配置为例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力,也可以保留存储在其中的数据。存储器装置150可以通过写入操作存储从主机102提供的数据,同时通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储块152、154、156,每个存储块可以包括多个页面。多个页面中的每一个可以包括多个存储器单元(memory cell),多个字线(WL)电联接到该多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156之中的存储块。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中该闪速存储器可以是三维堆叠结构。
控制器130可以控制存储器装置150的全面操作,例如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供给主机102。控制器130可以将由主机102提供的数据存储到存储器装置150中。
控制器130可以包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口(I/F)142和存储器144。
主机接口132可以处理从主机102提供的命令和数据,并且可以通过各种接口协议中的至少一种与主机102通信。示例包括通用串行总线(USB)、多媒体卡(MMC)、高速外围部件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的组件,其可以通过称为主机接口层(HIL)的固件来实施。
ECC电路138可以校正要在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC电路138可以包括ECC编码器和ECC解码器。ECC编码器可以对要在存储器装置150中编程的数据执行错误校正编码,以便生成其中添加了一个或多个奇偶校验位的经编码数据。经编码的数据可以存储在存储器装置150中。当控制器130执行读取操作时,ECC解码器可以检测并校正从存储器装置150读取的数据中的错误。例如,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可以确定错误校正解码是否已经成功并输出相应的指令信号(例如,校正成功信号或校正失败信号)。ECC电路138可以使用在ECC编码过程期间生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可以不校正错误位。替代地,ECC电路138可以输出错误校正失败信号,该错误校正失败信号指示校正错误位失败。
ECC电路138可以基于编码调制执行错误校正操作。示例包括低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、涡轮码、里-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC电路138可以包括用于基于上述代码中的至少一个来执行错误校正操作的一个或多个电路、模块、系统、装置或其他逻辑形式。
PMU140可以管理控制器130中提供的电力。例如,PMU140可以检测图1中描述的存储器系统110的通电和断电。另外,PMU140可以包括功率检测器。
存储器接口142可以用作用于处理在控制器130和存储器装置150之间传送的命令和数据的接口,以便允许控制器130响应于从主机102传递的请求来控制存储器装置150。当存储器装置150是闪速存储器(例如,NAND闪速存储器)时,存储器接口142可以在处理器134的控制下为存储器装置150生成控制信号并处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口142可以提供用于处理控制器130和存储器装置150之间的命令和数据的接口。例如,存储器接口142可以是处理或管理控制器130和存储器装置150之间的操作的NAND闪存接口。根据实施例,可以通过用作与存储器装置150交换数据的组件的固件(例如,闪存接口层(FIL))来实施存储器接口142。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可在存储器系统110和控制器130中存储为操作而生成或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102中。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
在一个实施例中,存储器144可以用易失性存储器来实施。例如,存储器144可以用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或这二者来实施。虽然在图1中,存储器144位于控制器130中,但是在另一实施例中,存储器144可以位于控制器130外部。在一个示例实施方式中,存储器144可以由外部易失性存储器来实现,该外部易失性存储器具有在存储器144和控制器130之间传送数据和/或信号的存储器接口。
存储器144可以存储用于执行主机102所请求的操作(诸如数据写入和数据读取)的数据和/或用于如本文描述的诸如垃圾收集和损耗均衡的后台操作的存储器装置150和控制器130之间的数据传输。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括例如编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
处理器134可以用微处理器或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全面操作。作为示例而非限制,响应于从主机102输入的写入请求或读取请求,处理器134可以控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件和/或其他指令来控制存储器系统110的全面操作。在一个实施例中,固件和/或指令可以对应于用作主机102和存储器装置150之间的接口的闪存转换层(FTL)。主机102可以通过FTL向存储器装置150传输对写入操作和读取操作的请求。
FTL可以管理地址映射、垃圾收集、损耗均衡和/或其他操作的操作。在一个实施例中,FTL可以加载、生成、更新或存储映射数据。在这些或其他情况下,控制器130可以基于映射数据将(从主机102接收的)逻辑地址映射到存储器装置150的物理地址。在某些情况下,存储器装置150可以用作通用存储器装置,以基于地址映射操作来执行读取操作或写入操作。而且,通过基于映射数据执行的地址映射操作,当控制器130试图更新存储在特定页面中的数据时,控制器130可以基于闪速存储器装置的特性将更新的数据编程在另一个空白页面上并且可以使该特定页面的旧数据无效(例如,对应于更新后的数据的逻辑地址,将物理地址从特定页面更新到新编程页面)。此外,控制器130可以将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用处理器134。与存储器装置150接合的处理器134可以处理与来自主机102的输入命令相对应的指令或命令。控制器130可以执行作为与来自主机102的命令相对应的命令操作的前台操作。命令操作的示例包括与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作和与带有设定命令的设定特征命令或设定参数命令相对应的参数设定操作。
又例如,控制器130可以通过处理器134对存储器装置150执行后台操作。作为示例而非限制,对存储器装置150的后台操作包括将数据复制到(存储块152、154、156之中的)存储块中,并且将这样的数据存储在另一存储块中(例如,垃圾收集(GC)操作)。后台操作可以包括将(存储在存储器装置150中的存储块152、154、156的至少一个中的)数据移动到存储块152、154、156的至少另一个中的操作(例如,损耗均衡(WL)操作)。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储块152、154、156中的至少一个,例如,映射清除(flush)操作。检查多个存储块152、154、156之中的坏块的坏块管理操作是处理器134执行的后台操作的另一示例。
在存储器系统110中,控制器130执行与从主机102接收的多个命令相对应的多个命令操作。例如,当执行基于相应的编程命令、读取命令和/或擦除命令的编程操作、读取操作和/或擦除操作时,控制器130可以确定适合或适于将控制器130连接到存储器150中的存储器管芯的通道或通路。编程操作、读取操作和/或擦除操作可以按顺序、随机或交替的模式执行。控制器130可以经由确定的通道或通路来发送或传输数据或指令以执行每个操作。在每个操作完成之后,多个存储器管芯可以分别经由相同的通道或通路来传输操作结果。然后,控制器130可以将响应或确认信号传输到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102接收到的命令,控制器130可以基于每个通道或每个通路的状态选择至少一个通道或通路,从而可以经由所选择的通道或通路来传递指令和/或操作结果以及数据。
作为示例而非限制,控制器130可以识别关于与存储器装置150中的存储器管芯相关联的通道(或通路)的状态。控制器130可以将每个通道或通路确定为处于繁忙状态、就绪状态、活动状态、空闲状态、正常状态或异常状态。控制器对指令(和/或数据)通过哪个通道或通路传递的确定可以基于物理块地址,例如,指令(和/或数据)被传递到哪个(哪些)管芯。在一个实施例中,控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的信息项的参数的块或页面,其是具有设定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定指令或数据通过哪个(哪些)通道或通路交换。
管理单元可以被包括在处理器134中以执行存储器装置150的坏块管理。例如,管理单元可以找到不满足进一步使用条件的坏存储块,并且在某些情况下对坏存储块执行坏块管理。当存储器装置150是闪速存储器(例如,NAND闪速存储器)时,由于NAND逻辑功能的特性,在写入操作期间(例如,在编程操作期间)可能发生编程失败。在坏块管理期间,可以将编程失败的存储块或坏存储块的数据编程到新的存储块中。坏块可能会严重恶化具有3D堆叠结构的存储器装置150的利用率和存储器系统110的可靠性。因此,可靠的坏块管理可以提高或改善存储器系统110的性能。
图3示出了根据实施例的存储器系统中的控制器130。参照图3,控制器130与主机102和存储器装置150一起操作。控制器130可以包括主机接口(I/F)132、闪存转换层(FTL)电路40、存储器接口(I/F)142和存储器144。
根据实施例,图2中的ECC电路138可以被包括在闪存转换层(FTL)电路40中。在另一实施例中,ECC电路138可以被实施为包括在控制器130中或与控制器130相关联的单独的模块、电路或固件。
主机接口132用于处理来自主机102的命令和数据。作为示例而非限制,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储来自主机102的命令和数据,并且以存储顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可以顺序地传输事件以处理来自缓冲器管理器52的命令和数据。
可以连续地从主机102接收具有相同特性的多个命令或数据,或者可以将具有不同特性的命令或数据在混合或混杂之后传输到存储器系统110。例如,可以将用于读取数据的多个命令(例如,读取命令)传递到存储器系统110,或者可以将读取命令和编程/写入命令交替地传输到存储器系统110。主机接口132可以将从主机102接收的命令和数据顺序地存储到命令队列56。此后,主机接口132可以根据从主机102接收的命令和数据的特性来估计或预测控制器130将执行哪种内部操作。
主机接口132还可以至少基于命令和数据的特性来确定它们的处理顺序以及优先级。根据来自主机102的命令和数据的特性,主机接口132中的缓冲器管理器52可以被配置为确定:缓冲器管理器52是否应该将命令和数据存储在存储器144中或者缓冲器管理器52是否应该将命令传递到闪存转换层(FTL)电路40中。事件队列54从缓冲器管理器52接收(响应于来自主机102的命令和数据而要由存储器系统110或控制器130内部地运行和处理的)事件,并按照接收的顺序将事件传递到闪存转换层(FTL)电路40。
根据实施例,图3中的主机接口132可以执行图1中的控制器130的功能。例如,闪存转换层(FTL)电路40可以包括状态管理器(GC/WL)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器(BM/BBM)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块运行命令或指令。
作为示例而非限制,主机请求管理器46可以使用映射管理器44和块管理器48以根据从主机接口132传递的事件、读取和编程命令来处置或处理请求。主机请求管理器46可以将查询请求发送到映射数据管理器44,以便确定与连同事件一起输入的逻辑地址相对应的物理地址。主机请求管理器46可以将读取请求以及物理地址发送到存储器接口142,以便处理读取请求(处理事件)。另一方面,主机请求管理器46可以向块管理器48发送编程请求(或写入请求),以便将输入的数据编程到存储器装置150中的空白页面(例如,没有数据的页面)。然后,主机请求管理器46可以将与编程请求相对应的映射更新请求传输到映射管理器44,以便在将逻辑-物理地址彼此映射的信息中更新与编程数据有关的项目。
块管理器48可以将(从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的)编程请求转换为用于存储器装置150的闪存编程请求,以便管理存储器装置150中的闪存块。为了最大化或提高存储器系统110(例如,参见图2)的编程或写入性能,块管理器48可以收集编程请求并且将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。块管理器48可以将若干闪存编程请求发送到存储器接口142,以提高或最大化多通道和多方向闪存控制器的并行处理。
块管理器48可以被配置为:根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时,选择并擦除没有有效页面的块,并且当确定要执行垃圾收集时,选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集,以便将有效数据移动到空白块,并擦除从中移动了有效数据的块中的剩余数据,使得块管理器48可以具有足够的空闲块(例如,没有数据的空白块)。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42能够检查待擦除的块的所有闪存页面以确定每个页面是否有效。
例如,为了确定每个页面的有效性,状态管理器42可以识别存储在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表,并且可以处理由主机请求管理器46或状态管理器42生成的请求(例如,查询和更新)。映射管理器44还可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,使得形成干净高速缓存块,并且可以将脏映射表存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以针对页面的相同逻辑地址编程最新版本的数据,并即时地发布更新请求。当状态管理器42在尚未完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为,如果状态管理器42请求映射更新并且直到稍后才完成有效页面复制时,则发布的是具有旧物理信息的映射请求。在一个实施例中,只有在最新映射表仍然指向旧物理地址时,映射管理器44才可以执行映射更新操作以确保准确性。
根据实施例,FTL电路40可以包括图1所示的关联电路194,存储器接口142可以包括图1中所示的操作控制电路196和缓冲器控制电路198。在另一实施例中,存储器接口142包括图1所示的关联电路194、操作控制电路196和缓冲器控制电路198。
存储器装置150可以包括多个存储块。基于可存储或表示在该块的一个存储器单元中的位的数量,多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。SLC存储块可以包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐用性。
MLC存储块包括由每个存储多位数据(例如,两位或更多位)的存储器单元实施的多个页面。与SLC存储块相比,针对相同的空间,MLC存储块可以具有更大的存储容量。就存储容量而言,MLC存储块可以高度集成。在实施例中,存储器装置150可以利用诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。双层单元存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括多个页面的块来实施,该多个页面由每个能够存储5位或更多位数据的存储器单元实施。
在实施例中,存储器装置150被实现为诸如闪速存储器的非易失性存储器,闪速存储器诸如NAND闪速存储器、NOR闪速存储器等。在另一实施例中,存储器装置150可以由以下中的至少一个来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器(STT-MRAM))。
图4示出了根据实施例的存储器系统中的存储器装置150的内部配置。参照图4,存储器装置150可以包括多个存储器管芯240A、240B、240C、240D。第一存储器管芯240A和第二存储器管芯240B可以通过第一通道CH#1连接到控制器130(例如,参见图1至图3)。第三存储器管芯240C和第四存储器管芯240D可以通过第二通道CH#2连接到控制器130。
在图4中,描述了四个存储器管芯240A、240B、240C、240D通过两个通道CH#1、CH#2(例如,图4的CH1和CH2)联接到控制器130。在另一实施例中,可以通过相同或不同数量的通道将不同数量的管芯联接至控制器,或者可以通过相同数量的通道将相同或不同数量的管芯联接至控制器。即使存储器装置150可以包括至少两个管芯和至少两个通道,但是在给定配置中,管芯和通道的数量取决于各种因素,诸如但不限于存储器系统的整体配置、利用其的目的和/或用于定义存储器系统和接合的主机之间的通信的规范。
当多个存储器管芯连接到单个通道时,每个存储器管芯可以通过不同的方式与通道联接。在图4中,第一存储器管芯240A和第二存储器管芯240B可以分别通过第一通路W1和第二通路W2与第一通道CH#1联接。第三存储器管芯240C和第四存储器管芯240D可以分别通过第一通路W1和第二通路W2与第二通道CH#2联接。在此特定配置中,通路的数量与存储器管芯的数量相同。另一实施例中,通路的数量可以与存储器管芯的数量不同。
图5示出了根据实施例的控制器130的内部配置。参照图5,控制器130可以包括图1所示的关联电路194、操作控制电路196和缓冲器控制电路198,以及分组电路192。例如,缓冲器控制电路198、关联电路194和操作控制电路196可以与输出缓冲器186,输入缓冲器184和映射存储器182可操作地接合以继续进行或停止关联操作。在关联电路194确定是否对多个请求执行关联操作之后,分组电路192可以确定是否在映射存储器182中加载映射地址或映射数据。
控制器130可以将从主机102(例如,参见图2和3)输入的逻辑地址转换成指示存储器装置150(例如,参见图1至4)中的物理位置的物理地址。控制器130可以加载存储在存储器装置150中的映射数据和映射信息以执行地址转换。
根据实施例,当包括在控制器130中或与控制器130可操作地接合的存储器144(例如,参见图2和3)中具有足够的存储空间时,用于地址转换的所有映射数据或所有映射信息可以一次加载。然而,当将存储器系统110(例如,参见图1至图3)安装在便携式终端中时,控制器130可能没有足够的存储空间来存储所有映射数据或映射信息。在这种情况下,控制器130可以从存储器装置150中检索特定映射数据(例如,一些或预定量的映射数据),使用或更新所检索的映射数据,将更新后的映射数据存储在存储器装置150中,并检索存储在存储器装置150中的其他映射数据。根据实施例,存储器144中的预分配空间可以用于存储映射数据或映射信息。
如果不能将请求的映射数据存储在存储器144的区域中,则控制器130可以基于最近最少使用即LRU替换方案来移除该区域中的最近最少使用的(LRU)映射数据。作为另一示例,当请求的映射数据不能被存储在存储器144的区域中时,控制器130可以基于LFU替换方案来移除该区域中的最不频繁使用的(LFU)映射数据。控制器130从存储器装置150请求用于执行地址转换的映射数据或映射信息,这会导致处理开销,从而可能降低存储器系统110的整体性能或I/O吞吐量。因此,可能希望避免映射数据和映射信息的不必要的替换。
在执行针对多个读取请求的关联操作之前,分组电路192可以使用与多个读取请求一起输入的逻辑地址来检查与逻辑地址相关联的映射数据是否被加载在映射存储器182中。如果与相应的逻辑地址相关联的映射数据位于映射存储器182中,则关联电路194可以执行关联操作而无需请求附加的映射数据,并且操作控制电路196可以对被关联的请求执行地址转换。然而,如果与相应的逻辑地址相关联的映射数据没有被加载在映射存储器182中,则关联电路194可以在将映射数据从存储器装置150加载到映射存储器182中之后执行关联操作。在这种情况下,操作控制电路196可以延迟地址转换,直到基于映射数据使至少一些请求被关联为止,然后可以执行配对操作和地址转换。分组电路192可以基于当前加载在映射存储器182中的映射数据或映射信息来确定控制器130是否发出或生成对映射数据的请求。
例如,当存在20个用于关联的读取请求时,控制器130可以基于与20个读取请求相关联的逻辑地址来检查映射存储器182。如果在映射存储器182中找到与11个读取请求有关的映射地址或映射数据,而在映射存储器182中没有找到与9个读取请求有关的映射数据或映射地址,则分组电路192可以将11个读取请求分类到映射命中组中,将9个读取请求分类到映射未命中组中。在将多个请求分类为映射命中组和映射未命中组之后,分组电路192可以将映射命中组和映射未命中组传输到关联电路194。
另外,关联电路194可以对映射命中组的读取请求执行第一关联操作。随后,关联电路194可以对在映射命中组中的通过第一关联操作未被关联的读取请求和映射未命中组中的一个或多个读取请求两者执行第二关联操作。在第一关联操作和第二关联操作之间,控制器130可以执行处理或操作,用以向存储器装置150请求与映射未命中组中的一个或多个读取请求相关联的映射数据并从存储器装置150将映射数据加载在存储器182中。
控制器130可以包括输出缓冲器186、输入缓冲器184和映射存储器182。根据实施例,例如,如参考图2至图3所描述的,输出缓冲器186、输入缓冲器184和映射存储器182可以是利用存储器144实施的功能模块。输出缓冲器186、输入缓冲器184和映射存储器182可以用单个易失性存储器装置或多个独立的易失性存储器装置来实施。
在实施例中,输出缓冲器186、输入缓冲器184和映射存储器182可以用多个高速缓冲存储器来实施。例如,输出缓冲器186和输入缓冲器184中的每一个可以具有诸如队列的数据结构。在这种情况下,输出缓冲器186和输入缓冲器184可以根据数据的存储顺序(例如,先进先出,FIFO)输出数据项。映射存储器182可以具有根据映射数据的各种结构,以及关于映射信息的存储结构和管理规则。
图6示出了由控制器130执行的关于多个读取请求的第一操作的示例实施例。在这种情况下,第一操作可以由图5所示的分组电路192执行。
参照图6,假定来自主机102(例如,外部装置)的多个读取请求222被存储在输入缓冲器184中。例如,可以根据从主机102接收到它们的顺序而对存储在输入缓冲器184中的多个读取请求222进行排序,在所示实施例中,多个读取请求222包括十个读取请求RD1至RD10。此外,假定在10个读取请求RD1至RD10被关联之前,将针对某些逻辑地址LA001至LA100、LA201至LA300的映射信息或映射数据的多个段加载在映射存储器182中。
在检查了映射存储器182之后,分组电路192可以将10个读取请求RD1至RD10划分为两组。例如,与第一读取请求RD1一起输入的逻辑地址是“LA128”,其属于未加载在映射存储器182中的LA101至200的逻辑地址范围。因此,为了关联第一读取请求RD1与另一读取请求,将从存储器装置150请求映射数据和映射信息的另一段(例如,参见图1至图4)。分组电路192可以将第一读取请求RD1分类到映射未命中组MM中。
与第二读取请求RD2一起输入的逻辑地址是“LA005”,其属于已经加载在映射存储器182中的LA001至100的逻辑地址范围。因此,由于没有必要发出或生成用于从存储器装置150加载映射数据和映射信息的另一段以关联第二读取请求RD2与另一读取请求的请求,第二读取请求RD2可以被分类到映射命中组MH中。
以上述方式,控制器130可以将第三读取请求RD3至第十读取请求RD10中的每一个分类到映射未命中组MM和映射命中组MH中的一个。例如,第二读取请求RD2、第三读取请求RD3、第八读取请求RD8和第九读取请求RD9可以被分类到映射命中组MH中,而第一读取请求RD1和第十读取请求RD10可被分类到映射未命中组MM中。
图7示出了关于多个读取请求的控制器130的第二操作的示例实施例。例如,第二操作可以由控制器130中的关联电路194执行。
参照图7,第二读取请求RD2、第三读取请求RD3、第八读取请求RD8和第九读取请求RD9可以被包括在映射命中组MH中。参照与第二读取请求RD2、第三读取请求RD3、第八读取请求RD8和第九读取请求RD9一起输入的逻辑地址LA005、LA250、LA001、LA002的映射数据和映射信息,控制器130可以识别存储器装置150中的物理位置(例如,存储与逻辑地址LA005、LA250、LA001、LA002相关联的数据的位置)(例如,参见图1至图4)。
控制器130中的关联电路194不需要检查特定位置(例如,存储数据的页面地址)以关联读取请求。为了关联读取请求,关联电路194仅检查相应数据是否存储在支持交错操作的任何存储单元(例如,存储器装置150中的多个存储器管芯240A至240D中的任何一个)中可能就足够了。
根据实施例,多个存储器管芯240A至240D可以被包括在存储器装置150中,并且每个存储器管芯可以包括多个存储块。每个存储块可以包括多个页面。指示存储数据的物理位置的物理地址可以包括指示存储器管芯、存储块、页面等的多个位。控制器130中的关联电路194可以检查物理地址的一些(例如,预定数量的)位,但不是全部位,以识别相应的数据存储在哪个存储单元(例如,管芯或平面)中。
参考映射数据或映射信息,控制器130可以识别与逻辑地址LA005、LA250、LA001、LA002相关联的数据存储在哪些存储单元(例如,管芯)中,逻辑地址LA005、LA250、LA001、LA002与第二读取请求RD2、第三读取请求RD3、第八读取请求RD8和第九读取请求RD9一起输入。例如,与逻辑地址LA005相关联的数据存储在第三存储器管芯DIE#3中,并且与逻辑地址LA250相关联的数据存储在第三存储器管芯DIE#3中。与逻辑地址LA001相关联的数据存储在第一存储器管芯DIE#1中,并且与逻辑地址LA002相关联的数据存储在第四存储器管芯DIE#4中。参照图4,第一存储器管芯DIE#1通过第一通道CH#1连接至控制器130,并且第三存储器管芯DIE#3和第四存储器管芯DIE#4通过第二通道CH#2连接至控制器130。
由于可以通过第二通道CH#2从存储器装置150传送与(连同第二读取请求RD2和第三读取请求RD3一起输入的)逻辑地址相关联的数据,对于交错操作,第二读取请求RD2和第三读取请求RD3可以彼此不相关联。
此后,控制器130识别出:与(连同第八读取请求RD8一起输入的)逻辑地址相关联的数据被存储在第一存储器管芯DIE#1中,并且可以通过第一通道CH#1从装置150传递该数据。对于交错操作,第八读取请求RD8可以与第二读取请求RD2关联。
控制器130可以识别出:与(连同第九读取请求RD9一起输入的)逻辑地址相对应的数据被存储在第四存储器管芯DIE#4中,并且可以经由第二通道CH#2从存储器装置150传递该数据。由于与第九读取请求RD9和第三读取请求RD3相对应的数据均通过第二通道CH#2被接收,对于交错操作,第九读取请求RD9和第三读取请求RD3可以不被关联。控制器130中的关联电路194可以对映射命中组MH执行第一关联操作。在映射命中组MH中,某些读取请求可以被关联,而其他读取请求可以不被关联。
图8示出了用于控制存储器系统中的操作的方法的示例实施例。该方法描述了由控制器130中的关联电路194执行的第二关联操作。
参照图8,对在映射命中组MH中不被关联的第三读取请求RD3和第九读取请求RD9以及包括在映射未命中组MM中的第一读取请求RD1和第十读取请求RD10执行第二关联操作。对于包括在映射未命中组MM中的一些读取请求的第二关联操作,控制器130可向存储器装置150请求与该一些读取请求相关联的映射数据或映射信息,并将请求的映射数据或映射信息存储在映射存储器182。
参照存储在映射存储器182中的映射数据或映射信息,控制器130可以识别出:与连同包括在映射未命中组MM的第一读取请求RD1和第十读取请求RD10一起输入的相应逻辑地址相关联的数据的位置。例如,与(连同第一读取请求RD1和第十读取请求RD10一起输入的)逻辑地址相对应的数据被存储在第二存储器管芯DIE#2中。第三读取请求RD3和第九读取请求RD9都可以通过第二通道CH#2在存储器装置150和控制器130之间生成数据传输。由于第一读取请求RD1和第十读取请求RD10可以通过第一通道CH#1生成数据传输,第三读取请求RD3和第九读取请求RD9可以分别与第一读取请求RD1和第十读取请求RD10关联。参照图8,第三读取请求RD3和第一读取请求RD1被相互关联,并且第九读取请求RD9和第十读取请求RD10被相互关联。
图9示出了由控制器130执行的关联操作的示例结果。参照图9,来自主机102的多个读取请求222可以包括十个读取请求RD1至RD10。可以根据它们被传递到存储器系统110或控制器130的顺序来对多个读取请求222进行排列。
在图6至图8所示的处理之后,由控制器130关联的多个被关联的读取请求333以执行顺序(例如,关联序列而不是输入序列)排列。通过第一关联操作关联第二读取请求RD2和第八读取请求RD8。并且,通过第二关联操作,第三读取请求RD3和第一读取请求RD1被相互关联,并且第九读取请求RD9和第十读取请求RD10被关联。根据关联序列,多个读取请求RD1至RD10被传送到操作控制电路196。根据传送的顺序,操作控制电路196可以确定执行顺序。如果另一读取请求未被与另一读取请求关联,则未被关联的读取请求可以在被关联的读取请求之后被传送,从而可以在执行被关联的读取请求之后执行未被关联的读取请求。执行顺序可以指示图5中的操作控制电路196处置或处理多个读取请求的顺序。根据实施例,在执行第一关联操作之后并且在执行第二关联操作之前,可以按关联序列将在第一关联操作期间的被关联的读取请求传递到存储器装置150,以提高存储器系统110的输入/输出性能。
如上所述,可以对应于存储器系统110中的通道的数量来关联在存储器系统110中接收到的多个读取请求,然后可以分别执行每个读取请求。即使存储器系统110不包括具有控制存储用于交错操作的数据项的物理位置的严格规则的地址限制结构,存储器系统110中的控制器130也可以对多个读取请求执行关联操作,然后基于关联操作的结果,根据重新安排的顺序或调整后的顺序执行与多个读取请求相对应的操作。因此,可以通过多个通道以交错方式或根据交错方案来传输存储器装置150与控制器130之间的多个数据项。
尽管对多个读取请求中的一些读取请求执行关联操作,但是与对所有多个读取请求都不进行交错数据传输时相比,可以提高存储器系统110的数据输入/输出性能。另外,为使得关联操作不会降低存储器系统110的数据输入/输出性能,可以在当在输出缓冲器186中存在待输出到主机102的多个数据项时针对读取请求执行关联操作。例如,当在输出缓冲器186中没有数据项的情况下接收到30个读取请求时,存储器装置110可以跳过对这30个读取请求之中的三个读取请求的关联,并控制操作控制电路196在没有关联操作的情况下根据输入顺序执行与三个读取请求相对应的操作。在操作控制电路系统196执行三个读取请求以将读取的数据输出到主机102的同时,控制器130中的关联电路194可以尝试关联27个其他读取请求。
在该示例中,假定在尝试针对其他27个读取请求的关联操作的过程中,三个读取请求不被相互关联。关联电路194可以停止尝试针对三个剩余的读取请求的关联操作,因为当剩余少量(例如,在小于预定数量的)读取请求时关联的概率可能较低。当关联电路194不必要地使用资源来尝试关联一些读取请求时,关联电路194可能会影响存储器系统110的数据输入/输出性能。
如上所描述的,根据实施例,控制器130可以控制是否尝试关联多个读取请求。例如,控制器130可以根据输出缓冲器186的状态来确定是否对多个读取请求中的第一个读取请求执行关联操作。在另一示例中,在(外部输入之后存储在缓冲器中的)读取请求的数量达到阈值之前,控制器130可以通过搜索与至少一些读取请求有关的用于地址转换的映射数据或映射信息的过程,来确定是否请求映射数据。例如,可以基于与在存储器系统110、控制器130或存储器装置150中执行的数据输入/输出操作有关的操作裕度来确定阈值。
另外,当连续接收到用于关联操作的另一读取请求时,对于先前输入的读取请求和当前输入的读取请求可以继续关联操作。然而,当不再接收到读取请求时,可以根据接收到这种读取请求的顺序来过滤未被关联的读取请求以执行相应的操作,从而避免恶化存储器系统110的数据输入/输出性能。当控制器130保留未被关联的读取请求以与其他读取请求进行关联操作时,存储器系统110的数据输入/输出性能可能会下降。
在至少一些情况下,存储器系统110可能难以预测多个读取请求将彼此关联的可能性,因为这种可能性会改变。例如,随着用于关联操作的读取请求的数量增加,控制器130执行关联操作的概率可以增加。相反,接收到的读取请求的数量越少,则表示执行关联操作的概率越低。因为即使当存储器系统110不施加地址限制来存储多个数据项时,也可以分配由主机102请求的多个数据项,所以控制器130可以关联读取请求的概率可以如上所述地变化。
在实施例中,控制器130可以对主机102从存储器系统110请求的用于随机读取操作和/或顺序读取操作的多个读取请求执行关联操作。
图10示出了用于操作存储器系统的方法的实施例。参照图10,用于操作存储器系统的方法可以包括:接收从外部装置输入的多个读取请求(S10);以及确定是否加载针对多个读取请求的映射数据(S12)。多个读取请求中的每一个都与逻辑地址一起被输入。当与逻辑地址相关联的映射数据被加载在存储器144中时,控制器130不必生成用于加载映射数据的请求。然而,当与逻辑地址相关联的映射数据没有被加载在存储器144中时,控制器130确定应当加载映射数据以进行地址转换和关联操作。
该方法可以进一步包括:基于是否加载映射数据将多个读取请求划分为两组(S14),并且对每组关联多个读取请求(S16)。该方法可以进一步包括:执行关于被关联的读取请求的地址转换,以及经由多个通道或多个数据路径传送被关联的读取请求(S18)。根据关联序列,被关联的读取请求被传送到多个存储器管芯中。多个存储器管芯可以基于传输序列来输出数据。另外,该方法可以包括:以交错方案或方式接收与被关联的读取请求相对应的多个数据项(S20),并且将该多个数据项输出到例如主机的外部装置(S22)。
在图10中,基于存储器系统中的多个存储器管芯和多个通道来执行数据输入/输出操作。然而,如图1和10中所描述的,可以基于存储器装置110中的能够支持交错操作的存储单元(例如,管芯、平面等)关联多个读取请求。
在一些实施例中,用于操作存储器系统的方法可以进一步包括:顺序地执行关于未被关联的读取请求的地址转换,以便将未被关联的读取请求传送到多个存储器管芯之中的特定存储器管芯;以及从特定存储器管芯接收与未被关联读取请求相对应的数据项。另外,作为示例而非限制,存储器系统可以根据多个读取请求是否被关联而不是接收它们的顺序,确定多个读取请求的执行顺序或序列。存储器系统可以首先执行与被关联的读取请求相对应的操作,然后,执行与未被关联的读取请求相对应的操作。
在一些实施例中,用于操作存储器系统的方法还可以包括:确定在输出缓冲器中待输出到外部装置的数据项的数量是否大于参考值。例如,可以基于外部装置和/或存储器系统之间的第一数据输入/输出速度和/或控制器和多个存储器管芯之间的第二数据输入/输出速度来确定参考值。例如,如果存储器系统将数据项传输到外部装置需要10ms,则当输出缓冲器包含10个待输出到外部装置的数据项时,存储器系统的操作裕度可能为100ms(=10x10)。在该示例中,考虑在控制器与存储器系统中的多个存储器管芯之间传送读取请求并接收数据项需要5ms的情况。那么,控制器可以尝试在100ms中确保的的长达95ms的操作裕度期间关联多个读取请求。
在一个实施例中,控制器可以根据定义主机与存储器系统之间的通信的协议来识别内部操作的操作速度(或设定操作裕度)、检查在内部操作上花费的时间并计算操作裕度。因此,控制器可以计算和估计用于尝试关联多个读取请求的操作裕度。例如,控制器可以计算为关联操作而确保的操作裕度的最大值,并且在对应于所述最大值的70%至90%的时间内对多个读取请求执行关联操作。根据实施例,控制器可以尝试关联多个读取请求的时间范围可以是不同的或变化的。此外,当控制器可以尝试基于存储器系统的操作环境和存储器装置的操作状态来关联多个读取请求时,控制器可以动态地确定操作裕度。
在一个实施例中,在从外部输入后存储在缓冲器中的读取请求的数量达到阈值之前,存储器系统110中的控制器130可以确定是否通过搜索与至少一些读取请求有关的用于地址转换的映射数据的处理来请求映射数据(S12)。如上所描述的,为了执行确定是否加载或请求映射数据以处理多个读取请求的操作S12,可以基于与通过存储器系统110、控制器130或存储器装置150执行的数据输入/输出操作相关的操作裕度来确定多个读取请求的数量的阈值。
当与(连同一个或多个读取请求一起输入的)逻辑地址相关联的映射数据没有被加载在高速缓冲存储器(或易失性存储器中的映射数据区域)中时,用于确定是都加载或请求映射数据的操作S12可以包括从多个存储器管芯请求相应的映射数据。如果在高速缓冲存储器中没有足够的存储映射数据的空间,则在将更新的映射数据编程到存储器装置中并且释放之后,可以加载所请求的映射数据。可选地,不必要的映射数据可以在高速缓冲存储器中被释放。例如,当在该区域中请求的映射数据不能被存储在高速缓冲存储器中时,在高速缓冲存储器中最近最少使用的映射数据可以被释放。根据实施例,当所请求的映射数据不能被存储在高速缓冲存储器中时,在高速缓冲存储器中最不频繁使用的映射数据可以被释放。
根据实施例,在存储在缓冲器中的多个读取请求的数量达到阈值之前,可以执行确定是都加载或请求映射数据(S12),以处理多个读取请求。如果为了执行关联操作,控制器待机或等待,直到存储在缓冲器中的读取请求的数量达到阈值,存储器系统的操作效率可能会下降。
为了增加或改善存储器系统的操作效率,控制器可以在多个读取请求的数量达到阈值之前搜索与存储在缓冲器中的多个读取请求中的至少一些读取请求相关联的映射数据或映射信息。通过这种方式,控制器可以响应于多个读取请求而快速确定是否从存储器系统请求或加载映射数据以执行地址转换和关联操作,从而可以减少由关联操作引起的开销。
用于基于是否加载与(连同存储在存储器中的多个读取请求中的每一个一起输入的)逻辑地址相关联的映射数据将多个读取请求划分为两组的操作S14可以包括:将多个读取请求分为包括映射命中组和映射未命中组的两组。在将多个读取请求划分为映射命中组和映射未命中组之后,通过对每组顺序地执行关联操作,可以避免不必要的用于关联操作的映射数据替换(例如,映射数据的加载和释放)。
在将多个读取请求划分为两组之后,可以顺序地尝试关联。例如,用于执行关联操作的操作S16可以包括:对映射命中组中的第一读取请求执行第一关联操作;向存储器装置请求与映射未命中组中的一个或多个第二读取请求相对应的映射数据以将所请求的映射数据存储在存储器中;并且对一个或多个第二读取请求和一个或多个通过第一关联操作未被关联的第一读取请求执行第二关联操作。
对映射命中组中的第一读取请求执行第一配对,并且显示与映射未命中组中的第二读取请求相对应的映射数据。请求,将从多个存储器管芯传输的所请求的映射数据存储在存储器中,以及对在第一配对中未配对的第一读取请求和第二读取请求执行第二配对,可以包括如本文所述的一个或多个操作。
根据前述实施例中的一个或多个实施例,关联操作关联经由不同通道并行地传输到不同存储器管芯的一些读取请求,使得从不同存储器管芯输出的多个数据项经由不同的通道被并行地传输。例如,这可以被称为通道交错方案。根据一个实施例,可以施加关联操作以关联经由相同的通道交替地传输到不同的存储器管芯的一些读取请求,使得从不同的存储器管芯输出的多个数据项经由相同的通道被交替地传输。这可以被称为通路交错方案。
根据实施例,一种存储器系统、数据处理系统、其操作方法以及支持操作的方法可以避免关于存储器系统中物理位置的地址限制,所述物理位置被分配以用于存储数据,用于交错操作。因此,该存储器系统可以减少用于交错操作的存储器系统中的开销。另外,一个或多个实施例可以通过存储器系统中的交错操作来改善数据输入/输出性能,并且可以减少关于用于交错操作的存储器系统中的物理位置的地址限制,从而使存储器系统的操作效率和寿命可以得以提高。
尽管已经针对特定实施例示出和描述了本发明,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明涵盖落入权利要求范围内的所有改变和修改。

Claims (20)

1.一种存储器系统,包括:
存储器装置,包括能够独立输入或输出数据的多个存储单元;以及
控制器,经由多个数据路径与所述多个存储单元联接,所述控制器:对从外部装置输入的多个读取请求之中的两个或更多个读取请求执行关联操作,执行所述关联操作使得所述多个存储单元基于交错方式经由所述多个数据路径来输出与所述多个读取请求相对应的多个数据项,其中所述控制器还:在所述多个读取请求的计数达到阈值之前,确定是否加载与所述多个读取请求相关联的映射数据,基于是否加载所述映射数据来将所述多个读取请求划分为两组,以及对每组执行所述关联操作。
2.根据权利要求1所述的存储器系统,其中所述控制器:在被输出到所述外部装置之前存储在输出缓冲器中的数据项的数量大于阈值时,执行所述关联操作。
3.根据权利要求2所述的存储器系统,其中,
所述输出缓冲器包括能够根据所存储的数据的输入序列输出所存储的数据的队列,以及
所述控制器:基于所述外部装置与所述存储器系统之间的第一数据输入/输出速度以及所述控制器与所述多个存储单元之间的第二数据输入/输出速度来确定所述阈值。
4.根据权利要求1所述的存储器系统,其中所述控制器:
建立被分配以在高速缓冲存储器或易失性存储器中存储所述映射数据的区域;
将从所述多个存储单元传递的所述映射数据存储在所述区域中;以及
当与连同所述多个读取请求一起输入的一个或多个逻辑地址相关联的映射数据未被加载在所述区域中时,向所述多个存储单元请求未加载的映射数据。
5.根据权利要求4所述的存储器系统,其中所述控制器:当所请求的映射数据不能存储在所述区域中时,释放所述区域中最近最少使用的映射数据项。
6.根据权利要求4所述的存储器系统,其中所述控制器:当所请求的映射数据不能存储在所述区域中时,释放所述区域中最不频繁使用的映射数据项。
7.根据权利要求1所述的存储器系统,还包括:
存储器,存储用于地址转换的所述映射数据;
输入缓冲器,存储所述多个读取请求;以及
输出缓冲器,存储被输出到所述外部装置的所述多个数据项。
8.根据权利要求7所述的存储器系统,其中所述控制器包括:
缓冲器控制电路,监视所述输入缓冲器和所述输出缓冲器两者的状态以确定是否执行所述关联操作;
分组电路,基于与连同所述多个读取请求一起输入的逻辑地址相对应的所述映射数据是否被加载在所述存储器中,将所述多个读取请求划分为包括映射未命中组和映射命中组的两组;
关联电路,对所述映射命中组中的第一读取请求执行第一关联操作,向所述存储器装置请求与所述映射未命中组中的一个或多个第二读取请求相对应的映射数据,以将所请求的映射数据存储在所述存储器中,以及对所述一个或多个第二读取请求和通过所述第一关联操作未被关联的一个或多个所述第一读取请求执行第二关联操作;以及
操作控制电路,基于所述读取请求的关联序列,将通过所述第一关联操作和所述第二关联操作关联的读取请求经由所述多个数据路径传输到所述多个存储单元。
9.根据权利要求8所述的存储器系统,其中所述操作控制电路:
对未被关联的读取请求顺序地执行地址转换,以及
在对被关联的读取请求执行地址转换之后,将所述未被关联的读取请求传输到所述多个存储单元。
10.根据权利要求8所述的存储器系统,其中所述关联电路:
监视所述操作控制电路的操作状态,以及
当所述操作控制电路处于空闲状态时,在不执行所述第一关联操作的情况下,将所述第一读取请求中的至少一个传输至所述操作控制电路。
11.根据权利要求1所述的存储器系统,其中彼此关联的读取请求的计数与所述多个数据路径的计数相同。
12.一种用于操作存储器系统的方法,包括:
从外部装置接收多个读取请求;
当所述多个读取请求的计数达到阈值时,确定是否加载与所述多个读取请求相关联的映射数据;
基于是否加载所述映射数据,将所述多个读取请求划分为两组;
对每组执行关联操作;
根据关联序列,经由多个通道将被关联的读取请求传输到多个存储单元;
基于交错方式经由所述多个通道从所述多个存储单元接收与所述被关联的读取请求相对应的数据;以及
将所述数据输出到所述外部装置。
13.根据权利要求12所述的方法,还包括:
对未被关联的读取请求执行地址转换,以经由多个通道将所述未被关联的读取请求传送到多个存储单元;以及
从所述多个存储单元接收与所述未被关联的读取请求相对应的其他数据,以将所述其他数据输出到所述外部装置。
14.根据权利要求12所述的方法,还包括:
确定在被输出到所述外部装置之前存储在输出缓冲器中的数据项的数量是否大于阈值。
15.根据权利要求14所述的方法,其中所述阈值是基于以下确定的:
所述外部装置和所述存储器系统之间的第一数据输入/输出速度,以及
控制器和所述多个存储单元之间的第二数据输入/输出速度。
16.根据权利要求12所述的方法,其中确定是否加载所述映射数据包括:
当与连同所述多个读取请求一起输入的一个或多个逻辑地址相关联的映射数据没有被加载在高速缓冲存储器或易失性存储器的区域中时,向所述多个存储单元请求未加载的映射数据。
17.根据权利要求16所述的方法,还包括:当所请求的映射数据不能存储在所述区域中时,释放所述区域中最近最少使用的映射数据项。
18.根据权利要求16所述的方法,还包括:当所请求的映射数据不能存储在所述区域中时,释放所述区域中最不频繁使用的映射数据项。
19.根据权利要求12所述的方法,其中划分所述多个读取请求包括:
基于与连同所述多个读取请求一起输入的逻辑地址相对应的所述映射数据是否被加载在存储器中,将所述多个读取请求划分为包括映射未命中组和映射命中组的两组。
20.根据权利要求19所述的方法,其中执行所述关联操作包括:
对所述映射命中组中的第一读取请求执行第一关联操作;
向存储器装置请求与所述映射未命中组中的一个或多个第二读取请求相对应的映射数据,以将所请求的映射数据存储在所述存储器中;以及
对所述一个或多个第二读取请求和通过所述第一关联操作未被关联的一些所述第一读取请求执行第二关联操作。
CN202011087263.2A 2020-04-01 2020-10-13 用于控制存储器系统的输入/输出吞吐量的设备和方法 Withdrawn CN113495689A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200039616A KR20210122461A (ko) 2020-04-01 2020-04-01 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
KR10-2020-0039616 2020-04-01

Publications (1)

Publication Number Publication Date
CN113495689A true CN113495689A (zh) 2021-10-12

Family

ID=77921848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011087263.2A Withdrawn CN113495689A (zh) 2020-04-01 2020-10-13 用于控制存储器系统的输入/输出吞吐量的设备和方法

Country Status (3)

Country Link
US (1) US11500720B2 (zh)
KR (1) KR20210122461A (zh)
CN (1) CN113495689A (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157946A1 (en) 2007-12-12 2009-06-18 Siamak Arya Memory having improved read capability
US8036061B2 (en) * 2009-02-13 2011-10-11 Apple Inc. Integrated circuit with multiported memory supercell and data path switching circuitry
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US20170123674A1 (en) * 2015-11-03 2017-05-04 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
KR20210000877A (ko) * 2019-06-26 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법

Also Published As

Publication number Publication date
US11500720B2 (en) 2022-11-15
KR20210122461A (ko) 2021-10-12
US20210311825A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
CN110825319B (zh) 基于块状态确定可用性的存储器系统及操作方法
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
US11487678B2 (en) Apparatus and method for improving input/output throughput of a memory system
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
CN112148208B (zh) 在休眠模式下传送存储器系统的内部数据的设备和方法
CN112199038A (zh) 基于i/o吞吐量确定缓冲器使用的存储器系统及其操作方法
US11275525B2 (en) Apparatus and method for improving write throughput of memory system
CN113900586A (zh) 存储器系统及其操作方法
CN110895448A (zh) 用于管理存储器系统中的有效数据的设备和方法
CN111752474A (zh) 控制存储器系统的写入操作的设备和方法
CN112558860A (zh) 分布和读取数据的存储器系统及其操作方法
CN112286835A (zh) 管理存储器系统中的元数据的设备和方法
US11822426B2 (en) Memory system, data processing system and operation method of the same
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN113010098A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
US11354051B2 (en) Memory system for efficiently managing memory block and operating method thereof
CN112445424A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法
US11429282B2 (en) Apparatus and method for improving Input/Output throughput of memory system
CN113050882A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
CN113687769A (zh) 用于提高数据处理系统中的操作效率的设备和方法
CN111857818A (zh) 存储器系统和通过该存储器系统执行命令操作的方法
CN113495689A (zh) 用于控制存储器系统的输入/输出吞吐量的设备和方法
CN113126897A (zh) 提高存储器系统的输入和输出吞吐量的设备和方法
CN111857565A (zh) 存储器系统、数据处理系统及其操作方法
CN112230841A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20211012

WW01 Invention patent application withdrawn after publication