CN111913654B - 控制器及具有其的存储器系统 - Google Patents
控制器及具有其的存储器系统 Download PDFInfo
- Publication number
- CN111913654B CN111913654B CN201911400662.7A CN201911400662A CN111913654B CN 111913654 B CN111913654 B CN 111913654B CN 201911400662 A CN201911400662 A CN 201911400662A CN 111913654 B CN111913654 B CN 111913654B
- Authority
- CN
- China
- Prior art keywords
- data
- command
- output
- input
- die
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种控制器。该控制器包括:命令队列调度器,用于对正常命令进行排队,并且当输入暂停命令时,为该暂停命令提供优先级顺序;数据输入/输出组件,用于响应于命令队列调度器输出的数据输出信号输出数据,并且响应于数据输出停止信号停止数据的输出;以及数据监测器,用于将输入到数据输入/输出组件的数据划分成多个数据组,并且监测包括当前从数据输入/输出组件输出的数据的数据组的信息。数据输入/输出组件响应于数据输出停止信号,输出数据直至包括在数据组中的当前输出数据,然后停止数据的输出。当数据组的输出停止时,命令队列调度器输出暂停命令。
Description
相关申请的交叉引用
本申请要求于2019年5月9日提交的、申请号为10-2019-0054502的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开总体涉及一种控制器和具有该控制器的存储器系统,并且更特别地,涉及一种被配置成响应于暂停命令而执行暂停操作的控制器,以及具有该控制器的存储器系统。
背景技术
存储器系统可包括存储器装置和控制器。
存储器装置可包括能够存储数据的多个管芯。管芯中包括的存储器单元可被实施为在电源中断时在存储器单元中所存储的数据消失的易失性存储器单元,或者被实施为即使在电源中断时在存储器单元中所存储的数据也被保留的非易失性存储器单元。
控制器可控制主机和存储器装置之间的数据通信。例如,控制器可响应于来自主机的请求而控制存储器装置。而且,控制器可在没有来自主机的任何请求的情况下执行后台操作,以提高存储器系统的性能。
主机可通过使用诸如以下的接口协议通过控制器来与存储器装置通信:高速外围组件互连(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)或串列SCSI(SAS)。可选地,可使用诸如通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)或电子集成驱动器(IDE)的各种其它接口协议中的任意一种接口协议。
发明内容
实施例提供了一种能够防止暂停命令的运行延迟的控制器和具有该控制器的存储器系统。
根据本公开的一个方面,提供了一种控制器,该控制器包括:命令队列调度器,被配置成对正常命令进行排队,并且当输入暂停命令时,为该暂停命令提供比正常命令更高的优先级;数据输入/输出组件,被配置成响应于来自命令队列调度器的数据输出信号输出多个数据项,并且响应于来自命令队列调度器的数据输出停止信号停止多个数据项的输出;以及数据监测器,被配置成将输入到数据输入/输出组件的多个输入数据项划分成多个数据组,并且监测包括当前从数据输入/输出组件输出的数据的当前数据组的信息,其中数据输入/输出组件响应于数据输出停止信号,输出当前数据组中的在前数据和当前输出数据,并且停止下一数据的输出,其中在当前数据组的输出停止时,命令队列调度器输出暂停命令。
根据本公开的另一方面,提供了一种存储器系统,该存储器系统包括:第一管芯和第二管芯,联接到相同的通道;处理器,被配置成响应于从主机接收的请求,输出第一命令或第二命令,第二命令的优先级高于第一命令;以及闪存接口层,被配置成响应于第一命令向第一管芯输出数据,其中该闪存接口层:将输入数据划分成多个数据组;当输入第二命令时,输出当前数据组中的在前数据和当前输出数据,然后向第二管芯输出第二命令;以及当第二命令运行结束时,向第一管芯输出已完全输出的当前数据组的下一数据组中的数据。
根据本公开的另一方面,提供了一种存储器系统,该存储器系统包括:第一管芯和第二管芯;以及控制器,该控制器包括:处理器,适于从主机接收请求,并且响应于该请求,生成用于第一管芯的第一命令和用于第二管芯的第二命令,该第二命令的优先级高于第一命令;以及闪存接口层,通过通道联接到第一管芯和第二管芯,并且适于:接收与第一命令对应的多个数据组,多个数据组中的每一个数据组包括多个数据项;向第一管芯提供多个数据组之中的一些数据组;当接收到第二命令时,暂停向第一管芯提供多个数据组之中剩余的数据组;以及当运行第二命令时,向第一管芯提供剩余的数据组。
附图说明
下面参照附图更全面地描述各个实施例;然而,本发明可以以不同的形式来实现,并因此不限于在本文中所阐述的实施例。相反,提供这些实施例以使本公开是彻底且完全的,并且将向本领域技术人员充分传达本发明的范围。
在附图中,为了说明清楚,可放大尺寸。应当理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者还可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储器系统的示图。
图2是示出图1所示的管芯的示图。
图3是示出多通道方案中的命令运行方法的示图。
图4是示出根据本公开的实施例的控制器的示图。
图5是示出闪存接口层的配置的示图。
图6是示出根据本公开的实施例的中央处理单元的示图。
图7是示出通道调度器的功能的示图。
图8是示出地址表的示图。
图9是示出闪存接口的示图。
图10至图12是示出命令队列调度器对暂停命令进行排队的方法的示图。
图13是示出根据本公开的实施例的数据组设置方法的示图。
图14是示出一般暂停命令处理方法的示图。
图15是示出根据本公开的实施例的暂停命令处理方法的示图。
图16是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
图17是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
图18是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
图19是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
具体实施方式
关于本公开,根据结合附图对以下实施例的描述,优点、特征和实现这些优点、特征的方法将变得更加显而易见。然而,本发明可以以不同的形式体现,并不应被解释为限于在本文中所阐述的实施例。相反,提供这些实施例以将本公开详细地描述至本公开所属领域的技术人员可以容易地实现本发明的程度。
在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,该元件可以直接连接或联接到另一元件,或者可以利用一个或多个置于其间的中间元件间接连接或联接到另一元件。另外,除非另有说明,否则当元件被称为“包括有”组件时,这表示该元件可进一步包括一个或多个其它组件,而非排除其它组件。
图1是示出根据本公开的实施例的存储器系统的示图。
参照图1,存储器系统1000可包括被配置成存储数据的存储器装置1100,以及被配置成控制存储器装置1100的控制器1200。
存储器装置1100可包括多个管芯D1至Di(其中i是大于1的正整数)。管芯D1至Di可利用在电源中断时其中所存储的数据消失的易失性存储器装置来实施,或者利用即使在电源中断时其中所存储的数据也被保留的非易失性存储器装置来实施。在以下实施例中,以利用非易失性存储器装置实施的包括管芯D1至Di的存储器系统作为示例进行描述。非易失性存储器装置可以是NAND闪速存储器装置。
存储器装置1100可通过多个通道CH1至CHk(其中k是大于1的正整数)与控制器1200通信。例如,存储器装置1100中的管芯D1至Di可通过通道CH1至CHk从控制器1200接收命令、地址、数据等,并且将数据输出到控制器1200。
控制器1200可响应于从主机2000接收的请求来控制存储器装置1100,并且将从存储器装置1100读取的数据输出到主机2000。例如,当控制器1200从主机2000接收编程请求和数据时,控制器1200可将所接收的数据存储在存储器装置1100中。当控制器1200从主机2000接收读取请求和逻辑地址时,控制器1200可根据映射到该逻辑地址的物理地址来执行读取操作,并且将读取的数据输出到主机2000。
在没有来自主机2000的任何请求的情况下,控制器1200可执行能够管理存储器装置1100的后台操作。例如,控制器1200可执行包括垃圾收集、损耗均衡等功能。另外,控制器1200可执行各种功能,以有效地管理存储器装置1100。
而且,当控制器1200从主机2000接收暂停请求时,控制器1200可生成与该暂停请求对应的暂停命令。也就是说,暂停命令的优先级高于正常命令。例如,暂停命令可以是读取命令,正常命令可以是编程命令或擦除命令。当所选择的通道空闲时,控制器可通过所选择的通道立即将暂停命令传送到所选择的管芯。
当所选择的通道忙碌时,控制器1200可对命令进行排队,以便在所选择的通道中当前正执行的命令之后可以执行该暂停命令。当控制器1200通过所选择的通道向另一管芯传送编程数据时,控制器1200可向该管芯传送编程数据,包括在从主机接收暂停命令时当前正在传送的编程数据的所有数据组,并且将该暂停命令传送到所选择的管芯。
当该暂停命令被传送到所选择的管芯时,控制器1200可将编程命令、物理地址和编程数据重新传送到停止了编程数据传送操作的其它管芯。控制器1200不重新传送已被传送的数据,但可传送尚未传送的数据。为此,在编程操作中,控制器1200可将编程数据划分成多个组,并且确定当前正被传送的数据包括在哪个数据组中。因此,存储器系统1000可防止所选择的管芯的暂停命令运行延迟,并且减少另一管芯的恢复操作时间。
主机2000可通过使用诸如以下的接口协议与存储器系统1000通信:高速外围组件互连(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串列SCSI(SAS)或高速非易失性存储器(NVMe)。接口协议不限于上述示例;可选地,主机2000可通过诸如以下的各种其它协议中的任意一种协议与存储器系统1000通信:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
图2是示出图1所示管芯的代表性管芯Di的示图。
参照图2,该管芯Di可包括被配置成存储数据的存储器单元阵列110,被配置成执行编程操作、读取操作或擦除操作的外围电路,以及被配置成控制外围电路的逻辑电路170。
存储器单元阵列110可包括存储数据的多个存储块。存储块中的每一个存储块可包括多个存储器单元,并且存储器单元可以二维结构或三维结构来实施,在二维结构中,存储器单元平行于衬底布置,在三维结构中,存储器单元垂直地堆叠在衬底上。
外围电路可包括电压生成器120、行解码器130、页面缓冲器组140、列解码器150以及输入和输出(输入/输出)电路160。
电压生成器120可响应于操作信号OPS生成并输出各个操作所需的操作电压Vop。例如,电压生成器120可生成并输出编程电压、验证电压、读取电压、通过电压、擦除电压等。
行解码器130可根据行地址RADD从存储器单元阵列110中的存储块之中选择一个存储块,并且将操作电压Vop传送到所选择的存储块。
页面缓冲器组140可通过位线联接到存储器单元阵列110,并且包括联接到位线的多个页面缓冲器。响应于页面缓冲器控制信号PBSIG,多个页面缓冲器可在编程操作或读取操作中临时存储数据。为此,页面缓冲器可包括临时存储数据的多个锁存器。例如,在编程操作中通过通道CHk接收的数据可临时存储在页面缓冲器中,然后进行编程。在读取操作中从存储器单元阵列110读取的数据可临时存储在页面缓冲器中,然后进行输出。
列解码器150可根据列地址CADD来将从输入/输出电路160接收的数据顺序地传送到页面缓冲器组140中包括的页面缓冲器,或者将从页面缓冲器接收的数据顺序地传送到输入/输出电路160。
输入/输出电路160可通过通道CHk的输入/输出线来联接到控制器1200,并且通过输入/输出线来输入和输出命令CMD、地址ADD和数据DATA。例如,输入/输出电路160可将从控制器1200接收的命令CMD和地址ADD传送到逻辑电路170,并且将从控制器1200接收的数据DATA传送到列解码器150。而且,输入/输出电路160可通过通道CHk的输入/输出线来将从存储器单元阵列110读取的数据输出到控制器1200。
逻辑电路170可响应于通过通道CHk从控制器1200接收的控制信号CTSIG以及从输入/输出电路160接收的命令CMD和地址ADD,输出操作信号OPS、行地址RADD、页面缓冲器控制信号PBSIG及列地址CADD。
图3是示出多通道方案中的命令运行方法的示图。
参照图3,在多通道方案中,多个管芯D1至Di可联接到多个通道CH1至CHk中的每一个通道。例如,第一至第i管芯D1至Di可联接到第一通道CH1,第一至第i管芯D1至Di可联接到第二通道CH2,并且第一至第i管芯D1至Di可联接到第k通道CHk。联接到不同通道的第一至第i管芯D1至Di在物理上可以是不同的管芯。不能同时选择联接到相同通道的管芯,可同时选择联接到不同通道的管芯。
例如,当联接到第一通道CH1的第一至第i管芯D1至Di之中的第二管芯D2与控制器1200通信时,第一和第三至第i管芯D1和D3至Di不能与控制器1200通信。然而,当联接到第一通道CH1的第一至第i管芯D1至Di之中的第二管芯D2与控制器1200通信时,联接到第二通道CH2的第三管芯D3和联接到第k通道CHk的第一管芯D1可同时与控制器1200通信。在每个通道中选择的管芯是用于描述本公开的示例,因此,在不同通道中同时选择的管芯可根据命令和地址而变化。
图4是示出根据本公开的实施例的控制器1200的示图。
参照图4,控制器1200可包括主机接口层(HIL)210、中央处理单元(CPU)220和闪存接口层(FIL)230。
HIL 210可在主机2000和CPU 220之间通信。例如,当HIL 210从主机2000接收请求、逻辑地址或数据时,HIL 210可将所接收的请求、逻辑地址或数据传送到CPU 220。而且,当HIL 210从CPU 220接收数据时,HIL 210可将所接收的数据输出到主机2000。
CPU 220可在HIL 210和FIL 230之间通信,并且控制控制器1200的全部操作。例如,CPU 220可将从HIL 210接收的请求转换成命令,并且根据通道的状态来将该命令传送到FIL 230。例如,通过考虑每个通道中排队的命令、峰值功率等,CPU 220可向FIL 230传送命令,使得特定通道不会发生过载。而且,CPU 220可将从HIL 210接收的逻辑地址转换(或转化)成物理地址,并且将该物理地址传送到FIL 230。CPU220可将从HIL 210接收的数据传送到FIL 230。
FIL 230可在CPU 220和存储器装置1100之间通信。FIL 230可从CPU 220接收命令、物理地址或数据,并且将命令、物理地址或数据传送到通过通道所选择的管芯。例如,FIL 230可根据通道中的每一个通道的状态来对命令进行排队,将编程数据划分成多个数据组,并且存储和实时更新关于包括被传送到通道的数据的数据组的信息。而且,当FIL230接收暂停命令时,在当前加载的数据组通过通道的传送结束时,FIL 230可输出暂停命令。当暂停命令的运行结束时,FIL 230可恢复被停止(或暂停)的编程操作。当编程操作恢复时,FIL 230可重新传送与被停止的编程操作有关的命令和物理地址,并且通过通道来传送未传送的数据。
图5是示出闪存接口层(FIL)230的配置的示图。
参照图5,FIL 230可包括多个闪存接口1FI至kFI。闪存接口1FI至kFI的数量可等于与存储器装置1100通信的通道CH1至CHk的数量。例如,当存储器系统1000以包括第一至第k通道CH1至CHk的多通道方案进行配置时,FIL 230可包括第一至第k闪存接口1FI至kFI。第一闪存接口1FI可通过第一通道CH1与存储器装置1100通信,第二闪存接口2FI可通过第二通道CH2与存储器装置1100通信,并且第k闪存接口kFI可通过第k通道CHk与存储器装置1100通信。
CPU 220可根据第一至第k通道CH1至CHk的状态,选择性地将命令CMD、物理地址PADD和数据DATA传送到第一至第k闪存接口1FI至kFI。CPU 220可在接收到编程请求时传送编程命令,在接收到读取请求时传送读取命令,并且在接收到擦除请求时传送擦除命令。
第一至第k闪存接口1FI至kFI中的每一个闪存接口可对从CPU 220接收的命令CMD进行排队。进一步地,第一至第k闪存接口1FI至kFI中的每一个闪存接口可根据排队的顺序,通过通道来将编程命令CMDp、物理地址PADD和数据DATA传送到所选择的管芯,或者将读取命令CMDr和物理地址PADD传送到所选择的管芯。除了编程命令CMDp和读取命令CMDr之外,第一至第k闪存接口1FI至kFI中的每一个闪存接口还可对从CPU 220接收的各种命令进行排队,并且根据排队的顺序来输出命令。
例如,第一闪存接口1FI可通过第一通道CH1来输出编程命令CMDp、物理地址PADD和数据DATA,第k闪存接口kFI可通过第k通道CHk来输出读取命令CMDr和物理地址PADD。
图6是示出根据本公开的实施例的中央处理单元(CPU)220的示图。
参照图6,CPU 220可包括命令(CMD)生成器221、通道(CH)调度器222、地址(ADD)表223和第一缓冲器224。
命令生成器221可将从主机2000接收的请求RQ生成为待在存储器系统1000中使用的命令CMD,并且将所生成的命令CMD传送到CH调度器222。
通道调度器222可根据通道的状态来对从命令生成器221接收的命令CMD进行排队,并且根据排队的顺序来输出命令CMD。
地址表223可以是其中逻辑地址LADD和物理地址PADD彼此映射的表。地址表223可被存储在CPU 220中包括的内部存储器中。每当被映射的地址改变时,可更新地址表223。当接收到逻辑地址LADD时,地址表223可输出与所接收的逻辑地址LADD对应的物理地址PADD。
第一缓冲器224可临时存储从主机2000接收的数据DATA,并且根据设置的数据宽度来将数据DATA传送到FIL 230。
图7是示出通道(CH)调度器222的功能的示图。
参照图7,通道调度器222可包括第二缓冲器71和第三缓冲器72。第二缓冲器71被配置成存储与通道CH1、CH2、…中的每一个通道有关的状态信息ST#。第三缓冲器72被配置成根据状态信息ST#,临时存储排队的命令CMD。例如,第二缓冲器71中的状态信息ST#可包括关于在每个通道中正执行或待执行的命令CMD的数量的信息,或者关于每个通道的当前功耗量或预测功耗量的信息。可选地,状态信息ST#可包括所有的信息。
关于预测功耗量的信息或关于操作时间的信息可被存储在通道调度器222中。通道调度器222可根据第三缓冲器72中存储的命令的排队信息来更新第二缓冲器71中相应通道的状态信息ST#。可将状态信息ST#计算为待被存储在第二缓冲器71中的每个通道的工作负载。
也就是说,通道调度器222可检查与第二缓冲器71中存储的通道CH1、CH2、…的状态信息ST#相对应的工作负载。进一步地,CH调度器222可优先将命令CMD分配到工作负载相对较低的通道,或者将工作负载相对较高的命令CMD分配到工作负载相对较低的通道。例如,根据通道CH1、CH2、…的工作负载和所接收的命令CMD的工作负载,通道调度器222可将第一命令CMD1分配到第三通道CH3(21),将第二命令CMD2分配到第四通道CH4(22),将第三命令CMD3分配到第一通道CH1(23),并且将第四命令CMD4分配到第二通道CH2(24)。
通道调度器222可根据第一至第四命令CMD1至CMD4在第三缓冲器72中排队的顺序(21、22、23和24)来顺序地输出第一至第四命令CMD1至CMD4,并且更新第二缓冲器71中的每个通道的状态信息ST#。
图8是示出地址(ADD)表223的示图。
参照图8,地址表223可包括分别被映射到逻辑地址LADD1至LADD#的物理地址PADD1到PADD#。逻辑地址LADD1至LADD#可以是主机2000中使用的地址,物理地址PADD1至PADD#可以是存储器装置1100中使用的地址。
每当被映射的地址改变时,CPU 220可更新地址表223。当接收到逻辑地址LADD时,CPU 220可输出映射到所接收的逻辑地址LADD的物理地址PADD。
图9是示出闪存接口的示图。
参照图9,闪存接口是图5所示的第一至第k闪存接口1FI至kFI中的任意一个闪存接口,并且第一至第k闪存接口1FI至kFI可彼此相同地进行配置。因此,将第k闪存接口kFI作为示例进行描述。
第k闪存接口kFI可包括命令(CMD)队列调度器91、地址(ADD)输入/输出组件92、数据(DATA)输入/输出组件93及数据监测器94。
当输入正常命令CMD时,第k闪存接口kFI中的组件中的每一个组件可进行如下操作。
命令队列调度器91可对输入命令CMD进行排队,并且顺序地输出排队的命令CMD。例如,当输入正常命令时,命令队列调度器91可以以正常命令被输入的顺序来对正常命令进行排队,并且按照正常命令被排队的顺序来输出命令CMD。而且,在命令队列调度器91输出命令CMD之后,命令队列调度器91可顺序地输出地址输出信号AOS和数据输出信号DOS。
当输入物理地址PADD时,地址输入/输出组件92可临时存储所输入的物理地址PADD,并且响应于从命令队列调度器91输出的地址输出信号AOS而输出物理地址PADD。
当输入数据DATA时,数据输入/输出组件93可临时存储所输入的数据DATA,并且响应于从命令队列调度器91输出的数据输出信号DOS而输出数据DATA。
数据监测器94可与数据输入/输出组件93通信。数据监测器94可将输入到数据输入/输出组件93的数据划分成多个数据组,并且实时监测当前从数据输入/输出组件93输出的数据组。
当输入暂停命令CMD时,第k闪存接口kFI中的组件中的每一个组件可进行如下操作。
命令队列调度器91可为暂停命令提供比现有排队的正常命令CMD更高的优先级,并且输出数据输出停止信号DSS。随后,当接收到从数据输入/输出组件93输出的完成信号FIS时,命令队列调度器91可输出暂停命令。暂停命令可以是读取命令,因此,命令队列调度器91可输出暂停命令,然后输出地址输出信号AOS。
地址输入/输出组件92可临时存储与暂停命令一起输入的物理地址PADD,并且响应于从命令队列调度器91输出的地址输出信号AOS而输出该物理地址PADD。
当从命令队列调度器91接收到数据输出停止信号DSS时,数据输入/输出组件93可输出直到由数据监测器94设置的最后数据并包括该最后数据的数据,并且输出完成信号FIS。
数据监测器94可存储关于包括从数据输入/输出组件93输出的数据的数据组的信息。
当接收到完成信号FIS时,命令队列调度器91可输出暂停命令。
当输入恢复命令CMD时,第k闪存接口kFI中包括的组件中的每一个组件可进行如下操作。
命令队列调度器91可响应于恢复命令而重新输出被暂停命令停止的正常命令CMD。随后,命令队列调度器91可顺序地输出地址输出信号AOS和数据输出信号DOS。
地址输入/输出组件92可响应于从命令队列调度器91输出的地址输出信号AOS而输出物理地址PADD。
当从命令队列调度器91输出的数据输出信号DOS被重新输入时,数据输入/输出组件93可输出由于暂停命令而停止输出的数据。可从数据监测器94接收关于未输出的数据的信息。
数据监测器94可基于与在先前正常操作中已完全输出的数据组有关的信息,将关于下一数据组的信息传送到数据输入/输出组件93。
数据输入/输出组件93可根据从数据监测器94接收的数据组信息,从所选择的数据组的第一数据输出数据。
另外,上述组件之中的命令队列调度器91的操作描述如下。
图10至图12是示出命令(CMD)队列调度器91对暂停命令进行排队的方法的示图。
参照图10,当第一至第五正常命令CMD1至CMD5被顺序输入到命令队列调度器91时,命令队列调度器91可以以它们被输入的顺序来对第一至第五命令CMD1至CMD5进行排队,并且以相同的顺序来顺序地输出第一至第五命令CMD1至CMD5。
参照图11,当在命令队列调度器91输出第一命令CMD1并随后输出作为下一命令的第二命令CMD2之前输入暂停命令CMD6时,可停止与第一命令CMD1对应的正在执行的操作。为此,命令队列调度器91可存储最近输出的命令,直到与已输出的命令对应的所有操作完成为止。
参照图12,相对于被停止的第一命令CMD1,命令队列调度器91可为暂停命令CMD6提供更高的优先级,并且对命令进行排队,使得暂停命令CMD6在队列中更靠前,并因此比其它正常命令CMD1至CMD5输出得更早。
图13是示出根据本公开的实施例的数据组设置方法的示图。
参照图13,数据监测器94可根据容量CP1至CP4或间隔CHP1至CHP3,通过将输入到数据输入/输出组件93的数据DATA划分成数据组来设置数据组。
当根据容量CP1至CP4划分数据组DATA1-1至DATA1-4时,数据监测器94可将输入到数据输入/输出单元93的数据DATA的总容量划分成4个部分。这种划分仅是示例;可将DATA划分成多于或少于4个部分。容量CP1至CP4可彼此相等或不同。例如,第一数据组DATA1-1可具有第一容量CP1,第二数据组DATA1-2可具有第二容量CP2,第三数据组DATA1-3可具有第三容量CP3,第四数据组DATA1-4可具有第四容量CP4,这些容量可全部相同,或者一个或多个容量可以不同。每当从数据输入/输出组件93输出的数据容量达到设定容量时,数据监测器94可更新与包括当前输出数据的数据组有关的信息。
当根据间隔CHP1至CHP3划分数据组DATA1-1至DATA1-4时,当数据DATA从数据输入/输出组件93输出到通道CH1时,数据监测器94可针对间隔CHP1至CHP3所代表的设定时间来存储这些间隔CHP1至CHP3。也就是说,数据监测器94可设置对应于多个间隔中的每一个间隔的时间,并且在从数据输入/输出组件93输出数据之后,针对每个设定时间更新关于包括该数据的数据组的信息。例如,当在输出第一数据之后经过特定时间时,可在第一时间CHP1存储从数据输入/输出组件93输出的数据的位置信息。当在第一时间CHP1之后经过特定时间时,可在第二时间CHP2存储从数据输入/输出组件93输出的数据的位置信息。当在第二时间CHP2之后经过特定时间时,可在第三时间CHP3存储从数据输入/输出组件93输出的数据的位置信息。
假设当输入暂停命令时,当前从数据输入/输出组件93输出的数据被包括在第二数据组DATA1-2中,则数据输入/输出组件93可基于来自数据监测器94的与包括传送到当前通道CH的数据的数据组有关的信息,仅输出直到第二数据组DATA1-2中的数据并包括该第二数据组DATA1-2中的数据的数据,然后停止对第三数据组DATA1-3中的数据的输出。
当在运行暂停命令之后恢复已停止的编程操作时,数据输入/输出组件93可从数据监测器94接收与第二数据组DATA1-2的下一组对应的已被停止输出的第三数据组DATA1-3的信息。数据输入/输出组件93可根据第三数据组DATA1-3的信息,从该第三数据组DATA1-3中的第一数据开始顺序地输出数据。
如上所述,在本实施例中,当输入暂停命令时,可减少运行暂停命令之前的延迟时间,并且也可减少被暂停命令停止的编程操作的恢复时间。与此相关,现有的操作方法和根据本实施例的操作方法如下进行比较。
图14是示出一般暂停命令处理方法的示图。
参照图14,假设第一命令CMD1是编程命令,编程命令CMD1、物理地址PADD和第一至第四数据组DATA1-1至DATA1-4可被顺序地输入到联接到第一通道CH1的第一管芯D1。当第二数据组DATA1-2中的数据被输入到第一管芯D1时,可输入针对第二管芯D2的暂停命令CMD6。暂停命令CMD6可以是读取命令。在一般情况下,虽然输入了暂停命令CMD6,但在传送了与当前正运行的编程命令相关的所有数据DATA1-1至DATA1-4之后,才传送该暂停命令CMD6。因此,在第二管芯D2中运行该暂停命令CMD6之前,可能经过了第一延迟时间。
图15是示出根据本公开的实施例的暂停命令处理方法的示图。
参照图15,与图14不同,当输入暂停命令CMD6时,包括直到当前正通过第一通道CH1传送的第二数据组DATA1-2中的数据的所有数据的数据被传送到第一管芯D1。然后,可在第三和第四数据组DATA1-3和DATA1-4中的数据被传送到第一管芯D1之前,执行针对第二管芯D2的暂停命令CMD6。也就是说,根据本实施例,在运行暂停命令CMD6之前,可能经过第二延迟时间T2,该第二延迟时间T2短于第一延迟时间T1。当在第二管芯D2中完成暂停命令CMD6的运行时,可基于数据容量信息CP1、数据间隔信息CHP2或通过将数据容量信息CP1和数据间隔信息CHP2相加而获得的信息来检测未输出的数据。相应地,编程命令CMD1、物理地址PADD以及第三和第四数据组DATA1-3和DATA1-4可被顺序地传送到第一管芯D1。
图16是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
参照图16,存储器系统30000可被实施为移动电话、智能电话、平板个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可包括存储器装置1100和能够控制存储器装置1100的操作的控制器1200。控制器1200可在处理器3100的控制下控制存储器装置1100的数据访问操作,例如编程操作、擦除操作、读取操作等。
编程在存储器装置1100中的数据可在控制器1200的控制下通过显示器3200输出。
无线电收发器3300可通过天线ANT传送和接收无线电信号。例如,无线电收发器3300可将通过天线ANT接收的无线电信号转换成可由处理器3100处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理后的信号传送到控制器1200或显示器3200。控制器1200可将由处理器3100处理的信号传送到存储器装置1100。而且,无线电收发器3300可将从处理器3100输出的信号转换为无线电信号,并且通过天线ANT将改变后的无线电信号输出到外部装置。输入装置3400是能够输入控制处理器3100的操作的控制信号或者待由处理器3100处理的数据的装置,并且可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。处理器3100可控制显示器3200的操作,使得从控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据可通过显示器3200输出。
在一些实施例中,能够控制存储器装置1100的操作的控制器1200可被实施为处理器3100的一部分,或者被实施为独立于处理器3100的芯片。
图17是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
参照图17,存储器系统40000可被实施为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
存储器系统40000可包括被配置成存储数据的存储器装置1100和能够控制该存储器装置1100的数据处理操作的控制器1200。
处理器4100可根据通过输入装置4200输入的数据,通过显示器4300输出存储器装置1100中存储的数据。例如,输入装置4200可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。
处理器4100可控制存储器系统40000的全部操作,并且控制控制器1200的操作。在一些实施例中,能够控制存储器装置1100的操作的控制器1200可被实施为处理器4100的一部分,或者被实施为独立于处理器4100的芯片。
图18是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
参照图18,存储器系统50000可被实施为图像处理装置,例如数码相机、附接有数码相机的智能电话、或附接有数码相机的平板PC。
存储器系统50000可包括存储器装置1100和控制器1200,控制器1200能够控制存储器装置1100的数据处理操作,例如编程操作、擦除操作或读取操作。
存储器系统50000的图像传感器5200可将光学图像转换为数字信号,并且经转换的数字信号可被传送到处理器5100或控制器1200。经转换的数字信号可在处理器5100的控制下通过显示器5300输出,或通过控制器1200被存储在存储器装置1100中。另外,在处理器5100或控制器1200的控制下,存储器装置1100中存储的数据可通过显示器5300输出。
在一些实施例中,能够控制存储器装置1100的操作的控制器1200可被实施为处理器5100的一部分,或者被实施为独立于处理器5100的芯片。
图19是示出包括图1所示的控制器的存储器系统的另一实施例的示图。
参照图19,存储器系统70000可被实施为存储卡或智能卡。存储器系统70000可包括存储器装置1100、控制器1200和卡接口7100。
控制器1200可控制存储器装置1100和卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但本公开不限于此。
卡接口7100可根据主机60000的协议来接口连接主机60000和控制器1200之间的数据交换。在一些实施例中,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)USB协议。卡接口7100可表示能够支持主机60000使用的协议的硬件、嵌入在硬件中的软件或信号传送方案。
当存储器系统70000联接到诸如PC、平板PC、数码相机、数字音频播放器、移动电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可在微处理器(μP)6100的控制下,通过卡接口7100和控制器1200与存储器装置1100进行数据通信。
根据本公开的实施例,当在编程操作期间接收到暂停命令时,控制器将包括当前正被传送的所有数据组的数据传送到存储器装置,并且运行暂停命令,从而可防止由于当前正执行的操作而导致的暂停命令的执行延迟。
本文已经公开了各个实施例,尽管采用了特定术语,但是这些术语仅以一般的和描述性的意义被使用和理解,而不用于限制的目的。在一些情况下,对于本领域的普通技术人员而言显而易见的是,除非另外明确指出,否则结合特定实施例描述的特征、特性和/或元件可单独使用或与结合其它实施例描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可进行形式和细节上的各种改变。
Claims (21)
1.一种存储器控制器,包括:
命令队列调度器,对正常命令进行排队,并且当输入暂停命令时,为所述暂停命令提供比所述正常命令更高的优先级;
数据输入/输出组件,响应于来自所述命令队列调度器的数据输出信号输出多个数据项,并且响应于来自所述命令队列调度器的数据输出停止信号停止所述多个数据项的输出;以及
数据监测器,将输入到所述数据输入/输出组件的多个输入数据项划分成多个数据组,并且监测包括当前从所述数据输入/输出组件输出的数据的当前数据组的信息,
其中所述数据输入/输出组件响应于所述数据输出停止信号,输出所述当前数据组中的在前数据和当前输出数据,并且停止下一数据的输出,
其中在所述当前数据组的输出停止时,所述命令队列调度器输出所述暂停命令。
2.根据权利要求1所述的存储器控制器,其中所述命令队列调度器根据所述正常命令排队的顺序来顺序地输出所述正常命令,并且存储输出正常命令,直到完成所述输出正常命令的运行。
3.根据权利要求2所述的存储器控制器,其中所述命令队列调度器:
当运行所述暂停命令时,通过为所述暂停命令提供比在所述暂停命令之前输出的被暂停的正常命令更高的优先级来输出所述暂停命令;以及
当输入恢复命令时,重新输出由于所述暂停命令而被停止运行的所述被暂停的正常命令。
4.根据权利要求1所述的存储器控制器,其中所述命令队列调度器:
当输入所述暂停命令时,将所述数据输出停止信号输出到所述数据输入/输出组件;以及
当从所述数据输入/输出组件接收到完成信号时,输出所述暂停命令。
5.根据权利要求4所述的存储器控制器,其中当接收到所述数据输出停止信号时,所述数据输入/输出组件从所述数据监测器接收关于所述当前数据组的信息,并且输出所接收的当前数据组中的所有数据,然后输出所述完成信号。
6.根据权利要求1所述的存储器控制器,其中当所述数据输入/输出组件从所述命令队列调度器重新接收所述数据输出信号时,所述数据输入/输出组件输出已完全输出的数据组的下一数据组中的数据。
7.根据权利要求1所述的存储器控制器,其中所述数据监测器通过根据容量或输出间隔划分所述多个输入数据项来管理关于数据组的信息。
8.根据权利要求7所述的存储器控制器,其中当根据容量划分所述多个输入数据项时,所述数据监测器:
通过根据设定容量将输入到所述数据输入/输出组件的所述多个输入数据项进行划分来定义所述多个数据组;以及
每当从所述数据输入/输出组件输出的数据的容量达到所述设定容量时,更新与包括所述当前输出数据的所述当前数据组有关的信息。
9.根据权利要求7所述的存储器控制器,其中当根据输出间隔划分所述多个输入数据项时,所述数据监测器设置与多个间隔对应的时间,并且在从所述数据输入/输出组件输出数据之后,每隔设定时间更新与包括所述当前输出数据的所述当前数据组有关的信息。
10.一种存储器系统,包括:
第一管芯和第二管芯,联接到相同的通道;
处理器,响应于从主机接收的请求,输出第一命令或第二命令,所述第二命令的优先级高于所述第一命令;以及
闪存接口层,响应于所述第一命令向所述第一管芯输出数据,
其中所述闪存接口层:
将输入数据划分成多个数据组;
当输入所述第二命令时,输出当前数据组中的在前数据和当前输出数据,然后向所述第二管芯输出所述第二命令;以及
当所述第二命令运行结束时,向所述第一管芯输出已完全输出的所述当前数据组的下一数据组中的数据。
11.根据权利要求10所述的存储器系统,其中所述处理器包括:
命令生成器,将所述请求转换成所述第一命令或所述第二命令;
通道调度器,基于所述通道的状态信息来向所述闪存接口层输出所述第一命令或所述第二命令;
地址表,向所述闪存接口层输出对应于从所述主机接收的逻辑地址的物理地址;以及
第一缓冲器,临时存储从所述主机接收的数据,然后向所述闪存接口层输出所述数据。
12.根据权利要求11所述的存储器系统,其中所述通道调度器包括:
第二缓冲器,存储和更新所述状态信息;以及
第三缓冲器,临时存储通过所述通道排队的命令。
13.根据权利要求12所述的存储器系统,其中所述状态信息包括所述通道的工作负载信息。
14.根据权利要求10所述的存储器系统,其中所述闪存接口层包括:
命令队列调度器,临时存储所述第一命令或所述第二命令,并且对所述第一命令和所述第二命令进行排队,使得当在运行所述第一命令的同时输入所述第二命令时,停止运行所述第一命令,并且运行所述第二命令;
地址输入/输出组件,临时存储从所述处理器接收的物理地址,并且响应于从所述命令队列调度器输出的地址输出信号输出物理地址;
数据输入/输出组件,响应于从所述命令队列调度器输出的数据输出信号输出所述数据,并且响应于数据输出停止信号停止所述数据的输出;以及
数据监测器,将所述输入数据划分成所述多个数据组,并且监测来自所述数据输入/输出组件的所述当前数据组的信息。
15.根据权利要求14所述的存储器系统,其中所述数据输入/输出组件响应于所述数据输出停止信号,输出所述当前数据组中的在前数据和当前输出数据,然后停止下一数据的输出,
其中在所述当前数据组的输出停止时,所述命令队列调度器输出暂停命令。
16.根据权利要求14所述的存储器系统,其中所述命令队列调度器:
当运行所述第二命令时,通过为所述第二命令提供比在所述第二命令之前输出的所述第一命令更高的优先级来输出所述第二命令;以及
当输入恢复命令时,重新输出由于所述第二命令而被停止的所述第一命令。
17.根据权利要求14所述的存储器系统,其中所述命令队列调度器:
当输入所述第二命令时,将所述数据输出停止信号输出到所述数据输入/输出组件;以及
当从所述数据输入/输出组件接收到完成信号时,输出所述第二命令。
18.根据权利要求17所述的存储器系统,其中当接收到所述数据输出停止信号时,所述数据输入/输出组件从所述数据监测器接收关于所述当前数据组的信息,并且输出所接收的当前数据组中的所有数据,然后输出所述完成信号。
19.根据权利要求17所述的存储器系统,其中当所述数据输入/输出组件从所述命令队列调度器重新接收所述数据输出信号时,所述数据输入/输出组件从已完全输出的所述当前数据组的下一数据组中的数据输出数据。
20.根据权利要求14所述的存储器系统,其中所述数据监测器通过根据容量或输出间隔划分所述输入数据来管理关于所述多个数据组的信息。
21.一种存储器系统,包括:
第一管芯和第二管芯;以及
控制器,所述控制器包括:
处理器,从主机接收请求,并且响应于所述请求,生成用于所述第一管芯的第一命令和用于所述第二管芯的第二命令,所述第二命令的优先级高于所述第一命令;以及
闪存接口层,通过通道联接到所述第一管芯和所述第二管芯,并且所述闪存接口层:
接收与所述第一命令对应的多个数据组,所述多个数据组中的每个数据组包括多个数据项,
向所述第一管芯提供所述多个数据组之中的一些数据组;
当接收到所述第二命令时,暂停向所述第一管芯提供所述多个数据组之中剩余的数据组;以及
当运行所述第二命令时,向所述第一管芯提供所述剩余的数据组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190054502A KR20200129700A (ko) | 2019-05-09 | 2019-05-09 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR10-2019-0054502 | 2019-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913654A CN111913654A (zh) | 2020-11-10 |
CN111913654B true CN111913654B (zh) | 2023-08-11 |
Family
ID=73045795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911400662.7A Active CN111913654B (zh) | 2019-05-09 | 2019-12-30 | 控制器及具有其的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11455186B2 (zh) |
KR (1) | KR20200129700A (zh) |
CN (1) | CN111913654B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7443195B2 (ja) * | 2020-08-21 | 2024-03-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN112965669B (zh) * | 2021-04-02 | 2022-11-22 | 杭州华澜微电子股份有限公司 | 一种数据存储系统及方法 |
KR102583244B1 (ko) * | 2022-01-28 | 2023-09-26 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932109A (zh) * | 2017-05-24 | 2018-12-04 | 西部数据技术公司 | 基于优先级的内部数据移动 |
CN109671459A (zh) * | 2017-10-17 | 2019-04-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006026645A2 (en) * | 2004-08-30 | 2006-03-09 | Silicon Storage Technology, Inc. | Systems and methods for providing nonvolatile memory management in wireless phones |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US7366028B2 (en) * | 2006-04-24 | 2008-04-29 | Sandisk Corporation | Method of high-performance flash memory data transfer |
US8407562B2 (en) * | 2009-09-01 | 2013-03-26 | Marvell World Trade Ltd. | Systems and methods for compressing data in non-volatile semiconductor memory drives |
US20120167100A1 (en) * | 2010-12-23 | 2012-06-28 | Yan Li | Manual suspend and resume for non-volatile memory |
JP2013077278A (ja) * | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
JP5848153B2 (ja) * | 2012-02-17 | 2016-01-27 | ルネサスエレクトロニクス株式会社 | 信号処理装置及び半導体装置 |
KR102356071B1 (ko) | 2015-05-06 | 2022-01-27 | 에스케이하이닉스 주식회사 | 저장 장치 및 이의 동작 방법 |
US10037167B2 (en) * | 2015-09-11 | 2018-07-31 | Sandisk Technologies Llc | Multiple scheduling schemes for handling read requests |
KR20170033643A (ko) | 2015-09-17 | 2017-03-27 | 에스케이하이닉스 주식회사 | 반도체 시스템 및 그의 동작 방법 |
US10157023B2 (en) * | 2016-02-25 | 2018-12-18 | SK Hynix Inc. | Memory controller and request scheduling method using request queues and first and second tokens |
KR20190032809A (ko) * | 2017-09-20 | 2019-03-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2019
- 2019-05-09 KR KR1020190054502A patent/KR20200129700A/ko active Search and Examination
- 2019-12-26 US US16/727,417 patent/US11455186B2/en active Active
- 2019-12-30 CN CN201911400662.7A patent/CN111913654B/zh active Active
-
2022
- 2022-07-19 US US17/868,430 patent/US20220350655A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932109A (zh) * | 2017-05-24 | 2018-12-04 | 西部数据技术公司 | 基于优先级的内部数据移动 |
CN109671459A (zh) * | 2017-10-17 | 2019-04-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220350655A1 (en) | 2022-11-03 |
CN111913654A (zh) | 2020-11-10 |
US20200356407A1 (en) | 2020-11-12 |
KR20200129700A (ko) | 2020-11-18 |
US11455186B2 (en) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
US8874828B2 (en) | Systems and methods for providing early hinting to nonvolatile memory charge pumps | |
JP6163532B2 (ja) | メモリシステムコントローラを含む装置 | |
CN107179996B (zh) | 数据存储装置和其操作方法 | |
CN111913654B (zh) | 控制器及具有其的存储器系统 | |
JP5918359B2 (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
CN110232035B (zh) | 存储器系统以及存储器系统的操作方法 | |
KR20160049200A (ko) | 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법 | |
US11294586B2 (en) | Method for performing read acceleration, associated data storage device and controller thereof | |
US10795614B2 (en) | Memory controller and operating method thereof | |
CN110109851B (zh) | 具有主机和存储器控制器的电子系统及其操作方法 | |
US20210072922A1 (en) | Storage device and operating method thereof | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
KR20100031132A (ko) | 플래시 메모리 시스템에서 페이징된 가비지 수집과 하우스 키핑 동작 | |
CN101241752A (zh) | 存储卡和包含所述存储卡的存储系统 | |
CN112214163A (zh) | 存储器控制器以及包括其的存储器系统 | |
KR20210039872A (ko) | 프리 블록의 할당을 관리하는 호스트 시스템, 이를 포함하는 데이터 처리 시스템 및 호스트 시스템의 동작방법 | |
CN111324301B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
US9804790B2 (en) | Method of operating memory controller and semiconductor storage device including memory controller | |
CN110069427B (zh) | 存储器控制器以及存储器控制器的操作方法 | |
KR102609473B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190097712A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20220076803A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113495850A (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 |