数据处理的制作方法

文档序号:15807465发布日期:2018-11-02 21:56阅读:205来源:国知局
数据处理的制作方法

本公开涉及数据处理。

背景技术

为数据处理设备提供处理电路的一个或多个实例和多种不同形式的一个或多个存储器是已知的,该一个或多个存储器用于存储要操纵的数据值和指定要执行的数据处理操作的程序指令。存储器的形式可以包括例如主存储器、高速缓存存储器(cachememory)、用于存储指定虚拟到物理存储器地址转换的数据和/或存储器许可数据的旁路转换缓冲器(translationlookasidebuffer)、以及存储数据处理系统内用于其他用途的数据(诸如用于分支预测的分支历史数据)的存储器。

另外,在数据处理系统内提供存储器内置的自测电路以对数据处理系统内的存储器执行存储器测试操作也是已知的。这种存储器内置自测电路可以用于在数据处理系统的初始制造时执行初始测试和/或在数据处理系统的寿命期间执行现场连续测试。识别存储器操作中的故障可以用于触发适当的响应,诸如使存储器的相关部分不被使用,从而使其不会整体上损坏或减慢系统的操作。对检测到的错误的许多其他不同形式的响应也是可能的。

还已知的是,禁用存储器或存储器的一部分,使得访问存储器的处理器可以在没有存储器或存储器的该部分的情况下或者在不使用全部存储器的情况下继续操作。

还已知的是,提供内置的诊断电路以响应于由处理电路进行的处理来执行诊断程序以生成诊断数据。诊断数据被存储在专用于由诊断电路使用的另外的存储器中。



技术实现要素:

在示例性布置中,提供了一种数据处理设备,包括:

至少一个存储器,被配置用于存储数据;

处理电路,用于访问至少一个存储器中的数据;

存储器内置自测(mbist)电路,该mbist电路具有用于访问至少一个存储器的接口,并且被配置用于执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该测试程序至少包括将测试数据写入目标存储器单元;以及

诊断电路,用于响应于由该处理电路执行的处理操作而执行诊断程序以生成诊断数据;

其中mbist电路被配置用于控制将由诊断电路生成的诊断数据写入到包括至少一个存储器的至少一部分的暂时保留的存储器区域中的存储器单元的操作。

在另一示例性布置中,提供了一种数据处理设备,包括:

至少一个存储器装置,用于存储数据;

处理装置,用于访问至少一个存储器装置中的数据;

存储器内置自测(mbist)装置,该mbist装置具有用于访问至少一个存储器装置的接口装置,并且被配置用于执行用于测试至少一个存储器装置的至少一个目标存储器单元的测试程序,该测试程序至少包括将测试数据写入目标存储器单元;以及

诊断装置,用于响应于由处理装置执行的处理操作而执行诊断程序以生成诊断数据;

其中,该mbist装置被配置用于控制将由诊断装置生成的诊断数据写入到包括至少一个存储器装置的至少一部分的暂时保留的存储器区域中的存储器单元的操作。

在另一示例性布置中,提供了一种数据处理方法,包括:

提供存储器内置自测(mbist)电路,该mbist电路具有到至少一个存储器的接口以执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该mbist测试程序至少包括将测试数据写入目标存储器单元;

暂时保留包括至少一个存储器的至少一部分的存储器区域;

响应于处理操作执行诊断程序以生成诊断数据;以及

该mbist电路控制将由诊断装置生成的诊断数据写入到所保留的存储器区域中的存储器单元的操作。

本公开的技术的其他相应方面和特征由所附权利要求书限定。

附图说明

本公开的技术将仅通过示例方式参照如附图中所示的本公开技术的实施例来进一步描述,其中:

图1示意性地示出了数据处理系统;

图2更详细地示意性示出了图1的数据处理系统的多个部分;

图3是示出一种方法的示意性流程图;

图4示意性示出了高速缓存控制器;

图5是示出存储器保留的示意性流程图;

图6是示出存储器释放的示意性流程图;

图7示意性地示出了所保留的存储器部分;

图8和图9示意性地示出了分别经由mbist控制器进行的数据写入和读取;以及

图10和图11是示出相应方法的示意流程图。

具体实施方式

在参考附图讨论实施例之前,提供对实施例的以下描述。

示例性实施例提供了一种数据处理设备,包括:

至少一个存储器,被配置用于存储数据;

处理电路,用于访问至少一个存储器中的数据;

存储器内置自测(mbist)电路,该mbist电路具有用于访问至少一个存储器的接口,并且被配置用于执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该测试程序至少包括将测试数据写入目标存储器单元;以及

诊断电路,用于响应于由处理电路执行的处理操作而执行诊断程序以生成诊断数据;

