获得数据掩码映射信息的制作方法

文档序号:6408500阅读:204来源:国知局
专利名称:获得数据掩码映射信息的制作方法
技术领域
本发明通常涉及计算机存储器领域。更具体地,本发明涉及存储器数据掩码领域。
背景技术
典型的计算机系统包括存储器。存储器用来保存程序代码和程序代码所需的数据。存储器可以包含在一个或多个集成电路板上。典型地,存储器与存储控制器连接。存储控制器和存储器通过插脚连接在数据总线上进行通信。
数据掩码用来防止所选数据在存储器内被重写。因此,存储控制器可以使用数据掩码来掩盖特定数据以允许局部写入存储器。数据掩码位可以与一个或多个数据位相关联。关联的数据掩码块阻止写入某些特定存储器位置,允许写入其它特定存储器位置。当执行写入存储器时,被掩盖的存储器内的所选数据保持在存储器内,而未掩盖的所选数据被新数据替换。如果存储控制器不使用数据掩码,局部存储器写入可能花费更长时间。例如,通过读取整个存储区域,把新数据并入它,然后回写整个存储区域,存储控制器可以接近局部写入。
目前,存储芯片通过使用单独的数据掩码位和数据插脚实施存储器数据掩码。这可能大大增加插脚量。增加的插脚量增加成本、包装尺寸以及某些情况下的芯片尺寸。使用单独的数据掩码位和数据插脚不能用这些映射对寄存器进行编程。


