CN112346652A - 存储器控制器及其操作方法 - Google Patents

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

Info

Publication number
CN112346652A
CN112346652A CN201911407775.XA CN201911407775A CN112346652A CN 112346652 A CN112346652 A CN 112346652A CN 201911407775 A CN201911407775 A CN 201911407775A CN 112346652 A CN112346652 A CN 112346652A
Authority
CN
China
Prior art keywords
memory
die
data blocks
information
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201911407775.XA
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 CN112346652A publication Critical patent/CN112346652A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

本文描述了存储器控制器及其操作方法。本公开涉及一种电子装置。一种具有改进的读取交错和写入交错性能的存储器控制器可以包括:缓冲器存储器,临时存储从牺牲区域读取的数据块;目标管芯信息管理器,生成关于多个存储器管芯的目标管芯信息,数据块根据分别对应于多个存储器管芯的数据块的逻辑地址计数来被分别存储在多个存储器管芯中,该逻辑地址计数是基于多个存储器管芯和从主机提供的逻辑地址之间的对应信息来被确定;以及写入操作控制器,控制多个存储器管芯使得临时存储在缓冲器存储器中的数据块基于目标管芯信息被存储在多个存储器管芯中。

Description

存储器控制器及其操作方法
相关申请的交叉引用
本申请要求于2019年8月9日提交的韩国专利申请号10-2019-0097809的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各种实施例一般地涉及电子装置,并且更具体地涉及存储器控制器和操作电子装置的方法。
背景技术
存储装置可以响应于诸如计算机或智能手机的主机装置的控制来存储数据。存储装置可以包括存储数据的存储器装置和控制该存储器装置的存储器控制器。通常,存在两种类型的存储器装置:易失性存储器装置和非易失性存储器装置。
易失性存储器装置只要被供电就可以保留数据,并且在没有电源的情况下可能丢失存储的数据。易失性存储器装置的类型包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置即使在没有电源的情况下也可以保留数据。非易失性存储器装置的类型包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪存。
发明内容
各种实施例涉及具有改进的读取交错性能和写入交错性能的存储器控制器以及其操作方法。
根据一个实施例,一种存储器控制器用于将数据块从多个存储器管芯中的至少一个存储器管芯中的牺牲区域迁移到与所述牺牲区域不同的目标区域,所述存储器控制器包括:缓冲器存储器,临时存储从所述牺牲区域读取的数据块;目标管芯信息管理器,根据数据块的逻辑地址计数来生成关于要将数据块分别迁移到的多个存储器管芯的目标管芯信息,所述逻辑地址计数是基于所述多个存储器管芯和对应于所述数据块的逻辑地址之间的对应信息来确定的;以及写入操作控制器,控制所述多个存储器管芯,使得临时存储在缓冲器存储器中的数据块根据所述目标管芯信息被存储在所述多个存储器管芯中。
根据一个实施例,一种存储装置包括:多个存储器管芯;缓冲器存储器,临时存储多个存储器管芯中的至少一个存储器管芯中的牺牲区域中存储的多个数据块;以及存储器控制器,控制所述多个存储器管芯,使得所述多个数据块被映射到所述多个存储器管芯,以形成分别对应于所述多个存储器管芯的多个数据块组,至少一个数据块组中包括的数据块基于所述多个数据块组中的每一个中包括的数据块数目来被重新映射以被包括在另一数据块组中,并且从所述多个数据块组中的每一个中选择一个数据块的数据块集合被存储在所述多个存储器管芯中。
根据一个实施例,一种将多个存储器管芯中的至少一个存储器管芯中包括的牺牲区域中存储的数据块迁移到不同于牺牲区域的目标区域的方法可以包括:从牺牲区域读取数据块;基于多个存储器管芯与逻辑地址之间的对应信息来计数逻辑地址,以确定与要迁移到多个存储器管芯中的每一个的数据块相对应的逻辑地址的数目;生成关于多个存储器管芯的目标管芯信息,数据块将要基于分别对应于存储器管芯的逻辑地址计数来被分别迁移到多个存储器管芯中;以及控制所述多个存储器管芯,使得从牺牲区域读取的数据块根据基于目标管芯信息的交错方案被存储在多个存储器管芯中。
此外,目标管芯信息的生成包括:基于对应信息生成关于分别与数据块相对应的多个存储器管芯的候选管芯信息,以及基于逻辑地址计数和候选管芯信息生成目标管芯信息。
此外,在目标管芯信息的生成中,当多个存储器管芯中的任意两个之间的逻辑地址计数的差为一或更小时,候选管芯信息被用作目标管芯信息。
此外,目标管芯信息的生成包括:生成目标管芯信息以将一个或多个数据块的迁移目的地从对应于最大逻辑地址计数的第一存储器管芯更改为第二存储器管芯。
此外,目标管芯信息的生成包括:生成目标管芯信息以将一个或多个有效数据块的迁移目的地从第三存储器管芯更改为与最小逻辑地址计数相对应的第二存储器管芯。
此外,目标管芯信息的生成包括:生成目标管芯信息,以在多个存储器管芯中任意两个之间的逻辑地址计数的差超过一时将所述差减少到一或更小。
附图说明
图1是示出存储装置的框图。
图2是示出控制多个存储器管芯的存储器控制器的操作的图。
图3是示出根据非交错方案的操作时间的图。
图4是示出根据交错方案的操作时间的图。
图5是示出逻辑地址和存储器管芯之间的对应信息以提高读取交错速度的图。
图6是示出写入交错方案的图。
图7是示出根据对应信息布置在多个存储器管芯中的逻辑地址的图。
图8是示出存储器区域和逻辑地址之间的映射关系已经改变的情况的图。
图9是示出根据本公开的实施例的数据迁移操作的图。
图10是示出根据本公开的另一实施例的数据迁移操作的图。
图11是示出根据本公开的实施例的有效数据块的读取处理的图。
图12是示出根据本公开的实施例的生成候选管芯信息的处理的图。
图13是示出根据本公开的实施例的生成目标管芯信息的处理的图。
图14是示出根据本公开的实施例的存储器控制器的图。
图15是示出目标管芯信息管理器的图。
图16是示出根据本公开的另一实施例的迁移方法的流程图。
图17是示出生成目标管芯信息的处理的流程图。
图18是示出基于逻辑地址计数来生成目标管芯信息的处理的流程图。
图19是示出根据本公开的实施例的存储器管芯的图。
图20是示出图19的存储器块BLKi的图。
图21是示出根据本公开的实施例的应用了存储装置的存储器卡系统的示例的框图。
图22是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的示例的框图。
图23是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
提供具体的结构和功能描述来描述实施例。然而,本公开可以以各种其它形式和配置来实施,并且可以以各种不同的方式来实施。因此,本公开不限于任何特定实施例或任何特定细节。
在整个说明书中,对“一个实施例”、“另一实施例”等的引用不一定仅指一个实施例,并且对任何此类短语的不同引用不一定指相同实施例。此外,单数形式的元件并不一定意味着只有一个这样的元件。同样,不定冠词“一个”和“一”一般指一个或多个,除非另有说明或上下文要求仅一个。
以下,参考附图详细描述本公开的实施例,以便本领域技术人员能够容易地实现和实施本公开。
图1是示出存储装置50的框图。
参照图1,存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。
存储装置50可以被配置为响应于主机300的控制来存储数据。存储装置50的示例可以包括蜂窝电话、智能手机、MP3播放器、膝上型计算机、台式计算机、游戏播放器、电视、平板电脑或车载信息娱乐系统。
根据与主机300的通信方法相对应的主机接口,存储装置50可以被配置作为各种类型的存储装置中的任何一种。例如,存储装置50可以被配置作为固态驱动器(SSD)、MMC、eMMC、RS-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)、低功耗双数据速率4(LPDDR4)SDRAM、图形双数据速率(GDDR)SDRAM、低功耗DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪存存储器、垂直NAND闪存存储器、NOR闪存存储器装置、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移转矩随机存取存储器(STT-RAM)。在存储器装置100是NAND闪存存储器的上下文中描述本公开。
存储器装置100可以从存储器控制器200接收命令和地址。存储器装置100可以被配置为响应于接收的地址而访问存储器单元阵列中的选定区域。当存储器装置100访问所选区域时,可能意味着存储器装置100可以在由地址选择的区域上执行与接收到的命令相对应的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以利用数据对由地址选择的区域进行编程。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。
存储器装置100可以包括多个存储器管芯。每个存储器管芯可以包括至少一个存储器单元阵列。多个存储器管芯可以通过管芯交错操作、通道交错操作、通路交错操作或平面交错操作来被控制。
当向存储装置50通电时,存储器控制器200可以执行固件FW。固件FW可以包括主机接口层HIL、闪存转换层FTL和闪存接口层FIL。主机接口层HIL可以接收来自主机300的请求输入或向主机300输出响应。闪存转换层FTL可以管理主机300的接口和存储器装置100的接口之间的操作。闪存接口层FIL可向存储器装置100提供命令或从存储器装置100接收响应。
存储器控制器200可以从主机300接收数据和逻辑地址LA,并且将逻辑地址LA转换为物理地址PA,该物理地址PA指示数据存储在存储器装置100中的存储器单元的地址。逻辑地址可以是逻辑块地址LBA,物理地址可以是物理块地址PBA。
例如,存储器控制器200可以控制存储器装置100,使得响应于来自主机300的请求而执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理块地址和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令、物理块地址和数据。
可替代地,存储器控制器200可以控制存储器装置100,使得即使在没有来自主机300的请求的情况下也可以执行编程操作、读取操作或擦除操作。存储器控制器200可以控制存储器装置100以执行诸如耗损均衡、垃圾收集和读取回收等后台操作。
根据本公开的一个实施例,存储器控制器200可以执行将有效数据块从牺牲区域移动到目标区域的迁移操作。后台操作(包括耗损均衡、垃圾收集和读取回收)可以包括迁移操作。牺牲区域可以指存储要迁移的数据块的区域。存储器控制器200可以基于存储在该区域中的有效数据块的数目来选择牺牲区域,该区域可以是存储器块。例如,存储器控制器200可以选择有效数据块最少的存储器块作为牺牲区域。存储器控制器200可以基于来自给定区域的数据的次数来选择牺牲区域。例如,存储器控制器200可以选择读取次数最大的存储器块作为牺牲区域。存储器控制器200可以基于给定区域中的数据被擦除的次数来选择牺牲区域。例如,存储器控制器200可以选择擦除次数最大的存储器块作为牺牲区域。
根据本公开的一个实施例,存储器控制器200可以包括缓冲器存储器210、写入操作控制器220和目标管芯信息管理器230,以执行迁移操作。
缓冲器存储器210可以包括临时存储从存储器装置100读取的数据块的读取缓冲器和临时存储要编程的数据块的写入缓冲器。如图1所示,缓冲器存储器210可以位于存储器控制器200中。然而,缓冲器存储器210可以位于存储器控制器200外部。
写入操作控制器220可以控制缓冲器存储器210和存储器装置100,使得临时存储在缓冲器存储器210中的数据块可以被编程到存储器装置100中。写入操作控制器220可以从目标管芯信息管理器230接收目标管芯信息,并且基于目标管芯信息将临时存储在缓冲器存储器210中的数据块分配和存储在存储器装置100中的多个存储器管芯中。
目标管芯信息管理器230可以生成关于存储每个数据块的存储器管芯中的每一个的目标管芯信息。考虑到当存储在牺牲区域中的数据块被分配和存储在多个存储器管芯中时的写入时间以及当分配和存储在多个存储器管芯中的数据块被读取时的读取时间,可以生成目标管芯信息。
主机300可以使用各种通信方法中的至少一种与存储装置50通信,例如通用串行总线(USB)、串行AT连接(SATA)、串行连接SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围部件互连(PCI)、PCI快速(PCIe),非易失性存储器快速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册的DIMM(RDIMM)和/或负载减少的DIMM(LRDIMM)通信方法。
图2是示出控制多个存储器管芯的存储器控制器200的操作的图。
参照图2,存储器装置100可以包括多个存储器管芯DIE 00至DIE 13。存储器控制器200可以通过第0通道CH 0和第一通道CH 1耦合到多个存储器管芯DIE 00至DIE 13。然而,通道的数目和耦合到每个通道的存储器管芯的数目不限于任何特定的数目。可以使用与本文中的教导一致的任何适当配置。
存储器管芯00(DIE 00)、存储器管芯01(DIE 01)、存储器管芯02(DIE 02)和存储器管芯03(DIE 03)可以共同耦合到第0通道CH 0。存储器管芯00、存储器管芯01、存储器管芯02和存储器管芯03可以通过第0通道CH 0与存储器控制器200通信。
由于存储器管芯00、存储器管芯01、存储器管芯02和存储器管芯03共同耦合到第0通道CH 0,一次只能有一个这样的存储器管芯可以与存储器控制器200通信。另一方面,可以同时执行存储器管芯00、存储器管芯01、存储器管芯02和存储器管芯03的内部操作。
存储器管芯10(DIE 10)、存储器管芯11(DIE 11)、存储器管芯12(DIE 12)和存储器管芯13(DIE 13)可以共同耦合到第一通道CH 1。存储器管芯10、存储器管芯11、存储器管芯12和存储器管芯13可以通过第一通道CH 1与存储器控制器200通信。
由于存储器管芯10、存储器管芯11、存储器管芯12和存储器管芯13共同耦合到第一通道CH 1,一次只能有一个这样的存储器管芯可以与存储器控制器200通信。另一方面,可以同时执行存储器管芯10、存储器管芯11、存储器管芯12和存储器管芯13的内部操作。
包括多个存储器管芯DIE 00至DIE 13的存储器装置100可以根据交错(interleaving)方案与存储器控制器200交换数据。
根据交错方案,可以顺序地对耦合到特定通路的存储器管芯执行输入和输出操作,并且各个存储器管芯的内部操作可以重叠一段时间。交错方案可以是各个存储器管芯被并行访问的方案之一。存储器控制器200可以通过第零通道CH 0将编程命令、地址和数据传输到存储器管芯00。当传输到存储器管芯00的数据被编程到存储器单元阵列中时,存储器控制器200可以将编程命令、地址和数据传输到存储器管芯01。当传输到存储器管芯01的数据被编程到存储器单元阵列中时,存储器控制器200可以将编程命令、地址和数据传输到存储器管芯02。以同样的方式,存储器控制器200可以利用数据来对存储器管芯03至存储器管芯13进行编程。
存储器控制器200可以将顺序逻辑地址分发和分配到多个通路(WAY 00至WAY13),以根据交错方案以并行方式访问耦合到通道的存储器管芯。
在图2中,特定通道的多个存储器管芯可以耦合到四个通路。例如,存储器管芯00(DIE 00)至存储器管芯03(DIE 03)可以分别耦合到通路00(WAY 00)至通路03(WAY 03)。存储器管芯10(DIE 10)至存储器管芯13(DIE 13)可以分别耦合到通路10(WAY 10)至通路13(WAY 13)。通道CH 0和CH 1中的每一个可以是耦合到每个通道的存储器管芯之间共享的信号总线。
参照图2描述了用于双通道/四通路配置的交错。但是,通道和通路的数目并不限于此。
图3是示出根据非交错方案的操作时间的图。
参照图3,存储器控制器200可以控制多个存储器管芯0至3(DIE 0至DIE 3),使得可以根据非交错方案对与逻辑地址0至3(LA 0至LA 3)相对应的数据块执行操作。
根据非交错方案,可以读取存储在一个存储器管芯中的数据块,或者可以将数据块编程到一个存储器管芯中。例如,存储器控制器200可以控制多个存储器管芯,使得与逻辑地址0至3(LA 0至LA 3)相对应的数据块可以根据非交错方案被编程到存储器管芯0(DIE0)中。存储器控制器200可以控制多个存储器管芯,使得与逻辑地址0至3(LA 0至LA 3)相对应的并且存储在存储器管芯0(DIE 0)中的数据块可以根据非交错方案被读取。下文中,将写入操作描述为示例。
为了将与逻辑地址0(LA 0)相对应的数据块编程到存储器管芯0(DIE 0),存储器控制器200可以通过输入/输出接口I/O将编程命令、物理地址和数据块传输到存储器管芯0(DIE 0)。通过输入/输出接口传输编程命令、物理地址和数据块的操作可以包括通过第0通道0(CH 0)和通路0(WAY 0)传输编程命令、物理地址和数据块的操作。传输到存储器管芯0(DIE 0)的数据块可以在编程时间tOPER期间被编程到存储器单元阵列中。
当与逻辑地址0(LA 0)相对应的数据块完全编程到存储器单元阵列中时,存储器控制器200可以通过输入/输出接口I/O将编程命令、物理地址和数据块传输到存储器管芯0(DIE 0),以编程与逻辑地址(LA 1)相对应的数据块1。传输的数据块可以在编程时间tOPER期间被编程到存储器管芯0(DIE 0)中的存储器单元阵列中。以同样的方式,对应于逻辑地址2和3(LA 2和LA 3)的数据块可以顺序地被编程到存储器管芯0(DIE 0)中。
根据一个实施例,存储器控制器200可以一次一个地将对应于逻辑地址0至3(LA 0至LA 3)的数据块传输到存储器单元0(DIE 0)。更具体地,对应于逻辑地址0至3(LA 0至LA3)的数据块可以一次一个地传输到存储器管芯0(DIE 0)中的高速缓存缓冲器。根据高速缓存编程方案,与传输到存储器管芯0(DIE 0)的逻辑地址0至3(LA 0至LA 3)相对应的数据块可以顺序地被编程到存储器单元中。
可以假设存储器管芯中的页缓冲器具有与对应于逻辑地址的数据块相同的大小。例如,存储器管芯中的页缓冲器和数据块各自具有的大小可以是4kB。页缓冲器的大小可以是用于编程操作和读取操作的数据的大小。因此,可以一次将一个数据块编程到存储器管芯中包括的存储器单元阵列中。
与逻辑地址0至3(LA 0至LA 3)相对应的数据块可以在编程操作时间(Ta)期间根据非交错方案被编程到存储器管芯0(DIE 0)。
图4是示出根据交错方案的操作时间的图。
参照图4,存储器控制器200可以控制多个存储器管芯,使得可以根据交错方案对与逻辑地址0至3(LA 0至LA 3)相对应的数据块执行操作。根据交错方案,可以顺序地对耦合到不同通路的存储器管芯执行输入和输出操作,并且可以在至少部分地重叠的时间段中执行这种内部操作。
例如,存储器控制器200可以控制多个存储器管芯,使得与逻辑地址0至3(LA 0至LA 3)相对应的数据块可以根据交错方案被编程到多个存储器管芯0至3(DIE 0至DIE 3)。存储器控制器200可以控制多个存储器管芯,使得与逻辑地址0至3(LA 0至LA 3)相对应的并且存储在存储器管芯0(DIE 0)中的数据块可以通过交错方案被读取。以下,将编程操作描述为示例。
为了将与逻辑地址0(LA 0)相对应的数据块编程到存储器管芯0(DIE 0),存储器控制器200可以通过第0通道0(CH 0)和通路0(WAY 0)将编程命令、物理地址和数据块传输到存储器管芯0(管芯0)。传输的数据块可以在编程时间(tOPER)期间被编程到存储器管芯0(DIE 0)中的存储器单元阵列中。
当对应于逻辑地址0(LA 0)的数据块被编程到存储器单元阵列中时,存储器控制器200可以通过第0通道0(CH 0)和通路1(WAY 1)将编程命令、物理地址和数据块传输到存储器管芯1(DIE 1),以编程与逻辑地址1(LA 1)相对应的数据块。传输的数据块可以在编程时间(tOPER)期间被编程到存储器管芯1(DIE 1)中的存储器单元阵列中。以同样的方式,对应于逻辑地址2和3(LA 2和LA 3)的数据块可以分别被编程到存储器管芯2(DIE 2)和存储器管芯3(DIE 3)。
在交错方案中,将对应于逻辑地址0至3(LA 0至LA 3)的数据块编程到存储器管芯0到3(DIE 0到DIE 3)的总时间是Tb,即,编程操作时间。
根据交错方案,当数据块被编程到存储器单元阵列中时,编程命令、物理地址和数据块可以通过通道0(CH 0)被传输到另一存储器管芯。因此,根据交错方案的编程操作时间Tb可以短于根据非交错方案的编程操作时间Ta。
图5是示出逻辑地址和存储器管芯之间的对应信息以提高读取交错速度的图。
参照图5,对应信息500可以指示逻辑地址和存储器管芯之间的关系。可以确定对应信息500以使得能够对顺序逻辑地址执行读取交错操作。例如,逻辑地址0至3(LA 0至LA3)可以分别对应于存储器管芯0至3(DIE 0至DIE 3),逻辑地址4至7(LA 4至LA 7)可以分别对应于存储器管芯0至3(DIE 0至DIE 3)。逻辑地址8至11(LA 8至LA 11)可以分别对应于存储器管芯0至3(DIE 0至DIE 3),并且逻辑地址12至15(LA 12至LA 15)可以分别对应于存储器管芯0至3(DIE 0至DIE 3)。
如上参照图3所述,当与顺序逻辑地址相对应的数据块被分配和存储在多个存储器管芯中时,存储器控制器200可以根据交错方法读取与顺序逻辑地址相对应的数据块。换言之,当在存储器单元阵列中读取数据块时,读取命令和地址可以被传输到另一个存储器管芯。因此,可以提高读取速度。
图6是示出写入交错方案的图。
参照图6,存储器控制器200可以控制存储器装置100以执行写入操作,通过写入操作,将临时存储在缓冲器存储器210中的数据块编程到存储器装置100中。存储器控制器200可以在执行写入操作之前生成目标管芯信息603。更具体地说,存储器控制器200可以控制缓冲器存储器210和存储器装置100,以生成指示将在其中分别存储数据块的存储器管芯的目标管芯信息603,并且根据目标管芯信息603执行写入操作。
例如,存储器控制器200可以生成目标管芯信息603,使得与逻辑地址11、9和10(LA11、LA 9和LA 10)相对应的数据块可以存储在存储器管芯00(DIE 00)中。例如,存储器控制器200可以生成目标管芯信息603,使得与逻辑地址0和13(LA 0和LA 13)相对应的数据块可以存储在存储器管芯01(DIE 01)中。例如,存储器控制器200可以生成目标管芯信息603,使得与逻辑地址3、1和14(LA 3、LA 1和LA 14)相对应的数据块可以存储在存储器管芯02(DIE02)中。存储器控制器200可以生成目标管芯信息603,使得对应于逻辑地址7和5(LA 7和LA5)的数据块可以存储在存储器管芯03(DIE 03)中。
目标管芯信息603可以包括指示多个条带中的每一个的条带信息。例如,目标管芯信息603可以包括分别指示第一条带至第三条带的第一条带信息至第三条带信息。条带可以是从耦合到单个通道的各个存储器管芯中选择的一组存储器区域(例如,页)。条带可以包括耦合到信号通道的每个存储器管芯内分配的存储器区域。例如,从多个存储器管芯中分别选择的多个存储器块可以构成单个超级块。在超级块中,在各个存储器块中相同位置的页可以构成单个条带。条带信息可以具有逻辑地址的格式,该逻辑地址表示根据交错方案通过单个写入操作存储在单个条带中的数据块的集合。交错操作可以是相应的单个读取或写入操作,并且可以以条带为单位执行。当单个条带信息变得充满条目时(即,当单个条带信息指示要迁移到目标存储器管芯的条带中的完整数据块集合时),存储器控制器200可以控制多个存储器管芯以根据交错方案对相应条带执行写入操作。
例如,存储器控制器200可以控制缓冲器存储器210和多个存储器管芯,以根据交错方案在第一条带上执行写入操作,第一条带包括与逻辑地址11、0、3和7(LA 11、LA 0、LA3和LA 7)相对应的有效数据块。对应于逻辑地址11、0、3和7(LA 11、LA 0、LA 3和LA 7)的数据块可以分别存储在存储器管芯00、01、02和03(DIE 00、DIE 01、DIE 02和DIE 03)中。以同样的方式,存储器控制器200可以控制缓冲器存储器210和多个存储器管芯,以根据交错方案在第二条带上执行写入操作,第二条带包括与逻辑地址9、13、1和5(LA 9、LA 13、LA 1和LA 5)相对应的有效数据块。对应于逻辑地址9、13、1和5(LA 9、LA 13、LA 1和LA 5)的数据块可以分别存储在存储器管芯00、01、02和03(DIE 00、DIE 01、DIE 02和DIE 03)中。
另一方面,当目标管芯信息603中的条带信息包括空条目并且因此仍有空间用于另一个逻辑地址时,存储器控制器200可以针对条带信息等待参考时间以进一步包括逻辑地址,并且针对对应于条带信息的条带执行写入操作。换言之,写入操作可以被延迟参考时间。例如,因为由于没有数据块要迁移到第三条带中而还没有从第三条带中的存储器管芯01和03(DIE 01和DIE 03)分配存储器空间,存储器控制器200可以控制使得存储器装置100内的第三条带可以等待参考时间以进一步包括用于第三条带内的DIE 01和DIE 03的逻辑地址。换句话说,可以进行控制,使得第三条带上的写入操作延迟了参考时间。
当参考时间已经过去时,存储器控制器200可以控制存储器装置100和缓冲器存储器210,使得与未满的条带信息相对应的数据块可以存储在存储器装置100内的与条带信息相对应的条带中。例如,存储器控制器200可以控制缓冲器存储器210和多个存储器管芯,使得与对应于第三条带的条带信息的逻辑地址10和14(LA 10和LA 14)相对应的有效数据块可以分别存储在存储器管芯00和02(DIE 00和DIE 02)中。
在该示例中,存储器控制器200可以生成条带信息(例如,对于第三条带),其空条目利用目标管芯信息603中的虚设数据的逻辑地址被填充,并且可以根据包括虚设数据的填充逻辑地址的条带信息,控制存储器管芯DIE 01和DIE 03以将虚设数据存储在与条带内的填充逻辑地址相对应的存储器区域中。换言之,当在第三条带上执行写入交错时,对应于逻辑地址10和14(LA 10和LA 14)的有效数据块可以分别存储在存储器管芯00和02(DIE 00和DIE 02)中,并且虚设数据可以存储在存储器管芯01和03(DIE 01和DIE 03)中。
图7是示出根据对应信息布置在多个存储器管芯中的逻辑地址的图。
参照图7,存储器控制器200可以控制多个存储器管芯,使得根据对应信息500将与逻辑地址0至15(LA 0至LA 15)相对应的数据块存储在多个存储器管芯DIE 0至DIE 3中的写入操作可以被执行。作为写入操作的结果,对应于逻辑地址0至15(LA 0至LA 15)的数据块可以根据对应信息500被分布和存储在多个管芯中。换句话说,顺序逻辑地址可以根据对应信息设置在多个存储器管芯中。
如上文参考图5所述,对应信息500可以是指存储器管芯与逻辑地址之间的关系,其被确定为使得能够对顺序逻辑地址执行读取交错操作。
基于对应信息500,对应于逻辑地址0、4、8和12(LA 0、LA 4、LA 8和LA 12)的数据块可以存储在DIE 0中,对应于逻辑地址1、5、9和13(LA 1、LA 5、LA 9和LA 13)的数据块可以存储在DIE 1中,对应于逻辑地址2、6、10和14(LA 2、LA 6、LA 10和LA 14)的数据块可以存储在DIE 2中,并且对应于逻辑地址3、7、11和15(LA 3、LA 7、LA 11和LA 15)的数据块可以存储在DIE 3中。
图8是示出改变存储器区域和逻辑地址之间的映射关系的情况的图。
参照图8,如上参照图7所述的存储器区域和逻辑地址之间的映射关系可以根据通过使用与先前编程的数据相对应的逻辑地址再次执行编程的数据更新操作来被改变。更具体地,根据数据更新操作,对应于逻辑地址并且最初存储在第一存储区域中的数据块可以被更新以存储在第二存储区域中。因此,逻辑地址的映射关系可以从原始的第一存储区域改变为当前的第二存储区域。
存储器区域和逻辑地址之间的映射关系可能通过后台操作(诸如耗损均衡、读取回收和垃圾收集)来改变。更具体地说,后台操作(诸如如耗损均衡、读取回收和垃圾收集)可能涉及与数据块的移动相对应的迁移操作。因此,可以改变存储器区域与对应于数据块的逻辑地址之间的映射关系。
更具体地说,因为逻辑地址由于数据更新操作或迁移操作而随机分布在多个存储器管芯上,存储器区域和逻辑地址之间的映射关系可以不同于与图7所示的逻辑地址之间的映射关系。因此,关于顺序逻辑地址的读取速度可以显著降低。
例如,对应于逻辑地址0、1、5、9、13、2、6、3、7和11(LA 0、1、5、9、13、2、6、3、7和11)的数据块可以存储在与参考图7所描述的不同的管芯中。例如,对应于逻辑地址0(LA 0)的数据块可以从存储器管芯0(DIE 0)迁移到存储器管芯2(DIE 2),对应于逻辑地址1、5、9和13(LA 1、5、9和13)的数据块可以从存储器管芯1(DIE 1)迁移到存储器管芯2(DIE 2),对应于逻辑地址2和6(LA 2和6)的数据块可以从存储器管芯2(DIE 2)迁移到存储器管芯0(DIE0),并且对应于逻辑地址3、7和11(LA 3、7和11)的数据块可以从存储器管芯3(DIE 3)迁移到存储器管芯2(DIE 2)。
结果,存储器管芯0(DIE 0)可以包括与逻辑地址0(LA 0)相对应的无效数据块。存储器管芯0(DIE 0)可以包括与逻辑地址4、8、12、2和6(LA 4、8、12、2和6)相对应的有效数据块。以不同于参考图7所描述的布局,与最初存储在DIE 2中的逻辑地址2和6(LA 2和6)相对应的有效数据块当前可以存储在DIE 0中。
存储器管芯1(DIE 1)可以包括与逻辑地址1、5、9和13(LA 1、5、9和13)相对应的无效数据块。
存储器管芯2(DIE 2)可以包括与逻辑地址2和6(LA 2和6)相对应的无效数据块。存储器管芯2(DIE 2)可以包括与逻辑地址0、14、1、5、9、13、3、7、11和0(LA 10、14、1、5、9、13、3、7、11和0)相对应的有效数据块。以不同于参考图7所描述的布局,与逻辑地址1、5、9、13、3、7、11和0(LA 1、5、9、13、3、7、11和0)相对应并且最初存储在DIE 0、DIE 1和DIE 3中的有效数据块可以当前存储在DIE 2中。
存储器管芯3(DIE 3)可以包括与逻辑地址3、7和11(LA 3、7和11)相对应的无效数据块。结果,存储器管芯3(DIE 3)可以包括与逻辑地址15(LA 15)相对应的有效数据块。
图9是示出根据本公开的一个实施例的数据迁移操作的图。
参照图9,存储器控制器200可以选择在跨多个存储器管芯0至3(DIE 0至DIE 3)定义的牺牲区域。牺牲区域可能是存储要迁移的数据块的区域。牺牲区域可以从与位于存储器管芯的相同位置的一组存储器块相对应的超级块之中选择。例如,与存储器管芯0(DIE0)、存储器管芯1(DIE 1)、存储器管芯2(DIE 2)和存储器管芯3(DIE 3)的一组第一存储器块相对应的超级块可以被选择作为牺牲区域。
存储器控制器200可以基于存储在超级块中的有效数据块的数目来选择牺牲区域。例如,可以选择具有最少有效数据块的超级块作为牺牲区域。
存储器控制器200可以执行将牺牲区域中的有效数据块迁移到目标区域的迁移操作。迁移操作可以包括从牺牲区域读取有效数据块并将读取的数据块缓冲在缓冲器存储器210中的读取处理、生成关于要存储读取的有效数据块的存储器管芯的目标管芯信息的目标管芯信息生成处理、以及基于目标管芯信息将临时存储在缓冲器存储器210中的有效数据块存储在多个存储器管芯中的写入处理。
根据本公开的一个实施例的迁移操作可以减少顺序逻辑地址在多个存储器管芯上的随机分布,并且减少在迁移操作期间写入处理所消耗的时间。
图10是示出根据本公开的另一实施例的数据迁移操作的图。
参照图10,存储器控制器200可以在多个存储器管芯0至3(DIE 至DIE 3)中的一个存储器管芯(例如,DIE 2)中选择牺牲区域。牺牲区域可以指存储要迁移的数据块的区域。牺牲区域可以是包括多个页的存储器块。存储器控制器200可以基于存储在存储器块中的有效数据块的数目来选择牺牲区域。例如,存储器控制器200可以选择有效数据块最少的存储器块作为牺牲区域。存储器控制器200可以根据读取次数选择牺牲区域。例如,存储器控制器200可以选择具有最大读取次数的存储器块作为牺牲区域。存储器控制器200可以基于擦除次数来选择牺牲区域。例如,存储器控制器200可以选择具有最大擦除次数的存储器块作为牺牲区域。
如参考图8所述,由于数据更新或数据迁移,牺牲区域可以存储与最初映射到除牺牲区域的DIE 2以外的存储器管芯(例如DIE 0、DIE 1和DIE 3)的逻辑地址相对应的数据块。例如,尽管从存储器管芯2(DIE 2)选择了牺牲区域,但牺牲区域可以存储与最初映射到存储器管芯0(DIE 0)的逻辑地址0(LA 0)相对应的数据块。牺牲区域可以存储与最初映射到存储器管芯1(DIE 1)的逻辑地址1、5、9和13(LA 1、5、9和13)相对应的有效数据块。牺牲区域可以存储与最初映射到存储器管芯2(DIE 2)的逻辑地址10和14(LA 10和14)相对应的有效数据块。牺牲区域可以存储与最初映射到存储器管芯3(DIE 3)的逻辑地址3、7和11(LA3、7和11)相对应的有效数据块。
迁移操作可以包括从牺牲区域读取有效数据块并将读取的数据块缓冲在缓冲器存储器210中的读取处理、生成关于要存储读取的有效数据块的存储器管芯的目标管芯信息的目标管芯信息生成处理、以及基于目标管芯信息将临时存储在缓冲器存储器210中的有效数据块存储在多个存储器管芯中的写入处理。
根据本公开的一个实施例的迁移操作可以减少顺序逻辑地址在多个存储器管芯上的随机分布,并且减少在迁移操作期间写入处理所消耗的时间。
以下,如参考图10所述,描述对存储器管芯(DIE 2)中包括的牺牲区域中存储的有效数据块的迁移操作。
图11是示出根据本公开的一个实施例的有效数据块的读取处理的图。
参照图11,存储器控制器200可以执行将存储在牺牲区域中的有效数据块读取到缓冲器存储器210的读取处理。读取的有效数据块可以对应于逻辑地址2、6、10、14、1、5、9、13、3、7、11和0(LA 2、6、10、14、1、5、9、13、3、7、11和0)。根据从存储器单元阵列读取有效数据块的顺序,可以将有效数据块存储在缓冲器存储器210中。可以随机读取有效数据块。
图12是示出根据本公开的一个实施例的生成候选管芯信息的处理的图。
参照图12,存储器控制器200可以根据对应信息500生成候选管芯信息602。候选管芯信息602可以包括关于根据每个存储器管芯对齐的逻辑地址的信息。在候选管芯信息602中,第一条带信息可以指示对应于逻辑地址0、1、10和3(LA 0、1、10和3)的有效数据块。第二条带信息可以指示对应于逻辑地址5、14和7(LA 5、14和7)的有效数据块。第三条带信息可以指示对应于逻辑地址9和11(LA 9和LA 11)的有效数据块。第四条带信息可以指示与逻辑地址13(LA 13)相对应的有效数据块。当根据候选管芯信息602将有效数据块存储在多个存储器管芯0至3(DIE 0至DIE 3)中时,可以保持读取交错性能。
候选管芯信息602可以指示要迁移到多个目标存储器管芯的有效数据块。候选管芯信息602可以分别指示要迁移到多个目标存储器管芯的多个数据块组。由候选管芯信息602指示的数据块组可以包括要迁移到对应的目标存储器管芯的一个或多个有效数据块。例如,要迁移到存储器管芯1(DIE 1)的数据块组可以包括与逻辑地址1、5、9和13(LA 1、5、9和13)相对应的有效数据块。换句话说,存储器控制器200可以生成候选管芯信息602,该候选管芯信息602包括指示分别要迁移到多个目标存储器管芯的多个数据块组的信息。
当根据候选管芯信息602将数据块存储在多个存储器管芯0至3(DIE 0至DIE 3)中时,在等待参考时间之后,可以根据第二条带信息至第四条带信息执行写入操作。换句话说,根据第二条带信息至第四条带信息的写入操作可以在参考时间期间被延迟。更具体地说,由于第二条带信息至第四条带信息包括空条目(即,由于第二条带信息至第四条带信息中的每一个不指示要迁移到目标存储器管芯(即,DIE 0至DIE 3)的条带中的完整数据块集合,在等待参考时间之后,可以根据第二条带信息至第四条带信息执行写入操作。结果,可能由对于三个条带信息的参考时间降低写入速度。
因此,根据本公开的一个实施例,存储器控制器200可以考虑写入速度来生成目标管芯信息,并且基于目标管芯信息利用有效数据块来编程多个存储器管芯。
图13是示出根据本公开的一个实施例的生成目标管芯信息的处理的图。
参照图13,存储器控制器200可以根据与存储器管芯相对应的逻辑地址计数来生成目标管芯信息603。
根据候选管芯信息602,一个、四个、两个和三个逻辑地址可以分别对应于存储器管芯0(DIE 0)、存储器管芯1(DIE 1)、存储器管芯2(DIE 2)和存储器管芯3(DIE 3)。
存储器控制器200可以基于对应于每个存储器管芯的逻辑地址计数来生成目标管芯信息603。更具体地说,存储器控制器200可以生成目标管芯信息603,以将有效数据块的迁移目的地从根据候选管芯信息602的要迁移最大数目的数据块的第一存储器管芯改变为根据候选管芯信息603的要迁移最小数目的数据块的第二存储器管芯。可替代地,存储器控制器200可以生成目标管芯信息603,以将有效数据块的迁移目的地从根据候选管芯信息602的第三存储器管芯改变为根据目标管芯信息603的第二存储器管芯。数据块对应于逻辑地址,并且因此要迁移到目标存储器管芯中的数据块的数目可以由与要迁移到目标存储器管芯中的数据块相对应的逻辑地址的数目来表示。
存储器控制器200可以生成目标管芯信息603,使得每个存储器管芯可以存储相同数目的有效数据块,或者使得要迁移到每个存储器管芯中的有效数据块的数目差最小。
也就是说,根据本公开的一个实施例,在将牺牲区域中的数据块迁移到存储器装置100中的一个或多个条带(每个条带在N个存储器管芯之上选择)并且共享单个通道期间,存储器控制器200可以通过对数据块的逻辑地址执行模N运算来将数据块关联到N个存储器管芯。当存在两个或多个不完整数据块集合时,存储器控制器200还可以将不完整集合的各个数据块与N个存储器管芯中的一个或多个关联起来,以构成要存储到单个条带中的完整数据块集合。不完整集合不具有要存储到单个条带中的完整数据块集合。
目标管芯信息603可以包括在多个存储器管芯和多个有效数据块之间的重新映射信息以改变数据块的组关联。如上所述,可以将单个数据块组设置为迁移到目标存储器管芯中的一个。也就是说,单个数据块组可以对应于单个存储器管芯。目标管芯信息603可以基于候选管芯信息602中的每个数据块组中包括的有效数据块数目,包括多个存储器管芯和多个有效数据块之间的重新映射信息。
例如,参照图13所示的候选管芯信息602,存储器管芯0、1、2和3(DIE 0、1、2和3)可以被设置为分别存储一个、四个、两个和三个有效数据块。换句话说,要迁移到存储器管芯1(DIE 1)的数据块组包括最大数目的有效数据块,并且要迁移到存储器管芯0(DIE 0)的数据块组包括最小数目的有效数据块。根据本公开的一个实施例,存储器控制器200可以在与存储器管芯1(DIE 1)相对应的数据块组中包括的有效数据块之中,将与逻辑地址13(LA13)相对应的有效数据块重新映射为属于另一个数据块组,例如,包含最少有效数据块的存储器管芯0(DIE 0)。
根据目标管芯信息603,第一条带信息可以指示与逻辑地址0、1、10和3(LA 0、1、10和3)相对应的有效数据块。第二条带信息可以指示与逻辑地址13、5、14和7(LA 13、LA 5、LA14和LA 7)相对应的有效数据块。第三条带信息可以指示与逻辑地址9和11(LA 9和LA 11)相对应的有效数据块。
根据目标管芯信息603,由于第一条带信息和第二条带信息中的每个条带信息指示要迁移到目标存储器管芯的条带中的完整数据块集合,可以根据交错方法执行写入操作。至于第三条带信息,由于没有数据块要迁移到存储器管芯0(DIE 0)或存储器管芯2(DIE2),在等待参考时间之后可以对其执行写入操作。换句话说,针对第三条带信息的写入操作可以被延迟了延迟时间。
在基于候选管芯信息的写入操作期间,关于第二条带信息至第四条带信息中的每一个,可以在等待了参考时间之后执行写入操作。然而,在基于目标管芯信息的写入操作期间,仅关于第三条带信息,可以在等待了参考时间之后执行写入操作,使得可以提高写入速度。
结果,根据本公开的一个实施例,迁移操作可以通过根据对应信息生成候选管芯信息来减少顺序逻辑地址在多个存储器管芯上的随机分布。此外,通过生成关于分别对应于多个存储器管芯的逻辑地址计数的目标管芯信息,可以减少在迁移操作期间写入处理所消耗的时间。
图14是示出根据本公开的实施例的存储器控制器200的图。
参照图14,存储器控制器200可以包括缓冲器存储器210、写入操作控制器220和目标管芯信息管理器230。存储器装置100可以包括多个存储器管芯。
当将有效数据块从牺牲区域迁移到存储器管芯DIE 0至DIE 3的条带时,缓冲器存储器210可以临时存储从存储器装置100的牺牲区域读取的有效数据块,并且缓冲器存储器210中存储的有效数据块可以根据目标管芯信息603被存储在存储器装置100中包括的多个存储器管芯的条带中。
目标管芯信息管理器230可以生成关于缓冲器存储器210中存储的有效数据块要分别被迁移其中的存储器管芯的目标管芯信息603,并且可以将目标管芯信息603传输到写入操作控制器220。
考虑到交错方案,目标管芯信息管理器230可以生成目标管芯信息603。目标管芯信息管理器230可以生成与对应信息相对应的候选管芯信息602。目标管芯信息管理器230可以基于与由候选管芯信息602表示的每个存储器管芯相对应的逻辑地址计数来生成目标管芯信息603。
写入操作控制器220可以控制缓冲器存储器210以将有效数据块传输到存储器装置100。写入操作控制器220可以控制多个存储器管芯,使得传输到存储器装置100的有效数据块可以根据目标管芯信息603被存储在存储器装置100中包括的多个存储器管芯中。
图15是示出目标管芯信息管理器230的图。
参照图15,目标管芯信息管理器230可以包括目标管芯信息生成器231、对应信息存储部232和地址计数器233。
对应信息存储部232可以存储数据块的逻辑地址与要将数据块迁移到其中的多个存储器管芯之间的对应信息500。可以预先确定对应信息,使得可以对顺序逻辑地址执行读取交错操作。对应信息存储部232可以将对应信息500传输到目标管芯信息生成器231。
如参考图12所述,目标管芯信息生成器231可以基于对应信息500生成候选管芯信息602。目标管芯信息生成器231可以将候选管芯信息602传输到地址计数器233。
地址计数器233可以根据候选管芯信息602对与要迁移到多个存储器管芯中的每个存储器管芯中的数据块相对应的逻辑地址进行计数,并且针对每个存储器管芯生成逻辑地址计数信息。地址计数器233可以将逻辑地址计数信息传输到目标管芯信息生成器231。
目标管芯信息生成器231可以接收地址计数信息并且计算存储器管芯之间的逻辑地址计数的差。当多个存储器管芯中的任意两个之间的逻辑地址计数的差是1(一)或更小时,目标管芯信息生成器231可以使用候选管芯信息602作为目标管芯信息603。当多个存储器管芯中的任意两个之间的逻辑地址计数的差超过1(一)时,目标管芯信息生成器231可以生成目标管芯信息603。
目标管芯信息生成器231可以关于每个临时存储数据块被迁移其中的每个存储器管芯生成目标管芯信息603。目标管芯信息生成器231可以通过改变候选管芯信息602来生成目标管芯信息603,使得多个存储器管芯中的任意两个之间的逻辑地址计数的差是1(一)或更小。
更具体地说,目标管芯信息生成器231可以生成目标管芯信息603,使得根据目标管芯信息603,有效数据块的迁移目的地从要将最大数量的数据块迁移到其中的第一存储器管芯被改变为要将最小数量的数据块迁移到其中的第二存储器管芯。
可替代地,目标管芯信息生成器231可以生成目标管芯信息603,使得根据目标管芯信息603,有效数据块的迁移目的地从第三存储器管芯改变为第二存储器管芯。
结果,目标管芯信息生成器231可以通过改变候选管芯信息602来生成目标管芯信息603,使得多个存储器管芯中的任意两个之间的逻辑地址计数的差为1(一)或更小。目标管芯信息生成器231可以将目标管芯信息603传输到写入操作控制器220。
写入操作控制器220可以控制缓冲器存储器210,使得缓冲器存储器210中存储的有效数据块可以被传输到存储器装置100。写入操作控制器220可以将写入命令和物理地址传输到存储器装置100。写入操作控制器220可以控制多个存储器管芯,使得有效数据块根据目标管芯信息603被存储在多个存储器管芯中。
图16是示出根据本公开另一实施例的方法的图。
参照图16,在步骤S1601,存储器控制器200可以选择多个存储器管芯中的至少一个中包括的牺牲区域。牺牲区域可以指存储要迁移的数据块的区域。可以基于存储的有效数据块的数目来选择牺牲区域。例如,多个存储器管芯中具有最少的存储数据块的存储区域可以被选择作为牺牲区域。
在步骤S1603,存储器控制器200可以执行将存储在牺牲区域中的有效数据块读入缓冲器存储器210的读取处理。存储器控制器200可以根据交错方案或非交错方案读取有效数据块,并且可以将读取的有效数据块临时存储在缓冲器存储器210中。
在步骤S1605,存储器控制器200可以生成关于有效数据块被分别存储的存储器管芯的目标管芯信息603。存储器控制器200可以基于对应信息500生成候选管芯信息602,并且基于与要迁移到多个存储器管芯中的每一个的数据块相对应的逻辑地址计数生成目标管芯信息603。
在步骤S1607,存储器控制器200可以执行控制多个存储器管芯和缓冲器存储器210使得有效数据块可以根据目标管芯信息603被存储在多个存储器管芯中的写入处理。存储器控制器200可以控制多个存储器管芯和缓冲器存储器210,使得可以以条带为单位执行写入交错操作。
图17是示出生成目标管芯信息603的处理的流程图。
参照图17,在步骤S1701,存储器控制器200可以基于对应信息500生成候选管芯信息602。对应信息500可以包括关于逻辑地址和多个存储器管芯之间的关系的信息。对应信息500可以被预先确定以提高读取交错性能。
在步骤S1703,存储器控制器200可以根据候选管芯信息602来计数与要迁移到多个存储器管芯中的每一个的数据块相对应的逻辑地址。
在步骤S1705,存储器控制器200可以确定多个存储器管芯中的任意两个之间的逻辑地址计数的差是1(一)或更小。当多个存储器管芯中的任意两个之间的逻辑地址计数的差为一或更小时,存储器控制器200可以执行步骤S1709。当多个存储器管芯中的任意两个之间的逻辑地址计数的差超过一时,存储器控制器200可以执行步骤S1707。
在步骤S1709,存储器控制器200可以使用候选管芯信息602作为目标管芯信息603。根据候选管芯信息602基于多个存储器管芯和由逻辑地址表示的数据块之间的关系,当多个存储器管芯中的任意两个之间的逻辑地址计数的差是一或更大时,包括空条目的条带信息可以存在于候选管芯信息602中。
更具体地,当多个存储器管芯中的任意两个之间的逻辑地址计数的差为0(零)时,在候选管芯信息602中不存在包括空条目的条带信息。因此,可以根据交错方案对所有条带信息执行写入操作。
更具体地,当多个存储器管芯中的任意两个之间的逻辑地址计数的差为一时,包括空条目的条带信息可以被包括在候选管芯信息602中。因此,根据交错方案,可以基于除了包括空条目的条带信息之外的剩余条带信息来执行写入操作。
在步骤S1707,存储器控制器200可以基于与要迁移到多个存储器管芯中的每一个的数据块相对应的逻辑地址计数来生成目标管芯信息603。基于在候选管芯信息602中的多个存储器管芯与由逻辑地址表示的数据块之间的关系,当多个存储器管芯中的任意两个之间的逻辑地址计数的差超过一时,在候选管芯信息602中可以存在至少两个包括空条目的条带信息。因此,可以生成目标管芯信息603以减少包括空条目的条带信息。目标管芯信息603可以表示有效数据块被分别迁移其中的存储器管芯。可以确定目标管芯信息603,使得多个存储器管芯中的任意两个之间的逻辑地址计数的差为一个或更小。
图18是示出基于逻辑地址计数生成目标管芯信息603的处理的流程图。
参照图18,在步骤S1801,存储器控制器200可以在候选管芯信息602内的多个存储器管芯之中选择与最大逻辑地址计数相对应的第一目标管芯。
在步骤S1803,存储器控制器200可以在候选管芯信息602内的多个存储器管芯之中选择具有最小逻辑地址计数的第二目标管芯。
在步骤S1805,存储器控制器200可以改变候选管芯信息602,使得与第一目标管芯相对应的逻辑地址之一可以对应于第二目标管芯。
在步骤S1807,存储器控制器200可以确定多个存储器管芯中的任意两个之间的逻辑地址计数的差是否为一或更小。当多个存储器管芯中的任意两个之间的逻辑地址计数的差为一或更小时,存储器控制器200可以执行步骤S1809。当多个存储器管芯中的任意两个之间的逻辑地址计数的差超过一时,存储器控制器200可以执行步骤S1801。
在步骤S1801至S1807,存储器控制器200可以通过使用改变的候选管芯信息602来执行每个步骤。
在步骤S1809,存储器控制器200可以生成目标管芯信息603。更具体地,存储器控制器200可以使用指示多个存储器管芯中的任意两个之间的逻辑地址计数的差为一或更小的候选管芯信息602作为目标管芯信息603。
图19是示出根据本公开的实施例的存储器管芯的图。
参照图19,存储器管芯可以包括存储器单元阵列1910、外围电路1920和控制逻辑1930。
存储器单元阵列1910可以包括多个存储器块BLK1至BLKz。多个存储器块BLK1至BLKz可以通过行线RL耦合到行解码器1921。存储器块BLK1至BLKz可以通过位线BL1至BLm耦合到页缓冲器组1923。多个存储器块BLK1至BLKz中的每一个可以包括多个存储器单元。在一个实施例中,多个存储器单元可以是非易失性存储器单元。耦合到同一字线的存储器单元可以被定义为一个页。因此,每个存储器块可以包括多个页。
行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。
存储器单元阵列1910中包括的每个存储器单元可以包括存储单个数据位的单级单元(SLC)、存储两个数据位的多级单元(MLC)、存储三个数据位的三级单元(TLC)或存储四个数据位的四级单元(QLC)。
外围电路1920可以被配置为响应于控制逻辑1930的控制而对存储器单元阵列1910的选定区域执行编程、读取和擦除操作。外围电路1920可以驱动存储器单元阵列1910。例如,外围电路1920可以响应于控制逻辑1930的控制而对行线RL和位线BL1至BLn施加各种操作电压或者放电所施加的电压。
外围电路1920可以包括行解码器1921、电压发生器1922、页缓冲器组1923、列解码器1924和输入/输出电路1925。
行解码器1921可以通过行线RL耦合到存储器单元阵列1910。行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。根据实施例,字线可以包括正常字线和虚设字线。根据实施例,行线RL还可以包括管道选择线。
行解码器1921可以被配置为响应于控制逻辑1930的控制而操作。行解码器1921可以从控制逻辑1930接收行地址RADD。
行解码器1921可以被配置为解码行地址RADD。行解码器1921可以根据解码的块地址在存储器块BLK1到BLKz中选择至少一个存储器块。行解码器1921可以选择所选择的存储器块的至少一个字线,以便根据解码地址将由电压发生器1922生成的电压施加到至少一个字线。
例如,在编程操作期间,行解码器1921可以将编程电压施加到所选择的字线,并且将具有低于编程电压的水平的通过电压施加到未选择的字线。在编程验证操作期间,行解码器1921可以向所选择的字线施加验证电压,并且向未选择的字线施加大于验证电压的验证通过电压。在读取操作期间,行解码器1921可以向所选择的字线施加读取电压,并且向未选择的字线施加大于读取电压的读取通过电压。
根据一个实施例,存储器单元的擦除操作可以以存储器块为单位执行。在擦除操作期间,行解码器1921可以根据解码地址选择存储器块之一。在擦除操作期间,行解码器1921可以对耦合到所选择的存储器块的字线施加接地电压。
电压发生器1922可以由控制逻辑1930控制。电压发生器1922可以被配置为通过使用提供给存储器装置的外部电源电压来生成多个电压。更具体地说,电压发生器1922可以响应于操作信号OPSIG而生成用于编程、读取和擦除操作的各种操作电压Vop。例如,电压发生器1922可以响应于控制逻辑1930的控制而生成编程电压、验证电压、通过电压、读取电压和擦除电压。
根据实施例,电压发生器1922可以通过调节外部电源电压来生成内部电源电压。由电压发生器1922生成的内部电源电压可以用作存储器管芯的操作电压。
根据一个实施例,电压发生器1922可以通过使用外部电源电压或内部电源电压来生成多个电压。
例如,电压发生器1922可以包括用于接收内部电源电压的多个泵浦电容器,并且响应于控制逻辑1930的控制,通过选择性地激活多个泵浦电容器来生成多个电压。
所生成的多个电压可以通过行解码器1921提供给存储器单元阵列1910。
页缓冲器组1923可以包括第一页缓冲器PB1至第n页缓冲器PBn。第一页缓冲器PB1至第n页缓冲器PBn可以分别通过第一位线BL1至第n位线BLn耦合到存储器单元阵列1910。第一页缓冲器PB1至第n页缓冲器PBn可以响应于控制逻辑1930的控制而操作。更具体地,第一页缓冲器PB1至第n页缓冲器PBn可以响应于页缓冲器控制信号PBSIGNALS而操作。例如,第一页缓冲器PB1至第n页缓冲器PBn可以临时存储通过位线BL1至BLn接收的数据,或者可以在读取或验证操作期间感测位线BL1至BLn中的电压或电流。
更具体地说,在编程操作期间,当编程脉冲被施加到在编程操作期间选择的字线时,第一页缓冲器PB1至第n页缓冲器PBn可以将通过输入/输出电路1925接收到的数据DATA通过第一位线BL1至第n位线BLn传输到所选择的存储器单元。所选择的页的存储器单元可以根据传输的数据DATA进行编程。耦合到施加有编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。可以维持与施加有编程禁止电压(例如,电源电压)的位线耦合的存储器单元的阈值电压。在编程验证操作期间,第一页缓冲器PB1至第n页缓冲器PBm可以分别通过第一位线BL1至第n位线BLn从所选择的存储器单元读取页数据。
在读取操作期间,第一页缓冲器PB1至第n页缓冲器PBn可以响应于列解码器1924的控制,通过第一位线BL1至第n位线BLn从所选择的页的存储器单元读取数据DATA,并且将读取的数据DATA输出到输入/输出电路1925。
在擦除操作期间,第一页缓冲器PB1至第n页缓冲器PBn可以浮置第一位线BL1至第n位线BLn。
列解码器1924可以响应于列地址CADD而在输入/输出电路1925和页缓冲器组1923之间传输数据。例如,列解码器1924可以通过数据线DL与第一页缓冲器PB1至第n页缓冲器PBn交换数据,或者通过列线CL与输入/输出电路1925交换数据。
输入/输出电路1925可以将命令CMD和地址ADD从上面参照图1描述的存储器控制器200传输到控制逻辑1930,或者可以与列解码器1924交换数据DATA。
感测电路1926可以响应于允许位信号VRYBIT而生成参考电流,并且将从页缓冲器组1923接收的感测电压VPB与由参考电流产生的参考电压进行比较,以在读取操作或验证操作期间输出通过信号PASS或失败信号FAIL。
控制逻辑1930可以通过响应于命令CMD和地址ADD而输出操作信号OPSIG、行地址RADD、页缓冲器控制信号PBSIGNALS和允许位信号VRYBIT来控制外围电路1920。此外,控制逻辑1930可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
图20是示出图19的存储器块BLKi的图。
参照图20,存储器块BLKi可以耦合到在第一选择线和第二选择线之间并行排列的多个字线。第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。具体地,存储器块BLKi可以包括耦合在位线BL1至BLm和源极线SL之间的多个串ST。位线BL1到BLm可以分别耦合到串ST,并且源极线SL可以共同耦合到串ST。因为串ST可以具有相同的配置,通过示例详细描述了耦合到第一位线BL1的串ST。
串ST可以包括在源极线SL和第一位线BL1之间串联耦合的源极选择晶体管SST、多个存储器单元MC1至MC16和漏极选择晶体管DST。每个串ST可以包括至少一个源极选择晶体管SST、至少一个漏极选择晶体管DST以及多于图12中所示的16个存储器单元MC1至MC16。
源极选择晶体管SST的源极可以耦合到源极线SL,并且漏极选择晶体管DST的漏极可以耦合到第一位线BL1。存储器单元MC1至MC16可以串联耦合在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以耦合到源极选择线SSL,漏极选择晶体管DST的栅极可以耦合到漏极选择线DSL,并且存储器单元MC1至MC16的栅极可以耦合到多个字线WL1至WL16。不同串ST中包括的存储器单元中,耦合到同一字线的一组存储器单元可以被称为物理页PG。因此,存储器块BLKi可以包括与字线WL1至WL16相同数目的物理页PG。
单个存储器单元可以存储一位数据。这种存储器单元通常称为单级单元(SLC)。一个物理页PPG可以存储一个逻辑页(LPG)数据。一个LPG数据可以包括与一个物理页PG中包含的单元的数目一样多的数据位。
此外,单个存储器单元可以存储两个或更多位的数据。一个物理页PG可以存储对应于两个或多个逻辑页LPG的数据。
图21是示出根据本公开的实施例的应用了存储装置的存储器卡系统2000的示例的框图。
参照图21,存储器卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100可以耦合到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取、写入、擦除和后台操作。存储器控制器2100可以被配置为在存储器装置2200和主机之间提供接口。存储器控制器2100可以被配置为驱动用于控制存储器装置2200的固件。
在一个实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC块的部件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如主机)通信。例如,存储器控制器2100可以通过以下各种通信协议中的至少一种与外部装置通信,诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动器电子装置(IDE)、火线(Firewire)、通用闪存(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或MMCmicro),SD卡(SD、迷你SD、微型SD或SDHC)和/或通用闪存(UFS)的存储器卡。
图22是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统3000的示例的框图。
参照图22,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和SSD 3200的接口。例如,信号SIG可以由以下各种接口中的至少一个来定义,诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小磁盘接口(ESDI)、集成驱动器电子装置(IDE)、火线(Firewire)、通用闪存(UFS)、WiFi、蓝牙和/或非易失性存储器快速(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、DDR SDRAM,LPDDR SDRAM和GRAM)或非易失性存储器(诸如FRAM、ReRAM、STT-MRAM和PRAM)。
图23是示出根据一个实施例的应用了存储装置的用户系统4000的框图。
参照图23,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的部件、操作系统(OS)或用户程序。例如,应用处理器4100可以包括用于控制用户系统4000中包括的部件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲器存储器或高速缓存存储器。存储器模块4200可以包括易失性RAM(诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM和LPDDR3 SDRAM)或者非易失性RAM(诸如PRAM、ReRAM、MRAM和FRAM)。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装,然后可以被提供为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,例如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或WiFi通信。例如,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可替代地,存储模块4400可以将存储在存储模块4400中的数据发送到应用处理器4100。例如,存储模块4400可以被实现为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维(3D)结构的NAND闪存。例如,存储模块4400可以被提供为可移除存储介质(即,可移除驱动器),诸如用户系统4000的存储器卡或外部驱动器。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与上面参照图10至图13所述的存储器装置以相同的方式操作。存储模块4400可以与上面参照图1描述的存储装置50以相同的方式操作。
用户接口4500可以包括向应用处理器4100输入数据或指令或向外部装置输出数据的接口。根据一个实施例,用户接口4500可以包括用户输入接口,例如键盘、键盘板、按钮、触摸面板、触摸屏、触摸板、触摸球、照相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500还可以包括用户输出接口,例如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和马达。
如上所述,根据本公开的一个实施例,可以提高迁移操作期间的写入速度。此外,在迁移操作完成之后,可以提高读取速度。
根据本公开的实施例,存储器控制器及其操作方法可以提供改进的读取交错性能和写入交错性能。
虽然本发明的各种实施例已在一些细节中描述,但本发明不限于任何特定实施例或所提供的细节。本领域技术人员将根据上述公开将了解存在实现本发明的其他方法。因此,所公开的实施例是说明性的,而不是限制性的。本发明包含落入权利要求范围内的所有修改和变化。

