CN110703983B - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN110703983B CN110703983B CN201910593707.0A CN201910593707A CN110703983B CN 110703983 B CN110703983 B CN 110703983B CN 201910593707 A CN201910593707 A CN 201910593707A CN 110703983 B CN110703983 B CN 110703983B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- mapping
- controller
- offset value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
控制器及其操作方法。一种控制器可以包括:存储器,其被配置用于存储映射数据和非映射数据;计数器,其被配置用于对存储在所述存储器中的所述非映射数据的数目进行计数;设置器,其被配置用于在所述非映射数据的数目等于或大于预定阈值时对所述非映射数据中的每一个设置偏移值;以及压缩器,其被配置用于基于所述偏移值将所述非映射数据压缩为具有预定压缩长度。
Description
技术领域
本发明的各种实施方式总体涉及控制器,更具体地,涉及一种能够高效地处理数据的控制器及其操作方法。
背景技术
计算机环境范例已经转向普适计算,这使得计算系统能够随时随地使用。结果,对诸如移动电话、数码相机和膝上型计算机之类的便携式电子装置的需求迅速增加。这些电子装置通常包括使用存储器装置作为数据储存装置的存储器系统。数据储存装置可以用作便携式电子装置的主存储器单元或辅存储器单元。
由于不存在机械驱动部件,因此使用存储器装置的数据储存装置提供诸如优异的稳定性和耐用性、高的信息存取速度和低功耗之类的优点。另外,数据储存装置可以具有比硬盘装置更高的数据存取速率和更低的功耗。具有这些优点的数据储存装置的非限制性示例包括通用串行总线(USB)存储器装置、各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本发明的各种实施方式涉及一种能够通过压缩非映射数据来高效地使用缓存存储器的存储器系统。
根据本发明的一实施方式,一种控制器可以包括:存储器,所述存储器被配置用于存储映射数据和非映射数据;计数器,所述计数器被配置用于对存储在所述存储器中的所述非映射数据的数目进行计数;设置器,所述设置器被配置用于在所述非映射数据的数目等于或大于预定阈值时对所述非映射数据中的每一个设置偏移值;以及压缩器,所述压缩器被配置用于基于所述偏移值将所述非映射数据压缩为具有预定压缩长度。
根据本发明的一实施方式,一种控制器的操作方法可包括以下步骤:存储映射数据和非映射数据;对所述非映射数据的数目进行计数;对所述非映射数据中的每一个设置偏移值;以及基于所述偏移值将所述非映射数据压缩为具有预定压缩长度。
根据本发明的一实施方式,一种控制器的操作方法可包括以下步骤:检测映射表中的非映射数据;向所述非映射数据中的每一个附加偏移值;以及基于所附加的偏移值来压缩所述非映射数据。
附图说明
本文中参照附图进行描述,在附图中相同的附图标记在若干视图中指代相同的部件,并且在附图中:
图1是例示根据本公开的一实施方式的包括存储器系统的数据处理系统的框图;
图2是例示图1中所示的存储器系统的存储器装置的配置的示意图;
图3是例示图2所示的存储器装置中的存储块的存储器单元阵列的配置的电路图;
图4是例示图2中所示的存储器装置的三维(3D)结构的示意图;
图5是例示根据本公开的一实施方式的存储器系统的图;
图6A至图6C是用于描述根据本公开的一实施方式的设置与非映射数据相对应的偏移值的操作的图;
图7是用于描述根据本公开的一实施方式的控制器的操作的流程图;
图8至图16是示意性地例示根据本公开的各种实施方式的数据处理系统的应用示例的图。
具体实施方式
以下参照附图更详细地描述本公开的各种示例。本公开可以以其它不同的实施方式、形式和变型来实施,并且不应该被解释为限于本文所阐述的实施方式。相反,提供所描述的实施方式是为了使本公开将是彻底的和完整的,并且将本公开充分传达给本发明所属领域的技术人员。在整个公开中,相同的附图标记在本公开的各个附图和示例中指代相同的部件。注意到,对“一实施方式”、“另一实施方式”等的引用不一定仅意味着一个实施方式,并且对任何这样的短语的不同引用不一定是指相同的实施方式。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可以被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,可能夸大了比例以便清楚地例示实施方式的特征。当元件被称为连接或联接到另一元件时,应该理解的是,前者可以直接连接或联接到后者,或者经由它们之间的中间元件电连接或联接到后者。
还将理解的是,当元件被称为“连接到”或“联接到”另一元件时,该元件可以直接位于另一元件上,连接到或联接到另一元件,或者可存在一个或更多个中间元件。此外,还应理解,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或更多个中间元件。
本文所使用的术语仅用于描述特定实施方式的目的,并不意图限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或更多个”,除非另有说明或从上下文清楚地指向单数形式。
还应理解,当在本说明书中使用术语“包括”、“包含”及其衍生词时,其指定所述元件的存在并且不排除存在或添加一个或更多个其它元件。如本文所使用的,术语“和/或”包括相关所列项目中的一个或更多个的任意组合和所有组合。
除非另外定义,否则本文所使用的包括技术术语和科学术语在内的所有术语具有与本发明所属领域的普通技术人员鉴于本公开而通常理解的含义相同的含义。还应理解,除非本文中明确说明,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与它们在本公开的上下文和相关领域中的含义一致的含义,而不是理想地或者过于形式化地进行解释。
在以下描述中,阐述了许多具体细节以便提供对本发明的透彻理解。可以在没有这些具体细节中的一些或全部的情况下实践本发明。在其它情况下,没有详细描述公知的工艺结构和/或处理,以免不必要地模糊本发明。
还应注意,在一些情况下,如对于相关领域的技术人员而言显而易见的,除非另有明确说明,否则结合一个实施方式描述的特征或元件可单独使用或与另一实施方式的其它特征或元件组合使用。
图1是例示根据本发明的一实施方式的数据处理系统100的框图。
参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
主机102可以包括例如诸如移动电话、MP3播放器和膝上型计算机之类的便携式电子装置或者诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,并且具体地,可以存储要由主机102存取的数据。存储器系统110可以用作主机102的主存储器系统或辅存储器系统。存储器系统110可以根据主机接口的协议,利用可电联接到主机102的各种类型的储存装置中的任何一种来实现。合适的储存装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸缩小的MMC(RS-MMC)和micro-MMC、安全数字(SD)卡、mini-SD和micro-SD、通用串行总线(USB)储存装置、通用闪存储存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
用于存储器系统110的储存装置可以用诸如例如动态随机存取存储器(DRAM)和静态RAM(SRAM)之类的易失性存储器装置和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电式RAM(FRAM)、相变式RAM(PRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪存存储器之类的非易失性存储器装置来实现。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储要由主机102存取的数据,并且控制器130可以控制数据在存储器装置150中的储存。
控制器130和存储器装置150可以集成到单个半导体装置中,该单个半导体装置可以被包括在如上所例示的各种类型的存储器系统中。
存储器系统110可以被配置为例如以下装置的一部分:计算机、超移动PC(UMPC)、工作站、网络本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能手机、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字录音机、数字音频播放器、数字图像记录仪、数字图像播放器、数字视频记录仪、数字视频播放器、配置数据中心的储存器、能够在无线环境下发送和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置车载信息网络的各种电子装置中的一种、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可以保留存储在其中的数据。存储器装置150可以通过写入操作存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储块152至156,存储块152至156中的每一个可以包括多个页。多个页中的每一个可以包括与多条字线(WL)电联接的多个存储器单元。
控制器130可以控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作之类的整体操作。例如,控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以向主机102提供从存储器装置150读取的数据和/或可以将由主机102提供的数据存储到存储器装置150中。
控制器130可包括主机接口(I/F)132、处理器134、纠错码(ECC)组件138、电力管理单元(PMU)140、存储器接口(I/F)142和存储器144,它们都经由内部总线可操作地联接。
主机接口132可以处理从主机102提供的命令和数据,并且可以通过诸如以下各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、快速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)和集成驱动电子设备(IDE)。
ECC组件138可以在读取操作期间检测并纠正从存储器装置150读取的数据中的错误。当错误比特的数目大于或等于可纠正错误比特的阈值数目时,ECC组件138可以不纠正错误比特,而是可以输出指示纠正错误比特失败的纠错失败信号。
ECC组件138可以基于诸如低密度奇偶校验(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、turbo码、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等的编码调制执行纠错操作。ECC组件138可以包括用于基于上述代码中的至少一种执行纠错操作的电路、模块、系统或装置中的全部或一些。
PMU 140可以提供和管理控制器130的电力。
存储器接口142可以用作这样的接口,该接口用于处置在控制器130和存储器装置150之间传送的命令和数据,以允许控制器130响应于从主机102递送的请求而控制存储器装置150。在当存储器装置150是闪存存储器时(具体地,当存储器装置150是NAND闪存存储器时)的情况下,存储器接口142可以生成用于存储器装置150的控制信号,并且可以在处理器134的控制下处理输入到存储器装置150中或从存储器装置150输出的数据。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且可以存储用于操作或驱动存储器系统110和控制器130的临时数据或事务数据。控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以将从存储器装置150读取的数据递送到主机102中,可以将通过主机102输入的数据存储在存储器装置150内。存储器144可用于存储控制器130和存储器装置150为了执行这些操作而所需的数据。
存储器144可以利用易失性存储器实现。存储器144可以利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)实现。尽管图1例示了存储器144设置在控制器130内,但是本公开不限于此。也就是说,存储器144可以位于控制器130的内部或外部。例如,存储器144可以由具有传送在存储器144和控制器130之间所传送的数据和/或信号的存储器接口的外部易失性存储器实现。
处理器134可以控制存储器系统110的整体操作。处理器134可以驱动或执行固件以控制存储器系统110的整体操作。固件可以被称为闪存转换层(FTL)。
FTL可以执行诸如主机102和存储器装置150之间的接口连接之类的操作。主机102可以通过FTL将针对写入操作和读取操作的请求发送到存储器装置150。
FTL可以管理地址映射、垃圾收集、耗损均衡等操作。具体地,FTL可以存储映射数据。因此,控制器130可以通过映射数据将从主机102提供的逻辑地址映射到存储器装置150的物理地址。由于地址映射操作,存储器装置150可以执行类似于通用装置的操作。另外,通过基于映射数据的地址映射操作,当控制器130更新特定页的数据时,由于闪存存储器装置的特性,控制器130可以将新数据编程在另一空页上并且可以使特定页的旧数据无效。此外,控制器130可以将新数据的映射数据存储到FTL中。
处理器134可以用微处理器或中央处理单元(CPU)实现。存储器系统110可包括一个或更多个处理器134。
管理单元(未示出)可以被包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以找到包括在存储器装置150中的坏存储块以及对坏存储块执行坏块管理,坏存储块针对进一步使用处于不符合要求的条件。当存储器装置150是闪存存储器(例如,NAND闪存存储器)时,由于NAND逻辑功能的特性,在写入操作期间(例如,在编程操作期间)会发生编程故障。在坏块管理期间,可以将编程失败的存储块或坏存储块的数据编程到新存储块中。坏块会使具有3D层叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重劣化,因此需要可靠的坏块管理。
图2是例示存储器装置150的示意图。
参照图2,存储器装置150可以包括多个存储块BLOCK0至BLOCKN-1,并且块BLOCK0至BLOCKN-1中的每一个可以包括多个页,例如,2M个页(其数目可根据电路设计而变化)。根据在每个存储器单元中可存储或表示的比特数目,存储器装置150可以包括多个存储块作为单级单元(SLC)存储块和多级单元(MLC)存储块。SLC存储块可以包括利用各自能够存储1比特数据的存储器单元实现的多个页。MLC存储块可以包括利用各自能够存储多比特数据(例如,两比特或更多比特数据)的存储器单元实现的多个页。包括利用各自能够存储3比特数据的存储器单元实现的多个页的MLC存储块可以被定义为三级单元(TLC)存储块。
图3是例示存储器装置150中的存储块330的电路图。
参照图3,存储块330可以与存储器系统110的存储器装置150中所包括的多个存储块152至156中的任意一个对应。
参照图3,存储器装置150的存储块330可以包括分别电联接到位线BL0至BLm-1的多个单元串340。每列单元串340可以包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。多个存储器单元或多个存储器单元晶体管MC0至MCn-1可以串联电联接在选择晶体管DST和SST之间。相应的存储器单元MC0至MCn-1可以由各自可存储1比特信息的单级单元(SLC)配置,或者由各自可存储多个比特的数据信息的多级单元(MLC)配置。然而,本发明不仅仅限于SLC或MLC。串340可以分别电联接到对应的位线BL0至BLm-1。作为参考,在图3中,“DSL”表示漏极选择线,“SSL”表示源极选择线,“CSL”表示公共源极线。
虽然图3仅作为示例示出了存储块330由NAND闪存存储器单元构成,但是应注意的是,根据实施方式的存储器装置150的存储块330不限于NAND闪存存储器。存储块330可以由NOR闪存存储器、其中组合了至少两种存储器单元的混合闪存存储器或者其中控制器被内置在存储器芯片中的一个NAND闪存存储器来实现。半导体装置的操作特性不仅可以应用于其中电荷存储层由导电浮置栅极构成的闪存存储器装置,而且可以应用于其中电荷存储层由介电层构成的电荷捕获闪存(CTF)。
存储器装置150的电源电路310可以提供根据操作模式要被提供到相应字线的字线电压(例如,编程电压、读取电压和通过电压)以及要提供给块体(bulk)(例如,在其中形成存储器单元的阱区域)的电压。电源电路310可以在控制电路(未示出)的控制下执行电压生成操作。电源电路310可以生成用于生成多个读取数据的多个可变读取电压,在控制电路的控制下选择存储器单元阵列的扇区或存储块中的一个,选择被选存储块的字线中的一条字线,并将字线电压提供给被选字线和未选字线。
存储器装置150的读取和写入(读取/写入)电路320可以由控制电路控制,并且可以根据操作模式而用作感测放大器或写入驱动器。在验证操作或正常读取操作期间,读取/写入电路320可以作为用于从存储器单元阵列读取数据的感测放大器操作。在编程操作期间,读取/写入电路320可以作为用于根据要存储在存储器单元阵列中的数据来驱动位线的写入驱动器操作。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收要存储到存储器单元阵列中的数据,并根据所接收的数据来驱动位线。读取/写入电路320可以包括分别与列(或位线)或列对(或位线对)对应的多个页缓冲器322至326,并且页缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
图4是例示存储器装置150的3D结构的示意图。
尽管图4示出了3D结构,但是存储器装置150可以由二维(2D)或三维(3D)存储器装置实现。具体地说,如图4所示,存储器装置150可以被实现在具有3D层叠结构的非易失性存储器装置中。当存储器装置150具有3D结构时,存储器装置150可包括各自具有3D结构(或垂直结构)的多个存储块BLK0至BLKN-1。
如参照图1所述,存储器144可以包括映射缓存。映射缓存可以在其中存储映射数据。映射数据可以表示逻辑块地址(LBA)和物理块地址(PBA)之间的关系。逻辑块地址可以与来自主机102的数据一起被提供,并且可以与数据对应。物理块地址可以指示数据在存储器装置150内的储存位置。例如,控制器130可以从主机102接收与写入数据相对应的逻辑块地址,并且可以通过FTL分配用于将写入数据存储到存储器装置150中的物理块地址。存储器144可以将表示与写入数据对应的逻辑块地址和物理块地址之间的关系的映射数据存储到映射缓存中。存储器144还可以包括其中映射数据是条目的映射表。在映射表中,可以以映射段为单位来记录映射数据。例如,当单个映射段的大小是1024KB并且单个映射数据的大小是1KB时,可以在单个映射表内记录1024个映射数据。存储器144可以存储多个映射表。然而,这仅仅是将不限制本发明范围的示例。将参照图6A至图6C来描述映射表的结构。
控制器130可以基于记录在映射表中的映射数据,响应于从主机102提供的读取请求而读取数据。具体地,响应于从主机102提供的读取请求,控制器130可以在映射表中检测与读取请求相对应的逻辑地址,可以基于包括所检测到的逻辑地址的映射数据来检测指示目标数据的实质储存位置的物理地址,并且可以读取存储在由所检测到的物理地址指示的储存位置中的目标数据。控制器130可以通过映射表来改进读取操作的性能。然而,用于存储构成映射表的映射数据的映射缓存具有有限的容量,因此需要高效地使用映射缓存的容量。
根据本公开的实施方式,提供了用于高效地使用映射缓存的控制器130的操作方法。
图5是例示根据本发明的一实施方式的存储器系统110的图。
与图1中所示的存储器系统110不同,图5仅例示了与本公开的实施方式相关的元件。因此,本公开的存储器系统110不限于图5的实施方式中所示的元件。如参照图1至图4所述,存储器系统110可包括控制器130和存储器装置150。控制器130可以控制存储器装置150。控制器130可包括处理器134、存储器接口142和存储器144。
此外,控制器130可包括计数器510、设置器530和压缩器550。
存储器144可以将映射数据存储到映射缓存中。存储器144可以将非映射数据存储到映射缓存中,非映射数据是响应于从主机102提供的非映射命令而解除映射的一种映射数据。如上所述,映射数据可以表示逻辑地址和物理地址之间的关系。然而,非映射数据无法再表示逻辑地址和物理地址之间的关系。因此,非映射数据是在存储器144上可以不需要的数据,并且可以在以后删除。
存储器144可以存储其中记录有映射数据和非映射数据的映射表570。映射表570可以包括标志字段和地址字段。在标志字段中,可以记录标志以将映射数据与非映射数据区分开。在地址字段中,可以记录逻辑地址和物理地址(例如,块编号和页编号)。地址字段的值可以表示逻辑地址和物理地址之间的映射关系(“L2P”)。映射数据和非映射数据都可以被记录到映射表570中。在存储器144中,可以使用映射/非映射比特来将映射数据与非映射数据区分开。例如,当映射/非映射比特具有指示非映射数据的“0”值时,可以将最高有效位(MSB)的值设置为“0”以指示非映射数据并且可以将其存储到存储器144中。最高有效位为“0”值的非映射数据可以对应于映射表570的标志字段中的“U”值。相反,当映射/非映射比特具有指示映射数据的“1”值时,可以将最高有效位的值设置为“1”以指示映射数据并且可以将其存储到存储器144中。最高有效位为“1”值的映射数据可以对应于映射表570的标志字段中的“M”的值。然而,这仅仅是将不限制本发明的范围的示例。
处理器134可以响应于从主机102提供的刷新(flush)命令而经由存储器接口142控制存储器装置150将映射数据存储于其中,映射数据被记录在存储器144的映射缓存中所存储的映射表570中。
根据本发明的实施方式,计数器510可以对记录在存储器144中所存储的整个映射表570中的非映射数据的数目进行计数。根据本发明的实施方式,计数器510可以以映射段为单位对记录在映射表570中的非映射数据的数目进行计数。计数器510可以将计数出的非映射数据的数目与预定阈值进行比较。计数器510可以将比较结果提供给设置器530。
当非映射数据的数目等于或大于预定阈值时,设置器530可以为非映射数据中的每一个设置偏移值。
根据本发明的实施方式,设置器530可以将偏移值设置(或附加)为与非映射数据相对应的逻辑地址。设置器530可以基于映射表570布置非映射数据,使得非映射数据的偏移值随着偏移值的增加(即,随着逻辑地址增加)而增加。
根据本发明的实施方式,设置器530可以将偏移值设置(或附加)为读取映射段或写入映射段内的物理地址。假设当读取映射段的大小为512KB,写入映射段的大小为1024KB并且单个映射数据的大小为1KB时,在写入映射段中包括1024个映射数据并且在读取映射段中包括512个映射数据。然而,这仅仅是将不限制本发明范围的示例。如上所述,计数器510可以对每个映射段中所包括的非映射数据的数目进行计数。当包括在单个映射段中的非映射数据的数目等于或大于预定阈值时,设置器530可以布置非映射数据,以使得非映射数据的偏移值随着物理地址增加而增加。例如,当存在与存储块“100”和页“5”对应的第一非映射数据和与存储块“100”和页“1”对应的第二非映射数据时,设置器530可以将第一非映射数据和第二非映射数据按照第二非映射数据和第一非映射数据的顺序布置。例如,当存在与存储块“50”和页“5”对应的第三非映射数据和与存储块“70”和页“5”对应的第四非映射数据时,设置器530可以将第三非映射数据和第四非映射数据按照第三非映射数据和第四非映射数据的顺序布置。
根据本公开的实施方式,设置器530可以通过对逻辑地址执行模运算以使得非映射数据被压缩为具有预定压缩长度来设置偏移值。例如,当压缩器550将非映射数据压缩为具有“100”的压缩长度时,设置器530随着逻辑地址的增加而从“1”到“100”来设置偏移值。也就是说,当存在分别与逻辑地址LBA1至LBA100对应的非映射数据时,设置器530可以分别针对与逻辑地址LBA1至LBA100对应的非映射数据设置“1”到“100”的偏移值。此外,当存在分别与逻辑地址LBA101至LBA200对应的非映射数据时,设置器530可以分别针对与逻辑地址LBA101至LBA200对应的非映射数据设置“1”到“100”的偏移值。
设置器530可以将所设置的偏移值提供给压缩器550。
压缩器550可以基于所提供的偏移值来将非映射数据压缩为具有预定压缩长度。例如,当预定压缩长度是“50”时,压缩器550可以基于“1”到“100”的偏移值来压缩与“1”到“50”的偏移值对应的非映射数据以及与“51”到“100”的偏移值对应的非映射数据,以生成两条压缩后的非映射数据。压缩后的非映射数据可以包括起始逻辑地址或起始物理地址、与起始逻辑地址或起始物理地址对应的起始偏移值以及非映射数据的条数。例如,当具有从“5”到“104”的偏移值的“100”条非映射数据被压缩成压缩后的非映射数据时,该压缩后的非映射数据可以包括作为与起始逻辑地址或起始物理地址对应的起始偏移值的值“5”和作为非映射数据的条数的值“100”。
压缩器550可以将压缩后的非映射数据提供给存储器144。存储器144可以将压缩后的非映射数据存储到映射缓存中。
如上所述,根据本公开的实施方式,控制器130可以压缩非映射数据,因此可以在具有有限容量的存储器144内有效地利用映射缓存。
图6A至图6C是用于描述根据本公开的一实施方式的设置与非映射数据相对应的偏移值的操作的图。
图6A至图6C例示了第一映射表610和第二映射表650。为了清楚地描述,分别示出了第一映射表610和第二映射表650,但是第一映射表610和第二映射表650基本上是相同的映射表。在图6A至图6C中所示的实施方式中,假设在第一映射表610中记录了6条映射数据并且在第二映射表650中记录了6条非映射数据。还假设提供了用于第一映射表610中所记录的所有映射数据的非映射命令,因此第一映射表610的所有映射数据变为非映射数据,并且非映射数据被记录到第二映射表650中。
第一映射表610和第二映射表650中的每一个可以具有标志(“Flag”)、逻辑地址(“LBA”)、存储块编号(“Block”)和页编号(“Page”)的字段以记录映射数据和非映射数据。如图6A至图6C中所示,记录在第一映射表610中的所有数据都是映射数据,这是因为与数据相对应的所有标志字段被记录为值“M”。相反,记录在第二映射表650中的所有数据都是非映射数据,这是因为与数据相对应的所有标志字段都被记录为值“U”。
如图6A至图6C中所示,设置器530可以设置与记录在第二映射表650中的非映射数据相对应的偏移值(“offset”)。
参照图6A,设置器530可以将偏移值设置为与非映射数据相对应的逻辑地址(LBA)。
例如,设置器530可以针对与逻辑地址(LBA)“1”对应的非映射数据设置偏移值“1”;设置器530可以针对与逻辑地址“2”对应的非映射数据设置偏移值“2”;并且设置器530可以针对与逻辑地址“3”对应的非映射数据设置偏移值“3”。以类似的方式,设置器530可以针对非映射数据设置偏移值,使得非映射数据的偏移值随着与非映射数据相对应的逻辑地址增加而增加。
参照图6B,设置器530可以将偏移值设置为读取映射段或写入映射段内的物理地址。假设记录在第一映射表610中的多条映射数据配置单个写入映射段。
例如,如图6B所示,设置器530可以从记录在第二映射表650中的多条非映射数据中的最小存储块编号起设置偏移值。例如,设置器530可以针对记录在第二映射表650中的多条非映射数据当中的具有最小存储块编号“10”的非映射数据设置偏移值“1”;设置器530可以针对记录在第二映射表650中的多条非映射数据当中的第二最小存储块编号“20”的非映射数据设置偏移值“2”;并且设置器530可以针对记录在第二映射表650中的多条非映射数据当中的存储块编号为“40”(即,第三最小存储块)的非映射数据设置偏移值“3”。当在第二映射表650中所记录的多条非映射数据当中存在对应于相同存储块编号的多条非映射数据时,设置器530可以基于页编号来针对与相同存储块编号对应的多条非映射数据设置偏移值。例如,设置器530可以针对第二映射表650中的与相同存储块编号“100”对应的多条非映射数据当中的具有最小页编号“1”的非映射数据设置偏移值“4”;设置器530可以针对第二映射表650中的与相同存储块编号“100”对应的多条非映射数据当中的具有第二最小页编号“2”的非映射数据设置偏移值“5”;并且设置器530可以针对第二映射表650中的与相同存储块编号“100”对应的多条非映射数据当中的页编号为“5”的非映射数据设置偏移值“6”。然而,这仅仅是将不限制本发明范围的示例。
参照图6C,设置器530可以通过对逻辑地址(LBA)执行模运算以使得非映射数据被压缩为具有预定压缩长度来设置偏移值。假设预定压缩长度是“3”。也就是说,假设将3条非映射数据压缩成压缩后的非映射数据。
如图6C中所示,设置器530可以基本上根据与非映射数据相对应的逻辑地址(LBA)来设置非映射数据的偏移值。然而,因为预定压缩长度是“3”,所以偏移值的最大值可以被限制为值“3”。因此,如参照图3所述,设置器530可以针对与“1”至“3”的逻辑地址(LBA)对应的非映射数据设置偏移值“1”至“3”。然后,针对与“4”至“6”的逻辑地址对应的非映射数据,设置器530可以将偏移值设置为“1”至“3”而不是“4”至“6”。当如参照图6A所述地设置偏移值时,可以生成单条压缩后的非映射数据。然而,当如参照图6C所述地设置偏移值时,可以生成2条压缩后的非映射数据。然而,这仅仅是将不限制本发明范围的示例。
图7是用于描述根据本公开的一实施方式的控制器130的操作的流程图。参照图6A至图7所描述的将是控制器130的操作。
假设从主机102向控制器130提供用于记录在第一映射表610中的所有映射数据的非映射命令。
在步骤S701,存储器144可以响应于从主机102提供的非映射命令而将第一映射表610更新为第二映射表650。
在步骤S703,计数器510可以对记录在第二映射表650中的非映射数据的条数进行计数。
在步骤S705,计数器510可以将所计数出的非映射数据的条数与预定阈值进行比较。计数器510可以向设置器530提供比较结果。
当所计数出的非映射数据的条数小于预定阈值时(步骤S705:“否”),可以从步骤S701起重复该过程。
当所计数出的非映射数据的条数等于或大于预定阈值时(步骤S705:“是”),设置器530可以在步骤S707分别针对非映射数据设置偏移值。例如,如参照图6A至图6C所述,设置器530可以将与非映射数据相对应的逻辑地址设置为非映射数据的偏移值。设置器530可以将偏移值提供给压缩器550。
在步骤S709,压缩器550可以基于偏移值来将非映射数据压缩为具有预定压缩长度。压缩器550可以将压缩后的非映射数据提供给存储器144。
在步骤S711,存储器144可以将压缩后的非映射数据存储到映射缓存中。
换句话说,根据本公开的实施方式的控制器130的操作可以包括:检测映射表中的非映射数据(例如,S703和S705);将偏移值附加到各个非映射数据(例如,S707);以及基于所附加的偏移值压缩非映射数据(例如,S709)。
在下文中,将参照图8至图16详细描述数据处理系统和电子装置,所述数据处理系统和电子装置可被实现为具有包括已参照图1至图7描述的存储器装置150和控制器130的存储器系统110来实现。
图8至图16是示意性地例示根据各种实施方式的图1至图7的数据处理系统的应用示例的图。
图8是示意性地例示根据一实施方式的包括存储器系统的数据处理系统的示例的图。图8示意性地例示了根据一实施方式的包括存储器系统的存储卡系统6100。
参照图8,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可以连接到存储器装置6130,并且可以被配置为访问存储器装置6130。存储器装置6130可以由非易失性存储器(NVM)实现。作为示例而非限制,存储器控制器6120可以被配置为控制对存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可以被配置为提供存储器装置6130和主机(未示出)之间的接口和/或用于控制存储器装置6130的驱动固件。也就是说,存储器控制器6120可以与参照图1至图7描述的存储器系统110中的控制器130对应,而存储器装置6130可以与参照图1至图7描述的存储器装置150对应。
因此,如图1所示,存储器控制器6120可以包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和纠错码组件。存储器控制器130还可以包括图1中描述的元件。
存储器控制器6120可以通过连接器6110与外部装置(例如,图1的主机102)通信。例如,如参照图1所描述的,存储器控制器6120可以被配置为通过诸如以下各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、快速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小磁盘接口(EDSI)、集成驱动电子设备(IDE)、火线、通用闪存储存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙。因此,根据实施方式的存储器系统和数据处理系统可以应用于有线和/或无线电子装置或特别是移动电子装置。
存储器装置6130可以由非易失性存储器实现。例如,存储器装置6130可以由诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存存储器、NOR闪存存储器、相变式RAM(PRAM)、电阻式RAM(ReRAM)、铁电式RAM(FRAM)和自旋转移力矩磁式RAM(STT-RAM)之类的各种非易失性存储器装置实现。存储器装置6130可以如图1的存储器装置150中那样包括多个晶片(die)。
存储器控制器6120和存储器装置6130可以被集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可以通过被集成到单个半导体装置中来构造固态驱动器(SSD)。另外,存储器控制器6120和存储器装置6130可以构造诸如PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、MMCmicro和eMMC)、安全数字(SD)卡(例如,SD、miniSD、microSD和SDHC)和通用闪存储存(UFS)之类的存储卡。
图9是示意性地例示根据一实施方式的包括存储器系统的数据处理系统6200的另一示例的图。
参照图9,数据处理系统6200可以包括具有一个或更多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如参照图1所述,数据处理系统6200可以用作诸如存储卡(CF、SD、micro-SD等)或USB装置之类的储存介质。存储器装置6230可以与图1至图7中描述的存储器系统110中的存储器装置150对应,存储器控制器6220可以与图1至图7中描述的存储器系统110中的控制器130对应。
存储器控制器6220可以响应于主机6210的请求而控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可以包括一个或更多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222之类的缓冲存储器、纠错码(ECC)电路6223、主机接口6224以及诸如NVM接口6225之类的存储器接口。
CPU 6221可以控制对存储器装置6230的操作,例如,读取操作、写入操作、文件系统管理操作和坏页管理操作。RAM 6222可以根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或缓存存储器。当RAM 6222用作工作存储器时,由CPU 6221处理的数据可以被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可以用于对从主机6210发送到存储器装置6230或从存储器装置6230发送到主机6210的数据进行缓冲。当RAM6222用作缓存存储器时,RAM 6222可以帮助存储器装置6230高速操作。
ECC电路6223可以与图1中所示的控制器130的ECC组件138对应。如参照图1所述,ECC电路6223可以生成用于对从存储器装置6230提供的数据的失败比特或错误比特进行纠正的纠错码(ECC)。ECC电路6223可以对提供给存储器装置6230的数据执行纠错编码,从而形成具有奇偶校验比特的数据。奇偶校验比特可以存储在存储器装置6230中。ECC电路6223可以对从存储器装置6230输出的数据执行纠错解码。在这种情况下,ECC电路6223可以使用奇偶校验比特来纠正错误。例如,如参照图1所述,ECC电路6223可以使用低密度奇偶校验(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统码(RSC)或者诸如网格编码调制(TCM)或块编码调制(BCM)之类的编码调制来纠正错误。
存储器控制器6220可以通过主机接口6224向主机6210发送数据或信号和/或从主机6210接收数据或信号,并且可以通过NVM接口6225向存储器装置6230发送数据或信号和/或从存储器装置6230接收数据或信号。主机接口6224可以通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、快速外围组件互连(PCIe)或NAND接口连接到主机6210。存储器控制器6220可以利用诸如无线保真(WiFi)或长期演进(LTE)之类的移动通信协议而具有无线通信功能。存储器控制器6220可以连接到外部装置(例如,主机6210)或另一外部装置,然后向外部装置发送数据和/或从外部装置接收数据。由于存储器控制器6220被配置为通过各种通信协议中的一种或更多种与外部装置通信,因此根据实施方式的存储器系统和数据处理系统可以应用于有线和/或无线电子装置或者特别是移动电子装置。
图10是示意性地例示根据一实施方式的包括存储器系统的数据处理系统的另一示例的图。图10示意性地例示了应用根据实施方式的存储器系统的固态驱动器(SSD)。
参照图10,SSD 6300可以包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可以与图1的存储器系统110中的控制器130对应,存储器装置6340可以与图1的存储器系统中的存储器装置150对应。
更具体地,控制器6320可以通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可以包括一个或更多个处理器6321、纠错码(ECC)电路6322、主机接口6324、缓冲存储器6325以及例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可以临时存储从主机6310提供的数据或者从存储器装置6340中所包括的多个闪存NVM提供的数据,或者临时存储多个闪存NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)之类的易失性存储器或者诸如铁电式RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁式RAM(STT-MRAM)和相变式RAM(PRAM)之类的非易失性存储器实现。出于描述的目的,图10例示了缓冲存储器6325存在于控制器6320中,但是缓冲存储器6325可以位于或布置在控制器6320外部。
ECC电路6322可以在编程操作期间计算要编程到存储器装置6340的数据的纠错码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行纠错操作,并且在失败数据恢复操作期间对从存储器装置6340恢复的数据执行纠错操作。
主机接口6324可以提供与外部装置(例如,主机6310)的接口功能,并且非易失性存储器接口6326可以提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可以提供应用了图1的存储器系统110的多个SSD 6300来实现数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。RAID系统可以包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令而执行编程操作时,RAID控制器可以根据SSD 6300中的多个RAID级别(即,从主机6310提供的写入命令的RAID级别信息)选择一个或更多个存储器系统或SSD 6300,并且可以将与写入命令相对应的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于主机6310提供的读取命令而执行读取操作时,RAID控制器可以根据SSD 6300中的多个RAID级别(即,从主机6310提供的读取命令的RAID级别信息)选择一个或更多个存储器系统或SSD 6300,并将从所选择的SSD6300读取的数据提供给主机6310。
图11是示意性地例示根据一实施方式的包括存储器系统的数据处理系统的另一示例的图。图11示意性地例示了应用根据一实施方式的存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图11,eMMC 6400可以包括控制器6430和由一个或更多个NAND闪存存储器实现的存储器装置6440。控制器6430可以与图1的存储器系统110中的控制器130对应,存储器装置6440可以与图1的存储器系统110中的存储器装置150对应。
更具体地,控制器6430可以通过多个通道连接到存储器装置6440。控制器6430可以包括一个或更多个芯6432、主机接口(I/F)6431以及例如NAND接口(I/F)6433的存储器接口。
芯6432可以控制eMMC 6400的操作,主机接口6431可以提供控制器6430和主机6410之间的接口功能。NAND接口6433可以在存储器装置6440和控制器6430之间提供接口功能。例如,主机接口6431可以用作并行接口,例如,如参照图1所述的MMC接口。此外,主机接口6431可以用作串行接口,例如,超高速(UHS)-I和UHS-II接口。
图12至图15是示意性地例示根据实施方式的包括存储器系统的数据处理系统的其它示例的图。图12至图15示意性地例示了应用根据实施方式的存储器系统的通用闪存储存(UFS)系统。
参照图12至图15,UFS系统6500可以包括主机6510、UFS装置6520和UFS卡6530;UFS系统6600可以包括主机6610、UFS装置6620和UFS卡6630;UFS系统6700可以包括主机6710、UFS装置6720和UFS卡6730;并且UFS系统6800可以包括主机6810、UFS装置6820和UFS 6830。主机6510、6610、6710、6810可以用作有线和/或无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720、6820可以用作嵌入式UFS装置。UFS卡6530、6630、6730、6830可以用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过UFS协议与外部装置(例如,有线和/或无线电子装置或者特别是移动电子装置)通信。UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以由图1中所示的存储器系统110实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以按照参照图9至图11所描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以按照参照图8所描述的存储卡系统6100的形式来实现。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过UFS接口(例如,MIPI(移动行业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议))彼此进行通信。此外,UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过除UFS协议之外的各种协议(例如,通用存储总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、mini-SD和micro-SD)彼此通信。
在图12中所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可以包括UniPro。主机6510可以执行切换操作以与UFS装置6520和UFS卡6530中的至少一个进行通信。主机6510可以通过在UniPro处的链路层切换(例如,L3切换)与UFS装置6520或UFS卡6530通信。在这种情况下,UFS装置6520和UFS卡6530可以通过在主机6510的UniPro处的链路层切换来彼此通信。在示例中,为了便于描述,已经举例说明了其中一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,多个UFS装置和多个UFS卡可以并联或以星形形式连接到主机6510,并且多个UFS卡可以并联或以星形形式连接到UFS装置6520,或者串联或以链形式连接到UFS装置6520。这里,星形形式是指单个装置与多个其它装置或卡联接以进行集中控制的布置。
在图13中所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro,并且主机6610可以通过执行切换操作的切换模块6640(例如,通过在UniPro处执行链路层切换(例如,L3切换)的切换模块6640)与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过切换模块6640在UniPro处的链路层切换来彼此通信。在示例中,为了便于描述,已经举例说明了其中一个UFS装置6620和一个UFS卡6630连接到切换模块6640的配置。然而,多个UFS装置和多个UFS卡可以并联或以星形形式连接到切换模块6640,并且多个UFS卡可以串联或以链形式连接到UFS装置6620。
在图14中所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括UniPro。主机6710可以通过执行切换操作的切换模块6740(例如,在UniPro处执行链路层切换(例如,L3切换)的切换模块6740)与UFS装置6720或UFS卡6730通信。在这种情况下,UFS装置6720和UFS卡6730可以通过切换模块6740在UniPro处的链路层切换来彼此通信,并且切换模块6740可以在UFS装置6720的内部或外部与UFS装置6720集成为一个模块。在示例中,为了便于描述,已经举例说明了其中一个UFS装置6720和一个UFS卡6730连接到切换模块6740的配置。然而,各自包括切换模块6740和UFS装置6720的多个模块可以并联或以星形形式连接到主机6710,或者串联或以链形式彼此连接。此外,多个UFS卡可以并联或以星形形式连接到UFS装置6720。
在图15中所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可以包括M-PHY和UniPro。UFS装置6820可以执行切换操作以与主机6810和UFS卡6830通信。UFS装置6820可以通过用于与主机6810通信的M-PHY和UniPro模块与用于与UFS卡6830通信的M-PHY和UniPro模块之间的切换操作(例如,通过目标标识符(ID)切换操作)与主机6810或UFS卡6830通信。这里,主机6810和UFS卡6830可以通过UFS装置6820的M-PHY和UniPro模块之间的目标ID切换来彼此通信。在实施方式中,为了便于描述,已经举例说明了其中一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可以并联或以星形形式连接到主机6810,或者串联或以链形式连接到主机6810,并且多个UFS卡可以并联或以星形形式连接到UFS装置6820或者串联或以链形式连接到UFS装置6820。
图16是示意性地例示根据一实施方式的包括存储器系统的数据处理系统的另一示例的图。图16是示意性地例示应用了根据一实施方式的存储器系统的用户系统6900的图。
参照图16,用户系统6900可以包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和储存模块6950。
更具体地,应用处理器6930可以驱动用户系统6900中所包括的组件(例如,操作系统(OS)),并且包括控制用户系统6900中所包括的组件的控制器、接口和图形引擎。应用处理器6930可以作为片上系统(SoC)来提供。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或缓存存储器。存储器模块6920可以包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM或LPDDR3 SDRAM之类的易失性随机存取存储器(RAM)或者诸如相变式RAM(PRAM)、电阻式RAM(ReRAM)、磁阻式RAM(MRAM)或铁电式RAM(FRAM)之类的非易失性RAM。例如,可以基于堆叠封装(PoP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可以与外部装置通信。例如,网络模块6940不仅可以支持有线通信,还可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)之类的各种无线通信协议,从而与有线/无线电子装置或者特别是移动电子装置通信。因此,根据本发明的实施方式的存储器系统和数据处理系统可以应用于有线/无线电子装置。网络模块6940可以被包括在应用处理器6930中。
储存模块6950可以存储数据(例如,从应用处理器6930接收的数据),然后可以将所存储的数据发送到应用处理器6930。储存模块6950可以由诸如相变式RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存之类的非易失性半导体存储器装置实现,并可以作为用户系统6900的可移除储存介质(诸如存储卡或外部驱动器)来提供。储存模块6950可以与参照图1描述的存储器系统110对应。此外,储存模块6950可以被实施为如上面参照图10至图15所述的SSD、eMMC和UFS。
用户接口6910可以包括用于向应用处理器6930输入数据或命令或者将数据输出到外部装置的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件之类的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电机之类的用户输出接口。
此外,当图1的存储器系统110被应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的操作,网络模块6940可以用作用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可以在移动电子装置的显示和触摸模块上显示由处理器6930处理的数据,或者支持从触摸板接收数据的功能。
虽然已经关于具体实施方式描述了本发明,但是对于本领域技术人员来说将显而易见的是,在不脱离由所附权利要求确定的本发明的精神和范围的情况下,可以进行各种改变和修改。
相关申请的交叉引用
本申请要求于2018年7月10日提交的韩国专利申请No.10-2018-0080050的优先权,该韩国专利申请的公开内容通过引用整体并入本文中。
Claims (20)
1.一种控制器,该控制器包括:
存储器,所述存储器被配置用于存储映射数据和非映射数据;
计数器,所述计数器被配置用于对存储在所述存储器中的所述非映射数据的数目进行计数;
设置器,所述设置器被配置用于在所述非映射数据的数目等于或大于预定阈值时对所述非映射数据中的每一个设置偏移值;以及
压缩器,所述压缩器被配置用于基于所述偏移值将所述非映射数据压缩为具有预定压缩长度。
2.根据权利要求1所述的控制器,其中,所述设置器将所述偏移值设置为分别与所述非映射数据对应的逻辑地址。
3.根据权利要求1所述的控制器,其中,所述设置器将所述偏移值设置为读取映射段或写入映射段内的物理地址。
4.根据权利要求1所述的控制器,其中,所述设置器通过对逻辑地址执行模运算以使得压缩后的非映射数据具有所述预定压缩长度来设置所述偏移值。
5.根据权利要求1所述的控制器,其中,所述映射数据和所述非映射数据被记录在映射表中。
6.根据权利要求5所述的控制器,其中,所述映射数据和所述非映射数据以映射段为单位被记录在所述映射表中。
7.根据权利要求5所述的控制器,其中,指示分别与所述映射数据和所述非映射数据对应的映射/非映射信息的标志以及与所述映射数据和所述非映射数据对应的逻辑地址和物理地址之间的关系被记录在所述映射表中。
8.根据权利要求1所述的控制器,其中,所述存储器响应于非映射命令而将所述映射数据改变为所述非映射数据。
9.根据权利要求8所述的控制器,其中,所述存储器将所述非映射数据的最高有效位设置为具有特定值。
10.根据权利要求1所述的控制器,其中,所述压缩器将压缩后的非映射数据存储在所述存储器中。
11.一种控制器的操作方法,该操作方法包括以下步骤:
存储映射数据和非映射数据;
对所述非映射数据的数目进行计数;
对所述非映射数据中的每一个设置偏移值;以及
基于所述偏移值将所述非映射数据压缩为具有预定压缩长度。
12.根据权利要求11所述的操作方法,其中,设置所述偏移值的步骤包括以下步骤:
将所述偏移值设置为分别与所述非映射数据对应的逻辑地址。
13.根据权利要求11所述的操作方法,其中,设置所述偏移值的步骤包括以下步骤:
将所述偏移值设置为读取映射段或写入映射段内的物理地址。
14.根据权利要求11所述的操作方法,其中,设置所述偏移值的步骤包括以下步骤:
通过对逻辑地址执行模运算以使得压缩后的非映射数据具有预定压缩长度来设置所述偏移值。
15.根据权利要求11所述的操作方法,该操作方法还包括以下步骤:
将所述映射数据和所述非映射数据记录在映射表中。
16.根据权利要求15所述的操作方法,其中,所述映射数据和所述非映射数据以映射段为单位被记录在所述映射表中。
17.根据权利要求15所述的操作方法,其中,指示分别与所述映射数据和所述非映射数据对应的映射/非映射信息的标志以及与所述映射数据和所述非映射数据对应的逻辑地址和物理地址之间的关系被记录在所述映射表中。
18.根据权利要求11所述的操作方法,该操作方法还包括以下步骤:
接收非映射命令;以及
响应于所述非映射命令而将所述映射数据改变为所述非映射数据。
19.根据权利要求18所述的操作方法,该操作方法还包括以下步骤:
将所述非映射数据的最高有效位设置为具有特定值。
20.根据权利要求15所述的操作方法,该操作方法还包括以下步骤:
将压缩后的非映射数据存储在所述映射表中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0080050 | 2018-07-10 | ||
KR1020180080050A KR20200006378A (ko) | 2018-07-10 | 2018-07-10 | 컨트롤러 및 그것의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110703983A CN110703983A (zh) | 2020-01-17 |
CN110703983B true CN110703983B (zh) | 2023-10-03 |
Family
ID=69138231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910593707.0A Active CN110703983B (zh) | 2018-07-10 | 2019-07-03 | 控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11023160B2 (zh) |
KR (1) | KR20200006378A (zh) |
CN (1) | CN110703983B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535089B (zh) * | 2020-05-22 | 2024-05-17 | 长江存储科技有限责任公司 | 用于ssd的映射表的刷新方法 |
US11755490B2 (en) * | 2020-12-15 | 2023-09-12 | Micron Technology, Inc. | Unmap operation techniques |
TR2022014787A2 (tr) | 2022-09-27 | 2022-10-21 | Tirsan Treyler Sanayi Ve Ticaret Anonim Sirketi | Treyler güvenliği için takip ve görüntüleme sistemi |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
CN107632776A (zh) * | 2016-07-19 | 2018-01-26 | 爱思开海力士有限公司 | 用于压缩输入数据的数据存储装置 |
US9946462B1 (en) * | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706242B1 (ko) * | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
US10067881B2 (en) * | 2016-06-15 | 2018-09-04 | Western Digital Technologies, Inc. | Compression and caching for logical-to-physical storage address mapping tables |
KR102666489B1 (ko) * | 2016-09-09 | 2024-05-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP6553566B2 (ja) * | 2016-09-23 | 2019-07-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR20180051706A (ko) * | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
-
2018
- 2018-07-10 KR KR1020180080050A patent/KR20200006378A/ko not_active Application Discontinuation
-
2019
- 2019-04-16 US US16/385,698 patent/US11023160B2/en active Active
- 2019-07-03 CN CN201910593707.0A patent/CN110703983B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946462B1 (en) * | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
CN107632776A (zh) * | 2016-07-19 | 2018-01-26 | 爱思开海力士有限公司 | 用于压缩输入数据的数据存储装置 |
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200006378A (ko) | 2020-01-20 |
US11023160B2 (en) | 2021-06-01 |
CN110703983A (zh) | 2020-01-17 |
US20200019338A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562649B (zh) | 存储器系统及其操作方法 | |
US20190369918A1 (en) | Memory system and operating mehtod thereof | |
US20190324644A1 (en) | Memory system and operating method thereof | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN109656837B (zh) | 存储器系统及其操作方法 | |
CN109032501B (zh) | 存储器系统及其操作方法 | |
CN110347330B (zh) | 存储器系统及其操作方法 | |
CN110322920B (zh) | 控制器及控制器的操作方法 | |
CN110570894B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN109697171B (zh) | 控制器及其操作方法 | |
CN108932203B (zh) | 数据处理系统和数据处理方法 | |
CN107622018B (zh) | 存储器系统及其操作方法 | |
US20200019507A1 (en) | Controller and operating method thereof | |
CN110825316A (zh) | 控制器及该控制器的操作方法 | |
CN110045914B (zh) | 存储器系统及其操作方法 | |
CN110618786A (zh) | 存储器系统及存储器系统的操作方法 | |
CN110703983B (zh) | 控制器及其操作方法 | |
CN109147853B (zh) | 控制器及其操作方法 | |
CN110928486B (zh) | 存储器系统及其操作方法 | |
CN110890123B (zh) | 数据处理系统及其操作方法 | |
CN110968521B (zh) | 存储器系统及其操作方法 | |
CN107436730B (zh) | 数据处理系统及其操作方法 | |
CN110349615B (zh) | 控制器、其操作方法及包括控制器的存储器系统 | |
CN109947360B (zh) | 存储器系统及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |