CN113535077A - 用于列可寻址存储器介质系统中的介质管理的技术 - Google Patents

用于列可寻址存储器介质系统中的介质管理的技术 Download PDF

Info

Publication number
CN113535077A
CN113535077A CN202011489266.9A CN202011489266A CN113535077A CN 113535077 A CN113535077 A CN 113535077A CN 202011489266 A CN202011489266 A CN 202011489266A CN 113535077 A CN113535077 A CN 113535077A
Authority
CN
China
Prior art keywords
memory
physical
identifier
access
block
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
CN202011489266.9A
Other languages
English (en)
Inventor
R·加西亚
J·卡恩
R·曼戈尔德
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN113535077A publication Critical patent/CN113535077A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Mathematical Physics (AREA)
  • Memory System (AREA)

Abstract

用于基于列的存储器系统的介质管理技术包括包含间接表的存储器控制器。存储器控制器接收对指示存储器行地址的列可寻址存储器的存储器存取。存储器控制器基于存储器行地址来确定逻辑子块标识符,并在间接表中查找物理子块标识符。存储器控制器向列可寻址存储器发布指示物理子块标识符的重定向的存储器存取。该存储器存取可以包括列读取。存储器控制器可以通过将数据从源物理子块复制或移动到目的地物理子块来执行介质管理操作。存储器控制器利用针对相关联的逻辑子块标识符的目的地物理子块来更新间接表。描述并要求保护其他实施例。

Description

