微处理器在多种多样的应用中执行计算操作。处理器可充当例如
服务器或台式计算 机的固定计算系统中的中央或主处理单元。高执行速度通常对于此类台式处理器是合乎 需要的。另外,处理器日益部署在例如膝上型计算机和
个人数字助理(PDA)等移动计 算机中,且部署在例如
移动电话、全球
定位系统(GPS)接收器、便携式
电子邮件客户 端等嵌入式应用中。在此类移动应用中,除了高执行速度外,低功率消耗和小尺寸通常 也被认为是合乎需要的。
通常,
计算机程序被写入,似乎执行所述计算机程序的计算机具有非常大量(理想 地是无限量)的快速存储器。常见的现代处理器通过使用存储器类型的层级来模拟所述 理想状况,每一存储器类型具有不同速度和成本特性。层级中的存储器类型从顶级的非 常快且非常昂贵到较低级中的渐慢但较经济的存储装置类型变化。一种常见的处理器存 储器层级可包括顶层处的处理器中的寄存器(
门);后面是一个或一个以上芯片上高速缓 冲存储器(SRAM);可能的芯片外
高速缓冲存储器(SRAM);主存储器(DRAM);磁 盘存储装置(具有
电动机械存取的
磁性媒体);以及最低层处的带或CD(磁性或光学媒 体)。常见的便携式电子装置具有有限的(如果有的话)磁盘存储空间,且因此大小通常 有限的主存储器是存储器层级中的最低层。
高速芯片上寄存器构成处理器存储器层级的顶层。离散寄存器和/或
锁存器用作指令 执行管线中的存储元件。常见的RISC指令集结构包含一组供处理器用于存储多种多样的 数据的通用寄存器(GPR),所述多种多样的数据例如是指令操作码、地址或地址偏移量、 运算数以及算术和逻辑运算的中间和最终结果等。
在一些处理器中,逻辑GPR直接对应于物理存储元件。在其它处理器中,使用重命 名或动态地将每一逻辑GPR识别符指派给较大组的存储
位置或物理寄存器中的一者的寄 存器。在任一情况下,由逻辑GPR识别符存取的存储元件可实施为存储器阵列内的离散 寄存器或实施为存储位置(或存储位置的可独立寻址的子单元)。
测试是IC制造的一个重要部分。测试存储器阵列尤其容易出现问题。通常用于测试 随机逻辑的自动测试模式产生(ATPG)方法包括将激励模式扫描到一组扫描链寄存器或 锁存器中,施加所述模式以激发随机逻辑,将结果俘获在另一组扫描链寄存器或锁存器 中,以及将所俘获的结果扫描出以与预期值进行比较。无法使用ATPG技术来有效地测 试存储器阵列,因为数据不流经存储器以用于后续俘获和比较,而是被存储和检索。
一些处理器通过功能测试来测试存储器阵列,其中在处理器管线中执行代码以将测 试模式写入到阵列(例如,写入到逻辑GPR),接着读取值并与预期值进行比较。功能测 试耗费时间且效率低下,因为在执行测试之前必须将处理器初始化,并将测试代码载入 到高速缓冲存储器中。另外,从被测试的存储器位置处将管线内的控制和观察点移除很 远,且可能难以将揭露的故障与介入
电路隔离。
因此,一些具有嵌入式存储器阵列的处理器包含在测试模式期间激发存储器阵列的 内置自测(BIST)电路。常规BIST
控制器将数据模式写入到存储器阵列,读取数据模 式,并将所读取的数据与预期数据进行比较。在工作模式中,BIST控制器非现役,且存 储器阵列由处理器控制电路控制。在一些BIST系统中,不测试存储器阵列周围的I/O电 路,例如将写入到阵列的数据和从阵列读取的数据对准到结构上界定的总线对准位置的 数据导引逻辑。
在一个或一个以上
实施例中,通过提供用于存储器阵列存储位置的每一独立可寻址 子单元的
数据总线通道来测试存储器阵列的I/O中的读取和写入数据导引逻辑。每一总 线通道连接到计算机的数据输入。BIST控制器通过所述写入导引逻辑将测试模式写入到 所述存储器,且并行读取所述测试模式以测试所述写入导引逻辑。所述BIST控制器并行 地将测试模式写入到所述存储器,并通过所述读取导引逻辑读取所述测试模式以测试所 述读取导引逻辑。在这两种情况下,专用于每一总线通道的单独比较器检验子单元数据 在所述数据总线通道与存储器存储位置子单元之间适当移位。所述比较器在正常操作期 间被有效停用以防止
逻辑门切换。
一个实施例涉及一种测试插入在具有N个数据通道的数据总线与包括多个存储位置 (每一存储位置包括N个对应可寻址子单元)的存储器阵列之间的接口的写入数据导引逻 辑的方法。对于每一存储位置,将第一数据模式写入到至少N-1个子单元。将不同于第 一数据模式的第二数据模式从N个总线通道中的一者通过写入数据导引逻辑写入到N个 子单元中的非对应一者。使用所有N个总线通道读取所有N个子单元。对于每一子单元, 将从阵列读取的数据与写入到所述子单元的相应第一或第二数据模式进行比较。
另一实施例涉及一种测试插入在包括多个存储位置(每一存储位置包括N个可寻址 子单元)的存储器阵列与具有N个对应数据通道的数据总线之间的接口的读取数据导引 逻辑的方法。对于每一存储位置,使用所有N个数据总线通道写入测试数据模式。测试 模式包括用于除了处于测试中的一子单元外的N-1个子单元的第一数据模式,和用于处 于测试中的一子单元的第二数据模式。通过读取导引逻辑在N个总线通道的非对应一者 上连续读取N-1个子单元。将从阵列读取的子单元数据与写入到所述子单元的相应第一 或第二数据模式进行比较。
又一实施例涉及一种处理器。所述处理器包含包括多个存储位置(每一存储位置包 括N个可寻址子单元)的存储器阵列、具有N个数据通道的数据总线,和插入在数据总 线与存储器阵列之间的接口,所述接口包含写入数据导引逻辑。所述处理器还包含N个 比较器,每一比较器具有读取数据输入和比较数据输入,每一比较器的读取数据输入连 接到N个数据总线通道中的一者,且每一比较器输出读取数据输入与比较数据输入是否 匹配的指示符。所述处理器额外包含BIST控制器,其控制存储器阵列,将写入数据提供 到N个数据总线通道的每一者,将比较数据提供到N个比较器的每一者的比较数据输入, 且接收N个比较器匹配输出。BIST控制器可操作以将第一数据模式写入到存储器阵列存 储位置的至少N-1个子单元;将不同于第一数据模式的第二数据模式从N个总线通道中 的一者通过写入数据导引逻辑写入到存储位置的N个子单元中的非对应一者;使用所有 N个总线通道读取存储位置的所有N个子单元;将相应第一或第二数据模式提供到每一 比较器;且检查比较器匹配输出以检验写入数据导引逻辑操作。
再一实施例涉及一种处理器。所述处理器包含包括多个存储位置(每一存储位置包 括N个可寻址子单元)的存储器阵列、具有N个对应数据通道的数据总线,和插入在存 储器阵列与数据总线之间的接口,所述接口包含读取数据导引逻辑。所述处理器还包含 N个比较器,每一比较器具有读取数据输入和比较数据输入,每一比较器的读取数据输 入连接到N个数据总线通道中的一者,且每一比较器输出读取数据输入与比较数据输入 是否匹配的指示符。所述处理器额外包含BIST控制器,其控制存储器阵列,将写入数据 提供到N个数据总线通道的每一者,将比较数据提供到N个比较器的每一者的比较数据 输入,且接收N个比较器匹配输出。BIST控制器可操作以使用所有N个数据总线通道 将包括用于除处于测试中的一子单元外的N-1个子单元的第一数据模式和用于处于测试 中的一子单元的第二数据模式的测试数据模式写入到存储器阵列中的存储位置;通过读 取数据导引逻辑在N个总线通道中的非对应一者上连续读取存储位置的每N-1个子单 元;将相应第一或第二数据模式提供到对应于所读取数据被引导到的总线通道的比较器; 且检查比较器的匹配输出以检验读取数据导引逻辑操作。
附图说明
图1是处理器的功能
框图。
图2是具有相关联的数据导引I/O和BIST电路的存储器阵列的功能框图。
图3是测试写入数据导引逻辑的方法的
流程图。
图4是测试读取数据导引逻辑的方法的流程图。
图1描绘处理器10的功能框图。处理器10根据控制逻辑14在指令执行管线12中 执行指令。管线12可以是超标量设计,其具有多个并行管线(例如,12a和12b)。管线 12a、12b包含组织在管线级中的各种寄存器或锁存器16,以及一个或一个以上算术逻辑 单元(ALU)18。寄存器或存储器阵列20提供映射到逻辑通用寄存器(GPR)的多个存 储位置。
管线12a、12b从指令高速缓冲存储器(I-Cache)22接收指令,其中存储器寻址和
许可由指令侧转译后备
缓冲器(ITLB)24管理。从数据高速缓冲存储器(D-Cache)26 存取数据,其中存储器寻址和许可由主转译后备缓冲器(TLB)28管理。在各种实施例 中,ITLB可包括TLB的一部分的副本。或者,ITLB与TLB可集成。类似地,在处理器 10的各种实施例中,I-Cache 22与D-Cache 26可集成或统一。I-Cache 22和/或D-Cache 26 中的未中促使在存储器接口30的控制下存取主(芯片外)存储器32。处理器10可包含 输入/输出(I/O)接口34,其控制对各种外围装置36的存取。所属领域的技术人员将认 识到,处理器10的许多变化形式是可能的。举例来说,处理器10可包含用于I和D高 速缓冲存储器的任一者或两者的第2层(L2)高速缓冲存储器。另外,可从特定实施例 中省略处理器10中描绘的功能框中的一者或一者以上。
图2描绘存储器阵列20,其可(例如)实施一组逻辑GPR和内置自测(BIST)控 制器46。存储器阵列20组织为128位乘16,但本文揭示的测试方法和设备适用于具有 独立可寻址子单元的存储器的任何配置。存储器阵列20中的每一128位位置具有字(32 位)读取/写入粒度,且阵列20在字边界处以逻辑形式和物理形式分段。
存储器阵列20包含写入数据导引逻辑40和读取数据导引逻辑42以符合数据右对准 的结构要求。也就是说,结构界定可写入到存储器阵列20或从存储器阵列20读取的三 个数据大小:字(32位)、双字(64位)和四倍字(128位)。四倍字占据整个数据总线 或字通道W0-W3(位D0-D127)。双字始终在数据总线上右对准,即其占据字通道W0 和W1(位D0-D63)。然而,双字可存储在存储器阵列20内的存储位置中,在位置W0-W1 (位D0-D63)或W2-W3(位D64-D127)中。因此,写入导引逻辑40中的多路复用器在 数据通道W1(位D32-D63)上将数据引导到存储器阵列20中的位置W1(位D32-D63) 或W3(位D96-D127)。类似地,读取导引逻辑42中的多路复用器选择性地将数据从存 储器阵列位置W1和W3引导到数据通道W1。另外,字始终在总线(通道W0)上右对 准,但可占据存储器阵列20中的存储位置中的W0、W1、W2或W3位置中的任一者。 写入导引逻辑40中的多路复用器将总线通道W0引导到所有存储器阵列20字位置,且 读取导引逻辑42中的多路复用器将数据从存储器阵列20中的任何字位置引导到数据通 道W0。写入导引逻辑40和读取导引逻辑42中的多路复用器在正常操作期间处于处理器 的控制下,且在测试模式中由BIST控制器46控制。
在测试模式中,BIST控制器46额外将测试数据提供到数据总线以便写入到存储器 阵列20,且将比较数据提供到比较器48。BIST控制器46还控制存储器阵列20以及写 入导引逻辑40和读取导引逻辑42内的选择器的操作,并将测试模式
信号输出到门49以 抑制正常操作模式中的切换,如本文所描述。比较器48(每总线通道一个)每一者在数 据输入处接收从存储器阵列20读取的数据的字,并在比较输入处接收来自BIST控制器 46的比较数据模式。每一比较器48的输出指示数据输入处的所读取数据是否与BIST控 制器46所提供的比较模式匹配。每一比较器48的此匹配输出被路由到BIST控制器46。
为了充分测试存储器阵列20、写入导引逻辑40和读取导引逻辑42,比较器的数目 必须与存储器阵列20中每存储位置的读取/写入可寻址性的粒度匹配。举例来说,如果 存储器阵列20为字节可寻址的,那么将需要16个比较器48来测试阵列和相关联的字节 导引逻辑(8×16=128)。一般来说,每一存储器阵列20存储位置具有N个子单元或独 立可寻址部分,且数据总线包括N个对应数据通道。充分测试写入数据导引逻辑40和读 取数据导引逻辑42需要N个比较器。在图2中,N=4,且每一子单元为一字。
在初始测试中,BIST控制器46可通过使用整个128位数据总线(即,所有四个总 线通道)将测试数据模式写入到存储器阵列20以及从存储器阵列20读取数据来检验存 储器阵列20。明确地说,遵循标准存储器测试程序,BIST控制器46初始将背景模式写 入到存储器阵列20中的每个存储位置。BIST控制器46接着使用所有四个数据总线通道 将测试模式写入到存储器阵列20存储位置。接着再次使用所有四个数据总线通道从每一 存储器阵列20存储位置读取数据,并将其直接路由到每一比较器48的数据输入(也就 是说,写入数据导引逻辑40和读取数据导引逻辑42均不将任何数据从一个字位置移位 到另一字位置)。
BIST控制器46将对应于所写入的测试模式的比较数据供应到每一比较器48的比较 输入。每一比较器48将其输入处的数据进行比较,并将数据模式是否匹配的指示提供到 BIST控制器46。失配指示存储器阵列20
缺陷。将用于检验存储器阵列20的操作的数据 模式可包括例如交替1和0的“棋盘”的静态模式、通过交替测试每一存储位置的“匹 配1”和/或“匹配0”的动态模式,或如此项技术中众所周知的其它存储器测试模式和 程序。
根据一个或一个以上实施例,BIST控制器46可额外测试写入数据导引逻辑40和/ 或读取数据导引逻辑42的功能性。测试写入数据导引逻辑40的方法在图3中以流程图 形式描绘。首先,可选地将背景数据模式写入到存储器阵列20中的所有存储位置(框 50)。BIST控制器46接着将第一数据模式写入到单个存储位置中的至少N-1个子单元(框 52)。为了使测试时间最短,BIST控制器46可利用数据总线的所有N个通道将第一数据 模式写入到存储位置中的所有子单元。第一数据模式可包括(例如)所有1或所有0。 BIST控制器46接着将不同于第一数据模式的第二数据模式从N个总线通道中的一者通 过写入数据导引逻辑写入到存储器阵列20存储位置的N个子单元的非对应一者(框54)。 举例来说,BIST控制器46可将第二数据模式放置在总线通道W0上,且通过写入数据 导引逻辑将第二模式写入到存储器阵列20中的存储位置的子单元位置W1、W2或W3。 第二数据模式可(例如)包括例如0101或1010的“棋盘”模式。
BIST控制器46接着使用数据总线的所有N个通道并行读取存储位置的所有N个子 单元(框56)。如图2中所描绘,每一数据总线通道引导到对应比较器48的数据输入。 BIST控制器46将比较数据模式提供到每一比较器48的比较输入。比较数据模式包括用 于N-1个比较器48的第一数据模式,和用于对应于写入数据导引逻辑40将第二数据模 式引导到的存储位置子单元的比较器48的第二数据模式。比较器48将从存储器阵列20 读取的数据与由BIST控制器46提供的比较输入进行比较,并向BIST控制器46提供指 示数据模式是否匹配的输出。BIST控制器46检查匹配输出并将任何比较失败 (misscompare)标记为错误(框58)。对于存储位置中的每个子单元重复测试(框60、 62),且可对于存储器阵列20中的每个存储位置重复所述测试(框64、66、68)。
BIST控制器可通过以下操作来直接测试双字导引:将第二数据模式提供到W0和 W1总线通道,在连续测试中将第二数据模式引导到存储器阵列20存储位置中的W0-W1 或W2-W3双字位置中的一者,读取整个存储位置,以及将相应第一或第二数据模式提供 到比较器48以检验双字的写入数据导引逻辑40的操作。一般来说,BIST控制器可通过 写入导引逻辑40将第二数据模式从N个总线通道中的M个总线通道写入到N个子单元 中的M个子单元(其中M是N的整数因子),以测试写入导引逻辑40的M大小数据导 引功能性。在图2中描绘的实施例中,对于双字,M=2。
或者,BIST控制器46可通过以下操作选择性地测试写入数据导引逻辑40中的任何 选择器的每一引脚:将第二数据模式提供到一个数据总线通道,将第二数据模式引导到 存储器阵列20存储位置内的非对应子单元,并行读取存储位置的所有子单元,以及检验 第二数据模式的放置。举例来说,参看图2,可通过以下操作来测试将数据从总线通道 W1导引到存储器存储位置W3的双字导引逻辑:将第二数据模式放置在W1总线通道上, 在将适当
控制信号提供到写入数据导引逻辑40选择器的同时写入第二模式,读取整个存 储位置,以及将第二数据模式作为比较输入提供到与W3总线通道相关联的比较器48。 在此实例中,在先前测试中测试了将W0总线通道引导到存储位置的W2子单元的写入 数据导引逻辑40路径。因此,一般来说,BIST控制器46可通过以下操作来彻底测试写 入数据导引逻辑40:以通过适当控制写入数据导引逻辑40选择器,将第二数据模式的 单个子单元从总线通道引导到存储位置内的非对应子单元位置,以及在读取整个存储位 置后检验数据。
在图4中以流程图形式描绘测试读取数据导引逻辑42的方法。首先,可选地将背景 数据模式写入到存储器阵列20中的所有存储位置(框70)。BIST控制器46使用所有N 个总线通道将测试数据模式写入到存储器阵列20中的存储位置(框72)。测试模式包括 除了处于测试中的一子单元外的N-1个子单元的位置中的第一数据模式,和处于测试中 的一子单元的位置中的不同于第一数据模式的第二数据模式。接着通过读取导引逻辑将 数据从存储位置中的N-1个子单元连续读取到非对应总线通道上(框74),并读取到相 关联比较器48的数据输入。BIST控制器46将第一或第二数据模式提供到比较器48的 比较输入,并通过检查比较器48输出来检验匹配(框76)。BIST控制器46重复测试N-1 次,将第二数据模式放置在存储器阵列20存储位置中的不同子单元位置中(框78、80)。 可对于存储器阵列20中的每一存储位置重复测试(框82、84、86)。
可通过以下操作来针对双字测试读取数据导引逻辑42:将第二数据模式交替地写入 到存储位置的W0-W1子单元位置和W2-W3子单元位置,在W0-W1数据总线通道上通 过读取数据导引逻辑42读取双字,以及将对应于W0-W1数据总线通道的两个比较器48 中读取的数据进行比较。或者,可通过以下操作来测试双字读取数据导引逻辑42:将仅 包括第二数据模式的测试数据模式写入在W3子单元位置中,且将第一数据模式写入在 其它地方。可从阵列中读取W3子单元,并通过控制读取数据导引逻辑42选择器控制信 号将W3子单元引导到W1数据总线通道。将第二数据模式作为比较输入提供到与总线 通道W1相关联的比较器48,且检验第二数据模式的导引。一般来说,可通过以下操作 来测试读取数据导引逻辑42中的所有路径:将第二数据模式写入到存储位置的单个子单 元,以及控制读取数据导引逻辑42选择器以将第二数据模式引导到非对应数据总线通 道。
再次参看图2,比较器电路48包括静态逻辑门。也就是说,比较器48将把其数据 输入处呈现的任何数据模式与其比较输入处存在的数据进行比较,且将产生指示数据模 式是否匹配的信号。在正常处理器操作期间(即,不处于测试模式),存储器阵列20(和 读取数据导引逻辑42)输出的数据将恒定地改变。由于比较数据输入无法与从存储器阵 列20读取的数据匹配,所以比较器48内的门将恒定地切换,从而消耗功率、产生热量, 并在功率和接地轨道上引起电噪音。
因此,在正常操作期间通过确保比较器48数据输入处呈现静态数据模式来有效地停 用比较器电路48。在一个实施例中,(例如)通过“与”门49,利用来自BIST控制器 46的测试模式信号对来自对应数据总线通道的数据进行选通。“与”门49将测试模式信 号与数据通道的每一位(即,32位,如图2中所描绘)进行“与”运算。
在系统重设后(或响应于处理器处于正常操作模式的任何其它指示符),BIST控制 器40对测试模式信号解除
断言,且“与”门49将0的静态数据模式呈现给比较器48。 BIST控制器40可任选地将(例如,0的)对应静态数据模式呈现给比较器48的比较输 入。不管比较器48输出是指示数据匹配还是比较失败,由于输入是静态的,所以比较器 48内的门除了初始一个循环比较以外将不会切换。以此方式,在正常操作模式中抑制了 与比较器48内的随机门切换相关联的功率消耗和切换噪音。
尽管本文中已参考存储器阵列描述了本发明,但本发明的揭示内容可适用于任何具 有可寻址子单元和写入和/或读取数据导引逻辑的数据存储位置或存储位置的阵列,例如 寄存器堆、存储器阵列等。一般来说,尽管本文中已相对于本发明的特定特征、方面和 实施例描述了本发明,但将了解,许多变化、
修改和其它实施例在本发明的广泛范围内 是可能的,且因此,所有变化、修改和实施例将被认为处于本发明的范围内。因此,应 在所有方面将当前实施例解释为说明性而不是限制性的,且希望在所附
权利要求书的含 义和等效范围内的所有变化均包含在其中。