其中mbist电路被配置用于控制将由诊断电路生成的诊断数据写入到包括至少一个存储器的至少一部分(例如,通常由数据处理电路使用的存储器或存储器部分)的暂时保留的存储器区域中的存储器单元的操作。

示例性实施例允许使用诊断电路来在处理电路处理数据时测试处理电路的操作,但是不需要专用存储器来存储所得到的诊断数据。相反,可以使用mbist电路将诊断数据写入暂时保留的存储器区域。在示例中,mbist电路可以使用其到存储器的数据接口,该存储器被用于mbist测试程序以将诊断数据存储在暂时保留的存储器区域中,该暂时保留的存储器区域可以在诊断过程已经完成之后(例如但不是排他性地,在存储的数据已例如由外部调试器读出之后)返回至非诊断(正常)用途。这些布置可以避免对专用诊断数据存储器的需要,并且还可以潜在地允许存储更大量的诊断数据。

在示例中,mbist电路被配置用于执行存储器读取程序以取回存储在保留的存储器区域中的数据并将所取回的数据提供给外部接口。这允许mbist电路读取(以及存储)诊断数据。

为了减轻对设备的其余处理活动的任何影响,在示例中,至少一个存储器被配置用于继续允许处理电路访问除保留的存储器区域中的存储器单元之外的存储器单元。

该设备可以包括控制电路以保留包括至少一个存储器的至少一部分的存储器区域,以存储由执行诊断程序的诊断电路生成的诊断数据。例如,这可以由外部调试器提供或由在作为设备的一部分的cpu上运行的调试软件来提供。

在示例中,存储器区域的由mbist电路用来存储诊断数据的用途仅仅是暂时的,使得控制电路被配置用于在完成关于所保留的存储器区域的存储器读取程序之后释放该所保留的存储器区域。

这些技术适用于各种类型的存储器,但是在示例中,至少一个存储器包括高速缓存存储器;并且该设备包括高速缓存控制器以控制到该高速缓存存储器的数据存储和从该高速缓存存储器的数据取回。在示例中,高速缓存控制器被配置用于分配高速缓存存储器的多个部分以用于暂时存储对应于更高级别存储器中的地址的数据;并且控制电路被配置用于通过向高速缓存控制器指示高速缓存存储器的某一存储器区域不可由高速缓存控制器分配,来保留该存储器区域。在示例中,高速缓存存储器的多个部分包括各自存储对应于更高级别存储器中的一系列连续地址的数据的高速缓存行或高速缓存路;并且控制电路被配置用于保留一个或多个高速缓存行或路。

在一些示例中,该设备包括多个存储器,其中该控制电路被配置用于选择多个存储器中保留存储器区域的存储器。存储器的选择可以取决于诊断数据的性质。例如,为了根据与多个存储器的子集相关的处理操作来存储诊断数据,控制电路可以被配置用于选择除了该多个存储器的子集之外的多个存储器中的一个或多个存储器。

多个存储器可以包括多种类型的存储器。在示例中,多种类型的存储器包括以下各项中的两种或更多种:

数据高速缓存;

侦听过滤器存储器;

2级高速缓存;

3级高速缓存;

指令高速缓存;

图形数据存储器;

数据紧耦合存储器;

用于分支预测的缓冲器;

用于分支目标的缓冲器;

用于地址转换的缓冲器;以及

指令紧耦合存储器。

虽然mbist电路的一个实例可以用于所有多个存储器,但是示例性布置包括多个mbist电路,诊断电路通过总线电路连接到该多个mbist电路。为了使mbist电路被适当地控制以存储诊断数据,在示例中,控制电路被配置用于向mbist电路提供指示保留存储器区域中的一个或多个存储器单元的位置信息。为了允许诊断数据超过(或者可能潜在地超过)保留的存储器容量的情况,可以使用循环布置,在该布置中,mbist电路被配置用于控制根据存储器地址的顺序来将诊断数据写入到保留的存储器区域,该存储器地址的顺序响应于保留的存储器区域充满诊断数据而重新启动。

当执行mbist电路的存储器测试功能时,在示例中,由mbist电路执行的测试程序可以与数据处理电路的功能操作并行地执行。这允许数据处理电路内的一些存储器离线地用于诊断数据存储而不影响其功能操作,但是该存储器的性能可能被降低。然而注意,这不是必需的,因为(例如)整个cpu可以离线,并且来自另一个cpu或ip核心(gpu、scu等)的诊断数据可以存储在离线cpu的存储器中。

示例性布置包括连接到外部接口以接收取回到的诊断数据的调试设备。

另一示例性实施例提供了一种数据处理设备,包括:

至少一个存储器装置,用于存储数据;

处理装置,用于访问至少一个存储器装置中的数据;

