用于在硬件中映射数据掩码的装置、方法和系统转让专利

申请号 : CN03810638.8

文献号 : CN1653435B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗伯特·里森曼詹姆斯·多德迈克尔·威廉斯

申请人 : 英特尔公司

摘要 :

存储控制器或其它设备可以用数据掩码映射方案来编程。在所述存储控制器内的选择设备可以用数据和数据掩码间的所述数据掩码映射方案来设置。在一个实施方案中,可以包括存储设备,并用所述数据掩码映射方案对该存储设备进行编程。

权利要求 :

1.一种用于执行数据掩码映射的装置,包括:

可编程映射逻辑,所述可编程映射逻辑包含指示数据掩码映射方案的部件且能够与存储器相连接;以及与所述可编程映射逻辑相连接的存储设备,所述存储设备指示数据块和数据掩码位之间的数据掩码映射。

2.如权利要求1所述的装置,其中所述可编程映射逻辑包括与所述存储设备相连的转换单元。

3.如权利要求1所述的装置,其中所述可编程映射逻辑包括与所述存储设备相连的可编程选择设备,所述可编程选择设备用所述数据掩码映射来编程。

4.如权利要求3所述的装置,其中所述可编程选择设备包括一个或多个多路复用器。

5.如权利要求1所述的装置,其中所述数据掩码映射方案包括在数据块和数据掩码位之间的一对一关联。

6.如权利要求5所述的装置,其中所述数据块被映射到所述数据掩码位。

7.如权利要求5所述的装置,其中所述数据掩码位被映射到所述数据块。

8.一种用于执行数据掩码映射的方法,包括:

读取值;以及

对存储控制器进行编程以响应所述值,从而将数据掩码位映射到数据块。

9.如权利要求8所述的方法,其中所述对存储控制器进行编程包括在所述存储控制器内对转换单元进行编程。

10.如权利要求8所述的方法,其中所述对存储控制器进行编程包括在所述存储控制器内对存储设备进行加载。

11.如权利要求8所述的方法,其中所述对存储控制器进行编程包括用在所述数据块和所述数据掩码位之间的一对一关联对所述存储控制器进行加载。

12.一种用于执行数据掩码映射的系统,包括:处理器;

与所述处理器连接的存储控制器,所述存储控制器包含指示至少一个存储数据掩码映射方案的部件,所述存储控制器能够和存储模块相连接。

13.如权利要求12所述的系统,其中所述存储控制器包括一个或多个多路复用器来选择所述至少一个存储数据掩码映射方案中的一个方案。

14.如权利要求13所述的系统,其中所述一个或多个多路复用器中的一个或多个是完全关联的。

15.如权利要求12所述的系统,其中所述存储模块包括第一和第二存储级,所述第一和第二存储级使用所述至少一个数据掩码映射方案中的至少一个方案。

16.如权利要求15所述的系统,其中所述第一存储级使用与所述第二存储级不同的数据掩码映射方案。

17.如权利要求15所述的系统,其中所述第一存储级使用与所述第二存储级相同的数据掩码映射方案。

18.如权利要求13所述的系统,其中所述存储模块包括一个或多个存储级,所述系统进一步包括级多路复用器,以从所述一个或多个多路复用器分别选择级多路复用器的输入。

说明书 :

用于在硬件中映射数据掩码的装置、方法和系统

技术领域

[0001] 本发明通常涉及计算机存储器领域。更具体地,本发明涉及存储器数据掩码领域。

背景技术

[0002] 典型的计算机系统包括存储器。存储器用来保存程序代码和程序代码所需的数据。存储器可以包含在一个或多个集成电路板上。典型地,存储器与存储控制器连接。存
储控制器和存储器通过插脚连接在数据总线上进行通信。
[0003] 数据掩码用来防止所选数据在存储器内被重写。因此,存储控制器可以使用数据掩码来掩盖特定数据以允许局部写入存储器。数据掩码位可以与一个或多个数据位相关
联。关联的数据掩码块阻止写入某些特定存储器位置,允许写入其它特定存储器位置。当执
行写入存储器时,被掩盖的存储器内的所选数据保持在存储器内,而未掩盖的所选数据被
新数据替换。如果存储控制器不使用数据掩码,局部存储器写入可能花费更长时间。例如,
通过读取整个存储区域,把新数据并入它,然后回写整个存储区域,存储控制器可以接近局
部写入。
[0004] 目前,存储芯片通过使用单独的数据掩码位和数据插脚实施存储器数据掩码。这可能大大增加插脚量。增加的插脚量增加成本、包装尺寸以及某些情况下的芯片尺寸。使
用单独的数据掩码位和数据插脚不能用这些映射对寄存器进行编程。

