CN111338979A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111338979A CN111338979A CN201910932926.7A CN201910932926A CN111338979A CN 111338979 A CN111338979 A CN 111338979A CN 201910932926 A CN201910932926 A CN 201910932926A CN 111338979 A CN111338979 A CN 111338979A
- Authority
- CN
- China
- Prior art keywords
- mapping data
- data
- mapping
- extended
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
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)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种存储器控制器,该存储器控制器包括:映射数据控制器,响应于从主机接收的扩展映射数据请求而生成包括映射信息和附加字段的扩展映射数据,并且生成指示已生成扩展映射数据的数据生成信息,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;以及位图信息生成器,接收数据生成信息并且生成位图信息。该位图信息可包括用于改变位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值,以指示扩展映射数据的信息,并且该映射数据组可包括多条映射数据。
Description
相关申请的交叉引用
本申请要求于2018年12月19日提交的申请号为10-2018-0165688的韩国专利申请的优先权,该韩国专利申请的通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储器控制器和操作存储器控制器的方法。
背景技术
存储装置在诸如计算机、智能手机或智能平板的主机装置的控制下存储数据。存储装置的示例包括将数据存储在磁盘中的硬盘驱动器(HDD)以及将数据存储在半导体存储器,特别是非易失性存储器中的固态驱动器(SSD)或存储卡。
存储装置可包括存储数据的存储器装置,以及控制数据在存储器装置中的存储的存储器控制器。存储器装置可以是易失性存储器或非易失性存储器。非易失性存储器的代表性示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)。
发明内容
本公开的各个实施例涉及一种生成具有提高可靠性的映射数据的存储器控制器及操作该存储器控制器的方法。
本公开的实施例可提供一种控制存储器装置的存储器控制器。该存储器控制器可包括:映射数据控制器,被配置成响应于从主机接收的扩展映射数据请求而生成包括映射信息和附加字段的扩展映射数据,并且生成指示已生成扩展映射数据的数据生成信息,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;以及位图信息生成器,被配置成接收数据生成信息并生成位图信息,其中位图信息包括用于改变存储器装置中存储的位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值以指示扩展映射数据的信息,并且其中映射数据组包括多段映射数据。
本公开的实施例可提供一种控制存储器装置的存储器控制器。该存储器控制器可包括:映射数据控制器,被配置成响应于从主机接收的扩展映射数据请求生成包括映射信息和附加字段的扩展映射数据,并且生成指示已生成扩展映射数据的数据生成信息,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;以及位图信息生成器,被配置成接收数据生成信息并生成位图信息,其中位图信息包括用于改变存储器装置中存储的位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值以指示扩展映射数据的信息,并且其中映射数据组包括多段映射数据,并且其中数据生成信息包括关于扩展映射数据中的逻辑块地址的信息。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置。该方法可包括:从主机接收扩展映射数据请求;响应于扩展映射数据请求来生成包括映射信息的普通映射数据,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;生成包括映射信息和附加字段的扩展映射数据;生成指示已生成扩展映射数据的数据生成信息,并接收该数据生成信息,然后生成位图信息,其中位图信息包括用于改变存储器装置中存储的位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值以指示扩展映射数据的信息,并且其中映射数据组包括多段映射数据。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置。该方法可包括:从主机接收扩展映射数据请求;响应于扩展映射数据请求来生成包括映射信息的普通映射数据,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;生成包括映射信息和附加字段的扩展映射数据;生成指示已生成扩展映射数据的数据生成信息,并接收该数据生成信息,然后生成位图信息,其中位图信息包括用于改变存储器装置中存储的位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值以指示扩展映射数据的信息,并且其中映射数据组包括多段映射数据,其中扩展映射数据包括热数据区域的逻辑块地址,并且其中基于主机访问存储器控制器的频率来确定该热数据区域。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置。该方法可包括:从主机接收扩展映射数据请求;响应于扩展映射数据请求来生成包括映射信息的普通映射数据,其中映射信息指示逻辑块地址与物理块地址之间的映射关系;生成包括映射信息和附加字段的扩展映射数据;生成指示已生成扩展映射数据的数据生成信息,并接收该数据生成信息,然后生成位图信息,其中位图信息包括用于改变存储器装置中存储的位图中的位值之中的、与包括扩展映射数据的映射数据组相对应的位值以指示扩展映射数据的信息,并且其中映射数据组包括多段映射数据,其中数据生成信息包括关于扩展映射数据中的逻辑块地址的信息。
本公开的实施例可提供一种数据处理系统。数据处理系统可包括:主机,被配置成提供更新或生成请求以及逻辑地址,或者提供读取请求以及第一映射数据;存储器装置,被配置成存储用户数据和第二映射数据;以及控制器,被配置成响应于更新请求,控制存储器装置以根据逻辑地址来更新第二映射数据,并且向主机提供所更新的第二映射数据来作为第一映射数据,在更新第二映射数据时增加第二映射数据的更新数量,响应于生成请求,生成并向主机提供与所提供的逻辑地址相对应的新第二映射数据,并且响应于与第一映射数据一起提供的读取请求来向主机提供用户数据,根据第一映射数据和第二映射数据的更新数量,用户数据对应于第一映射数据和第二映射数据中的一个,其中第一映射数据和第二映射数据中的每一个是表示第一映射数据和第二映射数据中的每一个的更新数量以及逻辑地址与物理地址之间的映射关系的扩展映射数据。
附图说明
图1是示出存储装置的框图。
图2是示出诸如图1的存储器控制器的配置以及生成普通映射数据和扩展映射数据的方法的示图。
图3是示出诸如图2的映射数据控制器的配置的框图。
图4是用于说明普通映射数据的示图。
图5是用于说明扩展映射数据的示图。
图6是示出生成映射数据的更新数量存储在附加字段中的扩展映射数据的方法的示图。
图7是用于说明诸如图1的存储器装置中存储的位图的示图。
图8是示出存储器控制器响应于来自主机的映射数据请求来输出映射数据的方法的示图。
图9是示出将对应于来自主机的请求的映射数据输出到诸如图1的存储器装置的方法的示图。
图10是示出图1的存储器装置的示例性结构的框图。
图11是示出图10的存储器单元阵列的实施例的示图。
图12是示出图11的存储块BLK1至BLKz中的示例性存储块BLKa的电路图。
图13是示出图11的存储块BLK1至BLKz中的示例性存储块BLKb的电路图。
图14是示出根据本公开的实施例的存储器控制器的操作的流程图。
图15是示出根据本公开的实施例的存储器控制器的操作的流程图。
图16是示出根据本公开的实施例的存储器控制器的操作的流程图。
图17是示出根据本公开的实施例的存储器控制器的操作的流程图。
图18是示出图1的存储器控制器的实施例的示图。
图19是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
图20是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的示例的框图。
图21是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
本文提出的具体的结构功能描述针对本公开的实施例。然而,本发明不限于所提供的具体描述或本文描述的任何实施例。
虽然详细地描述了各个实施例,但本发明不限于任何特定的实施例。相反,本发明涵盖不脱离本公开的精神和技术范围的所有改变、等同方案、可选方案和替代方案。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来识别各个元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与否则具有相同或相似名称的另一个元件区分开。例如,在不脱离本公开的教导的情况下,在一个实例中的第一元件在另一实例中可被称为第二元件。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,其可以直接联接或连接到另一元件,或者在其间可存在一个或多个中间元件。相反地,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。诸如“在......之间”、“直接在......之间”、“相邻于”或“直接相邻于”的解释元件之间的关系的其它表述应以相同的方式解释。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等明确所陈述的特征、整数、步骤、操作、元件、组件和/或其组合的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,本文使用的术语应当被解释为具有与其在本说明书和相关技术语境中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
省略对本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在使本公开的主题清晰。
下面参照附图更全面地描述本公开的各个实施例,其中附图中示出了本公开的优选实施例,使得本领域技术人员能够实践本发明。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出存储装置的框图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。
存储装置50可以是在主机300的控制下存储数据的装置,并且主机300可包括例如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC或车载信息娱乐系统。
根据作为与主机300的通信方案的主机接口,存储装置50可被配置成各种类型的存储装置中的任何一种。例如,存储装置50可被实施为固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD和微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡或记忆棒。
存储装置50可以各种类型的封装中的任意一种来制造。例如,存储装置50可被制造成堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或者晶圆级堆叠封装(WSP)。
存储器控制器200可控制存储装置50的全部操作。
当向存储装置50供电时,存储器控制器200可运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可运行诸如闪存转换层(FTL)的固件,以控制主机300和存储器装置100之间的通信。
存储器控制器200可包括映射数据控制器210。映射数据控制器210可响应于从主机300接收的请求而生成映射数据Mapping_DATA。在实施例中,从主机300接收的请求可以是扩展映射数据请求或普通映射数据请求。
当从主机300接收的请求是普通映射数据请求时,映射数据控制器210可生成普通映射数据。普通映射数据可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。普通映射数据可不包括附加字段。
当从主机300接收的请求是扩展映射数据请求时,映射数据控制器210可生成扩展映射数据。扩展映射数据可以是包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA。热数据包括多个逻辑块地址。可基于主机300向存储器控制器200输出特定逻辑块地址的频率来确定热数据。在实施例中,主机300可设置热数据。
扩展映射数据可包括普通映射数据和附加字段。在附加字段中,可存储扩展映射数据的更新数量或者对来自存储器装置的读取数据进行错误校正所需的数据(例如,BCH(博斯-查德胡里-霍昆格姆)码或LDPC(低密度奇偶校验)码等)。
在实施例中,当映射数据控制器210响应于来自主机300的扩展映射数据请求而生成扩展映射数据时,映射数据控制器210可生成并输出数据生成信息DG_INF。数据生成信息DG_INF可包括指示已生成扩展映射数据的信息。而且,数据生成信息DG_INF可包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。可基于数据生成信息DG_INF来生成位图信息BM_INF。位图信息BM_INF可指示由映射数据控制器210生成的映射数据Mapping_DATA是扩展映射数据。
在实施例中,映射数据控制器210可响应于来自主机300的请求,接收存储器装置100中存储的映射数据Mapping_DATA。来自主机300的请求可用于将扩展映射数据存储在主机存储器310中。当映射数据控制器210接收到存储器装置100中存储的映射数据Mapping_DATA时,存储器装置100中存储的位图中包括的位值BIT_VAL可与映射数据Mapping_DATA一起被映射数据控制器210接收。映射数据控制器210可基于从存储器装置100接收的映射数据Mapping_DATA和位值BIT_VAL,执行生成和输出扩展映射数据的操作和/或输出从存储器装置100接收的映射数据Mapping_DATA的操作。
在实施例中,映射数据控制器210可接收主机300中存储的映射数据Mapping_DATA以及来自主机300的请求。来自主机300的请求可以是对存储器装置100中存储的数据的读取请求。主机300中存储的映射数据Mapping_DATA可以是扩展映射数据。扩展映射数据可包括普通映射数据和附加字段。
映射数据控制器210可从存储器装置100接收与从主机300接收的请求相对应的映射数据Mapping_DATA。存储器装置100中存储的映射数据Mapping_DATA可以是扩展映射数据。映射数据控制器210可将从主机300接收的扩展映射数据与从存储器装置100接收的映射数据Mapping_DATA进行比较,然后可将它们中的一个输出到主机300。
存储器控制器200可包括位图信息生成器220。位图信息生成器220可从映射数据控制器210接收数据生成信息DG_INF。数据生成信息DG_INF可包括指示已生成扩展映射数据的信息。数据生成信息DG_INF可包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。
当接收到数据生成信息DG_INF时,位图信息生成器220可基于数据生成信息DG_INF来生成位图信息BM_INF。位图信息BM_INF可被生成为包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。因此,位图信息BM_INF可以是用于将扩展映射数据与普通映射数据区分开的信息。位图信息BM_INF可用于改变存储器装置100中存储的位图中包括的位值BIT_VAL。当接收位图信息BM_INF时,存储器装置100可改变位图中包括的位值BIT_VAL。
存储器装置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的控制下,通过使用设定操作电压来执行编程操作或擦除操作。
存储器装置100可包括映射数据存储装置130。映射数据存储装置130可从映射数据控制器210接收映射数据Mapping_DATA。从映射数据控制器210接收的映射数据Mapping_DATA可以是普通映射数据或扩展映射数据。映射数据存储装置130可存储从映射数据控制器210接收的映射数据Mapping_DATA。映射数据存储装置130可响应于来自存储器控制器200的请求而输出所存储的映射数据Mapping_DATA。
在实施例中,当与单个逻辑块地址(LBA)建立映射关系的映射数据Mapping_DATA的条数为2时,映射数据存储装置130可输出扩展映射数据。
详细地,当扩展映射数据存储在映射数据存储装置130中时,用于单个逻辑块地址(LBA)的映射数据Mapping_DATA的条数可以为2。也就是说,对应于单个逻辑块地址(LBA)的扩展映射数据和普通映射数据可存储在映射数据存储装置130中。映射数据存储装置130可输出扩展映射数据,以与由映射数据控制器210接收的、来自主机300的映射数据Mapping_DATA进行比较。可选地,映射数据存储装置130可输出扩展映射数据,以便将扩展映射数据存储在主机存储器310中。而且,因为扩展映射数据是在普通映射数据之后生成的,所以输出的扩展映射数据是最后的映射数据,即最新存储的映射数据。
存储器装置100可包括可存储位图的位图存储装置150。位图可包括指示映射数据Mapping_DATA是扩展映射数据的位值BIT_VAL。详细地,位图可具有对应于映射数据组MD_Group的位值BIT_VAL。映射数据组可包括具有相同映射数据类型的多条映射数据。
可将位图中包括的位值BIT_VAL设置为默认值。默认值可以是“0”或“1”。在实施例中,当从位图信息生成器220接收位图信息BM_INF时,位图存储装置150可将位图的位值BIT_VAL从默认值改变为特定值。在实施例中,当默认值为“0”时,在已接收到位图信息BM_INF之后,位值BIT_VAL可被从“0”改变为“1”。在实施例中,当默认值为“1”时,在已接收到位图信息BM_INF之后,位值BIT_VAL可被从“1”改变为“0”。当位值BIT_VAL改变时,位图可指示与所改变的位值BIT_VAL相对应的映射数据组中包括的多条映射数据是多条扩展映射数据。
在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(LBA),并且可将逻辑块地址(LBA)转换为物理块地址(PBA),物理块地址(PBA)指示待存储数据的存储器单元的地址。进一步地,存储器控制器200可将映射信息存储在缓冲存储器中,其中映射信息建立逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系。
存储器控制器200可控制存储器装置100,使得响应于从主机300接收到的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、物理块地址(PBA)和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和物理块地址(PBA)。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和物理块地址(PBA)。
在实施例中,存储器控制器200可在没有从主机300接收请求的情况下自主地生成编程命令、地址和数据,并且可将所生成的编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以便执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可控制至少两个存储器装置100。在这种情况下,存储器控制器200可使用交错方案来控制存储器装置100,以提高操作性能。
主机300可使用诸如以下的各种通信方法中的至少一种来与存储装置50通信:通用串行总线(USB)通信方法、串行AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速芯片间(HSIC)通信方法、小型计算机系统接口(SCSI)通信方法、外围组件互连(PCI)通信方法、高速PCI(PCIe)通信方法、高速非易失性存储器(NVMe)通信方法、通用闪存(UFS)通信方法、安全数字(SD)通信方法、多媒体卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、双列直插式存储器模块(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法以及低负载DIMM(LRDIMM)通信方法。
主机300可包括主机存储器310。主机存储器310可存储从映射数据控制器210接收的映射数据Mapping_DATA。从映射数据控制器210接收的映射数据Mapping_DATA可以是扩展映射数据。
当输出读取请求时,主机300可连同读取请求一起输出扩展映射数据。读取请求可以是针对存储器装置100中存储的特定数据的读取请求。扩展映射数据可包括对应于该读取请求的映射数据Mapping_DATA。当主机300向存储器控制器200输出扩展映射数据时,存储器控制器200可决定是否使用该扩展映射数据。存储器控制器200可基于扩展映射数据的附加字段中包括的数据来决定是否使用该扩展映射数据。
图2是示出图1的存储器控制器200的示例性配置以及生成普通映射数据和扩展映射数据的方法的示图。
参照图2,存储器控制器200可包括映射数据控制器210和位图信息生成器220。
映射数据控制器210可从主机300接收请求。映射数据控制器210可响应于从主机300接收的请求来生成映射数据Mapping_DATA。在实施例中,从主机300接收的请求可以是扩展映射数据请求或普通映射数据请求。
详细地,当从主机300接收的请求是普通映射数据请求时,映射数据控制器210可生成普通映射数据。普通映射数据可指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系。普通映射数据可不包括附加字段。映射数据控制器210可将普通映射数据输出到存储器装置100。在实施例中,存储器装置100可接收普通映射数据,并且可将普通映射数据存储在映射数据存储装置130中。
当从主机300接收的请求是扩展映射数据请求时,映射数据控制器210可附加地生成扩展映射数据。也就是说,当接收扩展映射数据请求时,映射数据控制器210可生成普通映射数据,然后可附加地生成扩展映射数据。扩展映射数据可以是包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA。热数据包括多个逻辑块地址。热数据可基于主机300向存储器控制器200输出特定逻辑块地址的频率来确定。在实施例中,主机300可设置热数据。
扩展映射数据可包括普通映射数据和附加字段。在附加字段中,可存储相应扩展映射数据的更新数量或者对来自存储器装置的读取数据进行错误校正所需的数据(例如,BCH(博斯-查德胡里-霍昆格姆)码或LDPC(低密度奇偶校验)码等)。
在实施例中,当映射数据控制器210响应于来自主机300的请求而生成扩展映射数据时,映射数据控制器210可向主机300和存储器装置100输出该扩展映射数据。主机300可将从映射数据控制器210接收的扩展映射数据存储在主机存储器310中。在实施例中,存储器装置100可将从映射数据控制器210接收的扩展映射数据存储在映射数据存储装置130中。
在实施例中,当响应于来自主机300的请求而生成扩展映射数据时,映射数据控制器210可生成并输出数据生成信息DG_INF。数据生成信息DG_INF可包括指示已生成扩展映射数据的信息。而且,数据生成信息DG_INF可包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。而且,数据生成信息DG_INF可指示已生成与扩展映射数据中包括的逻辑块地址(LBA)相对应的映射信息。
也就是说,为了指示已生成对应于特定逻辑块地址(LBA)的映射数据,可生成数据生成信息DG_INF。
位图信息生成器220可从映射数据控制器210接收数据生成信息DG_INF。当生成扩展映射数据时,可从映射数据控制器210输出数据生成信息DG_INF。当接收到数据生成信息DG_INF时,位图信息生成器220可基于数据生成信息DG_INF来生成位图信息BM_INF。位图信息BM_INF可包括引起在存储器装置的位图存储装置150中存储的位值BIT_VAL改变的信息。
详细地,位图信息BM_INF可包括用于将对应于映射数据组MD_Group的位值BIT_VAL从默认值改变为特定值的信息。映射数据组MD_Group可包括多条普通映射数据或多条扩展映射数据。在实施例中,可基于关于分别包括在映射数据组MD_Group中包括的多条扩展映射数据中的逻辑块地址(LBA)的信息来生成位图信息BM_INF。因此,位图信息BM_INF可以是用于将扩展映射数据与普通映射数据区分开的信息。
位图信息生成器220可向存储器装置100输出位图信息BM_INF。当接收到位图信息BM_INF时,存储器装置100可改变对应于映射数据组MD_Group的位值BIT_VAL,映射数据组MD_Group包括关于位图信息BM_INF中包括的逻辑块地址(LBA)的映射信息。
基于从位图信息生成器220输出的位图信息BM_INF,存储器装置100的位图存储装置150中存储的位值BIT_VAL可从默认值改变为特定值。位图存储装置150中存储的位值BIT_VAL发生改变,因此这可指示存储器装置100的映射数据存储装置130中存储的映射数据Mapping_DATA是扩展映射数据。也就是说,为了指示已生成扩展映射数据,对应于映射数据组的位值可被存储在存储器装置100中。
图3是示出图2的映射数据控制器210的示例性配置的框图。
参照图3,映射数据控制器210可包括映射数据生成器211、更新数量计数器213和映射数据确定器215。除了上述组件之外,映射数据控制器210可包括生成映射数据Mapping_DATA的各种组件。
映射数据控制器210可包括映射数据生成器211。映射数据生成器211可响应于从主机300接收的请求而生成映射数据Mapping_DATA。从主机300接收的请求可以是普通映射数据请求或扩展映射数据请求。
当映射数据生成器211响应于扩展映射数据请求而生成扩展映射数据时,映射数据生成器211可向主机300和存储器装置100输出扩展映射数据。详细地,主机300中包括的主机存储器310可存储从映射数据生成器211接收的扩展映射数据。存储器装置100中包括的映射数据存储装置130可存储从映射数据生成器211接收的扩展映射数据。
映射数据控制器210可包括更新数量计数器213。更新数量计数器213可对映射数据Mapping_DATA的更新数量进行计数。详细地,由映射数据生成器211生成新的映射数据Mapping_DATA可指示更新了现有的映射数据Mapping_DATA。
每当映射数据生成器211响应于从主机300接收的请求而生成映射数据Mapping_DATA时,更新数量计数器213可从映射数据生成器211接收逻辑块地址信息LBA_INF和更新信息UPDATE_INF。逻辑块地址信息LBA_INF可以是关于响应于从主机300接收的请求而生成的映射数据Mapping_DATA中包括的逻辑块地址(LBA)的信息。当接收到包括与先前生成的映射数据中包括的逻辑块地址相同的逻辑块地址的映射数据生成请求时,可从映射数据生成器211输出更新信息UPDATE_INF。
更新数量计数器213可基于逻辑块地址信息LBA_INF和更新信息UPDATE_INF来对更新数量进行计数。更新数量计数器213可针对逻辑块地址信息LBA_INF中的每个逻辑块地址(LBA),对更新数量进行计数,即每当接收到更新信息UPDATE_INF时就可进行计数。更新数量计数器213可针对每个逻辑块地址(LBA),对映射数据Mapping_DATA的更新数量进行计数。
更新数量计数器213可输出计数信息COUNT_INF,该计数信息COUNT_INF包括指示如上所述所计数的更新数量的计数值。计数信息COUNT_INF可包括包含相应逻辑块地址(LBA)的映射数据的更新数量。映射数据生成器211可接收计数信息COUNT_INF,并且当生成扩展映射数据时,可将更新数量存储在附加字段中。
映射数据控制器210可包括映射数据确定器215。映射数据确定器215可从存储器装置100接收位值BIT_VAL。详细地,映射数据确定器215可接收位图存储装置150中存储的位图中包括的位值BIT_VAL。位值BIT_VAL可指示映射数据是扩展映射数据。
图4是用于说明普通映射数据的示图。
参照图4,映射数据控制器210可响应于来自主机300的请求而生成普通映射数据。该请求可以是普通映射数据请求。普通映射数据可以是各种映射数据,即第一至第四映射数据Mapping_DATA1至Mapping_DATA4中的一个。普通映射数据可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。普通映射数据可能不包括附加字段。
也就是说,映射数据控制器210可响应于从主机300接收的普通映射数据请求而生成第一至第四映射数据Mapping_DATA1至Mapping_DATA4。在另一实施例中,映射数据控制器210可生成多于四条的普通映射数据。
第一至第四条映射数据Mapping_DATA1至Mapping_DATA4中的每一条映射数据可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。在实施例中,第一映射数据Mapping_DATA1可包括指示第一逻辑块地址(LBA1)与第一物理块地址(PBA1)之间的映射关系的映射信息。第二映射数据Mapping_DATA2可包括指示第二逻辑块地址(LBA2)与第二物理块地址(PBA2)之间的映射关系的映射信息。第三映射数据Mapping_DATA3可包括指示第三逻辑块地址(LBA3)与第三物理块地址(PBA3)之间的映射关系的映射信息。第四映射数据Mapping_DATA4可包括指示第四逻辑块地址(LBA4)与第四物理块地址(PBA4)之间的映射关系的映射信息。
在实施例中,映射数据控制器210可生成普通映射数据,然后生成扩展映射数据。详细地,当从主机300接收的请求是扩展映射数据请求时,映射数据控制器210可附加地生成扩展映射数据。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。
映射数据控制器210可将普通映射数据输出到存储器装置100。在实施例中,存储器装置100可接收普通映射数据,并且可将该普通映射数据存储在映射数据存储装置130中。
图5是用于说明扩展映射数据的生成的示图。
参照图5,映射数据控制器210可响应于从主机300接收的请求而生成扩展映射数据。所接收的请求可以是扩展映射数据请求。扩展映射数据可以是各种映射数据,即Mapping_DATA2a、Mapping_DATA4a中的一个。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。
扩展映射数据可包括附加字段和指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。普通映射数据可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。也就是说,扩展映射数据可包括普通映射数据和附加字段。
当接收到扩展映射数据请求时,映射数据控制器210可生成普通映射数据,并且此后可附加地生成扩展映射数据。也就是说,当接收到包括第二逻辑块地址(LBA2)的扩展映射数据生成请求时,映射数据控制器210可在生成对应于第二逻辑块地址(LBA2)的普通映射数据之后,生成对应于第二逻辑块地址(LBA2)的扩展映射数据,其中第二逻辑块地址(LBA2)是热数据中包括的逻辑块地址。因此,映射数据控制器210可生成作为普通映射数据的第二映射数据Mapping_DATA2,并且此后生成作为扩展映射数据的第2a映射数据Mapping_DATA2a。
在实施例中,当接收到包括第四逻辑块地址(LBA4)的扩展映射数据生成请求时,映射数据控制器210可生成作为对应于第四逻辑块地址(LBA4)的普通映射数据的第四映射数据Mapping_DATA4,并且此后生成作为对应于第四逻辑块地址(LBA4)的扩展映射数据的第4a映射数据Mapping_DATA4a,其中第四逻辑块地址(LBA4)是热数据中包括的另外逻辑块地址。
映射数据控制器210可响应于从主机300接收的扩展映射数据请求,生成扩展映射数据,即第2a和第4a映射数据Mapping_DATA2a和Mapping_DATA4a。在实施例中,映射数据控制器210可生成更多条数的扩展映射数据。
第2a映射数据Mapping_DATA2a和第4a映射数据Mapping_DATA4a中的每一个可包括相应的附加字段k2a或k4a以及指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。在实施例中,第2a映射数据Mapping_DATA2a和第4a映射数据Mapping_DATA4a中的每一个可包括普通映射数据和附加字段。
也就是说,第2a映射数据Mapping_DATA2a可包括附加字段k2a和指示第二逻辑块地址(LBA2)与第二物理块地址(PBA2)之间的映射关系的映射信息。第4a映射数据Mapping_DATA4a可包括附加字段k4a和指示第四逻辑块地址(LBA4)与第四物理块地址(PBA4)之间的映射关系的映射信息。第2a映射数据Mapping_DATA2a和第4a映射数据Mapping_DATA4a中的附加字段k2a和k4a可分别存储相关联扩展映射数据的更新数量或错误校正所需的数据。
在实施例中,当扩展映射数据的更新数量存储在相应的附加字段中时,映射数据控制器210可基于附加字段中存储的数据来确定待输出到存储器装置100的映射数据Mapping_DATA。在实施例中,当扩展映射数据中的附加字段中包括用于校正包括在来自存储器装置的读取数据中的错误的数据(例如,BCH(博斯-查德胡里-霍昆格姆)码或LDPC(低密度奇偶校验)码等)时,存储器控制器200可基于附加字段中存储的数据来执行校正扩展映射数据中发生的错误的操作。
在实施例中,当映射数据控制器210响应于来自主机300的请求而生成扩展映射数据时,映射数据控制器210可向主机300和存储器装置100输出扩展映射数据。主机300可将从映射数据控制器210接收的扩展映射数据存储在主机存储器310中。在实施例中,存储器装置100可将从映射数据控制器210接收的扩展映射数据存储在映射数据存储装置130中。
图6是示出生成其中映射数据的更新数量存储在附加字段中的扩展映射数据的方法的示图。
参照图6,映射数据控制器210可包括映射数据生成器211和更新数量计数器213。在图6中,为了清楚,省略了可包括在映射数据控制器210中的映射数据确定器215。映射数据生成器211可响应于来自主机300的请求而生成普通映射数据或扩展映射数据。更新数量计数器213可对映射数据Mapping_DATA被更新的次数,即映射数据Mapping_DATA的更新数量进行计数。
详细地,映射数据生成器211可从主机300接收请求。所接收的请求可以是普通映射数据请求或扩展映射数据请求。普通映射数据请求可以是生成包括非热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。映射数据生成器211可生成对应于请求的映射数据Mapping_DATA。
从主机300接收的请求可包括关于逻辑块地址(LBA)的信息,该信息可以是逻辑块地址信息LBA_INF。逻辑块地址信息LBA_INF可以是关于响应于从主机300接收的请求而生成的映射数据Mapping_DATA中包括的逻辑块地址(LBA)的信息。
映射数据生成器211可响应于从主机300接收的请求,将逻辑块地址信息LBA_INF和更新信息UPDATE_INF输出到更新数量计数器213。逻辑块地址信息LBA_INF可以是关于响应于从主机300接收的请求而生成的映射数据Mapping_DATA中包括的逻辑块地址(LBA)的信息。
映射数据生成器211可响应于从主机300接收的请求,生成更新信息UPDATE_INF,并且将该更新信息UPDATE_INF输出到更新数量计数器213。当接收到生成包括与先前生成的映射数据Mapping_DATA中包括的逻辑块地址(LBA)相同的地址的映射数据Mapping_DATA的请求时,可生成更新信息UPDATE_INF。
因此,更新信息UPDATE_INF可指示响应于从主机300接收的请求,已生成针对相同逻辑块地址(LBA)的新的映射数据Mapping_DATA。也就是说,更新信息UPDATE_INF可指示已更新包括相同逻辑块地址(LBA)的映射数据Mapping_DATA。
当接收到逻辑块地址信息LBA_INF时,更新数量计数器213可针对每个逻辑块地址(LBA),对接收到更新信息UPDATE_INF的次数进行计数,以生成累积计数。详细地,更新数量计数器213接收更新信息UPDATE_INF的次数可指示包括逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射数据Mapping_DATA的更新数量。因此,更新数量计数器213可针对每个逻辑块地址(LBA),对映射数据Mapping_DATA的更新数量进行计数。
更新数量计数器213可对映射数据Mapping_DATA的更新数量进行计数,而不考虑从主机300接收的请求类型。从主机300接收的请求类型可以是生成包括非热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求,或者是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。也就是说,因为非热数据可改变为热数据,或者反之亦然,所以需要对映射数据Mapping_DATA的更新数量进行计数,而不考虑从主机300接收的请求类型。
更新数量计数器213可将通过对映射数据Mapping_DATA的更新数量进行计数而生成的计数信息COUNT_INF输出到映射数据生成器211。计数信息COUNT_INF可包括关于映射数据Mapping_DATA的更新数量的信息。因此,更新数量计数器213可输出针对每个逻辑块地址(LBA)的计数信息COUNT_INF。
映射数据生成器211可基于从主机300接收的请求和计数信息COUNT_INF来生成映射数据Mapping_DATA。
详细地,从主机300接收的请求可以是普通映射数据请求。普通映射数据请求可以是生成包括非热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。映射数据生成器211可响应于从主机300接收的普通映射数据请求而生成普通映射数据Mapping_DATA。也就是说,映射数据生成器211可生成不包括附加字段的映射数据Mapping_DATA。在这种情况下,映射数据生成器211可忽略从更新数量计数器213接收的计数信息COUNT_INF。
从主机300接收的请求可以是扩展映射数据请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。映射数据生成器211可响应于从主机300接收的扩展映射数据请求而生成扩展映射数据。也就是说,映射数据生成器211可生成包括附加字段的映射数据Mapping_DATA。在这种情况下,映射数据生成器211可生成其中从更新数量计数器213接收的计数信息COUNT_INF存储在附加字段中的映射数据Mapping_DATA。计数信息COUNT_INF可包括关于映射数据Mapping_DATA的更新数量的信息。
图7是用于说明图1的存储器装置中存储的位图的示图。
参照图4、图5和图7,映射数据控制器210可响应于从主机300接收的请求而生成普通映射数据或扩展映射数据。也就是说,由映射数据控制器210生成的映射数据的类型可以是普通映射数据或扩展映射数据。
当从主机300接收的请求是普通映射数据请求时,可生成普通映射数据。详细地,当从主机300接收到生成包括非热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求时,可生成普通映射数据。
当从主机300接收的请求是扩展映射数据请求时,可生成扩展映射数据。也就是说,当从主机300接收到生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求时,可生成扩展映射数据。
可将多条普通映射数据和多条扩展映射数据划分成多个映射数据组。映射数据组中的每一个可以包括一种类型映射数据,即普通映射数据或扩展映射数据中的多条映射数据。映射数据组中的每一个可包括相同条数的映射数据。
在图7中,第一至第四条映射数据Mapping_DATA1至Mapping_DATA4是普通映射数据。第一至第四条映射数据Mapping_DATA1至Mapping_DATA4中的每一个可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。在另一实施例中,可生成多于四条的普通映射数据。
可将第一至第四条映射数据Mapping_DATA1至Mapping_DATA4划分成第一映射数据组和第二映射数据组MD_Group1和MD_Group2。在实施例中,第一映射数据组MD_Group1可包括两条映射数据:Mapping_DATA1和Mapping_DATA2,并且第二映射数据组可包括第三和第四映射数据Mapping_DATA3和Mapping_DATA4。映射数据控制器210可基于映射数据组来向主机300和/或存储器装置100传送映射数据。
虽然在图7中,单个映射数据组中包括两条映射数据,但本发明不限于该配置;单个映射数据组可包括多于两条的映射数据。
第2a映射数据Mapping_DATA2a和第4a映射数据Mapping_DATA4a可以是扩展映射数据。第2a映射数据Mapping_DATA2a和第4a映射数据Mapping_DATA4a中的每一个可包括附加字段和指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。在另一实施例中,可生成多于两条的扩展映射数据。
第2a和第4a映射数据Mapping_DATA2a和Mapping_DATA4a可被包括在第三映射数据组MD_Group3中。在实施例中,第三映射数据组MD_Group3可包括两条映射数据,这与第一和第二映射数据组MD_Group1和MD_Group2的每一个中的映射数据的条数相同。
第三映射数据组MD_Group3可包括第2a和第4a映射数据Mapping_DATA2a和Mapping_DATA4a。映射数据控制器210可基于映射数据组来向主机300和/或存储器装置100传送映射数据。
存储器装置100中包括的映射数据存储装置130可存储从映射数据控制器210接收的普通映射数据或扩展映射数据。映射数据存储装置130可响应于来自存储器控制器200的请求,输出映射数据存储装置130中存储的映射数据Mapping_DATA。映射数据存储装置130可基于映射数据组输出映射数据。
存储器装置100可与映射数据Mapping_DATA分开地存储位图。位图可存储在存储器装置100中包括的位图存储装置150中。位图可包括指示映射数据Mapping_DATA是扩展映射数据的位值BIT_VAL。
详细地,位图可包含对应于各个映射数据组MD_Group的位值BIT_VAL。可将位图中包括的位值BIT_VAL设置为默认值。默认值可以是“0”或“1”。
在图7中,默认值为“0”。
因此,当将从映射数据控制器210接收的普通映射数据或扩展映射数据存储在映射数据存储装置130中时,可将与包括多条映射数据的映射数据组MD_Group相对应的位值BIT_VAL设置为“0”。也就是说,可将位值BIT_VAL存储在用于各个映射数据组MD_Group的位图中。
因此,可将用于各个映射数据组MD_Groups的位图中的初始位值BIT_VAL设置为“0”。因此,当生成初始映射数据Mapping_DATA时,所有的位值BIT_VAL都为“0”。也就是说,当存储器控制器200生成初始映射数据Mapping_DATA时,位图存储装置150可存储其中所有位值BIT_VAL都为“0”的位图。
当从位图信息生成器220接收到位图信息BM_INF时,位图存储装置150可将位图中的位值BIT_VAL从默认值改变为特定值。也就是说,位图存储装置150可从存储器控制器200接收位图信息BM_INF,然后存储位图。
可基于从映射数据控制器210接收的数据生成信息DG_INF来生成位图信息BM_INF。位图信息BM_INF可以是用于指示由映射数据控制器210生成的映射数据Mapping_DATA是扩展映射数据的信息。位图信息BM_INF可被生成为包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。因此,位图信息BM_INF可以是用于将扩展映射数据与普通映射数据区分开的信息。
在实施例中,因为默认值为“0”,所以位图存储装置150可接收位图信息BM_INF,并且此后将与扩展映射数据所属的映射数据组相对应的位值BIT_VAL从“0”改变为“1”。详细地,位图存储装置150可将对应于扩展映射数据的位值BIT_VAL从“0”改变为“1”。当位值BIT_VAL改变时,位图可指示具有改变的位值BIT_VAL的映射数据组中包括的映射数据Mapping_DATA是扩展映射数据。
在实施例中,位图存储装置150可将对应于第三映射数据组MD_Group3的位值BIT_VAL从“0”改变为“1”。位值BIT_VAL的改变可指示第2a和第4a映射数据Mapping_DATA2a和Mapping_DATA4a是扩展映射数据。
因此,当存储器控制器200生成初始映射数据Mapping_DATA时,位图存储装置150可存储所有位值BIT_VAL都为“0”的位图。此后,位图存储装置150可从存储器控制器200接收位图信息BM_INF,并且存储对应于位图信息BM_INF的位值BIT_VAL被改变的位图。
图8是示出例如存储器控制器200的存储器控制器响应于来自主机的映射数据请求来输出映射数据的方法的示图。
参照图8,映射数据控制器210可包括映射数据生成器211和映射数据确定器215。在图8中,为了清楚,省略了映射数据控制器210中包括的更新数量计数器213。映射数据生成器211可响应于来自主机300的请求而生成普通映射数据或扩展映射数据。
详细地,映射数据生成器211可从主机300接收请求(①)。所接收的请求可以是普通映射数据请求或扩展映射数据请求。普通映射数据请求可以是生成包括非热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。
在实施例中,映射数据生成器211可响应于从主机300接收的请求而向存储器装置100输出映射数据读取命令(②)。
详细地,从主机300接收的请求是生成映射数据Mapping_DATA的请求,因此映射数据生成器211可执行检查先前生成的映射数据是否存储在存储器装置100中的操作。因此,映射数据存储装置211可基于从主机300接收的请求,检查包括请求中包括的逻辑块地址(LBA)的映射数据Mapping_DATA是否存储在存储器装置100中。
在实施例中,映射数据生成器211可传送请求读取存储器装置100中存储的映射数据Mapping_DATA的映射数据读取命令。存储器装置100可响应于映射数据读取命令而输出存储器装置100中存储的映射数据Mapping_DATA。从存储器装置100输出的映射数据Mapping_DATA可以是第一映射数据Mapping_DATA1。第一映射数据Mapping_DATA1可包括从主机300接收的请求中包括的逻辑块地址(LBA)。
在实施例中,当存储器装置100中不存在包括从主机300接收的请求中包括的逻辑块地址(LBA)的映射数据Mapping_DATA时,可不输出第一映射数据Mapping_DATA1。
在实施例中,存储器装置100可在将第一映射数据Mapping_DATA1输出到映射数据生成器211的同时,将对应于第一映射数据Mapping_DATA1的位值BIT_VAL输出到映射数据确定器215(③)。位值BIT_VAL可以是位图存储装置150中存储的位图中包括的值。位值BIT_VAL可以是“0”或“1”。位值BIT_VAL可以是用于将普通映射数据与扩展映射数据区分开的数据值。
因此,存储器装置100可在将包括第一映射数据Mapping_DATA1的第一映射数据组MD_Group1中包括的多条映射数据输出到映射数据生成器211的同时,将对应于第一映射数据组MD_Group1的位值BIT_VAL输出到映射数据确定器215。
当从存储器装置100接收到位值BIT_VAL时,映射数据确定器215可基于位值BIT_VAL来生成数据信息DATA_INF,然后可将所生成的数据信息DATA_INF输出到映射数据生成器211(④)。数据信息DATA_INF可指示从存储器装置100输出的第一映射数据Mapping_DATA1是普通映射数据还是扩展映射数据。
映射数据生成器211可从映射数据确定器215接收数据信息DATA_INF,然后可确定是否生成扩展映射数据。
详细地,即使从主机300接收的请求是生成扩展映射数据的请求,从存储器装置100接收的第一映射数据Mapping_DATA1也可能是普通映射数据。该普通映射数据可通过数据信息DATA_INF而被识别。
在这种情况下,映射数据生成器211可执行生成扩展映射数据的操作。当生成扩展映射数据时,映射数据生成器211可向主机300输出第二映射数据Mapping_DATA2(⑤)。第二映射数据Mapping_DATA2可以是响应于从主机300接收的扩展映射数据请求而生成的扩展映射数据。
在实施例中,从主机300接收的请求可以是生成扩展映射数据的请求,并且从存储器装置100接收的第一映射数据Mapping_DATA1可能是扩展映射数据。该扩展映射数据可通过数据信息DATA_INF而被识别。
在这种情况下,映射数据生成器211可不执行生成扩展映射数据的操作。也就是说,映射数据生成器211可响应于从存储器装置100接收的第一映射数据Mapping_DATA1而输出第二映射数据Mapping_DATA2(⑤)。第二映射数据Mapping_DATA2可以是从存储器装置100接收的第一映射数据Mapping_DATA1。因此,从映射数据生成器211输出的第二映射数据Mapping_DATA2可与第一映射数据Mapping_DATA1相同。
图9是示出将对应于来自主机的请求的映射数据输出到图1的存储器装置的方法的示图。
参照图9,映射数据控制器210可从主机300接收请求和映射数据Mapping_DATA。从主机300接收的映射数据Mapping_DATA可以是扩展映射数据。扩展映射数据可包括普通映射数据和附加字段。从主机300接收的映射数据Mapping_DATA可以是第三映射数据Mapping_DATA3。从主机300接收的请求可以是对存储器装置100中存储的数据的读取请求。也就是说,当从主机300接收到读取请求时,映射数据控制器210可从主机300一起接收扩展映射数据和读取请求。
映射数据控制器210可确定是否使用从主机300接收的第三映射数据Mapping_DATA3。详细地,映射数据控制器210可基于第三映射数据Mapping_DATA3的附加字段中包括的数据来确定是否使用第三映射数据Mapping_DATA3。第三映射数据Mapping_DATA3的附加字段中包括的数据可以是第三映射数据Mapping_DATA3的更新数量。
映射数据控制器210可接收存储器装置100中存储的映射数据Mapping_DATA。映射数据控制器210可响应于从主机300接收的请求,将请求存储器装置100中存储的映射数据Mapping_DATA的命令输出到存储器装置100。存储器装置100可响应于请求映射数据Mapping_DATA的命令而输出所存储的映射数据Mapping_DATA。从存储器装置100输出到映射数据控制器210的映射数据Mapping_DATA可以是第四映射数据Mapping_DATA4。第四映射数据Mapping_DATA4可以是扩展映射数据,在这种情况下,第四映射数据Mapping_DATA4可包括附加字段,第四映射数据Mapping_DATA4的更新数量可存储在附加字段中。
映射数据控制器210可将从主机300接收的第三映射数据Mapping_DATA3与从存储器装置100接收的第四映射数据Mapping_DATA4进行比较。第三映射数据Mapping_DATA3可以是与来自主机300的请求相对应的映射数据Mapping_DATA。第四映射数据Mapping_DATA4可以是与从映射数据控制器210输出并且请求映射数据Mapping_DATA的命令相对应的数据。
第三和第四映射数据Mapping_DATA3和Mapping_DATA4可以是扩展映射数据。第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4中的每一个可包括存储更新数量的附加字段。映射数据控制器210可基于第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4的附加字段中存储的更新数量,将第五映射数据Mapping_DATA5输出到存储器装置100。第五映射数据Mapping_DATA5可以是第三映射数据Mapping_DATA3或第四映射数据Mapping_DATA4。存储器装置100可接收第五映射数据Mapping_DATA5,并且可将在第五映射数据Mapping_DATA5中包括的物理块地址(PBA)处存储的数据输出到存储器控制器200。
在实施例中,映射数据控制器210可基于第三和第四映射数据Mapping_DATA3和Mapping_DATA4的附加字段中存储的更新数量,将第五映射数据Mapping_DATA5输出到存储器装置100。也就是说,当第三映射数据Mapping_DATA3的附加字段中存储的更新数量大于第四映射数据Mapping_DATA4的附加字段中存储的更新数量时,可将第三映射数据Mapping_DATA3作为第五映射数据Mapping_DATA5输出。相反,当第三映射数据Mapping_DATA3的附加字段中存储的更新数量小于第四映射数据Mapping_DATA4的附加字段中存储的更新数量时,可将第四映射数据Mapping_DATA4作为第五映射数据Mapping_DATA5输出。当第三映射数据Mapping_DATA3的附加字段中存储的更新数量等于第四映射数据Mapping_DATA4的附加字段中存储的更新数量时,可将第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4中的任一个作为第五映射数据Mapping_DATA5输出。
因此,与更新数量较小的映射数据相比,更新数量较大的映射数据可以是最新生成的映射数据。也就是说,更新数量较大的扩展映射数据可以是最新生成的扩展映射数据。因此,映射数据控制器210可输出附加字段中存储的更新数量较大的扩展映射数据。
当多条扩展映射数据的附加字段中存储的更新数量彼此相等时,从主机300接收的映射数据与从存储器装置100接收的映射数据相同,因此映射数据控制器210可输出所接收的多条映射数据中的任意一条。
图10是示出图1的存储器装置的示例性结构的框图。
参照图10,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑125。
存储器单元阵列110包括多个存储块BLK1至BLKz。存储块BLK1至BLKz通过行线RL联接到地址解码器121,并且通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。
根据用途或系统考虑,可将存储器单元划分成多个块。与控制存储器装置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包括第一页面缓冲器PB1至第m页面缓冲器PBm。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一页面缓冲器PB1至第m页面缓冲器PBm在控制逻辑125的控制下操作。
第一页面缓冲器PB1至第m页面缓冲器PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一页面缓冲器PB1至第m页面缓冲器PBm通过数据输入/输出电路124和数据线DL而接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到每个所选择字线时,第一页面缓冲器PB1至第m页面缓冲器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。
图11是示出图10的存储器单元阵列的实施例的示图。
参照图11,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元布置在正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向上。下面将参照图12和图13详细地描述每个存储块的结构。
图12是示出图11的存储块BLK1至BLKz中的代表存储块BLKa的电路图。
参照图12,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”形。在存储块BLKa中,m个单元串布置在行方向(即,正(+)X方向)上。在图12中,示出两个单元串布置在列方向(即,正(+)Y方向)上。然而,该图示是为了清楚,三个或更多个单元串可布置在列方向上。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可分别具有相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可为每个单元串设置用于提供沟道层的柱。在实施例中,可为每个单元串设置用于提供沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST连接在共源线CSL与存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图12中,第一行中的单元串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存储器单元MCp+1至第n存储器单元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。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图12中,第一列中的单元串CS11和CS21联接到第一位线BL1。第m列中的单元串CS1m和CS2m联接到第m位线BLm。
布置在行方向上的单元串中的、联接到相同字线的存储器单元构成单个页面。例如,第一行的单元串CS11至CS1m之中的、联接到第一字线WL1的存储器单元构成单个页面。第二行的单元串CS21至CS2m之中的、联接到第一字线WL1的存储器单元构成单个另外页面。可通过选择漏极选择线DSL1和DSL2中的任意一个来选择布置在单个行的方向上的单元串。可通过选择字线WL1至WLn中的任意一个来从所选择单元串之中选择单个页面。
在实施例中,可设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。此外,在行方向上布置的单元串CS11至CS1m或CS21至CS2m之中的偶数编号的单元串可分别联接到偶数位线,在行方向上布置的单元串CS11至CS1m或CS21至CS2m之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减少源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,设置一个或多个虚设存储器单元以减少漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKa的操作可靠性提高,但存储块BLKa的大小增加。随着设置更少的虚设存储器单元,存储块BLKa的大小减小,但存储块BLKa的操作可靠性可能劣化。
为了有效地控制虚设存储器单元,虚设存储器单元中的每一个可具有需要的阈值电压。在执行存储块BLKa的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已经执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图13是示出图11的存储块BLK1至BLKz中的代表存储块BLKb的示例的电路图。
参照图13,存储块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之外,图13的存储块BLKb具有与图12的存储块BLKa的电路相似或等效的电路。
在实施例中,可设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。此外,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可分别联接到偶数位线,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减少源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可选地,设置一个或多个虚设存储器单元以减少漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKb的操作可靠性提高,但存储块BLKb的大小增加。随着设置更少的虚设存储器单元,存储块BLKb的大小减小,但存储块BLKb的操作的可靠性可能劣化。
为了有效地控制虚设存储器单元,虚设存储器单元中的每一个可具有需要的阈值电压。在执行存储块BLKb的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已经执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图14是示出根据本公开的实施例的例如存储器控制器200的存储器控制器的操作的流程图。
参照图14,在步骤S1401中,映射数据控制器210可从主机300接收请求。所接收的请求可以是普通映射数据请求或扩展映射数据请求。普通映射数据请求可以是生成包括热数据以外的区域的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。当从主机300接收到普通映射数据请求或扩展映射数据请求时,映射数据控制器210可生成映射数据Mapping_DATA。
在步骤S1403中,映射数据控制器210可生成并输出普通映射数据。也就是说,不管从主机300接收的请求是普通映射数据请求还是扩展映射数据请求,都可生成和输出普通映射数据。因此,当从主机300接收到普通映射数据请求或扩展映射数据请求时,映射数据控制器210可生成普通映射数据。
普通映射数据可包括指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的映射信息。普通映射数据可不包括附加字段。
在步骤S1405中,映射数据控制器210可确定从主机300接收的请求是否是扩展映射数据请求。当是扩展映射数据请求时,进程进行到步骤S1407。当从主机300接收的请求不是扩展映射数据请求时,从主机300接收的请求可以是普通映射数据请求。
在步骤S1407中,映射数据控制器210可生成并输出扩展映射数据。可响应于从主机300接收的扩展映射数据请求而生成扩展映射数据。扩展映射数据可以是包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA。可基于主机300访问存储器控制器200的特定区域的频率来确定热数据。在实施例中,主机300可设置热数据。
在步骤S1409中,映射数据控制器210可生成数据生成信息DG_INF。数据生成信息DG_INF可包括指示已生成扩展映射数据的信息。而且,数据生成信息DG_INF可包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。而且,数据生成信息DG_INF可指示已生成与扩展映射数据中包括的逻辑块地址(LBA)相对应的映射信息。
也就是说,为了指示已生成对应于特定逻辑块地址(LBA)的映射数据,可生成数据生成信息DG_INF。
在步骤S1411中,位图信息生成器220可生成并输出位图信息BM_INF。详细地,当位图信息生成器220从映射数据控制器210接收到数据生成信息DG_INF时,位图信息生成器220可基于数据生成信息DG_INF来生成位图信息BM_INF。位图信息BM_INF可被生成为包括关于扩展映射数据中包括的逻辑块地址(LBA)的信息。
因此,位图信息BM_INF可以是用于将扩展映射数据与普通映射数据区分开的信息。位图信息BM_INF可以是用于改变存储器装置100中存储的位图中包括的位值BIT_VAL的信息。当接收到位图信息BM_INF时,存储器装置100可改变位图中包括的位值BIT_VAL。
图15是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图15,在步骤S1501中,映射数据控制器210可从主机300接收请求。所接收的请求可以是普通映射数据请求或扩展映射数据请求。普通映射数据请求可以是生成包括热数据以外的区域的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。当从主机300接收到普通映射数据请求或扩展映射数据请求时,映射数据控制器210可生成映射数据Mapping_DATA。
在步骤S1503中,映射数据控制器210可生成逻辑块地址信息LBA_INF。逻辑块地址信息LBA_INF可以是关于响应于从主机300接收的请求而生成的映射数据Mapping_DATA中包括的逻辑块地址(LBA)的信息。
详细地,每当映射数据生成器211响应于从主机300接收的请求而生成映射数据Mapping_DATA时,可生成逻辑块地址信息LBA_INF和更新信息UPDATE_INF。因此,每当生成映射数据Mapping_DATA时,映射数据生成器211可生成逻辑块地址信息LBA_INF。
在步骤S1505中,更新数量计数器213可基于从映射数据生成器211接收的逻辑块地址信息LBA_INF和更新信息UPDATE_INF,针对每个逻辑块地址(LBA)来对映射数据Mapping_DATA的更新数量进行计数。
详细地,每当从映射数据生成器211接收到更新信息UPDATE_INF时,更新数量计数器213可对与逻辑块地址信息LBA_INF中包括的逻辑块地址相对应的映射数据的更新数量进行计数。也就是说,每当更新映射数据Mapping_DATA时,映射数据生成器211输出逻辑块地址信息LBA_INF,因此可基于逻辑块地址信息LBA_INF来对映射数据Mapping_DATA的更新数量进行计数。
更新数量计数器213可对映射数据Mapping_DATA的更新数量进行计数,而不考虑从主机300接收的请求类型。从主机300接收的请求类型可以是生成包括热数据以外的区域的逻辑块地址(LBA)的映射数据Mapping_DATA的请求,或者是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。也就是说,因为非热数据可改变为热数据,或者热数据可改变为非热数据,所以需要对映射数据Mapping_DATA的更新数量进行计数,而不考虑从主机300接收的请求类型。
在步骤S1507中,映射数据生成器211可确定从主机300接收的请求是否是扩展映射数据请求。当确定接收到的请求不是扩展映射数据请求时,进程进行到步骤S1509。当确定接收到的请求是扩展映射数据请求时,进程进行到步骤S1511。
在步骤S1509中,当从主机300接收的请求不是扩展映射数据请求时,即当从主机300接收的请求是普通映射数据请求时,映射数据生成器211可生成并输出普通映射数据。详细地,映射数据生成器211可响应于从主机300接收的普通映射数据请求而生成普通映射数据。也就是说,映射数据生成器211可生成不包括附加字段的映射数据Mapping_DATA。在这种情况下,映射数据生成器211可忽略从更新数量计数器213接收的计数信息COUNT_INF。
在步骤S1511中,更新数量计数器213可基于所计数的更新数量来生成计数信息COUNT_INF。当对映射数据Mapping_DATA的更新数量进行计数时,更新数量计数器213可将计数信息COUNT_INF输出到映射数据生成器211。计数信息COUNT_INF可包括关于映射数据Mapping_DATA的更新数量的信息。因此,更新数量计数器213可输出每个逻辑块地址(LBA)的计数信息COUNT_INF。
在步骤S1513中,映射数据生成器211可基于计数信息来生成扩展映射数据。详细地,映射数据生成器211可响应于从主机300接收的扩展映射数据请求来生成扩展映射数据。也就是说,映射数据生成器211可生成包括附加字段的映射数据Mapping_DATA。在这种情况下,映射数据生成器211可生成从更新数量计数器213接收的计数信息COUNT_INF被包括在附加字段中的映射数据Mapping_DATA。计数信息COUNT_INF可包括关于映射数据Mapping_DATA的更新数量的信息。
图16是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图16,在步骤S1601中,映射数据控制器210可从主机300接收请求。从主机300接收的请求可以是普通映射数据请求或扩展映射数据请求。普通映射数据请求可以是生成包括热数据以外的区域的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。扩展映射数据请求可以是生成包括热数据中包括的逻辑块地址(LBA)的映射数据Mapping_DATA的请求。当从主机300接收到普通映射数据请求或扩展映射数据请求时,映射数据控制器210可生成映射数据Mapping_DATA。
在步骤1603中,映射数据控制器210可接收存储器装置100中存储的映射数据Mapping_DATA。
详细地,从主机300接收的请求是生成映射数据Mapping_DATA的请求,因此映射数据生成器211可执行检查先前生成的映射数据是否存储在存储器装置100中的操作。因此,映射数据存储装置211可基于从主机300接收的请求,来检查包括该请求中包括的逻辑块地址(LBA)的映射数据Mapping_DATA是否存储在存储器装置100中。因此,映射数据生成器211可接收与请求读取映射数据的映射数据读取命令相对应的映射数据Mapping_DATA。
在步骤1605中,当接收存储器装置100中存储的映射数据Mapping_DATA时,映射数据控制器210还可接收存储器装置100中存储的位值BIT_VAL。详细地,映射数据控制器210可在接收映射数据Mapping_DATA的同时,接收与包括映射数据Mapping_DATA的映射数据组MD_Group相对应的位值BIT_VAL。位值BIT_VAL可被包括在存储器装置100的位图存储装置150中存储的位图中。位值BIT_VAL可以是“0”或“1”。位值BIT_VAL可将普通映射数据与扩展映射数据区分开。
在步骤S1607中,映射数据确定器215可基于位值BIT_VAL来生成数据信息DATA_INF。详细地,当从存储器装置100接收到位值BIT_VAL时,映射数据确定器215可基于位值BIT_VAL来生成数据信息DATA_INF,并且可将所生成的数据信息DATA_INF输出到映射数据生成器211。数据信息DATA_INF可以是指示从存储器装置100输出的映射数据Mapping_DATA是普通映射数据还是扩展映射数据的信息。映射数据生成器211可从映射数据确定器215接收数据信息DATA_INF,然后可确定是否生成扩展映射数据。
在步骤S1609中,可确定从主机300接收的请求是否是扩展映射数据请求。当从主机300接收的请求是扩展映射数据请求时,进程进行到步骤S1611。
在步骤S1611中,可确定数据信息DATA_INF是否包括指示普通映射数据的信息。数据信息DATA_INF可指示从存储器装置100输出的映射数据Mapping_DATA是普通映射数据还是扩展映射数据。当数据信息DATA_INF指示普通映射数据时,进程进行到步骤S1613。当数据信息DATA_INF不指示普通映射数据时,进程进行到步骤S1615。当数据信息DATA_INF不指示普通映射数据时,数据信息DATA_INF可指示扩展映射数据。
在步骤S1613中,映射数据控制器210可生成并输出扩展映射数据。详细地,即使从主机300接收的请求是生成扩展映射数据的请求,从存储器装置100接收的映射数据Mapping_DATA也可能是普通映射数据。普通映射数据可通过数据信息DATA_INF而被识别。
在这种情况下,映射数据控制器210可执行生成扩展映射数据的操作。当生成扩展映射数据时,映射数据控制器210可将所生成的扩展映射数据输出到主机300。
在步骤S1615中,映射数据控制器210可输出从存储器装置100接收的映射数据Mapping_DATA。详细地,从主机300接收的请求可以是生成扩展映射数据的请求,并且从存储器装置100接收的映射数据Mapping_DATA可以是扩展映射数据。扩展映射数据可通过数据信息DATA_INF而被识别。
在这种情况下,映射数据控制器210可不执行生成扩展映射数据的操作。也就是说,映射数据控制器210可输出从存储器装置100接收的映射数据Mapping_DATA。
图17是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图17,在S1701中,映射数据控制器210可从主机300接收更新数量为Q1的第三映射数据Mapping_DATA3。详细地,映射数据控制器210可从主机300一起接收第三映射数据Mapping_DATA3和对存储器装置100中存储的数据的读取请求。所接收的第三映射数据Mapping_DATA3可以是扩展映射数据。扩展映射数据可包括普通映射数据和附加字段。因此,第三映射数据Mapping_DATA3的附加字段中存储的更新数量可以是Q1。
在步骤S1703中,映射数据控制器210可从存储器装置100接收更新数量为Q2的第四映射数据Mapping_DATA4。接收到的第四映射数据Mapping_DATA4可以是扩展映射数据。扩展映射数据可包括普通映射数据和附加字段。因此,第四映射数据Mapping_DATA4的附加字段中存储的更新数量可以是Q2。映射数据控制器210可响应于请求映射数据Mapping_DATA的命令,接收存储器装置100中存储的第四映射数据Mapping_DATA4。
在步骤S1705中,可确定更新数量Q1是否大于更新数量Q2。当更新数量Q1大于更新数量Q2时,进程进行到步骤S1707。当更新数量Q1小于或等于更新数量Q2时,进程进行到步骤S1709。
在步骤S1707中,映射数据控制器210可将第三映射数据Mapping_DATA3输出到存储器装置100,以将在第三映射数据Mapping_DATA3中的物理块地址(PBA)处存储的数据输出到存储器控制器200。因为第三映射数据Mapping_DATA3的附加字段中存储的更新数量大于第四映射数据Mapping_DATA4的附加字段中存储的更新数量,所以可输出第三映射数据Mapping_DATA3。详细地,与扩展映射数据的附加字段中存储的更新数量较小的映射数据相比,更新数量较大的映射数据可以是最新生成的。也就是说,附加字段中存储的更新数量较大的扩展映射数据可以是最新生成的扩展映射数据。因此,因为第三映射数据比第四映射数据已经历更多数量的更新,所以映射数据控制器210可输出第三映射数据Mapping_DATA3。
在步骤S1709中,映射数据控制器210可将第四映射数据Mapping_DATA4输出到存储器装置100,以将在第四映射数据Mapping_DATA4中的物理块地址(PBA)处存储的数据输出到存储器控制器200。因为第三映射数据Mapping_DATA3的附加字段中存储的更新数量小于或等于第四映射数据Mapping_DATA4的附加字段中存储的更新数量,所以可输出第四映射数据Mapping_DATA4。详细地,扩展映射数据的附加字段中存储的更新数量较小的映射数据可以是在生成更新数量较大的映射数据之前生成的映射数据。也就是说,附加字段中存储的更新数量较大的扩展映射数据可以是最新生成的。因此,映射数据控制器210可输出第四映射数据Mapping_DATA4。
当多条扩展映射数据的附加字段中存储的更新数量彼此相等时,从主机300接收的映射数据与从存储器装置100接收的映射数据相同,因此映射数据控制器210可输出所接收的多条映射数据中的任意一条。因此,第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4可以是相同的映射数据。在步骤S1709中,当附加字段中存储的更新数量彼此相等时,映射数据控制器210可以输出第三映射数据Mapping_DATA3,而非输出第四映射数据Mapping_DATA4。
图18是示出图1的存储器控制器的实施例的示图。
存储器控制器1000联接到主机和存储器装置,例如联接到图1的主机300和存储器装置100。响应于从主机接收到的请求,存储器控制器1000可访问存储器装置。例如,存储器控制器1000可被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置与主机之间的接口。存储器控制器1000可运行固件以用于控制存储器装置。
参照图18,存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误检查和校正(ECC)组件(以下简称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可将从存储器装置接收的数据去随机化(derandomize)。例如,处理器1010可使用去随机化种子将从存储器装置接收的数据去随机化。去随机化数据可被输出到主机。
在实施例中,处理器1010可运行软件或固件以执行随机化和去随机化操作。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可存储由处理器1010处理的数据。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC 1030可执行错误校正。ECC 1030可基于待通过存储器接口1060而写入到存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可通过存储器接口1060被传输到存储器装置。ECC1030可基于通过存储器接口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、ECC1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图19是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
参照图19,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200与主机之间的接口。存储器控制器2100可运行固件以用于控制存储器装置2200。存储器装置2200可以与上面参照图10描述的存储器装置100相同的方式来实施。
在实施例中,存储器控制器2100可包括诸如RAM、处理器、主机接口、存储器接口和ECC的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(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可被集成到单个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑式闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图20是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的示例的框图。
参照图20,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或PCIe)、高级技术附件(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内部,或者被设置为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的各种非易失性存储器中的任意一种来实施。
图21是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
参照图21,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可被实施为诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM和LPDDR3SDRAM的各种易失性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可包括多个非易失性存储器装置,每个非易失性存储器装置可以与上面参照图10至图13描述的存储器装置相同的方式操作。存储模块4400可以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
根据本公开的实施例,提供了一种生成具有提高可靠性的映射数据的存储器控制器及操作存储器控制器的方法。
虽然已经公开了本公开的实施例,但本领域技术人员根据本公开将理解,可进行各种修改、添加和替换。因此,本发明的范围由所附权利要求及其等同方案来限定,而非由之前的描述来限定。
在上述实施例中,在一些情况下,可选择性地执行或跳过一个或多个步骤。另外,步骤可不总是按照给定的顺序来顺序执行,并且可随机执行。此外,本文公开的实施例旨在帮助本领域普通技术人员更清楚地理解本发明,而不是旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解的是,基于本公开的技术范围,可以进行各种修改。
已经参照附图描述了本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本发明的精神来解释,而不限制本发明的主题。应当理解的是,本文描述的基本发明构思的许多变化和修改将仍然落入所附权利要求及其等同方案所限定的本发明的精神和范围内。
Claims (20)
1.一种存储器控制器,所述存储器控制器控制存储器装置,所述存储器控制器包括:
映射数据控制器,响应于从主机接收的扩展映射数据请求而生成包括映射信息和附加字段的扩展映射数据,并且生成指示已生成所述扩展映射数据的数据生成信息,其中所述映射信息指示逻辑块地址与物理块地址之间的映射关系;以及
位图信息生成器,接收所述数据生成信息并且生成位图信息,
其中所述位图信息包括用于改变所述存储器装置中存储的位图中的位值之中的、与包括所述扩展映射数据的映射数据组相对应的位值,以指示所述扩展映射数据的信息,并且
其中所述映射数据组包括多条映射数据。
2.根据权利要求1所述的存储器控制器,
其中所述扩展映射数据包括热数据的逻辑块地址,并且
其中基于所述主机向所述存储器控制器输出特定逻辑块地址的频率来确定所述热数据。
3.根据权利要求1所述的存储器控制器,其中所述映射数据控制器响应于所述扩展映射数据请求,生成包括指示所述逻辑块地址与所述物理块地址之间的映射关系的映射信息的普通映射数据,然后生成所述扩展映射数据。
4.根据权利要求3所述的存储器控制器,其中所述附加字段存储所述扩展映射数据的更新数量。
5.根据权利要求3所述的存储器控制器,其中所述附加字段存储用于错误校正的数据。
6.根据权利要求4所述的存储器控制器,其中所述映射数据控制器:
当响应于从所述主机接收的请求来更新映射数据时,对每个所述映射数据中的逻辑块地址的更新数量进行累积,并且
当生成了所述扩展映射数据时,生成指示所累积的更新数量的数据。
7.根据权利要求6所述的存储器控制器,其中所述映射数据控制器:
响应于从所述主机接收的映射数据请求,从所述存储器装置接收第一映射数据和与包括所述第一映射数据的映射数据组相对应的位值,并且
当所述映射数据请求是针对所述扩展映射数据的请求时,基于所述第一映射数据和所述位值来生成第二映射数据。
8.根据权利要求7所述的存储器控制器,其中,当所述第一映射数据是所述普通映射数据并且所述映射数据请求是针对所述扩展映射数据的请求时,所述第二映射数据是所述扩展映射数据。
9.根据权利要求4所述的存储器控制器,其中所述映射数据控制器:
从所述主机接收映射数据请求和所述主机中存储的第三映射数据,并且从所述存储器装置接收对应于所述映射数据请求的第四映射数据,所述第三映射数据和所述第四映射数据中的每个都是所述扩展映射数据,并且
基于所述第三映射数据和所述第四映射数据中的每个的附加字段中存储的更新数量,将所述第三映射数据和所述第四映射数据中的一个输出到所述存储器装置,以读取与所输出的映射数据相对应的数据。
10.根据权利要求9所述的存储器控制器,其中所述映射数据控制器:
当所述第三映射数据的附加字段中存储的更新数量大于所述第四映射数据的附加字段中存储的更新数量时,输出所述第三映射数据,并且
当所述第三映射数据的附加字段中存储的更新数量小于所述第四映射数据的附加字段中存储的更新数量时,输出所述第四映射数据。
11.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述方法包括:
从主机接收扩展映射数据请求;
响应于所述扩展映射数据请求,生成包括映射信息的普通映射数据,其中所述映射信息指示逻辑块地址与物理块地址之间的映射关系;
生成包括所述映射信息和附加字段的扩展映射数据;
生成指示已生成所述扩展映射数据的数据生成信息;并且
接收所述数据生成信息,然后生成位图信息,
其中所述位图信息包括用于改变所述存储器装置中存储的位图中的位值之中的、与包括所述扩展映射数据的映射数据组相对应的位值,以指示所述扩展映射数据的信息,并且
其中所述映射数据组包括多条映射数据。
12.根据权利要求11所述的方法,其中所述附加字段存储所述扩展映射数据的更新数量。
13.根据权利要求11所述的方法,其中所述附加字段存储用于错误校正的数据。
14.根据权利要求12所述的方法,进一步包括:当响应于从所述主机接收的请求而更新映射数据时,对每个所述映射数据中包括的逻辑块地址的更新数量进行累积。
15.根据权利要求14所述的方法,其中生成所述扩展映射数据包括:生成所累计的更新数量存储在所述附加字段中的所述扩展映射数据。
16.根据权利要求11所述的方法,进一步包括:
响应于从所述主机接收的映射数据请求,从所述存储器装置接收第一映射数据和与包括所述第一映射数据的映射数据组相对应的位值;并且
当所述映射数据请求是针对所述扩展映射数据的请求时,基于所述第一映射数据和所述位值来生成第二映射数据。
17.根据权利要求16所述的方法,其中当所述第一映射数据是所述普通映射数据并且所述映射数据请求是针对所述扩展映射数据的请求时,所述第二映射数据是所述扩展映射数据。
18.根据权利要求12所述的方法,进一步包括:
从所述主机接收映射数据请求和所存储的第三映射数据,所述第三映射数据是扩展映射数据;
从所述存储器装置接收对应于所述映射数据请求的第四映射数据,所述第四映射数据是扩展映射数据;并且
基于所述第三映射数据和所述第四映射数据中的每个的附加字段中存储的更新数量,向所述存储器装置输出所述第三映射数据和所述第四映射数据中的一个,以读取与所输出的映射数据相对应的数据。
19.根据权利要求18所述的方法,其中输出所述第三映射数据和所述第四映射数据中的一个包括:
当所述第三映射数据的附加字段中存储的更新数量大于所述第四映射数据的附加字段中存储的更新数量时,输出所述第三映射数据,并且
当所述第三映射数据的附加字段中存储的更新数量小于所述第四映射数据的附加字段中存储的更新数量时,输出所述第四映射数据。
20.一种数据处理系统,包括:
主机,提供更新或生成请求以及逻辑地址,或者提供读取请求以及第一映射数据;
存储器装置,存储用户数据和第二映射数据;以及
控制器:
响应于所述更新请求,控制所述存储器装置以根据所述逻辑地址来更新所述第二映射数据,并且向所述主机提供所更新的第二映射数据来作为所述第一映射数据;
在更新所述第二映射数据时增加所述第二映射数据的更新数量;
响应于所述生成请求,生成并向所述主机提供与所提供的逻辑地址相对应的新第二映射数据;并且
响应于与所述第一映射数据一起提供的所述读取请求来向所述主机提供所述用户数据,根据所述第一映射数据和所述第二映射数据的更新数量,所述用户数据对应于所述第一映射数据和所述第二映射数据中的一个,
其中所述第一映射数据和所述第二映射数据中的每个是表示所述第一映射数据和所述第二映射数据中的每个的更新数量以及逻辑地址与物理地址之间的映射关系的扩展映射数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0165688 | 2018-12-19 | ||
KR1020180165688A KR20200076531A (ko) | 2018-12-19 | 2018-12-19 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338979A true CN111338979A (zh) | 2020-06-26 |
CN111338979B CN111338979B (zh) | 2023-05-05 |
Family
ID=71097748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910932926.7A Active CN111338979B (zh) | 2018-12-19 | 2019-09-29 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11139020B2 (zh) |
KR (1) | KR20200076531A (zh) |
CN (1) | CN111338979B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200076531A (ko) | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200099882A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210104278A (ko) * | 2020-02-17 | 2021-08-25 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和系统 |
CN103164342A (zh) * | 2011-12-12 | 2013-06-19 | 苹果公司 | 数据可用性的挂载时协调 |
CN103365944A (zh) * | 2012-03-29 | 2013-10-23 | Lsi公司 | 文件系统提示 |
KR20160021957A (ko) * | 2014-08-18 | 2016-02-29 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
US20180189172A1 (en) * | 2017-01-04 | 2018-07-05 | SK Hynix Inc. | Data storage apparatus and operating method thereof |
US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
CN108932202A (zh) * | 2017-05-24 | 2018-12-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100963140B1 (ko) | 2008-11-27 | 2010-06-16 | 한국과학기술원 | 직접 메모리 접근 장치 및 직접 메모리 접근 방법 |
US8621134B2 (en) | 2010-11-08 | 2013-12-31 | Lsi Corporation | Storage tiering with minimal use of DRAM memory for header overhead |
CN103858116B (zh) | 2011-08-09 | 2015-09-02 | Lsi公司 | I/o设备及计算主机互操作 |
US9237481B2 (en) | 2012-07-09 | 2016-01-12 | Intel Corporation | Methods and arrangements for traffic indication map segmentation in wireless networks |
KR20140057454A (ko) | 2012-11-02 | 2014-05-13 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치 |
US20160019161A1 (en) | 2013-03-12 | 2016-01-21 | Hewlett-Packard Development Company, L.P. | Programmable address mapping and memory access operations |
US20140281689A1 (en) | 2013-03-15 | 2014-09-18 | Teradata Corporation | Method and system for rebuilding data following a disk failure within a raid storage system |
US9336129B2 (en) | 2013-10-02 | 2016-05-10 | Sandisk Technologies Inc. | System and method for bank logical data remapping |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
KR20170031389A (ko) | 2015-09-11 | 2017-03-21 | 삼성전자주식회사 | 수신 장치 및 그 신호 처리 방법 |
KR20170081118A (ko) | 2015-12-30 | 2017-07-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법 |
US10229051B2 (en) * | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
KR20180065075A (ko) | 2016-12-06 | 2018-06-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
KR102411290B1 (ko) * | 2017-10-24 | 2022-06-22 | 삼성전자주식회사 | 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템 |
US10713158B2 (en) | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
KR20200076531A (ko) | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2018
- 2018-12-19 KR KR1020180165688A patent/KR20200076531A/ko unknown
-
2019
- 2019-07-24 US US16/521,165 patent/US11139020B2/en active Active
- 2019-09-29 CN CN201910932926.7A patent/CN111338979B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和系统 |
CN102831071A (zh) * | 2007-06-08 | 2012-12-19 | 桑迪士克科技股份有限公司 | 用于存储器装置的存储地址重新映射的方法和系统 |
CN103164342A (zh) * | 2011-12-12 | 2013-06-19 | 苹果公司 | 数据可用性的挂载时协调 |
CN103365944A (zh) * | 2012-03-29 | 2013-10-23 | Lsi公司 | 文件系统提示 |
KR20160021957A (ko) * | 2014-08-18 | 2016-02-29 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
US20180189172A1 (en) * | 2017-01-04 | 2018-07-05 | SK Hynix Inc. | Data storage apparatus and operating method thereof |
TW201826127A (zh) * | 2017-01-04 | 2018-07-16 | 韓商愛思開海力士有限公司 | 數據儲存設備及其操作方法 |
US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
CN108932202A (zh) * | 2017-05-24 | 2018-12-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Non-Patent Citations (2)
Title |
---|
ABRAHAMIAN E: "Efficient generation, storage, and manipulation of fully flexible pharmacophore multiplets and their use in 3-D similarity searching", 《JOURNAL OF CHEMICAL INFORMATION AND COMPUTER SCIENCES》 * |
罗政: "网络计算环境分布式COW盘设计及优化方法", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200076531A (ko) | 2020-06-29 |
US11139020B2 (en) | 2021-10-05 |
CN111338979B (zh) | 2023-05-05 |
US20200202919A1 (en) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11137912B2 (en) | Memory controller and method of operating the same | |
US11256614B2 (en) | Memory controller for allocating logical address and method of operating the same | |
KR102596407B1 (ko) | 저장 장치 및 그 동작 방법 | |
US10884922B2 (en) | Storage device and method of operating the same | |
US11194736B2 (en) | Memory controller having improved map data access performance and method of operating the same | |
US10853236B2 (en) | Storage device and method for operating the same | |
US10910045B2 (en) | Storage device having improved cache performance and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
US10606747B2 (en) | Storage device and method of operating the same | |
KR20200114009A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111338979B (zh) | 存储器控制器及其操作方法 | |
CN112748874A (zh) | 执行主机感知性能增强模式的存储器控制器及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
US11422739B2 (en) | Memory controller and method of operating the same | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
US10996881B2 (en) | Storage device and method of operating the same | |
US20220122669A1 (en) | Memory device and method of operating the same | |
CN111580743B (zh) | 存储器控制器及其操作方法 | |
US11688464B2 (en) | Storage device and method of operating the same | |
KR102601152B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN113764011A (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 |