CN111752857A - 存储器控制器及操作存储器控制器的方法 - Google Patents

存储器控制器及操作存储器控制器的方法 Download PDF

Info

Publication number
CN111752857A
CN111752857A CN201911045446.5A CN201911045446A CN111752857A CN 111752857 A CN111752857 A CN 111752857A CN 201911045446 A CN201911045446 A CN 201911045446A CN 111752857 A CN111752857 A CN 111752857A
Authority
CN
China
Prior art keywords
logical block
cores
memory
block address
core
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
Application number
CN201911045446.5A
Other languages
English (en)
Inventor
韩承玉
郑丞完
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111752857A publication Critical patent/CN111752857A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

本发明提供了一种存储器控制器及操作存储器控制器的方法。用于控制存储数据的多个存储器装置的存储器控制器可包括:主机接口,被配置成从主机接收请求和对应于该请求的逻辑地址;处理器,包括多个内核,每个内核被配置成从主机接口接收逻辑地址并生成映射信息,该映射信息指示逻辑地址和物理地址之间的映射关系;以及位图存储装置,被配置成存储位图,该位图指示先前接收的逻辑地址中的每一个被分配到多个内核中的哪个内核,其中主机接口基于位图将逻辑地址分配到多个内核中的一个。

Description

存储器控制器及操作存储器控制器的方法
相关申请的交叉引用
本申请要求于2019年3月27日提交的申请号为10-2019-0035387的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储器控制器及操作存储器控制器的方法。
背景技术
存储装置在诸如计算机、智能电话或智能平板的主机的控制下存储数据。根据存储数据的装置,存储装置的示例包括将数据存储在磁盘中的硬盘驱动器(HDD),以及将数据存储在半导体存储器,特别是非易失性存储器中的固态驱动器(SSD)和存储卡。
存储装置可包括存储数据的存储器装置,以及控制数据在存储器装置中的存储的存储器控制器。这种存储器装置可被分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)。
发明内容
本公开的各个实施例涉及一种向多个存储器装置更均匀或均等地分配或分布工作负载的存储器控制器及操作该存储器控制器的方法。
本公开的实施例可提供一种存储器控制器,该存储器控制器控制存储数据的多个存储器装置。存储器控制器可包括:主机接口,被配置成从主机接收请求和对应于该请求的逻辑地址;处理器,包括多个内核,每个内核被配置成从主机接口接收逻辑地址并生成映射信息,该映射信息指示逻辑地址和物理地址之间的映射关系;以及位图存储装置,被配置成存储位图,该位图指示先前接收的逻辑地址中的每一个被分配到多个内核中的哪个内核,其中主机接口基于位图将逻辑地址分配到多个内核中的一个。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器包括多个内核,多个内核控制存储数据的多个存储器装置。该方法可包括:从主机接收请求和对应于该请求的逻辑地址;参考位图,该位图指示先前接收的逻辑地址中的每一个被分配到多个内核中的哪个内核;并且基于该位图来将所接收的逻辑地址分配到多个内核中的一个。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器包括多个内核,多个内核控制存储数据的多个存储器装置。该方法可包括:在多个存储器装置中包括的多个存储块之中,确定待执行垃圾收集的牺牲存储块;参考位图,该位图指示先前接收的逻辑地址中的每一个被分配到多个内核中的哪个内核;并且基于该位图,在多个内核之中分配分别对应于牺牲存储块的物理地址的逻辑地址。
本公开的实施例可提供一种控制器。存储器控制器可包括:多个内核,每个内核被配置成基于被分配到每个内核的一个或多个逻辑地址来控制相应的存储器装置组执行操作;存储装置,被配置成存储分配状态信息,分配状态信息指示被分配到各个内核的逻辑地址的数量;以及分配模块,被配置成通过基于分配状态信息将逻辑地址顺序地分配到内核来控制逻辑地址的分配,使得分配到各个内核的逻辑地址的数量收敛于分配比率。
附图说明
图1是示出存储装置的框图。
图2是示出将逻辑块地址分配到多个内核的常规方法的示图。
图3是示出图1的存储器控制器的配置的示图。
图4是示出通过多个通道联接的多个管芯的示图。
图5是示出将逻辑块地址均等地或均匀地分配到多个内核的实施例的示图。
图6是示出指示逻辑块地址被分配到的内核的位图的示图。
图7是示出当联接到各个内核的管芯的数量彼此不同时均等地或均匀地分配逻辑块地址的实施例的示图。
图8是示出当存在四个内核时将逻辑块地址均等地或均匀地分配到四个内核的实施例的示图。
图9是示出指示当存在四个内核时逻辑块地址被分配到的内核的位图的示图。
图10A和图10B是示出在从位图存储装置已接收到位图之后均等地或均匀地分配逻辑块地址的实施例的示图。
图11A和图11B是示出在从位图存储装置已接收到位图之后均等地或均匀地分配逻辑块地址的实施例的示图。
图12是示出当从主机接收到读取请求时将逻辑块地址分配到内核的方法的示图。
图13是示出当执行垃圾收集时将逻辑块地址分配到内核的方法的示图。
图14是示出在多个内核之间输出逻辑块地址的方法的示图。
图15A和图15B是分别示出在执行垃圾收集之前和在已执行垃圾收集之后位图存储装置中存储的位图的示图。
图16是示出图1的存储器装置的结构的框图。
图17是示出图16的存储器单元阵列的实施例的示图。
图18是示出图17的存储块BLK1至BLKz中的任意一个存储块BLKa的示例的电路图。
图19是示出图17的存储块BLK1至BLKz中的任意一个存储块BLKb的示例的电路图。
图20是示出根据本公开的实施例的存储器控制器的操作的示图。
图21是示出根据本公开的实施例的存储器控制器的操作的示图。
图22是示出根据本公开的实施例的存储器控制器的操作的示图。
图23是示出图1的存储器控制器的实施例的示图。
图24是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
图25是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的示例的框图。
图26是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
本文呈现的具体结构和功能描述是为了描述本公开的各个实施例,以使本领域技术人员能够实践本发明。然而,本发明不限于这样的描述。
下面基于实施例详细地描述本发明。然而,本发明可以许多不同的形式实现,因此不应被解释为仅限于本文中阐述的实施例。相反,本发明应被解释为涵盖落入本公开的实质和技术范围内的所有修改方案、等同方案和替代方案。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来识别各个元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。例如,在不脱离本公开的教导的情况下,在一个实例中的第一元件在另一实例中可被称为第二元件,反之亦然。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,该元件可以直接联接或连接到另一元件,或者在该元件和另一元件之间可存在一个或多个中间元件。相反地,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。诸如“在……之间”、“直接在……之间”、“相邻于”或“直接相邻于”的解释元件之间的关系的其它表述应以相同的方式解释。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”以及其它开放性术语指定存在所陈述的特征、整体、步骤、操作、元件、组件和/或其组合,但并不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本公开所属领域的技术人员通常理解的含义相同的含义。将进一步理解的是,本文使用的术语应当被解释为具有与其在本说明书和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
省略对本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在省略不必要的描述,以使本公开的主题清晰。
下面参照附图更全面地描述本公开的各个实施例,附图中示出了本公开的优选实施例,使得本领域技术人员可以容易地实践本发明。
图1是示出存储装置的框图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。
存储装置50可在诸如以下的主机300的控制下存储数据:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC或车载信息娱乐系统。
存储装置50可根据作为与主机300通信的方案的主机接口而被配置成各种类型的存储装置中的任意一种。例如,存储装置50可被实施为例如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以各种类型的封装形式中的任意一种来制造。例如,存储装置50可以诸如以下的各种类型的封装形式中的任意一种制造:层叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
存储器控制器200可控制存储装置50的整体操作。
当向存储装置50供电时,存储器控制器200可运行固件(FW)。当每个存储器装置100是闪速存储器装置时,存储器控制器200可运行诸如闪存转换层(FTL)的固件,以控制主机300和存储器装置100之间的通信。
存储器控制器200可控制多个存储器装置。为了控制多个存储器装置,存储器控制器200中可包括多个内核。
存储器控制器200可包括主机接口210。主机接口210可从主机300接收请求和逻辑块地址(LBA)。从主机300接收的请求可以是写入请求WRITE_REQ或读取请求READ_REQ。从主机300接收的逻辑块地址(LBA)可以是对应于写入请求WRITE_REQ或读取请求READ_REQ的地址。逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在从主机300接收到请求和对应于该请求的逻辑块地址之后,主机接口210可执行对应于从主机300接收的请求的操作。
在实施例中,主机接口210可将从主机300接收的逻辑块地址输出到处理器230。主机接口210可从位图存储装置220接收位图,并且可确定处理器230中包括的多个内核之中、逻辑块地址待被分配到的内核。也就是说,主机接口210可参考从位图存储装置220接收的位图,以将逻辑块地址分配与处理器230中的特定内核相关联。
主机接口210可基于对位图的参考结果来确定逻辑块地址待被分配到的内核。也就是说,主机接口210可基于位图来确定多个内核中的任意一个是逻辑块地址待被分配到的内核。
主机接口210分配从主机300接收的逻辑块地址的操作可包括:将对应于逻辑块地址的请求分配到处理器230中包括的多个内核中的任意一个。
详细地,主机接口210可根据分配到多个内核的逻辑块地址的数量来确定从主机300接收的逻辑块地址待被分配到的内核。当确定了逻辑块地址待被分配到的内核时,主机接口210可将逻辑块地址输出到所确定的内核。
存储器控制器200可包括位图存储装置220。位图存储装置220可存储位图。位图可包括对应于逻辑块地址的位值。对应于每个逻辑块地址的位值可指示处理器230中包括的多个内核之中、相应的逻辑块地址已被分配到的内核。也就是说,位图存储装置220可存储指示多个内核中的任意一个的位值。
在实施例中,位图存储装置220可从主机接口210接收内核信息CORE_INF,然后改变位图中包括的位值。内核信息CORE_INF可包括关于逻辑块地址待被分配到的内核的信息。位图可指示在主机接口210从主机300接收相应的逻辑块地址之前接收的逻辑块地址被分配到多个内核的状态。
存储器控制器200可包括处理器230。处理器230可包括至少一个内核。内核可控制存储器装置100。在实施例中,当存在多个内核时,多个内核中的每一个可控制多个存储器装置。
处理器230中包括的内核可从主机接口210接收逻辑块地址,然后生成指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息。在生成映射信息之后,处理器230可输出对应于逻辑块地址的物理块地址(PBA)。物理块地址(PBA)可指示多个存储器装置中的任意一个中包括的存储块的位置。也就是说,物理块地址(PBA)可以是指示物理页面的物理地址(PA)。
存储器控制器200可包括存储器接口240。存储器接口240可从处理器230接收物理块地址(PBA)。存储器接口240可将所接收的物理块地址(PBA)输出到相应的存储器装置100。存储器接口240可联接到多个存储器装置。因此,存储器接口240可将物理块地址(PBA)输出到多个存储器装置之中、对应于从处理器230接收的物理块地址(PBA)的存储器装置100。
存储器装置100可存储数据。存储器装置100响应于存储器控制器200的控制来进行操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。每个存储块可包括多个存储器单元。单个存储块可包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中的单位,或者是读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可采用诸如以下的许多可选形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移矩RAM(STT-RAM)。在本说明书中,作为示例,在存储器装置100是NAND闪速存储器的背景下描述本发明的特征和方面。
在实施例中,存储器装置100可被实施为三维(3D)阵列结构。本公开还不仅可应用于电荷存储层由导电浮栅(FG)形成的闪速存储器装置,而且可应用于电荷存储层由绝缘层形成的电荷撷取闪存(CTF)存储器装置。
在实施例中,存储器装置100中包括的存储器单元中的每一个可被实施为存储一个数据位的单层单元(SLC)。可选地,存储器装置100中包括的存储器单元中的每一个可被实施为存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器装置100可从存储器控制器200接收命令和地址,并且可访问存储器单元阵列的、通过地址选择的区域。也就是说,存储器装置100对通过地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可将数据编程到通过地址选择的区域。在读取操作期间,存储器装置100可从通过地址选择的区域读取数据。在擦除操作期间,存储器装置100可擦除通过地址选择的区域中存储的数据。
存储器装置100可在存储器控制器200的控制下,使用设置操作电压来执行编程操作或擦除操作。
在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(LBA),并且可将逻辑块地址(LBA)转换为物理块地址(PBA),物理块地址(PBA)指示存储器装置100中包括的待存储数据的存储器单元的地址。进一步地,存储器控制器200可将映射信息存储在缓冲存储器中,其中映射信息建立逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系。
存储器控制器200可响应于从主机300接收到的请求来控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、物理块地址(PBA)和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和物理块地址(PBA)。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和物理块地址(PBA)。
在实施例中,存储器控制器200可在没有从主机300接收请求的情况下自主地生成编程命令、地址和数据,并且可将所生成的编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可控制至少两个存储器装置。在这种情况下,存储器控制器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是示出将逻辑块地址分配到多个内核的常规方法的示图。
参照图2,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。主机接口210可将所接收的逻辑块地址输出到处理器230。这样的逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)可以是偶数地址(Even LBA)。第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)和第七逻辑块地址(LBA7)可以是奇数地址(Odd LBA)。也就是说,根据每个逻辑块地址的编号是偶数还是奇数,相应的逻辑块地址可以是偶数地址(Even LBA)或奇数地址(Odd LBA)。
在常规技术中,主机接口210根据逻辑块地址是偶数地址(Even LBA)还是奇数地址(Odd LBA),将逻辑块地址分配到处理器230中包括的内核中的任意一个。详细地,因为第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)和第七逻辑块地址(LBA7)是奇数地址(Odd LBA),所以主机接口210将第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)和第七逻辑块地址(LBA7)分配到对应于奇数地址(OddLBA)的第零内核CORE0。而且,因为第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)是偶数地址(Even LBA),所以主机接口210将第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)分配到对应于偶数地址(Even LBA)的第一内核CORE1。当从主机接口210接收到逻辑块地址时,处理器230生成指示逻辑块地址和物理块地址(PBA)之间的映射关系的映射信息。
然而,将逻辑块地址分配到内核的常规方法的问题在于,该常规方法根据每个逻辑块地址的编号。也就是说,当仅从主机300接收到偶数地址(Even LBA)或奇数地址(OddLBA)时,出现的问题在于,仅在一个内核中生成映射信息。因此,存在的问题在于,仅有一个内核执行操作,因此由该一个内核管理的存储器装置的使用量增加。
在实施例中,因为从主机300接收的逻辑块地址之中的奇数地址(Odd LBA)的数量较大,所以可出现的问题在于,由第零内核CORE0管理的存储器装置的使用量增加。
而且,当将映射信息的生成仅集中在多个内核之中的一个内核中时,可增加与该一个内核相关联的存储器装置的编程循环和擦除循环的数量,从而使存储器装置的整体性能劣化。也就是说,根据常规方法,不可能将逻辑块地址均等地或均匀地分配到多个内核,从而使存储器装置的性能劣化。
因此,需要将逻辑块地址均匀地分配或均等地分布到多个内核。
图3是示出图1的存储器控制器的配置的示图。
参照图3,存储器控制器200可包括主机接口210、位图存储装置220、处理器230及存储器接口240。在实施例中,主机接口210可包括位图存储装置220。
主机接口210可从主机300接收请求和逻辑块地址。逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在实施例中,主机接口210可从主机300接收写入请求WRITE_REQ和对应于该写入请求WRITE_REQ的逻辑块地址。主机接口210可向处理器230输出逻辑块地址,以执行对应于从主机300接收的写入请求WRITE_REQ的操作。
主机接口210可在向处理器230输出逻辑块地址之前从位图存储装置220接收位图。位图可包括对应于逻辑块地址的位值。可根据处理器230中包括的多个内核之中、各个逻辑块地址被分配到的内核来设置位值。也就是说,当逻辑块地址被分配到相同内核时,对应于各个逻辑块地址的位值可以是相同的值。因此,位图可指示逻辑块地址被分配到多个内核的状态。
主机接口210可参考从位图存储装置220接收的位图。主机接口210可基于对位图的参考结果来确定逻辑块地址待被分配到的内核。也就是说,主机接口210可基于位图来确定多个内核中的任意一个是逻辑块地址待被分配到的内核。
主机接口210分配从主机300接收的逻辑块地址的操作可以是将对应于逻辑块地址的请求分配到处理器230中包括的多个内核中的任意一个的操作。
详细地,主机接口210可从位图存储装置220接收位图,然后可确定哪个逻辑块地址被分配到多个内核中的哪一个。详细地,主机接口210可基于从位图存储装置220接收的位图来确定分配到多个内核中的每一个的逻辑块地址的数量。
主机接口210可基于可预设的分配比率和分别分配到多个内核的逻辑块地址的数量,确定处理器230中包括的多个内核之中、从主机300接收的逻辑块地址待被分配到的内核。可基于联接到多个内核中的每一个的存储器装置的容量(例如,一个或多个存储器装置的数量)来确定分配比率。可根据位图中包括的不同位值的数量来确定待被分配到处理器230中包括的多个内核中的每一个的逻辑块地址的数量。也就是说,主机接口210可基于多个存储器装置之中、联接到多个内核中的每一个的存储器装置的数量来确定分配比率。
在实施例中,当相同数量的存储器装置联接到多个内核中的每一个时,主机接口210可将逻辑块地址分配到多个内核,使得分配到多个内核中的每一个的逻辑块地址的数量可相同。在实施例中,当不同内核具有不同数量的相关联存储器装置时,即,存储器装置在多个内核之中未均等地分布时,主机接口210可根据分配比率,即,存储器装置的数量的比率,将逻辑块地址分配到多个内核。例如,在存在包括与五个存储器装置联接的第一内核、与三个存储器装置联接的第二内核和与两个存储器装置联接的第三内核的三个内核的布置中,第一内核和第二内核之间的分配比率将是5:3,第一内核和第三内核之间的分配比率将是5:2,并且第二内核和第三内核之间的分配比率将是3:2。
当确定了多个内核之中、逻辑块地址待被分配到的内核时,主机接口210可向位图存储装置220输出关于逻辑块地址待被分配到的内核的内核信息CORE_INF。
在实施例中,当处理器230中包括的多个内核中的任意一个的操作停止时,主机接口210可将停止期间接收的一个或多个逻辑块地址分配到剩余内核中的一个或多个。此后,当停止操作的内核恢复操作时,主机接口210可再次从位图存储装置220接收位图,然后可根据分配比率来将停止期间接收的逻辑块地址重新分配到多个内核中的一个或多个。
位图存储装置220可存储位图。位图可包括对应于从主机300接收的各个逻辑块地址的位值。位图存储装置220中存储的每个位值可指示多个内核中的特定一个。
可根据处理器230中包括的多个内核之中、逻辑块地址被分配到的内核来设置位值。而且,可根据多个内核的数量来设置位值。也就是说,位图存储装置220可根据多个内核的数量来设置对应于多个内核中的任意一个的位值。
因此,当多个逻辑块地址被分配到多个内核之中的单个内核时,对应于被分配的逻辑块地址的位值可彼此相同。
位图存储装置220可从主机接口210接收内核信息CORE_INF。内核信息CORE_INF可包括关于处理器230中包括的多个内核之中、相应的逻辑块地址被分配到的内核的信息。
位图存储装置220可接收内核信息CORE_INF,然后基于该内核信息,将对应于逻辑块地址的位值改变为指示逻辑块地址被分配到的内核的值。也就是说,位图存储装置220可存储包括关于逻辑块地址被分配到的内核的信息的位图。
当主机接口210从主机300接收到写入请求WRITE_REQ和逻辑块地址时,位图存储装置220可将位图存储装置220中存储的位图输出到主机接口210。主机接口210可基于该位图来确定处理器230中包括的多个内核之中、逻辑块地址待被输出到的内核。
处理器230可包括至少一个内核。内核可生成指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息。在实施例中,处理器230可包括多个内核。
处理器230可从主机接口210接收逻辑块地址。处理器230可将逻辑块地址分配到由主机接口210确定的内核。
在生成映射信息之后,处理器230可输出对应于逻辑块地址的物理块地址(PBA)。物理块地址(PBA)可指示多个存储器装置中的任意一个中包括的存储块的位置。可选地,物理块地址(PBA)可指示单个存储器装置100中包括的多个管芯中的任意一个的位置。也就是说,物理块地址(PBA)可以是指示物理页面的物理地址(PA)。
存储器接口240可从处理器230接收物理块地址(PBA)。存储器接口240可向存储器装置100输出物理块地址(PBA)。存储器装置100可接收物理块地址(PBA)并执行对应于主机300的请求的操作。在实施例中,因为从主机300接收的请求是写入请求WRITE_REQ,所以从主机300与物理块地址(PBA)一起接收的数据可被编程到相应的物理块地址(PBA)。
存储器接口240可通过多个通道来联接到多个存储器装置或多个管芯。多个管芯中的每一个可包括多个存储器装置或单个存储器装置100中包括的存储器单元。存储器接口240可将从处理器230接收的物理块地址(PBA)输出到联接到通道的多个存储器装置中的任意一个或者联接到通道的多个管芯中的任意一个。
图4是示出通过多个通道联接的多个管芯的示图。
参照图4,存储器接口240可分别通过第一至第八通道CH1至CH8联接到第一至第八管芯DIE1至DIE8。在图4的实施例中,第一至第四通道CH1至CH4通过存储器接口240联接到第零内核CORE0,第五至第八通道CH5至CH8通过存储器接口240联接到第一内核CORE1。在该实施例中,处理器230包括包含第一至第四管芯的第零内核CORE0和包含第五至第八管芯的第一内核CORE1。
在实施例中,第一通道CH1可联接到第一管芯DIE1,第二通道CH2可联接到第二管芯DIE2,第三通道CH3可联接到第三管芯DIE3,第四通道CH4可联接到第四管芯DIE4,第五通道CH5可联接到第五管芯DIE5,第六通道CH6可联接到第六管芯DIE6,第七通道CH7可联接到第七管芯DIE7,并且第八通道CH8可联接到第八管芯DIE8。
在实施例中,第一至第四管芯DIE1至DIE4可包括在单个存储器装置100或多个存储器装置中。进一步地,第五至第八管芯DIE5至DIE8可包括在单个存储器装置100或多个存储器装置中。
在诸如图4所示的第一至第八管芯DIE1至DIE8分布在多个存储器装置之中的布置中,第一管芯DIE1包括在第一存储器装置中,第二管芯DIE2包括在第二存储器装置中,第三管芯DIE3包括在第三存储器装置中,第四管芯DIE4包括在第四存储器装置中,第五管芯DIE5包括在第五存储器装置中,第六管芯DIE6包括在第六存储器装置中,第七管芯DIE7包括在第七存储器装置中,并且第八管芯DIE8包括在第八存储器装置中。
虽然未在图中示出,但存储器接口240可联接到处理器230中包括的第零内核CORE0和第一内核CORE1。因此,当从主机接口210接收的逻辑块地址被分配到第零内核CORE0时,存储器接口240可将从处理器230接收的物理块地址(PBA)输出到第一至第四管芯DIE1至DIE4中的任意一个。当从主机接口210接收的逻辑块地址被分配到第一内核CORE1时,存储器接口240可将从处理器230接收的物理块地址(PBA)输出到第五至第八管芯DIE5至DIE8中的任意一个。
在实施例中,根据通过存储器接口240联接到处理器230中包括的多个内核之中的每一个的管芯的数量,可设置待由主机接口210分配到多个内核中的每一个的逻辑块地址的数量。在图4中,联接到第零内核CORE0的管芯的数量为4,并且联接到第一内核CORE1的管芯的数量为4,因此主机接口210可将逻辑块地址分配到第零内核CORE0和第一内核CORE1,使得被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的数量彼此相等。
在实施例中,当通过存储器接口240分别联接到多个内核的管芯的数量彼此不相等时,主机接口210可基于联接到各个内核的管芯的数量来分配逻辑块地址。也就是说,可根据联接到各个内核的管芯的数量的比率来分配逻辑块地址。
图5是示出将逻辑块地址均等地或均匀地分配到多个内核的实施例的示图。
参照图5,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。主机接口210可将所接收的逻辑块地址输出到处理器230。逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在图5中,处理器230可包括第零内核CORE0和第一内核CORE1。也就是说,处理器230可包括多个内核。在实施例中,处理器230中包括的内核的数量可以变化。在图5的实施例中,通过存储器接口240联接到每个内核的管芯的数量相同。每个内核可生成指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息。
在实施例中,主机接口210首次接收的逻辑块地址可以是第五逻辑块地址(LBA5)。在主机接口210接收第五逻辑块地址(LBA5)之前从主机300接收的地址可被均等地或均匀地分配到第零内核CORE0和第一内核CORE1。
图5示出以下情况:主机接口210首次接收一个或多个其它逻辑块地址或者在接收第五逻辑块地址(LBA5)之前先前接收的逻辑块地址已被均等地或均匀地分配到第零内核CORE0和第一内核CORE1。
在实施例中,主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0。也就是说,第零内核CORE0可以是初始分配逻辑块地址的起始内核。
主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0,然后将第三逻辑块地址(LBA3)分配到第一内核CORE1。详细地,因为通过存储器接口240联接到第零内核CORE0和第一内核CORE1的管芯的数量彼此相等,所以主机接口210被配置成当从主机300接收的逻辑块地址中的任意一个被分配到第零内核CORE0时,将在向第零内核CORE0分配之后待被分配到内核的逻辑块地址分配到第一内核CORE1。
以该顺序,当第五逻辑块地址(LBA5)被分配到第零内核CORE0时,主机接口210可将第三逻辑块地址(LBA3)分配到第一内核CORE1。当第三逻辑块地址(LBA3)被分配到第一内核CORE1时,主机接口210可将第一逻辑块地址(LBA1)分配到第零内核CORE0。当第一逻辑块地址(LBA1)被分配到第零内核CORE0时,主机接口210可将第七逻辑块地址(LBA7)分配到第一内核CORE1。当第七逻辑块地址(LBA7)被分配到第一内核CORE1时,主机接口210可将第六逻辑块地址(LBA6)分配到第零内核CORE0。当第六逻辑块地址(LBA6)被分配到第零内核CORE0时,主机接口210可将第二逻辑块地址(LBA2)分配到第一内核CORE1。
因此,主机接口210可将从主机300接收的逻辑块地址均等地或均匀地分配到多个内核。因此,主机接口210可根据分配比率来将相应的逻辑块地址分配到多个内核中的任意一个,而不考虑逻辑块地址是偶数地址(Even LBA)还是奇数地址(Odd LBA)。
图6是示出指示逻辑块地址被分配到的内核的位图的示图。
参照图6,第一行指示从主机300接收的逻辑块地址。第二行指示包括对应于各个逻辑块地址的位值的位图。位图中包括的位值中的一个,例如“0”指示逻辑块地址被分配到第零内核CORE0,而另一位值,例如“1”指示逻辑块地址被分配到第一内核CORE1。可根据处理器230中包括的多个内核的数量来设置位图中包括的位值。
在图6中,虽然可从主机300接收多于10个逻辑块地址,但是主机接口210从主机300接收第零至第九逻辑块地址(LBA0至LBA9)。
参照图5和图6,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。图6示出以下过程:在图5中主机接口210已确定将从主机300接收的逻辑块地址分配到处理器230中包括的第零内核CORE0和第一内核CORE1中的任意一个之后,位图中存储的位值被改变。
在实施例中,当确定了从主机300接收的逻辑块地址待被分配到的内核时,主机接口210可将内核信息CORE_INF输出到位图存储装置220。内核信息CORE_INF可包括关于逻辑块地址待被分配到的内核的信息。位图存储装置220可基于从主机接口210接收的内核信息CORE_INF来改变位图中包括的位值。
首先,主机接口210可确定将从主机300接收的第五逻辑块地址(LBA5)分配到第零内核CORE0。当确定了将第五逻辑块地址(LBA5)分配到第零内核CORE0时,主机接口210可将包括关于第五逻辑块地址(LBA5)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第五逻辑块地址(LBA5)的位值改变为“0”。
在确定了将第五逻辑块地址(LBA5)分配到第零内核CORE0之后,主机接口210可确定将第三逻辑块地址(LBA3)分配到第一内核CORE1。当确定了将第三逻辑块地址(LBA3)分配到第一内核CORE1时,主机接口210可将包括关于第三逻辑块地址(LBA3)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第三逻辑块地址(LBA3)的位值改变为“1”。
在确定了将第三逻辑块地址(LBA3)分配到第一内核CORE1之后,主机接口210可确定将第一逻辑块地址(LBA1)分配到第零内核CORE0。当确定了将第一逻辑块地址(LBA1)分配到第零内核CORE0时,主机接口210可将包括关于第一逻辑块地址(LBA1)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第一逻辑块地址(LBA1)的位值改变为“0”。
通过上述方案,对应于第七逻辑块地址(LBA7)的位值可被改变为“1”,对应于第六逻辑块地址(LBA6)的位值可被改变为“0”,并且对应于第二逻辑块地址(LBA2)的位值可被改变为“1”。
图7是示出当联接到各个内核的管芯的数量彼此不同时均等地或均匀地分配逻辑块地址的实施例的示图。
参照图7,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。主机接口210可将所接收的逻辑块地址输出到处理器230。每个逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在图7中,处理器230可包括第零内核CORE0和第一内核CORE1。也就是说,处理器230可包括多个内核。在实施例中,处理器230中包括的内核的数量可以变化。在图7中,通过存储器接口240联接到各个内核的管芯的数量彼此不同。在图7中,联接到第零内核CORE0的管芯的数量是联接到第一内核CORE1的管芯的数量的两倍。而且,在主机接口210接收第五逻辑块地址(LBA5)之前被分配到第零内核CORE0的逻辑块地址的数量是分配到第一内核CORE1的逻辑块地址的数量的两倍,并且逻辑块地址基于联接到各个内核的管芯的数量来均等地或均匀地分配。
每个内核可生成指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息。
在实施例中,主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0。主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0,然后将第三逻辑块地址(LBA3)分配到第零内核CORE0。详细地,因为通过存储器接口240联接到第零内核CORE0的管芯的数量是联接到第一内核CORE1的管芯的数量的两倍,所以主机接口210可将从主机300接收的逻辑块地址之中的两个逻辑块地址分配到第零内核CORE0,然后将一个逻辑块地址分配到第一内核CORE1。
以该顺序,当第五逻辑块地址和第三逻辑块地址(LBA5和LBA3)被分配到第零内核CORE0时,主机接口210可将第一逻辑块地址(LBA1)分配到第一内核CORE1。当第一逻辑块地址(LBA1)被分配到第一内核CORE1时,主机接口210可将第七逻辑块地址和第六逻辑块地址(LBA7和LBA6)分配到第零内核CORE0。当第七逻辑块地址和第六逻辑块地址(LBA7和LBA6)被分配到第零内核CORE0时,主机接口210可将第二逻辑块地址(LBA2)分配到第一内核CORE1。
图8是示出将逻辑块地址均等地或均匀地分配到四个内核的实施例的示图。
参照图8,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。主机接口210可将所接收的逻辑块地址输出到处理器230。每个逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在图8中,处理器230可包括第零至第三内核CORE0至CORE3。在实施例中,处理器230可包括更大数量的内核。在图8中,通过存储器接口240联接到各个内核的管芯的数量彼此相等。每个内核可生成指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系的映射信息。
图8示出以下情况:当主机接口210首次接收逻辑块地址时或者在接收第五逻辑块地址(LBA5)之前逻辑块地址被均等地或均匀地分配到第零至第三内核CORE0至CORE3之后,接收第五逻辑块地址(LBA5)。
在实施例中,主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0。也就是说,第零内核CORE0可以是初始分配逻辑块地址的起始内核。
主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0,然后将第三逻辑块地址(LBA3)分配到第一内核CORE1。在第三逻辑块地址(LBA3)已被分配到第一内核CORE1之后,主机接口210可将第一逻辑块地址(LBA1)分配到第二内核CORE2。在第一逻辑块地址(LBA1)已被分配到第二内核CORE2之后,主机接口210可将第七逻辑块地址(LBA7)分配到第三内核CORE3。
详细地,因为通过存储器接口240联接到第零至第三内核CORE0至CORE3的管芯的数量彼此相等,所以主机接口210可将从主机300接收的逻辑块地址顺序地分配到第零至第三内核CORE0至CORE3。
在实施例中,在第七逻辑块地址(LBA7)已被分配到第三内核CORE3之后,下一逻辑块地址可被再次分配到第零内核CORE0。因此,在第七逻辑块地址(LBA7)已被分配到第三内核CORE3之后,主机接口210可将第六逻辑块地址(LBA6)分配到第零内核CORE0。在第六逻辑块地址(LBA6)已被分配到第零内核CORE0之后,主机接口210可将第二逻辑块地址(LBA2)分配到第一内核CORE1。
在实施例中,在第二逻辑块地址(LBA2)已被分配到第一内核CORE1之后,从主机300接收的逻辑块地址可被顺序地分配到从第二内核CORE2开始的内核中。也就是说,从主机300接收的逻辑块地址可被均匀地分配到第零至第三内核CORE0至CORE3,而不考虑每个逻辑块地址是偶数地址(Even LBA)还是奇数地址(Odd LBA)。
图9是说明指示当存在四个内核时逻辑块地址被分配到的内核的位图的示图。
参照图9,第一行指示从主机300接收的逻辑块地址。第二行指示包括对应于各个逻辑块地址的位值的位图。每个逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。
在图9中,位图中包括的位值中,“00”被例示为指示逻辑块地址被分配到第零内核CORE0。位图中包括的位值中,“01”被例示为指示逻辑块地址被分配到第一内核CORE1。位图中包括的位值中,“11”被例示为指示逻辑块地址被分配到第二内核CORE2。位图中包括的位值中,“10”被例示为指示逻辑块地址被分配到第三内核CORE3。除上述值之外,可不同地设置指示逻辑块地址被分配到的内核的位值。而且,可根据处理器230中包括的多个内核的数量来设置位图中包括的位值。也就是说,位图存储装置220可根据多个内核的数量来设置对应于多个内核中任意一个的位值。
在图9中,假设主机接口210从主机300接收第零至第九逻辑块地址(LBA0至LBA9)。在实施例中,主机接口210可从主机300接收更大数量的逻辑块地址。
参照图8和图9,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。图9示出以下过程:在图8中主机接口210已确定将从主机300接收的逻辑块地址分配到处理器230中包括的第零至第三内核CORE0至CORE3中的任意一个之后,位图中存储的位值被改变。
在实施例中,当确定了从主机300接收的逻辑块地址待被分配到的内核时,主机接口210可将内核信息CORE_INF输出到位图存储装置220。内核信息CORE_INF可包括关于逻辑块地址待被分配到的内核的信息。位图存储装置220可基于从主机接口210接收的内核信息CORE_INF来改变位图中包括的位值。
首先,主机接口210可确定将从主机300接收的第五逻辑块地址(LBA5)分配到第零内核CORE0。当确定了将第五逻辑块地址(LBA5)分配到第零内核CORE0时,主机接口210可将包括关于第五逻辑块地址(LBA5)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第五逻辑块地址(LBA5)的位值改变为“00”。
在确定了将第五逻辑块地址(LBA5)分配到第零内核CORE0之后,主机接口210可确定将第三逻辑块地址(LBA3)分配到第一内核CORE1。当确定了将第三逻辑块地址(LBA3)分配到第一内核CORE1时,主机接口210可将包括关于第三逻辑块地址(LBA3)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,然后将对应于第三逻辑块地址(LBA3)的位值改变为“01”。
在确定了将第三逻辑块地址(LBA3)分配到第一内核CORE1之后,主机接口210可确定将第一逻辑块地址(LBA1)分配到第二内核CORE2。当确定了将第一逻辑块地址(LBA1)分配到第二内核CORE2时,主机接口210可将包括关于第一逻辑块地址(LBA1)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第一逻辑块地址(LBA1)的位值改变为“11”。
在确定了将第一逻辑块地址(LBA1)分配到第二内核CORE2之后,主机接口210可确定将第七逻辑块地址(LBA7)分配到第三内核CORE3。当确定了将第七逻辑块地址(LBA7)分配到第三内核CORE3时,主机接口210可将包括关于第七逻辑块地址(LBA7)待被分配到的内核的信息的内核信息CORE_INF输出到位图存储装置220。位图存储装置220可接收内核信息CORE_INF,并且将对应于第七逻辑块地址(LBA7)的位值改变为“10”。
通过上述方案,对应于第六逻辑块地址(LBA6)的位值可被改变为“00”,对应于第二逻辑块地址(LBA2)的位值可被改变为“01”。
图10A和图10B是示出在从位图存储装置已接收到位图之后均匀地分配逻辑块地址的实施例的示图。
参照图10A和图10B,图10A示出在从主机300接收的第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)已被分配到第一内核CORE1之后位图存储装置220中存储的位图。图10B示出在第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)已被分配到第一内核CORE1之后,从主机300接收的逻辑块地址被分配到第零内核CORE0和第一内核CORE1的方法。在图10B中,分别联接到第零内核CORE0和第一内核CORE1的管芯的数量彼此相等。因此,被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可以是“1:1”。待分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可根据联接到第零内核CORE0和第一内核CORE1的管芯的数量来预设。
图10A示出了位图,该位图包括指示在从主机300接收逻辑块地址之前所接收的逻辑块地址被分配到的内核的位值。在实施例中,位图中包括的位值中,“0”指示逻辑块地址被分配到第零内核CORE0。而且,位图中包括的位值中,“1”指示逻辑块地址被分配到第一内核CORE1。可根据处理器230中包括的多个内核的数量来设置位图中包括的位值。
在实施例中,主机接口210可在从主机300接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)之前接收第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)。第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)可被分配到处理器230中包括的内核之中的第一内核CORE1。因此,对应于第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)的位值可以是“1”。
在第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)已被分配到第一内核CORE1之后,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。在从主机300接收逻辑块地址之后,主机接口210可从位图存储装置220接收位图。主机接口210可基于位图中包括的位值来确定从主机300接收的逻辑块地址待被分配到的内核。也就是说,主机接口210可参考从位图存储装置220接收的位图。主机接口210可基于对位图的参考结果来确定逻辑块地址待被分配到的内核。
在实施例中,因为联接到第零内核CORE0和第一内核CORE1的管芯的数量彼此相等,所以待分配到第零内核CORE0和第一内核CORE1的逻辑块地址的数量可相等。然而,在主机接口210从主机300接收第五逻辑块地址(LBA5)之前,第四逻辑块地址和第八逻辑块地址(LBA4和LBA8)已被分配到第一内核CORE1,因此分配到第零内核CORE0和第一内核CORE1的逻辑块地址的数量并不相等。主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0和第一内核CORE1之间、较少数量的逻辑块地址被分配到的第零内核CORE0。也就是说,主机接口210可将相应的逻辑块地址分配到多个内核之中、最少数量的逻辑块地址被分配到的内核。
在被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率变为1:1之前,主机接口210可将逻辑块地址分配到第零内核CORE0。因此,在第五逻辑块地址(LBA5)已被分配到第零内核CORE0之后,主机接口210可将第三逻辑块地址(LBA3)分配到第零内核CORE0。
当第三逻辑块地址(LBA3)被分配到第零内核CORE0时,被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可以是作为分配比率的“1:1”。因此,在第三逻辑块地址(LBA3)已被分配到第零内核CORE0之后,主机接口210可将第一逻辑块地址(LBA1)分配到第零内核CORE0,该第零内核CORE0是初始分配逻辑块地址的起始内核。
为了在第一逻辑块地址(LBA1)已被分配到第零内核CORE0之后,将逻辑块地址均匀地分配到第零内核CORE0和第一内核CORE1,主机接口210可将第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)分配到第一内核CORE1,并且将第六逻辑块地址(LBA6)分配到第零内核CORE0。此后,从主机300接收的逻辑块地址可被均匀地分配到第零内核CORE0和第一内核CORE1。
图11A和图11B是示出在从位图存储装置已接收到位图之后均匀地分配逻辑块地址的实施例的示图。
参照图11A和图11B,图11A示出在从主机300接收的第四逻辑块地址(LBA4)已被分配到第一内核CORE1之后位图存储装置220中存储的位图。图11B示出了在第四逻辑块地址(LBA4)已被分配到第一内核CORE1之后,从主机300接收的逻辑块地址被分配到第零内核CORE0和第一内核CORE1的方法。在图11B中,联接到第零内核CORE0的管芯的数量是联接到第一内核CORE1的管芯的数量的两倍。因此,待被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可以是2:1。待被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可根据联接到第零内核CORE0和第一内核CORE1的管芯的数量来预设。
图11A示出了位图,该位图包括指示在从主机300接收逻辑块地址之前所接收的逻辑块地址被分配到的内核的位值。在实施例中,例示了,位图中包括的位值中,“0”指示逻辑块地址被分配到第零内核CORE0。而且,位图中包括的位值中,“1”被例示为指示逻辑块地址被分配到第一内核CORE1。可根据处理器230中包括的多个内核的数量来设置位图中包括的位值。
在实施例中,主机接口210可在从主机300接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)之前接收第四逻辑块地址(LBA4)。第四逻辑块地址(LBA4)可被分配到处理器230中包括的内核之中的第一内核CORE1。因此,对应于第四逻辑块地址(LBA4)的位值可以是“1”。
在第四逻辑块地址(LBA4)已被分配到第一内核CORE1之后,主机接口210可从主机300顺序地接收第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。在从主机300接收逻辑块地址之后,主机接口210可从位图存储装置220接收位图。主机接口210可基于位图中包括的位值来确定从主机300接收的逻辑块地址待被分配到的内核。
在实施例中,因为联接到第零内核CORE0的管芯的数量是联接到第一内核CORE1的管芯的数量的两倍,所以被分配到第零内核CORE0的逻辑块地址的数量可以是被分配到第一内核CORE1的逻辑块地址的数量的两倍。然而,在主机接口210从主机300接收第五逻辑块地址(LBA5)之前,第四逻辑块地址(LBA4)已被分配到第一内核CORE1,因此主机接口210可将第五逻辑块地址(LBA5)分配到第零内核CORE0和第一内核CORE1之间、较少数量的逻辑块地址被分配到的第零内核CORE0。也就是说,主机接口210可将相应的逻辑块地址分配到多个内核之中、最少数量的逻辑块地址被分配到的内核。
在逻辑块地址被分配到第零内核CORE0和第一内核CORE1的比率变为2:1之前,主机接口210可将逻辑块地址分配到第零内核CORE0。因此,在第五逻辑块地址(LBA5)已被分配到第零内核CORE0之后,主机接口210可将第三逻辑块地址(LBA3)分配到第零内核CORE0。
当第三逻辑块地址(LBA3)被分配到第零内核CORE0时,被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率可以是作为分配比率的2:1。因此,在第三逻辑块地址(LBA3)已被分配到第零内核CORE0之后,主机接口210可将第一逻辑块地址(LBA1)分配到第零内核CORE0,该第零内核CORE0是初始分配逻辑块地址的起始内核。
在第一逻辑块地址(LBA1)已被分配到第零内核CORE0之后,主机接口210可将第七逻辑块地址(LBA7)分配到第零内核CORE0,并且将第六逻辑块地址(LBA6)分配到第一内核CORE1,从而被分配到第零内核CORE0和第一内核CORE1的逻辑块地址的比率变为2:1。此后,从主机300接收的逻辑块地址可以分配比率被分配到第零内核CORE0和第一内核CORE1。
图12是示出当从主机接收到读取请求时将逻辑块地址分配到内核的方法的示图。
参照图3和图12,存储器控制器200可包括主机接口210、位图存储装置220、处理器230及存储器接口240。在其它实施例中,主机接口210可包括位图存储装置220。
主机接口210可从主机300接收请求和逻辑块地址。在实施例中,主机接口210可从主机300接收读取请求READ_REQ和对应于该读取请求READ_REQ的逻辑块地址(LBA)。主机接口210可将逻辑块地址输出到处理器230,以执行对应于从主机300接收的读取请求READ_REQ的操作。
在逻辑块地址被输出到处理器230之前,主机接口210可从位图存储装置220接收位图。位图可包括对应于逻辑块地址的位值。可根据处理器230中包括的多个内核之中、每个逻辑块地址被分配到的内核来设置位值。也就是说,当逻辑块地址被分配到由位值表示的单个内核时,对应于各个逻辑块地址的位值可彼此相等。因此,位图可指示逻辑块地址被分配到多个内核的状态。
详细地,主机接口210可从位图存储装置220接收位图,然后可确定逻辑块地址被分配到多个内核的状态。主机接口210可基于位图来确定从主机300接收的相应的逻辑块地址待被分配到的内核。也就是说,主机接口210可基于位图来确定处理器230中包括的多个内核之中、逻辑块地址待被分配到的内核。可基于位图中包括的位值来确定逻辑块地址待被分配到的内核。
主机接口210可确定从主机300接收的逻辑块地址待被分配到的内核,并且可将逻辑块地址输出到相应的内核。也就是说,主机接口210可将逻辑块地址输出到所确定的处理器230中包括的多个内核之中、逻辑块地址待被分配到的内核。
处理器230可包括至少一个内核。内核可控制存储器装置100。在实施例中,当存在多个内核时,多个内核中的每一个可控制多个存储器装置。
每个内核可存储响应于在从主机300接收读取请求READ_REQ之前已接收的写入请求WRITE_REQ而生成的映射信息。映射信息可指示逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系。在实施例中,处理器230可包括多个内核。
处理器230可从主机接口210接收逻辑块地址。处理器230可将逻辑块地址分配到由主机接口210确定的内核。与从主机300接收的逻辑块地址相关的映射信息可存储在由主机接口210确定的内核中。
处理器230可从主机接口210接收逻辑块地址(LBA),并且可向存储器接口240输出与相应的逻辑块地址具有映射关系的物理块地址(PBA)。物理块地址(PBA)可指示多个存储器装置中的任意一个中包括的存储块的位置。可选地,物理块地址(PBA)可指示单个存储器装置100中包括的多个管芯中的任意一个的位置。
存储器接口240可从处理器230接收物理块地址(PBA)。存储器接口240可将所接收的物理块地址(PBA)输出到存储器装置100。存储器装置100可通过接收物理块地址(PBA)来执行对应于从主机300接收的请求的操作。因为从主机300接收的请求是读取请求READ_REQ,所以存储器装置100可向存储器控制器200输出相应的物理块地址(PBA)处存储的数据。
存储器接口240可通过多个通道来联接到多个存储器装置或多个管芯。多个管芯中的每一个可包括多个存储器装置或单个存储器装置100中包括的存储器单元。存储器接口240可将从处理器230接收的物理块地址(PBA)输出到联接到通道的多个存储器装置中的任意一个或者联接到通道的多个管芯中的任意一个。响应于从主机300接收的读取请求READ_REQ,存储器装置100可将相应的物理块地址(PBA)处存储的数据输出到存储器控制器200。
图13是示出当执行垃圾收集时将逻辑块地址分配到内核的方法的示图。
参照图13,当存储器控制器200执行垃圾收集时,处理器230可向主机接口210输出分别与作为垃圾收集(GC)的目标的牺牲存储块的物理块地址对应的逻辑块地址。主机接口210可顺序地接收这些逻辑块地址。在图13中,处理器230包括第零内核CORE0和第一内核CORE1。每个逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。物理块地址(PBA)可以是指示物理页面的物理地址(PA)。
在实施例中,分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址可以是第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)可以是被分配到第一内核CORE1的逻辑块地址。因此,当存储器控制器200执行垃圾收集时,第一内核CORE1可向主机接口210输出第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。主机接口210可以第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)的顺序来从第一内核CORE1接收逻辑块地址(①)。
主机接口210可接收分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址,然后将逻辑块地址均等地或均匀地分配到处理器230中包括的多个内核。也就是说,因为分别联接到处理器230中包括的多个内核的管芯的数量彼此相等,所以主机接口210可将逻辑块地址均等地或均匀地分配到各个内核。
因此,在已接收第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)之后,主机接口210可将逻辑块地址顺序地分配到从第零内核CORE0开始的内核。在实施例中,主机接口210可将第三逻辑块地址(LBA3)分配到第零内核CORE0(②),该第零内核CORE0是初始分配逻辑块地址的起始内核。在第三逻辑块地址(LBA3)已被分配到第零内核CORE0之后,主机接口210可将第七逻辑块地址(LBA7)分配到第一内核CORE1(③)。在第七逻辑块地址(LBA7)已被分配到第一内核CORE1之后,主机接口210可将第二逻辑块地址(LBA2)分配到第零内核CORE0(②)。
在其它实施例中,在已接收到分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址之后,主机接口210可从位图存储装置220接收位图。主机接口210可基于位图来确定被分配到多个内核中的每一个的逻辑块地址的数量。主机接口210可确定被分配到每个内核的逻辑块地址的数量,然后将分别与待执行垃圾收集的牺牲存储块的物理块地址对应的逻辑块地址分配到多个内核中的任意一个。
详细地,主机接口210可根据分配比率来将逻辑块地址分配到多个内核中的任意一个。主机接口210可基于多个存储器装置之中、联接到多个内核中的每一个的存储器装置的数量来确定分配比率。因此,主机接口210可基于被分配到多个内核中的每一个的逻辑块地址的数量,将分别与待执行垃圾收集的牺牲存储块的物理块地址对应的逻辑块地址分配到多个内核。
在实施例中,位图存储装置220可存储关于垃圾收集的执行的信息。也就是说,当逻辑块地址被分配到多个内核时,可生成内核信息,该内核信息不仅包括关于内核的信息,而且还包括指示已对与多个逻辑块地址对应的存储块执行垃圾收集的信息。因此,位图存储装置220可接收内核信息,并且存储对应于多个逻辑块地址的位值。对应于多个逻辑块地址的位值可指示执行垃圾收集的逻辑块地址。
图14是示出在多个内核之间输出逻辑块地址的方法的示图。
参照图14,处理器230可包括第零内核CORE0和第一内核CORE1。进一步地,参照图13和图14,分别与作为垃圾收集(GC)的目标的牺牲存储块的物理块地址对应的逻辑块地址可以是第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)可以是被分配到第一内核CORE1的逻辑块地址。每个逻辑块地址(LBA)可以是指示逻辑页面的逻辑地址(LA)。物理块地址(PBA)可以是指示物理页面的物理地址(PA)。
在实施例中,处理器230中包括的第零内核CORE0和第一内核CORE1可彼此交换数据。这种方案被称为“进程间通信(IPC)”。进程间通信(IPC)表示在进程之间相互交换数据的行为或者该行为的方法或路径。
因此,在第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)已被输出到主机接口210之后,第三逻辑块地址(LBA3)和第二逻辑块地址(LBA2)可被分配到第零内核CORE0,并且第七逻辑块地址(LBA7)可被分配到第一内核CORE1,但是第一内核CORE1可将第三逻辑块地址(LBA3)和第二逻辑块地址(LBA2)直接输出到第零内核CORE0。也就是说,第一内核CORE1可经由进程间通信(IPC)将第三逻辑块地址(LBA3)和第二逻辑块地址(LBA2)直接输出到第零内核CORE0,而不需要将待重新分配的逻辑块地址输出到主机接口210。
图15A和图15B是分别示出在执行垃圾收集之前和在已执行垃圾收集之后位图存储装置中存储的位图的示图。
参照图15A和图15B,图15A示出在执行垃圾收集(GC)之前位图存储装置220中存储的位图,图15B示出在执行垃圾收集之后位图存储装置220中存储的位图。在图15A和图15B中,处理器230中包括的内核的数量为2,并且联接到各个内核的管芯的数量彼此相等。
参照图15A和图15B,第一行指示从主机300接收的逻辑块地址。第二行指示包括对应于各个逻辑块地址的位值的位图。位图中包括的位值中,“0”被例示为指示逻辑块地址被分配到第零内核CORE0。而且,位图中包括的位值中,“1”被例示为指示逻辑块地址被分配到第一内核CORE1。可根据处理器230中包括的多个内核的数量来设置位图中包括的位值。也就是说,当每个位值被设置为“0”或“1”时,处理器230中包括的内核的数量可以为2。
参照图13至图15A和图15B,分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址可以是第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。
图15A示出执行垃圾收集之前的位图。在执行垃圾收集之前,主机接口210可从主机300顺序地接收了第五逻辑块地址(LBA5)、第三逻辑块地址(LBA3)、第一逻辑块地址(LBA1)、第七逻辑块地址(LBA7)、第六逻辑块地址(LBA6)和第二逻辑块地址(LBA2)。因此,主机接口210可将第五逻辑块地址(LBA5)、第一逻辑块地址(LBA1)和第六逻辑块地址(LBA6)分配到第零内核CORE0,并且可将第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)分配到第一内核CORE1。
在实施例中,在执行垃圾收集之前,位图存储装置220可存储包括对应于各个逻辑块地址的位值的位图。详细地,对应于第五逻辑块地址(LBA5)、第一逻辑块地址(LBA1)和第六逻辑块地址(LBA6)的位值可以是“0”。对应于第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)的位值可以是“1”。
图15B示出已执行垃圾收集之后的位图。分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址可以是第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)可以是被分配到第一内核CORE1的逻辑块地址。因此,当存储器控制器200执行垃圾收集时,第一内核CORE1可向主机接口210输出第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)。
主机接口210可接收分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址,然后将逻辑块地址均匀地分配到处理器230中包括的多个内核。也就是说,因为分别联接到处理器230中包括的多个内核的管芯的数量彼此相等,所以主机接口210可将逻辑块地址均匀地分配到各个内核。
因此,在已接收第三逻辑块地址(LBA3)、第七逻辑块地址(LBA7)和第二逻辑块地址(LBA2)之后,主机接口210可将逻辑块地址顺序地分配到从第零内核CORE0开始的内核。因此,在第三逻辑块地址(LBA3)已被分配到第零内核CORE0之后,主机接口210可将第七逻辑块地址(LBA7)分配到第一内核CORE1。在第七逻辑块地址(LBA7)已被分配到第一内核CORE1之后,主机接口210可将第二逻辑块地址(LBA2)分配到第零内核CORE0。
分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址被分配到第零内核CORE0和第一内核CORE1,因此对应于第三逻辑块地址和第二逻辑块地址(LBA3和LBA2)的位值可被改变为“0”。因为第七逻辑块地址(LBA7)被重新分配到第一内核CORE1,所以对应于第七逻辑块地址(LBA7)的位值可被保持在“1”。
图16是示出图1的存储器装置的结构的框图。
参照图16,存储器装置100可包括存储器单元阵列110和外围电路120。
存储器单元阵列110包括多个存储块BLK1至BLKz。存储块BLK1至BLKz通过行线RL联接到地址解码器121,并且通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。
存储器单元阵列110中包括的存储器单元可根据其使用目的而被划分为多个块。与控制存储器装置100所需的各种类型的设置信息对应的系统信息可存储在多个块中。
第一至第z存储块BLK1至BLKz中的每一个包括多个单元串。第一至第m单元串分别联接到第一至第m位线BL1至BLm。第一至第m单元串中的每一个包括漏极选择晶体管、串联联接的多个存储器单元和源极选择晶体管。漏极选择晶体管DST联接到漏极选择线DSL。第一至第n存储器单元分别联接到第一至第n字线WL1至WLn。源极选择晶体管SST联接到源极选择线SSL。漏极选择晶体管DST的漏极联接到相应的位线。第一至第m单元串的漏极选择晶体管分别联接到第一至第m位线BL1至BLm。源极选择晶体管SST的源极联接到共源线CSL。在实施例中,共源线CSL可共同联接到第一至第z存储块BLK1至BLKz。行线RL中包括漏极选择线DSL、第一至第n字线WL1至WLn以及源极选择线SSL。地址解码器121控制漏极选择线DSL、第一至第n字线WL1至WLn以及源极选择线SSL。控制逻辑125控制共源线CSL。读取和写入电路123控制第一至第m位线BL1至BLm。
外围电路120可包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124以及控制逻辑125。
地址解码器121通过行线RL联接到存储器单元阵列110。地址解码器121可在控制逻辑125的控制下操作。地址解码器121通过控制逻辑125接收地址ADDR。
在实施例中,分别基于页面来执行存储器装置100的编程操作和读取操作。
在编程操作和读取操作期间,由控制逻辑125接收的地址ADDR可包括块地址和行地址。地址解码器121可对接收到的地址ADDR之中的块地址进行解码。地址解码器121响应于解码的块地址来选择存储块BLK1至BLKz中的一个。
地址解码器121可对接收到的地址ADDR之中的行地址进行解码。响应于解码的行地址,地址解码器121将从电压生成器122提供的电压施加到行线RL,然后选择所选择的存储块的一个字线。
在擦除操作期间,地址ADDR包括块地址。地址解码器121可对块地址进行解码,并响应于解码的块地址来选择一个存储块。可对一个存储块的全部或部分执行擦除操作。
在部分擦除操作期间,地址ADDR可包括块地址和行地址。地址解码器121响应于解码的块地址来选择存储块BLK1至BLKz中的一个。
地址解码器121可对接收到的地址ADDR之中的行地址进行解码。响应于解码的行地址,地址解码器121将从电压生成器122提供的电压施加到行线RL,然后选择所选择的存储块的至少一个字线。
在实施例中,地址解码器121可包括块解码器、字线解码器及地址缓冲器。
电压生成器122可使用提供到存储器装置100的外部电源电压来生成多个电压。电压生成器122在控制逻辑125的控制下操作。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122可使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器122可包括用于接收内部电源电压的多个泵浦电容器,并且可在控制逻辑125的控制下通过选择性地启用多个泵浦电容器来生成多个电压。将所生成的电压施加到由地址解码器121选择的字线。
在编程操作期间,电压生成器122可生成高电压编程脉冲和低于该编程脉冲的通过脉冲。在读取操作期间,电压生成器122可生成读取电压和高于该读取电压的通过电压。在擦除操作期间,电压生成器122可生成擦除电压。
读取和写入电路123包括分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110的第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm在控制逻辑125的控制下操作。
第一至第m页面缓冲器PB1至PBm与数据输入/输出电路124执行数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到每个所选择的字线时,第一至第m页面缓冲器PB1至PBm可通过位线BL1至BLm将通过数据输入/输出电路124接收的数据传送到所选择的存储器单元。基于传送的数据对所选择的页面中的存储器单元进行编程。联接到施加编程许可电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。联接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作期间,第一至第m页面缓冲器可通过位线BL1至BLm从所选择的存储器单元读取页面数据。
在读取操作期间,读取和写入电路123可通过位线BL从所选择的页面中的存储器单元读取数据,并且可将读取的数据输出到数据输入/输出电路124。在擦除操作期间,读取和写入电路123可使位线BL浮置。
在实施例中,读取和写入电路123可包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑125的控制来操作。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。
控制逻辑125联接到地址解码器121、电压生成器122、读取和写入电路123以及数据输入/输出电路124。控制逻辑125可控制存储器装置100的整体操作。控制逻辑125从外部控制器接收命令CMD和地址ADDR。控制逻辑125可响应于命令CMD来控制地址解码器121、电压生成器122、读取和写入电路123以及数据输入/输出电路124。
图17是示出图16的存储器单元阵列的实施例的示图。
参照图17,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元布置在正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向上。下面参照图18和图19详细地描述每个存储块的结构。
图18是示出图17的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
参照图18,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”形。在存储块BLKa中,m个单元串布置在行方向(即,正(+)X方向)上。在图18中,示出两个单元串布置在列方向(即,正(+)Y方向)上。然而,该图示是为了清楚;将理解的是,可在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可分别具有相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,每个单元串可设置用于提供沟道层的柱。在实施例中,每个单元串可设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图18中,第一行中的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在负(-)Z方向上,并且串联连接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn顺序地布置在+Z方向上,并且串联连接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn通过管道晶体管PT而彼此联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST连接在相应的位线和存储器单元MCp+1至MCn之间。行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图18中,第一列中的单元串CS11和CS21联接到第一位线BL1。第m列中的单元串CS1m和CS2m联接到第m位线BLm。
布置在行方向上的单元串中的、联接到相同字线的存储器单元构成单个页面。例如,第一行中的单元串CS11至CS1m之中的、联接到第一字线WL1的存储器单元构成单个页面。第二行中的单元串CS21至CS2m之中的、联接到第一字线WL1的存储器单元构成单个另外页面。可通过选择漏极选择线DSL1和DSL2中的任意一个来选择布置在单个行的方向上的单元串。可通过选择字线WL1至WLn中的任意一个来从所选择的单元串之中选择单个页面。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。此外,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的偶数编号的单元串可分别联接到偶数位线,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减少源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,设置虚设存储器单元以减少漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。随着设置的虚设存储器单元越多,存储块BLKa的操作的可靠性提高,但存储块BLKa的大小增加。随着设置的虚设存储器单元越少,存储块BLKa的大小减小,但存储块BLKa的操作的可靠性可能劣化。
为了有效地控制虚设存储器单元,虚设存储器单元中的每一个可具有所需的阈值电压。在执行存储块BLKa的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图19是示出图17的存储块BLK1至BLKz中的任意一个存储块BLKb的示例的电路图。
参照图19,存储块BLKb包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个在正Z(+Z)方向上延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括堆叠在存储块BLKb下方的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在相应的位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除从每个单元串中排除管道晶体管PT之外,图19的存储块BLKb具有与图18的存储块BLKa的电路相似的等效电路。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。此外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可分别联接到偶数位线,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减少源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,设置虚设存储器单元以减少漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。随着设置的虚设存储器单元越多,存储块BLKb的操作的可靠性提高,但存储块BLKb的大小增加。随着设置的虚设存储器单元越少,存储块BLKb的大小减小,但存储块BLKb的操作的可靠性可能劣化。
为了有效地控制虚设存储器单元,虚设存储器单元中的每一个可具有所需的阈值电压。在执行存储块BLKb的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图20是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图20,在步骤S2001,主机接口210可从主机300接收写入请求WRITE_REQ和逻辑块地址(LBA)。逻辑块地址可以是对应于写入请求WRITE_REQ的地址。在从主机300已接收写入请求WRITE_REQ和逻辑块地址(LBA)之后,主机接口210可执行对应于从主机300接收的请求的操作。
在步骤S2003,主机接口210可参考位图存储装置220中存储的位图。主机接口210可参考位图,以分配从主机300接收的逻辑块地址。主机接口210可基于对位图的参考结果,将从主机300接收的逻辑块地址分配到处理器230中包括的多个内核之中的任意一个。
在步骤S2005,主机接口210可确定逻辑块地址是否已被以预设比率分配到各个内核。详细地,主机接口210可基于对位图的参考结果来确定逻辑块地址被分配到处理器230中包括的多个内核的状态。可基于联接到处理器230中包括的多个内核中的每一个的一个或多个存储器装置的容量(例如,一个或多个存储器装置的数量)来确定该比率。可根据位图中包括的不同位值的数量来确定待被分配到处理器230中包括的多个内核中的每一个的逻辑块地址的数量。
当逻辑块地址未被以预设比率分配到各个内核时,进程进行到步骤S2007。当逻辑块地址被以预设比率分配到各个内核时,进程进行到步骤S2009。
在步骤S2007,主机接口210可将相应的逻辑块地址分配到较少数量的逻辑块地址被分配到的内核。详细地,在从主机300接收相应的逻辑块地址之前已接收的逻辑块地址可能未被均匀地分配或均等地分布到多个内核。在这种情况下,主机接口210可参考位图来将逻辑块地址分配到多个内核之中、较少数量的逻辑块地址被分配到的内核。
在主机接口210已分配逻辑块地址之后,进程可返回到步骤S2005。因此,主机接口210可参考位图将下一逻辑块地址分配到多个内核中的任意一个。也就是说,在逻辑块地址被均等地或均匀地分配到多个内核之前,主机接口可将每个逻辑块地址分配到较少数量的逻辑块地址被分配到的内核。
在步骤S2009,主机接口210可将从主机300接收的逻辑块地址以预设比率分配到从第零内核CORE0开始的内核。也就是说,在从主机300接收相应的逻辑块地址之前已接收的多个逻辑块地址可能已被均匀地分配到多个内核,使得先前被分配到多个内核的逻辑块地址的数量变成具有预设比率。在这种情况下,可从初始分配逻辑块地址的第零内核CORE0恢复对逻辑块地址的分配。第零内核CORE0可以是初始分配逻辑块地址的起始内核。
此后,主机接口可根据分配比率来将从主机接收的每个逻辑块地址分配到多个内核中的任意一个。因此,主机接口210可根据分配比率来将相应的逻辑块地址分配到多个内核中的任意一个,而不考虑逻辑块地址是偶数地址(Even LBA)还是奇数地址(Odd LBA)。
图21是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图21,在步骤S2101,主机接口210可从主机300接收读取请求READ_REQ和逻辑块地址(LBA)。逻辑块地址可以是对应于读取请求READ_REQ的地址。在从主机300已接收读取请求READ_REQ和逻辑块地址(LBA)之后,主机接口210可执行对应于从主机300接收的请求的操作。
在步骤S2103,主机接口210可参考位图存储装置220中存储的位图。主机接口210可参考位图,以将与从主机300接收的逻辑块地址具有映射关系的物理块地址输出到存储器装置。物理块地址(PBA)可以是指示物理页面的物理地址(PA)。
在步骤S2105,主机接口210可基于位图从多个内核之中选择任意一个内核。详细地,主机接口210可基于对位图的参考结果,将从主机300接收的逻辑块地址分配到从处理器230中包括的多个内核之中选择的任意一个内核。
在实施例中,主机接口210可基于位图来确定从主机300接收的逻辑块地址待被分配到的内核。也就是说,主机接口210可基于位图来确定处理器230中包括的多个内核之中、逻辑块地址待被分配到的内核。可基于位图中包括的位值来确定逻辑块地址待被分配到的内核。
在步骤S2107,主机接口210可将从主机300接收的逻辑块地址传送到所选择的内核。详细地,主机接口210可确定从主机300接收的逻辑块地址待被分配到的内核,并且可将逻辑块地址输出到相应的内核。也就是说,主机接口210可将逻辑块地址输出到所确定的处理器230中包括的多个内核之中、逻辑块地址待被分配到的内核。
在步骤S2109,可输出从处理器230中包括的多个内核之中选择的内核中存储的物理块地址。详细地,处理器230可从主机接口210接收逻辑块地址。处理器230可将逻辑块地址分配到由主机接口210确定的内核。与从主机300接收的逻辑块地址相关的映射信息可存储在由主机接口210确定的内核中。
处理器230可从主机接口210接收逻辑块地址(LBA),并且可向存储器接口240输出与相应的逻辑块地址具有映射关系的物理块地址(PBA)。物理块地址(PBA)可指示多个存储器装置中的任意一个中包括的存储块的位置。可选地,物理块地址(PBA)可指示单个存储器装置100中包括的多个管芯中的任意一个的位置。
图22是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图22,在步骤S2201,主机接口210可从主机300接收垃圾收集请求。主机接口可执行对应于垃圾收集请求的操作。根据存储器装置中包括的存储块之中的空闲块或保留块的数量,可从主机接收垃圾收集请求。垃圾收集可以是确保空闲块的数量的操作。
在步骤S2203,主机接口210可将分别与牺牲存储块的物理块地址对应的逻辑块地址存储在缓冲器中。主机接口210可包括缓冲器。牺牲存储块可以是存储器装置中包括的多个存储块之中、具有较少数量的有效页面的存储块。也就是说,牺牲存储块可以是通过垃圾收集而被改变为空闲块的存储块。
在实施例中,主机接口210可顺序地接收分别与待执行垃圾收集的牺牲存储块的物理块地址对应的逻辑块地址。主机接口210可将逻辑块地址存储在缓冲器中。
在步骤S2205,主机接口210可以逻辑块地址被存储在缓冲器中的顺序来将逻辑块地址分配到内核。主机接口210可接收分别与作为垃圾收集的目标的牺牲存储块的物理块地址对应的逻辑块地址,并且将所接收的逻辑块地址存储在缓冲器中,然后可以逻辑块地址的存储顺序来分别将所存储的逻辑块地址均匀地分配到多个内核。
如上面参照图7、图11A、图11B和图13所述,在通过存储器接口240联接到各个内核的管芯的数量彼此不同的情况下,主机接口210可将所存储的逻辑块地址分配到多个内核,使得被分配到多个内核的逻辑块地址的数量可具有分配比率,即存储器装置的数量的比率。
在步骤S2207,位图存储装置220可从主机接口210接收内核信息CORE_INF,然后更新位图。在实施例中,当确定了多个内核之中、逻辑块地址待被分配到的内核时,主机接口210可向位图存储装置220输出关于逻辑块地址待被分配到的内核的内核信息CORE_INF。位图存储装置220可基于内核信息CORE_INF来改变位图中包括的位值。内核信息CORE_INF可包括关于逻辑块地址被分配到的内核的信息。
图23是示出图1的存储器控制器的实施例的示图。
存储器控制器1000联接到主机和存储器装置。响应于从主机接收到的请求,存储器控制器1000可访问存储器装置。例如,存储器控制器1000可被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置和主机之间的接口。存储器控制器1000可运行固件以用于控制存储器装置。
参照图23,存储器控制器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)。
ECC单元1030可执行错误校正。ECC单元1030可基于待通过存储器接口1060而写入到存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可通过存储器接口1060被传送到存储器装置。ECC单元1030可基于通过存储器接口1060而从存储器装置接收的数据来执行ECC解码。在示例中,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。在存储器控制器1000内,这些组件可单独提供,或者将这些组件的功能分布到其它组件。
在实施例中,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传送数据,控制总线可被配置成在存储器控制器1000中传送诸如命令或地址的控制信息。数据总线和控制总线可彼此隔离,并且可既不互相干扰也不互相影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ECC单元1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图24是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
参照图24,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200和主机之间的接口。存储器控制器2100可运行固件以用于控制存储器装置2200。存储器装置2200可以与上面参照图16描述的存储器装置100相同的方式来实施。
在实施例中,存储器控制器2100可包括诸如RAM、处理单元、主机接口、存储器接口和ECC组件的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可基于具体通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可由上述各种通信协议中的至少一种来限定。
在实施例中,存储器装置2200可被实施成诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑式闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图25是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的示例的框图。
参照图25,SSD系统3000可包括主机3100和SSD 3200。SSD 3200可通过信号连接器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和SSD3200的接口。例如,信号SIG可以由诸如以下的各种接口中的至少一种限定:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)接口。
辅助电源3230可通过电源连接器3002联接到主机3100。辅助电源3230可被供应有来自主机3100的电力PWR并且可被充电。当来自主机3100的电力的供应未平稳执行时,辅助电源3230可供应SSD 3200的电力。在实施例中,辅助电源3230可设置在SSD 3200内部或外部。例如,辅助电源3230可被设置在主板中并且可向SSD 3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图26是示出根据本公开的实施例的应用存储装置的用户系统的框图。
参照图26,用户系统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可包括多个非易失性存储器装置,每个非易失性存储器装置可以与上面参照图16描述的存储器装置相同的方式操作。存储模块4400可以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,提供了一种均匀地或均等地分配或分布逻辑块地址的存储器控制器及操作该存储器控制器的方法。
虽然已经公开了本公开的各个实施例,但本领域技术人员根据本公开将理解的是,在不脱离本发明的范围和实质的情况下,可进行各种修改、添加和替换。因此,本发明的范围由所附权利要求及其等同方案来限定,而非由之前的描述来限定。
在以上讨论的实施例中,可选择性地执行或跳过步骤。另外,某些步骤可不总是以所述的顺序来顺序执行,并且可以不同的顺序来执行。此外,本文公开的实施例旨在帮助本领域技术人员更清楚地理解本发明,而不是旨在限制本发明的范围。换言之,本发明所属领域的技术人员将能够容易地理解的是,基于本公开的技术范围,可以进行各种修改。
已经参照附图描述了本发明的实施例,并且在说明书中使用的特定术语或词语应当根据本发明的实质来解释,而不限制本发明的主题。应当理解的是,本文描述的基本发明构思的许多变化和修改将仍然落入所附权利要求及其等同方案所限定的本发明的实质和范围内。