Claims (16)

1.一种存储器控制器,用于将数据块从多个存储器管芯之中的至少一个存储器管芯中的牺牲区域迁移到与所述牺牲区域不同的目标区域,所述存储器控制器包括:
缓冲器存储器,临时存储从所述牺牲区域读取的所述数据块;
目标管芯信息管理器,根据所述数据块的逻辑地址计数,生成关于所述数据块要分别被迁移到的所述多个存储器管芯的目标管芯信息,所述逻辑地址计数是基于所述多个存储器管芯和对应于所述数据块的逻辑地址之间的对应信息来确定的;以及
写入操作控制器,控制所述多个存储器管芯,使得所述缓冲器存储器中临时存储的所述数据块根据所述目标管芯信息被存储在所述多个存储器管芯中。
2.根据权利要求1所述的存储器控制器,其中所述目标管芯信息管理器包括:
对应信息存储部,存储所述对应信息;
地址计数器,生成与要被迁移的所述数据块相对应的所述逻辑地址计数;以及
目标管芯信息生成器,基于所述逻辑地址计数来生成所述目标管芯信息。
3.根据权利要求2所述的存储器控制器,其中所述目标管芯信息生成器基于所述对应信息来生成关于分别与所述数据块相对应的存储器管芯的候选管芯信息,并且基于所述逻辑地址计数和所述候选管芯信息来生成所述目标管芯信息。
4.根据权利要求3所述的存储器控制器,其中当所述多个存储器管芯中的任意两个之间的逻辑地址计数的差为一或更小时,所述目标管芯信息管理器使用所述候选管芯信息作为所述目标管芯信息。
5.根据权利要求2所述的存储器控制器,其中所述目标管芯信息管理器生成所述目标管芯信息,以将与最大逻辑地址计数相对应的一个或多个数据块的迁移目的地从第一存储器管芯更改为第二存储器管芯。
6.根据权利要求2所述的存储器控制器,其中所述目标管芯信息管理器生成所述目标管芯信息,以将一个或多个有效数据块的迁移目的地从第三存储器管芯更改为对应于最小逻辑地址计数的第二存储器管芯。
7.根据权利要求2所述的存储器控制器,其中所述目标管芯信息管理器生成所述目标管芯信息,以在所述多个存储器管芯中的任意两个之间的逻辑地址计数的差超过一时将所述差减小至一或更小。
8.根据权利要求1所述的存储器控制器,其中所述对应信息表示与所述多个存储器管芯之中的不同存储器管芯相对应的顺序逻辑地址。
9.根据权利要求1所述的存储器控制器,其中所述牺牲区域基于所述牺牲区域中存储的有效数据块数目、关于所述牺牲区域的读取次数或关于所述牺牲区域的擦除次数来被选择。
10.根据权利要求1所述的存储器控制器,其中所述写入操作控制器控制所述多个存储器管芯,使得所述数据块基于所述目标管芯信息根据交错方案被存储在所述多个存储器管芯中。
11.一种存储装置,包括:
多个存储器管芯;
缓冲器存储器,临时存储所述多个存储器管芯之中的至少一个存储器管芯中的牺牲区域中存储的多个数据块;以及
存储器控制器,控制所述多个存储器管芯,使得所述多个数据块被映射到所述多个存储器管芯,以形成分别对应于所述多个存储器管芯的多个数据块组,至少一个数据块组中包括的数据块基于所述多个数据块组中的每个数据块组中包括的数据块的数目来被重新映射以被包括在另一数据块组中,并且从所述多个数据块组中的每个数据块组中选择一个数据块的数据块集合被存储在所述多个存储器管芯中。
12.根据权利要求11所述的存储装置,其中所述存储器控制器将具有最多数据块的第一数据块组中包括的数据块重新映射到另一数据块组。
13.根据权利要求11所述的存储装置,其中所述存储器控制器将包括最少数据块的第二数据块组中包括的数据块重新映射到除了所述第二数据块组以外的另一数据块组。
14.根据权利要求11所述的存储装置,其中所述存储器控制器基于数据块的数目来将所述多个数据块组中的至少一个数据块组中的数据块重新映射到所述另一数据块组,使得所述多个数据块组中的任何两个之间的数据块的数目的差是一或更小。
15.一种控制器的操作方法,用于通过单个通道控制包括N个存储器管芯的存储器装置,在所述N个存储器管芯上形成了多个条带,所述操作方法包括:
通过对所述存储器装置内的牺牲区域中存储的数据块的逻辑地址进行模N运算,将所述数据块与所述N个存储器管芯关联;
当存在两个或多个不完整数据块集合时,将所述不完整数据块集合中的各个数据块与所述N个存储器管芯中的一个或多个关联,以构成要被存储到单个条带中的完整数据块集合,每个不完整数据块集合未能构成要被存储到所述条带中的单个条带中的完整数据块集合;以及
控制所述存储器装置以根据交错方案基于关联操作来将所述数据块从所述牺牲区域迁移到所述条带中。
16.一种控制器的操作方法,用于通过单个通道来控制包括多个存储器管芯的存储器装置,所述操作方法包括:
形成一个或多个条带,每个条带包括分别从所述存储器管芯中选择的多个页,所述多个页布置在相应存储器管芯内的相同位置;以及
通过以所述条带中的每个条带的存储容量为单位从牺牲区域收集数据块,控制所述存储器装置以根据交错方案将所述数据块从所述牺牲区域迁移到所述条带。
CN201911407775.XA 2019-08-09 2019-12-31 存储器控制器及其操作方法 Withdrawn CN112346652A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0097809 2019-08-09
KR1020190097809A KR20210017912A (ko) 2019-08-09 2019-08-09 메모리 컨트롤러 및 그 동작 방법

