CN115705159A - 存储器子***中双字的智能交换和有效编码 - Google Patents

存储器子***中双字的智能交换和有效编码 Download PDF

Info

Publication number
CN115705159A
CN115705159A CN202210942879.6A CN202210942879A CN115705159A CN 115705159 A CN115705159 A CN 115705159A CN 202210942879 A CN202210942879 A CN 202210942879A CN 115705159 A CN115705159 A CN 115705159A
Authority
CN
China
Prior art keywords
bits
field
value
page
determining
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
Application number
CN202210942879.6A
Other languages
English (en)
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115705159A publication Critical patent/CN115705159A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

存储器***中的处理装置识别与存储器装置的转译单元相关联的第一组位,其中所述第一组位对应于页字段。所述处理装置识别与所述存储器装置的所述转译单元相关联的第二组位,其中所述第二组位对应于块字段。所述处理装置确定存储在所述页字段中的表示页码的值满足阈值标准。响应于确定表示所述页码的所述值满足所述阈值标准,所述处理装置确定表示所述页码的所述值和与所述阈值标准相关联的阈值之间的差。所述处理装置将表示所述差的值存储为所述第二组位中的多个位。所述处理装置将存储在所述块字段中的表示块编号的值存储为所述第一组位中的多个位。

Description

存储器子***中双字的智能交换和有效编码
技术领域
本公开的实施例总体上涉及存储器子***,且更确切地说,涉及存储器子***中双字的智能交换和有效编码。
背景技术
存储器子***可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机***可以利用存储器子***以在存储器装置处存储数据且从存储器装置检索数据。
附图说明
将从下面给出的详细描述和本公开的各种实施例的附图更充分地理解本公开。然而,附图不应被视为将本公开限制为具体实施例,而是仅用于解释和理解。
图1示出根据本公开的一些实施例包含存储器子***的实例计算***。
图2示出根据本公开的一些实施例的初始双字及在智能交换和有效编码之后的所得双字的实例框图。
图3是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法的流程图。
图4是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法的流程图。
图5是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法的流程图。
图6是其中可操作本公开的实施例的实例计算机***的框图。
具体实施方式
本公开的各方面涉及存储器子***中双字的智能交换和有效编码。存储器子***可以是存储装置、存储器模块或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机***可利用包含一或多个组件的存储器子***,例如存储数据的存储器装置。主机***可提供要存储在存储器子***处的数据,并且可请求要从存储器子***检索的数据。
存储器子***可包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可以由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块的集合组成。每一块由页的集合组成。每一页由存储器单元(“单元”)的集合组成。单元是存储信息的电子电路。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。
裸片在下文还称为由逻辑单元编号(LUN)识别的逻辑单元。在一些常规存储器子***中,LUN可具有64GB的大小。存储在每一LUN内的数据可表示为一或多个数据分块。在一些实例中,每一数据分块可以是一或多个逻辑页。逻辑页是物理页的抽象化。数据分块中的数据大小可以是512个字节、4096个字节(4KB)等,这取决于存储器装置配置。每一数据分块还可称为转译单元(TU)。对于一些类型的存储器装置(例如,NAND),TU是受存储器装置管理的基本数据粒度。TU可包含预定义数目的逻辑单元(例如,逻辑页、逻辑块等)。在一些实例中,TU预定义为包含一个逻辑块,因此TU的大小等于逻辑块的大小。在一些实例中,TU预定义为包含多个逻辑块。在这种情况下,TU的大小是逻辑块的大小的倍数。在一个实例中,TU可预定义为包含一个512字节的逻辑块,因此TU的大小是512个字节。在另一实例中,TU可预定义为包含一个4KB逻辑块(其可包含多个逻辑页),因此TU的大小是4KB。在又另一实例中,TU可预定义为包含八个512字节逻辑块,总计为(8*512)个字节的大小,或4096个字节(4KB)。
当存储器子***的主机***请求存取数据(例如,读取数据、写入数据)时,主机***可向存储器装置发送针对LUN内的TU位置的数据存取请求。例如,主机***可提供识别数据所要存储或要从中读取的位置的逻辑地址(例如,逻辑块地址(LBA)、具有偏移的LBA,等等)。因为来自主机***的数据最终将存储在存储器装置内的物理地址处,所以存储器子***维持逻辑到物理(L2P)转译映射或表以识别对应于每一逻辑地址的数据驻留的物理位置。L2P映射可包含数个L2P条目。L2P映射中的每一条目可识别对应于特定TU的物理位置。L2P映射通过维持其物理地址来跟踪已经写入到存储器子***的每个TU段。例如,L2P条目可包含TU的索引(例如,TU 0、TU 1等)、对应物理地址、一些元数据,如指示一地址处的数据是有效还是无效的标志,等等。L2P条目还可称为双字。每一双字可包含32位。
在常规存储器子***中,每一双字中的32位可表示不同字段,例如LUN编号、块编号、页码、平面编号和TU偏移。传统上,存储器装置需要相同量的位来表示某些字段,包含TU偏移和平面编号,但是用不同数量的位表示页计数和块计数等其它字段。例如页计数和块计数的字段所需的位的数目可取决于存储器装置的驱动密度和参数。例如,在页计数是5184KB且块计数是236KB的存储器装置中,页码字段将需要在双字中表示为(213)或13位,块编号字段将需要在双字中表示为(28)或8位,总共21位。在另一存储器装置中,页计数可以是2112KB,且块计数可以是556KB。在此情况下,页码字段将需要在双字中表示为(212)位,且块编号字段将需要在双字中表示为(210)位,总共22位。因此,依据存储器装置的参数,双字中可能需要额外位或更多来表示字段。
因为每一双字具有32位的大小,所以牺牲每个位的成本很高。例如,一些常规存储器子***可将双字的一个位(例如,位31)用作校验位。校验位用于检测数据中的错误,因此对于数据完整性来说很重要。为了维持其中如在上文所描述的实例中页码字段和块编号字段需要22位的存储器装置的双字,常规存储器子***可能会占用校验位所需的位。但是,这将停用校验位提供的保护,这可能导致数据中无法检测的错误和不良的存储器子***性能。在其它实例中,常规存储器子***可以从另一个字段(例如,LUN字段)中获取一额外位。但是,即使只删除一个用于表示LUN字段的位,也会导致驱动密度降低。驱动密度是存储器装置可以保存的数据量。例如,如果LUN字段从6位减小到5位且LUN的大小是64GB,那么驱动密度将减小一半(即,64GB*26=4TB相较于64GB*25=2TB)。这可能会导致存储器装置性能降低。为了避免上文所论述的问题,一些常规存储器子***可能会使用更大的双字(具有大于32位的大小)。但是,双字大小增大可能需要额外的DRAM空间用于额外位,这很昂贵。
本公开的各方面因为具有在双字中使用页码字段和块编号字段的智能交换和有效编码的存储器子***而解决了以上和其它缺陷。为了支持具有需要更多位以表示页计数和/或块计数的存储器装置的存储器子***,不从其它字段(如校验位字段或LUN字段)获取额外的位。相反,存储器子***识别与TU相关联的一组页字段位,并且识别与TU相关联的一组块字段位。例如,所述一组页字段位可以是12位,所述一组块字段位可以是10位。存储器子***将11位而不是12位分配给所述一组页字段位。存储器子***确定存储在页字段位中的表示页码的值满足某个阈值(例如,2047KB)。如果表示页码的值满足所述阈值,那么存储器子***计算表示页码的值与阈值之间的差。存储器子***将表示所计算的差的值存储为一组块字段位。存储器子***还在所述一组页字段位中存储表示块编号的存储在块字段位中的值。因此,存储器子***交换页字段和块字段,这节省了一个额外位。存储器子***可进一步指示页字段和块字段已经使用一组条件交换,这可包含存储固定值作为块字段位的前两位。如果确定固定值被存储为块字段位的前两位,那么存储器子***将知晓所述一组条件已经满足,因此页字段和块字段已经交换,并且可以在必要时进行解码。
本公开的优点包含但不限于在双字中节省至少一个位。这一个位可用于表示校验位,其可用于在有任何错误的情况下验证数据,如上文所描述。这个节省下来的位还可用于表示LUN字段。LUN字段中的额外位可支持更大的驱动密度,如上文所描述。因此,节省至少一个位可在改变最小的情况下使得存储器装置的性能提高,并使其效率增加。
图1示出根据本公开的一些实施例包含存储器子***110的实例计算***100。存储器子***110可包含例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类装置的组合等媒体。
存储器子***110可以是存储装置、存储器模块,或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算***100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算***100可包含耦合到一或多个存储器子***110的主机***120。在一些实施例中,主机***120耦合到不同类型的多个存储器子***110。图1示出耦合到一个存储器子***110的主机***120的一个实例。如本文中所使用,“耦合到……”或“与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有中间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机***120可包含处理器芯片组以及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机***120使用存储器子***110例如将数据写入到存储器子***110和从存储器子***110读取数据。
主机***120可经由物理主机接口耦合到存储器***110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机***接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机***120与存储器子***110之间发射数据。当存储器子***110通过物理主机接口(例如,PCIe总线)与主机***120耦合时,主机***120可进一步利用NVM高速(NVM Express,NVMe)接口来访问组件(例如,存储器装置130)。物理主机接口可提供接口以用于在存储器子***110与主机***120之间传递控制、地址、数据以及其它信号。图1示出存储器子***110作为实例。一般来说,主机***120可经由相同通信连接、多个单独的通信连接和/或通信连接的组合来访问多个存储器子***。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用以存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。
存储器子***控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,和其它此类操作。存储器子***控制器115可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合等硬件。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路***。存储器子***控制器115可以是微控制器、专用逻辑电路***(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子***控制器115可包含处理装置,其包含配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示出的实例中,存储器子***控制器115的本地存储器119包含嵌入式存储器,其配置成存储指令用于执行控制存储器子***110的操作的各种过程、操作、逻辑流和例程,包含处理存储器子***110与主机***120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子***110已示出为包含存储器子***控制器115,但在本公开的另一实施例中,存储器子***110不包含存储器子***控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子***分开的处理器或控制器提供)。
通常,存储器子***控制器115可从主机***120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所要存取。存储器子***控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)名称空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子***控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120通信。主机接口电路***可将从主机***接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机***120的信息。
存储器子***110还可包含未示出的额外电路***或组件。在一些实施例中,存储器子***110可包含高速缓存或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器),所述地址电路***可从存储器子***控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子***控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,执行存储器装置130上的媒体管理操作)。在一些实施例中,存储器子***110是受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子***控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子***110包含可执行存储器装置的双字的智能交换和高效编码的字段交换组件113。在一些实施例中,存储器子***控制器115包含字段交换组件113的至少一部分。在一些实施例中,字段交换组件113是主机***110、应用或操作***的部分。在其它实施例中,本地媒体控制器135包含字段交换组件113的至少一部分且配置成执行本文中所描述的功能。
字段交换组件113可识别与存储器装置的TU相关联的一组页字段位。字段交换组件113可进一步识别与TU相关联的一组块字段位。字段交换组件113可基于存储器装置的参数(例如,页计数和块计数)确定所述一组页字段位的大小和所述一组块字段位的大小。字段交换组件113可将特定数目的位分配到所述一组页字段位。例如,字段交换可确定所述一组页字段位的大小是12位,所述一组块字段位的大小是10位。字段交换组件113可将少一个位分配到所述一组页字段位,即,11位而不是12位。字段交换组件113可确定存储在页字段位中的表示页码的值满足某一阈值(例如,2047KB)。如果表示页码的值满足所述阈值,那么字段交换组件113可计算表示页码的值和阈值之间的差。字段交换组件113可将表示所计算的差的值存储为一组块字段位。字段交换组件113可在所述一组页字段位中存储表示存在块字段位中的块编号的值。字段交换组件113可进一步指示页字段和块字段已经使用一组条件交换,这可包含将固定值存储为块字段位的前两位。如果字段交换组件113确定固定值被存储为块字段位的前两位,那么字段交换组件113将知晓所述一组条件已经满足,因此页字段和块字段已经交换。关于字段交换组件113的操作的其它细节在下文描述。
图2示出根据本公开的一些实施例的初始双字及在智能交换和有效编码之后的所得双字的实例框图。如上文所描述,为了使存储器子***识别数据在存储器装置上存储的位置的物理地址,存储器子***维持L2P表以识别数据的物理页地址。表可包含数个双字,每一双字包含用于识别物理页地址的不同字段。在一些实施例中,每一双字可具有32位的大小。例如,存储器子***可具有双字260,如图2中所示,其包含从位0编号到位31的32个位。在一些实施例中,双字260可包含5个不同字段(字段201、字段202、字段203、字段204、字段205),它们各自需要用特定数目的位来表示。例如,字段201可表示TU偏移;字段202可表示平面编号;字段203可表示LUN编号;字段204可表示页码;且字段205可表示块编号。在图2中,字段204(即,页字段)需要用12个位表示,字段205(即,块字段)需要用10个位表示。如上文所描述,在例如页字段和块字段的某些字段总共需要22个位表示的存储器装置中,可能会由于需要从例如LUN字段或校验位字段的其它字段窃取位而存在性能问题。在这些情况下,本公开的方面,例如图1中描述的字段交换组件113,可执行双字260内某些字段的智能交换和高效编码,从而免除对从另一字段窃取位的需要。例如,字段交换组件113可识别字段204(即,页字段)和字段205(即,块字段)。字段交换组件113可确定存储在字段204中的表示页码的值满足某一阈值标准。响应于确定表示页码的值满足阈值标准,字段交换组件113可确定表示页码的值和阈值标准值之间的差。字段交换组件113可在字段205中存储表示所述差的值。例如,图2示出步骤210,其中表示所述差的值从字段204移动到字段205。字段交换组件113还可在字段204中存储表示块编号的存储在字段205中的值。例如,图2示出步骤230,其中表示块编号的值从字段205移动到字段204。字段交换组件113还可设置专门条件来指示字段204和字段205之间的交换已发生。例如,图2示出步骤220,其中字段205的前两位设置为指示所述专门条件已经满足的固定值(“XX”)。
图2进一步示出双字270,即在字段交换组件113执行字段204和字段205的智能交换和高效编码之后的所得双字。双字270包含与双字260对应的字段(即,字段206对应于字段201,字段207对应于字段202,字段208对应于字段203,字段209对应于字段204,字段210对应于字段205)。但是,双字270示出了在智能交换和高效编码之后,字段209可由11位而不是12位表示,同时表示其它字段所需要的位没有任何改变。如上文所描述,节省一个位的能力减小了成本,并且提高了存储器装置的性能。关于字段交换组件113的其它细节在下文描述。
图3是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的字段交换组件113执行。虽然以特定序列或次序示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示实施例仅为实例,且所示过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有的过程。其它过程流是可能的。
在操作302处,处理逻辑识别存储器装置的第一组位。在一些实施例中,第一组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第一组位可对应于页字段。在另一实施例中,第一组位可对应于另一字段,例如块字段。在一些实施例中,处理逻辑根据位计数分配第一组位。例如,处理逻辑可确定第一组位的位计数。响应于确定第一组位的位计数,处理逻辑可将不同数目的位分配到第一组位,例如分配少一个位。例如,在一些实施例中,处理逻辑可确定第一组位的位计数是12位。那么,处理逻辑可向第一组位分配11位而不是12位。
在操作304处,处理逻辑识别存储器装置的第二组位。在一些实施例中,第二组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第二组位可对应于块字段。在另一实施例中,所述一组位可对应于另一字段,例如页字段。
在操作306处,处理逻辑确定表示页码的值满足阈值标准。在一些实施例中,页码可例如在页字段中存储为第一组位。在一些实施例中,存储为第一组位的页码存储在对应于转译单元的L2P表中的条目的一部分中。在一些实施例中,确定表示页码的值满足阈值标准包含比较表示页码的值和与阈值标准相关联的阈值,并确定表示页码的值大于阈值。在一些实施例中,阈值是固定值(例如,2047)。阈值可根据存储器装置的参数来设置,或者它可由存储器子***的主机***设置。在一些实施例中,阈值是可修改值。在一些实施例中,处理逻辑确定表示页码的值不满足阈值标准。响应于确定表示页码的值不满足阈值标准,处理逻辑可将表示页码的值存储为第一组位中的一组位。在一些实施例中,将表示页码的值存储为第一组位中的所述一组位包含用页码的值更新对应于转译单元的L2P表中的条目的一部分。响应于确定表示页码的值不满足阈值标准,处理逻辑可将表示块编号的值存储为第二组位中的一组位。在一些实施例中,将表示块编号的值存储为第二组位中的所述一组位包含用块编号的值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,确定表示页码的值不满足阈值标准包含比较表示页码的值和与阈值标准相关联的阈值,并确定表示页码的值等于、等同或小于阈值。
在操作308处,响应于确定表示页码的值满足阈值标准,处理逻辑确定表示页码的值和与阈值标准相关联的阈值之间的差。在一些实施例中,确定差包含从表示页码的值中减去阈值。
在操作310处,响应于确定表示页码的值满足阈值标准,处理逻辑将表示所述差的值存储为第二组位中的一组位。在一些实施例中,将表示所述差的值存储为第二组位中的所述一组位包含用表示所述差的值更新对应于转译单元的L2P表中的条目的一部分。
在操作312处,响应于确定表示页码的值满足阈值标准,处理逻辑将表示块编号的值存储为第一组位中的一组位。在一些实施例中,块编号可例如在块字段中存储为第二组位。在一些实施例中,将表示块编号的值存储为第一组位中的所述一组位包含用块编号的值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,处理逻辑将固定值存储为第二组位中的两个位。在一些实施例中,将表示固定值的值存储为第二组位中的两个位包含用固定值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,处理逻辑将固定值存储为第二组位中的最后两个连续位。在一些实施例中,固定值是整数值,例如1。在一些实施例中,将固定值存储为第二组位中的两个位向处理逻辑指示专门条件已经满足。在一些实施例中,所述专门条件包含页字段和块字段之间已发生交换。
图4是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的字段交换组件113执行。虽然以特定序列或次序示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示实施例仅为实例,且所示过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有的过程。其它过程流是可能的。
在操作402处,处理逻辑识别存储器装置的第一组位。在一些实施例中,第一组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第一组位可对应于页字段。在另一实施例中,第一组位可对应于另一字段,例如块字段。
在操作404处,处理逻辑识别存储器装置的第二组位。在一些实施例中,第二组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第二组位可对应于块字段。在另一实施例中,所述一组位可对应于另一字段,例如页字段。
在操作406处,处理逻辑根据位计数分配第一组位。例如,处理逻辑可确定第一组位的位计数。响应于确定第一组位的位计数,处理逻辑可将不同数目的位分配到第一组位,例如分配少一个位。例如,在一些实施例中,处理逻辑可确定第一组位的位计数是12位。那么,处理逻辑可向第一组位分配11位而不是12位。
在操作408处,处理逻辑确定表示页码的值满足阈值标准。在一些实施例中,页码可例如在页字段中存储为第一组位。在一些实施例中,存储为第一组位的页码存储在对应于转译单元的L2P表中的条目的一部分中。在一些实施例中,确定表示页码的值满足阈值标准包含比较表示页码的值和与阈值标准相关联的阈值,并确定表示页码的值大于阈值。在一些实施例中,阈值是固定值(例如,2047)。阈值可根据存储器装置的参数来设置,或者它可由存储器子***的主机***设置。在一些实施例中,阈值是可修改值。
在操作410处,响应于确定表示页码的值满足阈值标准,处理逻辑确定表示页码的值和与阈值标准相关联的阈值之间的差。在一些实施例中,确定差包含从表示页码的值中减去阈值。
在操作412处,响应于确定表示页码的值满足阈值标准,处理逻辑将表示所述差的值存储为第二组位中的一组位。在一些实施例中,将表示所述差的值存储为第二组位中的所述一组位包含用表示所述差的值更新对应于转译单元的L2P表中的条目的一部分。
在操作414处,响应于确定表示页码的值满足阈值标准,处理逻辑将表示所述差的值存储为第二组位中的一组位。在一些实施例中,将表示所述差的值存储为第二组位中的所述一组位包含用表示所述差的值更新对应于转译单元的L2P表中的条目的一部分。
在操作416处,处理逻辑将固定值存储为第二组位中的两个位。在一些实施例中,将表示固定值的值存储为第二组位中的两个位包含用固定值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,处理逻辑将固定值存储为第二组位中的最后两个连续位。在一些实施例中,固定值是整数值,例如1。在一些实施例中,将固定值存储为第二组位中的两个位向处理逻辑指示专门条件已经满足。在一些实施例中,所述专门条件包含页字段和块字段之间已发生交换。
在操作418处,响应于确定表示页码的值不满足阈值标准,处理逻辑可将表示页码的值存储为第一组位中的一组位。在一些实施例中,将表示页码的值存储为第一组位中的所述一组位包含用页码的值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,确定表示页码的值不满足阈值标准包含比较表示页码的值和与阈值标准相关联的阈值,并确定表示页码的值等于、等同或小于阈值。
在操作420处,响应于确定表示页码的值不满足阈值标准,处理逻辑可将表示块编号的值存储为第二组位中的一组位。在一些实施例中,将表示块编号的值存储为第二组位中的所述一组位包含用块编号的值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,确定表示页码的值不满足阈值标准包含比较表示页码的值和与阈值标准相关联的阈值,并确定表示页码的值等于、等同或小于阈值。
图5是根据本公开的一些实施例的存储器子***中双字的智能交换和有效编码的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的字段交换组件113执行。虽然以特定序列或次序示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示实施例仅为实例,且所示过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有的过程。其它过程流是可能的。
在操作502处,处理逻辑识别存储器装置的第一组位。在一些实施例中,第一组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第一组位可对应于页字段。在另一实施例中,第一组位可对应于另一字段,例如块字段。在一些实施例中,处理逻辑根据位计数分配第一组位。例如,处理逻辑可确定第一组位的位计数。响应于确定第一组位的位计数,处理逻辑可将不同数目的位分配到第一组位,例如分配少一个位。例如,在一些实施例中,处理逻辑可确定第一组位的位计数是12位。那么,处理逻辑可向第一组位分配11位而不是12位。
在操作504处,处理逻辑识别存储器装置的第二组位。在一些实施例中,第二组位对应于存储器装置的转译单元。存储器装置的转译单元可包含一组字段,例如页字段、块字段、平面编号字段和偏移字段。所述一组字段可用于识别转译单元的物理页地址。所述一组字段可在例如L2P表的数据结构中存储为条目(即,双字)的部分。在一些实施例中,每一双字可包含32位。在一些实施例中,每个字段可需要设定数目的位来表示。例如,页字段可需要12位,块字段可需要10位,平面编号字段可需要2位,偏移字段可需要2位。在一些实施例中,每个字段需要的位的数目取决于存储器装置设置的参数,例如存储器装置的总页计数和总块计数。第二组位可对应于块字段。在另一实施例中,所述一组位可对应于另一字段,例如页字段。
在操作506处,处理逻辑确定固定值存储为第二组位中的第一位和第二位。在一些实施例中,确定固定值存储为第二组位中的第一位和第二位可包含识别在对应于转译单元分L2P表中的条目的一部分中存储为第二组位中的第一位的第一值。处理逻辑可识别在对应于转译单元的L2P表中的条目的一部分中存储为第二组位中的第二位的第二值。处理逻辑可比较第一值与第二值。处理逻辑可确定第一值和第二值等于固定值。在一些实施例中,固定值是整数值,例如1。在一些实施例中,处理逻辑确定固定值存储为第二组位中的最后两个连续位。在一些实施例中,确定固定值存储为第二组位中的第一位和第二位包含确定专门条件已经满足。在一些实施例中,所述专门条件包含页字段和块字段之间已发生交换。在一些实施例中,如果处理逻辑确定固定值未存储为第二组位中的第一位和第二位,那么处理逻辑基于存储在页字段中的值确定页码。在一些实施例中,基于存储在页字段中的值确定页码包含将表示页码的值设置为等于存储在页字段中的值。在一些实施例中,将表示页码的值设置为等于存储在页字段中的值包含用表示页码的值更新对应于转译单元的L2P表中的条目的一部分。在一些实施例中,如果处理逻辑确定固定值未存储为第二组位中的第一位和第二位,那么处理逻辑基于存储在块字段中的值确定块编号。在一些实施例中,基于存储在块字段中的值确定块编号包含将表示块编号的值设置为等于存储在块字段中的值。在一些实施例中,将表示块编号的值设置为等于存储在块字段中的值包含用表示块编号的值更新对应于转译单元的L2P表中的条目的一部分。
在操作508处,处理逻辑计算所计算的值。在一些实施例中,计算所计算的值包含将存储在块字段中的值和与阈值标准相关联的阈值相加。在一些实施例中,处理逻辑可使用对应于转译单元的L2P表中的条目的一部分识别存储在块字段中的值。在一些实施例中,阈值是固定值(例如,2047)。阈值可根据存储器装置的参数设置,或者它可由存储器子***的主机***设置。在一些实施例中,阈值是可修改值。
在操作510处,处理逻辑基于所计算的值确定页码。在一些实施例中,基于所计算的值确定页码包含将表示页码的值设置为等于所计算的值。在一些实施例中,将表示页码的值设置为等于所计算的值包含用表示页码的值更新对应于转译单元的L2P表中的条目的一部分。
在操作512处,处理逻辑基于存储在页字段中的值确定块编号。在一些实施例中,基于存储在页字段中的值确定块编号包含将表示块编号的值设置为等于存储在页字段中的值。在一些实施例中,将表示块编号的值设置为等于存储在页字段中的值包含用表示块编号的值更新对应于转译单元的L2P表中的条目的一部分。
图6示出计算机***600的实例机器,所述实例机器内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机***600可对应于主机***(例如,图1的主机***120),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***110)或可用于执行控制器的操作(例如,执行操作***以执行对应于图1的字段交换组件113的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础架构或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管示出为单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器个别地或联合地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
实例计算机***600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或RDRAM等动态随机存取存储器(DRAM))、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储***618,它们经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机***600可进一步包含网络接口装置608以在网络620上通信。
数据存储装置618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有体现本文中所描述的任何一或多种方法或功能的一或多组指令626或软件。指令626还可在其由计算机***600执行期间完全或至少部分地驻留在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储***618和/或主存储器604可对应于图1的存储器子***110。
在一个实施例中,指令626包含用于实施对应于字段交换组件(例如,图1的字段交换组件113)的功能性的指令。尽管机器可读存储媒体624在实例实施例中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”应相应地被理解为包含(但不限于)固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是引起所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。主要出于常见使用的原因,有时将此些信号称为位、值、要素、符号、字符、项、数字等已证实是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便的标签。本公开可参考将表示为计算机***的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机***存储器或寄存器或其它此类信息存储***内的物理量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的盘(包含软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机***总线。
本文中呈现的算法和显示并不与任何特定计算机或其它设备在本质上相关。各种通用***可根据本文中的教示与程序一起使用,或可证明构造更专用的设备来执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可以用于编程计算机***(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在以上说明书中,本公开的实施例已经参考其特定的实例实施例进行描述。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开做出各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种***,其包括:
存储器装置;以及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
识别与所述存储器装置的转译单元相关联的第一组位,其中所述第一组位对应于页字段;
识别与所述存储器装置的所述转译单元相关联的第二组位,其中所述第二组位对应于块字段;
确定存储在所述页字段中的表示页码的值满足阈值标准;以及
响应于确定表示所述页码的所述值满足所述阈值标准:
确定表示所述页码的所述值和与所述阈值标准相关联的阈值之间的差;
将表示所述差的值存储为所述第二组位中的多个位;以及
将存储在所述块字段中的表示块编号的值存储为所述第一组位中的多个位。
2.根据权利要求1所述的***,其进一步包括:
将固定值存储为所述第二组位中的第一位和所述第二组位中的第二位。
3.根据权利要求1所述的***,其中所述转译单元包括多个字段,其中所述多个字段包含所述页字段、所述块字段、平面编号字段和偏移字段。
4.根据权利要求1所述的***,其中所述处理装置用于执行进一步包括以下的操作:
根据位计数分配所述第一组位。
5.根据权利要求1所述的***,其中所述处理装置用于执行进一步包括以下的操作:
确定表示所述页码的所述值不满足所述阈值标准;以及
响应于确定表示所述页码的所述值不满足所述阈值标准,将表示所述页码的所述值存储为所述第一组位中的所述多个位。
6.根据权利要求1所述的***,其中所述处理装置用于执行进一步包括以下的操作:
确定表示所述页码的所述值不满足所述阈值标准;以及
响应于确定表示所述页码的所述值不满足所述阈值标准,将表示所述块编号的所述值存储为所述第二组位中的多个位。
7.根据权利要求1所述的***,其中确定存储在所述页字段中的表示所述页码的所述值满足所述阈值标准包括:
比较表示所述页码的所述值和与所述阈值标准相关联的所述阈值;以及
确定表示所述页码的所述值大于所述阈值。
8.一种方法,其包括:
识别与存储器装置的转译单元相关联的第一组位,其中所述第一组位对应于页字段;
识别与所述存储器装置的所述转译单元相关联的第二组位,其中所述第二组位对应于块字段;
确定存储在所述页字段中的表示页码的值满足阈值标准;以及
响应于确定表示所述页码的所述值满足所述阈值标准:
确定表示所述页码的所述值和与所述阈值标准相关联的阈值之间的差;
将表示所述差的值存储为所述第二组位中的多个位;以及
将存储在所述块字段中的表示块编号的值存储为所述第一组位中的多个位。
9.根据权利要求8所述的方法,其进一步包括:
将固定值存储为所述第二组位中的第一位和第二位。
10.根据权利要求8所述的方法,其中所述转译单元包括多个字段,其中所述多个字段包含所述页字段、所述块字段、平面编号字段和偏移字段。
11.根据权利要求8所述的方法,其进一步包括:
根据位计数分配所述第一组位。
12.根据权利要求8所述的方法,其进一步包括:
确定表示所述页码的所述值不满足所述阈值标准;以及
响应于确定表示所述页码的所述值不满足所述阈值标准,将表示所述页码的所述值存储为所述第一组位中的所述多个位。
13.根据权利要求8所述的方法,其进一步包括:
确定表示所述页码的所述值不满足所述阈值标准;以及
响应于确定表示所述页码的所述值不满足所述阈值标准,将表示所述块编号的所述值存储为所述第二组位中的多个位。
14.根据权利要求8所述的方法,其中确定存储在所述页字段中的表示所述页码的所述值满足所述阈值标准包括:
比较表示所述页码的所述值和与所述阈值标准相关联的所述阈值;以及
确定表示所述页码的所述值大于所述阈值。
15.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使得所述处理装置执行包括以下的操作:
识别与存储器装置的转译单元相关联的第一组位,其中所述第一组位对应于页字段;
识别与所述存储器装置的所述转译单元相关联的第二组位,其中所述第二组位对应于块字段;
确定固定值存储为所述第二组位中的第一位和第二位;
响应于确定所述固定值存储为所述第二组位中的所述第一位和所述第二位,基于存储在所述块字段中的值和与阈值标准相关联的阈值来计算所计算的值;
基于所述所计算的值确定页码;以及
基于存储在所述页字段中的值确定块编号。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述转译单元包括多个字段,其中所述多个字段包含所述页字段、所述块字段、平面编号字段和偏移字段。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置用于执行进一步包括以下的操作:
响应于确定所述固定值未存储为所述第二组位中的所述第一位和所述第二位:
基于存储在所述页字段中的所述值确定所述页码;以及
基于存储在所述块字段中的所述值确定所述块编号。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中基于所述所计算的值确定所述页码包括:
将表示所述页码的值设置为等于所述所计算的值。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中基于存储在所述页字段中的值确定所述块编号包括:
将表示所述块编号的值设置为等于存储在所述页字段中的所述值。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中确定所述固定值存储为所述第二组位中的所述第一位和所述第二位包括:
识别存储为所述第二组位中的所述第一位的第一值;
识别存储为所述第二组位中的所述第二位的第二值;
比较所述第一值与所述第二值;以及
确定所述第一值和所述第二值等于所述固定值。
CN202210942879.6A 2021-08-06 2022-08-08 存储器子***中双字的智能交换和有效编码 Pending CN115705159A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/395,700 US11868633B2 (en) 2021-08-06 2021-08-06 Smart swapping and effective encoding of a double word in a memory sub-system
US17/395,700 2021-08-06

Publications (1)

Publication Number Publication Date
CN115705159A true CN115705159A (zh) 2023-02-17

Family

ID=85152197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210942879.6A Pending CN115705159A (zh) 2021-08-06 2022-08-08 存储器子***中双字的智能交换和有效编码

Country Status (2)

Country Link
US (2) US11868633B2 (zh)
CN (1) CN115705159A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989127B2 (en) * 2022-09-15 2024-05-21 Western Digital Technologies, Inc. Efficient L2P DRAM for high-capacity drives

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160210241A1 (en) * 2015-01-21 2016-07-21 HGST Netherlands B.V. Reducing a size of a logical to physical data address translation table

Also Published As

Publication number Publication date
US20230045370A1 (en) 2023-02-09
US11868633B2 (en) 2024-01-09
US20240134554A1 (en) 2024-04-25

Similar Documents

Publication Publication Date Title
CN113553099A (zh) 主机常驻转换层写入命令
CN115699185A (zh) 在存储装置上每单元实施可变数目的位
US11836076B2 (en) Implementing mapping data structures to minimize sequentially written data accesses
CN115145838A (zh) 在与非存储器中存储逻辑到物理映射
CN115080458A (zh) 在存储器子***中高速缓存逻辑到物理映射信息
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
CN113127254A (zh) 存储器子***中多平面奇偶校验数据的存储管理
US20240134554A1 (en) Smart swapping and effective encoding of a double word in a memory sub-system
CN113093990B (zh) 存储器子***处的数据块切换
US20240028239A1 (en) Zone block staging component for a memory sub-system with zoned namespace
CN113918479B (zh) 用于并行独立线程的低位密度存储器高速缓存的方法及***
US11720490B2 (en) Managing host input/output in a memory system executing a table flush
CN113126906B (zh) 用于元数据指示的方法和***
US11868642B2 (en) Managing trim commands in a memory sub-system
US11847349B2 (en) Dynamic partition command queues for a memory device
US11922011B2 (en) Virtual management unit scheme for two-pass programming in a memory sub-system
CN113094293B (zh) 存储器***及相关方法和计算机可读存储介质
US11670376B2 (en) Erasing partially-programmed memory unit
CN115729459A (zh) 管理存储器子***中的页地址和分区号的分布
CN113253917A (zh) 用于存储器子***的媒体管理的多状态炼狱
CN114077404A (zh) 使存储器单元与主机***解除关联
CN115273925A (zh) 存储器子***刷新
CN113495695A (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