CN105264342B - 嵌入的ecc地址映射 - Google Patents

嵌入的ecc地址映射 Download PDF

Info

Publication number
CN105264342B
CN105264342B CN201480030770.9A CN201480030770A CN105264342B CN 105264342 B CN105264342 B CN 105264342B CN 201480030770 A CN201480030770 A CN 201480030770A CN 105264342 B CN105264342 B CN 105264342B
Authority
CN
China
Prior art keywords
cache line
memory
logic
data
error correction
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.)
Expired - Fee Related
Application number
CN201480030770.9A
Other languages
English (en)
Other versions
CN105264342A (zh
Inventor
P·D·沃格特
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 CN105264342A publication Critical patent/CN105264342A/zh
Application granted granted Critical
Publication of CN105264342B publication Critical patent/CN105264342B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

描述了用于使ECC数据与存储器页中的高速缓存行数据嵌在一起装置、系统和方法。在一个实施例中,电子设备包括处理器和用于接收对向存储器设备读取或写入数据的请求的存储器控制逻辑,其中所述数据被映射至包括多个高速缓存行的存储器页,置换多个高速缓存行中的至少一部分以使纠错码信息与数据嵌在一起,并且将多个高速缓存行的所述一部分重映射至另一存储器位置,并且取回或存储存储页上的数据和纠错码信息。也公开和要求保护了其他实施例。

Description

嵌入的ECC地址映射
技术领域
概括而言,本发明涉及电子领域。更加具体而言,本发明的一些实施例通常涉及嵌入的纠错码(ECC)地址映射。
背景技术
多种电子设备可以包含存储器技术。在例如智能电话和平板计算机的一些电子设备中使用的存储器需要高容量,但这些是成本敏感的应用,在这些应用中将纠错码(ECC)比特加入存储器的开销是不可接受的。在电子设备的其他市场中,例如在服务器产品的领域中,高容量设备可以是有用的。然而,这些市场一贯地要求来自存储器设备的高可靠性,该要求使得ECC特征在存储器设备中成为必需。
因此,用于在高容量存储器设备中实施ECC的技术可以找到效用。
附图说明
参考附图而提供了详细的实施方式。在附图中,附图标记的最左边的数字标识了在其中该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或相同的项目。
图1是根据在本文中所讨论的各个实施例的示意方框图,其示出了用于实施嵌入的ECC地址映射的装置的组件。
图2A是根据在本文中所讨论的各个实施例的可以适应于实施嵌入的ECC地址映射的示例性存储器的示意方框图。
图2B是根据在本文中所讨论的各个实施例的存储器页的示意图。
图2C是根据在本文中所讨论的各个实施例的存储器映射方案的示意图。
图3-4是根据在本文中所讨论的各个实施例的示出了用于实施嵌入的ECC地址映射的方法中的操作的流程图。
图5是根据在本文中所讨论的各个实施例的针对嵌入的ECC地址映射的存储器映射方案的示意图。
图6-10是根据在本文中所讨论的各个实施例的可以适应于实施ECC存储器管理的电子设备的示意方框图。
具体实施方式
在以下的描述中,为了提供对各个实施例的透彻的理解而阐述了许多具体细节。然而,可以在没有具体细节的情况下实践本发明的各个实施例。在其他实例中,没有详细地描述公知的方法、过程、组件和电路,以便不使本发明的实施例晦涩难懂。而且,可以利用例如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件和软件的一些组合的各种方式来执行本发明的实施例的各个方面。为了本公开的目的提及的“逻辑”将表示硬件、软件或其一些组合。
在本文中所描述的是用于将ECC比特映射至存储器设备(例如,动态随机存取存储器(DRAM)设备)的一部分中的技术,其中所述存储器设备的一部分不包括专用的ECC容量。在各个实施例中,针对任意给定的高速缓存行的ECC比特可以位于与该高速缓存行相同的DRAM页(或行)中。这允许公共DRAM激活命令同时用于高速缓存行数据存取和ECC数据存取,从而节能并降低延迟。在页中的ECC数据的布置可以被布置以增加页点击率,这可以共享针对第一高速缓存行读取的相同块的ECC数据比特。而且,被置换从而为ECC数据比特腾出空间的高速缓存行,以及保护被置换的高速缓存行所需要的ECC数据比特一起,被重新定位至替代的DRAM页。
在一些实施例中,可以将高速缓存行的块映射至DRAM物理空间中,使得,当连同存储器控制器而使用时,允许待机功率降低。如果支持低功率模式所需要的数据可以被分配到DRAM的小部分中,则利用部分阵列自刷新(PASR)技术将DRAM的剩余部分置于类似断电状态是可能的。
可以在各种电子设备(例如,包括服务器、台式计算机、笔记本型计算机、智能电话、平板计算机、便携式游戏机等)中提供在本文中所讨论的技术,其中所述电子设备可以包括存储器系统,所述存储器系统包括通常被组装成双列直插式存储模块(DIMM)的多个DRAM芯片。在一些实施例中,可以在将被集成在电子设备中的存储器控制器中实施逻辑。或者,可以在DIMM级处实施逻辑以控制DIMM中的多个DRAM的操作。
图1是根据在本文中所讨论的各个实施例的可以适应于实施嵌入的ECC地址映射的电子设备的组件的示意方框图示出。参考图1,在一些实施例中,中央处理单元(CPU)封装100可以包括耦合至控制集线器120的一个或多个CPU 110。控制集线器120包括存储器控制器122和存储器接口124。存储器控制器122通过总线126耦合至本地存储器130。
存储器接口124通过通信总线160耦合至一个或多个远程存储器设备140。存储器设备140可以包括控制器142以及一个或多个存储器库(bank)150。在各个实施例中,可以利用耦合至向控制器142提供通信链路的存储器通道144的一个或多个直插式存储模块(DIMM)来实施存储器组150。存储器设备140中的存储器组150的具体配置是不重要的。
在各个实施例中,存储器设备140可以被实施为利用一个或多个DRAM存储模块的存储器系统。图2A是根据在本文中所讨论的各个实施例的可以适应于实施ECC存储器管理的示例性存储器设备140的示意方框图。参考图2A,在一些实施例中,存储器设备140可以包括耦合至向存储器控制器142提供通信链路的存储器通道270的一个或多个直插式存储模块(DIMM)250。在图2A中描述的实施例中,每个DIMM包括第一组(rank)255和第二组260,其中的每个包括多个DRAM模块265。本领域技术人员将理解的是,存储器设备140可以包括更多或更少的DIMM 250,以及每DIMM的更多或更少的单元。而且,一些电子设备(例如,智能电话、平板计算机等)可以包括由一个或多个DRAM组成的更简单的存储器系统。
图2B是可以存储在DRAM 265中的存储器的页的示意图。在一些实施例中,存储器的每个2048B页保持30个高速缓存行的数据,其中的每个是64字节并且每高速缓存行有4B的ECC数据。因此,2048B中的1920B用于数据,同时,剩余部分被分配至ECC数据和元数据。在一些实施例中,将ECC数据存储在页的末尾,如图2B所示。
在一些实施例中,64B的高速缓存行和32B的ECC数据中可以跨相同的数据通道被递送。可以使用BL8的突发长度来读取高速缓存行,而可以使用BL4来读取ECC数据。
如上文所述,在一些实施例中,存储控制器122或存储器设备140中的控制器142之中的至少一个包括用于实施嵌入的ECC地址映射操作的逻辑。将参考图3-5来描述通过存储器控制器122和/或控制器142实施的ECC地址映射操作。图3示出了可以通过存储器控制器122或存储器设备140中的控制器142中的至少一个而实施的高速缓存行写入操作,以实施嵌入的ECC地址映射。例如高速缓存行读取、ECC写入和ECC读取的其他操作具有相似的流程。参考图3,在操作310处,存储器控制器122或控制器142接收对将高速缓存行数据写入至本地存储器130或存储器设备140的页的请求。
在操作320处,将被置换的高速缓存行重映射至替代的存储器位置。参考图2C,在一些实施例中,存储器设备被分成多个部分阵列280并且被置换的高速缓存行被重映射至部分阵列的顶部,其中写入操作定向至该部分阵列的顶部。在操作325处,将高速缓存行数据存储在存储器的页中。
如图2C所示,构建了所得到的存储器,使得每个部分阵列包括数据和保护在部分阵列中的数据所必需的所有的ECC信息两者。因此,可以利用部分阵列自刷新(PASR)逻辑将每个部分阵列都独立地置于低功率状态,从而降低存储器设备140的功率消耗。
参考图4-5描述了存储器映射操作的进一步的方面。参考图4-5,当存储器存取请求到达时,基于选定的页和交错规则,将主机系统地址映射到DRAM线性库地址映射中。
如果在操作415处,列地址的最重要的比特不都是1,则将应用标准地址映射,并且控制传递至操作420。如果在操作420处,请求是针对高速缓存行存取的,那么控制传递至操作425并且应用标准高速缓存行映射。相反,如果在操作420处,存储器请求是针对ECC存取的,则控制传递至操作430并且生成标准ECC编址。
参考回操作415,如果线性库地址的最重要的比特都是1,则将应用替代的映射,并且控制传递至操作440。如果在操作440处,存储器请求是针对高速缓存行存取的,则控制传递至操作445并且应用替代的高速缓存行映射。相反,如果在操作440处,存储器请求是针对ECC存取的,则控制传递至操作450并且生成替代地ECC编址。
图5示出了具有2048B页大小和8个分区的存储器设备的具体的实施例。在该示例中,最重要的4列地址比特用于确定高速缓存行存取或ECC存取将使用标准映射还是替代映射。该示意图也示出了针对高速缓存行存取和ECC存取的标准映射和替代的映射。该示意图还示出了如何操纵标准映射的地址和替代地映射的地址,以将高速缓存行的八个块中的一个和关联的ECC一起定位到八个DRAM分区中的一个中。在该示例中,DRAM使用行地址中最重要的3比特以选择分区。
如上文所述,在一些实施例中,电子设备可以被实现为计算机系统。
图6示出了根据本发明的实施例的计算系统600的方框图。计算系统600可以包括经由互连网络(或总线)604通信的一个或多个中央处理单元(CPU)602或处理器。处理器602可以包括通用处理器、(处理通过计算机网络603进行通信的数据的)网络处理器、或其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC)处理器)。此外,处理器602可以具有单核心或多核心设计。具有多核心设计的处理器602可以将不同类型的处理器核心集成在相同的集成电路(IC)管芯上。另外,具有多核心设计的处理器602可以被实施为对称或非对称的多处理器。在实施例中,处理器602中的一个或多个可以相同或相似于图1的CPU110。例如,处理器602中的一个或多个可以包括参考图1-3所讨论的控制单元120。另外,参考图3-5所讨论的操作可以由系统600的一个或多个组件执行。
芯片组606也可以与互连网络604通信。芯片组606可以包括存储器控制集线器(MCH)608。MCH 608可以包括与存储器612(可以相同或相似于图1的存储器130)通信的存储器控制器610。存储器612可以存储数据,所述数据包括可以由CPU 602或包括在计算系统600中的任何其他设备执行的指令的序列。在本发明的一个实施例中,存储器612可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、或其他类型的存储设备。也可以利用非易失性存储器,例如硬盘。诸如多个CPU和/或多个系统存储器的额外的设备可以经由互连网络604进行通信。
MCH 608也可以包括与显示设备616通信的图形接口614。在本发明的一个实施例中,图形接口614可以经由加速图形端口(AGP)与显示设备616进行通信。在本发明的实施例中,显示器616(例如平板显示器)可以通过例如信号转换器与图形接口614进行通信,该图形转换器用于将存储在诸如视频存储器或系统存储器的存储设备中的图像的数字表示转化成由显示器翻译并显示的显示信号。在由翻译显示器616翻译并随后在显示器上显示之前,由显示设备产生的显示信号可以通过各种控制设备。
集线器接口618可以允许MCH 608和输入/输出控制集线器(ICH)620进行通信。ICH620可以提供到与计算系统600进行通信的I/O设备的接口。ICH 620可以通过外部桥(或控制器)624与总线622进行通信,其中外部桥624例如外部设备互连(PCI)桥、通用串行总线(USB)控制器、或其他类型的外部设备或控制器。桥624可以在CPU 602和外部设备之间提供数据通路。可以利用其它类型的拓扑结构。另外,多个总线可以例如,通过多个桥或控制器与ICH 620进行通信。此外,在本发明的各个实施例中,与ICH 620通信的其它外部设备可以包括集成驱动电子(IDE)或小计算机系统接口(SCSI)硬盘驱动器、USB端口、鼠标、并行接口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))、或其他设备。
总线622可以与音频设备626、一个或多个磁盘驱动器628、以及与计算机网络603通信的网络接口设备630进行通信。其他设备可以经由总线622进行通信。另外,在本发明的一些实施例中,各种组件(例如网络接口设备630)可以和MCH 608进行通信。此外,可以将处理器602和在本文中所讨论的一个或多个其他组件结合以形成单个芯片(例如,以提供片上系统(SOC))。此外,在本发明的其他实施例中,图形加速器616可以被包括在MCH 608中。
此外,计算系统600可以包括易失性和/或非易失性存储器(或存储设备)。例如,非易失性存储器可以包括下列设备中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器(例如,628)、软盘、光盘ROM(CD-ROM)、数字化多功能盘(DVD)、闪速存储器、磁光盘、或能够存储电子数据(例如,包括指令)的其他类型的非易失性机器可读介质。
图7示出了根据本发明的实施例的计算系统700的方框图。系统700可以包括702-1到702-N的一个或多个处理器(在本文中一般被称作“多个处理器702”或“处理器702”)。处理器702可以经由互连网络或总线704进行通信。每个处理器可以包括多个组件,为了清楚起见,其中,仅参考处理器702-1讨论了其中的一些组件。相应地,剩余的处理器702-2到702-N中的每个都可以包括相同或相似于参考处理器702-1所讨论的组件。
在一个实施例中,处理器702-1可以包括一个或多个处理器核心706-1到706-M(在本文中被称作“多个核心706”或更一般地被称作“核心706”)、共享的高速缓存708、路由器710、和/或处理器控制逻辑或单元720。可以在单个集成电路(IC)芯片上实施处理器核心706。而且,芯片可以包括一个或多个共享的和/或专用的高速缓存(例如,高速缓存708)、总线或互连(例如,总线或互连网络712)、存储器控制器、或其他组件。
在一个实施例中,路由器710可以用于在处理器702-1和/或系统700的各个组件之间进行通信。而且,处理器702-1可以包括多于一个路由器710。此外,许多路由器710可以保持通信以使得数据能够在处理器702-1内或外的各个组件之间进行路由。
共享的高速缓存708可以存储由处理器702-1的一个或多个组件(例如,核心706)利用的数据(例如,包括指令)。例如,共享的高速缓存708可以将存储在存储器714中的数据在本地进行高速缓存,以用于由处理器702的组件更快地存取。在实施例中,高速缓存708可以包括中级高速缓存(例如,2级(L2)、3级(L3)、4级(L4))、或其他等级的高速缓存)、末级高速缓存(LLC)、和/或其组合。而且,处理器702-1的各个组件可以通过总线(例如,总线712)和/或存储器控制器或集线器,与共享的高速缓存708直接进行通信。如在图7中所示,在一些实施例中,核心706中的一个或多个可以包括1级(L1)高速缓存716-1(在本文中通常被称作“L1高速缓存716”)。在一个实施例中,控制单元720可以包括用于实施上文中参考图2中的存储器控制器122描述的操作的逻辑。
图8示出了根据本发明的实施例的处理器核心706的部分和计算系统的其他组件的方框图。在一个实施例中,图8中所示的箭头示出了指令通过核心706的流动方向。例如参考图7所讨论的,可以在单个集成电路芯片(或管芯)上实施一个或多个处理器核心(例如处理器核心706)。而且,芯片可以包括一个或多个共享的和/或专用的高速缓存(例如,图7的高速缓存708)、互连(例如,图7的互连704和/或712)、控制单元、存储器控制器、或其他组件。
如在图8中所示,处理器核心706可以包括用于提取指令(包括具有条件分支的指令)以供由核心706执行的提取单元802。可以从诸如存储器714的任何存储设备中提取指令。核心706也可以包括用于解码被提取的指令的解码单元804。例如,解码单元804可以将被提取的指令解码成多个微指令(微操作)。
此外,核心706可以包括调度单元806。调度单元806可以执行与存储经解码的指令相关联的(例如,从解码单元804接收到的)多种操作,直到所述指令准备好进行派遣,例如,直到经解码的指令的所有源值变得可用。在一个实施例中,调度单元806可以将经解码的指令调度和/或发送(或派遣)至执行单元808以进行执行。执行单元808可以在被派遣的指令被解码(例如,由解码单元804)和派遣(例如,由调度单元806)之后执行该派遣的指令。在实施例中,执行单元808可以包括多余一个执行单元。执行单元808也可以执行多种算术操作,例如,加、减、乘、和/或除,并且可以包括一个或多个算术逻辑单元(ALU)。在实施例中,协处理器(未示出)可以与执行单元808协同而执行多种算术操作。
此外,执行单元808可以乱序地执行指令。因此,在一个实施例中,处理器核心706可以是乱序处理器核心。核心706也可以包括退出单元810。退出单元810可以在提交被执行的指令后,退出所执行的指令。在一个实施例中,所执行的指令的退出可以导致处理器状态从指令的执行中被提交,由指令所使用的物理寄存器被解除分配等。
核心706也可以包括用于使能处理器核心706的组件和其他组件(例如,参考图8所讨论的组件)之间的经由一个或多个总线(例如,总线704和/或712)的通信的总线单元814。核心706也可以包括用于存储由核心706的多个组件存取的数据(例如,与功率消耗状态设置相关的值)的一个或多个寄存器816。
此外,即使图7示出了将经由互连712而耦合至核心706的控制单元720,在各个实施例中,控制单元720可以位于其他位置,例如在核心706内,经由总线704耦合至核心等。
在一些实施例中,在本文中所讨论的组件中的一个或多个可以被实现为片上系统(SOC)设备。图9示出了根据实施例的SOC封装的方框图。如图9中所示,SOC 902包括一个或多个中央处理单元(CPU)核心920、一个或多个图形处理器单元(GPU)核心930、输入/输出(I/O)接口940、以及存储器控制器942。SOC封装902的各个组件可以耦合至互连或总线,例如参考其他示图所讨论的。另外,SOC封装902可以包括更多或更少的组件,例如那些在本文中参考其他示图所讨论的组件。此外,SOC封装902中的每个组件都可以包括一个或多个其他组件,例如如在本文中参考其他示图所讨论的。在一个实施例中,在一个或多个集成电路(IC)管芯(例如,其被封装在单个半导体设备中)上提供SOC封装902(及其组件)。
如在图9中所示,SOC封装902经由存储器控制器942耦合至存储器960(其可以相似或相同于在本文中参考其他示图所讨论的存储器)。在一个实施例中,存储器960(或其一部分)可以被集成在SOC封装902上。
可以将I/O接口940例如经由例如在本文中参考其他示图所讨论的互连和/或总线耦合至一个或多个I/O设备970。I/O设备970可以包括键盘、鼠标、触摸板、显示器、图片/视频捕获设备(例如,相机或摄影机/录像机)、触摸屏、扬声器等中的一个或多个。
图10示出了根据本发明的实施例的按照点对点(PtP)配置布置的计算系统1000。特别地,图10示出了其中处理器、存储器和输入/输出设备通过多个点对点接口进行互连的系统。参考图2所讨论的操作可以由系统1000的一个或多个组件来执行。
如在图10中所示,系统1000可以包括若干个处理器,为了清楚起见,仅示出了其中的两个,处理器1002和1004。处理器1002和1004每个可以包括本地存储器控制器集线器(MCH)1006和1008以使能与存储器1010和1012的通信。在一些实施例中,MCH 1006和1008可以包括图1的存储器控制器122和/或存储器接口124。
在实施例中,处理器1002和1004可以是参考图7所讨论的处理器702中的一个。处理器1002和1004可以分别利用PtP接口电路1016和1018经由点对点(PtP)接口1014来交换数据。另外,处理器1002和1004每个可以利用点对点接口电路1026、1028、1030和1032经由个体的PtP接口1022和1024来与芯片组1020交换数据。芯片组1020可以进一步例如,利用PtP接口电路1037经由高性能图形接口1036来与高性能图形电路1034交换数据。
如在图10中所示,图1的核心106和/或高速缓存108中的一个或多个可以位于处理器1002和1004内。然而,本发明的其他实施例可以在图10的系统1000内的其他电路、逻辑单元、或设备中存在。此外,本发明的其他实施例可以分布于图10中所示出的多个电路、逻辑单元或设备中。
芯片组1020可以利用PtP接口电路1041与总线1040进行通信。总线1040可以具有与其通信的一个或多个设备,例如总线桥1042和I/O设备1043。经由总线1044,总线桥1042可以与诸如键盘/鼠标1045、通信设备1046(例如,调制解调器、网络接口设备、或可以与计算机网络1003进行通信的其他通信设备)、音频I/O设备、和/或数据存储设备1048的其他设备进行通信。数据存储设备1048(其可以是硬盘驱动器或基于NAND闪存的固态驱动器)可以存储可以由处理器1002和/或1004执行的代码1049。
以下的示例关于进一步的实施例。
示例1是包括处理器和用于接收对在存储器设备上的数据进行存取的请求的存储器控制逻辑的电子设备,其中,将所述数据映射至包括多个高速缓存行的存储器页,置换多个高速缓存行中的至少一部分以使纠错码信息与数据嵌在一起,将所述多个高速缓存行中的所述一部分重映射至另一存储单元,并且存取所述存储器页上的数据和纠错码信息。
在示例2中,示例1的主题可以可选地包括数据总线,其中数据和纠错码信息是在数据总线上传输的。
在示例3中,示例1-2中的任何一个的主题可以可选地包括用于将与多个高速缓存行关联的纠错码信息重映射至另一存储器位置的逻辑。
在示例4中,可以设置示例1-3中的任何一个的主题,使得存储设备被分成多个部分阵列,并且写入请求被定向至选定的部分阵列,而且还包括用于将多个高速缓存行的部分重映射到选定的部分阵列中的预先确定的位置的逻辑。
在示例5中,可以设置示例1-4中的任何一个的主题,使得预先确定的单元对应于选定的部分阵列的顶部。
在示例6中,示例1-3中的任何一个的主题可以可选地包括用于削减到选定的部分阵列的功率的逻辑。
在示例7中,可以设置示例1-6中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是写入请求并且使得数据和纠错码存储在相同的存储器页上。
在示例8中,可以设置示例1-6中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是读取请求并且使得数据和纠错码从相同的存储器页中取回。
示例9是包括用于接收对存储器设备上的数据进行存取的请求的逻辑的存储器控制器,其中,所述数据被映射至包括多个高速缓存行的存储器页,置换多个高速缓存行中的至少一部分以使纠错码信息与数据嵌在一起,将多个高速缓存行的所述一部分重映射至另一存储器位置并且存取在存储器页上的数据和纠错码信息。
在示例10中,示例9的主题可以可选地包括数据总线,其中数据和纠错码信息是在数据总线上传输的。
在示例11中,示例9-10中的任何一个的主题可以可选地包括用于将与多个高速缓存行关联的纠错码信息重映射至另一存储器位置的逻辑。
在示例12中,可以设置示例9-11中的任何一个的主题,使得存储器设备被分成多个部分阵列并且使写入请求被定向至选定的部分阵列,并且进一步包括用于将多个高速缓存行的所述一部分重映射至选定的部分阵列中预先确定的位置的逻辑。
在示例13中,可以设置示例9-12中的任何一个的主题,使得预先确定的位置对应于选定的部分阵列的顶部。
在示例14中,示例9-13中的任何一个的主题可以可选地包括用于削减选定的部分阵列的功率的逻辑。
在示例15中,可以设置示例9-14中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是写入请求并且使得数据和纠错码存储在相同的存储器页上。
在示例16中,可以设置示例9-15中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是读取请求并且使得数据和纠错码从相同的存储器页中取回。
示例17是包括具有一个或多个存储器单元的存储器设备、用于接收对存储器设备上数据进行存取的存储器控制逻辑的装置,其中,数据被映射至包括多个高速缓存行的存储器页,置换多个高速缓存行的至少一部分以使纠错码信息与数据嵌在一起、将多个高速缓存行的所述一部分重映射至另一存储器位置并且存取存储器页上的数据和纠错码信息。
在示例18中,示例17的主题可以可选地包括数据总线,其中数据和纠错码信息是在数据总线上传输的。
在示例19中,示例17-18中的任何一个的主题可以可选地包括用于将与多个高速缓存行关联的纠错码信息重映射至另一存储器位置的逻辑。
在示例20中,可以设置示例17-19中的任何一个的主题,使得存储器设备被分成多个部分阵列并且使得写入请求被定向至选定的部分阵列,并且进一步包括用于将多个高速缓存行的所述一部分重映射至选定的部分阵列中预先确定的位置的逻辑。
在示例21中,可以设置示例17-20中的任何一个的主题,使得预先确定的位置对应于选定的部分阵列的顶部。
在示例22中,示例17-21中的任何一个的主题可以可选地包括用于削减选择的部分阵列的功率的逻辑。
在示例23中,可以设置示例17-22中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是写入请求并且使得数据和纠错码存储在相同的存储器页上。
在示例24中,可以设置示例17-23中的任何一个的主题,使得对存储器设备上的数据进行存取的请求是读取请求并且使得数据和纠错码从相同的存储器页中取回。
示例25是基于处理器的方法,该方法用于将数据映射至存储器设备,包括在处理设备中接收对存储器设备上的数据进行存取的请求,其中,所述数据被映射至包括多个高速缓存行的存储器页,置换多个高速缓存行的至少一部分以使纠错码信息与数据嵌在一起,将多个高速缓存行的所述一部分重映射至另一存储器位置并且存取存储器页上的数据和纠错码信息。
在示例26中,示例25的数据和纠错码信息是在单个数据总线上共同传输的。
在示例27中,示例25-26中的任何一个的主题可以可选地包括用于将与多个高速缓存行关联的纠错码信息重映射至另一存储器位置的逻辑。
在示例28中,示例25-27中的任何一个的主题可以可选地包括一种布置,其中存储器设备被分成多个部分阵列,并且写入请求被定向至选定的部分阵列,并且进一步包括将多个高速缓存行的所述一部分重映射至选定的部分阵列中预先确定的位置。
在示例29中,示例25-28中的任何一个的主题可以可选地包括一种布置,其中预先确定的单元对应于选定的部分阵列的顶部。
在示例30中,示例25-27中的任何一个的主题可以可选地包括削减选定的部分阵列的功率。
在本发明的各个实施例中,在本文中例如参考图1-9所讨论的操作可以被实施为硬件(例如,电路系统)、软件、固件、微代码、或其组合,其中,所述操作可以作为计算机程序产品而提供,例如,包括其上储存有用于对计算机编程以执行本文中所讨论的过程的指令(或软件程序)的有形的(例如,非易失性)机器可读或计算机可读介质。另外,通过举例的方式,术语“逻辑”可以包括软件、硬件、或软件和硬件的组合。机器可读介质可以包括例如本文中所讨论的那些存储设备。
在说明书中提及的“一个实施例”或“实施例”意思是结合实施例描述的特定的特征、结构、或特性可以被包含在至少一个实现中。在说明书中不同的地方出现的短语“在一个实施例中”可以或可以不是指相同的实施例。
另外,在具体实施方式和权利要求书中,可以使用术语“耦合”和“连接”,及其派生词。在本发明的一些实施例中,“连接”可以用于指示两个或更多个元件互相直接物理或电气接触。“耦合”可以表示两个或更多个元件直接物理或电气接触。然而,“耦合”也可以表示两个或更多个元件可能互相没有直接接触,但可能仍然互相合作或交互。
因此,尽管已经以特定于结构特征和/或方法行为的语言描述了本发明的实施例,但是应当理解的是,要求保护的主题可以不限于所描述的具体特征或行为。相反地,公开的特定特征和行为是实现所要求保护的主题的样本形式。

