CN112445424A - 提高存储器系统的输入/输出吞吐量的设备和方法 - Google Patents

提高存储器系统的输入/输出吞吐量的设备和方法 Download PDF

Info

Publication number
CN112445424A
CN112445424A CN202010625635.6A CN202010625635A CN112445424A CN 112445424 A CN112445424 A CN 112445424A CN 202010625635 A CN202010625635 A CN 202010625635A CN 112445424 A CN112445424 A CN 112445424A
Authority
CN
China
Prior art keywords
read request
memory
read
data
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010625635.6A
Other languages
English (en)
Inventor
朴振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112445424A publication Critical patent/CN112445424A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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

本技术涉及一种用于通过针对存储器系统的多个存储器管芯的交错操作来提高I/O吞吐量的方法和设备。存储器系统可以包括:多个存储器管芯,适用于响应于读取请求而输出不同大小的数据;以及控制器,通过多个通道与多个存储器管芯通信,并且适用于:对读取请求执行关联操作,使得多个存储器管芯通过多个通道交错并输出对应于读取请求的目标数据;使用关联操作的结果确定待定信用;并且基于对应于读取请求的目标数据的类型和待定信用,从多个存储器管芯读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。

Description

提高存储器系统的输入/输出吞吐量的设备和方法
相关申请的交叉引用
本申请要求于2019年9月2日提交的申请号为10-2019-0108164的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,且更特别地,涉及一种通过对存储器系统中的存储器管芯进行交错操作来提高数据输入/输出性能的方法和设备。
背景技术
近来,计算机环境范例已经转变成使计算机系统可以被随时随地访问的普适计算。因此,增加了诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用。这种便携式电子装置通常使用或包括采用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,实现为非易失性半导体存储器装置的数据存储装置的优点在于,由于其不具有机械驱动部件(例如,机械臂),因此具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。这种数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的实施例可以提供一种可以通过减少存储器系统的操作复杂度和性能劣化来快速且可靠地处理存储器装置内的数据从而提高存储器装置的使用效率的存储器系统、数据处理系统以及操作进程或方法。
另外,本公开的实施例可以提供一种用于以交错格式向存储器系统中的多个存储器管芯输入多条数据以及从存储器系统中的多个存储器管芯输出多条数据以提高存储器系统的数据输入/输出性能(例如,I/O吞吐量)的方法和设备。
进一步,本公开的实施例可以提供一种存储器系统,该存储器系统在将数据存储在多个存储器管芯中的进程中不限于将数据存储在其中以用于交错操作的物理位置,从而有效地利用存储器系统中的多个存储器管芯,使得可以提高存储器系统的操作稳定性和寿命。
另外,本公开的实施例可以提供一种设备和方法,该设备和方法用于基于存储器系统的配置和/或关联操作的特性,动态确定是进行对多个请求的关联操作还是停止该关联操作,这将影响在存储器系统中执行的诸如读取数据或写入数据的操作,使得可以减小在存储器系统中执行的操作的开销。
而且,各个实施例提供一种方法和设备,该方法和设备可以通过基于已请求读取的目标数据的类型来确定能够与目标数据一起输出的附加数据的可用性,并且如果可用性是给定的参考值或更多,则基于与关联操作的执行或停止关联的待定信用(pendingcredit),通过一次读取操作从存储器管芯一起读取目标数据和附加数据,来提高存储器系统的操作效率。
另外,本公开的实施例可以提供一种包括地址分配方案的存储器系统,该地址分配方案减少了用于关联操作的资源并且支持对存储器系统中的多个存储器管芯的交错操作,从而提高存储器系统的操作效率。
根据本发明的实施例,一种存储器系统可以包括:多个存储器管芯,适用于响应于读取请求而输出不同大小的数据;以及控制器,通过多个通道与多个存储器管芯通信,并且适用于:执行对读取请求的关联操作,使得多个存储器管芯通过多个通道交错并输出对应于读取请求的目标数据;使用关联操作的结果确定待定信用;并且基于对应于读取请求的目标数据的类型和待定信用,从多个存储器管芯读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。
多个存储器管芯中的每一个可以包括:多个块,每个块包括多个页面,每个页面包括多个区段,每个区段包括多个存储器单元;以及页面缓冲器,适用于以页面单位高速缓存从多个块读取的数据,并且多个存储器管芯中的每一个可以响应于读取请求以区段单位或以页面单位从页面缓冲器输出数据。
控制器可以基于在选择时刻之前是否已经执行了先前关联操作、先前关联操作是否成功以及多个存储器管芯在选择时刻的操作状态来确定待定信用,该选择时刻可以指示从多个基本读取请求之中选择候选读取请求作为关联操作的目标的时间。
如果候选读取请求是区段单位的读取请求,当处理候选读取请求时,控制器可以基于对应于候选读取请求的目标数据的类型和在处理时刻的待定信用,从多个存储器管芯中读取对应于候选读取请求的目标数据和存储在相同存储单位中的附加数据,该处理时刻是候选读取请求被处理的时间,并且该存储单位可以是页面。
当候选读取请求是区段单位的读取请求并且对应于候选读取请求的目标数据是通过内部操作请求读取的顺序数据时,控制器:当在处理时刻的待定信用为第一参考值或更大时,可以从相同页面一起读取对应于候选读取请求的目标数据和附加数据;并且当在处理时刻的待定信用小于第一参考值时,可以仅读取对应于候选读取请求的目标数据。
当候选读取请求是区段单位的读取请求并且对应于候选读取请求的目标数据是通过内部操作请求读取的随机数据或由主机请求读取的数据时,控制器可以仅读取对应于候选读取请求的目标数据。
控制器可以进一步适用于:基于对应于在选择时刻选择的候选读取请求的目标数据的类型和在选择时刻的待定信用,确定是否对在选择时刻选择的候选读取请求执行关联操作。
当在选择时刻选择的候选读取请求的目标数据是通过内部操作请求读取的数据或者是由主机请求读取的随机数据时,当在选择时刻的待定信用为第二参考值或更大时,控制器可以对在选择时刻选择的候选读取请求执行关联操作。
控制器:当多个存储器管芯中的至少一个在选择时刻处于空闲状态时,可以减小待定信用;当在选择时刻之前没有执行关联操作的情况下处理先前候选读取请求时,可以增加待定信用;当先前关联操作成功时,可以增加待定信用,而当先前关联操作失败时,可以减小待定信用;以及当在确定是否执行关联操作之后的参考时间或更长时间内未选择候选读取请求时,可以将待定信用重置为初始值。
根据本发明的实施例,一种存储器系统的操作方法,该存储器系统包括能够响应于读取请求而输出不同大小的数据的多个存储器管芯,该操作方法可以包括:执行对读取请求的关联操作,使得多个存储器管芯通过多个通道交错并输出对应于读取请求的目标数据;使用关联操作的结果确定待定信用;并且基于对应于读取请求的目标数据的类型和待定信用,从多个存储器管芯读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。
多个存储器管芯中的每一个可以包括:多个块,每个块包括多个页面,每个页面包括多个区段,每个区段包括多个存储器单元;以及页面缓冲器,适用于以页面单位高速缓存从多个块读取的数据,并且多个存储器管芯中的每一个可以响应于读取请求以区段单位或以页面单位从页面缓冲器输出所读取的数据。
在该确定中,可以基于在选择时刻之前是否已经执行了先前关联操作、先前关联操作是否成功以及多个存储器管芯在选择时刻的操作状态来确定待定信用,该选择时刻可以指示从多个基本读取请求之中选择候选读取请求作为关联操作的目标的时间。
在该读取中,当候选读取请求是区段单位的读取请求时,当处理候选读取请求时,可以基于对应于候选读取请求的目标数据的类型和在处理时刻的待定信用,从多个存储器管芯一起读取对应于候选读取请求的目标数据和存储在相同存储单位中的附加数据,该处理时刻是候选读取请求被处理的时间,并且该存储单位可以是页面。
该读取可以包括:当候选读取请求是区段单位的读取请求,并且对应于候选读取请求的目标数据是通过内部操作请求读取的顺序数据时,当在处理时刻的待定信用为第一参考值或更大时,从相同页面一起读取对应于候选读取请求的目标数据和附加数据;当候选读取请求是区段单位的读取请求,并且对应于候选读取请求的目标数据是通过内部操作请求读取的顺序数据时,当在处理时刻的待定信用小于第一参考值时,仅读取对应于候选读取请求的目标数据;并且当候选读取请求是区段单位的读取请求,并且对应于候选读取请求的目标数据为通过内部操作请求读取的随机数据或由主机请求读取的数据时,仅读取对应于候选读取请求的目标数据。
该操作方法可以进一步包括:基于对应于在选择时刻选择的候选读取请求的目标数据的类型和在选择时刻的待定信用,确定是否对在选择时刻选择的候选读取请求执行关联操作。
执行关联操作可以包括:当在选择时刻选择的候选读取请求的目标数据是通过内部操作请求读取的数据或者是由主机请求读取的随机数据时,并且当在选择时刻的待定信用为第二参考值或更大时,对在选择时刻选择的候选读取请求执行关联操作。
该确定可以包括:当多个存储器管芯中的至少一个在选择时刻处于空闲状态时,减小待定信用;当在选择时刻之前没有执行关联操作的情况下处理先前候选读取请求时,增加待定信用;当先前关联操作成功时,增加待定信用;当先前关联操作失败时,减小待定信用;以及当在确定是否执行关联操作之后的参考时间或更长时间内未选择候选读取请求时,将待定信用重置为初始值。
该操作方法可以进一步包括:在第一传输操作中,识别由于关联操作成功而关联的读取请求的目标地址,并通过多个通道将目标地址传输到多个存储器管芯;在第一接收操作中,在第一传输操作之后,通过多个通道以交错方式接收对应于所关联的读取请求的数据;在第二传输操作中,识别由于关联操作失败而未关联的读取请求的目标地址,并将该目标地址传输到多个存储器管芯;在第二接收操作中,在第二传输操作之后,从多个存储器管芯接收对应于未关联的读取请求的数据;并且将在第一或第二接收操作中接收到的数据输出到外部设备。
根据本发明的实施例,一种存储器系统可以包括:存储器装置,包括多个管芯,每个管芯具有多个页面,每个页面具有多个区段;以及控制器,分别通过多个通道电联接到管芯,并且适用于向管芯提供读取命令,以请求从各个管芯中不同偏移量的区段读取数据,并且控制管芯以根据全同步交错方案读取所请求的数据,该控制器可以控制每一个管芯以根据所提供的读取命令之中的相应读取命令的类型,以区段单位或以页面单位执行读取操作。
附图说明
图1A和图1B是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图3是示出根据本发明的另一实施例的存储器系统中的控制器的框图。
图4是示出存储器装置的内部结构的框图。
图5A和图5B示出由控制器执行的关联操作的特性。
图6是示出控制器的内部结构的框图。
图7至图9是描述用于操作存储器系统的方法的示例的流程图。
图10示出根据数据类型的控制器的操作。
图11A至11C示出控制器对多个读取请求的操作。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。然而,可以以不同的方式实施本发明的各方面和特征以形成其它实施例,包括任何本公开实施例的变型。因此,本发明不应被解释为限于本文所阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完整的,并且将向本发明所属领域的技术人员完全传达本公开。在整个公开中,相同的附图标记在整个本公开的各个附图和示例中表示相同的部件。注意的是,对“实施例”,“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文使用术语“第一”、“第二”、“第三”等以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与具有相同或相似名称的另一元件区分开。因此,一个实例中的第一元件可以在另一实例中被称为第二元件或第三元件,而不指示元件本身的任何改变。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,可能已经夸大了比例。当元件被称为连接或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由两者之间的一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间仅有的元件或也可存在一个或多个中间元件。
本文所使用的术语的目的仅是描述特定实施例而不旨在限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。类似地,不定冠词“一”和“一个”表示一个或多个,除非从语言或语境中可以清楚看出仅意指一个。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明存在所陈述的元件而不排除存在或添加一个或多个其它元件。如本文所使用的,短语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开通常所理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1A和图1B是示出根据本发明的实施例的存储器系统的框图。在嵌入有存储器系统110的计算装置或移动装置中,主机(例如,图2的主机102)可以与存储器系统110接合以用于数据输入/输出(I/O)操作。主机是可操作地与存储器系统110接合的外部装置。
参照图1A,存储器系统110可以包括控制器130和存储器装置150。控制器130可以输出由主机102请求并从存储器装置150传递的数据,或者将从主机102输入的数据存储在存储器装置150中。此外,控制器130可以在内部生成数据以便管理存储或输出主机102的数据的操作,并且可以在存储器装置150中存储数据或向存储器装置150输出数据。存储器装置150可以包括多个非易失性存储器单元,每个非易失性存储器单元能够存储数据。此处,存储器装置150的内部结构和/或配置可以根据存储器装置150的适用规格或期望性能而变化,这可以基于使用存储器系统110的目的或主机102的要求。
控制器130和存储器装置150可以通过多个数据路径联接。存储器装置150可以包括多个存储器管芯240A、240B、240C、240D,这些存储器管芯可以通过不同的数据路径与控制器130联接。第一存储器管芯240A和控制器130通过第一通道(CH1)和第一通路(W1)CH1W1联接,第二存储器管芯240B和控制器130通过第一通道(CH1)和第二通路(W2)CH1W2联接。第一存储器管芯240A和第二存储器管芯240B可以共享第一通道CH1,但是第一存储器管芯240A和第二存储器管芯240B可以独立地使用不同的通路W1、W2。另外,第三存储器管芯240C和控制器130通过第二通道(CH2)和第一通路(W1)CH2W1联接,第四存储器管芯240D和控制器130通过第二通道(CH2)和第二通路(W2)CH2W2联接。构成控制器130和存储器装置150之间的数据路径的通道和/或通路的数量可以根据存储器装置150中的存储器管芯的数量而变化。根据存储器系统110的目的或主机102的要求,将存储器管芯240A、240B、240C、240D连接到控制器130的通道和通路的数量可以不同。
参照图1B,多个存储器管芯240A、240B、240C和240D中的每一个可以包括多个页面PAGE0、PAGE1、PAGE2、……,每个页面包括多个存储器单元;多个块BLOCK000、BLOCK001、BLOCK002、……、BLOCK010、BLOCK011、BLOCK012、……,每个块包括多个页面PAGE0、PAGE1、PAGE2、……;以及多个平面PLANE00和PLANE01,每个平面包括存储器装置150的所有块的子集。此外,多个存储器管芯240A、240B、240C和240D中的每一个可以包括页面缓冲器PB000、PB001、PB002、……、PB010、PB011、PB012、……,用于以页面单位分别高速缓存输入到块BLOCK000、BLOCK001、BLOCK002、……、BLOCK010、BLOCK011、BLOCK012、……的数据或从其输出的数据。
此外,页面PAGE0、PAGE1、PAGE2、……中的每一个可以包括设定数量的区段SECTION0、SECTION1、SECTION2和SECTION3。也就是说,区段SECTION0、SECTION1、SECTION2和SECTION3中的每一个中包括的所有存储器单元的总和可以与页面PAGE0、PAGE1、PAGE2、……中的一个中包括的存储器单元的数量相同。此外,根据每个都包括设定数量的区段SECTION0、SECTION1、SECTION2和SECTION3的页面PAGE0、PAGE1、PAGE2、……中的每一个,页面缓冲器PB000、PB001、PB002、……、PB010、PB011、PB012、……中的每一个可以包括设定数量的区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3。可以通过上述配置输入或输出少于一个页面的数据量,在该配置中页面PAGE0、PAGE1、PAGE2、……中的每一个包括SECTION0、SECTION1、SECTION2和SECTION3。例如,假设如图1B所示在一个页面中包括四个区段SECTION0、SECTION1、SECTION2和SECTION3,为了以页面单位输入或输出数据,可以使用所有四个区段SECTION0、SECTION1、SECTION2和SECTION3以及相应的四个区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3来输入或输出数据。为了以小于页面单位的单位,即以区段单位,输入或输出数据,可以仅选择四个区段SECTION0、SECTION1、SECTION2和SECTION3中的三个或两个或一个来输入或输出数据。在这种情况下,未选择用于数据输入或输出的数据可能已存储在剩余区段中,即除了已经被选择用于数据输入或输出的区段。
如果数据是从区段中的某些区段输出的,则可以使用以下方法:读取这些区段中存储的所有数据,将所读取的数据高速缓存在相应的区段页面缓冲器中,选择和输出仅在属于与所选择的区段相对应的区段页面缓冲器的区段页面缓冲器中高速缓存的数据,并且删除高速缓存在尚未选择的剩余区段页面缓冲器中的数据而不输出这些数据。如上所述,如果除了以页面单位输入或输出数据的操作之外,还支持以小于页面单位的单位的数据输入或输出操作,即支持以区段单位的数据输入或输出操作,则根据通过一次读取操作读取了多少区段数据,读取操作所花费的时间可能会有所不同。
例如,如果从四个区段的第一区段SECTION0和第二区段SECTION1中读取数据,则在将四个区段的所有数据都高速缓存在四个区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3中之后,仅输出第一区段页面缓冲器PB_SEC0和第二区段页面缓冲器PB_SEC1的数据。如果从所有四个区段SECTION0、SECTION1、SECTION2和SECTION3中读取数据,则将这四个区段的所有数据都高速缓存在四个区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3中之后,将输出所有四个区段页面缓冲器的数据。在这种情况下,在仅输出四个区段页面缓冲器的两个区段页面缓冲器PB_SEC0和PB_SEC1的数据的操作和输出所有四个区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3的数据的操作之间可能存在时间差。无论是从两个区段SECTION0和SECTION1中读取数据还是从所有四个区段中的数据中读取数据,所有四个区段中的数据都需要高速缓存在四个区段页面缓冲器PB_SEC0、PB_SEC1、PB_SEC2和PB_SEC3中。因此,从四个区段SECTION0、SECTION1、SECTION2和SECTION3读取数据所需的时间可能是从两个区段SECTION0和SECTION1读取数据所需的时间的少于两倍。例如,从四个区段SECTION0、SECTION1、SECTION2和SECTION3读取数据所需的时间可能是从两个区段SECTION0和SECTION1读取数据所需的时间的约1.4倍。
作为参考,图1B示出多个存储器管芯240A、240B、240C和240D中的第一存储器管芯240A的详细配置。剩余的存储器管芯240B、240C和240D(未示出)可以具有与第一存储器管芯240A相同的配置。
参照图1A,存储器装置150中的多个存储器管芯240A、240B、240C、240D可以被配置为不同的模块并且经由不同的数据路径独立地与控制器130联接。当使用多个数据路径进行数据交换时,多个存储器管芯240A、240B、240C、240D和控制器130可以经由用于交换数据的多个数据路径使用交错方案来提高数据传送的速度。
对于提高存储器装置150和控制器130之间的数据传送速度的交错方案,将待存储的数据分布到数个模块而不是单个模块。在运行交错方案时,存储器系统可以使用地址限制结构或地址方案,以将多条新数据分配和存储在存储器装置150的多个模块之上和之中。例如,当对四条数据进行编程时,常规的存储器系统将这四条数据分别存储在四个存储器管芯中。此处,数据的条数可以指可通过执行的单个编程操作或单个写入操作一起存储的数据单位的数量。例如,当执行以页面单位的编程操作(或写入操作)时,四条数据可以包括在四个页面中编程的数据量。
为了提高编程操作和读取操作的操作效率并增强分布式存储,存储器系统可以采用地址限制结构。在地址限制结构中,当将四条数据编程在四个存储器管芯中时,在每个存储器管芯中分配相同的物理位置。例如,当将四条数据存储在四个存储器管芯中时,可以将四条数据中的每一条分别地存储在四个存储器管芯中的相应的一个的第五物理位置。此后,当对八条数据进行编程时,可以将八条数据存储在每个存储器管芯的第六和第七物理位置。此处,物理位置可以指示存储器管芯中的块或页面。
当将五条数据存储在具有地址限制结构的存储器系统中的四个存储器管芯中时,可以将两条数据存储在一个存储器管芯的第一和第二物理位置,并且可以将三条数据分别存储在其它三个存储器管芯的第一物理位置。在具有地址限制结构的存储器系统中,由于与下一个编程请求一起输入的一条数据不能被随后写入其它三个存储器管芯的第二物理位置,所以将三条虚拟数据分别写入其它三个存储取管芯的该第二物理位置。
当存储器系统具有用于交错操作的地址限制结构时,由于每当对奇数条数据或与存储器管芯的数量不匹配的多条数据执行编程操作时,可能要对多条虚拟数据进行编程,因此操作效率可能劣化。另外,因为每个存储器管芯并不总是具有相同的操作状态(在健康、损耗等方面),所以存储器系统可以独立地执行附加操作以补偿每个存储器管芯条件,这可能增加开销。换言之,影响一个存储器管芯的操作条件可能使对涉及相同交错操作的关联存储器管芯的存储器操作延迟。
根据本公开的实施例的存储器系统110采用完全同步交错结构,能够在没有地址限制结构的情况下支持控制器130和存储器装置150之间的交错操作。完全同步交错结构不具有用于将数据存储在存储器装置150中的多个存储器管芯240A、240B、240C、240D中的每一个中的相同位置的地址限制。控制器130可以根据每个存储器管芯的操作条件和操作状态来分配待被编程的多条数据。这样做,不需要将这多条数据均匀地分布到存储器管芯之中。例如,如果四个存储器管芯240A、240B、240C、240D中的一个(比如存储器管芯240A)由于内部正执行内部操作而不能立即对一条数据进行编程,则控制器130可以将数据传送到剩余的存储器管芯中(例如,240B、240C、240D)。控制器130可以在多个存储器管芯240A、240B、240C、240D上分布数据,以在不应用诸如地址限制结构的严格规则的情况下提高数据传输的效率并减小编程操作的操作裕量。另外,在根据实施例的存储器系统110中,与具有地址限制结构的存储器系统中的情况一样,不需要对虚拟数据进行编程。
在控制器130将一条数据传送到存储器装置150中并且将该条数据编程在存储器装置150中之后,控制器130可以生成或更新将逻辑地址与对应于该条数据的物理位置(物理地址)关联的映射信息。另外,控制器130可以将所生成或更新的映射信息存储在存储器装置150中。
因为存储器系统110不采用如上所述的地址限制结构,所以可能难以保证在读取和输出由例如主机的外部装置请求的多条数据的过程中控制器130与存储器装置150之间的数据传输以交错格式(交错)执行。因此,控制器130可以包括用于使由主机请求的多个读取操作关联的关联电路194,从而可以将通过多个读取操作从存储器装置150输出的多条数据进行交错。
参照图1A,控制器130可以包括输入/输出(I/O)缓冲器控制电路198、关联电路194、操作控制电路196、待定信用确定电路195、监测电路197以及读取模式选择电路199。
如本公开中所使用的,术语“电路”可以指,(a)纯硬件电路实施方案中的一个或多个,例如仅在模拟和/或数字电路中的实施方案,(b)电路和软件(和/或固件)的组合,例如:(i)处理器的组合,或(ii)一起工作以使得诸如移动电话或服务器执行各种功能的包括数字信号处理器、软件和存储器的处理器/软件的一部分,以及(c)使用软件或固件的电路,例如微处理器或微处理器的一部分,即使软件或固件物理上不存在。作为另一示例,术语“电路”可以指一个或多个处理器或处理器的一部分以及所附带的软件和/或固件。术语“电路”可以指用于存储装置的集成电路。
I/O缓冲器控制电路198可以控制输入缓冲器和/或输出缓冲器,在该输入缓冲器中临时存储了来自主机的命令或数据或者控制器内生成的命令或数据,在输出缓冲器中临时存储与来自主机的命令或在控制器内生成的命令相对应的数据。例如,当存储器系统110将针对十五条数据的读取请求(或读取命令)传输到主机时,控制器130可以将读取请求存储在输入缓冲器中,可以从存储器装置150接收对应于读取请求的十五条数据,可以将这十五条数据临时存储在输出缓冲器中,然后可以将这十五条数据输出到主机。此外,控制器130可以在内部生成针对五条数据的读取请求,可以将读取请求存储在输入缓冲器中,可以从存储器装置150接收对应于读取请求的五条数据,可以将这五条数据临时存储在输出缓冲器中,然后可以将这五条数据用于控制器130内的操作。I/O缓冲器控制电路198可以识别在输入缓冲器中已经存储了多少读取请求。I/O缓冲器控制电路198可以识别出在输出缓冲器中已经存储了多少数据。
操作控制电路196可以识别存储器装置150中存储了所请求读取的数据的物理位置,并且可以从所识别的物理位置读取所请求读取的数据。如果已经从主机接收到输入缓冲器中存储的读取请求,则对应于该读取请求的逻辑地址可能已经包括在该读取请求中。在这种情况下,操作控制电路196可以根据读取请求(或读取命令)和从输入缓冲器接收到的逻辑地址,基于映射信息将逻辑地址转换为物理地址,并且可以从存储器装置150请求该物理地址中的数据。如果输入缓冲器中存储的读取请求已经由控制器内部生成并传输,则对应于该读取请求的物理地址可能已经包括在该读取请求中。在这种情况下,操作控制电路196可以识别从输入缓冲器接收的物理地址,并且可以从存储器装置150请求对应于该读取请求的数据。在这种情况下,物理地址可以指示存储器装置150的多个存储器管芯240A、240B、240C和240D内的特定位置。如果操作控制电路196按照输入缓冲器中存储的顺序执行读取请求,则物理地址可能随机地指示多个存储器管芯240A、240B、240C和240D中的一个。在这种情况下,可以执行或者可以不执行交错操作。
当I/O缓冲器控制电路198确定待输出到主机的数据被存储在输出缓冲器中时,它可以将输入缓冲器中存储的读取请求(或读取命令)传输到关联电路194。关联电路194可以检查关于对应于来自I/O缓冲器控制电路198的多个读取请求的多个逻辑地址的映射信息,以使多个读取请求关联,从而操作控制电路196可以根据交错方案,例如多条数据在多个存储器管芯240A、240B、240C、240D之间交错,执行对应于多个读取请求的多个读取操作。在本文中,由关联电路194执行的关联操作可以支持控制器130与多个存储器管芯240A、240B、240C、240D之间的并行处理和分布式计算。当多个组件共享单个数据路径时,多个组件可以在单个数据路径中将其信号或数据交错。进一步,当单个组件使用多个数据路径时,单个组件可以将多个信号或多条数据分布在多个数据路径上。关联操作可以使得多个读取请求中的一些通过多个通道被并行地传递到多个存储器管芯中,从而经由多个通道并行地从多个存储器管芯输出对应于多个读取请求的多条数据。对多个读取请求的关联操作可以包括:可以根据交错格式将向存储器管芯240A、240B、240C、240D请求的多条数据从存储器装置150传送到控制器130。
例如,假设主机请求存储器装置150中存储的十五条数据,并且请求控制器130内生成的五条数据。控制器130可以从主机接收针对十五条数据的读取请求,并且可以生成针对内部生成的五条数据的读取请求。此外,I/O缓冲器控制电路198可以将针对二十条数据的20个读取请求传输到关联电路194。关联电路194对针对二十条数据的20个读取请求执行关联操作。关联电路194尝试使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吞吐量。
因此,I/O缓冲器控制电路198可以不将从主机接收到的或在控制器130内生成的所有读取请求传输到关联电路194。也就是说,I/O缓冲器控制电路198可以在从主机102接收的或在控制器内生成的多个基本读取请求中选择至少一些第二读取请求(候选读取请求),并且可以仅将候选读取请求传输到关联电路194。例如,尽管存储器系统110识别了待从输出缓冲器输出到主机的数据,并且关联电路194执行了关联操作,但是仅当确定读取请求的传输不影响存储器系统110的数据I/O吞吐量时,I/O缓冲器控制电路198才可以将从主机接收到的或在控制器内生成的读取请求传输到关联电路194。基本读取请求和候选读取请求中的每一个可以是指示存储器装置150从其读取目标数据的任何正常读取请求。I/O缓冲器控制电路198可以从主机102接收基本读取请求。I/O缓冲器控制电路198可以将基本读取请求选择为候选读取请求。参照图11A至图11C更详细地描述基本读取请求和候选读取请求。
此外,关联电路194可以不对从I/O缓冲器控制电路198接收的任何候选读取请求执行关联操作。也就是说,关联电路194可以基于待定信用对从I/O缓冲器控制电路198接收的候选读取请求执行或不执行关联操作。例如,当待定信用是参考值或更大时,关联电路194可以对从I/O缓冲器控制电路198接收的候选读取请求执行关联操作。相反,当待定信用小于参考值时,关联电路194可以不对从I/O缓冲器控制电路198接收的候选读取请求执行关联操作。在这种情况下,待定信用可以用作索引,当关联电路194对从I/O缓冲器控制电路198接收的候选读取请求执行关联操作时,通过该索引可以预测候选读取请求的关联操作的概率、可能性、模式或趋势。基于这样的待定信用,控制器130可以通过避免运行不必要的关联操作或引起存储器系统110内的开销的关联操作来提高内部操作的效率。
此外,根据与从I/O缓冲器控制电路198接收的候选读取请求相对应的数据的物理位置,由关联电路194执行的关联操作可能成功或失败。如果预测到针对与候选读取请求相对应的数据的物理位置的交错操作,则可以说由关联电路194执行的关联操作已经成功。由于关联操作成功,由关联电路194所关联的候选读取请求可以在关联状态下被传输到操作控制电路196。然而,如果未预测到针对与候选读取请求相对应的数据的物理位置的交错操作,则可以说由关联电路194执行的关联操作已经失败。由于关联操作失败,未由关联电路194所关联的候选读取请求可以在未关联状态下被传输到操作控制电路196。此外,基于与从I/O缓冲器控制电路198接收的候选读取请求相对应的数据类型,可能不需要确定是否执行由关联电路194执行的关联操作。也就是说,如果与从I/O缓冲器控制电路198接收的候选读取请求相对应的数据是顺序请求读取的数据,则关联电路194可以不对该候选读取请求执行关联操作。这样做的原因是,如果由主机102请求的读取数据是顺序数据,则即使数据被写入存储器装置150中,这种数据的数量很可能相对较大,并且很可能以交错方式将数据分布并存储在多个存储器管芯中。因此,尽管关联电路194不执行单独的关联操作,但是很可能以交错方式读取多个顺序输入的候选读取请求。例如,对应于诸如电影或音乐的具有相对高容量的文件的多个读取请求可以对应于由主机102所请求的顺序读取数据。
当从基本读取请求中选择了候选读取请求时,待定信用确定电路195可以基于在选择候选读取请求的选择时刻之前是否已经执行了先前关联操作、在选择时刻之前关联操作是否成功以及在选择时刻多个存储器管芯240A、240B、240C和240D的操作状态来确定待定信用。在这种情况下,监测电路197可以识别多个存储器管芯240A、240B、240C和240D的操作状态。也就是说,当选择了待从I/O缓冲器控制电路198传输到关联电路194的候选读取请求时,待定信用确定电路195可以基于在选择候选读取请求的选择时刻之前关联电路194是否已经执行了先前关联操作、如果已经执行了关联操作则所执行的关联操作是否成功以及在选择时刻多个存储器管芯240A、240B、240C和240D的操作状态来调整待定信用的值。
待定信用的值足够高于参考值的状态可以意为控制器130的操作裕量足够。也就是说,这可能意为尽管关联电路194执行了关联操作,但它可能不会对存储器系统110的数据I/O吞吐量产生不良影响。
如上所述,当待定信用的值足够高于参考值时,与关联电路194执行的关联操作相独立地,控制器130可以从多个存储器管芯240A、240B、240C和240D读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。相同的存储单位可以是页面。目标数据和附加数据可以存储在相同页面内的区段中。也就是说,当待定信用的值足够高于参考值时,控制器130可以对从主机接收的或在控制器内生成的多个读取请求中的至少一些执行关联操作,并且可以从多个存储器管芯240A、240B、240C和240D读取对应于多个读取请求中的至少一些的目标数据以及与目标数据存储在相同存储单位中的附加数据。在这种情况下,尽管待定信用足够高于参考值,但是仅当对应于读取请求的目标数据的类型是预定类型时,控制器130才可以一起读取目标数据和附加数据。在这种情况下,待定信用的参考值,即是否对读取请求执行关联操作的标准与参考值,即是否一起读取对应于读取请求的目标数据和附加数据的标准可以不同。例如,假设参考值,即是否一起读取对应于读取请求的目标数据和附加数据的标准是第一参考值,并且待定信用的参考值,即是否对读取请求执行关联操作的标准是第二参考值,则第一参考值和第二参考值可以相同或不同。此外,第一参考值可以大于或小于第二参考值。
换言之,当待定信用足够高于参考值时,控制器130可以根据对应于读取请求的目标数据的类型,从多个存储器管芯240A、240B、240C和240D中读取与目标数据存储在相同存储单位中的附加数据。
在这种情况下,所有从主机接收的或在控制器内生成的多个基本读取请求可以是针对目标数据的读取请求。然而,可以将待定信用足够高于参考值的状态假设为选择多个基本读取请求中的至少一些候选读取请求并对所选择的候选读取请求频繁地执行关联操作的状态。对在如上所述频繁地执行关联操作的状态下未被选择为关联操作的目标的读取请求执行的单独的附加操作可能是低效率的操作。因此,控制器130可以选择执行以下操作:是一起读取目标数据和附加数据,还是仅读取仅关于属于多个基本读取请求并已被选择为关联操作的目标的候选读取请求的目标数据的操作。在这种情况下,待定信用的第一参考值,即是否一起读取对应于读取请求的目标数据和附加数据的标准可以等于或高于待定信用的第二参考值,即是否对读取请求执行关联操作的标准。作为参考,控制器130还可以选择执行以下操作:是一起读取目标数据和附加数据,还是仅读取关于属于多个基本读取请求且尚未被选择为关联操作的目标的读取请求的目标数据。
参照图1B所示的页面和区段之间的关系,可以限定对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。具体地,如果对应于读取请求的目标数据是来自特定区段的数据,则除已存储目标数据的被请求的区段之外,所有页面在该区段中的数据也可以被高速缓存在页面缓冲器中。以区段单位仅选择并输出已经高速缓存在页面缓冲器中的页面单位的数据之中的某些区段的数据的操作和输出页面单位的所有数据的操作在它们的操作控制方法上可能相似,并且在处理时间上可能不会有很大的不同。因此,当将对应于读取请求的数据限定为目标数据时,与目标数据存储在相同存储单位中的附加数据可以是与目标数据存储在相同页面中的数据。
重新参照图1B对此进行描述。如果属于多个基本读取请求并且已被选择为关联操作目标的候选读取请求是小于页面单位的区段单位的读取请求,则当控制器130处理候选读取请求时,控制器130可以基于对应于候选读取请求的目标数据的类型以及在候选读取请求的处理时刻的待定信用,从多个存储器管芯240A、240B、240C和240D读取对应于候选读取请求的目标数据以及与目标数据一起存储在相同页面中的附加数据。
如果从关联电路194传输到操作控制电路196的读取请求是区段单位的读取请求,则读取模式选择电路199可以基于对应于所传输的读取请求的目标数据的类型以及在读取请求的传输时刻的待定信用来选择读取模式。如上所述,由读取模式选择电路199选择的读取模式可以应用于操作控制电路196,并且可以在处理从关联电路194接收到的读取请求时应用。
也就是说,操作控制电路196可以识别存储器装置150中存储了请求读取的数据的物理位置,并且可以通过应用由读取模式选择电路199选择的读取模式来从所识别的物理位置读取请求读取的数据。
控制器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中交错,所以根据本公开的实施例的存储器系统110可以避免使其数据输入/输出性能(例如,I/O吞吐量)劣化。
图2是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
参照图2,数据处理系统100可以包括与存储器系统110接合或可操作地联接的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等非便携式电子装置中的任何一个。
主机102也包括至少一个操作系统(OS),该操作系统通常可以管理和控制在主机102中执行的功能和操作。OS可以提供与存储器系统110接合的主机102与存储器系统110的用户之间的互操作性。OS可以支持对应于用户的请求的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以包括通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。个人操作系统可以出于一般目的而接受支持服务,包括Windows和Chrome。企业操作系统可以专门用于确保和支持高性能,包括Windows servers、Linux和Unix。进一步,移动操作系统可以包括Android和iOS。移动操作系统可以用于支持针对移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。对应于用户的请求,主机102可以与存储器系统110协作运行多个操作系统。主机102可以将对应于用户的请求的多个命令传输到存储器系统110中,从而在存储器系统110内执行对应于命令的操作。下面参照图4和图5描述在存储器系统110中处置多个命令。
存储器系统110可以响应于来自主机102的请求而执行特定功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可以利用可与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡和记忆棒。
存储器系统110的存储装置可以利用诸如以下的易失性存储器装置来实施:动态随机存取存储器(DRAM)或静态RAM(SRAM),并且/或者存储器系统110的存储装置可利用诸如以下的非易失性存储器装置来实施:只读存储器(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,多个存储块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)的固件来实施。根据本发明的实施例,主机接口132可以包括以上参照图1描述的缓冲器控制电路198。
ECC电路138可以校正待在存储器装置150中处理(例如,从其输出)的数据的错误位。为此,ECC电路138可以包括ECC编码器和ECC解码器。此处,ECC编码器可以对待编程在存储器装置150中的数据执行错误校正编码,以生成添加了奇偶校验位的经编码的数据,并将该经编码的数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可以确定错误校正解码是否已经成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC电路138可以使用在ECC编码过程中生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可以不校正错误位,而是可以输出指示错误位不可校正的错误校正失败信号。
ECC电路138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(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。
根据实施例,处理器134和存储器接口142可以用于执行以上参照图1A进行了描述的操作控制电路196的操作。根据另一实施例,处理器134和存储器接口142可以用于执行以上参照图1A进行了描述的关联电路194的操作。根据另一实施例,处理器134和存储器接口142可以用于执行以上参照图1A进行了描述的待定信用确定电路195的操作。根据另一实施例,处理器134和存储器接口142可以用于执行以上参照图1A进行了描述的监测电路197的操作。根据另一实施例,处理器134和存储器接口142可以用于执行以上参照图1A进行了描述的读取模式选择电路199的操作。
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可以通过以上参照图1描述的监测电路197检查联接到多个存储器管芯的多个通道(或通路)的状态。
作为示例而非限制,控制器130可以识别关于与存储器装置150中的存储器管芯关联的通道(或通路)的状态。控制器130可以确定每个通道或每个通路处于忙碌状态、就绪状态、激活状态、空闲状态、正常状态或异常状态中的一个。控制器可以基于物理块地址确定指令(和/或数据)是通过哪个通道或通路传递的,例如指令(和/或数据)被传递到哪个(哪些)管芯。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述存储器装置150的特性的块或页面参数,并且可以具有设置的格式或结构。描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定指令或数据利用哪个(哪些)通道或通路交换。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以发现不满足进一步使用的条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150是诸如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程到新存储块中。坏块可能会大大降低具有3D堆叠结构的存储器装置150的利用率和存储器系统110的可靠性。因此,可靠的坏块管理可以增强或提高存储器系统110的性能。
图3是示出根据本公开的另一实施例的存储器系统中的控制器的框图。
参照图3,控制器130与主机102和存储器装置150进行协作。控制器130可以包括主机接口(I/F)132、闪存转换层(FTL)电路40、存储器接口(I/F)142和存储器144。
尽管未在图3中示出,但是根据实施例,图2中的ECC电路138可以包括在闪存转换层(FTL)电路40中。在另一实施例中,ECC电路138可以实施为包括在控制器130中或与控制器130关联的独立的模块、电路或固件。
而且,根据实施例,闪存转换层(FTL)电路40和存储器接口142可以用作以上参照图1进行了描述的关联电路194。根据另一实施例,闪存转换层(FTL)电路40和存储器接口142可以用作以上参照图1进行了描述的待定信用确定电路195。根据另一实施例,闪存转换层(FTL)电路40和存储器接口142可以用作以上参照图1进行了描述的监测电路197。根据另一实施例,闪存转换层(FTL)电路40和存储器接口142可以用作以上参照图1进行了描述的读取模式选择电路199。
主机接口132可以处置来自主机102的命令和数据。作为示例而非限制,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储来自主机102的命令和数据,并且以存储的顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可以从缓冲器管理器52顺序地传输用于处理命令和数据的事件。
可以从主机102连续地接收具有相同特性的多个命令或数据,或者可以将具有不同特性的命令和数据混合后传输到存储器系统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可以执行图2中的控制器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可以具有足够的空闲块。如果块管理器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可以执行映射更新操作以确保准确性。
存储器装置150可以包括多个存储块。根据可在该块的一个存储器单元中存储或表示的位的数量,多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐久性。MLC存储块包括由每个存储多位数据(例如,两位或更多位)的存储器单元实现的多个页面。与SLC存储块相比,MLC存储块在相同的空间可以具有更大的存储容量。MLC存储块能够在存储容量方面高度集成。在实施例中,存储器装置150可以利用诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。双层单元存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150是诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。在另一实施例中,存储器装置150可以是相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)以及自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器(STT-MRAM))中的至少一个。
图4是示出存储器装置的内部结构的框图。更具体地,图4示出存储器装置150的内部配置。
参照图4,存储器装置150可以包括多个存储器管芯240A、240B、240C、240D。第一存储器管芯240A和第二存储器管芯240B可以通过第一通道CH#1连接到控制器130(参见图1至图3)。第三存储器管芯240C和第四存储器管芯240D可以通过第二通道CH#2连接到控制器130。
图4示出四个存储器管芯240A、240B、240C、240D通过两个通道CH#1、CH#2联接到控制器130的配置。然而,实施例不限于管芯和通道的任何特定配置。即使存储器装置150可以包括至少两个管芯和至少两个通道,但是给定配置的管芯和通道的数量取决于各种因素,例如存储器系统的整体配置、使用它的目的以及定义存储器系统与所接合主机之间通信的规范。
当多个存储器管芯连接到单个通道时,每个存储器管芯可以通过不同的通路与该通道联接。在图4中,第一存储器管芯240A和第二存储器管芯240B可以分别通过第一通路W1和第二通路W2与第一通道CH#1联接。第三存储器管芯240C和第四存储器管芯240D可以分别通过第一通路W1和第二通路W2与第二通道CH#2联接。在此特定配置中,通路的数量与存储器管芯的数量相同。
图5A和图5B示出由控制器执行的关联操作的特性。具体地,图5A和图5B中的两个曲线示出通过如下所述重复地执行关联操作而获得的结果。
参照图5A,当图1的控制器130中的关联电路194尝试对增加数量的读取请求建立关联时,随着读取请求的数量增加,使这种读取请求关联的概率增加。例如,在20个读取请求中找到关联的概率大于在5个读取请求中找到关联的概率。
当存储器系统中不存在地址限制时,可以不分布存储器装置150中的与随几个读取请求一起传递的逻辑地址相对应的物理位置。在这种情况下,由关联电路194所关联的读取请求的数量可以很小。然而,当大量的读取请求被传输到存储器系统110时,读取请求被关联的概率更高。例如,当读取请求的数量是第二参考值REF2时,与读取请求的数量是第一参考值REF1时相比,关联的概率更高,其中REF1小于REF2。
参照图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吞吐量)可能劣化。
如图5B所示,如果关联电路194仅使用从I/O缓冲器控制电路198接收的读取请求的数量作为参考REF3或REF4来确定是否执行关联操作,则确定是否执行关联操作的操作的准确性或效率可能减小。例如,如果比预测概率更频繁地发生关联操作成功,则可以在比预测时间短的时间内处理对应于预测数量的所有读取请求,并且关联电路194然后可以进入空闲状态。相反,如果比预测概率更频繁地发生关联操作失败,则可能无法在预测时间内处理对应于预测数量的所有读取请求,并且数据I/O吞吐量可能由于关联电路194的操作延迟而受到不利影响。此外,如果关联操作的成功仅相对于多个存储器管芯240A、240B、240C和240D中的特定存储器管芯重复发生,则并非关联操作目标(或关联操作已失败)的剩余存储器管芯可能由于优先处理关联操作已成功的读取请求的策略而保持空闲状态(尽管存在相应的读取请求)。
为了解决这样的问题,当选择了待从I/O缓冲器控制电路198传输到关联电路194的候选读取请求时,待定信用确定电路195可以从关联电路194中检查关联电路194是否已经在选择候选读取请求的选择时刻之前执行了先前关联操作,并且如果已经执行了关联操作则执行的关联操作是否成功,可以从监测电路197识别在选择时刻的多个存储器管芯240A、240B、240C和240D的操作状态,可以收集识别结果,然后可以将所收集的结果转换为称为待定信用的数值。接下来,关联电路194可以基于在选择时刻确定的待定信用,确定是否对在选择时刻选择并输入的候选读取请求执行关联操作。
图6是示出控制器的内部结构的框图。
参照图6,控制器130可以包括输入缓冲器186、输出缓冲器184、I/O缓冲器控制电路198、关联电路194、待定信用确定电路195、监测电路197、映射存储器182、操作控制电路196和读取模式选择电路199。例如,I/O缓冲器控制电路198、关联电路194和操作控制电路196可以在结合输出缓冲器186、输入缓冲器184、待定信用确定电路195、监测电路197和映射存储器182进行操作的同时确定执行或停止关联操作。此外,关联电路194、操作控制电路196和待定信用确定电路195可以在结合读取模式选择电路199进行操作的同时,在读取对应于读取请求的目标数据时选择是否读取与目标数据有关的附加数据。
在一些实施例中,输出缓冲器186、输入缓冲器184和映射存储器182可以是功能上独立的组件,并且可以在参照图2和图3描述的存储器144内实施。此外,在一些实施例中,输出缓冲器186、输入缓冲器184和映射存储器182可以被实施为多个非易失性存储器装置或多个高速缓存存储器。
例如,输出缓冲器186和输入缓冲器184可以具有例如队列的数据结构。在这种情况下,输出缓冲器186和输入缓冲器184可以以存储的顺序(FIFO)输出数据。映射存储器182可以根据映射数据或映射信息的存储或管理策略而具有各种结构。
控制器130可以将逻辑地址,即从主机102接收到的地址(参照图2和图3),转换成指示存储器装置150(参照图1至图4)内的物理位置的物理地址。对于地址转换,控制器130可以加载存储器装置150中存储的映射数据或映射信息。
在一些实施例中,如果控制器130中包括的或与控制器130一起操作的存储器144(参照图2和图3)的存储空间足够,则可以一次调用用于地址转换的所有映射数据或映射信息。然而,在将存储器系统110(参照图1至图3)安装在便携式终端等上的情况下,控制器130可能难以具有足够的存储空间来存储所有映射数据或映射信息。在这种情况下,控制器130可以按以下方式来使用在存储器144内存储映射数据或映射信息的空间:从存储器装置150调用特定的映射信息、使用或更新特定的映射信息、将特定映射信息存储在存储器装置150中、并且调用存储器装置150中存储的另一条映射信息。
如果请求的映射数据不能被存储在存储器144内的区域中,则控制器130可以移除该区域内最近最少使用的映射数据。此外,再例如,如果请求的映射数据不能被存储在存储器144内的区域中,则控制器130可以去除该区域内的最不频繁使用的映射数据。控制器130可以从存储器装置150请求用于地址转换的映射数据或映射信息,但是这对于存储器系统110的整体性能或I/O吞吐量可能是开销。因此,有必要允许控制器130不请求不必要的映射数据或映射信息。
例如,假设从主机102(参照图2和图3)输入的用于关联操作的读取请求的数量是20个。作为基于与20个读取请求有关的逻辑地址检查映射存储器182的结果,针对11个读取请求的映射数据或映射地址可能存在于映射存储器182中,并且针对9个读取请求的映射数据或映射地址可能不存在于映射存储器182中。在这种情况下,控制器130可以将针对9个读取请求的映射数据或映射地址加载到映射存储器182中。在一些实施例中,如果映射存储器182的存储空间不足,则关联电路194可以首先对可以识别其映射地址的读取请求执行关联操作。
从存储器系统110(参见图1至图3)的I/O吞吐量的角度来看,可以将由关联电路194执行的关联操作识别为开销。因此,可能更优选地是允许操作控制电路系统196处于激活状态,而不是使关联电路194对所有所传输的读取请求执行关联操作。
因此,关联电路194可以基于在I/O缓冲器控制电路198选择候选读取请求的选择时刻确定的待定信用和对应于候选读取请求的数据类型,来确定是否对在选择时刻选择并从I/O缓冲器控制电路198接收的候选读取请求执行关联操作。例如,如果由I/O缓冲器控制电路198选择的候选读取请求的数据是已经通过控制器130的内部操作请求读取的数据或者是主机102请求的随机读取数据,当在I/O缓冲器控制电路198选择候选读取请求的选择时刻确定的待定信用为参考值或更大时,关联电路194可以对在选择时刻选择并从I/O缓冲器控制电路198接收的候选读取请求执行关联操作。此外,如果由I/O缓冲器控制电路198选择的候选读取请求的数据是通过控制器130的内部操作请求读取的数据或者是由主机102请求读取的随机数据,则当在I/O缓冲器控制电路198选择候选读取请求的选择时刻确定的待定信用小于参考值时,关联电路194可以不对在选择时刻选择并从I/O缓冲器控制电路198接收的候选读取请求执行关联操作。此外,如果由I/O缓冲器控制电路198选择的候选读取请求的数据是由主机102请求读取的顺序数据,则关联电路194可以不对在选择时刻选择并从I/O缓冲器控制电路198接收的候选读取请求执行关联操作,而不考虑在I/O缓冲器控制电路198选择候选读取请求的选择时刻确定的待定信用的值。作为参考,已通过控制器130的内部操作请求读取的数据的示例包括从存储器装置150读取到映射存储器182的映射数据、从存储器装置150读取的用于垃圾收集操作的数据、从存储器装置150读取的用于读取回收操作的数据或从存储器装置150读取的用于损耗均衡操作的数据。
在这种情况下,待定信用确定电路195可以通过检查关联电路194在选择待从I/O缓冲器控制电路198传输到关联电路194的候选读取请求的选择时刻之前是否已经执行了先前关联操作来确定待定信用。
具体地,待定信用确定电路195可以响应于处理在I/O缓冲器控制电路198选择候选读取请求的选择时刻之前没有关联操作的候选读取请求来增加待定信用。更具体地,待定信用确定电路195可以基于在I/O缓冲器控制电路198选择候选读取请求的选择时刻之前没有关联操作的情况下而处理的候选读取请求的预期处理时间来增加待定信用。例如,如果在没有关联操作的情况下处理的候选读取请求的预期处理时间是50us,则待定信用确定电路195可以通过将当前待定信用增加5来确定待定信用。此外,如果在没有关联操作的情况下处理的候选读取请求的预期处理时间是10us,则待定信用确定电路195可以通过将当前待定信用增加1来确定待定信用。作为参考,在没有关联操作的情况下处理候选读取请求的情况可以是在I/O缓冲器控制电路198选择候选读取请求的选择时刻由待定信用确定电路195确定的待定信用小于参考值的情况。此外,两个不同的读取请求可能由于例如因为待响应于读取请求而从存储器装置150读取的数据的大小不同的情况而具有不同的预期处理时间。在这种情况下,因为已知响应于读取请求而从存储器装置150读取的数据的大小,所以也可以预测对应于读取请求的预期处理时间。根据存储器装置150的类型或吞吐量,对应于读取请求的预期处理时间可以不同。
此外,在选择待从I/O缓冲器控制电路198传输到关联电路194的候选读取请求的选择时刻之前执行了先前关联操作之后,待定信用确定电路195可以通过从关联电路194检查所执行的关联操作是否成功来确定待定信用。
具体地,待定信用确定电路195可以基于在I/O缓冲器控制电路198选择候选读取请求的选择时刻之前由关联电路194运行的先前关联操作的成功来增加待定信用,并且可以基于关联操作的失败而减小待定信用。更具体地,待定信用确定电路195可以基于由于在I/O缓冲器控制电路198选择候选读取请求的选择时刻之前由关联电路194运行的先前关联操作的成功而预期缩短的时间来增加待定信用。此外,待定信用确定电路195可以基于由于在I/O缓冲器控制电路198选择候选读取请求的选择时刻之前由关联电路194运行的先前关联操作的失败而消耗的时间来减小待定信用。例如,如果由于关联电路194运行的关联操作成功而期望缩短的时间是30us,则待定信用确定电路195可以通过将当前待定信用增加3来确定待定信用。此外,如果由于关联电路194运行的关联操作失败而消耗的时间是20us,则待定信用确定电路195可以通过将当前待定信用减小2来确定待定信用。作为参考,由于关联操作成功而可以减少时间的原因是,如果关联操作成功,则一次至少可以以交错方式处理两个读取请求,并且与在没有关联操作的情况下独立地处理至少两个读取请求的情况相比,使用的时间更少。也就是说,在没有关联操作的情况下独立地处理至少两个读取请求所预期使用的时间与由于关联操作成功而以交错方式处理至少两个读取操作所预期使用的时间之间的差值可能是由于关联操作成功而节省的时间。此外,如果关联操作失败,则时间被用于在执行关联操作之后检查关联操作失败,但是结果是,与不执行关联操作时一样地处理读取请求。也就是说,执行失败的关联操作所花费的时间表示该读取请求的处理中的额外时间。
此外,待定信用确定电路195可以通过从监测电路197识别多个存储器管芯240A、240B、240C和240D在选择待从I/O缓冲器控制电路198传输到关联电路194的候选读取请求的选择时刻的操作状态来确定待定信用。
具体地,当多个存储器管芯240A、240B、240C和240D中的至少一个在I/O缓冲器控制电路198选择候选读取请求的选择时刻处于空闲状态时,待定信用确定电路195可以减小待定信用。更具体地,待定信用确定电路195可以基于在I/O缓冲器控制电路198选择候选读取请求的选择时刻处于空闲状态的存储器管芯的数量来减小待定信用。例如,如果在选择时刻处于空闲状态的存储器管芯的数量是1,则待定信用确定电路195可以通过将当前待定信用减小2来确定待定信用。此外,如果在选择时刻处于空闲状态的存储器管芯的数量是2,则待定信用确定电路195可以通过将当前待定信用减小4来确定待定信用。
此外,在关联电路194基于在I/O缓冲器控制电路198选择候选读取请求的选择时刻的待定信用确定是否执行关联操作之后,如果I/O缓冲器控制电路198在参考时间或更长时间内没有选择候选读取请求,则待定信用确定电路195可以将待定信用重置为初始值。也就是说,如果由关联电路194执行的关联操作在参考时间或更长时间内不是顺序的,则待定信用确定电路195可以将待定信用重置为初始值。在这种情况下,待定信用的初始值可以小于用作当关联电路194确定是否执行关联操作时参考的待定信用的参考值。作为参考,可以设置参考时间,使其表示被确定为彼此不是顺序的两个读取请求之间的时间。例如,参考时间可以是在将读取请求成功地执行关联操作之后将读取请求传输到多个存储器管芯并且完成读取请求的处理所花费的时间。
与由关联电路194执行的关联操作独立地,控制器130可以基于对应于读取请求的目标数据的类型以及由待定信用确定电路195确定的待定信用,从多个存储器管芯240A、240B、240C和240D读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。也就是说,与通过关联电路194对于从主机接收的或在控制器内生成的多个基本读取请求中的至少一些候选读取请求运行的关联操作独立地,控制器130可以通过读取模式选择电路199执行从多个存储器管芯240A、240B、240C和240D读取对应于候选读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据的操作。
在这种情况下,如图1B所示,多个存储器管芯240A、240B、240C和240D中的每一个都可以包括:页面PAGE0、PAGE1、PAGE2、……,每个页面都包含一定数量的区段,例如SECTION0、SECTION1、SECTION2和SECTION3;多个块BLOCK000、BLOCK001、BLOCK002、……、BLOCK010、BLOCK011、BLOCK012、……,每个块都包括页面PAGE0、PAGE1、PAGE2、……;以及页面缓冲器PB000、PB001、PB002、……、PB010、PB011、PB012、……,用于以某种单位高速缓存输入到块或从块输出的数据。也就是说,多个存储器管芯240A、240B、240C和240D中的每一个可以响应于读取请求以区段单位或以页面单位输出高速缓存在页面缓冲器PB000、PB001、PB002、……、PB010、PB011、PB012、……中的数据。
因此,如果候选读取请求涉及区段中的数据,则当控制器130处理候选读取请求时,控制器130可以基于对应于候选读取请求的目标数据的类型以及在候选读取请求的处理时刻由待定信用确定电路195确定的待定信用,从多个存储器管芯240A、240B、240C和240D中读取对应于候选读取请求的请求区段中存储的目标数据,并且也可以一起读取与目标数据存储在相同页面中的附加数据。在这种情况下,目标数据的类型可以指示目标数据是通过控制器130的内部操作请求读取的顺序数据、通过控制器130的内部操作请求读取的随机数据或者由主机102请求读取的数据。
具体地,如果候选读取请求是通过读取模式选择电路199的区段单位的读取请求,并且对应于该候选读取请求的目标数据是已经通过控制器130的内部操作请求读取的顺序数据,则当待定信用确定电路195在候选读取请求的处理时刻确定的待定信用是参考值或更大时,控制器130可以从多个存储器管芯240A、240B、240C和240D中读取对应于候选读取请求的目标数据以及与目标数据一起存储在相同页面中的附加数据。此外,如果候选读取请求是通过读取模式选择电路199的区段单位的读取请求,并且对应于候选读取请求的目标数据是已经通过控制器130的内部操作请求读取的顺序数据,则当待定信用确定电路195在候选读取请求的处理时刻确定的待定信用小于参考值时,控制器130可以仅选择对应于候选读取请求的目标数据,并且可以从多个存储器管芯240A、240B、240C和240D读取所选择的目标数据(第二读取模式CASE2)。此外,如果候选读取请求是通过读取模式选择电路199的区段单位的读取请求,并且对应于该候选读取请求的目标数据是已经通过控制器130的内部操作请求读取的随机数据或由主机请求读取的数据,则控制器130可以仅选择对应于候选读取请求的目标数据,而不考虑待定信用确定电路195所确定的待定信用,并且可以从多个存储器管芯240A、240B、240C和240D读取所选择的目标数据(第一读取模式CASE1)。参照图10更详细地描述第一读取模式CASE1和第二读取模式CASE2。
此外,待定信用确定电路195的待定信用参考值,即关联电路194确定是否对读取请求执行关联操作的标准与待定信用确定电路195的待定信用参考值,即读取模式选择电路199确定是否一起读取对应于读取请求的目标数据和附加数据的标准可以不同。例如,假设待定信用确定电路195的待定信用参考值,即读取模式选择电路199确定是否一起读取对应于读取请求的目标数据和附加数据的标准是第一参考值,并且待定信用确定电路195的待定信用参考值,即关联电路194确定是否对读取请求执行关联操作的标准是第二参考值,则第一参考值和第二参考值可以相同或不同。此外,第一参考值可以大于或小于第二参考值。在这种情况下,如在前面的描述中,假设当操作裕量足以使关联电路194可以平稳地执行关联操作时,读取模式选择电路199选择关于从关联电路194传输到操作控制电路196的读取请求的读取模式。因此,第一参考值可以等于或大于第二参考值。
图7至图9是描述用于操作存储器系统的方法的第一示例的流程图。
首先,参照图7,该操作方法可以包括:运行和确定步骤S10、S20、S30、S40和S45,对读取请求执行关联操作,使得多个存储器管芯240A、240B、240C和240D(参照图1)通过多个通道交错和输出对应于读取请求的数据,并且确定已并入关联操作的结果的待定信用;以及选择和读取步骤S50,基于对应于读取请求的目标数据的类型和待定信用,从多个存储器管芯读取对应于读取请求的目标数据以及与目标数据存储在相同存储单位中的附加数据。在这种情况下,运行和确定步骤S10、S20、S30、S40和S45可以包括:选择步骤S10,在多个基本读取请求中选择至少一些候选读取请求作为关联操作的目标;确定步骤S20,基于在选择步骤S10中选择候选读取请求的选择时刻之前是否已经执行了先前关联操作、在选择时刻之前先前关联操作是否成功以及在选择时刻的多个存储器管芯的操作状态来确定待定信用;运行步骤S30,基于在选择步骤S10的选择时刻选择的候选读取请求的数据的类型和在确定步骤S20确定的待定信用,确定是否对在选择步骤S10的选择时刻选择的候选读取请求执行关联操作;以及重置步骤S40和S45,当在运行步骤S30中确定是否执行关联操作之后的参考时间或更长时间,选择步骤S10中未选择候选读取请求时,将待定信用重置为初始值。在这种情况下,重置步骤S40和S45可以包括:检查步骤S40,检查在运行步骤S30中确定是否执行了关联操作之后的参考时间或更长时间,选择步骤S10中是否已选择候选读取请求;以及基于检查步骤S40的结果,选择是否重置待定信用的步骤(是或否)。也就是说,如果检查步骤S40的结果(是)指示在参考时间或更长时间未选择候选读取请求,则可以重置待定信用(S45)。在重置待定信用的S45之后,可以在执行再次选择候选读取请求的选择步骤S10的同时重复地执行运行和确定步骤S10、S20、S30、S40和S45。相反,如果检查步骤S40的结果(否)指示在参考时间内选择了候选读取请求,则这对应于在检查步骤S40之后的参考时间内执行选择步骤S10的情况,因此可以在检查步骤S40之后执行选择步骤S10。在这种情况下,待定信用的初始值可以小于待定信用的参考值,即在确定步骤S20中用于确定是否执行关联操作的标准。也就是说,在通过重置步骤S40和S45将待定信用重置为初始值之后,因为候选读取请求的待定信用从初始值开始,所以在选择步骤S10中首先选择的候选读取请求将不会在运行步骤S30中关联。
此外,如图1B所示,可以假设多个存储器管芯240A、240B、240C和240D中的每一个都包括:页面PAGE0、PAGE1、PAGE2、……,每个页面包括对应于设定数量的区段SECTION0、SECTION1、SECTION2和SECTION3;多个块BLOCK000、BLOCK001、BLOCK002、……、BLOCK010、BLOCK011、BLOCK012、……,每个块包括页面PAGE0、PAGE1、PAGE2、……;以及页面缓冲器PB000、PB001、PB002、……、PB010、PB011、PB012、……,用于以页面单位高速缓存输入到块BLOCK000、BLOCK001、BLOCK002、……、BLOCK010、BLOCK011、BLOCK012、……的数据。
在这种情况下,在选择和读取步骤S50中,如果在选择步骤S10中选择的候选读取请求是区段单位的读取请求,则可以基于当候选读取请求被处理时所处理的候选读取请求的数据类型以及在所处理的候选读取请求的处理时刻的待定信用,以页面单位读取包括对应于候选读取请求的请求区段的页面的数据。在这种情况下,除了选择和读取步骤S50基于待定信用操作并且当在该操作之后在选择步骤S10中选择了另一候选读取请求时再次开始操作之外,选择和读取步骤S50可以不与运行和确定步骤S10、S20、S30、S40和S45直接关联。因此,除了选择步骤S10和确定步骤S20之外,运行和确定步骤S10、S20、S30、S40和S45中的剩余操作S30、S40和S45可以不与选择和读取步骤S50的操作直接关联。
具体地,参照图8,选择和读取步骤S50可以包括:数据识别步骤S51,如果在选择步骤S10中选择的候选读取请求是区段单位的读取请求,则在处理候选读取请求时,识别处理的候选读取请求的数据类型;参考检查步骤S52,如果在数据识别步骤S51中将所处理的候选读取请求的数据识别为通过控制器130的内部操作请求读取的顺序数据(S51_1),检查在处理候选读取请求的时刻的待定信用是否为参考值或更大值;第一读取步骤S53,如果参考检查步骤S52的结果(是)指示在处理候选读取请求的时刻的待定信用是参考值或更大值,以页面单位读取包括对应于候选读取请求的请求区段的页面的数据;第二读取步骤S54,当在数据识别步骤S51中将所处理的候选读取请求的数据识别为通过控制器130的内部操作请求读取的随机数据或由主机102请求读取的数据(S51_2),或参考检查步骤S52的结果(否)指示在处理候选读取请求时的时刻的待定信用小于参考值时,仅选择并读取对应于候选读取请求的请求区段的数据。
尽管未在该图中直接示出,但是如果在运行步骤S30中对在选择步骤S10中选择的候选读取请求执行关联操作,则存储器系统的操作方法可以进一步包括:第一传输步骤,识别基于关联操作成功而关联的读取请求的目标地址,然后通过多个通道将读取请求传输到多个存储器管芯;第一接收步骤,在第一传输步骤之后通过多个通道以交错方式接收所关联的读取请求的数据;第二传输步骤,识别由于关联操作失败而导致的未关联的读取请求的目标地址,然后将读取请求传输到多个存储器管芯;第二接收步骤,在第二传输步骤之后从多个存储器管芯中读取对应于未关联的读取请求的数据;以及将在第一或第二接收步骤中接收到的数据输出到主机的步骤。在这种情况下,可以通过将在第一传输步骤中所关联的读取请求比在第二传输步骤中未关联的读取请求更早地传输到多个存储器管芯来提高存储器系统110的I/O吞吐量。
在选择步骤S10中,可以参考从主机接收的基本读取请求的数量,输出缓冲器的操作状态等。也就是说,为了在存储器系统的I/O吞吐量不劣化的范围内执行关联操作,可以在确保用于关联操作的操作裕量之后,将候选读取请求选择为关联操作目标。
例如,对于选择步骤S10,可以确定待从输出缓冲器输出到主机的数据的数量是否大于参考数量。在这种情况下,参考数量可以被确定为对应于主机和存储器系统之间的第一数据I/O速度以及控制器和多个存储器管芯之间的第二数据I/O速度。例如,假设存储器系统将一条数据传输到主机所花费的时间为10ms。如果输出缓冲器中包括待输出的10条数据,则存储器系统可以具有100ms(=10x10)的操作裕量。例如,假设在存储器系统的控制器和存储器装置之间待传输的读取请求和待接收的数据所花费的时间是5ms,则控制器可以在100ms操作裕量中的最多95ms尝试进行关联操作。
存储器系统的控制器可以知道内部操作的操作速度和所需时间,并且可以根据与存储器系统一起操作的主机之间的协议来计算操作裕量。因此,控制器可以计算和估计可以尝试关联操作的操作裕量。例如,控制器可以计算用于关联操作的操作裕量的最大值,然后在对应于最大值的70%至90%的时间内执行关联操作。在一些实施例中,控制器可以尝试关联操作的时间范畴可以是不同的。此外,控制器可以根据存储器系统的操作环境、存储器装置的操作状态等来确定可以尝试进行关联操作的操作裕量。
具体地,在确定步骤S20中,可以在选择步骤S10中选择候选读取请求的选择时刻确定待定信用。更具体地,参照图9,确定步骤S20可以包括:第一识别步骤S22,识别在选择步骤S10中选择候选读取请求的选择时刻多个存储器管芯中的至少一个的状态是否为空闲状态;第二识别步骤S28,检查在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作是否已经失败;第三检查步骤S24,检查是否已在选择步骤S10中选择候选读取请求的选择时刻之前未进行关联操作的情况下处理候选读取请求;第四检查步骤S26,检查在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作是否已经成功;步骤S27,如果第一识别步骤S22的结果(是)指示至少一个存储器管芯的状态为空闲状态,或者如果第二识别步骤S28的结果(是)指示在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作已经失败,则减小待定信用;以及步骤S29,如果第三识别步骤S24的结果(是)指示在选择步骤S10中选择候选读取请求的选择时刻之前未进行关联操作的情况下处理候选读取请求,或者第四检查步骤S26的结果(是)指示在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作已经成功,则增加待定信用。在这种情况下,如果第一识别步骤S22的结果(否)指示多个存储器管芯中没有一个处于空闲状态(否),或者第二识别步骤S28的结果(否)指示在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作已经成功,则可以不执行减小待定信用的步骤S27的操作。同样地,如果第三识别步骤S24的结果(是)指示在选择步骤S10中选择候选读取请求的选择时刻之前未进行关联操作的情况下未处理候选读取请求,或者如果第四检查步骤S26的结果(否)指示在选择步骤S10中选择候选读取请求的选择时刻之前的先前关联操作已经失败,则可以不执行增加待定信用的步骤S29的操作。
在这种情况下,在确定步骤S20中,减小待定信用的步骤S27和增加待定信用的步骤S29可以并行操作。例如,如果在选择步骤S10中选择候选读取请求的选择时刻至少一个存储器管芯处于空闲状态,并且在选择时刻之前的先前关联操作成功,则第一识别步骤S22和步骤S28的减小待定信用的操作以及第四检查步骤S26和步骤S29的增加待定信用的操作可以并行进行,并且可以确定待定信用。
在这种情况下,在第一识别步骤S22和减小待定信用的步骤S27中,可以基于在选择步骤S10中选择候选读取请求的选择时刻处于空闲状态的存储器管芯的数量来缩减待定信用。也就是说,在步骤S10中选择候选读取请求时处于空闲状态的管芯越多,待定信用减小得越多。例如,与只有一个管芯处于空闲状态时相比,当存在两个管芯处于空闲状态时,待定信用减小得更多。
此外,在第二识别步骤S28和减小待定信用的步骤S27中,可以基于由于在选择步骤S10中选择候选读取请求的选择时刻之前执行的先前关联操作失败而导致消耗的时间来减小待定信用。也就是说,随着由于在步骤S10中选择候选读取请求的选择时刻之前执行的先前关联操作失败导致消耗的时间增加,待定信用可以减小得更多。
此外,在第三检查步骤S24和增加待定信用的步骤S29中,可以基于在选择步骤S10中选择候选读取请求的选择时刻之前未进行关联操作的情况下所处理的候选读取请求的预期处理时间来增加待定信用。也就是说,随着在选择候选读取请求的选择时刻之前未进行关联操作的情况下所处理的候选读取请求的预期处理时间增加,待定信用可以增加更多。
此外,在第四检查步骤S26和增加待定信用的步骤S29中,可以基于由于在选择步骤S10中选择候选读取请求的选择时刻之前执行的先前关联操作成功而预期较短的处理时间来增加待定信用。也就是说,随着预期处理时间由于在选择步骤S10中选择候选读取请求的选择时刻之前执行的先前关联操作成功而缩短,待定信用将增加更多。
在运行步骤S30中,可以基于在确定步骤S20中确定的待定信用来确定是否对在选择步骤S10中选择的候选读取请求执行关联操作。具体地,当在选择步骤S10中选择候选读取请求的选择时刻在确定步骤S20中确定的待定信用为参考值或更大时,在运行步骤S30中,可以对在选择步骤S10中所选择的候选读取请求执行关联操作。相反,当在选择步骤S10中选择候选读取请求的选择时刻在确定步骤S20中确定的待定信用小于参考值时,在运行步骤S30中,可以不对在选择步骤S10中所选择的候选读取请求执行关联操作。
图10示出根据数据类型的控制器的第一操作。
图10是示出读取模式选择电路199基于与从关联电路194接收的读取请求相对应的数据类型来选择操作控制电路196的读取模式CASE1或CASE2的示图。
具体地,与从关联电路194接收的读取请求相对应的数据类型可以包括通过控制器130的内部操作生成的内部数据(Internal Data)和从主机102接收的主机数据(HostData)。
在这种情况下,如果读取请求对应于Host Data,则读取模式选择电路199可以控制操作控制电路196以选择第一读取模式CASE1。此外,如果Internal Data是顺序的,则读取模式选择电路199可以控制操作控制电路196以选择第二读取模式CASE2。此外,如果Internal Data是随机的,则读取模式选择电路199可以控制操作控制电路196以选择第一读取模式CASE1。
在这种情况下,如果Internal Data是顺序的,则这可能意为在控制器130内生成并管理顺序映射数据(映射高速缓存数据(顺序))。此外,如果Internal Data是顺序的,则这可能意为在控制器130内,没有很多碎片化的数据通过垃圾收集操作进行移动。
相反,如果Internal Data是随机的,则这可能意为在控制器130内生成并管理非顺序随机映射数据(映射高速缓存数据(随机))。此外,如果Internal Data是随机的,则这可能意为在控制器130内,非常碎片化的数据将通过垃圾收集操作进行移动。
作为参考,可以预先限定控制器130确定Internal Data的特性的操作,并且在生成数据时由控制器130应用。
在第一读取模式CASE1中,操作控制电路196可以仅选择和读取对应于读取请求的目标数据。例如,如图10所示,如果在一个页面中包括的四个区段Sec.0、Sec.1、Sec.2和Sec.3的两个区段Sec.0和Sec.1中存储的数据是对应于读取请求的目标数据,则第一读取模式CASE1可以是仅选择和读取两个区段Sec.0和Sec.1中存储的目标数据的操作。在这种情况下,在第一读取模式CASE1中,页面中包括的四个区段Sec.0、Sec.1、Sec.2和Sec.3的两个区段Sec.0和Sec.1中存储的数据可以高速缓存在页面缓冲器中,然后响应读取请求而作为目标数据读取。相反,剩余的两个区段Sec.2和Sec.3中存储的数据可以高速缓存在页面缓冲器中并且由于不存在与之对应的读取请求而不被读取。
在第二读取模式CASE2中,操作控制电路196可以一起选择和读取对应于读取请求的目标数据和附加数据。例如,如图10所示,如果一个页面中包括的四个区段Sec.0、Sec.1、Sec.2和Sec.3中的两个区段Sec.0和Sec.1中存储的数据是对应于读取请求的目标数据,则第二读取模式CASE2可以是一起读取两个区段Sec.0和Sec.1中存储的目标数据以及剩余区段Sec.2和Sec.3中存储的附加数据的操作。在这种情况下,在第二读取模式CASE2中,页面中包括的四个区段Sec.0、Sec.1、Sec.2和Sec.3的两个区段Sec.0和Sec.1中存储的数据可以高速缓存在页面缓冲器中,然后响应读取请求而作为目标数据读取。相反,剩余两个区段Sec.2和Sec.3中存储的数据可以高速缓存在页面缓冲器中,然后尽管不存在与之对应的读取请求,也将其作为附加数据读取。
图11A至11C示出控制器130对多个读取请求的第一操作。具体地,第一操作可以由参照图6描述的待定信用确定电路195和关联电路194执行。此外,在第一操作中描述的多个读取请求可以是从主机接收的读取请求或者是由控制器内部生成的读取请求。此外,对应于在第一操作中描述的多个读取请求的数据可以是通过控制器的内部操作请求读取的数据或者是由主机请求读取的随机数据。
具体地,参照图11A至11C,假设从主机102接收的多个基本读取请求(参照图2和图3)或在控制器130内生成的多个基本读取请求已经被输入并存储在输入缓冲器186中。输入缓冲器184中存储的多个基本读取请求可以按照来自主机的输入顺序排列。假设多个基本读取请求包括六个读取请求R1至R6。
根据约定的协议,从主机102接收的或在控制器130内生成的读取请求R1至R6具有例如相同代码的结构,但是,为了便于描述,图11A至图11C中并入并示出了1至6的顺序。
可以将传输到主机102的读取请求R1至R6中的读取请求连同逻辑地址(未示出)一起传输。在这种情况下,关联电路194可以参考映射存储器182(参照图6)使用连同基本读取请求R1至R6一起接收的逻辑地址来识别需要将相应的读取请求传输到哪个存储器管芯。
参照图11A的<A>,可以看到,输入缓冲器186中存储的六个基本读取请求R1至R6中的第一和第二个被选择为候选读取请求。此外,可以看到待定信用已被重置为0。
因为第一基本读取请求R1是当R1被选择为候选读取请求时存在的唯一候选读取请求,所以可以不对第一基本读取请求R1执行关联。
接下来,虽然当第二基本读取请求R2被选择为候选读取请求时,由于存在两个候选读取请求R1和R2,所以第二基本读取请求R2有可能成为关联操作的目标,由于待定信用为0,小于2,即小于参考值,因此可以不执行该关联操作。
此后,第一候选读取请求R1被传输到多个存储器管芯中的任意一个并且被处理(S90)而没有被执行关联操作。此时,因为正在处理第一候选读取请求R1,所以第二候选读取请求R2可能处于待定状态。
如上所述,待定信用确定电路195可以响应于未执行如上所述的关联操作(S90)的情况下处理第一候选读取请求R1而将待定信用增加3。在这种情况下,待定信用确定电路195增加待定信用的时间可以是第三基本读取请求R3被选择为候选读取请求的时间。也就是说,当在图11A的<B>中将第三基本读取请求R3选择为候选读取请求时,由于在图11A的<A>中未执行关联操作的情况下处理第一候选读取请求R1(S90),待定信用确定电路195可以增加待定信用。尽管当进程从图11A的<A>进行到图11A的<B>时,当前描述的情况需要增加待定信用,但是在不同的情况下待定信用可能会减小。
参照图11A的<B>,可以看到,输入缓冲器186中存储的六个基本读取请求R1至R6中的第三基本读取请求R3被选择为候选读取请求。此外,待定信用为3。
在将第三基本读取请求R3选择为候选读取请求时,因为第二候选读取请求R2待定并且待定信用大于参考值,因此可以执行关联操作。也就是说,可以对第三候选读取请求R3执行关联操作。
因此,关联电路194可以确定对应于第三候选读取请求R3的存储器管芯和对应于第二候选读取请求R2的存储器管芯是否关联。在这种情况下,作为关联操作的结果,对应于第三候选读取请求R3的存储器管芯和对应于第二候选读取请求R2的存储器管芯不能被关联,即关联操作失败(S91)。此时,第二和第三候选读取请求R2和R3可能处于待定状态,因为正在处理(或已处理)第一候选读取请求R1。
待定信用确定电路195可以响应于对第三候选读取请求R3的关联操作的失败而将待定信用减小1。在这种情况下,待定信用确定电路195减小待定信用的时间可以是选择第四基本读取请求R4作为候选读取请求的时间。也就是说,当在图11B的<C>中将第四基本读取请求R4选择为候选读取请求时,由于图11A的<B>中对第三候选读取请求R3进行的关联操作已经失败(S91),所以待定信用确定电路195可以减小待定信用。
参照图11B的<C>,可以看到,将输入缓冲器186中存储的六个基本读取请求R1至R6中的第四基本读取请求R4选择为候选读取请求。此外,待定信用为2。
在将第四基本读取请求R4选择为候选读取请求时,因为第二和第三候选读取请求R2和R3待定并且待定信用为参考值或更大,因此可以执行关联操作。也就是说,可以对第四候选读取请求R4执行关联操作。
因此,关联电路194可以确定对应于第四候选读取请求R4的存储器管芯可以与对应于第二候选读取请求R2的存储器管芯关联还是与对应于第三候选读取请求R3的存储器管芯关联。此处,作为关联操作的结果,可以使对应于第四候选读取请求R4的存储器管芯和对应于第二候选读取请求R2的存储器管芯关联,即关联操作成功(S92)。
待定信用确定电路195可以响应于对第四候选读取请求R4的关联操作的成功而将待定信用增加4。在这种情况下,待定信用确定电路195增加待定信用的时间可以是第五基本读取请求R5被选择为候选读取请求的时间。也就是说,当在图11B的<D>中将第五基本读取请求R5选择为候选读取请求时,由于图11B的<C>中对第四候选读取请求R4的关联操作已经成功(S92),所以待定信用确定电路195可以增加待定信用。
参照图11B的<D>,可以看到,将输入缓冲器186中存储的六个基本读取请求R1至R6中的第五基本读取请求R5选择为候选读取请求。此外,待定信用为6。
在将第五基本读取请求R5选择为候选读取请求时,因为第三候选读取请求R3待定并且待定信用大于参考值,因此可以执行关联操作。也就是说,可以对第五候选读取请求R5执行关联操作。此时,因为第二候选读取请求R2和第四候选读取请求R4已经被关联,所以第二候选读取请求R2和第四候选读取请求R4不能被选择为用于第五基本读取请求R5的关联操作的读取信息。
因此,关联电路194可以确定对应于第五候选读取请求R5的存储器管芯和对应于第三候选读取请求R3的存储器管芯是否可以关联。在这种情况下,作为关联操作的结果,不能使对应于第五候选读取请求R5的存储器管芯和对应于第三候选读取请求R3的存储器管芯关联,即关联操作失败(S93)。此时,因为正在处理(或已处理)第一候选读取请求R1,所以第三和第五候选读取请求R3和R5可能处于待定状态。
待定信用确定电路195可以响应于对第五候选读取请求R5的关联操作的失败而将待定信用减小2。在这种情况下,待定信用确定电路195减小待定信用的时间可以是第六基本读取请求R6被选择为候选读取请求的时间。也就是说,当在图11C的<E>中将第六基本读取请求R6选择为候选读取请求时,由于图11B的<D>中对第五候选读取请求R5的关联操作已经失败(S93),所以待定信用确定电路195可以减小待定信用。
作为参考,可以看到,响应于图11A的<B>中对第三候选读取请求R3的关联操作失败,待定信用减小1,并且响应于图11B的<D>中对第五候选读取请求R5的关联操作失败,待定信用减小2。也就是说,可以看到,在两种情况下,待定信用确定电路195响应于关联操作的相应失败而将待定信用度减小不同的量。其原因在于,由于对第三候选读取请求R3的关联操作失败而消耗的时间短于由于对第五候选读取请求R5的关联操作失败而消耗的时间。因此,与由于对R3的关联操作失败相比,由于对R5的关联操作失败,待定信用减小更多。
参照图11C的<E>,可以看到,将输入缓冲器186中存储的六个基本读取请求R1至R6中的第六基本读取请求R6选择为候选读取请求。此外,可以看到待定信用为4。
在将第六基本读取请求R6选择为候选读取请求时,因为第三和第五候选读取请求R3和R5待定并且待定信用大于参考值,因此可以执行关联操作。也就是说,可以对第六候选读取请求R6执行关联操作。
因此,关联电路194可以确定对应于第六候选读取请求R6的存储器管芯可以与对应于第三候选读取请求R3的存储器管芯关联还是与对应于第五候选读取请求R5的存储器管芯关联。此处,作为关联操作的结果,不能将对应于第六候选读取请求R6的存储器管芯与对应于第三候选读取请求R3的存储器管芯或对应于第五候选读取请求R5的存储器管芯关联,即关联操作失败(S94)。
待定信用确定电路195可以响应于如上所述的对第六候选读取请求R6的关联操作的失败而减小待定信用。在这种情况下,当在第六基本读取请求R6被选择为候选读取请求之后的参考时间内另一个基本读取请求被另外地选择为候选读取请求时,待定信用确定电路195可以减小待定信用。
然而,参照图11C的<F>,在第六基本读取请求R6被选择为候选读取请求之后,在参考时间或更长时间内没有将另一个基本读取请求选择为候选读取请求(S95)。也就是说,在将输入缓冲器186中存储的六个基本读取请求R1至R6全部选择为候选读取请求并进行了处理之后,在参考时间或更长时间内未接收到另一个基本读取请求,或者在该时间内接收到另一个基本读取请求但是由于存储器系统110的操作状态而未被选择为候选读取请求。
因此,待定信用确定电路195可能不会响应于对第六候选读取请求R6的关联操作失败而减小待定信用。
此外,在将第六基本读取请求R6选择为候选读取请求之后,响应于参考时间或更长时间内未选择候选读取请求(S95),待定信用可以被重置为0,即初始值。
尽管已经示出和描述了各个实施例,但是对于本领域技术人员显而易见的是,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明包括落入权利要求书范围内的所有改变和修改。

