CN108280033B - 数据存储设备及其操作方法 - Google Patents
数据存储设备及其操作方法 Download PDFInfo
- Publication number
- CN108280033B CN108280033B CN201710801516.XA CN201710801516A CN108280033B CN 108280033 B CN108280033 B CN 108280033B CN 201710801516 A CN201710801516 A CN 201710801516A CN 108280033 B CN108280033 B CN 108280033B
- Authority
- CN
- China
- Prior art keywords
- write
- address
- logical address
- data
- read
- 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
Images
Classifications
-
- 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
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer 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/0656—Data buffering 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种数据存储设备包括:非易失性存储器装置;随机存取存储器,其包括被配置为存储从主机设备接收的逻辑地址与非易失性存储器装置的物理地址之间的映射信息的地址映射表;以及处理器,其被配置成当从主机设备接收写入请求时,通过改变写入逻辑地址的位中的特定位的值来生成修改的写入逻辑地址并且将修改的写入逻辑地址存储在地址映射表中。
Description
相关申请的交叉引用
本申请要求于2017年1月4日向韩国知识产权局提交的申请号为10-2017-0001447的韩国专利申请的优先权,其整体通过引用并入本文。
技术领域
各个实施例通常可以涉及一种半导体设备,并且更特别地,涉及一种数据存储设备及其操作方法。
背景技术
近年来,计算机环境范例转变至可以随时随地使用计算机系统的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子设备的使用已经快速增长。通常,便携式电子设备使用采用存储器装置的数据存储设备。数据存储设备可以用于存储在便携式电子设备中使用的数据。
使用存储器装置的数据存储设备不具有机械驱动单元并且表现优良的稳定性和耐久性、高信息访问速度和低功耗。这种数据存储设备可以包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置、固态驱动器(SSD)等。
发明内容
为能够提高读取性能的数据存储装置及其操作方法提供实施例。
在本公开的实施例中,数据存储设备可以包括:非易失性存储器装置;随机存取存储器,其包括被配置为存储从主机设备接收的逻辑地址与非易失性存储器装置的物理地址之间的映射信息的地址映射表;以及处理器,其被配置成当从主机设备接收写入请求时,通过改变写入逻辑地址的位中的特定位的值来生成修改的写入逻辑地址并且将修改的写入逻辑地址存储在地址映射表中。
在本发明的另一实施例中,数据存储设备的操作方法可以包括:确定是否从主机设备接收写入请求;以及当从主机设备接收写入请求时,通过改变写入逻辑地址的特定位的值来生成修改的写入逻辑地址,并且将修改的写入逻辑地址存储在地址映射表中。
在本公开的实施例中,数据存储设备可以包括:非易失性存储器装置;地址映射表,其被配置为存储从主机设备接收的逻辑地址与非易失性存储器装置的物理地址之间的映射信息,并且当从主机设备接收写入请求时,存储修改的写入逻辑地址;写入缓冲器,其被配置为当从主机设备接收写入请求时,临时存储写入逻辑地址和写入数据;以及处理器,其被配置为通过改变写入逻辑地址的特定位的值来生成修改的写入逻辑地址。
根据实施例,在处理来自主机设备的读取请求的进程中,可以缩短用于确定请求读取的数据的存储位置的搜索请求读取的逻辑地址的操作,并且因此可以提高数据存储设备的读取操作速度和读取性能。
附图说明
从以下结合附图的详细描述中将更清楚地理解本公开的主题的上述和其它方面、特征及优点,其中:
图1是示出根据本公开的实施例的数据存储设备的框图;
图2A和图2B是概念性地示出图1所示的随机存取存储器的配置的图;
图3A是示出根据本公开的实施例的数据写入操作的示例的图;
图3B是示出根据本公开的实施例的数据读取操作的示例的图;
图4是示出根据本公开的实施例的数据存储装置的操作方法的流程图;
图5是示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统的示例的图;
图6是示出图5所示的控制器的示例的图;
图7是示出根据本公开的实施例的包括数据存储设备的数据处理系统的示例的图;
图8是示出根据本公开的实施例的包括数据存储设备的数据处理系统的示例的图;
图9是示出根据本公开的实施例的包括数据存储设备的网络系统的示例的图;以及
图10是示出根据本公开的实施例的包括在数据存储设备中的非易失性存储器装置的示例的框图。
具体实施方式
将参照附图更详细地描述本发明的各个实施例。然而,本公开可以以不同的形式实施并且不应被解释为限于本文示出的实施例。相反,提供这些实施例作为示例,使得本公开将是彻底且完全的,并且将向本发明所属领域技术人员完全传达本发明的各个方面和特征。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以描述各种元件,但是这些元件不受这些术语限制。这些术语被用于区分一个元件与另一元件。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,在一些情况下,为了更清楚地示出实施例的各种元件,可能已经夸大了比例。例如,在附图中,为了便于说明,与实际尺寸和间隔相比,元件的尺寸和元件之间的间隔可能被夸大。
将进一步理解的是,当一个元件被称为“连接至”或“联接至”另一元件时,其可以直接在其它元件上、连接至或联接至其它元件,或可以存在一个或多个中间元件。另外,也将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
在本文中与项目列表一起使用的短语“......和......中的至少一个”是指列表中的单个项目或列表中项目的任何组合。例如,“A、B和C中的至少一个”是指只有A、或只有B、或只有C、或A、B和C的任何组合。
为了便于描述,在本文中可以使用诸如“下面”、“下方”、“下部”、“上方”、“上部”等的空间相对术语以描述如图所示的一个元件或特征与另一元件或特征的关系。将理解的是,除了附图中描绘的方位之外,空间相对术语旨在包括装置在制造、使用或操作中的不同方位。例如,如果附图中的装置被翻转,则被描述为在其它元件或特征“下方”或“下面”的元件将在其它元件或特征“上方”。装置可以以其它方式定向(旋转90度或在其它方位处),并且本文使用的空间相对描述符应当被相应地解释。
本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。如本文使用的,除非上下文另有清楚地说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述的元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任何一个和所有组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的元件(也被称为特征)可单独使用或与另一实施例的其它元件结合使用,除非另有明确说明。
在下文中,将参照附图详细地描述本发明的各个实施例。
图1是示出根据本公开的实施例的数据存储设备10的框图。图2A和图2B是概念性地示出图1所示的随机存取存储器(RAM)220的配置的图。
参照图1,数据存储设备10可以存储待被诸如移动电话、MP3播放器、膝上型计算机,台式计算机、游戏机、电视(TV)或车载信息娱乐系统等的主机设备(未示出)访问的数据。数据存储设备10也可以被称为存储器系统。
数据存储设备10可以根据与主机设备的联接的接口的协议被制造为各种类型的存储设备中的任意一种。例如,数据存储设备10可以被配置为诸如以下的各种类型的存储设备中的任意一种:固态驱动器(SSD),以MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡、以SD、迷你SD和微型SD形式的安全数字卡、通用串行总线(USB)存储装置、通用闪速存储(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡式存储装置、外围组件互连(PCI)卡式存储装置、高速PCI(PCI-E)卡式存储装置、标准闪存(CF)卡、智能媒体卡和记忆棒等。
数据存储设备10可以被制造为各种类型的封装中的任意一种。例如,数据存储设备10可以被制造为诸如以下的各种类型的封装中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
数据存储设备10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以用作数据存储设备10的存储介质。非易失性存储器装置100可以包括诸如以下的各种类型的非易失性存储器装置中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化合物的相变随机存取存储器(PRAM)和使用过渡金属化合物的电阻式随机存取存储器(RERAM)。
在图1中已经说明,数据存储设备10包括一个非易失性存储器装置100,但是这仅是为了清楚起见的示例。数据存储设备10可以包括多个非易失性存储器装置,并且本文描述的实施例可以同样地应用于包括多个非易失性存储器装置的数据存储设备10。
虽然在图1中未示出,但是非易失性存储器装置100可以包括具有多个存储器单元的存储器单元阵列,多个存储器单元被设置在其中多个位线(未示出)和多个字线(未示出)彼此交叉的区域中。
非易失性存储器装置100可以包括多个存储块(未示出)并且多个存储块中的每一个可以包括多个页面。
控制器200可以包括处理器210、随机存取存储器(RAM)220和地址搜索引擎230。虽然在图1中未示出,控制器200可以进一步包括:主机接口单元,其将控制信号、地址、数据等传输到主机设备并且从主机设备接收控制信号、地址、数据等;以及存储器接口单元,其将控制信号、地址信号、数据等传输到非易失性存储器装置100并且从非易失性存储器装置100接收控制信号、地址信号、数据等。
处理器210可以控制控制器200的整体操作。处理器210可以分析和处理从主机设备输入的信号、命令或请求。
例如,当读取请求和逻辑块地址(LBA)(在下文中,被称为“读取逻辑地址”)从主机设备被接收时,处理器210可以基于接收的读取逻辑地址从非易失性存储器装置100读取数据并且将读取的数据(在下文中,被称为“读取数据”)传输到主机设备。
当写入请求、逻辑块地址(LBA)(在下文中,被称为“写入逻辑地址”)和待写入的数据(在下文中,被称为“写入数据”)从主机设备被接收时,处理器210可以基于接收的写入逻辑地址将写入数据写入非易失性存储器装置100中。
例如,处理器210可解码并驱动加载到RAM 220上的固件数据。处理器210可以利用硬件或硬件和软件的组合来实施。
读取逻辑地址和写入逻辑地址可以分别是与读取请求或写入请求一起从主机设备传输的一个逻辑地址。但是逻辑地址可以指读取逻辑地址和写入逻辑地址,从而清楚地确定逻辑地址是在读取请求中传输的逻辑地址还是写入请求中传输的逻辑地址。
RAM 220可以存储通过处理器210驱动的固件数据。RAM 220还可以存储驱动固件数据所需的系统数据。例如,RAM 220可以用作处理器210的工作存储器。
RAM 220可以临时存储从主机设备待传输到非易失性存储器装置100的写入数据或将从非易失性存储器装置100传输到主机设备的读取数据,并且可以临时存储从主机设备传输的写入逻辑地址。
例如,参照图2A,RAM 220可以包括临时存储从主机设备传输的写入数据和写入逻辑地址的写入缓冲器WB。虽然在图2A中未示出,但是写入缓冲器WB可以包括临时存储写入数据的写入数据缓冲器和临时存储写入逻辑地址的地址缓冲器。
RAM 220可以包括地址映射表AMT,其存储其中写入数据被存储在非易失性存储器装置100中的物理块地址(PBA)(在下文中,被称为“物理地址”)以及与其对应且互相匹配的写入逻辑地址。
写入缓冲器WB可以临时存储从主机设备传输的写入逻辑地址和写入数据,直到写入数据被存储在非易失性存储器装置100中。在写入数据被存储在非易失性存储器装置100中之后,存储在写入缓冲器WB中的写入逻辑地址和写入数据可以从写入缓冲器WB中删除,但不限于此。
地址映射表AMT可以被配置为对应于包括在非易失性存储器装置100中的多个存储块中的一个或多个存储块或者对应于所有多个存储块。
在操作中,当写入请求从主机设备被接收时,地址映射表AMT可以临时存储通过处理器210生成的修改的写入逻辑地址。在实施例中修改的写入逻辑地址可以指通过改变写入逻辑地址的位中的特定位的值而生成的写入逻辑地址。修改的写入逻辑地址的特定位的值可以提供与对应于写入逻辑地址的写入数据的当前位置相关的信息。
例如,修改的写入逻辑地址的特定位的值可以用作指示对应于写入逻辑地址的写入数据是被当前临时存储在写入缓冲器WB中还是被当前存储在非易失性存储器装置100的存储块中的信息。
在对应于写入逻辑地址的写入数据被存储在非易失性存储器装置100的存储块中之后,存储在地址映射表AMT中的修改的写入逻辑地址可以通过处理器210被恢复到原始写入逻辑地址。
例如,在实施例中,当写入逻辑地址和写入数据从主机设备被接收时,写入逻辑地址可以被临时存储在写入缓冲器WB中并且同时修改的写入逻辑地址可以被存储在地址映射表AMT中。这允许当读取请求从主机设备被接收时通过仅扫描地址映射表AMT来快速搜索读取逻辑地址。例如,可通过处理器210或者在处理器210的控制下通过地址搜索引擎执行搜索。
通常,当读取请求从主机设备被接收时,处理器210可以通过扫描RAM 220的写入缓冲器WB来确定读取逻辑地址是否被存在于写入缓冲器WB中。当与读取请求一起接收的读取逻辑地址与存储在写入缓冲器WB中的写入逻辑地址匹配时,处理器210可以确定读取的逻辑地址存在于写入缓冲器WB中。当读取逻辑地址存在于写入缓冲器WB中时,处理器210可以从写入缓冲器WB读出读取数据并且将读取数据传输到主机设备,或者当读取逻辑地址不存在于写入缓冲器WB中时,处理器210可以通过扫描地址映射表AMT来搜索读取逻辑地址,从非易失性存储器装置100读出读取数据并且将读取数据传输到主机设备。
因此,可以在两个阶段中执行根据主机设备的读取请求搜索读取逻辑地址的操作。因此,读取速度可能降低并且读取性能可能下降。
在实施例中,如上所述,由于仅在地址映射表AMT中搜索读取逻辑地址,因此可以更快地确定读取数据的当前位置,并且因此可以提高数据存储设备10的读取性能。
实施例中的地址映射表AMT可以包括逻辑块地址至物理块地址(L2P)表和物理块地址至逻辑块地址(P2L)表。
如图3A和图3B所示,地址映射表AMT可以被划分成多个段。非易失性存储器装置100的相应存储块也可以包括多个段。例如,地址映射表AMT的段可以对应于存储块的段。
在实施例中,地址映射表AMT的段的数量可以与存储块的段的数量相同,但是不限于此。地址映射表AMT的段的数量可以大于存储块的段的数量。例如,地址映射表AMT的段的数量可以比存储块的段的数量大包含在存储块的至少一个或多个页面中的段的数量,但是不限于此。地址映射表AMT中的段的大小可以不同于存储块中的段的大小,但是不限于此。
参照图2B,RAM 220可以包括写入缓冲器WB、第一地址映射表AMT1和第二地址映射表AMT2。如上所述,写入缓冲器WB可以包括被配置为临时存储待传输到非易失性存储器装置100的写入数据的写入数据缓冲器和被配置为临时存储写入逻辑地址的地址缓冲器。
第一地址映射表AMT1可以为执行写入操作的非易失性存储器装置100的存储块(在下文中也被称为开放块)存储逻辑地址。第一地址映射表AMT1可以具有与图2A所示的地址映射表AMT相同的配置。然而,当相应的开放块的写入操作被完成并且关于开放块的映射信息的更新被完成时,可以删除存储在第一地址映射表AMT1中的逻辑地址。
第二地址映射表AMT2可以仅存储关于其中写入操作被完成的存储块(在下文中也被称为封闭块)的地址映射信息的片段(piece)的部分。例如,第二地址映射表AMT2可以是映射缓存。
关于其中写入操作被完成的封闭块的更新的地址映射信息可以被存储在非易失性存储器装置100中的映射表(未示出)中。非易失性存储器装置100中的映射表可以存储关于诸如非易失性存储器装置的所有封闭存储块的整个非易失性存储器装置100的地址映射信息的片段,并且因此,映射表可能具有巨大的大小。
当读取请求从主机被接收时,如果读取请求的数据不存在于写入缓冲器WB中,则处理器210可能通过扫描非易失性存储器装置100的映射表来不可避免地搜索读取请求的数据的位置。然而,可能需要相当长的时间来搜索如上所述具有巨大的大小的非易失性存储器装置100的整个映射表,并且因此,读取性能可能下降。
为此原因,在本发明的实施例中,存储在非易失性存储器装置100中的映射表的地址映射信息的片段的部分,例如,关于具有高访问频率的逻辑地址或最近请求访问的逻辑地址的映射信息的片段可以被加载到RAM 220的第二地址映射表AMT2上。因此,可以通过搜索第二地址映射表AMT2来更快地搜索读取请求的数据的位置。
在图2B中,第一地址映射表AMT1可以存储关于非易失性存储器装置100的多个存储块中的开放块的地址映射信息的片段,而第二地址映射表AMT2可以存储非易失性存储器装置100中的多个存储器块中的关于封闭块的地址映射信息的片段的部分。
地址搜索引擎230可以被配置为当从主机设备接收读取请求时,在处理器210的控制下通过扫描RAM 220的地址映射表AMT来搜索读取逻辑地址。例如,地址搜索引擎230可以通过将RAM 220的地址映射表AMT扫描到写入方向的相反方向来搜索从主机设备传输的读取逻辑地址并且将搜索的读取逻辑地址传输到处理器210。
处理器210可以在来自主机设备的写入请求中将写入逻辑地址和写入数据存储在写入缓冲器WB中,同时将其中写入逻辑地址特定位的值被改变的修改的写入逻辑地址存储在地址映射表AMT中。处理器210可以控制非易失性存储器装置100的操作,使得写入数据被写入非易失性存储器装置100中。当写入数据被写入非易失性存储器装置100时,处理器210可以通过改变或移除存储在地址映射表AMT中的修改的写入逻辑地址的特定位的值来将修改的写入逻辑地址恢复到原始的写入逻辑地址。
例如,当读取请求从主机设备被接收时,处理器210可以不通过扫描写入缓冲器WB而是通过仅扫描地址映射表AMT来搜索读取逻辑地址。在该示例中,处理器210可以对地址映射表AMT执行扫描操作,或者地址搜索引擎230可以在处理器210的控制下扫描地址映射表AMT并且将扫描结果提供给处理器210。
处理器210可以验证搜索的读取逻辑地址的特定位的值,并且基于特定位的值来确定对应于读取逻辑地址的读取数据的存储位置。例如,处理器210可以基于特定位的值来确定读取数据是被存储在写入缓冲器WB中还是非易失性存储器装置100的存储块中,从相应位置读出读取数据,并且将读取数据传输到主机设备。
例如,当在RAM 220包括例如如图2B所示的第一地址映射表AMT1和第二地址映射表AMT2的两个地址映射表的状态下,读取请求从主机设备被接收时,可以通过处理器210扫描第一地址映射表AMT1,并且可以通过地址搜索引擎230扫描第二地址映射表AMT2。在该示例中,可以同时扫描第一地址映射表AMT1和第二地址映射表AMT2。在另一示例中,可以通过地址搜索引擎230扫描第一地址映射表AMT1,并且可以通过处理器210扫描第二地址映射表AMT2。
将参照图3A详细描述根据实施例的数据存储设备10的写入操作。在图3A中已经描述RAM 220包括写入缓冲器WB和地址映射表AMT,但是不限于此。
图3A是示出根据本公开的实施例的数据写入操作的示例的图。
参照图3A,当写入请求、写入逻辑地址LBA1和写入数据Data1从主机设备被接收时,处理器210可以将写入逻辑地址LBA1和写入数据Data1存储在写入缓冲器WB中(①),并且同时将修改的写入逻辑地址#LBA1存储在地址映射表AMT中(①)。可以通过改变从主机设备传输的原始的写入逻辑地址LBA1的所有位中的特定位的值来生成修改的写入逻辑地址#LBA1。
为了清楚起见,可以假设写入逻辑地址由4个字节(即,32位)表示,“LBA1”表示逻辑地址为“1”,并且写入逻辑地址LBA1可以以十六进制数存储在写入缓冲器WB和地址映射表AMT中。
处理器210可以将具有“0x00000001”的写入逻辑地址LBA1存储在写入缓冲器WB中,并且同时将具有“0x80000001”的修改的写入逻辑地址#LBA1存储在地址映射表AMT中。即,处理器210可以通过将写入逻辑地址LBA1的最高有效位(MSB)的值改变为“1”来生成修改的写入逻辑地址#LBA1。此处,术语“改变”可以指术语“反转”或“插入”。在该示例中,在修改的写入逻辑地址#LBA1中改变的特定位可以是MSB。
在处理器210中生成修改的写入逻辑地址#LBA1的方法不限于此,并且写入逻辑地址LBA1中的任意位置的位值也可以改变。仅可以改变可能对实际写入逻辑地址LBA1没有影响的位置中的位值。
可以预先设定关于指示写入逻辑地址的32位中的写入数据的当前存储位置的位的信息。处理器210可以已经预先知道该信息,并且在该状态下,处理器210可以通过改变相应位的值来生成修改的写入逻辑地址#LBA1并且将修改的写入逻辑地址存储在地址映射表AMT中。
处理器210可以控制非易失性存储器装置100将写入数据Data1写入非易失性存储器装置100的任意存储块BLK(②)。控制非易失性存储器装置100在处理器210中执行写入操作的方法是众所周知的,并且因此将省略其详细描述。
处理器210可以将存储在地址映射表AMT中的修改的写入逻辑地址#LBA1恢复到原始写入逻辑地址LBA1,例如从主机设备传输的写入逻辑地址LBA1(③)。如上所述,由于处理器210知道特定位,例如指示关于数据的存储位置的信息的位,因此处理器210可以通过改变或删除相应位的值来将修改的写入逻辑地址#LBA1恢复到原始的写入逻辑地址LBA1。
将参照图3B详细描述根据实施例的数据存储设备10的读取操作。
图3B是示出根据本公开的实施例的数据读取操作的示例的图。
参照图3B,当读取请求和读取逻辑地址LBA1被从主机设备接收时,处理器210可以通过扫描地址映射表AMT来搜索对应于读取逻辑地址LBA1的逻辑地址(①)。例如,可以在处理器210的控制下,通过处理器210或通过地址搜索引擎230来执行对应于读取逻辑地址LBA1的逻辑地址的搜索。在该示例中,在搜索对应于读取逻辑地址LBA1的逻辑地址的进程中,指示关于写入数据的预设存储位置的信息的特定位的值可以忽略不计。
当对应于读取逻辑地址LBA1的逻辑地址从地址映射表AMT被搜索时,处理器210可以基于特定位的值来验证搜索的逻辑地址的特定位的值并且确定待读取的数据的存储位置。
例如,当特定位是MSB并且搜索的逻辑地址是“#LBA1(例如,0x80000001)”时,处理器210可以基于MSB的值(“1”)来确定待读取的数据的当前存储位置为写入缓冲器WB。因此,处理器210可以从写入缓冲器WB读取请求读取的数据并且将从写入缓冲器WB读取的读取数据传输到主机设备(②)。
当搜索的逻辑地址为“LBA1(例如,0x00000001)”时,处理器210可以基于MSB的值(例如,“0”)来确定待读取的数据的当前存储位置为非易失性存储器装置100。因此,处理器210可以从非易失性存储器装置100读取请求读取的数据并且将从非易失性存储器装置100读取的读取数据传输到主机设备(②)。
图4是示出根据本公开的实施例的数据存储装置的操作方法的流程图。
在操作S410中,处理器210可以确定从主机设备接收写入请求W还是读取请求R。可以重复执行操作S410中的确定操作,直到从主机设备接收写入请求或读取请求。
当从主机设备接收写入请求W时,处理器210可以进行到操作S420。
在操作S420中,处理器210可以通过改变从主机设备接收的写入逻辑地址中的特定位的值来生成修改的写入逻辑地址,并且将生成的修改的写入逻辑地址存储在RAM 220的地址映射表AMT(或第一地址映射表AMT1)中。同时,处理器210还可以将从主机设备接收的写入逻辑地址和写入数据存储在RAM 220的写入缓冲器WB中。
在操作S430中,处理器210可以确定从主机设备接收的写入数据是否被写入非易失性存储器装置100中。当确定写入数据被写入非易失性存储器装置100,即写入已经完成时,处理器210可以进行到操作S440。
在操作S440中,处理器210可以通过改变或删除修改的写入逻辑地址的特定位的值来将存储在地址映射表AMT(或第一地址映射表AMT1)中的修改的写入逻辑地址恢复到原始的写入逻辑地址。处理器210可以将恢复的写入逻辑地址存储在地址映射表AMT(或第一地址映射表AMT1)中。
当在操作S410中从主机设备接收读取请求R时,处理器210可以进行到操作S450。
在操作S450中,处理器210可以通过扫描地址映射表AMT(或第一地址映射表AMT1)来搜索从主机设备接收的读取逻辑地址。处理器210可以直接扫描地址映射表AMT(或第一地址映射表AMT1),或者地址搜索引擎230可以在处理器210的控制下扫描地址映射表AMT(或第一地址映射表AMT1)。
在操作S460中,处理器210可以确定是否从地址映射表AMT(或第一地址映射表AMT1)搜索读取逻辑地址。当搜索读取逻辑地址(即,搜索完成)时,处理器210可以进行到操作S470。
在操作S470中,处理器210可以验证搜索的读取逻辑地址的特定位的值,并且然后基于特定位的值来确定请求读取的数据的当前存储位置。例如,处理器210可以基于从地址映射表AMT(或第一地址映射表AMT1)搜索的读取逻辑地址的特定位的值来确定请求读取的数据当前是被存储在非易失性存储器装置100中还是被存储在写入缓冲器WB中。
虽然在图4中未示出,在操作S470之后,处理器210可以进一步执行从非易失性存储器装置100或写入缓冲器WB读取请求读取的数据并且将请求读取的数据传输到主机设备的操作。
虽然在图4中未示出,当RAM 220包括如图2B所述的第一地址映射表AMT1和第二地址映射表AMT2时,在操作S450中,处理器210可以扫描第一地址映射表AMT1(或第二地址映射表AMT2),并且同时地址搜索引擎230可以在处理器210的控制下扫描第二地址映射表AMT2(或第一地址映射表AMT1)。
图5是示出根据本公开的实施例的包括固态驱动器(SSD)2200的数据处理系统2000的示例的图。
参照图5,数据处理系统2000可以包括主机设备2100和SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可以控制SSD 2220的整体操作。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读取的数据。临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传输到主机设备2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以通过多个通道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可以联接到一个通道。联接到一个通道的非易失性存储器装置可以联接到相同的信号总线和相同的数据总线。
电源2240可以将通过电源连接器2260输入的电力PWR提供给SSD2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以提供电力,使得即使当发生突然断电时SSD2200也正常地终止。辅助电源2241可以包括能够为电力PWR充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机设备2100和SSD 2200之间的接口连接方法,信号连接器2250可以由各种类型的连接器配置。
图6是示出图5所示的控制器2210的示例的图。控制器2210可以包括图1的实施例的控制器200的部件,并且可以如以上参照图1至图5所述执行控制器200的功能。
参考图6,控制器2210可以包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口单元2215。
主机接口单元2211可以根据主机设备2100的协议在主机设备2100和SSD 2200之间执行接口连接。例如,主机接口单元2211可以通过诸如以下的任意一种协议与主机设备2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪速存储(UFS)协议。主机接口单元2211可以执行盘模拟功能,即主机设备2100将SSD 2200识别为诸如硬盘驱动器HDD的通用数据存储设备。
控制单元2212可以分析和处理从主机设备2100输入的信号SGL。控制单元2212可以根据用于驱动SSD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以用作驱动固件或软件的工作存储器。RAM 2213和控制单元2211可以与控制器200的处理器210和RAM 220相同。
ECC单元2214可以生成待被传送到非易失性存储器装置2231至223n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据为从非易失性存储器装置2231至223n读取的数据检测错误。如果检测的错误在可校正的范围内,则ECC单元2214可以校正检测的错误。
存储器接口单元2215可以根据控制单元2212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置2231至223n。存储器接口单元2215可以根据控制单元2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可以将存储在缓冲存储器装置2220中的数据提供给非易失性存储器装置2231至223n,或将从非易失性存储器装置2231至223n读取的数据提供给缓冲存储器装置2220。
图7是示出根据本公开的实施例的包括数据存储设备3200的数据处理系统3000的示例的图。
参照图7,数据处理系统3000可以包括主机设备3100和数据存储设备3200。
主机设备3100可以被配置成诸如印刷电路板(PCB)的板形式。虽然在图7中未示出,但是主机设备3100可以包括被配置成执行主机设备的功能的内部功能块。
主机设备3100可以包括诸如插座、插槽或连接器的连接端子3110。数据存储设备3200可以被安装在连接端子3110上。
数据存储设备3200可以被配置成诸如PCB的板形式。数据存储设备3200可以指存储器模块或存储卡。数据存储设备3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231至3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可以控制数据存储设备3200的整体操作。控制器3210可以被配置为具有与控制器2210相同的配置和功能。
缓冲存储器装置3220可以临时存储待被存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传输到主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储设备3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供到数据存储设备3200的内部。PMIC 3240可以根据控制器3210的控制管理数据存储设备3200的电源。
连接端子3250可以联接到主机设备3100的连接端子3110。诸如命令、地址和数据的信号以及电力可以通过连接端子3250在主机设备3100和数据存储设备3200之间传输。连接端子3250可以根据主机设备3100和数据存储设备3200之间的接口连接方法被配置成各种形式。连接端子3250可以被设置在数据存储设备3200的任意一侧中。
图8是示出根据本公开的实施例的包括数据存储设备4200的数据处理系统4000的示例的图。
参照图8,数据处理系统4000可以包括主机设备4100和数据存储设备4200。
数据存储设备4100可以被配置成诸如PCB的板形式。虽然在图8中未示出,但是主机设备4100可以包括被配置成执行主机设备的功能的内部功能块。
数据存储设备4200可以表面安装封装形式配置。数据存储设备4200可以通过焊球4250被安装到主机设备4100上。数据存储设备4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储设备4200的整体操作。控制器4210可以被配置为具有与上述控制器2210相同的配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以在控制器4210的控制下被传输到主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储设备4200的存储介质。
图9是示出根据本公开的实施例的包括数据存储设备5200的网络系统5000的示例的图。
参照图9,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。又例如,服务器系统5300可以将数据提供给多个客户端系统5410至5430。
服务器系统5300可以包括主机设备5100和数据存储设备5200。数据存储设备5200可以被配置为图1的数据存储设备10、图5的SSD 2200、图7的数据存储设备3200或图8的数据存储设备4200。
图10是示出根据本公开的实施例的包括在数据存储设备中的非易失性存储器装置100的示例的框图。非易失性存储器装置100可以参照图1至图5执行上述功能。
参照图10,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括被设置在字线WL1至WLm和位线BL1至BLn彼此相交的区域中的存储器单元MC。
行解码器120可以通过字线WL1至WLm联接到存储器单元阵列110。行解码器120可以在控制逻辑160的控制下操作。行解码器120可以解码从外部设备(未示出)提供的地址。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以将从电压发生器150提供的字线电压提供给从字线WL1至WLm中选择的一个。
数据读取/写入块130可以通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制来操作。数据读取/写入块130可以根据操作模式作为写入驱动器或读出放大器来操作。例如,数据读取/写入块130可以用作写入驱动器来,该写入驱动器被配置成在写入操作中将从外部设备提供的数据存储在存储器单元阵列110中。在另一示例中,数据读取/写入块130可以用作读出放大器,该读取放大器被配置成在读取操作中从存储器单元阵列110读取数据。
列解码器140可以在控制逻辑160的控制下操作。列解码器140可以解码从外部设备提供的地址。列解码器140可以基于解码结果联接对应于位线BL1至BLn的数据读取/写入块130的读取/写入电路RW1至RWn和数据输入/输出(I/O)线路(或数据I/O缓冲器)。
电压发生器150可以产生用于非易失性存储器装置100的内部操作的电压。通过电压发生器150产生的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中产生的编程电压可以被施加到将对其执行编程操作的存储器单元的字线。在另一示例中,在擦除操作中产生的擦除电压可以被施加到将对其执行擦除操作的存储器单元的阱区。在又一示例,在读取操作中产生的读取电压可以被施加到将对其执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号控制非易失性存储器装置100的总体操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作和擦除操作。
本发明的上述实施例旨在说明而不是限制本发明。各种可选物和等同物是可能的。本发明不受本文所述的实施例的限制。本发明也不限于任何具体类型的半导体装置。鉴于本公开,其它添加、删减或变型是显而易见的,并且旨在落入所附权利要求的范围内。
Claims (15)
1.一种数据存储设备,其包括:
非易失性存储器装置;
随机存取存储器,其包括被配置为存储从主机设备接收的逻辑地址与所述非易失性存储器装置的物理地址之间的映射信息的地址映射表;以及
处理器,其被配置成当从所述主机设备接收写入请求时,通过改变写入逻辑地址的位中的特定位的值来生成修改的写入逻辑地址,并且将所述修改的写入逻辑地址存储在所述地址映射表中,
其中在将所述修改的写入逻辑地址存储在所述地址映射表中之后,确定来自所述主机设备的请求写入的数据的写入是否被完成;以及通过改变所述修改的写入逻辑地址的所述特定位的值来恢复所述修改的写入逻辑地址,并且当完成所述数据的写入时,将所恢复的写入逻辑地址存储在所述地址映射表中。
2.根据权利要求1所述的数据存储设备,其中所述随机存取存储器进一步包括被配置成临时存储从所述主机设备传输的所述写入逻辑地址和写入数据的写入缓冲器。
3.根据权利要求2所述的数据存储设备,其中所述处理器将所述修改的写入逻辑存储在所述地址映射表中,并且同时将所述写入逻辑地址和所述写入数据存储在所述写入缓冲器中。
4.根据权利要求2所述的数据存储设备,其中,当从所述主机设备接收读取请求时,所述处理器从所述地址映射表搜索读取逻辑地址并且基于所搜索的读取逻辑地址的所述特定位的值来确定请求读取的数据是位于所述非易失性存储器装置中还是位于所述写入缓冲器中。
5.根据权利要求4所述的数据存储设备,其进一步包括:
地址搜索引擎,其被配置成通过在所述处理器的控制下扫描所述地址映射表来搜索所述读取逻辑地址并且将所搜索的读取逻辑地址提供给所述处理器。
6.根据权利要求1所述的数据存储设备,其中所述随机存取存储器进一步包括映射缓存表,其被配置成存储关于包括在所述非易失性存储器装置中的多个存储块中的完成写入操作的存储块的地址映射信息的片段的部分。
7.根据权利要求1所述的数据存储设备,其中所述地址映射表包括物理块地址至逻辑块地址表,即P2L表,或逻辑块地址至物理块地址表,即L2P表。
8.一种数据存储设备的操作方法,其包括:
确定是否从主机设备接收写入请求;以及
当从所述主机设备接收所述写入请求时,通过改变写入逻辑地址的特定位的值来生成修改的写入逻辑地址,并且将所述修改的写入逻辑地址存储在地址映射表中,
其中,其进一步包括:在将所述修改的写入逻辑地址存储在所述地址映射表中之后,确定来自所述主机设备的请求写入的数据的写入是否被完成;以及通过改变所述修改的写入逻辑地址的所述特定位的值来恢复所述修改的写入逻辑地址,并且当完成所述数据的写入时,将所恢复的写入逻辑地址存储在所述地址映射表中。
9.根据权利要求8所述的操作方法,其进一步包括:
确定是否从所述主机设备接收读取请求。
10.根据权利要求9所述的操作方法,其进一步包括:
当从所述主机设备接收所述读取请求时,从所述地址映射表搜索读取逻辑地址;以及
基于所搜索的读取逻辑地址的特定位的值来确定从所述主机设备请求读取的数据的存储位置。
11.一种数据存储设备,其包括:
非易失性存储器装置;
地址映射表,其被配置为存储从主机设备接收的逻辑地址与所述非易失性存储器装置的物理地址之间的映射信息,并且当从所述主机设备接收写入请求时,存储修改的写入逻辑地址;
写入缓冲器,其被配置为当从所述主机设备接收所述写入请求时,临时存储写入逻辑地址和写入数据;以及
处理器,其被配置为通过改变所述写入逻辑地址的特定位的值来生成所述修改的写入逻辑地址,
其中所述处理器将所述修改的写入逻辑存储在所述地址映射表中,并且同时将所述写入逻辑地址和所述写入数据存储在所述写入缓冲器中,
在将所述修改的写入逻辑地址存储在所述地址映射表中之后,确定来自所述主机设备的请求写入的数据的写入是否被完成;以及通过改变所述修改的写入逻辑地址的所述特定位的值来恢复所述修改的写入逻辑地址,并且当完成所述数据的写入时,将所恢复的写入逻辑地址存储在所述地址映射表中。
12.根据权利要求11所述的数据存储设备,其中,当从所述主机设备接收读取请求时,所述处理器从所述地址映射表搜索读取逻辑地址并且基于所搜索的读取逻辑地址的所述特定位的值来确定请求读取的数据是位于所述非易失性存储器装置中还是位于所述写入缓冲器中。
13.根据权利要求12所述的数据存储设备,其进一步包括:
地址搜索引擎,其被配置成通过在所述处理器的控制下扫描所述地址映射表来搜索所述读取逻辑地址并且将所搜索的读取逻辑地址提供给所述处理器。
14.根据权利要求11所述的数据存储设备,其进一步包括:
映射缓存表,其被配置成存储关于包括在所述非易失性存储器装置中的多个存储块中的完成写入操作的存储块的地址映射信息的片段的部分。
15.根据权利要求11所述的数据存储设备,其中所述地址映射表包括物理块地址至逻辑块地址表,即P2L表,或逻辑块地址至物理块地址表,即L2P表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170001447A KR20180080589A (ko) | 2017-01-04 | 2017-01-04 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2017-0001447 | 2017-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280033A CN108280033A (zh) | 2018-07-13 |
CN108280033B true CN108280033B (zh) | 2021-06-22 |
Family
ID=62712421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710801516.XA Active CN108280033B (zh) | 2017-01-04 | 2017-09-07 | 数据存储设备及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10489290B2 (zh) |
KR (1) | KR20180080589A (zh) |
CN (1) | CN108280033B (zh) |
TW (1) | TW201826127A (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11068299B1 (en) * | 2017-08-04 | 2021-07-20 | EMC IP Holding Company LLC | Managing file system metadata using persistent cache |
KR102545167B1 (ko) * | 2017-11-23 | 2023-06-19 | 삼성전자주식회사 | 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 |
KR102649657B1 (ko) * | 2018-07-17 | 2024-03-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR102596964B1 (ko) * | 2018-07-31 | 2023-11-03 | 에스케이하이닉스 주식회사 | 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치 |
KR20200015185A (ko) * | 2018-08-03 | 2020-02-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200022118A (ko) * | 2018-08-22 | 2020-03-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11030089B2 (en) | 2018-09-28 | 2021-06-08 | Micron Technology, Inc. | Zone based reconstruction of logical to physical address translation map |
KR102567108B1 (ko) * | 2018-11-05 | 2023-08-14 | 삼성전자주식회사 | 데이터 스토리지 디바이스 및 데이터 스토리지 시스템 |
CN111143235A (zh) * | 2018-11-06 | 2020-05-12 | 爱思开海力士有限公司 | 多内核存储器系统中的逻辑地址分配 |
KR102583787B1 (ko) * | 2018-11-13 | 2023-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200074464A (ko) * | 2018-12-17 | 2020-06-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200076531A (ko) * | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200076528A (ko) * | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20200078101A (ko) * | 2018-12-21 | 2020-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200085967A (ko) * | 2019-01-07 | 2020-07-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20200085510A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러 |
KR20200095130A (ko) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN110267260B (zh) * | 2019-06-17 | 2022-03-01 | Oppo广东移动通信有限公司 | 刷机方法、装置、终端及计算机可读存储介质 |
US10877900B1 (en) * | 2019-06-26 | 2020-12-29 | Western Digital Technologies, Inc. | Enabling faster and regulated device initialization times |
KR20210004629A (ko) | 2019-07-05 | 2021-01-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210023203A (ko) * | 2019-08-22 | 2021-03-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11573891B2 (en) | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
KR102456176B1 (ko) * | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN111338990B (zh) * | 2020-02-12 | 2021-01-12 | 合肥康芯威存储技术有限公司 | 一种数据存储装置及数据存储方法与存储系统 |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719103A (zh) * | 2009-11-25 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于存储设备的信息处理方法以及存储设备 |
US20110238629A1 (en) * | 2010-03-23 | 2011-09-29 | Apple Inc. | Uncorrectable error handling schemes for non-volatile memories |
CN103064795A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 一种存储设备的控制方法及相关装置 |
US20130275656A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Apparatus, system, and method for key-value pool identifier encoding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100817087B1 (ko) | 2007-02-13 | 2008-03-27 | 삼성전자주식회사 | 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 |
US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US10067828B2 (en) * | 2014-10-03 | 2018-09-04 | Hitachi, Ltd. | Memory controller and data control method |
US10466908B2 (en) * | 2015-08-25 | 2019-11-05 | Toshiba Memory Corporation | Memory system that buffers data before writing to nonvolatile memory |
US10031845B2 (en) * | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
-
2017
- 2017-01-04 KR KR1020170001447A patent/KR20180080589A/ko active Search and Examination
- 2017-08-07 US US15/670,140 patent/US10489290B2/en active Active
- 2017-09-07 CN CN201710801516.XA patent/CN108280033B/zh active Active
- 2017-11-22 TW TW106140546A patent/TW201826127A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719103A (zh) * | 2009-11-25 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于存储设备的信息处理方法以及存储设备 |
US20110238629A1 (en) * | 2010-03-23 | 2011-09-29 | Apple Inc. | Uncorrectable error handling schemes for non-volatile memories |
US20130275656A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Apparatus, system, and method for key-value pool identifier encoding |
CN103064795A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 一种存储设备的控制方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
并行可配置浮点矩阵乘法IP核设计;乔瑞秀等;《网络新媒体技术》;20151130;第31-36页 * |
Also Published As
Publication number | Publication date |
---|---|
US10489290B2 (en) | 2019-11-26 |
TW201826127A (zh) | 2018-07-16 |
US20180189172A1 (en) | 2018-07-05 |
CN108280033A (zh) | 2018-07-13 |
KR20180080589A (ko) | 2018-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280033B (zh) | 数据存储设备及其操作方法 | |
US20190220416A1 (en) | Data storage apparatus and operating method thereof | |
CN110858129A (zh) | 数据存储装置及其操作方法 | |
KR102419036B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US10838854B2 (en) | Data storage device and operating method thereof | |
CN111916140B (zh) | 控制器及其操作方法以及包括控制器的存储器系统 | |
CN109407966B (zh) | 数据存储装置及其操作方法 | |
CN112445421A (zh) | 数据存储装置及其操作方法 | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
US11748025B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
KR20200089939A (ko) | 메모리 시스템 및 그 동작 방법 | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN115794535A (zh) | 事件日志管理方法、控制器和存储装置 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
CN110795360B (zh) | 数据存储设备以及该数据存储设备的操作方法 | |
CN109840214B (zh) | 数据存储装置及其操作方法 | |
CN109840222B (zh) | 存储器系统及其操作方法 | |
CN113805793A (zh) | 存储装置及其操作方法 | |
KR20210028405A (ko) | 서치 회로 및 컨트롤러 | |
US9966148B1 (en) | Data storage device and operating method thereof | |
CN112231240A (zh) | 控制器、存储器系统及其操作方法 | |
CN112328516A (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 |