Claims (19)

1.一种电子设备,包括:
处理器;以及
存储器控制逻辑,其使用互连网络与所述处理器电通信,所述存储器控制逻辑适用于:
通过所述互连网络从所述处理器接收将高速缓存行数据写入到存储器设备的写入请求,所述存储器设备使用通信总线与所述存储器控制逻辑电通信,其特征在于,所述高速缓存行数据被映射至所述存储器设备的存储器页,所述存储器页包括多个高速缓存行并且被划分成多个部分阵列;
置换所述存储器页中的所述多个高速缓存行中的至少一部分以嵌入针对所述高速缓存行数据的纠错码信息;
将所述多个高速缓存行中被置换的部分重映射至位于所述写入请求所指向的部分阵列的顶部处的另一存储器位置;并且
使用所述通信总线对于所述存储器设备将所述高速缓存行数据和针对所述高速缓存行数据的所述纠错码信息写入到所述存储器页中位于允许公共存储器激活命令获取所述高速缓存行数据和针对所述高速缓存行数据的纠错码信息二者的位置处,从而降低延迟和功率使用。
2.根据权利要求1所述的电子设备,其特征在于,所述电子设备还包括用于将与所述多个高速缓存行相关联的纠错码信息重映射至另一存储器位置的逻辑。
3.根据权利要求1所述的电子设备,其特征在于,所述电子设备还包括逻辑,用于:
接收针对所述存储器页的存储器存取请求,其中,所述存储器存取请求包括列地址;以及
当所述列地址中的多个最重要的比特全部具有值一(1)时,应用第一映射策略。
4.根据权利要求3所述的电子设备,其特征在于,所述电子设备还包括用于当所述列地址中的多个最重要的比特不全部具有值一(1)时应用第二映射策略的逻辑。
5.根据权利要求1所述的电子设备,其特征在于,所述电子设备还包括用于削减到所述多个部分阵列中的至少一个的功率的逻辑,其中,所述多个部分阵列中的每一个都包括独立的低功率状态。
6.根据权利要求1所述的电子设备,其特征在于,所述高速缓存行数据和所述纠错码信息被存储在相同的存储器页上。
7.根据权利要求1所述的电子设备,其特征在于,所述电子设备还包括用于利用针对所述高速缓存行数据和所述纠错码信息二者的公共激活命令的逻辑。
8.一种存储器控制器,其包括具有以下功能的逻辑:
从使用互连网络与所述逻辑电通信的处理器接收将高速缓存行数据写入到存储器设备的写入请求,所述存储器设备使用通信总线与所述逻辑电通信,其特征在于,所述高速缓存行数据被映射至所述存储器设备的存储器页,所述存储器页包括多个高速缓存行并且被划分成多个部分阵列;
置换所述存储器页中的所述多个高速缓存行中的至少一部分以嵌入针对所述高速缓存行数据的纠错码信息;
将所述多个高速缓存行中被置换的部分重映射至位于所述写入请求所指向的部分阵列的顶部处的另一存储器位置;并且
使用所述通信总线对于所述存储器设备将所述高速缓存行数据和针对所述高速缓存行数据的所述纠错码信息写入到所述存储器页中位于允许公共存储器激活命令获取所述高速缓存行数据和针对所述高速缓存行数据的纠错码信息二者的位置处,从而降低延迟和功率使用。
9.根据权利要求8所述的存储器控制器,其特征在于,所述存储器控制器还包括用于将与所述多个高速缓存行相关联的纠错码信息重映射至另一存储器位置的逻辑。
10.根据权利要求8所述的存储器控制器,其特征在于,所述存储器控制器还包括逻辑,用于:
接收针对所述存储器页的存储器存取请求,其中,所述存储器存取请求包括列地址;以及
当所述列地址中的多个最重要的比特全部具有值一(1)时,应用第一映射策略。
11.根据权利要求10所述的存储器控制器,其特征在于,所述存储器控制器还包括用于当所述列地址中的多个最重要的比特不全部具有值一(1)时应用第二映射策略的逻辑。
12.根据权利要求8所述的存储器控制器,其特征在于,所述存储器控制器还包括用于削减到所述多个部分阵列中的至少一个的功率的逻辑,其中,所述多个部分阵列中的每一个都包括独立的低功率状态。
13.根据权利要求8所述的存储器控制器,其特征在于,所述高速缓存行数据和所述纠错码信息被存储在相同的存储器页上。
14.一种装置,包括:
具有一个或多个存储单元的存储器设备;以及
存储器控制逻辑,其使用通信总线与所述存储器设备电通信并且适用于:
从使用互连网络与所述存储器控制逻辑电通信的处理器接收将高速缓存行数据写入到所述存储器设备的写入请求,其特征在于,所述高速缓存行数据被映射至所述存储器设备的存储器页,所述存储器页包括多个高速缓存行并且被划分成多个部分阵列;
置换所述存储器页中的所述多个高速缓存行中的至少一部分以嵌入针对所述高速缓存行数据的纠错码信息;
将所述多个高速缓存行中被置换的部分重映射至位于所述写入请求所指向的部分阵列的顶部处的另一存储器位置;并且
使用所述通信总线对于所述存储器设备将所述高速缓存行数据和针对所述高速缓存行数据的所述纠错码信息写入到所述存储器页中位于允许公共存储器激活命令获取所述高速缓存行数据和针对所述高速缓存行数据的纠错码信息二者的位置处,从而降低延迟和功率使用。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括用于将与所述多个高速缓存行相关联的纠错码信息重映射至另一存储器位置的逻辑。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括逻辑,用于:
接收针对所述存储器页的存储器存取请求,其中,所述存储器存取请求包括列地址;以及
当所述列地址中的多个最重要的比特全部具有值一(1)时,应用第一映射策略。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括用于当所述列地址中的多个最重要的比特不全部具有值一(1)时应用第二映射策略的逻辑。
18.根据权利要求14所述的装置,其特征在于,所述装置还包括用于削减到所述多个部分阵列中的至少一个的功率的逻辑,其中所述多个部分阵列中的每一个都包括独立的低功率状态。
19.根据权利要求14所述的装置,其特征在于,所述高速缓存行数据和所述纠错码信息被存储在相同的存储器页上。
CN201480030770.9A 2013-06-28 2014-06-24 嵌入的ecc地址映射 Expired - Fee Related CN105264342B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/930,600 2013-06-28
US13/930,600 US10031802B2 (en) 2013-06-28 2013-06-28 Embedded ECC address mapping
PCT/US2014/043766 WO2014209936A1 (en) 2013-06-28 2014-06-24 Embedded ecc address mapping