Publications (1)

Publication Number Publication Date
CN112346652A true CN112346652A (zh) 2021-02-09

Family

ID=74367916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911407775.XA Withdrawn CN112346652A (zh) 2019-08-09 2019-12-31 存储器控制器及其操作方法

Country Status (3)

Country Link
US (1) US11036632B2 (zh)
KR (1) KR20210017912A (zh)
CN (1) CN112346652A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641304A (zh) * 2021-07-05 2021-11-12 深圳市宏旺微电子有限公司 用于管理数据块的方法、装置、终端设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895513A (zh) * 2018-09-12 2020-03-20 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
KR20200059936A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11237734B2 (en) * 2019-08-19 2022-02-01 Micron Technology, Inc. High throughput DRAM with distributed column access
CN113360423A (zh) * 2020-03-03 2021-09-07 瑞昱半导体股份有限公司 数据储存系统及操作数据储存系统的方法
KR102385572B1 (ko) * 2021-11-02 2022-04-13 삼성전자주식회사 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942272B1 (ko) 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9092362B1 (en) * 2014-03-13 2015-07-28 NXGN Data, Inc. Programmable data write management system and method for operating the same in a solid state drive
US9454551B2 (en) * 2014-03-13 2016-09-27 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive
US8976609B1 (en) * 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
US9653184B2 (en) * 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9996285B2 (en) * 2016-11-08 2018-06-12 SK Hynix Inc. Cyclically interleaved XOR array for error recovery

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641304A (zh) * 2021-07-05 2021-11-12 深圳市宏旺微电子有限公司 用于管理数据块的方法、装置、终端设备及存储介质
CN113641304B (zh) * 2021-07-05 2023-10-20 深圳市宏旺微电子有限公司 用于管理数据块的方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
KR20210017912A (ko) 2021-02-17
US20210042225A1 (en) 2021-02-11
US11036632B2 (en) 2021-06-15

