CN109947356B - 存储器控制器、存储器系统以及操作存储器控制器的方法 - Google Patents
存储器控制器、存储器系统以及操作存储器控制器的方法 Download PDFInfo
- Publication number
- CN109947356B CN109947356B CN201810939303.8A CN201810939303A CN109947356B CN 109947356 B CN109947356 B CN 109947356B CN 201810939303 A CN201810939303 A CN 201810939303A CN 109947356 B CN109947356 B CN 109947356B
- Authority
- CN
- China
- Prior art keywords
- command
- memory
- data
- memories
- memory controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Abstract
本发明提供一种存储器控制器、包括该存储器控制器的存储器系统以及操作该存储器控制器的方法。存储器控制器响应于来自主机的请求访问多个存储器,该存储器控制器包括:处理器,基于多个存储器中的选择的存储器的命令生成信息,生成命令集;以及存储电路,存储多个存储器中的每一个的命令生成信息。
Description
相关申请的交叉引用
本申请要求于2017年12月20日提交的申请号为10-2017-0176585的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的方面总体涉及一种电子装置,并且更特别地,涉及一种存储器控制器、包括该存储器控制器的存储器系统以及操作该存储器控制器的方法。
背景技术
近来计算机环境的范例已经转变成可以随时随地使用计算系统的普适计算环境。这促进诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用增长。这样的便携式电子装置通常可以包括使用存储器装置的存储器系统,即,数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
因为不存在机械驱动部件,所以使用存储器装置的数据存储装置具有优良的稳定性和耐久性、高信息访问速度和低功耗。作为具有这种优点的存储器系统的示例,数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本发明的实施例提供一种能够有效地管理用于控制多个不同存储器装置的命令集的存储器控制器、包括该存储器控制器的存储器系统以及操作该存储器控制器的方法。
根据本公开的一方面,提供一种存储器控制器,响应于来自主机的请求访问多个存储器,该存储器控制器包括:处理器,被配置成基于多个存储器中的选择的存储器的命令生成信息来生成命令集;以及存储电路,被配置成存储多个存储器中的每一个的命令生成信息。
根据本公开的另一方面,提供一种存储器系统,包括:存储器装置,包括多个存储器;以及存储器控制器,被配置成响应于来自主机的请求,通过生成用于控制存储器装置的命令集来控制存储器装置,其中存储器控制器基于与多个存储器中的每一个对应的命令生成信息来生成命令集。
根据本公开的又一方面,提供一种操作存储器控制器的方法,该方法包括:从主机接收外部命令;响应于接收的外部命令,获取关于主机请求的操作的信息;读取关于选择的存储器的命令生成信息和数据单元信息;基于命令生成信息和数据单元信息,确定数据命令重复的次数;以及根据数据命令重复的次数,生成并输出用于控制选择的存储器的命令集。
根据本公开的另一方面,提供一种存储器系统,包括:存储器装置,包括平面,每个平面具有页面;存储装置,适于存储命令生成信息;以及处理器,适于:响应于对平面中的一个或多个目标平面的请求,生成一个或多个命令集,每个命令集包括针对目标平面中的一个目标平面的单元数据命令和重复次数;以及根据每个命令集中的单元数据命令,控制存储器装置重复对每个目标平面的操作重复次数,其中命令生成信息表示页面的大小、平面的数量以及用于错误校正操作的单元数据的大小,其中处理器基于页面的大小和处理器可以一次处理的最大数据量来确定命令集的数量,并且其中处理器基于页面的大小和单元数据的大小来确定重复次数。
附图说明
现在将参照附图在下文中更全面地描述本发明的示例性实施例;然而,注意的是,本发明可以以不同的形式体现并且不应当被解释为限于本文阐述的实施例。相反,提供这些实施例使得本发明的公开将是彻底且完全的,并且将向本领域技术人员完全传达示例性实施例的范围。
在附图中,为了说明的清楚起见,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间仅有的元件,或者也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据本公开的实施例的存储器系统的框图。
图2是示出包括在图1所示的存储器装置中的多个存储器的框图。
图3是示出包括在图1所示的存储器装置中的多个存储器之中的第一存储器的实施例的框图。
图4是示出图3所示的存储器单元阵列的实施例的框图。
图5是示出图1所示的存储器控制器的实施例的框图。
图6是根据本公开的实施例的操作存储器系统的方法的流程图。
图7和图8是示出根据本公开的实施例的命令集的配置示图。
图9是示出存储器系统的另一实施例的框图。
图10是示出图9所示的存储器系统的应用示例的框图。
图11是示出包括参照图10描述的存储器系统的计算系统的框图。
具体实施方式
在以下详细描述中,仅通过说明的方式示出并描述本公开的某些示例性实施例。如本领域技术人员将认识到的,在不脱离本公开的精神或范围的情况下,描述的实施例可以以各种方式修改。因此,附图和描述被认为在本质上是说明性的而不是限制性的。
在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,该元件可以直接地连接或联接到另一元件,或者可以在该元件与另一元件之间插入一个或多个中间元件的情况下间接地连接或联接到另一元件。另外,当元件被称为“包括”部件时,这表示元件可以进一步包括另一部件,而不排除另一部件,除非存在不同的公开。
在以下描述中,为了提供本发明的全面理解,阐述了许多具体细节。本发明可以在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
还应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
图1是示出根据本公开的实施例的包括控制电路的存储器系统1的框图。
参照图1,存储器系统1可以包括存储器控制器100、存储器装置200和主机300。
存储器控制器100联接到主机300和存储器装置200。存储器控制器100被配置成响应于来自主机300的请求来访问存储器装置200。例如,存储器控制器100被配置成控制存储器装置200的读取操作、写入操作、擦除操作和后台操作中的至少一个。存储器控制器100被配置成提供存储器装置200和主机300之间的接口。存储器控制器100被配置成驱动用于控制存储器装置200的固件。
在本公开的实施例中,存储器控制器100响应于来自主机300的请求,生成并输出用于控制包括在存储器装置200中的多个存储器(例如,第一存储器200_1至第n存储器200_n)的命令集。存储器控制器100根据关于多个存储器200_1至200_n之中的选择的存储器的命令生成信息(例如,页面大小、平面数量等)生成公共命令集。即使当多个存储器200_1至200_n具有不同的页面大小、平面数量等时,存储器控制器100可以使用公共命令集来控制多个存储器200_1至200_n。
存储器装置200在存储器控制器100的控制下执行读取操作、写入操作、擦除操作和后台操作。即,存储器装置200响应于从存储器控制器100输出的命令集来执行读取操作、写入操作、擦除操作和后台操作。
存储器装置200可以被配置成包括一个或多个存储器200_1至200_n。一个或多个存储器200_1至200_n可以具有不同的平面数量、页面大小等。
图2是示出包括在图1所示的存储器装置200中的多个存储器的框图。
参照图2,存储器装置200可以被配置成包括第一存储器200_1至第n存储器200_n。
第一存储器200_1至第n存储器200_n可以具有不同的平面数量。例如,如图所示,第一存储器200_1可以被配置成包括一个平面Plane0,第二存储器200_2可以被配置成包括两个平面Plane0和Plane1,并且第n存储器200_n可以被配置成包括四个平面Plane0至Plane3。在本公开的实施例中,示出了第一存储器200_1至第n存储器200_n具有不同的平面数量。然而,本公开不限于此,并且第一存储器200_1至第n存储器200_n中的每一个可以被配置成包括至少一个平面。一些存储器可以被配置成具有相同的平面数量。
图3是示出包括在图1所示的存储器装置中的多个存储器之中的第一存储器200_1的实施例的框图。多个存储器以相似的结构来配置。
参照图3,第一存储器200_1包括存储器单元阵列210、地址解码器220、读取/写入电路230、控制逻辑240和电压生成单元250。
地址解码器220、读取/写入电路230和电压生成单元250可以被定义为用于对存储器单元阵列210执行诸如编程操作和读取操作的全部操作的外围电路。
存储器单元阵列210包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过字线WL联接到地址解码器220。多个存储块BLK1至BLKz通过位线BL1至BLm联接到读取/写入电路230。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。更详细地,多个存储器单元可以是基于电荷捕获装置的非易失性存储器单元。共同联接到相同字线的多个存储器单元可以被定义为一个页面。存储器单元阵列210配置有多个页面。另外,存储器单元阵列210的多个存储块BLK1至BLKz中的每一个包括多个串。多个串中的每一个包括串联联接在位线和源极线之间的漏极选择晶体管、多个存储器单元和源极选择晶体管。
地址解码器220通过字线WL联接到存储器单元阵列210。地址解码器220被配置成响应于从控制逻辑240接收的控制信号AD_signals而操作。地址解码器220通过设置在第一存储器200_1中的输入/输出缓冲器(未示出)接收地址ADDR。
地址解码器220将由电压生成单元250在编程操作中生成的编程电压Vpgm和通过电压Vpass施加到存储器单元阵列210的多个字线WL,并且将由电压生成单元250在读取操作中生成的读取电压Vread和通过电压Vpass施加到存储器单元阵列210的多个字线WL。
可以通过选择多个存储块BLK1至BLKz之中的至少一个存储块来执行第一存储器200_1的编程操作和读取操作,并且可以以页面为单元对选择的存储块执行编程操作和读取操作。
在编程操作和读取操作的请求中接收的地址ADDR包括块地址、行地址和列地址。地址解码器220根据块地址和行地址选择一个存储块和一个字线。列地址Yi由地址解码器220解码以提供给读取/写入电路230。
地址解码器220可以包括块解码器、行解码器、列解码器、地址缓冲器等。
读取/写入电路230包括多个页面缓冲器PB1至PBm,并被配置成响应于从控制逻辑240输出的控制信号PB_signals而操作。多个页面缓冲器PB1至PBm通过位线BL1至BLm联接到存储器单元阵列210。在编程操作中,多个页面缓冲器PB1至PBm临时存储通过图1的存储器控制器100输入的数据DATA,并且根据临时存储的数据DATA控制对应的位线BL1至BLm的电位水平。即,多个页面缓冲器PB1至PBm根据临时存储的数据DATA,将编程允许电压(例如,0V)或编程禁止电压(例如,VCC)施加到对应的位线BL1至BLm。
在读取操作中,多个页面缓冲器PB1至PBm通过感测对应的位线BL1至BLm的电位水平或电流量来执行读取操作,并将读取数据输出到图1的存储器控制器100。
控制逻辑240联接到地址解码器220、读取/写入电路230以及电压生成单元250。控制逻辑240通过第一存储器200_1的输入/输出缓冲器(未示出)接收命令集CMD_SET。控制逻辑240被配置成响应于命令集CMD_SET来控制第一存储器200_1的全部操作。
电压生成单元250响应于从控制逻辑240输出的控制信号VG_signals而操作。例如,在编程操作中,电压生成单元250响应于控制信号VG_signals生成并输出编程电压Vpgm和通过电压Vpass。在读取操作中,电压生成单元250响应于控制信号VG_signals生成并输出读取电压Vread和通过电压Vpass。
图4是示出图3所示的存储器单元阵列210的实施例的框图。
参照图4,存储器单元阵列210包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块包括堆叠在衬底上的多个存储器单元。多个存储器单元沿+X方向、+Y方向和+Z方向布置。
图5是示出图1所示的存储器控制器100的实施例的框图。
参照图5,存储器控制器100包括处理器110和存储电路120。
存储电路120存储固件,并且可以被用作处理器110的工作存储器、图1的存储器装置200和主机300之间的高速缓冲存储器以及存储器装置200和主机300之间的缓冲存储器中的至少一个。用于执行全部操作的一个或多个算法可以被存储在固件中。
并且,存储电路120可以存储关于包括在图1的存储器装置200中的第一存储器200_1至第n存储器200_n中的每一个的命令生成信息,并且存储数据单元(例如,数据块)的信息,数据单元是存储器控制器100一次执行错误校正操作的数据大小。命令生成信息可以包括关于第一存储器200_1至第n存储器200_n中的每一个的页面大小信息、关于第一存储器200_1至第n存储器200_n中的每一个的平面数量信息等。
处理器110可以被配置成包括单元数据重复控制电路111和命令生成电路112。
单元数据重复控制电路111响应于从主机300输入的外部命令CMD、存储在存储电路120中的选择的存储器的页面大小信息和平面数量信息以及数据单元信息,确定单元数据命令重复的次数,并且响应于列地址Col_Add设置命令集的起始地址。
作为示例,单元数据重复电路111可以根据选择的存储器的页面大小和平面数量来确定选择的存储器的存储容量,并且通过将确定的存储容量除以数据单元(例如,数据块)来确定单元数据命令重复的次数。单元数据命令可以是针对数据单元的数据命令。外部命令CMD可以表示多个单元数据命令,多个单元数据命令的数量对应于单元数据命令重复的次数。
命令生成电路在单元数据重复控制电路111的控制下,生成并输出用于控制多个存储器200_1至200_n之中的选择的存储器的命令集CMD_SET。命令集CMD_SET可以包括选择的存储器的平面地址和重复所确定的次数的单元数据命令。
图6是示出根据本公开的实施例的操作存储器系统1的方法的流程图。
图7和图8是示出根据本公开的实施例的命令集的示例的配置示图。
以下将参照图1至图8描述根据本公开的实施例的操作存储器系统1的方法。
在步骤S610处,将来自主机300的外部命令CMD输入到存储器控制器100。当主机300请求写入操作时,数据和地址可以与外部命令CMD一起输入。当主机300请求读取操作时,地址可以与外部命令CMD一起输入。在写入操作中从主机300输入的数据被临时存储在存储器控制器100的存储电路120中。
在步骤S620处,存储器控制器100的处理器110响应于外部命令CMD获取关于主机300请求的操作的信息(例如,写入/读取操作、ECC类型等),并且读取存储在存储电路120中的包括关于选择的存储器的页面大小信息、平面数量信息等的命令生成信息,数据单元信息等。
处理器110的单元数据重复控制电路111响应于读取的包括关于选择的存储器的页面大小信息、平面数量信息等的命令生成信息和数据单元信息,来确定单元数据命令重复的次数,并且响应于列地址Col_Add设置命令集CMD_SET的起始地址。
在步骤S630处,命令生成电路112在单元数据重复控制电路111的控制下,生成并输出用于控制多个存储器200_1至200_n之中的选择的存储器的命令集CMD_SET。
当输出命令集CMD_SET时,在步骤S640处,处理器110执行命令集跳过操作,使得命令集CMD_SET包括针对单个平面的一组单元数据命令,针对单个平面的一组单元数据命令可以根据包括在命令集CMD_SET中的平面地址来识别。由于命令集跳过操作,当外部命令CMD需要对多个目标平面操作时,针对单个平面的命令集CMD_SET可以由目标平面以逐个平面的方式重复地服务。由于命令集跳过操作,可以按目标平面的顺序服务针对单个平面的命令集CMD_SET。例如,在多个目标平面中,针对单个平面的命令集CMD_SET完全由第一平面服务,并且然后针对单个平面的命令集CMD_SET由第二平面服务,根据目标平面的顺序,第二平面在第一平面之后。
此处,针对单个平面的命令集CMD_SET对应于固件可以一次处理的最大数据量。当目标平面的页面大小超过固件可以一次处理的最大数据量时,在步骤S640处,通过命令集跳过操作生成分别针对单个平面的两个或更多个命令集CMD_SET以覆盖页面大小。例如,当固件可以一次处理的最大数据量为8KB并且目标平面的页面大小为16KB时,在步骤S640处,生成分别针对单个平面的两个命令集CMD_SET以覆盖16KB的页面大小。
在步骤S650处,包括在存储器装置200中的选择的存储器响应于从处理器110输出的命令集CMD_SET执行全部操作。例如,响应于命令集CMD_SET,选择的存储器对选择的平面执行全部操作,并且当对选择的平面的全部操作完成时,选择的存储器通过自动地选择下一个平面来连续地执行未执行的全部操作。如参照步骤S640所述的,由于通过命令集跳过操作输出的针对单个平面的命令集CMD_SET,在步骤S650处基于逐个平面执行顺序操作。
图7是示出当选择的存储器包括三个平面,存储在存储器控制器100中的固件可以一次处理的最大数据量是8千字节(在下文中,被称为KB),页面大小是8KB并且数据单元(例如,数据块)是2KB时的命令集700的配置示图。
参照图7,命令集700配置有地址部分710和命令部分720。
地址部分710指示与包括在选择的存储器中的三个平面中的起始地址对应的平面地址(例如,Plane0地址)。
命令部分720被配置成使得单元数据命令R_CHUNK被重复执行设定次数N。例如,由于页面大小是8KB,因此当数据单元(例如,数据块)是2KB时,命令部分720被配置成使得单元数据命令R_CHUNK被重复执行四次。
此时,跳过针对除了包括在选择的存储器中的三个平面之中与起始地址对应的平面(例如,Plane0)之外的其它平面Plane1和Plane2的命令集,从而最小化命令集。
在步骤630中,处理器110生成与平面Plane0对应的命令集700。在步骤S640中,处理器110跳过与其它平面Plane1和Plane2对应的命令集。因此,最小化由处理器110生成的命令集CMD_SET。
存储器装置200响应于命令集700的地址部分710选择平面Plane0,并且响应于命令部分720的、重复的单元数据命令R_CHUNK执行全部操作。此后,当对平面Plane0的全部操作完成时,存储器装置200在存储器控制器100的控制下,通过自动选择下一个平面(例如,Plane1),响应于命令部分720的、重复的单元数据命令R_CHUNK执行全部操作。
图8是示出当选择的存储器包括三个平面,存储在存储器控制器100中的固件可以一次处理的最大数据量是8KB,页面大小是16KB并且数据单元(例如,数据块)是2KB时的命令集的示例的配置示图。
参照图8,命令集包括第一命令集810和第二命令集820。如上所述,当目标平面(即,三个平面Plane0到Plane2)的页面大小(即,16KB)超过固件可以一次处理的最大数据量(8KB)时,在步骤S640处,通过命令集跳过操作生成分别针对单个平面(即,两个平面Plane0和Plane1中的每一个)的两个或更多个命令集CMD_SET(即,第一命令集810和第二命令集820)以覆盖页面大小。
第一命令集810配置有地址部分811和命令部分812。地址部分811指示与包括在选择的存储器中的三个平面中的第一起始地址对应的平面地址(例如,Plane0地址)。命令部分812被配置成使得单元数据命令R_CHUNK被重复执行设定次数N。例如,由于通过将整个页面大小分成两半而获得的大小是8KB,因此当数据单元(例如,数据块)是2KB时,命令部分812被配置成使得单元数据命令R_CHUNK被重复执行四次。
第二命令集820配置有地址部分821和命令部分822。地址部分821指示与包括在选择的存储器中的三个平面中的下一个起始地址对应的平面地址(例如,Plane1地址)。命令部分822被配置成使得单元数据命令R_CHUNK被重复执行设定次数N。例如,由于在整个页面大小中处理第一命令集810之后剩余的大小是8KB,因此当数据单元(例如,数据块)是2KB时,命令部分822被配置成使得单元数据命令R_CHUNK被重复执行四次。
在该情况下,跳过与包括在选择的存储器中的三个平面之中的另一个平面(例如,Plane2)对应的地址部分和命令部分,从而最小化命令集。
在步骤S630中,处理器110生成与平面Plane0对应的命令集810和与平面Plane1对应的命令集820。在步骤S640中,处理器110跳过与其它平面Plane2对应的命令集。因此,最小化由处理器110生成的命令集CMD_SET。
存储器装置200的选择的存储器响应于第一命令集810的地址部分811选择平面Plane0,并且响应于命令部分812的、重复的单元数据命令R_CHUNK执行全部操作。此后,如果平面Plane0的全部操作完成,存储器装置200的选择的存储器响应于第二命令集820的地址部分821选择平面Plane1,并且响应于命令部分822的、重复的单元数据命令R_CHUNK执行全部操作。
此后,存储器装置200在存储器控制器100的控制下,通过自动选择下一个平面(例如,Plane2),响应于命令部分的、重复的单元数据命令R_CHUNK执行全部操作。
图9是示出存储器系统的另一实施例的框图。
参照图9,存储器系统1000包括存储器控制器1100和存储器装置200。
存储器装置200可以与参照图1和图2描述的存储器装置相同地配置和操作。在下文中,将省略重复的描述。
存储器控制器1100联接到主机Host和存储器装置200。存储器控制器1100被配置成响应于来自主机Host的请求来访问存储器装置200。例如,存储器控制器1100被配置成控制存储器装置200的读取操作、写入操作、擦除操作和后台操作。存储器控制器1100被配置成提供存储器装置200和主机Host之间的接口。存储器控制器1100被配置成驱动用于控制存储器装置200的固件。
存储器控制器1100包括随机存取存储器(RAM)1110、处理单元1120、主机接口1130、存储器接口1140和错误校正块1150。RAM 1110可以对应于图5所示的存储电路120,并且处理单元1120可以对应于图5所示的处理器110。
主机接口1130包括用于在主机Host和存储器控制器1100之间交换数据的协议。在示例性实施例中,存储器控制器1100被配置成通过诸如以下的各种接口协议中的至少一种与主机Host通信:通用串行总线(USB)协议、多媒体卡(MMC)协议、外围组件互连(PCI)协议、PCI高速(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、电子集成驱动器(IDE)协议以及专用协议。
存储器接口1140与存储器装置200接口连接。例如,存储器接口1140可以包括NAND接口或NOR接口。
错误校正块1150被配置成通过使用错误校正码(ECC)来检测和校正从存储器装置200接收的数据的错误。处理单元1120可以基于错误校正块1150的错误检测结果来控制存储器装置200调整读取电压并且执行重新读取。在示例性实施例中,错误校正块1150可以被设置为存储器控制器1100的部件。
存储器控制器1100和存储器装置200可以被集成到一个半导体装置中。在示例性实施例中,存储器控制器1100和存储器装置200可以被集成到一个半导体装置中以构成存储卡。例如,存储器控制器1100和存储器装置200可以被集成到一个半导体装置中以构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、标准闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC或微型MMC)、SD卡(SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)。
存储器控制器1100和存储器装置200可以被集成到一个半导体装置中以构成半导体驱动器(固态驱动器(SSD))。半导体驱动器SSD包括被配置为将数据存储在半导体存储器中的存储装置。如果存储器系统1000被用作半导体驱动器SSD,则联接到存储器系统1000的主机Host的操作速度可以显著提高。
作为另一示例,存储器系统1000可以被设置为诸如以下的电子装置的各种部件中的一种:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、3维电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、RFID装置或者构成计算系统的各种部件中的一种。
在示例性实施例中,存储器装置200或存储器系统1000可以以各种形式封装。例如,存储器装置200或存储器系统1000可以以诸如以下的方式封装:堆叠封装(PoP)、球栅阵列封装(BGA)、芯片级封装(CSP)、塑料引线芯片载体封装(PLCC)、塑料双列直插式封装(PDIP)、叠片包装管芯(die in Waffle pack)、晶圆形式管芯(die in wafer form)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩小外形封装(SSOP)、薄型小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)或者晶圆级处理堆叠封装(WSP)。
图10是示出图9的存储器系统的应用示例的框图。
参照图10,存储器系统2000包括半导体存储器装置2100和存储器控制器2200。半导体存储器装置2100包括多个半导体存储器芯片。多个半导体存储器芯片被划分成多个组。半导体存储器装置2100可以对应于图1的存储器装置200,并且多个半导体存储器芯片可以对应于图1的第一存储器200_1至第n存储器200_n。
在图10中,示出了多个组通过第一信道CH1至第k信道CHk与存储器控制器2200通信。
每个组被配置成通过一个公共信道与存储器控制器2200通信。存储器控制器2200与参照图9描述的存储器控制器1100相同地配置。存储器控制器2200被配置成通过多个信道CH1至CHk来控制半导体存储器装置2100的多个存储器芯片。
图11是示出包括参照图10描述的存储器系统的计算系统的框图。
参照图11,计算系统3000包括中央处理单元3100、RAM 3200、用户接口3300、电源3400、系统总线3500和存储器系统2000。
存储器系统2000通过系统总线3500电联接到中央处理单元3100、RAM 3200、用户接口3300和电源3400。通过用户接口3300提供的数据或由中央处理单元3100处理的数据被存储在存储器系统2000中。
在图11中,示出了半导体存储器装置2100通过存储器控制器2200联接到系统总线3500。然而,半导体存储器装置2100可以直接联接到系统总线3500。在该情况下,存储器控制器2200的功能可以由中央处理单元3100和RAM 3200执行。
在图11中,示出了提供参照图10描述的存储器系统2000。然而,可以由参照图9描述的存储器系统1000替换存储器系统2000。在示例性实施例中,计算系统3000可以被配置成包括参照图9描述的存储器系统1000和参照图10描述的存储器系统2000两者。
根据本公开,虽然包括在存储器系统中的多个存储器装置彼此不同,但是生成能够整体地控制多个存储器装置的最小命令集,从而可以有效地管理命令。
本文已经公开示例性实施例,并且虽然采用特定术语,但是它们仅以通用和描述性的含义使用和解释,而不是为了限制的目的。在一些情况下,如从提交本申请起对于本领域技术人员显而易见的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其它实施例描述的特征、特性和/或元件结合使用,除非另有具体说明。因此,本领域技术人员将理解,在不脱离如权利要求中阐述的本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。
Claims (18)
1.一种存储器控制器,响应于来自主机的请求访问多个存储器,所述存储器控制器包括:
处理器,基于所述多个存储器中的选择的存储器的命令生成信息来生成公共命令集;以及
存储电路,存储所述多个存储器中的每一个的命令生成信息,
其中所述命令生成信息包括所述多个存储器中的每一个的页面大小信息和平面数量信息,
其中当所述多个存储器具有不同的页面大小和平面数量时,所述存储器控制器使用公共命令集来控制所述多个存储器。
2.根据权利要求1所述的存储器控制器,其中所述处理器包括:
单元数据重复控制电路,基于待由所述存储器控制器错误校正码处理即ECC处理的数据量,响应于存储在所述存储电路中的所述命令生成信息和数据单元信息,确定单元数据命令重复的次数;以及
命令生成电路,在所述单元数据重复控制电路的控制下,生成并输出用于控制所述选择的存储器的所述命令集。
3.根据权利要求2所述的存储器控制器,其中所述单元数据重复控制电路响应于列地址设置所述命令集的起始地址。
4.根据权利要求3所述的存储器控制器,其中所述单元数据重复控制电路根据所述选择的存储器的页面大小和平面数量,确定总共可存储的数据大小,并且基于所述数据单元信息确定单元数据命令重复的次数。
5.根据权利要求4所述的存储器控制器,其中所述命令生成电路生成所述命令集,所述命令集包括平面地址和单元数据命令,所述平面地址基于所述单元数据重复控制电路设置的所述起始地址,所述单元数据命令被重复所述单元数据命令重复的次数。
6.根据权利要求1所述的存储器控制器,其中所述多个存储器包括彼此相同或不同的平面数量。
7.一种存储器系统,包括:
存储器装置,包括多个存储器;以及
存储器控制器,响应于来自主机的请求,通过生成用于控制所述存储器装置的公共命令集来控制所述存储器装置,
其中所述存储器控制器基于与所述多个存储器中的每一个对应的命令生成信息来生成所述命令集,
其中所述命令生成信息包括所述多个存储器中的每一个的页面大小信息和平面数量信息,
其中当所述多个存储器具有不同的页面大小和平面数量时,所述存储器控制器使用公共命令集来控制所述多个存储器。
8.根据权利要求7所述的存储器系统,其中所述存储器控制器包括处理器,所述处理器基于所述多个存储器中的选择的存储器的命令生成信息来生成所述命令集。
9.根据权利要求8所述的存储器系统,其中所述存储器控制器进一步包括存储电路,所述存储电路存储所述多个存储器中的每一个的命令生成信息。
10.根据权利要求8所述的存储器系统,其中所述处理器包括:
单元数据重复控制电路,响应于所述命令生成信息和数据单元信息,确定单元数据命令重复的次数;以及
命令生成电路,在所述单元数据重复控制电路的控制下,生成并输出用于控制所述选择的存储器的所述命令集。
11.根据权利要求10所述的存储器系统,其中所述数据单元信息指示待由所述存储器控制器错误校正码处理即ECC处理的数据量。
12.根据权利要求10所述的存储器系统,其中所述单元数据重复控制电路响应于列地址设置所述命令集的起始地址。
13.根据权利要求12所述的存储器系统,其中所述单元数据重复控制电路根据所述选择的存储器的页面大小和平面数量,确定总共可存储的数据大小,并且基于所述数据单元信息确定单元数据命令重复的次数。
14.根据权利要求13所述的存储器系统,其中所述命令生成电路生成所述命令集,所述命令集包括平面地址和单元数据命令,所述平面地址基于所述单元数据重复控制电路设置的所述起始地址,所述单元数据命令被重复所述单元数据命令重复的次数。
15.根据权利要求7所述的存储器系统,其中所述多个存储器中的所述选择的存储器响应于所述命令集对一个或多个平面中的起始平面执行全部操作,并且
当所述全部操作完成时,所述存储器控制器通过选择所述起始平面的下一个平面,控制所述选择的存储器执行所述全部操作。
16.一种操作存储器控制器的方法,所述方法包括:
从主机接收外部命令;
响应于所接收的外部命令,获取关于从所述主机请求的操作的信息;
读取关于选择的存储器的命令生成信息和数据单元信息;
基于所述命令生成信息和所述数据单元信息,确定单元数据命令重复的次数;以及
根据所述单元数据命令重复的次数,生成并输出用于控制所述选择的存储器的公共命令集,
其中所述命令生成信息包括所述多个存储器中的每一个的页面大小信息和平面数量信息,
其中当所述多个存储器具有不同的页面大小和平面数量时,所述存储器控制器使用公共命令集来控制所述多个存储器。
17.根据权利要求16所述的方法,其中,在生成并输出所述命令集时,当对选择的平面的全部操作完成时,跳过生成针对除了所述选择的平面之外的其它未选择平面的命令集的操作,所述选择的平面是包括在所述选择的存储器中的多个平面中与包括在所述命令集中的平面地址对应的平面。
18.一种存储器系统,包括:
存储器装置,包括平面,每个所述平面具有页面;
存储装置,存储命令生成信息;以及
处理器:
响应于对所述平面中的一个或多个目标平面的请求,生成一个或多个公共命令集,每个公共命令集包括针对所述目标平面中的一个目标平面的单元数据命令和重复次数;并且
根据每个命令集中的所述单元数据命令,控制所述存储器装置重复对每个目标平面的操作所述重复次数,
其中所述命令生成信息表示所述页面的大小、所述平面的数量以及用于错误校正操作的单元数据的大小,
其中所述处理器基于所述页面的大小和所述处理器一次处理的最大数据量来确定所述命令集的数量,并且
其中所述处理器基于所述页面的大小和所述单元数据的大小来确定所述重复次数,
其中当所述多个存储器具有不同的页面大小和平面数量时,所述存储器控制器使用公共命令集来控制所述多个存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0176585 | 2017-12-20 | ||
KR1020170176585A KR102480464B1 (ko) | 2017-12-20 | 2017-12-20 | 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947356A CN109947356A (zh) | 2019-06-28 |
CN109947356B true CN109947356B (zh) | 2022-05-06 |
Family
ID=66816076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810939303.8A Active CN109947356B (zh) | 2017-12-20 | 2018-08-17 | 存储器控制器、存储器系统以及操作存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10719269B2 (zh) |
KR (1) | KR102480464B1 (zh) |
CN (1) | CN109947356B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657696B2 (en) | 2005-02-25 | 2010-02-02 | Lsi Corporation | Method to detect NAND-flash parameters by hardware automatically |
US7395401B2 (en) * | 2005-09-30 | 2008-07-01 | Sigmatel, Inc. | System and methods for accessing solid-state memory devices |
US7584336B2 (en) * | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US20130103889A1 (en) | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
KR102068342B1 (ko) * | 2013-03-07 | 2020-01-20 | 삼성전자주식회사 | 메모리 제어기 및 그것을 포함하는 메모리 시스템 |
WO2016030992A1 (ja) * | 2014-08-27 | 2016-03-03 | 株式会社日立製作所 | 記憶デバイスおよびストレージ装置 |
KR20170111657A (ko) * | 2016-03-29 | 2017-10-12 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US10593398B2 (en) * | 2016-09-13 | 2020-03-17 | Toshiba Memory Corporation | Semiconductor storage device including a controller configured to execute a first write and a second write |
-
2017
- 2017-12-20 KR KR1020170176585A patent/KR102480464B1/ko active IP Right Grant
-
2018
- 2018-07-23 US US16/042,573 patent/US10719269B2/en active Active
- 2018-08-17 CN CN201810939303.8A patent/CN109947356B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190187932A1 (en) | 2019-06-20 |
KR20190074892A (ko) | 2019-06-28 |
US10719269B2 (en) | 2020-07-21 |
KR102480464B1 (ko) | 2022-12-23 |
CN109947356A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107393592B (zh) | 半导体存储器件及其操作方法 | |
CN109427380B (zh) | 半导体存储器装置及其操作方法 | |
CN106128505B (zh) | 包括半导体存储器件的存储系统以及其编程方法 | |
CN109390019B (zh) | 存储系统及其操作方法 | |
CN109754827B (zh) | 半导体存储器装置及其操作方法 | |
US20160172050A1 (en) | Semiconductor memory device and operating method thereof | |
US10210942B2 (en) | Semiconductor memory device and method of operating the same | |
US11222698B2 (en) | Microcontroller, memory system having the same, and method for operating the same | |
CN109949839B (zh) | 存储器控制器及存储器控制器的操作方法 | |
CN109979513B (zh) | 半导体存储器装置及其操作方法 | |
CN106558341B (zh) | 半导体存储器件 | |
US9570178B2 (en) | Semiconductor memory device and operating method thereof | |
US9627075B1 (en) | Semiconductor memory device and semiconductor system | |
TW201712678A (zh) | 包含三維陣列結構的半導體記憶體裝置和包含其之記憶體系統 | |
CN112185449A (zh) | 存储器系统以及操作存储器系统的方法 | |
KR20190052441A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US10153044B2 (en) | Semiconductor memory device and operating method thereof | |
CN111338839B (zh) | 控制器、包括该控制器的存储器系统及其操作方法 | |
CN110045917B (zh) | 存储器系统及其操作方法 | |
US11029886B2 (en) | Memory system and method of operating memory system | |
US9478289B1 (en) | Semiconductor memory device and operating method thereof | |
CN111240585B (zh) | 控制器、包括控制器的存储器系统及其操作方法 | |
CN113053427A (zh) | 电压切换电路和切换电路 | |
CN110196820B (zh) | 半导体存储器装置及其操作方法 | |
CN111951871A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |