CN107015920B - 存储设备和存储设备的操作方法 - Google Patents

存储设备和存储设备的操作方法 Download PDF

Info

Publication number
CN107015920B
CN107015920B CN201611264261.XA CN201611264261A CN107015920B CN 107015920 B CN107015920 B CN 107015920B CN 201611264261 A CN201611264261 A CN 201611264261A CN 107015920 B CN107015920 B CN 107015920B
Authority
CN
China
Prior art keywords
controller
data
host device
physical address
mapping
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
Application number
CN201611264261.XA
Other languages
English (en)
Other versions
CN107015920A (zh
Inventor
黄珠荣
金东民
朴润远
尹松虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107015920A publication Critical patent/CN107015920A/zh
Application granted granted Critical
Publication of CN107015920B publication Critical patent/CN107015920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems

Abstract

本发明公开了存储设备以及存储设备的操作方法。该存储设备包括非易失性存储器设备和配置用于控制非易失性存储器设备的控制器,该方法包括:将映射数据从存储设备发送到主机设备,该映射数据将非易失性存储器设备的多个物理地址中的一个或多个映射到主机设备的多个逻辑地址中的一个或多个;在存储设备处从主机设备接收读请求;如果读请求包括物理地址,则基于包括的物理地址从非易失性存储器设备读取数据;如果读请求不包括物理地址,则将读请求的逻辑地址转换为第一物理地址,并且基于转换的第一物理地址从非易失性存储器设备读取数据。

Description

存储设备和存储设备的操作方法
技术领域
本文中描述的发明构思的至少一些示例实施例涉及一种半导体存储器,并且更特别地,涉及一种包括非易失性半导体存储器和控制器的存储设备、该存储设备的操作方法以及访问该存储设备的访问方法。
背景技术
存储设备是指在诸如计算机、智能手机或智能平板的主机设备的控制下存储数据的设备。存储设备包括将数据存储在诸如硬盘驱动器(HDD)的磁盘上的设备,或包括将数据存储在半导体存储器(特别是非易失性存储器,诸如固态驱动器(SSD)或存储卡)上的设备。
非易失性存储器包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存设备、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)以及铁电RAM(FRAM)。
为了降低存储设备的制造成本,正在开发用于从存储设备移除诸如动态随机存取存储器(DRAM)的高容量缓冲存储器的技术。一般而言,存储设备的缓冲存储器用于存储管理存储设备的非易失性存储器设备所需的元数据。例如,元数据可以包括映射数据,所述映射数据包括在非易失性存储器设备的物理地址和被主机设备使用的逻辑地址之间的映射信息。
如果从存储设备移除诸如DRAM的高容量缓冲存储器,则可以通过在存储设备的控制器中使用小容量、高速缓冲存储器来管理元数据。然而,控制器的缓冲存储器的容量小于元数据的容量,具体地,小于映射数据的容量。因此,在控制器的缓冲存储器上未加载执行来自主机设备的写请求或读请求所需的映射数据的情况下,伴随着将所需的映射数据从非易失性存储器加载到控制器的缓冲存储器上的操作。这导致存储设备响应于主机设备的写请求或读请求所需的时间段的增加。换句话说,降低了存储设备和包括该存储设备的计算设备的操作速度。
因此,需要即使从存储设备移除诸如DRAM的大容量缓冲存储器,也防止响应速度或操作速度降低的设备和方法。
发明内容
发明构思的至少一些示例实施例提供一种具有改善的操作速度的存储设备、存储设备的操作方法以及访问存储设备的访问方法。
根据至少一些示例实施例,一种存储设备的操作方法,所述存储设备包括非易失性存储器设备和配置用于控制非易失性存储器设备的控制器,该方法包括:将映射数据从存储设备发送到主机设备,映射数据将非易失性存储器设备的多个物理地址中的一个或多个映射到主机设备的多个逻辑地址中的一个或多个;在存储设备处从主机设备接收读请求;如果读请求包括物理地址,则基于包括的物理地址从非易失性存储器设备读取数据;以及如果读请求不包括物理地址,将读请求的逻辑地址转换为第一物理地址,并且基于转换的第一物理地址而从非易失性存储器设备读取数据。
根据发明构思的至少一些示例实施例,一种存储设备包括:非易失性存储器设备;以及控制非易失性存储器设备的控制器,其中控制器配置用于将映射数据发送到主机设备,该映射数据将非易失性存储器设备的多个物理地址中的一个或多个映射到主机设备的多个逻辑地址中的一个或多个,其中控制器配置为使得,如果从主机设备接收的读请求包括与映射数据相关联的物理地址,则控制器基于物理地址而从非易失性存储器设备读取数据,并且如果从主机设备接收的读请求不包括物理地址,则控制器将读请求的逻辑地址转换为物理地址,并且基于转换的物理地址而从非易失性存储器设备读取数据。
根据发明构思的至少一些示例实施例,一种存储设备的操作方法,该存储设备包括非易失性存储器设备和配置用于控制非易失性存储器设备的控制器,该方法包括:通过存储设备映射非易失性存储器设备的物理地址和主机设备的逻辑地址,并且将包括版本信息的映射数据发送到主机设备;通过存储设备从主机设备接收读请求;以及基于读请求是否包括第一物理地址和第一版本信息以及第一版本信息是否与存储在控制器中的第二版本信息相同,通过使用第一物理地址和第二物理地址的其中之一来执行读操作,其中第二物理地址通过转换读请求的逻辑地址获得。
根据发明构思的至少一些示例实施例,一种对存储设备执行数据访问操作的方法,其中存储设备包括非易失性存储器设备和配置用于控制非易失性存储器设备的控制器,该方法包括:从主机发送映射数据请求;在主机处接收映射数据,该映射数据将非易失性存储器设备的多个物理地址中的一个或多个映射到主机设备的多个逻辑地址中的一个或多个;在主机处存储映射数据;以及通过以下步骤执行对应于第一逻辑地址的读操作:确定存储的映射数据是否包括第一逻辑地址的映射信息;如果存储的映射数据包括第一逻辑地址的映射信息,则从主机设备发送包括物理地址的读请求,该物理地址通过存储的映射数据而映射到第一逻辑地址;以及如果存储的映射数据不包括第一逻辑地址的映射信息,则从主机设备发送包括第一逻辑地址的读请求。
附图说明
通过参考附图详细描述发明构思的示例实施例,发明构思的示例实施例的以上和其它特征和优点将变得更明显。附图旨在描绘发明构思的示例实施例,并且不应当被解释为限制权利要求的预期范围。附图不应当被认为按比例绘制,除非明确说明。
图1是示出根据发明构思的至少一些示例实施例的计算设备的框图;
图2是示出根据发明构思的至少一些示例实施例的存储设备的操作方法的流程图;
图3是示出其中存储设备在通电期间将映射数据的全部或一部分发送到主机设备的方法的流程图;
图4显示用于在主机设备处从存储设备请求映射数据的映射数据请求的示例;
图5显示用于主机设备从存储设备请求映射数据的映射数据请求的命令描述符块的示例;
图6显示用于主机设备从存储设备请求映射数据的映射数据请求的命令描述符块的另一示例;
图7显示存储设备响应于图5或6的请求而发送到主机设备的映射数据响应的示例;
图8是用于解释一示例的图示,在该示例中分别在主机设备的非易失性存储器设备、控制器和RAM上管理映射数据、存储映射缓存数据和主机映射缓存数据;
图9是示出主机设备在第一模式中从存储设备请求映射数据的方法的流程图;
图10是示出主机设备在第二模式中从存储设备请求映射数据的方法的流程图;
图11是示出主机设备向存储设备发送写请求以执行写操作的方法的流程图;
图12是示出主机设备向存储设备发送读请求以执行读操作的方法的流程图;
图13显示用于主机设备从存储设备请求读操作的读请求的命令描述符块的示例;
图14显示用于主机设备从存储设备1300请求读操作的读请求的命令描述符块CDB的另一示例;
图15显示用于主机设备通过使用独立的命令UPIU发送多个物理地址和签名的命令描述符块的示例;
图16是示出根据发明构思的至少一些示例实施例的其中控制器管理签名的方法的流程图;
图17是示出当将映射数据发送到主机设备时控制器执行加密的示例的流程图;
图18是示出其中存储设备执行碎片整理的示例的流程图;
图19是示出计算设备支持存储设备的碎片整理的示例的流程图;
图20是示出主机设备访问存储设备的方法的流程图;
图21显示将版本信息分配到存储映射缓存数据和主机映射缓存数据的示例;
图22显示将版本信息添加到存储映射缓存数据和主机映射缓存数据的示例;
图23显示将存储映射缓存数据反馈到主机映射缓存数据的示例;
图24示出通过使用版本信息执行读操作的方法的示例;
图25显示版本信息根据时间间隔增加的示例;
图26显示控制器管理存储映射缓存数据的示例;
图27是示出根据发明构思的至少一些示例实施例的非易失性存储器设备的框图;以及
图28是示出根据发明构思的至少一些示例实施例的存储器块的电路图。
具体实施方式
通过参考附图详细描述发明构思的示例实施例,发明构思的示例实施例的以上和其它特征和优点将变得更明显。附图旨在描绘发明构思的示例实施例,而不应被解释为限制权利要求的预期范围。附图不应当被认为按比例绘制,除非明确说明。
图1是示出根据发明构思的至少一些示例实施例的计算设备1000的框图。参考图1,计算设备1000包括处理器1100、存储器1200、存储设备1300、调制解调器1400和用户接口1500。
处理器1100可以控制计算设备1000的总体操作并且执行逻辑操作。处理器1100可以是基于硬件的数据处理设备,其包括配置成执行由包括在代码或程序中的命令表示的操作的物理电路。例如,处理器1100可以是芯片上系统(SoC)。处理器1100可以是通用处理器、专用处理器或应用处理器。处理器1100的另外示例包括但不限于微处理器、中央处理单元(CPU)、处理器核、多核处理器、多处理器、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。执行程序代码的处理器是编程处理器,并因此是专用计算机。
RAM 1200可以与处理器1100通信。RAM 1200可以是处理器1100或计算设备1000的主存储器。处理器1100可以临时将代码或数据存储在RAM 1200中。处理器1100可以通过使用RAM 1200执行代码并且可以处理数据。处理器1100可以通过使用RAM 1200执行各种软件,例如操作系统和应用。处理器1100可以通过使用RAM 1200控制计算设备1000的总体操作。RAM 1200可以包括易失性存储器,其示例包括静态RAM(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM),和/或非易失性存储器,其示例包括相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)或铁电RAM(FRAM)。
存储设备1300可以与处理器1100通信。存储设备1300可以长时间存储数据。也就是说,处理器1100可以在存储设备1300中存储将被长时间存储的数据。存储设备1300可以存储用于驱动计算设备1000的引导映像。存储设备1300可以存储各种软件(例如操作系统和应用)的源代码。存储设备1300可以存储由各种软件(例如操作系统和应用)处理的数据。
根据发明构思的至少一个示例实施例,处理器1100可以通过将存储在存储设备1300处的源代码加载到RAM 1200上并执行加载的代码来驱动各种软件,例如操作系统和应用。处理器1100可以将存储在存储设备1300中的数据加载到RAM 1200上,并且可以在RAM1200上处理加载的数据。处理器1100可以将存储在RAM 1200中的数据当中的长期数据存储在存储器设备1300中。
存储设备1300可以包括非易失性存储器,例如闪存、PRAM、MRAM、RRAM或FRAM。
调制解调器1400可以在处理器1100的控制下与外部设备通信。例如,调制解调器1400可以以有线或无线方式与外部设备通信。
用户接口1500可以在处理器1100的控制下与用户通信。例如,用户接口1500的示例包括但不限于用户输入接口,例如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、照相机、麦克风、陀螺仪传感器和振动传感器。用户接口1500还可以包括用户输出接口,例如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和电极。
根据发明构思的至少一个示例实施例,存储设备1300包括非易失性存储器设备110和控制器120。非易失性存储器设备110可以向计算设备1300提供主存储。控制器120可以响应于主机设备1050的请求而控制非易失性存储器设备110的写、读和擦除操作。控制器120可以执行各种后台操作以管理非易失性存储器设备110,而不管主机设备1050的控制。控制器120可以对管理非易失性存储器设备110所需的各种元数据进行管理。元数据可以被存储在非易失性存储器设备110中,并且当控制器120需要它时,可以从非易失性存储器设备110读取和使用元数据。
根据发明构思的至少一个示例实施例,由控制器120管理的元数据可以包括映射数据MD。映射数据MD可以包括非易失性存储器设备110的存储空间的物理地址和由主机设备1050分配给存储设备1300的逻辑地址之间的映射信息。映射数据MD可以被存储在非易失性存储器设备110中。控制器120可以将映射数据MD中的执行来自主机设备1050的请求或背景操作所需的部分作为存储映射缓存数据MCD_S加载到控制器120的缓冲存储器上。例如,控制器120的缓冲存储器可以是SRAM。如果在执行与主机设备1050的请求或后台操作相对应的操作时更新该存储映射缓存数据MCD_S,则可以将更新的部分写入非易失性存储器设备110中,使得更新的部分应用于非易失性存储器设备110的映射数据MD。
控制器120中的缓冲存储器的容量可以小于映射数据MD的大小。因此,可能不能将整个映射数据MD加载到控制器120上。如果映射数据MD中的执行主机设备1050的请求或背景操作所需的部分未作为存储映射缓存数据MCD_S被加载到控制器120上,则控制器120可以删除存储映射缓存数据MCD_S的一部分或将其写入非易失性存储器设备110中,并且从非易失性存储器设备110读取必要部分。这导致执行主机设备1050的请求或后台操作所需的时间段增加。
为了防止上述问题,根据发明构思的至少一些示例实施例的存储设备1300配置成将映射数据MD的全部或一部分发送到主机设备1050。主机设备1050配置成将来自存储设备的映射数据MD的全部或一部分作为主机映射缓存数据MCD_H存储在RAM 1200中。之后,主机设备1050可以参考主机映射缓存数据MCD_H向存储设备1300发送包括物理地址的读请求。如果读请求包括物理地址,则控制器120可以执行地址转换或跳过从非易失性存储器设备110读取映射数据MD的特定部分的操作。因此,由于存储设备1300执行主机设备1050的请求所需的时间段减小,所以可以改善存储设备1300和计算设备1000的操作速度。
而且,存储在主机设备1050的RAM 1200中的主机映射缓存数据MCD_H由主机设备1050而不是存储设备1300管理。由于不需要将管理主机设备1050的RAM 1200的权力移交给存储设备1300,因此发明构思的至少一些示例实施例可以可用于在不改变主机设备1050和存储设备1300之间的现有接口的情况下使用。因此,与实现用于将存储设备映射数据存储在主机设备上的一些其它可能的过程和/或装置相关联的成本相比,实现根据发明构思的至少一些示例实施例的过程和/或装置可以导致成本降低。
图2是示出根据发明构思的至少一些示例实施例的存储设备1300的操作方法的流程图。参考图1和2,在操作S110中,存储设备1300可以将映射数据MD的至少一部分发送到主机设备1050。例如,控制器120可以将加载在其中的缓冲存储器上的存储映射缓存数据MCD_S发送到主机设备1050。控制器120可以从非易失性存储器设备110读取映射数据MD的一部分,将其读取部分存储为存储映射缓存数据MCD_S,并且将存储的存储映射缓存数据MCD_S发送到主机设备1050。
在操作S120中,存储设备1300可以从主机设备1050接收读请求。例如,控制器120可以从主机设备1050接收包括读取命令和地址的读请求。
在操作S130中,存储设备1300可以确定从主机设备1050接收的读取命令是否包括物理地址PA。例如,如果被分配为使得物理地址PA被定位的地址的信息存在于来自主机设备1050的读请求的一部分中,则控制器120可以将地址识别为物理地址PA。作为另一示例,由于从主机设备1050接收的读请求中的地址在频带之外(out of band),因此控制器120可以将带外部分(out-of-band portion)识别为物理地址PA。如果读请求包括物理地址,则跳过操作S140,并且然后过程进行到操作S150。如果读请求不包括物理地址,则在执行操作S140之后,过程进行到操作S150。
在操作S140中,控制器120可以将包括在读请求中的逻辑地址LA转换为物理地址PA。例如,当映射数据MD中的转换所需的部分作为存储映射缓存数据MCD_S加载在控制器120上时,控制器120可以参考存储映射缓存数据MCD_S将读请求中的逻辑地址LA转换为物理地址PA。当映射数据MD的转换所需的所述部分未作为存储映射缓存数据MCD_S被加载在控制器120上时,控制器120可以从非易失性存储器设备110读取用于转换的所述部分。当控制器120中的缓冲存储器的容量不足时,控制器120可以删除存储映射缓存数据MCD_S的全部或一部分,并且从非易失性存储器设备110读取用于转换的所述部分。当从非易失性存储器设备110读取之后更新存储映射缓存数据MCD_S的对应于删除目标的部分时,控制器120可以将更新的部分写入非易失性存储器设备110中从而应用于映射数据MD并且删除更新的部分。例如,控制器120可以基于最近最少使用(LRU)方式选择存储映射缓存数据MCD_S的对应于删除目标的部分。
在操作S150中,控制器120可以通过使用从主机设备1050接收或者参考存储映射缓存数据MCD_S转换的物理地址PA而从非易失性存储器设备110读取数据。
如上所述,如果基于从主机设备1050接收的物理地址PA执行读操作,则不需要控制器120将逻辑地址LA转换为物理地址PA的操作,由此改善存储设备1300和计算设备1000的操作速度。
图3是示出其中存储设备1300在通电期间将映射数据MD的全部或一部分发送到主机设备1050的方法的流程图。参考图1和3,在操作S210中,主机设备1050、控制器120和非易失性存储器设备110执行通电训练。通电训练可以包括用于校准终端电阻的ZQ训练、用于校准信宿(sink)或偏斜(skew)的链路训练、以及用于交换用于通信的信息的初始化通信。
在操作S220中,主机设备1050可以从控制器120请求映射数据MD。例如,主机设备1050可以指定和请求映射数据MD的特定部分。例如,主机设备1050可以指定和请求映射数据MD的一部分,在所述部分中存储了驱动计算设备1000(例如文件系统、引导映像和操作系统)所需的数据。作为另一示例,主机设备1050可以在没有任何指定的情况下从控制器120请求映射数据MD。
在操作S231中,控制器120可以从非易失性存储器设备110读取映射数据MD的第一部分MD1。第一部分MD1可以作为存储映射缓存数据MCD_S存储在控制器120中。在操作S241中,控制器120可以将作为存储映射缓存数据MCD_S存储的第一部分MD1发送到主机设备1050。第一部分MD1可以作为主机映射缓存数据MCD_H存储在RAM 1200中。
在操作S232中,控制器120可以从非易失性存储器设备110读取映射数据MD的第二部分MD2,并且将第二部分MD2作为存储映射缓存数据MCD_S存储在控制器120中。在操作S242中,控制器120可以将作为存储映射缓存数据MCD_S存储的第二部分MD2发送到主机设备1050。第二部分MD2可以作为主机映射缓存数据MCD_H由主机设备1050存储在RAM 1200中。
在操作S23n中,控制器120可以从非易失性存储器设备110读取映射数据MD的第n部分MDn,并且将第n部分MDn作为存储映射缓存数据MCD_S存储在控制器120中。在操作S24n中,控制器120可以将作为存储映射缓存数据MCD_S存储的第n部分MDn发送到主机设备1050。第n部分MDn可以作为主机映射缓存数据MCD_H由主机设备1050存储在RAM 1200中。
在操作S250中,主机设备1050、控制器120和非易失性存储器设备110可以完成初始化上载。
如上所述,在完成通电训练之后,主机设备1050和存储设备1300可以更新RAM1200上的映射数据MD的全部或一部分。例如,可以通过执行相对于非易失性存储器设备110的多个读操作以及在非易失性存储器设备110和主机设备110之间的多个传输操作而将映射数据MD的全部或一部分发送到主机设备1050。然而,发明构思的至少一些示例实施例不限于此。例如,可以通过执行一次读操作和一次传输操作而将映射数据MD的全部或一部分发送到主机设备1050。
如果初始化更新完成,则主机设备1050可以正常地开始对存储设备1300的访问。至少一个示例实施例在图3中被示为主机设备1050和存储设备1300执行初始化上载。然而,发明构思的至少一些示例实施例不限于此。例如,可以省略初始化上载。主机设备1050可以在没有初始化上载的情况下正常地执行对存储设备1300的访问。
图4显示用于在主机设备1050处从存储设备1300请求映射数据MD的映射数据请求的示例。根据发明构思的至少一个示例实施例,将参考通用闪存(UFS)的命令UFS协议信息单元(UPIU)描述映射数据请求。然而,主机设备1050发送到存储设备1300的映射数据请求不限于UFS的命令UPIU。可以根据主机设备1050和存储设备1300之间的接口的类型而适当地选择映射数据请求。
命令UPIU可以包括第0至第31块,例如第0至第31字节。第0块指示事务(transaction)类型。例如,在命令UPIU中,第0块可以是“xx00 0001b”。
第1块指示标志。标志可以包括指示读操作的读标志、指示写操作的写标志、以及指示特征的特征标志。例如,读标志指示命令UPIU与读操作相关联。写标志指示命令UPIU与写操作相关联。特征标志指示命令UPIU在队列的头部中是简单的、排序的还是队列的。
第2块指示目标设备的逻辑单元编号(LUN)。第3块指示任务标签。
第4块的一部分用作第一选项块OB1,并且其另一部分指示命令集类型。例如,命令集类型可以包括小型计算机系统接口(SCSI)命令集、UFS专用命令集、供应商专用命令集等。
第5至第7块可以用作第一选项块OB1。第8块指示额外报头段(EHS)的整个长度。第9块可以用作第一选项块OB1。第10和第11块指示数据段长度,并且分别指示最高有效位(MSB)和最低有效位(LSB)。数据段长度指示数据段的有效字节的数量。
第12至第15块指示主机设备1050将从存储设备1300接收的数据的大小,或主机设备1050将发送到存储设备1300的数据的大小。
第16至第31块可以分别包括第0至第15命令描述符块CDB[0]至CDB[15]。第16至第31块可以包括基于UFS或SCSI的命令和地址。
可以在命令UPIU的第31块之后添加报头的端到端循环冗余校验(CRC)码(报头E2ECRC)。例如,在第0字段的第一位HD为“0”的情况下,可以省略报头的端到端CRC码。
第4块的部分、第5至第7块和第9块可以用作第一选项块OB1。当命令UPIU包括物理地址PA时,第一选项块OB1可以包括与物理地址PA相关的签名SIG。当命令UPIU不包括物理地址PA时,第一选项块OB1可以不包括与物理地址PA相关的签名SIG。当第一选项块OB1不包括签名SIG时,第一选项块OB1的至少一部分可以用作保留块。当第一选项块OB1包括签名SIG时,第一选项块OB1的至少一部分也可以用作保留块。将参考附图更全面地描述签名SIG。
图5显示用于主机设备1050从存储设备1300请求映射数据MD的映射数据请求的命令描述符块CDB的示例。根据发明构思的至少一个示例实施例,将参考UFS的读缓冲器命令的命令描述符块CDB来描述映射数据请求。然而,主机设备1050发送到存储设备1300的映射数据请求不限于UFS的读缓冲器命令的命令描述符块CDB。可以根据主机设备1050和存储设备1300之间的接口的类型适当地选择映射数据请求。
参考图1、4和5,命令描述符块CDB的相应行分别指示其相应的字节。根据发明构思的至少一个示例实施例,读缓冲器命令的命令描述符块CDB可以包括第0至第9字节。命令描述符块CDB的列分别指示其每个字节的位。例如,每个字节可以包括第0至第7位。
命令描述符块CDB中的第0字节的第0至第7位指示操作码。例如,读缓冲器命令的操作码可以是“3Ch”。
读缓冲器命令的命令描述符块CDB中的第1字节的第0至第4位指示模式。例如,模式可以包括供应商专用数据。命令描述符块CDB的第9字节可以包括“CONTROL(控制)”。例如,CONTROL可以是“00h”。
当读缓冲器命令用于一般目的时读缓冲器命令的命令描述符块CDB的其余配置可以与当读缓冲器命令用于请求映射数据MD时的不同。例如,读缓冲器命令的一般目的可以是以下目的:由UFS或供应商的规范采用作为除了映射数据MD的请求之外的目的,例如逻辑单元的缓冲存储器的测试、服务递送子系统的完整性的测试、存储设备1300的微代码的下载、存储设备1300的错误历史和统计的获取、以及命令和数据的隧传(tunneling)。
当读缓冲器命令用于一般目的时,命令描述符块CDB中的第1字节的第5至第7位可以用作保留块。命令描述符块CDB中的第2字节的第0至第7位可以用作缓冲器标识符(ID)。缓冲器标识符可以识别逻辑单元中的缓冲器。命令描述符块CDB中的第3至第5字节可以指示缓冲器偏移。缓冲器偏移可以包括从LSB直到MSB的位。缓冲器偏移可以指示由缓冲器标识符识别的缓冲器的字节偏移。命令描述符块CDB中的第6至第8字节可以指示分配长度。分配长度可以包括从LSB直到MSB的位。分配长度可以指示主机设备1050想要接收的字节偏移的字节数量。
当读缓冲器命令用于映射数据MD的请求时,命令描述符块CDB中的第1字节和第2至第8字节中的第5至第7位可以用作第二选项块OB2。第二选项块OB2可以包括指示映射数据MD的请求的概要(argument)或描述。第二选项块OB2可以包括关于映射数据MD中的主机设备1050想要接收的部分的信息。例如,第二选项块OB2可以包括与映射数据MD中的主机设备1050想要接收的部分相关联的逻辑(或物理)地址,或关于逻辑(或物理)地址的信息。第二选项块OB2可以包括关于主机设备1050想要接收的映射数据MD的大小的信息。
图6显示用于主机设备1050从存储设备1300请求映射数据MD的映射数据请求的命令描述符块CDB的另一示例。根据发明构思的至少一个示例实施例,将参考UFS的模式感测命令的命令描述符块CDB来描述映射数据请求。然而,主机设备1050发送到存储设备1300的映射数据请求不限于UFS的模式感测命令的命令描述符块CDB。可以根据主机设备1050和存储设备1300之间的接口的类型而适当地选择映射数据请求。
参考图1、4和6,命令描述符块CDB的行分别指示其字节。根据发明构思的至少一个示例实施例,模式感测命令的命令描述符块CDB可以包括第0至第9字节。命令描述符块CDB的列分别指示其每个字节的位。例如,每个字节可以包括第0至第7位。
命令描述符块CDB中的第0字节的第0至第7位指示操作码。例如,模式感测命令的操作代码可以是“5Ah”。
命令描述符块CDB中的第1字节的第3位指示值“DBD”并且可以设置为“1b”。命令描述符块CDB中的第1字节的第4位指示值“LLBAA”并且可以设置为“0b”。命令描述符块CDB的第9字节可以包括“CONTROL”。例如,CONTROL可以是“00h”。
当模式感测命令用于一般目的时模式感测命令的命令描述符块CDB的其余配置可以与当模式感测命令用于请求映射数据MD时的不同。例如,模式感测命令的一般目的可以是以下目的:由UFS或供应商的规范采用作为除了映射数据MD的请求之外的目的,例如存储设备1300中的参数的请求。
当模式感测命令用于一般目的时,命令描述符块CDB中的第1字节的第0至第2位和第5至第7位可以用作保留块。命令描述符块CDB中的第2字节的第0至第5位指示页代码。页代码可以识别将返回的页模式页。命令描述符块CDB中的第6和第7位指示页控制PC。页控制PC可以识别将从模式页返回的模式参数值的类型。例如,页控制PC可以识别当前值的返回、指示可变值的位掩码的返回、缺省值的返回、或存储值的返回。命令描述符块CDB的第3字节可以包括子页代码。子页代码可以识别将返回的子页模式页。命令描述符块CDB中的第4至第6字节可以被保留。命令描述符块CDB中的第7和第8字节可以指示分配长度。分配长度可以包括从MSB到LSB。分配长度可以指示主机设备1050想要接收的页的字节的数量。
当模式感测命令用于映射数据MD的请求时,命令描述符块CDB中的第1字节的第0至第2位和第5至第7位以及第4至第8字节可以用作第三选项块OB3。第三选项块OB3可以包括指示映射数据MD的请求的概要或描述。第三选项块OB3可以包括关于映射数据MD中的主机设备1050想要接收的部分的信息。例如,第三选项块OB3可以包括与映射数据MD中的主机设备1050想要接收的部分相关联的逻辑(或物理)地址,或关于逻辑(或物理)地址的信息。第三选项块OB3可以包括关于主机设备1050想要接收的映射数据MD的大小的信息。
图7显示存储设备1300响应于图5或6的请求发送到主机设备1050的映射数据响应的示例。根据发明构思的至少一个示例实施例,将参考UFS的UPIU中的数据来描述映射数据响应。然而,存储设备1300发送到主机设备1050的映射数据响应不限于UFS的UPIU中的数据。可以根据主机设备1050和存储设备1300之间的接口的类型来适当地选择映射数据响应。
参考图1和7,UPIU中的数据包括第0至第31块,例如第0至第31字节。第0块表示事务类型。在UPIC中的数据中,事务类型可以是“xx100010b”。第1块指示标志。第2块指示逻辑单元编号(LUN)。第3块指示任务标签。
UPIU中的数据的第4至第7块可以是保留块。第8块指示额外报头段(EHS)的整个长度。第9块可以是保留块。第10和第11块指示数据段长度,并且包括最高有效位(MSB)到最低有效位(LSB)。数据段长度指示数据段的有效字节的数量。第12至第15块指示数据缓冲器偏移,并且包括最高有效位(MSB)到最低有效位(LSB)。数据缓冲器偏移指示整个数据中的数据(其被包括在UPIU中的数据中)的偏移。第16至第19块指示数据传送计数,并且包括最高有效位(MSB)到最低有效位(LSB)。数据传送计数指示被加载在数据段上的字节的数量,更详细地,指示有效字节的数量。
UPIU中的数据中的第20至第31块可以是保留块。可以可选地在UPIU中的数据的第31块之后添加报头的端到端CRC码(报头E2ECRC)。例如,在第0字段的第一位HD为“0”的情况下,可以省略报头的端到端CRC码。
在报头的端到端CRC码或第31块之后添加数据段。数据段包括“k”到“k+长度(length)-1”个段DATA[0]至DATA[长度-1]。当省略报头的端到端CRC码时,即,当第0字段的第一位HD为“0”时,“k”可以为32。长度(length)可以是由第10和第11块的数据段长度指定的值。
可以可选地在UPIU中的数据的“k+长度-1”字段之后添加数据的端到端CRC码(DATA(数据)E2ECRC)。例如,在第0字段的第二位DD为“0”的情况下,可以省略数据的端对端CRC码(DATA E2ECRC)。
在将其加载到数据段上之后,存储设备1300可以将映射数据MD发送到主机设备1050。例如,在将其加载到数据段上之后,存储设备1300可以将对应于由主机设备1050请求的逻辑地址或大小的映射数据MD发送到主机设备1050。
图8显示一示例,其中在主机设备1050的非易失性存储器设备110、控制器120和RAM 1200上分别管理映射数据MD、存储映射缓存数据MCD_S和主机映射缓存数据MCD_H。参考图1和8,存储在非易失性存储器设备110中的映射数据MD可以包括非易失性存储器设备110的存储空间的物理地址PA和逻辑地址LA之间的映射信息。映射数据MD可以以映射数据块为单位进行管理。每个映射数据块可以包括多个条目,每个条目包括连续逻辑地址LA和连续物理地址PA之间的映射信息。
可以将偏移(或标识符)01至12相应地分配给映射数据块。例如,可以根据非易失性存储器设备110的在该处分别存储映射数据块的物理地址PA或者根据在映射数据块处映射的逻辑地址LA或物理地址PA来分配偏移01至12。例如,可以以规则的间距分割非易失性存储器设备110的物理地址或分配给非易失性存储器设备110的逻辑地址,使得与每个分割的组相关联的映射信息形成每个映射数据块。
控制器120可以以映射数据块为单位从非易失性存储器设备110读取映射数据MD,并且将读取的映射数据MD存储为存储映射缓存数据MCD_S。当存储了存储映射缓存数据MCD_S时,控制器120可以生成报头HD_S。报头HD_S可以包括作为存储映射缓存数据MCD_S存储在控制器120中的映射数据块的偏移。
当将存储映射缓存数据MCD_S发送到主机设备1050时,控制器120可以生成签名SIG。例如,签名SIG可以基于包括在每个映射数据块中的每个条目的逻辑地址LA和物理地址PA生成。例如,控制器120可以通过相对于每个映射数据块的每个条目的逻辑地址LA和物理地址PA执行基于AES(高级加密标准)的加密、散列函数或加扰来生成附加数据。控制器120可以选择生成的附加数据的全部或一部分作为签名SIG。控制器120可以将映射数据块的逻辑地址LA、物理地址PA和签名SIG与偏移一起发送。
主机设备1050的RAM 1200可以将来自控制器120的包括签名SIG的映射数据块存储为主机映射缓存数据MCD_H。当存储主机映射缓存数据MCD_H时,主机设备1050可以生成报头HD_H。报头HD_H可以包括存储为主机映射缓存数据MCD_H的映射数据块的偏移。存储为主机映射缓存数据MCD_H的每个映射数据块可以包括逻辑地址LA、物理地址PA和签名SIG。
根据发明构思的至少一个示例实施例,当从控制器120请求映射数据MD时,主机设备1050可以向控制器120发送期望的映射数据块的偏移。当从控制器120接收到映射数据块时,主机设备1050可以将接收到的映射数据块的偏移与报头HD_H的偏移进行比较,并且基于比较结果来选择新的添加或更新。当从控制器120请求读操作时,主机设备1050可以发送物理地址和其中包括物理地址的映射数据块的偏移。控制器120可以通过将接收到的映射数据块的偏移与在报头HD_S中登记的偏移进行比较来确定映射数据块是否被存储在存储映射缓存数据MCD_S中。
根据发明构思的至少一个示例实施例,分配用于存储主机映射缓存数据MCD_H的RAM 1200的空间的大小可以小于或等于映射数据MD的大小。当分配给主机映射缓存数据MCD_H的空间的大小小于映射数据MD的大小时,主机设备1050可以选择主机映射缓存数据MCD_H的释放策略。例如,当分配给主机映射缓存数据MCD_H的存储空间不足以存储新的映射数据块时,主机设备1050可以基于LRU策略丢弃主机映射缓存数据MCD_H的一部分。
根据发明构思的至少一个示例实施例,分配用于存储主机映射缓存数据MCD_H的RAM 1200的空间的大小可以大于映射数据MD的大小。一部分,其大小大于映射数据MD的大小,可以保留用于其它用途。例如,当存储设备1300的映射数据MD由于垃圾收集或耗损均衡而更新时,控制器120可以将更新的部分发送到主机设备1050。保留的空间可以用于存储更新的部分。主机映射缓存数据MCD_H的与更新的部分相对应的旧部分可以被无效。
图9是示出主机设备1050在第一模式中从存储设备1300请求映射数据MD的方法的流程图。参考图1和9,在操作S210中,主机设备1050可以在第一模式中从控制器120请求映射数据MD。根据发明构思的至少一个示例实施例,可以在图5的第二选项块OB2或图6的第三选项块OB3中指定第一模式。
在操作S220中,控制器120可以响应于第一模式的映射数据请求来收集更新的存储映射缓存数据MCD_S。例如,在从存储在非易失性存储器设备110中的映射数据MD读取之后,控制器120可以收集新添加到控制器120的存储映射缓存数据MCD_S的存储映射缓存数据MCD_S。例如,控制器120可以收集存储在非易失性存储器设备110中的映射数据MD的存储映射缓存数据MCD_S,其中在作为存储映射缓存数据MCD_S被加载到控制器120上之后更新了逻辑地址LA和物理地址PA之间的映射关系。例如,可以从收集目标排除先前发送到主机设备1050但未更新的存储映射缓存数据MCD_S。
例如,控制器120可以收集更新的存储映射缓存数据MCD_S,直到收集的存储映射缓存数据MCD_S的大小达到参考大小,直到在更新的映射缓存数据MCD_S的收集开始之后下一周期接近,或直到存储设备1300中不存在未决主机请求(即,没有未决主机请求保留在存储设备1300中),例如,因为从主机设备1050发出的所有请求已完成。
如果完全收集了更新的存储映射缓存数据MCD_S,则在操作S230中,控制器120可以将收集的存储映射缓存数据MCD_S发送到主机设备1050。在操作S240中,控制器120可以将收集的映射缓存数据MCD_S的更新映射缓存数据MCD_S写入非易失性存储器设备110中。
根据发明构思的至少一个示例实施例,操作S230和S240可以同时执行。例如,控制器120将收集的存储映射缓存数据MCD_S发送到主机设备1050的操作和控制器120将更新的存储映射缓存数据MCD_S写入(或备份)到非易失性存储器设备110中的操作可能彼此遮蔽(shadow)。例如,当控制器120将收集的存储映射缓存数据MCD_S发送到主机设备1050时,控制器120可以将更新的存储映射缓存数据MCD_S写入非易失性存储器设备110中同时发送存储缓存映射数据MCD_S。例如,当控制器120将更新的存储映射缓存数据MCD_S写入非易失性存储器设备110中时,控制器120可以将收集的存储映射缓存数据MCD_S发送到主机设备1050,而不管在操作S220中提到的条件。
根据发明构思的至少一个示例实施例,可以通过使用参考图7描述的UPIU中的数据来发送收集的存储映射缓存数据MCD_S。例如,可以通过使用UPIU中的一个或多个数据来发送收集的存储映射缓存数据MCD_S。
如果存储映射缓存数据MCD_S通过使用UPIU中的数据被完全发送,则在操作S250中,主机设备1050可以向存储设备1300重新发送第一模式的映射数据请求。也就是说,当主机设备1050和存储设备1300彼此通信时,可以重复操作S210至操作S240。例如,第一模式的映射数据请求可以是无名请求,因为未请求映射数据MD的特定部分。
图10是示出主机设备1050在第二模式中从存储设备1300请求映射数据MD的方法的流程图。参考图1和10,在操作S310中,主机设备1050可以在第二模式中从控制器120请求映射数据MD。第二模式的映射数据请求可以与映射数据MD中的主机设备1050想要接收的部分的逻辑地址LA一起提供。作为另一示例,第二模式的映射数据请求可以与主机设备1050想要接收的映射数据MD的映射数据块的偏移一起提供。根据发明构思的至少一个示例实施例,可以在图5的第二选项块OB2或图6的第三选项块OB3中指定第二模式
在操作S320中,控制器120可以确定映射数据MD的由主机设备1050请求的部分是否与存储映射缓存数据MCD_S相同(命中)。例如,控制器120可以确定映射数据MD的由主机设备1050请求的部分是否作为存储映射缓存数据MCD_S被加载在控制器120上。如果映射数据MD的由主机设备1050请求的部分与存储映射缓存数据MCD_S相同,则可以省略操作S330,并且过程进行到操作S340。如果映射数据MD的由主机设备1050请求的部分不同于存储映射缓存数据MCD_S(未中),则可以在执行操作S330之后执行操作S340。
在操作S330中,控制器120可以从非易失性存储器设备110读取映射数据MD的由主机设备1050请求的部分,并且将读取的部分存储为存储映射缓存数据MCD_S。在操作S340中,控制器120可以为主机设备1050提供存储映射缓存数据MCD_S的由主机设备1050请求的所述部分的映射数据MD。
根据发明构思的至少一个示例实施例,可以通过使用参考图7描述的UPIU中的数据来发送映射数据MD的被请求部分。例如,可以通过使用UPIU中的一个或多个数据来发送映射数据MD的被请求部分。例如,第二模式的映射数据请求可以是命名请求,因为映射数据MD的特定部分被请求。
图11是示出主机设备1050向存储设备1300发送写请求以执行写操作的方法的流程图。参考图1和11,在步骤S310中,写事件可以在主机设备1050处发生。例如,将在存储设备1300的特定逻辑地址LA处写入或更新的数据可以在主机设备1050处生成。
当写事件发生时,在操作S320中,主机设备1050可以使主机映射缓存数据MCD_H的与写事件的逻辑地址LA相关联的部分无效。例如,主机设备1050可以从RAM 1200释放或删除主机映射缓存数据MCD_H的与写事件的逻辑地址LA相关联的部分。
在操作S330中,主机设备1050可以向控制器120发送包括逻辑地址LA的写请求。写请求可以通过使用参考图4描述的命令UPIU提供。
响应于来自主机设备1050的写请求,在操作S340中,控制器120可以选择非易失性存储器设备110的将在其处写入数据的物理地址PA。
在操作S350中,控制器120可以通过将被选择的物理地址PA和写命令发送到非易失性存储器设备110而执行由主机设备1050请求的写操作。
在操作S360中,控制器120可以基于被选择的物理地址PA和包括在写请求中的逻辑地址LA之间的映射关系而更新存储映射缓存数据MCD_S。
根据发明构思的至少一个示例实施例,操作S350和操作S360可以以与图11中所示的顺序、与图11中所示的顺序相反地或同时地执行。
在步骤S370中,控制器120可以向主机设备1050发送响应。例如,该响应可以与签名SIG和映射到包括在写请求中的逻辑地址LA的物理地址PA一起或者在没有物理地址PA和签名SIG的情况下被发送。例如,在连续逻辑地址(例如,包括在写请求中的逻辑地址LA)的范围被映射到连续物理地址的范围的情况下,控制器120可以在将连续物理地址的范围的起始物理地址以及与其对应的签名SIG包括在响应中之后发送该响应。
作为另一示例,在连续逻辑地址(例如,包括在写请求中的逻辑地址LA)的范围映射到连续物理地址的两个或更多个范围的情况下,控制器120可以在将连续物理地址的所述两个或更多个范围的起始物理地址以及与其对应的签名SIG包括在响应中之后发送该响应。在响应的容量不足以发送所述两个或更多个起始物理地址的情况下,控制器120可以在不将物理地址PA和签名SIG包括在响应中的情况下发送该响应。
如果在操作S380中接收到物理地址PA和签名SIG,则省略操作S390和操作S393,并且过程进行到操作S395。如果在操作S380中未接收到物理地址PA和签名SIG,则在执行操作S390和操作S393之后执行操作S395。
在操作S390中,主机设备1050可以从控制器120请求物理地址PA。例如,主机设备1050可以通过参考图10描述的第二模式的映射数据请求而从控制器120请求物理地址PA。主机设备1050可以将与写请求中的逻辑地址LA相关联的映射数据请求发送到控制器120。
在操作S393中,控制器120可以响应于映射数据请求而向主机设备1050发送连续物理地址的两个或更多个范围的起始物理地址。
在操作S395中,主机设备1050可以基于来自控制器120的物理地址PA和签名SIG而更新主机映射缓存数据MCD_H。
图12是示出主机设备1050向存储设备1300发送读请求以执行读操作的方法的流程图。参考图1和12,在步骤S410中,读事件可以在主机设备1050处发生。例如,关于存储在存储设备1300的特定逻辑地址LA处的数据的读事件可以在主机设备1050处发生。
如果发生读事件,则在操作S420中,主机设备1050确定映射数据MD中的与读事件的逻辑地址LA相关联的部分是否作为主机映射缓存数据MCD_H加载在RAM 1200上。如果与读事件相关联的映射数据MD作为主机映射缓存数据MCD_H被加载,则在操作S430中,主机设备1050可以参考主机映射缓存数据MCD_H获得与逻辑地址LA相关联的物理地址PA和签名SIG,并且可以向控制器120发送包括物理地址PA、逻辑地址LA和签名SIG的读请求。如果与读事件相关联的映射数据MD未作为主机映射缓存数据MCD_H被加载,则在操作S480中,主机设备1050可以将包括逻辑地址LA的读请求发送到控制器120。
根据发明构思的至少一个示例实施例,当主机设备1050的读事件与连续物理地址的一个范围相关联时,主机设备1050可以发送连续物理地址的范围的起始物理地址以及与起始物理地址相关联的签名SIG。当主机设备1050的读事件与连续物理地址的两个或更多个范围相关联时,主机设备1050可以发送连续物理地址的两个或更多个范围的起始物理地址以及与起始物理地址相关联的签名SIG。在命令UPIU或命令描述符块CDB的大小不足以发送两个或更多个起始物理地址和两个或更多个签名的情况下,主机设备1050可以通过使用两个或更多个命令UPIU而将多个起始物理地址和与其相关联的多个签名SIG发送到控制器120。
如果在操作S430中从主机设备1050接收到包括物理地址PA、逻辑地址LA和签名SIG的读请求,则在操作S440中,控制器120可以确定是否生成存储映射缓存数据MCD_S的命中。例如,如果与包括在读请求中的物理地址PA或逻辑地址LA相关联的映射数据块作为存储映射缓存数据MCD_S加载在控制器120上,则确定生成存储映射缓存数据MCD_S的命中。如果生成存储映射缓存数据MCD_S的命中,则在操作S450中,控制器120可以参考存储映射缓存数据MCD_S而获得物理地址PA,并且可以通过将获得的物理地址PA和读命令发送到非易失性存储器设备110而执行读请求。
如果在操作S440中确定生成存储映射缓存数据MCD_S的未中,则在操作S460中,控制器120确定签名SIG是否正确。例如,控制器120可以基于包括在读请求中的物理地址PA和逻辑地址LA生成签名,并且将生成的签名与包括在读请求中的签名SIG进行比较。如果生成的签名与包括在读请求中的签名SIG相同,则确定包括在读请求中的物理地址PA是未被攻击的正确地址。在操作S470中,控制器120可以通过将包括在读请求中的被选择的物理地址PA和读命令发送到非易失性存储器设备110来处理读请求。
如果在操作S480中接收到包括逻辑地址LA的读请求,或者在操作S460中确定包括在读请求中的签名SIG不正确,则在操作S490中,控制器120可以将包括在读请求中的逻辑地址LA转换为物理地址PA。例如,如果与包括在读请求中的逻辑地址LA相关联的映射数据块作为存储映射缓存数据MCD_S被加载,则控制器120可以参考存储映射缓存数据MCD_S而立即将逻辑地址LA转换为物理地址PA。如果与包括在读请求中的逻辑地址LA相关联的映射数据块未作为存储映射缓存数据MCD_S被加载,则控制器120可以从非易失性存储器设备110读取与逻辑地址LA相对应的映射数据块,作为存储映射缓存数据MCD_S存储读取的映射数据块,并且参考存储映射缓存数据MCD_S将逻辑地址LA转换为物理地址PA。在操作S493中,控制器120可以通过将转换的物理地址PA和读命令发送到非易失性存储器设备110来处理读请求。
在操作S495中,非易失性存储器设备110可以响应于在操作S450中接收的读命令、在操作S470中接收的读命令或在操作S493中接收的读命令而将数据输出到控制器120。
在步骤S497中,控制器120可以将来自非易失性存储器设备110的数据存储到主机设备1050。
图13显示用于主机设备1050从存储设备1300请求读操作的读请求的命令描述符块CDB的示例。根据发明构思的至少一个示例实施例,仅包括逻辑地址LA而没有物理地址PA的第一模式的读请求的命令描述符块CDB的示例在图13中示出。根据发明构思的至少一个示例实施例,将参考UFS的读(10)命令的命令描述符块CDB来描述第一模式的读请求。然而,主机设备1050发送到存储设备1300的第一模式的读请求不限于UFS的读(10)命令的命令描述符块CDB。可以根据主机设备1050和存储设备1300之间的接口的类型而适当地选择第一模式的读请求。
参考图1、4和13,命令描述符块CDB的行分别指示其字节。根据发明构思的至少一个示例实施例,读(10)命令的命令描述符块CDB可以包括第0至第9字节。命令描述符块CDB的列分别指示其每个字节的位。例如,每个字节可以包括第0至第7位。
命令描述符块CDB中的第0字节的第0至第7位指示操作码。例如,读(10)命令的操作码可以是“28h”。
可以不使用读(10)命令的命令描述符块CDB中的第1字节的第0位。第1字节的第1位可以指示FUA_NV。第1字节的第2位可以被保留。第1字节的第3位可以指示FUA(强制单元访问)。FUA可以指示是否使用数据缓存。第1字节的第4位指示禁用页输出(DPO)。DPO可以指示如何设置保留优先级。第1字节的第5至第7位是RDPROTECT,并且可以具有值“000b”。
读(10)命令的命令描述符块CDB的第2至第5字节指示逻辑地址LA。逻辑地址LA可以包括MSB至LSB。
读(10)命令的命令描述符块CDB中的第6字节的第0至第4位指示组编号。组编号可以指示与读请求相关联的上下文ID。第6字节的第5至第7位被保留。
读(10)命令的命令描述符块CDB的第7和第8字节指示传送长度。传送长度指示通过读请求将读取的数据的长度。
读(10)命令的命令描述符块CDB的第9字节可以包括“CONTROL(控制)”。例如,CONTROL可以是“00h”。
图14显示用于主机设备1050从存储设备1300请求读操作的读请求的命令描述符块CDB的另一示例。根据发明构思的至少一个示例实施例,主机设备1050发送同时仅包括物理地址PA和逻辑地址LA的第二模式的读请求的命令描述符块CDB的示例在图14中示出。根据发明构思的至少一个示例实施例,将参考UFS的读(16)命令的命令描述符块CDB来描述第二模式的读请求。然而,主机设备1050发送到存储设备1300的第二模式的读请求不限于UFS的读(16)命令的命令描述符块CDB。可以根据主机设备1050和存储设备1300之间的接口的类型而适当地选择第二模式的读请求。
参考图1、4和14,命令描述符块CDB的行分别指示其字节。根据发明构思的至少一个示例实施例,读(16)命令的命令描述符块CDB可以包括第0至第15字节。命令描述符块CDB的列分别指示其每个字节的位。例如,每个字节可以包括第0至第7位。
命令描述符块CDB中的第0字节的第0至第7位指示操作码。例如,读(16)命令的操作码可以是“88h”。
可以不使用读(16)命令的命令描述符块CDB中的第1字节的第0位。第1字节的第1位可以指示FUA_NV。第1字节的第2位可以被保留。第1字节的第3位可以指示FUA。FUA可以指示是否使用数据缓存。第1字节的第4位指示DPO。DPO可以指示如何设置保留优先级。第1字节的第5至第7位是RDPROTECT,并且可以具有值“000b”。
读(16)命令的命令描述符块CDB的第2至第9字节指示第四选项块OB4。第四选项块OB4可以包括MSB至LSB。第四选项块OB4可以包括逻辑地址LA和物理地址PA。
读(16)命令的命令描述符块CDB的第10至第13字节指示传送长度。传送长度指示通过读请求将读取的数据的长度。
读(16)命令的命令描述符块CDB中的第14字节的第0至第4位指示组编号。组编号可以指示与读请求相关联的上下文ID。第14字节的第5和第6位被保留。第14字节的第7位可以忽略。
读(16)命令的命令描述符块CDB的第15字节可以包括“CONTROL”。例如,CONTROL可以是“00h”。
图15显示用于主机设备1050通过使用独立的命令UPIU发送多个物理地址PA和签名SIG的命令描述符块CDB的示例。根据发明构思的至少一个示例实施例,将参考UFS的模式选择命令的命令描述符块CDB来描述物理地址和签名SIG。然而,主机设备1050向存储设备1300发送物理地址PA和签名SIG不限于UFS的模式选择命令的命令描述符块CDB。可以根据主机设备1050和存储设备1300之间的接口的类型适当地选择物理地址PA和签名SIG的发送。
参考图1、4和15,命令描述符块CDB的行分别指示其字节。根据发明构思的至少一个示例实施例,读(16)命令的命令描述符块CDB可以包括第0至第9字节。命令描述符块CDB的列分别指示其每个字节的位。例如,每个字节可以包括第0至第7位。
命令描述符块CDB的第0字节指示操作码。在模式选择命令中,操作码可以是“55h”。
模式选择命令的命令描述符块CDB中的第1字节的第0位指示保存页(SP)。第1字节的第1至第3位是第五选项块OB5。第1字节的第4位可以指示页格式(PF),并且可以是“1b”。第1字节的第5至第7位是第五选项块OB5。
模式选择命令的命令描述符块CDB的第2至第6字节是第五选项块OB5。
模式选择命令的命令描述符块CDB中的第7和第8字节可以指示参数列表长度。
模式选择命令的命令描述符块CDB的第9字节可以包括“CONTROL”。例如,CONTROL可以是“00h”。
在模式选择命令用于除了物理地址PA和签名SIG的发送之外的目的的情况下,第五选项块OB5可以包括保留块。在模式选择命令用于发送物理地址PA和签名SIG的情况下,第五选项块OB5可以包括通知物理地址PA和签名PA被发送的概要或描述并且包括保留块。
控制器120可以响应于模式选择命令而向主机设备1050发送“准备传送UPIU”。响应于“准备传送UPIU”,主机设备1050可以将包括物理地址PA和签名SIG的数据输出UPIU发送到控制器120。
根据发明构思的至少一个示例实施例,主机设备1050可以将参考图13或14描述的读(10)或读(16)命令与图15的模式选择命令组合,并且可以将组合的结果发送到控制器120。
图16是示出控制器120管理签名SIG的方法的流程图。参考图1和16,在操作S510中,控制器120确定是否将物理地址PA或映射数据块MDK发送到主机设备1050。在物理地址PA或映射数据块MDK未发送到主机设备1050的情况下,省略操作S520和操作S530。在将物理地址PA或映射数据块MDK发送到主机设备1050的情况下,执行操作S520和操作S530。
在操作S520中,控制器120可以基于物理地址PA和对应于物理地址PA的逻辑地址LA生成签名SIG。备选地,控制器120可以基于映射数据块MDK的每个条目的物理地址PA和逻辑地址LA而生成对应于映射数据块MDK的签名块SIGK。
在操作S530中,控制器120可以将物理地址PA和对应于物理地址PA的签名SIG或映射数据块MDK和对应于映射数据块MDK的签名块SIGK发送到主机设备1050。
在操作S540中,控制器120确定是否从主机设备1050接收到逻辑地址LA、物理地址PA和签名SIG。如果确定未从主机设备1050接收到逻辑地址LA、物理地址PA和签名SIG,则省略操作S550至操作S570。如果确定从主机设备1050接收到逻辑地址LA、物理地址PA和签名SIG,则执行操作S550至操作S570。
在操作S550中,控制器120可以基于接收到的物理地址PA和逻辑地址LA生成签名SIG_G。在操作S560中,控制器120确定接收的签名SIG是否与生成的签名SIG_G相同。如果接收的签名SIG与生成的签名SIG_G相同,则在操作S570中,控制器120确定接收的签名SIG是正确的。如果接收的签名SIG与生成的签名SIG_G不同,则在操作S580中,控制器120确定接收的签名SIG错误并且主机映射缓存数据MCD_H被攻击或丢失。控制器120可以通知主机设备1050签名SIG是错误的。
图17是示出当将映射数据MD发送到主机设备1050时控制器120执行加密的示例的流程图。参考图1和17,在操作S610中,控制器120确定是否将物理地址PA或映射数据块MDK发送到主机设备1050。在物理地址PA或映射数据块MDK未发送到主机设备1050的情况下,省略操作S620和操作S630。在将物理地址PA或映射数据块MDK发送到主机设备1050的情况下,执行操作S620和操作S630。
在操作S620中,控制器120可以加密物理地址PA和签名SIG或加密映射数据块MDK的物理地址PA和签名SIG。在操作S630中,控制器120可以将加密的物理地址PA_E和加密的签名SIG_E或包括加密的物理地址PA_E和加密的签名SIG_E的映射数据块MDK发送到主机设备1050。
在操作S640中,控制器120确定是否从主机设备1050接收到逻辑地址LA、加密的物理地址PA_E和加密的签名SIG_E。如果确定未从主机设备1050接收到逻辑地址LA、加密的物理地址PA_E和加密的签名SIG_E,则省略操作S650至操作S660。如果确定从主机设备1050接收到逻辑地址LA、加密的物理地址PA_E和加密的签名SIG_E,则执行操作S650至操作S660。
在操作S650中,控制器120对加密的物理地址PA_E和加密的签名SIG_E进行解密。在操作S660中,控制器120可以使用解密的物理地址PA和解密的签名SIG。例如,如参考图16所述,控制器120可以通过使用解密的签名SIG来确定解密的签名SIG是否正确。如果解密的签名SIG是正确的,则如参考图12所述,控制器120可以将解密的物理地址PA和读命令发送到非易失性存储器设备110。
如上所述,如果映射数据MD中的作为主机映射缓存数据MCD_H加载在主机设备1050的RAM 1200上的部分被加密,则可以改善映射数据MD和存储设备1300的安全级别。
图18是示出存储设备1300执行碎片整理的示例的流程图。参考图1和18,在操作S710中,控制器120可以确定其是否保持在空闲状态。例如,在从主机设备1050发出之后未决的请求不存在的情况下(即,在没有未决的主机请求剩余的情况下),控制器120可以确定其保持在空闲状态。
如果确定空闲状态,则在操作S720中,控制器120执行碎片整理。碎片整理包括迁移属于连续逻辑地址的范围和连续物理地址的两个或更多个范围的数据的片段,使得属于连续逻辑地址的范围的数据属于连续物理地址的范围。在操作S730中,控制器120可以基于碎片整理结果更新存储映射缓存数据MCD_S。
如果如上所述地执行碎片整理,则主机设备1050为控制器120提供多个物理地址以及读请求的事件的数量减少。因此,可以改善存储设备1300和计算设备1000的操作速度。
图19是示出计算设备1000支持存储设备1300的碎片整理的示例的流程图。参考图1和19,在步骤S810中,省电事件可以在主机设备1050处发生。省电事件指示满足主机设备1050进入省电模式的条件。
如果发生省电事件,则在操作S820中,主机设备1050确定碎片整理对于存储设备1300是否必要。例如,主机设备1050可以通过来自存储设备1300的响应UPIU的设备信息或来自存储设备1300的独立报告而确定碎片整理对于存储设备1300是否必要。
如果在发生省电事件时碎片整理对于存储设备1300是必要的,则在操作S830中,主机设备1050禁止省电模式并且允许存储设备1300执行碎片整理。在步骤S840中,控制器120可以访问非易失性存储器设备110以执行碎片整理。在操作S850中,控制器120可以基于碎片整理结果而更新存储映射缓存数据MCD_S。
如果碎片整理完成或者如果碎片整理不是必要的,则在操作S860中,主机设备1050、控制器120和非易失性存储器设备110可以进入省电模式。
图20是示出主机设备1050访问存储设备1300的方法的流程图。参考图20,在操作S910中,主机设备1050可以从存储设备1300读取映射数据。映射数据可以作为主机映射缓存数据MCD_H被存储在RAM 1200中。
在步骤S920中,读事件可以在主机设备1050处发生。
在操作S930中,主机设备1050可以确定读事件的逻辑地址LA是否与存储在RAM1200中的主机映射缓存数据MCD_H相关联。例如,主机设备1050可以确定映射数据MD中的与读事件的逻辑地址LA相关联的部分是否作为主机映射缓存数据MCD_H被加载在RAM 1200上。
如果逻辑地址LA与主机映射缓存数据MCD_H相关联,则在操作S940中,主机设备1050可以参考主机映射缓存数据MCD_H获得与读事件的逻辑地址LA相关联的物理地址PA,并且可以将包括物理地址PA的读请求发送到存储设备1300。
如果逻辑地址LA不与主机映射缓存数据MCD_H相关联,则在操作S950中,主机设备1050可以将包括读事件的逻辑地址LA的读请求发送到存储设备1300。
存储设备1300可以包括固态驱动器(SSD)或硬盘驱动器(HDD)。存储设备1300可以包括存储卡,例如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑式闪存(CF)卡、智能媒体卡(例如SM、SMC)、记忆棒、多媒体卡(例如MMC、RS-MMC、微MMC)、SD卡(例如SD、迷你SD、微SD、SDHC)、通用串行总线(USB)存储卡和通用闪存存储器(UFS)。存储设备1300可以包括嵌入式存储器,例如嵌入式多媒体卡(eMMC)、UFS和PPN(完美页NAND)。
图21显示将版本信息分配给存储映射缓存数据MCD_S和主机映射缓存数据MCD_H的示例。参考图1和21,在操作S1010中,控制器120可以从主机设备接收写请求。
在操作S1020中,控制器120可以响应于写请求而生成映射数据块,并且可以将映射数据块作为存储映射缓存数据MCD_S的一部分。而且,控制器120可以基于生成的映射数据块而将写请求的数据写入非易失性存储器设备110中。例如,控制器120可以将对应于写请求的逻辑地址映射到非易失性存储器设备110的未被占用的存储空间的物理地址上。控制器120可以将映射信息作为映射数据块添加到存储映射缓存数据MCD_S,或者可以用映射信息更新存储映射缓存数据MCD_S。控制器120可以将写请求的数据写入映射的物理地址的未被占用的存储空间中。
在操作S1030中,控制器120可以确定是否更新映射数据块。例如,当对应于写请求的逻辑地址的映射数据块被预先存储在控制器120或非易失性存储器设备110中并且根据写请求改变预先存储的映射数据块时,控制器120可以确定更新映射数据块。当对应于写请求的逻辑地址的映射数据块未预先存储在控制器120或非易失性存储器设备110中并且新生成了对应于写请求的映射数据块时,控制器120可以确定不更新映射数据块。也就是说,当写请求是用于更新预先写入非易失性存储器设备110中的数据的请求时,或者当写请求是在该处预先存储数据的逻辑地址的更新请求时,控制器120可以确定映射数据块被更新。当写请求是与非易失性存储器设备110相关联的新的写请求时,或者当写请求是在该处未预先存储数据的逻辑地址的写请求时,控制器120可以确定映射数据块未被更新。
如果确定映射数据块被更新,则在操作S1040中,控制器120增加更新的映射数据块的版本信息。例如,当映射数据块存储在控制器120中时,控制器120可以增加版本信息。当映射数据块被存储在非易失性存储器设备110中时,控制器120可以从非易失性存储器设备110读取映射数据块,并且可以增加读取的映射数据块的版本信息。如果确定映射数据块未被更新,则控制器120保持映射数据块的版本信息而没有变化。
图22显示将版本信息添加到存储映射缓存数据MCD_S和主机映射缓存数据MCD_H的示例。参考图1和22,版本信息可以被添加到存储映射缓存数据MCD_S的每个映射数据块和主机映射缓存数据MCD_H的每个映射数据块。例如,分别对应于主机映射缓存数据MCD_H的偏移“05”、“08”和“11”的映射数据块的版本信息的片段可以是V0、V1和V0。版本信息可以被添加到存储映射缓存数据MCD_S的每个映射数据块。例如,分别对应于存储映射缓存数据MCD_S的偏移“05”、“08”和“11”的映射数据块的版本信息的片段可以是V1、V1和V0。
如参考图21所述,当更新存储映射缓存数据MCD_S时,版本信息增加。也就是说,当更新对应于偏移“05”的映射数据块(例如,执行用于更新映射在逻辑地址LA上的物理地址PA的写操作)并且更新物理地址PA的结果(也就是,更新的映射数据块)没有作为对主机映射缓存数据MCD_H的响应被提供时,与存储映射缓存数据MCD_S的偏移“05”相对应的映射数据块的版本信息V1大于与主机映射缓存数据MCD_H的对应偏移“05”相关联的映射数据块的版本信息V0。在版本信息的基础上,控制器120可以确定从主机设备接收的物理地址PA是最新的还是作为存储映射缓存数据MCD_S存储的物理地址PA是最新的。
图23显示将存储映射缓存数据MCD_S反馈到主机映射缓存数据MCD_H的示例。参考图1和23,当存储映射缓存数据MCD_S反馈到主机映射缓存数据MCD_H时,对应于主机映射缓存数据MCD_H的偏移“05”的映射数据块的物理地址PA和版本信息V1变为与对应于存储映射缓存数据MCD_S的偏移“05”的映射数据块的物理地址PA和版本信息V1相同。
图24示出通过使用版本信息执行读操作的方法的示例。参考图1和24,在操作S1110中,控制器120可以接收包括物理地址PA和版本信息的读请求。
在操作S1120中,控制器120确定接收的版本信息是否与对应于写请求的存储映射缓存数据MCD_S的映射数据块的版本信息相同。如果版本信息的片段相同,则从主机接收的物理地址PA是最新的。在这种情况下,在操作S1130中,控制器120可以通过使用接收的物理地址PA来执行读操作。如果版本信息的片段不同,则从主机接收的物理地址PA不是最新的。在这种情况下,在操作S1140中,控制器120可以通过使用作为存储映射缓存数据MCD_S存储的物理地址PA来执行读操作。例如,控制器120可以通过使用存储映射缓存数据MCD_S而将与读请求一起接收的逻辑地址转换为物理地址PA,并且可以通过使用转换的物理地址PA来执行读操作。
根据上述实施例,控制器120基于版本信息确定主机设备发送的物理地址是否是最新的;只有当物理地址为最新时,通过使用最新的物理地址来执行读操作。因此,可以能够防止对异常物理地址PA执行读操作。
在上述实施例中,假设偏移被分配到的映射数据块的大小与用于分配版本信息的单元的大小相同。然而,偏移被分配到的映射数据块的大小可以设置为不同于用于分配版本信息的单元的大小。
根据发明构思的至少一个示例实施例,分别被分配给映射数据块的版本信息的片段的长度可以设置为彼此相同或不同。例如,可以将初始分配给映射数据块的版本信息的片段设置为具有相同长度。当特定映射数据块更新的次数大于其它映射数据块更新的次数时,特定映射数据块的版本信息的长度可以增加,并且其它映射数据块的版本信息的片段的长度可以减小。
根据发明构思的至少一个示例实施例,当从主机设备接收的版本信息具有可由其长度表达的最大值或者具有预设或备选地期望的溢出值时,控制器120可以忽略从主机设备接收的物理地址,并且可以使用存储映射缓存数据MCD_S的物理地址。
图25显示版本信息根据时间间隔增加的示例。在图25中,横坐标表示时间,纵坐标表示作为存储映射缓存数据MCD_S加载在控制器120上的映射数据块。根据发明构思的至少一个示例实施例,假设分别对应于偏移“01”至“12”的映射数据块的版本信息的片段是V0。
参考图1和25,控制器120可以在特定时间间隔期间增加映射数据块的版本信息一次,在其中执行一个或多个更新操作。
参考第一间隔,可以对与偏移“08”相对应的映射数据块的逻辑地址LA执行第一写操作W1和第二写操作W2。第一写操作W1可以伴随以下操作:在非易失性存储器设备110中写入数据并且更新与存储映射缓存数据MCD_S的偏移“08”相对应的映射数据块的全部或部分。当偏移“08”的映射数据块更新时,偏移“08”的版本信息可以增加。第二写操作W2可以伴随以下操作:在非易失性存储器设备110中写入数据并且更新与存储映射缓存数据MCD_S的偏移“08”相对应的映射数据块的全部或部分。然而,由于当在第一间隔中执行第一写操作W1时与偏移“08”相对应的映射数据块的版本信息已经增加,因此即使执行第二写操作W2,版本信息也不会增加。
在第一间隔中,可以对与偏移“11”相对应的映射数据块的逻辑地址LA执行写操作W。写操作W可以伴随以下操作:在非易失性存储器设备110中写入数据并且更新与存储映射缓存数据MCD_S的偏移“11”相对应的映射数据块的全部或部分。当偏移“11”的映射数据块更新时,偏移“11”的版本信息可以增加。
在第一间隔结束之后,可以作为主机映射缓存数据MCD_H上载存储映射缓存数据MCD_S的映射数据块,例如,对应于偏移“08”和“11”的更新的映射数据块。
在第二间隔中,可以对与偏移“08”相对应的映射数据块的逻辑地址LA执行写操作W。写操作W可以伴随以下操作:在非易失性存储器设备110中写入数据并且更新与存储映射缓存数据MCD_S的偏移“08”相对应的映射数据块的全部或部分。当偏移“08”的映射数据块更新时,偏移“08”的版本信息可以增加。
在第二间隔中,可以对与偏移“11”相对应的映射数据块的逻辑地址LA执行读操作R。由于在第一间隔结束之后,对应于偏移“11”的映射数据块作为主机映射缓存数据MCD_H上载,所以从主机设备接收的版本信息与对应于存储映射缓存数据MCD_S的偏移“11”的映射数据块的版本信息相同。因此,控制器120可以通过使用从主机设备接收的物理地址PA而执行读操作。
在第三间隔中,可以对与偏移“08”相对应的映射数据块的逻辑地址LA执行读操作R。在执行第二间隔的写操作之后,对应于偏移“08”的映射数据块可以不作为主机映射缓存数据MCD_H上载。因此,从主机设备接收的版本信息可以小于与存储映射缓存数据MCD_S的偏移“08”相对应的映射数据块的版本信息,而不是与其相同。因此,控制器120可以忽略从主机设备接收的物理地址PA,并且可以通过使用与存储映射缓存数据MCD_S的偏移“08”相对应的映射数据块而将从主机设备接收的逻辑地址LA转换为物理地址PA。
如上所述,无论何时更新存储映射缓存数据MCD_S的映射数据块,控制器120可以不增加版本信息,但是其可以增加在特定时间间隔期间执行一个或多个更新操作的映射数据块的版本信息。因此,有能够更有效地使用版本信息,并且减少管理版本信息的控制器120的费用。
图26显示控制器120管理存储映射缓存数据MCD_S的示例。参考图26,控制器120可以在将其划分为第一缓冲器B1和第二缓冲器B2之后使用内部缓冲器空间。
控制器120可以在第一缓冲器B1中存储主机设备已知的映射数据块。例如,控制器120可以将通过读操作加载的映射数据块以及被生成或更新的、但是主机设备已知其更新或生成信息的映射数据块作为第一映射缓存数据MCD_S1存储在第一缓冲器B1中。
控制器120可以在第二缓冲器B2中存储主机设备不知道的映射数据块。例如,控制器120可以将在写操作期间生成或更新的、但是主机设备通过响应不知道其生成或更新信息的映射数据块作为第二存储映射缓存数据MCD_S2存储在第二缓冲器B2中。如参考图9所述,当主机设备在没有指定范围的情况下请求映射数据MD时,控制器120可以首先将存储在第二缓冲器B2中的第二存储映射缓存数据MCD_S2的映射数据块发送到主机设备。当第二存储映射缓存数据MCD_S2的大小达到预设的阈值,或备选地达到期望的阈值时,如参考图9所述,控制器120可以通知主机设备请求映射数据MD。例如,控制器120可以在各种响应的每一个中包括通知,并且可以将均包括该通知的响应发送到主机设备。如果第二存储映射缓存数据MCD_S2的映射数据块应用于主机设备的主机映射缓存数据,则由于主机设备已知该映射数据块,因此该映射数据块可以移动至第一缓冲器B1。
有可能通过独立地管理作为第一存储映射缓存数据MCD_S1的主机设备不知道的映射数据块并且分配上载到主机设备的优先级而将在控制器120中产生的映射数据块的更新信息更快速地发送到主机设备。
图27是示出根据发明构思的至少一些示例实施例的非易失性存储器110的框图。参考图1和27,非易失性存储器110可以包括存储器单元阵列111、行解码器电路113、页缓冲器电路115、数据输入/输出(I/O)电路117和控制逻辑电路119。
存储器单元阵列111可以包括多个存储器单元BLK1至BLKz。每个存储器块BLK1至BLKz可以包括多个存储器单元。每个存储器块BLK1至BLKz可以通过至少一条串选择线SSL、多条字线WL和至少一条接地选择线GSL连接到行解码器电路113。每个存储器块BLK1至BLKz可以通过多条位线BL连接到页缓冲器电路115。存储器块BLK1至BLKz可以共同连接到位线BL。存储器块BLK1至BLKz中的存储器单元可以具有相同的结构。
行解码器电路113可以通过多条接地选择线GSL、所述多条字线WL和多条串选择线SSL连接到存储器单元阵列111。行解码器电路113可以根据控制逻辑电路119的控制而操作。行解码器电路113可以通过I/O通道解码从控制器120接收的地址,并且基于解码的地址而相对于串选择线SSL、字线WL和地选择线GSL执行电压控制。
页缓冲器电路115可以通过位线BL连接到存储器单元阵列111。页缓冲器电路115可以通过多条数据线DL连接到数据I/O电路117。页缓冲器电路115可以在控制逻辑电路119的控制下操作。
数据I/O电路117可以通过数据线DL连接到页缓冲器电路115。数据I/O电路117可以通过I/O通道将由页缓冲器电路115读取的数据输出到控制器120,并且将通过I/O通道从控制器120接收的数据提供给页缓冲器电路115。
控制逻辑电路119可以通过I/O通道从控制器120接收命令,并且通过控制通道而从其接收控制信号。控制逻辑电路119可以响应于控制信号而接收通过I/O通道提供的命令,将通过I/O通道提供的地址路由到行解码器电路113,并且将通过I/O通道提供的数据路由到数据I/O电路117。控制逻辑电路119可以解码接收的命令,并且基于解码的命令而控制非易失性存储器设备110。
图28是示出根据发明构思的至少一些示例实施例的存储器块BLKa的电路图。参考图28,存储器块BLKa可以包括多个单元串CS11至CS21和CS12至CS22。单元串CS11至CS21和CS12至CS22可以沿着行方向和列方向布置以构成行和列。
例如,沿着行方向布置的单元串CS11和CS12可以构成第一行,并且沿着行方向布置的单元串CS21和CS22可以构成第二行。沿着列方向布置的单元串CS11和CS21可以构成第一列,并且沿着列方向布置的单元串CS12和CS22可以构成第二列。
每个单元串可以包括多个单元晶体管。单元晶体管包括接地选择晶体管GST、存储器单元MC1至MC6以及串选择晶体管SSTa和SSTb。每个单元串中的接地选择晶体管GST、存储器单元MC1至MC6以及串选择晶体管SSTa和SSTb可以在垂直于平面(例如,存储器块BLKa的基板上的平面)的高度方向上堆叠,单元串CS11至CS21和CS12至CS22沿着行和列布置在所述平面上。
单元晶体管可以是电荷捕获型单元晶体管,其阈值电压根据在其绝缘层中捕获的电荷量而变化。
最低的接地选择晶体管GST的源极可以共同连接到公共源极线CSL。
第一行中的单元串CS11和CS12的接地选择晶体管GST的控制栅极共同连接到接地选择线GSL1,并且第二行中的单元串CS21和CS22的接地选择晶体管GST的控制栅极共同连接到接地选择线GSL2。也就是说,不同行中的单元串连接到不同的接地选择线。
在离基板(或接地选择晶体管GST)的相同高度(或阶)处放置的存储器单元的控制栅极共同连接到一字线。置于不同高度(或阶)处的存储器单元的控制栅极连接到不同的字线WL1至WL6。例如,存储器单元MC1共同连接到字线WL1。存储器单元MC2共同连接到字线WL2。存储器单元MC3共同连接到字线WL3。存储器单元MC4共同连接到字线WL4。存储器单元MC5共同连接到字线WL5。存储器单元MC6共同连接到字线WL6。
也就是说,不同行中的单元串连接到不同的串选择线。具有相同高度(或阶)的相同行中的单元串的串选择晶体管连接到相同的串选择线。具有不同高度(或阶)的相同行中的单元串的串选择晶体管连接到不同的串选择线。
单元串CS11至CS21和CS12至CS22的列分别连接到不同的位线BL1和BL2。例如,第一列中的单元串CS11和CS21的串选择晶体管SSTb共同连接到位线BL1。单元串CS12和CS22的串选择晶体管SSTb共同连接到位线BL2。
如上所述,存储器块BLKa可以被提供成三维存储器阵列。3D存储器阵列单片地形成于存储器单元MC的阵列的一个或多个物理级中,其中存储器单元MC具有布置在硅基板上的有源区和与那些存储器单元MC的操作相关联的电路。与存储器单元MC的操作相关联的电路可以位于这样的基板上方或内部。术语“单片”意指阵列的每一级的层直接沉积在3D存储器阵列的每个下级的层上。
根据发明构思的至少一个示例实施例,3D存储器阵列包括竖直NAND串(或单元串),其竖直定向以使得至少一个存储器单元位于另一存储器单元上。所述至少一个存储器单元可包括电荷捕获层。每个竖直NAND串还可以包括放置在存储器单元MC上的至少一个选择晶体管。所述至少一个选择晶体管可以具有与存储器单元MC相同的结构,并且可以与存储器单元MC均匀地形成。
通过引用合并于本文中的以下专利文献描述了用于三维存储器阵列的合适配置,其中三维存储器阵列配置在多个级,在级之间共享字线和/或位线:美国专利第7,679,133号;第8,553,466号;第8,654,587号;第8,559,235号;以及美国专利公开第2011/0233648号。
根据发明构思的至少一些示例实施例,存储设备的映射数据发送到主机设备。主机设备可以基于映射数据向存储设备发送包括物理地址的读请求。由于不伴随相对于包括物理地址的读请求执行地址转换或从非易失性存储器设备读取映射数据的操作,因此改善存储设备和包括该存储设备的计算设备的操作速度。
而且,不是存储设备而是主机设备具有管理发送到主机设备的映射数据的权限。因此,由于不需要将管理主机设备的存储器的权限发送到存储设备,因此发明构思的至少一些示例实施例可以通过使用现有接口实现,而不用修改或改变主机设备和存储设备之间的接口。因此,可以降低实现发明构思的至少一些示例实施例所需的成本。
发明构思的示例实施例这样被描述,将显然的是,可以以许多方式改变所述示例实施例。这样的变化不被认为偏离发明构思的示例实施例的预期精神和范围,并且如对于本领域技术人员而言显而易见的是,所有这样的修改旨在被包括于以下权利要求的范围内。
对于在韩国知识产权局于2015年12月30日提交的韩国专利申请第10-2015-0190035号、于2016年6月15日提交的第10-2016-0074700号和于2016年11月29日提交的韩国专利申请第10-2016-0160792号要求优先权,上述申请的每一个的全部内容通过引用合并于本文中。