存储器内置自测(mbist)装置,该mbist装置具有用于访问至少一个存储器装置的接口装置,并且被配置用于执行用于测试至少一个存储器装置的至少一个目标存储器单元的测试程序,该测试程序至少包括将测试数据写入目标存储器单元;以及

诊断装置,用于响应于由处理装置执行的处理操作而执行诊断程序以生成诊断数据;

其中,该mbist装置被配置用于控制将由诊断装置生成的诊断数据写入到包括至少一个存储器装置的至少一部分的保留的存储器区域中的存储器单元的操作。

另一示例性实施例提供了一种数据处理方法,包括:

提供存储器内置自测(mbist)电路,该mbist电路具有到至少一个存储器的接口以执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该mbist测试程序至少包括将测试数据写入目标存储器单元;

暂时保留包括至少一个存储器的至少一部分的存储器区域;

响应于处理操作执行诊断程序以生成诊断数据;以及

该mbist电路控制将由诊断装置生成的诊断数据写入到所保留的存储器区域中的存储器单元的操作。

在详细讨论附图和示例性实施例之前,将提供一些进一步的背景信息。

在本公开的示例中,诊断数据存储器再利用可能已经存在于ip核心中的正常功能和在线mbist逻辑(处理块,其可以被实现为集成电路器件,或者实现为集成电路器件的一部分),但也可以使用少量的附加功能。可以在mbist控制器中提供附加功能。通常,cpu和其他ip核心类型(诸如侦听控制单元(scu)或3级高速缓存存储器(l3))具有禁用全部或部分存储器的功能(为了节省电力或出于其他原因),并且仍然可以在这种模式下正常工作。

诊断数据存储不需要完全的在线mbist,因为在线mbist旨在用于短突发存储器测试。在这种使用情况下,存储器被针对在cpu上运行的sw透明地进行测试,并由mbist控制器自动锁定达少量的时钟周期。存储器内容不会被这种测试损坏。这可以便宜地实现,因为每个突发仅访问少量的ram条目,并且因此它们的内容可以由mbist控制器保存和恢复。

诊断数据存储的一个示例性用途是使得能够在相当长的一段时间内访问相对大量的存储器。因此,这通常需要软件使存储器离线,并且如果必要的话将任何脏数据(dirtydata)保存到下一级存储器。这种数据刷新操作是由一些ip核心(l3)中的硬件自动进行的。

在本公开的技术中,mbist控制器不一定保留存储器或存储存储器内容。它从总线(例如高级追踪总线或atb,例如下面讨论的atb230a、230b、230c)接收诊断数据,并经由ip核心上的mbist接口将此数据写入存储器。mbist控制器还允许外部调试器经由调试外设总线(apb——已经存在用于mbist控制器编程)访问存储器中存储的诊断数据。存储器测试所需的mbist控制器中的一些特征被再利用,诸如地址计数器,当值被写入存储器时地址计数器递增或递减。在此技术的一些示例中使用的主要附加mbist控制器特征是:

-诊断数据总线接口(例如,atb)

-在会话期间自动更改存储器阵列的能力。这允许使用多于一个ram来存储数据。

存储器内容被诊断数据损坏,所以当存储器变回在线时,通常需要初始化存储器并恢复存储器内容。用于进行此操作的电路已经存在于ip核心中以用于上电或类似方面的功能用途。

在线mbist还允许以离线使用模式访问存储器,并且在此模式中仅使用在线mbist的功能的子集。此模式对于存储器测试也很有用,因为它允许使用生产测试算法,生产测试算法也需要相对较长的时间来运行和损坏存储器内容。在这种模式中,cpu流水线不会由于mbist访问而停止,因为流水线不访问被软件禁用的存储器。访问替代地转到下一存储器级别。因此,如果l1d高速缓存(l1d-cache)被禁用(离线),则它的访问被传递到l2高速缓存,并且mbist控制器可以访问l1d高速缓存,而不会影响cpu流水线的操作。

高速缓存路或整个高速缓存可以离线并用于诊断数据存储。本公开的一个实际实现方式是将高速缓存的数据ram用于存储,因为它们是大存储器并且具有大的数据宽度,从而提供高带宽。在一些当前的高速缓存中的数据ram可以在每次写入时存储256位数据。这对跟上由ela生成的数据非常有用,ela当前可以在每个时钟周期内连续生成128位。

在一些示例中,l2和l3高速缓存将是待使用的有用候选存储器。也可以使用l1高速缓存,但是它们较小并且可能不具有离线的能力。通常l2和l3高速缓存可以离线。还存在一种趋势,即l2高速缓存对于cpu是本地的,所以最好让整个cpu离线使用它的l2高速缓存来存储来自另一个cpu的诊断数据。一些当前的l3高速缓存设计具有允许其路的一半被关闭电源的省电特征。这些高速缓存设计也被分成两个独立的半部分,从而允许在这两个半部分上并行进行不同的访问。这使得它们理想地用于诊断数据存储。

