CN101711385A - 非ecc组件中的ecc实现 - Google Patents
非ecc组件中的ecc实现 Download PDFInfo
- Publication number
- CN101711385A CN101711385A CN200880013299A CN200880013299A CN101711385A CN 101711385 A CN101711385 A CN 101711385A CN 200880013299 A CN200880013299 A CN 200880013299A CN 200880013299 A CN200880013299 A CN 200880013299A CN 101711385 A CN101711385 A CN 101711385A
- Authority
- CN
- China
- Prior art keywords
- ecc
- data
- address
- physical address
- physical
- 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
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 38
- 238000004891 communication Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000004087 circulation Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000001994 activation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000723353 Chrysanthemum Species 0.000 description 1
- 235000005633 Chrysanthemum balsamita Nutrition 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种用来于非错误更正码(ECC)兼容组件中执行错误更正码检查的方法和装置。本方法包含接收逻辑地址,其中该逻辑地址映对至存储器的第一和第二物理地址。存储器的第一和第二物理地址对应于分别储存数据和相应ECC的存储器位置。本方法复包括转译逻辑地址成该第一和第二物理地址、通过数据通路存取该数据、通过相同的数据通路各自地存取ECC、以及检查使用该ECC的数据的完整性。
Description
技术领域
本发明系关于计算机系统,尤系关于存储器子系统中的错误检查和更正。
背景技术
许多高阶计算机系统在他们的存储器子系统内包含已知为的特征“ECC”。ECC(错误更正码(error correcting code),或者错误检查和更正(error checking and correction))用来侦测于存储器中的讹误数据,以及若可能的话,更正该讹误数据。由于不同的来源,譬如自然背景辐射、电性噪声、故障的组件、等等,而使得存储器中的数据也许变成讹误。
ECC子系统通过使用所希望的存储器内容而工作,该存储器内容作为用于计算额外的位以形成错误更正码的基础。组成ECC的数据和位储存于存储器中。于一些ECC兼容系统中,包括ECC的位可以与数据分离储存,其中ECC保护该数据(例如,如于一些RAID系统中)。于其它的ECC兼容计算机系统中,特殊的存储器装置用来储存数据和包括ECC的位。这些存储器装置需要额外的储存空间(12.5%于一个类型)用来储存ECC连同保护的数据。额外的储存空间依次需要额外的互连接(亦即,连接器和电路线迹)以传递在存储器控制器与存储器之间的额外的位。ECC存储器组件主要用于高阶计算机系统中,因此他们的使用未变成普及足以获得经济规模。因此,于存储器系统中执行ECC也许需要明显的额外成本。
除了成本因素外,于一些计算机系统中执行ECC存储器也许不可行。例如,用来在膝上型计算机系统执行额外互连接的实际空间和储存空间明显受到限制(若全部可获得)。也许一些桌上型计算机系统空间亦受到限制。因此于此种系统中不可能使用ECC兼容组件,即使在其它方面希望如此做。
发明内容
本发明揭示一种用来于非错误更正码兼容(non-ECC-compliant)组件中执行错误更正码检查(ECC)的方法和装置。于一个实施例中,本方法包含接收逻辑地址,其中该逻辑地址映对至存储器的第一和第二物理地址。存储器的第一和第二物理地址对应于分别储存数据和相应ECC的存储器位置。本方法复包括转译逻辑地址成该第一和第二物理地址、通过数据通路存取该数据、通过相同的数据通路各自地存取ECC、以及检查使用该ECC的数据的完整性。
于一个实施例中,存储器子系统包含存储器、数据通路、和通过数据通路耦接至存储器的存储器控制器。该存储器控制器耦接以接收逻辑地址并配置以转译该逻辑地址成第一和第二物理地址。第一物理地址对应于其中储存了数据的存储器位置,而该第二物理地址对应于其中储存了关联于数据的ECC的存储器位置。复配置存储器控制器以通过该数据通路存取数据、通过该数据通路各自地存取数据、以及检查使用该ECC的数据的完整性。
于不同的实施例中,可以配置一部分的数据和其相关联的ECC的储存而使得该部分的数据在存储器的相同页或列中。于此种方式,仅须提供单一列地址(随同二个分离的行地址)以存取数据和其对应的ECC。因为仅须一个列地址,因此可以避免存取损失(其中分离列必须预充电)。一般而言,在给定的存储器装置中数据和ECC的配置可以使得数据的位和其对应的ECC的位可以储存在物理邻接的位置中。
附图说明
基于阅读以上的详细说明并参考所附图式,本发明的态样将变得很清楚,其中:
图1为计算机系统的一个实施例图标;
图2为存储器子系统的一个实施例图标;
图3显示存储器的一个实施例的寻址的图标,其中在图中的各部分保留用于储存错误更正码(ECC);
图4显示方法的一个实施例图标,用来交换地址位以便确保数据和其相关ECC储存于存储器的同一页;
图5显示存储器模块的一个实施例的图标;以及
图6为使用具有非ECC兼容存储器装置的ECC子系统验证数据的完整性的一个实施例的流程图。
虽然此处所揭示的标的事物易受到各种修改和替代形式的影响,然该等标的事物的特定实施例已通过图式中实例的方式显示和予以详细说明。然而,应了解到此处特定实施例的图式和说明并不欲限制本发明于所揭示的特定形式,反之,本发明将涵盖所有落于由所附的申请专利范围所界定的精神和范围内的所有的修饰、等效、和改变。
具体实施方式
兹转至图1,显示计算机系统300的一个实施例。于图1的实施例中,计算机系统300包含几个处理节点312A、312B、312C、和312D。各处理节点经由包含在各个别处理节点312A至312D内的存储器控制器316A至316D而耦接至各自的存储器314A至314D。此外,处理节点312A至312D包含用来于该等处理节点312A至312D之间通讯的接口逻辑。例如,处理节点312A包含接口逻辑318A用来与处理节点312B通讯、接口逻辑318B用来与处理节点312C通讯、和第三接口逻辑318C用来与又另一处理节点(未显示)通讯。相似情况,处理节点312B包含接口逻辑318D、318E、和318F;处理节点312C包含接口逻辑318G、318H、和318I;处理节点312D包含接口逻辑318J、318K、和318L。处理节点312D经由接口逻辑318L而耦接与复数个输入/输出装置(例如,装置320A至320B于雏菊链配置)通讯。其它的处理节点可与另外的I/O装置以相似的方式通讯。
处理节点312A至312D执行基于封包的链路用于处理节点间的通讯。于本实施例中,链路执行为单方向线路组(例如,线路324A用来传送封包从处理节点312A至处理节点312B而线路324B用来传送封包从处理节点312B至处理节点312A)。其它组的线路324C至324H用来传送封包于其它处理节点之间如图4中所示。一般而言,各组的线路324可以包含一个或多个数据线路、一个或多个对应于该数据线路的时脉线路、和一个或多个指示被传输封包类型的控制线路。该链路可操作于快取一致样式(cache coherent fashion)用于处理节点之间的通讯,或者操作于不一致样式用于处理节点与I/O装置(或者总线桥接器,至譬如周边组件互连接(Peripheral Component Interconnect,PCI)总线或工业标准架构(Industry Standard Architecture,ISA)总线的习知构造的I/O总线)之间的通讯。而且,该链路可操作于不一致样式使用雏菊链接构于I/O装置之间,如所示。应注意的是待传输从一个处理节点至另一个处理节点的封包可通过一个或多个中间节点。例如,由处理节点312A传输至处理节点312D的封包可通过处理节点312B或处理节点312C其中一者,如图4中所示。可以使用任何适当的路线算法。计算机系统300的其它实施例可包含较图4中所示的实施例者更多或更少的处理节点。
一般而言,封包于节点之间线路324上可传送为一个或多个位时间。位时间可以是于对应时脉路上时脉讯号的上升或下降波缘。封包可包含用于起始异动的命令封包、用于维持快取一致性的探测封包、和来自于反应于探测和命令的反应封包。
除了存储器控制器和界面逻辑之外,处理节点312A至312D可包含一个或多个处理器。广言之,处理节点包括至少一个处理器并可视情况包含存储器控制器用于与存储器和其它所需要的逻辑通讯。尤其是,各处理节点312A至312D可包括一个或多个复制的处理器10如图1中所示(例如,包含如图2至图3中所示的各种结构和操作细节)。一个或多个处理器可包括芯片多重处理(chip multiprocessing,CMP)或芯片多绪(chip multithreaded,CMT)集成电路于处理节点中或形成该处理节点,或该处理节点可以具有任何其它所希望的内部结构。
存储器314A至314D可以包括任何适当的存储器装置。例如,存储器314A至314D可以包括一个或多个RAMBUS DRAM(RDRAM)、同步DRAM(SDRAM)、DDR SDRAM、静态RAM、等等。计算机系统300的地址空间被划分于存储器314A至314D之间。各处理节点312A至312D可包含存储器地图用来决定那些地址被映对至那些存储器314A至314D,并因此决定对于特定地址的存储器请求应路由那些处理节点312A至312D。于一个实施例中,对于计算机系统300内地址的一致点(coherency point)为耦接至储存对应于该地址的字节的存储器的存储器控制器316A至316D。换言之,存储器控制器316A至316D负责确保各存储器存取对应的存储器314A至314D发生于快取一致样式。存储器控制器316A至316D可以包括控制电路用于界接存储器314A至314D。此外,存储器控制器316A至316D可以包含用于排伫存储器请求的请求队列。
一般而言,接口逻辑318A至318L可以包括各种的缓冲器用来接收来自链路的封包,并缓冲储存待传送于该链路的封包。计算机系统300可以使用任何合适的流程控制机构用来传送封包。举例而言,于一个实施例中,各接口逻辑318储存各类型的缓冲器的数量的计数,该缓冲器系于链路的另一端的接收器内,接口逻辑系连接到该另一端。接口逻辑不传送封包,除非该接收接口逻辑具有闲置缓冲器以储存封包。当接收缓冲器由于路由封包向前而闲置时,该接收接口逻辑传送讯息至该发送接口逻辑以表示缓冲器已经闲置。此种机构可称的为“联票式(coupon-based)”系统。
I/O装置320A至320B可以是任何合适的I/O装置。举例而言,I/O装置320A至320B可以包含用来可耦接至另一计算机系统(例如,用网络适配卡或调制解调器)而与该计算机系统通讯的装置。再者,I/O装置320A至320B可以包含视讯加速器、声音卡、硬盘或软盘机或驱动控制器、SCSI(小计算机系统界面(Small Computer Systems Interface))转接器和电话卡、声卡、和各种的数据采集卡(譬如GPIB或场总线接口卡)。再者,任何执行为卡的I/O装置亦可执行为于系统300的主电路板上的电路,和/或执行于处理节点的软件。应注意的是词汇“I/O装置”和词汇“周边装置”在此处表示同义词。
再者,一个或多个处理器10可以执行于更传统的个人计算机(PC)结构,个人计算机结构包含处理器的一个或多个接口连接至桥接器以桥接至一个或多个I/O互连接和/或存储器。
转至图2,显示存储器子系统的一个实施例的图标。于所示实施例中,存储器子系统包含具有复数个存储器模块314的存储器。各存储器模块314包含复数个存储器装置360。特定数目的存储器模块314和于各模块上的存储器装置360于不同的实施例中根据譬如存储器的尺寸(和最大可能尺寸)、连接器的数目、快取线路尺寸、和其它共同的因素的参数而可改变。
存储器模块314经由存储器总线350而耦接至存储器控制器316。可以配置存储器总线350以于存储器模块314和存储器控制器316之间传输数据和地址讯号。可经由其为存储器总线350的一部分的数据通路而传输数据讯号至存储器模块314或自该存储器模块314传输数据讯号。可自存储器控制器316传输地址讯号至存储器模块314,地址讯号可包含独立的列地址讯号(用于选择存储器的列)和行地址讯号(用于选择列中特定的地址),该列地址讯号与行地址讯号可于分离的时间传送。数据和错误更正码(ECC)可以储存于遍及各种存储器装置360的存储器模块中。举例而言,若存储器模块314包含8个存储器装置360,则数据的字节可通过将该字节的一个位储存于各存储器装置中而被储存。
存储器控制器316包含ECC子系统340,该ECC子系统340可用来验证读取自存储器的数据的完整性,并于一些情况,更正也许存在的任何错误。ECC子系统340可使用数种不同的已建立完备的产生ECC用于保护数据的方法中的其中一种方法。
于一个实施例中,存储器模块314为非ECC兼容(当由本技术状态所了解)存储器模块。然而,存储器空间可保留在存储器模块314内以便储存ECC。举例而言,于一个实施例中,可保留存储器模块的1/8的可利用地址空间用于ECC,同时可保留剩余的7/8用于储存数据。保留用于ECC的存储器部分对于应用也许是不可见的,而因此仅由于存储器控制器316中的ECC子系统340所使用。将存储器地址空间划分成保留用于储存数据的位置保留用于储存ECC的那些现在将结合图3而作更详细地讨论。
图3为显示存储器的一个实施例的寻址的图标,其中部分的存储器被保留用于储存ECC。于所示实施例中,存储器414显示为逻辑地址空间和物理地址空间。于逻辑地址空间中,保留小部分的存储器用于储存ECC,而保留主要的地址空间用于储存数据。各储存的ECC对应于储存于用于保留ECC的地址空间中的数据的区块。保留用于储存数据的地址空间可由应用软件所存取,该应用软件需要存储器用于数据储存和撷取。反之,保留用于储存ECC的地址空间可以不由应用软件存取,对于该应用软件可以是不可见的。储存ECC的部分对于ECC子系统(譬如图2中所示者)可以是可见的。
于物理地址空间,该数据和对应的ECC依照存储器的页或列配置。于此特定实施例中,对应于特定区块的数据的ECC被放置于与相同页中数据区块接近页边界处。如此使得可以更有效的存取,因为单一列地址可被发送用于待存取数据和其对应的ECC。换言之,单位的数据和其对应的ECC可储存于相同列,但是于不同行中。通过配置ECC和对应的数据,而使得仅单一列地址须被送去存取二者,如此可避免关联于预充电一列的存取损失。因此ECC储存于位于邻接其所保护数据的地址位置。一般而言,此配置得自于保留1/n(例如,1/8,此处n=8)地址用于储存ECC,而剩余的(n-1)/n(例如,7/8)地址用于储存待由ECC保护的数据。
数据和对应ECC的其它配置为可能并予以考量。举例而言,于一个实施例中,每一个使用者请求储存位置的数字地址可以乘上(n+1)/n(例如,9/8,此处n=8)以便计算于存储器中的实际位置,该实际位置将用来储存对应的ECC。此将得到ECC可予储存的数据区块之间的1/n(例如1/8)间隙。
图4显示方法的一个实施例图标,用来交换地址位以便确保数据和其相关ECC储存于存储器的同一页。于所示实施例中,保留逻辑地址空间的某些部分(此处显示为A8、A7、A6、A5、A4、A3、A2、A1、A0)用于储存ECC。详言之,于此例中用来储存数据的最高可使用逻辑地址为110_111_111。因此,于此例中所有逻辑地址111_xxx_xxx被保留用于储存ECC,同时其余的逻辑地址被保留用于储存数据。
为了保留用于储存对应于数据范围的ECC的物理地址空间,可交换地址位。因此,如图中所示,对于物理地址的一个特定范围,可通过交换(亦即,交易)某些地址位而获得用于对应ECC的物理地址。于此实例中,地址位A8、A7和A6与地址位A5、A4和A3交换以便获得用于储存对应ECC的物理地址。提供至存储器的所得到的地址为A5、A4、A3、A8、A7、A6、A2、A1、A0。因此,对于储存在物理地址A5 A4 A3 A8 A7 A6 xxx的范围内的数据,对应的ECC可储存在物理地址A5 A4 A3 1 1 1 A2 A1 A0。
以此种方式交换地址位可以使得更有效存取数据和对应的ECC。可以此种方式交换地址位(譬如于上述例子中):ECC储存于与对应的数据区块相同的页内,并且亦可以储存于页边界上,如图3中所示。于是,对于对应于单一列地址的存储器的页,数据和其对应的ECC将储存在相同的列,但在不同的行中。因此,单一列地址可被发送存取ECC和数据,用他们的对应行地址分别发送。于此种方式,存取区块数据和对应的ECC仅需要一个预充电循环以取代二个预充电循环,否则该二个预充电循环也许需要从二个不同的列地址存取信息,由此使得存取等待时间(latency)最小。
图5显示存储器模块的一个实施例的图标。于所示实施例中,存储器模块314如于本技术状态所了解的不是ECC兼容存储器模块。于技术状态ECC兼容存储器模块,一般提供有专用于ECC的额外的储存器。此额外的储存器可通过安装于存储器模块的PCB(印刷电路板,printed circuit board)上的额外的存储器装置所提供。此外,ECC兼容存储器模块之间的数据通路(和一般而言ECC兼容存储器)较宽以允许ECC与对应受保护数据同时被输送。
反之,图5中所示的存储器模块314被设计用于数据储存而没有ECC兼容的任何特殊的考量。不过,使用此处所揭示的技术,使用ECC可执行于这些类型的存储器模块。
于此特定实施例中,存储器模块314包含8个存储器装置360。各存储器装置360可以储存部分的数据区块和部分的ECC。举例而言,字节(8位)可以通过将该字节的一个位储存至8个存储器装置的每一个存储器装置中而储存于存储器模块314。相似情况,各存储器装置360可以储存8位ECC的一个位。于是,储存数据和ECC可以展布遍及存储器模块314的复数个存储器装置。此种配置可以依照前面结合图3所讨论的映对物理地址空间而仍然适合用于配置储存的数据和ECC。
存储器模块314亦包含连接器370,该连接器370致能待耦接于存储器总线的存储器模块。连接器370可以是卡片边沿(card-edge)或任何其它类型的适合连接器。连接的数据部分的宽度(就位数而论)可以依照使用了快取线路的系统中的快取线路。若系统其它方面非为ECC兼容,则快取线路将足够的宽以容纳转移的数据,但是并未宽至足以容纳同时转移ECC。如以下将作更详细的讨论,于此种实施例中的ECC可输送横越数据总线,从转移的数据于转移分离方式。
图6为使用具有非ECC兼容存储器装置的ECC子系统验证数据的完整性的一个实施例的流程图。于所示实施例中,方法600开始提供逻辑地址(605)。可以通过执行于计算机系统的软件而提供逻辑地址至存储器控制器。于接收逻辑地址后,存储器控制器然后可将逻辑地址转译成第一和第二物理地址(610)。这些物理地址的第一个可以对应于储存于存储器中的数据区块,同时第二个物理地址对应于用来检查数据区块的完整性的ECC。于一个实施例中,逻辑地址可以转译单一列地址和二个分离的行地址。第一行地址(连同列地址)对应于储存数据区块的位置,而第二行地址(连同相同列地址)对应于关联于该数据区块的ECC。
在转译逻辑地址成第一和第二物理地址时,于第一周期期间数据可经由数据通路而从第一物理地址存取(615)。因为存储器系统不明确设计用于ECC兼容的标准形状因素(form factor),因此对应于数据的ECC经由相同的数据通路于分离的第二周期中存取(620)。于是,给定的用于ECC的保留地址空间和于与存取数据的周期分离的周期中存取地址空间致能于装置中所揭示执行的ECC,否则该装置不表示设计与ECC兼容。于存取数据和其对应ECC后,然后ECC子系统可依照ECC协议检查数据的完整性(625)。此步骤可亦包含若可能于侦测错误时而更正数据。
亦考虑一种方法用来产生和储存用于待写入存储器的数据的ECC。本方法考量接收对应于将储存数据的位置的逻辑地址。用于储存数据的第一物理地址由转译的逻辑地址导得。用于储存对应ECC的第二物理地址使用逻辑地址导得,该逻辑地址映对至保留用于ECC储存的地址空间的部分。当接收数据时,其可依照特定的ECC协议而用来产生对应的ECC。数据可于第一周期写至存储器于第一物理地址。于第二周期,ECC可写至第一物理地址。如与此处其它实施例所讨论的,第一和第二物理地址可分享共同的列地址但不同的行地址。
虽然已参照特定实施例而详细说明了本发明,但是将了解到该等实施例系为例示说明而本发明的范围不受此等实施例的限制。任何对此等实施例的变化、修饰、添加、和改进皆为可能。该等变化、修饰、添加、和改进可落于下列详细申请专利范围的本发明范围内。
产业利用性
本发明一般可应用于微处理器。
Claims (10)
1.一种方法,包括:
接收逻辑地址,其中,该逻辑地址映对至存储器的第一物理地址和该存储器的第二物理地址,其中,该第一物理地址储存数据,该第二物理地址储存对应于储存于该第一物理地址的该数据的错误更正码(ECC);
将该逻辑地址转译成该第一和第二物理地址;
通过数据通路从该第一物理地址存取该数据;
通过该数据通路分离地存取该ECC;以及
使用该ECC检查数据的完整性。
2.如权利要求1所述的方法,其中,该第一物理地址位于存储器页中,以及其中,该第二物理地址位于相同存储器页中。
3.如权利要求2所述的方法,其中,对于给定的存储器页,物理地址的第一子集合被保留用来储存数据而地址的第二子集合被保留用来储存ECC,各ECC关联于储存在该第一子集合的物理地址中的数据。
4.如权利要求1所述的方法,其中,将该逻辑地址转译成为第一和第二物理地址包括交换该逻辑地址的位,而使得该ECC储存在邻接于该存储器中的储存由该ECC保护的数据的物理位置的物理存储器位置中,其中,该交换根据页边界而实施。
5.如权利要求1所述的方法,进一步包括将该ECC存储在邻接于由该ECC所保护的数据的地址位置中的数据的区块之间的区块中,其中,保留该地址的1/n用来储存ECC而保留该地址的(n-1)/n用来储存数据。
6.一种存储器子系统,包括:
存储器;
数据通路;以及
通过该数据通路耦接至该存储器的存储器控制器,其中,该存储器控制器被耦接以接收逻辑地址,以及其中,该存储器控制器被配置以:
将该逻辑地址转译成存储器的第一物理地址和该存储器的第二物理地址,其中,该第一物理地址储存数据,第二物理地址储存对应于储存于该第一物理地址的该数据的错误更正码(ECC);
通过该数据通路从该存储器中的该第一物理地址存取数据;
通过该数据通路分离地从该第二物理地址存取该ECC;以及
使用该ECC检查数据的完整性。
7.如权利要求6所述的存储器子系统,其中,该第一物理地址位于存储器页中,以及其中,该第二物理地址位于相同的存储器页中。
8.如权利要求7所述的存储器子系统,其中,对于给定的存储器页,物理地址的第一子集合被保留用来储存数据而地址的第二子集合被保留用来储存ECC,各ECC关联于储存在该第一子集合的物理地址中的数据。
9.如权利要求6所述的存储器子系统,其中,该存储器控制器通过交换该逻辑地址的位而将该逻辑地址转译成为第一和第二物理地址,使得该ECC储存在邻接于该存储器中的储存由该ECC所保护的数据的物理位置的物理存储器位置中,以及其中,该交换根据页边界而实施。
10.如权利要求6所述的存储器子系统,其中,储存该ECC于数据的区块之间的区块中,其中,保留该地址的1/n用来储存ECC而保留该地址的(n-1)/n用来储存数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/725,922 | 2007-03-20 | ||
US11/725,922 US8135935B2 (en) | 2007-03-20 | 2007-03-20 | ECC implementation in non-ECC components |
PCT/US2008/003365 WO2008115400A1 (en) | 2007-03-20 | 2008-03-14 | Ecc implementation in non-ecc components |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101711385A true CN101711385A (zh) | 2010-05-19 |
CN101711385B CN101711385B (zh) | 2013-06-12 |
Family
ID=39563549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800132997A Active CN101711385B (zh) | 2007-03-20 | 2008-03-14 | 非ecc组件中的ecc实现 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8135935B2 (zh) |
JP (1) | JP5303477B2 (zh) |
KR (1) | KR101500635B1 (zh) |
CN (1) | CN101711385B (zh) |
DE (1) | DE112008000736T5 (zh) |
GB (1) | GB2461428A (zh) |
TW (1) | TWI498913B (zh) |
WO (1) | WO2008115400A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104871137A (zh) * | 2012-10-11 | 2015-08-26 | 超威半导体公司 | 高可靠性存储器控制器 |
CN109388517A (zh) * | 2017-08-10 | 2019-02-26 | 三星电子株式会社 | 存储器控制器、包括存储器控制器的存储器系统和应用处理器 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5605238B2 (ja) * | 2011-01-25 | 2014-10-15 | ソニー株式会社 | メモリシステムおよびその動作方法 |
US8949686B1 (en) | 2011-02-13 | 2015-02-03 | Apple Inc. | Protection against word line failure in memory devices |
US9767098B2 (en) | 2012-08-08 | 2017-09-19 | Amazon Technologies, Inc. | Archival data storage system |
US9563681B1 (en) | 2012-08-08 | 2017-02-07 | Amazon Technologies, Inc. | Archival data flow management |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
WO2013147890A1 (en) * | 2012-03-30 | 2013-10-03 | Intel Corporation | Error correcting code scheme utilizing reserved space |
DE112012006154T5 (de) * | 2012-03-30 | 2015-02-05 | Intel Corporation | Speicher, die Hybrid-Fehlerkorrekturcode-Techniken verwenden |
US9612901B2 (en) | 2012-03-30 | 2017-04-04 | Intel Corporation | Memories utilizing hybrid error correcting code techniques |
US9009570B2 (en) | 2012-06-07 | 2015-04-14 | Micron Technology, Inc. | Integrity of an address bus |
US9323608B2 (en) | 2012-06-07 | 2016-04-26 | Micron Technology, Inc. | Integrity of a data bus |
US8924832B1 (en) * | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US9904788B2 (en) | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
US10120579B1 (en) | 2012-08-08 | 2018-11-06 | Amazon Technologies, Inc. | Data storage management for sequentially written media |
US9652487B1 (en) * | 2012-08-08 | 2017-05-16 | Amazon Technologies, Inc. | Programmable checksum calculations on data storage devices |
US9225675B2 (en) | 2012-08-08 | 2015-12-29 | Amazon Technologies, Inc. | Data storage application programming interface |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
US8805793B2 (en) | 2012-08-08 | 2014-08-12 | Amazon Technologies, Inc. | Data storage integrity validation |
US9779035B1 (en) | 2012-08-08 | 2017-10-03 | Amazon Technologies, Inc. | Log-based data storage on sequentially written media |
US8959067B1 (en) | 2012-08-08 | 2015-02-17 | Amazon Technologies, Inc. | Data storage inventory indexing |
FR2996937B1 (fr) * | 2012-10-16 | 2015-12-11 | Bull Sas | Procede et dispositif pour ameliorer la fiabilite de memorisation de donnees dans un disque dur comprenant plusieurs plateaux |
US10558581B1 (en) | 2013-02-19 | 2020-02-11 | Amazon Technologies, Inc. | Systems and techniques for data recovery in a keymapless data storage system |
CN105474190A (zh) * | 2013-07-25 | 2016-04-06 | 慧与发展有限责任合伙企业 | 包括不兼容的存储器技术或与不兼容的存储器技术接合的存储器模块的应答控制 |
JP6164003B2 (ja) | 2013-09-25 | 2017-07-19 | 富士通株式会社 | メモリ制御装置、情報処理装置、及び情報処理装置の制御方法 |
WO2015065426A1 (en) | 2013-10-31 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Memory access for busy memory |
KR101500877B1 (ko) | 2013-11-28 | 2015-03-09 | 엘에스산전 주식회사 | 전력선 통신의 중계장치 및 중계방법 |
JP6140093B2 (ja) * | 2014-03-18 | 2017-05-31 | 株式会社東芝 | キャッシュメモリ、誤り訂正回路およびプロセッサシステム |
US9665423B2 (en) * | 2015-06-15 | 2017-05-30 | Nxp Usa, Inc. | End-to-end error detection and correction |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
JP6605359B2 (ja) | 2016-03-02 | 2019-11-13 | ルネサスエレクトロニクス株式会社 | 半導体装置及びメモリアクセス制御方法 |
JP6258399B2 (ja) * | 2016-05-16 | 2018-01-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置 |
JP6779821B2 (ja) * | 2017-03-24 | 2020-11-04 | キオクシア株式会社 | メモリシステム及びデータの読み出し方法 |
US10291258B2 (en) | 2017-05-25 | 2019-05-14 | Advanced Micro Devices, Inc. | Error correcting code for correcting single symbol errors and detecting double bit errors |
US12086450B1 (en) | 2018-09-26 | 2024-09-10 | Amazon Technologies, Inc. | Synchronous get copy for asynchronous storage |
US11119909B2 (en) | 2018-12-11 | 2021-09-14 | Texas Instmments Incorporated | Method and system for in-line ECC protection |
FR3100347B1 (fr) * | 2019-09-04 | 2022-07-22 | St Microelectronics Rousset | Détection d'erreurs |
FR3100346B1 (fr) | 2019-09-04 | 2022-07-15 | St Microelectronics Rousset | Détection d'erreurs |
US11468962B2 (en) * | 2021-03-03 | 2022-10-11 | Micron Technology, Inc. | Performing memory testing using error correction code values |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4727474A (en) * | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
US5263032A (en) | 1991-06-27 | 1993-11-16 | Digital Equipment Corporation | Computer system operation with corrected read data function |
US5390308A (en) * | 1992-04-15 | 1995-02-14 | Rambus, Inc. | Method and apparatus for address mapping of dynamic random access memory |
JPH0675863A (ja) * | 1992-08-26 | 1994-03-18 | Kofu Nippon Denki Kk | 誤り検出修正機能付メモリファイル |
ATE245835T1 (de) * | 1999-05-18 | 2003-08-15 | Advanced Micro Devices Inc | Fehlerkorrekturschaltung und verfahren in einer speichereinrichtung |
US6438726B1 (en) | 1999-05-18 | 2002-08-20 | Advanced Micro Devices, Inc. | Method of dual use of non-volatile memory for error correction |
US6675344B1 (en) | 2000-05-01 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Multiple ECC schemes to improve bandwidth |
GB0031436D0 (en) * | 2000-12-22 | 2001-02-07 | Koninkl Philips Electronics Nv | Method and apparatus for data reproduction |
US6915479B2 (en) * | 2001-05-17 | 2005-07-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for error correction |
US7308621B2 (en) | 2002-04-30 | 2007-12-11 | International Business Machines Corporation | Testing of ECC memories |
US7117421B1 (en) | 2002-05-31 | 2006-10-03 | Nvidia Corporation | Transparent error correction code memory system and method |
JP2005173860A (ja) * | 2003-12-10 | 2005-06-30 | Sony Corp | データ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラム |
US6965537B1 (en) | 2004-08-31 | 2005-11-15 | Micron Technology, Inc. | Memory system and method using ECC to achieve low power refresh |
TWI277869B (en) * | 2005-08-23 | 2007-04-01 | Via Tech Inc | Architecture and method for storing data |
JP2008108297A (ja) * | 2006-10-23 | 2008-05-08 | Toshiba Corp | 不揮発性半導体記憶装置 |
-
2007
- 2007-03-20 US US11/725,922 patent/US8135935B2/en active Active
-
2008
- 2008-03-14 CN CN2008800132997A patent/CN101711385B/zh active Active
- 2008-03-14 KR KR1020097021820A patent/KR101500635B1/ko active IP Right Grant
- 2008-03-14 DE DE112008000736T patent/DE112008000736T5/de not_active Ceased
- 2008-03-14 WO PCT/US2008/003365 patent/WO2008115400A1/en active Application Filing
- 2008-03-14 JP JP2009554534A patent/JP5303477B2/ja active Active
- 2008-03-19 TW TW097109586A patent/TWI498913B/zh active
-
2009
- 2009-09-23 GB GB0916720A patent/GB2461428A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104871137A (zh) * | 2012-10-11 | 2015-08-26 | 超威半导体公司 | 高可靠性存储器控制器 |
CN104871137B (zh) * | 2012-10-11 | 2019-02-01 | 超威半导体公司 | 高可靠性存储器控制器 |
CN109388517A (zh) * | 2017-08-10 | 2019-02-26 | 三星电子株式会社 | 存储器控制器、包括存储器控制器的存储器系统和应用处理器 |
CN109388517B (zh) * | 2017-08-10 | 2023-05-30 | 三星电子株式会社 | 存储器控制器、包括存储器控制器的存储器系统和应用处理器 |
Also Published As
Publication number | Publication date |
---|---|
US20080235485A1 (en) | 2008-09-25 |
KR20100015704A (ko) | 2010-02-12 |
TW200845022A (en) | 2008-11-16 |
GB0916720D0 (en) | 2009-11-04 |
WO2008115400A1 (en) | 2008-09-25 |
TWI498913B (zh) | 2015-09-01 |
JP2010522374A (ja) | 2010-07-01 |
GB2461428A (en) | 2010-01-06 |
CN101711385B (zh) | 2013-06-12 |
KR101500635B1 (ko) | 2015-03-09 |
JP5303477B2 (ja) | 2013-10-02 |
US8135935B2 (en) | 2012-03-13 |
DE112008000736T5 (de) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101711385B (zh) | 非ecc组件中的ecc实现 | |
JP6986369B2 (ja) | メモリモジュール、これを含むシステム及びその動作方法 | |
US7584336B2 (en) | Systems and methods for providing data modification operations in memory subsystems | |
US7539842B2 (en) | Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables | |
CN102568606B (zh) | 用于使用相同存储器类型来支持纠错模式和非纠错模式的系统、方法和器件 | |
US8245109B2 (en) | Error checking and correction (ECC) system and method | |
US7490217B2 (en) | Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables | |
CN101231880B (zh) | 使用多路复用器替换存储设备的存储器模组和方法 | |
CN102568603A (zh) | 数据传输装置、存储器控制装置和存储器系统 | |
CN102414666A (zh) | 用于受管理的非易失性存储器的低等待时间读取操作 | |
KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
CN108665939B (zh) | 为存储器提供ecc的方法与装置 | |
CN102831028A (zh) | 基于数据总线的ecc纠错方法及系统 | |
US10642684B1 (en) | Memory command interleaving | |
US10579470B1 (en) | Address failure detection for memory devices having inline storage configurations | |
US9824779B2 (en) | Memory error repair | |
US11928027B1 (en) | System and method for error checking and correction with metadata storage in a memory controller | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
CN116540925A (zh) | 具有扩展模式的存储器 | |
US8438435B2 (en) | Method for testing an address bus in a logic module | |
US20240012709A1 (en) | Dynamically configurable memory error control schemes | |
US20240012710A1 (en) | Selectable multi-stage error detection and correction | |
US5768299A (en) | Derived generation system for parity bits with bi-directional, crossed-fields utilizing stored flip-bit feature | |
JP4773343B2 (ja) | キャッシュメモリのためのエラーを認識する方法と装置,およびキャッシュメモリ | |
JPH0434786B2 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |