CN107423228A - 储存设备及储存设备的操作方法 - Google Patents
储存设备及储存设备的操作方法 Download PDFInfo
- Publication number
- CN107423228A CN107423228A CN201710025662.8A CN201710025662A CN107423228A CN 107423228 A CN107423228 A CN 107423228A CN 201710025662 A CN201710025662 A CN 201710025662A CN 107423228 A CN107423228 A CN 107423228A
- Authority
- CN
- China
- Prior art keywords
- metadata
- encryption
- storage facilities
- controller
- data
- 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.)
- Pending
Links
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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/1052—Security 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种存储器件,包括:非易失性存储器件;和控制器,被配置为基于元数据来控制非易失性存储器件。控制器对元数据进行加密,并且将加密的元数据加载到外部主机设备的随机存取存储器上。
Description
对相关申请的交叉引用
本申请要求于2016年1月14日向韩国知识产权局提交的第10-2016-0004841号韩国专利申请的优先权,该韩国专利申请的全部内容通过引用并入于此。
技术领域
一个或多个示例实施例涉及一种半导体存储器。例如,至少一些示例实施例涉及一种储存设备和/或该储存设备的操作方法。
背景技术
储存设备可以是在诸如计算机、智能电话或智能平板的主机设备的控制之下存储数据的设备。储存设备包括在磁盘(例如,硬盘驱动(HDD))上存储数据的器件或者在半导体存储器——特别地,诸如固态驱动(SSD)或存储卡的非易失性存储器——上存储数据的器件。
非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器件、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RAM)或铁电RAM(FRAM)。
储存设备可以管理用于控制非易失性存储器件的元数据。元数据可以包括关于用于控制非易失性存储器件的方法或规则的信息。在侵入(hacking)设备侵入储存设备的元数据的情况下,储存设备的安全性可能被危害。因此,存在对于用于提高储存设备的元数据的安全性的设备和/或方法的需求。
发明内容
一个或多个示例实施例包括具有提高的安全性的储存设备和/或该存储器件的操作方法。
在下面的描述中将部分地阐明额外的方面,并且根据描述额外的方面将部分地变得清楚,或者可以通过所提出的示例实施例的实践而习得额外的方面。
一个或多个示例实施例涉及一种储存设备,包括:非易失性存储器件;和控制器,被配置为,基于元数据来控制非易失性存储器件,对元数据进行加密以生成加密的元数据,以及将加密的元数据加载到外部主机设备的随机存取存储器上。
一个或多个示例实施例涉及一种储存设备,包括:非易失性存储器件,包括多个单元串,该多个单元串包括在与基底垂直的方向上堆叠的多个存储单元;以及控制器,被配置为,基于元数据来控制非易失性存储器件,从非易失性存储器件读取元数据,对元数据进行加密以生成加密的元数据,以及将加密的元数据加载到外部主机设备的随机存取存储器上。
一个或多个示例实施例涉及一种操作被配置为与外部主机设备通信的储存设备的方法,该外部主机设备包括随机存取存储器,该方法包括:通过储存设备来对元数据进行加密以生成加密的元数据;通过储存设备来将加密的元数据加载到随机存取存储器上;以及通过储存设备来基于被加载到随机存取存储器上的加密的元数据执行写入、读取和擦除操作中的一个。
一个或多个示例实施例涉及一种储存设备,包括:存储器和处理器,该存储器包含计算机可读代码,该计算机可读代码当被处理器执行时,将处理器配置为通过以下来对与储存设备相关联的数据执行操作:从主机设备的主机存储器缓冲区域(HMBA)读取加密的元数据,对加密的元数据进行解密以生成解密的元数据,基于解密的元数据来将从主机所接收到的逻辑地址映射到储存设备的物理地址,以及基于物理地址来对数据执行操作。
附图说明
根据参考附图进行的下面的描述,以上和其他目的和特征将变得明显,在附图中,除非另外地指出,否则贯穿各个附图相同的附图标记指代相同的部件,并且在附图中:
图1是示出根据本发明构思的示例实施例的计算设备的框图;
图2是示出根据本发明构思的示例实施例的计算设备10的操作方法的流程图;
图3是示出根据本发明构思的示例实施例的储存设备的框图;
图4是示出根据本发明构思的示例实施例的加密电路的框图;
图5是示出其中根据示例实施例的储存设备100通过使用图4的加密电路来将元数据存储在RAM的主机存储器缓冲区域中的方法的流程图;
图6是示出其中控制器将元数据存储在RAM中的示例的图;
图7是示出在通过使用图4的加密电路执行加密时变化的种子(seed)的表;
图8A和图8B是示出其中当源数据的比特更新时对生成的(resultant)数据的比特进行更新的示例的图;
图9是示出其中根据示例实施例的储存设备100通过使用图4的加密电路来从RAM的主机存储器缓冲区域读取元数据的方法的流程图;
图10至图12是示出图4的加密电路的应用的框图;
图13是示出在图10至图12的加密电路中的每个的第一加扰单元或加扰单元中所使用的种子的示例的表;
图14是示出其中根据示例实施例的储存设备100执行写入操作的方法的流程图;
图15是示出其中在计算设备10处执行储存设备100的写入操作的处理的图;
图16是示出根据本发明构思的示例实施例的储存设备的框图;
图17是示出其中储存设备基于第二类型的写入请求来执行写入操作的方法的流程图;
图18是示出其中根据示例实施例的储存设备执行读取操作的方法的流程图;
图19是示出其中在计算设备处执行储存设备100的读取操作的处理的图;
图20是示出其中根据示例实施例的储存设备将元数据清空(flush)到非易失性存储器件的示例的流程图;
图21是示出其中图16的储存设备基于睡眠信息来管理元数据的方法的流程图;
图22是示出根据本发明构思的示例实施例的控制器的框图;
图23是示出根据本发明构思的示例实施例的非易失性存储器的框图;以及
图24是示出根据本发明构思的示例实施例的存储块的电路图。
具体实施方式
以下,将详细地参考附图来描述本发明构思的示例实施例,以达到在本发明构思的示例实施例所属领域的普通技术人员容易地实施本发明构思的示例实施例的程度。
图1是示出根据本发明构思的示例实施例的计算设备10的框图。
参考图1,计算设备10可以包括处理器20、随机存取存储器(RAM)30、调制解调器40、用户接口50以及储存设备100。
处理器20可以控制计算设备10的总体操作,并且可以执行逻辑运算。
处理器20可以是基于硬件的数据处理设备,其包括被物理地配置为执行通过包括在代码或程序中命令所表达的操作的电路。例如,处理器20可以是片上系统(SoC)。处理器20可以是通用处理器、专用处理器或应用处理器。
处理器20可以与RAM 30通信。RAM 30可以是处理器20或计算设备10的主存储器。处理器20可以在RAM 30处暂时地存储代码或数据。处理器20可以通过使用RAM 30来执行代码并且可以处理数据。处理器20可以通过使用RAM 30来执行各种软件,诸如操作系统和应用。处理器20可以通过使用RAM 30来控制计算设备10的总体操作。
RAM 30可以包括:非易失性存储器,诸如静态RAM(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM);或者非易失性存储器,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)。
调制解调器40可以在处理器20的控制之下与外部设备通信。例如,调制解调器40可以按照有线的方式和/或无线的方式与外部设备通信。调制解调器40可以基于无线通信方式或有线通信方式中的至少一个来与外部设备通信。
用户接口50可以在处理器20的控制之下与用户通信。例如,用户接口50可以包括用户输入接口和用户输出接口。
在示例实施例中,处理器20、RAM 30、调制解调器40以及用户接口50可以构成与储存设备100通信的主机设备。
储存设备100可以与处理器20通信。储存设备100可以被用来存储数据。即,处理器20可以将数据存储在储存设备100中。储存设备100可以存储用于驱动计算设备10的启动镜像。储存设备100可以存储诸如操作系统和应用的各种软件的源代码。储存设备100可以存储通过诸如操作系统和应用的各种软件所处理的数据。
在示例实施例中,处理器20可以通过将在储存设备100中所存储的源代码加载到RAM 30上并且执行该代码来驱动诸如操作系统和应用的各种软件。处理器20可以将在储存设备100中所存储的数据加载到RAM 30上,并且可以处理被加载到RAM 30上的数据。处理器20可以将在RAM 30中所存储的数据当中的长期数据存储在储存设备100中。
储存设备100可以包括非易失性存储器,诸如闪速存储器、PRAM、MRAM、RRAM或FRAM。
在示例实施例中,调制解调器40、用户接口50和储存设备100可以被配置为通过内部总线与处理器20通信。例如,内部总线可以包括PCIe总线或NVMe总线。
当响应于主机设备HD的控制来执行写入、读取或擦除操作时,或者当基于内部调度来执行后台操作时,储存设备100可以参考元数据。例如,元数据可以包括指示主机设备HD向储存设备100所指派的逻辑地址与储存设备100的物理地址之间的映射关系的数据。例如,储存设备100可以将从主机设备HD所提供的逻辑地址转换为物理地址,并且可以基于物理地址来执行写入、读取、擦除或后台操作。
储存设备100可以被配置为将元数据加载到储存设备HD的RAM 30上。例如,储存设备100可以存储主机存储器缓冲信息(HMBI)。主机存储器缓冲信息HMBI可以包括指示储存设备100是否支持将元数据加载到主机设备10上的信息、关于储存设备100存储元数据所必需的RAM 30的容量的信息等。
在储存设备100和主机设备HD支持将元数据加载到RAM 30上的情况下,主机设备HD可以将RAM 30的空间的一部分分配给储存设备100。例如,RAM 30的主机区域HA可以被主机设备HD使用。RAM 30的主机存储器缓冲区域HMBA可以被储存设备100使用。
处理器20可以包括被配置为控制RAM 30的存储器控制MC。处理器20可以通过存储器控制器MC来使用RAM 30的主机区域HA。储存设备100可以与存储器控制MC通信而无需处理器20的介入,并且可以通过存储器控制器MC来使用RAM 30的主机存储器缓冲区域HMBA。
在示例实施例中,处理器20可以执行将处理器20配置为存储器控制MC的指令。在另一示例实施例中,存储器控制器MC可以被实施为在处理器20外部而非在处理器20内部的单独的封装。
在储存设备100将元数据加载到RAM 30上的情况下,元数据可能易受侵入。例如,可以通过在储存设备100将元数据加载到RAM 30上时侵入储存设备100与主机设备HD之间的通信,来使储存设备100的元数据泄露。例如,可以通过在储存设备100将元数据加载到RAM 30上时侵入RAM 30的主机存储器缓冲区域HMBA,来使储存设备100的元数据泄露。
当储存设备100的元数据泄漏时,存储器件100响应于主机设备HD的请求来执行擦除、写入和读取操作以及执行后台操作的策略可能泄露。这样,储存设备100的安全性可能被危害。这可能意味着侵入储存设备的可能性可能变得更高。
为了防止上述问题,根据示例实施例的储存设备100可以包括加密电路EC。储存设备100可以被配置为通过使用加密电路EC来对元数据进行加密,并且将加密的元数据加载到主机设备HD中的RAM 30的主机存储器缓冲区域HMBA上。储存设备100可以被配置为通过从主机存储器缓冲区域HMBA读取加密的元数据并且通过使用加密电路EC对所读取的加密的元数据进行解密来获得元数据。因为在储存设备100的外部管理加密的元数据并且不在储存设备100的外部管理原始的元数据,所以可以提高储存设备100的元数据的安全性。这可以意味着提高储存设备100和计算设备10的安全性。
图2是示出根据本发明构思的示例实施例的计算设备10的操作方法的流程图。为了描述的方便,在图2中示出处理器20、RAM 30和储存设备100的操作。
参考图1和图2,在操作S110中,可以对处理器20、RAM 30和储存设备100进行初始化。
在操作S120中,储存设备100可以向处理器20发送主机存储器缓冲信息HMBI,并且可以请求处理器20分配主机存储器缓冲区域HMBA。
在操作S130中,处理器20可以基于主机存储器缓冲信息HMBI来分配RAM 30的存储器区域的一部分作为主机存储器缓冲区域HMBA。
在操作S140中,处理器20可以向储存设备100发送主机存储器缓冲区域HMBA的地址范围。例如,处理器20可以向储存设备100发送主机存储器缓冲区域HMBA的起始地址和终止地址。在主机存储器缓冲区域HMBA由不连续的多个组块(chunk)形成的情况下,处理器20可以向储存设备100发送主机存储器缓冲区域HMBA的多个组块中的每个的起始地址和终止地址。
在操作S150中,储存设备100可以对元数据进行加密。例如,储存设备100可以从非易失性存储器件读取其中的元数据,并且可以对所读取的元数据进行加密。
在操作S160中,储存设备100可以将加密的元数据加载到RAM 30上。
可以在计算设备10上电之后、计算设备10重置之后和/或计算设备10退出节电模式时,顺序地执行操作S110至S160。例如,在储存设备100和主机设备HD支持主机存储器缓冲HMB的情况下,储存设备100对元数据进行加密并且将加密的元数据加载到RAM 30上可以被理解为包括在计算设备10的初始化过程中。
在加密的元数据被加载到主机设备HD的RAM 30上之后,储存设备100可以基于在RAM 30中所存储的元数据来实时地执行写入、读取、擦除或后台操作。
在图2所示的示例实施例中,储存设备100向处理器20发送主机存储器缓冲信息HMBI,并且请求处理器20分配主机存储器缓冲区域HMBA。然而,示例实施例可以不限于此。
例如,在一些示例实施例中,处理器20可以在与储存设备100的初始化操作(例如,训练)期间从储存设备100接收主机存储器缓冲信息HMBI。处理器20可以确定是否分配主机存储器缓冲区域HMBA,并且可以向储存设备100发送确定结果。即,主机存储器缓冲区域HMBA可以通过处理器20的确定而不是储存设备100的请求来分配。
在另一示例实施例中,可以根据通过快速非易失性存储器(NVMe)标准所定义的过程来分配主机存储器缓冲区域HMBA。根据NVMe标准进行的主机存储器缓冲区域HMBA的分配可以包括NVMe标准的下一版本以及NVME标准的当前版本,其通过引用并入于此。
图3是示出根据本发明构思的示例实施例的储存设备100的框图。
参考图1和图3,储存设备100可以包括非易失性存储器件110和控制器120。
控制器120可以响应于主机设备HD的控制来控制非易失性存储器件110的写入、读取和擦除操作。控制器120可以基于与后台操作相关联的内部调度来控制非易失性存储器件110的写入、读取和擦除操作。
控制器120可以包括加密电路EC并且可以被配置为存储主机存储器缓冲信息HBMI。例如,主机存储器缓冲信息HMBI可以被存储在控制器120的内部非易失性存储装置中。例如,非易失性存储装置可以包括只读存储器(ROM)、激光熔线(laser fuse)、电熔线(electrical fuse)、非易失性存储单元等。作为另一示例,主机存储器缓冲信息HMBI可以被存储在非易失性存储器件110中,并且当储存设备100上电时可以通过控制器120从非易失性存储器件110读取。
控制器120可以被配置为:当根据来自主机设备HD的请求执行写入、读取或擦除操作时或者当根据与内部操作(例如,后台操作)相关联的内部调度执行写入、读取或擦除操作时,实时地参考主机设备HD中的RAM 30的加密的元数据。例如,当读取加密的元数据时,控制器120可以通过使用加密电路EC来对加密的元数据进行解密,并且可以基于解密的元数据来执行写入、读取或擦除操作。此外,当对加密的元数据进行更新时,控制器120可以对更新后的元数据进行加密并且可以将加密的元数据加载到主机设备HD的RAM 30上。
例如,加密电路EC可以被配置为基于先进加密标准(AES)来执行加密和解密。作为另一示例,为了防止储存设备100和计算设备10的操作速度由于AES而降低,根据示例实施例的加密电路EC可以被配置为提供以下加密和解密方法:该加密和解密方法的加密时间或解密时间短于AES的加密时间或解密时间,并且该加密和解密方法去除原始的数据与加密的数据之间的关联以便具有与AES的等级相似的等级。
图4是示出根据本发明构思的示例实施例的加密电路ECa的框图。
参考图1、图3和图4,加密电路ECa可以包括重映射单元RU、签名生成和检查单元SGCU、第一加扰单元SCR1、第二加扰单元SCR2以及随机数生成单元RNGU。
重映射单元RU、签名生成和检查单元SGCU、第一加扰单元SCR1、第二加扰单元SCR2或随机数生成单元RNGU可以被实施为硬件电路或设备,或者可以通过在设备或硬件电路上所驱动的固件或软件来实施。
重映射单元RU可以被配置为对控制器120所生成的主机存储器缓冲区域HMBA的地址进行转换。例如,在计算设备10的初始化期间,控制器120可以请求与第一地址范围相对应的存储器区域作为主机存储器缓冲区域HMBA。当将加密的元数据存储在主机存储器缓冲区域HMBA中时,控制器120可以选择第二地址范围内的地址。第二地址范围可以小于第一地址范围。重映射单元RU可以将控制器120所选择的第二地址范围内的第二地址重映射到第一地址范围内的第一地址。例如,当将加密的元数据存储在主机存储器缓冲区域HMBA中或对其进行更新时,重映射单元RU可以改变第一地址和第二地址的映射。当从主机存储器缓冲区域HMBA读取加密的元数据时,重映射单元RU可以维持第一地址和第二地址的重映射。
签名生成和检查单元SGCU可以被配置为当对元数据进行加密时根据要被加密的元数据生成签名。签名可以与用于加密的元数据一起被发送到第一加扰单元SCR1。
签名生成和检查单元SGCU可以被配置为当对元数据进行解密时根据解密的元数据生成签名。签名生成和检查单元SGCU可以被配置为通过将解密的签名与生成的签名进行比较来确定元数据是否被改变(或被修改或被侵入)。例如,在解密的签名与生成的签名相同的情况下,签名生成和检查单元SGCU可以确定从RAM 30所读取的并且被解密的元数据未被改变(或被修改或被侵入)。控制器120可以基于解密的元数据来访问非易失性存储器件110。在解密的签名与生成的签名不同的情况下,签名生成和检查单元SGCU可以确定从RAM30所读取的并且被解密的元数据被改变(或被修改或被侵入)。控制器120可以请求主机设备HD重发送调整后的元数据或丢弃调整后的元数据。
在示例实施例中,签名生成和检查单元SGCU可以根据要被加密的元数据或解密的元数据生成循环冗余检查(CRC)奇偶校验,并且可以使用CRC奇偶校验作为签名。然而,本发明构思的示例实施例不限于此。例如,签名生成和检查单元SGCU可以被修改或被改变为:通过使用被用于根据原始的数据生成额外的数据的各种算法中的至少一个——诸如哈希函数或纠错编码——来生成签名。
随机数生成单元RNGU可以被配置为生成随机数RN。例如,随机数生成单元RNGU可以生成真随机数或伪随机数。例如,随机数生成单元RNGU可以被配置为当计算设备10上电时,计算设备10完全地重置之后和/或当计算设备10退出节电模式时,生成随机数RN。因此生成的随机数RN可以被发送到第一加扰单元SCR1。
第一加扰单元SCR1可以当对元数据加密时,从签名生成和检查单元SGCU接收元数据和签名。此外,第一加扰单元SCR1可以从随机数生成单元RNGU接收随机数RN。第一加扰单元SCR1可以基于(或使用)所接收到的随机数RN来对元数据和签名进行加扰。
例如,第一加扰单元SCR1可以通过将随机数RN与RAM 30的主机存储器缓冲区域HMBA——即,访问目标——的地址(例如,第一地址范围中的第一地址或第二地址范围中的第二地址)组合来生成种子。例如,第一加扰单元SCR1可以通过将随机数RN与重映射单元RU的重映射之前或之后的地址组合来生成种子。第一加扰单元SCR1可以基于(或使用)所生成的种子对元数据和签名进行加扰。例如,第一加扰单元SCR1可以通过对种子的每个比特进行循环移位来对元数据和签名的每个比特执行XOR(异或)操作。例如,第一加扰单元SCR1可以将元数据和签名加扰为一个数据。例如,可以通过对种子的每个比特进行循环移位(或者通过对基于种子所生成的序列的每个比特进行循环移位)来对包括元数据和签名的序列的每个比特进行加扰。作为另一示例,第一加扰单元SCR1可以将元数据和签名确定为不同的数据,并且可以基于种子对元数据和签名分别地进行加扰。例如,可以通过对种子的每个比特进行循环移位(或者通过对基于种子所生成的序列的每个比特进行循环移位)来对元数据的每个比特进行加扰,并且然后可以通过对种子的每个比特进行循环移位(或者通过对基于种子所生成的序列的每个比特进行循环移位)来对签名的每个比特进行加扰。加扰的元数据可以被发送到第二加扰单元SCR2作为第二数据DAT2。加扰的签名可以被发送到第二加扰单元SCR2作为第二签名SIG2。
第一加扰单元SCR1可以当对元数据进行解密时从第二加扰单元SCR2接收第二数据DAT2和第二签名SIG2。此外,第一加扰单元SCR1可以从随机数生成单元RNGU接收随机数RN。第一加扰单元SCR1可以基于(或使用)所接收到的随机数RN来关于第二数据DAT2和第二签名SIG2执行去扰。例如,第一加扰单元SCR1可以将随机数RN与地址组合,并且可以选择组合的结果作为种子。第一加扰单元SCR1可以基于(或使用)种子对第二数据DAT2和第二签名SIG2进行去扰。例如,第一加扰单元SCR1可以通过对种子的每个比特进行循环移位(或者通过对基于种子所生成的序列的每个比特进行循环移位)来对元数据和签名的每个比特执行XOR操作。通过进行去扰而被去扰的第二数据DAT2可以被发送到签名生成和检查单元SGCU作为解密的元数据。因此而被去扰的第二签名SIG2可以被发送到签名生成和检查单元SGCU作为解密的签名。
第二加扰单元SCR2可以当对元数据进行加密时从第一加扰单元SCR2接收第二数据SCR2和第二签名DAT2。第二加扰单元SCR2可以通过使用第二签名SIG2作为种子来对第二数据DAT2进行加扰。加扰的第二数据DAT2和第二签名SIG2可以被加载到RAM 30的主机存储器缓冲区域HMBA上作为加密的元数据。
第二加扰单元SCR2可以当对元数据进行解密时从RAM 30的主机存储器缓冲区域HMBA接收加密的元数据。加密的元数据可以包括加扰的第二数据和第二签名。第二加扰单元SCR2可以通过使用第二签名SIG作为种子来对加扰的第二数据进行去扰。被去扰的第二数据DAT2和第二签名SIG2可以被发送到第一加扰单元SCR1。
图5是示出其中根据示例实施例的储存设备100通过使用图4的加密电路ECa来将元数据存储在RAM 30的主机存储器缓冲区域HMBA中的方法的流程图。
参考图1、图3、图4和图5,在操作S210中,控制器120可以选择要在其中存储元数据的存储器区域或存储块的地址。例如,控制器120可以选择主机存储器缓冲区域HMBA的地址范围(例如,第二地址范围)内、元数据要在其中存储的存储器区域或存储块的地址(例如,第二地址)。例如,控制器120的核心电路(参考图22)可以选择第二地址范围内的地址。
在操作S220中,控制器120(例如,控制器120内的重映射单元RU)可以重映射所选择的地址。例如,重映射单元RU可以将在第二地址范围内所选择的第二地址转换为第一地址范围内的第一地址。第一地址范围可以大于第二地址范围。例如,重映射单元RU可以忽略之前被映射到第二地址的第一地址,并且可以重映射新的第一地址。
在示例实施例中,控制器120可以将第二地址范围的存储空间划分为多个第二存储区域以便管理。重映射单元RU可以将第一地址范围的存储空间划分为多个第一存储区域以便管理。多个第二存储区域中的每个的大小可以与多个第一存储区域中的每个的大小相同。
控制器120可以更新(或新近地写入)从多个第二存储区域中所选择的一个的元数据。当因此所选择的第二存储区域的元数据被更新(或新进地写入)时,重映射单元RU可以将所选择的第二存储区域与新的第一存储区域相关联。
例如,重映射单元RU可以基于表、模式或函数来将第二地址范围的第二地址转换为第一地址范围的第一地址。例如,第一地址范围的第一地址可以与第二地址范围的第二地址具有相同的格式,并且可以遵从同一地址系统。作为另一示例,第一地址范围的第一地址可以具有与第二地址范围的第二地址的格式不同的格式,并且可以是遵从不同的地址系统的内部地址或虚拟地址。
在操作S230中,控制器120(例如,控制器120内的签名生成和检查单元SGCU)可以根据元数据生成签名。例如,签名生成和检查单元SGCU可以根据元数据生成CRC奇偶校验,并且可以使用CRC奇偶校验作为签名。
在操作S240中,控制器120(例如,控制器120内的第一加扰单元SCR1)可以通过基于随机数RN和地址对元数据和签名进行加扰来生成第二数据DAT2和第二签名SIG2。例如,随机数RN可以是真随机数或伪随机数。例如,第一加扰单元SCR1可以基于重映射之前在第二地址范围内所选择的地址或重映射之后在第一地址范围内所选择的地址来执行加扰。
在操作S250中,控制器120(例如,控制器120内的第二加扰单元SCR2)可以基于第二签名SIG2来对第二数据DAT2进行加扰。
在操作S260中,控制器120可以基于重映射的地址将加扰的第二数据和第二签名SIG2作为加密的元数据存储在主机设备HD中的RAM 30的主机存储器缓冲区域HMBA中。
图6是示出其中控制器120将元数据存储在RAM 30中的示例的图。
参考图1和图3至图6,由处理器20分配给主机存储器缓冲区域HMBA的第一地址范围可以与第一存储区域MA1至第六存储区域MA6相对应。由控制器120的核心电路(参考图22)所区分的主机存储器缓冲区域HMBA的第二地址范围可以与第一存储区域MA1’至第四存储区域MA4’或存储块相对应。
在第二地址范围的第一存储区域MA1’至第四存储区域MA4’中,控制器120的核心电路可以在相同的位置处写入相同的元数据,或者可以采用相同的元数据对在相同位置处的数据进行更新。例如,逻辑地址和与非易失性存储器件110的第m物理地址范围(例如,图23中第一存储块的物理地址范围)相关联的物理地址之间的映射信息可以在第n存储区域MAn’中被存储或更新。这里,“m”和“n”可以是正整数。作为另一示例,物理地址和与主机设备HD分配给储存设备100的第i逻辑地址范围(“i”是正整数)相关联的逻辑地址之间的映射信息可以在第j存储区域MAj’(“j”是正整数)中被存储或更新。
当与相同的地址(例如,物理地址或逻辑地址)相关联的元数据在相同的位置处被存储或更新时,对于控制器120可能容易追踪或类推用于管理非易失性存储器件10的策略。因此,根据示例实施例的控制器120可以通过使用重映射单元RU将第二地址范围的第二地址改变为第一地址范围的第一地址,来禁止(或者替选地,防止)控制器120的管理策略被追踪或类推。
在示例实施例中,当控制器120的核心电路对与第二地址范围的第i存储区域MAi’相对应的元数据进行更新时,控制器120可能意图将与第二地址范围的第i存储区域MAi’相对应的更新后的元数据上载到主机存储器缓冲区域HMBA。当控制器120将与第二地址范围的第i存储区域MAi’相对应的更新后的元数据上载到主机存储器缓冲区域HMBA时,重映射单元RU可以替选地从属于第一地址范围的存储区域中选择与第二地址范围的第i存储区域MAi’相对应的第一地址范围的存储区域。例如,术语“替选地”可以意味着当对与第i存储区域MAi’相对应的元数据进行更新时,之前与第二地址范围的第i存储区域MAi’相关联的第一地址范围的存储区域和新近地与第二地址范围的第i存储区域MAi’相关联的第一地址范围的存储区域不同。
根据以上描述,当控制器120的核心电路在主机存储器缓冲区域HMBA中对元数据进行更新时,元数据可以被表示为在不同的位置处,而不是之前的元数据被存储在其中的存储区域处,被新近地写入或更新。因此,可能难以追踪控制器120的元数据管理策略。这可以意味着提高安全性。
在使用上述重映射策略的情况下,在对第二地址范围内的存储区域的元数据进行更新时,在第一地址内更新的元数据要存储在其中的一个空闲存储区域可能是必需的。因此,对于控制器120的核心电路必需的第二地址范围的存储区域的数量可以小于在主机存储器缓冲区域HMBA中所分配的第一地址范围的存储区域的数量。
在示例实施例中,第二地址范围的第一存储区域MA1’、第二存储区域MA2’、第三存储区域MA3’以及第四存储区域MA4’可以被分别地重映射到第一地址范围的第一存储区域MA1、第五存储区域MA5、第二存储区域MA2以及第三存储区域MA3。
控制器120可能意图:将包括“00”在其中重复的模式的元数据存储在第二地址范围的第一区域MA1’中,将包括“01”在其中重复的模式的元数据存储在第二地址范围的第二区域MA2’中,将包括“02”在其中重复的模式的元数据存储在第二地址范围的第三区域MA3’中,以及将包括“03”在其中重复的模式的元数据存储在第二地址范围的第四区域MA4’中。
控制器120可以通过使用图4的加密电路ECa来对元数据进行加密,并且可以将加密的元数据存储在第一地址范围的存储区域中。例如,在第二地址范围中,在第一存储区域MA1’中所存储的元数据可以通过加密被改变为数据“01,11,C2,3F,EE,FF,1D,8C”,并且数据“01,11,C2,3F,EE,FF,1D,8C”可以被存储在第一地址范围的第一存储区域MA1中。在第二地址范围中,在第二存储区域MA2’中所存储的元数据可以通过加密被改变为数据“AA,3B,41,28,7A,EF,CC,D4”,并且数据“AA,3B,41,28,7A,EF,CC,D4”可以被存储在第一地址范围的第五存储区域MA5中。在第二地址范围中,在第三存储区域MA3’中所存储的元数据可以通过加密被改变为数据“97,FA,BA,49,5C,B4,9D,77”,并且数据“97,FA,BA,49,5C,B4,9D,77”可以被存储在第一地址范围的第二存储区域MA2中。在第二地址范围中,在第四存储区域MA4’中所存储的元数据可以通过加密被改变为数据“6E,FA,B3,7C,FC,BB,AF,00”,并且数据“6E,FA,B3,7C,FC,BB,AF,00”可以被存储在第一地址范围的第三存储区域MA3中。
图7是示出在通过使用图4的加密电路ECa执行加密时变化的种子的表。
参考图4和图7,第一加扰单元SCR1可以使用随机数RN作为种子。因为可以当储存设备100上电时——例如,当储存设备10启动时——新近地生成随机数RN,所以当储存设备100上电时随机数RN可以变化。例如,在因为储存设备10的电力被维持而主机存储器缓冲区域HMBA被维持的情况下,随机数RN可以不变化,即,可以固定。因此,使用随机数RN作为种子而加扰的数据可以使用相同的随机数RN作为种子来去扰。当储存设备100的电力被中断并且然后被供给时,或当计算设备10退出节电模式并且主机存储器缓冲区域HMBA被新近地分配时,控制器120可以改变随机数RN。即,种子可以变化。因此,当维持主机存储器缓冲区域HMBA时可以正常地执行加密和解密。此外,因为当删除并且再次生成主机存储器缓冲区域HMBA时随机数RN变化,所以可以提高储存设备100的元数据的安全性。
第一加扰单元SCR1可以使用地址作为种子的一部分。当控制器120执行关于元数据的写入/存储操作时,重映射的地址可以变化。因此,当第一加扰单元SCR1使用重映射的地址作为种子时,在执行关于元数据的存储/写入操作时,种子可以变化。
第二加扰单元SCR2可以使用第二签名作为种子。可以通过基于随机数RN和地址对签名进行加扰来生成第二签名。因此,当签名、地址或随机数RN变化时,第二签名可以变化。因为根据元数据生成签名,所以当元数据变化时签名也可以变化。因此,当签名、地址或随机数RN变化时,第二签名可以变化。
加扰可以具有简单的结构,其中,对源数据的每个比特与种子的每个比特进行的XOR作为生成的数据被输出。这样,当对源数据的特定位置的比特进行更新时,生成的数据的相同位置的比特可以被更新。
图8A和图8B是示出其中当源数据的比特更新时对生成的数据的比特进行更新的示例的图。
参考图6和图8A,与图6相比,可以在第二地址范围的第三存储区域MA3’的第二更新位置UL2处采用“03”对“02”进行更新。更新后的元数据可以被加密并且存储在主机存储器缓冲区域HMBA中。在更新操作期间,加密的元数据可以被重映射到第一地址范围的第四存储区域MA4。可以在与元数据的第二更新位置UL2相同的第一更新位置UL1处对加密的元数据进行更新。例如,在第一更新位置UL1处,加密的元数据可以从“9D”更新为“FC”。
如参考图6和图8A所描述地,在简单加扰结构被应用到加密电路ECa的情况下,可能容易追踪元数据的更新。这可以意味着降低元数据的安全性。
如图4和图7中所示,当元数据、地址和随机数RN变化时,根据示例实施例的加密电路ECa可以在使种子变化的同时执行两个或更多个加扰。
因此,如图8B中所示,当对元数据进行更新时,因为执行加密达到之前加密的元数据与当前加密的元数据之间的模式不被检测到的程度,所以可能无法追踪元数据的更新。例如,如图6和图8B中所示,当元数据从“02,02,02,02,02,02,02,02”改变到“02,02,02,02,02,02,03,02”时,加密的元数据可以从“97,FA,BA,49,5C,B4,9D,77”改变为“FB,00,F1,D1,7C,9D,FF,BB”。这样,可能难以追踪元数据的更新。这可以意味着提高储存设备100和计算设备10的安全性。
此外,当对元数据进行更新时,根据示例实施例的控制器120可以通过重映射而不是在之前加密的元数据上覆写加密的元数据来将加密的元数据存储在新的存储区域中。因为控制器120通过其对元数据进行更新的单元未被追踪,所以可以提高储存设备100和计算设备10的安全性。
图9是示出其中根据示例实施例的储存设备100通过使用图4的加密电路ECa来从RAM 30的主机存储器缓冲区域HMBA读取元数据的方法的流程图。
参考图1、图3、图4和图9,在操作S310中,控制器120可以选择要从其读取元数据的存储器区域的地址。例如,控制器120可以选择主机存储器缓冲区域HMBA的地址范围内、要从其读取元数据的存储器区域的地址。例如,控制器120的核心电路(参考图22)可以选择第二地址范围内的地址。
在操作S320中,控制器120(例如,控制器120中的重映射单元RU)可以重映射所选择的地址。例如,重映射单元RU可以将在第二地址范围内所选择的第二地址转换为第一地址范围内的第一地址。第一地址范围可以大于第二地址范围。例如,重映射单元RU可以基于表、模式或函数来将第二地址范围的第二地址转换为第一地址范围的第一地址。例如,第一地址范围的第一地址可以与第二地址范围的第二地址具有相同的格式,并且可以遵从同一地址系统。作为另一示例,第一地址范围的第一地址可以具有与第二地址范围的第二地址的格式不同的格式,并且可以是遵从不同的地址系统的内部地址或虚拟地址。
在操作S330中,控制器120可以基于重映射的地址从RAM 30的主机存储器缓冲区域HMBA读取加密的存储器缓冲。加密的元数据可以包括加扰的第二数据和第二签名SIG2。
在操作S340中,控制器120(例如,控制器120中的第二加扰单元SCR2)可以通过使用第二签名SIG2作为种子来对加扰的第二数据进行去扰。
在操作S350中,控制器120(例如,控制器120中的第一加扰单元SCR1)可以通过使用地址和随机数RN作为种子来对第二数据DAT2和第二签名SIG2进行去扰。地址可以是重映射之前的第二地址范围的第二地址或重映射之后的第一地址范围的的第一地址。随机数RN可以是真随机数或伪随机数。去扰的第二数据可以是解密的元数据,而去扰的第二签名可以是解密的签名。
在操作S360中,控制器120(例如,控制器120中的签名生成和检查单元SGCU)可以执行签名检查。例如,签名生成和检查单元SGCU可以根据解密的元数据来生成签名。签名生成和检查单元SGCU可以将解密的签名与生成的签名进行比较。在操作S370中,可以确定解密的签名与生成的签名是否相同(或匹配)。
在操作S380中,如果解密的签名与生成的签名相同,则控制器120可以确认解密的元数据有效。
替选地,在操作S390中,如果解密的签名与生成的签名不同,则控制器120可以确认解密的元数据无效。当控制器120确认解密的元数据无效时,控制器120例如可以再次从主机存储器缓冲区域HMBA读取加密的元数据,或者可以丢弃来自主机存储器缓冲区域HMBA的加密的元数据。在一些示例实施例中,控制器120可以向主机设备HD通知解密的元数据无效。
图10至图12是示出图4的加密电路ECa的应用的框图。
参考图4和图10至图12,与图4的加密电路ECa相比,图10的加密电路ECb可以不包括随机数生成单元RNGU。与图4的加密电路ECa相比,图11的加密电路ECc可以包括一个加扰单元SCR,而不是第一加扰单元SCR1和第二加扰单元SCR2。与图4的加密电路ECa相比,图12的加密电路ECd可以不包括随机数生成单元RNGU。另外,加密电路ECd可以包括一个加扰单元SCR,而不是第一加扰单元SCR1和第二加扰单元SCR2。
图13是示出在图10至图12的加密电路ECa至ECd中的每个的第一加扰单元或加扰单元中所使用的种子的示例的表。
参考图4和图10至图13,根据第一方案S1,地址(例如,重映射的地址)和随机数RN可以被用作种子。例如,图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用地址(例如,重映射的地址)和随机数RN作为种子来对元数据和签名进行加扰。图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用地址(例如,重映射的地址)和随机数RN作为种子对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
根据第二方案S2,地址(例如,重映射的地址)可以被用作种子。例如,图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用地址(例如,重映射的地址)作为种子来对元数据和签名进行加扰。图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用地址(例如,重映射的地址)作为种子来对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
根据第三方案,签名和随机数RN可以被用作种子。例如,图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用签名和随机数RN作为种子来对元数据和签名进行加扰。图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用签名和随机数RN作为种子来对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
根据第四方案S4,签名可以被用作种子。例如,图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用签名作为种子来对元数据和签名进行加扰。图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用签名作为种子来对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
根据第五方案S5,地址(例如,重映射的地址)、签名和随机数RN可以被用作种子。例如,图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用地址(例如,重映射的地址)、签名和随机数作为种子来对元数据和签名进行加扰。图4的第一加扰单元SCR1或图11的加扰单元SCR可以通过使用地址(例如,重映射的地址)、签名和随机数RN作为种子来对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
根据第六方案S6,地址(例如,重映射的地址)和签名可以被用作种子。例如,图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用地址(例如,重映射的地址)和签名作为种子来对元数据和签名进行加扰。图10的第一加扰单元SCR1或图12的加扰单元SCR可以通过使用地址(例如,重映射的地址)和签名作为种子来对第二数据DAT2和第二签名SIG2或从主机存储器缓冲区域HMBA所读取的加密的元数据进行去扰。
图14是示出其中根据示例实施例的储存设备100执行写入操作的方法的流程图。图15是示出其中在计算设备10处执行储存设备100的写入操作的处理的图。
参考图14的操作S410和图15的第一序列S1,控制器120可以从主机设备HD接收包括主机数据的写入请求。主机数据可以是要被主机设备HD写入储存设备100的数据。主机数据可以是要被从主机设备HD中的RAM 30的主机区域HA发送到控制器120的数据。
参考图14的操作S420和图15的第二序列S2,控制器120可以从主机设备HD中的RAM30的主机存储器缓冲区域HMBA读取加密的元数据。例如,控制器120可以从主机存储器缓冲区域HMBA读取与主机数据相关联的(或相对应的)加密的元数据。
在操作S430中,控制器120可以对加密的元数据进行解密。
在操作S440中,控制器120可以基于元数据将主机数据写入非易失性存储器件110。
因为主机数据被写入非易失存储器件110中,所以在操作S450中,控制器120可以对元数据进行更新。例如,在控制器120的控制之下,可以对元数据进行更新以进一步包括在其处写入主机数据的非易失性存储器件110的物理地址和与主机设备HD的写入请求相关联的逻辑地址之间的映射关系。
在操作S460中,控制器120可以对更新后的元数据进行加密。
参考图14的操作S470和图15的第三序列S3,控制器120可以将加密的元数据存储在主机存储器缓冲区域HMBA中。例如,加密的元数据可以被重映射单元RU写入主机存储器缓冲区域HMBA的空闲区域。可以释放与加密的元数据相关联的之前的存储区域。
图16是示出根据本发明构思的示例实施例的储存设备200的框图。
参考图16,储存设备(storage device)200可以包括非易失性存储器件(nonvolatile memory device)210和控制器220。与图3的储存设备100的非易失性存储器件110相比,图16的储存设备200的非易失性存储器件210可以包括主区域MA和缓冲区域BA。储存设备200的控制器220可以被配置为存储并且管理缓冲元数据BMD。
主区域MA可以与参考图1至图15中的非易失性存储器件110所描述地同样地进行操作。例如,控制器220可以将用于管理主区域MA的元数据加载到外部主机设备HD的RAM 30的主机存储器缓冲区域HMBA上并且对其进行使用。
缓冲区域BA可以是属于非易失性存储器件210并且与主区域MA独立地被管理的存储空间。例如,缓冲区域BA可以是被控制器220使用以暂时地存储数据的存储空间。主区域MA可以是外部主机设备HD识别并且访问的空间。缓冲区域BA可以是未被外部主机设备HD识别并且仅由控制器220访问的区域。主区域MA中的每个存储单元可以存储数量为两个或更多个的比特,并且缓冲区域BA的每个存储单元可以存储数量为两个或更少个的比特。控制器220可以内部地管理用于管理缓冲区域BA的缓冲元数据BMD,而不将缓冲区域BA加载到外部主机设备HD上。缓冲元数据BMD可以包括关于从外部主机设备所接收到的逻辑地址与缓冲区域BA的物理地址之间的关系的信息。
在示例实施例中,当外部主机设备HD从储存设备200请求第一类型的写入操作时,储存设备200可以按照与参考图14和图15所描述的相同的方法来执行关于非易失性存储器件210的主区域MA的写入操作。当外部主机设备HD从储存设备200请求第二类型的写入操作时,储存设备200可以按照与参考图17所描述的相同的方法来执行关于非易失性存储器件210的主区域MA和缓冲区域BA的写入操作。
例如,控制器220可以根据来自主机设备HD的写入请求的类型、由主机设备HD对写入请求所给予的参数(argument)的类型或者通过主机设备HD的写入请求要被写入储存设备的数据的大小,来确定写入请求的类型。例如,可以根据由主机设备HD所请求写入的数据的大小是否大于参考值来确定写入请求的类型。例如,可以根据由主机设备HD请求写入的、而不是尚未被储存设备200处理的数据的大小的整体是否大于参考值来确定写入请求的类型。
图17是示出其中储存设备200基于第二类型的写入请求来执行写入操作的方法的流程图。
参考图16和图17,在操作S510中,储存设备200可以从外部主机设备接收包括主机数据的写入请求。写入请求可以为导致关于主区域MA和缓冲区域BA的写入操作的第二类型。
在操作S520中,控制器220可以基于内部地管理的缓冲元数据BMD来将主机数据写入非易失性存储器件210。
在操作S530中,控制器220可以从主机存储器缓冲区域HMBA读取与主机数据相对应的加密的存储器缓冲。在操作S540中,控制器220可以对加密的元数据进行解密。操作S530和S540可以分别地与图14的操作S420和S430相对应。
在操作S550中,控制器220可以基于元数据将主机数据写入非易失性存储器件210。
在操作S560中,控制器220可以对元数据进行更新。在操作S570中,控制器220可以对元数据进行加密。在操作S580中,控制器220可以将加密的元数据存储在主机存储器缓冲区域HMBA中。操作S560至S580可以分别地与图14的操作S450至S470相对应。
综上,当外部主机设备HD向储存设备100或200发送第一类型的写入请求时,储存设备100或200可以将主机数据写入非易失性存储器件110或主区域MA,如图14中所示。当外部主机设备HD向储存设备220发送第二类型的写入请求时,储存设备200可以通过缓冲区域BA将主机数据写入主区域MA,如图17中所示。在将主机数据写入缓冲区域BA时,不可以访问被加载到主机存储器缓冲区域HMBA上的加密的元数据。
图18是示出其中根据示例实施例的储存设备100执行读取操作的方法的流程图。
图19是示出其中在计算设备10处执行储存设备100的读取操作的处理的图。
参考图3、图18和图19,在操作S610中,控制器120可以从外部主机设备HD接收读取请求。
参考图18的操作S620和图19的第一序列S1,控制器120可以从RAM30的主机存储器缓冲区域HMBA读取加密的元数据。例如,控制器120可以从主机存储器缓冲区域HMBA读取与主机数据相关联(或相对应)的加密的元数据。
在操作S630中,控制器120可以对加密的元数据进行解密。在操作S640中,控制器120可以基于元数据从非易失性存储器件110读取主机数据。主机数据可以是由主机设备HD请求读取的数据。
参考图18的操作S650和图19的第二序列S2,控制器120可以将所读取的主机数据输出到主机设备HD。例如,控制器120可以将主机数据存储在主机设备HD中的RAM 30的主机区域HA中。
图20是示出其中根据示例实施例的储存设备100将元数据清空到非易失性存储器件110的示例的流程图。
参考图1、图3或图16和图20,在操作S710中,控制器120可以从主机设备HD接收断电或睡眠信息。断电信息可以是指示计算设备10断电的信息。睡眠信息可以是指示计算设备10进入节电模式的信息。
在操作S720中,控制器120或220可以从主机设备HD中的RAM 30的主机存储器缓冲区域HMBA读取加密的存储器缓冲。在操作S730中,控制器120可以将元数据写入(或清空)到非易失性存储器件110或主区域MA中。在示例实施例中,当主机设备HD中的RAM 30的主机存储器缓冲区域HMBA被释放时,控制器120或220可以将在主机存储器缓冲区域HMBA中所存储的加密的数据清空到非易失性存储器件110或主区域MA。
作为另一示例,当满足特定条件时,储存设备100或200可以将主机存储器缓冲区域HMBA的加密的元数据清空到非易失性存储器件110或主区域MA。例如,当电压不稳定时或当RAM 30的稳定性降低时,储存设备100或200可以周期性地将主机存储器缓冲区域HMBA的加密的元数据清空到非易失性存储器件110或主区域MA。
在随着计算设备10上电或退出节电模式而在RAM 30上生成主机存储器缓冲区域HMBA之后,储存设备100或200或计算设备10可以基于图5和图9中所示的方法来管理主机存储器缓冲区域HMBA上的元数据,并且可以基于图16和图18中所示的方法来对关于储存设备100或200的写入请求和读取请求进行处理。
图21是示出其中图16的储存设备200基于睡眠信息来管理元数据的方法的流程图。
参考图1、图16和图21,在操作S810中,控制器220可以从主机设备HD接收睡眠信息。
在操作S820中,控制器220可以从RAM 30的主机存储器缓冲区域HMBA读取加密的存储器缓冲。
在操作S830中,控制器220可以将加密的元数据写入非易失性存储器件210的缓冲区域BA,而不对加密的元数据进行解密。
在操作S840中,控制器220可以从主机设备HD接收唤醒信息。唤醒信息可以指示储存设备200或计算设备10的模式从睡眠模式切换到正常模式。
在操作S850中,控制器220可以从非易失性存储器件210的缓冲区域BA读取加密的存储器缓冲。
在操作S860中,控制器220可以将加密的元数据存储在RAM 30的主机存储器缓冲区域HMBA中。
如上所述,当储存设备200或计算设备10进入节电模式时,储存设备200可以将在主机存储器缓冲区域HMBA中所存储的加密的元数据存储在缓冲区域BA中,而不进行单独的处理。之后,主机存储器缓冲区域HMBA可以被释放,并且储存设备200或计算设备10可以进入节电模式。因为其中控制器220对加密的元数据进行解码的处理被忽略,所以可以提高储存设备200或计算设备10进入节电模式的速度。
同样地,当储存设备200或计算设备10的模式被切换到正常模式时,可以分配主机存储器缓冲区域HMBA。储存设备200可以将在缓冲区域BA中所存储的加密的元数据存储在主机存储器缓冲区域HMBA中。因此,即使在节电模式也可以维持在主机存储器缓冲区域HMBA中所存储的加密的元数据的连续性。
在示例实施例中,随机数生成单元RNGU(参见图4)可以维持随机数RN并且可以不对随机数RN进行更新或改变,以用于在节电模式之前和之后的加密和解密的一致性。
图22是示出根据本发明构思的示例实施例的控制器120的框图。
参考图3和图22,控制器120可以包括总线121、核心电路122、RAM 123、ECC块124、主机接口125、存储器接口127以及加密电路EC。
总线121可以被配置为提供控制器120的元件之间的信道。
核心电路122可以对控制器120的总体操作进行控制,并且可以执行逻辑运算。核心电路122可以通过主机接口125与外部主机设备通信,并且可以通过存储器接口127与非易失性存储器件110通信。核心电路122可以通过使用RAM 123作为工作存储器、缓存存储器或缓冲存储器来控制储存设备100。
RAM 123可以被用作核心电路122的工作存储器、缓存存储器或缓冲存储器。RAM123可以存储核心电路122将执行的代码或命令。RAM 123可以存储由核心电路122处理的数据。RAM 123可以包括静态RAM(SRAM).
纠错(ECC)块124可以执行纠错操作。ECC块124可以基于通过存储器接口127要被写入非易失性存储器件110的数据来执行纠错编码。纠错编码的数据可以通过存储器接口127被发送到非易失性存储器件110。ECC块124可以关于通过存储器接口127从非易失性存储器件110所接收到的数据执行纠错编码。在示例实施例中,ECC块124可以包括在存储器接口127中作为存储器接口127的组件。
主机接口125可以在核心电路122的控制之下与外部主机设备通信。主机接口125可以使用各种通信方式中的至少一个来传达通信。
主机接口125可以包括加密电路EC。加密电路EC可以包括参考图4和图10至图12所描述的加密电路ECa至ECd中的至少一个。
存储器接口127可以响应于核心电路122的控制与非易失性存储器件110通信。如参考图1所描述地,存储器接口127可以通过输入/输出信道将命令、地址和数据传达到非易失性存储器件110。存储器接口127可以通过控制信道将控制信号传达到非易失性存储器件110。
图23是示出根据本发明构思的示例实施例的非易失性存储器件110的框图。
参考图3和图23,非易失性存储器件110可以包括存储单元阵列111、行译码器电路113、页面缓冲电路115、通过-失败检查电路PFC、数据输入/输出电路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可以对通过输入/输出信道从控制器120所接收到的地址进行译码,并且可以基于译码的地址允许电压被施加到串选择线SSL、字线WL以及接地选择线GSL。
页面缓冲电路115可以通过位线BL连接到存储单元阵列111。页面缓冲电路115可以通过多个数据线DL连接到数据输入/输出电路117。页面缓冲电路115可以在控制逻辑电路119的控制之下进行操作。
通过-失败检查电路PFC可以检查编程操作或擦除操作的通过和失败。
数据输入/输出电路117可以通过数据线DL连接到页面缓冲电路115。数据输入/输出电路117可以通过输入/输出信道将由页面缓冲电路115所读取的数据输出到控制器120,并且可以将通过输入/输出信道从控制器120所接收到的数据提供给页面缓冲电路115。
控制逻辑电路119可以通过输入/输出信道从控制器120接收命令,并且可以通过控制信道从其接收控制信号。控制逻辑电路119可以响应于控制信号接收通过输入/输出信道所提供的命令,可以将通过输入/输出信道所提供的地址路由到行译码器113,以及可以将通过输入/输出信道所提供的数据路由到数据输入/输出电路117。控制逻辑电路199可以对所接收到的命令进行译码,并且基于译码的命令来控制非易失性存储器件110。
图24是示出根据本发明构思的示例实施例的存储块BLKa的电路图。
参考图24,存储块BLKa可以包括多个单元串CS11至CS21以及CS12至CS22。可以沿着行方向和列方向排列多个单元串CS11至CS21以及CS12至CS22,以构成行和列。
每个单元串可以包含多个单元晶体管。单元晶体管可以包括接地选择晶体管GST、存储单元MC1至MC6以及串选择晶体管SSTa和SSTb。每个单元串中的接地选择晶体管GST、存储单元MC1至MC6以及串选择晶体管SSTa和SSTb可以堆叠在与以下平面(例如,存储块BLKa的基底上的平面)垂直的高度方向上:在该平面上,沿着行和列排列有单元串CS11至CS21以及CS12至CS22。
最低接地选择晶体管GST的源极可以公共地连接到公共源极线CSL。
在第一行中的单元串CS11和CS12的接地选择晶体管GSTa的控制栅极可以公共地连接到接地选择线GSL1,而在第二行中的单元串CS11和CS22的接地选择晶体管GSTb的控制栅极可以公共地连接到接地选择线GSL2。即,不同行中的单元串可以连接到不同的接地选择线。
被放置在从基底(或接地选择晶体管GST)起相同高度(或次序)处的存储单元的控制栅极公共地连接到一字线。被放置在不同高度(或次序)处的存储单元的控制栅极连接到不同的字线WL1至WL6。例如,存储单元MC1可以公共地连接到字线WL1。存储单元MC2可以公共地连接到字线WL2。存储单元MC3可以公共地连接到字线WL3。存储单元MC4可以公共地连接到字线WL4。存储单元MC5可以公共地连接到字线WL5。存储单元MC6可以公共地连接到字线WL6。
在具有相同高度(或次序)的单元串CS11至CS21以及CS12至CS22的第一串选择晶体管SSTa中,不同行中的第一串选择晶体管SSTa的控制栅极可以连接到不同的串选择线SSL1a和SSL2a。例如,单元串CS11和CS12的第一串选择晶体管SSTa可以公共地连接到串选择线SSL1a。单元串CS21和CS22的第一串选择晶体管SSTa可以公共地连接到串选择线SSL2a。
在具有相同高度(或次序)的单元串CS11至CS21以及CS12至CS22的第二串选择晶体管SSTb中,不同行中的第二串选择晶体管SSTb的控制栅极可以连接到不同的串选择线SSL1b和SSL2b。例如,单元串CS11和CS12的第二串选择晶体管SSTb可以公共地连接到串选择线SSL1b。单元串CS21和CS22的第二串选择晶体管SSTb可以公共地连接到串选择线SSL2b。
单元串CS11至CS21以及CS12至CS22的列可以连接到不同的位线BL1和BL2。例如,第一列中的单元串CS11和CS21的串选择晶体管SSTb可以公共地连接到位线BL1。单元串CS12和CS22的串选择晶体管SSTb可以公共地连接到位线BL2。
根据本发明构思的示例实施例,三维存储器阵列可以具有垂直方向特性,并且可以包括垂直NAND串,其中,至少一个存储单元被定位在另一存储单元上。至少一个存储单元MC可以包括电荷俘获层。每个垂直NAND串可以进一步包括被放置在存储单元MC之上的至少一个选择晶体管。至少一个选择晶体管可以具有与存储单元MC相同的结构,并且可以与存储单元MC一致地形成。
通过引用并入于此的下面的专利文献描述了对于三维存储器阵列的合适的配置,其中,三维存储器阵列被配置为多个级,在级之间共享字线和/或位线:美国专利第7,679,133号、第8,553,466号、第8,654,587号、第8,559,235号以及美国专利公开第2011/0233648号。
虽然已经参考一些示例实施例描述了本发明构思的示例实施例,但是对于本领域技术人员将明显的是,可以进行各种改变和修改而不脱离本发明构思的精神和范围。因此,应当理解,以上示例实施例不是限制性的而是示意性的。
Claims (20)
1.一种储存设备,包括:
非易失性存储器件;和
控制器,被配置为,
基于元数据来控制所述非易失性存储器件,
对所述元数据进行加密,以生成加密的元数据,以及
将所述加密的元数据加载到外部主机设备的随机存取存储器上。
2.根据权利要求1所述的储存设备,其中,所述控制器被配置为通过基于种子对所述元数据进行加扰来对所述元数据进行加密。
3.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
以块为单位来管理所述元数据,以及
对块中的每个块进行加密,使得当每个块中的任一比特被修改时,块中的每个块中的所有比特变化。
4.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
以块为单位来管理所述元数据,以及
将所述元数据的块中的每个块写入在所述随机存取存储器处所分配的块中的替选块中。
5.根据权利要求4所述的储存设备,其中,所述控制器被配置为,如果对所述元数据的块中的任一块进行更新,则改变存储所述加密的元数据的随机存取存储器的每个块。
6.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
根据所述元数据生成签名并且对所述签名进行加密,以及
将所述加密的签名与所述加密的元数据一起存储在所述随机存取存储器中。
7.根据权利要求6所述的储存设备,其中,所述控制器被配置为,
从所述随机存取存储器读取所述加密的元数据和所述加密的签名,
对所述加密的元数据和所述加密的签名进行解密,
根据解密的元数据生成第二签名,以及
如果所述第二签名与解密的签名不同,则向所述外部主机设备通知所述解密的元数据无效。
8.根据权利要求1所述的储存设备,其中,所述加密的元数据的大小小于被分配为存储所述加密的元数据的随机存取存储器的容量。
9.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
基于随机数对所述元数据进行加密,当所述储存设备启动时对所述随机数进行更新。
10.根据权利要求1所述的储存设备,其中,所述控制器被配置为基于被加载到所述随机存取存储器上的所述加密的元数据来控制所述非易失性存储器件。
11.根据权利要求1所述的储存设备,其中,响应于第一类型的写入请求,所述控制器被配置为,
从所述随机存取存储器接收第一写入数据,
从所述随机存取存储器读取第一部分元数据的加密版本,所述第一部分元数据是加密的元数据的与所述第一写入数据相关联的部分,
对所述第一部分元数据的加密版本进行解密,以生成所述第一部分元数据的解密版本,以及
基于所述第一部分元数据的解密版本将所述第一写入数据写入所述非易失性存储器件。
12.根据权利要求11所述的储存设备,其中,响应于第二类型的写入请求,所述控制器被配置为,
从所述随机存取存储器接收第二写入数据,
将所述第二写入数据写入所述非易失性存储器件的缓冲区域,
从所述随机存取存储器读取第二部分元数据的加密版本,所述第二部分元数据是加密的元数据的与所述第二写入数据相关联的部分,
对所述第二部分元数据的加密版本进行解密,以生成所述第二部分元数据的解密版本,
从所述非易失存储器件的缓冲区域读取所述第二写入数据,
基于所述第二部分元数据的解密版本将所述第二写入数据写入所述非易失存储器件的主区域。
13.根据权利要求12所述的储存设备,其中,所述控制器被配置为,
基于所述元数据来控制所述非易失性存储器件的主区域,以及
基于内部地管理的第二元数据来管理所述非易失性存储器件的缓冲区域。
14.根据权利要求11所述的储存设备,其中,所述控制器被配置为,
通过对所述第一部分元数据进行更新来生成第二部分元数据,
对所述第二部分元数据进行加密,以生成所述第二部分元数据的加密版本,以及
将所述第二部分元数据的加密版本存储在所述随机存取存储器中。
15.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
从所述外部主机设备接收读取请求,
从所述随机存取存储器读取部分元数据的加密版本,所述部分元数据是加密的元数据的与所述读取请求相关联的部分,
对加密的部分元数据进行解密,以生成所述部分元数据的解密版本,
基于所述部分元数据的解密版本从所述非易失性存储器件读取数据,以及
将所读取的数据写入所述随机存取存储器。
16.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
从所述外部主机设备接收断电或睡眠信息,
从所述随机存取存储器读取所述加密的元数据,
对所述加密的元数据进行解密,以生成解密的元数据,以及
将所述解密的元数据写入所述非易失性存储器件。
17.根据权利要求1所述的储存设备,其中,所述控制器被配置为,
从所述外部主机设备接收睡眠信息,
从所述随机存取存储器接收所述加密的元数据,以及
将所述加密的元数据写入所述非易失性存储器件。
18.根据权利要求17所述的储存设备,其中,所述控制器被配置为,
从所述外部主机设备接收唤醒信息,
从所述非易失性存储器件接收所述加密的元数据,以及
将所述加密的元数据加载到所述随机存取存储器上。
19.一种储存设备,包括:
非易失性存储器件,包括多个单元串,所述多个单元串包括在与基底垂直的方向上堆叠的多个存储单元;以及
控制器,被配置为,
基于元数据来控制所述非易失性存储器件,
从所述非易失性存储器件读取所述元数据,
对所述元数据进行加密,以生成加密的元数据,以及
将所述加密的元数据加载到外部主机设备的随机存取存储器上。
20.一种储存设备,包括:
存储器和处理器,所述存储器包含计算机可读代码,所述计算机可读代码当被所述处理器执行时,将所述处理器配置为通过以下步骤来对与储存设备相关联的数据执行操作,
从主机设备的主机存储器缓冲区域(HMBA)读取加密的元数据,
对所述加密的元数据进行解密,以生成解密的元数据,
基于所述解密的元数据,将从所述主机设备所接收到的逻辑地址映射到所述储存设备的物理地址,以及
基于所述物理地址来对所述数据执行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160004841A KR102466412B1 (ko) | 2016-01-14 | 2016-01-14 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR10-2016-0004841 | 2016-01-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107423228A true CN107423228A (zh) | 2017-12-01 |
Family
ID=59315072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710025662.8A Pending CN107423228A (zh) | 2016-01-14 | 2017-01-13 | 储存设备及储存设备的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10509575B2 (zh) |
KR (1) | KR102466412B1 (zh) |
CN (1) | CN107423228A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110472445A (zh) * | 2019-07-02 | 2019-11-19 | 深圳市金泰克半导体有限公司 | 数据保护方法、装置、固态硬盘和存储介质 |
CN110659226A (zh) * | 2018-06-28 | 2020-01-07 | 晨星半导体股份有限公司 | 用以存取数据的方法以及相关电路 |
CN111599401A (zh) * | 2019-02-20 | 2020-08-28 | 爱思开海力士有限公司 | 能够对地址进行加扰的半导体系统 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180095884A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Mass storage cache in non volatile level of multi-level system memory |
TWI679554B (zh) * | 2017-03-07 | 2019-12-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US10482010B2 (en) * | 2017-06-29 | 2019-11-19 | Intel Corporation | Persistent host memory buffer |
US11158381B2 (en) | 2017-10-12 | 2021-10-26 | Samsung Electronics Co., Ltd. | Non-volatile memory device and operating method thereof |
KR102336662B1 (ko) | 2017-10-12 | 2021-12-07 | 삼성전자 주식회사 | 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작 방법 |
KR102281966B1 (ko) * | 2017-11-01 | 2021-07-26 | 삼성전자주식회사 | 데이터 스토리지 장치 및 그 동작 방법 |
KR102471415B1 (ko) | 2018-01-17 | 2022-11-29 | 에스케이하이닉스 주식회사 | 반도체 장치 |
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
CN110297595B (zh) * | 2018-03-21 | 2022-11-22 | 群联电子股份有限公司 | 主机存储器缓冲区配置方法、储存装置与控制电路单元 |
KR20190112546A (ko) * | 2018-03-26 | 2019-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102471523B1 (ko) | 2018-04-26 | 2022-11-28 | 에스케이하이닉스 주식회사 | 반도체 집적 회로 장치 및 이를 포함하는 반도체 메모리 시스템 |
US11036651B2 (en) * | 2018-06-29 | 2021-06-15 | Micron Technology, Inc. | Host side caching security for flash memory |
US10698816B2 (en) * | 2018-06-29 | 2020-06-30 | Micron Technology, Inc. | Secure logical-to-physical caching |
JP7326667B2 (ja) | 2018-07-31 | 2023-08-16 | マーベル アジア ピーティーイー、リミテッド | ストレージエッジにおけるメタデータ生成 |
KR102589402B1 (ko) * | 2018-10-04 | 2023-10-13 | 삼성전자주식회사 | 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 |
TWI673716B (zh) * | 2018-10-09 | 2019-10-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 |
KR102599188B1 (ko) | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
KR102588600B1 (ko) * | 2018-11-12 | 2023-10-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR102599176B1 (ko) | 2018-11-14 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리 버퍼를 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 |
US11074004B2 (en) * | 2019-01-15 | 2021-07-27 | Intel Corporation | Tenant-based telemetry for persistent storage media |
JP7143232B2 (ja) * | 2019-01-29 | 2022-09-28 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11288181B2 (en) * | 2019-03-07 | 2022-03-29 | Silicon Motion, Inc. | Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages |
KR20210071314A (ko) | 2019-12-06 | 2021-06-16 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
US11615025B2 (en) * | 2020-02-10 | 2023-03-28 | SK Hynix Inc. | Encoding and decoding device for system data of storage device |
US11507309B2 (en) * | 2020-05-04 | 2022-11-22 | Western Digital Technologies, Inc. | Storage system and method for using memory allocated in a host for read data as a host memory buffer |
US11714897B2 (en) * | 2020-09-02 | 2023-08-01 | Mobileye Vision Technologies Ltd. | Secure distributed execution of jobs |
US20220238174A1 (en) * | 2021-01-27 | 2022-07-28 | Micron Technology, Inc. | Metadata storage at a memory device |
KR20220122009A (ko) * | 2021-02-26 | 2022-09-02 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작 방법 |
US11720715B2 (en) | 2021-03-21 | 2023-08-08 | Western Digital Technologies, Inc. | Secure data storage device and method of encryption |
US12014080B2 (en) * | 2021-11-10 | 2024-06-18 | Samsung Electronics Co., Ltd. | Memory system using host memory buffer and operation method thereof |
US11934544B2 (en) * | 2022-03-17 | 2024-03-19 | Lenovo Global Technology (United States) Inc. | Securing data via encrypted geo-located provenance metadata |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120054582A1 (en) * | 2010-08-31 | 2012-03-01 | Apple Inc. | Detecting corrupted data for a system having non-volatile memory |
CN104052606A (zh) * | 2014-06-20 | 2014-09-17 | 北京邮电大学 | 数字签名、签名认证装置以及数字签名方法 |
US20150074329A1 (en) * | 2013-09-09 | 2015-03-12 | Kabushiki Kaisha Toshiba | Information processing device |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
FR2834361B1 (fr) * | 2001-12-28 | 2004-02-27 | Bull Sa | Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature |
US8301884B2 (en) * | 2002-09-16 | 2012-10-30 | Samsung Electronics Co., Ltd. | Method of managing metadata |
US20060015753A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Internal RAM for integrity check values |
US20090006796A1 (en) * | 2007-06-29 | 2009-01-01 | Sandisk Corporation | Media Content Processing System and Non-Volatile Memory That Utilizes A Header Portion of a File |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US20090144563A1 (en) * | 2007-11-30 | 2009-06-04 | Jorge Campello De Souza | Method of detecting data tampering on a storage system |
CA2718730A1 (en) * | 2008-03-26 | 2009-10-01 | Thomson Licensing | Method for rapid archiving and restoring of a video store |
US8145855B2 (en) | 2008-09-12 | 2012-03-27 | Sandisk Technologies Inc. | Built in on-chip data scrambler for non-volatile memory |
US20120096281A1 (en) * | 2008-12-31 | 2012-04-19 | Eszenyi Mathew S | Selective storage encryption |
US20100241815A1 (en) * | 2009-03-20 | 2010-09-23 | Google Inc. | Hybrid Storage Device |
US8977805B2 (en) | 2009-03-25 | 2015-03-10 | Apple Inc. | Host-assisted compaction of memory blocks |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US8429365B2 (en) * | 2009-06-26 | 2013-04-23 | Sandisk Technologies Inc. | Memory device and method for embedding host-identification information into content |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US20120310983A1 (en) * | 2010-02-11 | 2012-12-06 | Hemant Mittal | Executable identity based file access |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
EP2598996B1 (en) * | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US8613074B2 (en) * | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US20120159040A1 (en) * | 2010-12-15 | 2012-06-21 | Dhaval Parikh | Auxiliary Interface for Non-Volatile Memory System |
WO2012083308A2 (en) * | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8798262B1 (en) * | 2010-12-23 | 2014-08-05 | Emc Corporation | Preserving LBA information between layers of a storage I/O stack for LBA-dependent encryption |
TWI464581B (zh) | 2011-02-21 | 2014-12-11 | Etron Technology Inc | 非揮發性記憶體模組、非揮發性記憶體處理系統、與相關非揮發性記憶體管理方法 |
WO2012117263A1 (en) * | 2011-03-02 | 2012-09-07 | Sandisk Il Ltd. | Method of data storage in non-volatile memory |
WO2013101006A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Generic address scrambler for memory circuit test engine |
TWI475385B (zh) * | 2012-03-14 | 2015-03-01 | Phison Electronics Corp | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
US9304944B2 (en) | 2012-03-29 | 2016-04-05 | Broadcom Corporation | Secure memory access controller |
US8898376B2 (en) * | 2012-06-04 | 2014-11-25 | Fusion-Io, Inc. | Apparatus, system, and method for grouping data stored on an array of solid-state storage elements |
US20140115234A1 (en) * | 2012-10-24 | 2014-04-24 | Samsung Electronics Co., Ltd. | Memory system comprising nonvolatile memory device and related method of operation |
US9104588B2 (en) | 2013-03-01 | 2015-08-11 | Micron Technology, Inc. | Circuits, apparatuses, and methods for address scrambling |
US9152578B1 (en) * | 2013-03-12 | 2015-10-06 | Emc Corporation | Securing data replication, backup and mobility in cloud storage |
US9274978B2 (en) * | 2013-06-10 | 2016-03-01 | Western Digital Technologies, Inc. | Migration of encrypted data for data storage systems |
JP6102632B2 (ja) * | 2013-08-14 | 2017-03-29 | ソニー株式会社 | 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法 |
US9959216B2 (en) * | 2013-09-10 | 2018-05-01 | Sandisk Technologies Llc | Generating and using an enhanced initialization vector |
US20160232103A1 (en) * | 2013-09-26 | 2016-08-11 | Mark A. Schmisseur | Block storage apertures to persistent memory |
US9092370B2 (en) * | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9213653B2 (en) | 2013-12-05 | 2015-12-15 | Intel Corporation | Memory integrity |
US9336401B2 (en) | 2014-01-20 | 2016-05-10 | International Business Machines Corporation | Implementing enhanced security with storing data in DRAMs |
US9563382B2 (en) * | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
US10002148B2 (en) * | 2014-07-22 | 2018-06-19 | Oracle International Corporation | Memory-aware joins based in a database cluster |
US9405928B2 (en) * | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US9436847B2 (en) * | 2014-09-26 | 2016-09-06 | Intel Corporation | Cryptographic pointer address encoding |
US9323876B1 (en) * | 2014-11-24 | 2016-04-26 | Xilinx, Inc. | Integrated circuit pre-boot metadata transfer |
US9749319B2 (en) * | 2015-05-20 | 2017-08-29 | Google Inc. | Address validation using signatures |
US10073977B2 (en) * | 2015-07-20 | 2018-09-11 | Intel Corporation | Technologies for integrity, anti-replay, and authenticity assurance for I/O data |
US9959418B2 (en) * | 2015-07-20 | 2018-05-01 | Intel Corporation | Supporting configurable security levels for memory address ranges |
WO2017058414A1 (en) * | 2015-09-29 | 2017-04-06 | Apple Inc. | Unified addressable memory |
US10310774B2 (en) * | 2015-12-24 | 2019-06-04 | Intel Corporation | Techniques for data storage protection and integrity checking |
-
2016
- 2016-01-14 KR KR1020160004841A patent/KR102466412B1/ko active IP Right Grant
-
2017
- 2017-01-12 US US15/404,229 patent/US10509575B2/en active Active
- 2017-01-13 CN CN201710025662.8A patent/CN107423228A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120054582A1 (en) * | 2010-08-31 | 2012-03-01 | Apple Inc. | Detecting corrupted data for a system having non-volatile memory |
US20150074329A1 (en) * | 2013-09-09 | 2015-03-12 | Kabushiki Kaisha Toshiba | Information processing device |
CN104052606A (zh) * | 2014-06-20 | 2014-09-17 | 北京邮电大学 | 数字签名、签名认证装置以及数字签名方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659226A (zh) * | 2018-06-28 | 2020-01-07 | 晨星半导体股份有限公司 | 用以存取数据的方法以及相关电路 |
CN111599401A (zh) * | 2019-02-20 | 2020-08-28 | 爱思开海力士有限公司 | 能够对地址进行加扰的半导体系统 |
CN111599401B (zh) * | 2019-02-20 | 2023-11-14 | 爱思开海力士有限公司 | 能够对地址进行加扰的半导体系统 |
CN110472445A (zh) * | 2019-07-02 | 2019-11-19 | 深圳市金泰克半导体有限公司 | 数据保护方法、装置、固态硬盘和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102466412B1 (ko) | 2022-11-15 |
KR20170085638A (ko) | 2017-07-25 |
US20170206030A1 (en) | 2017-07-20 |
US10509575B2 (en) | 2019-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423228A (zh) | 储存设备及储存设备的操作方法 | |
US11024367B2 (en) | Memory with on-die data transfer | |
CN107015920B (zh) | 存储设备和存储设备的操作方法 | |
CN107045462B (zh) | 存储装置 | |
US9653171B2 (en) | Partial page memory operations | |
US20230139330A1 (en) | Storage device for a blockchain network based on proof of space and system including the same | |
US11086571B2 (en) | Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof | |
US20170083402A1 (en) | Detecting data indicated as being uncorrectable at a data storage device | |
CN110046506A (zh) | 存储设备和包括存储设备的存储系统及使用其进行操作的方法 | |
CN106971754A (zh) | 非易失性存储器设备、包括其的存储装置和操作其的方法 | |
US11088856B2 (en) | Memory storage system, host system authentication method and memory storage device | |
CN111539043A (zh) | 提供对受保护存储器的存取的系统 | |
US9990162B2 (en) | Memory controllers, operating methods thereof, and memory systems including the same | |
KR20190123090A (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US11482263B2 (en) | Non-volatile memory device, controller for controlling the same, storage device including the same, and reading method thereof | |
US11682467B2 (en) | Nonvolatile memory device, controller for controlling the same, storage device including the same, and reading method of the same | |
CN106816177A (zh) | 数据存储装置及其操作方法 | |
CN112542201A (zh) | 存储设备及操作该存储设备的方法 | |
US20210055986A1 (en) | Semiconductor device with power-saving mode and associated methods and systems | |
US11901014B2 (en) | Partial block handling in a non-volatile memory device | |
US20230153030A1 (en) | Storage device and operating method thereof | |
US20230152993A1 (en) | Storage device | |
US20150363336A1 (en) | Memory device, memory system, and method of operating memory system | |
CN109739681A (zh) | 具有共享缓冲器架构的存储器系统及其操作方法 | |
US20220083240A1 (en) | Memory system and operating method thereof |
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 |