图1示意性地示出了数据处理系统10,诸如片上系统集成电路,其包括第一处理器核心20、第二处理器核心30、图形处理单元40、主存储器50以及一个或多个外围设备60,它们全部经由互连70连接。

第一处理器核心10和第二处理器核心20各自分别包含:1级指令高速缓存(l1i$)22、32;1级数据高速缓存(l1d$)23、33;旁路转换缓冲器(tlb)24、34;指令紧耦合存储器(tcm)和数据tcm,统一以tcm25、35画出;缓冲器26、36,诸如用于分支预测的缓冲器和用于分支目标的缓冲器中的一者或两者,以及诊断电路27、37,诸如嵌入式逻辑分析器(ela)或其他诊断电路。并不是所有这些部件都需要与每个处理器核心相关联,但是为了完整性,它们都在图1中示出。

为了保持第一处理器核心20和第二处理器核心30内的数据高速缓存23、33之间的一致性,侦听控制单元80用于利用侦听过滤器82以及其他电路启动侦听操作和一致性控制。侦听控制单元80还包括由第一处理器核心20和第二处理器核心30共享的2级高速缓存(l2$)84。

dram控制器90设置在互连70和主存储器(dram)50之间。dram控制器90具有相关联的数据缓冲器92以用于缓冲在主存储器50内访问的数据,诸如为主存储器50内最近被访问的多行数据提供缓冲存储。

图形处理单元40包括用于由图形处理单元40执行的图形处理操作的随机存取存储器(gpuram)44和gpu逻辑42。

图1所示的存储器22、23、24、25、26、32、33、34、35、36、44、50、82、84、92各自具有相关联的存储器内置自测电路100,该相关联的存储器内置自测电路100用于在监管处理器110的控制下对其各自相应的存储器执行存储器内置自测操作。单独的存储器内置自测电路100可以专用于对单独的存储器执行内置自测操作(例如,在图形处理单元40内的gpuram存储器44的情况下),或者可以被在多个存储器之间共享(例如在第一处理器20内的1级指令高速缓存22、1级数据高速缓存23、旁路转换缓冲器24、紧耦合存储器25和缓冲存储器26的情况下)。

作为在线测试布置的背景,当监管处理器110指示存储器内置自测电路100的实例中的一个实例对其相应的相关存储器中的一个执行内置自测操作时,存储器内置自测电路100用于在待测试的存储器内保留一个或多个条目。这些条目由内置自测电路100使用仅需少量时钟周期的短突发存储器测试算法来测试。所保留的存储器条目在每个突发结束时由内置自测电路100释放。在每次突发之后,内置自测电路100递增或递减其地址计数器,以准备好用于待测试的下一个存储器条目。每个测试突发是由硬件脉冲或由软件触发的。因此,使用一系列短突发来测试存储器,并且与各个测试突发的长度相比,各个突发之间的间隙较大。如果相关的处理电路希望在保留存储器单元的同时使用这些存储器单元,则处理电路被停止,直到内置自测操作已经完成并且存储器单元被释放。通过一次对存储器的一小部分执行内置自测操作,可以将每个测试突发的长度保持较短,并且因此使希望使用该存储器的功能处理电路的操作停止的可能性保持较低,所以可以降低内置自测操作的侵扰性。在一段延长的时间内,内置自测电路100将测试存储器内的所有条目。内置自测电路100向监管处理器110通知其何时已经完成对存储器的测试以及测试是通过还是失败。监管处理器110然后将指示内置自测电路100测试下一个存储器。因此,在在线测试模式中,可以在相关联的数据处理电路10的功能操作期间连续测试与内置自测电路100相关联的所有存储器。在离线测试模式中,使多个存储器部分离线(暂时被撤回不使用)以进行测试,然后在测试后返回使用。

诊断电路27、37被提供用于进行关于处理器核心的诊断操作。也可以提供关于追踪其他操作的其他诊断电路(图1中未示出)。可以为其他单元或ip核心提供诊断电路,而不仅仅是为处理器核心提供诊断电路。这种诊断电路的一个示例是所谓的嵌入式逻辑分析器。这可以检测处理器核心中的信号状态,并生成指示这些检测的诊断数据。由这种电路进行的信号“追踪”或检测可以提供出于对接口或交易序列的诊断目的的可见性,因此可以用于诊断错误(具体而言,是将错误与特定处理器核心或处理器核心的特定区域相隔离)。诊断电路的另一个示例是嵌入式追踪宏(embeddedtracemacro,etm)。这允许执行在待以非侵入方式追踪的cpu上运行的sw。在etm中,追踪数据可以存储在专用的sram中并由外部调试器(debugger)访问,或者被发送到外部追踪接口并存储在外部追踪捕获单元中。在处理器核心或其他电路(如互连或网络接口)中高频运行的信号追踪可以产生大量的高频诊断数据。在示例性实施例中,并非提供专用存储器(诸如sram)来存储这种诊断数据,而是图1中的现有存储器被选择性地用于在mbist控制器的控制下存储诊断数据。

诊断电路在外部调试器122的控制下操作,外部调试器122在图1中示出,但是至少在一些示例中,外部调试器122被认为在图1的设备的外部,并且可以通过调试访问端口120连接到图1的设备。调试访问端口、诊断电路、mbist控制器和监管cpu通过总线130连接。

因此,图1的设备提供了数据处理设备10的示例,该数据处理设备10包括:至少一个存储器(22、23、24、25、26、32、33、34、35、36、44、50、82、84和/或92),被配置用于存储数据;处理电路(20、30、42、82、90),用于访问至少一个存储器中的数据;存储器内置自测(mbist)电路100,具有访问至少一个存储器的接口并且被配置用于执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该测试程序至少包括将测试数据写入目标存储器单元;以及诊断电路(27、37),用于响应于由处理电路执行的处理操作而执行诊断程序以生成诊断数据。图1提供了其中提供了两个或更多个存储器的示例,以及其中提供了多种类型的存储器的示例。在图1的示例中,多种类型的存储器包括以下各项中的两种或更多种:数据高速缓存;指令高速缓存;图形数据存储器;数据紧耦合存储器;用于分支预测的缓冲器;用于分支目标的缓冲器;用于地址转换的缓冲器;指令紧耦合存储器;侦听过滤器存储器;2级高速缓存存储器;以及3级高速缓存存储器。

图2更详细地示意性示出了图1的数据处理系统的多个部分。在图2中,示出了图1的两个处理器核心(cpu)以及它们各自相应的ela装置27、37。然而作为另一个示例,mbist控制器102被在两个处理器核心之间共享。一般来说,每个处理器核心可以有其自身的一个mbist控制器,或者多于一个mbist控制器,或者多个处理器核心可以共享更少数量的mbist控制器。图1和图2的示例包括多个mbist电路,诊断电路通过总线电路130连接到这多个mbist电路。

每个处理器核心具有相关联的高速缓存存储器200、210,该相关联的高速缓存存储器200、210是对图1中与那个处理器核心相关联的任何存储器的图示,诸如1级指令高速缓存、1级数据高速缓存、tlb、tcm或缓冲器。下面的讨论将假定存储器200、210是高速缓存存储器中的一个,但是存储器200、210可以是上面讨论的存储器中的任何一个。

ela电路27、37在被启动用于操作时,经由调试信号总线220检测与由相应的处理器核心进行的处理操作相关联的信号。处理操作可以是指令执行操作或其他操作,诸如总线访问或数据传送操作。ela电路生成指示那些处理操作的性质(例如,指示总线转换或指令执行的其他方面)的所谓追踪数据,并在ela追踪写入总线230a、230b、230c上提供追踪数据。

在先前提出的布置中,可能已经提供了专用的片上存储器(诸如sram)来存储追踪数据。然而,在本示例中,在mbist控制器的控制下,使用一个或多个现有系统存储器的至少一部分来存储追踪数据。

如上所述,mbist控制器被布置成控制(或保留)存储器的一部分并向该部分写入测试值,然后从被测试的存储器读取该测试值。在本公开的布置中,使用相同的数据写入和数据读取机制,但是并非将测试数据写入存储器的一部分,而是将ela追踪数据写入,然后由外部调试器122取回以用于(例如)外部分析。在此方面,外部调试器提供连接到外部接口以接收取回的诊断数据的调试设备的全部或一部分的示例。

为了实现这一点,使存储器离线(例如,由在cpu或外部调试器122上运行的软件进行)以临时存储诊断数据。然后经由mbist接口103、105将诊断数据写入存储器的那个部分。随后,mbist控制器可以经由mbist接口103、105从存储器的保留部分读取数据,并且经由调试访问端口120将该数据提供给外部调试器122。随后可以释放存储器的保留部分。

图2的示例包括三个ela电路,包括与高速缓存控制器(示意性地示为n级(ln)高速缓存控制器,指示该技术适用于任何存储器级别)相关联的一个ela电路240。来自ela电路的数据在被启用进行诊断操作时可以在mbist控制器的控制下存储在图2所示的任何存储器中,或者实际上存储在图1所示的任何具有更广泛选择的存储器中。以这种方式被暂时保留用于存储诊断数据的那些存储器的示例部分在图2中被示出为阴影部分。在示例中,并且如将在下面进一步讨论的,与数据处理设备内的特定装置的操作相关的诊断数据(例如,与特定cpu或高速缓存控制器的操作相关的诊断数据)可以存储在通常与图1的设备的操作的不同部分相关联的存储器中。这是因为将与设备的潜在错误部分相关的诊断数据存储在设备的另一部分中可能是有用的,以避免存储本身(潜在地)受到被怀疑的错误影响的诊断数据。这种方法允许在设计阶段引入的系统硬件和软件错误在物理集成电路中被诊断出来。

在图2中,调试访问端口120可以与ela电路通信,例如以提供控制数据来建立测试协议或布置,并且还可以通过所谓的高级外设总线(apb)互连250与mbist控制器和监管cpu通信。

图3是示出了具有作为情境的图1和图2的布置的方法的示意性流程图,通过该布置,提供了被改用于在功能存储器中存储诊断数据的存储器内置自测(mbist)电路。在步骤300,图1的设备内的至少一个存储器的至少一部分被保留以用于存储诊断数据并被离线。保留过程将在下面更详细地讨论。

该设备提供控制电路以保留包括至少一个存储器的至少一部分的存储器区域,以存储由执行诊断程序的诊断电路生成的诊断数据。控制电路可以包括外部调试器122,该外部调试器122可以直接作用以禁用存储器或存储器的一部分。然而,在其他示例中,控制电路可选地包括处理器核心20、30中的一个或多个,使得外部调试器可以通过与在该处理器核心上运行的软件进行通信来间接地引起存储器或部分存储器的保留。在任何一种情况下,可能合适的是让外部调试器通知处理器核心它已经禁用了该处理器核心与之交互的存储器或部分存储器(至少出于该处理器核心不再尝试重新启用该存储器或部分存储器的原因)。

注意,两个或更多个存储器的多个部分可以被保留,并且可以由mbist控制器(或者由多于一个mbist控制器)作为用于通过本公开的技术存储诊断数据的单个复合缓冲器来处理。

在示例中,控制电路可以被配置用于向mbist电路提供指示所保留的存储器区域中的一个或多个存储器单元的位置信息。

注意,所保留的区域可以涵盖整个存储器或存储器的一部分,并且可以跨越两个或更多个存储器(也就是说,一个存储器的一部分或全部以及另一个存储器的一部分或全部,而不管是否由相同的处理器核心或其他装置以正常使用方式访问存储器,并且不管两个存储器的地址空间是否是连续的)。

外部调试器控制ela和mbist控制器,从而根据用户要求配置和启用它们。此操作的一部分可以包括在步骤305设置和启用图1的其他设备特征。

在步骤310,由含有正在调查的错误的适当的处理器核心来执行软件。在步骤310的第一实例中,启动这种软件的执行。在该步骤的后续实例中(如通过从下面讨论的步骤325返回的箭头所示意性示出的),该执行继续。然而注意,在实际的系统中,步骤310可以与下面要讨论的步骤315、320、325并行地运行。

在步骤315,诊断电路(诸如ela电路中的一个或多个)执行诊断过程,并从诊断电路正在监视的处理器核心或其他设备特征接收的信息生成诊断数据,该诊断数据被供应给mbist控制器。

在步骤320,由mbist控制器中的一个适当mbist控制器将诊断数据写入保留的存储器部分。

注意,如上所述,步骤310......325可以重复地并且基本上同时地(例如,并行地)发生,使得当诊断数据中的每一项被生成并传递到mbist控制器时,可以将该项写入到保留的存储器中。此步骤320提供了一个示例,其中mbist电路被配置用于控制将由诊断电路生成的诊断数据写入所保留的存储器区域中的存储器单元的操作。

mbist电路可以可选地被配置用于以循环的方式(也就是说根据存储器地址的顺序)控制将诊断数据写入到保留的存储区域中的操作,该存储器地址的顺序响应于保留的存储器区域充满诊断数据而重新启动。以这种方式,操作310、315、320、325可以继续,直到在步骤325检测到错误的行为或者诊断过程出于任何其他原因而停止(例如,在外部调试器122的控制下)。

响应于步骤325处的“是”检测,诊断操作和诊断数据的写入在步骤330停止,例如被禁用、暂停或以其他方式终止。

随后并且可选地,在步骤335,保留存储器的内容可以由外部调试器122经由mbist控制器读取(使用调试访问端口(dap))以用于分析。这提供了被配置用于执行存储器读取程序以取回存储在保留的存储器区域中的数据并将所取回的数据提供给外部接口的mbist电路的一个示例。

图4示意性示出了高速缓存控制器。

高速缓存控制器(诸如图4的高速缓存控制器400)监督到高速缓存存储器(诸如图4的存储器410)的数据存储和从该高速缓存存储器的数据取回。因此这是包括高速缓存存储器的至少一个存储器的示例;并且设备包括高速缓存控制器,以控制到该高速缓存存储器的数据存储以及从该高速缓存存储器的数据取回。

