CN112771491A - 主机常驻转换层有效性检查技术 - Google Patents
主机常驻转换层有效性检查技术 Download PDFInfo
- Publication number
- CN112771491A CN112771491A CN201980062579.5A CN201980062579A CN112771491A CN 112771491 A CN112771491 A CN 112771491A CN 201980062579 A CN201980062579 A CN 201980062579A CN 112771491 A CN112771491 A CN 112771491A
- Authority
- CN
- China
- Prior art keywords
- signature
- hash
- memory
- memory device
- pba
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0614—Improving the reliability of 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/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本文中公开用于在主机常驻FTL操作模式期间在存储器装置处验证主机产生的物理地址以遏制对所述存储器装置的错误或潜在恶意存取的装置和技术,具体是通过:在存储器装置处从主机装置接收包括第一签名和PBA的操作命令;产生第二签名;比较所述第一签名与所述第二签名;在匹配结果指示所述第一签名与所述第二签名相同时执行操作;以及在所述匹配结果指示所述第一签名不匹配所述第二签名时不使用所述PBA执行所述操作。
Description
优先权申请案
本申请案主张2018年9月25日提交的第16/140,952号美国申请案的优先权权益,所述美国申请案以全文引用的方式并入本文中。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过当未被供电时保持所存储的数据而提供持久的数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻随机存取存储器(MRAM)、3D XPointTM存储器等等。
存储器单元通常布置成矩阵或阵列。多个矩阵或阵列可组合到存储器装置中,且多个装置可组合以形成存储器系统的存储容量,如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、MultiMediaCard(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。
存储器系统可包含一或多个处理器或其它存储器控制器,用于执行逻辑函数以操作所述存储器装置或与外部系统介接。存储器矩阵或阵列可包含组织成数个物理页的数个存储器单元块。存储器系统可从主机接收与存储器操作相关联的命令,所述操作例如读取或写入操作以在存储器装置与主机之间传送数据(例如,用户数据和相关联完整性数据,例如错误数据和地址数据,等),擦除操作以从存储器装置擦除数据,或执行一或多个其它存储器操作。
利用存储器作为用于多种多样的电子应用的易失性和非易失性数据存储装置,所述电子应用包含例如个人计算机、便携式存储棒、数码相机、蜂窝电话、便携式音乐播放器(例如MP3播放器)、电影播放器和其它电子装置。存储器单元可布置成阵列,其中阵列在存储器装置中使用。
许多电子装置包含若干主要组件:主机处理器(例如,中央处理单元(CPU)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,如动态RAM(DRAM)、移动或低功率双倍数据速率同步DRAM(DDR SDRAM)等);以及存储装置(例如,非易失性存储器(NVM)装置,如快闪存储器、只读存储器(ROM)、SSD、MMC或其它存储卡结构或组合件,或易失性和非易失性存储器的组合等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、功率管理电路系统、基带处理器或一或多个收发器电路等。
附图说明
在不一定按比例绘制的图式中,相似标号在不同视图中可描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同情况。图式借助于实例而非限制性地大体上说明本文件中所论述的各种实施例。
图1说明包含可在其上实施本发明主题的一或多个实例的存储器装置的环境的实例系统。
图2大体上说明用于使用主机常驻FTL的方面在快闪存储器系统处实施存储器操作的实例方法的流程图。
图3大体上说明用于有效地监测和更新用于主机常驻FTL操作的主机映射表数据的实例方法的流程图。
图4说明本文中论述的技术(例如,方法)中的任何一或多者可在其上执行的实例机器的框图。
具体实施方式
例如NAND存储器等基于快闪存储器的存储装置可使用快闪转换层(FTL)来将I/O请求的逻辑地址(常常称为逻辑块地址(LBA))转换成存储于一或多个FTL映射表中的对应快闪存储器地址(有时称为物理地址或物理块地址(PBA)。LBA可为由主机用于管理数据的逻辑地址,且PBA可为由快闪存储器用于管理数据存储和检索的物理地址。移动存储装置通常具有大小受约束的高速缓存,并且因此常常缺乏存储器来存储整个映射表。因此,可按需求从快闪存储器检索映射表的部分,其可致使随机读取性能劣化。
为了改进随机读取性能,本文中所描述的技术实现除耦合到主机的存储器装置的存储器单元之外的主机常驻存储器作为FTL映射表的高速缓存的使用。在主机常驻FTL下,从主机存储器读取FTL数据的速度比从快闪存储器读取FTL数据的速度快,并且主机可通过检索快闪存储器的物理块地址(PA)且将PBA包含在存储器请求中到快闪存储器来起始存储器操作。PBA可由主机使用主机的FTL存储器高速缓存和主机的LBA检索。在接收存储器请求后,快闪存储器系统可立即检索与PBA相关联的数据,而无与存取基于快闪存储器的映射表以及使用LBA获得PBA相关联的延迟。
在主机常驻FTL的某些实施方案中,随机读取工作负荷性能的改进可为显著的。然而,本发明人已识别可辅助验证主机存储器请求的完整性的用于主机常驻FTL的技术。主机常驻FTL的直接实施方案可假定映射表在主机起始的操作之间保持准确。然而,连接到主机的存储器系统或存储器装置通常在主机起始的操作之间或在主机空闲的时间期间执行内务处理操作,例如垃圾收集和耗损均衡。内务处理操作在存储器装置处常驻的映射表周围移动数据且常常修正和更新所述映射表。在不进行一些有效性检查的情况下,主机常驻FTL的直接实施,例如存储器系统盲目地使用主机提供的PBA以存取快闪数据,可能常常导致存储器系统在不正确或非预期的PBA处存取快闪存储器。
图1说明包含经配置以通过通信接口通信的主机105及存储器装置110的环境100的实例。主机105或存储器装置110可包含于多种产品150中,如用以支持产品150的处理、通信或控制的IoT装置(例如,制冷机或其它电器、传感器、马达或致动器、移动通信装置、汽车、移动电话、无人机等)。
存储器装置110包含存储器控制器115或控制器电路系统和存储器阵列120,包含例如一或多个个别存储器裸片(例如,三维(3D)NAND裸片的堆叠)。在3D架构半导体存储器技术中,竖直结构堆叠于多个层次中,且耦合以形成物理页,从而增大给定占据面积(即外观尺寸)中的存储器装置(例如,存储装置)的存储密度。在一实例中,存储器装置110可为离散存储器装置。
一或多个通信接口111可用来在存储器装置110与主机105的一或多个其它组件之间传送数据,例如串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、UFS接口、eMMCTM接口,或一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储卡读卡器或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参看图4的机器400论述的组件的某一部分或全部的机器。数据可经由输入/输出(I/O)总线在存储器装置110与其它组件之间传送,所述输入/输出总线可包含在传送数据时(例如,在从存储器阵列读取或写入到存储器阵列之前)用于暂时地存储数据的一或多个锁存器。
存储器控制器115可从主机105接收指令,并可与存储器阵列通信,以便将数据传送到存储器阵列的存储器单元、平面、子块、区或页面中的一或多个(例如,写入或擦除)或传送来自前述各项的数据(例如,读取)。存储器控制器115可尤其包含电路系统或固件,包含一或多个组件或集成电路。举例来说,存储器控制器115可包含被配置成控制存储器阵列120上的存取且在主机105与存储器装置110之间提供转换层的一或多个存储器控制单元、电路、控制电路系统或组件。存储器控制器115可包含用以将数据传送到存储器阵列120或传送来自存储器阵列的数据的一或多个I/O电路(和对应锁存器)、高速缓存、线或接口。存储器控制器115可包含存储器管理器125和阵列控制器135。
阵列控制器135尤其可包含经配置以控制存储器操作的电路系统或组件,所述存储器操作与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元、从所述一或多个存储器单元读取数据或者擦除所述一或多个存储器单元相关联。所述存储器操作可基于例如从主机105接收的主机命令,或在内部由存储器管理器125产生(例如,与耗损均衡、错误检测或校正等结合)。
阵列控制器135可包含错误校正码(ECC)组件140,所述ECC组件可尤其包含ECC引擎、或经配置以检测或校正与向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据或从中读取数据相关联的错误的其它电路系统。ECC组件140例如可检测或计算与执行多个存储器操作相关联的误码率(BER)。BER可对应于I/O总线的锁存器中出现的位错误、存储器控制器115的内部错误、NAND阵列中的一或多个或存储器装置110的一或多个多层级单元(multi-level cell;MLC)中的任何一或多个中出现的错误。存储器控制器115可被配置成有效地检测并从与各种操作或数据存储相关联的错误出现(例如,位错误、操作错误、崩溃条件、隔栏、挂断等等)恢复,同时维持在主机105与存储器装置110之间传送的数据的完整性、或维持所存储数据的完整性(例如,使用冗余RAID存储等等),并可移除(例如,退除)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等等)以防止未来错误。阵列控制器135可将检测到的BER信息发射到存储器管理器125以进行存储和跟踪。存储器控制器115可包含跟踪从主机接收到的存储器命令的命令队列(未展示)。队列中的命令可以先进先出(first-in first-out;FIFO)方式、堆叠方式、失序地、根据优先权或以任何其它适合的次序由存储器控制器115执行。
所描述的存储器装置110包含与存储器阵列120相关联的签名电路系统160。在一些实施方案中,存储器装置110的存储器控制器115可包含经配置以实施签名电路系统160的功能的控制电路系统。在其它实施方案中,签名电路系统160可包含用于实施所描述功能性的独立的控制电路系统。在又其它实施方案中,控制电路系统可在签名电路系统160与存储器控制器115之间划分以实施签名电路系统160的所描述功能。在所描绘的实例中,阵列控制器135形成存储器控制器115的一部分,并且签名电路系统160形成阵列控制器的一部分。在其它实施方案中,签名电路系统160可以在阵列控制器135的外部和/或外侧。举例来说,签名电路系统160(或其任何个别组件)可为耦合到环境100中的一或多个组件的独立组件。然而,经物理地定位,提供签名电路系统160的额外功能性的结构用于验证由主机105提供的PBA以防止对存储器装置的错误或恶意存取。
存储器管理器125可尤其包含电路系统或固件,如与各种存储器管理功能相关联的数个组件或集成电路。出于当前描述的目的,将在NAND存储器的上下文中描述实例存储器操作及管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测(例如,BER监控)或校正、块引退或一或多个其它存储器管理功能。存储器管理器125可以将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或者产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含管理表130的集合,所述管理表经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115存储器阵列或一或多个存储器单元相关联的各种信息且可包含FTL表)。举例来说,管理表130可包含关于耦合到存储器控制器115的一或多个存储器单元块的FTL映射信息、块使用期(block age)、块擦除计数、错误历史、错误参数信息、主机重置逾时值、存储器操作命令延时或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个(例如,错误参数)检测到的错误的数目高于阈值(例如,可允许的错误阈值),则位错误可称为不可校正的位错误。管理表130尤其可维持可校正或不可校正位错误的计数。
存储器阵列120可包含布置在例如数个装置、平面、子块、块或页中的多个存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节的数据(16,384+2208字节)、每块1536页、每平面548个块和每装置4个或更多个平面。作为另一实例,32GBMLC存储器装置(每单元存储两个数据位(即,4个可编程状态))可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块及每装置4个平面,但与对应TLC存储器装置相比所需的写入时间为一半且编程/擦除(P/E)循环为两倍。其它实例可以包含其它数量或布置。在一些实例中,存储器装置或其部分可在SLC模式中或在所需MLC模式(如TLC、QLC等)中选择性操作。
在操作中,数据通常以页写入到存储器装置110或从存储器装置读取,且以块擦除。然而,可按需要对存储器单元的较大或较小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据传送大小通常称为页,而主机装置的数据传送大小通常称为扇区。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可能需要与其相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同误码率,这可能引起需要不同量的元数据来确保数据页的完整性(例如,相比于具有较低误码率的存储器装置,具有较高误码率的存储器装置可能需要更多字节的错误校正码数据)。作为实例,MLC NAND快闪装置可能具有比对应单层级单元(SLC)NAND快闪装置更高的位错误率。因此,MLC装置可需要比对应SLC装置更多的用于错误数据的元数据字节。
图2大体上说明用于使用主机常驻FTL的方面在快闪存储器系统处实施存储器操作的实例方法200的流程图。在某些实例中,所述方法可辅助验证从主机接收到的PBA对应于由主机提供的LBA。在没有某一形式的验证的情况下,恶意主机可提供LBA和不相关PBA,其可导致存取并不意欲可由主机存取或并不意欲由主机使用在存储器系统处接收到的特定主机存储器请求存取的快闪存储器数据。在201处,存储器系统可在主机常驻FTL操作模式期间接收包含PBA和签名的主机存储器请求。在203处,存储器控制器可产生第二签名。在205处,存储器控制器可将第一签名与第二签名进行比较以提供匹配结果。在207处,如果匹配结果指示第一签名匹配第二签名,则存储器控制器可使用从主机接收的PBA执行存储器请求。在209处,当匹配结果指示第一签名不匹配第二签名时,存储器不使用第一签名执行存储器请求。
在某些实例中,从主机接收的存储器请求可包含LBA。假定LBA与PBA映射。在一些实例中,存储器控制器可包含第二映射表,其包含或指示存储器控制器可与所接收的存储器请求相关联的LBA,且可确定所接收的LBA是否为用于所接收的存储器请求的有效LBA。如果LBA对于存储器请求未被指示为有效的或未被分配,则存储器控制器并不继续进行以进一步处理存储器请求。在某些实例中,存储器控制器可包含指示存储器请求可存取的PBA的表或记录,且可确定所接收的PBA是否为用于所接收的存储器请求的有效PBA。如果PBA未被指示为对于由存储器请求存取为有效的,则存储器控制器不继续进行以进一步处理存储器请求。
在某些实例中,存储器请求中由主机提供的签名可由存储器装置使用用于产生第二签名的相同方法产生。当将映射表信息从存储器装置提供到主机以供在主机常驻FTL操作模式期间使用时,存储器装置可产生且提供每一PBA的签名。当在主机常驻FTL操作模式期间接收到存储器请求时,基于从主机接收到的PBA产生且匹配第二签名可确保PBA尚未无意地或有意地更改。
图3大体上说明用于产生每一签名的方法的实例流程图。在301处,散列电路可接收映射表的记录的PBA和令牌。所述记录可包含相关联LBA,使得所述记录包括主机LBA到存储器装置PBA的映射。令牌可为值或值序列。令牌可为指派到存储器装置或由存储器装置产生的秘密令牌。在303处,散列电路可使用数个散列算法或例程中的一者产生散列。此类算法可包含但不限于无密钥加密散列函数,例如Blake、ECOH、FSB、GOST、HAS-160、HAVAL、JH、消息-摘要(MDn)系列函数中的一者、安全散列算法(SAH-n)系列函数中的一者等。在一些实例中,散列电路可接收密码本(pad)、密码本值或密码本序列。在一些实例中,密码本可提供加密散列函数如何终止的指示。在305处,签名可为散列的子集,且可从散列提取。在某些实例中,LBA可用作指针以从散列提取签名。举例来说,如果散列电路产生256位散列,且签名为32位,则LBA可用于确定可从散列的哪一位位置开始提取32位签名。在某些实例中,散列电路系统可包含将LBA用作可指定将用于从散列提取签名的位位置的参数的指针函数。在一些实例中,LBA可用于识别用以提取可形成签名的位或字节的序列号的起始点。在一些情形中,存储器装置的制造商或存储器装置用户将尝试保持指针函数为秘密以遏制对侵入存储器装置或包含存储器装置的系统的尝试。
图4说明本文中论述的技术(例如,方法)中的任何一或多者可在其上执行的实例机器400的框图。在替代实施例中,机器400可作为独立装置而操作,或可连接(例如,联网)到其它机器。在联网部署中,机器400可在服务器-客户端网络环境中以服务机、客户机的容量操作。在一实例中,机器400可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器400可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车系统,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅示出单个机器,但术语“机器”还应被视为包含单独或联合执行一组(或多组)指令以执行本文论述的方法论中的任何一种或多种的任何机器集合,如云计算、软件即服务(SaaS)、其它计算机集群配置。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或可通过逻辑、组件、装置、封装或机构来操作。电路系统为在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可以随时间推移和基础硬件变化而为灵活的。电路包含当操作时可单独或组合地进行特定任务的部件。在实例中,可以不可改变地设计电路系统的硬件以进行特定操作(例如,硬连线)。在实例中,电路的硬件可以包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,改变硬件组成部分的根本电性质,例如从绝缘体变为导体,或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路系统的其它组件。在一实例中,物理组件中的任一个可用于超过一个电路中的超过一个部件中。例如,在操作下,执行单元可以在一个时间点用于第一电路系统的第一电路,并且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)400(例如,主机105、存储器装置110等)可包含处理装置402(例如,硬件处理器、中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器装置110的存储器控制器等)、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器406(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统418,其中的一些或全部可经由互连链路(interlink)(例如,总线)430彼此通信。
处理装置402可表示一或多个通用处理装置,如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置402也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置402可经配置以执行用于进行本文中所论述的操作和步骤的指令426。计算机系统400可进一步包含网络接口装置408以经由网络420通信。
数据存储系统418可包含机器可读存储媒体424(也称为计算机可读媒体),其上存储有一或多组指令426或体现本文中所描述的方法或功能中的任一或多种的软件。指令426还可在其由计算机系统400执行期间完全或至少部分地驻留在主存储器404内或处理装置402内,主存储器404和处理装置402还构成机器可读存储媒体。机器可读存储媒体424、数据存储系统418或主存储器404可对应于图1的存储器装置110。
在一个实施方案中,指令426包含用以实施对应于如上文关于图2或图3所论述的一或多个主机常驻FTL操作的功能性的指令。虽然机器可读存储媒体424在实例实施方案中展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。在一实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体为非暂时性传播信号。集中式机器可读媒体的具体实例可包含:非易失性存储器,如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,如内部硬盘和可移式盘;磁光盘;以及CD-ROM和DVD-ROM盘。
机器400可进一步包含显示单元、字母数字输入装置(例如,键盘)和用户接口(UI)导航装置(例如,鼠标)。在一实例中,显示单元、输入装置或UI导航装置中的一或多个可以是触摸屏显示器。机器信号发生装置(例如,扬声器),或一或多个传感器,例如全球定位系统(GPS)传感器、指南针、加速度计或一或多个其它传感器。机器400可包含输出控制器,例如串行(例如,通用串行总线(USB)、平行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
指令426(例如,软件、程序、操作系统(OS)等)或存储在数据存储装置418上的其它数据可由主存储器404存取以供处理装置402使用。主存储器404(例如,DRAM)通常快速但易失,并且因此为与适用于长期存储(包含在处于“关断”条件中时)的数据存储装置418(例如,SSD)不同类型的存储装置。供用户或机器400使用的指令426或数据通常加载在主存储器404中,以供处理装置402使用。在主存储器404已满时,可分配来自数据存储装置418的虚拟空间以补充主存储器404;然而,因为数据存储装置418装置通常比主存储器404慢,并且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置延时(相较于主存储器404,例如,DRAM)而可能极大地降低用户体验。另外,用于虚拟存储器的数据存储装置418的使用可能极大地减少数据存储装置418的可用使用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,LinuxTM内核特征“ZRAM”)使用存储器的部分作为压缩块存储装置以避免对数据存储装置418的寻呼。寻呼可直到有必要将此类数据写入到数据存储装置418时才在压缩块中发生。虚拟存储器压缩增大主存储器404的可用大小,同时减小对数据存储装置418的耗损。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡,等)。MMC装置包含与主机(例如,主机装置)的若干并行接口(例如,8位并行接口),且通常可从主机移除且与主机分离的组件。相比之下,eMMCTM装置附接到电路板且视为主机的组件,其读取速度比得上基于串行ATATM(串行高级技术(AT)附接,或SATA)的SSD装置。然而,对移动装置性能的需求继续增加,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行通信接口转换到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(low-voltage differential signaling;LVDS)串行接口与主机通信,从而进一步推进了更高的读取/写入速度。
可进一步利用数个传送协议中的任一者(例如,帧中继、因特网协议(IP)、发射控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置408使用发射媒体在网络420上发射或接收指令424。实例通信网络可以包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络,以及无线数据网络(例如,电气和电子工程师协会(IEEE)802.11系列标准,称为;IEEE 802.16系列标准,称为)、IEEE 802.15.4系列标准、点对点(P2P)网络等。在一实例中,网络接口装置408可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到通信网络420。在一实例中,网络接口装置408可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“发射媒体”应被认为包含能够存储、编码或携载指令以由机器400执行的任何无形媒体,并且包含数字或模拟通信信号或其它无形媒体以促进此类软件的通信。
额外注释及实例
实例1为一种方法,其包括:在存储器装置处从主机装置接收操作命令,其中所述命令包含逻辑块地址(LBA)、物理块地址(PBA)和第一签名;在所述存储器装置处产生第二签名;比较所述第一签名与所述第二签名以提供匹配结果;当所述匹配结果指示所述第一签名与所述第二签名相同时,执行操作;以及当所述匹配结果指示所述第一签名不匹配所述第二签名时,不使用所述PBA执行所述操作。
在实例2中,根据实例1所述的标的物,其包含确定所述逻辑块地址被分配用于与所述操作命令相关联的操作。
在实例3中,根据实例1到2中任一项所述的标的物,其包含确定所述LBA未被分配用于与所述操作命令相关联的操作,且不执行所述操作。
在实例4中,根据实例1到3中任一项所述的标的物,其中所述存储器装置为快闪存储器装置。
在实例5中,根据实例1到4中任一项所述的标的物,其中所述存储器装置为NAND存储器装置。
在实例6中,根据实例1到5中任一项所述的标的物,其包含在所述存储器装置处产生所述第一签名。
在实例7中,根据实例6所述的标的物,其包含将逻辑块地址映射信息从所述存储器装置发送到所述主机装置,其中所述逻辑块地址映射信息包含所述第一签名。
在实例8中,根据实例6到7中任一项所述的标的物,其中产生所述第一签名包含:在散列电路处接收所述PBA及与所述存储器装置相关联的令牌;以及使用所述PBA、所述令牌及所述散列电路产生第一散列。
在实例9中,根据实例8所述的标的物,其中产生所述第一签名包含在所述散列电路处接收密码本值,以及使用所述密码本值产生所述第一散列。
在实例10中,根据实例8到9中任一项所述的标的物,其包含提取所述第一散列的第一子集以提供所述第一签名,其中提取所述第一子集包含在所述第一散列内的位置处开始提取所述第一散列的第一数目个连续字节,所述位置是使用与所述PBA映射的逻辑块地址确定。
在实例11中,根据实例10所述的标的物,其中产生所述第二签名包含:在所述散列电路处接收所述PBA及与所述存储器装置相关联的令牌;以及产生第二散列。
在实例12中,根据实例11所述的标的物,其中产生所述第一签名包含在所述散列电路处接收密码本值,以及使用所述密码本值产生所述第二散列。
在实例13中,根据实例11到12中任一项所述的标的物,其包含提取所述第二散列的第二子集以提供所述第二签名,其中提取所述第二子集包含在所述第二散列内的位置处开始提取所述第二散列的所述第一数目个连续字节,所述位置是使用从所述主机装置接收的所述逻辑块地址确定。
实例14为一种存储器装置,其包括:高速缓存,其经配置以保持所述存储器装置的映射表的一部分;快闪存储器,其经配置以存储和检索主机装置的用户数据,且存储所述存储器装置的所述映射表;以及控制器电路系统,其经配置以:在存储器装置处从主机装置接收命令以执行存储器操作,其中所述命令包含逻辑块地址(LBA)、物理块地址(PBA)和第一签名;在所述控制器的散列电路系统处产生第二签名;比较所述第一签名与所述第二签名以提供匹配结果;当所述匹配结果指示所述第一签名与所述第二签名相同时,使用所述PBA执行所述存储器操作;以及当所述匹配结果指示所述第一签名不匹配所述第二签名时,不使用所述PBA执行所述存储器操作。
在实例15中,根据实例14所述的标的物,其中所述控制器经配置以产生所述第一签名。
在实例16中,根据实例15所述的标的物,其中所述控制器经配置以将逻辑块地址映射信息从所述存储器装置发送到所述主机装置,其中所述逻辑块地址映射信息包含所述第一签名。
在实例17中,根据实例15到16中任一项所述的标的物,其中所述控制器经配置以将所述LBA映射到所述快闪存储器的PBA,以执行所述散列电路系统的散列例程以基于所述PBA和所述存储器装置的令牌产生第一散列。
在实例18中,根据实例17所述的标的物,其中所述控制器经配置以接收密码本序列,且执行所述散列电路系统的所述散列例程以基于所述PBA、所述令牌和所述密码本序列产生所述第一散列。
在实例19中,根据实例17到18中任一项所述的标的物,其中所述控制器经配置以提取所述第一散列的第一子集以提供所述第一签名。
在实例20中,根据实例19所述的标的物,其中所述控制器经配置以产生指向所述散列内开始提取所述第一子集的位置的指针,其中所述指针是从所述LBA导出。
在实例21中,根据实例17到20中任一项所述的标的物,其中所述控制器经配置以:接收从所述主机接收的所述PBA;执行所述散列电路系统的所述散列例程以基于所述PBA和所述存储器装置的所述令牌产生第二散列;以及提取所述第二散列的第二子集以提供所述第二签名。
实例22为至少一种机器可读媒体,其包含指令,所述指令在由处理电路系统执行时致使所述处理电路系统执行操作以实施实例1到21中的任一者。
实例23为一种设备,其包括用于实施实例1到21中的任一者的构件。
实例24为一种实施实例1到21中的任一者的系统。
实例25为一种实施实例1到21中的任一者的方法。
以上详细描述包含对附图的参考,所述附图形成所述详细描述的一部分。图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示或所描述的那些元件的实例。此外,本发明人还预期使用相对于特定实例(或其一个或更多个方面)或相对于本文展示或描述的其它实例(或其一个或更多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一个或更多个方面)。
在本文件中,如专利文件中常见,使用术语“一”以包含一个或多于一个,这与“至少一个”或“一个或更多个”的任何其它例子或用途无关。在本文档中,术语“或”用于指代非排它性或,使得除非另有指示,否则“A或B”可以包含“A而非B”、“B而非A”以及“A和B”。在所附权利要求书中,术语“包含”和“其中(in which)”用作相应术语“包括”和“其中(wherein)”的通俗等效术语。同样,在所附权利要求书中,术语“包含”和“包括”是开放式的。权利要求中除了此类术语之后列出的元件之外还包含元件的系统、装置、物品或过程仍视为属于所述权利要求的范围。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不意欲对其对象施加数字要求。
在各种实例中,本文所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中称为“编程”,且可以包含对存储器单元写入或从存储器单元擦除两者(例如,存储器单元可经编程为擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设定、调整、计算、改变、清除、传送、调适、导出、限定、利用、修改、施加等)一定数量的损耗循环或损耗状态(例如,记录耗损循环、在存储器装置的操作发生时对存储器装置的操作进行计数、跟踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可经配置以关于每一存储器操作将磨损循环信息提供到存储器装置。存储器装置控制电路(例如,控制逻辑)可经编程以补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收磨损周期信息且响应于磨损周期信息而确定一或多个操作参数(例如值、特征)。
本文中描述的方法实例可至少部分地由机器、装置或计算机实施。一些实例可以包含编码有指令的计算机可读媒体、装置可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如以上实例中描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等等。此类代码可包含用于执行各种方法的计算机可读指令。所述代码可形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储在一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可以包含但不限于:硬盘、可移动磁盘、可移动光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置等。
以上描述既定是说明性的而非限制性的。举例来说,上文所描述的实例(或其一或多个方面)可彼此组合使用。如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。所述摘要在遵守以下理解的情况下提交:其将不会用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。此情况不应解释为期望未要求的公开特征对任何权利要求来说是必需的。实际上,发明主题可在于比特定所公开实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且预期此些实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附权利要求书以及所述权利要求书所具备的等效物的完整范围来确定。
Claims (21)
1.一种方法,其包括:
在存储器装置处从主机装置接收操作命令,其中所述命令包含逻辑块地址LBA、物理块地址PBA和第一签名;
在所述存储器装置处产生第二签名;
比较所述第一签名与所述第二签名以提供匹配结果;
当所述匹配结果指示所述第一签名与所述第二签名相同时,执行操作;以及
当所述匹配结果指示所述第一签名不匹配所述第二签名时,不使用所述PBA执行所述操作。
2.根据权利要求1所述的方法,其包含确定所述逻辑块地址被分配用于与所述操作命令相关联的操作。
3.根据权利要求1所述的方法,其包含确定所述LBA未被分配用于与所述操作命令相关联的操作,且不执行所述操作。
4.根据权利要求1所述的方法,其中所述存储器装置是快闪存储器装置。
5.根据权利要求1所述的方法,其中所述存储器装置是NAND存储器装置。
6.根据权利要求1所述的方法,其包含在所述存储器装置处产生所述第一签名。
7.根据权利要求6所述的方法,其包含将逻辑块地址映射信息从所述存储器装置发送到所述主机装置,其中所述逻辑块地址映射信息包含所述第一签名。
8.根据权利要求6所述的方法,其中产生所述第一签名包含:
在散列电路处接收所述PBA及与所述存储器装置相关联的令牌;以及
使用所述PBA、所述令牌及所述散列电路产生第一散列。
9.根据权利要求8所述的方法,其中产生所述第一签名包含在所述散列电路处接收密码本值,以及使用所述密码本值产生所述第一散列。
10.根据权利要求8所述的方法,其包含提取所述第一散列的第一子集以提供所述第一签名,其中提取所述第一子集包含在所述第一散列内的位置处开始提取所述第一散列的第一数目个连续字节,所述位置是使用与所述PBA映射的逻辑块地址确定。
11.根据权利要求10所述的方法,其中产生所述第二签名包含:
在所述散列电路处接收所述PBA及与所述存储器装置相关联的令牌;以及
产生第二散列。
12.根据权利要求11所述的方法,其中产生所述第一签名包含在所述散列电路处接收密码本值,以及使用所述密码本值产生所述第二散列。
13.根据权利要求11所述的方法,其包含提取所述第二散列的第二子集以提供所述第二签名,其中提取所述第二子集包含在所述第二散列内的位置处开始提取所述第二散列的所述第一数目个连续字节,所述位置是使用从所述主机装置接收的所述逻辑块地址确定。
14.一种存储器装置,其包括:
高速缓存,其经配置以保持所述存储器装置的映射表的一部分;
快闪存储器,其经配置以存储和检索主机装置的用户数据,且存储所述存储器装置的所述映射表;以及
控制器电路系统,其经配置以:
在存储器装置处从主机装置接收命令以执行存储器操作,其中所述命令包含逻辑块地址LBA、物理块地址PBA和第一签名;
在所述控制器的散列电路系统处产生第二签名;
比较所述第一签名与所述第二签名以提供匹配结果;
当所述匹配结果指示所述第一签名与所述第二签名相同时,使用所述PBA执行所述存储器操作;以及
当所述匹配结果指示所述第一签名不匹配所述第二签名时,不使用所述PBA执行所述存储器操作。
15.根据权利要求14所述的存储器装置,其中所述控制器经配置以产生所述第一签名。
16.根据权利要求15所述的存储器装置,其中所述控制器经配置以将逻辑块地址映射信息从所述存储器装置发送到所述主机装置,其中所述逻辑块地址映射信息包含所述第一签名。
17.根据权利要求15所述的存储器装置,其中所述控制器经配置以将所述LBA映射到所述快闪存储器的PBA,以执行所述散列电路系统的散列例程以基于所述PBA和所述存储器装置的令牌产生第一散列。
18.根据权利要求17所述的存储器装置,其中所述控制器经配置以接收密码本序列,且执行所述散列电路系统的所述散列例程以基于所述PBA、所述令牌和所述密码本序列产生所述第一散列。
19.根据权利要求17所述的存储器装置,其中所述控制器经配置以提取所述第一散列的第一子集以提供所述第一签名。
20.根据权利要求19所述的存储器装置,其中所述控制器经配置以产生指向所述散列内开始提取所述第一子集的位置的指针,其中所述指针是从所述LBA导出。
21.根据权利要求17所述的存储器装置,其中所述控制器经配置以:
接收从所述主机接收的所述PBA;
执行所述散列电路系统的所述散列例程以基于所述PBA和所述存储器装置的所述令牌产生第二散列;以及
提取所述第二散列的第二子集以提供所述第二签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210367638.3A CN114579476A (zh) | 2018-09-25 | 2019-09-23 | 主机常驻转换层有效性检查技术 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/140,952 | 2018-09-25 | ||
US16/140,952 US10852964B2 (en) | 2018-09-25 | 2018-09-25 | Host-resident translation layer validity check techniques |
PCT/US2019/052435 WO2020068669A1 (en) | 2018-09-25 | 2019-09-23 | Host-resident translation layer validity check techniques |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210367638.3A Division CN114579476A (zh) | 2018-09-25 | 2019-09-23 | 主机常驻转换层有效性检查技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112771491A true CN112771491A (zh) | 2021-05-07 |
CN112771491B CN112771491B (zh) | 2022-04-26 |
Family
ID=69885428
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980062579.5A Active CN112771491B (zh) | 2018-09-25 | 2019-09-23 | 主机常驻转换层有效性检查技术 |
CN202210367638.3A Pending CN114579476A (zh) | 2018-09-25 | 2019-09-23 | 主机常驻转换层有效性检查技术 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210367638.3A Pending CN114579476A (zh) | 2018-09-25 | 2019-09-23 | 主机常驻转换层有效性检查技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10852964B2 (zh) |
KR (2) | KR20220123147A (zh) |
CN (2) | CN112771491B (zh) |
WO (1) | WO2020068669A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11809311B2 (en) | 2018-12-21 | 2023-11-07 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10852964B2 (en) | 2018-09-25 | 2020-12-01 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11036625B1 (en) | 2020-04-24 | 2021-06-15 | Micron Technology, Inc. | Host-resident translation layer write command associated with logical block to physical address of a memory device |
US11379360B2 (en) * | 2020-06-25 | 2022-07-05 | Netapp, Inc. | Methods for managing storage operations for multiple hosts coupled to dual-port solid-state disks and devices thereof |
US12019786B2 (en) | 2020-10-02 | 2024-06-25 | Western Digital Technologies, Inc. | Data storage devices and related methods to secure host memory buffers with low latency |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130269039A1 (en) * | 2012-04-04 | 2013-10-10 | Infinidat Ltd. | Data access control |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
CN107438850A (zh) * | 2015-05-20 | 2017-12-05 | 谷歌公司 | 使用签名的地址验证 |
US20180113631A1 (en) * | 2016-10-26 | 2018-04-26 | ScaleFlux, Inc. | Enhancing flash translation layer to improve performance of databases and filesystems |
CN110175138A (zh) * | 2018-02-20 | 2019-08-27 | 三星电子株式会社 | 支持高速缓存的物理地址验证的存储装置及操作其的方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09252323A (ja) * | 1996-01-11 | 1997-09-22 | Sony Corp | 通信システムおよび通信装置 |
US6345347B1 (en) * | 1999-09-27 | 2002-02-05 | International Business Machines Corporation | Address protection using a hardware-defined application key |
US7134138B2 (en) * | 2001-02-15 | 2006-11-07 | Emc Corporation | Methods and apparatus for providing security for a data storage system |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US20060294299A1 (en) | 2005-06-28 | 2006-12-28 | Intel Corporation | Techniques to verify storage of information |
JP4932390B2 (ja) * | 2006-08-31 | 2012-05-16 | 株式会社日立製作所 | 仮想化システム及び領域割当て制御方法 |
US7681008B2 (en) * | 2006-09-29 | 2010-03-16 | Sandisk Corporation | Systems for managing file allocation table information |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US8489886B2 (en) * | 2007-10-03 | 2013-07-16 | International Business Machines Corporation | Double authentication for controlling disruptive operations on storage resources |
US8375151B1 (en) * | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
JP2010146326A (ja) * | 2008-12-19 | 2010-07-01 | Toshiba Storage Device Corp | 記憶装置、その制御方法及びその記憶装置を用いた電子装置 |
WO2013095381A1 (en) * | 2011-12-20 | 2013-06-27 | Intel Corporation | Method and system for data de-duplication |
US10360176B2 (en) * | 2012-01-17 | 2019-07-23 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
EP2831715A1 (en) * | 2012-04-26 | 2015-02-04 | Hitachi, Ltd. | Information storage system and method of controlling information storage system |
US9146920B2 (en) * | 2012-09-10 | 2015-09-29 | Netronome Systems, Inc. | Transactional memory that performs an atomic look-up, add and lock operation |
US9407642B2 (en) * | 2013-03-13 | 2016-08-02 | Samsung Electronics Co., Ltd. | Application access control method and electronic apparatus implementing the same |
US9606729B2 (en) * | 2013-03-15 | 2017-03-28 | Skyera, Llc | Apparatus and method for insertion and deletion in multi-dimensional to linear address space translation |
US9898404B2 (en) * | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
US9336412B2 (en) * | 2013-12-12 | 2016-05-10 | Hitachi, Ltd. | Storage system and method for controlling storage system |
KR102140792B1 (ko) * | 2013-12-24 | 2020-08-03 | 삼성전자주식회사 | 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들 |
US9411539B2 (en) * | 2014-09-24 | 2016-08-09 | International Business Machines Corporation | Providing access information to a storage controller to determine a storage tier for storing data |
US9489317B2 (en) * | 2014-09-26 | 2016-11-08 | Apple Inc. | Method for fast access to a shared memory |
US9645757B2 (en) * | 2015-03-23 | 2017-05-09 | International Business Machines Corporation | Computer memory data security |
US10229051B2 (en) | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
US10380069B2 (en) | 2016-05-04 | 2019-08-13 | Western Digital Technologies, Inc. | Generalized write operations verification method |
US9967096B2 (en) * | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
US10489289B1 (en) * | 2016-09-30 | 2019-11-26 | Amazon Technologies, Inc. | Physical media aware spacially coupled journaling and trim |
US10235069B2 (en) * | 2016-12-22 | 2019-03-19 | Western Digital Technologies, Inc. | Load balancing by dynamically transferring memory range assignments |
US10852964B2 (en) | 2018-09-25 | 2020-12-01 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
-
2018
- 2018-09-25 US US16/140,952 patent/US10852964B2/en active Active
-
2019
- 2019-09-23 WO PCT/US2019/052435 patent/WO2020068669A1/en active Application Filing
- 2019-09-23 KR KR1020227029363A patent/KR20220123147A/ko not_active Application Discontinuation
- 2019-09-23 CN CN201980062579.5A patent/CN112771491B/zh active Active
- 2019-09-23 CN CN202210367638.3A patent/CN114579476A/zh active Pending
- 2019-09-23 KR KR1020217008127A patent/KR102437704B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130269039A1 (en) * | 2012-04-04 | 2013-10-10 | Infinidat Ltd. | Data access control |
CN107438850A (zh) * | 2015-05-20 | 2017-12-05 | 谷歌公司 | 使用签名的地址验证 |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
US20180113631A1 (en) * | 2016-10-26 | 2018-04-26 | ScaleFlux, Inc. | Enhancing flash translation layer to improve performance of databases and filesystems |
CN110175138A (zh) * | 2018-02-20 | 2019-08-27 | 三星电子株式会社 | 支持高速缓存的物理地址验证的存储装置及操作其的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11734170B2 (en) | 2018-08-03 | 2023-08-22 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11687469B2 (en) | 2018-12-19 | 2023-06-27 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11809311B2 (en) | 2018-12-21 | 2023-11-07 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
Also Published As
Publication number | Publication date |
---|---|
CN114579476A (zh) | 2022-06-03 |
WO2020068669A1 (en) | 2020-04-02 |
KR102437704B1 (ko) | 2022-08-29 |
US10852964B2 (en) | 2020-12-01 |
KR20210035908A (ko) | 2021-04-01 |
KR20220123147A (ko) | 2022-09-05 |
US20200097194A1 (en) | 2020-03-26 |
CN112771491B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112771491B (zh) | 主机常驻转换层有效性检查技术 | |
US11809311B2 (en) | Host-based flash memory maintenance techniques | |
US11687469B2 (en) | Host-resident translation layer validity check techniques | |
CN113015975B (zh) | 安全逻辑到物理高速缓存 | |
US11734170B2 (en) | Host-resident translation layer validity check | |
CN112673357B (zh) | 主机驻留式转换层有效性检查 | |
CN113841128B (zh) | 大型数据读取方法、装置及可读介质 | |
US11721388B2 (en) | Large file integrity techniques | |
CN114761931A (zh) | 有限ram系统中的逻辑到物理转译技术 | |
US11157404B2 (en) | Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage | |
CN111352864B (zh) | 快闪存储器持久性高速缓存技术 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |