CN116246666A - 存储器控制器以及操作该存储器控制器的方法 - Google Patents
存储器控制器以及操作该存储器控制器的方法 Download PDFInfo
- Publication number
- CN116246666A CN116246666A CN202210843538.3A CN202210843538A CN116246666A CN 116246666 A CN116246666 A CN 116246666A CN 202210843538 A CN202210843538 A CN 202210843538A CN 116246666 A CN116246666 A CN 116246666A
- Authority
- CN
- China
- Prior art keywords
- memory
- expected
- controller
- data
- output request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/4406—Loading of operating system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Abstract
本公开涉及一种存储器控制器。该存储器控制器可以包括缓冲器、预取控制器和启动控制器。缓冲器可以存储工作负荷信息,该工作负荷信息包括预期将在启动操作期间从主机接收的预期I/O请求的历史。预取控制器可以被配置成在启动开始之后在从主机接收到目标I/O请求之前,基于工作负荷信息从存储器装置中读取与预期I/O请求相对应的预期数据,并且将预期数据存储在缓冲器中。启动控制器可以根据与目标I/O请求相对应的目标数据是否被包括在预期数据中,基于目标I/O请求来更新工作负荷信息,并且可以将更新后的工作负荷信息存储在多个存储器装置中的可以以最少访问次数进行读取的区域中。
Description
相关申请的交叉引用
本申请要求于2021年12月8日向韩国知识产权局提交的、申请号为10-2021-0175060的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,并且更具体地,涉及一种存储器控制器和操作该存储器控制器的方法。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。这种存储器装置被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供应电力时存储数据并在电力供应中断时丢失所存储的数据的存储器装置。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置是即使在电力供应中断时仍保留所存储的数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器等。
发明内容
本公开的各个实施例涉及一种具有优化的启动性能的存储器控制器和操作存储器控制器的方法。
本公开的实施例可以提供一种控制多个存储器装置的存储器控制器,每个存储器装置包括多个存储块。存储器控制器可以包括缓冲器、预取控制器和启动控制器。缓冲器可以被配置成存储工作负荷信息,工作负荷信息包括预期将在启动操作期间从主机接收的预期输入/输出请求的历史。预取控制器可以被配置成在启动操作开始之后,在从主机接收到目标输入/输出请求之前,基于工作负荷信息从多个存储器装置中读取与预期输入/输出请求相对应的预期数据,并且将预期数据存储在缓冲器中。启动控制器可以被配置成根据与目标输入/输出请求相对应的目标数据是否被包括在预期数据中,基于目标输入/输出请求更新工作负荷信息,并且将更新后的工作负荷信息存储在多个存储器装置中的可以以最少访问次数进行读取的区域中。
本公开的实施例可以提供一种控制多个存储器装置的存储器控制器,每个存储器装置包括多个存储块。存储器控制器可以包括缓冲器、预取控制器和启动控制器。缓冲器可以被配置成存储工作负荷信息,工作负荷信息包括预期将在启动操作期间从主机接收的预期输入/输出请求的历史。预取控制器可以被配置成在启动操作开始之后,在从主机接收到目标输入/输出请求之前,基于工作负荷信息从多个存储器装置中读取与预期输入/输出请求相对应的预期数据,并且将预期数据存储在缓冲器中。启动控制器可以被配置成根据与目标输入/输出请求相对应的目标数据是否被包括在缓冲器中存储的预期数据中,基于目标输入/输出请求更新工作负荷信息,并且根据是减少写入延迟还是减少写入操作的总数量来将更新后的工作负荷信息存储在多个存储器装置中的每一个中的主区域和缓冲器区域中的任意一个中。
附图说明
图1示出了根据本公开的实施例的存储装置。
图2示出了根据实施例的图1的存储器装置。
图3示出了根据实施例的图2的存储器单元阵列。
图4示出了存储器控制器控制通过多个通道联接到该存储器控制器的多个存储器装置的方法。
图5示出了根据实施例的超级块。
图6示出了根据另一实施例的超级块。
图7示出了根据实施例的图1的存储器控制器的操作。
图8示出了根据实施例的图7的工作负荷信息。
图9示出了根据数据预取的启动时间的减少。
图10A示出了根据实施例的工作负荷信息的存储状态。
图10B示出了根据另一实施例的工作负荷信息的存储状态。
图11示出了根据优化后的工作负荷信息的存储的启动时间的减少。
图12是示出根据实施例的存储器控制器的操作的流程图。
图13是示出根据实施例的存储器控制器的操作的流程图。
图14示出了根据实施例的图1的存储器控制器。
图15是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
图16是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
图17是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
引入本说明书或申请中的本公开的实施例中的特定结构或功能描述被示例成描述根据本公开的概念的实施例。根据本公开的概念的实施例可以以各种形式实践,并且不应当被解释为限于本说明书或申请中描述的实施例。
图1示出了根据本公开的实施例的存储装置50。
参照图1,存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50可以在诸如以下的主机300的控制下存储数据:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC、车载信息娱乐系统等。
根据作为与主机300通信的方案的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。存储装置50可以被实施成例如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),诸如嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)或微型MMC的多媒体卡(MMC),诸如迷你SD卡或微型SD卡的安全数字(SD)卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡,记忆棒等。
存储装置50可以被制造为各种类型的封装形式中的任意一种。例如,存储装置50可以以诸如以下各种类型的封装形式中的任意一种来制造:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
每个存储器装置100可以存储数据。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被实施为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。单个存储块可以包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
存储块可以是擦除数据的单位。在实施例中,存储器装置100可以采用诸如以下的许多替代形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移扭矩RAM(STT-RAM)。在本说明书中,为了便于描述,将在假设存储器装置100是NAND闪速存储器的情况下进行描述。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列中由地址选择的区域。也就是说,存储器装置100可以对由地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域中读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
在实施例中,关于存储区域,存储器装置100可以包括缓冲器区域和主区域。
缓冲器区域可以包括n位层单元块,在n位层单元块中,每个存储器单元存储n个数据位(其中n为等于或大于1的自然数)。主区域可以包括m位层单元块,在m位层单元块中,每个存储器单元存储m个数据位(其中m为等于或大于n的自然数)。因为与主区域中的相比,缓冲器区域中的每个块中包括的每个存储器单元中存储的数据位的数量少于主区域中的每个块中包括的每个存储器单元中存储的数据位的数量,所以缓冲器区域的存储容量小于主区域的存储容量,但缓冲器区域的访问速度可以比主区域的访问速度更快。
为了改善写入延迟性能,可以将数据临时存储在缓冲器区域中,并且此后可以将缓冲器区域中存储的数据迁移到主区域。
当将数据临时存储在访问速度比主区域的访问速度更快的缓冲器区域中时,可以减少写入延迟,但是因为必须随后执行数据迁移操作,所以写入操作的总数量可以增加。相比之下,当将数据直接存储在主区域而不是缓冲器区域时,可能增大写入延迟,但是因为随后不需要执行数据迁移操作,所以写入操作的总数量可以减少。
可以通过根据减少的目的减少写入延迟或写入操作的总数量来降低写入成本。
在实施例中,包括预期输入/输出(I/O)请求的历史的工作负荷信息可以分布和存储在多个存储器装置100中。预期输入/输出请求表示预期将在启动操作期间从主机300接收的请求。
存储器控制器200控制存储装置50的全部操作。
当向存储装置50施加电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的用于控制主机300与存储器装置100之间的通信的固件。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换为物理块地址(PBA),该PBA指示存储器装置100中包括的、待存储数据的存储器单元的地址。
存储器控制器200可以响应于从主机300接收的请求而控制存储器装置100从而执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将写入命令、物理块地址(PBA)和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址(PBA)提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址(PBA)提供到存储器装置100。
在实施例中,存储器控制器200可以自主地生成命令、地址和数据而不考虑是否接收到来自主机300的请求,并且可以将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100,以便执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以使用交错方案来控制存储器装置100,以提高操作性能。交错方案可以是使至少两个存储器装置100的操作时段彼此重叠的操作方式。
存储器控制器200可以控制通过一个或多个通道联接到存储器控制器200的多个存储器装置100。每个存储器装置100可以包括一个或多个平面。每个平面可以包括多个存储块。
在实施例中,在启动(引导(boot-on))操作开始之后,存储器控制器200可以加载多个存储器装置100中存储的工作负荷信息。在启动操作开始之后从主机300接收到目标输入/输出(I/O)请求之前,存储器控制器200可以基于工作负荷信息从多个存储器装置100加载与预期输入/输出请求相对应的预期数据。预期数据可以包括与对主机300的操作系统进行的启动操作有关的数据。
在实施例中,基于预期将从主机300接收到预期输入/输出请求的时间(预期接收时间)与从启动操作开始后经过的时间之间的比较结果,存储器控制器200可以加载多个存储器装置100中存储的预期数据。
在启动操作开始之后,存储器控制器200可以从主机300接收目标输入/输出请求。存储器控制器200可以响应于目标输入/输出请求而将与目标输入/输出请求相对应的目标数据提供到主机300。当目标数据被包括在加载到存储器控制器200的预期数据中时,存储器控制器200可以立即将先前加载的目标数据提供到主机300。当目标数据未被包括在预期数据中时,存储器控制器200可以加载多个存储器装置100中存储的目标数据,并且可以将所加载的目标数据提供到主机300。
存储器控制器200可以根据与目标输入/输出请求相对应的目标数据是否被包括在预期数据中,基于目标输入/输出请求来更新工作负荷信息。例如,当目标数据未被包括在预期数据中时,存储器控制器200可以基于目标输入/输出请求的历史来更新工作负荷信息。在实施例中,存储器控制器200可以通过基于目标输入/输出请求的历史修改预期输入/输出请求的历史来更新工作负荷信息。
当启动操作完成时,存储器控制器200可以将更新后的工作负荷信息存储在多个存储器装置100中,从而使预期读取成本和写入成本中的至少一个最小化。
在实施例中,存储器控制器200可以将更新后的工作负荷信息存储在同一超级块中,即一个超级块中,以将预期读取成本最小化。超级块可以包括多个存储器装置100之中的不同存储器装置中包括的至少两个存储块。在实施例中,存储器控制器200可以将更新后的工作负荷信息存储在超级块中,该超级块包括存在于缓冲器区域和主区域中的任意一个中的存储块,以便使写入成本最小化。
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
图2示出了根据实施例的图1的存储器装置100。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元。在多个存储器单元中,联接到同一字线的存储器单元可以被限定为单个物理页面。也就是说,存储器单元阵列110包括多个物理页面。根据本公开的实施例,存储器单元阵列110中包括的多个存储块BLK1至BLKz中的每一个可以包括多个虚设单元。作为虚设单元,一个或多个虚设单元可以串联联接在漏极选择晶体管与存储器单元之间以及源极选择晶体管与存储器单元之间。
存储器装置100的存储器单元中的每一个可以被实施为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110,从而对存储器单元阵列110执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括普通字线和虚设字线。根据本公开的实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以对所接收的地址ADDR之中的块地址进行解码。地址解码器121可以根据经解码的块地址选择存储块BLK1至BLKz中的至少一个。地址解码器121可以对所接收的地址ADDR之中的行地址进行解码。地址解码器121可以根据经解码的行地址选择所选择的存储块的字线中的至少一条。地址解码器121可以将从电压生成器122提供的工作电压Vop施加到所选择的字线。
在编程操作期间,地址解码器121可以将编程电压施加到所选择的字线,并且将电平低于编程电压的电平的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到所选择的字线,并且将电平高于验证电压的电平的验证通过电压施加到未选择的字线。
在读取操作期间,地址解码器121可以将读取电压施加到所选择的字线,并且将电平高于读取电压的电平的读取通过电压施加到未选择的字线。
根据本公开的实施例,可以基于存储块来执行存储器装置100的擦除操作。在擦除操作期间,输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以对块地址进行解码并且响应于经解码的块地址而选择单个存储块。在擦除操作期间,地址解码器121可以将接地电压施加到与所选择的存储块联接的字线。
根据本公开的实施例,地址解码器121可以对接收到的地址ADDR之中的列地址进行解码。经解码的列地址可以被传送到读取和写入电路123。在实施例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可以使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器122可以在控制逻辑130的控制下操作。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可以生成存储器装置100所需要的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器122可以包括接收内部电源电压以便生成具有各种电压电平的多个操作电压Vop的多个泵浦电容器,并且可以在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。
所生成的操作电压Vop可以通过地址解码器121供应到存储器单元阵列110。
读取和写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm可以通过第一至第m位线BL1至BLm分别联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下操作。
第一至第m页面缓冲器PB1至PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当将编程脉冲施加到所选择的字线时,第一至第m页面缓冲器PB1至PBm可以将通过数据输入/输出电路124接收的、待存储的数据DATA通过位线BL1至BLm传送到所选择的存储器单元。基于所接收的数据DATA,对所选择的页面中的存储器单元编程。联接到施加有编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以保持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm通过位线BL1至BLm从所选择的存储器单元读取所选择的存储器单元中存储的数据DATA。
在读取操作期间,读取和写入电路123可以通过位线BL从所选择的页面的存储器单元读取数据DATA,并且可以将所读取的数据DATA存储在第一至第m页面缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路123可以允许位线BL浮置。在实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑130的控制而操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将从读取和写入电路123中包括的第一至第m页面缓冲器PB1至PBm接收的数据DATA输出到外部控制器。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT而生成参考电流,并且可以通过将从读取和写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较来将通过或失败信号输出到控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传输的命令CMD而操作。
控制逻辑130可以响应于命令CMD和地址ADDR而通过生成各种类型的信号来控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR而生成操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS以及使能位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将地址ADDR输出到地址解码器121,将读取和写入电路控制信号PBSIGNALS输出到读取和写入电路123,并且将使能位VRYBIT输出到感测电路125。另外,控制逻辑130可以响应于从感测电路125输出的通过信号PASS或失败信号FAIL而确定验证操作是通过还是失败。
图3示出了根据实施例的图2的存储器单元阵列110。
参照图3,第一至第z存储块BLK1至BLKz共同联接到第一至第m位线BL1至BLm。在图3中,为了便于描述,示出了多个存储块BLK1至BLKz之中的第一存储块BLK1中包括的元件,并且省略示出剩余存储块BLK2至BLKz的每一个中包括的元件。将理解的是,剩余存储块BLK2至BLKz中的每一个具有与第一存储块BLK1相同的配置。
第一存储块BLK1可以包括多个单元串CS1_1至CS1_m(其中m为正整数)。第一至第m单元串CS1_1至CS1_m分别连接到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个可以包括漏极选择晶体管DST、彼此串联联接的多个存储器单元MC1至MCn(其中n为正整数)以及源极选择晶体管SST。
第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极选择晶体管DST的栅极端子联接到漏极选择线DSL1。第一至第m单元串CS1_1至CS1_m的每一个中包括的第一至第n存储器单元MC1至MCn的栅极端子分别联接到第一至第n字线WL1至WLn。第一至第m单元串CS1_1至CS1_m的每一个中包括的源极选择晶体管SST的栅极端子联接到源极选择线SSL1。
为了便于描述,将基于多个单元串CS1_1至CS1_m之中的第一单元串CS1_1来描述每个单元串的结构。然而,将理解的是,剩余单元串CS1_2至CS1_m中的每一个以与第一单元串CS1_1相同的方式配置。
第一单元串CS1_1中包括的漏极选择晶体管DST的漏极端子联接到第一位线BL1。第一单元串CS1_1中包括的漏极选择晶体管DST的源极端子联接到第一单元串CS1_1中包括的第一存储器单元MC1的漏极端子。第一至第n存储器单元MC1至MCn可以彼此串联联接。第一单元串CS1_1中包括的源极选择晶体管SST的漏极端子联接到第一单元串CS1_1中包括的第n存储器单元MCn的源极端子。第一单元串CS1_1中包括的源极选择晶体管SST的源极端子联接到公共源极线CSL。在实施例中,公共源极线CSL可以共同联接到第一至第z存储块BLK1至BLKz。
漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1被包括在图2的行线RL中。漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1由地址解码器121控制。公共源极线CSL由控制逻辑130控制。第一至第m位线BL1至BLm由读取和写入电路123控制。
图4示出了存储器控制器控制通过多个通道联接到该存储器控制器的多个存储器装置的方法。
参照图4,存储器控制器200可以通过第一通道CH1和第二通道CH2联接到多个存储器装置Die_11至Die_24。通道的数量或联接到每个通道的存储器装置的数量不限于本实施例。
存储器装置Die_11至Die_14可以共同联接到第一通道CH1。存储器装置Die_11至Die_14可以通过第一通道CH1与存储器控制器200通信。
因为存储器装置Die_11至Die_14共同联接到第一通道CH1,所以一次仅存储器装置Die_11至Die_14之中的单个存储器装置可以与存储器控制器200通信。然而,可以同时执行在各个存储器装置Die_11至Die_14内执行的内部操作。
存储器装置Die_21至Die_24可以共同联接到第二通道CH2。存储器装置Die_21至Die_24可以通过第二通道CH2与存储器控制器200通信。
因为存储器装置Die_21至Die_24共同联接到第二通道CH2,所以一次仅存储器装置Die_21至Die_24之中的单个存储器装置可以与存储器控制器200通信。可以同时执行在各个存储器装置Die_21至Die_24内执行的内部操作。
使用多个存储器装置的存储装置可以通过作为使用交错方案的数据通信的数据交错来提高性能。数据交错可以被配置成在两个或更多个通路彼此共享单个通道的结构中转移通路的同时执行数据读取或写入操作。针对数据交错,可以共同基于通路与通道来管理存储器装置。为了使联接到每个通道的存储器装置的并行度最大化,存储器控制器200可以将连续逻辑存储器区域分布和分配给通道和通路。
例如,存储器控制器200可以通过第一通道CH1将包括命令和地址的控制信号以及数据传输到存储器装置Die_11。在存储器装置Die_11将接收到的数据编程到其包括的存储器单元时,存储器控制器200可以将包括命令和地址的控制信号以及数据传输到存储器装置Die_12。
在图4中,多个存储器装置Die_11至Die_24可以使用四个通路WAY1至WAY4来配置。第一通路WAY1可以包括存储器装置Die_11和Die_21。第二通路WAY2可以包括存储器装置Die_12和Die_22。第三通路WAY3可以包括存储器装置Die_13和Die_23。第四通路WAY4可以包括存储器装置Die_14和Die_24。
通道CH1和CH2中的每一个可以是用于信号的总线,并且总线由联接到相应通道的存储器装置共享和使用。
虽然在图4中示出了2通道/4通路结构中的数据交错,但是随着通道数量的增加和通路数量的增加,数据交错可以更有效。
图5示出了根据实施例的超级块。
参照图5,存储器装置Die_11至Die_14可以共同联接到第一通道CH1。
在图5中,存储器装置Die_11至Die_14中的每一个可以包括一个或多个平面。然而,为了便于描述,在本实施例中假设单个存储器装置包括单个平面。单个平面可以包括多个存储块BLK1至BLKn(其中n为等于或大于1的自然数),并且单个存储块可以包括多个页面Page 1至Page k(其中k为等于或大于1的自然数)。
存储器控制器可以基于超级块控制共同联接到单个通道的多个存储器装置中包括的存储块。超级块可以包括不同存储器装置中包括的至少两个存储块。
例如,第一超级块SB1可以包括存储器装置Die_11至Die_14中分别包括的第一存储块BLK1。第二超级块SB2可以包括存储器装置Die_11至Die_14中分别包括的第二存储块BLK2。类似地,第n超级块SBn可以包括存储器装置Die_11至Die_14中分别包括的第n存储块BLKn。
单个超级块可以包括多个条带。可以将条带指定为超级页面。
参照图5,单个条带或超级页面可以包括存储器装置Die_11至Die_14中分别包括的多个页面。例如,第一条带Stripe 1(或第一超级页面Super Page 1)可以包括第一超级块SB1中包括的第一存储块BLK1的各个第一页面(Page 1)。
因此,单个超级块可以包括第一条带Stripe 1至第k条带Stripe k。可选地,单个超级块可以包括第一超级页面Super Page 1至第k超级页面Super Page k。
当将数据存储在存储器装置Die_11至Die_14中或从存储器装置Die_11至Die_14读取所存储的数据时,存储器控制器可以基于条带或基于超级页面存储或读取数据。
因为每个存储器装置包括具有多个存储块的平面并且每个超级块包括属于不同存储器装置的平面的存储块,所以超级块中包括的块可以对应于多个平面。在实施例中,当数据被存储在同一超级块中时,存储器控制器可以执行多平面操作,以同时读取超级块中包括的存储块或同时对存储块进行编程。
图6示出了根据另一实施例的超级块。
参照图6,存储器装置Die_11可以包括多个平面,例如,Plane 1和Plane 2。单个存储器装置中包括的平面的数量不限于本实施例。单个平面可以包括多个存储块BLK1至BLKn。
平面可以是在其上独立地执行编程操作、读取操作或擦除操作的单位。因此,存储器装置Die_11可以包括针对多个平面Plane 1和Plane 2中的每一个的地址解码器121和读取和写入电路123(参照图2描述)。
在图6中,超级块可以包括多个平面Plane 1和Plane 2中包括的存储块之中被包括在不同平面中的至少两个存储块。超级块的定义不限于本实施例。
第一超级块SB1可以包括多个平面Plane 1和Plane 2中分别包括的第一存储块BLK1。第二超级块SB2可以包括多个平面Plane 1和Plane 2中分别包括的第二存储块BLK2。类似地,第n超级块SBn可以包括多个平面Plane 1和Plane 2中分别包括的第n存储块BLKn。
如上面参照图5所描述的,每个超级块可以包括多个条带(或超级页面)。当将数据存储在多个平面Plane 1和Plane 2中或从多个平面Plane 1和Plane 2读取所存储的数据时,存储器控制器可以基于条带或基于超级页面存储或读取数据。换句话说,存储器装置Die_11可以对多个平面Plane 1和Plane 2并行执行操作以实施多平面操作。
图7示出了根据实施例的图1的存储器控制器200的配置和操作。
参照图7,存储器控制器200可以控制通过一个或多个通道联接到存储器控制器200的多个存储器装置100。每个存储器装置100可以包括一个或多个平面。每个平面可以包括多个存储块。
关于存储区域,每个存储器装置100可以包括缓冲器区域和主区域。
缓冲器区域可以包括n位层单元块,在n位层单元块中,每个存储器单元存储n个数据位(其中n为等于或大于1的自然数)。主区域可以包括m位单元块,在m位单元块中,每个存储器单元存储m个数据位(其中m为等于或大于n的自然数)。因为缓冲器区域中的每个块中包括的每个存储器单元中存储的数据位的数量少于主区域中的每个块中包括的每个存储器单元中存储的数据位的数量,所以缓冲器区域的存储容量比主区域的存储容量更小,但缓冲器区域的访问速度可以比主区域的访问速度更快。
为了改善写入延迟性能,可以将数据临时存储在缓冲器区域中,并且之后可以将缓冲器区域中存储的数据迁移到主区域。
当将数据临时存储在访问速度高于主区域的访问速度的缓冲器区域中时,可以减少写入延迟,但是因为随后必须执行数据迁移,所以写入操作的总数量可以增加。相比之下,当将数据直接存储在主区域而不是缓冲器区域时,可能增加写入延迟,但是因为随后不需要执行数据迁移操作,所以写入操作的总数量可以减少。根据减少的目的,可以通过减少写入延迟或写入操作的总数量来降低写入成本。
在实施例中,工作负荷信息WKLD_INF可以被分布和存储在多个存储器装置100中的相应存储器装置中。
在实施例中,存储器控制器200可以包括缓冲器210、预取控制器220和启动控制器230。
缓冲器210可以存储工作负荷信息WKLD_INF,该工作负荷信息WKLD_INF包括预期将在启动操作期间从主机300接收的预期输入/输出(I/O)请求的历史。
在实施例中,工作负荷信息WKLD_INF可以包括预期输入/输出请求的类型、执行预期输入/输出请求的存储范围、在启动操作期间出现预期输入/输出请求的频率、以及预期输入/输出请求的预期接收时间中的至少一个。执行预期输入/输出请求的存储范围可以包括执行预期输入/输出请求的逻辑区域的起始逻辑地址以及与该逻辑区域相对应的逻辑地址的长度。逻辑地址的长度可以表示定义执行预期输入/输出请求的逻辑区域的逻辑地址的数量。
在启动操作开始之后从主机300接收到目标输入/输出请求之前,预取控制器220可以基于工作负荷信息WKLD_INF从多个存储器装置100中读取与预期输入/输出请求相对应的预期数据。预期数据可以包括与对主机300的操作系统进行的启动操作有关的数据。
预取控制器220可以将所读取的预期数据存储在缓冲器210中。诸如读取多个存储器装置100中存储的预期数据的操作和将所读取的预期数据存储在缓冲器210中的操作的一系列操作可以是将多个存储器装置100中存储的预期数据加载到缓冲器210中的操作。
在实施例中,基于预期将从主机300接收到预期输入/输出请求的时间(预期接收时间)与从启动(引导)操作开始后经过的时间之间的比较结果,预取控制器220可以将多个存储器装置100中存储的预期数据加载到缓冲器210中。
在启动操作开始之后,启动控制器230可以读取多个存储器装置100中存储的工作负荷信息WKLD_INF,并且可以将所读取的工作负荷信息WKLD_INF存储在缓冲器210中。换句话说,启动控制器230可以将多个存储器装置100中存储的工作负荷信息WKLD_INF加载到缓冲器210中。
在启动操作开始之后,启动控制器230可以从主机300接收目标输入/输出请求。启动控制器230可以通过向主机300提供多个存储器装置100或缓冲器210中存储的目标数据来处理目标输入/输出请求,目标数据对应于目标输入/输出请求。例如,当目标数据被包括在缓冲器210中存储的预期数据中时,启动控制器230可以将缓冲器210中存储的目标数据提供到主机300。当目标数据未被包括在预期数据中时,启动控制器230可以读取多个存储器装置100中存储的目标数据,并且可以将所读取的目标数据提供到主机300。
启动控制器230可以根据目标数据是否被包括在预期数据中而基于目标输入/输出请求来更新缓冲器210中存储的工作负荷信息WKLD_INF。例如,当目标数据未被包括在预期数据中时,启动控制器230可以生成目标输入/输出请求的历史。启动控制器230可以分析目标输入/输出请求与预期输入/输出请求之间的关联性。启动控制器230可以基于分析结果和目标输入/输出请求的历史来更新工作负荷信息WKLD_INF。
当启动操作完成时,启动控制器230可以将更新后的工作负荷信息Update WKLD_INF存储在多个存储器装置100中,从而使预期读取成本和写入成本中的至少一个最小化。
在实施例中,启动控制器230可以将更新后的工作负荷信息Update WKLD_INF存储在同一超级块,即一个超级块中,以使预期读取成本最小化。在另一实施例中,启动控制器230可以将更新后的工作负荷信息Update WKLD_INF存储在可同时访问的区域中,以使预期读取成本最小化。在又一实施例中,启动控制器230可以将更新后的工作负荷信息UpdateWKLD_INF存储在使读取数据所需的访问次数最小化的区域中,以使预期读取成本最小化。超级块可以包括多个存储器装置100之中的不同存储器装置中包括的至少两个存储块。
在实施例中,启动控制器230可以将更新后的工作负荷信息Update WKLD_INF存储在超级块中,该超级块包括存在于主区域而不是缓冲器区域中的存储块,以使写入成本最小化。此处,写入成本可以对应于在更新后的工作负荷信息Update WKLD_INF被写入到主区域之前所执行的写入操作的总数量。例如,当更新后的工作负荷信息Update WKLD_INF被写入到缓冲器区域后再被写入到主区域,而不是直接被写入到主区域时,写入操作的总数量可以增加,从而增加写入成本。
在实施例中,启动控制器230可以将更新后的工作负荷信息Update WKLD_INF存储在超级块中,该超级块包括存在于缓冲器区域而不是主区域中的存储块,以使写入成本最小化。此处,写入成本可以对应于写入延迟。
图8示出了根据实施例的图7的工作负荷信息WKLD_INF。
参照图8,工作负荷信息WKLD_INF可以包括预期输入/输出(I/O)请求的类型、执行预期输入/输出请求的存储范围、预期输入/输出请求的预期接收时间、以及在启动操作期间出现预期输入/输出请求的频率中的至少一个。预期输入/输出请求的类型可以指示读取请求和写入请求中的一个。执行预期输入/输出请求的存储范围可以包括执行预期输入/输出请求的逻辑区域的起始逻辑地址以及与该逻辑区域相对应的逻辑地址的长度。逻辑地址的长度可以表示定义执行预期输入/输出请求的逻辑区域的逻辑地址的数量。频率可以表示预期输入/输出请求出现多少次。
在图8中,工作负荷信息WKLD_INF可以包括三个预期输入/输出请求的历史。工作负荷信息WKLD_INF中包括的预期输入/输出请求的历史数量不限于本实施例。
参照图8,第一预期输入/输出请求是写入请求,在逻辑区域(范围为从LBA 50至LBA 59)中执行,并且预期将在启动(引导)操作开始之后的时间t1处从主机接收到该第一预期输入/输出请求,并且第一预期输入/输出请求预期在启动操作期间出现的频率为1。
第二预期输入/输出请求是读取请求,在逻辑区域(范围为从LBA 80至LBA99)中执行,并且预期将在启动操作开始之后的时间t2和t3处从主机接收到该第二预期输入/输出请求,并且第二预期输入/输出请求预期在启动操作期间出现的频率为2。
第三预期输入/输出请求是读取请求,在逻辑区域(范围为从LBA 150至LBA 179)中执行,并且预期将在启动开始之后的时间t4处从主机接收到该第三预期输入/输出请求,并且第三预期输入/输出请求预期在启动操作期间出现的频率为1。
图9示出了根据数据预取的启动时间的减少。
参照图9,存储器控制器可以在第一到第三时段处理输入/输出(I/O)请求。
第一时段可以是就绪时段。在第一时段期间,存储器控制器可以执行内部准备操作,用于处理待从主机接收的输入/输出请求。
第二时段可以是NAND至缓冲器时段。存储器控制器可以在第二时段期间从存储器装置读取与输入/输出请求相对应的数据,并且可以将所读取的数据存储在缓冲器中。
第三时段可以是完成时段。存储器控制器可以在第三时段期间将缓冲器中存储的、与输入/输出请求相对应的数据提供到主机。
在图9中,在启动操作期间从主机接收的输入/输出请求可以是第一请求REQ 1和第二请求REQ 2。
在第一情况a1中,从启动(引导)开始时间到从主机接收到第一请求REQ1的时间,存储器控制器可以处于空闲状态。下文中,可以接收和处理第一请求REQ 1和第二请求REQ2。
在第二情况a2中,存储器控制器可以预测在启动操作期间将从主机接收到第一请求REQ1和第二请求REQ2,并因此可以在接收到第一请求REQ1和第二请求REQ2之前,即在对应于第一情况a1的空闲状态的时段内,从存储器装置中提前读取与第一请求REQ1和第二请求REQ2相对应的数据并将所读取的数据存储在缓冲器中。也就是说,在从主机接收到第一请求REQ1和第二请求REQ2之前,存储器控制器可以执行用于将与第一请求REQ1和第二请求REQ2相对应的数据加载到缓冲器中的预取操作。
与第一情况a1相比,在第二情况a2中,存储器控制器可以在从主机接收到第一请求REQ1和第二请求REQ2之前从存储器装置预取与预期将从主机接收的第一请求REQ1和第二请求REQ2相对应的数据,以使启动时间减少时段ta。
图10A示出了根据实施例的工作负荷信息的存储状态。
参照图10A,工作负荷信息WKLD_INF可以被分布和存储在通过单个通道CH联接到存储器控制器的多个存储器装置Die 1和Die 2中。
在其它实施例中,如上面参照图4所述,多个存储器装置可以通过多个通道联接到存储器控制器,并且工作负荷信息WKLD_INF可以被分布和存储在通过多个通道联接到存储器控制器的多个存储器装置中。
每个存储器装置可以包括多个平面。例如,在图10A中,存储器装置Die 1包括两个平面Plane 1和Plane 2,并且存储器装置Die 2包括两个平面Plane 3和Plane 4。
超级块可以包括不同存储器装置中包括的两个或更多个存储块。
在图10A中,第一超级块SB1可以包括存储器装置Die 1和Die 2的平面Plane 1至Plane 4中包括的第一存储块BLK1。第二超级块SB2可以包括存储器装置Die 1和Die 2的平面Plane 1至Plane 4中包括的第二存储块BLK2。第三超级块SB3可以包括存储器装置Die 1和Die 2的平面Plane 1至Plane 4中包括的第三存储块BLK3。第四超级块SB4可以包括存储器装置Die 1和Die 2的平面Plane 1至Plane 4中包括的第四存储块BLK4。
在图10A中,工作负荷信息WKLD_INF可以被分布和存储在不同的超级块SB1至SB4中,而不是在一个超级块中。因此,读取工作负荷信息WKLD_INF的操作可以作为单平面操作而不是以超级块为单位执行的多平面操作来执行。
图10B示出了根据另一实施例的工作负荷信息的存储状态。
参照图10B,工作负荷信息WKLD_INF可以被存储在通过单个通道联接到存储器控制器的多个存储器装置Die 1和Die 2的超级块SB1至SB4之中的一个超级块SB2中。因为工作负荷信息WKLD_INF被存储在同一超级块SB2中,所以可以执行以超级块为单位的多平面操作来读取超级块SB2中存储的工作负荷信息WKLD_INF。
如图10B所示,当工作负荷信息WKLD_INF被以优化状态存储在一个超级块中,而非如图10A所示工作负荷信息WKLD_INF以被分布和存储在不同的超级块中的状态下被存储时,如将在下面参照图11描述的,可以使读取工作负荷信息WKLD_INF的预期读取成本最小化。
图11示出了根据优化后的工作负荷信息的存储的启动时间的减少。
参照图11,如上面参照图10A所描述的,第一情况b1指示当工作负荷信息被分布和存储在不同超级块中时的NAND至缓冲器操作。如上面参照图10B所描述的,第二情况b2指示当工作负荷信息被分布和存储在一个超级块中时的NAND至缓冲器操作。
与第一情况b1相比,第二情况b2被配置成使得读取工作负荷信息的操作作为多平面操作而非单平面操作来执行,并因此可以使预期读取成本最小化,并且可以将读取工作负荷信息所需的读取操作时间减少时段tb。总启动时间可以与读取操作时间的减少成比例地减少。
换句话说,存储器控制器可以将如图10A所示存储的工作负荷信息以图10B中描述的优化状态进行重新编程,因此使预期读取成本最小化并缩短启动时间。
图12是示出根据实施例的存储器控制器的操作的流程图。
参照图12,在步骤S1201,存储器控制器可以开始启动(引导)操作。
在步骤S1203,存储器控制器可以将存储器装置中存储的工作负荷信息加载到缓冲器中。工作负荷信息可以包括预期将在启动操作期间从主机接收的预期输入/输出(I/O)请求的历史。
在步骤S1205,存储器控制器可以基于工作负荷信息将存储器装置中存储的、与预期输入/输出请求相对应的预期数据加载到缓冲器中。预期数据可以包括与对主机的操作系统进行的启动操作有关的数据。
在步骤S1207,当从主机接收到目标输入/输出请求时,存储器控制器可以确定与目标输入/输出请求相对应的目标数据是否被包括在被加载到缓冲器中的预期数据中。当确定目标数据被包括在预期数据中时,操作进行到步骤S1213,而当确定目标数据未被包括在预期数据中时,操作进行到步骤S1209。
在步骤S1209,存储器控制器可以响应于目标输入/输出请求而更新被加载到缓冲器中的工作负荷信息。
此后,在步骤S1211,存储器控制器可以从存储器装置加载目标数据。
在步骤S1213,存储器控制器可以通过将目标数据提供到主机来处理目标输入/输出请求。
此后,在步骤S1215,存储器控制器可以确定启动操作是否已经完成。当确定启动操作已经完成时,操作进行到步骤S1217,而当确定正在执行启动操作时,操作返回到步骤S1205。
在步骤S1217,存储器控制器可以将缓冲器中存储的更新后的工作负荷信息存储在存储器装置中,从而使预期读取成本和写入成本中的至少一个最小化。在实施例中,存储器控制器可以将更新后的工作负荷信息存储在存储器装置中的可同时访问的区域中,从而使预期读取成本最小化。在另一实施例中,存储器控制器可以将更新后的工作负荷信息存储在存储器装置的、可进行多平面读取操作的区域中。例如,存储器控制器可以将更新后的工作负荷信息存储在可进行多平面读取操作的单个超级块中。
例如,存储器装置的存储区域可以包括主区域和缓冲器区域。缓冲器区域可以包括n位层单元块,在n位层单元块中,每个存储器单元存储n个数据位(其中n为等于或大于1的自然数)。主区域可以包括m位层单元块,在m位层单元块中,每个存储器单元存储m个数据位(其中m为等于或大于n的自然数)。
在实施例中,存储器控制器可以将更新后的工作负荷信息存储在主区域和缓冲器区域中的任意一个中存在的存储块中,从而使写入成本最小化。写入成本可以对应于写入操作的总数量或写入延迟。
因为缓冲器区域中的每个存储器单元中存储的数据位的数量小于主区域中的每个存储器单元中存储的数据位的数量,所以缓冲器区域的存储容量小于主区域的存储容量,但访问速度可以比主区域的访问速度更快。为了改善写入延迟性能,将数据临时存储在缓冲器区域中,并且此后将缓冲器区域中存储的数据迁移到主区域。
当将数据临时存储在访问速度高于主区域的访问速度的缓冲器区域中时,可以减少写入延迟,但是因为随后必须执行数据迁移操作,所以写入操作的总数量可以增加。相比之下,当将数据直接存储在主区域而不是缓冲器区域时,可能增加写入延迟,但是因为随后不需要执行数据迁移操作,所以写入操作的总数量可以减少。
在实施例中,存储器控制器可以将更新后的工作负荷信息存储在主区域中存在的存储块中,从而使写入操作的总数量最小化。在另一实施例中,存储器控制器可以将更新后的工作负荷信息存储在缓冲器区域中存在的存储块中,从而使写入延迟最小化。
图13是示出根据实施例的存储器控制器的操作的流程图。
参照图13,在步骤S1301,存储器控制器可以基于工作负荷信息中包括的预期输入/输出(I/O)请求的预期接收时间与从启动操作开始后经过的时间之间的比较结果,将存储器装置中存储的预期数据加载到缓冲器中。预期数据对应于预期输入/输出请求。在实施例中,如上面参照图9所述,在从启动操作开始的时间到从主机接收到预期输入/输出请求的时间的时段内,将预期数据从存储器装置加载到缓冲器中。
在步骤S1303,存储器控制器可以分析从主机接收的目标输入/输出请求与预期输入/输出请求之间的关联性。
在步骤S1305,存储器控制器可以基于分析结果和目标输入/输出请求的历史来更新工作负荷信息。在实施例中,当与目标输入/输出请求相对应的目标数据未被包括在被加载到缓冲器中的预期数据中时,存储器控制器使用目标输入/输出请求的历史来更新工作负荷信息。
在步骤S1307,存储器控制器可以确定启动操作是否已经完成。当确定启动操作已经完成时,操作终止,而当确定正在执行启动操作时,操作返回到步骤S1301。
图14示出了根据实施例的图1的存储器控制器。
图14的存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的读取操作、写入操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置与主机之间的接口。存储器控制器1000可以运行用于控制存储器装置的固件。
参照图14,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正电路(ECC)1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的全部操作并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用作为工作存储器、高速缓存存储器或缓冲存储器的存储器缓冲器1020来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以使用映射表接收LBA并将LBA转换为PBA。通过FTL执行的地址映射方法的示例可以包括根据映射单位的各种方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以使从主机接收到的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收到的数据随机化。经随机化的数据可以作为待存储的数据而被提供到存储器装置,并且可以被编程到存储器装置的存储器单元阵列中。
处理器1010可以在读取操作期间将从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子将从存储器装置接收的数据去随机化。经去随机化的数据可以被输出到主机。
在实施例中,处理器1010可以运行软件或固件以执行随机化或去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
错误校正电路1030可以执行错误校正。错误校正电路1030可以对待通过存储器接口1060写入存储器装置的数据执行错误校正码(ECC)编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置。错误校正电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,错误校正电路1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道,将命令、地址和数据传输到存储器装置,或者从存储器装置接收命令、地址和数据。
在实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))中加载代码。在实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据,并且控制总线可以在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此分开,并且可以既不彼此干扰也不彼此影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、错误校正电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图15是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
参照图15,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200与主机之间的接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器控制器2100可以以与上文参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和错误校正电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种接口协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)协议、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移扭矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以形成存储卡。例如,存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中,并且然后可以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)等。
图16是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图16,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据本公开的实施例,SSD控制器3210可以执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG而控制多个闪速存储器3221至322n。在实施例中,信号SIG可以指示基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是由诸如以下的各种接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以从主机3100供应电力PWR,并且可以被充电。当从主机3100的电力供应的执行不平稳时,辅助电源装置3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以位于主板中,并且还可以将辅助电力提供到SSD 3200。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图17是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
参照图17,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以由片上系统(SoC)形成。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠式封装(POP)来进行封装,并且然后可以被设置为单个半导体封装。
网络模块4300可以与外部装置通信。在实施例中,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或WI-FI。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为用户系统4000的诸如存储卡或外部驱动器的可移动存储介质(可移动驱动器)。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或指令输入到应用处理器4100或者将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,提供了一种具有优化的启动性能的存储器控制器和操作该存储器控制器的方法。
Claims (20)
1.一种控制多个存储器装置的存储器控制器,每个存储器装置包括多个存储块,所述存储器控制器包括:
缓冲器,存储工作负荷信息,所述工作负荷信息包括预期将在启动操作期间从主机接收的预期输入/输出请求的历史;
预取控制器,在所述启动操作开始之后,在从所述主机接收到目标输入/输出请求之前,基于所述工作负荷信息从所述多个存储器装置中读取与所述预期输入/输出请求相对应的预期数据,并且将所述预期数据存储在所述缓冲器中;以及
启动控制器,根据与所述目标输入/输出请求相对应的目标数据是否被包括在所述预期数据中,基于所述目标输入/输出请求来更新所述工作负荷信息,并且将更新后的工作负荷信息存储在所述多个存储器装置中的能够以最少访问次数进行读取的区域中。
2.根据权利要求1所述的存储器控制器,其中:
所述启动控制器将所述更新后的工作负荷信息存储在单个超级块中,并且
所述单个超级块包括所述多个存储器装置之中的不同存储器装置中包括的两个或更多个存储块。
3.根据权利要求1所述的存储器控制器,其中所述启动控制器将所述更新后的工作负荷信息存储在所述多个存储器装置中的能够同时访问的区域中。
4.根据权利要求1所述的存储器控制器,其中所述启动控制器在所述启动操作开始之后,读取所述多个存储器装置中存储的所述工作负荷信息,并且将所述工作负荷信息存储在所述缓冲器中。
5.根据权利要求1所述的存储器控制器,其中所述启动控制器在所述目标数据被包括在所述预期数据中时,将所述缓冲器中存储的所述目标数据提供到所述主机。
6.根据权利要求1所述的存储器控制器,其中所述启动控制器在所述预期数据中不存在所述目标数据时,从所述多个存储器装置读取所述目标数据,并且将所述目标数据提供到所述主机。
7.根据权利要求1所述的存储器控制器,其中所述启动控制器在所述预期数据中不存在所述目标数据时,生成所述目标输入/输出请求的历史,基于所述目标输入/输出请求的历史修改所述预期输入/输出请求的历史,然后利用修改后的所述预期输入/输出请求的历史来更新所述工作负荷信息。
8.根据权利要求1所述的存储器控制器,其中所述工作负荷信息包括所述预期输入/输出请求的类型、执行所述预期输入/输出请求的存储范围、在所述启动操作期间出现所述预期输入/输出请求的频率、以及所述预期输入/输出请求的预期接收时间中的至少一个。
9.根据权利要求8所述的存储器控制器,其中所述预取控制器基于所述预期输入/输出请求的所述预期接收时间与从所述启动操作开始后经过的时间之间的比较结果,读取所述多个存储器装置中存储的所述预期数据。
10.根据权利要求8所述的存储器控制器,其中执行所述预期输入/输出请求的存储范围包括:执行所述预期输入/输出请求的逻辑区域的起始逻辑地址以及定义所述逻辑区域的逻辑地址的长度。
11.一种控制多个存储器装置的存储器控制器,每个存储器装置包括多个存储块,所述存储器控制器包括:
缓冲器,存储工作负荷信息,所述工作负荷信息包括预期将在启动操作期间从主机接收的预期输入/输出请求的历史;
预取控制器,在所述启动操作开始之后,在从所述主机接收到目标输入/输出请求之前,基于所述工作负荷信息从所述多个存储器装置中读取与所述预期输入/输出请求相对应的预期数据,并且将所述预期数据存储在所述缓冲器中;以及
启动控制器,根据与所述目标输入/输出请求相对应的目标数据是否被包括在所述缓冲器中存储的所述预期数据中,基于所述目标输入/输出请求更新所述工作负荷信息,并且根据是减少写入延迟还是减少写入操作的总数量来将更新后的工作负荷信息存储在所述多个存储器装置中的每一个中的主区域和缓冲器区域中的任意一个中。
12.根据权利要求11所述的存储器控制器,其中所述多个存储器装置中的每一个包括:
所述缓冲器区域,包括n位层单元块,在所述n位层单元块中,每个存储器单元存储n个数据位,其中n为等于或大于1的自然数;以及
所述主区域,包括m位层单元块,在所述m位层单元块中,每个存储器单元存储m个数据位,其中m为等于或大于n的自然数。
13.根据权利要求11所述的存储器控制器,其中所述启动控制器通过将所述更新后的工作负荷信息存储在所述主区域中并因此跳过将所述更新后的工作负荷信息从所述缓冲器区域迁移到所述主区域的操作,减少所述写入操作的总数量。
14.根据权利要求11所述的存储器控制器,其中所述启动控制器通过将所述更新后的工作负荷信息存储在所述缓冲器区域中并且然后将所述更新后的工作负荷信息从所述缓冲器区域迁移到所述主区域,减少所述写入延迟。
15.根据权利要求11所述的存储器控制器,其中所述启动控制器在所述启动操作开始之后,读取所述多个存储器装置中存储的所述工作负荷信息,并且将所述工作负荷信息存储在所述缓冲器中。
16.根据权利要求11所述的存储器控制器,其中所述启动控制器在所述目标数据被包括在所述缓冲器中存储的所述预期数据中时,将所述缓冲器中存储的所述目标数据提供到所述主机。
17.根据权利要求11所述的存储器控制器,其中所述启动控制器在所述预期数据中不存在所述目标数据时,从所述多个存储器装置读取所述目标数据,并且将所读取的目标数据提供到所述主机。
18.根据权利要求11所述的存储器控制器,其中所述启动控制器在所述预期数据中不存在所述目标数据时,生成所述目标输入/输出请求的历史,基于所述目标输入/输出请求的历史修改所述预期输入/输出请求的历史,然后利用修改后的所述预期输入/输出请求的历史来更新所述工作负荷信息。
19.根据权利要求11所述的存储器控制器,其中所述工作负荷信息包括所述预期输入/输出请求的类型、执行所述预期输入/输出请求的存储范围、在所述启动操作期间出现所述预期输入/输出请求的频率、以及所述预期输入/输出请求的预期接收时间中的至少一个。
20.根据权利要求18所述的存储器控制器,其中所述预取控制器基于所述预期输入/输出请求的预期接收时间与从所述启动操作开始后经过的时间之间的比较结果,读取所述多个存储器装置中存储的所述预期数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0175060 | 2021-12-08 | ||
KR1020210175060A KR20230086435A (ko) | 2021-12-08 | 2021-12-08 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116246666A true CN116246666A (zh) | 2023-06-09 |
Family
ID=86607394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210843538.3A Pending CN116246666A (zh) | 2021-12-08 | 2022-07-18 | 存储器控制器以及操作该存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230176772A1 (zh) |
KR (1) | KR20230086435A (zh) |
CN (1) | CN116246666A (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073232A (en) * | 1997-02-25 | 2000-06-06 | International Business Machines Corporation | Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage |
US8595414B2 (en) * | 2010-09-30 | 2013-11-26 | Apple Inc. | Selectively combining commands for a system having non-volatile memory |
US8886877B1 (en) * | 2014-05-15 | 2014-11-11 | Sandisk Technologies Inc. | In-situ block folding for nonvolatile memory |
US10289421B2 (en) * | 2017-02-17 | 2019-05-14 | Dell Products, L.P. | Booting of IHS from SSD using PCIe |
US10846226B2 (en) * | 2019-01-28 | 2020-11-24 | Western Digital Technologies, Inc. | System and method for prediction of random read commands in virtualized multi-queue memory systems |
-
2021
- 2021-12-08 KR KR1020210175060A patent/KR20230086435A/ko unknown
-
2022
- 2022-05-24 US US17/752,754 patent/US20230176772A1/en active Pending
- 2022-07-18 CN CN202210843538.3A patent/CN116246666A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230086435A (ko) | 2023-06-15 |
US20230176772A1 (en) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210173785A1 (en) | Storage device and method of operating the same | |
US11531492B2 (en) | Device and method of operating the same | |
US11481272B2 (en) | Memory controller and method of operating the same | |
CN112783433A (zh) | 存储装置及其操作方法 | |
KR20200114009A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN114443507A (zh) | 存储器系统及其操作方法 | |
CN114860622A (zh) | 存储装置及操作存储装置的方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
US11404100B2 (en) | Memory device and method of operating the same | |
CN114115708A (zh) | 存储装置及其操作方法 | |
CN113806240A (zh) | 存储装置及其操作方法 | |
US10996881B2 (en) | Storage device and method of operating the same | |
KR20210128780A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
US11366725B2 (en) | Storage device and method of operating the same | |
TW202314472A (zh) | 計算系統及其操作方法 | |
KR20230139233A (ko) | 메모리 컨트롤러 및 그것의 동작 방법 | |
CN114546252A (zh) | 存储设备及其操作方法 | |
CN114489467A (zh) | 存储器控制器及其操作方法 | |
KR20220052161A (ko) | 메모리 장치 및 그 동작 방법 | |
US20230176772A1 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11481135B2 (en) | Storage device and method of operating the storage device | |
US11868658B2 (en) | Memory controller including first processor for generating commands and second processor for generating logging information and method of operating the memory controller | |
US11650924B2 (en) | Memory controller and method of operating the same |
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 |