已经提出了高速缓存存储器的各种操作模式,但是通常的共同特征是高速缓存存储器比其支持的主存储器或更高级别的存储器小,但是至少在一些情况下可以比主存储器或更高级别的存储器快速。因为高速缓存存储器比它所支持的主存储器或更高级别的存储器小,所以高速缓存控制器400监督由主存储器或更高级别的存储器所保存的较广泛选择的数据中的哪些数据被存储在该高速缓存存储器中。

在示例中,高速缓存存储器410被布置为多个区域或“行”412,每一行存储一个或多个数据项(通常是一组数据项,诸如八个4字节字),其中每一行具有关联的数据414,诸如所谓的标记数据,该标记数据指示对应行所涉及的主存储器或更高级别的存储器中的地址。高速缓存控制器400控制高速缓存行或路412到主存储器或更高级别的存储器内的地址区域的分配,以尝试在高速缓存存储器410中提供使用高速缓存的装置下一个最有可能需要的数据。因此,在示例中,高速缓存控制器被配置用于分配高速缓存存储器的多个部分以用于暂时存储对应于更高级别存储器中的地址的数据。高速缓存存储器的多个部分可以包括高速缓存行或路,该等高速缓存行或路各自存储对应于更高级别的存储器中的一系列连续地址的数据。

参照图5,为了保留高速缓存存储器410的一部分以暂时用于存储诊断数据,控制电路(其示例在上面讨论过,并且可以包括外部调试器,外部调试器可能与在处理器核心上运行的软件协同操作)与高速缓存控制器400通信,以使高速缓存控制器400刷新高速缓存存储器410的一个或多个行(也就是说,写回到主存储器或更高级别的存储器中),并将这些行标记为不可用,但是不从这些行去除功率信号或时钟信号。这提供了一个示例,其中控制电路被配置用于保留高速缓存存储器的一存储器区域(通过以下方式实现:向高速缓存控制器指示该保留的存储器区域不可由高速缓存控制器分配)。这在图5的步骤500执行。高速缓存控制器400基于暂时较小的高速缓存存储器410进行操作,也就是说,高速缓存控制器在步骤510继续使用剩余的高速缓存行或路,这些剩余的高速缓存行或路是未被标记为不可用的那些高速缓存行或路。这提供了一个示例,其中至少一个存储器被配置用于继续允许处理电路访问除保留的存储器区域中的存储器单元之外的存储器单元。

参照图7,一组暂时“标记为不可用”的高速缓存行712由高速缓存存储器410的阴影部分指示。这是被配置用于保留一个或多个高速缓存行或路的控制电路的一个示例。高速缓存控制器对高速缓存存储器410的剩余部分714进行操作,但是mbist控制器使用高速缓存行或路712来存储从ela电路中的一个ela电路接收的诊断数据。随后,如上所述,mbist控制器可以从高速缓存行或路712中读取诊断数据。此时,执行释放高速缓存行或路712的过程,如由图6的流程图所示,其中在步骤600,高速缓存存储器(在外部调试器的直接或间接控制下操作)清除保留的高速缓存行或路712的内容或使所述内容无效。在步骤610,高速缓存控制器使用全部高速缓存存储器410,而不是仅部分714。图6的流程图提供了控制电路的一个示例,该控制电路被配置用于在完成关于保留的存储器区域的存储器读取程序之后释放该保留的存储器区域。

图8和图9示意性地示出了根据本公开的示例分别经由mbist控制器进行的数据写入和读取。

在图8中,示意性地表示了数据写入过程,其中由ela电路中的一个ela电路生成的诊断数据800被提供给mbist控制器以存储在存储器810之一的暂时保留部分中。mbist控制器不是经由处理器核心或其他控制器写入数据,而是经由多路复用器820将数据直接写入到存储器810中,该多路复用器820在控制信号830(例如,由所讨论的mbist控制器生成的)的控制下传递来自mbist控制器的数据或来自处理器核心或其他装置的“常规”写入数据。

图9示意性地示出了数据读取过程,其中解复用器900再次在例如由mbist控制器生成的控制信号910的控制下操作,将读取数据920从存储器810提供给处理器核心或其他设备以作为传统读取数据930,或者提供给mbist控制器以作为数据940供输出到外部设备。

图10是示出一种方法的示意流程图。

用于生成、存储和取回诊断数据的过程在步骤1000处开始,在步骤1000,选择存储器用于追踪存储,并且如上所述,该存储器的至少一部分被暂时离线以存储追踪数据。这提供了一个示例,其中控制电路被配置用于选择多个存储器中的一个存储器,以在该存储器中保留存储器区域。如所讨论的,可以选择至少部分独立于数据处理设备的功能操作或所怀疑错误的存储器,在这种情况下,为了根据与多个存储器的子集相关的处理操作来存储诊断数据,控制电路被配置用于选择除了该多个存储器的子集之外的多个存储器中的一个或多个存储器。因此,例如,与一个处理器核心的操作相关的追踪数据可以存储在与另一个处理器核心相关的存储器中。