Publications (2)

Publication Number Publication Date
CN105264342A CN105264342A (zh) 2016-01-20
CN105264342B true CN105264342B (zh) 2019-05-14

Family

ID=52116923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480030770.9A Expired - Fee Related CN105264342B (zh) 2013-06-28 2014-06-24 嵌入的ecc地址映射

Country Status (8)

Country Link
US (1) US10031802B2 (zh)
EP (1) EP3014227A4 (zh)
JP (1) JP6231194B2 (zh)
KR (1) KR101732841B1 (zh)
CN (1) CN105264342B (zh)
BR (1) BR112015029854A2 (zh)
RU (1) RU2644529C2 (zh)
WO (1) WO2014209936A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031802B2 (en) 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
US9954557B2 (en) * 2014-04-30 2018-04-24 Microsoft Technology Licensing, Llc Variable width error correction
US10268541B2 (en) * 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
US10853168B2 (en) * 2018-03-28 2020-12-01 Samsung Electronics Co., Ltd. Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM)
US11307771B2 (en) * 2020-07-10 2022-04-19 Micron Technology, Inc. Configurable link interfaces for a memory device
US11288188B1 (en) * 2021-01-21 2022-03-29 Qualcomm Incorporated Dynamic metadata relocation in memory

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467048B1 (en) * 1999-10-07 2002-10-15 Compaq Information Technologies Group, L.P. Apparatus, method and system for using cache memory as fail-over memory
US6427188B1 (en) * 2000-02-09 2002-07-30 Hewlett-Packard Company Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US6996766B2 (en) 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6961821B2 (en) 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7149945B2 (en) 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality
JP3714558B2 (ja) 2003-10-10 2005-11-09 ソニー株式会社 ファイル管理装置、ファイル管理方法、ファイル管理方法のプログラム及びファイル管理方法のプログラムを記録した記録媒体
US7124254B2 (en) * 2004-05-05 2006-10-17 Sun Microsystems, Inc. Method and structure for monitoring pollution and prefetches due to speculative accesses
US20060218467A1 (en) 2005-03-24 2006-09-28 Sibigtroth James M Memory having a portion that can be switched between use as data and use as error correction code (ECC)
US7650558B2 (en) * 2005-08-16 2010-01-19 Intel Corporation Systems, methods, and apparatuses for using the same memory type for both error check and non-error check memory systems
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US7890836B2 (en) 2006-12-14 2011-02-15 Intel Corporation Method and apparatus of cache assisted error detection and correction in memory
US8464138B2 (en) 2008-08-20 2013-06-11 Qualcomm Incorporated Effective utilization of header space for error correction in aggregate frames
US8291259B2 (en) 2009-04-15 2012-10-16 International Business Machines Corporation Delete of cache line with correctable error
JP5414350B2 (ja) 2009-05-08 2014-02-12 キヤノン株式会社 メモリ制御回路、及び、その制御方法
US8495464B2 (en) * 2010-06-28 2013-07-23 Intel Corporation Reliability support in memory systems without error correcting code support
US8719664B1 (en) * 2011-04-12 2014-05-06 Sk Hynix Memory Solutions Inc. Memory protection cache
US9003247B2 (en) * 2011-04-28 2015-04-07 Hewlett-Packard Development Company, L.P. Remapping data with pointer
US9391637B2 (en) * 2012-03-30 2016-07-12 Intel Corporation Error correcting code scheme utilizing reserved space
CN103019963B (zh) 2012-12-31 2016-07-06 华为技术有限公司 一种高速缓存的映射方法及存储设备
US10031802B2 (en) 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping

