CN113050881A - 提高存储器***输入/输出吞吐量的设备和方法 - Google Patents
提高存储器***输入/输出吞吐量的设备和方法 Download PDFInfo
- Publication number
- CN113050881A CN113050881A CN202010859262.9A CN202010859262A CN113050881A CN 113050881 A CN113050881 A CN 113050881A CN 202010859262 A CN202010859262 A CN 202010859262A CN 113050881 A CN113050881 A CN 113050881A
- Authority
- CN
- China
- Prior art keywords
- read requests
- memory
- data
- controller
- read
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种提高存储器***输入/输出吞吐量的设备和方法。本公开涉及一种存储器***,该存储器***可包括:多个存储器管芯,被配置成存储数据;以及控制器,通过多个通道与多个存储器管芯联接,并被配置成关联多个读取请求中的至少一些读取请求并将多个读取请求传送到多个通道,以使当控制用于多个读取请求的多个存储器管芯时,多个读取请求以交错方式通过多个通道被处理。控制器可响应于多个读取请求的数量来确定是否执行关联操作,其中多个读取请求包括用于控制器的内部操作的读取请求和从主机接收的读取请求。
Description
相关申请的交叉引用
本申请要求于2019年12月27日提交的申请号为10-2019-0176645的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
实施例涉及一种存储器***,且更特别地,涉及通过对多个存储器管芯的交错操作来提高存储器***的吞吐量的设备和方法。
背景技术
近来,计算环境范例已经转变成几乎可随时随地访问计算机***的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用增加。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器***,即数据存储装置。该数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,在计算装置中,用作非易失性半导体存储器装置的数据存储装置的优势在于,因其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。这种数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
各个实施例涉及能够通过最小化存储器***的复杂性和吞吐量的降低、最大化存储器装置使用效率来将数据快速稳定地处理到存储器装置中的存储器***及其操作方法。
此外,各个实施例涉及通过对存储器***中的多个存储器管芯的交错操作来输入和输出数据而提高存储器***的输入和输出(I/O)吞吐量的设备和方法。
此外,各个实施例涉及:在将数据存储在存储器***中的多个存储器管芯中的过程中,即使待存储数据的物理位置不受限于交错操作,也能够通过更有效地利用多个管芯来提高存储器***的操作稳定性和寿命的设备和方法。
此外,各个实施例涉及能够响应于存储器***的配置和用于在存储器***中执行的数据读取和写入操作的关联操作的特性来动态地确定是否执行或跳过关联操作从而减少不必要的开销的设备和方法。
此外,各个实施例涉及能够通过对存储器***内的空闲存储器管芯执行读取操作来提高通道的利用率的设备和方法。
下面将描述根据本实施例的设备和方法的效果。
根据本实施例的存储器***及其操作方法可减少用于存储器***内的交错操作的开销,同时消除或减少对存储器***内用于交错操作的物理位置的地址限制。
此外,存储器***及其操作方法可在通过交错操作提高存储器***的I/O吞吐量的同时,减少对存储器***内用于交错操作的物理位置的地址限制,从而提高存储器装置的效率和寿命。
根据实施例,一种存储器***,包括:多个存储器管芯,被配置成存储数据;以及控制器,经由多个通道与多个存储器管芯联接,并被配置成对从主机输入的多个读取请求之中的至少一些读取请求执行关联操作,使得多个存储器管芯经由多个通道以交错方式输出与多个读取请求相对应的多条数据,其中控制器被配置成基于多个读取请求的数量来确定何时执行关联操作,并且其中多个读取请求包括用于控制器的内部操作的读取请求和从主机接收的读取请求。
控制器可确定多个通道之中的空闲通道,并且可对多个读取请求之中除了与空闲通道相关的用于内部操作的读取请求之外的剩余读取请求执行关联操作。
控制器可通过空闲通道将与空闲通道相关的用于内部操作的读取请求传送至多个存储器管芯,并且不执行关联操作。
控制器可基于用于关联操作的读取请求的接收顺序,确定与空闲通道相关的用于内部操作的读取请求的传送顺序。
控制器可将具有最早的接收顺序的读取请求的传送优先级设置为最高优先级。
存储器***可进一步包括被配置成临时存储待传送到多个通道的多个读取请求,并且与各个通道相对应的多个通道缓冲器。
当多个请求的数量小于目标值时,控制器可将与多个通道缓冲器之中存储多个读取请求的通道缓冲器相对应的通道确定为空闲通道。
响应于多个读取请求,将对应于多个读取请求的数据从多个存储器管芯输出到多个通道。
控制器可向主机输出在与多个读取请求相对应的数据之中与从主机接收的读取请求相对应的数据。
存储器***可进一步包括输出缓冲器,其被配置成临时存储待输出到主机的数据,
控制器被配置成当输出缓冲器中存储的待输出到主机的数据的条数大于设置值时执行关联操作。
输出缓冲器可包括能够根据所存储的数据的输入序列输出所存储的数据的队列,并且控制器可基于主机和存储器***之间的第一数据输入/输出速度以及控制器和多个存储器管芯之间的第二数据输入/输出速度来确定设置值。
控制器被配置成当为关联操作而传送的多个读取请求的数量大于多个通道的数量时执行关联操作。
控制器被配置成当剩余读取请求的数量小于多个存储器管芯的数量时,停止对尚未经关联的剩余读取请求的关联操作。
控制器可基于为关联操作而传送的多个读取请求的数量来确定是否对多个读取请求执行或跳过关联操作,并在多个读取请求之中早于未经关联的读取请求而传送经关联的读取请求。
控制器可执行关联操作以按照多个通道的数量来关联多个读取请求。
根据实施例,一种存储器***的操作方法,包括:基于用于关联操作的多个读取请求的数量来确定何时执行关联操作;基于确定结果对多个读取请求执行关联操作;将经关联的读取请求传送到联接到多个存储器管芯的多个通道;并且经由多个通道以交错方式从多个存储器管芯接收与经关联的读取请求相对应的数据,其中多个读取请求包括用于存储器***的内部操作的读取请求和从主机接收的读取请求。
对多个读取请求执行关联操作可包括:确定多个通道之中的空闲通道;以及对多个读取请求之中除了与空闲通道相关的用于内部操作的读取请求之外的剩余读取请求执行关联操作。
该操作方法可进一步包括:将与空闲通道相关的用于内部操作的读取请求通过空闲通道传送至多个存储器管芯,并且不执行关联操作。
用于内部操作的读取请求的传送可包括:基于用于关联操作的读取请求的接收顺序,确定与空闲通道相关的用于内部操作的读取请求的传送顺序。
传送顺序的确定可包括:将具有最早的接收顺序的读取请求的传送优先级设置为最高优先级。
空闲通道的确定可包括:临时存储待传送到多个通道的读取请求,以及检查分别与多个通道相对应的多个通道缓冲器中存储的读取请求的数量;并且当多个读取请求的数量小于目标值时,将与多个通道缓冲器之中存储多个读取请求的通道缓冲器相对应的通道确定为空闲通道。
操作方法可进一步包括:在与多个读取请求相对应的数据中,向主机输出与从主机接收的读取请求相对应的数据。
确定何时执行关联操作可包括:当输出缓冲器中存储的待输出到主机的数据的条数大于设置值时执行关联操作,基于主机和存储器***之间的第一数据输入/输出速度以及控制器和多个存储器管芯之间的第二数据输入/输出速度来确定设置值。
确定何时执行关联操作可包括:当剩余读取请求的数量小于多个存储器管芯的数量时,停止对尚未未经关联的剩余读取请求的关联操作。
关联操作的执行可包括:基于为关联操作而传送的多个读取请求的数量,确定是否对多个读取请求执行或跳过关联操作。
关联操作的执行可包括:在多个读取请求之中早于未经关联的读取请求而传送经关联的读取请求。
关联操作的执行可包括:执行关联操作以按照多个通道的数量来关联多个读取请求。
附图说明
图1示出根据本发明实施例的存储器***。
图2示出根据本发明实施例的包括存储器***的数据处理***。
图3示出根据本发明实施例的存储器***中的控制器。
图4示出根据本发明实施例的存储器***中的存储器装置。
图5A和图5B示出根据本发明实施例的由控制器执行的关联操作的特性。
图6示出根据本发明实施例的控制器。
图7示出根据本发明实施例的用于在控制器中关联多个读取请求的过程。
图8示出根据本发明第一实施例的存储器***的操作方法。
图9示出根据第一实施例的控制器对多个读取请求的第一操作。
图10示出根据第一实施例的控制器对多个读取请求的第二操作。
图11示出根据第一实施例的用于向通道输出经关联的读取请求的方法的示例。
图12示出存储器***的通道缓冲器的示例。
图13示出根据本发明第二实施例的控制器的第二操作。
图14示出根据第二实施例的用于向通道缓冲器输出经关联的读取请求的方法的示例。
图15示出根据第二实施例的用于向空闲通道输出经关联的读取请求的方法的示例。
具体实施方式
下面,将参照附图描述本发明的各个实施例。应当理解的是,以下描述将集中于用于理解根据本发明的各个实施例的操作所需的部分,并将排除对其它部分的描述,以免不必要地模糊本公开的主题。
下面,将参照附图详细地描述实施例。
下面,参照附图详细地描述本发明的各个实施例。在下文的描述中,需要注意的是,将仅描述用于理解根据各个实施例的操作所必需的部分,并且将省略对其它部分的描述,以免模糊本公开的主题。
下面参照附图更详细地描述本公开的各个示例。然而,本发明的方面和特征可以以不同的方式来实现以形成其它实施例,包括所公开的任何实施例的变型。因此,本发明不应被解释为受限于本文所阐述的实施例。相反,提供所描述的实施例以使本公开是彻底且完整的,并且将向本发明所属领域的技术人员充分地传达本公开。在整个本公开中,相同的附图标记在本公开的各个附图和示例中始终指代相同部件。注意的是,对“实施例”、“另一实施例”等的参考不一定意为仅一个实施例,对任何此类短语的不同参考不一定针对相同的实施例。
将理解的是,尽管在本文中可使用术语“第一”、“第二”、“第三”等来标识各种元件,但这些元件不受这些术语的限制。这些术语用于将一个元件与否则具有相同或相似名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,一个实例中的第一元件可在另一实例中被称为第二元件或第三元件。
附图不一定按比例绘制,在某些情况下,为了清楚地说明实施例的特征,比例可被夸大。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由其间的一个或多个中间元件电连接或联接到后者。此外,还应当理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文中使用的术语仅用于描述实施例的目的,并不旨在限制本发明。如本文所使用的,单数形式旨在包括复数形式,反之亦然,除非语境中另有明确指示。同样,不定冠词“一”和“一个”是指一个或多个,除非从语言或语境中可清楚地看出旨在表示仅一个。
将进一步理解的是,当在该说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指明所陈述元件的存在而不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文中使用的包括技术和科学术语的所有术语具有与根据本发明所属领域的普通技术人员鉴于本公开通常理解的相同的含义。应进一步理解的是,诸如常用词典中定义的术语,应被解释为具有与其在本公开和相关技术的语境中的含义一致的含义,并且除非在本公开明确如此定义,否则不得被解释为理想化或过于形式化的含义。
在下面的描述中,阐述了许多具体细节,以便提供对本发明的透彻理解。本发明可在没有这些具体细节的一些或全部的情况下实施。在其它情况下,为了避免不必要地模糊本发明,没有详细描述公知的进程结构和/或进程。
还应注意的是,在一些实例下,如相关领域的技术人员所显而易见的,结合一个实施例所描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用,除非另有特别说明。
本公开实施例可提供一种存储器***、一种数据处理***和一种操作过程或方法,该存储器***、数据处理***和操作过程或方法可通过减少存储器***的操作复杂度和性能降低来快速且可靠地将数据处理到存储器装置中,从而增强存储器装置的使用效率。
此外,本公开实施例可提供一种方法和设备,用于经由交错方式向存储器***中的多个存储器管芯输入和从存储器***中的多个存储器管芯输出多条数据,以提高存储器***的数据输入/输出性能(例如,I/O吞吐量)。
进一步地,本公开实施例可提供一种存储器***,在将一条数据存储在多个存储器管芯中的过程中,该存储器***对存储该条数据用以进行交错操作的物理位置没有限制,从而有效地利用存储器***中的多个存储器管芯,使得可提高存储器***的操作稳定性和寿命。
此外,本公开实施例可提供一种设备和方法,用于基于存储器***的配置和/或关联操作的特性来动态地确定是继续还是停止对多个请求的关联操作,该关联操作影响在存储器***中执行的诸如读取或写入数据的操作,从而可减少在存储器***中执行的操作的开销。
此外,本公开实施例可提供一种包括地址分配方案的存储器***,该地址分配方案减少用于关联操作的资源,并且支持对存储器***中的多个存储器管芯的交错操作,从而提高存储器***的操作效率。
在实施例中,存储器***可包括多个存储器管芯,以及经由多个通道与多个存储器管芯联接的控制器,控制器被配置成对从外部装置输入的多个读取请求之中的至少一些读取请求执行关联操作,使得多个存储器管芯以交错方式经由多个通道输出与多个读取请求相对应的多条数据。控制器可被配置成基于多个读取请求的数量来确定何时执行关联操作。
控制器可被配置成当被输出到外部装置之前存储在输出缓冲器中的数据的条数大于阈值时执行关联操作。
输出缓冲器可包括能够根据所存储的数据的输入序列来输出所存储的数据的队列。控制器可被配置成基于外部装置和存储器***之间的第一数据输入/输出速度以及控制器和多个存储器管芯之间的第二数据输入/输出速度来确定阈值。
控制器可被配置成当多个读取请求的数量小于多个存储器管芯的数量时跳过关联操作。
控制器可被配置成跳过对多个读取请求之中的第一读取请求至第(n-1)读取请求的关联操作,并对多个读取请求之中的第n读取请求至最后的读取请求执行关联操作。此处,“n”可以是多个通道的数量。
控制器可被配置成当剩余读取请求的数量小于多个存储器管芯的数量时,中断或停止对尚未经关联的剩余读取请求的关联操作。
控制器可被配置成分配多个存储器管芯中的用于对每条数据进行编程的物理位置,而不考虑与该条数据相关的逻辑地址。控制器可被配置成基于映射数据来执行关联操作。
控制器可被配置成基于多个管芯的数量和与每条数据相关的逻辑地址来分配多个存储器管芯中的物理位置。控制器可被配置成基于对应于多个读取请求的逻辑地址来执行关联操作。
存储器***可进一步包括用于存储映射数据的存储器、用于存储多个读取请求的输入缓冲器和用于存储输出到外部装置的多条数据的输出缓冲器。
控制器可包括:缓冲器控制电路,被配置成监视输入缓冲器和输出缓冲器的状态以确定是否执行关联操作;关联电路,被配置成基于接收的多个读取请求的数量继续、停止或跳过对多个读取请求的关联操作,并在多个读取请求之中早于未经关联的读取请求而传送经关联的读取请求;以及操作控制电路,被配置成根据多个读取请求的传送序列对多个读取请求执行地址转换,并经由多个通道将多个读取请求传送至多个存储器管芯。
控制器可被配置成存储关联操作的关联率,并确定用作基于关联率、多个通道的数量和多个存储器管芯的数量来确定是否继续、停止或跳过关联的参考的至少一个阈值。
在另一实施例中,一种用于操作存储器***的方法可包括:接收从外部装置输入的多个读取请求,基于接收的多个读取请求的数量确定何时对多个读取请求执行关联操作,基于确定结果对多个读取请求之中的一些读取请求执行关联操作,对经关联的读取请求执行地址转换以经由多个通道将经关联的读取请求传送至多个存储器管芯,经由多个通道以交错方式从多个存储器管芯接收与经关联的读取请求相对应的数据,并将该数据输出到外部装置。
该方法可进一步包括:对未经关联的读取请求执行地址转换,以经由多个通道将未经关联的读取请求传送至多个存储器管芯,以及从多个存储器管芯接收与未经关联的读取请求相对应的其它数据,以将其它数据输出到外部装置。
确定何时执行关联操作可包括:确定在输出到外部装置之前存储在输出缓冲器中的数据的条数何时大于阈值。可基于外部装置和存储器***之间的第一数据输入/输出速度以及控制器和多个存储器管芯之间的第二数据输入/输出速度来确定阈值。
执行关联操作可包括:当接收的多个读取请求的数量小于多个存储器管芯的数量时跳过关联操作。
执行关联操作可包括:跳过对多个读取请求之中的第一读取请求至第(n-1)读取请求的关联操作,以及对多个读取请求之中的第n读取请求至最后的读取请求执行关联操作。此处,“n”是多个通道的数量。
执行关联操作可进一步包括:当剩余读取请求的数量小于多个存储器管芯的数量时,中断或停止对尚未经关联的剩余读取请求的关联操作。
该方法可进一步包括:分配多个存储器管芯中用于对每条数据进行编程的物理位置,而不考虑与该条数据相关的逻辑地址。可基于映射数据来执行关联操作。
该方法可进一步包括:基于多个管芯的数量和与每条数据相关的逻辑地址,分配多个存储器管芯中的物理位置。可基于对应于多个读取请求的逻辑地址来执行关联操作。
执行关联操作可包括:基于多个读取请求的数量来继续、停止或跳过对多个读取请求的关联操作,在多个读取请求之中早于未经关联的读取请求而传送经关联的读取请求,以及存储关联操作的关联率,以确定用作用于基于关联率、多个通道的数量和多个存储器管芯的数量来确定是否继续、停止或跳过关联的参考的至少一个阈值。
在另一实施例中,一种存储器***可包括多个存储器管芯,以及经由多个通道与多个存储器管芯联接的控制器。控制器可被配置成接收来自主机的多个读取请求,将从多个读取请求之中选择的至少一对读取请求进行关联。对应于这一对的两个存储器管芯可经由不同通道联接到控制器。控制器可进一步被配置成将该一对读取请求传输到相应的两个存储器管芯,并向主机提供与来自相应的两个存储器管芯的该一对读取请求相对应的数据。可基于相关率、多个通道的数量、多个存储器管芯的数量和接收的多个读取请求的数量来执行关联。
下面参照附图详细描述本公开的实施例,其中相同的附图标记表示相同的元件。
图1示出根据本发明实施例的存储器***110。例如,在嵌入有存储器***110的计算装置或移动装置中,主机(例如,图2的主机102)可与存储器***110接合用以进行数据输入和输出(I/O)操作。主机是与存储器***110可操作地接合的一种外部装置。
参照图1,存储器***110可包括控制器130和存储器装置150。控制器130可输出由主机请求并从存储器装置150传递的数据,或者将从主机102输入的数据存储在存储器装置150中。存储器装置150可包括多个非易失性存储器单元,每个非易失性存储器单元能够存储数据。此处,存储器装置150的内部结构和/或配置可根据存储器装置150的适用规范或期望性能而变化,而存储器装置150的适用规范或期望性能又可基于存储器***110的(多个)用途或主机102的(多个)需求。
控制器130和存储器装置150可通过多个数据路径联接。例如,存储器装置150可包括多个存储器管芯240A、240B、240C、240D,多个存储器管芯240A、240B、240C、240D可通过不同的数据路径与控制器130联接。第一存储器管芯240A和控制器130通过第一通道(CH1)和第一通路(W1)CH1W1联接,第二存储器管芯240B和控制器130通过第一通道(CH1)和第二通路(W2)CH1W2联接。第一存储器管芯240A和第二存储器管芯240B可共享第一通道CH1,但是第一存储器管芯240A和第二存储器管芯240B可独立地使用不同的通路W1、W2。此外,第三存储器管芯240C和控制器130通过第二通道(CH2)和第一通路(W1)CH2W1联接,第四存储器管芯240D和控制器130经由第二通道(CH2)和第二通路(W2)CH2W2联接。构成控制器130和存储器装置150之间的数据路径的通道和/或通路的数量可根据存储器装置150中的存储器管芯的数量而不同。根据存储器***110的(多个)用途或主机102的(多个)需求,将存储器管芯240A、240B、240C、240D联接到控制器130的通道和通路的数量可不同。
多个存储器管芯240A至240D可被配置成不同的模块,并且经由不同的数据路径独立地与控制器130联接。当多个数据路径用于数据交换时,多个存储器管芯240A至240D和控制器130可使用经由多个数据路径的交错方案来交换数据以提高数据传送速度,从而增强存储器装置150和控制器130之间的数据传送速度。
对于交错方案,待存储的数据应该分布在若干个模块上,而不是单个模块中。在运行交错方案时,存储器***可使用将多条新数据分布在存储器装置150的多个模块上并存储于其中的地址限制结构或地址方案。例如,当对四条数据进行编程时,传统的存储器***将四条数据单独存储在四个存储器管芯中。此处,数据条数可以是指可通过执行单次编程操作或单次写入操作来一起被存储的数据单位的数量。例如,当以页面为单位执行编程操作(或写入操作)时,四条数据可包括编程在四个页面中的数据量。
为了提高编程操作和读取操作的操作效率且增强分布式存储,存储器***可采用地址限制结构。在地址限制结构中,当在四个存储器管芯中编程四条数据时,分配每个存储器管芯中的相同的物理位置。例如,当在四个存储器管芯中存储四条数据时,四条数据中的每一条单独地存储在四个存储器管芯中相应的一个的第五物理位置中。此后,当编程八条数据时,八条数据可存储在每个存储器管芯的第六物理位置和第七物理位置中。此处,物理位置可指示存储器管芯中的块或页面。
当在具有地址限制结构的存储器***中的四个存储器管芯中存储五条数据时,可将两条数据存储在同一存储器管芯的第一物理位置和第二物理位置中,并且可将三条数据分别单独地存储在其它三个存储器管芯的第一物理位置中。在具有地址限制结构的存储器***中,由于与下一个编程请求一起输入的一条数据不能接着写入其它三个存储器管芯的第二物理位置中,因此在剩余三个存储器管芯的第二物理位置中单独地写入三条虚设数据。
当存储器***具有用于交错操作的地址限制结构时,因为每当执行奇数条数据的编程操作时,可能需要对多条虚设数据进行编程,所以操作效率可能会降低。此外,由于每个存储器管芯并不总是(在健康、损耗等方面)具有相同的操作状态,因此存储器***可能必须独立地执行附加操作以补偿每个存储器管芯状况,这可能会增加开销。
存储器***110可采用完全同步交错结构,该结构能够在不用地址限制结构的情况下支持控制器130和存储器装置150之间的交错操作。完全同步交错结构不具有用于在存储器装置150中的多个存储器管芯240A至240D的每一个中的同一位置存储数据的地址限制。控制器130可根据每个存储器管芯的操作条件和操作状态来分布待被编程的多条数据。在这样做的时候,该多条数据不需要均匀地分布到每个存储器管芯。例如,如果四个存储器管芯240A至240D中的一个(例如,存储器管芯240A)由于内部操作而不能立即编程数据条,则控制器130可将多条数据传送到三个其它存储器管芯(例如,240B、240C、240D)。控制器130可将多条数据分布在多个存储器管芯240A至240D上,以提高数据传输的效率并减少编程操作的操作裕量,但是不适用诸如地址限制结构之类的严格规则。此外,与具有地址限制结构的存储器***不同,在存储器***110中不必编程虚设数据。
在控制器130将数据条传送到存储器装置150并且在存储器装置150中对该数据条进行编程之后,控制器130可生成或更新映射信息,该映射信息将逻辑地址与对应于该数据的物理位置(即物理地址)进行关联。此外,控制器130可将更新后的映射信息存储在存储器装置150中。
因为存储器***110不采用如上所述的地址限制结构,所以可能难以保证在读取和输出由主机(或外部装置)请求的多条数据的过程中的控制器130和存储器装置150之间的数据传输以交错方式(即通过交错方案)执行。因此,控制器130可包括关联(correlation)电路194,用于对主机请求所的多个读取操作进行关联,使得可以以交错方式来传输通过多个读取操作从存储器装置150输出的多条数据。
在图1中,控制器130可包括关联电路194、操作控制电路196和缓冲器控制电路198。如本公开所使用的,术语“电路”可指以下任意一个和全部:(a)仅硬件电路实施方案(诸如仅在模拟和/或数字电路中的实施方案)和(b)电路和软件(和/或固件)的组合,诸如(如适用于):(i)(多个)处理器的组合或(ii)(多个)处理器/软件的部分(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的(多个)数字信号处理器、软件以及(多个)存储器),以及(c)需要软件或固件来操作的诸如(多个)微处理器或(多个)微处理器的一部分的电路,即使该软件或固件在物理上不存在。“电路”的该定义适用于包括任意权利要求的本申请中的该术语的所有使用。作为另一示例,如在本申请中所使用的,术语“电路”还将涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)附带的软件和/或固件的实施方案。例如,如果适用于特定的权利要求的元件,术语“电路”还将涵盖用于存储装置的集成电路。
缓冲器控制电路198可控制输入缓冲器和输出缓冲器(例如,图6的输入缓冲器184和输出缓冲器186)。输入缓冲器被配置成临时存储从主机输入的命令或数据条。输出缓冲器被配置成在将与从主机输入的命令相对应的数据条传输到主机之前临时存储该数据条。例如,当主机向存储器***110发送用于读取与20个逻辑地址相对应的多条数据的读取请求(或读取命令)时,控制器130从存储器装置150接收与20个逻辑地址相对应的多条数据,将多条数据临时存储在输出缓冲器中,并将多条数据输出到主机。缓冲器控制电路198可在输出到主机之前监视或识别在输出缓冲器中临时存储了多少条数据。
操作控制电路196可检查存储器装置150中对应于逻辑地址的物理位置,并读取存储在该物理位置中的数据条。响应于来自输入缓冲器的读取请求(或读取命令)和逻辑地址,操作控制电路196可基于映射信息将逻辑地址转换为物理地址,并向存储器装置150请求由物理地址指示的非易失性存储器单元中存储的数据条。物理地址可指示存储器装置150中的多个存储器管芯240A至240D中的特定物理位置。当操作控制电路196根据由缓冲器控制电路198传递的多个读取请求的顺序或序列来处置多个读取请求时,对应于多个读取请求的物理地址可随机分布在多个存储器管芯240A至240D上。例如,三个连续的物理地址可指示同一存储器管芯中的不同位置,或者四个连续的物理地址可指示不同存储器管芯中的不同位置。在这种情况下,控制器130和多个存储器管芯240A至240D之间的数据传输有时可以以交错方式执行,但通常是在控制器130和多个存储器管芯240A至240D之间随机地交换数据,而不是以交错方式。
当缓冲器控制电路198确定在输出缓冲器中存在待输出到主机的数据条时,可将来自主机的多个读取请求(或多个读取命令)和多个逻辑地址传输到关联电路194。关联电路194可检查关于与来自缓冲器控制电路198的多个读取请求相对应的多个逻辑地址的映射信息,以将多个读取请求进行关联,使得操作控制电路196可以以交错方式,即根据交错方案,执行与多个读取请求相对应的多个读取操作,例如,在控制器130和多个存储器管芯240A至240D之间以交错方式传送多条数据。此处,由关联电路194执行的关联操作可支持控制器130和多个存储器管芯240A至240D之间的并行处理和分布式计算。在单个数据路径被多个组件共享的情况下,多个组件可在单个数据路径中交错其信号或其数据。进一步地,在由单个组件使用多个数据路径的状况下,单个组件可在多个数据路径上分布多个信号或多个数据。关联操作可使多个读取请求中的一些读取请求能够通过多个通道并行地传递到多个存储器管芯中,使得与多个读取请求相对应的多条数据经由多个通道从多个存储器管芯并行地输出。针对多个读取请求的关联操作可包括:可将向存储器管芯240A至240D请求的多条数据以交错方式从存储器装置150传送到控制器130。
当主机发送针对存储器***110中存储的20条数据的请求时,控制器130可接收从主机输入的针对20条数据的20个读取请求。缓冲器控制电路198可向关联电路194传输针对20条数据的20个读取请求。关联电路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的存储器(或缓冲器)中的映射信息。
因为关联操作可能导致延迟,所以关于多个读取请求的关联操作可能对存储器***110的诸如I/O吞吐量的数据输入/输出性能产生不利影响。因此,关联电路194可不对来自主机的所有读取请求执行关联操作。例如,缓冲器控制电路198可检查输出缓冲器中待输出到主机的数据条,以确定当关联电路194对多个读取请求执行关联操作时存储器***110的数据输入/输出性能是否不会下降。在确定关联操作对I/O吞吐量没有或几乎没有影响的情况下,关联电路194可针对多个读取请求执行关联操作。
此外,关联电路194可不关联来自缓冲器控制电路198的所有多个读取请求。当通过考虑与多个读取请求相对应的数据条的物理位置可期望交错操作时,关联电路194可执行关联操作。但是,在这些读取请求被关联电路194关联之后接收的其它读取请求可不被关联地传送到操作控制电路196。
响应于操作环境,控制器130可将来自主机的多个读取请求中的至少一些读取请求关联起来,以便在存储器装置150和控制器130之间以交错方式传送多条数据。此外,存储器***110不必采用地址限制结构来在存储器***110内以交错方式交换信号或数据。可基于存储器装置150中的多个存储器管芯240A至240D的操作环境和操作状态来分布和存储多条数据。控制器130可尝试关联用于读取存储在多个存储器管芯240A至240D中的多条数据的读取请求。因为存储器***110不必使用地址限制结构,所以可更有效地操作多个存储器管芯240A至240D,并且可提高多个存储器管芯240A至240D的寿命。另一方面,由于多个存储器管芯240A至240D与控制器130之间的数据传送可以以交错方式执行,因此存储器***110可避免其数据输入/输出性能(例如,I/O吞吐量)的劣化。
图2示出根据本公开实施例的包括存储器***的数据处理***100。参照图2,数据处理***100可包括与存储器***110接合或可操作地联接的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的多种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102还包括至少一个操作***(OS),OS通常可管理和控制在主机102中执行的功能和操作。OS可提供与存储器***110接合的主机102和存储器***110的用户之间的互操作性。OS可支持与用户请求相对应的功能和操作。作为示例但不限于此,根据主机102的移动性,OS可包括通用操作***和移动操作***。根据***需求或用户环境,通用操作***可分为个人操作***和企业操作***。包括Windows和Chrome的个人操作***可用于支持针对一般目的的服务。企业操作***可专门用于确保和支持高性能,包括Windows Server、Linux和Unix。进一步地,移动操作***可包括Android、iOS和Windows mobile。移动操作***可用于支持针对移动性的服务或功能(例如,省电功能)。主机102可包括多个操作***。对应于用户的请求,主机102可与存储器***110协同运行多个操作***。主机102可将与用户的请求相对应的多个命令传输到存储器***110中,从而在存储器***110内执行与命令相对应的操作。下面参照图3和图4描述在存储器***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)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或配置计算***的各种组件中的一种。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可以保留所存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将其中所存储的数据提供给主机102。存储器装置150可包括多个存储块152、154、156,每个存储块可包括多个页面。多个页面中的每一个可包括电联接到多个字线(WL)的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156之中的存储块。此外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可响应于来自主机102的请求而控制存储器装置150。控制器130可向主机102提供从存储器装置150读取的数据。控制器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)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的组件,其可通过被称为主机接口层(HIL)的固件来实施。
ECC电路138可校正待在存储器装置150中进行处理(例如,从存储器装置150输出)的数据的错误位,该ECC电路138可包括ECC编码器和ECC解码器。此处,ECC编码器可对待在存储器装置150中编程的数据执行错误校正编码,以生成添加了奇偶校验位的经编码的数据,并将经编码的数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可确定错误校正解码是否已成功并输出指令信号(例如,校正成功信号或校正失败信号)。ECC电路138可使用在ECC编码处理期间生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC电路138可基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归***码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC电路138可包括用于基于上述代码中的至少一种来执行错误校正操作的任意和所有电路、模块、***或装置。
PMU 140可管理在控制器130中提供的电力。例如,PMU 140可检测存储器***110的通电和断电。此外,PMU 140可包括电力检测器。
存储器接口142可用作处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在存储器装置150是闪速存储器,特别是当存储器装置150是NAND闪速存储器的情况下,存储器接口142在处理器134的控制下可生成对存储器装置150的控制信号,并且可处理输入到存储器装置150或从存储器装置150输出的数据。存储器接口142可提供接口,以用于处置控制器130和存储器装置150之间的命令和数据,例如NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可通过被称为闪存接口层(FIL)的固件来实施为与存储器装置150交换数据的组件。
存储器144可支持由存储器***110和控制器130执行的操作。存储器144可存储为存储器***110和控制器130中的操作而生成或传递的临时数据或事务数据。控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据传递到主机102中。控制器130可将通过主机102输入的数据存储在存储器装置150内。存储器144可用于存储用于控制器130和存储器装置150执行诸如读取操作或编程/写入操作之类的操作所需的数据。
存储器144可利用易失性存储器来实施。存储器144可利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或这两者来实施。尽管图2例示了布置在控制器130内的存储器144,但本发明不限于该布置。即,存储器144可在控制器130内部或外部。例如,存储器144可通过具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实现。
如上所述,存储器144可存储用于执行诸如以下的操作的数据:由主机102请求的数据写入和数据读取;和/或如上所述的存储器装置150和控制器130之间用于诸如垃圾收集和损耗均衡的后台操作的数据传送。根据实施例,为了支持存储器***110中的操作,存储器144可包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
处理器134可用微处理器或中央处理单元(CPU)来实施。存储器***110可包括一个或多个处理器134。处理器134可控制存储器***110的全部操作。作为示例但不限于此,处理器134可响应于从主机102输入的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可使用或运行固件来控制存储器***110的全部操作。此处,固件可以是闪存转换层(FTL)。FTL可用作主机102和存储器装置150之间的接口。主机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中的至少一个,例如映射清除操作。在多个存储块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。
尽管图3中没有示出,但是根据实施例,图2中的ECC电路138可包括在闪存转换层电路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的命令和数据的特性,缓冲器管理器52被配置成确定缓冲器管理器52是否应将命令和数据存储在存储器144中,或者缓冲器管理器52是否应将命令和数据传递到闪存转换层电路40中。事件队列54接收从缓冲器管理器52输入的事件,这些事件将由存储器***110或控制器130响应于来自主机102的命令和数据在内部运行和处理,以便按照接收的顺序将事件传递到闪存转换层电路40中。
根据实施例,图3中的主机接口132可执行图1和图2中的控制器130的功能。
根据实施例,闪存转换层电路40可包括状态管理器(GC/WL)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器(BM/BBM)48。主机请求管理器46可管理从事件队列54输入的事件。映射管理器44可处置或控制映射数据。状态管理器42可执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可对存储器装置150中的块运行命令或指令。
作为示例但不限于此,根据从主机接口132传递的读取命令和编程命令以及事件,主机请求管理器46可使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可向映射管理器44发送查询请求,以确定对应于随事件输入的逻辑地址的物理地址。主机请求管理器46可将读取请求与物理地址一起发送至存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器46可向块管理器48发送编程请求(或写入请求),以将输入的数据编程到存储器装置150中的空页面(即,没有数据的页面),然后,可向映射管理器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可管理逻辑到物理映射表。映射管理器44可处理由主机请求管理器46或状态管理器42生成的诸如查询和更新的请求。映射管理器44可将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存未命中时,映射管理器44可向存储器接口142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某一阈值时,可向块管理器48发送编程请求,以生成干净的高速缓存块,并且脏映射表可被存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器46可对页面的相同逻辑地址编程最新版本的数据,并且即时发出更新请求。当状态管理器42在未完成(多个)有效页面的复制的状态下请求映射更新时,映射管理器44可不执行映射表更新。这是因为,如果状态管理器42请求映射更新,并且直到稍后才完成有效页面复制,则会使用旧的物理信息发出映射请求。映射管理器44可仅当最新的映射表仍然指向旧的物理地址时才执行映射更新操作以确保准确性。
根据实施例,闪存转换层电路40可包括图1所示的关联电路194,并且存储器接口142可包括图1所示的操作控制电路196和缓冲器控制电路198。在另一实施例中,存储器接口142包括图1所示的关联电路194、操作控制电路196和缓冲器控制电路198。
存储器装置150可包括多个存储块。根据可在这种块的一个存储器单元中存储或表示的位的数量,多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据I/O操作性能和高耐久性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块针对相同空间可具有更大的存储容量。在存储容量方面,MLC存储块可高度集成。在实施例中,存储器装置150可用MLC存储块来实施,诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及它们的组合。双层单元存储块可包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开实施例中,存储器装置150由诸如闪速存储器的非易失性存储器来实现,诸如NAND闪速存储器、NOR闪速存储器等。在另一实施例中,存储器装置150可由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋注入磁存储器(例如,自旋转移力矩磁性随机存取存储器(STT-MRAM))中的至少一种来实施。
图4示出根据本发明实施例的存储器***中的存储器装置150。更具体地,图4示出存储器装置150的内部配置。
参照图4,存储器装置150可包括多个存储器管芯240A、240B、240C、240D。第一存储器管芯240A和第二存储器管芯240B可通过第一通道CH1联接到控制器130。第三存储器管芯240C和第四存储器管芯240D可通过第二通道CH2连接到控制器130。
在图4中,描述了四个存储器管芯240A、240B、240C、240D通过两个通道CH1、CH2联接到控制器130的配置。然而,本发明不应限于此或管芯和通道的任意特定配置。即使存储器装置150可包括至少两个管芯和至少两个通道,但给定配置中的管芯和通道的数量取决于各种因素,诸如存储器***的总体配置,使用存储器***的目的和定义存储器***与所接合的主机之间的通信的规范。
当多个存储器管芯连接到单个通道时,每个存储器管芯可通过不同的通路与通道联接。在图4中,第一存储器管芯240A和第二存储器管芯240B可分别通过第一通路W1和第二通路W2与第一通道CH1联接。第三存储器管芯240C和第四存储器管芯240D可分别通过第一通路W1和第二通路W2与第二通道CH2联接。在这个特定的配置中,通路的数量与存储器管芯的数量相同。
图5A和图5B示出由控制器130执行的关联操作的特性。具体地,图5A和图5B中的两个图表可示出在未指定和随机的情况下通过重复执行关联操作而获得的结果。
参照图5A,当图1的控制器130中的关联电路194尝试对数量增加的读取请求执行关联操作时,随着读取请求的增加,关联这些读取请求的概率增加。例如,20个读取请求的关联概率大于5个读取请求的关联概率。
当存储器***中没有地址限制时,存储器装置150中与随一些读取请求一起传递的逻辑地址相对应的物理位置可能不会分散。在这种情况下,由关联电路194关联的读取请求的数量可能较少。然而,当大量读取请求被传输到存储器***110时,读取请求被关联的概率更高。例如,与当读取请求的数量是第一参考值REF1时相比,当读取请求的数量是第二参考值REF2时的关联概率可能更高,第一参考值REF1小于第二参考值REF2。
参照图5B,描述了当多个读取请求被顺序地传输到关联电路194时,根据读取请求的输入时间(或输入序列)的关联概率。如参照图4所描述的,在控制器130和存储器装置150之间有两个通道。例如,发送到关联电路194的第一读取请求可不被关联,因为没有其它准备好被关联的读取请求。当第二读取请求被传递到关联电路194时,第二读取请求可与或可不与第一读取请求关联;该概率为50:50。当第三读取请求被传递到关联电路194时,如果第一读取请求和第二读取请求未被关联,则关联电路194可尝试关联第三读取请求与第一读取请求和第二读取请求。因此,在传递第三读取请求时的关联概率可能高于传递第二读取请求时的关联概率。基于这些特性,关联电路194可区分在接收到特定读取请求之前和之后的状态。例如,在接收到读取请求(对应于第三参考值REF3)之后,关联电路194可确定关联的概率足够高,并且尝试对先前接收的读取请求和对应于第三参考值REF3的读取请求执行关联操作。相反,在接收到对应于第三参考值REF3的读取请求之前,关联电路194可确定关联概率太低,因此跳过对所接收的读取请求执行关联操作。
在另一示例中,传递20个读取请求。当输入第19和第20读取请求时,关联概率可以低于当输入第9至第11读取请求时的关联概率。这是因为,当输入第19和第20读取请求时,先前输入的读取请求,即第1至第18读取请求,可能已经被关联并输出到操作控制电路196。随着经关联的读取请求在一定时间过去后被传送,关联概率可能降低。在关联概率变得更低之后,如果没有传递新的读取请求,则关联概率不太可能再次增加。为了使关联电路194避免浪费资源(例如,时间、操作裕量或电力)来执行关联操作,可在传输对应于第四参考值REF4的读取请求时停止或中断关联操作。
在实施例中,关联电路194可响应于未经关联的读取请求的数量而停止关联操作。例如,如果在20个读取请求之中保留少量未经关联的读取请求,例如2个或3个,则关联电路194可将未经关联的读取请求输出到操作控制电路196,而不将其保持用以进行下一关联操作。当关联电路194保持少许读取请求用于执行下一关联操作时,存储器***110的数据输入/输出性能(例如,I/O吞吐量)可能劣化。
图6示出根据本发明实施例的控制器130的内部配置。
参照图6,控制器130可包括关联电路194、操作控制电路196和缓冲器控制电路198。例如,缓冲器控制电路198、关联电路194和操作控制电路196可与输出缓冲器186、输入缓冲器184和映射存储器182可操作地接合,以继续或停止关联操作。
控制器130可包括输出缓冲器186、输入缓冲器184和映射存储器182。根据实施例,输出缓冲器186、输入缓冲器184和映射存储器182可以是可由参照图2至图3所述的存储器144来实施的功能模块。输出缓冲器186、输入缓冲器184和映射存储器182可用单个易失性存储器装置或多个单独的易失性存储器装置来实施。在实施例中,输出缓冲器186、输入缓冲器184和映射存储器182可用多个高速缓存存储器来实施。
例如,输出缓冲器186和输入缓冲器184中的每一个可具有诸如队列的数据结构。在这种情况下,输出缓冲器186和输入缓冲器184可根据数据的存储顺序(例如,先进先出,FIFO)来输出数据条。映射存储器182可根据映射数据、存储结构和关于映射信息的管理规则而具有各种结构。
控制器130可将逻辑地址,即从主机102输入的地址,转换为指示存储器装置150中的物理位置的物理地址。控制器130可加载存储器装置150中存储的用于执行地址转换的映射数据和映射信息。
根据实施例,当被包括在控制器130中或与控制器130可操作地接合的存储器144中的存储空间足够时,用于地址转换的所有映射数据或所有映射信息可被加载一次。然而,在存储器***110安装在便携式终端中的情况下,控制器130可能难以具有足够的存储空间来存储所有映射数据或所有映射信息。在这种情况下,控制器130可从存储器装置150检索特定映射数据,即一些映射数据,使用或更新经检索的映射数据,将经更新的映射数据存储在存储器装置150中,并且检索存储在存储器装置150中的其它映射数据。根据实施例,存储器144中的预分配空间可用于存储映射数据或映射信息。
在示例中,如果请求的映射数据不能存储在存储器144的区域中,则控制器130可基于LRU替换方案来移除该区域中最近最少使用的(LRU)映射数据。在另一示例中,当请求的映射数据不能存储在存储器144的区域中时,则控制器130可基于LFU替换方案移除该区域中最不常用的(LFU)映射数据。控制器130从存储器装置150请求用于执行地址转换的映射数据或映射信息,这会产生开销,使得存储器***110的总体性能或I/O吞吐量可能降低。因此,希望避免不必要地替换映射数据和映射信息。
例如,当存在用于关联的20个读取请求时,控制器130可基于与20个读取请求相关的逻辑地址来检查映射存储器182。当在映射存储器182中找到与11个读取请求相关的映射地址或映射数据,并且在映射存储器182中没有找到与9个读取请求相关的映射数据或映射地址时,控制器130可将与9个读取请求相关的映射数据或映射地址从存储器装置150加载到映射存储器182中。根据实施例,当映射存储器182的存储空间不足时,关联电路194可首先针对映射地址或映射数据已经加载到映射存储器182中的11个读取请求执行关联操作。
考虑到存储器***110的数据输入/输出性能(例如,I/O吞吐量),可将由关联电路194执行的关联操作视为开销。因此,当操作控制电路196处于空闲状态时,可取的是,关联电路194不对所有读取请求执行关联操作。在没有关联操作的情况下,关联电路194将至少一个读取请求传送到操作控制电路196,使得操作控制电路196可从空闲状态转换到操作状态。基于参照图5A和图5B描述的关联操作的特性,关联电路194可确定是继续还是停止关联操作。例如,当读取请求的数量小于第一参考值REF1时,关联电路194可不对读取请求执行关联操作。此外,传输到关联电路194的第一读取请求可在不进行关联操作的情况下被传送到操作控制电路196。进一步地,当关联电路194中剩余的读取请求的数量小于设置阈值时,关联电路194可停止或中断关联操作。
图7示出根据本公开实施例的控制器130的关联操作方法。根据实施例,关联操作可由控制器130中的关联电路194执行。
参照图7,执行关联操作的方法可包括:当读取请求的数量大于第一设置值时确定是否关联读取请求(S30);在不进行关联操作的情况下传送至少一个接收顺序低于第二设置值的读取请求(S32);关联读取请求以生成经关联的读取请求(S34);以及当未经关联的读取请求的数量小于第三设置值时跳过对读取请求的关联操作(S36)。
在一些实施例中,可基于存储器***110中的存储器管芯和通道的数量来确定第一设置值、第二设置值和第三设置值。此外,可基于以图5A和图5B的图表描述的关联操作的特性来确定第一设置值、第二设置值和第三设置值。例如,第一设置值可以是第一参考值REF1,第二设置值可以是第三参考值REF3,第三设置值可以是第四参考值REF4。此外,可基于关联操作的成功率来调整第一设置值、第二设置值和第三设置值,可累积地监视和跟踪关联操作的成功率。这些设置值可被视为阈值。
如图5A和图5B所示,即使在接收到用于关联操作的多个读取请求时,当读取请求的数量小时,关联概率也可能低。例如,当存储器***110中的通道的数量为2并且对三个读取请求执行关联操作时,两个读取请求可被关联,但一个读取请求可未被关联。此外,当对所有三个读取请求进行不成功的关联尝试时,由于尝试的关联操作所消耗的时间,存储器***110的数据输入/输出性能可能降低。为了解决这个问题,根据实施例,用于执行关联操作的处理可包括响应于为关联操作传输的读取请求的数量而确定是否尝试关联操作(S30)。可基于通道的数量来确定第一设置值。
此外,即使传送的读取请求的数量大于第一设置值并且控制器130确定执行关联操作,当图1和图6的操作控制电路196处于空闲状态时,存储器***110的数据输入/输出性能也可能降低。因此,即使传输了多个读取请求,具有低于第二设置值的传输顺序号的读取请求也可在不进行关联操作的情况下被传送到操作控制电路196(S32)。例如,可对20个读取请求执行关联操作。如果操作控制电路196处于空闲状态,则关联电路194可将20个读取请求之中的第一读取请求或第二读取请求在不执行关联操作的情况下传送到操作控制电路196中。即,关联电路194不尝试关联第一读取请求或第二读取请求。根据实施例,第二设置值可小于或等于存储器***110中的通道的数量。
控制器130可针对经传送的读取请求执行关联操作(S34)。例如,关联电路194接收20个读取请求,并且在不执行关联操作的情况下将第一读取请求和第二读取请求传送到操作控制电路196。当关联电路194对剩余的18个读取请求执行关联操作时,操作控制电路196可对第一读取请求或第二读取请求执行地址转换,并将第一读取请求和第二读取请求传送到存储器装置150中的多个存储器管芯之中的一个或两个存储器管芯。当操作控制电路196处置第一读取请求和第二读取请求时,关联电路194可具有用于对剩余18个读取请求中的至少一些读取请求执行关联操作的操作裕量。
当未经关联的读取请求的数量小于第三设置值时,控制器130可不执行关联操作(S36)。换言之,在这种情况下,控制器130可跳过关联操作。例如,在对18个读取请求执行关联操作的过程中,仍有三个读取请求未被关联。当关联电路194保持三个未经关联的读取请求以与稍后输入的另一读取请求进行关联时,操作控制电路196可处于空闲状态。在这种情况下,存储器***110的数据输入/输出性能可能降低。当未经关联的读取请求的数量小于第三设置值时,关联电路194可停止对剩余的未经关联的读取请求的关联操作。根据实施例,第三设置值可大于存储器***110中的通道的数量和/或小于或等于存储器管芯的数量。
控制器130可存储由关联操作产生的关联率(例如,经关联的读取请求与总共传送的读取请求的比率)。例如,可通过将经关联的读取请求的数量除以为关联而传递的读取请求的数量来获得关联率。控制器130可计算关联率并将关联率存储在图2中的存储器144中。如图5A所示,可基于为关联操作而传输的读取请求的数量来估计关联率。根据实施例,基于用于关联操作的读取请求的数量,当关联率达到设置值时,控制器130可停止关联操作。在这种情况下,即使控制器130可执行关联操作以传递经关联的读取请求,但由关联操作造成的开销可能影响存储器***110的数据输入/输出性能。
图8示出根据实施例的控制器130执行关联操作的方法的示例。在实施例中,关联操作可由控制器130中的关联电路194执行。
关联操作可包括对多个读取请求进行关联以使得数据以交错方式通过多个通道从联接到各个通道的存储器管芯输出的操作。例如,关联操作可包括:在多个读取请求之中,将与可能进行交错操作的物理位置相关的读取请求关联的操作。可能进行交错操作的物理位置可包括通过不同通道并行地向该物理位置传输数据/从该物理位置接收数据的物理位置。
参照图8,存储器***的操作方法可包括:基于为关联操作而传送的读取请求的数量来确定是否执行关联操作(步骤S40);确定多个通道之中的空闲通道(步骤S50);将与空闲通道相关联的内部读取请求通过空闲通道传送到相应存储器管芯(步骤S55);对多个读取请求执行关联操作(步骤S60);对经关联的读取请求执行地址转换,并且将经关联的读取请求通过多个通道传送至多个存储器管芯(步骤S80);通过多个通道以交错方式从多个存储器管芯接收经关联的读取请求的数据(步骤S90);以及将接收的数据(即,读取数据)输出到主机或将接收的数据临时存储在内部存储器中(步骤S95)。
在一些实施例中,存储器***的操作方法可进一步包括:对未经关联的读取请求顺序地执行地址转换并将未经关联的读取请求传送至多个存储器管芯,以及从多个存储器管芯接收与未经关联的读取请求相对应的数据。例如,存储器***110可不根据读取请求被输入的顺序来运行读取请求,而是根据读取请求是否被关联来确定运行读取请求的顺序。存储器***110可首先运行经关联的读取请求,然后运行未经关联的读取请求。
可参考为关联操作而传送的读取请求的数量、输出缓冲器186的操作状态等,来执行基于为关联操作而传送的读取请求的数量对是否执行关联操作的确定(步骤S40)。为了在不降低存储器***110的I/O吞吐量的范围内执行关联操作,可在执行关联操作之前确保关联操作的操作裕量。
在一些实施例中,存储器***的操作方法可进一步包括:确定待输出到主机并且剩余在输出缓冲器186中的数据量(或数据单位或数据条的数量)是否大于参考值。此时,可根据主机和存储器***110之间的第一数据I/O速度以及控制器130和多个存储器管芯之间的第二数据I/O速度来确定参考值。例如,当存储器***向主机输出一个数据需要10ms时,如果输出缓冲器186存储10条待输出到主机的数据,则存储器***可具有100ms(=10x10)的操作裕量。例如,当在存储器***110内的控制器130和存储器装置150之间传送读取请求和接收数据需要5ms时,控制器130可在100ms的操作裕量中最多有95ms来尝试关联。
控制器130可知道内部操作的操作速度和内部操作所需的时间,并且基于与存储器***110互通的主机的协议来计算操作裕量。通过该操作,控制器130可计算和估计用于尝试关联的操作裕量。例如,控制器130可计算用于关联的操作裕量的最大值,然后在与最大值的70%至90%相对应的时间内执行关联。在实施例中,可改变控制器130可尝试关联的时间范围。进一步地,控制器130可根据存储器***110的操作环境和存储器装置150的操作状态来确定控制器130可尝试关联的操作裕量。
在一些实施例中,多个读取请求可包括用于内部读取操作的内部读取请求和从主机102接收的外部读取请求。对于该操作,控制器130可确定待输出到主机102并且剩余在输出缓冲器186中的数据量是否大于设置值。可根据主机102和存储器***110之间的第一数据I/O速度以及控制器130和多个存储器管芯之间的第二数据I/O速度来确定设置值。
内部操作可包括与从诸如主机的外部装置接收的请求或查询无关地由存储器***110独立地执行的操作。对存储器装置150的内部操作可包括将存储在随机存储块中的数据复制到另一随机存储块中并处理所复制的数据的操作(例如,垃圾收集)、在存储块之间交换存储在存储块中的数据的操作(例如,损耗均衡)、将存储在控制器130中的映射数据存储到存储块中的操作(例如,映射清除)或管理存储器装置150的坏块的后台操作。内部读取操作可包括读取待执行垃圾收集或损耗均衡的存储块中存储的数据的操作。进一步地,内部读取操作可包括读取存储在随机存储块中的映射数据以执行映射更新操作的操作。控制器130可为内部读取操作生成内部读取请求,并且在将内部读取请求输出到存储器装置150之前,将内部读取请求临时存储在通道缓冲器中。
确定多个通道之中的空闲通道(步骤S50)可包括检查存储在通道缓冲器中的读取请求的数量。通道缓冲器可临时存储待通过多个通道输出到多个存储器管芯的读取请求。当存储在通道缓冲器中的读取请求的数量小于目标值时,控制器130可将相应通道确定为空闲通道。控制器130可对在与空闲通道相关的内部读取请求之中被首先传送的内部读取请求不执行关联操作,而是通过空闲通道将该内部读取请求输出到相应的存储器管芯(步骤S55)。在步骤S60中,控制器130可根据传送多个读取请求的顺序来执行关联操作。控制器130可在未经关联的读取请求之前输出经关联的读取请求,从而提高存储器***110的I/O吞吐量。
为了避免存储器***110的I/O吞吐量降低,控制器130可不对多个读取请求中的一些读取请求尝试关联操作。例如,当用于执行地址转换的模块处于空闲状态时,控制器130可不尝试关联第一读取请求或第二读取请求。
当与各个读取请求中的逻辑地址相关的映射数据没有存储在高速缓存存储器或易失性存储器内的区域中时,操作方法可包括从多个存储器管芯请求相应的映射数据。当高速缓存存储器或易失性存储器没有足够的空间来存储映射数据时,控制器130可加载必要的映射数据,并将不必要的映射数据编程到存储器装置150。例如,当所请求的映射数据不能存储在区域中时,控制器130可从该区域中移除最近最少使用的映射数据。在实施例中,当所请求的映射数据不能存储在区域中时,控制器130可从该区域中移除最不常用的映射数据。
控制器130可关联联接到不同通道的读取请求。进一步地,控制器130可按照通道的数量来关联多个读取请求。例如,当通道的数量为5时,控制器130可对与不同通道相关的五个读取请求执行关联操作。
为了避免存储器***110的I/O吞吐量降低,控制器130可不尝试关联多个读取请求中的一些读取请求。此时,当待被关联的读取请求的数量小于多个存储器管芯的数量时,控制器130可在不进行关联操作的情况下输出读取请求。进一步地,即使在关联操作期间尚未关联的读取请求的数量小于多个存储器管芯的数量时,控制器130也可停止关联操作。即,控制器130可基于为关联操作而传送的读取请求的数量来确定对多个读取请求是执行还是跳过关联操作。
在步骤S80中,控制器130可根据由关联操作改变的运行序列来对读取请求执行地址转换。控制器130可使用加载在映射存储器182中的映射数据,将与经关联的读取请求一起传送的逻辑地址转换成存储数据的物理位置,并将相应的读取请求输出到存储器装置150。此时,控制器130可在未经关联的读取请求之前将经关联的读取请求输出到存储器管芯。
当从存储器管芯接收的数据是与外部读取请求相关的数据时(步骤S90),在步骤S95中,控制器130可将接收的数据输出到主机102。因此,控制器130可将接收的数据临时存储在输出缓冲器186中,并且输出缓冲器186可根据存储数据的顺序将数据输出到主机102(步骤S95)。进一步地,当在步骤S90中从存储器管芯接收的数据是与内部读取请求相关的数据时,控制器130可将接收的数据临时存储在内部存储器144中,并且将存储的数据再次存储在存储器管芯中(步骤S95)。
图9是用于描述控制器130对多个读取请求的第一操作的示图。具体地,第一操作可由图6中的关联电路194执行。
图9的操作基于可存储在关联电路194中的为关联操作而传送的多个读取请求RD_REQ1至RD_REQ10。
在本实施例中,读取请求可包括外部读取请求EX_RD_REQ和内部读取请求IN_RD_REQ。从主机102接收外部读取请求EX_RD_REQ以便请求存储器***110将存储在存储器管芯中的数据输出到主机102。由控制器130生成用于存储器***110的内部读取操作的内部读取请求IN_RD_REQ。
如图9所示,可根据传送读取请求的顺序将存储在关联电路194中的多个读取请求EX_RD_REQ1至EX_RD_REQ3、IN_RD_REQ4、EX_RD_REQ5至EX_RD_REQ8、IN_RD_REQ9和IN_RD_REQ10进行排序。进一步地,在10个读取请求EX_RD_REQ1至EX_RD_REQ3、IN_RD_REQ4、EX_RD_REQ5至EX_RD_REQ8、IN_RD_REQ9和IN_RD_REQ10被关联之前,关于逻辑地址的一些映射数据被加载到映射存储器182中。当用于转换与10个读取请求EX_RD_REQ1至EX_RD_REQ3、IN_RD_REQ4、EX_RD_REQ5至EX_RD_REQ8、IN_RD_REQ9和IN_RD_REQ10一起被传送的逻辑地址LBA的映射数据未加载到映射存储器182中时,控制器130可从存储器装置150接收必要的映射数据,并将接收的映射数据存储在映射存储器182中。在实施例中,映射数据可包括与外部读取请求EX_RD_REQ相关的存储器管芯信息。在实施例中,映射数据可进一步包括与内部读取请求IN_RD_REQ相关的存储器管芯信息。
根据预定义的协议,读取请求RD_REQ1至RD_REQ10具有相同的代码、相同的结构等。然而,在图9中,为了便于描述,根据1至10的顺序来表示读取请求。
关联电路194可通过参考存储在映射存储器182中的映射数据来检查存储器装置150的物理地址,该物理地址对应于从主机与外部读取请求EX_RD_REQ一起被传送的逻辑地址LBA。物理地址可包括存储器装置150中的存储器管芯的地址或联接到存储器管芯的通道的地址。关联电路194可检查存储器装置150的对应于内部读取请求IN_RD_REQ的物理地址。
如参照图9所描述的,当使用映射数据检查存储器装置150内与读取请求RD_REQ1至RD_REQ10相对应的存储器管芯或通道时,关联电路194可识别将通过其输出各个读取请求的通道。然而,为了防止操作控制电路196如参照图7所描述的处于空闲状态,关联电路194可不检查首先接收的特定数量的读取请求(例如,第一次接收的读取请求)将被输出到哪个通道。
图10是用于描述控制器130响应于多个读取请求的第二操作的示图。在实施例中,可由关联电路194执行第二操作。
在一些实施例中,关联电路194可不尝试关联第一读取请求EX_RD_REQ1,而是将第一读取请求EX_RD_REQ1输出到操作控制电路196。关联电路194可对从第二读取请求EX_RD_REQ2至最后读取请求IN_RD_REQ10的其它读取请求执行关联操作。基于与从第二读取请求EX_RD_REQ2至最后读取请求IN_RD_REQ10的读取请求一起传送的逻辑地址LBA,关联电路194可检查数据被存储在哪个存储器管芯以及要通过哪些通道输出数据。然后,关联电路194可顺序地关联读取请求。
然而,在图10中,将以由于操作控制电路196以及通道CH1和CH2繁忙而对从第一读取请求EX_RD_REQ1至最后读取请求IN_RD_REQ10的读取请求执行关联操作的情况作为描述的示例。在图10示出的示例中,可关联第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2,并且可关联第三外部读取请求EX_RD_REQ3和第四内部读取请求IN_RD_REQ4。进一步地,可关联第五外部读取请求EX_RD_REQ5和第八外部读取请求EX_RD_REQ8,可关联第六外部读取请求EX_RD_REQ6和第九内部读取请求IN_RD_REQ9,并且可关联第七外部读取请求EX_RD_REQ7和第十内部读取请求IN_RD_REQ10。
图11示出由图10中的控制器130执行的关联操作的结果。参照图11,从关联电路194输出到操作控制电路196的经关联的读取请求RD_REQ可根据读取请求RD_REQ被传送到关联电路194的顺序和操作控制电路196运行读取请求RD_REQ的顺序来排序。例如,由于第八外部读取请求EX_RD_REQ8在第六外部读取请求EX_RD_REQ6之后由关联电路194接收,因此需要在第六外部读取请求EX_RD_REQ6之后运行第八外部读取请求EX_RD_REQ8。然而,由于第八外部读取请求EX_RD_REQ8在第六外部读取请求EX_RD_REQ6之前与第五外部读取请求EX_RD_REQ5关联,所以第八外部读取请求EX_RD_REQ8可与第五外部读取请求EX_RD_REQ5一起被运行。
然后,关联电路194可通过不同通道同时输出经关联的读取请求。在图11示出的示例中,与第二外部读取请求EX_RD_REQ2关联的第一外部读取请求EX_RD_REQ1可被输出到联接到第一通道CH1的第一通道缓冲器142A,并且与第一外部读取请求EX_RD_REQ1关联的第二外部读取请求EX_RD_REQ2可被输出到联接到第二通道CH2的第二通道缓冲器142B。此时,相互关联的第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2可被同时输出到第一通道CH1和第二通道CH2。
然后,控制器130可通过第一通道CH1和第二通道CH2以交错方式从存储器管芯DIE2和DIE3接收与第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2相关的数据。
如上所述,控制器130可响应于存储器***110中的通道的数量将传送到存储器***110的多个读取请求关联起来,然后运行读取请求。尽管没有使用用于交错存储器***110中存储的数据的位置的地址限制结构,但是控制器130可将输入到存储器***110的多个读取请求进行关联,然后根据设置的顺序运行读取请求。因此,可在存储器装置150和控制器130之间以交错方式传输和接收数据。
尽管传送到存储器***110的多个读取请求中的一些读取请求被关联,但是存储器***110的I/O吞吐量可比多个读取请求都没有被交错时提高更多。为了防止通过关联操作降低存储器***110的I/O吞吐量,当待输出到主机102的数据存储在图5的输出缓冲器186中时,可对读取请求执行关联操作。例如,当在输出缓冲器186中没有存储数据的情况下接收到30个读取请求时,存储器装置150可控制操作控制电路196根据输入读取请求的顺序在30个读取请求之中运行三个读取请求,而不进行关联操作。
当在关联操作之后留下三个读取请求时,在尝试关联27个读取请求的过程中,关联电路194可停止尝试关联在关联操作之后留下的三个读取请求。当关联电路194使用不必要的资源来尝试关联少量的读取请求时,存储器***110的I/O吞吐量可能降低。
如上所述,控制器130可根据存储器***110的操作环境来确定是否尝试关联多个读取请求。例如,控制器130可根据输出缓冲器186的状态来确定是否尝试将在其它读取请求之前输入的多个读取请求的一些读取请求关联起来。进一步地,当待被关联的读取请求被连续地传送时,控制器130可连续地尝试关联读取请求。然而,当不再从主机传送读取请求时,控制器130可根据读取请求被输入的顺序来处理未经关联但仍保留的读取请求,而不是尝试关联读取请求,从而防止存储器***110的I/O性能降低。
存储器***110不能先前确定多个读取请求将被关联的可能性。例如,控制器130的关联操作的关联概率可随着输入读取请求的数量的增加而升高,但是随着输入读取请求的数量的减少而降低。由于数据可在不受地址限制的情况下分布并存储在存储器装置150中,所以控制器130可关联多个接收的读取请求的概率可不时地改变。控制器130的关联操作可应用于对存储器***110请求的随机读取操作和顺序读取操作这两者。
图12示出图6所示的操作控制电路196中的第一通道缓冲器142A和第二通道缓冲器142B的示例。参照图12,第一通道缓冲器142A和第二通道缓冲器142B可存储待输出到第一至第四存储器管芯DIE1至DIE4的多个读取请求RD_REQa、RD_REQb和RD_REQc。
存储在第一通道缓冲器142A中的读取请求可通过第一通道CH1输出到第一存储器DIE1或第二存储器DIE2。例如,第一通道缓冲器142A可存储读取请求RD_REQc,并且存储的读取请求RD_REQc可被输出到第一通道CH1。因此,第一通道CH1可被设置为繁忙状态BUSY或维持在繁忙状态BUSY。存储在第二通道缓冲器142B中的读取请求可通过第二通道CH2输出到第三存储器管芯DIE3或第四存储器管芯DIE4。例如,第二通道缓冲器142B可存储读取请求RD_REQa和RD_REQb,并且存储的读取请求RD_REQa和RD_REQb可被输出到第二通道CH2。因此,第二通道CH2可被设置为繁忙状态BUSY或维持在繁忙状态BUSY。
然而,第一通道缓冲器142A可仅存储一个待输出到第一通道CH1的读取请求RD_REQc。在一个读取请求RD_REQc被输出到第一通道CH1之后,第一通道CH1可被设置为空闲状态IDLE。通道的空闲状态IDLE可作为降低数据I/O吞吐量的因素。
根据第二实施例的存储器***110可通过图13至图15所示的数据I/O控制方法来提高数据I/O吞吐量。此后,描述根据第二实施例的存储器***110的操作方法。图13至图15的描述集中在技术上区别于图9至图11的组件。图13至图15可包括参照图9至图12描述的所有技术内容。
当进入关联模式时,在对存储在关联电路194中的多个读取请求RD_REQ执行关联操作(即,第二操作)之前,关联电路194可检查是否接收到由控制器130生成的空闲信息IDLE#。即,在执行关联操作之前,控制器130可基于存储在第一通道缓冲器142A和第二通道缓冲器142B中的读取请求RD_REQ的数量来确定是否生成空闲信息IDLE#。
空闲信息IDLE#可包括关于空闲通道的标识信息。控制器130可将与存储少于设置的目标值的读取请求的通道缓冲器联接的通道识别为空闲通道。例如,当目标值被设置为“2”时,控制器130可将联接到第一通道缓冲器142A的第一通道CH1识别为空闲通道,第一通道缓冲器142A中存储少于两个的读取请求RD_REQc(参照图12)。
在图13示出的示例中,根据指示第一通道CH1空闲或即将空闲的空闲信息IDLE#_CH1,关联电路194可搜索与第一通道CH1相关且已被首先输入到关联电路194的内部读取请求IN_RD_REQ。因此,可搜索到第四内部读取请求IN_RD_REQ4。
关联电路194可不尝试关联所搜索的第四内部读取请求IN_RD_REQ4,而是将所搜索的第四内部读取请求IN_RD_REQ4输出到操作控制电路196,使得所搜索的第四内部读取请求IN_RD_REQ4能够快速地输出到第一通道CH1。
关联电路194可从待执行关联操作的目标中将已经输出到操作控制电路196的第四内部读取请求IN_RD_REQ4排除。关联电路194可基于输入顺序将存储在关联电路194中的其它9个读取请求RD_REQ进行关联。关联电路194可将经关联的读取请求输出到操作控制电路196。
在第一至第九读取请求被输出到操作控制电路196之后,在关联电路194中可只留下第十读取请求IN_RD_REQ10,并且待与第十内部读取请求IN_RD_REQ10关联的另一读取请求RD_REQ可未输入到关联电路194。在这种情况下,关联电路194可退出关联模式,并且将存储在关联电路194中的第十内部读取请求IN_RD_REQ10输出到操作控制电路196,而不尝试关联第十内部读取请求IN_RD_REQ10。
当出现由关联操作关联的读取请求和未经关联的读取请求时,关联电路194可在未经关联的读取请求之前将经关联的读取请求输出到操作控制电路196。
尽管未示出,但是在第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2被关联并被输出到操作控制电路196之后,可输入关于第二通道CH2的空闲信息IDLE#_CH2。在这种情况下,关联电路194可搜索与第二通道CH2相关并且已经被最早输入的第九内部读取请求IN_RD_REQ9。关联电路194可不尝试关联所搜索的第九内部读取请求IN_RD_REQ9,而是将所搜索的第九内部读取请求IN_RD_REQ9输出到操作控制电路196,使得所搜索的第九内部读取请求IN_RD_REQ9可被快速输出到处于空闲状态的第二通道CH2。
关联电路194可尝试关联除已经被关联并输出到操作控制电路196的第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2以及未被关联但输出到操作控制电路196的第九内部读取请求IN_RD_REQ9以外的七个读取请求RD_REQ。在这种情况下,关联操作的性能结果可不同于图13所示的结果。
图14是用于描述对多个读取请求的控制器130的读取请求操作的示图。图14示出根据操作控制电路196的运行序列对从关联电路194输出到操作控制电路196的多个读取请求RD_REQ进行排序。参考已排序的读取请求RD_REQ的运行序列,即使第四内部读取请求IN_RD_REQ4第四个被输入到关联电路194,关联电路194也可将第四内部读取请求IN_RD_REQ4首先输出到操作控制电路196。
因此,如图15所示,操作控制电路196可首先将第四内部读取请求IN_RD_REQ4存储在第一通道缓冲器142A中,并且首先将第四内部读取请求IN_RD_REQ4输出到第一通道CH1。因此,第一通道CH1可从空闲状态IDLE切换到繁忙状态BUSY或者继续维持繁忙状态。即,存储器***110可防止通道的空闲状态,从而提高数据I/O吞吐量。
当从关联电路194接收到经关联的第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2时,操作控制电路196将第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2分别存储在第一通道缓冲器142A和第二通道缓冲器142B中。在已存储在操作控制电路196中的读取请求RD_REQa、RD_REQb和RD_REQc以及第四内部读取请求IN_RD_REQ4被输出到第一通道CH1和第二通道CH2之后,操作控制电路196可将经关联的第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2基本上同时输出到第一通道CH1和第二通道CH2。例如,操作控制电路196可响应于同一时钟,将第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2输出到第一通道CH1和第二通道CH2。
控制器130可通过第一通道CH1和第二通道CH2以交错方式接收对应于经关联的第一外部读取请求EX_RD_REQ1和第二外部读取请求EX_RD_REQ2的数据。控制器130可将通过第一通道CH1和第二通道CH2以交错方式接收的数据输出到主机。此时,控制器130可将接收的数据临时存储在输出缓冲器186中,并且输出缓冲器186可根据存储数据的顺序将数据输出到主机。
虽然已经出于说明性目的描述了各个实施例,但是对本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (27)
1.一种存储器***,包括:
多个存储器管芯,存储数据;以及
控制器,经由多个通道与所述多个存储器管芯联接,对来自主机的多个读取请求之中的一些读取请求执行关联操作,使得所述多个存储器管芯经由所述多个通道以交错方式输出与所述多个读取请求相对应的多条数据,
其中所述控制器基于所述多个读取请求的数量来确定是否执行所述关联操作,并且
其中所述多个读取请求包括用于所述控制器的内部操作的读取请求和从所述主机接收的读取请求。
2.根据权利要求1所述的存储器***,其中所述控制器确定所述多个通道之中的空闲通道,并对除与所述空闲通道相关的、用于所述内部操作的读取请求之外的剩余读取请求执行所述关联操作。
3.根据权利要求2所述的存储器***,其中所述控制器将与所述空闲通道相关且未被执行所述关联操作的、用于所述内部操作的读取请求通过所述空闲通道传送到所述多个存储器管芯。
4.根据权利要求3所述的存储器***,其中所述控制器基于用于所述关联操作的读取请求的接收顺序,确定与所述空闲通道相关的、用于所述内部操作的读取请求的传送顺序。
5.根据权利要求4所述的存储器***,其中所述控制器将具有最早的接收顺序的读取请求的传送优先级设置为最高优先级。
6.根据权利要求1所述的存储器***,进一步包括:多个通道缓冲器,临时存储待传送到所述多个通道的所述多个读取请求,并且与各个通道相对应,
其中所述控制器将与所述多个通道缓冲器之中存储少于设置值的多个读取请求的通道缓冲器相对应的通道确定为空闲通道。
7.根据权利要求6所述的存储器***,其中响应于所述多个读取请求,将对应于所述多个读取请求的数据从所述多个存储器管芯输出到所述多个通道。
8.根据权利要求7所述的存储器***,其中所述控制器向所述主机输出在与所述多个读取请求相对应的数据之中与从所述主机接收的读取请求相对应的数据。
9.根据权利要求8所述的存储器***,进一步包括:输出缓冲器,临时存储待输出到所述主机的数据,
其中所述控制器:当所述输出缓冲器中存储的待输出到所述主机的数据的条数大于设置值时,执行所述关联操作。
10.根据权利要求9所述的存储器***,其中所述输出缓冲器包括能够根据所存储的数据的输入序列输出所存储的数据的队列,并且
所述控制器基于所述主机和所述存储器***之间的第一数据输入/输出速度以及所述控制器和所述多个存储器管芯之间的第二数据输入/输出速度来确定所述设置值。
11.根据权利要求1所述的存储器***,其中所述控制器:当为所述关联操作而传送的所述多个读取请求的数量大于所述多个通道的数量时,执行所述关联操作。
12.根据权利要求1所述的存储器***,其中所述控制器:当尚未经关联的剩余读取请求的数量小于所述多个存储器管芯的数量时,停止对所述剩余读取请求的所述关联操作。
13.根据权利要求12所述的存储器***,其中所述控制器:基于为所述关联操作而传送的所述多个读取请求的数量,确定对所述多个读取请求是执行还是跳过关联操作,并且早于未经关联的读取请求而传送经关联的读取请求。
14.根据权利要求1所述的存储器***,其中所述控制器执行所述关联操作以按照所述多个通道的数量来关联所述多个读取请求。
15.一种存储器***的操作方法,包括:
基于多个读取请求的数量来确定是否执行关联操作;
基于确定结果对所述多个读取请求执行所述关联操作;
将经关联的读取请求传送到联接到多个存储器管芯的多个通道;以及
经由所述多个通道以交错方式从所述多个存储器管芯接收与所述经关联的读取请求相对应的数据,
其中所述多个读取请求包括用于所述存储器***的内部操作的读取请求和从主机接收的读取请求。
16.根据权利要求15所述的操作方法,其中对所述多个读取请求执行所述关联操作包括:
确定所述多个通道之中的空闲通道;并且
对除与所述空闲通道相关的用于所述内部操作的读取请求之外的剩余读取请求执行所述关联操作。
17.根据权利要求16所述的操作方法,进一步包括:将与所述空闲通道相关且未被执行所述关联操作的、用于所述内部操作的读取请求通过所述空闲通道传送至所述多个存储器管芯。
18.根据权利要求17所述的操作方法,其中用于所述内部操作的读取请求的传送包括:
基于用于所述关联操作的读取请求的接收顺序,确定与所述空闲通道相关的用于所述内部操作的读取请求的传送顺序。
19.根据权利要求18所述的操作方法,其中所述传送顺序的确定包括:
将具有最早的接收顺序的读取请求的传送优先级设置为最高优先级。
20.根据权利要求16所述的操作方法,其中所述空闲通道的确定包括:
临时存储待传送到所述多个通道的读取请求,并且检查分别与所述多个通道相对应的多个通道缓冲器中存储的读取请求的数量;以及
将与所述多个通道缓冲器之中存储少于设置值的多个读取请求的通道缓冲器相对应的通道确定为空闲通道。
21.根据权利要求15所述的操作方法,进一步包括:
向所述主机输出在与所述多个读取请求相对应的数据之中与从所述主机接收的读取请求相对应的数据。
22.根据权利要求15所述的操作方法,其中确定是否执行关联操作包括:
当输出缓冲器中存储的待输出到所述主机的数据的条数大于设置值时,执行所述关联操作,
其中基于所述主机和所述存储器***之间的第一数据输入/输出速度以及控制器和所述多个存储器管芯之间的第二数据输入/输出速度来确定所述设置值。
23.根据权利要求15所述的操作方法,其中确定是否执行关联操作包括:
当尚未经关联的剩余读取请求的数量小于所述多个存储器管芯的数量时,停止对所述剩余读取请求的所述关联操作。
24.根据权利要求23所述的操作方法,其中所述关联操作的执行包括:
基于为所述关联操作而传送的所述多个读取请求的数量,确定对所述多个读取请求是执行还是跳过关联操作。
25.根据权利要求24所述的操作方法,其中所述关联操作的执行包括:
早于未经关联的读取请求而传送经关联的读取请求。
26.根据权利要求15所述的操作方法,其中所述关联操作的执行包括:
执行所述关联操作以按照所述多个通道的数量来关联所述多个读取请求。
27.一种存储器***,包括:
多个存储器管芯;
控制器;以及
多个通道,联接在所述控制器和所述多个存储器管芯之间,
其中所述控制器适用于:
确定所述多个通道之中的空闲通道;
通过所述空闲通道将内部读取请求传送至所述多个存储器管芯之中的选择的存储器管芯;
对从主机接收的多个读取请求执行关联操作,以生成经关联的读取请求;以及
通过所述多个通道之中的至少一个剩余通道,将所述经关联的读取请求传送至所述多个存储器管芯之中的一些存储器管芯。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190176645A KR20210083888A (ko) | 2019-12-27 | 2019-12-27 | 입출력 성능이 향상된 메모리 시스템 및 그의 동작 방법 |
KR10-2019-0176645 | 2019-12-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113050881A true CN113050881A (zh) | 2021-06-29 |
Family
ID=76507846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010859262.9A Withdrawn CN113050881A (zh) | 2019-12-27 | 2020-08-24 | 提高存储器***输入/输出吞吐量的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11429282B2 (zh) |
KR (1) | KR20210083888A (zh) |
CN (1) | CN113050881A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113056790B (zh) * | 2021-01-27 | 2023-11-10 | 长江存储科技有限责任公司 | 用于异步多面独立(ampi)存储读取操作的方法和*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239589B1 (en) | 2010-03-31 | 2012-08-07 | Amazon Technologies, Inc. | Balancing latency and throughput for shared resources |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US8918595B2 (en) * | 2011-04-28 | 2014-12-23 | Seagate Technology Llc | Enforcing system intentions during memory scheduling |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
US9785545B2 (en) | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
US10761772B2 (en) * | 2014-12-19 | 2020-09-01 | Toshiba Memory Corporation | Memory system including a plurality of chips and a selectively-connecting bus |
-
2019
- 2019-12-27 KR KR1020190176645A patent/KR20210083888A/ko active Search and Examination
-
2020
- 2020-07-02 US US16/920,062 patent/US11429282B2/en active Active
- 2020-08-24 CN CN202010859262.9A patent/CN113050881A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210200443A1 (en) | 2021-07-01 |
KR20210083888A (ko) | 2021-07-07 |
US11429282B2 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290704B (zh) | 用于控制储存在存储***中的数据的装置和方法 | |
US11487678B2 (en) | Apparatus and method for improving input/output throughput of a memory system | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
CN110825659B (zh) | 用于检查存储器***中的块中的有效数据的设备和方法 | |
US20210157514A1 (en) | Apparatus and method for improving write throughput of memory system | |
CN113900586A (zh) | 存储器***及其操作方法 | |
CN111752474A (zh) | 控制存储器***的写入操作的设备和方法 | |
CN110806837A (zh) | 数据处理***及其操作方法 | |
CN112835811A (zh) | 存储器***及其操作方法 | |
CN112558860A (zh) | 分布和读取数据的存储器***及其操作方法 | |
CN113360083A (zh) | 用于在存储器***中控制映射数据的装置和方法 | |
US11327659B2 (en) | Apparatus and method for improving input/output throughput of memory system | |
US11822426B2 (en) | Memory system, data processing system and operation method of the same | |
CN111435334B (zh) | 在存储器***中检查有效数据的设备和方法 | |
CN113495852A (zh) | 控制存储器***中的映射数据的设备和方法 | |
US11360898B2 (en) | Apparatus and method for improving input/output throughput of memory system | |
CN113448503A (zh) | 调整顺序命令的操作时间差的存储器***及其操作方法 | |
CN112667146A (zh) | 有效管理存储块的存储器***及其操作方法 | |
US11429282B2 (en) | Apparatus and method for improving Input/Output throughput of memory system | |
US11567667B2 (en) | Apparatus and method for improving input/output throughput of memory system | |
CN111857565A (zh) | 存储器***、数据处理***及其操作方法 | |
CN112433668A (zh) | 预测内部操作是否可执行的存储器***和数据处理*** | |
CN111857818A (zh) | 存储器***和通过该存储器***执行命令操作的方法 | |
US11500720B2 (en) | Apparatus and method for controlling input/output throughput of a memory system | |
US11379378B2 (en) | Apparatus and method for improving input and output throughput of memory system |
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: 20210629 |
|
WW01 | Invention patent application withdrawn after publication |