在步骤1010,外部调试器122设置ela和mbist控制器。ela的设置可以涉及(例如)指示ela监视处理的特定方面,例如特定的数据、地址或其他信号,以及建立触发条件,该触发条件被检测到时将使ela停止追踪活动。例如,触发条件可能是指示错误的条件。

在步骤1020,系统运行功能代码,从而可以在该代码运行期间执行对错误的监视。这可能涉及启动操作系统(如linuxtm操作系统)并在该操作系统下运行代码。或者在到达步骤1020时,操作系统可能已经被启动。步骤1020还包括由mbist控制器将由ela生成的追踪数据存储于在步骤1000处建立的存储器或存储器部分中。

在步骤1030,ela检测触发条件并停止追踪活动。它停止生成追踪数据,并且(作为响应)mbist控制器停止将追踪数据写入存储器或存储器部分(尽管由ela提供的最终追踪数据被存储)。

在步骤1040,所存储的追踪数据由mbist控制器从存储器或存储器部分读出或“转储”到外部调试器。

最后,在步骤1050,当转储完成时,外部调试器释放该存储器,该存储器恢复到正常操作模式。

以上讨论的实施例的各种特征如下。

使用现有的功能性存储器电路而不是专用存储器(诸如sram)可以在集成电路实施例中提供对空间的更有效使用。检测到的存储器可能会占用空间,这并不总是需要的,所以对现有存储器的一部分的暂时使用避免了对专用存储器的需要。这可以减少可能以其他方式与专用存储器相关的泄漏问题。

通常,用于诊断数据的专用存储器可能非常小(例如,一个千字节存储器支持具有128个信号位的64个追踪条目。相比之下,2兆字节的2级高速缓存可以在两个禁用的路中存储具有128个信号位的16384个追踪条目。甚至是512千字节的2级高速缓存也将支持具有128个调试信号位的4096个追踪条目。注意,使存储器或部分存储器离线并且使处理器或其他装置在没有存储器或部分存储器的情况下继续操作的能力本身是已知的。

这些示例在mbist电路的改变方面提供了简单直观的实现方式。mbist控制器只需要来自ela的写入数据值和有效信号。mbist控制器可以生成用于将数据写入禁用的存储器区域中的地址。它也可以包装该地址来创建循环缓冲器或在缓冲器装满时停止。不需要与专用sram相关联的专用ela存储器读/写控制。

ela和mbist控制器可以由外部调试器进行编程。在示例中,当由调试控制器指示时,目标存储器随后将由mbist控制器选择并在整个追踪会话中保持被选择。在示例中,可以使用多于一个存储器来存储追踪数据或诊断数据(在这种情况下,这些值可能在追踪期间改变)。

其他未用于存储追踪数据的存储器可以被启用而用于正常功能用途。它们应在如下情况下被访问:不会并且不应受到对功能上被禁用的存储器的追踪访问的影响。

当追踪完成时,可以随后由调试器经由mbist控制器从禁用的存储器中读取追踪数据。这去除了对与ela电路相关联的读取路径逻辑的需要。

图11是示出数据处理方法的示意流程图,该数据处理方法包括:

提供(在步骤1100)存储器内置自测(mbist)电路,该mbist电路具有到至少一个存储器的接口以执行用于测试至少一个存储器的至少一个目标存储器单元的测试程序,该mbist测试程序至少包括将测试数据写入所述目标存储器单元;

暂时保留(在步骤1110)包括该至少一个存储器的至少一部分的存储器区域;

响应于处理操作执行(在步骤1120)诊断程序以生成诊断数据;以及

该mbist电路控制将由诊断装置生成的诊断数据写入(在步骤1130)到该保留的存储器区域中的存储器单元的操作。

在本申请中,词语“被配置用于......”用来表示设备的元件具有能够执行所定义的操作的配置。在这种情况下,“配置”是指硬件或软件互连的布置或方式。例如,该设备可以具有提供所定义操作的专用硬件,或者处理器或其他处理装置(诸如如上所述的处理元件)可以经编程以执行所述功能。“被配置用于”并非暗示设备元件需要以任何方式改变以提供所定义的操作。

虽然已经参考附图详细描述了本公开技术的说明性实施例,但是应当理解,本公开的技术不限于这些精确的实施例,并且本领域的技术人员可以在本公开的技术中实现各种改变、添加和修改,而不偏离由所附权利要求书限定的本公开技术的范围和精神。例如,从属权利要求的特征可以与独立权利要求的特征一起进行各种组合,而不偏离本公开的技术的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1