首页> 中国专利> 非ECC组件中的ECC实现

非ECC组件中的ECC实现

摘要

一种用来于非错误更正码(ECC)兼容组件中执行错误更正码检查的方法和装置。本方法包含接收逻辑地址,其中该逻辑地址映对至存储器的第一和第二物理地址。存储器的第一和第二物理地址对应于分别储存数据和相应ECC的存储器位置。本方法复包括转译逻辑地址成该第一和第二物理地址、通过数据通路存取该数据、通过相同的数据通路各自地存取ECC、以及检查使用该ECC的数据的完整性。

著录项

  • 公开/公告号CN101711385A

    专利类型发明专利

  • 公开/公告日2010-05-19

    原文格式PDF

  • 申请/专利权人 先进微装置公司;

    申请/专利号CN200880013299.7

  • 申请日2008-03-14

  • 分类号G06F11/10;

  • 代理机构北京戈程知识产权代理有限公司;

  • 代理人程伟

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 23:52:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-06-12

    授权

    授权

  • 2010-07-07

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20080314

    实质审查的生效

  • 2010-05-19

    公开

    公开

说明书

技术领域

本发明系关于计算机系统,尤系关于存储器子系统中的错误检查和更正。

背景技术

许多高阶计算机系统在他们的存储器子系统内包含已知为的特征“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可写至第一物理地址。如与此处其它实施例所讨论的,第一和第二物理地址可分享共同的列地址但不同的行地址。

虽然已参照特定实施例而详细说明了本发明,但是将了解到该等实施例系为例示说明而本发明的范围不受此等实施例的限制。任何对此等实施例的变化、修饰、添加、和改进皆为可能。该等变化、修饰、添加、和改进可落于下列详细申请专利范围的本发明范围内。

产业利用性

本发明一般可应用于微处理器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号