CN112148632A - 用于改善存储器系统的输入/输出吞吐量的设备和方法 - Google Patents
用于改善存储器系统的输入/输出吞吐量的设备和方法 Download PDFInfo
- Publication number
- CN112148632A CN112148632A CN201911296695.1A CN201911296695A CN112148632A CN 112148632 A CN112148632 A CN 112148632A CN 201911296695 A CN201911296695 A CN 201911296695A CN 112148632 A CN112148632 A CN 112148632A
- Authority
- CN
- China
- Prior art keywords
- memory
- read requests
- data
- controller
- association
- 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
- 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
- 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
- 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/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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/1668—Details of memory controller
-
- 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
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年6月26日提交的申请号为10-2019-0076125的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,更特别地,涉及一种在存储器系统中通过对存储器管芯的交织操作来改善数据输入/输出性能的方法和设备。
背景技术
近来,计算机环境范例已经转变成能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用增加。这种便携式电子装置通常使用或者包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
在计算装置中,与硬盘不同,用作非易失性半导体存储器装置的数据存储装置的优点在于,由于不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。这种数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统以及操作进程或方法,可以通过减少存储器系统的操作复杂度和性能下降来快速且可靠地对存储器装置进行数据处理,从而提高存储器装置的利用效率。
另外,本公开的实施例可以提供一种用于通过交织方式向存储器系统中的多个存储器管芯输入多个数据段以及从存储器系统中的多个存储器管芯输出多个数据段以提高存储器系统的数据输入/输出性能(例如,I/O吞吐量)的方法和设备。
进一步地,本公开的实施例可以提供一种存储器系统,该存储器系统在将数据段存储在多个存储器管芯中的进程中,对用于交织操作的待存储数据段的物理位置没有限制,从而有效地利用存储器系统中的多个存储器管芯,使得可以提高存储器系统的操作稳定性和寿命。
另外,本公开的实施例可以提供一种用于基于影响存储器系统中执行的诸如读取或写入数据的操作的存储器系统的配置和/或关联操作的特性来动态地确定对多个请求是进行还是停止关联操作的设备和方法,从而可以减少存储器系统中执行的操作的开销。
另外,本公开的实施例可以提供一种包括地址分配方案的存储器系统,该地址分配方案减少用于关联操作的资源并且支持对存储器系统中的多个存储器管芯的交织操作,从而提高存储器系统的操作效率。
在实施例中,一种存储器系统可以包括:多个存储器管芯;以及控制器,通过多个通道与多个存储器管芯联接,并且被配置为对从外部装置输入的多个读取请求中的至少一些读取请求执行关联操作,使得多个存储器管芯以交织方式通过多个通道输出与多个读取请求对应的多个数据段。控制器可以被配置为基于多个读取请求的数量来确定何时执行关联操作。
控制器可以被配置为当输出到外部装置之前存储在输出缓冲器中的数据段的数量大于阈值时执行关联操作。
输出缓冲器可以包括能够根据所存储的数据的输入序列输出所存储的数据的队列。控制器可以被配置为基于外部装置与存储器系统之间的第一数据输入/输出速度以及控制器与多个存储器管芯之间的第二数据输入/输出速度来确定阈值。
控制器可以被配置为当多个读取请求的数量小于多个存储器管芯的数量时跳过关联操作。
控制器可以被配置为跳过对多个读取请求中的第一读取请求至第n-1读取请求的关联操作,并且对多个读取请求中的第n读取请求至最后读取请求执行关联操作。在本文中,“n”可以是多个通道的数量。
控制器可以被配置为当尚未被关联的剩余读取请求的数量小于多个存储器管芯的数量时,停止或中止对剩余读取请求的关联操作。
控制器可以被配置为不考虑与数据段相关联的逻辑地址,分配多个存储器管芯中的物理位置以对每个数据段进行编程。控制器可以被配置为基于映射数据执行关联操作。
控制器可以被配置为基于多个存储器管芯的数量以及与每个数据段相关联的逻辑地址来分配多个存储器管芯中的物理位置。控制器可以被配置为基于与多个读取请求对应的逻辑地址来执行关联操作。
存储器系统可以进一步包括:存储器,用于存储映射数据;输入缓冲器,用于存储多个读取请求;以及输出缓冲器,用于存储输出到外部装置的多个数据段。
控制器可以包括:缓冲器控制电路,被配置为监控输入缓冲器和输出缓冲器的状态以确定是否执行关联操作;关联电路,被配置为基于接收的多个读取请求的数量,进行、停止或跳过对多个读取请求的关联操作,并且在多个读取请求中,比未关联的读取请求更早地传送关联的读取请求;以及操作控制电路,被配置为根据多个读取请求的传送序列对多个读取请求执行地址转换,并且通过多个通道将多个读取请求传送到多个存储器管芯。
控制器可以被配置为存储关联操作的关联率,并且基于关联率、多个通道的数量以及多个存储器管芯的数量,确定用作用于确定是进行、停止还是跳过关联操作的参考的至少一个阈值。
在另一实施例中,一种操作存储器系统的方法可以包括:接收从外部装置输入的多个读取请求;基于接收的多个读取请求的数量,确定何时对多个读取请求执行关联操作;基于确定结果,对多个读取请求中的一些读取请求执行关联操作;执行对关联的读取请求的地址转换,以通过多个通道将关联的读取请求传送到多个存储器管芯;以交织方式通过多个通道从多个存储器管芯接收与关联的读取请求对应的数据;以及将数据输出到外部装置。
该方法可以进一步包括:执行对未关联的读取请求的地址转换,以通过多个通道将未关联的读取请求传送到多个存储器管芯;以及从多个存储器管芯接收与未关联的读取请求对应的其它数据,以将其它数据输出到外部装置。
确定何时执行关联操作可以包括:确定输出到外部装置之前存储在输出缓冲器中的数据段的数量何时大于阈值。可以基于外部装置与存储器系统之间的第一数据输入/输出速度以及控制器与多个存储器管芯之间的第二数据输入/输出速度来确定阈值。
执行关联操作可以包括:当接收的多个读取请求的数量小于多个存储器管芯的数量时,跳过关联操作。
执行关联操作可以包括:跳过对多个读取请求中的第一读取请求至第n-1读取请求的关联操作;以及对多个读取请求中的第n读取请求至最后读取请求执行关联操作。在本文中,“n”是多个通道的数量。
执行关联操作可以进一步包括:当尚未被关联的剩余读取请求的数量小于多个存储器管芯的数量时,停止或中止对剩余读取请求的关联操作。
该方法可以进一步包括:不考虑与数据段相关联的逻辑地址,分配多个存储器管芯中的物理位置以对每个数据段进行编程。可以基于映射数据执行关联操作。
该方法可以进一步包括:基于多个存储器管芯的数量以及与每个数据段相关联的逻辑地址来分配多个存储器管芯中的物理位置。可以基于与多个读取请求对应的逻辑地址来执行关联操作。
执行关联操作可以包括:基于多个读取请求的数量,进行、停止或跳过对多个读取请求的关联操作;在多个读取请求中,比未关联的读取请求更早地传送关联的读取请求;以及存储关联操作的关联率,以基于关联率、多个通道的数量以及多个存储器管芯的数量来确定用作用于确定是进行、停止还是跳过关联操作的参考的至少一个阈值。
在另一实施例中,一种存储器系统可以包括:多个存储器管芯;以及控制器,通过多个通道与多个存储器管芯联接。控制器可以被配置为从主机接收多个读取请求,关联从多个读取请求中选择的至少一对读取请求。与该对读取请求对应的两个存储器管芯可以通过不同的通道联接到控制器。该控制器可以进一步被配置为将该对读取请求传送到对应的两个存储器管芯,并且向主机提供来自对应的两个存储器管芯的与该对读取请求对应的数据。可以基于关联率、多个通道的数量、多个存储器管芯的数量以及接收的多个读取请求的数量来执行关联。
附图说明
本文的描述参照附图,其中在若干视图中相同的附图标记始终表示相同的部件,并且其中:
图1示出了根据本公开的实施例的存储器系统;
图2示出了根据本公开的实施例的包括存储器系统的数据处理系统;
图3示出了根据本公开的实施例的存储器系统中的控制器;
图4示出了根据本发明的实施例的存储器系统中的存储器装置;
图5A和图5B示出了根据本发明的实施例的控制器执行的关联操作的特性;
图6示出了根据本发明的实施例的控制器;
图7示出了根据本公开的实施例的控制器中关联多个读取请求的进程;
图8示出了根据本公开的实施例的存储器系统中控制操作的第一方法;
图9示出了根据本公开的实施例的存储器系统中控制操作的第二方法;
图10示出了根据本公开的实施例的控制器执行的关联进程的结果;
图11示出了根据本公开的实施例的操作存储器系统的第一方法;
图12示出了根据本公开的实施例的地址分配方案;
图13示出了根据本公开的实施例的基于地址分配方案的关联操作;
图14示出了根据本公开的实施例的控制器中关联多个读取请求的进程;
图15示出了根据本公开的实施例的关联进程的结果;以及
图16示出了根据本公开的实施例的操作存储器系统的方法。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。然而,可以以不同的方式实现本发明的方面和特征以形成包括任何公开的实施例的变型的其它实施例。因此,本发明将不被解释为限于本文所阐述的实施例。相反,所描述的实施例被提供使得本公开是彻底且完整的,并且将向本发明所属领域的普通技术人员完全传达本公开。在整个公开中,相同的附图标记在整个本公开的各个附图和示例中表示相同的部件。注意的是,对“实施例”,“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可以在本文使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,在一种情况下的第一元件可以在另一种情况下被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能被夸大。当元件被称为连接或联接到另一元件时,应理解的是,前者可以直接连接或联接到后者,或者通过两者之间的一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文使用的,除非上下文另外清楚地说明,否则单数形式也旨在包括复数形式,反之亦然。类似地,不定冠词“一”和“一个”表示一个或多个,除非从语言或上下文中清楚指示仅一个。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,说明所陈述元件的存在而并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。
除非另有定义,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中的普通技术人员基于本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可以在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的普通技术人员将显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可以单独使用或与另一实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出了根据本公开的实施例的存储器系统110。例如,在嵌入有存储器系统110的计算装置或移动装置中,主机(例如,图2的主机102)可以与存储器系统110接合以用于数据输入/输出(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,多个存储器管芯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的通道和通路的数量可以不同。
存储器装置150中的多个存储器管芯240A、240B、240C、240D可以被配置为不同的模块并且通过不同的数据路径独立地与控制器130联接。当多个数据路径用于数据交换时,多个存储器管芯240A、240B、240C、240D和控制器130可以使用交织方案通过多个数据路径来交换数据以提高数据传送的速度。
对于提高存储器装置150与控制器130之间的数据传送的速度的交织方案,应将待存储的数据分布于多个模块而不是单个模块。在执行交织方案时,存储器系统可以使用地址限制结构或地址方案,来将多个新数据段分布于存储器装置150的多个模块并存储在存储器装置150的多个模块中。例如,当对四个数据段进行编程时,传统的存储器系统将四个数据段分别存储在四个存储器管芯中。这里,数据段的数量可以指可以通过可以执行的单个编程操作或单个写入操作一起存储的数据单元的数量。例如,当可以执行以页面为单元的编程操作(或写入操作)时,四个数据段可以包括编程在四个页面中的数据的量。
为了提高编程操作和读取操作的操作效率并增强分布式存储,存储器系统可以采用地址限制结构。在地址限制结构中,当将四个数据段编程在四个存储器管芯中时,在每个存储器管芯中分配相同的物理位置。例如,当将四个数据段存储在四个存储器管芯中时,四个数据段中的每一个被单独地存储在四个存储器管芯中的对应一个的第五物理位置中。此后,当对八个数据段进行编程时,可以将八个数据段存储在每个存储器管芯的第六物理位置和第七物理位置中。这里,物理位置可以指示存储器管芯中的块或页面。
当将五个数据段存储在具有地址限制结构的存储器系统中的四个存储器管芯中时,可以将两个数据段存储在同一存储器管芯的第一物理位置和第二物理位置中,并且可以将三个数据段分别单独地存储在其它三个存储器管芯的第一物理位置中。在具有地址限制结构的存储器系统中,因为与下一编程请求一起输入的数据段不能随后被写入其它三个存储器管芯的第二物理位置中,因此将三个虚拟数据段分别单独地写入剩余的三个存储器管芯的第二物理位置中。
当存储器系统具有用于交织操作的地址限制结构时,由于每当执行具有奇数个数据段的编程操作时可能需要对虚拟数据段进行编程,因此操作效率可能降低。此外,由于每个存储器管芯并不总是具有相同的操作状态(就健康度、磨损等而言),因此存储器系统可能必须独立地执行附加操作以补偿每个存储器管芯条件,而这可能增加开销。
根据本公开的实施例的存储器系统110可以采用完全同步交织结构,完全同步交织结构能够在没有地址限制结构的情况下支持控制器130和存储器装置150之间的交织操作。完全同步交织结构不具有将数据存储在存储器装置150中的多个存储器管芯240A、240B、240C、240D中的每一个中的相同位置处的地址限制。控制器130可以根据每个存储器管芯的操作条件和操作状态来分布待编程的数据段。这样做,不需要将数据段均匀地分布到每个存储器管芯。例如,如果四个存储器管芯240A、240B、240C、240D中的一个(例如,存储器管芯240A)由于其内正在执行内部操作而不能立即对数据段进行编程,则控制器130可以将多个数据段传送到其它三个存储器管芯(例如,240B、240C、240D)。控制器130可以将多个数据段分布于多个存储器管芯240A、240B、240C、240D,以提高数据传送的效率并减小编程操作的操作余量(margin),但是诸如地址限制结构的严格规则并未应用。另外,在根据实施例的存储器系统110中,没必要如具有地址限制结构的存储器系统中的情况那样对虚拟数据进行编程。
在控制器130将数据段传送到存储器装置150中并且将数据段编程在存储器装置150中之后,控制器130可以生成或更新将对应于该数据的逻辑地址与物理位置(即,物理地址)关联的映射信息。另外,控制器130可以将生成或更新的映射信息存储在存储器装置150中。
由于存储器系统110不采用如上所述的地址限制结构,因此可能难以保证以交织方式(即,通过交织方案)执行在读取并输出主机(或外部装置)请求的多个数据段的进程中的控制器130与存储器装置150之间的数据传送。因此,控制器130可以包括关联电路194,关联电路194用于关联主机请求的多个读取操作,从而可以以交织方式传送通过多个读取操作从存储器装置150输出的多个数据段。
在图1中,控制器130可以包括关联电路194、操作控制电路196和缓冲器控制电路198。如本公开中所使用的,术语“电路”可以指以下中的任意一个和全部:(a)仅硬件电路实施方式(例如,仅模拟和/或数字电路的实施方式);(b)电路和软件(和/或固件)的组合,例如(如适用):(i)处理器的组合,或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的一部分;以及(c)例如微处理器或微处理器的一部分的电路,需要软件或固件来操作,即使软件或固件物理上不存在。“电路”的定义适用于本申请中,包括任何权利要求中该术语的的所有使用。作为另一示例,如在本申请中所使用的,术语“电路”还将涵盖仅处理器(或多个处理器)或处理器的一部分及处理器(或多个处理器)所附软件和/或固件的实施方式。例如,如果适用于特定的权利要求元件,术语“电路”还将涵盖用于存储装置的集成电路。
缓冲器控制电路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。
假设主机请求存储在存储器系统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示出了根据本公开的实施例的包括存储器系统的数据处理系统。参照图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和Windowsmobile。移动操作系统可以支持针对移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。对应于用户的请求,主机102可以与存储器系统110协作执行多个操作系统。主机102可以将与用户的请求对应的多个命令传送到存储器系统110中,从而在存储器系统110内执行与命令对应的操作。下面参照图4及图5A和图5B描述在存储器系统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时,与连接到硬盘的主机102相比,连接到存储器系统110的主机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……,多个存储块152、154、156……中的每一个可以包括多个页面。多个页面中的每一个可以包括电联接到字线(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)、增强型小型磁盘接口(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)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC电路138可以包括基于上述代码中的至少一个来执行错误校正操作的任何和所有电路、模块、系统或装置。
PMU 140可以管理控制器130中的电力。例如,PMU 140可以检测通电和断电。另外,PMU 140可以包括功率检测器。
存储器接口142可以用作用于处理控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传送的请求来控制存储器装置150。在存储器装置150是闪速存储器,特别是存储器装置150是NAND闪速存储器的情况下,在处理器134的控制下,存储器接口142可以生成用于存储器装置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例示了存储器144设置在控制器130内,但是本发明不限于该布置。也就是说,存储器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可以包括在闪存转换层(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可以根据读取命令和编程命令以及从主机接口132传送的事件使用映射管理器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可以确定存储器装置150中具有足够的空闲块(即,没有数据的空白块)。如果块管理器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就可以执行映射更新操作以确保准确性。
根据实施例,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可以利用诸如以下的MLC存储块来实施:双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合。双层单元存储块可以包括由每个能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面的块实施。
在本公开的实施例中,存储器装置150被实施为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。在另一实施例中,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器(STT-MRAM))中的至少一个来实施。
图4示出了根据本发明的实施例的存储器系统中的存储器装置。更具体地,图4示出了存储器装置150的内部配置。
参照图4,存储器装置150可以包括多个存储器管芯240A、240B、240C、240D。第一存储器管芯240A和第二存储器管芯240B可以通过第一通道CH1连接到控制器130(参见图1至图3)。第三存储器管芯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示出了控制器执行的关联操作的特性。具体地,图5A和图5B中的两个曲线图可以示出通过在未指定和随机的情况下重复地执行关联操作而获得的结果。
参照图5A,当图1的控制器130中的关联电路194尝试对越来越多数量的读取请求执行关联操作时,随着读取请求增加,关联这些读取请求的概率增加。例如,关联20个读取请求的概率大于关联5个读取请求的概率。
当存储器系统中没有地址限制时,可以不分布存储器装置150中对应于与几个读取请求一起传送的逻辑地址的物理位置。在这种情况下,关联电路194关联的读取请求的数量可能较小。然而,当大数量的读取请求被传送到存储器系统110(参见图1至图2)时,读取请求被关联的概率较高。例如,当读取请求的数量是第二参考值REF2时,与读取请求的数量是小于REF2的第一参考值REF1时相比,关联的概率可以较高。
参照图5B,描述了当多个读取请求被顺序地传送到关联电路194时,根据读取请求的输入时间(或输入序列)的关联的概率。如参照图4所描述的,假设存储器系统110中的控制器130和存储器装置150之间存在两个通道。例如,因为没有准备被关联的其它读取请求,发送到关联电路194的第一读取请求可以不被关联。当第二读取请求被传送到关联电路194时,第二读取请求可能与第一读取请求关联或者可能不与第一读取请求关联;概率是50:50。当第三读取请求被传送到关联电路194时,如果第一读取请求和第二读取请求未关联,则关联电路194可以尝试使第三读取请求与第一读取请求和第二读取请求关联。因此,传送第三读取请求时关联的概率可以比传送第二读取请求时关联的概率更高。基于这些特性,关联电路194可以区分在接收到特定读取请求之前和之后的状态。例如,在接收到读取请求(对应于第三参考值REF3)之后,关联电路194可以确定关联的概率足够高,并且尝试对先前接收的读取请求以及第REF3读取请求执行关联操作。相反,在接收到第REF3读取请求之前,关联电路194可以确定关联的概率太低,从而跳过对在REF3读取请求之前接收的读取请求执行关联操作。
在另一示例中,假设传送了20个读取请求。输入第19读取请求和第20读取请求时关联的概率可能比输入第9至第11读取请求时关联的概率低。这是因为,当输入第19读取请求和第20读取请求时,先前输入的读取请求,即第1至第18读取请求,可能已经被关联并输出到操作控制电路196。随着关联的读取请求在特定时间过去之后被传送,关联的概率可能降低。在关联的概率降低之后,如果没有传送新读取请求,则关联的概率不太可能再次增加。为了避免关联电路194浪费资源(例如,时间、操作余量或电力)来执行关联操作,可以在传送与第四参考值REF4对应的读取请求时,停止或中止关联操作。
在实施例中,关联电路194可以响应于未关联的读取请求的数量而停止关联操作。例如,如果在20个读取请求中剩余例如两个或三个的小数量的未关联的读取请求,则关联电路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可以将逻辑地址转换成指示存储器装置150(参见图1至图4)中的物理位置的物理地址,该逻辑地址是从主机102(参见图2和图3)输入的地址。控制器130可以加载存储在存储器装置150中的映射数据和映射信息以执行地址转换。
根据实施例,当存储器144(参见图2和图3)中具有足够的存储空间时,用于地址转换的所有映射数据或所有映射信息可以一次被加载,其中存储器144包括在控制器130中或与控制器130可操作地接合。然而,在存储器系统110(参见图1至图2)安装在便携式终端中的情况下,控制器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(参见图1至图2)的数据输入/输出性能(例如,I/O吞吐量)而言,关联电路194执行的关联操作可以被视为开销。因此,当操作控制电路196处于空闲状态时,可以期望关联电路194不对所有读取请求执行关联操作。在不进行关联操作的情况下,关联电路194将至少一个读取请求传送到操作控制电路196,使得操作控制电路196可以从空闲状态转变到操作状态。基于参照图5A和图5B描述的关联操作的特性,关联电路194可以确定是进行还是停止关联操作。例如,当读取请求的数量小于第一参考值REF1时,关联电路194可以不对读取请求执行关联操作。另外,传送到关联电路194的第一读取请求可以在不进行关联操作的情况下被传送到操作控制电路196。此外,当关联电路194中剩余的读取请求的数量小于预设阈值时,关联电路194可以停止或中止关联操作。
图7示出了根据本公开的实施例的控制器的关联操作方法。根据实施例,可以由控制器130中的关联电路194(参见图1和图6)执行关联操作。
参照图7,执行关联操作的方法可以包括:当读取请求的数量大于第一设定值时,确定是否关联读取请求(S30);在不进行关联操作的情况下,传送在顺序为第二设定值的读取请求之前输入的至少一个读取请求(S32);关联读取请求以生成关联的读取请求(S34);并且当未关联的读取请求的数量小于第三设定值时,跳过对读取请求执行关联操作(S36)。
在一些实施例中,可以基于存储器系统110中的存储器管芯和通道的数量来确定第一设定值、第二设定值和第三设定值。另外,可以基于利用图5A和图5B的曲线图描述的关联操作的特性来确定第一设定值、第二设定值和第三设定值。例如,第一设定值可以是第一参考值REF1,第二设定值可以是第三参考值REF3,第三设定值可以是第四参考值REF4。而且,可以基于可以被累计地监控和跟踪的关联操作的成功率来调整第一设定值、第二设定值和第三设定值。这些设定值可以被认为是阈值。
如图5A所示,即使当接收用于关联操作的多个读取请求时,在读取请求的数量很少时,关联的概率也可能很低。例如,当存储器系统110中的通道的数量为两个并且针对三个读取请求执行关联操作时,有可能两个读取请求可能被关联而一个读取请求可能不被关联。另外,当关联所有三个读取请求的尝试不成功时,由于尝试关联操作所消耗的时间,存储器系统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的第一操作。例如,第一操作可以由图6中的关联电路194执行。
参照图8,假设来自作为外部装置的主机102的多个读取请求222被存储在输入缓冲器184中(参见图6)。可以根据从主机102接收多个读取请求222的顺序来对存储在输入缓冲器184中的多个读取请求222进行排序。在所示的实施例中,多个读取请求222包括10个读取请求RD1至RD10。
在10个读取请求RD1至RD10被关联之前,将关于一些逻辑地址LA001至LA100、LA101至LA200、LA201至LA300、LA801至LA900的多个映射信息段加载在映射存储器182中。当对与10个读请求RD1至RD10一起接收的逻辑地址(LBA)执行地址转换所需的映射信息段未被加载在映射存储器182中时,控制器130可以从存储器装置150接收对应的映射信息并将该映射信息存储在映射存储器182中。
根据主机102和存储器系统110之间的协议,读取请求RD1至RD10可以具有相同的结构,例如相同的代码。通过示例的方式,在图8中,读取请求RD1至RD10以该顺序被接收。读取请求RD1至RD10中的每一个可以与由主机102使用的至少一个逻辑地址LBA一起传送。
参照映射存储器182,控制器130中的关联电路194可以识别与逻辑地址LBA一起输入的每个读取请求被传送到哪个存储器管芯中。
当关联电路194基于与每个读取请求对应的逻辑地址(LBA)检查存储器装置150中的存储器管芯时,如图8所示,关联电路194可以识别每个读取请求通过哪个通道传送。然而,当操作控制电路196处于空闲状态时,如参照图7所描述的,关联电路194不确定第一读取请求RD1应被传送到哪个存储器管芯。
图9示出了关于多个读取请求的控制器130的第二操作。例如,第二操作可以由控制器130中的关联电路194执行。
参照图9,关联电路194可以在不尝试关联操作的情况下将第一读取请求RD1传送到操作控制电路196。关联电路194可以对第二读取请求RD2至最后读取请求RD10执行关联操作。
基于与从第二读取请求RD2至最后读取请求RD10中的每一个读取请求一起接收的逻辑地址(LBA),关联电路194可以识别哪个存储器管芯是与逻辑地址对应的数据所存储的物理位置,以及通过哪个通道传送数据。然后,关联电路194可以基于通道的数量顺序地关联9个读取请求RD2至RD10。参照图6和图9,因为第二读取请求RD2和第四读取请求RD4通过不同的通道传送,所以第二读取请求RD2可以与第四读取请求RD4关联。因为第二读取请求RD2和第三读取请求RD3通过同一通道传送,所以第二读取请求RD2和第三读取请求RD3不关联。第三读取请求RD3可以与第五读取请求RD5关联。
关联电路194可以根据读取请求的顺序来顺序地关联读取请求。在图9中,关联电路194不尝试对第一读取请求RD1的关联操作。可选地,当操作控制电路繁忙时,关联电路194还可以对第一读取请求RD1执行关联操作。当关联电路194从第一读取请求RD1开始执行关联操作时,因为第一读取请求RD1和第二读取请求RD2通过不同的通道传送,所以第一读取请求RD1和第二读取请求RD2可以关联。然后,第三读取请求RD3可以与第四读取请求RD4关联。根据实施例,关联电路194执行的关联操作的结果可以不同。
图10示出了控制器130执行的关联操作的结果。
参照图10,从主机102接收的多个读取请求222可以包括10个读取请求RD1至RD10。多个读取请求222可以根据多个读取请求222被传送到存储器系统110或控制器130的顺序来布置。
在图8和图9所示的进程之后,由控制器130关联的多个关联的读取请求333按执行顺序布置。在不进行关联操作的情况下传送第一读取请求RD1。第二读取请求RD2和第四读取请求RD4关联并作为关联的读取请求进行传送,并且第三读取请求RD3和第五读取请求RD5关联并作为关联的读取请求进行传送。根据传送的顺序,操作控制电路196可以确定执行顺序。如果另外的读取请求不彼此关联,则未关联的读取请求可以在关联的读取请求之后传送,从而可以在执行关联的读取请求之后执行未关联的读取请求。这里,执行顺序可以指示图5A和图5B中操作控制电路196处置或处理多个读取请求的顺序。
如上所述,可以对应于存储器系统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的数据输入/输出性能。
如上所述,根据存储器系统110的操作环境,控制器130可以控制是否尝试关联多个读取请求。例如,控制器130可以根据输出缓冲器186的状态来确定是否对多个读取请求中的第一读取请求执行关联操作。另外,当连续接收到用于关联操作的读取请求时,可以针对先前输入的读取请求和当前输入的读取请求继续进行关联操作。然而,当不再接收到读取请求时,可以根据接收到读取请求的顺序来传送未关联的读取请求以执行对应的操作,以避免使存储器系统110的数据输入/输出性能下降。当控制器130保持未关联的读取请求用于与其它读取请求的关联操作时,存储器系统110的数据输入/输出性能可能下降。
存储器系统110可能难以预测多个读取请求将彼此关联的可能性,因为这种可能性会改变。例如,随着用于关联操作的读取请求的数量增加,控制器130执行关联操作的概率增加。相反,接收到的读取请求的数量越少,意味着执行关联操作的概率越低。因为即使存储器系统110不应用地址限制来存储由主机102请求的多个数据段,也可以分布多个数据段,所以如上所述,控制器130可以关联读取请求的概率会变化。
在实施例中,控制器130可以对主机102向存储器系统110请求的随机读取操作和/或顺序读取操作的多个读取请求执行关联操作。
图11示出了操作存储器系统的方法的第一示例。
参照图11,操作存储器系统的方法可以包括步骤S10至S20。步骤S10可以包括:从外部装置或主机接收多个读取请求。步骤S12可以包括:确定是否关联多个读取请求。步骤S14可以包括:基于与多个读取请求相关联的逻辑地址,对多个读取请求执行关联操作。步骤S16可以包括:执行关于关联的读取请求的地址转换,以通过多个通道将关联的读取请求传送到多个存储器管芯中的特定存储器管芯中。步骤S18可以包括:以交织方式接收与关联的读取请求对应的多个数据段。步骤S20可以包括:将多个数据段输出到例如主机的外部装置。
在一些实施例中,操作存储器系统的方法可以进一步包括:顺序地执行关于未关联的读取请求的地址转换,以将未关联的读取请求传送到多个存储器管芯中的特定存储器管芯;并且从特定存储器管芯接收与未关联的读取请求对应的数据段。通过示例而非限制的方式,存储器系统可以根据多个读取请求是否关联而不是根据接收到多个读取请求的顺序来确定多个读取请求的执行顺序或序列。存储器系统可以首先执行与关联的读取请求对应的操作,然后执行与未关联的读取请求对应的操作。
可以基于用于关联操作的读取请求的数量以及输出缓冲器的操作状态来执行步骤S12。为了在存储器系统的数据输入/输出性能不下降的条件下执行关联操作,可以在确保关联操作的操作余量之后执行关联操作。
在一些实施例中,操作存储器系统的方法可以进一步包括:确定输出缓冲器中待输出到外部装置的数据段的数量是否大于参考值。可以基于外部装置和/或存储器系统之间的第一数据输入/输出速度以及控制器和多个存储器管芯之间的第二数据输入/输出速度来确定参考值。例如,假设存储器系统将数据段传送到外部装置需要10ms。如果输出缓冲器包括待输出到外部装置的10个数据段,则存储器系统的操作余量可以为100ms(=10x10)。例如,假设在控制器与存储器系统中的多个存储器管芯之间传送读取请求并接收数据段需要5ms。在这种情况下,控制器可以在被确保多达100ms中的95ms的操作余量期间尝试关联多个读取请求。
控制器可以识别内部操作的操作速度(或设定操作余量),检查在内部操作上花费的时间,并且根据定义主机与存储器系统之间的通信的协议来计算操作余量。因此,控制器可以计算和估计用于尝试关联多个读取请求的操作余量。例如,控制器可以计算被确保用于关联操作的操作余量的最大值,并且在与最大值的70%至90%对应的时间期间对多个读取请求执行关联操作。根据实施例,控制器可以尝试关联多个读取请求的时间范围可以不同。进一步地,当控制器可以基于存储器系统的操作环境和存储器装置的操作状态来尝试关联多个读取请求时,控制器可以动态地确定操作余量。
在步骤S14中,可以根据多个读取请求的输入顺序或输入序列,基于与多个读取请求相关联的逻辑地址来执行关联操作。可以比未关联的读取请求更早地传送关联的读取请求,从而可以提高存储器系统110的数据输入/输出性能。
在一些实施例中,为了避免存储器系统的数据输入/输出性能的下降,有时可以不尝试对多个读取请求中的一些进行关联操作。例如,如果执行地址转换的电路处于空闲状态,则可以不尝试对小数量的读取请求,例如一个或两个读取请求进行关联操作。
当与一些读取请求一起输入的逻辑地址相关联的映射数据没有被加载在高速缓存存储器(或易失性存储器中的映射数据区域)中时,该方法可以包括从多个存储器管芯请求对应的映射数据。如果高速缓存存储器中没有足够的空间来存储映射数据,则在将更新的映射数据编程到存储器装置中并释放后,可以加载请求的映射数据。可选地,不必要的映射数据可以在高速缓存存储器中被释放。例如,当请求的映射数据不能被存储在高速缓存存储器中时,可以释放高速缓存存储器中最近最少使用的映射数据。根据实施例,当请求的映射数据不能被存储在高速缓存存储器中时,可以释放高速缓存存储器中最不频繁使用的映射数据。
在步骤S16中,可以根据由关联操作改变的执行顺序,对每个读取请求执行地址转换。控制器可以基于加载在映射存储器182中的映射数据和映射信息,将与关联的读取请求相关联的逻辑地址转换为存储与逻辑地址相关联的数据段的物理位置。进一步地,控制器可以通过不同的通道将关联的读取请求传送到存储器装置150中的多个存储器管芯中。
在步骤S18中,存储器管芯中的每一个可以响应于读取请求而输出数据段。在本文中,每个传送到各个存储器管芯的读取请求可以通过每个通道顺序地传送并且通过不同的通道并行地传送。从存储器管芯输出的多个数据段还可以通过每个通道顺序地传送并且通过不同的通道并行地传送。
在通过多个通道接收到多个数据段之后,控制器130可以将多个数据段输出到外部装置或主机(S20)。控制器130可以在将多个数据段输出到外部装置之前将多个数据段临时存储在输出缓冲器186中。在输出缓冲器186中,以输入顺序(例如,FIFO)将多个数据段输出到外部装置。
图12示出了用于改善存储器系统的数据输入/输出性能的地址分配方案的示例。
参照图12,存储器系统110可以具有地址分配方案,该地址分配方案用于针对外部装置(或主机)使用的逻辑块地址来确定存储器装置150内的物理位置(或物理地址)。在图12中,假设主机使用从“LBA0000”到“LBA9999”的逻辑地址,并且存储器装置150包括四个存储器管芯240A、240B、240C、240D。
存储器系统110中可以采用地址分配方案(或地址分配策略)。当与数据段和逻辑地址一起输入编程请求时,存储器系统110可以利用地址分配方案来确定与逻辑地址相关联的数据段被存储在存储器装置150中的多个存储器管芯中的物理位置。地址分配方案可以将多个数据段均匀地分布于多个存储器管芯。逻辑地址可以根据存储器装置150中的存储器管芯的数量与特定存储器管芯相关联。当主机使用的逻辑地址的范围是从“LBA0000”到“LBA9999”时,逻辑地址可以分为四个组。
将逻辑地址划分为四个组的进程可以变化。例如,与逻辑地址“LBA0000”至“LBA2499”相关联的多个数据段可以存储在第一存储器管芯240A中。第二存储器管芯240B可以被分配用于存储与其它逻辑地址“LBA2500”至“LBA4999”相关联的多个数据段。另外,可以将与逻辑地址“LBA5000”至“LBA7499”相关联的数据编程到第三存储器管芯240C。第四存储器管芯240D可以被分配用于存储与范围为“LBA7500”至“LBA9999”的逻辑地址相关联的数据。
在另一示例中,存储器系统110可以针对与逻辑地址“LBA0000”至“LBA9999”相关联的每个数据段顺序地分配第一存储器管芯240A至第四存储器管芯240D中的一个。例如,可以将与逻辑地址“LBA0001”相关联的一个数据段存储在第一存储器管芯240A中,并且可以将与下一逻辑地址“LBA0002”相关联的另一个数据段编程在第二存储器管芯240B中。存储器系统110可以分配第三存储器管芯240C来存储与逻辑地址“LBA0003”相关联的数据段。与逻辑地址“LBA0004”相关联的另一个数据段可以被编程在第四存储器管芯240D中。存储器系统110可以分配第一存储器管芯240A来存储与逻辑地址“LBA0005”相关联的另一个数据段。
存储器系统110可以将主机使用的逻辑地址除以存储器管芯的数量,并且将逻辑地址平均分配给每个存储器管芯。然而,地址分配方案不限制每个存储器管芯内的特定物理位置(即,块或页面)。可以基于每个存储器管芯的操作环境、操作状态和内部配置来确定特定物理位置。因此,在编程操作期间,存储器系统110可以反映每个存储器管芯中的内部操作状态以确定待存储数据的物理位置,从而提供关于每个存储器管芯的使用和寿命的有效管理。另外,因为可以相等地使用多个通道,所以存储器系统110中的多个数据段可以以交织方式被传送,从而可以提高存储器系统110的数据输入/输出性能。
另外,当存储器系统110采用地址分配方案时,可以简化关联电路194执行的关联操作。这是因为关联电路194不需要使用映射数据和映射信息来执行关联操作。
图13示出了具有地址分配方案的存储器系统中的关联进程。
参照图13,存储器系统110(参见图1至图2)采用的地址分配方案或地址分配策略可以针对与逻辑地址“LBA0000”至“LBA9999”相关联的多个数据段分配物理位置。在这种情况下,假设可以顺序地分配多个存储器管芯(例如,四个存储器管芯)来存储与逻辑地址“LBA0000”至“LBA9999”相关联的多个数据段。
例如,与逻辑地址“LBA0000”对应的数据段可以被编程在第四存储器管芯240D(#4)中,与逻辑地址“LBA0001”相关联的另一个数据段可以被存储在第一存储器管芯240A(#1)中,与逻辑地址“LBA0002”相关联的另一个数据段可以存储在第二存储器管芯240B(#2)中。第三存储器管芯240C(#3)可以被分配用于对与逻辑地址“LBA0003”相关联的数据段进行编程,第四存储器管芯240D(#4)可以存储与逻辑地址“LBA0004”相关联的另一个数据段,并且第一存储器管芯240A(#1)可以被分配用于对与逻辑地址“LBA0005”相关联的数据段进行编程。
在采用上述地址分配方案的存储器系统110中,控制器可以基于多个逻辑地址来关联多个读取请求。当对多个读取请求执行关联操作时,控制器可以将多个逻辑地址除以存储器管芯的数量(例如,4)。可以基于将每个逻辑地址除以存储器管芯的数量(例如,4)的余数来使多个读取请求彼此关联。
例如,如果将第一逻辑地址除以4,余数为0,则假设与逻辑地址对应的数据段被编程在通过第二通道与控制器联接的第四存储器管芯240D中。因此,第一读取请求可以与另一读取请求关联,该另一读取请求与另一逻辑地址一起输入,该另一逻辑地址指示编程在通过与第二通道可区分的第一通道与控制器联接的第一存储器管芯或第二存储器管芯中的数据段(即,余数为“1”或“2”)。另外,当将与读取请求一起输入的逻辑地址除以4,从而余数为1时,与该逻辑地址相关联的数据段被编程在通过第一通道与控制器联接的第一存储器管芯240A中。该读取请求可以与用于读取存储在第三存储器管芯240C或第四存储器管芯240D中的数据段的另一读取请求(余数为“0”或“3”)关联。
另外,当将与另一读取请求一起输入的逻辑地址除以4,余数为2时,可以将与该逻辑地址相关联的数据段存储在通过第一通道与控制器联接的第二存储器管芯240B中。该读取请求可以与另一请求关联,该另一请求与逻辑地址一起输入,该逻辑地址指示存储在通过第二通道与控制器联接的第三存储器管芯240C或第四存储器管芯240D中的数据段(余数为“0”或“3”)。另外,当与另一读取请求一起输入的逻辑地址除以4,余数为3时,读取请求可以被传送到通过第二通道与控制器联接的第三存储器管芯240C中。该读取请求可以与另一读取请求关联,该另一读取请求与逻辑地址一起输入,该逻辑地址指示存储在通过第一通道与控制器联接的第一存储器管芯240A或第二存储器管芯240B中的数据段(余数为“1”或“2”)。
图14示出了在采用改进的地址分配方案的存储器系统中如何对多个读取请求执行关联操作。
参照图14,假设从外部装置(或主机)输入多个读取请求RD1至RD10,并且存储器系统110中包括四个存储器管芯。多个读取请求RD1至RD10中的每一个可以与逻辑地址一起传送。基于与多个读取请求RD1至RD10中的每一个相关联的逻辑地址,存储器系统110可以使多个读取请求RD1至RD10彼此关联,从而以交织方式进行数据传送。
当与第一读取请求RD1相关联的逻辑地址是“LA128”时,该逻辑地址除以4,余数为“0”。逻辑地址“LA128”可以指示存储在第四存储器管芯240D中的数据段。控制器可以通过第二通道将第一读取请求RD1传送到第四存储器管芯240D。存储器系统110可以识别该数据段可以通过第二通道被传送。由于与第二读取请求RD2相关联的逻辑地址是“LA005”,因此该逻辑地址除以4,余数为“1”。具有逻辑地址“LA005”的第二读取请求RD2可以被传送到通过第一通道与控制器联接的第一存储器管芯240A。因此,存储器系统110可以使第一读取请求RD1和第二读取请求RD2关联。
当与第三读取请求RD3相关联的逻辑地址是“LA250”时,该逻辑地址除以4,余数为“2”。第三读取请求RD3可以基于逻辑地址“LA250”被传送到第二存储器管芯240B。存储器系统110可以识别可以通过第一通道传送与第三读取请求RD3对应的数据段。当与第四读取请求RD4相关联的逻辑地址是“LA001”时,该逻辑地址除以4,余数为“1”。具有逻辑地址“LA001”的第四读取请求RD4可以被传送到第一存储器管芯240A。存储器系统110可以识别数据段可以通过第一通道被传送。因此,存储器系统110不使第三读取请求RD3和第四读取请求RD4关联。
当与第五读取请求RD5相关联的逻辑地址是“LA003”时,该逻辑地址除以4,余数为“3”。逻辑地址“LA003”可以被传送到第三存储器管芯240C。存储器系统110可以识别数据段可以通过第二通道被传送。因此,存储器系统110可以使第五读取请求RD5与未关联的读取请求中较早接收的第三读取请求RD3关联。
存储器系统110可以首先执行与多个读取请求RD1至RD10中的关联的读取请求对应的操作。然后,存储器系统110可以基于输入顺序或输入序列来执行与未关联的读取请求对应的操作。
图15示出了关联操作的结果。详细地,图15示出了关于通过输入顺序或输入序列排序的多个读取请求RD1至RD10的第一表444,以及指示针对多个读取请求RD1至RD10的根据关联操作的结果而改变的执行顺序的第二表555。例如,可以以参照图14描述的方式执行关联操作。
第一读取请求RD1和第二读取请求RD2可以关联,并且第三读取请求RD3和第五读取请求RD5可以关联。关联的读取请求在其它读取请求,即未关联的读取请求之前被较早地接收。另外,如果存在其它关联的读取请求,则可以在执行与另一未关联的读取请求对应的操作之前执行与关联的读取请求对应的操作。尽管未示出,但是可以在执行与关联的读取请求对应的操作之后执行与未关联的读取请求对应的操作。
图16示出了操作存储器系统的方法的另一示例。
参照图16,操作存储器系统的方法可以包括步骤S50至S62。步骤S50可以包括:从外部装置(或主机)接收多个读取请求。步骤S52可以包括:确定是否关联多个读取请求。步骤S54可以包括:基于与多个读取请求相关联的逻辑地址,根据关联规则对多个读取请求进行划分(或分组或分类)。步骤S56可以包括:对所分类的读取请求执行关联操作。步骤S58可以包括:执行关于关联的读取请求的地址转换,以通过多个通道将关联的读取请求传送到多个存储器管芯中。步骤S60可包括:通过多个通道以交织方式接收多个数据段,每个数据段对应于每个关联的读取请求。步骤S62可以包括:将多个数据段输出到外部装置。
当接收到多个读取请求时,存储器系统110中的控制器130(参照图1至图3)可以确定是否对多个读取请求执行关联操作(S52)。为了减少关联操作对存储器系统110的I/O吞吐量的副作用,存储器系统110可以基于输出缓冲器的状态以及根据多个读取请求的数量的关联的概率来确定是否执行关联操作。另外,如果在存储器装置150和控制器130之间没有数据传送,则可以不针对多个读取请求中的一些读取请求(例如,第一读取请求)尝试关联操作。
当存储器系统110采用地址分配方案时,存储器系统110可以在不参考用于地址转换的映射信息或映射数据的情况下执行关联操作。参照图13至图15,可以基于与多个读取请求相关联的逻辑地址和存储器装置150中的存储器管芯的数量来顺序地关联多个读取请求。可以根据关联规则,基于逻辑地址对多个读取请求进行分类(S54),其中关联规则可以根据地址分配方案来确定。此后,可以执行对分类的读取请求的关联操作(S56)。
在步骤S58中,可以根据通过关联操作而改变的执行顺序,对与每个读取请求相关联的每个逻辑地址执行地址转换。基于加载在映射存储器182中的映射数据和映射信息,与关联的读取请求相关联的逻辑地址被转换为存储多个数据段的物理位置,从而将关联的读取请求传送到图1至图4中的存储器装置150。
在步骤S60中,对应的存储器管芯可以响应于单独地传送到每个存储器管芯的关联的读取请求中的每一个来输出多个数据段中的每一个。每个存储器管芯可以响应于通过每个通道传送到每个存储器管芯的每个读取请求来输出每个数据段。在本文中,分别传送到每个存储器管芯的读取请求可以通过每个通道顺序地传送,并且可以通过不同的通道并行地传送。从存储器管芯输出的多个数据段还可以通过每个通道顺序地传送并且通过不同的通道并行地传送。
在通过多个通道接收到多个数据段之后,控制器130可以将多个数据段输出到外部装置(S62)。控制器130可以将多个数据段临时存储在输出缓冲器186中,并且输出缓冲器186可以以诸如FIFO的存储顺序将多个数据段输出到外部装置。
如上所述,关联操作关联待通过不同通道并行地传送到不同存储器管芯的一些读取请求,从而从不同存储器管芯输出的多个数据段通过不同通道并行地传送。这可以被称为通道交织方案。根据另一实施例,关联操作可以被应用以关联待通过同一通道交替地传送到不同存储器管芯的一些读取请求,从而从不同存储器管芯输出的多个数据段通过同一通道被交替地传送。这可以被称为通路交织方案。
根据本公开的实施例,存储器系统、数据处理系统、其操作方法以及支持操作的方法可以避免用于交织操作的关于存储器系统中的被分配用于存储数据的物理位置的地址限制。因此,存储器系统可以减少存储器系统中用于交织操作的开销。
另外,本公开的实施例可以通过存储器系统中的交织操作来提高数据输入/输出性能,并且减少用于交织操作的关于存储器系统中的物理位置的地址限制,从而可以提高存储器装置的操作效率和寿命
虽然已经针对具体实施例描述了本发明,但是对于本领域普通技术人员鉴于本公开将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明包括落入权利要求的范围内的所有改变和修改。
Claims (20)
1.一种存储器系统,包括:
多个存储器管芯;以及
控制器,通过多个通道与所述多个存储器管芯联接,并且对从外部装置输入的多个读取请求中的至少一些读取请求执行关联操作,使得所述多个存储器管芯以交织方式通过所述多个通道输出与所述多个读取请求对应的多个数据段,
其中所述控制器基于所述多个读取请求的数量来确定何时执行所述关联操作。
2.根据权利要求1所述的存储器系统,其中当在输出到所述外部装置之前存储在输出缓冲器中的数据段的数量大于阈值时,所述控制器执行所述关联操作。
3.根据权利要求2所述的存储器系统,其中所述输出缓冲器包括队列,所述队列能够根据所存储的数据的输入序列输出所存储的数据,并且
所述控制器基于所述外部装置与所述存储器系统之间的第一数据输入/输出速度以及所述控制器与所述多个存储器管芯之间的第二数据输入/输出速度来确定所述阈值。
4.根据权利要求1所述的存储器系统,其中当所述多个读取请求的数量小于所述多个存储器管芯的数量时,所述控制器跳过所述关联操作。
5.根据权利要求1所述的存储器系统,其中所述控制器跳过对所述多个读取请求中的第一读取请求至第n-1读取请求的所述关联操作,并且对所述多个读取请求中的第n读取请求至最后读取请求执行所述关联操作。
其中n是所述多个通道的数量。
6.根据权利要求4所述的存储器系统,其中当尚未被关联的剩余读取请求的数量小于所述多个存储器管芯的数量时,所述控制器停止对剩余读取请求的所述关联操作。
7.根据权利要求1所述的存储器系统,其中所述控制器不考虑与数据段相关联的逻辑地址,分配所述多个存储器管芯中的物理位置以对每个数据段进行编程,并且
所述控制器基于映射数据执行所述关联操作。
8.根据权利要求1所述的存储器系统,其中所述控制器基于所述多个存储器管芯的数量以及与每个数据段相关联的逻辑地址来分配所述多个存储器管芯中的物理位置,并且
所述控制器基于与所述多个读取请求对应的逻辑地址来执行所述关联操作。
9.根据权利要求1所述的存储器系统,进一步包括:
存储器,用于存储映射数据;
输入缓冲器,用于存储所述多个读取请求;以及
输出缓冲器,用于存储输出到所述外部装置的所述多个数据段。
10.根据权利要求9所述的存储器系统,其中所述控制器包括:
缓冲器控制电路,监控所述输入缓冲器和所述输出缓冲器的状态以确定是否执行所述关联操作;
关联电路,基于接收的所述多个读取请求的数量,进行、停止或跳过对所述多个读取请求的所述关联操作,并且在所述多个读取请求中,比未关联的读取请求更早地传送关联的读取请求;以及
操作控制电路,根据所述多个读取请求的传送序列对所述多个读取请求执行地址转换,并且通过所述多个通道将所述多个读取请求传送到所述多个存储器管芯。
11.根据权利要求10所述的存储器系统,其中所述控制器存储所述关联操作的关联率,并且基于所述关联率、所述多个通道的数量以及所述多个存储器管芯的数量来确定用作用于确定是进行、停止还是跳过所述关联操作的参考的至少一个阈值。
12.一种操作存储器系统的方法,包括:
接收从外部装置输入的多个读取请求;
基于接收的所述多个读取请求的数量,确定何时对所述多个读取请求执行关联操作;
基于确定结果,对所述多个读取请求中的一些读取请求执行所述关联操作;
执行对关联的读取请求的地址转换,以通过多个通道将所述关联的读取请求传送到多个存储器管芯;
以交织方式通过所述多个通道从所述多个存储器管芯接收与所述关联的读取请求对应的数据;以及
将所述数据输出到所述外部装置。
13.根据权利要求12所述的方法,进一步包括:
执行对未关联的读取请求的所述地址转换,以通过所述多个通道将所述未关联的读取请求传送到所述多个存储器管芯;以及
从所述多个存储器管芯接收与所述未关联的读取请求对应的其它数据,以将所述其它数据输出到所述外部装置。
14.根据权利要求12所述的方法,其中确定何时执行所述关联操作包括:
确定输出到所述外部装置之前存储在输出缓冲器中的数据段的数量何时大于阈值,并且
其中基于所述外部装置与所述存储器系统之间的第一数据输入/输出速度以及所述控制器与所述多个存储器管芯之间的第二数据输入/输出速度来确定所述阈值。
15.根据权利要求12所述的方法,其中执行所述关联操作包括:
当接收的所述多个读取请求的数量小于所述多个存储器管芯的数量时,跳过所述关联操作。
16.根据权利要求12所述的方法,其中执行所述关联操作包括:
跳过对所述多个读取请求中的第一读取请求至第n-1读取请求的所述关联操作;以及
对所述多个读取请求中的第n读取请求至最后读取请求执行所述关联操作,
其中n是所述多个通道的数量。
17.根据权利要求16所述的方法,其中执行所述关联操作进一步包括:
当尚未被关联的剩余读取请求的数量小于所述多个存储器管芯的数量时,停止对剩余读取请求的所述关联操作。
18.根据权利要求12所述的方法,进一步包括:
不考虑与数据段相关联的逻辑地址,分配所述多个存储器管芯中的物理位置以对每个数据段进行编程,
其中基于映射数据执行所述关联操作。
19.根据权利要求12所述的方法,进一步包括:
基于所述多个存储器管芯的数量以及与每个数据段相关联的逻辑地址来分配所述多个存储器管芯中的物理位置,
其中基于与所述多个读取请求对应的逻辑地址来执行所述关联操作。
20.根据权利要求12所述的方法,其中执行所述关联操作包括:
基于所述多个读取请求的数量,进行、停止或跳过对所述多个读取请求的所述关联操作;
在所述多个读取请求中,比未关联的读取请求更早地传送关联的读取请求;以及
存储所述关联操作的关联率,以基于所述关联率、所述多个通道的数量以及所述多个存储器管芯的数量来确定用作用于确定是进行、停止还是跳过所述关联操作的参考的至少一个阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190076125A KR20210000877A (ko) | 2019-06-26 | 2019-06-26 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
KR10-2019-0076125 | 2019-06-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148632A true CN112148632A (zh) | 2020-12-29 |
Family
ID=73891128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911296695.1A Withdrawn CN112148632A (zh) | 2019-06-26 | 2019-12-16 | 用于改善存储器系统的输入/输出吞吐量的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10997094B2 (zh) |
KR (1) | KR20210000877A (zh) |
CN (1) | CN112148632A (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
KR20210000877A (ko) * | 2019-06-26 | 2021-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
KR20210008604A (ko) * | 2019-07-15 | 2021-01-25 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
US11189347B2 (en) * | 2020-03-13 | 2021-11-30 | Micron Technology, Inc. | Resource management for memory die-specific operations |
KR20210122461A (ko) * | 2020-04-01 | 2021-10-12 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
KR102664674B1 (ko) * | 2016-06-10 | 2024-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20180090124A (ko) * | 2017-02-02 | 2018-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102535627B1 (ko) * | 2018-03-28 | 2023-05-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210000877A (ko) * | 2019-06-26 | 2021-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
-
2019
- 2019-06-26 KR KR1020190076125A patent/KR20210000877A/ko unknown
- 2019-12-16 CN CN201911296695.1A patent/CN112148632A/zh not_active Withdrawn
- 2019-12-19 US US16/721,338 patent/US10997094B2/en active Active
-
2021
- 2021-04-07 US US17/224,314 patent/US11487678B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200409875A1 (en) | 2020-12-31 |
US11487678B2 (en) | 2022-11-01 |
KR20210000877A (ko) | 2021-01-06 |
US10997094B2 (en) | 2021-05-04 |
US20210224204A1 (en) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825319B (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
US20200042181A1 (en) | Apparatus and method for searching valid data in memory system | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN110806837A (zh) | 数据处理系统及其操作方法 | |
CN111752474A (zh) | 控制存储器系统的写入操作的设备和方法 | |
CN111831578B (zh) | 用于处理存储器系统中的不同类型数据的设备及方法 | |
US20220269609A1 (en) | Apparatus and method for improving input/output throughput of memory system | |
CN112835811A (zh) | 存储器系统及其操作方法 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN113360083A (zh) | 用于在存储器系统中控制映射数据的装置和方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN113495852A (zh) | 控制存储器系统中的映射数据的设备和方法 | |
CN112667146A (zh) | 有效管理存储块的存储器系统及其操作方法 | |
US11500720B2 (en) | Apparatus and method for controlling input/output throughput of a memory system | |
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 | |
CN113687769A (zh) | 用于提高数据处理系统中的操作效率的设备和方法 | |
CN111857818A (zh) | 存储器系统和通过该存储器系统执行命令操作的方法 | |
CN111857565A (zh) | 存储器系统、数据处理系统及其操作方法 | |
CN111831577A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201229 |