CN1764902A - 集成电路的诊断电路 - Google Patents

集成电路的诊断电路 Download PDF

Info

Publication number
CN1764902A
CN1764902A CNA038263157A CN03826315A CN1764902A CN 1764902 A CN1764902 A CN 1764902A CN A038263157 A CNA038263157 A CN A038263157A CN 03826315 A CN03826315 A CN 03826315A CN 1764902 A CN1764902 A CN 1764902A
Authority
CN
China
Prior art keywords
bus
circuit
communication link
assembly line
line communication
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.)
Granted
Application number
CNA038263157A
Other languages
English (en)
Other versions
CN100380335C (zh
Inventor
P·基梅尔曼
I·费尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN1764902A publication Critical patent/CN1764902A/zh
Application granted granted Critical
Publication of CN100380335C publication Critical patent/CN100380335C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

一种通过功能总线互连的具有多个功能电路的集成电路,它配备有诊断总线主控器电路,所述诊断总线主控器电路利用功能总线上的总线交易执行诊断操作。这些诊断操作在集成电路的标准速度运行期间实时执行,以便产生更精确的诊断结果。对于作为诊断操作的一部分的从存储器读出数据值或将数据值写入存储器的操作,诊断总线主控器电路特别有用。

Description

集成电路的诊断电路
本发明涉及集成电路领域。更准确地说,本发明涉及集成电路的板上诊断电路。
集成电路的板上诊断电路是众所周知的。这种已知电路的一个例子就是由英国ARM Limited of Cambridge用于几种微处理器设计的、由JTAG型控制器控制的串联扫描链(serial scan chains)。现有的扫描链型诊断电路的问题在于,串联扫描数据的输入和扫描数据的输出不够快,以致不能进行实时和/或有效的诊断。具体地说,可能需要把集成电路的速度降低到其正常运行速度之下或者暂停运行,以便可以把串联诊断数据扫描输入串联扫描链和扫描输出串联扫描链。以低于其正常运行速度工作的集成电路将导致以下结果:执行的诊断工作不能真实代表集成电路实时运行的功能。可能出现这样的情况:某些故障仅在全速工作时才显现,而以较低速度工作时将看不见(必须电路以此速度工作来适应诊断串联扫描链的应用)。此外,把JTAG用于与调试处理器的通信至少产生对系统资源访问的两步方法。
根据本发明的一个方面凹,提供一种集成电路,它包括:
多个功能电路,它们可以执行数据处理操作;
至少一种功能总线,它可以提供所述多个功能电路之间的通信;以及
诊断总线主控器电路,它可以在所述多个功能电路的实时运行期间,通过借助于所述至少一种功能总线向所述多个功能电路中的一个或多个电路发布总线交易请求来对所述多个功能电路中的至少一个电路执行诊断操作。
本发明提供一种诊断总线主控器电路,所述电路与集成电路的功能总线连接。所述诊断总线主控器电路可以用来向功能总线发布总线交易,以便执行诊断操作。这些总线交易可以用来以某些数据激励功能电路、捕获来自功能电路的数据或组合这些或其它活动。所述技术利用功能电路之间的现有总线结构设备来提供用于诊断信号激励和捕获的插入点,由于不需要对串联扫瞄链周围的数据计时以便将数值加载到分布在整个电路中的锁存器,所以所述插入点能够实时操作。虽然可以认为,通过功能总线的诊断访问在应用上将受到限制,但是实际上,需要在现代系统芯片型集成电路中实现的大部分诊断测试类型都是通过标准总线(例如,AMBA或AHB总线)围绕检查各种功能电路之间的正常通信实现的。通常,不同功能电路已经分别测试并作为单独项目确认,在新的集成电路设计中重要的是这些项目的内联和它们通过功能总线的正常通信。本发明的技术完全适合提供这种类型的快速、相对的非侵入式诊断操作,并降低了额外开销。
诊断总线主控器电路可以执行调试形式的诊断操作或生产测试形式的操作。此外,诊断总线主控器电路也可以用于实现生产编程、生产配置、现场编程和现场配置操作。这使诊断总线主控器电路能够再用于纯诊断领域之外的有益操作,从而减小其相关的开销。
在本发明的最佳实施例中,诊断总线主控器电路可以设置成执行验证操作,以便在它执行诊断操作之前自动地授权。所述特征在诊断特性不适合用于获得对安全数据(例如,秘密加密密密钥等)访问的安全系统中有明显的优点。通过保证诊断总线主控器电路必须在应用前验证它自己,就可以限制不适应该机制的应用。具体地说,验证可以采用以下形式:要求诊断主控器电路发布与预定规则(例如,包括由外部源提供的加密密钥)匹配的验证请求,要求在诊断总线主控器电路能够访问功能电路单元之前确定所述预定规则。
除了提供访问功能总线外,本发明的最佳实施例包括专用诊断总线,通过所述专用诊断总线,诊断总线主控器电路可以获得对数据的访问,这种访问不是通过功能总线的正常访问。因此,专用诊断总线可以设置成访问功能电路中的状态,这种访问不是通过功能总线的正常访问,因为在正常操作期间通常不需要在功能电路之间传递所述状态。所述特征与上述验证技术相结合特别有用,因而,可以把对这种专用诊断总线的访问限制在已验证的操作。而且,隔离这样的总线可以避免恶意的和偶然的使用这些附加数据值/寄存器。
应当指出,在一些集成电路中使用多功能总线可以有不同的总线协议。最佳实施例通过提供具有多个总线接口电路的诊断总线主控器电路来满足这种要求,这些接口电路负责使用它们的具体总线协议与各个功能总线通信。选择机制允许选择访问哪一个总线。
诊断总线主控器电路利用外部信号协议与外部诊断装置(例如,具有适当的接口卡的计算机)通信。为了方便这种通信,诊断总线主控器电路包括用于提供这种通信链路和使通信协议之间符合要求的外部接口电路。
在本发明的最佳实施例中,诊断总线主控器电路还能用一种方式在时钟域之间传送信号,这种方式能有效地将外部诊断环境与集成电路的计时环境隔离。
诊断总线主控器电路特别适合于对存储在与功能总线连接的装置中的数据值(例如,存储在主存储器、外存储器或其它装置中的数据)进行操作。可以使用诊断总线主控器电路对这些数据值进行加载、存储、复制和验证。
这种应用类型的特别有用实例是当集成电路包括与总线连接的闪存并且诊断总线主控器电路用于利用闪存可编程协议对闪存编程时的实例。对这种闪存的编程一般是一种运行时间操作并且利用所述集成电路的通用功能电路不会有高的效率。
现在参照附图用实例说明本发明的实施例,附图中:
图1示意地说明包括与外部诊断装置连接的板上诊断系统的集成电路;
图2是说明包括用于发布总线交易以便实现对集成电路的诊断操作的诊断总线主控器电路的集成电路的原理图;
图3至5图解说明诊断总线主控器电路技术的各个方面;以及
图6和7示意地图解说明诊断总线主控器和边界链控制的形式。
图1说明与外部诊断装置4连接的集成电路2。外部诊断装置4和集成电路2之间的连接是通过双向串联接口(例如,JTAG或SWJ)实现的。在集成电路2中,接口电路6接收双向信号。来自串联信号的编码数据和来自串联信号的编码控制信号都传送给诊断电路8,所述诊断电路8根据这些控制信号和数据执行对集成电路2的其它元件的诊断操作。数据和控制信号也可以通过双向串联信号从集成电路2反向传送给外部诊断装置4。集成电路2一般是芯片系统(SoC)集成电路。
集成电路2中的功能电路包括处理器核心10、协处理器12、存储器14和串联UART装置16。这些功能电路通过功能总线18(例如,AMBA、AHB或其它用于连接功能电路的总线)连接。以集成电路2中的块的形式示意地图解说明诊断电路8。应当指出,这些诊断电路可以采用各种不同的形式并且可以例如包括围绕集成电路2外围、某些功能元件或某些所需功能元件内扩展的串联扫描链。诊断电路8也可以是其它形式,例如BIST装置等。
工作时,使用外部诊断装置的工程师将命令执行对集成电路2的某些诊断操作,以响应控制信号和沿双向串联接口并通过接口电路6传送给集成电路2的数据。结果数据将沿双向接口通过接口电路6反向传送到外部诊断装置4。
图2示意地说明包括多个功能电路的集成电路52(例如,SoC集成电路),所述多个功能电路包括处理器核心54、协处理器56、闪存58、输入/输出电路60及存储器62。处理器核心54、闪存58、输入/输出电路60及存储器62通过公用功能总线64(例如,可以是ARM、AMBA、AHB总线或其它系统总线)。公用功能总线64具有关联的总线协议并用于常规主/从类型配置以便在功能电路之间传送数据和控制事务。
诊断总线主控器电路66用于执行使用总线交易的诊断操作。这些总线交易可以将数据或控制值输入给功能电路或恢复来自功能电路的数据。诊断总线主控器电路66通过任选的验证电路68连接到功能电路64。诊断总线主控器电路66还连接到专用诊断总线70(例如,专用的AMBA总线或定制的专用总线),所述专用诊断总线将专用诊断访问提供给(在本例中)处理器核心54和协处理器56。专用诊断总线70可以访问与功能总线64非标准连接并且暴露在专用诊断总线70上纯粹用于诊断目的的数据值。
提供接口电路72和诊断电路74以便将诊断总线主控器电路66连接到外部诊断装置(未示出)。接口电路72支持外部诊断装置使用的外部协议,例如,上述双向串联通信。诊断总线主控器电路66负责支持相应的总线的总线信号协议,通过所述相应的总线发布用于诊断目的事务。
当验证步骤通过之后,任选择验证电路68起只允许诊断总线主控器电路66访问功能总线或总线64的一部分的作用。所述验证步骤可以是从诊断总线主控器电路66向验证电路68提供与预定的秘密密钥匹配的适当的密钥。这样,只有拥有密钥的相应授权个人才能以这样的方式激活诊断总线主控器电路66,即,它能够通过验证电路68访问功能总线64。因此,保密数据或其它敏感材料能够在功能电路中得到保护。验证也可以用于控制某些总线访问,例如,访问特权从动装置,而其它总线访问可以自由利用。
应当指出,集成电路52和外部诊断装置可以工作在不同时钟域。接口72在这两个时钟域之间有效地提供一种搭桥装置。
诊断总线主控器电路66可以用于发布总线交易,将数据值加载给装置(例如,存储器、外设或其它装置)、从这些装置回存的数据、在这些装置之间复制数据或验证存储在这些装置中的数据。
诊断总线主控器电路66还可以用于根据闪存可编程协议对闪存58编程。这是诊断总线主控器电路66的一种非诊断应用,由于需要提供某种机制来对集成电路52中的闪存58进行编程,因此它可以降低与其设备相关的开销。
本发明最佳实施例的详细说明如下:
术语和缩写
以下将使用的术语和缩写说明如下:
术语        含义
JTAG        用于控制与扫描链串联接口的4-6线接口的IEEE联合测试存取组规范。JTAG用于调试及测试。SWJ基于基础调试JTAG模型。扫描TAP基于JTAG的测试部分。
仿真程序    误称,用来指运行与调试芯片连接的控制盒(HW件)。通常的仿真程序基于JTAG。与SWJ接口连接的盒因历史原因也称作仿真程序。
AMBA        芯片内的ARM总线标准。
AHB         用于常规存储器访问(通过APB)的AMBA高速接口。
APB         用于低速访问的AMBA外围接口。
AHB Lite    指在没有多主控器并且没有全成组方式及其相关信令的情况下的AMBA、AHB剥离版本。
多主控器    AMBA总线共享方案(不在AMBA Lite中),其中不同主控器可以获得总线锁(允许)以便以交错方式访问总线。
多段、多层  将总线分成多段的AMBA方案,所述方案可以控制访问。这可以使局部主控器降低加锁的开销。
判优程序,判断法  代替多主控器的总线模型。判优程序从争用主控器中选择对总线的流线访问。在MCU中使用更一般的和不对称的多处理器核心的布局。当配置合适时,它能够提供比总线允许模型更好的性能。
闪存  一种只读存储器,所述存储器可以用专用的可编程方法写入。它允许MCU在后制造过程中将代码和文字烧蚀进器件。对于低端MCU,这只能在生产中进行,不能工作时实现(所以,可以在更新/维护期间通过外部工具完成)。
嵌入式闪存  指在同一芯片中作为处理器的闪存单元。与外部芯片相反。应当指出,闪存器件具有嵌入式控制器(MCU),所述控制器使芯片大小的嵌入式闪存十分昂贵。
引言
DBT(调试总线分接头)是小型JTAG TAP,它连接到AMBA总线上。主机可以使用JTAG、SWJ、直接端口或其它装置访问DBT,并可以在总线而不是AMBA总线上操作。根据系统设计,总线连接可以是用于多主控器总线设计的总线主控块,或者如果用判优程序管理,也可以是AMBA Lite块。
存储器TAP允许访问存储器系统(超出了L1高速缓冲存储器),了解ARM核心是正在运行、调试停止还是保持复位状态。这允许把TAP更广泛地应用于多目标系统:
○在核心引导之前开始测试系统。这在所有闪存系统中特别重要,但是对于芯片级测试也可以推断。
○与利用处理器JTAG模型可能得到的相比,下载和存储器读出快很多。
○在运行系统中不停止核心的情况下对存储器和外围寄存器的读/写访问。这会出现干扰,但是这是固定的和小的(由于对存储器的访问是不稳定的,但受JTAG TCK时序的限制)。
○能够与核心时钟速度变化(低速睡眠)无关地访问存储器。
○当总线可见时能够用于对闪存编程(然而如果不是AMBA从动装置,则一些FPGA引导闪存就不能达到)。
○任何调试寄存器的配置/控制不是核心的一部分。这就避免了需要多个TAP支持不同的调试块。应当指出,调试寄存器能够通过核心输出以避免要求内部机制-这就允许运行时访问和允许更清晰的设计。
存储器TAP对于允许非常快的顺序(例如,下载)和非顺序访问是最佳的。对于单地址的重复查询也是最佳的,并可以利用支持时间测量(由于总线活动是决定性的)的仿真程序提供关于所述重复查询的精确的时间标记。还通过在总线绕接器中嵌入小的闪存可编程算法来方便快速闪存下载。
调试系统总线的TAP部件
存储器TAP的目的在于寻址的7个基本问题:
1、允许非常快速的存储器下载(和上载)。在10MHz,对于较快的仿真程序而言,3M字节/秒的下载是合理的,对于较慢的仿真程序600K字节/秒是合理的。
2、允许ARM核心停止(在调试中)、运行、睡眠、复位或其它状态时访问存储器。这就是说,所述部件允许更多系统观察。
3、允许在读写总线时更清晰的处理故障。所述机制清楚地处理中断,其结果不改变处理器的状态。当通过处理器核心访问存储器时,即使有更多的活动,其状态不受所有活动的影响,所以只受故障的影响。在总线出现故障后,DBT不改变其状态,否则按规定向其发送信号。
4、允许直接对闪存编程(不使用核心)。这不仅允许以其最大速率(即用闪存自己的速度)对闪存编程,而且也允许处理器仍处于复位时对闪存编程(所以可以用于对临界引导码编程)。如果FPGA位引导闪存或其它器件使用的闪存在总线上是可见的,它也能够用于对这些元件编程。只要仿真程序能够产生访问之间(对超时的闪存)可预计的时间延迟,或用强制验证以每个字的批形式写入,即使没有选择闪存支持,DBT也可以用于直接对闪存编程。
5、只能用于访问调试的局部段集合一侧。即,DBT可以适应调试使用的专用总线(并也能适应全局使用的系统总线)。它也可以用于输出给为ASIC调试部件和通用部件规定的调试寄存器,CAN总线的外设可以输出一些寄存器到所述段以便调试。
6、可以用作具有目标SW(例如监视器和RTOS代理者)的通信路径。与5不一样,这也能够在主总线实现。所以,RTOS调试代理者可以将这用于访问(即使RTOS在DSP上运行)。与DCC(ARM调试通信信道寄存器)不一样,这允许隔离。利用中断驱动和一些与存储器地址一致的地址,主机和目标SW将使用简单的同步交换进行相互通信。报文大小可以象需要的一样长,并且由于目标SW仅仅写入RAM,然后继续其它活动,因此目标SW不会被隔开(例如,等待CP14)。
7、可以用于高速卸载跟踪数据。可以利用这种方法以非常高的速度对映射到AHB的片上跟踪缓冲区进行卸载。而且,利用在填充的同时可以泄放的跟踪缓冲区,人们可以连续收集(以有限带宽,例如3-4M字节/秒)。
代理者/监视器通信(注意信号和应答)
可以预计,对于为了下载的直接存储器访问(无监视器)和处理器核心运行时访问以及与运行时目标上的代理者的通信,DBT将是有用的。代理者的通信工作包括:将分组写入RAM、发送具有注意信号位的完整信令,然后等待确定的ACK信号/位。这样,可以将它回读。这种模型的优点是,你只承担中断每一个分组的代价(并且即使你能查询,但是每一个分组-隔离是免费的)。分组的大小不固定,但是由协议和选择代理者或监视器确定。
对把注意信号与核心连接(作为中断)进行选择以及从核心返回的ACK信号的连接(作为GPIO)进行选择是适合于系统设计的。对于某些处理器和应用场合的应用类型,这很可能被大大地激励。
与之通信的主代理者将是用于直接调试的监视器以及用于RTOS调试的线程(运行系统调试(RSD)方式)。
闪存支持
提供任选的闪存支持以便允许对嵌入系统的闪存进行快速编程。所述机制通过添加用于预写入地址/数据和可能事后写入地址/数据的掩膜ROM常数来工作。如果需要,它也可以提供飞行验证(但是,通常最好写入整块然后返回并验证-这样最快和较安全)。用强制验证,验证步骤很快。
闪存模型也允许外部机制(例如,修车机械更新用于发动机控制的编程常数)的现场闪存重编程。这对于不改变闪存本身的应用是有用的。
在DBT中用于闪存支持的一般原因是使闪存的编程非常快,而不管闪存的大小。这就加速了调试时间。应当指出,对于许多闪存器件,预写入和数据写入之间的时间必须处于某周期内,否则将超时。这就是说,通过JTAG仿真程序直接编程是不可能的。周DBT闪存支持则没有问题。
高速缓冲存储器的问题和TCM
DBT只能检查总线。虽然总线具有用于第二段模型的设备,但是它不能检查L1高速缓冲存储器。如果DBT置于它的前面它只能检查L2高速缓冲存储器(所以是系统设计的选择)。紧密耦合存储器(TCM)也存在问题。
对于L1高速缓冲存储器,问题只出现在某些条件下:
●当下载代码时,”I”高速缓冲存储器必须清除内容/无效,以便重载新的数据。对于下载,这将是不正常的问题(由于核心停止和仿真程序/运行控制将处理高速缓冲存储器的清除)。
●当下载数据时,”D”高速缓冲存储器必须预先注满(如果回写)或在连续写入之前或之后(或没有被核心修改)无效。对于下载,这将是不正常的问题(如上概述)。
●在目标运行中查询地址时,如果没有回写高速缓冲存储器线地址就可以检查地址(这样地址就可以处于非高速缓冲存储器区或连续写入高速缓冲存储器区)。如果使用回写,一直到下一个高速缓冲存储器注满(从应用特征或运行控制支持)地址才能更新。因此,仍然能够查询回写,但是将延迟一个非确定的周期(根据由应用程序的非习惯用法引起的高速缓冲存储器注满之前多长确定)。
●在目标运行中修改地址时,如果地址是可缓存的它不会影响应用。一直到高速缓冲存储器被清除变化才被接受(如果回写和高速缓冲存储器被改变,DBT的修改可能丢失)。
对于TCM,存储器对DBT而言根本就看不见,除非它是某些形式的双端口。例如,如果TCM也是一个AMBA从动装置,或者如果它包含绕接为AHB从属装置的外部DMA端口,那么DBT就可以访问TCM。其它是通过系统模型支持,系统模型以以下3种方式中的一种提供访问:
1、TCM绕接器包含外部端口(例如,DMA端口),使所述端口可以用于DBT。这可以或者通过使其在AMBA总线上可见或者通过在DBT中使用替代的存储器概念来完成的。
2、将TCM与DBT以及ARM混合。这将没有判优法,所以只能在ARM核心停止时使用。它可能需要注册避免路径问题的接口。所述模型提供低成本的访问,但是在处理器运行时不能访问存储器。
3、TCM与一些判优法混合成DBT(如果DBT被访问时等待状态的核心)。除了它允许在核心运行中访问外,这与上述2相同。不清楚的是,对于DBT应用所述模型的费用是否合算。
没有DBT的支持,只能通过停止所述核心来访问TCM或者通过它的JTAG机制访问(或其它装置,例如监视器)。
MMU/MPU和虚拟地址
DBT部件只能看见物理地址(总线地址)。调试程序响应虚拟和物理地址之间执行的任何所需的映射。对于将MMU/MPU用于保护和高速缓冲存储器控制的应用来说,这不是问题(对于任何核心中的地址X,它也是总线上的地址X)。对于将MMU用于生成虚拟地址与物理地址不相匹配的环境的应用来说,存在4种情况:
1)地址的动态重映射(意思是在运行中映射变化)。虚拟地址为”处理”映射成不同的物理地址。通过处理模型OS把这作为避免各种处理(a.k.a.任务)之间的接触的方法。在这种情况下,调试程序通常可以从OS本身或从页表寻找。但是,映射可以改变超时,所以在允许核心运行时访问这些地址存在风险。
2)静态/一次映射(意思是映射被设置在引导时间并且所述方法被保留)。虚拟地址将外围或其它总线对象映射成”公用”位置。这只能通过检查页表确定。这是非常通用的,但是调试程序必须支持读这些表。根据ARM核心,它能够在核心运行中(由扫描链读取CP15)确定页表在哪里。如果页表在总线上可见(见关于TCM的讨论),那么DBT允许调试程序读取页表以便确定映射。目标文件将包含关于所述影射的信息也是可能的。
3)建立页面故障区。这些故障区用于各种目的,包括读出复制、稀疏矩阵/阵列、映射文件(或等价文件)、要求加载闪存代码等。这些方案在想要的和需要的各个方面都在变化。调试程序需要理解存储器处理的内容,以便知道什么是合适的(引起调试程序的页面故障通常是不合适的)。在一些情况下,调试程序知道数据来自何处(例如,闪存),所以DBT能够用于直接访问数据。通常这种存储器只能在核心停止时才能处理。
4)生成更宽的地址。虽然所述方法的最通常的应用(不管是ASID、Domains还是其它扩展模型)不要求虚拟地址和物理地址是不同,但是所述机制可以用于产生调入块等。同样,调试程序需要知道能够映射这些地址的规则。
值得注意的是只有情况2能够用于基于访问模型的核心(JTAG或监视器)。其余都存在问题,不管使用什么样的访问方法都必须由调试程序寻址。
还值得注意的是,极大多数设计都在系统级在很短的时间内应用重映射(芯片启动和芯片选择器等)。由于新的ARM核心更直接地支持MMU特征,所以有可能更多的设计将依赖于用于这种效应的核心。因此,调试程序很可能将不得不处理这些问题,而核心将可能需要在不停止时访问信息。
访问
使用一组IR/DR事务以JTAG或等价装置访问DBT。
IR用于从不同的综合应用中选择:
○多种JTAG:BYPASS(0xF)、IDCODE(0x0A)、要求活动的JTAG(对于那些可以不管)
○当TAP处于局部段(0x01)时局部存储器访问
○不管使用的总线连接类型(0x02)是什么,对于通常的总线可见性全局存储器访问
○用于对在ARM核心中(0x3和0x4)较早扫描模型进行访问的扫描。这是用于Argon和V6类型核心的服务。它可以用作ARM7/9/10/11核心上的绕接器,以便提供象Argon一样的模型。它也可以用于将通常的访问绕接在较早的核心中,使得SWJ快许多。它也能够将这用于边界扫描测试(不是相关的调试)。
所有存储器都使用TR(全局或局部)访问,所以所有操作都是以DR为基础的。所述模型将DR分割成4种请求:控制、寻址、读和写。DR共有34位。
DR操作使它们可以一次性读和写。CaptureDR的采样数据通常是先前的操作的结果。用UpdateDR写入数据将执行4种请求中的一种。
模块
DBT部件被分成各个部分,它们中的极大多数都是任选的。图1证明了这个概念。实际上仅仅需要命令块。选择块由如何使用确定:
■如果使用另一种装置访问,就不需要TAP。例如,当与SWJ连接时,由于SWJ部件将直接驱动DBT就不需要TAP。
■当绕接现有的ARM的EmbeddedICE逻辑(为了在预Argon核心中实现调试监视器而建议的模型)或测试扫描链时,仅需要扫描链的TAP寄存器。
■各种总线的部件只有需要时才使用。多主控器(完整的AMBA)用于多主控器系统。简单的AMBA Lite用于具有判优程序的MCU。AMBALite加上简单的判优程序可以用于没有判优程序的MCU中(简单的总线信号与等待状态混合驱动判优/保持ARM访问)。
■可以包括或不包括额外的特征。这包括:闪存编程、注意信号的输出、ACK信号输入、宽总线访问、其它总线访问(相对于系统为局部的)等。主机可以告诉人们存在直接来自接口的(通过IDCODE、控制寄存器和其它任选侧寄存器)的哪一些方便。如果它们启动回读,通过启动它们和观察可检测到一些特性;其它可以以IDCODE部件的编号标记。
重要的是要非常仔细地避免太大的模块。就是说,对于与复杂性(太多可能的组合)和开销(与不同片插在一起)有关的模块存在一个成本问题。通常的方法是将模块在DBT中分解成5种类型:
■自然块。如图1所示,将DBT分解成3个等级的块。这样,除去SWJ的顶块(TAP)或选择哪一个总线绕接器是自然适应的块。
■基于哪一个核心和哪一个总线。例如,有64位支持能力只能与支持64位数据的核心/总线在一起。
■基于系统规定细节(例如闪存)。如果系统存在闪存并且与模型兼容,任选的闪存块就可以被包含在内。
■基于路由选择。如果Attention或ACK信号不能确定路线,它们就不得不停止使用。这些种类有力地促进兼容性。但是,其中的一些可能不会感觉到。例如,局部调试段仅适合某些设计。
■由系统的扩充/关联(例如安全性和JTAG测试扫描链)引起的。这些扩展允许DBT服务于更广泛的目的。
IDCODE JTAG扫描
IDCODE包括ARM生产产家的ID代码、DBT的特别部分编号和修订信息。
部分编号被分成带”xx”的DBT的唯一前缀(可能为3xx),”xx”部分是基础配置信息。配置信息允许快速分析DBT的综合能力(相对于全局存储器访问的局部、闪存支持、测试扫描链支持、安全性等)。
存储器访问命令接口
DR为34位。将位这样分组,使得当通过TDI(主机到目标)输入时输入最后2位,当通过TDO输出时则输出状态。所以,TDI->32位,数据->2位控制/状态->TDO。
传送格式为:
[Type as 1:0][Value as 31:0]
应答格式为:
[Status as 1:0][Return data as 31:0]
应当指出,应答会被一个事务曲解(所以,来自通过UpdateDR发送的类型/数值的应答将在下一个CaptureDR回答)。还应当指出,在没有位移的情况下执行CaptureDR->UpdateDR是写入模型的一种特殊情况-它允许填充(当自动加一时)或重写(当非自动加一时)。
输入为以下的一种:
  0123   控制。数值为可以改变或不可以改变的控制位(见提交的标记)。地址。数值为地址。数据写入。数值为写入的数据。如果写入不满32位,数据为小头结束(LSB包含数据)。数据读出。数值与存储器读取无关。
