CN1310132C - 用寄存器文件中的冗余字代替故障字的方法和计算机系统 - Google Patents
用寄存器文件中的冗余字代替故障字的方法和计算机系统 Download PDFInfo
- Publication number
- CN1310132C CN1310132C CNB2004100484468A CN200410048446A CN1310132C CN 1310132 C CN1310132 C CN 1310132C CN B2004100484468 A CNB2004100484468 A CN B2004100484468A CN 200410048446 A CN200410048446 A CN 200410048446A CN 1310132 C CN1310132 C CN 1310132C
- Authority
- CN
- China
- Prior art keywords
- word
- address
- register file
- fault
- instruction
- 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
Links
- 230000003044 adaptive effect Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000010304 firing Methods 0.000 claims description 21
- 238000003745 diagnosis Methods 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000001105 regulatory effect Effects 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 6
- 230000002950 deficient Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 206010010356 Congenital anomaly Diseases 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review 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
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提供用于改进的对计算机系统中的寄存器文件进行寻址的方法和装置。所述寄存器文件具有一个或多个冗余字。在预解码操作期间,在指令中的逻辑地址被映射到具有比逻辑地址更大的地址空间的物理地址上。无错误的字的地址被映射到在更大的地址空间中的相同字上,来作为逻辑地址。指向故障字的逻辑地址被映射到在更大的地址空间中的但是不在逻辑地址的地址空间中的冗余字上。因为在访问时间点处所有呈现给寄存器文件解码器的地址都指向无故障字,所以不需要在访问时间期间与地址比较相关联的延迟损失。
Description
技术领域
本发明一般涉及一种在存储器层级中具有多个层级结构的电子系统。更具体地说,本发明涉及在寄存器文件中的冗余字的寻址。
背景技术
现代电子数据处理系统(计算机系统)通常具有存储器层级结构。存储器层级结构由经济和性能方面的考虑来决定。存储器层级结构由多组存储器构成。通常称作“一级”高速缓存器在数据处理系统中被放置在处理器附近。计算机系统一般具有保存(hold)指令的一级指令高速缓存器,以及保存数据的一级数据高速缓存器。具有能存储更多数据的容量,但需要更长时间来访问的“二级”高速缓存器,是存储器层级结构的下一个层级。一些计算机系统有具有比二级高速缓存器更多的存储器但需要更多的时间来访问的“三级”高速缓存器。
计算机系统还具有寄存器文件,所述寄存器文件一般由成组的锁存器(latch)构成,这些锁存器被用于“中间结果暂存器(scratchpad)”存储器,并且直接由处理器所执行的指令来进行寻址。
很多指令包含在寄存器文件中的字的逻辑地址。在寄存器文件中的“字”也被称作在寄存器文件中的“寄存器”。典型的寄存器文件包含32个8字节(64比特)字。有些早期的计算机系统在它们的寄存器文件中一般使用4字节、2字节或甚至1字节字。某些计算机系统具有超过32个字的寄存器文件,而某些具有小于32个字的寄存器文件。如上所述,寄存器文件提供用于由处理器使用的数据或地址的“中间结果暂存器(scratchpad)”的存储器。一般指令可以调用存储器文件中的多于一个字。例如,指令可以利用存储在寄存器文件中的第三个字中的结果来指定应该添加在寄存器文件中的两个字。为了完成此目的,所述指令包含用于“添加”的操作码(操作代码)并且还包含用于要添加的两个字的5比特(用于示范性的32字寄存器文件)逻辑地址,以及相加和将要存储的字的5比特逻辑地址。
寄存器文件在大多数指令的执行期间被读取和/或写入。寄存器文件的高速特性以及寄存器文件的频繁使用使得它们趋向于成为“热点”,即,它们比芯片的绝大多数的其它部分在单位面积上耗费更多的功率并且因此处于较高的温度。较高的温度趋向于增加故障,使得寄存器文件易于发生损坏。寄存器文件的重复特性(对于字在“水平”方向上的比特重复,和具有在“垂直”方向上排列的多个数量(例如32)的字)允许包括小数量的冗余字。也就是说,32字寄存器文件可以在物理上具有33、34或更多字,而一旦在制造中引入的缺陷导致计算机系统所依赖的32个字(即字0-31)中的一个或多个发生错误,则一个、两个或更多字可被用作“备用”。此外,如果在操作期间发生错误,所述“备用”可以被切换,虽然所述计算机系统可能不得不反向追踪(backtrack)并且再次-执行某些指令,或者也许甚至不得不重新启动任务。以前,经识别的故障字的地址被存储在地址比较单元中并且-当实际上访问寄存器文件时-将其和被用作在寄存器文件中提取或存储数据的地址进行比较。如果用来提取或存储数据的地址是和所存储的故障字相同的,则激活在所寻址的字中的所有比特的第一字线被保持在非激活状态,并且第二字线被激活以便访问冗余字。这是在实际的提取或存储期间完成的,这一般是确定处理器所要操作的频率的关键延迟路径。
图1说明了这样一个适用于32字寄存器文件17(每个字还一般被称作在寄存器文件中的寄存器)的传统寄存器文件寻址方案的现有技术例子。为了简化,寄存器文件17包括单一端口19,通过该端口数据从寄存器文件被读出和被写入到寄存器文件中。计算机系统(未示出)的一般被指定为10的寄存器文件寻址部分,包括从一般为L1高速缓存器的存储器中提取的指令11。指令11包含通过地址总线12连接到解码单元13的5比特寄存器地址。为了简化,指令11被示出只具有一个寄存器地址;一般指令具有在该指令中所包含的不止一个寄存器地址。解码器13解码5比特的地址并且激活在字线总线14中的32个字线之一。地址总线12还连接到地址比较器15,所述地址比较器15将5比特地址和寻址故障字已知的一个或多个地址相比较(在解码器13正在解码地址的同时)。在半导体芯片的制造测试期间、计算机系统被加电的加电测试期间或在操作期间给予所检测的错误的自检期间识别故障字。例如,在IBM I系列计算机系统中,服务处理器能够响应很多错误信号和诊断导致错误信号的错误。如果当前的5比特地址和故障字的地址匹配,则地址比较器15必须在解码器13能够激活任何32个字线之前立即用信号通知解码器13,使得解码器13禁止激活与所述地址相对应的所述32个字线之一。此外,地址比较器15激活冗余字线16,所述冗余字线16使得冗余字18的内容可以在寄存器文件端口19上被访问。使用这种技术,冗余字18将替代了故障字而总是被使用。及时在地址比较器15中进行地址比较以禁止解码器13激活32个字线之一的需求一般是限制计算机系统的操作频率的循环限制路径。
因此,存在一种需求,所述需求提供能允许访问(提取或存储)在寄存器文件中的冗余字线,而不需要在访问寄存器文件期间将要访问的字的地址和一个或多个故障字地址相比较,以及响应于相等的比较结果,抑制对逻辑地址中的字和冗余字的访问的方法和装置。
发明内容
本发明通常提供用于在处理器周期期间在寄存器文件中访问(提取或存储)冗余字来代替所寻址的字,而不必在处理器周期期间执行将所述字的逻辑地址和一个或多个故障地址相比较、禁止访问故障字、以及访问冗余字的步骤的方法和装置。
本发明提供了一种用于使用寄存器文件中的冗余字来代替寄存器文件中的故障字的方法,包括下列步骤:从第一存储器取出原始指令;将在原始指令中的具有逻辑寻址空间的逻辑地址映射到具有物理寻址空间的物理地址上,所述物理寻址空间大于所述逻辑寻址空间;其中,如果所述逻辑地址指向在寄存器文件中的故障字,则将所述物理地址变成所述冗余字的地址,所述冗余字是在物理寻址空间中,但是所述冗余字不在逻辑寻址空间中;以及如果所述逻辑地址没有指向寄存器文件中的故障字,则使用所述逻辑地址来得到物理地址。
本发明还提供了一种使用寄存器文件中的冗余字来代替寄存器文件中的故障字的计算机系统,包括:寄存器文件,其具有多个在逻辑地址的寻址空间之内的字和不能由逻辑地址寻址的冗余字;预解码单元,其将所述逻辑地址映射到物理地址上,所述物理地址具有比所述逻辑地址更大的地址空间;寄存器寻址部分,其用于访问在物理地址的寻址空间之内的任意字,而不需要使用地址比较;以及诊断单元,其用于识别在寄存器文件中的故障字和控制所述预解码单元来将所述逻辑地址映射到响应于故障字的标识的物理地址上。
在一个实施例中,公开了一种方法,该方法包括如下步骤:识别故障字线;存储所述故障字线的地址;从第一存储器读取指令;预解码该指令;通过将故障字的地址替换为冗余的无故障字的地址来变更指令;以及在第二存储器中存储所变更的指令。由处理器对在寄存器文件中的字的访问是通过使用该变更的指令、通过使用无故障字的地址来完成的。
在计算机系统的一个实施例中,第一存储器中的指令包含在寄存器文件中的字的地址,所述字的地址是“N”比特长,提供“N”比特的逻辑寻址空间。当所述指令被从第一存储器移动到第二存储器器时,所述指令被预解码。在预解码期间,在指令中的所有寄存器地址被改变以使用“N+1”比特(或其它适度的增加;为了示例的原因这里使用了一比特的增加)。在预解码期间,在所述指令中的每个寄存器地址被和一个或多个已知是在寄存器文件中的故障字地址的地址相比较。故障字的地址被映射到“N+1”比特寻址空间中的冗余字上。而非故障字的地址被映射到在“N+1”比特寻址空间中的冗余无故障字上;优点在于,这是由“N”比特地址所寻址的相同的字。
虽然本映射可以适应于在“N”比特逻辑寻址空间中的每个字中的故障,但是这样做将导致将寄存器文件的大小扩大一倍。有利地,一般只实现一个或两个备用字。
附图说明
关于本发明的上面的所简单总结的一个更具体的说明,通过参照在附图中说明的实施例,获得本发明的上述特征、优点和目的方式可以被详细理解。
然而,应当注意,所附附图仅仅说明本发明的典型实施例,因此不被认为是要限制本发明的范围,因为本发明可以允许其它等同有效的实施例。
图1是在寄存器文件中具有冗余字的传统计算机系统的现有技术的寄存器文件寻址部分的方框图;
图2是示出根据本发明的预解码系统的高级(high level)方框图;
图3是示出根据本发明的计算机系统的寄存器文件寻址部分的方框图;
图4是示出根据本发明的预解码系统的预解码单元部分的更详细的方框图;
图5是示出用于在寄存器文件中识别故障字以及改变所述故障字的地址的预解码器影射的方法的流程图;
图6示出了具有字节奇偶性的四字节原始指令以及具有字奇偶性的四字节预解码指令,其中三个比特被用作地址比特扩展。
具体实施方式
现在参照附图,并结合上面提供的现有技术,下面将详细说明本发明。
本发明一般提供一种用于在具有冗余字的寄存器文件中允许对字进行快速访问的方法和装置。本发明在当指令被从第一存储器移动到第二存储器时发生的预解码操作期间扩展在指令中的每个寄存器地址的寻址空间。已知的寄存器文件中的故障字的地址在预解码操作期间被映射到冗余字。冗余字的地址存在于所扩展的寻址空间里。在扩展之前冗余字的地址不存在于寻址空间里。所有用来访问(提取或存储)寄存器文件的地址都是扩展地址,并因此不会寻址已知错误的字。因此,在寄存器文件中访问字期间不需要进行地址比较和随后的“最后一分钟(last minute)”的冗余字替换行动。
此后,“原始指令”指的是在预解码前的指令。原始指令是在特定计算机的机器码中的指令,并且可以被手工写入,或更典型地,由编译器写入。“预解码指令”指的是下面将说明的由预解码器单元扩展的指令。“逻辑地址”指的是如存储在原始指令中的寄存器文件中的字的地址。“物理地址”指的是存储在预解码指令中的具有扩展的寻址空间的地址。
现在转到图2,其示出了图解将指令由在第一存储器21中的原始指令22移动到在第二存储器29中的预解码指令26的移动的方框图,示出了将在所述指令中的每个逻辑地址的寻址空间扩展到预解码地址的预解码单元23。第一存储器21可以是L2高速缓存器、L3高速缓存器、或者甚至是计算机系统的主存储器。原始指令22示出了指令被从第一存储器21中提取。指令22具有根据特定计算机的层级结构定义的预定数量的比特。例如,许多小型计算机具有32比特的指令;较大的计算机一般具有64比特的指令。某些计算机甚至将不同的指令定义为具有不同数量的比特。所述指令包含定义所述指令指定的操作的类型的“操作码”(op code)。例如,op code可能指定将在寄存器文件中的两个字的内容和要置于该寄存器文件中的第三个字中的内容相加。另一个op code可能指定第一个字的内容和第二个字的内容进行“与”操作,而将结果存储在第三个字中。很多指令引用(reference)在寄存器文件中的字。因此,很多指令具有被定义为寻址(指向)在寄存器文件中特定字的逻辑地址的几组比特。在一个示范性的计算机系统中,寄存器文件包含32个字。为了寻址在这个寄存器文件中的任意字,需要5比特逻辑地址。原始指令22提供了对三个分别具有附图标记22A、22B和22C的5比特逻辑地址LA、LB和LC的存储。例如,如果ADD操作指定将字3的内容添加到字22的内容上并且将和存储在字8中,LA将具有3的值;LB将具有22的值;以及LC将具有8的值。通常,在原始指令中的逻辑地址的数量根据特定计算机系统的层级结构可以是一、二、三或者更多。本发明可预见(contemplates)在原始指令中所包含的任意数量的逻辑地址。
存储在第二存储器29中的预解码指令26包含3个用于物理地址的6比特组;即,PA、PB和PC,分别由附图标记26A、26B和26C所指定。第二存储器29一般是L1 I高速缓存器(指令缓存器),但是也可以是在第一存储器器21以下的任何层级的存储器。例如,如果第二存储器29是L1高速缓存器,则第一存储器21是L2高速缓存器。如果第二存储器29是L2高速缓存器,那么第一存储器21是L3高速缓存器(或者在计算机系统不具有L3高速缓存器的情况下是主存储器)。6比特的物理地址可以唯一地寻址在64字地址空间中的任意字。预解码单元23提供将原始指令22的5比特逻辑地址LA、LB和LC的内容映射到指令26的6比特物理地址PA、PB和PC。额外的寻址空间用于寻址在寄存器文件中的一个或多个冗余字。很快将给出所述映射的详细说明。
图3示出了根据本发明的计算机系统(未示出)的寄存器寻址部分100,适合于32字的寄存器文件108。寄存器文件108被示出具有两个冗余字,即字32和字33。原始指令的逻辑地址引用在寄存器文件108中的字0-31。预解码指令26从第二存储器29(图2)中被取出并且具有用于访问在寄存器文件108中的字的3个6比特物理地址,包括冗余字32和33。寄存器文件108被示出具有两个读取端口,即PORT_A和PORT_B,通过这两个端口来自预解码指令26的物理地址PA和PB寻址的字从寄存器文件在PORT_A和PORT_B分别被输出。寄存器文件108被示出具有一个写入端口,PORT_C,其由预解码指令26的物理地址PC来寻址。数据通过PORT_C到达进入寄存器文件108,并且存储在由PC所寻址的字中。解码器D1、D2和D3中的每一个分别根据PC、PB和PA来激活解码器D1、D2和D3中的每一个所输出的34个字线中的一个字线。32个字线选择字0-31。第33字线选择字32。第34字线选择字33。一般,考虑到空间和位线负载,仅实现一个或两个冗余字,然而本发明只受限于预解码指令的寻址空间。在当前的例子中,可以支持多达32个冗余字。
必须执行对寄存器文件108的适当操作的测试。例如,对于寄存器文件108的测试在该半导体芯片被发货给用户之前在包含寄存器文件108的半导体芯片的制造测试期间完成。已知很多测试寄存器文件的技术,包括,但不局限于运行手工产生的输入模式并且将结果和期望值进行比较;以及阵列内置自测试(ABIST)。在这些测试期间,如果检测到故障字,在一个实施例中,在半导体芯片的非易失性存储器中提供对故障字的地址的存储,诸如通过烧断芯片的保险。此外,在芯片已经被发货后或者甚至是在芯片被使用了一段时间之后,寄存器文件中的字也可能发生故障。在一个实施例中,在发货前测试寄存器文件,标注故障字的数量。如果寄存器文件具有至少和故障字同样多的冗余字,则接受该寄存器而不需要烧毁保险,而将故障字映射到冗余字的处理交由在系统启动测试时进行(即,当计算机系统加电时),在此期间执行在制造测试中使用的同样的或类似的技术。很多处理器提供某种用于持续检查寄存器文件108的正常操作的装置。例如,奇偶检查器104A和104B对经由PORT_A和PORT_B从寄存器文件108读取的数据执行奇偶校验。奇偶产生器104C产生用于经由PORT_C写入寄存器文件108中的数据的奇偶性。已知的其它的连续检查寄存器文件108的正常操作的装置包括纠错码的实现(未示出)。如果由奇偶检查器104A或奇偶检查器104B发现奇偶性错误,则被发现缺陷的字的地址被在诊断单元106中的诊断例行程序使用以改变由预解码单元23所做的映射,从而将故障字的地址映射到冗余字。在一个实施例中,诊断单元106用信号通知在计算机系统中的操作系统(未示出)停止正在执行的任务的操作,并且所述操作系统具有执行进一步的测试程序以测试该故障字是否是“硬错误”而不是“软错误”的诊断例行程序。在另一个实施例中,诊断单元106,和操作系统合作,共同包括执行进一步的测试程序的诊断例行程序。当alpha粒子干扰诸如在寄存器文件108中被用来存储字的存储元件中的数据时发生软错误。软错误是随机事件并且并非在存储元件本身中的缺陷的结果。所述诊断单元(或操作系统,依赖于计算机系统设计师选择将该功能放置在何处)一般多次将已知的模式写入寄存器文件中,再读出所述模式并检查不匹配性。如果未发现不匹配性,则该错误是软错误故障。如果在故障字中的错误被发现是软错误,则不执行重映射。
图4是示出比图2中更详细的当前发明,具体来说是预解码单元23的地址映射方案的细节的方框图。重映射表127提供已知指向故障字的逻辑地址的故障地址和指向被用来代替故障字的冗余字的对应的“替换”物理地址。重映射表127包括两个列、故障地址列和替换地址列。重映射表127包括多个行,其中每个行包含在故障地址列中的逻辑地址故障地址,以及在替换地址列中的物理地址。示范性的重映射表127被示出具有两个行,然而可以构思附加的行。在该例子中(即,5比特逻辑地址和6比特物理地址),可以使用多达32个重映射行,从而容纳32个冗余字。
重映射表127经由信号109连接到诊断单元106。诊断单元106将故障地址和替换地址写入重映射表127中。在示范性重映射表127中,左边的列包含故障字的地址(名为“fault addr”),右边的列包含替换字的地址(名为“repl addr”)。具有在原始指令22(在检测到所述故障和随后的重映射之前,其已经由预解码单元23映射到相同的物理地址)中的逻辑地址的字已经被奇偶校验器(例如图3的例子中的奇偶校验器104A或奇偶校验器104B)识别为具有故障。诊断单元106,响应于所述检测,提供用于故障字的替代地址“32”。由替代地址“32”寻址的字访问在图3中的寄存器32。另一个逻辑地寻址字31的故障地址,也在重映射表127中。替代地址或“33”被由诊断单元106放置在对应的替代地址字段中。重映射表127被示出具有两个行,其中每个行具有故障地址和替代地址。如上所述,虽然大多数的应用将具有1个或2个行,行的数量可以和由在预解码期间在一个指令中的每个地址字段中的额外比特所提供的地址空间扩展的大小一样多。
重映射表127连接到重映射单元RUA、RUB、RUC。在一个实施例中,重映射表127在每个重映射单元RUA、RUB、RUC中被复制。重映射单元RUA、RUB、RUC中的每个将来自原始指令22的5比特逻辑地址和在重映射表127中的每个故障地址相比较,并且,如果发生匹配,则替换对应的6比特替换地址。如果不发生匹配(即所述地址不指向故障字),则由重映射单元输出来自指令22的具有在6比特地址中的最高有效位被添加了二进制的“0”的逻辑地址。在该例子中,逻辑地址“5”和“31”(为简化用10进制来说明)已经由诊断单元106存储在重映射表127的“fault addr”列中。重映射单元RUA将来自指令22的LA的5比特地址和在重映射表127中的所有故障地址相比较。LA被示出包含,二进制的00101、其是“5”(十进制);在“fault addr”列找到“5”的匹配,并且输出对应的替代地址“32”(十进制),或二进制的100000。换句话说,具有二进制值“00101”的5比特地址被6比特二进制值“100000”替换,其被用于访问在寄存器文件108中的字32。重映射单元RUB在指令22中接收来自LB的5比特逻辑地址“7”(即二进制的00111)。当将该“7”和在重映射表127中的所有故障地址比较后未发现匹配。逻辑地址的5比特被用作由重映射单元RUB输出的6比特地址的5个最低有效位,而“0”被用作最高有效位。换句话说,具有二进制值“00111”的5比特地址被6比特二进制值“000111”所替换,其仍然指向在寄存器文件108中的字7。重映射单元RUC接收5比特逻辑地址“31”(即二进制11111),其和在重映射表127中的故障地址相匹配。诊断单元106在“33”的重映射表127中提供了对应的替换地址。重映射单元RUC输出6比特地址“33”(即二进制100001)。从这个重映射操作中产生的3个6比特预解码地址被存储在预解码指令26中。
为了简化,上述的说明,说明了每次预解码单一指令。在实际操作中,在较大的现代化的计算机系统中,从第一存储器同时提取多个指令,并且所述多个指令被同时预解码。例如,在一个实施例中(未示出),从第一存储器同时提取4个原始指令。能同时重映射12个地址的预解码单元接收4个指令并且输出用于存储在第二存储器中的4个预解码指令。本发明构思(contemplates)能够一次预解码任意数量的指令。
为了简化,上面的说明已经使用了不具有奇偶性或ECC的范例原始指令和预解码指令。在实际操作中,大多数的现代计算机系统采用奇偶性、ECC或其它的错误检查和/或检测特征来增加所述计算机系统的完整性。例如,在图2中,由于将5比特LA、LB和LC地址扩展为6比特PA、PB和PC地址,原始指令22被示出比在图中的预解码指令26要“短”。如果3个5比特的地址每个都被扩展为6比特的地址,则32比特原始指令22需要35比特的预解码指令。在很多情况下,这不成问题,因为第二存储器29一般是能够被使用更宽的3个比特的字来构造的指令高速缓存器。然而,预解码单元23和第二存储器29一般被制造在半导体芯片上。由于没有脱离半导体芯片的内部连接(连线、模块连接、或甚至电缆),预解码单元23、第二存储器29以及它们之间的连接的可靠性是相对稳定的。在一个实施例中,通过使用在原始指令中被用作存储在预解码操作期间被添加到地址的比特的检查比特(或者奇偶比特或ECC比特)的一些对应的比特位置,预解码指令26可以具有和原始指令相同数量的比特。图6示出了具有字节奇偶性的32比特原始指令。也就是说,原始指令22A包含4个字节,其中每个字节具有8个数据比特和奇偶性比特。指令22A因此具有总共36个比特。原始指令22A的字节0具有奇偶性比特P0;字节1具有奇偶性比特P1;字节2具有奇偶性比特P2;字节3具有奇偶性比特P3。由于具有芯片设备上和内部连接所先天拥有的高可靠性,预解码指令26只有一个“字奇偶性”WP比特来用于整个预解码指令26A。EBA是存储在EBA中的用于地址PA的“扩展比特”(即,在物理地址中使用的第6比特)。同样,EBB和EBC包含物理地址PB和PC的第6比特(扩展比特)。预解码器单元23在这个实施例中产生字奇偶性。使用字奇偶来代替字节奇偶,在3个5比特逻辑地址的例子中,每个5比特逻辑地址被扩展成6比特物理地址,允许预解码指令26A具有和原始指令22A相同数量的总比特数(即,36比特,包括1个WP比特、32比特数据和3个”扩展比特“)。应当注意,一般第二存储器29只包括指令(即,I高速缓存器),并且,由于现代计算机一般不修改I高速缓存器的内容,当从I高速缓存器丢弃老的高速缓存线以带来新的高速缓存线时,不提供对于老的高速缓存线的存储,并且它简单地由新的高速缓存线所覆盖。然而,如果检查比特位置被如上所述用作包含来自扩展地址的比特,而且计算机系统使用用于扩展地址的检查比特来存储所述高速缓存线,则必须在计算机系统中的目录(未示出)中提供指示高速缓存线已经被预解码的标记,从而当随后使用该高速缓存线时警告不同分配的检查元件(例如,奇偶性检查器或ECC检查器)。预解码器单元23还读取所述目录并且将这些已经预解码的指令传递给第二存储器29而不需要再次预解码。
图5示出了在预解码指令的计算机系统中使用的方法的方框图,所述方法将逻辑地址重映射到具有比所述逻辑地址更大的寻址空间,以便将指向寄存器文件中的故障字的逻辑地址映射到寄存器文件中的冗余字上。
块602开始所述方法。在块604中,从第一存储器提取指令。所述存储可以是计算机系统的主存储器,或者是计算机系统的高速缓存层级结构的特定层级处的高速缓存器。所述指令包含一个或多个逻辑地址,其中每个逻辑地址指向在所述计算机系统中的寄存器文件中的一个字。一个或多个逻辑地址中的每一个都具有第一数量的用于定义第一寻址空间的比特。在块606中,每个逻辑地址被映射到物理地址,所述物理地址具有比第一数量的比特大的第二数量的比特,定义了比第一寻址空间大的第二寻址空间。任何指向在寄存器文件中的无错误字的逻辑地址都被映射到物理地址和逻辑地址相同的第一寻址空间之内的物理地址上,虽然所述物理地址包含一个或多个高位比特。任何指向在寄存器文件中的错误字的逻辑地址都被映射到指向不在第一寻址空间中的第二寻址空间中的字的地址上。在块608中,所述物理地址被用于访问寄存器文件中的字。在块610中,对所访问的来自寄存器文件中的字的数据执行诸如奇偶校验或纠错码检查的错误检查。如果对所访问的来自在寄存器文件中的字的数据没有检测到错误,则该数据被计算机系统所使用并且控制传送到块620。对于从存储器提取得的每个指令重复该方法。如果在块610中检测到故障,则在步骤612中控制到诊断例行程序的软中断(trap)。所述诊断例行程序验证所述错误不是诸如软错误的临时错误。如果所述错误是临时错误,控制被传递到块616,在其中重新启动当前的任务。一旦确认所述错误是永久错误(也称为“硬”错误),则控制被传递给块614,其将所述逻辑地址的映射改变到指向在寄存器文件中的冗余字的物理地址上,所述冗余字是在第二地址空间中,但是不在由逻辑地址所定义的第一寻址空间中。在重映射地址后,控制被传递到重新启动任务的块616处。
虽然前面所述的是指向本发明的一个实施例的,在不脱离由所附权利要求所定义的本发明的基本范围的条件下,可以构思本发明的其它和进一步的
实施例。
Claims (18)
1.一种用于使用寄存器文件中的冗余字来代替寄存器文件中的故障字的方法,包括下列步骤:
从第一存储器取出原始指令;
将在原始指令中的具有逻辑寻址空间的逻辑地址映射到具有物理寻址空间的物理地址上,所述物理寻址空间大于所述逻辑寻址空间;
其中,如果所述逻辑地址指向在寄存器文件中的故障字,则将所述物理地址变成所述冗余字的地址,所述冗余字是在物理寻址空间中,但是所述冗余字不在逻辑寻址空间中;以及
如果所述逻辑地址没有指向寄存器文件中的故障字,则使用所述逻辑地址来得到物理地址。
2.根据权利要求1所述的方法,还包括将所述物理地址存储在预解码指令中的步骤。
3.根据权利要求2所述的方法,其中,所述原始指令具有多个检查比特,将物理地址存储在预解码指令中的步骤还包括使用在预解码指令中的与在原始指令中的检查比特相对应的比特来调节物理地址的较大物理寻址空间以便允许所述预解码指令具有和原始指令同等数量的比特的步骤。
4.根据权利要求2所述的方法,还包括将所述预解码指令存储在第二存储器中的步骤。
5.根据权利要求2所述的方法,还包括如下步骤:
从第二存储器提取预解码指令;以及
通过解码使用在预解码指令中的物理地址来访问寄存器文件中的字,其中,通过解码可以访问冗余字。
6.根据权利要求1所述的方法,其中,使用所述逻辑地址来得到物理地址的步骤包括如下步骤:
使用逻辑地址来作为物理地址中的低位比特组;以及
将一个或多个二进制“0”比特作为在物理地址中的高位比特组来放置;
其中所述物理地址包括在物理地址中的低位比特和在物理地址中的高位比特。
7.根据权利要求1所述的方法,还包括如下步骤:
识别寄存器文件中的故障字;
确定故障字中的故障是软故障还是硬故障;
如果错误是硬故障,则将逻辑地址的映射改变到冗余字的物理地址上;以及
如果错误是软故障,则不将逻辑地址的映射改变到冗余字的物理地址上。
8.一种用于对寄存器文件中的故障字进行处理的计算机系统,包括:
寄存器文件,其具有多个在逻辑地址的寻址空间之内的字和不能由逻辑地址寻址的冗余字;
预解码单元,其将所述逻辑地址映射到物理地址上,所述物理地址具有比所述逻辑地址更大的地址空间;
寄存器寻址部分,其用于访问在物理地址的寻址空间之内的任意字,而不需要使用地址比较;以及
诊断单元,其用于识别在寄存器文件中的故障字和控制所述预解码单元来将所述逻辑地址映射到响应于故障字的标识的物理地址上。
9.根据权利要求8所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中,所述逻辑地址被存储在原始指令中并且所述物理地址被存储在预解码指令中。
10.根据权利要求9所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中,所述原始指令包含多个逻辑地址并且所述预解码指令包含多个物理地址。
11.根据权利要求9所述的用于对寄存器文件中的故障字进行处理的计算机系统,还包括:
第一存储器,其包含所述原始指令,所述预解码单元连接到第一存储器并且能够从第一存储器读取所述原始指令;以及
第二存储器,其连接到所述预解码单元并且能够从所述预解码单元接收预解码指令。
12.根据权利要求11所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中,所述预解码单元能够从第一存储器中同时读取多个原始指令以及第二存储器能够从预解码单元中同时接收多个预解码指令。
13.根据权利要求11所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中,第一存储器是二级高速缓存器而第二存储器是一级高速缓存器。
14.根据权利要求10所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中,第一存储器是三级高速缓存器而第二存储器是二级高速缓存器。
15.根据权利要求8所述的用于对寄存器文件中的故障字进行处理的计算机系统,所述诊断单元还包括:
诊断例行程序,其能够确定故障字是具有软故障或是具有硬故障,并且只有当故障字具有硬故障时才控制预解码单元来将逻辑地址映射到响应于故障字的标识的物理地址上。
16.根据权利要求8所述的用于对寄存器文件中的故障字进行处理的计算机系统,所述预解码单元还包括:
重映射表,其具有故障地址列和替换地址列以及多个行,其中每一行都包括为故障字的逻辑地址的故障地址和指向在寄存器文件中的冗余字的替换物理地址;以及
重映射单元,其连接到逻辑地址、重映射表,以及预解码指令,所述重映射单元将所述逻辑地址和在重映射表中的所有故障地址进行比较,以及,如果发生匹配,则将在物理地址中的对应的替换地址存储在预解码指令中,但是在未找到匹配时,将所述逻辑地址存储在预解码指令中的物理地址的最低有效位中,而将一个或多个二进制“0”存储在所述物理地址的一个或多个最高有效位中。
17.根据权利要求16所述的用于对寄存器文件中的故障字进行处理的计算机系统,其中所述重映射表被包括在所述重映射单元中。
18.根据权利要求9所述的用于对寄存器文件中的故障字进行处理的计算机系统,还包括:
在所述原始指令中的检查比特;以及
在与用于调节预解码指令中的物理地址的较大寻址空间的原始指令中的检查比特相对应的比特中的预解码指令中的扩展比特,其允许所述预解码指令具有与原始指令相同的比特的数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/670,713 US7065694B2 (en) | 2003-09-25 | 2003-09-25 | Adaptive runtime repairable entry register file |
US10/670,713 | 2003-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1601461A CN1601461A (zh) | 2005-03-30 |
CN1310132C true CN1310132C (zh) | 2007-04-11 |
Family
ID=34375987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100484468A Expired - Fee Related CN1310132C (zh) | 2003-09-25 | 2004-06-10 | 用寄存器文件中的冗余字代替故障字的方法和计算机系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7065694B2 (zh) |
CN (1) | CN1310132C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070086152A (ko) * | 2004-11-16 | 2007-08-27 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 인코딩된 데이터 프레임의 시퀀스의 오염 표시를 결정하는방법 및 장치와, 모바일 장치 및 컴퓨터 프로그램 제품 |
US20060156177A1 (en) * | 2004-12-29 | 2006-07-13 | Sailesh Kottapalli | Method and apparatus for recovering from soft errors in register files |
US8595557B2 (en) * | 2005-02-23 | 2013-11-26 | International Business Machines Corporation | Method and apparatus for verifying memory testing software |
DE102005050769A1 (de) * | 2005-10-24 | 2007-04-26 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Überwachen der Gültigkeit von geschützten Befehlsworten in einer Datenverarbeitungseinheit |
US7478228B2 (en) * | 2006-08-31 | 2009-01-13 | Qualcomm Incorporated | Apparatus for generating return address predictions for implicit and explicit subroutine calls |
US10020037B2 (en) * | 2007-12-10 | 2018-07-10 | Intel Corporation | Capacity register file |
US8090935B2 (en) * | 2008-01-24 | 2012-01-03 | Mentor Graphics Corporation | Direct register access for host simulation |
US8176406B2 (en) * | 2008-03-19 | 2012-05-08 | International Business Machines Corporation | Hard error detection |
TW201512894A (zh) * | 2013-09-24 | 2015-04-01 | hong-jian Zhou | 資料存取系統及其資料與指令傳輸裝置 |
CN109445696B (zh) * | 2018-10-21 | 2021-10-08 | 山西达鑫核科技有限公司 | 网络聚合存储的信息存储装备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909404A (en) * | 1998-03-27 | 1999-06-01 | Lsi Logic Corporation | Refresh sampling built-in self test and repair circuit |
US5956350A (en) * | 1997-10-27 | 1999-09-21 | Lsi Logic Corporation | Built in self repair for DRAMs using on-chip temperature sensing and heating |
US6304498B1 (en) * | 1999-12-27 | 2001-10-16 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device capable of suppressing degradation in operation speed after replacement with redundant memory cell |
US6460132B1 (en) * | 1999-08-31 | 2002-10-01 | Advanced Micro Devices, Inc. | Massively parallel instruction predecoding |
US6611445B2 (en) * | 2001-03-01 | 2003-08-26 | Kawasaki Microelectronics, Inc. | Content addressable memory having redundant circuit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748519B1 (en) * | 2000-06-15 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for utilizing renamed registers based upon a functional or defective operational status of the register |
US6728123B2 (en) * | 2002-04-15 | 2004-04-27 | International Business Machines Corporation | Redundant array architecture for word replacement in CAM |
JP4004847B2 (ja) * | 2002-05-08 | 2007-11-07 | 川崎マイクロエレクトロニクス株式会社 | 連想メモリ装置 |
US6920525B2 (en) * | 2002-07-19 | 2005-07-19 | International Business Machines Corporation | Method and apparatus of local word-line redundancy in CAM |
-
2003
- 2003-09-25 US US10/670,713 patent/US7065694B2/en not_active Expired - Fee Related
-
2004
- 2004-06-10 CN CNB2004100484468A patent/CN1310132C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956350A (en) * | 1997-10-27 | 1999-09-21 | Lsi Logic Corporation | Built in self repair for DRAMs using on-chip temperature sensing and heating |
US5909404A (en) * | 1998-03-27 | 1999-06-01 | Lsi Logic Corporation | Refresh sampling built-in self test and repair circuit |
US6460132B1 (en) * | 1999-08-31 | 2002-10-01 | Advanced Micro Devices, Inc. | Massively parallel instruction predecoding |
US6304498B1 (en) * | 1999-12-27 | 2001-10-16 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device capable of suppressing degradation in operation speed after replacement with redundant memory cell |
US6611445B2 (en) * | 2001-03-01 | 2003-08-26 | Kawasaki Microelectronics, Inc. | Content addressable memory having redundant circuit |
Also Published As
Publication number | Publication date |
---|---|
CN1601461A (zh) | 2005-03-30 |
US7065694B2 (en) | 2006-06-20 |
US20050071723A1 (en) | 2005-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7430145B2 (en) | System and method for avoiding attempts to access a defective portion of memory | |
US7437597B1 (en) | Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines | |
US7694198B2 (en) | Self-repairing of microprocessor array structures | |
KR101374455B1 (ko) | 메모리 에러와 리던던시 | |
CN1290012C (zh) | 计算机系统中的纠错方法和装置 | |
EP0813711B1 (en) | Error management processes for flash eeprom memory arrays | |
US8977820B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
US6035432A (en) | System for remapping defective memory bit sets | |
US6754858B2 (en) | SDRAM address error detection method and apparatus | |
US7350119B1 (en) | Compressed encoding for repair | |
US7272773B2 (en) | Cache directory array recovery mechanism to support special ECC stuck bit matrix | |
US8522072B2 (en) | Memory address remapping architecture and repairing method thereof | |
US8621336B2 (en) | Error correction in a set associative storage device | |
JP2002215468A (ja) | ソリッドステート記憶デバイス | |
US5925138A (en) | Method for allowing data transfers with a memory having defective storage locations | |
US6108753A (en) | Cache error retry technique | |
US4912710A (en) | Self-checking random access memory | |
CN1310132C (zh) | 用寄存器文件中的冗余字代替故障字的方法和计算机系统 | |
US8230277B2 (en) | Storage of data in data stores having some faulty storage locations | |
US8694838B2 (en) | Cache memory, processor, and production methods for cache memory and processor | |
CN105027084B (zh) | 在移动通信系统中控制存储器的装置和方法 | |
US7747896B1 (en) | Dual ported replicated data cache | |
CN114333968A (zh) | 存储器的控制方法、存储器控制器及电子装置 | |
US20030046620A1 (en) | Method of testing cache memory | |
JP2006286135A (ja) | 半導体記憶装置及びその読み書き制御方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070411 |