Claims (19)

1.一种存储设备的操作方法,所述存储设备包括非易失性存储器设备和配置用于控制所述非易失性存储器设备的控制器,所述方法包括:
将映射数据从所述存储设备发送到主机设备,所述映射数据将所述非易失性存储器设备的多个物理地址中的一个或多个映射到所述主机设备的多个逻辑地址中的一个或多个;
在所述存储设备处从所述主机设备接收读请求;
如果所述读请求包括物理地址,
则基于包括的物理地址从所述非易失性存储器设备读取数据;以及
如果所述读请求不包括物理地址,
则将所述读请求的逻辑地址转换为第一物理地址,以及
基于转换的第一物理地址,从所述非易失性存储器设备读取数据,其中所述发送包括:在通电时,在从所述非易失性存储器设备读取所述映射数据的至少一部分之后,将所述映射数据的所述至少一部分从所述控制器发送到所述主机设备。
2.根据权利要求1所述的方法,其中所述发送包括:
通过所述控制器存储与所述映射数据的块相关联的标识符;以及
将存储的标识符发送到所述主机设备。
3.根据权利要求1所述的方法,其中所述发送包括:
在所述控制器处从所述主机设备接收映射数据请求;
通过所述控制器收集指示所述多个逻辑地址中的一个或多个与所述多个物理地址中的一个或多个之间的映射的映射信息;以及
如果收集的信息的大小达到参考大小,则将收集的信息作为所述映射数据从所述控制器发送到所述主机设备。
4.根据权利要求3所述的方法,其中当所述映射信息通过附加的或更新的信息改变时,所述控制器收集所述附加的或更新的信息。
5.根据权利要求3所述的方法,其中所述发送还包括:
在所述映射数据发送到所述主机设备之后,在所述控制器处再次从所述主机设备接收所述映射数据请求。
6.根据权利要求3所述的方法,还包括:
当所述控制器将收集的信息作为所述映射数据发送到所述主机设备时,通过所述控制器将收集的信息写入所述非易失性存储器设备中。
7.根据权利要求1所述的方法,其中所述发送还包括:
在所述控制器处从所述主机设备接收映射数据请求;
通过所述控制器收集指示所述多个逻辑地址中的一个或多个与所述多个物理地址中的一个或多个之间的映射的映射信息;以及
以规则的时间间隔将收集的信息作为所述映射数据从所述控制器发送到所述主机设备。
8.根据权利要求1所述的方法,其中所述发送还包括:
在所述控制器处从所述主机设备接收映射数据请求;
通过所述控制器收集指示所述多个逻辑地址中的一个或多个与所述多个物理地址中的一个或多个之间的映射的映射信息;以及
当没有未决的主机请求保留在所述存储设备中时,将收集的信息作为映射数据从所述控制器发送到所述主机设备。
9.根据权利要求1所述的方法,其中所述发送还包括:
在所述控制器处从所述主机设备接收映射数据请求和逻辑地址;
通过所述控制器收集映射到接收的逻辑地址的物理地址的信息;以及
将收集的信息作为所述映射数据从所述控制器发送到所述主机设备。
10.根据权利要求1所述的方法,还包括:
在所述控制器处从所述主机设备接收写请求和数据;
通过所述控制器,基于所述写请求将所述数据写入所述非易失性存储器设备中;以及
如果所述数据被写入所述非易失性存储器设备的连续物理地址的范围中,则将写响应从所述控制器发送到所述主机设备,
所述写响应包括所述连续物理地址的所述范围的起始物理地址。
11.根据权利要求10所述的方法,还包括:
如果数据被写入所述非易失性存储器设备的连续物理地址的两个或更多个范围中,则从所述控制器发送其中不包括物理地址的写响应;
在所述控制器处从所述主机设备接收映射数据请求;以及
响应于所述映射数据请求,从所述控制器向所述主机设备发送所述两个或更多个连续物理地址范围的起始物理地址。
12.根据权利要求1所述的方法,其中所述读请求包括所包括的物理地址,并且基于所包括的物理地址而从所述非易失性存储器设备读取数据包括:
基于所包括的物理地址和所述读请求的逻辑地址,生成签名;以及
如果所述读请求的签名与生成的签名相同,则基于所包括的物理地址从所述非易失性存储器设备读取数据。
13.根据权利要求12所述的方法,还包括:
如果所述读请求的签名与生成的签名不同,则将所述读请求的逻辑地址转换为第二物理地址,并且基于转换的第二物理地址从所述非易失性存储器设备读取数据。
14.根据权利要求1所述的方法,其中所述接收包括:
当对应于所述读请求的数据属于所述非易失性存储器设备的连续物理地址的范围时,
在所述控制器处从所述主机设备接收包括所述连续物理地址范围的起始物理地址的所述读请求;以及
当对应于所述读请求的数据属于所述非易失性存储器设备的连续物理地址的两个或更多个范围时,
在所述控制器处从所述主机设备接收其中不包括物理地址的所述读请求以及包括所述两个或更多个连续物理地址范围的起始物理地址的第二请求。
15.根据权利要求1所述的方法,其中所述发送还包括:
通过所述控制器,基于所述映射数据的逻辑地址和物理地址生成签名;以及
从所述控制器将所述签名与所述映射数据一起发送到所述主机设备。
16.根据权利要求1所述的方法,
其中所述发送还包括:
通过所述控制器加密所述映射数据当中的至少所述一个或多个物理地址;以及
从所述控制器向所述主机设备发送所述映射数据,
所述映射数据将所加密的一个或多个物理地址映射到所述一个或多个逻辑地址,
其中所述读请求包括所包括的物理地址,并且所包括的物理地址是加密的物理地址,以及
其中基于所包括的物理地址从所述非易失性存储器设备读取数据包括:
通过所述控制器解密从所述主机设备发送的所包括的物理地址;以及
通过所述控制器,基于所解密的物理地址从所述非易失性存储器设备读取数据。
17.根据权利要求1所述的方法,还包括:
通过所述控制器执行碎片整理,使得存储在所述非易失性存储器设备中并且对应于所述多个逻辑地址当中的连续逻辑地址的数据对应于所述多个物理地址当中的连续物理地址。
18.一种存储设备,包括:
非易失性存储器设备;以及
控制所述非易失性存储器设备的控制器,
其中所述控制器配置用于基于映射数据的逻辑地址和物理地址生成签名并且将映射数据与所述签名一起发送到主机设备,所述映射数据将所述非易失性存储器设备的多个物理地址中的一个或多个映射到所述主机设备的多个逻辑地址中的一个或多个,以及
其中所述控制器配置用于使得,
如果从所述主机设备接收的读请求包括与所述映射数据相关联的物理地址,则所述控制器基于所述物理地址而从所述非易失性存储器设备读取数据,以及
如果从所述主机设备接收的读请求不包括物理地址,则所述控制器将所述读请求的逻辑地址转换为物理地址,并且基于转换的物理地址而从所述非易失性存储器设备读取数据。
19.一种存储设备的操作方法,所述存储设备包括非易失性存储器设备和配置用于控制所述非易失性存储器设备的控制器,所述方法包括:
通过所述存储设备映射所述非易失性存储器设备的物理地址到主机设备的逻辑地址,并且将包括版本信息的映射数据发送到所述主机设备;
通过所述存储设备从所述主机设备接收读请求;
基于所述读请求是否包括第一物理地址和第一版本信息以及所述第一版本信息是否与存储在所述控制器中的第二版本信息相同,通过使用所述第一物理地址和第二物理地址中的其中之一来执行读操作,其中所述第二物理地址通过转换所述读请求的逻辑地址获得;以及
响应于对应于第二物理地址的映射信息被更新而增加第二版本信息。
CN201611264261.XA 2015-12-30 2016-12-30 存储设备和存储设备的操作方法 Active CN107015920B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20150190035 2015-12-30
KR10-2015-0190035 2015-12-30
KR1020160074700A KR20170081118A (ko) 2015-12-30 2016-06-15 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
KR10-2016-0074700 2016-06-15
KR1020160160792A KR102579938B1 (ko) 2015-12-30 2016-11-29 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
KR10-2016-0160792 2016-11-29