用于列可寻址存储器介质系统中的介质管理的技术
背景技术
在许多计算操作中(例如,矩阵运算(例如,矩阵乘法)),数据是由计算设备按行和列进行操作的。用于在存储器中存储矩阵数据的两种格式是行主格式(row-major format)和列主格式(column-major format)。在行主格式中,矩阵的行的连续元素在存储器中是连续的。相反地,在列主格式中,列的连续元素是连续的。执行矩阵乘法涉及以行主格式读取给定的矩阵,以列主格式读取另一个矩阵,并且将相应的行和列彼此相乘。通常,存储器可以以行主格式或列主格式存储矩阵,并且在操作期间根据需要转换矩阵。然而,这样做会增加延时和计算成本。作为替代方案,矩阵可以以行主格式和列主格式存储,但是这样做会增加存储器使用。
某些存储器技术可以允许直接地寻址数据的个体的列(例如,位)。在那些技术中,可以在单个操作中读取和/或写入数据的整个列。例如,某些类型的随机联合存储器(SAM)可以允许逐行读取和逐列读取二者具有类似的延时。
附图说明
在附图中,通过示例而非限制的方式示出了本文所描述的构思。为了图示的简单和清楚起见,图中示出的元素不一定按比例绘制。当认为适当时,已经在附图之中重复附图标记以指示对应的或类似的元素。
图1是用于针对列可寻址存储器介质执行介质管理的计算设备的至少一个实施例的简化图;
图2是被包括在图1的计算设备中的存储器介质的至少一个实施例的简化图;
图3是被包括在图1的计算设备中的具有多个管芯的存储器介质的至少一个实施例的简化图;
图4是示出图1的计算设备的存储器的物理子块的存储器布局的示意图;
图5是用于可以由图1的计算设备的存储器控制器执行的存储器存取间接的方法的至少一个实施例的简化的流程图;
图6是用于可以由图1的计算设备的存储器控制器执行的存储器介质管理的方法的至少一个实施例的简化的流程图;以及
图7是图1的计算设备的存储器控制器的间接表的示意图。
具体实施方式
尽管本公开的构思容许各种修改和替代形式,但是其特定实施例已经在附图中通过示例的方式示出,并且将在本文中进行详细地描述。然而,应当理解的是,不存在将本公开的构思限制为所公开的特定的形式的意图,而是相反地,意图是覆盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。
在说明书中对“一个实施例”、“实施例”、“说明性的实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能或可能不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,可以认为:无论是否明确描述,结合其他实施例来实现这种特征、结构或特性都在本领域技术人员的知识范围内。另外,应当理解的是,以“至少一个A、B和C”的形式被包括在列表中的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,可以以硬件、固件、软件或其任何组合来实现所公开的实施例。所公开的实施例还可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载的或存储在其上的指令,这些指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器(例如,易失性或非易失性存储器、介质盘或其他介质设备)可读的形式存储或传输信息的任何存储设备、机构或其他物理结构。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应当理解的是,可能不需要这样的特定布置和/或顺序。相反,在一些实施例中,可以以与说明性的附图中所示的方式和/或顺序不同的方式和/或顺序布置这样的特征。另外,在特定的附图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这种特征,并且在一些实施例中,可以不包括这种特征或者可以与其他特征组合。
现在参考图1,用于利用列可寻址存储器执行介质管理的计算设备100包括处理器102、存储器104、输入/输出(I/O)子系统112、数据存储设备114、通信电路122以及一个或多个加速器设备126。当然,在其他实施例中,计算设备100可以包括其他或附加的组件,例如计算机中常见的那些组件(例如,显示器、外围设备等)。另外,在一些实施例中,说明性的组件中的一个或多个可以并入另一组件中,或者以其他方式形成另一组件的一部分。除非另有说明,否则在本文中参考执行介质管理所使用的术语“存储器”可以指代存储器104和/或数据存储设备114。如本文中更详细解释的,经由对应的介质访问电路108、118(例如,被配置为访问对应的存储器介质110、120中的数据并对其进行操作的任何电路或设备)耦合到对应的存储器介质110、120(例如,数据被写入其中和从中读取数据的任何设备或材料)的存储器控制器106、116可以执行用于存储器存取和介质管理操作的各种存储器间接操作。
如以下进一步描述的,存储器控制器106、116可以执行介质管理操作以保护对应的存储器介质110、120免于过早的损耗。例如,当对相同的物理存储器范围执行重复的存储器存取时,某些存储器介质技术可能降级。因此,存储器控制器106、116可以识别对相同的物理存储器范围的重复的访问(例如,由于恶意活动、编程错误、应用数据访问模式或其他原因),并且在超过阈值访问次数或其他标准之后,存储器控制器106、116可以将相关联的数据移动到对应的存储器介质110、120内的不同的物理存储器范围。通过执行如本文所描述的间接,存储器104、114可以以子块粒度执行这种介质管理,而不破坏以可以逐列访问的格式存储的数据。
处理器102可以体现为能够执行本文所描述的操作(例如,执行应用,所述应用例如可以利用神经网络或其他机器学习结构来学习和进行推理的人工智能相关的应用)的任何设备或电路(例如,多核处理器、微控制器或其他处理器或处理/控制电路)。在一些实施例中,处理器102可以体现为、包括、或耦合到FPGA、专用集成电路(ASIC)、可重配置的硬件或硬件电路、或其他专用硬件,以促进本文所描述的功能的执行。
可以包括非易失性存储器(例如,两级存储器方案中的远存储器)的存储器104包括存储器介质110和位于存储器介质110下方(例如,在较低的位置处)并耦合到存储器介质110介质的访问电路108(例如,诸如处理器、专用集成电路(ASIC)、或根据互补金属氧化物半导体(CMOS)或其他材料构成的其他集成电路之类的设备或电路)。介质访问电路108也连接到存储器控制器106,该介质访问电路108可以体现为任何设备或电路(例如,处理器、协处理器、专用电路等),其被配置为响应于对应的请求(例如,来自可能正在执行列读取或其他逐列操作的处理器102)而选择性地从存储器介质110中读取和/或写入存储器介质110。
在说明性的实施例中,存储器介质110具有三维交叉点架构,其具有与其他存储器架构(例如,动态随机存取存储器(DRAM))不同的数据访问特性,例如实现对每个分片(tile)一个位的访问,并且在到相同的分区或其他分区的读取或写入之间招致时间延迟。介质访问电路108被配置为例如通过以下操作来高效使用(例如,在功率使用和速度方面)存储器介质110的架构:在给定的分区内并行访问多个分片,利用便笺式存储器(scratchpad)(例如,相对小的、低延时的存储器)来临时保留从存储器介质110中读取的数据并对其进行操作,以及将从一个分区读取的数据广播到存储器104的其他部分以使得矩阵计算(例如,张量运算)能够在存储器104内被并行地执行。另外,在说明性的实施例中,代替向存储器104发送读取或写入请求以访问矩阵数据,处理器102可以发送更高级别的请求(例如,前n个相似性搜索查询请求或其他随机的关联搜索请求)并提供要在所请求的操作(例如,输入查询)中利用的输入数据的位置。此外,与其将所得的数据发送回处理器102,存储器104可以仅仅发送回确认或状态的其他指示(例如,“完成”),以指示所请求的操作已经完成。这样,可以在最少使用总线(例如,I/O子系统)以在计算设备100的组件之间(例如,在存储器104或数据存储设备114与处理器102之间)传输数据的情况下,在存储器中(例如,在存储器104中或在数据存储设备114中)执行诸如人工智能操作(例如,随机的关联搜索)之类的许多计算操作。在一些实施例中,介质访问电路108被包括在与存储器介质110相同的管芯中。在其他实施例中,介质访问电路108位于独立的管芯上但是与存储器介质110位于相同的封装中。在其他实施例中,介质访问电路108位于单独的管芯和单独的封装中,但是与存储器介质110位于相同的双列直插式存储器模块(DIMM)或板上。
简要地参考图2,在说明性的实施例中,存储器介质110包括分片架构,在本文中也被称为交叉点架构(例如,一种架构,其中,存储器单元位于字线和位线的相交处并且是可单独寻址的,并且其中,位存储基于体电阻的改变),其中,每个存储器单元(例如,分片)210、212、214、216、218、220、222、224、226、228、230、232、234、236、238、240是通过x参数和y参数(例如,列和行)可寻址的。存储器介质110包括多个分区,分区中的每一个包括分片架构。分区可以被堆叠为层202、204、206以形成三维交叉点架构(例如,Intel 3D XPointTM存储器)。与其中仅固定大小的多位数据结构(例如,字节、字等)是可寻址的典型的存储器设备不同,介质访问电路108被配置为应存储器控制器106的请求而从存储器介质110中读取个体的位或数据的其他单位,存储器控制器106可以响应于从处理器102接收到对应的请求而产生请求。
简要地参考图3,在一些实施例中,存储器介质110可以在分区202、204、206中的每一个中包括多个管芯302、304。每个管芯302、304包括可寻址的存储器单元(例如,分片)210、212、214、216、218、220、222、224、226、228、230、232、234、236、238、240。多个管芯302、304可以被并入单个DIMM或板中。在一些实施例中,可以例如使用单个命令/地址(CA)总线来并行地访问管芯302、304。另外,尽管示出为包括两个管芯302、304,但是应当理解的是,在其他实施例中,存储器介质110可以包括不同数量的管芯(例如,八个管芯、11个管芯或另外数量的管芯)。
返回参考图1,在说明性的实施例中,存储器控制器106包括间接表132、间接单元134、介质管理单元136,以及在一些实施例中,向量功能单元130。向量功能单元130可以体现为存储器控制器106的任何设备或电路(例如,软件、固件和/或硬件),这些设备或电路被配置为通过在硬件中执行基于向量的操作来从主机处理器102中卸载任务。间接表132可以体现为任何易失性或非易失性存储器、数据存储装置、或者被包括在存储器控制器106中或以其他方式可由存储器控制器106访问的其他数据。如下文进一步描述的,间接表132将逻辑子块(s块)标识符与物理s块标识符联系起来,并记录物理s块的写入时间戳。存储器控制器106可以包括单个间接表132,或者在一些实施例中,可以包括用于存储器介质110的每个管芯的间接表132。
间接单元134被配置为接收指示存储器行地址的存储器存取,根据存储器行地址来确定逻辑s块标识符,在间接表132中基于逻辑子块标识符来查找物理s块标识符;以及向存储器介质110发布重定向的存储器存取。重定向的存储器存取指示物理s块标识符。间接单元134可以被进一步配置为响应于发布重定向的存储器存取而利用与物理s块标识符相关联的写入时间戳来更新间接表132。
介质管理单元136被配置为识别用于介质管理操作的源物理s块标识符和目的地物理s块标识符,并使用间接表132识别与源物理s块标识符相关联的逻辑s块标识符。介质管理单元136被进一步配置为执行介质管理操作,并响应于执行介质管理操作而利用针对逻辑s块标识符的目的地物理s块标识符来更新间接表132。介质管理单元136可以被进一步配置为响应于介质管理操作的执行而利用与目的地物理s块标识符相关联的写入时间戳来更新间接表132。
返回参考图1,存储器104可以包括非易失性存储器和易失性存储器。非易失性存储器可以体现为能够以持久的方式存储数据(即使非易失性存储器断电)的任何类型的数据存储装置。例如,非易失性存储器可以体现为一个或多个非易失性存储器设备。非易失性存储器设备可以包括以交叉点架构配置的一个或多个存储器设备,该交叉点架构实现位级可寻址能力(例如,从数据的个体的位中读取和/或写入数据的个体的位的能力,而不是字节或其他较大的数据单位),并且被说明性地体现为三维(3D)交叉点存储器。在一些实施例中,非易失性存储器可以另外包括其他类型的存储器,包括以下各项的任何组合:使用硫族化物相变材料(例如,硫族化物玻璃)的存储器设备、铁电晶体管随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、相变存储器(PCM)、结合了忆阻器技术的存储器、磁阻随机存取存储器(MRAM)或自旋转移力矩(STT)-MRAM。易失性存储器可以体现为能够在向易失性存储器供电的同时存储数据的任何类型的数据存储装置。例如,易失性存储器可以体现为一个或多个易失性存储器设备,并且在理解易失性存储器在其他实施例中可以被体现为其他类型的非持久性数据存储装置的情况下在下文中被偶尔地称为易失性存储器。易失性存储器可以具有实现位级可寻址性的架构,类似于上面描述的架构。
处理器102和存储器104经由I/O子系统112通信地耦合到计算设备100的其他组件,该I/O子系统112可以体现为用于促进与处理器102和/或主存储器104以及计算设备100的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统112可以体现为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、集成传感器集线器、固件设备、通信链路(例如,点对点链路、总线链路、导线、电缆、光导、印刷电路板走线等)、和/或其他组件和子系统以促进输入/输出操作。在一些实施例中,I/O子系统112可以形成片上系统(SoC)的一部分,并且与处理器102、主存储器104和计算设备100的其他组件中的一个或多个一起被合并在单个芯片中。
数据存储设备114可以体现为被配置用于数据的短期或长期存储的任何类型的设备(例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备)。在说明性的实施例中,数据存储设备114包括类似于存储器控制器106的存储器控制器116、类似于存储器介质110的存储器介质120(也被称为“存储介质”)、以及类似于介质访问电路108的介质访问电路118。如图所示,存储器控制器116包括类似于间接表132的间接表142、类似于间接单元134的间接单元144、类似于介质管理单元136的介质管理单元146、以及(在一些实施例中)类似于向量功能单元130的向量功能单元140。数据存储设备114可以包括:系统分区,该系统分区存储用于数据存储设备114的数据和固件代码;以及存储用于操作系统的数据文件和可执行文件的一个或多个操作系统分区。
通信电路122可以体现为能够实现计算设备100与另一设备之间的网络上的通信的任何通信电路、设备或其集合。通信电路122可以被配置为使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,以太网、
Figure BDA0002840259590000081
WiMAX等)来实现这种通信。
说明性的通信电路122包括网络接口控制器(NIC)124,其也可以被称为主机结构接口(HFI)。NIC 124可以体现为一个或多个附加板、子卡、网络接口卡、控制器芯片、芯片组或可以由计算设备100用于与另一计算设备连接的其他设备。在一些实施例中,NIC 124可以体现为包括一个或多个处理器的片上系统(SoC)的一部分,或者被包括在也包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 124可以包括均位于NIC 124本地的本地处理器(未示出)和/或本地存储器(未示出)。在这样的实施例中,NIC 124的本地处理器可能能够执行处理器102的功能中的一个或多个。另外或可替代地,在这样的实施例中,NIC124的本地存储器可以在板级、插口(socket)级、芯片级和/或其他级别被集成到计算设备100的一个或多个组件中。
一个或多个加速器设备126可以体现为能够比通用处理器102更快地执行一组操作的任何设备或电路。例如,加速器设备126可以包括图形处理单元128,其可以体现为能够比处理器102更快地执行图形操作(例如,矩阵运算)的任何设备或电路(例如,协处理器、ASIC、可重配置电路等)。
现在参考图4,示意图400示出了可以存储在存储器介质110中用于基于列的访问的数据块。图示400示出了物理子块(s块)402,其在存储器介质110中包括连续块,存储器介质110包括多个行404和列406。如图所示,s块402包括128个行404,并且每个行404包括128个列406。每个列406说明性地是包括单个位的分片。因此,说明性的s块402可以包括2048字节(2kB)的基于列的数据。尽管示出为128乘128块,但是应当理解的是,在其他实施例中,物理s块402可以具有不同的大小。例如,在一些实施例中,物理s块402可以是可以利用单个逐列访问操作(例如,列读取)访问的存储器的连续块。
存储在s块402中的数据被包括在逻辑矩阵中。因此,每个位具有逻辑行号和逻辑列号。如图所示,行号零包括按顺序排列的列零至127。针对s块402中的每个随后的行404,列406被旋转一位位置。因此,逻辑列在s块中被对角地布置。例如,如图4所示,对角单元410包括逻辑列0,对角单元412包括逻辑列3,并且对角单元414包括逻辑列125。尽管图4突出显示了三个逻辑列410、412、414,但是应当理解的是,s块402中的每个逻辑列都被对角地布置。因此,在s块402中,在给定的逻辑列(例如,数据的多维矩阵的列)中,每个位在与该逻辑列中的任何其他位不同的物理行和物理列中。
可以利用基于列的操作(例如,列读取或列写入)来访问数据的每个逻辑列。通过如本文所描述布置逻辑列的数据,计算设备100可以执行存储器存取(例如,写入和/或读取),以避免否则将在以下情形下发生的延时:在刚刚被访问的物理行和/或列内的下一数据位可访问之前,存储器介质110在该相同的行和列处执行物理状态改变(例如,冷却过程)。此外,为了在制造成本和物理管芯大小(例如,逻辑门的数量)方面提供附加的效率,在说明性的实施例中,跨物理行和列对角地布置逻辑列。与跨底层的物理行和列的给定的逻辑列中分发位的其他模式相比,对角地布置每个逻辑列简化了寻址底层的物理分片中涉及的数学运算(例如,使用旋转和模运算符)。应当注意的是,基于s块402内的相对的行偏移量来将每个行404中的数据旋转预定的量。因此,在s块402内重新定位、替换或以其他方式移动个体的行404可能引起基于列的数据的数据损坏。
现在参考图5,计算设备100在操作中可以执行用于存储器存取间接的方法500。参考存储器104描述了方法500。然而,应该理解的是,可以使用数据存储设备114来另外或可替代地执行方法500。方法500开始于框502,其中,存储器控制器106确定了是否执行存储器存取。如果否,则方法500循环回到框502以继续监视存储器存取。如果存储器控制器106确定执行存储器存取,则方法500前进到框504。
在框504中,存储器控制器106接收包括逻辑地址的存储器存取。例如,存储器控制器106可以从主机处理器102接收存储器存取请求(例如,读取或写入)。在一些实施例中,存储器存取可以由存储器控制器106的向量功能单元130生成,例如,响应于从主机处理器102接收到的宏命令。逻辑地址识别存储器104中的逻辑行,并且可以体现为整数值或其他标识符。在一些实施例中,在框506中,存储器控制器106可以接收与存储器存取相关联的列标识符。例如,存储器控制器106可以接收识别列号的列读取。
在框508中,存储器控制器106基于逻辑行地址来确定逻辑子块(s块)标识符。如上面所描述的,每个s块是具有预定数量的行和列的数据的存储器的连续块。说明性地,每个s块包括128行和128列的数据。存储器控制器106可以确定针对包括逻辑行地址的逻辑s块的逻辑s块标识符。例如,存储器控制器106可以将逻辑行地址除以每个s块的行数(例如,128)。在一些实施例中,可以使用按位运算(例如,移位运算)来执行等效运算。在一些实施例中,在框510中,存储器控制器106可以基于逻辑行地址来确定逻辑s块内的行偏移量。例如,存储器控制器106可以确定用于基于行的存储器存取的行偏移量。
在框512中,存储器控制器106在间接表132中查找针对逻辑s块标识符的物理s块标识符。例如,存储器控制器106可以利用逻辑s块标识符对间接表132进行索引,并从间接表132中读取物理s块标识符。现在参考图7,图示700示出了间接表132的说明性的实施例。如图所示,间接表132中的每个条目(行)包括逻辑s块标识符、物理s块标识符、物理存储器行地址范围和用于开始和结束写入的时间戳。逻辑s块标识符和/或物理s块标识符可以被初始化为标识符的线性序列。例如,在说明性的图示700中,逻辑s块标识符零对应于物理s块标识符零,依此类推。在使用中,例如,响应于如下面结合图6描述的介质管理操作,可以将逻辑s块的数据移动或介质管理到不同的物理s块。例如,在说明性的图示700中,逻辑s块标识符三对应于物理s块标识符七。可以基于物理s块标识符来确定物理行地址范围,例如通过将物理s块标识符乘以每个s块中的行数或通过执行等效的按位运算。可以响应于写入操作来更新写入时间戳,并且在下面进一步描述写入时间戳。
再次参考图5,在框514中,存储器控制器106基于物理s块标识符来生成物理地址。存储器控制器106可以例如从间接表132中取回物理s块标识符的物理地址。另外或可替代地,存储器控制器106可以基于物理s块标识符来计算物理地址,例如通过将物理s块标识符乘以每个s块中的行数或通过执行等效的按位运算。在一些实施例中,在框516中,存储器控制器106可以生成具有如上面结合框510所描述的那样确定的行偏移量的物理地址。例如,存储器控制器106可以将行偏移量添加到物理s块的基地址或以其他方式生成物理行地址。
在框518中,存储器控制器106利用物理地址向存储器介质110的一个或多个管芯发布存储器存取。存储器存取可以是例如读取或写入,并且可以是基于行或基于列的。存储器控制器106可以例如使用单个命令/地址总线向存储器介质110中的多个管芯发布相同的存储器存取。另外或可替代地,在一些实施例中,存储器控制器106可以向单个管芯发布存储器存取。响应于从存储器控制器106接收到存储器存取,存储器介质110(和/或介质访问电路108)执行所请求的存储器操作。
在框520中,存储器控制器106确定是否执行了存储器写入。如果否,则方法500循环回到框502以执行附加的存储器存取。如果存储器控制器106确定执行了存储器写入,则方法500前进到框522。
在框522中,存储器控制器106针对受影响的逻辑s块来更新间接表132中的第一个和/或最后一个写入时间戳。存储器控制器106可以使用任何时间格式或其他技术来记录写入时间戳。例如,如图7所示,开始和结束写入时间戳可以被记录为相对于参考时间T的时间偏移量。写入时间戳可以用于取决于第一时间和/或将该数据写入逻辑s块的最新时间来调整逻辑s块内的存储器的某些电压参考值。在更新间接表132之后,方法500循环回到框502以执行附加的存储器存取。
现在参考图6,计算设备100在操作中可以执行用于存储器介质管理的方法600。参考存储器104描述了方法600。然而,应当理解的是,可以使用数据存储设备114来另外或可替代地执行方法600。方法600开始于框602,其中,存储器控制器106确定是否执行介质管理操作。介质管理操作可以包括损耗均衡(即,将数据移动到具有较低损耗的存储器介质110中的另一物理位置)或其他依赖于存储器介质的管理操作。例如,在一些实施例中,存储器控制器106可以识别用于介质管理操作的“热”物理s块。热物理s块可以包括:已经被频繁访问的存储器范围、具有某些物理温度参数(例如,与物理状态改变相关联的温度)的存储器范围、需要数据刷新的存储器范围、或需要介质管理的其他存储器范围。如果存储器控制器106确定不执行介质管理操作,则方法600循环回到框602以继续监视介质管理操作。如果存储器控制器106确定执行介质管理操作,则方法600前进到框604。
在框604中,存储器控制器106使用间接表132来标识源物理s块和相关联的源逻辑s块。源物理s块可以是,例如,包括如上面描述的那样确定的热存储器范围的物理s块。存储器控制器106可以搜索间接表132以识别与源物理s块相关联的逻辑s块标识符。例如,存储器控制器106可以确定存储器范围768-895是热的(例如,访问的频率、高温、或出于其他原因要求介质管理)。再次参考图7,存储器范围768-895被包括在与逻辑s块标识符5相关联的物理s块标识符六中。
返回参考图6,在框606中,存储器控制器106确定目的地物理s块。存储器控制器106可以使用任何适当的技术来识别目的地物理s块。例如,存储器控制器106可以使用间接表132来搜索未使用的物理s块标识符。在框608中,存储器控制器106将数据从源物理s块复制和/或移动到目的地物理s块。例如,再次参考图7,存储器控制器106可以确定未使用物理s块标识符八。在该示例中,存储器控制器106可以将数据从物理s块标识符六(存储器地址768-895)复制到物理s块标识符八(存储器地址1024-1151)。可以使用逐行复制操作或任何其他存储器复制操作来复制数据。
在框610中,存储器控制器106针对如上面结合框604所描述确定的逻辑s块标识符来更新具有目的地物理s块标识符的间接表132。在更新间接表132之后,如上面结合图5描述的那样处理的存储器存取将访问目的地物理s块中的数据。因此,通过以s块粒度执行介质管理操作,在s块中逐列存储的数据不会被破坏。例如,再次参考图7,可以针对逻辑子块标识符五来更新间接表132中的条目以引用物理s块标识符八。在该示例中,对逻辑s块标识符五的随后的访问将访问物理s块标识符八。这种间接对主机处理器102是透明的。
在框612中,在更新了物理s块标识符之后,存储器控制器106针对受影响的逻辑s块来更新间接表132中的第一个和/或最后一个写入时间戳。如上面所描述的,存储器控制器106可以使用任何时间格式或其他技术来记录写入时间戳。例如,如图7所示,开始和结束写入时间戳可以被记录为相对于参考时间T的时间偏移量。写入时间戳可以用于取决于第一时间和/或将数据写入逻辑s块的最新时间来调整逻辑s块内的存储器的某些电压参考值。在更新间接表132之后,方法600循环回到框602以执行附加的介质管理操作。
示例
下面提供了本文公开的技术的说明性的示例。技术的实施例可以包括以下描述的示例中的任何一个或多个以及它们的任何组合。
示例1包括一种存储器控制器,其包括:间接表;以及间接单元,其用于:接收对列可寻址存储器的存储器存取,其中,存储器存取指示存储器行地址;根据存储器行地址来确定逻辑子块标识符;在间接表中基于逻辑子块标识符来查找物理子块标识符;以及向列可寻址存储器发布重定向的存储器存取,其中,重定向的存储器存取指示物理子块标识符。
示例2包括示例1的主题,并且其中:间接单元进一步用于根据物理子块标识符来确定物理存储器行地址;并且重定向的存储器存取指示物理存储器行地址。
示例3包括示例1和2中的任一个的主题,并且其中:间接单元进一步用于根据存储器行地址来确定行偏移量;并且确定物理存储器行地址进一步包括根据存储器行偏移量来确定物理存储器行地址。
示例4包括示例1-3中的任一个的主题,并且其中,物理子块标识符指示具有预定数量的存储器行和预定数量的列的列可寻址存储器的连续的存储器块。
示例5包括示例1-4中的任一个的主题,并且其中,存储器行的预定数量是128,并且列的预定数量是128。
示例6包括示例1-5中的任一个的主题,并且其中,将重定向的存储器存取发布到列可寻址存储器包括:将重定向的存储器存取发布到列可寻址存储器的存储器介质的管芯。
示例7包括示例1-6中的任一个的主题,并且其中,将重定向的存储器存取发布到列可寻址存储器进一步包括:将重定向的存储器存取发布到列可寻址存储器的存储器介质的多个管芯。
示例8包括示例1-7中的任一个的主题,并且其中,存储器存取包括列读取。
示例9包括示例1-8中的任一个的主题,并且其中,间接单元进一步用于响应于重定向的存储器存取的发布而利用与物理子块标识符相关联的写入时间戳来更新间接表,其中,存储器存取包括存储器写入。
示例10包括示例1-9中的任一个的主题,并且其中,接收存储器存取包括从耦合到存储器控制器的主机处理器接收存储器存取。
示例11包括示例1-10中的任一个的主题,并且进一步包括用于发布存储器存取的向量功能单元;其中,接收存储器存取包括从向量功能单元接收存储器存取。
示例12包括示例1-11中的任一个的主题,并且其中,列可寻址存储器包括具有交叉点架构的存储器介质,在交叉点架构中,存储器单元位于字线和位线的相交处并且是可单独寻址的。
示例13包括示例1-12中的任一个的主题,并且其中,存储器控制器经由介质访问电路耦合到存储器介质。
示例14包括存储器控制器,其包括:间接表;以及介质管理单元,其用于:识别与列可寻址存储器相关联的介质管理操作的源物理子块标识符和目的地物理子块标识符;利用间接表识别与源物理子块标识符相关联的逻辑子块标识符;执行介质管理操作;以及响应于介质管理操作的执行而针对逻辑子块标识符来更新具有目的地物理子块标识符的间接表。
示例15包括示例14的主题,并且其中,每个物理子块标识符指示具有预定数量的存储器行和预定数量的列的列可寻址存储器的连续的存储器块。
示例16包括示例14和15中的任一个的主题,并且其中,介质管理单元进一步用于响应于介质管理操作的执行而利用与目的地物理子块标识符相关联的写入时间戳来更新间接表。
示例17包括示例14-16中的任一个的主题,并且其中,执行介质管理操作包括:将数据从列可寻址存储器的第一连续块复制到列可寻址存储器的第二连续块,其中,源物理子块标识符指示第一连续块,并且目的地物理子块标识符指示第二连续块。
示例18包括示例14-17中的任一个的主题,并且其中,介质管理操作包括损耗均衡操作。
示例19包括示例14-18中的任一个的主题,并且其中,列可寻址存储器包括具有交叉点架构的存储器介质,在交叉点架构中,存储器单元位于字线和位线的相交处并且是可单独寻址的。
示例20包括示例14-19中的任一个的主题,并且其中,存储器控制器经由介质访问电路耦合到存储器介质。
示例21包括示例14-20中的任一个的主题,并且进一步包括间接单元,其用于:响应于介质管理操作的执行而接收对列可寻址存储器的存储器存取,其中,存储器存取指示存储器行地址;根据存储器行地址来确定逻辑子块标识符;在间接表中基于逻辑子块标识符来查找目的地物理子块标识符;以及向列可寻址存储器发布重定向的存储器存取,其中,重定向的存储器存取指示目的地物理子块标识符。
示例22包括一种方法,其包括:由存储器控制器接收对列可寻址存储器的存储器存取,其中,存储器存取指示存储器行地址;由存储器控制器根据存储器行地址来确定逻辑子块标识符;由存储器控制器在存储器控制器的间接表中基于逻辑子块标识符来查找物理子块标识符;以及由存储器控制器向列可寻址存储器发布重定向的存储器存取,其中,重定向的存储器存取指示物理子块标识符。
示例23包括示例22的主题,并且进一步包括:由存储器控制器根据物理子块标识符来确定物理存储器行地址;其中,重定向的存储器存取指示物理存储器行地址。
示例24包括示例22和23中的任一个的主题,并且进一步包括:由存储器控制器根据存储器行地址来确定行偏移量;其中,确定物理存储器行地址进一步包括根据存储器行偏移量来确定物理存储器行地址。
示例25包括示例22-24中的任一个的主题,并且其中,物理子块标识符指示具有预定数量的存储器行和预定数量的列的列可寻址存储器的连续的存储器块。
示例26包括示例22-25中的任一个的主题,并且其中,存储器行的预定数量是128,并且列的预定数量是128。
示例27包括示例22-26中的任一个的主题,并且其中,将重定向的存储器存取发布到列可寻址存储器包括:将重定向的存储器存取发布到列可寻址存储器的存储器介质的管芯。
示例28包括示例22-27中的任一个的主题,并且其中,将重定向的存储器存取发布到列可寻址存储器进一步包括:将重定向的存储器存取发布到列可寻址存储器的存储器介质的多个管芯。
示例29包括示例22-28中的任一个的主题,并且其中,存储器存取包括列读取。
示例30包括示例22-29中的任一个的主题,并且进一步包括:由存储器控制器响应于重定向的存储器存取的发布而利用与物理子块标识符相关联的写入时间戳来更新间接表,其中,存储器存取包括存储器写入。
示例31包括示例22-30中的任一个的主题,并且其中,接收存储器存取包括从耦合到存储器控制器的主机处理器接收存储器存取。
示例32包括示例22-31中的任一个的主题,并且其中,接收存储器存取包括从存储器控制器的向量功能单元接收存储器存取。
示例33包括示例22-32中的任一个的主题,并且其中,列可寻址存储器包括具有交叉点架构的存储器介质,在交叉点架构中,存储器单元位于字线和位线的相交处,并且是可单独寻址的。
示例34包括示例22-33中的任一个的主题,并且其中,存储器控制器经由介质访问电路耦合到存储器介质。
示例35包括一种方法,其包括:由列可寻址存储器的存储器控制器识别用于介质管理操作的源物理子块标识符和目的地物理子块标识符;由存储器控制器使用存储器控制器的间接表来识别与源物理子块标识符相关联的逻辑子块标识符;由存储器控制器执行介质管理操作;以及由存储器控制器响应于介质管理操作的执行而针对逻辑子块标识符来更新具有目的地物理子块标识符的间接表。
示例36包括示例35的主题,并且其中,每个物理子块标识符指示具有预定数量的存储器行和预定数量的列的列可寻址存储器的连续的存储器块。
示例37包括示例35和36中的任一个的主题,并且进一步包括:由存储器控制器响应于执行介质管理操作而利用与目的地物理子块标识符相关联的写入时间戳来更新间接表。
示例38包括示例35-37中的任一个的主题,并且其中,执行介质管理操作包括:将数据从列可寻址存储器的第一连续块复制到列可寻址存储器的第二连续块,其中,源物理子块标识符指示第一连续块,并且目的地物理子块标识符指示第二连续块。
示例39包括示例35-38中的任一个的主题,并且其中,介质管理操作包括损耗均衡操作。
示例40包括示例35-39中的任一个的主题,并且其中,列可寻址存储器包括具有交叉点架构的存储器介质,其中,存储器单元位于字线和位线的相交处,并且是可单独寻址的。
示例41包括示例35-40中的任一个的主题,并且其中,存储器控制器经由介质访问电路耦合到存储器介质。
示例42包括示例35-41中的任一个的主题,并且进一步包括:响应于介质管理操作的执行而由存储器控制器接收对列可寻址存储器的存储器存取,其中,存储器存取指示存储器行地址;由存储器控制器根据存储行地址来确定逻辑子块标识符;由存储器控制器在间接表中基于逻辑子块标识符来查找目的地物理子块标识符;以及由存储器控制器向列可寻址存储器发布重定向的存储器存取,其中,重定向的存储器存取指示目的地物理子块标识符。
示例43包括计算设备,其包括:处理器;以及其中存储有多个指令的存储器,这些指令当由处理器执行时使得计算设备执行示例22-42中的任一个的方法。
示例44包括一个或多个机器可读存储介质,其包括存储在其上的多个指令,这些指令响应于被执行而引起计算设备执行示例22-42中的任一个的方法。
示例45包括一种计算设备,其包括用于执行示例22-42中的任一个的方法的单元。
示例46包括一种计算设备,其包括:数据存储设备,其包括列可寻址存储器介质和存储器控制器,该存储器控制器包括:间接表;以及间接单元,其用于(i)接收对列可寻址存储器介质的存储器存取,其中,存储器存取指示存储器行地址,(ii)根据存储行地址来确定逻辑子块标识符,(iii)在间接表中基于逻辑子块标识符来查找物理子块标识符,以及(iv)向列可寻址存储器介质发布重定向的存储器存取,其中,重定向的存储器存取指示物理子块标识符。
示例47包括示例46的主题,并且进一步包括主机处理器和I/O子系统,其中,主机处理器经由I/O子系统耦合到数据存储设备。
示例48包括示例46和47中的任一个的主题,并且其中,接收存储器存取包括从主机处理器接收存储器存取。
示例49包括示例46-48中的任一个的主题,并且进一步包括主机处理器,其中,数据存储设备包含耦合到主机处理器的持久性存储器设备。
示例50包括示例46-49中的任一个的主题,并且其中,数据存储设备进一步包括介质访问电路,并且其中,存储器控制器经由介质访问电路耦合到列可寻址存储器介质。
示例51包括示例46-50中的任一个的主题,并且其中,存储器控制器进一步包括介质管理单元,其用于:识别用于与列可寻址存储器介质相关联的介质管理操作的源物理子块标识符和目的地物理子块标识符;利用间接表识别与源物理子块标识符相关联的逻辑子块标识符;执行介质管理操作;以及响应于介质管理操作的执行而针对逻辑子块标识符来更新具有目的地物理子块标识符的间接表。