通过参考下面描述和图解实施方案的附图,可以最好地理解本发明的上述实施方案。为了更完整地理解本发明的实施方案及其优点,现在参考下面结合附图的描述,其中图1图解根据本发明一个实施方案的一个典型系统,所述系统包括控制器;图2图解根据本发明一个实施方案的一个转换逻辑实施方案的方框示意图。
图3图解根据本发明一个实施方案的写入转换波形,其中数据掩码组合在数据行上。
图4图解根据本发明一个实施方案的一种方法的流程图,所述方法在处理器和存储器之间提供接口的。
图5图解根据本发明一个实施方案,把数据掩码行组合在数据块行上的转换逻辑的方框示意图。
图6图解根据本发明一个实施方案,改变数据掩码对数据块的映射的转换逻辑的方框示意图。
图7图解根据本发明一个实施方案,用于存储控制器本身编程的一种方法的流程图。
图8图解根据本发明一个实施方案,数据掩码位具体值实例掩盖数据块具体实例的表格和方框图。
图9图解根据本发明一个实施方案,选择元件给设备传递多个位的多路复用器的两个示例性电路。
图10图解根据本发明一个实施方案,包括多路复用器以选择数据掩码位和数据块之间映射的阵列。
图11图解根据本发明一个实施方案,从存储器模块内的串行存在检测(SPD)中获得数据掩码映射信息的一种方法的流程图。
图12图解根据本发明一个实施方案,用于确定存储器模块每个存储级的数据掩码映射方案的一种方法的流程图。
具体实施例方式
在下面描述中,阐述许多具体细节以便彻底理解本发明的实施方案。然而,应该理解,没有这些具体细节也可以实施这些实施方案。在其它实例中,为了不使本发明实施方案模糊,没有详细说明公知的电路、结构和技术。
在不同的实施方案中,本发明可以包括不同的给带有数据掩码映射的寄存器进行编程的方式。不同的实施方案包括把数据掩码映射硬连线到存储控制器中,从存储器内某一位置中取回数据掩码映射,以及通过软件算法推导数据掩码映射。数据掩码映射可以使数据掩码位和它们掩盖的数据块关联,这里数据块可以是任何规定的数据量。
图1图解根据本发明一个实施方案的典型系统100,该系统包括控制器102、处理器104、存储器108和存储总线110,存储总线110可以包括一个或多个数据行,数据掩码组合在数据行上。虽然在系统100的情况下进行描述,但在包括任何一个或多个集成电路的任何系统中可以实施本发明的实施方案。
控制器102可以是芯片组174的一部分,例如也包含I/O控制器中心(hub)(ICH)140和固件中心(hub)(FWH)170。控制器102、ICH 140和FWH 170可以各自包括任何适当电路,并且对于一个实施方案而言,它们以单独集成电路芯片的方式实施。对于另一实施方案而言,芯片组174可以包括任何适当的一个或多个集成电路器件。
控制器102可以包括任何适当的控制器结构。在不同实施方案中,根据本发明一个实施方案的系统100可以包括一个或多个控制器,其中任一控制器可以提供接口。控制器102可以包括任何适当接口控制器,给存储总线110和/或与控制器102通信的任何适当设备或部件提供任何适当链接。就一个实施方案而言,控制器102可以给每个接口提供适当的仲裁、缓冲、以及相关性管理。
控制器102可以与处理器总线122连接以通过处理器总线122给处理器104提供接口。处理器104可以包括任何适当的处理器结构。在不同实施方案中,计算机系统100可以包括一个或多个处理器104,其中任一处理器可以执行根据本发明实施方案的一组指令。一个或多个处理器104可以与控制器102一起组合在单独芯片中。
在一个实施方案中,控制器102可以与ICH 140连接以通过中心接口(hub interface)给ICH 140提供入口。ICH 140可以给计算机系统100的一个或多个I/O设备或外围部件提供接口。ICH 140可以包括任何适当的接口控制器,给存储控制器102和/或与ICH140通信的任何适当设备或部件提供任何适当的链接。就一个实施方案而言,ICH 140可以给每个接口提供适当的仲裁和缓冲。
对于一个实施方案而言,ICH 140可以通过超级I/O控制器150给键盘151、鼠标152、麦克风156、输入笔(stylus)157、连通一个或多个并行端口153的一个多个适当设备例如打印机、连通一个或多个串行端口154的一个多个适当设备、以及软盘驱动器155提供接口。与图示相比,其它实施方案可以提供更多、更少或不同的设备和接口。
ICH 140可以与FWH 170连接以给FWH 170提供接口。FWH 170可以包括任何适当的接口控制器以提供到ICH 140的任何适当的通信链路。对于一个实施方案而言,FWH 170可以至少分享ICH 140和超级I/O控制器150之间的部分接口。FWH 170可以包括基本输入/输出系统(BIOS)存储器172以保存适当的系统和/或视频BIOS软件。BIOS存储器172可以包括任何适当的非易失存储器,例如闪存。与图示相比,其它实施方案可以提供更多、更少或不同设备和接口。
控制器102也可以与存储器108连接,并且给存储器108提供接口,存储器108可以是存储系统的一部分。存储器108可以保存例如与计算机系统100一起使用的数据和/或代码。存储器108可以包括任何适当存储器,例如随机存取存储器(“RAM”)或其衍生物、或时序存储器。控制器102可以经由存储总线110与存储器连接。存储总线110可以包括总线,总线可以包括数据线、地址线、控制线或上述线的多重组合。组合在数据总线上的数据掩码可以排除对专用数据掩码总线的需要,但可以不必排除对耦合设备上数据掩码插脚的需要。插脚上的数据掩码位和数据块组合可以减少所需总线数量。同样,为了把传输的数据掩码位映射到传输的数据块,可以实施数据掩码映射,它可以是或可以不是完全关联的。
在一个实施方案中,约定可以允许更简短的数据掩码映射组。例如,它可以是公知的系统规则,即某一掩码位将从不映射到另一规定数据位。因此,通过排除那种可能性可以减少系统的数据掩码映射或数据掩码映射组。作为另一实施例,数据掩码映射可以结合一个约定,即在数据掩码和数据块之间存在一一对应以保持数据完整性。可以组合在数据掩码映射或数据掩码映射组中的另一约定是,通过控制器和目标(存储器)可以知道使用的任何数据掩码映射。如图所示,通过对存储器厂商的限制或由存储器厂商加上的限制可以简化数据掩码映射,没有上述对存储器厂商的限制也可以实施本发明的另一实施方案。
在一个实施方案中,控制器102包括公用区112。公用区112可以是线路,其中来自多个信号源的数据连接例如缓冲器。传输设备例如处理器104、ICH 140等可能需要根据数据掩码映射或数据掩码映射组重新格式化的数据。从处理器104发送到公用区112的信息可能需要转换逻辑114和处理器接口116。转换逻辑118和I/O接口120可以为信息的转换和连接做出贡献,所述信息从公用区112发送到ICH 140或穿过ICH140。
在图1的图解实施方案中,系统100内的转换逻辑114和转换逻辑118图示为单独单元。转换逻辑114和转换逻辑118的单独单元可以是相同单元或不同单元。在另一实施方案中,转换逻辑114和转换逻辑118可以是与处理器104和ICH 140都连接的单个转换单元。在又一实施方案中,转换逻辑114和转换逻辑118也可以被多路转换(multiplexed)到公用区112内并重新进行映射。转换逻辑118内的I/O格式可以与转换逻辑114内的CPU格式不同。从转换逻辑114或转换逻辑118到公用区112的输出可以是相同的存储格式,例如DRAM(动态随机存取存储器)格式或类似格式。
转换逻辑114和/或转换逻辑118可以包括数据掩码映射或数据掩码映射组,如图2和图4中的进一步说明。数据掩码映射或数据掩码映射组可以与存储器108内的数据掩码映射或数据掩码映射组相匹配。在图1的图解实施方案中,存储器108可以包括数据映射124,例如它可以保存在存储器的SPD区内,比如SPD 106。在另外的实施方案中,映射可以保存在BIOS或目标代码内。控制器102也可以包括更少或更多部件和/或上述部件的不同排列。
本发明的实施方案可以用硬件、固件和软件之一或其组合来实施。本发明的另一实施方案可以用保存在机器可读介质上的指令来实施,至少一个处理器可以读取和执行所述指令以执行本文中所述的操作。机器可读介质可以包括以机器(例如计算机)可读形式保存或传输信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等),以及其它介质。与图1中的图示相比,在某些实施方案中,系统100可以包括更多部件,而在其它实施方案中它可以包括更少部件。
图2图解依据本发明一个实施方案的转换逻辑201实施例的方框示意图。转换逻辑201可以是转换逻辑114、或转换逻辑118、或者两个转换单元114和118的一个实施方案。转换逻辑201的输出可以发送给公用区112或存储总线110,取决于该实施方案中是否已经包含公用区112。
转换逻辑201可以包括数据对数据掩码的映射或数据掩码对数据的映射中的一个或两个。这个信息可以保存在能与选择设备204连接的映射寄存器203或其它设备中,例如,选择设备204可以包括一个或多个多路复用器。如果数据掩码映射或数据掩码映射组作为一个或多个输入硬连接到选择设备204,则可能不需要映射寄存器203。映射寄存器203可以用于可变或可编程的映射,并且可以以位于存储控制器102内的一个或多个寄存器的方式来实施。数据对数据掩码或数据掩码对数据的原始映射来源可以是一个存储器模块的SPD 106或其它存储区、BIOS、目标代码或其它存储区。存储器模块可以包括存储单元和存储控制器。在另一实施方案中,映射寄存器203可以位于存储器108内,例如在可擦可编程只读存储器(eprom)或类似存储器内,以容纳寄存器映射方程式。在本实施方案中,可以对存储器108进行编程以调节存储控制器102。
选择设备204也可以用来重新排序数据掩码位或数据位。例如,选择设备204可以使用映射寄存器203内的数据掩码映射或数据掩码映射组。在一个实施方案中,映射寄存器203的输出端可以与选择设备204连接。这样,在设计时不需要知道数据掩码映射。
图3图解根据本发明一个实施方案的写入转换波形,其中数据掩码组合在数据行上。这可以用作同一插脚上发送的数据块和数据掩码实施例。在图解同一插脚上发送的数据块和数据掩码中,图3也图解数据掩码映射和分成n块的数据分割。在图3的实施例中,可以传递数据掩码字的时间用s0-sx表示,可以传递数据字的时间用S0-Sy表示。字的意思是在单次操作中可以从存储器移到处理器寄存器的数据单位。数据掩码用DM0-DMx表示,且数据用D0-Dy表示。从而,图3中的数据块用C0-Cn表示。数据可以分割成任何大小的块,例如与单个位一样小或与要发送的全部数据转换一样大。数据块的大小,例如一个字,可能取决于系统;例如,在带有64位总线的系统中,可以把数据掩码字和数据字选择成以64位来传递。块大小定义为实施数据掩盖的间隔尺寸;例如,一个数据掩码位可以掩盖一字节(8位)数据;在这种情况下,块是一字节数据。在本实施方案中,64位数据字可以由8个块组成,因为每个块是一字节数据。在某些实施方案中,多个数据掩码位可以掩盖多个数据块。在一个实施方案中,数据块可以与不同设备并联,而数据掩码可以掩盖接收数据块的设备。
此外,图3图解一个数据掩码映射实施例。数据掩码位和数据之间的映射可以在任何方位上,只要存储控制器和目标(例如存储设备)对所述映射达成协议;图3的数据掩码映射方案可以用作数据掩码位对数据的某些映射实施例。
在写入转换期间,数据掩码可以按照任何顺序和数据一起传递。在数据掩码和数据块之间不必要有特定定时关系,因为数据掩码嵌在传递数据的相同数据行上。例如,可以在数据之前、之中或之后传递数据掩码。如图3中所示,在数据之前传递数据掩码允许存储设备在映射逻辑作用在接收的数据上之前配置映射逻辑。如果在数据之后传递数据掩码,则在写入收回(retirement)中可能存在延迟,因为数据可能必须保存在缓冲器内以等待数据掩码信息。
可能需要的数据掩码转换量可以固定在系统内,并且取决于实施技术。在一个实施方案中,最大数据掩码转换量可以等于由每个转换内数据块量分割的数据转换量。这个关系假定每个数据转换将具有相同块量;然而,在某些实施方案中,这个假定可能不是必需的,也不是对本发明的限定。
一个写入转换内的数据掩码字数量可能取决于该写入转换内的数据字数量和块大小。例如,如果块大小是一字节数据并且在一个写入转换内需要8个数据字,如果字是64位,则在该写入转换内将存在总共64个块。如果一个数据掩码位掩盖一个块,该写入转换将需要64个数据掩码位。由于在某些系统内64个数据掩码位可以组成一个数据掩码字,在这些系统内所述写入转换将需要一个数据掩码字。在上述实例中,所述写入转换将具有8个数据字(D0-D8)和1个数据掩码字(DM0)。
在某些情况下,在一个写入转换中可能需要一个以上数据掩码字。例如,如果块大小是两位并且在一个写入转换中需要8个数据字,如果字是64位,则在该写入转换内将存在总共256个块。如果一个数据掩码掩盖一个块,则该写入转换将需要256个数据掩码位。如果在本实施方案中64个数据掩码位组成一个数据掩码字,则所述写入转换将需要4个数据掩码字。在上述实例中,所述写入转换将具有8个数据字和4个数据掩码字。
在前一段实例中,块大小是两位的,一个字内的数据块数量将是32;因此在图3中,数据块可以编号为C0-C31。写入转换内的4个数据掩码字可以编号为DM0-DM3,写入转换内的8个数据字可以编号为D0-D7。在图3中,使用一个示例性的数据掩码映射方案,DM0的划斜线的(checkered)数据掩码位掩盖D0的数据块Cn。DM0的划成小块的(dotted)数据掩码位掩盖D1的C0,DM1的沿对角线划成方块(diagonally squared)的数据掩码位掩盖D2的C2。
映射方案具有一对一关系来指示一个数据掩码位可以与一个块相关联。由于可能存在可以映射到n个数据块的n个数据掩码位,可以产生总共n2个可能的映射方案。例如,如果带有64个数据块的8个数据字转换需要64个数据掩码位,则可能存在4096个可能的映射方案。与同一芯片选择连接的一个或多个存储块之一的存储级(rank)可以具有它自己的映射方案,存储器模块可以具有一个或多个存储级。因此,可能需要一个或多个映射方案以执行每个存储器模块内的正确数据掩码映射。
图4图解根据本发明一个实施方案的流程图400,它举例说明控制器在处理器和存储器之间提供接口的一种方法,其中数据和数据掩码使用同一插脚与存储器通信。功能块402开始所述方法。接着在功能块404中,控制器可从处理器或I/O接收数据和数据掩码。处理器或I/O可以按照为存储而需要进行格式化的格式给控制器提供信息。控制器可以具有数据掩码对数据的内部映射;从而在功能块406中,控制器能够根据它的数据对数据掩码映射转换数据格式。在一个实施方案中,控制器可以把数据格式转换成组合有数据掩码的数据行。接着在功能块408中,控制器可以把组合有数据掩码的数据行写入存储器。最后在功能块410中,控制器可以结束该方法。为了把数据和/或数据掩码从存储器传递给处理器或I/O,该反向过程包含从一个组合行中转换成两行数据掩码位和数据块,而不是从两行转换成一行数据和数据掩码。
图5图解根据本发明一个实施方案使用转换逻辑201把一个或多个数据掩码位的数据掩码流504与一个或多个数据块的数据块流506组合在一起的方框示意图。在图5左侧,数据掩码流504和数据块流506可以在相同间隔时间内被发送,例如,通过处理器。转换逻辑201能够把数据掩码流504和数据块流506格式化成存储器可识别的格式。S0-Sy可以表示系统时钟。按照图3,数据块流506可以包括分割成一个或多个块D0-Dy的数据。数据掩码流504可以包括与一个或多个数据块D0-Dy相关联的一个或多个数据掩码位M0-My。数据块流506和数据掩码流504可以经由不同行输入到转换逻辑201,例如数据掩码行510和数据块行512。
图5的转换逻辑201的输出可以是数据和数据掩码流508、具有组合了相关数据掩码的数据块流。在输出数据行524上发送数据块和数据掩码的顺序在不同实施方案中可以不同。在某些实施方案中,首先发送数据掩码降低存储成本,因为当数据到达时可以根据数据掩码对数据块进行处理。在本实施方案中,首先在时钟s0-sx期间发送数据掩码;然后在时钟S0-Sy期间发送数据块。在一个实施方案中,数据可以按照例如数据和数据掩码流508所示的格式在控制器102和存储器108之间传播,因为本发明的实施方案可以排除在控制器102和存储器108之间需要一个或多个数据掩码行。然而,在控制器102和处理器104之间或控制器102和ICH 140之间,数据可以按照数据块行506和数据掩码行504的组合进行传播。
图6图解根据本发明一个实施方案改变数据掩码对数据块映射的转换逻辑201的一个实施例的方框示意图。如图所示,作为转换逻辑201的输入,在时间s0=S0期间数据掩码DM0Cn-DM0C0与数据块D0Cn-D0C0相关联,在时间s1=S1期间数据掩码DM1Cn-DM1C0与数据块D1Cn-D1C0相关联,在时间sx=Sy期间数据掩码DMxCn-DMxC0与数据块DyCn-DyC0相关联。转换逻辑201能够改变数据掩码和数据块之间的关联。在所图解的实施方案中,转换逻辑201在时钟s0期间能够颠倒与数据掩码DM0Cn-DM0C0相关联的数据块的顺序。如图所示,作为转换逻辑201的输出,在时间s0=S0期间数据掩码DM0Cn-DM0C0与数据块D0C0-D0Cn相关联,在时间s1=S1期间数据掩码DM1Cn-DM1C0与数据块D1Cn-D1C0相关联,在时间sx=Sy期间数据掩码DMxCn-DMxC0与数据块DyCn-DyC0相关联。数据掩码位和数据块的关联存在许多可能性。
转换逻辑可以包括多路复用器或者其它重新排序信息以匹配映射的方法。这样,数据掩码能够防止正确对应的数据块重写在存储器内,一旦确定数据掩码对数据的映射,可以对存储控制器内的硬件进行编程。把映射编程在存储控制器硬件内的一个实施方案可以是使用寄存器对硬件进行编程,如图2所示,使用映射寄存器203和选择设备204。
图7图解根据本发明一个实施方案用于存储控制器本身编程的一种方法的流程图。在功能块702中,已知的数据掩码和数据块映射可以插入映射寄存器203。一个和多个映射寄存器可以组合成该方法。这些值可以通过借助软件或固件的硬件,例如BIOS,来插入。在一个实施方案中,在功能块704中,映射寄存器203可以具有与选择设备204的连接,以根据数据掩码映射或数据掩码映射组来处理数据块或数据掩码的顺序。在功能块702中,也可以用映射值把已知的数据掩码映射或数据掩码映射组编程在电路或类似物内,以保持与存储器108进行通信,存储器108按照这样的方式把数据掩码映射到数据块,以防止正确对应的数据块重写在存储器内。
图8图解依据本发明一个实施方案,掩盖数据块具体实施例的数据掩码位具体值实施例(specific value examples)的表格和方框图,其数据块的数据掩码映射或数据掩码映射组可以编程在存储控制器内。列802包含可以用在计算机系统内的数据,而列804包含数据掩码以防止所选数据重写存储器。在该实施例中,每个数据掩码位掩盖数据的两个字母数字或一个字节。数据掩码位相对数据的其它分配也可以使用。在行808、列804中,数据掩码位的最低四位可以是“A”,二进制形式为“1010”,这意味着数据掩码位声明(asserted)用于数据块“DE”和“BE”。在行810、列804中,数据掩码位是“1 ”或“0001”,它们掩盖数据块“CE”。在行812、列804中,数据掩码位是“3”或“0011”,它们掩盖数据块“45”和“67”。在行814、列804中,数据掩码位是“2”或“0010”,它们掩盖数据块“CD”。在行816、列804中,数据掩码位是“6”或“0110”,它们掩盖数据块“46”和“8A”。在行818、列804中,数据掩码位是“F”或“1111”,它们掩盖数据块“13”、“57”、“9B”和“DF”。在行820、列804中,数据掩码位是“0”,它们没有掩盖数据块。在行820、列804中,数据掩码位是“4”或“0100”,它们掩盖数据块“AA”。
在该实例中数据转换是4个字节长,数据块是1个字节长。数据块的大小和所选数据元素及行的顺序可以变化,并且仍然能实现不但传递数据块而且传递它们在相同单行或多行上组合的相应数据掩码的目的。这些行传递可能即将要从存储控制器传递到存储器的值。在行824上,数据元素和数据掩码在同一行上发送。在本实例中,所发出的数据元素是行806-822、列802中每个数据块的第一个字节。虽然在行824上首先发送的是数据掩码位832。所选数据掩码位相对数据块的顺序也可以变化,并且仍然能实现本发明实施方案的目的,但为了方便,已经选了一种选择显示在该图中。在行824上发送的掩码位用十六进制表示是“21”,或用二进制表示是“00100001”。在对应设备(Devices)D2、D1和D0的其它三个数据行826,828和830上分别发送列802中数据的第二、第三和第四字节。在本实施方案中,它们各自的数据掩码位834、836和838等于“B0”、“3D”和“26”,或“10110000”、“00111101”和“00100110”。如行808-822、列802和804所示,被传递的上述掩码位可以相应掩盖字节值“13”、“DE”、“AA”、“57”、“46”、“9B”、“8A”、“CD”、“45”、“BE”、“DF”、“67”和“CE”。
数据行824、826、828、830可以用在存储器连接的实施方案中,例如图1的存储总线110。存储总线110可能的实施可以包含具有一个或多个多路复用器的电路,其输出端可以与每个输出设备的一个位连接。图9图解根据本发明一个实施方案,选择元件给设备传递多个位的多路复用器的两个示例性电路。电路900是经由线D0.0把位0输出给设备(device)0的电路,线(line)D0.0对应于图8设备D0的位0。在这个实施方案中,存在总共32位要转换的数据掩码位,但在其它实施方案中,这个数量可以变化。数据掩码位0-31连接到多路复用器902。多路复用器选择904可以根据数据掩码位对数据块的映射指示哪个数据掩码位适于发送。本实施方案中的多路复用器选择904与用于设备D0、位0的数据掩码位和数据块之间的映射对应,并且等于十六进制的“00”或二进制的“00000000”。可以硬连接多路复用器选择904以指示该值。在一个实施方案中,二进制的0可以接地,而二进制的1可以连接到电源以硬连接映射。在另一个实施方案中,多路复用器选择904可以连接到寄存器,例如图2中的映射寄存器203。
多路复用器906可以选择数据被写入的存储级。如果任何存储级中的映射相等,则存储级也可以减少电路中可能需要的选择量。多路复用器908可以控制是数据块还是数据掩码位可以在线D0.0上传递。多路复用器908的一个数据输入可以是数据输入910。存在许多其它用来选择要传递的数据块、数据掩码、级以及类似物的实施方案。除了目标数据输出端可以连接到线D0.1上的设备D0位1之外,电路901可以类似于电路900,其中多路复用器912、916、918和线914、920分别对应多路复用器902、906、908和线904、910。如图10中的进一步描述,包括电路900,910以及附加设备位(additionaldevice bits)的可选附加电路的电路可以使一串多路复用器能够在同一行上加载至少一个数据掩码位和至少一个数据块以输送给存储器。
图10图解依据本发明的实施方案,包含多路复用器以选择数据掩码位和数据块之间映射的阵列1000。在一个实施方案中,这些多路复用器位于控制器102内。输入可以是数据掩码位;输出可以是根据可适用的数据掩码映射从输入数据掩码位中选择的数据掩码位。符号dmr[N]表示选择的输出数据掩码位;r可以表示级,N可以表示数据掩码内的哪个位。图10表示多个多路复用器阵列,因为每个存储级可以具有不同映射和由不同阵列控制。如果每级具有相同映射,则在一个实施方案中,N:1多路复用器的数量可以小于存储级的总量。代替具有N:1多路复用器的每个位,带有N:1输出和附加r:1多路复用器的一个多路复用器可以满足需要,其中附加r:1多路复用器选择要进入的级。虽然图10中未图示,数据掩码位对数据块的映射可以表示或不表示所想要的存储位置。在一个实施方案中,映射不能表示存储位置,而另一芯片可以接收用于该设备的数据块和映射位置。如果使用另一芯片,则使用简明规则(tailored rules)或其它所实施的基于知识的输入可以使映射、存储、和/或产生逻辑最小化,以容纳(accommodate)存储位置方案。
在上述实施方案中,图9和图10的电路已经表明,通过多路复用器选择连接可以使用数据掩码映射或数据掩码映射组对存储控制器进行编程。对存储控制器排序进行编程的一个实施方案可以是把多路复用器选择硬连接到接地和/或电源,例如多路复用器选择904或多路复用器选择914。用数据掩码映射或数据掩码映射组对存储控制器进行编程的另一实施方案可以是从存储器内某一位置中取回(retrieve)数据掩码映射数据,并且使用软件算法来产生数据掩码映射或数据掩码映射组。
图11图解根据本发明实施方案从存储器模块内的SPD106中获得数据掩码映射信息的方法的一个流程图。SPD106可以包括信息,所述信息保存在用于BIOS的同步动态随机存取存储器模块上的电可擦除可编程只读存储器芯片内,以取回(retrieve)如模块大小、数据宽度、速度和电压这样的信息。因为BIOS可以使用该信息适当配置存储器使其具有最大可靠性和性能,所以BIOS也可以从保存在SPD106内对存储控制器进行编程的数据掩码映射或数据掩码映射组中受益。对于本实施方案而言,SPD106可以包括存储区以把数据掩码映射或数据掩码映射组保持在存储器的某一区域内,例如图1的数据映射124。
图11的方法1100是通过在过程功能块1102从每个存储器模块内的SPD106中获得数据掩码映射信息而开始的。系统内每个存储器模块可以包含一个或多个存储级,每个存储级可以具有不同的数据掩码映射方案。
在过程功能块1104,从数据掩码映射信息可以确定模块存储级的数据掩码映射方案。在一个实施方案中,数据掩码映射信息可以是每个存储级的数据掩码映射方案。在另一实施方案中,从每个存储器模块中获取的数据掩码映射信息可以包含每个存储器模块的映射方案指示器(indicator)。映射方案指示器可以是字,例如“Vendor A(厂商A)”,或数字,例如“4865”。字或数字可以与存储器模块的映射方案相关;因此,当接收到每个指示器时,它可以指示存储器模块每个存储级的数据掩码映射方案。例如,接收到“Vendor A(厂商A)”可以指示存储器模块的一个存储级具有映射方案X,同一存储器模块的另一存储级具有映射方案Y,同一存储器模块的另一存储级具有映射方案Z。
获得数据掩码映射方案之后,可以用映射方案对存储控制器进行编程。从SPD106中获得数据掩码映射信息可以给存储器厂商提供定义它们自己映射的灵活性,这可以减轻它们的测试方法或设计的约束。存储器制造商可以在SPD106内拒绝明显的存储器映射信息,而是依赖于与厂商的SPD信息对应的公布映射。
除了硬连接和存储位置取回之外,用数据掩码映射或数据掩码映射组对存储控制器进行编程的另一实施方案,可以是通过使用软件算法推导数据掩码映射或组来调查存储器厂商的存储特性。图12图解根据本发明一个实施方案用于确定存储器模块每个存储级的数据掩码映射的方法的一个流程图。各种方法存在不同的实施方案以确定数据掩码映射或数据掩码映射组;因此,下面的实施方案是用来作为一种方法的一个实施例。存储器模块可以包含一个或多个存储级,每个存储级可以具有不同的数据掩码映射或数据掩码映射组;因此,可能需要检查每个存储器模块的每个存储级来确定数据掩码映射或组。
图12的方法1200是通过在过程功能块1202选择存储器模块的第一存储级而开始的。在过程功能块1204声明所有数据掩码位,且在过程功能块1206可以执行第一写入转换,以用已知的第一测试数据模型来填写所选存储级内的存储器范围。例如,可以用全部为1的数据模型执行一个写入转换,该写入转换可以是最大数据转换大小的宽度,且因为声明的数据掩码位可以指示它的相关数据块可以不被掩盖,可以用1的模型填充存储器范围。根据惯例,有时未声明的数据掩码位可以指示它的相关数据块可以被掩盖。算法可以采用任一惯例,在本实施方案中,声明的数据掩码位可以指示它的相关数据块可以不被掩盖,而未声明的数据掩码位可以指示它的相关数据块可以被掩盖。
在过程功能块1208中可以写入测试数据掩码模型,该模型包括一个可以被声明的数据掩码位。在过程功能块1210可以执行第二写入转换,以用已知的第二数据模型来填写所选存储级内的存储器范围。例如,可以用全部为0的数据模型执行最大数据转换大小宽度的写入转换,由于可以声明一个数据掩码位,存储器范围的一个数据块可以用0的模型来填充,其余的块将被掩盖,因此将保持1。在上述实施例中,已知的0模型用作“标签”来识别存储器范围内的修改块。在一个实施方案中,在过程功能块1210可以写入第二测试数据模型。
“标签”可以用来识别数据块,声明的数据掩码位可以与所述数据块相关。可以按照几个方式识别修改的数据块;下面是一个实施方案的一个实施例。在功能块1211中可以执行存储器范围内的数据读取请求。通过比较读取的数据块和已知的第一数据模型可以确定数据模型内的修改块位置,所述第一数据模型在功能块1206中被写入;在前一实施例中,写入的是全为1的模型。当失配出现时,可以识别修改块的位置。
为了比较读取的数据块和已知的第一数据模型而选择的方法依赖于使用的数据模型,所述第一数据模型在功能块1206中被写入。一种方法可以是将读取的数据和在过程功能块1206中写入的已知第一数据模型进行XOR(异或)操作。通过块大小逻辑转换XOR操作的结果,直到所述块匹配与功能块1208中使用的“标签”相匹配,在前一实施例中,“标签”全部为0。所执行的逻辑转换数量指示修改块的位置。
当修改块的位置已经确定时,在过程功能块1208中选择的数据掩码位映射可以是已知的。例如,如果所选数据掩码位是在过程功能块1208中使用的数据掩码位模型内的第一数据掩码位,并且如果修改块是读取数据的第五块,则第一数据掩码位掩盖第五数据块。在过程功能块1210,可以记录在功能块1208中选择的数据掩码位映射。如在功能块1214中确定的那样,按照类似方式通过循环整个功能块1204-1216直到已经使用最后的数据块,可以确定其它数据掩码位映射。然后,对于剩下的级,可以使用功能块1218和1220来重复所述过程(process)。如在功能块1218中确定的那样,当最后的级已经被处理,在功能块1222可以结束所述过程。如上所述,由此确定的映射方案可以保存在控制器102内。
应当认为,前面的描述在各个方面只是示例性的,而不是要限定本发明实施方案的范围。对于本领域技术人员来说,可以出现各种变化。在不脱离它的本质或主要特征的情况下,可以按照其它特定形式来实施本发明。在与权利要求书等同的含义和范围内的所有变化都包含在本发明的范围内。各种变化旨在要被包含在本发明的实施方案中,它们仅受到所附权利要求书的本质和范围的限定。
权利要求
1.一种方法,包含从存储系统内获得信息,以指示在所述存储系统内的存储器模块中使用的数据掩码映射方案;以及根据所述信息确定所述数据掩码映射方案。
2.如权利要求1所述的方法,其中所述获得信息步骤包括给所述存储器模块发送至少一个指令,引导所述存储器模块发送所述信息;以及从所述存储器模块接收所述信息。
3.如权利要求2所述的方法,其中所述从存储器模块接收信息包括从所述存储器模块内的串行存在检测中接收所述信息。
4.如权利要求3所述的方法,其中所述从串行存在检测中接收信息包括接收指示器以指示所述数据掩码映射方案。
5.如权利要求3所述的方法,其中所述从串行存在检测中接收信息包括接收所述数据掩码映射方案。
6.如权利要求1所述的方法,其中所述获得信息步骤包括把至少一个测试数据掩码模型和至少一个测试数据模型写入所述存储器模块内的存储器范围,且响应由至少一个测试数据掩码模型修改的至少一个测试数据模型,读取保存在存储器范围内的至少一个结果数据模型;以及所述确定数据掩码映射方案步骤包括根据所述至少一个结果数据模型确定用于所述存储器范围的所述数据掩码映射方案的一部分。
7.如权利要求6所述的方法,其中所述写入包括执行第一写入转换,以把第一测试数据模型写入所述存储器范围;以及对所述存储器范围执行第二写入转换,所述第二写入转换包括第二测试数据模型和测试数据掩码模型,所述测试数据掩码模型不写保护所述第二测试数据模型内的特定数据块。
8.一种装置,包括存储控制器,具有硬连接选择设备,用数据掩码映射方案对所述存储控制器进行编程,所述数据掩码映射方案使至少一个数据掩码位和存储器模块内至少一个数据块相关联;以及输出端,连接到所述存储器模块。
9.如权利要求8所述的装置,其中所述硬连接选择设备是接收所述至少一个数据掩码位和至少一个数据块的至少一部分。
10.如权利要求9所述的装置,其中所述硬连接选择设备是根据所述数据掩码映射方案选择与所述至少一个数据块之一相关联的所述至少一个数据掩码位之一。
11.如权利要求8所述的装置,其中所述硬连接选择设备是实施所述数据掩码映射方案。
12.一种装置,包括存储控制器,所述存储控制器包括具有信息的存储设备以指示用于所述存储控制器的数据掩码映射方案;以及输出端,连接到所述存储器模块。
13.如权利要求12所述的装置,其中所述存储设备通过软件可装载所述数据掩码映射。
14.如权利要求12所述的装置,其中所述存储设备通过BIOS可装载所述数据掩码映射。
15.如权利要求12所述的装置,其中所述存储设备包括制造时的所述信息。
16.如权利要求12所述的装置,其中所述信息包括至少一个指示器以指示所述数据掩码映射方案。
17.如权利要求12所述的装置,其中所述信息包括所述数据掩码映射方案。
18.一种系统,包括存储器模块,使用至少一个数据掩码映射方案使至少一个数据掩码位与至少一个数据块相关联;存储控制器,与所述存储器模块连接,所述存储控制器是用在所述存储器模块内使用的至少一个数据掩码映射方案来进行编程的。
19.如权利要求18所述的系统,其中所述存储器模块包括第一和第二存储级,所述第一和第二存储级使用所述至少一个数据掩码映射方案中的至少一个。
20.如权利要求19所述的系统,其中所述第一存储级使用与所述第二存储级不同的数据掩码映射方案。
21.如权利要求19所述的系统,其中所述第一存储级使用与所述第二存储级相同的数据掩码映射方案。
22.如权利要求18所述的系统,其中所述存储控制器包括存储设备,所述存储设备是用在所述存储器模块内使用的至少一个数据掩码映射方案之一来进行编程的。
23.如权利要求22所述的系统,其中所述存储设备与选择设备连接,从而根据所述数据掩码映射方案选择所述至少一个数据掩码位之一以便使所述至少一个数据掩码位之一与所述至少一个数据块相关联。
24.一种提供指令的机器可读介质,当机器执行所述指令时,使机器能执行的操作包括从存储系统内获得信息,以指示在所述存储系统内的存储器模块中使用的数据掩码映射方案;以及根据所述信息确定所述数据掩码映射方案。
25.如权利要求24所述的机器可读介质,其中所述获得包括给所述存储器模块发送至少一个指令,引导所述存储器模块发送所述信息;以及从所述存储器模块接收所述信息。
26.如权利要求25所述的机器可读介质,其中所述从存储器模块接收信息包括从所述存储器模块内的串行存在检测中接收所述信息。
27.如权利要求26所述的机器可读介质,其中所述从串行存在检测中接收信息包括接收指示器以指示所述数据掩码映射方案。
28.如权利要求24所述的机器可读介质,其中所述获得信息操作包括把至少一个测试数据掩码模型和至少一个测试数据模型写入所述存储器模块内的存储器范围,且响应由至少一个测试数据掩码模型修改的至少一个测试数据模型,读取保存在存储器范围内的至少一个结果数据模型;以及所述确定数据掩码映射方案操作包括根据所述至少一个结果数据模型确定用于所述存储器范围的所述数据掩码映射方案的一部分。
29.如权利要求28所述的机器可读介质,其中所述写入包括执行第一写入转换,以把第一测试数据模型写入所述存储器范围;以及对所述存储器范围执行第二写入转换,所述第二写入转换包括第二测试数据模型和测试数据掩码模型,所述测试数据掩码模型不写保护所述第二测试数据模型内的特定数据块。
30.如权利要求28所述的机器可读介质,其中所述确定数据掩码映射方案的一部分包括根据所述至少一个结果数据模型识别所述第二测试数据模型内的特定数据块。
全文摘要
可以按照不同方式把数据掩码映射编程在存储设备内。在一个实施方案中,数据掩码被硬接入选择设备以记录数据掩码位或数据块。在另一实施方案中,从存储器内某一位置中取回数据掩码映射。在又一实施方案中,通过算法确定数据掩码映射。
文档编号G06F12/06GK1653434SQ03810637
公开日2005年8月10日 申请日期2003年3月13日 优先权日2002年3月22日
发明者罗伯特·里森曼, 詹姆斯·多德, 迈克尔·威廉斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1