用于半导体管芯的管芯上逻辑分析器的制作方法

文档序号:5876461阅读:128来源:国知局
专利名称:用于半导体管芯的管芯上逻辑分析器的制作方法
用于半导体管芯的管芯上逻辑分析器
背景技术
随着硅设计的复杂性的增大以及向多芯片集成的转移,执行后期硅调试中的挑战 也不断增加。例如,在很多不同的生产线上片上系统(SoC)的实施方式变得更为流行。因 为客户期望更小的形状因子,所以调试这种系统的难度增大。在单硅管芯上的部件之间的 互连被隐藏而难以被外部逻辑分析器捕获时情况尤其如此。除了硅上的晶体管的数量增加之外,使用外部逻辑分析器高速捕获高频信号的成 本也在增加。通常设计组将调试钩子(hook)嵌入在电路中。然而,由于与他们的观察相关 联的内部节点和软件工具的敏感特性的原因,这些有力的调试特征对于客户而言通常不可 用。这迫使在销售商端的实验室中(与在客户端相对)再现任何客户问题。在客户端之外 再现这些问题可能是非常困难的。


图1是根据本发明一个实施例的集成电路的方框图。图2是根据本发明实施例的管芯上逻辑分析器的方框图。图3是根据本发明一个实施例的跟踪缓冲器(trace buffer)的多个队列的方框 图。图4是用于根据本发明一个实施例的跟踪缓冲器的队列的输入的方框图。图5是根据本发明一个实施例的总线和存储架构的概括图。图6示出了本发明另一实施例的系统级示意图。图7是根据本发明一个实施例的管芯上逻辑分析器的一部分的方框图。图8是根据本发明一个实施例的方法的流程图。
具体实施例方式在各实施例中,可以将管芯上逻辑分析器(0DLA)提供为诸如片上系统(SoC)的 半导体设备的调试方案。在一个实施例中,0DLA可以用来收集在诸如处理器-芯片组互连 (例如,单向前端总线(iFSB))的互连上传送的数据。在一种实施方式中,该互连可以包括 超过大约700个内部信号。因为iFSB嵌入在SoC内,所以不可能使这些信号对于设备接口 处的位于芯片外的常规逻辑分析器而言是可见的。通过采用本发明实施例而向iFSB提供 可见性,调试工程师能够获得流入以及流出处理器的精确数据。现在参考图1,所示出的是集成电路10的方框图,在一些实施例中所述集成电路 10可以是SoC。如图所示,SoC的主要部件包括处理器20,所述处理器20可以是诸如嵌入 式英特尔架构""处理器的中央处理单元(CPU)或者另一这种CPU。进一步地,处理器20可 以经由互连25耦合至芯片组30,所述互连25在一个实施例中可以是包括多条线路(lane) 的嵌入式前端总线互连,其中每条线路沿着一个方向延伸。因此,单向线可以从处理器20 耦合至芯片组30,反之亦然。从图1中还可以看出,芯片组30可以包括各种部件。为了描述的简单起见,应理解的是没有示出芯片组中可以用来在SoC的处理器和各种其它部件(例如,专用逻辑单元、 存储器控制器、外围控制器,等等)之间建立通信的主要逻辑。相反地,图1示出了根据本 发明实施例执行调试和测试操作时所涉及的芯片组30中的高级部件。如图所示,可以将来自处理器20的通信提供至总线应答器34,并进一步提供至 0DLA 40。进一步地,可以通过复用器32提供从总线应答器34到处理器20的通信,所述复 用器32还接收来自0DLA40的输入。如图所示,根据是否激活测试模式,可以通过测试模式 信号(ODLA testmode)对复用器32进行控制以选择总线应答器34或者0DLA 40的数据来 传送至处理器20,在激活测试模式的情况下,提供0DLA数据。如图进一步所示,0DLA 40可以接收来自内部接口以及来自第二复用器36的输 入,耦合所述第二复用器36以经由测试向量寄存器42接收调试信号和信息,而测试向量寄 存器42又可以耦合至测试接入端口(TAP)接口 45b。TAP接口可以与电气电子工程师协会 (IEEE) 1149. 1-1990的联合测试行动小组(JTAG)标准兼容。如图所示,接口 45b可以经由 输入串行线(TDI)和输出串行线(TD0)与芯片外的部件进行串行通信。如图进一步所示, 第二 TAP接口 45a可以直接耦合至0DLA 40。进一步地,0DLA 40可以使用调试端口(图1 中未示出)经由并行总线(例如16位的并行数据总线加上1位的时钟线)而与芯片外进 行通信。尽管在图1的实施例中示出了该特定实施方式,但是本发明的范围并不限于此。如图所示,0DLA作为独立单元实现在硅上。在一个实施例中,0DLA位于芯片组中, 尽管在其它实施例中,0DLA可以位于处理器和芯片组或者另一管芯上位置之间。0DLA监视 接口信号并且将跟踪捕获至内部缓冲器(图1中未示出)。在跟踪捕获结束时,用户可以卸 载缓冲器内容,例如,通过调试端口或者TAP端口。用户通常会将调试端口连接至外部逻辑 分析器或者扩展调试端口。被推进通过调试端口的数据以标头模式(headerpattern)开始 并且遵循某种顺序,例如,固定的顺序,使得后处理软件能够重构所述数据。通过两个端口 收集的数据还包含定时信息。使用户获知所述标头模式、卸载顺序以及定时信息,从而能够 很容易地分析并且重构所述信息,以便在iFSB上示出每个时钟的活动性。0DLA提供全面的触发器组,所述触发器组使得用户能够对期望的事件产生触发并 且有效地利用有限的管芯上跟踪缓冲器。例如,触发器可以开始或者停止跟踪捕获动作。另 外,能够重新触发重复事件。在一个实施例中,可以通过0DLA的内部寄存器对触发器进行 编程。该寄存器块还包含能够通过主存储器映射的接口(例如,调试端口)或者辅助TAP 接口访问的其它配置寄存器。除了监视iFSB之外,0DLA允许SoC将捕获能力扩展至用于特定定制调试目的的其 它信号。在各个实施例中,这种调试信号可以来自芯片上的各个位置。例如,芯片的多个不 同逻辑块可以具有一个或者多个与之相关联的内部观察节点。然后,可以将来自这些不同 的观察节点的信号提供至内部节点观察模块,在此对它们进行收集。然后,可以将这些信号 提供至0DLA(例如,通过复用器36)以进一步处理、存储、并且发送至芯片外代理(agent)。 与iFSB类似,0DLA将这些信号捕获至其缓冲器中并且每个时钟都提供可观察性。因此,可 以将单元级的观察节点路由至0DLA。并非每次仅限于观察小的位宽(例如,32位)并且需 要进行多次测试,实施例可以用来仅进行一次测试并且获得所有的观察信号。由于SoC的包封构架(encapsulated architecture),ODLA适用于向处理器提供 响应以进行大批量制造(HVM)测试。0DLA能够用作iFSB上的代理,以提供对功能性测试和调试的决定性响应,通过提供功能性内建自测试(BIST)能力,这对于对结构、速度以及功 率筛选进行功能性HVM测试是有用的。此外,当与目标硬件测试结合时,实施例可以有助于 对现场发生失效的部分进行失效分析和失效隔离。为了允许进行数据收集,可以通过以下方式来设置0DLA缓冲器将处理器至 芯片组和芯片组至处理器的事务彼此隔开。因此,与芯片组至处理器事务相关联的缓冲 器队列可以预加载有例如通过TAP端口获得的测试内容。然后,设置触发器以启动驱回 (drive-back)模式。在驱回期间,将测试内容驱动至处理器,同时缓冲器捕获从处理器到 芯片组的任何事务。在该特定的测试模式中,0DLA取代总线应答器以在内部总线上传送信 号。为此,其共享相同的代理标识符(ID)作为正常模式中的总线应答器。因此,不需要其 它的逻辑在两个代理之间进行仲裁。当测试结束时,卸载捕获至缓冲器中的跟踪以进行比 较并且检验HVM测试期间的合格/失效条件。实施例能够扩展至实现用于HVM测试的功能 性测试内容的包封,从而不需要用于实现支持对CPU进行功能性HVM测试的特定硬件的芯 片组(或者CPU接口上的任何其它代理)。如上所述,0DLA可以包括各种部件,所述各种部件包括逻辑部件、控制部件以及可 以包括易失和非易失性存储器的存储器。现在参考图2,其示出了根据本发明实施例的管芯 上逻辑分析器中存在的各个部件的方框图。如图2所示,0DLA40可以包括用于接收和处理 来自SoC的各个部分或者其它半导体设备的信号。如图所示,可以通过信号处理模块42接 收将存储至0DLA 40的输入数据。处理模块42可以执行各种处理,例如,以适当的格式放 置信号以存储在跟踪缓冲器44中。在各个实施例中,跟踪缓冲器44可以是任意类型的易 失或非易失性存储器,例如,随机存取存储器(RAM)、闪速存储器,等等。如图所示,缓冲器控 制器43可以耦合至跟踪缓冲器44或者作为跟踪缓冲器44的一部分,并且可以用来启动下 面将进一步讨论的动态队列组合。此外,缓冲器控制器43可以执行下面同样将讨论的各种 匹配/过滤操作,因此实际上仅有限量的所接收数据存储至跟踪缓冲器44,从而降低了存 储要求并且使得能够使用更小尺寸的缓冲器进行管芯上调试,降低了管芯消耗。如图所示,触发器逻辑46可以与缓冲器控制器43进行通信以实现跟踪存储的启 动/终止。触发器逻辑46又可以基于一个或者多个配置寄存器45中存在的信息进行控制, 所述配置寄存器45可以装载有从SoC或者用户接收的控制信息。所述寄存器还可以包括 指令和状态寄存器。在一个实施例中,存储器映射的输入/输出(10)事务可以用来对寄存 器45进行编程。另外,输出逻辑49可以将来自跟踪缓冲器44的跟踪数据输出至诸如外部 逻辑分析器或者其它信号处理器的外部代理。尽管在图2的实施例中示出了这种特定的实 施方式,但是本发明的范围并不限于此。在一个实施例中,可以将跟踪缓冲器44划分为多个部分(或者队列)。每个队 列的输入可以源自多个源。例如,可以将每个队列配置成接收来自内部互连和来自芯片上 存在的其它调试节点的输入。复用器或者选择器可以用来选择所述源中的一个作为输入。 当通过设计将特定队列的所有源切断后,可以将非活动队列与活动队列组合以用作溢出队 列。这有效地增加了一个队列的存储大小,并且使得在可能时通过组合不同队列消耗的管 芯面积的利用最大化。在一个实施例中,可以基于逻辑表对队列进行组合。现在参考图3,其示出了根据 本发明一个实施例的跟踪缓冲器的多个队列的方框图。如图3所示,缓冲器100包括多个单独的队列,所述多个单独的队列包括指令/地址(CMD/ADDR)队列110a和110b、下部数据 队列120a和120b、以及上部数据队列130a和130b。这些队列中的每一个可以具有给定的 宽度和大小,例如,128位宽。因此,如图所示,可以将来自总线的指令和地址信息存储在指 令/地址队列110中,而总线数据的不同部分,例如低部分和高部分可以存储在下部数据队 列120和上部数据队列130中。在很多实施方式中,期望获得的大量调试信息可以与总线 上可获得的指令/地址信息相关联。因此,在这种情况下,动态队列组合能够使得不使用的 数据队列用作指令/地址队列110中的一个的附加存储器。可以使用控制逻辑和逻辑表来实现内核之间的队列组合。具体而言,如图3所 示,队列之间的箭头线的数字代表可以对队列进行组合的优先级。例如,当下部数据队列 (P2H) 120b是非活动的,则其首先与相对的下部数据队列(H2P) 120a组合。如果下部数据 队列120a恰好也是非活动的,则队列120b可以与cmd/addr队列110b组合。如果该队列 也是非活动的,则队列120b可以与上部数据队列130b组合。在该布置中,当下部数据队列 120b和上部数据队列130b都是非活动的并且欲与cmd/addr队列110b组合时,下部数据 队列具有优先级,如图3中用于表示两队列之间的优先级的星号所示。尽管为简单起见图 3中所示的实施方式一次组合两个队列,但是其它选择也是可能的。需要注意的是,对各个 队列的划分取决于将要捕获的信息。例如,如果另一应用可以将动态队列组合用于除了地 址、数据和控制之外的信息。此外,应理解队列的宽度和大小无需固定,而是可以根据应用 中有多大的可用空间而改变。当非活动队列与活动队列组合时,非活动队列变为辅助(即溢出)队列。主队列 的输入变为辅助队列的输入。因此,在每个队列通常具有两个输入的实施例中,根据本发明 一个实施例,为动态队列组合提供第三输入源。该第三源仅在队列非活动时可用。现在参考图4,其示出了根据本发明一个实施例的用于跟踪缓冲器的队列的输入 的方框图。具体而言,图4示出了仅用于一个队列的输入。也就是说,仅示出了 P2H cmd/ addr队列110b的输入。应理解的是可以将类似的输入提供给H2P队列110a。具体而言, 如图4所示,三源复用器135耦合至队列110b,并且通过动态组合逻辑130进行控制。在各 个实施例中,组合逻辑130可以包括根据本发明实施例的逻辑表,以便基于各队列的状态 和0DLA的其它配置寄存器来确定复用器135的哪一个输入将被提供至队列110b。如图所 示,复用器135的三个输入可以包括来自内部互连(iFSB)的信号信息、来自设备(SoC)中 存在的其它调试信号的信息、以及耦合至指令/地址队列110的类似的复用器的输出。当队列110b是非活动的并且队列110a是满的时候,如H2P_full信号所示,可以 将写使能信号提供至队列110b。具体而言,逻辑门140,例如与逻辑门可以接收满的缓冲器 信号以及用于缓冲器110a的写使能信号(H2P_we),并且如果两个信号都是活动的时候,为 队列110b产生写使能信号。通过这种方式,组合逻辑130选择队列110a的复用输出(Mux out)作为队列110b的输入。尽管在图4的实施例中示出了该特定实施方式,但是应理解本 发明的范围并不限于此。例如,尽管在这里针对0DLA类型的设计描述了动态缓冲,但是可 以将其应用于包括在调试使用模型的外侧的设计中的涉及存储元件的任何其它设计,以便 为添加的灵活性提供动态大小变化。实施例可以为设计提供效率并且为硅调试组使用模型提供宽的选择。当硅调试组 对特定的问题进行放大时,可能需要对一组信号进行扩展的跟踪捕获,尽管其它信号不重要。没有队列组合,跟踪缓冲器将具有固定的大小,并且将在活动队列供应不足的同时浪费 非活动队列空间。根据本发明实施例的动态队列组合能够节省管芯区域并且自动地为不可 预知的调试情况增大队列大小。用户仅需要确定在特定的调试条件下哪些输入是必需的。 剩余的动作在对用户隐藏的情况下发生,而无需用户执行其它工作或者手动的编程。如上所述,iFSB互连总线可以包括地址、数据以及指令信号,并且可以是单向的。 图5示出了根据本发明一个实施例的总线架构的概括图以及其与缓冲器的关系。如图5所 示,互连25可以由单向链路形成并且可以包括用于每个代理的n组类似的信号,例如指令、 地址以及数据信号。在图5所示的实施例中,这种代理包括处理器20和芯片组30。然而,可 以存在诸如代理60的其它代理。如图5进一步所示,一组存储元件可以与互连系统相联系。 具体而言,存储单元70可以包括多个不同的存储元件,其被划分为单独的分区72a-72n,其 每一个与耦合至总线互连的代理中的一个相关联。如图进一步所示,每个分区72可以包括 匹配/过滤功能块74以及多个区段TSilSn。因此,来自互连上的代理的信息的存储可以被 划分到n个部分。将每个分区72单独保存至存储元件中。还可以将每个分区的存储进一 步划分至更小的区段75,以适用信号的不同功能性。作为一个示例,与图3中所述的分区一 样,可以将不同的信号类型,例如,指令/地址、以及数据(低)和数据(高)存储到不同的 区段75。可以在每个时钟边缘捕获信号。时间戳还可以与每个条目一起保存在存储器中。 然而,为了降低所需要的存储空间的量,可以提供存储改变(store-on-change)特征,其中 只有当特定区段中的一个或者多个信号触发时才保存该区段。由于每个区段彼此独立,所 以时间戳提供了使区段上的条目相互关联并且在互连上重新生成周期性精确事务流的方 式。此外,功能块74能够执行不同的匹配功能,所述匹配功能检测每个区段上的各种 模式或者多个区段上的模式的组合。匹配功能的结果确定是否应该存储或者过滤与所述模 式相关联的事务。也就是说,可以过滤(即,不存储)非匹配模式以降低存储要求。可以将 匹配功能块配置成允许匹配地址、数据和控制位,例如,存储器读取、存储器写入或者10事 务。过滤可以基于特定地址并且其可以用来选择将被存储至队列中的这些地址,或者可以 用来防止某些地址被存储到队列中。此外,实施例可以包括压缩逻辑,作为匹配/过滤功能 块的一部分。在一些实施例中,匹配功能块74可以用来确定什么事件启动/停止一触发器。 例如,启动触发器将仅在到达一事件(例如预定计数器到达某值,等等)时开始捕获内容。 相反地,停止触发器将在重置时开始捕获并且一旦有预定事件发生就停止。其它配置可以 使用启动和停止触发的组合。例如,可以存在用于多个事件并且能够启动连续的触发的计 数器。因此,实施例提供了对整个总线的周期性精确捕获。在没有明显的线索(leads) 的情况下,这些信息可以用来解决错误。此外,可配置选项为调试工程师提供了很大的灵活 性,以在各种情况下捕获不同的信息。当需要很长时间找到错误时,过滤有助于放大感兴趣 的东西,并且通过仅保持所需要的信息节省了存储空间。图6示出了本发明另一实施例的系统级示意图。如图6所示,系统200可以是使 用单独的部件形成的系统或者SoC。在图6所示的实施例中,这种部件可以包括CPU 210, 所述CPU 210经由芯片组220耦合至存储器控制器230。此外,各种专用集成电路(ASIC) 块240可以经由芯片组220耦合至CPU 210。为了能够进行各个内部节点的调试,可以提供内部节点观察模块250,并且内部节点观察模块250可以与外部逻辑分析器280进行通 信。然而,并非试图使用逻辑分析器280来恢复大量来自各个内部块的信号,实施例可以包 括例如上面参考图2描述的0DLA260。如图所示,可以耦合0DLA 260,以接收来自内部节点 观察模块250的信号和时钟信息。在一个实施例中,内部节点观察模块250向0DLA 260源 同步提供数据以及至少一个时钟。图7示出了关于0DLA的进一步具体细节。如图7所示,耦合0DLA 260以接收来 自内部节点观察模块250的数据和时钟信息。在图7所示的实施方式中,可以提供单条时 钟线和8条数据线,但是本发明的范围并不限于此。可以将时钟和数据两者都提供至预存 储模块264,所述预存储模块264以适于存储在相应存储器的形式来放置所述数据,在一个 实施例中所述相应存储器可以是随机存取存储器(RAM) 270。预存储模块270将内部节点观察信号打包成(package)存储器270的正确宽度。 预存储数据块可以每条存储线从1到n-1进行填充。如图所示,模块264包括时间戳逻辑 265。在打包数据形成期间,时间戳逻辑265还利用时间戳对数据块[n]单元进行更新。该 时间戳可以用来使系统中发生的事件,例如第一与第二代理之间的通信,与另一代理处发 生的另一事件之间相互关联。因此,该关联可以用来辅助在将数据从存储器270卸载至外 部设备之后调试和重构数据。当全部数据线均是满的时候,将打包的数据提供至存储器270 用于捕获。在各个实施例中,存储器270还提供写入和读取时钟域之间的同步。为了确定 在RAM 270中进行存储的适当位置,可以耦合缓冲指针逻辑268,以向RAM 270提供地址。 进一步地,0DLA 260可以经由存储器映射的接口 290与外部设备进行通信,并且可以经由 调试端口耦合至外部设备。尽管在图7的实施例中示出了该特定实施方式,但是应理解本 发明的范围并不限于此。在传统的调试情况期间,工程师通常将外部逻辑分析器280连接至内部节点观察 模块250。尽管可以通过这种架构来选择数以千计的信号,但是能够同时在逻辑分析器上观 察到的信号的量受到设备上可用信道的数量的限制。此外,许多高频设计需要逻辑分析器 的千兆赫(GHz)的带宽用于捕获。相反地,0DLA 260可以比逻辑分析器观察到更多得的信 号,并且可以以其固有的的速度捕获信号。可以通过测试工具对模块的内容进行下载,或者 以低得多的速度范围(例如,兆赫(MHz))在逻辑分析器上对其进行捕获。实施例还使得客户观测(sighting)很容易调试,而无需影响来自客户的关键信 息或者公开销售商的技术。通常,在销售商的实验室中,尽可能近似地再现客户的环境。然 而,丢失微小的信息可能很容易引起调试情况下的偏差并且延长调试时间。因此,实施例捕 获来自客户的精确的信息并且使得错误的再现更容易。周期性精确信息(cycle accurate information)还使得应用工程师能够在不再现错误的情况下分析错误,改进调试时间,提 高生产率,并且增强客户关系。在各个实施例中,可以对客户提供指令以将硅信息保存到内 部模块中,然后下载内容以用于后续的观察。具体而言,当客户提交观测的时候,销售商的 产品工程师能够向客户提供该0DLA的配置而无需显示正在被捕获的信息。客户能够在其 自己的实验室中生成错误情况。然后可以提取模块的内容并且将其运送回销售商的产品实 验室,并且由产品工程师利用在发生错误时的具体的且精确的信号行为进行分析。现在参考图8,其示出了根据本发明一个实施例的方法的流程图。如图8所示,方 法300可以用来捕获例如客户位置处的现场情况中的调试信息,并且使得能够将信息发送至SoC的销售商,以便基于所述信息执行调试。在图8中,方法300可以从配置SoC的0DLA 以捕获与系统错误相关联的数据开始(方框310)。在一个实施例中,客户可以接收来自销 售商的信息以配置该0DLA,这通常对客户而言保持为隐藏。这种信息可以包括用于0DLA的 配置寄存器的各种配置信息,以及触发信息。在某些实施例中,也可以提供一个或者多个测 试模式以输入到0DLA中,以便使预定的测试从将该测试数据存储至0DLA的跟踪缓冲器中 开始运行。作为一个示例,所接收的信息可以经由安全因特网连接进行,但是本发明的范围 并不限于此。仍然参考图8,接下来,客户可以初始化系统操作,相应地,0DLA可以自动地捕获 通过配置信息设置的数据(方框320)。然后,可以提取所述数据(方框330)。该数据提取 可以以比数据捕获的固有速度更低的速度进行。在各个实施例中,逻辑分析器、例如耦合至 0DLA的调试端口的其它测试设备或者计算机系统可以提取信息,并且将其放置到适当的文 件中。然后,可以将该文件传送给SoC销售商(方框340)。然而本发明的范围并不限于这 一点,在一个实施方式中,可以经由因特网在安全信道上传送数据。然后,销售商的调试工 程师、现场工程师、测试工程师等可以分析数据以解决错误(方框350)。通过这种方式,可 以无需在销售商的实验室中复制客户位置处存在的错误。尽管在图8的实施例中示出了该 特定实施方式,但是本发明的范围并不限于此。例如,在诸如由SoC销售商执行系统捕获的 一些实施方式中,控制可以直接从方框330传递到方框350。因此,使用本发明的实施例,能够捕获来自管芯上高速内部节点的信息。此外,实 施例能够兼容且增强现有内部节点观察调试特征,并且经由系统时钟时间戳协调来自其它 调试特征的事件,这能够降低调试硬件的成本,即,无需高端的昂贵的逻辑分析器。实施例 还可以适用于任何平台设置,而无需考虑客户专用板特征,并且能够改进客户_设计者调 试的吞吐时间(throughput time)。因此,实施例提供可移植性和可扩缩性,以允许进行嵌入式互连的调试并且允许 覆盖处理器之外的芯片的一部分。0DLA中的缓冲器和触发逻辑使得实施例能够在任何具有 内部互连的产品上产生影响。在各个实施例中,能够以较低的速度进行缓冲器的预加载和 卸载,这降低了对高端(即,高成本)设备的需求。此外,通过提供HVM测试的应答器,对于 不同的SoC可以重新使用CPU HVM测试所要求的所有功能性HVM测试内容,而无需测试进 入端口(porting)、再确认以及失效分级成本。实施例进一步允许对外部逻辑分析器不可见的宽的内部接口进行更快的调试,这 可能将调试时间从几个星期减少到几个小时。此外,通过提供管芯上LA,能够避免用于测试 SoC产品的相关联的逻辑分析器的成本。实施例可以通过代码的方式来实施并且可以存储到存储有指令的存储介质上,所 述指令能够用来对系统进行编程以执行指令。存储介质可以包括但是不限于任意类型的 圆盘,包括软盘、光盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(⑶-ROM)、可重写压缩 盘(CD-RW)、以及磁光盘、诸如只读存储器(ROM)的半导体设备、诸如动态随机存取存储器 (DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器 (EPR0M)、闪速存储器、电可擦除可编程只读存储器(EEPR0M)、磁卡或者光卡、或者适于存储 电子指令的任意其它类型的介质。尽管已经参照有限数量的实施例描述了本发明,但是本领域技术人员将意识到可以对本发明进行多种修改和变型。所附权利要求旨在覆盖落在本发明的真正精神和范围内 的所有这种修改和变型。
权利要求
1.一种装置,包括半导体管芯,所述半导体管芯包括经由内部互连耦合的第一代理和第二代理;并且所述半导体管芯还包括逻辑分析器,所述逻辑分析器具有跟踪缓冲器,用于存储从所 述第一代理传送到所述第二代理的第一信息并且用于存储从所述第二代理传送到所述第 一代理的第二信息,并且用于将所述第一和第二信息提供至管芯外的代理。
2.根据权利要求1所述的装置,其中,所述逻辑分析器包括触发器逻辑,用于允许开始 将跟踪捕获到所述跟踪缓冲器中并且用于停止所述跟踪捕获。
3.根据权利要求2所述的装置,其中,所述触发器逻辑用于在存储在所述逻辑分析器 的至少一个配置寄存器中的信息的控制下,在所述半导体管芯中发生事件时允许所述跟踪 捕获。
4.根据权利要求1所述的装置,其中,所述跟踪缓冲器包括第一部分和第二部分,所述 第一部分用于存储从所述第一代理到所述第二代理的事务,所述第二部分用于存储从所述 第二代理到所述第一代理的事务,其中,所述第二部分用于预加载测试内容,以在所述装置 上执行大批量制造(HVM)测试,所述第一部分用于存储在所述HVM测试期间从所述第一代 理到所述第二代理的事务,以执行所述HVM测试期间的合格/失效条件。
5.根据权利要求4所述的装置,其中,所述第二代理包括所述逻辑分析器,所述逻辑分 析器包括用于经由并行互连将调试信息传送至芯片外的调试端口,所述第二代理还包括总线应答器,用于接收来自所述第一代理的信号并且用于向所述第一代理发送信号;以及第一测试接口,用于经由第一串行互连将所述逻辑分析器耦合至第一芯片外接口。
6.根据权利要求5所述的装置,其中,所述第二代理包括第一选择器,用于选择来自所 述逻辑分析器或者所述总线应答器的输出,以传送至所述第一代理,其中,所述第一选择器 用于在所述HVM测试期间将所述测试内容提供至所述第一代理。
7.根据权利要求1所述的装置,还包括内部观察节点模块,用于接收来自所述半导体 管芯的多个调试节点的调试信号并且用于将所述调试信号和时钟信号提供至所述逻辑分 析器,所述逻辑分析器包括预存储模块,用于接收所述调试信号和所述时钟信号,并且用于 利用时间戳将多个所述调试信号分配至数据线中,以存储至所述跟踪缓冲器的线中。
8.根据权利要求7所述的装置,其中,所述逻辑分析器用于以固有的速度捕获所述调 试信号并且用于以较低的速度将所述数据线输出至芯片外的设备。
9.根据权利要求1所述的装置,其中,所述跟踪缓冲器包括组合逻辑,该组合逻辑具有 用于表示将与活动队列组合的队列的顺序的表。
10.根据权利要求9所述的装置,其中,所述组合逻辑用于接收与来自所述逻辑分析器 的配置寄存器的队列相关的活动性信息。
11.一种装置,包括用于存储数据的存储器,所述存储器至少被划分为第一存储部分、第二存储部分以及 第三存储部分,其中,每个存储部分专用于与所述存储器相关联的系统的相应代理,并且当 与所述第一存储部分相对应的第一代理是非活动的时候,所述第一存储部分能够与所述存 储器中的另一存储部分动态组合,以存储与所述另一存储部分相对应的第二代理的数据。
12.根据权利要求11所述的装置,其中,所述另一存储部分是用于所述第二代理的主队列,所述第一存储部分是用于所述第二代理的辅助队列,并且进一步地,当与所述第三存储部分相对应的第三代理是非活动的时候,所述第三存储部分与所述另一存储部分动态组 合,其中,所述第一存储部分比所述第三存储部分具有更高的存储与所述第二代理相关联 的数据的优先级。
13.根据权利要求12所述的装置,还包括控制器,该控制器包括用于指示所述第一存 储部分和所述第三存储部分之间相对于所述第二存储部分进行动态组合的优先级的表。
14.根据权利要求11所述的装置,其中,所述存储器用于存储与系统的调试或者测试 操作相关联的跟踪信息,所述系统包括所述第一代理和所述第二代理。
15.根据权利要求14所述的装置,其中,所述控制器用于接收与所述系统代理相关的 活动性信息,并且用于基于所述活动性信息动态组合所述第一存储部分和所述第二存储部 分。
16.根据权利要求11所述的装置,还包括匹配功能块,用于接收来自耦合在所述第一 代理和所述第二代理之间的互连的信息,并且用于如果所述数据匹配预定的模式则将所述 信息存储在所述存储器中,否则就不存储所述信息。
17.根据权利要求11所述的装置,还包括过滤功能块,用于接收来自耦合在所述第一 代理和所述第二代理之间的互连的数据,并且用于防止将与第一预定地址相关联的信息存 储到所述存储器中,并且用于允许与第二预定地址相关联的信息存储到所述存储器中。
18.根据权利要求11所述的装置,其中,所述存储器用于在所述第一代理和所述第二 代理之间传送的数据与所述第一代理和所述第二代理之间传送的先前数据处于不同状态 的情况下,利用时间戳将所述数据存储在所述第一存储部分中,并且用于在所述数据与所 述先前数据处于相同状态的情况下,防止进行所述存储,所述时间戳用于允许与发生在所 述装置中的其它事件相互关联。
19.一种方法,包括在客户端接收来自片上系统(SoC)的销售商的信息,所述信息可用于配置所述SoC的 管芯上逻辑分析器(ODLA);使用所述信息配置所述0DLA,以允许捕获与系统错误相关联的数据;初始化所述SoC的操作,并且使得所述ODLA在所述客户端的所述操作期间能够自动地 以固有的速度捕获所述数据;从所述ODLA提取所述数据;以及将所述数据传送至所述SoC销售商。
20.根据权利要求19所述的方法,还包括在所述第一存储部分已满并且专用于所述第 二存储部分的所述第二代理是非活动的时候,自动地将从所述SoC的第一代理传送至第二 代理的数据存储至所述ODLA的跟踪缓冲器中专用于所述第一代理的第一存储部分中,并 且将所述跟踪缓冲器的第二存储部分与所述第一存储部分动态地组合,以便存储从所述第 一代理传送至所述第二代理的所述数据的一部分。
全文摘要
本发明用于半导体管芯的管芯上逻辑分析器,在一个实施例中,本发明包括诸如片上系统(SoC)的半导体管芯,其包括具有内建跟踪缓冲器的逻辑分析器,以便存储管芯上代理之间高速传送的信息,并且以较低的速度将所述信息提供至管芯外代理。描述了其它实施例并且主张其权利。
文档编号G01R31/3177GK101995547SQ201010254368
公开日2011年3月30日 申请日期2010年8月13日 优先权日2009年8月14日
发明者J·G·山德里, K·P·格里塞尔, L·R·博格, T·C·钟 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1