Similar Documents

Publication Publication Date Title
US11036632B2 (en) Memory controller and operating method thereof
CN111435289B (zh) 映射数据访问性能提高的存储器控制器及其操作方法
KR20220036468A (ko) 저장 장치 및 그 동작 방법
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
US11481272B2 (en) Memory controller and method of operating the same
CN111177020B (zh) 存储装置及其操作方法
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
CN112783433A (zh) 存储装置及其操作方法
CN110175133B (zh) 存储装置及其操作方法
KR20190123544A (ko) 저장 장치 및 그 동작 방법
CN112825062A (zh) 存储器控制器及其操作方法
KR20210090439A (ko) 메모리 컨트롤러 및 그 동작 방법
CN114077387A (zh) 存储装置及其操作方法
CN111445939B (zh) 存储装置及其操作方法
CN113535079B (zh) 存储器控制器以及具有存储器控制器的存储装置
CN114356209A (zh) 存储装置及其操作方法
CN112687314A (zh) 存储器设备和操作存储器设备的方法
CN112309446A (zh) 存储设备和操作存储设备的方法
US11836370B2 (en) Storage device and operating method thereof
US11513726B2 (en) Storage device and method of operating the same
KR102626058B1 (ko) 메모리 컨트롤러 및 그 동작 방법
CN113971975A (zh) 存储器装置及其操作方法
KR20220052161A (ko) 메모리 장치 및 그 동작 방법
KR20220048864A (ko) 저장 장치 및 그 동작 방법
US11210223B2 (en) Storage device and operating method thereof

Legal Events

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

Application publication date: 20210209