Claims (26)

1.一种存储器控制器,所述存储器控制器控制存储数据的多个存储器装置,所述存储器控制器包括:
主机接口,从主机接收请求和对应于所述请求的逻辑地址;
处理器,包括多个内核,每个内核从所述主机接口接收所述逻辑地址并且生成映射信息,所述映射信息指示所述逻辑地址和物理地址之间的映射关系;以及
位图存储装置,存储位图,所述位图指示先前接收的逻辑地址中的每一个被分配到所述多个内核中的哪个内核,
其中所述主机接口基于所述位图来将所述逻辑地址分配到所述多个内核中的一个。
2.根据权利要求1所述的存储器控制器,其中所述位图具有位值,所述位值指示所述多个内核中、所述逻辑地址被分配到的内核。
3.根据权利要求2所述的存储器控制器,其中所述位图存储装置根据所述多个内核的数量将所述位值设置为对应于所述多个内核中的任意一个。
4.根据权利要求1所述的存储器控制器,其中所述主机接口基于所述位图来确定多少个逻辑地址被分配到所述多个内核中的每一个。
5.根据权利要求4所述的存储器控制器,其中所述主机接口基于分配比率和分别被分配到所述多个内核的逻辑地址的数量,将从所述主机接收的所述逻辑地址分配到所述多个内核中的任意一个。
6.根据权利要求5所述的存储器控制器,其中所述主机接口基于所述多个存储器装置之中、联接到所述多个内核中的每一个的存储器装置的数量来确定所述分配比率。
7.根据权利要求5所述的存储器控制器,其中所述主机接口将所述逻辑地址分配到所述多个内核之中、最少数量的逻辑地址已被分配到的内核。
8.根据权利要求7所述的存储器控制器,其中当被分配到所述多个内核的逻辑地址的比率等于所述分配比率时,所述主机接口将所述逻辑地址分配到所述多个内核之中的起始内核。
9.根据权利要求1所述的存储器控制器,其中当确定了所述多个内核之中、所述逻辑地址待被分配到的内核时,所述主机接口将关于所述逻辑地址待被分配到的内核的内核信息输出到所述位图存储装置。
10.根据权利要求9所述的存储器控制器,其中所述位图存储装置基于所述内核信息来将对应于所述逻辑地址的位值改变为指示所述逻辑地址被分配到的内核的值。
11.根据权利要求1所述的存储器控制器,其中所述主机接口接收分别与待执行垃圾收集的存储块的物理地址对应的逻辑地址。
12.根据权利要求11所述的存储器控制器,其中所述主机接口基于分别被分配到所述多个内核的逻辑地址的数量,将分别与待执行垃圾收集的存储块的物理地址对应的逻辑地址分配到所述多个内核。
13.一种操作存储器控制器的方法,所述存储器控制器包括多个内核,所述多个内核控制存储数据的多个存储器装置,所述方法包括:
从主机接收请求和对应于所述请求的逻辑地址;
参考位图,所述位图指示先前接收的逻辑地址中的每一个被分配到所述多个内核中的哪个内核;并且
基于所述位图将所接收的逻辑地址分配到所述多个内核中的一个。
14.根据权利要求13所述的方法,其中所述位图将所述逻辑地址与所述逻辑地址被分配到的内核相关联。
15.根据权利要求14所述的方法,其中根据所述多个内核的数量来设置位值。
16.根据权利要求13所述的方法,其中分配包括:确定分别被分配到所述多个内核的逻辑地址的数量。
17.根据权利要求16所述的方法,其中:
基于分配比率和分别被分配到所述多个内核的逻辑地址的数量,将所接收的逻辑地址分配到所述多个内核中的一个,并且
基于所述多个存储器装置之中、联接到所述多个内核中的每一个的存储器装置的数量来确定所述分配比率。
18.根据权利要求16所述的方法,其中所接收的逻辑地址被分配到所述多个内核之中、最少数量的逻辑地址已被分配到的内核。
19.根据权利要求18所述的方法,其中当被分配到所述多个内核的逻辑地址的比率等于分配比率时,所接收的逻辑地址被分配到所述多个内核之中的起始内核。
20.根据权利要求13所述的方法,进一步包括:
输出关于所接收的逻辑地址待被分配到的内核的内核信息。
21.根据权利要求20所述的方法,进一步包括:
基于所述内核信息,将对应于所接收的逻辑地址的位值改变为指示所接收的逻辑地址被分配到的内核的值。
22.一种操作存储器控制器的方法,所述存储器控制器包括多个内核,所述多个内核控制存储数据的多个存储器装置,所述方法包括:
在所述多个存储器装置中包括的多个存储块之中,确定待执行垃圾收集的牺牲存储块;
参考位图,所述位图指示先前接收的逻辑地址中的每一个被分配到所述多个内核中的哪个内核;并且
基于所述位图,在所述多个内核之中分配分别对应于所述牺牲存储块的物理地址的逻辑地址。
23.根据权利要求22所述的方法,其中基于分别被分配到所述多个内核的逻辑地址的数量,将分别对应于所述牺牲存储块的物理地址的逻辑地址分配到内核。
24.一种控制器,包括:
多个内核,每个内核基于被分配到每个内核的一个或多个逻辑地址来控制相应的存储器装置组执行操作;
存储装置,存储分配状态信息,所述分配状态信息指示被分配到各个内核的逻辑地址的数量;以及
分配模块,通过基于所述分配状态信息将逻辑地址顺序地分配到内核来控制逻辑地址的分配,使得被分配到各个内核的逻辑地址的数量收敛于分配比率。
25.根据权利要求24所述的控制器,其中所述分配比率取决于分别对应于内核的存储器装置组的容量。
26.根据权利要求24所述的控制器,其中每当所述分配模块将逻辑地址分配到内核中的一个时,更新所述分配状态信息。
CN201911045446.5A 2019-03-27 2019-10-30 存储器控制器及操作存储器控制器的方法 Pending CN111752857A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190035387A KR20200114149A (ko) 2019-03-27 2019-03-27 메모리 컨트롤러 및 그 동작 방법
KR10-2019-0035387 2019-03-27