状态由两位组成:
□Bit0(LSB)为nCOPLETE
■Bit1(MSB)为ERROR
状态的组合读作为(Bit0、Bit1):
  0,00,11,01,1   事务完成OK(因此返回的数据就是请求的数据)。事务没有完成。这不能用于寻址或控制。事务完成有错误。返回的数据包含错误信息。预留。
控制请求
[00b][控制字]
控制字由LSB至MSB的位组成:
>位0:在读出或写入数据中地址自动加一。如果当前事务完成只加一。这就是说如果因故障失败或新的请求太快(在完成之前),事务将不加一。注意:加一仅在底部的12位。因此,加一在2^12页面。
>位1-3:作业的大小:
0=8位
1=16位
2=32位
3=64位(仅适应数据总线)
n=4-7预留
>位4-7:闪存控制:
0=无闪存-正常的AHB操作
1=启动闪存写入。这就是说所有写入都在所需的数值前后发送给闪存控制操作。如果闪存支持是不可用的,则所述位不保持设置状态。
2=无闪存,强制认证。这就是说,所有后续的写入不会执行实际写入,但是将读出总线上当前的地址,并将结果与传送的值比较。如果比较相匹配,则‘写入’作为继续处理。如果比较不匹配,则状态将指出错误。
3=用启动的回读写入闪存。这就是说在写入后数据被回读确认设置合适。注意,用于写入闪存的规则要保证是完整的操作。
4=4-15预留。
>位8-11:预留用于操作替换。后面将允许用于访问”替换”存储器和总线。0用于标准总线操作。
>位12:注意信号。当可用时,这将引起发送给ARM核心的中断。这允许发送邮箱型信令(也见ACK)。这是自清除信号。因此,写入认定,将发送信号通知AEM,然后清除。注意,Attention/ACK扩展模型可以用于改变被驱动的信号(当系统提供多个Attention信号时)。
>位13:ACK返回信号。当可用时,将允许ARM核心发送应答或接受邮箱操作(发送的分组)的信令。这是自清除锁存器。这样一次就将读出认定,然后读出解除认定一直到读出下一个认定为止。注意,Attention/ACK扩展模型可以用于改变被采样的信号(当系统提供多个ACK信号时)。
>位30:稳定状态。如果出现错误或没有完成,后面的请求要一直到控制被再次读出才接受。就是说,如果执行数据读出/写入请求,虽然它仍在总线上等待,但是它或者是失败或者是执行任何其它请求,一直到控制请求被推入所述请求和所有后面的请求才被接受。这样就保证主机能够告诉发生了什么。注意,当设置所述位时,在所有无关的命令上返回的状态也将指出失败。这时设置的系统不会提供清除。
>位31:提供控制变化。所述标记必须设置为控制写入控制集的字。如果没有设置,控制字就不能写入(这就只允许读出它(包括清除的稳定状态),并简化NOP)。
应答(下一次扫描结果)将是当前锁定的控制集。这就可以用于检验稳定状态(提交还是不提交)并可以用于确定是否允许操作:例如,如果大小设置为64(大小为3),而回读为32(2),那么TAP就不支持64位操作。对于闪存操作和替换操作相类似。
地址
[01b][地址]
其中当操作替换为标准总线操作(见详细控制)时,地址就是总线地址(物理的)。
保存写入地址用于将来的数据读出和写入操作。注意,自动增量模型意味着在所有允许的后续数据读出/写入操作上所述地址将加一(数据大小)。
应答(下一次扫描结果)将与所述请求中写入的地址相同。
数据写入
[10b][写入的值]
所述操作将写入8、16、32或64位值的第一/第二个一半,所述值是来自进入保存地址集中当前地址的值(见寻址请求)。如果成功的话,所述地址将递增1、2、4或8(在它可以增量的位数目中)。
所述应答(下一次扫描结果)将指明写入是失败还是成功。
数据读出
[11b][无关的值]
其中当把操作超越设置为标准总线操作(它可以用于扫描操作由地址规定的扫描链的寄存器命名)时,忽略所述输出值。
所述操作将读出8、16、32或64位值的第一/第二个一半,所述值是来自保存地址集中当前地址的值(见寻址请求)。如果成功的话,所述地址将递增1、2、4或8(在它可以递增的位数目中)。
如果状态为OK,那么所述应答(下一次扫描结果)将是读出的值,否则如果出错则是出错信息。(注意,它是AMBA控制器的工作,如果设置出错位,则可以在ReadDATA总线上返回错误代码。)
实例
给出的这些例子说明这些接口怎样使用。应当指出,对于大多数仿真程序来说,更加实际的是把所述扫描组合成缓冲区,然后马上全部运行它们。这就扩展到多个单一操作和下载。所述返回数据可以在确定所有操作是否成功后检查。
写入单一数值
下面给出怎样写入单一数值。应当指出,如果控制和地址已经包含正确值,就不需要写入它们。
ScanOut(Control,SIZE(2)|COMMT)   --将大小设置为32位
ScanOut(address,addr)            --将地址设置为写入
ScanOut(DataWrite,Value)         --将值设置为写入
ScanIO(Control,0,&results)      --获取确实运行的结果
If(!results[status])
Succeeded
Else
Failed
读入单一值
下面给出怎样读入单一值。应当指出,如果控制和地址已经包含正确值,就不需要从控制和地址读出它们。
ScanOut(Control,SIZE(2)|COMMT)   --将大小设置为32位
ScanOut(address,addr)            --将地址设置为读出
ScanOut(DataRead,0)              --将值设置为读出
ScanIO(Control,0,&results)      --获取结果
If(!results[status])
Data_read=results[value]
Else
Failed
写入多个值(下载)
下面给出怎样写入多个值。应当指出,如果控制和地址已经包含正确值,就不需要写入它们。应当指出,所述算法处理限制在4K(字节地址限制)绕接情况。就是说,自动增量特征只对底部12位起作用。所以当地址超过4K基准点时,必须重写。由于我们不知道输入的地址是否校正在4K边界上,所以当它变到下一个边界时,我们就简单地将它写入。还应当指出,检查在使用静态位的每一块的末端聚集的误差。如果检测到一个误差循环将使用更慢的扫描重试(例如,在RunTestIdle中自旋)。
ScanOut(Control,AUTO_INC|SIZE(2)|COMMT)   --size=32,增量
ScanOut(Address,addr)  --将开始地址设置为写入
For(index=0;index<length;index++)
{
ScanOut(DataWrite,Value[index])   --将下一个值设置为写入
addr+=4;
If(!(addr&0xFFF))               --注意addr增量仅为12位
{                                     --循环到下一页
ScanOut(Control,0)                   --获取运行结果
ScanIO(Address,addr,&result s)      --设置下一个校正地址
If(results[data]&STICKY_STATUS)       --控制请求结果
Failed                                --聚集错误
}
}
将多个值写入闪存
写入闪存需要执行与标准存储器相同的操作,以下几点除外。
当设置了位4(闪存编程)时,闪存编程命令也与数据一起发送给总线接口。由于编程闪存花的时间比SRAM短很多,因此,一旦RTI延迟电路(在UpdateDR和CaptureDR之间)接收命令时,下一个字的编程工作可以排在PauseDR中的调谐延迟后面以便节约时间。就是说,接在另一个写入后面写入,然后在PauseDR中有足够的自旋以便保证完全写入闪存(和选择回读)。这样,状态通过UpdateDR正常推进,这时就开始写入。同样,队列中可以排列更多任务。在这些块后面,主叫用户检查静止状态,看所有操作是否都完成。
其它结果
具有RVI-ME(4-8MHz TCK)积分电路/AP
下载500KB/sec(RAM)
闪存编程  180KB/sec(2芯片,每个芯片16位构成32位)
存储器注满3700KB/sec
设置方法
围绕上面简述的模型建立DBT,例如,在问题和解决方案中。为了提供更多的细节,本节说明为什么把各不同部分构造成这样。
综合设计
DBT的综合设计提供了一种快速和方便的访问芯片存储器/外设系统的机制。这就是说,对于调试程序和测试工具执行的一般应用而言,大小或IR和DR扫描链及使用的形式都设计成最佳性能:下载、填充、采样位置、运行系统使用的锁存器、与监视器或代理者的通信、闪存的编程、存储器的验证。
DBT没有设计成覆盖用于其它直接调试的各种应用。就是说,它是简单的AHB/AHB Lite存储器访问部件。如果其它各种调试使用总线模型可以展现自已是在系统总线还是在专用调试总线(段)上,它们就能方便地使用DBT。这种重要的应用模型要使DBT适用广泛的装置。另外,这就是说,由于增加了其它存储器可访问部件,因此当DBT不可用或使用DBT时,可以通过传统的JTAG访问它们。这就辅助证明了最清楚的内部操作。使用总线模型(系统总线或局部总线)”连接”的装置的例子有:ETM(跟踪)、ETB(跟踪缓冲区)、调试监视器、SOC中的ASIC(信息聚集)、CTI/CTM(交叉触发)和FPB(闪存锁存器和断点)。
应当指出,DBT的设计思想是:在发送数据而不是聚集数据中JTAG仿真程序是最好的(应当指出,SWJ(单线JTAG)是这方面的极端例子,与工作时的仿真程序无关)。这是由于通信模型和需要事后处理的人工智能的结果。验证和聚集误差是这方面的优秀实例。这并不是说,功能强大的仿真程序(例如,ARM RVI)不能选择使用双向装置和局部分析,由于它减少了执行大多数操作所需的TCK数目,这些仿真程序将从紧耦合决策受益。
总线接口
总线接口模型被设计成组合式的,以便适应不同的系统设计。当期望AHB-Lite时,期望微控制器用于整个AHB多主控器模型是不合理的。同样,假设单一段以及期望系统设计者建立主控桥也是不合理的。
相对于全局模型(同时允许两种总线配件)局部模型被设计成适应必须具有明显不同访问模型的系统设计。对此的主要要求是相对于系统存储器的调试监视器的局部存储器。通过将调试监视器的存储器确定为特殊段(所述段也可以包括映射寄存器的调试存储器),那么当执行局部访问时,总线主控和/或判优都不需要;这就允许在调试操作期间整个系统都以较少的干扰运行。另外,局部总线模型可以保证总线上的其它部件不会腐蚀和损害数据。最后,在没有监听选项的情况下局部段为加密信息控制作好准备。
闪存
闪存模型是以这种概念为基础的,即,大多数闪存部件利用以下一组数值进行编程:所述数值之前的写入、所述数值、以及任选地在写入后的一些写入。为了获得最佳速度,许多闪存装置允许状态检查以确定何时写入。DBT模型通常不执行这种操作。相反,它通过让JTAG接口使用足够的时间适应标准的闪存写入来工作。如果任何单元都不能获得合适的写入,将检测到事后写入的验证。所述方法不适合一些应用场合使用,但是为主机模型提供了最佳速度(和门电路成本)的安全方法。最坏的情况简化为如果超时运行闪存必须重写。
对于必须马上验证闪存的情况,可以使用带验证方法的任选的写入闪存。这就允许JTAG仿真程序在写入字节或字之后马上检查故障,并仍然发挥批处理将多个字写入成组传送。
强制验证
验证模型基于非直觉的”强制”模型。这就是说,写入被传送出去,而不是执行写入。相反,地址被读出(从总线)并与反向压入的值比较。然后,将结果用2位(误差/状态)返回并且还利用聚集误差模型工作。这样做是因为它支持发送模型。可供选择的方法是在读出时发送并将结果返回以便在主机上比较。通过执行块写入、接着压入比较、接着更多的操作,主机可以分批处理最大数目的操作以便获得最好的综合性能。如果验证失败,剩余的操作就被忽略,这是合理的(对于误差处理)。这就避免了主机和目标之间来回往返。
强制性验证可以用于闪存验证、SRAM下载验证、通常的写入验证以及用于值变化的采样。后者意味着主机可以观察改变的地址(或地址集),然后获得改变地址的近似时间标记。压入期望值,然后周期性地重复操作。通过观察每次变化的状态位(2),主机可以确定什么时候值被改变(当与被压入的值不同时验证返回错误信号)。
Attention和ACK
Attention和ACK模型是清除使用邮箱模型的任何人。它避免了由目标的查询,并避免了由DBT装置(它是干扰)的总线查询。Attention和ACK的扩展模型可供选择具有多个Attention和/或ACK信号(例如,不同核心)的DBT部件使用,但是不会使简单的情况慢下来。即,扩展模型允许使用单独的控制请求来选择哪一个Attention信号用于驱动(一个或多个),哪一个ACK信号用于采样(一个或多个),然后可以应用利用控制驱动当前设定值的常规模型。这就是说,Attention和ACK可以用于更快的直接插入模型,当改变任选的设置时需要额外的扫描。
图6示出ScanTAP至MemTAP之间的关系(以较接近于存储器访问的方式支持扫描的方法)和两者怎样适应DBT并且示出一种实现/构造模型。建议用于ScanTAP的模型用来完成4项任务:
●清除在时钟域边界上的分隔符。这提供了一种最小可能的注册接口和时钟域之间的同步交换管理,特别是处理扫描中传播的额外开销。
●简单的MUX模型允许多个扫描链处理程序。
●扫描链处理程序的简易实现-如果它们不想使用它们自己的接口(桥路支持和时钟),那么可以与简易的Verilog绕接以便支持ScanTAP接口。
●利用大扫描链的最佳化的插入/抽取应用。
ScanTAP方案生成4种不同块,系统设计程序必须执行其中的一种(可能已经执行)。这些块示于图7。
1、协议块。所述块将相同的基本协议用作MemTAP的子部件。它可以通过TAP块(对于直接的JTAG)或SWJ的片上运行控制块访问。它管理简易的34位寄存器模型,所述寄存器模型提供对34位寄存器的访问。所述4个寄存器与MemTAP的4个寄存器匹配,但是适用于稍有不同的应用:
●控制:扇区(对于扫描链)、请求和数据计数器。返回状态(如果操作完成)。请求指明:仅仅预先、仅仅事后、仅仅插入数据、仅仅抽取数据、预先插入数据然后事后插入、预先抽取数据然后事后抽取。
●地址:预先和事后计数器(每一个16位)。当通过控制来启动时,这些跳跃扫描单元得到想要的插入和抽取的地址。
●额外:不使用。可能用于回读当前的扫描链大小。
●数据:插入和抽取的数据值。这些数据值用于在扫描链的当前位置设置/获取数据。每次使用它都支持1-32位的操作。重复访问这些寄存器每次都将执行当前请求在控制中给定大小的操作。因此,32位的4个操作中每一个都可以用于处理扫描的128位。由于只开销2位,这就是说使用所述机制的成本很低。
2、ShiftIF块。所述块处于时钟域边界另一边。这就允许扫描单元以比请求协议块执行的时钟速率高很多的时钟速率操作。所述块管理modes、count+data(20位的寄存器)和MUXselections。相同的3个寄存器用于所有模型。ShiftIF的mode指明采用哪一个活动:设置选择器、设置计数然后泄漏(预先或事后的进程)、设置数据+计数然后用于插入的泄漏、设置计数然后用于抽取的到数据寄存器中的泄漏。到ShiftIF的接口把握手协议(handshake)用于确认完成。selector和count+data为注册接口,当不是请求mode(活动)时,所述接口能够写入和读出。插入看来象:写入data+count(20位)然后写入mode、然后等待握手协议(handshake)。抽取看来象:写入count(高4位)、然后写入mode、然后等待握手协议(handshake)、然后读出data(16位)。
3、选择器MUX。ShiftIF块请求MUX切换当前的选择扫描。当selector寄存器被写入时就执行,然后mode被设置为选择器设置。MUX使用握手协议(handshake)和ACK/Error信号指明是否接受。误差响应将清除ShiftIF块中的selector寄存器,使得协议块可以检测是否接受(在回读上)。这允许仿真sW确定具体装置是否存在扫描链。
4、串联移位器。SoC/ASIC厂商提供串联移位器。它可以使用5信号的接口或使用提供的绕接器。5信号接口包括3路输入:”时钟”(预置)、”桥接”请求和SI(移入)。5信号接口还包括2路输出:握手协议(handshake)(ACK)和SO(移出)。根据每一个预先请求输出(任何形式)的时钟脉冲,然后当移位完成(信号通过整个扫描链)后串联移位器驱动握手协议(handshake)信号。当SO信号被选通到SI输入时,桥接信号被确认并保持在时钟前面。这允许所述扫描超前并保持相同的内容(如果所有位循环位移)。
5、ShiftIF块通过保持的桥接信号和脉冲count时间(由协议块加载)来执行事先或事后跳跃。握手协议(handshake)确定可能的速率。ShiftIF块将不确认自己的返回到协议块的握手协议(handshake),一直到完成为止,因此,不存在超时运行的可能。ShiftIF块通过保持桥接信号和脉冲时钟count时间来执行数据”抽取”操作。把每一个SO移位到data寄存器。然后,当确认握手协议(handshake)时协议块读出data。ShiftIF块通过不保持桥接信号和脉冲时钟count时间来执行数据”插入”操作。利用data寄存器的底部位来驱动每一个SI,然后将所述底部位移位。协议块将具有预先加载的data(和count)。

