CN112905107A - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN112905107A CN112905107A CN202010530782.5A CN202010530782A CN112905107A CN 112905107 A CN112905107 A CN 112905107A CN 202010530782 A CN202010530782 A CN 202010530782A CN 112905107 A CN112905107 A CN 112905107A
- Authority
- CN
- China
- Prior art keywords
- command
- memory device
- core
- data storage
- volatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/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
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- 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/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/0656—Data buffering arrangements
-
- 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
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/7202—Allocation control and policies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开涉及一种数据存储装置。该数据存储装置可以包括非易失性存储器设备和控制器。控制器可以被配置成:当从主机装置接收包括逻辑地址的主机命令(诸如写入命令或读取命令)时,将逻辑地址转换为物理地址;生成包括物理地址的预命令;在完成用于处理主机命令的操作中的一个或多个剩余操作之前,将所生成的预命令传输到非易失性存储器设备;并且在剩余操作完成时,将确认命令传输到非易失性存储器设备。控制器可以同时执行剩余操作以及将预命令向非易失性存储器设备的传输。
Description
相关申请的交叉引用
本申请要求于2019年11月19日向韩国知识产权局提交的申请号为10-2019-0148385的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种数据存储装置及其操作方法。
背景技术
由于使用存储器装置的数据存储装置不具有机械驱动器,因此该数据存储装置具有优异的稳定性和耐用性、非常高的信息访问速度和低功耗。具有这些优点的数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置和固态驱动器(SSD)。
在使用NAND闪速存储器的闪速存储装置中,FTL(闪存转换层)可以将从主机接收到的LPN(逻辑页面编号)转换为PPN(物理页面编号),用其他参数将PPN进行打包,并且将所打包的PPN传送到NAND闪存控制器。然后,NAND闪存控制器可以执行调度和解析操作,然后将解析后的PPN以地址的形式传送到NAND闪速存储器。
随着NAND闪存I/O速度的逐步提高,向NAND闪速存储器提供NAND命令所需时间(即,NAND命令传输时间)对闪速存储装置的性能的不利影响越来越大。
发明内容
各个实施例涉及一种能够通过缩短NAND命令传输时间来改善数据写入和读取性能的数据存储装置及其操作方法。
在实施例中,一种数据存储装置可以包括:非易失性存储器设备;以及控制器,被配置成:接收包括逻辑地址的主机命令;确定与逻辑地址对应的物理地址;生成包括该物理地址的预命令;在完成用于处理主机命令的一个或多个剩余操作的执行之前,将所生成的预命令传输到非易失性存储器设备;并且当剩余操作的执行完成时,将确认命令传输到非易失性存储器设备;其中该控制器同时执行剩余操作以及将所生成的预命令向非易失性存储器设备的传输。
在实施例中,一种数据存储装置的操作方法可以包括以下步骤:接收包括逻辑地址的主机命令;确定与逻辑地址对应的物理地址;根据主机命令的规范,生成包括物理地址的预命令;在完成用于处理主机命令的一个或多个剩余操作之前,将预命令传输到非易失性存储器设备;执行剩余操作;并且当剩余操作的执行完成时,将确认命令传输到非易失性存储器设备,其中剩余操作的执行和预命令向非易失性存储器设备的传输同时发送。
根据本实施例,在执行FTL操作的同时,可以从决定PPN的时间点传输包括一些参数的NAND命令。因此,一部分FTL操作和NAND命令传输可以同时执行。因此,可以大大减少NAND命令传输时间,这使得可以期望数据写入或读取性能将能够得到改善。
附图说明
图1示出了根据实施例的数据存储装置的配置。
图2示出了根据本实施例的命令传输过程。
图3、图4和图5各示出了根据实施例的预命令传输过程。
图6和图7各自示出了根据实施例的命令传输过程。
图8是描述根据实施例的数据存储装置的操作进程的流程图。
图9示出了根据实施例的包括SSD(固态驱动器)的数据处理系统。
图10示出了图9的控制器的配置。
图11示出了根据实施例的包括数据存储装置的数据处理系统。
图12示出了根据实施例的包括数据存储装置的数据处理系统。
图13示出了根据实施例的包括数据存储装置的网络系统。
图14示出了根据实施例的包括在数据存储装置中的非易失性存储器设备。
具体实施方式
在下文中,将通过示例性实施例参照附图在下面描述根据本公开的数据存储装置及其操作方法。
图1是示出根据实施例的数据存储装置10的配置的示图。
在下文中,将参照以下附图来描述数据存储装置10:作为描述根据本实施例的命令传输过程的示图的图2,作为描述根据实施例的预命令传输过程的示图的图3至图5,以及作为更详细地描述根据实施例的命令传输过程的示图的图6和图7。
数据存储装置10可以存储由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV或车载信息娱乐系统的主机装置(未示出)访问的数据。数据存储装置10可以被称为存储器系统。
数据存储装置10可以根据将数据存储装置10联接到主机装置的接口协议被制造为各种存储装置中的任意一种。例如,数据存储装置10可以被配置为包括以下的各种类型存储装置中的任意一种:SSD(固态驱动器),诸如eMMC、RS-MMC或微型MMC的MMC(多媒体卡),诸如迷你SD或微型SD的SD(安全数字)卡,USB(通用串行总线)存储装置,UFS(通用闪存)装置,PCMCIA(个人计算机存储卡国际协会)卡型存储装置,PCI(外围组件互连)卡型存储装置,PCI-E(高速PCI)卡型存储装置,CF(紧凑型闪存)卡,智能媒体卡和记忆棒。
数据存储装置10可以被制造为各种类型的封装中的任意一种。例如,数据存储装置10可以被制造为诸如以下的各种类型封装中的任意一种:POP(堆叠封装)、SIP(系统级封装)、SOC(片上系统)、MCP(多芯片封装)、COB(板上芯片)、WFP(晶圆级制造封装)和WSP(晶圆级堆叠封装)。
数据存储装置10可以包括非易失性存储器设备100和控制器200。
非易失性存储器设备100可以向与从控制器200传输的闪存写入命令或闪存读取命令对应的地址写入数据或从其读取数据。在本实施例中,闪存写入命令和闪存读取命令中的每一个可以包括预命令和确认命令。预命令可以包括可以在传输相应的确认命令之前传输的命令参数,并且确认命令可以控制非易失性存储器设备100实际开始写入操作或读取操作。可以根据操作者的需要来配置在确认命令之前可以传输的命令参数,并且将在下面详细描述。
非易失性存储器设备100可以作为数据存储装置10的存储介质来操作。取决于存储器单元,非易失性存储器设备100可以被配置为诸如以下的各种类型非易失性存储器设备中的任意一种:NAND闪速存储器、NOR闪速存储器、使用铁电电容器的FRAM(铁电随机存取存储器)、使用TMR(隧道磁阻)层的MRAM(磁性随机存取存储器)、使用硫族化物合金的PRAM(相变随机存取存储器)、以及使用过渡金属氧化物的ReRAM(电阻式随机存取存储器)。
非易失性存储器设备100可以包括存储器单元阵列(未示出),该存储器单元阵列具有布置在多个位线和多个字线之间的各个交叉处的多个存储器单元(如图14所示)。存储器单元阵列的存储器单元中的每一个可以是用于存储1位数据的单层单元(SLC)、用于存储2位数据的多层单元(MLC)、用于存储3位数据的三层单元(TLC)或用于存储4位数据的四层单元(QLC)。存储器单元阵列可以包括SLC、MLC、TLC和QLC中的一个或多个。存储器单元阵列可以包括以二维水平结构配置的存储器单元或以三维垂直结构配置的存储器单元。
控制器200可以通过执行多个操作来处理从主机接收的读取命令或写入命令(也就是主机命令)。当从主机装置接收到包括LPN(逻辑页面编号)的主机命令时,由控制器200执行的操作中的一个可以是将LPN转换为PPN(物理页面编号),连同用于处理在转换操作之前执行或与转换操作并行执行的命令的第一组操作,和用于处理在转换操作之后但在非易失性存储器设备100开始相应的读取操作或写入操作之前执行的命令的第二组操作。在实施例中,在转换操作确定PPN之后,控制器200可以生成包括PPN的预命令,并且将所生成的预命令传输到非易失性存储器设备100。可以在第二组操作完成之前传输预命令。在实施例中,处理主机命令可以包括响应于非易失性存储器设备100完成相应的读取操作或写入操作来执行第三组操作。
当控制器200完成执行除已经执行的操作之外的剩余操作以生成预命令时(即,也就是当控制器200已经完成第二组操作时),控制器200可以将确认命令传输到非易失性存储器设备100。预命令可以是基于预命令包,根据由读取或写入命令指定的信息而生成的命令,其中预命令包包括可以在已确定从主机装置传输的逻辑地址的物理地址的时间点或该时间点之后的确认命令之前被传输到非易失性存储器设备100的命令参数。在实施例中,控制器200可以确定在准备可以在确认命令之前被传输到非易失性存储器设备100的命令参数的时间点(例如,确定与主机命令的逻辑地址对应的物理地址的时间点)是将预命令传输到非易失性存储器设备100的时间点。
参照图3,当主机命令是读取命令时,控制器200可以生成包括数据存储方法、闪存读取命令指示和地址信息的预命令包。
非易失性存储器设备100的读取操作可以包括阵列读取操作和数据输出操作两者,并且即使当仅确定用于阵列读取操作的参数时,也可以生成预命令包。因此,控制器200可以仅使用用于阵列读取操作的参数将预命令包传输到非易失性存储器设备100,然后执行剩余操作以生成用于数据输出操作的参数。也就是说,读取操作期间的剩余操作(即,第二组操作)可以包括生成用于包括(例如)缓冲器分配的数据输出操作的参数的操作。此时,剩余操作还可以包括用于更新诸如读取计数的元信息的操作。
通常,当主机命令是指示128k读取的顺序读取命令时,控制器200需要通过将读取命令除以4k(对应于逻辑地址单元的大小)来生成32个单位参数集,并且设置数据输出操作以及针对所生成的32个单位参数的阵列读取操作。特别地,由于数据输出操作需要读取缓冲器分配操作,因此控制器200需要在重复读取缓冲器分配操作32次的同时执行设置操作。也就是说,在全部生成用于阵列读取操作和数据输出操作的参数之后,可以将用于一般读取操作的NAND命令传输到非易失性存储器设备100。在本实施例中,在确认命令的传输之前,控制器200可以仅将用于阵列读取操作的参数作为预命令传输到非易失性存储器设备100。例如,当主机命令是指示128k读取的顺序读取命令时,控制器200可以通过仅使用用于两次读取四个16k平面中的每一个以执行128k读取的两个阵列读取操作的参数,在确认命令的传输之前将预命令传输到非易失性存储器设备100。在上述示例中,已经例示了顺序读取。然而,本实施例也可以应用于随机读取。
在图4所示的实施例中,当主机命令是写入命令时,控制器200可以生成包括数据存储方法、闪存写入命令指示、非易失性存储器设备的地址信息以及待写入的数据的预命令包。
在图5所示的另一实施例中,当主机命令是写入命令时,控制器200可以生成包括数据存储方法、闪存写入命令指示和非易失性存储器设备的地址信息的预命令包。也就是说,根据实施例,用于写入命令的预命令包可以包括或可以不包括待写入的用户数据Datainput。
在写入操作的情况下,剩余操作可以包括逻辑到物理(L2P)映射表更新、日志数据更新和原始写入数据处理。日志数据更新可以包括在诸如突然关闭的情况发生时支持数据恢复的操作。
为了原始用户数据的保护和安全性,原始写入数据处理可以包括处理待写入的原始用户数据的操作。
例如,原始写入数据处理操作可以指示对原始用户数据进行加扰并将加扰后的数据写入存储器230内的新区域(即,缓冲器的新区域)的操作。根据非易失性存储器设备(例如,NAND闪存)100的特性,加扰可以指示通过一系列算法来处理原始用户数据的操作。再例如,加扰可以指示对原始用户数据进行编码并将经编码的数据写入存储器230内的新区域(即,缓冲器的新区域)的操作。如上所述,当用户数据被写入非易失性存储器设备100时,用户数据可以不是原始数据,而是处理后的数据。
当待写入的数据被包括在预命令包中时,剩余操作不包括处理待写入的原始用户数据的操作,因为在执行剩余操作时该数据已经被发送到非易失性存储器设备100。
如图2所示,在接收到包括读取或写入命令的主机请求(即,主机命令)(在S1)、执行逻辑到物理(L2P)转换(在S2)并将预命令包发送到第二内核(在S3)之后,控制器200可以执行将预命令传输到非易失性存储器设备100的操作(在S4B)以及在生成预命令时不涉及的剩余操作(诸如在S4A的FTL进程)。在本实施例中,控制器200可以同时彼此并行地处理FTL内核(下面将描述的第一内核220)的操作和NAND内核(下面将描述的第二内核240)的操作。在剩余操作完成之后,第一内核可以将后命令包发送到第二内核(在S5),并且作为响应,第二内核可以将确认命令发送到非易失性存储器设备100(在S6)。因此,可能期望读取/写入操作的处理速度可以得到提高。
控制器200可以通过驱动加载在存储器230中的固件或软件来控制数据存储装置10的全部操作。控制器200可以解码并运行诸如固件或软件的基于代码的指令或算法。控制器200可以以硬件或硬件和软件的组合来实施。
重新参照图1,控制器200可以包括主机接口210、第一内核220、存储器230和第二内核240。尽管在图1中未示出,但是控制器200可以进一步包括ECC(错误校正码)引擎,该ECC引擎通过对从主机装置提供的写入数据执行ECC编码来生成奇偶校验数据,并且使用奇偶校验数据对从非易失性存储器设备100读取的数据执行ECC解码。ECC引擎可以安装在第二内核240的内部或外部。
主机接口210可以根据主机装置的协议来接口连接主机装置和数据存储装置10。例如,主机接口210可以通过以下的任意一种协议与主机装置通信:USB(通用串行总线)、UFS(通用闪存)、MMC(多媒体卡)、PATA(并行高级技术附件)、SATA(串行高级技术附件)、SCSI(小型计算机系统接口)、SAS(串列SCSI)、PCI(外围组件互连)和PCI-e(高速PCI)。
参照图6,当从主机装置接收到包括逻辑地址(即,LPN)的读取命令时,第一内核220可以将LPN转换为PPN,并将包括PPN的预命令包传送到第二内核240。
具体地,当从主机装置接收到包括逻辑地址(诸如LPN)的读取命令时,第一内核220可以通过参考先前存储在控制器200中的L2P映射表,将逻辑地址转换为与逻辑地址对应的物理地址(诸如PPN)。
当从主机装置接收到包括逻辑地址的写入命令时,第一内核220可以确定待写入与从主机装置传输的逻辑地址对应的数据的物理地址(诸如PPN)。确定物理地址可以包括将与物理地址对应的存储器的未使用区域与逻辑地址相关联。
上述预命令包可以包括在确定命令的传输之前,紧接在已确定针对从主机装置传输的逻辑地址的物理地址(诸如图6中“L2P转换在此完成”所指示的时间)之后,可以传输到非易失性存储器设备100的命令信息。
例如,预命令包可以包括数据存储方法(例如,可靠性模式,诸如SLC、TLC或MLC)、闪存写入/读取命令指示以及地址信息。因此,当从主机装置接收到读取命令时,预命令包可以包括数据存储方法(例如,可靠性模式)、通道、芯片使能CE、NAND行地址、NAND列地址、以及闪存读取命令指示。例如,在SLC 1平面读取操作的情况下,可以以诸如DAh-00h-CCRRR的格式配置预命令。此处,DAh可以代表数据存储方法,00h可以代表闪存读取命令指示,CCRRR可以代表地址信息,其中CC是列地址部分,RRR是行地址部分。作为另一示例,在4平面读取操作的情况下,可以以诸如00h CCRRR 31h-00h CCRRR 31h-00h CCRRR 31h-00hCCRRR的格式来配置预命令。此处,00h可以代表闪存读取命令指示,CCRRR可以代表地址信息,31h可以代表平面改变命令。
当从主机装置接收到写入命令时,预命令包可以包括数据存储方法(例如,可靠性模式,诸如SLC、TLC或MLC)、通道、芯片使能CE、NAND行地址、NAND列地址、缓冲器地址、闪存写入命令指示和待写入的数据。待写入的数据可以指示用户数据。例如,在具有Datain的SLC 1平面写入操作的情况下,可以以诸如DAh-80h-CCRRR-DataInput的格式来配置预命令。此处,DAh可以代表数据存储方法,80h可以代表闪存写入命令指示,CCRRR可以代表地址信息,DataInput可以代表待写入的数据。
在另一示例中,在具有Datain的4平面写入操作的情况下,可以以诸如80h CCRRRDataIn1 11h-80h CCRRR DataIn2 11h-80h CCRRR DataIn3 11h-80h CCRRR DataIn4的格式来配置预命令。此处,80h可以代表闪存写入命令指示,CCRRR可以代表地址信息,DataIn1至DataIn4可以代表分别待写入第一至第四平面中的数据DataIn的部分,11h可以代表平面改变命令。
另一方面,当从主机装置接收到写入命令时,预命令包可以包括:诸如SLC、TLC或MLC的数据存储方法(可靠性模式),通道,芯片使能CE,NAND行地址,NAND列地址、缓冲器地址和闪存写入命令指示。也就是说,待写入的数据可以不包括在预命令中。本实施例不限于此,而是可以根据操作者的需要来改变预命令包中包括的参数。在没有Datain的SLC 1平面写入操作的情况下,可以以诸如DAh-80h-CCRRR的格式来配置预命令。此处,DAh可以代表数据存储方法,80h可以代表闪存写入命令指示,CCRRR可以代表地址信息。
第一内核220可以将预命令包传送到第二内核240,并且执行不包括用于生成预命令包的那些操作的剩余操作(图6的操作S60)。也就是说,第一内核220可以执行诸如与读取/写入命令有关的打包的剩余操作。
当完成剩余操作时,第一内核220可以将图6的后命令包传输到第二内核240,指示第二内核240将传输确认命令。非易失性存储器设备100可以在从第二内核240接收到确认命令之后开始执行闪存读取或写入命令。
在实施例中,当第一内核220在将后命令包传输到第二内核240之前从主机装置接收到主机中止命令时,第一内核220可以中止将后命令包传输到第二内核240的过程。换言之,响应于接收到主机中止命令,第一内核220可以指示第二内核240不传输确认命令。因此,非易失性存储器设备100可以不执行与其已接收到的预命令对应的操作。
在另一实施例中,当第一内核220在将后命令包传输到第二内核240之前从主机装置接收到主机中止命令时,第一内核220可以将包括中止请求的后命令包传输到第二内核240。响应于接收到包括中止请求的后命令包,第二内核240可以中止向非易失性存储器设备100传输预命令。当第二内核240在将预命令完全传输到非易失性存储器设备100之后接收到包括中止请求的后命令包时,第二内核240可以不对非易失性存储器设备100执行单独的操作。
上述第一内核220可以处理从主机装置传输的请求。为了处理从主机装置传输的请求,第一内核220可以运行被加载到存储器230中的基于代码的指令或算法,即固件,并且控制非易失性存储器设备100以及诸如主机接口210、存储器230和第二内核240的内部装置的操作。
第一内核220可以基于从主机装置传输的请求来生成用于控制非易失性存储器设备100的操作的控制信号,并且可以通过第二内核240将所生成的控制信号提供给非易失性存储器设备100。
存储器230可以存储L2P映射表,该L2P映射表包括逻辑地址和与逻辑地址对应的物理地址。
上述存储器230可以包括动态RAM(DRAM)或静态RAM(SRAM)。存储器230可以存储由第一内核220执行的固件。此外,存储器230可以存储执行固件所需的数据,例如元数据。也就是说,存储器230可以作为第一内核220的工作存储器来操作。尽管在图1中未示出,但是控制器200可以进一步包括与第一内核220相邻布置的第一内核专用存储器,并且可以将存储器230中存储的固件和元数据加载到第一内核专用存储器。
存储器230可以包括用于临时存储将从主机装置传输到非易失性存储器设备100的写入数据、从非易失性存储器设备100读取并将被传输到主机装置的读取数据、或两者的数据缓冲器。也就是说,存储器230可以作为缓冲存储器来操作。
图1示出了存储器230被包括在控制器200中,但是存储器230可以在控制器200的外部。
第二内核240可以将基于预命令包根据写入或读取命令的规范生成的预命令传输到非易失性存储器设备100。然后,在剩余操作完成之后,第二内核240可以基于从第一内核220传送的后命令包来生成确认命令,并将确认命令传输到非易失性存储器设备100。
第二内核240可以存储关于非易失性存储器设备100的就绪状态或忙碌状态的信息,并且当非易失性存储器设备100处于就绪状态时传输预命令或确认命令。当非易失性存储器设备100处于忙碌状态时,第二内核240可以等待而不将预命令或确认命令传输到非易失性存储器设备100。
第二内核240可以管理包括待传输到非易失性存储器设备100的预命令的传输开始、传输完成和传输准备的传输状态。
第二内核240可以如下管理预命令的传输状态。当第二内核240开始向非易失性存储器设备100传输预命令时,可以将传输状态设置为传输开始。当第二内核240完成将预命令传输到非易失性存储器设备100时,可以将传输状态设置为传输完成。在第二内核240将预命令传输到非易失性存储器设备100之前,可以将传输状态设置为传输准备。
在将确认命令传输到非易失性存储器设备100之前,第二内核240可以基于传输状态检查是否已经传输预命令。然后,当传输确认命令时,第二内核240可以确定是否传输预命令,也就是与确认命令对应的预命令是否尚未被传输。当预命令的传输状态是传输准备时,第二内核240可以传输确认命令与预命令。
参照图7,当在将预命令传输到非易失性存储器设备100的同时从第一内核220接收到后命令包时,第二内核240可以在等待预命令(在图6和图7中由“预命令发布”指示)的传输完成之后将确认命令(在图6和图7中由“确认命令发布”指示)传输到非易失性存储器设备100。
因此,如图7所示,在第二内核240接收到后命令包时,第二内核240可以检查预命令的传输状态,并确定预命令是否正被传输到非易失性存储器设备100。
第二内核240可以在第一内核220的控制下控制非易失性存储器设备100。当非易失性存储器设备100被配置为NAND闪速存储器时,第二内核240可以被称为FCT(闪存控制顶(Flash Control Top))。第二内核240可以将由第一内核220生成的控制信号传输到非易失性存储器设备100。控制信号可以包括用于控制非易失性存储器设备100的操作的命令、地址和操作控制信号。操作控制信号的示例可以包括芯片使能信号、命令锁存使能信号、地址锁存使能信号、写入使能信号、读取使能信号、数据选通信号等,但不限于此。第二内核240可以将写入数据传输到非易失性存储器设备100,并且可以从非易失性存储器设备100接收读取数据。
第二内核240和非易失性存储器设备100可以通过多个通道CH1至CHn联接。第二内核240可以通过多个通道CH1至CHn向非易失性存储器设备100传输诸如命令、地址、操作控制信号和数据(即,写入数据)的信号。第二内核240可以通过多个通道CH1至CHn从非易失性存储器设备100接收状态信号(例如,就绪/忙碌)和数据(即,读取数据)。
图8是示出根据实施例的数据存储装置的操作进程的流程图。
在步骤S101中,控制器200可以从主机装置接收包括逻辑地址的主机命令(可以是写入命令或读取命令)。
在步骤S103中,控制器200可以将逻辑地址转换为与逻辑地址对应的物理地址。
具体地,当在步骤S101中从主机装置接收到包括逻辑地址的读取命令时,控制器200可以通过参考先前存储的L2P映射表,将从主机装置接收到的读取命令中包括的逻辑地址转换为与逻辑地址对应的物理地址。
当在步骤S101中从主机装置接收到包括逻辑地址的写入命令时,控制器200可以确定待写入与从主机装置接收到的逻辑地址对应的数据的物理地址。
在步骤S105中,控制器200可以生成包括物理地址并且可以在完成涉及处理从主机接收到的命令的剩余操作(即,在产生预命令包时未执行的操作)之前被传输到非易失性存储器设备100的预命令包。
参照图3,当从主机装置接收到读取命令时,控制器200可以生成包括数据存储方法、闪存读取命令指示和地址信息的预命令包。
参照图4,在实施例中,当从主机装置接收到写入命令时,控制器200可以生成包括数据存储方法、闪存写入命令指示、地址信息和待写入的数据的预命令包。
参照图5,在另一实施例中,当从主机装置接收到写入命令时,控制器200可以生成包括数据存储方法、闪存写入命令指示和地址信息的预命令包。
在步骤S107中,控制器200可以将基于预命令包根据写入或读取命令的规范而生成的预命令传输到非易失性存储器设备100。
在步骤S107中,控制器200还可以执行剩余操作(处理来自主机的命令所需的但是不用于生成预命令的操作)。
可以同时执行将预命令传输到非易失性存储器设备100并且执行步骤S107中的剩余操作的操作。
在步骤S109中,控制器确定剩余操作是否完成,并在S109等待直到它们完成为止。然后,当确定剩余操作完成时,在S111,控制器200可以将确认命令传输到非易失性存储器设备100。
在步骤S107和S111中,当非易失性存储器设备100处于就绪状态时,控制器200可以将预命令(针对步骤S107)或确认命令(针对步骤S111)传输到非易失性存储器设备100。
尽管未示出,但是控制器200可以管理包括待传输到非易失性存储器设备100的预命令的传输开始、传输完成和传输准备的传输状态。
在将确认命令传输到非易失性存储器设备100之前,控制器200可以基于传输状态来检查是否已经传输预命令。然后,当传输确认命令时,控制器可以确定是否也传输预命令。当预命令的传输状态是传输准备时,控制器200可以传输确认命令与预命令。
在将预命令传输到非易失性存储器设备100的步骤S107和将确认命令传输到非易失性存储器设备100的步骤S111之间,当正在将预命令传输到非易失性存储器设备100的同时根据剩余操作的完成生成了后命令包时,控制器200可以等待直到预命令被完全传输,然后将确认命令传输到非易失性存储器设备100(参见图7)。
图9是示出根据实施例的包括固态驱动器(SSD)2200的数据处理系统2000的示图。参照图9,数据处理系统2000可以包括主机装置2100以及SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器设备2231至223n、电源2240、信号连接器2250以及电源连接器2260。
控制器2210可以控制SSD 2200的全部操作。控制器2210可以包括诸如图2的控制器200的实施例。
缓冲存储器装置220可以临时存储待存储在非易失性存储器设备2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器设备2231至223n读取的数据。临时存储在缓冲存储器装置2220中的数据可以在控制器2210的控制下被传输到主机装置2100或非易失性存储器设备2231至223n。
非易失性存储器设备2231至223n可以用作SSD 2200的存储介质。非易失性存储器设备2231至223n可以通过多个通道CH1至CHn分别联接到控制器2210。一个通道可以联接一个或多个非易失性存储器设备。联接到一个通道的非易失性存储器设备可以联接到相同的信号总线和数据总线。
电源2240可以将通过电源连接器2260输入的电力PWR提供到SSD 2200中。电源2240可以包括辅助电源2241。当发生突然断电时,辅助电源2241可以供应电力以正常关闭SSD 2200。辅助电源2241可以包括能够存储电力PWR的大电容器。
控制器2210可以通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可以包括命令、地址、数据等。信号连接器2250可以根据主机装置2100和SSD 2200之间的接口被配置为各种类型的连接器。
图10是示出图9的控制器的配置的示图。参照图10,控制器2210可以包括主机接口单元2211、控制单元2212、RAM 2213、ECC单元2214和存储器接口单元2215。
主机接口单元2211可以根据主机装置2100的协议接口连接主机装置2100和SSD2200。例如,主机接口单元2211可以通过诸如以下的协议中的任意一种与主机装置2100通信:SD(安全数字)、USB(通用串行总线)、MMC(多媒体卡)、eMMC(嵌入式MMC)、PCMCIA(个人计算机存储卡国际协会)、PATA(并行高级技术附件)、SATA(串行高级技术附件)、SCSI(小型计算机系统接口)、SAS(串列SCSI)、PCI(外围组件互连)、PCI-E(高速PCI)和UFS(通用闪存)。主机接口单元2211可以执行磁盘仿真功能,以支持主机装置2100将SSD 2200识别为通用数据存储装置,例如HDD(硬盘驱动器)。
控制单元2212可以分析和处理从主机装置2100接收的信号。控制单元2212可以根据用于操作SSD 2200的固件或软件来控制内部功能块的操作。RAM 2213可以用作用于运行这种固件或软件的工作存储器。
ECC单元2214可以生成待被传输到非易失性存储器设备2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以与该数据一起存储在非易失性存储器设备2231至223n中。ECC单元2214可以基于奇偶校验数据检测从非易失性存储器设备2231至223n读取的数据中的错误。当检测到的错误落在可校正范围内时,ECC单元2214可以校正所检测到的错误。
存储器接口单元2215可以在控制单元2212的控制下向图9中所示的非易失性存储器设备2231至223n提供诸如命令和地址的控制信号。存储器接口单元2215可以在控制单元2212的控制下与非易失性存储器设备231至123n交换数据。例如,存储器接口单元2215可以将存储在缓冲存储器装置2220中的数据提供给非易失性存储器设备2231至223n,或者将从非易失性存储器设备2231至223n读取的数据提供给缓冲存储器装置2220。
图11是示出根据实施例的包括数据存储装置的数据处理系统的示图。参照图11,数据处理系统3000可以包括主机装置3100和数据存储装置3200。
主机装置3100可以以诸如印刷电路板的板的形式来配置。尽管未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
主机装置3100可以包括连接端子3110,诸如插座、插槽或连接器。数据存储装置3200可以安装在连接端子3110上或连接端子3110中。
数据存储装置3200可以以诸如印刷电路板的板的形式来配置。数据存储装置3200可以被称为存储器模块或存储卡。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器设备3231至3232、PMIC(电源管理集成电路)3240和连接端子3250。
控制器3210可以控制数据存储装置3200的全部操作。控制器3210可以以与图10所示的控制器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的任意一侧上。
图12是示出根据实施例的包括数据存储装置的数据处理系统的示图。参照图12,数据处理系统4000可以包括主机装置4100和数据存储装置4200。
主机装置4100可以以诸如印刷电路板的板的形式来配置。尽管未示出,但是主机装置4100可以包括用于执行主机装置的功能的内部功能块。
数据存储装置4200可以以表面安装封装的形式来配置。数据存储装置4200可以通过焊球4250安装在主机装置4100上。数据存储装置4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器设备4230。
控制器4210可以控制数据存储装置4200的全部操作。控制器4210可以以与图10所示的控制器2210相同的方式来配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器设备4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器设备4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以在控制器4210的控制下被传输到主机装置4100或非易失性存储器设备4230。
非易失性存储器设备4230可以用作数据存储装置4200的存储介质。
图13是示出根据实施例的包括数据存储装置的网络系统5000的示图。参照图13,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于多个客户端系统5410至5430的请求服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。再例如,服务器系统5300可以向多个客户端系统5410至5430提供数据。
服务器系统5300可以包括主机装置5100和数据存储装置5200。数据存储装置5200可以被配置为图1的数据存储装置10、图9的SSD 2200、图11的数据存储装置3200、图12的数据存储装置4200或其组合中的一个或多个。
图14是示出根据实施例的包括在数据存储装置中的非易失性存储器设备的框图。参照图14,非易失性存储器设备300可以包括存储器单元阵列310、行解码器320、列解码器330、数据读取/写入块340、电压生成器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm与位线BL1至BLn之间的各个交叉处的存储器单元MC。
行解码器320可以通过字线WL1至WLm联接到存储器单元阵列310。行解码器320可以在控制逻辑360的控制下操作。行解码器320可以对来自外部装置(未示出)的地址进行解码。行解码器320可以基于解码结果来选择和驱动字线WL1至WLm。例如,行解码器320可以向字线WL1至WLm提供从电压生成器350提供的字线电压。
数据读取/写入块340可以通过位线BL1至BLn联接到存储器单元阵列310。数据读取/写入块340可以包括对应于各个位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块340可以在控制逻辑360的控制下操作。取决于操作模式,数据读取/写入块340可以作为写入驱动器或读出放大器来操作。例如,在写入操作期间,数据读取/写入块340可以作为用于将从外部装置提供的数据存储在存储器单元阵列310中的写入驱动器来操作。再例如,在读取操作期间,数据读取/写入块340可以作为用于从存储器单元阵列310读取数据的读出放大器来操作。
列解码器330可以在控制逻辑360的控制下操作。列解码器330可以对从外部装置提供的地址进行解码。列解码器330可以基于解码结果,将数据读取/写入块340的对应于各个位线BL1至BLn的读取/写入电路RW1至RWn联接到数据输入/输出线(或数据输入/输出缓冲器)。
电压生成器350可以生成用于非易失性存储器设备300的内部操作的电压。由电压生成器350生成的电压可以施加到存储器单元阵列310的存储器单元。例如,在编程操作期间生成的编程电压可以施加到待被执行编程操作的存储器单元的字线。再例如,在擦除操作期间生成的擦除电压可以施加到待被执行擦除操作的存储器单元的阱区。又例如,在读取操作期间生成的读取电压可以施加到待被执行读取操作的存储器单元的字线。
控制逻辑360可以基于从外部装置提供的控制信号来控制非易失存储器设备300的全部操作。例如,控制逻辑360可以控制非易失性存储器设备300的操作,诸如非易失性存储器设备300读取操作、写入操作和擦除操作。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,不应基于所描述的实施例来限制本文描述的数据存储装置的操作进程。
Claims (17)
1.一种数据存储装置,包括:
非易失性存储器设备;以及
控制器,所述控制器:
接收包括逻辑地址的主机命令,
确定与所述逻辑地址对应的物理地址,
生成包括所述物理地址的预命令,
在完成用于处理所述主机命令的一个或多个剩余操作的执行之前,将所生成的预命令传输到所述非易失性存储器设备,并且
当所述剩余操作的执行完成时,将确认命令传输到所述非易失性存储器设备,
其中所述控制器同时执行所述剩余操作以及将所生成的预命令向所述非易失性存储器设备的传输。
2.根据权利要求1所述的数据存储装置,其中所述控制器包括:
存储器,存储L2P映射表即逻辑到物理映射表,所述逻辑到物理映射表包括所述逻辑地址和与所述逻辑地址对应的所述物理地址;
第一内核,在从所述主机装置接收到所述主机命令时将所述逻辑地址转换为所述物理地址,将包括所转换的物理地址的预命令包传送到第二内核,并在传输所述预命令包之后执行所述剩余操作;以及
第二内核,基于所述预命令包并根据所述主机命令的规范来生成所述预命令,将预命令传输到所述非易失性存储器设备,在所述剩余操作的执行完成之后基于从所述第一内核传送的后命令包生成所述确认命令,并且将所生成的确认命令传输到所述非易失性存储器设备。
3.根据权利要求2所述的数据存储装置,其中所述第二内核存储关于所述非易失性存储器设备的就绪状态或忙碌状态的信息,并且当所述非易失性存储器设备处于所述就绪状态时,传输所述预命令或所述确认命令。
4.根据权利要求2所述的数据存储装置,其中所述第二内核管理针对所述非易失性存储器设备的所述预命令的传输状态,所述传输状态为传输开始、传输完成和传输准备中的任意一种,并且
其中所述第二内核在将所述确认命令传输到所述非易失性存储器设备之前,基于所述传输状态检查是否已经传输所述预命令,并且当传输所述确认命令时确定是否传输所述预命令。
5.根据权利要求2所述的数据存储装置,其中响应于在所述后命令包已经被传输到所述第二内核之前所述控制器接收到主机中止命令,所述第一内核中止将所述后命令包传输到所述第二内核的过程。
6.根据权利要求2所述的数据存储装置,其中响应于在所述后命令包已被传输到所述第二内核之前所述控制器接收到主机中止命令,所述第一内核将包括中止请求的后命令包传输到所述第二内核,
其中响应于接收到包括所述中止请求的后命令包,所述第二内核中止向所述非易失性存储器设备传输所述预命令。
7.根据权利要求2所述的数据存储装置,其中当在所述第二内核正在将所述预命令传输到所述非易失性存储器设备的同时,响应于所述第二内核从所述第一内核接收到所述后命令包时,所述第二内核等待直到所述预命令完全传输为止,然后将所述确认命令传输到所述非易失性存储器设备。
8.根据权利要求1所述的数据存储装置,其中当所述主机命令是读取命令时,所述控制器生成包括数据存储方法、闪存读取命令指示和地址信息的预命令包。
9.根据权利要求1所述的数据存储装置,其中当所述主机命令是写入命令时,所述控制器生成包括数据存储方法、闪存写入命令指示、地址信息和待写入的数据的预命令包,或生成包括数据存储方法、闪存写入命令指示和地址信息的预命令包。
10.一种数据存储装置的操作方法,所述方法包括:
接收包括逻辑地址的主机命令;
确定与所述逻辑地址对应的物理地址;
根据所述主机命令的规范,生成包括所述物理地址的预命令;
在完成用于处理所述主机命令的一个或多个剩余操作之前,将所述预命令传输到非易失性存储器设备;
执行所述剩余操作;并且
当所述剩余操作的执行完成时,将确认命令传输到所述非易失性存储器设备,
其中所述剩余操作的执行和将所述预命令向所述非易失性存储器设备的传输同时发生。
11.根据权利要求10所述的操作方法,其中当所述非易失性存储器设备处于就绪状态时,所述预命令或所述确认命令被传输到所述非易失性存储器设备。
12.根据权利要求10所述的操作方法,进一步包括:管理针对所述非易失性存储器设备的所述预命令的传输状态,所述传输状态是传输开始、传输完成和传输准备中的任意一种。
13.根据权利要求10所述的操作方法,进一步包括:
响应于所述剩余操作的完成,生成后命令包;
根据所述后命令包生成所述确认命令;以及
当所述预命令的传输尚未完成并且所述后命令包已经生成时:
等待所述预命令的传输完成,并且
响应于所述预命令的传输的完成,将所述确认命令传输到所述非易失性存储器设备。
14.根据权利要求10所述的操作方法,其中当所述主机命令是读取命令时,生成预命令包包括生成包括数据存储方法、闪存读取命令指示和地址信息的预命令包。
15.根据权利要求10所述的操作方法,其中当所述主机命令为写入命令时,生成预命令包包括:
生成包括数据存储方法、闪存写入命令指示、地址信息和待写入的数据的预命令包;或者
生成包括数据存储方法、闪存写入命令指示和地址信息的预命令包。
16.根据权利要求10所述的操作方法,其中当所述主机命令是读取命令时,确定与所述逻辑地址对应的所述物理地址包括:通过参考先前存储的逻辑到物理映射表即L2P映射表,将所述逻辑地址转换为所述物理地址。
17.根据权利要求10所述的操作方法,其中当所述主机命令是写入命令时,确定与所述逻辑地址对应的所述物理地址包括:设置待写入与所述逻辑地址对应的数据的物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0148385 | 2019-11-19 | ||
KR1020190148385A KR20210060867A (ko) | 2019-11-19 | 2019-11-19 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905107A true CN112905107A (zh) | 2021-06-04 |
Family
ID=75909470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010530782.5A Withdrawn CN112905107A (zh) | 2019-11-19 | 2020-06-11 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11263126B2 (zh) |
KR (1) | KR20210060867A (zh) |
CN (1) | CN112905107A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022007191A (ja) * | 2020-06-25 | 2022-01-13 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
KR20220074079A (ko) * | 2020-11-27 | 2022-06-03 | 삼성전자주식회사 | 스토리지 컨트롤러 및 스토리지 컨트롤러의 에러 복구 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US8321647B2 (en) * | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
KR101856506B1 (ko) * | 2011-09-22 | 2018-05-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 |
US10409730B2 (en) * | 2013-03-15 | 2019-09-10 | Nvidia Corporation | Microcontroller for memory management unit |
JP6544246B2 (ja) * | 2016-01-15 | 2019-07-17 | 富士通株式会社 | 不揮発性ストレージおよび不揮発性ストレージの処理方法 |
KR20170091832A (ko) | 2016-02-01 | 2017-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2019
- 2019-11-19 KR KR1020190148385A patent/KR20210060867A/ko active Search and Examination
-
2020
- 2020-04-23 US US16/856,912 patent/US11263126B2/en active Active
- 2020-06-11 CN CN202010530782.5A patent/CN112905107A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210149796A1 (en) | 2021-05-20 |
US11263126B2 (en) | 2022-03-01 |
KR20210060867A (ko) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506516B (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN111415699B (zh) | 数据存储装置及其操作方法 | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN111061653A (zh) | 数据存储装置及其操作方法 | |
CN109407966B (zh) | 数据存储装置及其操作方法 | |
CN111916140A (zh) | 控制器及其操作方法以及包括控制器的存储器系统 | |
US11379363B2 (en) | Controller, memory system, and operating methods thereof | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
US11263126B2 (en) | Data storage device and operating method thereof | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
US20210397364A1 (en) | Storage device and operating method thereof | |
CN112988045A (zh) | 数据存储装置及其操作方法 | |
CN110299181B (zh) | 非易失性存储器装置、其操作方法及数据存储装置 | |
CN112201296A (zh) | 控制器、存储器系统及其操作方法 | |
US11409473B2 (en) | Data storage device and operating method thereof | |
CN114385070B (zh) | 主机、数据存储装置、数据处理系统以及数据处理方法 | |
CN112286444B (zh) | 控制器以及包括控制器的存储器系统 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
KR20180078426A (ko) | 데이터 저장 장치의 에러 정정 코드 처리 방법 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
CN111324302B (zh) | 数据存储装置及其操作方法 | |
CN110175134B (zh) | 数据存储装置及其操作方法 | |
US10572155B2 (en) | Data storage device and operating method thereof | |
CN112201294A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210604 |