发明内容

[0005] 针对现有技术中的问题,根据本发明的一个方面,提供了一种用于执行数据掩码映射的装置,包括可编程映射逻辑,所述可编程映射逻辑包含数据掩码映射方案且能够与
存储器相连接;以及与所述可编程映射逻辑相连接的存储设备,所述存储设备指示数据块
和数据掩码位之间的数据掩码映射。
[0006] 根据本发明的另一个方面,提供了一种用于执行数据掩码映射的方法,包括读取值;以及对存储控制器进行编程以响应所述值,从而将数据掩码位映射到数据块。
[0007] 根据本发明的又一个方面,提供了一种用于执行数据掩码映射的系统,包括处理器;与所述处理器连接的存储控制器,所述存储控制器是用至少一个存储数据掩码映射方
案来进行编程的,所述存储控制器能够和存储模块相连接。
[0008] 本发明能够降低存储芯片的插脚数量,降低成本。

附图说明

[0009] 通过参考下面描述和图解实施方案的附图,可以最好地理解本发明的上述实施方案。为了更完整地理解本发明的实施方案及其优点,现在参考下面结合附图的描述,其中:
[0010] 图1图解根据本发明一个实施方案的一个典型系统,所述系统包括控制器;
[0011] 图2图解根据本发明一个实施方案的一个转换逻辑实施方案的方框示意图。
[0012] 图3图解根据本发明一个实施方案的写入转移波形,其中数据掩码组合在数据行上。
[0013] 图4图解根据本发明一个实施方案的一种方法的流程图,所述方法在处理器和存储器之间提供接口的。
[0014] 图5图解根据本发明一个实施方案,把数据掩码行组合在数据块行上的转换逻辑的方框示意图。
[0015] 图6图解根据本发明一个实施方案,改变数据掩码对数据块的映射的转换逻辑的方框示意图。
[0016] 图7图解根据本发明一个实施方案,用于存储控制器本身编程的一种方法的流程图。
[0017] 图8图解根据本发明一个实施方案,数据掩码位具体值实例掩盖数据块具体实例的表格和方框图。
[0018] 图9图解根据本发明一个实施方案,选择元件给设备传递多个位的多路复用器的两个示例性电路。
[0019] 图10图解根据本发明一个实施方案,包括多路复用器以选择数据掩码位和数据块之间映射的阵列。
[0020] 图11图解根据本发明一个实施方案,从存储器模块内的串行存在检测(SPD)线路中获得数据掩码映射信息的一种方法的流程图。
[0021] 图12图解根据本发明一个实施方案,用于确定存储器模块每个存储级的数据掩码映射方案的一种方法的流程图。

具体实施方式