Claims (26)

1.一种集成电路,它包括:
多个功能电路,用于执行数据处理操作;
至少一种功能总线,用于提供所述多个功能电路之间的通信;以及
诊断总线主控器电路,它在所述多个功能电路的实时操作期间,通过借助于所述至少一种功能总线向所述多个功能电路中的一个或多个电路发布总线交易请求来对所述多个功能电路中的至少一个电路执行诊断操作。
2.如权利要求1所述的集成电路,其中,所述诊断总线主控器电路执行以下的一个或多个操作:
调试操作;
生产测试操作;
生产编程操作;
生产配置操作;
现场编程操作;以及
现场配置操作。
3.如权利要求1和2中任何一项所述的集成电路,其中,所述诊断总线主控器电路可以执行验证操作,以便授权所述诊断总线主控器电路完成执行诊断操作和访问所述功能总线两者中的至少一种操作。
4.如权利要求3所述的集成电路,其中包括与所述至少一种功能总线连接的验证电路,所述验证操作包括所述诊断总线主控器电路向所述验证电路发布验证请求,所述验证电路可以根据所述验证请求与预定的规则的匹配选择性地授权给所述诊断总线主控器电路。
5.如上述权利要求中任何一项所述的集成电路,其中包括将所述诊断总线主控器电路连接到所述多个功能电路中至少一个的专用诊断总线,所述专用诊断总线提供对不能通过所述至少一种功能总线访问的数据的访问。
6.如上述权利要求中任何一项所述的集成电路,其中包括具有不同总线协议的多功能总线,所述诊断总线主控器电路包括多个总线接口电路,所述各总线接口电路各自用于利用相应的功能总线的总线协议与所述相应的功能总线进行通信。
7.如上述权利要求中任何一项所述的集成电路,其中,所述诊断总线主控器电路包括外部接口电路,所述外部接口电路用于利用相应的外部信号协议与相应的外部诊断装置进行通信。
8.如上述权利要求中任何一项所述的集成电路,其中,所述诊断总线主控器电路可以在所述集成电路的时钟域和连接到所述诊断总线主控器电路的外部诊断装置的时钟域之间传送信号。
9.如上述权利要求中任何一项所述的集成电路,其中,所述诊断总线主控器电路可以执行以下的一个或多个操作:
装入来自连接所述至少一个功能总线的装置的数据值;
将数据值存储到连接所述至少一种功能总线的装置中;
在连接所述至少一种功能总线的各装置之间复制数据值;以及
验证存储在连接所述至少一种功能总线的装置中的数据值。
10.如上述权利要求中任何一项所述的集成电路,其中,闪存与所述至少一种功能总线连接,所述诊断总线主控器电路可以利用闪存可编程协议对所述闪存进行编程。
11.如上述权利要求中任何一项所述的集成电路,其中,所述集成电路是芯片系统集成电路。
12.如上述权利要求中任何一项所述的集成电路,其中,所述至少一种功能总线是所述集成电路的外部总线。
13.如上述权利要求中任何一项所述的集成电路,其中,所述至少一种功能总线是AMBA总线。
14.一种对集成电路执行实时诊断操作的方法,所述集成电路具有可以执行数据处理操作的多个功能电路和可以在所述多个功能电路之间提供通信的至少一种功能总线,所述方法包括以下步骤:
在所述多个功能电路的实时操作期间,通过所述至少一种功能总线从诊断总线主控器电路向所述多个功能电路中的一个或多个功能电路发布总线事务请求。
15.如权利要求14所述的方法,其中,所述诊断总线主控器电路可以执行以下的一个或多个操作:
调试操作;
生产测试操作;
生产编程操作;
生产配置操作;
现场编程操作;以及
现场配置操作。
16.如权利要求14和15中任何一项所述的方法,其中,所述诊断总线主控器电路执行验证操作以便授权所述诊断总线主控器电路完成执行诊断操作和访问所述功能总线两者中的至少一种操作。
17.如权利要求16所述的方法,其中,验证电路与所述至少一种功能总线连接,所述验证操作包括所述诊断总线主控器电路向所述验证电路发布验证请求,所述验证电路根据所述验证请求与预定的规则的匹配选择性地授权给所述诊断总线主控器电路。
18.如权利要求14至17中的任何一项所述的方法,其中,专用诊断总线将所述诊断总线主控器电路连接到所述多个功能电路中的至少一个,所述专用诊断总线提供对不能通过所述至少一种功能总线访问的数据的访问。
19.如权利要求14至18中的任何一项的方法,所述集成电路包括具有不同总线协议的多功能总线,所述诊断总线主控器电路包括多个总线接口电路,所述各总线接口电路各自用于利用相应的功能总线的总线协议与所述相应的功能总线进行通信。
20.如权利要求14至19中的任何一项所述的方法,其中,所述诊断总线主控器电路包括外部接口电路,所述外部接口电路用于利用相应的外部信号协议与相应的外部诊断装置进行通信。
21.如权利要求14至20中的任何一项所述的方法,其中,所述诊断总线主控器电路可以在所述集成电路的时钟域和连接到所述诊断总线主控器电路的外部诊断装置的时钟域之间传送信号。
22.如权利要求14至21中的任何一项所述的方法,其中,所述诊断总线主控器电路执行以下的一个或多个操作:
装入来自连接所述至少一个功能总线的装置的数据值;
将数据值存储到连接所述至少一种功能总线的装置中;
在连接所述至少一种功能总线的各装置之间复制数据值;以及
验证存储在连接所述至少一种功能总线的装置中的数据值。
23.如权利要求14至22中的任何一项所述的方法,其中,闪存与所述至少一种功能总线连接,所述诊断总线主控器电路可以利用闪存可编程协议对所述闪存进行编程。
24.如权利要求14至23中的任何一项所述的方法,其中,所述集成电路是芯片系统集成电路。
25.如权利要求14至24中的任何一项所述的方法,其中,所述至少一种功能总线是所述集成电路的内部总线。
26.如权利要求14至25中的任何一项所述的方法,其中,所述至少一种功能总线是AMBA总线。
CNB038263157A 2003-04-17 2003-09-17 集成电路的诊断电路 Expired - Lifetime CN100380335C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/417,335 US7444546B2 (en) 2003-04-17 2003-04-17 On-board diagnostic circuit for an integrated circuit
US10/417,335 2003-04-17