Claims (20)

1.一种存储器系统,包括:
多个存储器管芯,所述多个存储器管芯响应于读取请求而输出不同大小的数据;以及
控制器,所述控制器通过多个通道与所述多个存储器管芯通信,并且:
执行对所述读取请求的关联操作,使得所述多个存储器管芯通过所述多个通道交错并输出对应于所述读取请求的目标数据;
使用所述关联操作的结果确定待定信用;并且
基于对应于所述读取请求的所述目标数据的类型和所述待定信用,从所述多个存储器管芯读取对应于所述读取请求的所述目标数据以及与所述目标数据存储在相同存储单位中的附加数据。
2.根据权利要求1所述的存储器系统,其中
所述多个存储器管芯中的每一个管芯包括:多个块,每个块包括多个页面,每个页面包括多个区段,每个区段包括多个存储器单元;以及页面缓冲器,所述页面缓冲器以页面单位高速缓存从所述多个块读取的数据,并且
所述多个存储器管芯中的每一个管芯响应于所述读取请求以区段单位或以页面单位从所述页面缓冲器输出数据。
3.根据权利要求2所述的存储器系统,
其中所述控制器基于在选择时刻之前是否已经执行了先前关联操作、所述先前关联操作是否成功以及所述多个存储器管芯在所述选择时刻的操作状态来确定所述待定信用,
其中所述选择时刻指示从多个基本读取请求之中选择候选读取请求作为所述关联操作的目标的时间。
4.根据权利要求3所述的存储器系统,
其中如果所述候选读取请求是区段单位的读取请求,当处理所述候选读取请求时,所述控制器基于对应于所述候选读取请求的所述目标数据的类型和在处理时刻的所述待定信用,从所述多个存储器管芯中读取对应于所述候选读取请求的所述目标数据和存储在所述相同存储单位中的所述附加数据,所述处理时刻是所述候选读取请求被处理的时间,并且
其中所述存储单位是页面。
5.根据权利要求4所述的存储器系统,其中当所述候选读取请求是区段单位的读取请求并且对应于所述候选读取请求的所述目标数据是通过内部操作请求读取的顺序数据时,所述控制器:
当在所述处理时刻的所述待定信用为第一参考值或更大时,从相同页面一起读取对应于所述候选读取请求的所述目标数据和所述附加数据;并且
当在所述处理时刻的所述待定信用小于所述第一参考值时,仅读取对应于所述候选读取请求的所述目标数据。
6.根据权利要求5所述的存储器系统,其中当所述候选读取请求是区段单位的读取请求并且对应于所述候选读取请求的所述目标数据是通过内部操作请求读取的随机数据或由主机请求读取的数据时,所述控制器仅读取对应于所述候选读取请求的所述目标数据。
7.根据权利要求4所述的存储器系统,其中所述控制器进一步:基于对应于在所述选择时刻选择的所述候选读取请求的目标数据的类型和在所述选择时刻的所述待定信用,确定是否对在所述选择时刻选择的所述候选读取请求执行所述关联操作。
8.根据权利要求7所述的存储器系统,其中当在所述选择时刻选择的所述候选读取请求的所述目标数据是通过内部操作请求读取的数据或者是由主机请求读取的随机数据时,当在所述选择时刻的所述待定信用为所述第二参考值或更大时,所述控制器对在所述选择时刻选择的所述候选读取请求执行所述关联操作。
9.根据权利要求3所述的存储器系统,其中所述控制器:
当所述多个存储器管芯中的至少一个在所述选择时刻处于空闲状态时,减小所述待定信用;
当在所述选择时刻之前没有执行所述关联操作的情况下处理先前候选读取请求时,增加所述待定信用;
当所述先前关联操作成功时,增加所述待定信用,而当所述先前关联操作失败时,减小所述待定信用;以及
当在确定是否执行所述关联操作之后的参考时间或更长时间内未选择所述候选读取请求时,将所述待定信用重置为初始值。
10.根据权利要求7所述的存储器系统,其中所述控制器包括:
输入缓冲器,所述输入缓冲器临时存储所述基本读取请求;
输出缓冲器,所述输出缓冲器临时存储待输出到所述主机的数据;
输入/输出缓冲器控制电路,即I/O缓冲器控制电路,所述I/O缓冲器控制电路通过监测所述输入缓冲器和所述输出缓冲器的状态来选择所述候选读取请求;
监测电路,所述监测电路监测所述多个存储器管芯的操作状态;
关联电路,所述关联电路基于对应于在所述选择时刻选择的所述候选读取请求的目标数据的类型和在所述选择时刻的所述待定信用,确定是否对在所述选择时刻选择的所述候选读取请求执行所述关联操作,并且在未关联的读取请求之前输出关联的读取请求;
待定信用确定电路,所述待定信用确定电路响应于所述I/O缓冲器控制电路、所述监测电路和所述关联电路的操作来确定所述待定信用;
读取模式选择电路,当所输出的读取请求是区段单位的读取请求时,所述读取模式选择电路基于对应于所输出的读取请求的目标数据的类型和在输出所述读取请求时的所述待定信用来选择读取模式;以及
操作控制电路,所述操作控制电路通过应用所选择的读取模式,识别所输出的读取请求的目标地址,并且通过所述多个通道将所述目标地址传输到所述多个存储器管芯。
11.一种存储器系统的操作方法,所述存储器系统包括多个存储器管芯,所述多个存储器管芯能够响应于读取请求而输出不同大小的数据,所述操作方法包括:
执行对所述读取请求的关联操作,使得所述多个存储器管芯通过多个通道交错并输出对应于所述读取请求的目标数据;
使用所述关联操作的结果确定待定信用;并且
基于对应于所述读取请求的所述目标数据的类型和所述待定信用,从所述多个存储器管芯读取对应于所述读取请求的目标数据以及与所述目标数据存储在相同存储单位中的附加数据。
12.根据权利要求11所述的操作方法,其中
所述多个存储器管芯中的每一个管芯包括:多个块,每个块包括多个页面,每个页面包括多个区段,每个区段包括多个存储器单元;以及页面缓冲器,所述页面缓冲器以页面单位高速缓存从所述多个块读取的数据,并且
所述多个存储器管芯中的每一个管芯响应于所述读取请求以区段单位或以页面单位从所述页面缓冲器输出所读取的数据。
13.根据权利要求12所述的操作方法,
其中在确定中,基于在选择时刻之前是否已经执行了先前关联操作、所述先前关联操作是否成功以及所述多个存储器管芯在所述选择时刻的操作状态来确定所述待定信用,
其中所述选择时刻指示从多个基本读取请求之中选择候选读取请求作为所述关联操作的目标的时间。
14.根据权利要求13所述的操作方法,
其中在读取中,当所述候选读取请求是区段单位的读取请求时,当处理所述候选读取请求时,基于对应于所述候选读取请求的所述目标数据的类型和在处理时刻的所述待定信用,从所述多个存储器管芯中一起读取对应于所述候选读取请求的所述目标数据和存储在所述相同存储单位中的所述附加数据,所述处理时刻是所述候选读取请求被处理的时间,并且
其中所述存储单位是页面。
15.根据权利要求14所述的操作方法,其中读取包括:
当所述候选读取请求是区段单位的读取请求,并且对应于所述候选读取请求的所述目标数据是通过内部操作请求读取的顺序数据时,当在所述处理时刻的所述待定信用为第一参考值或更大时,从相同页面一起读取对应于所述候选读取请求的目标数据和所述附加数据;
当所述候选读取请求是区段单位的读取请求,并且对应于所述候选读取请求的所述目标数据是通过内部操作请求读取的顺序数据时,当在所述处理时刻的所述待定信用小于所述第一参考值时,仅读取对应于所述候选读取请求的所述目标数据;并且
当所述候选读取请求是区段单位的读取请求,并且对应于所述候选读取请求的所述目标数据为通过内部操作请求读取的随机数据或由主机请求读取的数据时,仅读取对应于所述候选读取请求的所述目标数据。
16.根据权利要求14所述的操作方法,进一步包括:基于对应于在所述选择时刻选择的所述候选读取请求的目标数据的类型和在所述选择时刻的所述待定信用,确定是否对在所述选择时刻选择的所述候选读取请求执行所述关联操作。
17.根据权利要求16所述的操作方法,其中执行所述关联操作包括:当在所述选择时刻选择的所述候选读取请求的所述目标数据是通过内部操作请求读取的数据或者是由主机请求读取的随机数据时,并且当在所述选择时刻的所述待定信用为所述第二参考值或更大时,对在所述选择时刻选择的所述候选读取请求执行所述关联操作。
18.根据权利要求13所述的操作方法,其中确定包括:
当所述多个存储器管芯中的至少一个在所述选择时刻处于空闲状态时,减小所述待定信用;
当在所述选择时刻之前没有执行所述关联操作的情况下处理先前候选读取请求时,增加所述待定信用;
当所述先前关联操作成功时,增加所述待定信用;
当所述先前关联操作失败时,减小所述待定信用;以及
当在确定是否执行所述关联操作之后的参考时间或更长时间内未选择所述候选读取请求时,将所述待定信用重置为初始值。
19.根据权利要求15所述的操作方法,进一步包括:
在第一传输操作中,识别由于所述关联操作成功而关联的读取请求的目标地址,并通过所述多个通道将所述目标地址传输到所述多个存储器管芯;
在第一接收操作中,在所述第一传输操作之后,通过所述多个通道以交错方式接收对应于所关联的读取请求的数据;
在第二传输操作中,识别由于所述关联操作失败而未关联的读取请求的目标地址,并将所述目标地址传输到所述多个存储器管芯;
在第二接收操作中,在所述第二传输操作之后,从所述多个存储器管芯接收对应于未关联的读取请求的数据;并且
将在所述第一接收操作或所述第二接收操作中接收到的数据输出到外部设备。
20.一种存储器系统,包括:
存储器装置,所述存储器装置包括多个管芯,每个管芯具有多个页面,每个页面具有多个区段;以及
控制器,所述控制器分别通过多个通道电联接到所述管芯,并且向所述管芯提供读取命令,以请求从各个管芯中不同偏移量的区段读取数据,并且控制所述管芯以根据全同步交错方案读取所请求的数据,
其中所述控制器控制所述管芯中的每一个管芯以根据所提供的读取命令之中相应读取命令的类型,以区段单位或以页面单位执行读取操作。
CN202010625635.6A 2019-09-02 2020-07-01 提高存储器系统的输入/输出吞吐量的设备和方法 Withdrawn CN112445424A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190108164A KR20210026832A (ko) 2019-09-02 2019-09-02 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
KR10-2019-0108164 2019-09-02