[0022] 在下面描述中,阐述许多具体细节以便彻底理解本发明的实施方案。然而,应该理解,没有这些具体细节也可以实施这些实施方案。在其它实例中,为了不使本发明实施方案
模糊,没有详细说明公知的电路、结构和技术。
[0023] 在不同的实施方案中,本发明可以包括可编程存储设备,比如寄存器,以将数据掩码位和数据块之间的映射包含在存储控制器中,其中数据块可以是任何规定的数据量。
[0024] 图1图解根据本发明一个实施方案的典型系统100,该系统包括控制器102、处理器104、存储器108和存储总线110,存储总线110可以包括一个或多个数据行,数据掩码组
合在数据行上。虽然在系统100的情况下进行描述,但在包括任何一个或多个集成电路的
任何系统中可以实施本发明的实施方案。
[0025] 控制器102可以是芯片组174的一部分,例如也包含I/O控制器中心(hub)(ICH)140和固件中心(hub)(FWH)170。控制器102、ICH 140和FWH 170可以各自包括任何
适当电路,并且对于一个实施方案而言,它们以单独集成电路芯片的方式实施。对于另一实
施方案而言,芯片组174可以包括任何适当的一个或多个集成电路器件。
[0026] 控制器102可以包括任何适当的控制器结构。在不同实施方案中,根据本发明实施方案的系统100可以包括一个或多个控制器,其中任一控制器可以提供接口。控制器102
可以包括任何适当接口控制器,给存储总线110和/或与控制器102通信的任何适当设备
或部件提供任何适当链接。就一个实施方案而言,控制器102可以给每个接口提供适当的
仲裁、缓冲、以及相关性管理。
[0027] 控制器102可以与处理器总线122连接以通过处理器总线122给处理器104提供接口。处理器104可以包括任何适当的处理器结构。在不同实施方案中,计算机系统100可
以包括一个或多个处理器104,其中任一处理器可以执行根据本发明实施方案的一组指令。
一个或多个处理器104可以与控制器102一起组合在单独芯片中。
[0028] 在一个实施方案中,控制器102可以与ICH 140连接以通过中心接口(hubinterface)给ICH 140提供入口。ICH 140可以给计算机系统100的一个或多个I/O设备
或外围部件提供接口。ICH 140可以包括任何适当的接口控制器,给存储控制器102和/
或与ICH140通信的任何适当设备或部件提供任何适当的链接。就一个实施方案而言,ICH
140可以给每个接口提供适当的仲裁和缓冲。
[0029] 对于一个实施方案而言,ICH140可以通过超级I/O控制器150给键盘151、鼠标152、麦克风156、输入笔(stylus)157、连通一个或多个并行端口153的一个多个适当设备
例如打印机、连通一个或多个串行端口154的一个多个适当设备、以及软盘驱动器155提供
接口。与图示相比,其它实施方案可以提供更多、更少或不同的设备和接口。
[0030] ICH 140可以与FWH 170连接以给FWH 170提供接口。FWH 170可以包括任何适当的接口控制器以提供到ICH 140的任何适当的通信链路。对于一个实施方案而言,FWH
170可以至少分享ICH 140和超级I/O控制器150之间的部分接口。FWH 170可以包括基
本输入/输出系统(BIOS)存储器172以保存适当的系统和/或视频BIOS软件。BIOS存储
器172可以包括任何适当的非易失存储器,例如闪存。与图示相比,其它实施方案可以提供
更多、更少或不同设备和接口。
[0031] 控制器102也可以与存储器108连接,并且给存储器108提供接口。存储器108可以保存例如与计算机系统100一起使用的数据和/或代码。存储器108可以包括任何适当
存储器,例如随机存取存储器(“RAM”)或其衍生物、或时序存储器。控制器102可以经由
存储总线110与存储器连接。存储总线110可以包括总线,总线可以包括数据线、地址线、
控制线或上述线的多重组合。组合在数据总线上的数据掩码可以排除对专用数据掩码总线
的需要,但可以不必排除对耦合设备上数据掩码插脚的需要。插脚上的数据掩码位和数据
块组合可以减少所需总线数量。同样,为了把传输的数据掩码位映射到传输的数据块,可以
实施数据掩码映射,它可以是或可以不是完全关联的。
[0032] 在一个实施方案中,约定可以允许更简短的数据掩码映射组。例如,它可以是公知的系统规则,即某一掩码位将从不映射到另一规定数据位。因此,通过排除那种可能性可以
减少系统的数据掩码映射或数据掩码映射组。作为另一实施例,数据掩码映射可以结合一
个约定,即在数据掩码和数据块之间存在一一对应以保持数据完整性。可以组合在数据掩
码映射或数据掩码映射组中的另一约定是,通过控制器和目标(存储器)可以知道使用的
任何数据掩码映射。如图所示,通过对存储器厂商的限制或由存储器厂商加上的限制可以
简化数据掩码映射,没有上述对存储器厂商的限制也可以实施本发明的另一实施方案。
[0033] 在一个实施方案中,控制器102包括公用区112。公用区112可以是线路,其中来自多个信号源的数据连接例如缓冲器。传输设备例如处理器104、ICH 140等可能需要根据
数据掩码映射或数据掩码映射组重新格式化的数据。从处理器104发送到公用区112的信
息可能需要可编程映射逻辑,比如转换逻辑114和处理器接口116。转换逻辑118和I/O接
口120可以为信息的转换和连接做出贡献,所述信息从公用区112发送到ICH 140或穿过
ICH 140。
[0034] 在图1的图解实施方案中,系统100内的转换逻辑114和转换逻辑118图示为单独单元。转换逻辑114和转换逻辑118的单独单元可以是相同单元或不同单元。在另一实施
方案中,转换逻辑114和转换逻辑118可以是与处理器104和ICH 140都连接的单个转换
单元。在又一实施方案中,转换逻辑114和转换逻辑118也可以被多路转换(multiplexed)
到公用区112内并重新进行映射。转换逻辑118内的I/O格式可以与转换逻辑114内的
CPU格式不同。从转换逻辑114或转换逻辑118到公用区112的输出可以是相同的存储格
式,例如DRAM(动态随机存取存储器)格式或类似格式。
[0035] 转换逻辑114和/或转换逻辑118可以包括数据掩码映射或数据掩码映射组,如图2和图4中的进一步说明。数据掩码映射或数据掩码映射组可以与存储器108内的数据
掩码映射或数据掩码映射组相匹配。在图1的图解实施方案中,存储器108可以包括数据
映射124,例如它可以保存在存储器的SPD区内,比如SPD 106。在另外的实施方案中,映射
可以保存在BIOS或目标代码内。控制器102也可以包括更少或更多部件和/或上述部件
的不同排列。
[0036] 本发明的实施方案可以用硬件、固件和软件之一或其组合来实施。本发明的实施方案还可以用保存在机器可读介质上的指令来实施,至少一个处理器可以读取和执行所述
指令以执行本文中所述的操作。机器可读介质可以包括以机器(例如计算机)可读形式保
存或传输信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储
器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如:
载波、红外信号、数字信号等),以及其它介质。与图1中的图示相比,在某些实施方案中,系
统100可以包括更多部件,而在其它实施方案中它可以包括更少部件。
[0037] 图2图解依据本发明一个实施方案的转换逻辑201实施例的方框示意图。转换逻辑201可以是转换逻辑114、或转换逻辑118、或者两个转换单元114和118的一个实施方
案。转换逻辑201的输出可以发送给公用区112或存储总线110,取决于该实施方案中是否
已经包含公用区112。
[0038] 转换逻辑201可以包括数据对数据掩码的映射或数据掩码对数据的映射中的一个或两个。这个信息可以保存在能与可编程选择设备204连接的映射寄存器203或其它设
备中,例如,其中可编程选择设备204可以包括一个或多个多路复用器。如果数据掩码映射
或数据掩码映射组作为一个或多个输入硬连接到选择设备204,则可能不需要映射寄存器
203。映射寄存器203可以用于可变或可编程的映射,并且可以以位于存储控制器102内的
一个或多个寄存器的方式来实施。数据对数据掩码或数据掩码对数据的原始映射来源可以
是一个存储器模块的SPD 106或其它存储区、BIOS、目标代码或其它存储区。在另一实施方
案中,映射寄存器203可以位于存储器108内,例如在可擦可编程只读存储器(eprom)或类
似存储器内,以容纳寄存器映射方程式。在本实施方案中,可以对存储器108进行编程以调
节存储控制器102。
[0039] 选择设备204也可以用来重新排序数据掩码位或数据位。例如,选择设备204可以使用映射寄存器203内的数据掩码映射或数据掩码映射组。在一个实施方案中,映射寄
存器203的输出端可以与选择设备204连接。这样,在设计时不需要知道数据掩码映射。
[0040] 图3图解根据本发明一个实施方案的写入转移波形,其中数据掩码组合在数据行上。这可以用作同一插脚上发送的数据块和数据掩码实施例。在图解同一插脚上发送的数
据块和数据掩码中,图3也图解数据掩码映射和分成n块的数据分割。在图3的实施例中,
可以传递数据掩码字的时间用s0-sx表示,可以传递数据字的时间用S0-Sy表示。字的意思
是在单次操作中可以从存储器移到处理器寄存器的数据单位。数据掩码用DM0-DMx表示,
且数据用D0-DY表示。从而,图3中的数据块用C0-Cn表示。数据可以分割成任何大小的
块,例如与单个位一样小或与要发送的全部数据转移一样大。数据块的大小,例如一个字,
可能取决于系统;例如,在带有64位总线的系统中,可以把数据掩码字和数据字选择成以
64位来传递。块大小定义为实施数据掩盖的间隔尺寸;例如,一个数据掩码位可以掩盖一
字节(8位)数据;在这种情况下,块是一字节数据。在本实施方案中,64位数据字可以由
8个块组成,因为每个块是一字节数据。在某些实施方案中,多个数据掩码位可以掩盖多个
数据块。在一个实施方案中,数据块可以与不同设备并联,而数据掩码可以掩盖接收数据块
的设备。
[0041] 此外,图3图解一个数据掩码映射实施例。数据掩码位和数据之间的映射可以在任何方位上,只要存储控制器和目标(例如存储设备)对所述映射达成协议;图3的数据掩
码映射方案可以用作数据掩码位对数据的某些映射实施例。
[0042] 在写入转移期间,数据掩码可以按照任何顺序和数据一起传递。在数据掩码和数据块之间不必要有特定定时关系,因为数据掩码嵌在传递数据的相同数据行上。例如,可以
在数据之前、之中或之后传递数据掩码。如图3中所示,在数据之前传递数据掩码允许存储
设备在映射逻辑作用在接收的数据上之前配置映射逻辑。如果在数据之后传递数据掩码,
则在写入收回(retirement)中可能存在延迟,因为数据可能必须保存在缓冲器内以等待
数据掩码信息。
[0043] 可能需要的数据掩码转移量可以固定在系统内,并且取决于实施技术。在一个实施方案中,最大数据掩码转移量可以等于由每个转换内数据块量分割的数据转移量。这个
关系假定每个数据转移将具有相同块量;然而,在某些实施方案中,这个假定可能不是必需
的,也不是对本发明的限定。
[0044] 一个写入转移内的数据掩码字数量可能取决于该写入转移内的数据字数量和块大小。例如,如果块大小是一字节数据并且在一个写入转移内需要8个数据字,如果字是64
位,则在该写入转移内将存在总共64个块。如果一个数据掩码位掩盖一个块,该写入转移
将需要64个数据掩码位。由于在某些系统内64个数据掩码位可以组成一个数据掩码字,
在这些系统内所述写入转移将需要一个数据掩码字。在上述实例中,所述写入转移将具有
8个数据字(D0-D8)和1个数据掩码字(DM0)。
[0045] 在某些情况下,在一个写入转移中可能需要一个以上数据掩码字。例如,如果块大小是两位并且在一个写入转移中需要8个数据字,如果字是64位,则在该写入转移内将存
在总共256个块。如果一个数据掩码掩盖一个块,则该写入转移将需要256个数据掩码位。
如果在本实施方案中64个数据掩码位组成一个数据掩码字,则所述写入转移将需要4个数
据掩码字。在上述实例中,所述写入转移将具有8个数据字和4个数据掩码字。
[0046] 在前一段实例中,块大小是两位的,一个字内的数据块数量将是32;因此在图3中,数据块可以编号为C0-C31。写入转移内的4个数据掩码字可以编号为DM0-DM3,写入转
移内的8个数据字可以编号为D0-D7。在图3中,使用一个示例性的数据掩码映射方案,DM0
的划斜线的(checkered)数据掩码位掩盖D0的数据块Cn。DM0的划成小块的(dotted)数
据掩码位掩盖D1的C0,DM1的沿对角线划成方块(diagonally squared)的数据掩码位掩
盖D2的C2。
[0047] 映射方案具有一对一关系来指示一个数据掩码位可以与一个块相关联。由于可能2
存在可以映射到n个数据块的n个数据掩码位,可以产生总共n 个可能的映射方案。例如,
如果带有64个数据块的8个数据字转移需要64个数据掩码位,则可能存在4096个可能的
映射方案。与同一芯片选择连接的一个或多个存储块之一的存储级(rank)可以具有它自
己的映射方案,存储器模块可以具有一个或多个存储级。因此,可能需要一个或多个映射方
案以执行每个存储器模块内的正确数据掩码映射。
[0048] 图4图解根据本发明一个实施方案的流程图400,它举例说明控制器在处理器和存储器之间提供接口的一种方法,其中数据和数据掩码使用同一插脚与存储器通信。功能
块402开始所述方法。接着在功能块404中,控制器可从处理器或I/O接收数据和数据掩
码。处理器或I/O可以按照为存储而需要进行格式化的格式给控制器提供信息。控制器可
以具有数据掩码对数据的内部映射;从而在功能块406中,控制器能够根据它的数据对数
据掩码映射转换数据格式。在一个实施方案中,控制器可以把数据格式转换成组合有数据
掩码的数据行。接着在功能块408中,控制器可以把组合有数据掩码的数据行写入存储器。
最后在功能块410中,控制器可以结束该方法。为了把数据和/或数据掩码从存储器传递
给处理器或I/O,该反向过程包含从一个组合行中转换成两行数据掩码位和数据块,而不是
从两行转换成一行数据和数据掩码。
[0049] 图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。
[0050] 图5的转换逻辑201的输出可以是数据和数据掩码流508、具有组合了相关数据掩码的数据块流。在输出数据行524上发送数据块和数据掩码的顺序在不同实施方案中可以
不同。在某些实施方案中,首先发送数据掩码降低存储成本,因为当数据到达时可以根据数
据掩码对数据块进行处理。在本实施方案中,首先在时钟s0-sx期间发送数据掩码;然后在
时钟S0-Sy期间发送数据块。在一个实施方案中,数据可以按照例如数据和数据掩码流508
所示的格式在控制器102和存储器108之间传播,因为本发明的实施方案可以排除在控制
器102和存储器108之间需要一个或多个数据掩码行。然而,在控制器102和处理器104
之间或控制器102和ICH 140之间,数据可以按照数据块行506和数据掩码行504的组合
进行传播。
[0051] 图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与数据块D1C0-D1C0相关联,
在时间sx=Sy期间数据掩码DMxCn-DMxC0与数据块DyCn-DyC0相关联。数据掩码位和数据
块的关联存在许多可能性。
[0052] 转换逻辑可以包括多路复用器或者其它重新排序信息以匹配映射的方法。这样,数据掩码能够防止正确对应的数据块重写在存储器内,一旦确定数据掩码对数据的映射,
可以对存储控制器内的硬件进行编程。把映射编程在存储控制器硬件内的一个实施方案可
以是使用寄存器对硬件进行编程,如图2所示,使用映射寄存器203和选择设备204。
[0053] 图7图解根据本发明一个实施方案用于存储控制器本身编程的一种方法的流程图。在功能块702中,已知的数据掩码和数据块映射可以插入映射寄存器203。一个和多
个映射寄存器可以组合成该方法。这些值可以通过借助软件或固件的硬件,例如BIOS,来
插入。在一个实施方案中,在功能块704中,映射寄存器203可以具有与选择设备204的
连接,以根据数据掩码映射或数据掩码映射组来处理数据块或数据掩码的顺序。在功能块
702中,也可以用映射值把已知的数据掩码映射或数据掩码映射组编程在电路或类似物内,
以保持与存储器108进行通信,存储器108按照这样的方式把数据掩码映射到数据块,以防
止正确对应的数据块重写在存储器内。
[0054] 图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”。
[0055] 在该实例中数据转移是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”。
[0056] 数据行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。
[0057] 级多路复用器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)的可
选附加电路的电路可以使一串多路复用器能够在同一行上加载至少一个数据掩码位和至
少一个数据块以输送给存储器。
[0058] 图10图解依据本发明的实施方案,包含多路复用器以选择数据掩码位和数据块之间映射的阵列1000。在一个实施方案中,这些多路复用器位于控制器102内。输入可以
是数据掩码位;输出可以是根据可适用的数据掩码映射从输入数据掩码位中选择的数据掩
码位。符号dmr[N]表示选择的输出数据掩码位;r可以表示级,N可以表示数据掩码内的哪
个位。图10表示多个多路复用器阵列,因为每个存储级可以具有不同映射和由不同阵列控
制。如果每级具有相同映射,则在一个实施方案中,N:1多路复用器的数量可以小于存储级
的总量。代替具有N:1多路复用器的每个位,带有N:1输出和附加r:1多路复用器的一个多
路复用器可以满足需要,其中附加r:1多路复用器选择要进入的级。虽然图10中未图示,
数据掩码位对数据块的映射可以表示或不表示所想要的存储位置。在一个实施方案中,映
射不能表示存储位置,而另一芯片可以接收用于该设备的数据块和映射位置。如果使用另
一芯片,则使用简明规则(tailored rules)或其它所实施的基于知识的输入可以使映射、
存储、和/或产生逻辑最小化,以容纳(accommodate)存储位置方案。
[0059] 在上述实施方案中,图9和图10的电路已经表明,通过多路复用器选择连接可以使用数据掩码映射或数据掩码映射组对存储控制器进行编程。对存储控制器排序进行编程
的一个实施方案可以是把多路复用器选择硬连接到接地和/或电源,例如多路复用器选择
904或多路复用器选择914。用数据掩码映射或数据掩码映射组对存储控制器进行编程的
另一实施方案可以是从存储器内某一位置中取回(retrieve)数据掩码映射数据,并且使
用软件算法来产生数据掩码映射或数据掩码映射组。
[0060] 图11图解根据本发明实施方案从存储器模块内的SPD106中获得数据掩码映射信息的方法的一个流程图。SPD106可以包括信息,所述信息保存在用于BIOS的同步动态随机
存取存储器模块上的电可擦除可编程只读存储器芯片内,以取回(retrieve)如模块大小、
数据宽度、速度和电压这样的信息。因为BIOS可以使用该信息适当配置存储器使其具有最
大可靠性和性能,所以BIOS也可以从保存在SPD106内对存储控制器进行编程的数据掩码
映射或数据掩码映射组中受益。对于本实施方案而言,SPD106可以包括存储区以把数据掩
码映射或数据掩码映射组保持在存储器的某一区域内,例如图1的数据映射124。
[0061] 图11的方法1100可以是通过在过程功能块1102从一个或多个存储器模块内的SPD106中获得数据掩码映射信息而开始的。系统内每个存储器模块可以包含一个或多个存
储级,每个存储级可以具有不同的数据掩码映射方案。
[0062] 在过程功能块1104,从数据掩码映射信息可以确定模块存储级的数据掩码映射方案。在一个实施方案中,数据掩码映射信息可以是每个存储级的数据掩码映射方案。在另一
实施方案中,从存储器模块中获取的数据掩码映射信息可以包含每个存储器模块的映射方
案指示器(indicator)。映射方案指示器可以是字,例如“Vendor A(厂商A)”,或数字,例
如“4865”。字或数字可以与存储器模块的映射方案相关;因此,当接收到每个指示器时,它
可以指示存储器模块每个存储级的数据掩码映射方案。例如,接收到“Vendor A(厂商A)”
可以指示存储器模块的一个存储级具有映射方案X,同一存储器模块的另一存储级具有映
射方案Y,同一存储器模块的另一存储级具有映射方案Z。
[0063] 获得数据掩码映射方案之后,可以用映射方案对存储控制器进行编程。从SPD106中获得数据掩码映射信息可以给存储器厂商提供定义它们自己映射的灵活性,这可以减轻
它们的测试方法或设计的约束。存储器制造商可以在SPD 106内拒绝明显的存储器映射信
息,而是依赖于与厂商的SPD信息对应的公布映射。
[0064] 除了硬连接和存储位置取回之外,用数据掩码映射或数据掩码映射组对存储控制器进行编程的另一实施方案,可以是通过使用软件算法推导数据掩码映射或组来调查存储
器厂商的存储特性。图12图解根据本发明一个实施方案用于确定存储器模块每个存储级
的数据掩码映射的方法的一个流程图。各种方法存在不同的实施方案以确定数据掩码映射
或数据掩码映射组;因此,下面的实施方案是用来作为一种方法的一个实施例。存储器模块
中的每一个可以包含一个或多个存储级,每个存储级可以具有不同的数据掩码映射或数据
掩码映射组;因此,可能需要检查每个存储器模块的每个存储级来确定数据掩码映射或组。
[0065] 图12的方法1200是通过在过程功能块1202选择存储器模块的第一存储级而开始的。在过程功能块1204声明所有数据掩码位,且在过程功能块1206可以执行第一写入
转移,以用第一已知数据模型来填写所选存储级内的存储器范围。例如,可以用全部为1的
数据模型执行一个写入转移,该写入转移可以是最大数据转换大小的宽度,且因为声明的
数据掩码位可以指示它的相关数据块可以不被掩盖,可以用1的模型填充存储器范围。根
据惯例,有时未声明的数据掩码位可以指示它的相关数据块可以被掩盖。算法可以采用任
一惯例,在本实施方案中,声明的数据掩码位可以指示它的相关数据块可以不被掩盖,而未
声明的数据掩码位可以指示它的相关数据块可以被掩盖。
[0066] 在过程功能块1208中可以写入测试数据掩码模型,该模型包括一个可以被声明的数据掩码位。在过程功能块1210可以执行第二写入转移,以用已知的第二数据模型来填
写所选存储级内的存储器范围。例如,可以用全部为0的数据模型执行最大数据转移大小
宽度的写入转移,由于可以声明一个数据掩码位,存储器范围的一个数据块可以用0的模
型来填充,其余的块将被掩盖,因此将保持1。在上述实施例中,已知的0模型用作“标签”
来识别存储器范围内的修改块。在一个实施方案中,在过程功能块1210可以写入第二测试
数据模型。
[0067] “标签”可以用来识别数据块,声明的数据掩码位可以与所述数据块相关。可以按照几个方式识别修改的数据块;下面是一个实施方案的一个实施例。在功能块1211中可
以执行存储器范围内的数据读取请求。通过比较读取的数据块和已知的第一数据模型可以
确定数据模型内的修改块位置,所述第一数据模型在功能块1206中被写入;在前一实施例
中,写入的是全为1的模型。当失配出现时,可以识别修改块的位置。
[0068] 为了比较读取的数据块和已知的第一数据模型而选择的方法依赖于使用的数据模型,所述第一数据模型在功能块1206中被写入。一种方法可以是将读取的数据和在过程
功能块1206中写入的已知第一数据模型进行XOR(异或)操作。通过块大小逻辑转换XOR
操作的结果,直到所述块匹配与功能块1208中使用的“标签”相匹配,在前一实施例中,“标
签”全部为0。所执行的逻辑转换数量指示修改块的位置。
[0069] 当修改块的位置已经确定时,在过程功能块1208中选择的数据掩码位映射可以是已知的。例如,如果所选数据掩码位是在过程功能块1208中使用的数据掩码位模型内的
第一数据掩码位,并且如果修改块是读取数据的第五块,则第一数据掩码位掩盖第五数据
块。在过程功能块1210,可以记录在功能块1208中选择的数据掩码位映射。如在功能块
1214中确定的那样,按照类似方式通过循环整个功能块1204-1216直到已经使用最后的数
据块,可以确定其它数据掩码位映射。然后,对于剩下的级,可以使用功能块1218和1220
来重复所述过程(process)。如在功能块1218中确定的那样,当最后的级已经被处理,在功
能块1222可以结束所述过程。如上所述,由此确定的映射方案可以保存在控制器102内。
[0070] 应当认为,前面的描述在各个方面只是示例性的,而不是要限定本发明实施方案的范围。对于本领域技术人员来说,可以出现各种变化。在不脱离它的本质或主要特征的
情况下,可以按照其它特定形式来实施本发明。在与权利要求书等同的含义和范围内的所
有变化都包含在本发明的范围内。各种变化旨在要被包含在本发明的实施方案中,它们仅
受到所附权利要求书的本质和范围的限定。