Publications (2)

Publication Number Publication Date
CN1764902A true CN1764902A (zh) 2006-04-26
CN100380335C CN100380335C (zh) 2008-04-09

Family

ID=33158878

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038263157A Expired - Lifetime CN100380335C (zh) 2003-04-17 2003-09-17 集成电路的诊断电路

Country Status (11)

Country Link
US (1) US7444546B2 (zh)
EP (1) EP1614039B1 (zh)
JP (1) JP2006514375A (zh)
KR (1) KR101016711B1 (zh)
CN (1) CN100380335C (zh)
AU (1) AU2003269144A1 (zh)
IL (1) IL169848A (zh)
MY (1) MY138620A (zh)
RU (1) RU2005131959A (zh)
TW (1) TWI290630B (zh)
WO (1) WO2004095279A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184134A (zh) * 2010-06-22 2011-09-14 上海盈方微电子有限公司 一种片上系统的性能分析器
CN101320341B (zh) * 2007-06-07 2011-11-30 国际商业机器公司 数据扫描错误恢复系统和方法
CN101663648B (zh) * 2007-02-12 2012-10-03 明导公司 低功耗扫描测试技术及装置
CN103176926B (zh) * 2011-08-03 2017-07-28 Arm有限公司 用于调试屏障事务的集成电路和方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941538B2 (en) * 2002-02-22 2005-09-06 Xilinx, Inc. Method and system for integrating cores in FPGA-based system-on-chip (SoC)
US7200775B1 (en) 2002-10-04 2007-04-03 American Megatrends, Inc. Method and data structures for use in providing on-demand computer diagnostics
US7231549B1 (en) * 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics
US7334166B1 (en) 2002-10-04 2008-02-19 American Megatrends, Inc. Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services
FI5706U1 (fi) * 2002-11-21 2003-02-26 Patria New Technologies Oy JTAG-testilaitteisto ja -testausjärjestelmä
US7496818B1 (en) 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7444571B1 (en) 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7216276B1 (en) 2003-02-27 2007-05-08 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7634817B2 (en) * 2003-07-22 2009-12-15 Gateway, Inc. Diagnostic authentication codes
US7689726B1 (en) * 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US20060179380A1 (en) * 2005-01-14 2006-08-10 Ivo Tousek On-chip electronic hardware debug support units having execution halting capabilities
DE602005005289T2 (de) * 2005-01-31 2009-07-09 Stmicroelectronics S.R.L., Agrate Brianza Verfahren, System und Computerprogrammprodukt zur Korrektur von Fehlern in einem Festwertspeicher
US7437618B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
US7701240B2 (en) * 2005-03-04 2010-04-20 Arm Limited Integrated circuit with error correction mechanisms to offset narrow tolerancing
JP2006252267A (ja) * 2005-03-11 2006-09-21 Oki Electric Ind Co Ltd システム検証用回路
US7370257B2 (en) * 2005-04-08 2008-05-06 Lsi Logic Corporation Test vehicle data analysis
JP2006318172A (ja) * 2005-05-12 2006-11-24 Renesas Technology Corp マイクロコンピュータ
US8881114B2 (en) * 2005-05-16 2014-11-04 Texas Instruments Incorporated Stored program writing stall information when a processor stalls waiting for another processor
US7730545B2 (en) * 2005-05-23 2010-06-01 Arm Limited Test access control for secure integrated circuits
US7515453B2 (en) * 2005-06-24 2009-04-07 Metaram, Inc. Integrated memory core and memory interface circuit
US7363564B2 (en) * 2005-07-15 2008-04-22 Seagate Technology Llc Method and apparatus for securing communications ports in an electronic device
US7802259B2 (en) * 2005-08-08 2010-09-21 Freescale Semiconductor, Inc. System and method for wireless broadband context switching
WO2007018553A1 (en) * 2005-08-08 2007-02-15 Commasic Inc. Multi-mode wireless broadband signal processor system and method
US20070030801A1 (en) * 2005-08-08 2007-02-08 Freescale Semiconductor, Inc. Dynamically controlling rate connections to sample buffers in a mult-mode wireless processing system
US7457726B2 (en) 2005-08-08 2008-11-25 Freescale Semiconductor, Inc. System and method for selectively obtaining processor diagnostic data
US7734674B2 (en) * 2005-08-08 2010-06-08 Freescale Semiconductor, Inc. Fast fourier transform (FFT) architecture in a multi-mode wireless processing system
US20070033349A1 (en) * 2005-08-08 2007-02-08 Freescale Semiconductor, Inc. Multi-mode wireless processor interface
US8140110B2 (en) * 2005-08-08 2012-03-20 Freescale Semiconductor, Inc. Controlling input and output in a multi-mode wireless processing system
US7653675B2 (en) * 2005-08-08 2010-01-26 Freescale Semiconductor, Inc. Convolution operation in a multi-mode wireless processing system
JP4795147B2 (ja) * 2006-07-11 2011-10-19 富士通株式会社 伝送装置
US7823017B2 (en) 2006-08-02 2010-10-26 International Business Machines Corporation Structure for task based debugger (transaction-event-job-trigger)
US7594140B2 (en) * 2006-08-02 2009-09-22 International Business Machines Corporation Task based debugger (transaction-event-job-trigger)
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US7610532B2 (en) * 2006-11-01 2009-10-27 Avago Technologies General Ip (Singapore) Pte. Ltd. Serializer/de-serializer bus controller interface
GB2445166A (en) * 2006-12-27 2008-07-02 Advanced Risc Mach Ltd Integrated circuit with an interface that can selectively communicate a diagnostic signal or a functional signal to external devices.
US7882405B2 (en) * 2007-02-16 2011-02-01 Atmel Corporation Embedded architecture with serial interface for testing flash memories
KR100869953B1 (ko) * 2007-05-30 2008-11-24 경북대학교 산학협력단 Etm 인터페이스를 이용한 전력 측정 시스템 및 그 방법
US8014976B2 (en) * 2007-10-24 2011-09-06 Microsoft Corporation Secure digital forensics
US20090113245A1 (en) * 2007-10-30 2009-04-30 Teradyne, Inc. Protocol aware digital channel apparatus
JP4648961B2 (ja) * 2008-03-25 2011-03-09 富士通株式会社 装置メンテナンスシステム、方法および情報処理装置
US20090259457A1 (en) * 2008-04-14 2009-10-15 Mentor Graphics Corporaton Trace Routing Network
US9141776B2 (en) 2008-04-30 2015-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure hardware analysis
US8055936B2 (en) * 2008-12-31 2011-11-08 Pitney Bowes Inc. System and method for data recovery in a disabled integrated circuit
JP5629981B2 (ja) * 2009-05-29 2014-11-26 富士通セミコンダクター株式会社 半導体集積回路及び半導体集積回路の故障診断方法
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
FR2958063B1 (fr) * 2010-03-26 2012-04-20 Thales Sa Dispositif permettant de securiser un bus de type jtag
US8438436B1 (en) * 2010-06-04 2013-05-07 Xilinx, Inc. Secure design-for-test scan chains
US20130031419A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Collecting Debug Data in a Secure Chip Implementation
US20130159591A1 (en) * 2011-12-14 2013-06-20 International Business Machines Corporation Verifying data received out-of-order from a bus
CN104246712B (zh) 2012-03-25 2017-11-10 英特尔公司 用于调试任何片上系统状态、功率模式、重置、时钟和复杂数字逻辑的基于异步可编程jtag的接口
US10769051B2 (en) * 2016-04-28 2020-09-08 International Business Machines Corporation Method and system to decrease measured usage license charges for diagnostic data collection
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
US11494329B2 (en) * 2020-02-27 2022-11-08 Advantest Corporation NVMe-MI over SMBus multi-master controller with other SMBus and I2C masters in a single FPGA chip
CN113703552B (zh) * 2021-07-30 2024-02-09 浪潮电子信息产业股份有限公司 一种服务器散热调控方法、设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4183459A (en) * 1978-04-24 1980-01-15 Fluke Trendar Corporation Tester for microprocessor-based systems
JPH01134639A (ja) 1987-11-20 1989-05-26 Nec Corp トレース停止制御方式
JP2960560B2 (ja) * 1991-02-28 1999-10-06 株式会社日立製作所 超小型電子機器
GB2282244B (en) * 1993-09-23 1998-01-14 Advanced Risc Mach Ltd Integrated circuit
US5664124A (en) * 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
DE19616293A1 (de) * 1996-04-24 1997-10-30 Bosch Gmbh Robert Bussystem für die Übertragung von Nachrichten
GB9626412D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Diagnostic procedures in an integrated circuit device
JP3712810B2 (ja) 1997-02-25 2005-11-02 富士通株式会社 通信装置の監視制御方式
US6065078A (en) * 1997-03-07 2000-05-16 National Semiconductor Corporation Multi-processor element provided with hardware for software debugging
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6115763A (en) * 1998-03-05 2000-09-05 International Business Machines Corporation Multi-core chip providing external core access with regular operation function interface and predetermined service operation services interface comprising core interface units and masters interface unit
GB2338791B (en) 1998-06-22 2002-09-18 Advanced Risc Mach Ltd Apparatus and method for testing master logic units within a data processing apparatus
US6779145B1 (en) * 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
JP2001331442A (ja) 2000-03-16 2001-11-30 Nec Eng Ltd システムバス競合制御装置及びそれに用いるシステムバス競合制御方式
JP4409056B2 (ja) 2000-06-30 2010-02-03 富士通株式会社 Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置
GB2368669B (en) 2000-10-31 2005-06-22 Advanced Risc Mach Ltd Integrated circuit configuration
JP2002149498A (ja) 2000-11-08 2002-05-24 Hitachi Building Systems Co Ltd 監視診断装置
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
US6948098B2 (en) * 2001-03-30 2005-09-20 Cirrus Logic, Inc. Circuits and methods for debugging an embedded processor and systems using the same
DE10146516A1 (de) * 2001-09-21 2003-04-24 Infineon Technologies Ag Programmgesteuerte Einheit
US7277972B2 (en) * 2002-03-08 2007-10-02 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
US20040082297A1 (en) * 2002-10-28 2004-04-29 Stambaugh Mark A. Test protocols for wireless test
US7386639B2 (en) * 2003-01-15 2008-06-10 Avago Technologies Fiber Ip (Singapore) Pte. Ltd. Switch for coupling one bus to another bus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101663648B (zh) * 2007-02-12 2012-10-03 明导公司 低功耗扫描测试技术及装置
CN101320341B (zh) * 2007-06-07 2011-11-30 国际商业机器公司 数据扫描错误恢复系统和方法
CN102184134A (zh) * 2010-06-22 2011-09-14 上海盈方微电子有限公司 一种片上系统的性能分析器
CN103176926B (zh) * 2011-08-03 2017-07-28 Arm有限公司 用于调试屏障事务的集成电路和方法