Publications (1)

Publication Number Publication Date
CN111752857A true CN111752857A (zh) 2020-10-09

Family

ID=72605733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911045446.5A Pending CN111752857A (zh) 2019-03-27 2019-10-30 存储器控制器及操作存储器控制器的方法

Country Status (3)

Country Link
US (1) US11256614B2 (zh)
KR (1) KR20200114149A (zh)
CN (1) CN111752857A (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176065B2 (en) * 2019-08-12 2021-11-16 Micron Technology, Inc. Extended memory interface
KR20210062476A (ko) 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20220022318A (ko) 2020-08-18 2022-02-25 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템
KR20220036169A (ko) 2020-09-15 2022-03-22 에스케이하이닉스 주식회사 메모리 시스템 및 데이터 처리 시스템
KR20220050407A (ko) 2020-10-16 2022-04-25 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11762590B2 (en) 2020-09-15 2023-09-19 SK Hynix Inc. Memory system and data processing system including multi-core controller for classified commands
KR20230081505A (ko) 2021-11-30 2023-06-07 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그의 동작 방법
EP4273702A1 (en) * 2022-05-06 2023-11-08 Samsung Electronics Co., Ltd. Operating method of memory device for managing map data of each of plurality of storage devices, computing system including memory device, and operating method of computing system
KR102619406B1 (ko) * 2023-07-05 2024-01-02 메티스엑스 주식회사 메모리 액세스 장치 및 이를 이용하여 코어를 프로그래밍 엔진에 할당하기 위한 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015567A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Distributed independent cache memory
US20110307544A1 (en) * 2010-06-14 2011-12-15 Microsoft Corporation Sessions To Host Processes With Special Requirements
US20170168930A1 (en) * 2015-12-15 2017-06-15 Samsung Electronics Co., Ltd. Method for operating storage controller and method for operating storage device including the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR101854020B1 (ko) 2012-12-31 2018-05-02 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리에서 비동기 다이 동작을 위한 방법 및 시스템
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
KR20170009000A (ko) 2015-07-15 2017-01-25 에스케이하이닉스 주식회사 메모리 콘트롤러, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015567A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Distributed independent cache memory
US20110307544A1 (en) * 2010-06-14 2011-12-15 Microsoft Corporation Sessions To Host Processes With Special Requirements
US20170168930A1 (en) * 2015-12-15 2017-06-15 Samsung Electronics Co., Ltd. Method for operating storage controller and method for operating storage device including the same

Also Published As

Publication number Publication date
US11256614B2 (en) 2022-02-22
US20200310958A1 (en) 2020-10-01
KR20200114149A (ko) 2020-10-07

Similar Documents

Publication Publication Date Title
US11256614B2 (en) Memory controller for allocating logical address and method of operating the same
KR102535627B1 (ko) 메모리 컨트롤러 및 그 동작 방법
CN110389720B (zh) 存储装置及其操作方法
CN110502449B (zh) 存储装置及其操作方法
US11531492B2 (en) Device and method of operating the same
CN111435289B (zh) 映射数据访问性能提高的存储器控制器及其操作方法
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US11188458B2 (en) Memory controller and method of operating the same
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
US20200401328A1 (en) Storage device and method of operating the same
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
CN111913556A (zh) 储存装置及储存装置的操作方法
US11693583B2 (en) Memory controller and operating method thereof
CN114201414A (zh) 存储装置及其操作方法
CN111435333B (zh) 存储装置及其操作方法
CN113223573A (zh) 存储器控制器及其操作方法
CN111338979A (zh) 存储器控制器及其操作方法
US11543998B2 (en) Memory controller for controlling different numbers of memory devices and storage device including the same
CN114115708A (zh) 存储装置及其操作方法
US11593023B2 (en) Memory controller and method of operating the same
US11269767B2 (en) Memory controller and operating method thereof
US11210223B2 (en) Storage device and operating method thereof
CN114300021A (zh) 存储装置及其操作方法
CN113535599A (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