Publications (2)

Publication Number Publication Date
CN107015920A CN107015920A (zh) 2017-08-04
CN107015920B true CN107015920B (zh) 2022-10-21

Family

ID=59354743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611264261.XA Active CN107015920B (zh) 2015-12-30 2016-12-30 存储设备和存储设备的操作方法

Country Status (2)

Country Link
KR (2) KR20170081118A (zh)
CN (1) CN107015920B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521617B2 (en) * 2017-08-14 2019-12-31 Western Digital Technologies, Inc. Non-volatile memory device with secure read
KR102368966B1 (ko) * 2017-10-23 2022-03-03 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치들을 포함하는 스토리지 장치, 그리고 제어기와 불휘발성 메모리 장치들 사이에서 데이터 입력 및 출력 라인들을 트레이닝하는 방법
KR102411290B1 (ko) * 2017-10-24 2022-06-22 삼성전자주식회사 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템
KR20200104601A (ko) * 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20190054730A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10922239B2 (en) * 2017-12-29 2021-02-16 Samsung Electronics Co., Ltd. Device for performing iterator operation in database
KR20190083051A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
KR102538222B1 (ko) * 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
CN112673357B (zh) * 2018-08-03 2023-03-24 美光科技公司 主机驻留式转换层有效性检查
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10852964B2 (en) * 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
KR20200049051A (ko) 2018-10-31 2020-05-08 삼성전자주식회사 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법
KR102567108B1 (ko) * 2018-11-05 2023-08-14 삼성전자주식회사 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
KR102588143B1 (ko) * 2018-11-07 2023-10-13 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
KR102644274B1 (ko) * 2018-11-22 2024-03-06 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
KR20200073794A (ko) 2018-12-14 2020-06-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200076531A (ko) 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) * 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
KR20200099882A (ko) 2019-02-15 2020-08-25 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20200110863A (ko) 2019-03-18 2020-09-28 에스케이하이닉스 주식회사 메모리 시스템, 컴퓨팅 장치 및 동작 방법
KR20200123684A (ko) * 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
KR20200132047A (ko) 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20200119059A (ko) 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210011176A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 액세스 동작 방법 및 장치
KR20210011216A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR20210011201A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
KR20210014338A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 데이터 저장 장치의 동작 방법
CN111949557B (zh) * 2019-05-16 2024-01-23 兆易创新科技集团股份有限公司 一种数据读取方法、装置及存储设备
KR20210050634A (ko) 2019-10-28 2021-05-10 삼성전자주식회사 메모리 장치, 메모리 시스템 및 자율 주행 장치
US11264082B2 (en) 2019-10-28 2022-03-01 Samsung Electronics Co., Ltd. Memory device, memory system and autonomous driving apparatus
KR20210106757A (ko) 2020-02-21 2021-08-31 에스케이하이닉스 주식회사 호스트, 저장 장치 및 이들을 포함하는 컴퓨팅 시스템
CN111506458B (zh) * 2020-04-23 2023-04-07 华中科技大学 一种提升f2fs事务性能的方法、模块及系统
KR20210156090A (ko) 2020-06-17 2021-12-24 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN111813813B (zh) * 2020-07-08 2024-02-20 杭州海康威视系统技术有限公司 一种数据管理方法、装置、设备及存储介质
KR20220021186A (ko) * 2020-08-13 2022-02-22 에스케이하이닉스 주식회사 데이터 처리 시스템 내 데이터를 공유하는 장치 및 방법
JP2022049552A (ja) * 2020-09-16 2022-03-29 キオクシア株式会社 半導体装置および方法
WO2022126534A1 (zh) * 2020-12-17 2022-06-23 华为技术有限公司 数据处理方法及相关设备
KR20220118740A (ko) 2021-02-19 2022-08-26 에스케이하이닉스 주식회사 메모리 시스템 및 호스트를 포함하는 전자 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于内容存储系统及其性能优化;宋铭等;《清华大学学报(自然科学版)网络.预览》;20090715(第07期);全文 *