Also Published As

Publication number Publication date
CN100380335C (zh) 2008-04-09
AU2003269144A1 (en) 2004-11-19
JP2006514375A (ja) 2006-04-27
TW200422626A (en) 2004-11-01
RU2005131959A (ru) 2006-02-10
US20040210797A1 (en) 2004-10-21
KR20060009255A (ko) 2006-01-31
IL169848A (en) 2011-03-31
MY138620A (en) 2009-07-31
WO2004095279A1 (en) 2004-11-04
EP1614039B1 (en) 2018-10-17
US7444546B2 (en) 2008-10-28
EP1614039A1 (en) 2006-01-11
TWI290630B (en) 2007-12-01
KR101016711B1 (ko) 2011-02-25

Similar Documents

Publication Publication Date Title
CN1764902A (zh) 集成电路的诊断电路
EP3593250B1 (en) Debugging system and method
US6456961B1 (en) Method and apparatus for creating testable circuit designs having embedded cores
US7996686B2 (en) Branch trace methodology
US6134652A (en) Diagnostic procedures in an integrated circuit device
CN1947107A (zh) 用于在存储器间传输数据的装置
US20080148343A1 (en) Debugging security mechanism for soc asic
CN1264081A (zh) 将生产测试接口接至全局串行总线的方法和装置
US7594140B2 (en) Task based debugger (transaction-event-job-trigger)
WO2008156328A2 (en) Digital forensic system and method
TWI285806B (en) On-chip electronic hardware debug support units having execution halting capabilities
Vermeulen et al. Overview of debug standardization activities
JP2013020329A (ja) 言語変換処理方法及び言語変換処理プログラム
CN1230885C (zh) 一种边界扫描芯片容错测试方法及系统
US6751788B1 (en) Method of testing computer software
CN1082302C (zh) 用于测试电子电路的方法和根据该方法的可测试集成电路
CN1821953A (zh) 可变群组组合分支目标地址快取传送每一快取列多目标地址
CN114691520A (zh) 基于处理器调试架构的指令可编程缓冲区设计系统
Grosso et al. Software-based testing for system peripherals
JP5310397B2 (ja) 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体
CN1997971A (zh) 测试具有异步微控制器的集成电路的仿真和调试接口
CN100576186C (zh) 软仿真器的制作方法
Grosso et al. A software-based self-test methodology for system peripherals
TWI288242B (en) Digital logic test method to systematically approach functional coverage completely and related apparatus and system
Pal et al. Zoom Out and See Better: Scalable Message Tracing for Post-Silicon SoC Debug

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080409