数据处理系统中具有窥探能力的存储器测试的制作方法

文档序号:6348762阅读:117来源:国知局
专利名称:数据处理系统中具有窥探能力的存储器测试的制作方法
技术领域
本公开总体上涉及数据处理系统,并且更具体地,本公开涉及具有窥探能力的存储器测试。
背景技术
存储器测试对于保证适当操作十分重要。在现今可用的许多数据处理系统中,运行测试软件来执行存储器测试。然而,当正在执行存储器测试时,这类存储器测试阻止运行其它软件应用程序的能力。这限制了可以执行存储器测试的时间点。存储器测试还固有地需要改变存储器内容。为了在正常的系统操作期间允许存储器测试,在测试之后以及在继续操作之前必须恢复或者重建其预测试内容。这可能是非常耗时的,并且常常是实际上不可行的。


本发明通过示例的方式来说明并且不受附图的限制,附图中相同的附图标记表示相同的元件。附图中的元件出于简明和清楚的目的而被例示并且不需要按照比例来绘制。图1以框图的形式例示了根据本发明一个实施例的数据处理系统。图2以框图的形式例示了根据本发明一个实施例的图1中存储器测试电路的一部分。图3以示意图的形式例示了根据本发明一个实施例的图2中AUT比较器的一部分。图4和图5以示意图的形式例示了根据本发明一个实施例的图2中别名比较器的一部分。图6以示意图的形式例示了根据本发明一个实施例的图2中未命中确定电路的一部分。图7例示了根据本发明一个实施例的测试图1的存储器的方法。图8例示了根据本发明一个实施例的窥探访问地址的方法。
具体实施例方式本申请所描述的各种实施例允许存储器测试发生的同时访问存储器的数据处理系统上的数据处理活动可以继续操作。数据处理活动可以包括(但不限于)数据处理系统中处理器上的软件运行或者直接存储器访问设备操作。在一个实施例中,使用内建自测试的硬件存储器(MBIST)来执行对于需要访问正在被测试的存储器的数据处理活动而言透明的存储器测试。在一个实施例中,当将要测试存储器的特定部分时,首先将该部分复制到寄存器或者某些其它存储电路。在访问存储器的数据处理活动期间,使用窥探机制来确定来自数据处理系统中数据处理活动的存储器访问请求何时对应于当前正在被测试的存储器部分。在此情况下,可以通过寄存器的使用而非访问存储器来响应存储器访问。然而,如果确定存储器访问不对应于当前正在被测试的存储器部分,可以通过访问存储器来响应存储器访问。而且,在一个实施例中,当正在测试存储器的特定地址位置时,在作为该地址的别名的一个或更多个其它地址上可能出现故障机制并且因此应当与该地址一同被测试。在一个实施例中,与正在被测试的地址相比,该一个或更多个地址别名通过使该地址的单个位反转来与正在被测试的地址相关(下文将更加详细地其示例)。因此,在一个实施例中,所选择的将要被存储至窥探机制中的寄存器的存储器的特定部分可以对应于正在被测试的存储器中的地址位置以及由该地址中的单个位反转所产生的那些地址。依此,可以最小化出于窥探的目的而需要被存储至寄存器的存储器数量。也就是说,通过将存储器测试限制到最可能的地址别名,可以防止地毯式测试(通常仅仅在出厂或者上电时进行),并且允许在存储器的正常操作期间的改进的存储器测试。如本申请所使用的那样,术语“总线”用来指可以用来传输诸如数据、地址、控制或者状态的一个或更多个各种类型的信息的多个信号或者导线。本申请所讨论的导线可以参考单条导线、多条导线、单向导线或者双向导线来例示或者描述。然而,不同的实施例可以改变导线的实现方式。例如,可以使用分离的单向导线而不是双向导线,并且反之亦然。此外,可以由串行地或者以时分多路的方式传输多个信号的单条导线来替代多条导线。类似地,可以将携带多个信号的单条导线分为携带这些信号的子集的各个不同导线。因此,存在用于传输信号的很多选项。当涉及将信号、状态位或者类似装置分别呈现为其逻辑真或者逻辑假状态时,本申请使用术语“断言”或者“设置”和“求反”(或者“去断言”或者“清除”)。如果逻辑真状态为逻辑电平1,则逻辑假状态为逻辑电平0。并且如果逻辑真状态为逻辑电平0,则逻辑假状态为逻辑电平1。本申请所描述的每个信号可以被设计为正或负逻辑,其中可以通过信号名称上的杠或者名称后的星号(* )来指示负逻辑。在负逻辑信号的情况下,信号是低电平有效,其中逻辑真状态对应于逻辑电平0。在正逻辑信号的情况下,信号是高电平有效,其中逻辑真状态对应于逻辑电平1。注意,本申请所描述的信号中的任何一个可以被设计为负或者正逻辑信号。因此,在替代实施例中,被描述为正逻辑信号的那些信号可以实现为负逻辑信号, 并且被描述为负逻辑信号的那些信号可以实现为正逻辑信号。本申请使用方括弧来指示总线的导线或者值的位位置。例如,“总线60[7:0]”或者“总线60的导线[7:0]”指示总线60的8条较低次序的导线,而“地址位[7:0]”或者 “地址[7:0]”指示地址值的8个较低次序的位。数字前的符号“$”表示该数字以其十六进制或者基数16形式来表示。数字前的符号“ % ”表示该数字以二进制或者基数2形式来表