Publications (1)

Publication Number Publication Date
CN112445424A true CN112445424A (zh) 2021-03-05

Family

ID=74679484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010625635.6A Withdrawn CN112445424A (zh) 2019-09-02 2020-07-01 提高存储器系统的输入/输出吞吐量的设备和方法

Country Status (3)

Country Link
US (2) US11360898B2 (zh)
KR (1) KR20210026832A (zh)
CN (1) CN112445424A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190474A (zh) * 2021-04-30 2021-07-30 华中科技大学 一种提升stt-mram近似缓存能效的方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269524B2 (en) * 2019-10-07 2022-03-08 Samsung Electronics Co., Ltd. Methods and systems for managing data transfer between a UFS host and a UFS target

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20060294327A1 (en) * 2005-06-23 2006-12-28 Sharma Debendra D Method, apparatus and system for optimizing interleaving between requests from the same stream
US7350030B2 (en) * 2005-06-29 2008-03-25 Intel Corporation High performance chipset prefetcher for interleaved channels
KR101083673B1 (ko) * 2008-10-01 2011-11-16 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
KR101581857B1 (ko) * 2009-08-06 2015-12-31 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
JP2012068936A (ja) * 2010-09-24 2012-04-05 Toshiba Corp メモリシステム
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
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
US9087595B2 (en) 2012-04-20 2015-07-21 Aplus Flash Technology, Inc. Shielding 2-cycle half-page read and program schemes for advanced NAND flash design
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
KR102161448B1 (ko) * 2014-02-03 2020-10-05 삼성전자 주식회사 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
US9940169B2 (en) 2015-07-23 2018-04-10 Pearson Education, Inc. Real-time partitioned processing streaming
US10552319B2 (en) * 2018-06-01 2020-02-04 Intel Corporation Interleave set aware object allocation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190474A (zh) * 2021-04-30 2021-07-30 华中科技大学 一种提升stt-mram近似缓存能效的方法及系统