Also Published As

Publication number Publication date
KR102579938B1 (ko) 2023-09-20
KR20170081126A (ko) 2017-07-11
KR20170081118A (ko) 2017-07-11
CN107015920A (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
CN107015920B (zh) 存储设备和存储设备的操作方法
US10229051B2 (en) Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
US11507500B2 (en) Storage system having a host directly manage physical data locations of storage device
US10936252B2 (en) Storage system capable of invalidating data stored in a storage device thereof
CN106294215B (zh) 存储装置和操作存储装置的方法
US10725835B2 (en) System and method for speculative execution of commands using a controller memory buffer
US10924552B2 (en) Hyper-converged flash array system
US10965751B2 (en) Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
KR20180123192A (ko) 직접 판독 액세스를 갖는 메모리 장치
KR102641521B1 (ko) 키-밸류 스토리지 장치 및 이의 동작 방법
TWI687806B (zh) 資料儲存設備及其操作方法
CN111581122A (zh) 用于管理存储器系统中的映射数据的方法和设备
CN111444115B (zh) 存储装置及其操作方法
KR20170033480A (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
WO2018041258A1 (zh) 去分配命令处理的方法与存储设备
KR102663304B1 (ko) 구역 네임스페이스 디바이스들에서의 판독 처리
US20230205427A1 (en) Storage device including memory controller and operating method of the same
US11693574B2 (en) Method of writing data in storage device and storage device performing the same
KR20220037333A (ko) 구역 네임스페이스 디바이스들에서의 판독 처리

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