Also Published As

Publication number Publication date
US20150006993A1 (en) 2015-01-01
RU2644529C2 (ru) 2018-02-12
KR101732841B1 (ko) 2017-05-04
WO2014209936A1 (en) 2014-12-31
BR112015029854A2 (pt) 2017-07-25
CN105264342A (zh) 2016-01-20
JP2016520937A (ja) 2016-07-14
EP3014227A4 (en) 2017-02-22
KR20150143598A (ko) 2015-12-23
JP6231194B2 (ja) 2017-11-15
RU2015151167A (ru) 2017-06-01
EP3014227A1 (en) 2016-05-04
US10031802B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
CN105264342B (zh) 嵌入的ecc地址映射
US9009580B2 (en) System and method for selective error checking
US9547535B1 (en) Method and system for providing shared memory access to graphics processing unit processes
US8144515B2 (en) Interleaved flash storage system and method
US8966195B2 (en) Direct memory access and super page swapping optimizations for a memory blade
US10769013B1 (en) Caching error checking data for memory having inline storage configurations
KR20080011630A (ko) Gpu에서의 페이지 매핑을 위한 전용 메커니즘
CN104050089A (zh) 片上系统及其操作方法
CN103914405A (zh) 包括存储管理单元的片上系统及其存储地址转换方法
KR101743409B1 (ko) 메모리 관리
US10241926B2 (en) Migrating buffer for direct memory access in a computer system
TW201717029A (zh) 對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示
CN105408875A (zh) 在存储器接口上的分布式过程执行和文件系统
US9424198B2 (en) Method, system and apparatus including logic to manage multiple memories as a unified exclusive memory
US10126966B1 (en) Rotated memory storage for fast first-bit read access
US8996935B2 (en) Memory operation of paired memory devices
CN107783909B (zh) 一种内存地址总线扩展方法及装置
US11544201B2 (en) Memory tracing in an emulated computing system
US20200327049A1 (en) Method and system for memory expansion with low overhead latency
CN107870736B (zh) 支持大于4gb非线性闪存的方法及装置
CN117312182B (zh) 基于便签式存储的向量数据分散方法、装置及计算机设备
US20130151766A1 (en) Convergence of memory and storage input/output in digital systems
US20070143573A1 (en) Data processing apparatus and method using translation table emulation
US20150117130A1 (en) Programming multiple serial input devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190514

Termination date: 20210624