Claims (25)

1.一种存储器控制器,包括:
间接表;以及
间接单元,其用于:
接收对列可寻址存储器的存储器存取,其中,所述存储器存取指示存储器行地址;
根据所述存储器行地址来确定逻辑子块标识符;
在所述间接表中基于所述逻辑子块标识符来查找物理子块标识符;以及
向所述列可寻址存储器发布重定向的存储器存取,其中,所述重定向的存储器存取指示所述物理子块标识符。
2.根据权利要求1所述的存储器控制器,其中:
所述间接单元进一步用于根据所述物理子块标识符来确定物理存储器行地址;并且
所述重定向的存储器存取指示所述物理存储器行地址。
3.根据权利要求2所述的存储器控制器,其中:
所述间接单元进一步用于根据所述存储器行地址来确定行偏移量;并且
确定所述物理存储器行地址进一步包括根据所述存储器行偏移量来确定所述物理存储器行地址。
4.根据权利要求1所述的存储器控制器,其中,所述物理子块标识符指示具有预定数量的存储器行和预定数量的列的所述列可寻址存储器的连续的存储器块。
5.根据权利要求4所述的存储器控制器,其中,存储器行的预定数量是128,并且列的预定数量是128。
6.根据权利要求1所述的存储器控制器,其中,将所述重定向的存储器存取发布到所述列可寻址存储器包括:将所述重定向的存储器存取发布到所述列可寻址存储器的存储器介质的管芯。
7.根据权利要求1所述的存储器控制器,其中,将所述重定向的存储器存取发布到所述列可寻址存储器进一步包括:将所述重定向的存储器存取发布到所述列可寻址存储器的存储器介质的多个管芯。
8.根据权利要求1所述的存储器控制器,其中,所述存储器存取包括列读取。
9.根据权利要求1所述的存储器控制器,其中,所述间接单元进一步用于响应于所述重定向的存储器存取的发布而利用与所述物理子块标识符相关联的写入时间戳来更新所述间接表,其中,所述存储器存取包括存储器写入。
10.根据权利要求1所述的存储器控制器,其中,接收所述存储器存取包括从耦合到所述存储器控制器的主机处理器接收所述存储器存取。
11.根据权利要求1所述的存储器控制器,进一步包括用于发布所述存储器存取的向量功能单元;
其中,接收所述存储器存取包括从所述向量功能单元接收所述存储器存取。
12.根据权利要求1所述的存储器控制器,其中,所述列可寻址存储器包括具有交叉点架构的存储器介质,在所述交叉点架构中,存储器单元位于字线和位线的相交处并且是能够单独寻址的。
13.根据权利要求12所述的存储器控制器,其中,所述存储器控制器经由介质访问电路耦合到所述存储器介质。
14.一种或多种机器可读存储介质,包括存储在其上的多个指令,这些指令响应于被执行而使得存储器控制器:
接收对列可寻址存储器的存储器存取,其中,所述存储器存取指示存储器行地址;
根据所述存储器行地址来确定逻辑子块标识符;
在所述存储器控制器的间接表中基于所述逻辑子块标识符来查找物理子块标识符;以及
向所述列可寻址存储器发布重定向的存储器存取,其中,所述重定向的存储器存取指示所述物理子块标识符。
15.一种存储器控制器,包括:
间接表;以及
介质管理单元,其用于:
识别与列可寻址存储器相关联的介质管理操作的源物理子块标识符和目的地物理子块标识符;
利用所述间接表识别与所述源物理子块标识符相关联的逻辑子块标识符;
执行所述介质管理操作;以及
响应于所述介质管理操作的执行而针对所述逻辑子块标识符来更新具有所述目的地物理子块标识符的所述间接表。
16.根据权利要求15所述的存储器控制器,其中,执行所述介质管理操作包括:将数据从所述列可寻址存储器的第一连续块复制到所述列可寻址存储器的第二连续块,其中,所述源物理子块标识符指示所述第一连续块,并且所述目的地物理子块标识符指示所述第二连续块。
17.根据权利要求15所述的存储器控制器,其中,所述介质管理操作包括损耗均衡操作。
18.根据权利要求15所述的存储器控制器,进一步包括间接单元,其用于:
响应于所述介质管理操作的执行而接收对所述列可寻址存储器的存储器存取,其中,所述存储器存取指示存储器行地址;
根据所述存储器行地址来确定所述逻辑子块标识符;
在所述间接表中基于所述逻辑子块标识符来查找所述目的地物理子块标识符;以及
向所述列可寻址存储器发布重定向的存储器存取,其中,所述重定向的存储器存取指示所述目的地物理子块标识符。
19.一种计算设备,包括:
数据存储设备,其包括列可寻址存储器介质和存储器控制器,所述存储器控制器包括:
间接表;以及
间接单元,其用于(i)接收对所述列可寻址存储器介质的存储器存取,其中,所述存储器存取指示存储器行地址,(ii)根据所述存储器行地址来确定逻辑子块标识符,(iii)在所述间接表中基于所述逻辑子块标识符来查找物理子块标识符,以及(iv)向所述列可寻址存储器介质发布重定向的存储器存取,其中,所述重定向的存储器存取指示所述物理子块标识符。
20.根据权利要求19所述的计算设备,进一步包括主机处理器和I/O子系统,其中,所述主机处理器经由所述I/O子系统耦合到所述数据存储设备。
21.根据权利要求20所述的计算设备,其中,接收所述存储器存取包括从所述主机处理器接收所述存储器存取。
22.根据权利要求19所述的计算设备,进一步包括主机处理器,其中,所述数据存储设备包括耦合到所述主机处理器的持久性存储器设备。
23.根据权利要求19所述的计算设备,其中,所述数据存储设备进一步包括介质访问电路,并且其中,所述存储器控制器经由所述介质访问电路耦合到所述列可寻址存储器介质。
24.根据权利要求19所述的计算设备,其中,所述存储器控制器进一步包括介质管理单元,其用于:
识别与所述列可寻址存储器介质相关联的介质管理操作的源物理子块标识符和目的地物理子块标识符;
利用所述间接表识别与所述源物理子块标识符相关联的所述逻辑子块标识符;
执行所述介质管理操作;以及
响应于所述介质管理操作的执行而针对所述逻辑子块标识符的来更新具有所述目的地物理子块标识符的所述间接表。
25.一种方法,包括:
由存储器控制器接收对列可寻址存储器的存储器存取,其中,所述存储器存取指示存储器行地址;
根据所述存储器行地址来确定逻辑子块标识符;
在所述存储器控制器的间接表中基于所述逻辑子块标识符来查找物理子块标识符;以及
向所述列可寻址存储器发布重定向的存储器存取,其中,所述重定向的存储器存取指示所述物理子块标识符。
CN202011489266.9A 2020-04-21 2020-12-16 用于列可寻址存储器介质系统中的介质管理的技术 Pending CN113535077A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/854,392 US11573735B2 (en) 2020-04-21 2020-04-21 Technologies for media management in column-addressable memory media systems
US16/854,392 2020-04-21