图1以框图的形式例示了根据本发明一个实施例的数据处理系统10。系统10包括处理器12、存储器14、存储器测试电路16、(一个或更多个)其它模块20和系统互连18。 处理器12、存储器14和(一个或更多个)其它模块20(若有的话)中的每一个双向耦合至存储器测试电路16。存储器14的接口电路22为存储器测试电路16提供读/写(R/W) 指示符四和访问地址25。存储器测试电路16为接口电路22提供窥探未命中指示符27, 并且接口电路22与存储器测试电路16双向传输所窥探的数据23。在一个实施例中,处理器12是能够进行上述数据处理活动的任何设备,诸如通用处理器或者数字信号处理器,并且可以被称为互连主控器。或者,处理器12可以替代地为任何其它类型的互连主控器,诸如直接存储器访问(DMA)控制器等等。同样,尽管只显示了一个处理器,但本领域技术人员将会知道所描述的实施例可以应用于具有多处理器的系统,其中这些多处理器中的一个或更多个能够访问存储器14。(一个或更多个)其它模块20可以包括其它互连主控器、其它存储器、外围设备、输入/输出(I/O)设备等等。替代地,可以不存在其它模块20。此外,尽管只显示了一个存储器,但本领域技术人员将会知道可以存在附加存储器,其也可以按照与存储器14相似的方式来测试和窥探。此外,注意,存储器14可以是能够被读取和写入的任何类型的存储器。注意,可以存在图1中未示出的耦合至系统互连18的附加功能模块。在一个实施例中,系统互连18可以表征为包含与系统中的每一模块耦合的多条导线的总线。在另一个实施例中,系统互连18可以是允许系统模块之间的同时通信的传统“交叉”型总线。在另一个实施例中,系统互连18可以是高级高性能总线(AHB)。AHB是ARM有限公司分布的AMBA 规范版本2中引入的总线协议。又在另一个实施例中,系统互连18可以是另一类型的系统互连系统。在操作中,处理器12能够进行为了读取访问、写入访问或者读取和写入访问而访问存储器14的数据处理活动(诸如,例如,执行软件)。处理器12如本领域所已知的那样来操作并且将不在本申请进行进一步地详细描述。当处理器12需要对存储器14进行访问 (读取或者写入访问)时,处理器12生成访问请求并且经由系统互连18提供该访问请求给存储器14。访问请求包括与存储器14中的地址位置对应的访问地址和指示访问请求是读取访问还是写入访问请求的读/写(R/W)指示符。如果访问请求对应于写入访问请求,则处理器12还提供写入数据以作为访问请求的一部分。通过存储器14内的接口电路22接收该访问请求。响应于来自处理器12的访问请求,接口电路22能够与存储器测试电路16 通信以确定访问请求是否对应于当前正在由存储器测试电路16测试的地址位置并且相应地进行响应。在一个实施例中,接口电路22将作为访问地址25的来自处理器12的访问请求的访问地址传输至存储器测试电路16并且提供对应于访问地址25的R/W指示符四给存储器测试电路16。如果访问地址25对应于当前正在被测试的地址位置,则存储器测试电路16 (而不是存储器14)能够将读取数据(如果R/W指示符四指示读取访问)作为窥探数据23返回给接口电路22或者能够从接口电路22接收作为窥探数据23的写入数据(如果R/W指示符四指示写入访问)。因此,可根据访问地址25对应于读取访问还是写入访问而将窥探数据23提供给存储器测试电路16或者从存储器测试电路16提供窥探数据23。 在读取访问的情况下,接口电路22则可以将窥探数据23传输回处理器12。另一方面,如本领域所已知的那样,如果访问地址25不对应于当前正在被测试的地址位置,则存储器14可以响应于来自处理器12的访问请求并且接收写入数据或者提供读取数据。下面将参考图 2至图6以及图8来描述存储器测试电路16的窥探方面的进一步细节。此外,存储器测试电路16双向耦合至存储器14来执行存储器14上的存储器测试。下面将参考图2和图7来进一步详细地描述该存储器测试的进一步细节。图2以框图的形式例示了根据本发明一个实施例的存储器测试电路16的一部分。 图2包括待测试地址(AUT)寄存器32、一个或更多个寄存器34、测试控制电路30和窥探电路36。测试控制电路30双向耦合至AUT寄存器32和寄存器34中的每一个并且还耦合至窥探电路36。窥探电路36双向耦合至AUT寄存器32和寄存器34。在一个实施例中,寄存器34包括N个别名寄存器0到N-I,其中N可以是大于0的任何整数。因此,在一个实施例中,寄存器;34可以被称为别名寄存器。窥探电路36包括AUT比较器38、未命中确定电路 42、别名比较器(0:N-1)40和窥探数据选择器44。AUT比较器38和别名比较器(0:N_1)40 的每一个接收访问地址25。AUT比较器38还从测试控制电路30接收待测试地址(AUT) 51, 并且别名比较器(0:N-1)40还从测试控制电路30接收别名地址47。在替代实施例中,别名比较器(0:N-1)40可以替代地接收AUT 51,从AUT 51推断别名地址47 (其中下面关于图4 至图5来描述该推断)。AUT比较器38提供命中指示符52给未命中确定电路42和窥探数据选择器44,而别名比较器(0:N-1)40提供命中指示符(0: 给未命中确定电路42和窥探数据选择器44。未命中确定电路42提供窥探未命中指示符27给接口电路22和窥探数据选择器44。窥探数据选择器44还接收命中指示符52和命中指示符M并且还双向地耦合至AUT寄存器32和寄存器34中的每一个,并且双向地传输窥探数据23。窥探数据选择器44还接收R/W指示符四。测试控制电路提供测试地址46给存储器14。测试控制电路30还与存储器14传输测试数据48和测试控制50。在操作中,测试控制电路30使用AUT寄存器32和寄存器34来测试存储器14的一部分。窥探电路36允许在系统10的其他地方(诸如在处理器12中)执行数据处理活动来继续访问存储器14(甚至正在测试的部分),而同时测试控制电路30继续测试存储器 14。窥探电路36还可以允许另一个互连主控器(诸如直接存储器访问(DMA)单元)访问存储器14的同时继续存储器14的存储器测试。因此,在一个实施例中,存储器测试电路16 允许存储器14的非介入式测试而同时最低限度地影响正常操作期间其它互连主控器对存储器14的访问。首先,将参考图7的流程图更加具体地讨论测试控制电路30的操作。图7例示了描述根据一个实施例的测试存储器14的方法的流程60。参考图7,流程60开始于块62,其中生成作为AUT 51的第一地址。因此,在一个实施例中,测试控制电路30生成与将要被测试的存储器14中的地址位置对应的AUT 51。测试控制电路30还提供AUT 51给窥探电路 36。参考回图7,流程接下来进行到块64,其中从存储器14读取AUT 51的内容并且将其存储至AUT寄存器32。因此,AUT寄存器32现在存储存储器14中位于AUT 51处的内容并且将在该位置的测试期间保持该位置的原始值。接下来,流程进行到块66,其中生成与存储器14的一部分对应的多个地址。可以通过测试控制电路30生成该多个地址。在一个实施例中,所生成的多个地址对应于AUT 51 的地址别名。也就是说,在一个实施例中,多个地址中的每一个地址与AUT 51相关。例如, 在一个实施例中,多个地址中的每一个地址具有相对于AUT 51反转的一个地址位。因此, 如果AUT 51是N位地址,那么可以生成具有相对于AUT 51反转的不同位的N个地址中的每一个。在一个实施例中,这些别名地址用于存储器测试,因为如果一个地址失败,则存储器测试将通常因为一个地址位而失败。因此,通过测试仅仅有一个位不同于待测试地址的所有那些地址,可以完成存储器14的相当完整的测试。还将多个所生成的地址作为别名地址47提供给别名比较器(0:N-1)40。作为示例,如果AUT 51是诸如% 00110001的8位地址,则针对AUT 51的这个值的多个别名地址可以包括% 00110000(其中最后一位相对于AUT 51的最后一位反转),% 00110011(其中倒数第二位相对于AUT 51的倒数第二位反转),% 00110101 (其中倒数第三位相对于AUT 51的倒数第三位反转),0Z0 00111001 (其中倒数第四位相对于AUT 51的倒数第四位反转),% 00100001 (其中倒数第五位相对于AUT 51的倒数第五位反转),% 00010001(其中倒数第六位相对于AUT 51的倒数第六位反转),% 01110001 (其中倒数第七位相对于AUT 51的倒数第七位反转),和% 10110001(其中倒数第八位相对于AUT 51的倒数第八位反转)。因此,注意,多个别名地址中的每一个仅仅有一个位不同于AUT 51。仍然参考图7,流程从块66进行到块68,其中从存储器14读取块66所生成的多个地址中的每一个的内容并且将该内容存储至寄存器34的对应寄存器中。因此,在AUT 51 为8位地址的上述示例中,从存储器14读取8个别名地址中每一个的内容并且将该内容存储至寄存器34的对应寄存器中。例如,对于% 00110001的AUT值,可以将存储器14中位于位置% 00110000的内容存储在别名寄存器0中,可以将存储器14中位于位置% 00110011 的内容存储在别名寄存器1中,可以将存储器14中位于位置% 00110101的内容存储在别名寄存器2中等等。在该示例中,寄存器34可以包括8个别名寄存器别名寄存器0到别名寄存器7。仍然参考图7,流程接下来进行到块70,其中于存储器14中在AUT 51和多个所生成的地址(诸如别名地址)上执行存储器测试。测试控制电路30在需要时可以与存储器 14传输测试数据48、测试控制50和测试地址46来执行测试,其中可以使用本领域所已知的任何测试来测试其原始内容在测试之前被存储在AUT寄存器32和寄存器34中的这些存储器位置。例如,测试控制电路30可以循环通过AUT 51和别名地址47中的每一个地址来测试这些位置。替代地,可以使用其它测试算法。流程接下来进行到块71,其中将AUT寄存器32和寄存器34的内容写回存储器14到它们对应的位置。因此,一旦AUT 51和多个所生成的地址中存储的存储器14的一部分完成测试,测试控制电路30可以恢复存储器14中存储在AUT寄存器32和寄存器34中的原始值。流程接下来进行到判决菱形72,在判决菱形72中判断存储器14中是否存在需要测试的更多地址。如果不存在,流程60结束。如果存在,流程60进行到块74,其中生成作为AUT 51的下一个地址并且流程返回至块64。因此,在一个实施例中,测试控制电路30生成AUT 51的新值以及对应于存储器14的新的多个地址。接着继续如上所述的测试和恢复。注意,可以通过测试控制电路30测试存储器14的任一部分。测试控制电路30可以选择用于测试地址46的任何值。此外,测试控制电路30可以选择用于多个地址的任何地址,其中该多个地址不必是如上所述的别名地址。在此情况下,仍然将该多个地址提供给比较器(0:N-1)40(就如别名地址47)。因此,可以使用寄存器32和34来保存将要被测试的存储器14的任一部分(对应于存储器14中的一个或更多个地址位置)。例如,可以使用寄存器32和34来存储存储器特定范围的内容,其中每个地址是简单顺序或者与在前地址隔开固定距离。替代地,这些内容可以与时间而不是地址(诸如最近访问地址)相关或者与统计(诸如访问频率或者错误频率)相关。此外,存储器14的测试可以发生在系统10 的正常操作期间的任何时间。其可以周期性地发生或者在空闲时间发生。可以在不同的时间周期顺序地完成存储器14的特定部分的测试。此外,不同的事件可以触发存储器14的特定部分的测试。
接下来,将参考图8和图3至图6描述窥探电路36的操作。窥探电路36允许测试存储器14的一部分(诸如,例如,位于AUT 51和相应别名地址47的部分)的同时可以由诸如处理器12的互连主控器继续访问存储器14。例如,如果从处理器12接收的当前访问地址(作为访问地址25)与正在被测试的存储器14部分中的任何地址匹配,则在读取访问的情况下,窥探电路36可以从与匹配地址对应的寄存器32或34中的一个提供正确的读取数据给处理器12,或者在写入访问的情况下,窥探电路36可以从处理器12接收写入数据至与匹配地址对应的寄存器32或34中的一个(其中在图7的块71中,通过测试控制电路 30将该写入数据随后恢复回存储器14)。图8例示了描述根据本发明一个实施例的窥探电路36的操作的流程80。注意,流程80可以发生在存储器14的测试期间(诸如在图7的流程60期间或者至少部分地与流程60同时)。流程80开始于块82,其中处理器12生成访问地址25以在处理器12上的数据处理活动执行(诸如,例如,软件运行)期间访问存储器14并且提供该访问地址给系统互连18。流程进行到块84,其中存储器14的接口电路22接收访问地址25,并且接着进行到块86,其中接口电路22提供访问地址25给窥探电路36。流程接着进行到块88,其中窥探电路36确定访问地址25是否匹配AUT 51并且响应于该确定而生成命中指示符M。例如,参考图2,AUT比较器38从测试控制电路30接收 AUT 51且经由接口电路22接收访问地址25,并且执行比较以确定两个地址是否匹配。如果它们匹配,则断言命中指示符52以指示该匹配。如果不匹配,则对命中指示符52求反以指示没有出现匹配(即,出现未命中)。将命中指示符52提供给未命中确定电路42。图3 例示了 AUT比较器38的一个实施例。在一个实施例中,使用多个异或非门(XNOR),其中每个XNOR门接收AUT 51的一个位以及访问地址25的一个位。因此,在一个实施例中,存在N 个XNOR门以在一个输入处分别接收AUT 51的0到N-I位,并且在第二输入处分别接收访问地址25的0到N-I位。将所有XNOR门的输出提供给在其输出处提供命中指示符52的 N输入与门。因此,如果所有地址位都匹配,则将断言命中指示符52。然而,如果AUT 51和访问地址25之间的一个或更多个地址位不匹配,则一个或更多个这些XNOR门的输出将会被求反并且因而命中指示符52将会被求反。注意,可以使用任何逻辑设计来实现AUT比较器38以生成命中指示符52。参考回图8,流程从块88进行到块90,在块90中窥探电路36确定访问地址25是否匹配多个所生成的地址(例如,别名地址47)中的任何一个并且响应于该确定而生成命中指示符
54o例如,参考图2,别名比较器(0:N-1)从测试控制电路30接收多个所生成的地址(别名地址47)且经由接口电路22接收访问地址25,并且比较所生成的别名地址47中的每一个别名地址和访问地址25以确定别名地址中的任何一个是否匹配访问地址 25,且响应于该确定而提供命中指示符
M。对于每一次比较,别名比较器(0:N-1) 提供命中指示符
M中的对应一个,并且将所有的命中指示符M提供给未命中确定电路42。例如,如上述示例中所讨论的那样,如果访问地址25是N位地址,则测试控制电路 30生成N个别名地址(别名地址0至别名地址N)。如果N个别名地址中的任何一个匹配访问地址25,则断言命中指示符
M中的对应命中指示符。图4和图5例示了根据本发明一个实施例的别名比较器(0:N-1)的部分。图4例示了如何生成命中指示符[1]54的一个示例,而图5例示了如何生成命中指示符[2]54的一个示例。图4包括在一个输入处分别接收AUT 51的0到N-I位并且在第二输入处分别接收访问地址25的0到N-I位的N-I个XNOR门和一个异或O(OR)门。在图4的情况下, 耦合一个M)R门来接收输入处的地址位1 (例如,AUT 51 [1]和访问地址25[1])。将所有 XNOR门和XOR门的输出提供给在其输出处提供命中指示符[1] 的N输入与门,该命中指示符[1] 指示别名地址1(其原始内容被保存在寄存器34的别名寄存器1中)是否匹配访问地址25。注意,在当前示例中,别名地址1对应于AUT 51,但地址位1(AUT 51[1])被反转。因此,如果AUT 5U0和2:N-1]匹配访问地址25W和2:N-1]并且如果AUT 51[1]相对于访问地址25[1]被反转,则将会断言命中指示符[1]54。然而,如果别名地址1和访问地址25之间的一个或更多个地址位(除位1之外)不匹配,或者如果地址位1在反转中不匹配,则一个或更多个这些XNOR门或者该一个XOR门的输出将会被求反并且因而命中指示符[1] 将会被求反。图5包括在一个输入处分别接收别名地址2的0到N-I位并且在第二输入处分别接收访问地址25的0到N-I位的N-I个XNOR门和一个M)R门。在图5的情况下,XOR门位于位2上,而不是图4中的位于位1上。因此,耦合XOR门来接收输入处的地址位2 (例如,AUT51 [2]和访问地址25[2])。将所有XNOR门和XOR门的输出提供给在其输出处提供命中指示符[2] 54的N输入与门,该命中指示符[2] 指示别名地址2(其原始内容被保存在寄存器;34的别名寄存器2中)是否匹配访问地址25。注意,在当前示例中,别名地址2对应于AUT51,但地址位2 (AUT 51[2])被反转。因此,如果AUT 51
匹配访问地址25W:1和3:N-1]并且如果AUT 51 [2]相对于访问地址25[2]被反转,则将会断言命中指示符[2]54。然而,如果别名地址2和访问地址25之间的一个或更多个地址位(除位2之外)不匹配,或者如果地址位2在反转中不匹配,则一个或更多个这些XNOR 门或者该一个M)R门的输出将会被求反并且因而命中指示符[2] 将会被求反。可以使用相同的逻辑设计来生成命中指示符W和3:N-1]中的每一个。注意,在替代实施例中,可以使用任何逻辑设计来实现AUT比较器38以生成命中指示符52并且可以使用任何逻辑设计来实现比较器40以生成命中指示符M。例如,在图4和图5所示的实施例中,将AUT 51作为输入提供给别名比较器40,其中使用XOR门来处理别名地址的特定位的反转,而非明确地提供别名地址1和别名地址2给别名比较器40以进行比较。参考回图2,注意,在该实施例中,可以从测试控制电路30提供AUT 51而不是别名地址47给别名比较器40。然而,在替代实施例中,别名比较器40可以接收别名地址0-别名地址1中的每一个(作为别名地址47),并且直接比较每个别名地址和访问地址25。在此情况下,在图4中,可以仅仅使用XNOR门,其中每个XNOR门可以在一个输入处分别接收别名地址1的 0到N-I位(别名地址1
)并且在第二输入处分别接收访问地址25的0到N-I位。 类似地,在针对该替代实施例的图5中,可以仅仅使用XNOR门,其中每个XNOR门可以在一个输入处分别接收别名地址2的0到N-I位(别名地址2
)并且在第二输入处分别接收访问地址25的0到N-I位。替代地,可以使用其它逻辑设计来生成命中指示符M。参考回图8,流程从块90进行到块92,在块92中窥探电路36基于命中指示符52 和命中指示符讨生成窥探未命中指示符27。在一个实施例中,如果没有出现命中(如果访问地址25与AUT 51不匹配或者其与别名地址47中的任何一个匹配),则断言窥探未命中指示符27以指示未命中(以指示没有出现匹配)。然而,如果出现命中(如果访问地址 25匹配AUT 51或者如果其匹配别名地址47中的任何一个),则对窥探未命中指示符27求反以指示出现命中(出现匹配)。因此,未命中确定电路42接收命中指示符52和命中指示符M并且因此生成窥探未命中指示符27且可以提供该指示符给存储器14的接口电路 22。图6例示了包括N+1输入NOR门的未命中确定电路42的一个实施例,该N+1输入NOR 门接收命中指示符52和命中指示符
M中的每一个。如果断言这些输入中的任何一个,则对窥探未命中指示符27求反以指示出现匹配。然而,如果所有的这些输入为反,则断言窥探未命中指示符27以指示没有出现匹配。替代实施例可以使用任何逻辑设计来实现未命中确定电路42。例如,并不一定需要根据命中指示符来生成未命中指示符。参考回图8,流程从块92进行到判决菱形94,在判决菱形94中确定窥探未命中指示符27是否指示未命中。如果是,则流程进行到块96,在块96中响应于访问地址25而访问存储器14。也就是说,如果窥探未命中指示符27指示未命中,则没有出现匹配,并且访问地址25对应于当前没有被测试的存储器14的地址位置,因而存储器14可以提供读取数据或者接收写入数据。然而,如果窥探未命中指示符27没有指示未命中,流程从判决菱形 94进行到块98,在决98中对应于指示符52和M的寄存器32或者寄存器34中的一个中的内容用来提供对应于访问地址25的读取数据或者接收对应于访问地址25的写入数据。 如果访问地址25是写入访问地址(如R/W指示符四所指示),则将窥探数据23 (其为与来自处理器12的写入访问请求一同提供的写入数据)存储至AUT寄存器32和寄存器34 中与命中指示符52和M中被断言的命中指示符对应的所选寄存器中。如果访问地址25 是读取访问地址(如R/W指示符四所指示),则响应于读取访问请求将窥探数据23作为读取数据从所选寄存器提供给处理器12。基于AUT51或者别名地址47中的哪一个与访问地址25匹配(即,哪一个地址导致命中)来选择所选寄存器。因此,参考回图2,响应于窥探命中,窥探数据选择器44能够在读取访问的情况下经由互连电路22将作为窥探数据23 的数据适当地传送回处理器12或者在写入访问的情况下将窥探数据23适当地传送到寄存器32或者寄存器34中的适当寄存器中。在一个实施例中,响应于被求反的窥探未命中指示符27 (因而指示窥探命中),窥探数据选择器44使用命中指示符52和命中指示符M来确定寄存器32或者寄存器34中的哪一个对应于窥探命中。例如,如果因为访问地址25与 AUT 51匹配而断言命中指示符52,则AUT寄存器32对应于该命中并且如果R/W指示符四指示写入则将窥探数据23传送给AUT寄存器32,或者如果R/W指示符四指示读取则由窥探数据选择器44提供作为窥探数据23的AUT寄存器32的内容。例如,如果断言命中指示符(0:N-1)中的一个,则别名寄存器(0:N-1)中的一个相应寄存器对应于该命中并且如果 R/W指示符四指示写入则将窥探数据23传送给别名寄存器(0:N-1)中的一个相应寄存器, 或者如果R/W指示符四指示写入则由窥探数据选择器44提供作为窥探数据23的别名寄存器(0:N-1)中的一个相应寄存器的内容。注意,图8的流程80能够与图7的流程60同时发生在系统10内。也就是说,即使当测试控制电路30正在控制存储器14 (或者系统10中的任何其它存储器)中特定存储器位置的测试时,处理器12 (或者任何其它互连主控器)可以继续生成能够寻址到当前正在被测试的相同特定存储器位置的访问地址。还注意,AUT比较器38、别名比较器40和未命中确定电路42可以组合到输出窥探未命中指示符27的逻辑块中,该窥探未命中指示符 27在访问地址25与AUT或者别名地址中的任何一个不匹配时指示未命中。例如,在一个实施例中,可以不明确地生成命中指示符52或者命中指示符M。此外,窥探未命中指示符可以实现为窥探命中指示符,或者其可以被称为窥探命中/未命中指示符。到目前为止,应当认识到,窥探电路36允许即使在测试存储器14时也可以使用存储器14。也就是说,如果处理器12或者诸如DMA的某些其它互连主控器生成对正在被测试的存储器14中特定存储器位置的访问请求,则窥探电路36能够从寄存器32或者寄存器 34中的一个来响应该访问请求。如果访问请求是针对当前没有被测试的存储器14中的存储器位置,则存储器14能够响应该访问请求。因此,通过寄存器32、寄存器34和窥探电路 36的使用,能够以对需要访问正在被测试的部分的操作具有最小介入的方式来测试存储器 14。此外,注意,诸如窥探电路36的窥探电路可用于系统10内任意数量的存储器而不限于与单个存储器的使用。在一个实施例中,存储器14可以同时响应访问地址(而不是等待进行响应直到窥探未命中指示符27实际指示未命中),其中接口电路22可以使用窥探未命中指示符27来确定响应是否正确。例如,在读取访问的情况下,如果窥探未命中指示符27指示窥探命中, 则接口电路22知道存储器14响应于读取数据而提供损坏数据(因为该存储器位置正在被测试)并且知道窥探数据23是正确的读取数据。在写入访问的情况下,如果窥探未命中指示符27指示窥探命中,则接口电路22知道其不能将写入数据写入至存储器,因为其可能被存储器测试所损坏,并且因而知道应当将写入数据作为窥探数据23提供给寄存器32或34 中的适当寄存器。因为实现本发明的装置大部分由本领域技术人员所已知的电子组件和电路组成, 所以为了便于对本发明基础概念的理解和认识并且为了不使本发明的教导模糊或分散,将不以超过如上所示被认为必要的程度来解释电路细节。可以使用各种不同的信息处理系统来实现上述实施例中的一些(如果适用的话)。例如,尽管图1和图2及其讨论描述了示例性信息处理体系架构,但呈现该示例性体系架构仅用于在讨论本发明的不同方面时提供有用的参考。当然,出于讨论的目的简化了该体系架构的描述,并且其仅仅是根据本发明可以使用的许多不同类型的适当体系架构中的一个。本领域技术人员将认识到,逻辑块之间的分界仅仅是示例性的,并且替代的实施例可以合并逻辑块或电路元件,或者对各种逻辑块或电路元件施加功能性的替代分解。因此,应当理解,本申请所述的体系架构仅仅是示例性的,实际上,可以实施许多其它的实现相同功能的体系架构。简而言之,但仍有一定意义的,任何用于实现相同功能的组件布置被有效地“关联”,从而实现期望的功能。因此,本申请中被组合以实现特定功能的任何两个组件可以被看作彼此“相关联”,从而实现期望的功能,而不管体系架构或中间组件。同样,这样关联的任何两个组件也可以被看作彼此“操作相连”或“操作耦合”以实现期望功能。此外,例如,在一个实施例中,所示的系统10的元件是位于单个集成电路上或者位于同一设备内的电路系统。替代地,系统10可以包括任意数目的彼此互连的分开的集成电路或分开的设备。例如,存储器14可以位于与处理器12相同的集成电路上或在分开的集成电路上,或者位于与系统10的其他元件离散地分开的另一外围设备或从设备内。其它模块20也可以位于分离的集成电路或者设备上。此外,本领域技术人员将认识到在上述操作的功能之间的分界仅仅是示例性的。 可以将多个操作的功能合并到单个操作中,和/或可以将单个操作的功能分配到若干另外的操作中。此外,替代实施例可以包括特定操作的多个实例,并且在不同的其它实施例中可以改变操作的次序。在一个实施例中,系统10是诸如个人计算机系统的计算机系统。其它实施例可以包括不同类型的计算机系统。计算机系统是可以被设计成向一个或更多个用户给出独立计算能力的信息处理系统。可以在包括但不限于大型机、小型计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏机、汽车和其它嵌入式系统、蜂窝电话和各种其它无线设备的形式中找到计算机系统。典型的计算机系统包括至少一个处理单元、相关联的存储器和多个输入/输出(I/O)设备。计算机系统根据程序来处理信息并且经由I/O设备产生结果输出信息。程序是诸如特定应用程序和/或操作系统的一系列指令。计算机程序通常被内部地存储在计算机可读存储介质中或者经由计算机可读传输介质被传输给计算机系统。计算机处理通常包括执行(运行)程序或者程序的一部分、当前程序值和状态信息以及操作系统用来管理进程执行的资源。父进程可以包括其它、子进程来帮助执行父进程的整体功能。因为父进程特别地包含子进程来执行父进程的整体功能的一部分,所以子进程(以及孙子进程等)所执行的功能有时可以被描述为由父进程执行。尽管本申请参考特定实施例描述了本发明,但是在不偏离由下面的权利要求所阐明的本发明范围的前提下可以作出多种修改和改变。因此,说明书和附图将被认为是示例性的而不是限制的意义,并且意图将所有这些修改包括在本发明的范围之内。本申请关于特定实施例所述的任何益处、优点或者对问题的解决方案不旨在被解释为任一或所有权利要求的关键的、必要的或必需的特征或要素。如本申请所使用的那样,术语“耦合”不旨在被限制为直接耦合或机械耦合。此外,如本申请所使用的那样,术语“一”定义为一个或更多于一个。此外,在权利要求中诸如“至少一个”和“一个或更多个”的引语的使用不应该被解释为暗示由不定冠词 “一”所引入的另一权利要求要素将包含所引入权利要求要素的特定权利要求限制到仅仅包含一个这样的要素的发明,即使当同一权利要求包括引语“一个或更多个”或“至少一个” 以及诸如“一”这样的不定冠词时也是如此。这也适用于定冠词的使用。除非另有说明,诸如“第一”和“第二”的术语用于任意地区分这样的术语所描述的要素。因此,这些术语并不一定旨在指示这些要素的时间上的或其它的优先化。 下面是本发明的各种实施例。 项1包括测试存储器的方法,该方法包括生成第一地址以作为待测试地址(AUT); 访问存储器中AUT的内容并且将内容存储至待测试地址(AUT)寄存器中;生成与存储器的一部分对应的多个地址;访问存储器的多个地址中的每一个的内容并且将内容存储至多个寄存器;于存储器中在AUT和多个地址上执行存储器测试;在互连主控器内生成访问地址; 在存储器测试电路的窥探电路内接收访问地址;确定访问地址是否与AUT匹配并且响应于该确定而生成第一命中指示符;确定访问地址是否与多个地址中的至少一个匹配并且响应于该确定而生成多个命中指示符;在窥探电路内生成窥探未命中指示符;确定窥探未命中指示符是否因为访问地址与AUT和多个地址中的至少一个不匹配而指示未命中;如果窥探未命中指示符指示未命中,则响应于访问地址而访问存储器;以及如果窥探未命中指示符没有指示未命中,或者将窥探数据从互连主控器存储至包含AUT寄存器和多个寄存器的组中的所选寄存器,其中基于第一命中指示符和多个命中指示符中的至少一个来确定所选寄存器,或者将窥探数据从包含AUT寄存器和多个寄存器的组中的所选寄存器读取到互连主控器。项2包括项1的方法,其中多个地址是AUT的别名并且多个寄存器是别名寄存器。项 3包括项1的方法并且进一步包括在执行存储器测试之后将AUT寄存器和多个寄存器的内容写入存储器。项4包括项1的方法,其中在窥探电路内接收访问地址、确定访问地址是否与AUT匹配、确定访问地址是否与多个地址中的至少一个匹配、在窥探电路内生成窥探未命中指示符、如果窥探未命中指示符指示未命中则访问存储器、以及如果窥探未命中指示符没有指示未命中则或者将窥探数据存储至所选寄存器或者从所选寄存器读取窥探数据全部在于存储器中在AUT和多个地址上执行存储器测试的期间被执行。项5包括项1的方法,其中访问存储器中AUT的内容包含读取存储器中AUT的内容并且其中访问存储器中的多个地址中的每一个的内容包含读取存储器中的多个地址中的每一个的内容。项6包括项 1的方法,其中生成访问地址在互连主控器上的软件执行期间发生以访问存储器。项7包括项1的方法,其中在窥探电路内接收访问地址包括在存储器的接口电路内经由系统互连从互连主控器接收访问地址,其中互连主控器是处理器;以及将访问地址从接口电路提供给窥探电路。项8包括项1的方法,并且进一步包括响应于确定存储器中另外的地址是否将要被测试而生成下一个地址以作为AUT。项9包括项1的方法,并且进一步包括基于第一命中指示符和多个命中指示符来生成窥探未命中指示符。项10包括测试存储器的方法,其中该方法包括生成与存储器的一部分对应的多个地址;读取存储器的多个地址中的每一个的内容并且将多个地址中的每一个的内容存储至存储电路;以及在多个地址上执行存储器测试。在多个地址上执行存储器测试的期间,该方法进一步包含通过向存储器测试电路内的窥探电路发送访问地址来访问存储器测试电路,其中访问地址由互连主控器生成并且对应于存储器中的地址位置;确定访问地址是否与多个地址中的至少一个匹配并且响应于该确定而生成窥探未命中指示符,其中窥探未命中指示符在访问地址与多个地址中的至少一个不匹配时指示未命中;如果窥探未命中指示符指示未命中,则响应于访问地址而访问存储器;以及如果窥探未命中指示符没有指示未命中,则或者在访问地址对应于写入访问时从互连主控器存储写入数据至存储电路中的所选部分或者从存储电路中的所选部分提供读取数据给互连主控器,并且其中基于多个地址中的哪一个与访问地址匹配来选择存储电路中的所选部分。项11包括项10的方法,其中多个地址包含待测试地址(AUT)以及为AUT的别名的至少一个地址。项12包括项11的方法,其中存储电路包含待测试地址(AUT)寄存器和至少一个别名寄存器。项13包括项12 的方法,并且进一步包括在执行存储器测试之后将存储电路的内容写入存储器。项14包括项10的方法,其中在互连主控器上的软件执行期间通过互连主控器生成访问地址。项15 包括项10的方法,其中基于至少一个命中指示符来生成窥探未命中指示符。项16包括装置,该装置包括用于存储待测试地址(AUT)的内容和存储器的一部分的内容的存储电路;以及窥探电路。窥探电路包括用于从互连主控器接收访问地址的多个比较器,其中访问地址对应于存储器中的地址位置,确定访问地址是否与由AUT和其内容被存储在存储电路中的存储器的一部分的地址构成的组中的至少一个匹配,并且响应于该确定而生成至少一个命中指示符;未命中确定电路,用于当访问地址与AUT和其内容被存储在存储电路中的存储器的一部分的地址中的至少一个不匹配时生成指示未命中的窥探未命中指示符;以及窥探数据选择器,用于当窥探未命中指示符没有指示未命中时,或者基于至少一个命中指示符将数据从互连主控器存储至存储电路的所选部分或者将数据从存储电路的所选部分提供给互连主控器。项17包括项16的装置,其中存储器的一部分的地址是AUT的别名并且存储电路包含存储AUT的内容的待测试地址(AUT)寄存器和存储存储器的一部分的内容的至少一个别名寄存器。项18包括项17的装置,其中多个比较器包含确定访问地址是否与AUT匹配的AUT比较器,和确定访问地址是否与AUT的别名中的任何一个匹配的至少一个别名比较器。项19包括项17的装置并且进一步包括测试控制电路, 用于接收AUT、在AUT寄存器中存储AUT的内容、于存储器中在与AUT对应的存储器位置上以及在存储器的一部分上执行存储器测试,以及,在执行测试之后,将存储电路的内容写入至存储器。项20包括项19的装置,其中多个比较器从互连主控器接收访问地址,未命中确定电路生成窥探未命中指示符,并且或者将数据存储至存储电路的所选部分或者将数据从存储电路的所选部分提供至少部分地与测试控制电路执行存储器测试同时发生。
权利要求
1.一种测试存储器的方法,所述方法包含 生成第一地址以作为待测试地址(AUT);访问所述存储器中所述AUT的内容并且将所述内容存储至待测试地址(AUT)寄存器中;生成与所述存储器的一部分对应的多个地址;访问存储器中的所述多个地址中的每一个的内容并且将所述内容存储至多个寄存器;于所述存储器中在所述AUT和所述多个地址上执行存储器测试; 在互连主控器内生成访问地址; 在存储器测试电路的窥探电路内接收所述访问地址;确定所述访问地址是否与所述AUT匹配并且响应于该确定而生成第一命中指示符; 确定所述访问地址是否与所述多个地址中的至少一个匹配并且响应于该确定而生成多个命中指示符;在窥探电路内生成窥探未命中指示符;确定所述窥探未命中指示符是否因为所述访问地址与所述AUT和所述多个地址中的至少一个不匹配而指示未命中;如果所述窥探未命中指示符指示未命中,则响应于所述访问地址而访问所述存储器;以及如果所述窥探未命中指示符没有指示未命中,或者将窥探数据从所述互连主控器存储至包含所述AUT寄存器和所述多个寄存器的组中的所选寄存器,其中基于所述第一命中指示符和所述多个命中指示符中的至少一个来确定所述所选寄存器,或者将所述窥探数据从包含所述AUT寄存器和所述多个寄存器的组中的所述所选寄存器读取到所述互连主控器。
2.如权利要求1所述的方法,其中所述多个地址是所述AUT的别名并且所述多个寄存器是别名寄存器。
3.如权利要求1所述的方法,进一步包括在执行所述存储器测试之后将所述AUT寄存器和所述多个寄存器的内容写入到所述存储器。
4.如权利要求1所述的方法,在所述窥探电路内接收所述访问地址、确定所述访问地址是否与所述AUT匹配、确定所述访问地址是否与所述多个地址中的至少一个匹配、在所述窥探电路内生成所述窥探未命中指示符、如果所述窥探未命中指示符指示未命中则访问所述存储器、以及如果所述窥探未命中指示符没有指示未命中则或者将所述窥探数据存储至所选寄存器或者从所述所选寄存器读取所述窥探数据全部在于所述存储器中在所述AUT 和所述多个地址上执行所述存储器测试的期间被执行。
5.如权利要求1所述的方法,其中访问所述存储器中所述AUT的所述内容包含读取所述存储器中所述AUT的内容并且其中访问所述存储器中的所述多个地址中的每一个的所述内容包含读取所述存储器中的所述多个地址中的每一个的内容。
6.如权利要求1所述的方法,其中在所述互连主控器上的软件执行期间发生所述生成访问地址来访问所述存储器。
7.如权利要求1所述的方法,其中在所述窥探电路内接收所述访问地址包含在所述存储器的接口电路内经由系统互连从所述互连主控器接收所述访问地址,其中所述互连主控器是处理器;以及将所述访问地址从所述接口电路提供给所述窥探电路。
8.如权利要求1所述的方法,进一步包括响应于确定所述存储器中另外的地址是否将要被测试而生成下一个地址以作为所述AUT。
9.如权利要求1所述的方法,其中基于所述第一命中指示符和所述多个命中指示符来生成所述窥探未命中指示符。
10.一种测试存储器的方法,所述方法包含 生成与所述存储器的一部分对应的多个地址;读取所述存储器中的所述多个地址中的每一个的内容并且将所述多个地址中的每一个的内容存储至存储电路;在所述多个地址上执行所述存储器测试,其中在所述多个地址上执行所述存储器测试的期间,所述方法进一步包含通过向存储器测试电路内的窥探电路发送访问地址来访问所述存储器测试电路,其中所述访问地址由互连主控器生成并且对应于所述存储器中的地址位置;确定所述访问地址是否与所述多个地址中的至少一个匹配并且响应于该确定而生成窥探未命中指示符,其中所述窥探未命中指示符在所述访问地址与所述多个地址中的至少一个不匹配时指示未命中;如果所述窥探未命中指示符指示未命中,则响应于所述访问地址而访问所述存储器;以及如果所述窥探未命中指示符没有指示未命中,则或者在所述访问地址对应于写入访问时将写入数据从所述互连主控器存储至所述存储电路中的所选部分或者从所述存储电路中的所述所选部分提供读取数据给所述互连主控器,并且其中基于所述多个地址中的哪一个与所述访问地址匹配来选择所述存储电路中的所述所选部分。
11.如权利要求10所述的方法,其中所述多个地址包含待测试地址(AUT)以及为所述 AUT的别名的至少一个地址。
12.如权利要求11所述的方法,其中所述存储电路包含待测试地址(AUT)寄存器和至少一个别名寄存器。
13.如权利要求12所述的方法,进一步包括在执行所述存储器测试之后将所述存储电路的内容写入到所述存储器。
14.如权利要求10所述的方法,其中在所述互连主控器上的软件执行期间通过所述互连主控器生成所述访问地址。
15.如权利要求10所述的方法,其中所述生成所述窥探未命中指示符是基于至少一个命中指示符进行的。
16.一种装置,包含用于存储待测试地址(AUT)的内容和存储器的一部分的内容的存储电路; 窥探电路,包含用于从互连主控器接收访问地址的多个比较器,其中所述访问地址对应于所述存储器中的地址位置,确定所述访问地址是否与由所述AUT和其内容被存储在所述存储电路中的所述存储器的所述一部分的地址构成的组中的至少一个匹配,并且响应于该确定而生成至少一个命中指示符;未命中确定电路,用于当所述访问地址与所述AUT和其内容被存储在所述存储电路中的所述存储器的所述一部分的所述地址中的至少一个不匹配时生成指示未命中的窥探未命中指示符;以及窥探数据选择器,用于当所述窥探未命中指示符没有指示未命中时,或者基于所述至少一个命中指示符将数据从所述互连主控器存储至所述存储电路的所选部分或者将数据从所述存储电路的所述所选部分提供给所述互连主控器。
17.如权利要求16所述的装置,其中所述存储器的所述一部分的所述地址是所述AUT 的别名并且所述存储电路包含存储所述AUT的内容的待测试地址(AUT)寄存器和存储所述存储器的所述一部分的所述内容的至少一个别名寄存器。
18.如权利要求17所述的装置,其中所述多个比较器包含确定所述访问地址是否与所述AUT匹配的AUT比较器,和确定所述访问地址是否与所述AUT的所述别名中的任何一个匹配的至少一个别名比较器。
19.如权利要求17所述的装置,进一步包括测试控制电路,用于接收所述AUT、在所述 AUT寄存器中存储所述AUT的所述内容、于所述存储器中在与所述AUT对应的存储器位置上以及在所述存储器的所述一部分上执行存储器测试,以及,在执行所述测试之后,将所述存储电路的内容写入到所述存储器。
20.如权利要求19所述的装置,其中所述多个比较器从所述互连主控器接收所述访问地址,所述未命中确定电路生成所述窥探未命中指示符,并且或者将数据存储至所述存储电路的所述所选部分或者从所述存储电路的所述所选部分提供数据至少部分地与所述测试控制电路执行所述存储器测试同时发生。
全文摘要
一种测试存储器(14)的方法,包括生成(62、66)诸如测试地址(46)的多个地址,访问(64、68)多个地址中的每一个的内容并且在存储电路(32、34)中存储它们,在多个地址上执行(70)测试,通过发送访问地址给窥探电路(36)来访问(84、86)存储器测试电路,确定(88)访问地址是否与多个地址中的至少一个匹配并且响应于该确定而生成至少一个命中指示符(52、54),生成(92)窥探未命中指示符(27),确定(94)其是否指示未命中,如果其指示未命中,则响应于访问地址而访问(96)存储器,以及如果其没有指示未命中,则或者(98)将窥探数据(23)从互连主控器(12)存储至存储电路的所选部分或者从存储电路的所选部分读取窥探数据到互连主控器。
文档编号G06F12/02GK102369512SQ201080014331
公开日2012年3月7日 申请日期2010年3月23日 优先权日2009年4月16日
发明者G·R·莫里森 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1