Also Published As

Publication number Publication date
US11360898B2 (en) 2022-06-14
US20220269609A1 (en) 2022-08-25
US20210064532A1 (en) 2021-03-04
KR20210026832A (ko) 2021-03-10

Similar Documents

Publication Publication Date Title
US11487678B2 (en) Apparatus and method for improving input/output throughput of a memory system
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
US11150822B2 (en) Memory system for determining usage of a buffer based on I/O throughput and operation method thereof
CN111290704B (zh) 用于控制储存在存储系统中的数据的装置和方法
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
US20200042181A1 (en) Apparatus and method for searching valid data in memory system
US11269542B2 (en) Memory system for distributing and reading data and operating method thereof
CN113900586A (zh) 存储器系统及其操作方法
CN110781023A (zh) 用于在存储器系统中处理数据的设备和方法
CN111752474A (zh) 控制存储器系统的写入操作的设备和方法
US20220269609A1 (en) Apparatus and method for improving input/output throughput of memory system
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN113010098A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
CN111435321B (zh) 处理存储器系统的易失性存储器中的错误的设备和方法
CN113448503A (zh) 调整顺序命令的操作时间差的存储器系统及其操作方法
US20200250104A1 (en) Apparatus and method for transmitting map information in a memory system
CN111755061A (zh) 检查存储器系统中的存储器装置的操作状态的设备及方法
US11429282B2 (en) Apparatus and method for improving Input/Output throughput of memory system
US11275682B2 (en) Memory system and method for performing command operation by memory system
CN113050882A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
CN112416818A (zh) 通过运行时间覆盖管理固件的设备和方法
US11500720B2 (en) Apparatus and method for controlling input/output throughput of a memory system
US11468926B2 (en) Apparatus and method for improving input/output throughput of memory system
CN113126897A (zh) 提高存储器系统的输入和输出吞吐量的设备和方法
CN113050879A (zh) 管理存储器系统中编程操作时间和写入延迟的设备和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20210305

WW01 Invention patent application withdrawn after publication