Publications (1)

Publication Number Publication Date
CN113535077A true CN113535077A (zh) 2021-10-22

Family

ID=71944820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011489266.9A Pending CN113535077A (zh) 2020-04-21 2020-12-16 用于列可寻址存储器介质系统中的介质管理的技术

Country Status (3)

Country Link
US (1) US11573735B2 (zh)
EP (1) EP3901775A1 (zh)
CN (1) CN113535077A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116361063A (zh) * 2021-12-21 2023-06-30 慧与发展有限责任合伙企业 字节可寻址存储器的简化raid实施方式

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11783163B2 (en) * 2020-06-15 2023-10-10 Arm Limited Hardware accelerator for IM2COL operation
US11662935B2 (en) * 2021-08-12 2023-05-30 Micron Technology, Inc. Adaptive data relocation for improved data management for memory
US12056369B2 (en) * 2022-09-23 2024-08-06 Micron Technology, Inc. Refreshing a memory block on power up based on an age and/or temperature condition

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2582132B1 (fr) * 1985-05-15 1987-07-17 O Donnell Ciaran Circuit de memoire d'image virtuelle permettant le multifenetrage
US5758056A (en) 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7966462B2 (en) 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US7509474B2 (en) 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US7620792B2 (en) * 2006-08-21 2009-11-17 Sigmatel, Inc. Processing system, memory and methods for use therewith
US10320420B2 (en) * 2014-01-24 2019-06-11 Hewlett-Packard Enterprise Development LP Bit-flip coding
WO2018005572A1 (en) * 2016-06-30 2018-01-04 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Two-dimensionally accessible non-volatile memory
US10409500B2 (en) 2017-09-08 2019-09-10 Intel Corporation Multiple indirection granularities for mass storage devices
US11416170B2 (en) 2019-01-17 2022-08-16 Intel Corporation Technologies for efficiently accessing data columns and rows in a memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116361063A (zh) * 2021-12-21 2023-06-30 慧与发展有限责任合伙企业 字节可寻址存储器的简化raid实施方式

Also Published As

Publication number Publication date
US11573735B2 (en) 2023-02-07
EP3901775A1 (en) 2021-10-27
US20200257472A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
US11416170B2 (en) Technologies for efficiently accessing data columns and rows in a memory
US11573735B2 (en) Technologies for media management in column-addressable memory media systems
CN113785278B (zh) 用于避免并发写入流之间冲突的动态数据放置
US11080226B2 (en) Technologies for providing a scalable architecture for performing compute operations in memory
US10754555B2 (en) Low overhead mapping for highly sequential data
US10628300B2 (en) RAID stripe physical placement
US11237903B2 (en) Technologies for providing ECC pre-provisioning and handling for cross-point memory and compute operations
US11392494B2 (en) Technologies for performant column read operations on clustered data in a dimm architecture
US11327881B2 (en) Technologies for column-based data layouts for clustered data systems
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
CN113360089B (zh) 用于存储器子系统的命令批处理
US12001716B2 (en) Key-value data storage system using content addressable memory
KR20200131741A (ko) 메모리에서 매크로 연산을 수행하기 위한 기술
US20190227750A1 (en) Technologies for performing tensor operations in memory
EP3716076B1 (en) Technologies for providing high efficiency compute architecture on cross point memory for artificial intelligence operations
EP3751423A2 (en) Technologies for adding computational ability to memory devices without changing media layers
CN111796964A (zh) 用于提供多级纠错的技术
US10942847B2 (en) Technologies for efficiently performing scatter-gather operations
US11593263B2 (en) Technologies to address individual bits in memory
US11934704B1 (en) Control table set determination in storage devices
US20240111455A1 (en) Control Table Set Management In Storage Devices
KR20240159658A (ko) 웨어 레벨링을 수행하는 메모리 제어기 및 메모리 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination