CN114003352A - 抓取处理器内部信号的系统及方法 - Google Patents
抓取处理器内部信号的系统及方法 Download PDFInfo
- Publication number
- CN114003352A CN114003352A CN202111269101.5A CN202111269101A CN114003352A CN 114003352 A CN114003352 A CN 114003352A CN 202111269101 A CN202111269101 A CN 202111269101A CN 114003352 A CN114003352 A CN 114003352A
- Authority
- CN
- China
- Prior art keywords
- signal
- transaction data
- packet
- module
- host interface
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 230000004044 response Effects 0.000 claims description 20
- 239000000126 substance Substances 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 229910052710 silicon Inorganic materials 0.000 description 9
- 239000010703 silicon Substances 0.000 description 9
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 235000013290 Sagittaria latifolia Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000015246 common arrowhead Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提出一种抓取处理器内部信号的系统及方法,上述系统包括:一主机接口;一跨时钟域发送模块,耦接上述主机接口,用于从上述主机接口接收事务数据,上述主机接口与上述跨时钟域发送模块之间具有一第一抓取线;以及一信号抓取器,耦接上述第一抓取线,上述信号抓取器包含一缓存器;其中,上述主机接口生成一第一事务数据;当上述缓存器有空闲存储空间、且上述跨时钟域发送模块也有空闲存储空间时,上述主机接口发送上述第一事务数据给上述跨时钟域发送模块;上述信号抓取器从上述第一抓取线抓取上述第一事务数据,将上述第一事务数据打包为一第一封包,并将上述第一封包保存在上述缓存器。
Description
技术领域
本公开涉及一种抓取集成电路芯片内部信号的系统及方法,且特别涉及一种长时间连续抓取处理器内部信号的系统及方法。
背景技术
硅后调试(post silicon debug)也称作硅后验证(post silicon validation),在数字集成电路芯片制造领域属于后期验证,主要用来对已经制造完成的芯片进行调试。硅后调试的目的是为了定位在传统的硅前验证阶段(如仿真验证、形式验证等等)没有发现的错误、以及在芯片制造过程中引入的错误。常见的硅后调试手段主要有:基于扫描(scan-base)和基于追踪(trace-base)的技术。基于扫描的技术可通过复用已有的扫描链把某一时刻系统的内部状态扫描出来。但这种方式只能静态观测某一时刻的系统状态,且扫描后系统无法继续运行。基于追踪的技术是在系统运行的同时,即时保存系统的内部状态。然而,目前基于追踪的技术只能追踪少部分信号,且难以实现长时间的连续追踪。
因此,需要一种长时间连续(即无损)抓取处理器内部信号的方法及系统。
发明内容
本公开的主要目的即在于提供一种抓取处理器内部信号的系统及方法,以实现长时间连续抓取处理器内部信号。
本公开提出一种抓取处理器内部信号的系统,包括:一主机接口;一跨时钟域发送模块,耦接上述主机接口,用于从上述主机接口接收事务数据,上述主机接口与上述跨时钟域发送模块之间具有一第一抓取线;以及一信号抓取器,耦接上述第一抓取线,上述信号抓取器包含一缓存器;其中,上述主机接口生成一第一事务数据;当上述缓存器有空闲存储空间、且上述跨时钟域发送模块也有空闲存储空间时,上述主机接口发送上述第一事务数据给上述跨时钟域发送模块;上述信号抓取器从上述第一抓取线抓取上述第一事务数据,将上述第一事务数据打包为一第一封包,并将上述第一封包保存在上述缓存器;以及当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述主机接口发送一第一满信号,响应于上述第一满信号,上述主机接口暂停发送上述第一事务数据。
本公开提出一种抓取处理器内部信号的方法,包括:一主机接口生成一第一事务数据;当一信号抓取器的一缓存器有空闲存储空间、且一跨时钟域发送模块也有空闲存储空间时,上述主机接口发送上述第一事务数据给上述跨时钟域发送模块;上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为一第一封包,并将上述第一封包保存在上述缓存器;以及当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述主机接口发送一第一满信号,响应于上述第一满信号,上述主机接口暂停发送上述第一事务数据。
通过本公开提供的抓取处理器内部信号的方法及系统,采用侵入式的抓取方式,通过对传输路径施加影响,从而达到长时间连续(即无损)抓取内部信号的目的。
附图说明
图1是显示根据本公开一实施例所述的计算机系统的架构示意图。
图2是显示根据本公开一实施例所述的信号抓取器(Signal Capture,SC)的示意图。
图3A是显示根据本公开一实施例所述的信号抓取器抓取FIFO类信号的简要示意图。
图3B是显示根据本公开另一实施例所述的信号抓取器抓取FIFO类信号的简要示意图。
图4是显示根据本公开一实施例所述的信号抓取器抓取SB类信号的简要示意图。
图5是显示根据本公开一实施例所述的信号抓取器汇出所存储内部信号的一封包格式的示意图。
图6~7是显示根据本公开一实施例所述的在触发模式下信号存储的示意图。
【符号说明】
110:中央处理器
120:前端总线
130:北桥控制器
140:南桥控制器
150:系统存储器
200:信号抓取器
202:触发模块
204:配置模块
206:配置接口
208:信号保存模块
210:缓存器
212:存储设备
302a~302f:抓取点
310:主机接口(HIF)
320a、330b:CDC_TX
320b、330a:CDC_RX
361、363:箭头
353:反相器
351、355:与门
352、354:或门
valid1、cdc_push_valid、data、stall、cdc_full、full、cdc_stall、c_data、cdc_pop_valid、valid2:信号
CL1、CL2:抓取线
340、341:Relay FIFO
400:示意图
410:中央处理器
412:同步器
414:寄存器
418a、418b:抓取点
500:封包格式
510:标头(Header)
511:标志位
512:封包类型
513:时间戳
514:特殊讯息
520:数据(Data)
具体实施方式
以下公开的内容仅为示例性的,且不意指以任何方式加以限制。除所述说明方面、实施方式和特征之外,通过参照附图和下述具体实施方式,其他方面、实施方式和特征也将显而易见。即,以下公开的内容被提供以介绍概念、重点、益处及本文所描述新颖且非显而易见的技术优势。所选择,非所有的,实施例将进一步详细描述如下。因此,以下公开的内容并不意旨在所要求保护主题的必要特征,也不意旨在决定所要求保护主题的范围中使用。
在下文中将参考附图对本公开的各方面进行更充分的描述。然而,本公开可以具体化成许多不同形式且不应解释为局限于贯穿本公开所呈现的任何特定结构或功能。相反地,提供这些方面将使得本公开周全且完整,并且本公开将给本领域技术人员充分地传达本公开的范围。基于本文所教导的内容,本领域的技术人员应意识到,无论是单独还是结合本公开的任何其它方面实现本文所公开的任何方面,本公开的范围旨在涵盖本文中所公开的任何方面。例如,可以使用本文所提出任意数量的装置或者执行方法来实现。另外,除了本文所提出本公开的多个方面之外,本公开的范围更旨在涵盖使用其它结构、功能或结构和功能来实现的装置或方法。应可理解,其可通过权利要求的一或多个元件具体化本文所公开的任何方面。
词语“示例性”在本文中用于表示“用作示例、实例或说明”。本公开的任何方面或本文描述为“示例性”的设计不一定被解释为优选于或优于本公开或设计的其他方面。此外,相同的数字在所有若干图示中指示相同的元件,且除非在描述中另有指定,冠词“一”和“上述”包含多个的参考。
可以理解,当元件被称为被“连接”或“耦接”至另一元件时,该元件可被直接地连接到或耦接至另一元件或者可存在中间元件。相反地,当该元件被称为被“直接连接”或“直接耦接”至到另一元件时,则不存在中间元件。用于描述元件之间的关系的其他词语应以类似方式被解释(例如,“在…之间”与“直接在…之间”、“相邻”与“直接相邻”等方式)。
图1是显示根据本公开一实施例所述的计算机系统100的架构示意图。如图1所示,计算机系统100包含中央处理器110(即处理器,下同)、北桥控制器130、南桥控制器140和系统存储器150。中央处理器(Central Processing Unit,CPU)110通过前端总线(Front SideBus,FSB)120与北桥控制器130通信。北桥控制器130还耦接系统存储器150和南桥控制器140,中央处理器110通过北桥控制器130与系统存储器150进行通信,并通过北桥控制器130与连接到南桥控制器140的设备(比如硬盘、键盘等等)进行通信。而本公开实施例提供了一种抓取处理器内部信号的方法及装置,可以在中央处理器110与北桥控制器130之间通信时,连续无损抓取输入中央处理器110的信号或从中央处理器110输出的信号。上述的通信也包括中央处理器110与系统存储器150或南桥控制器140之间、藉由北桥控制器130进行的通信,比如中央处理器110从系统存储器150读取数据、或向系统存储器150写数据,等等。本领域技术人员皆知,中央处理器110为了能与设备(比如连接到南桥控制器140的硬盘、键盘等等)通信,会为每个设备分配至少一个内存空间。由于上述信号是中央处理器110与设备之间通信时产生的,所以上述信号中包含上述至少一个内存空间的地址信息,用于标识上述信号来自哪个内存空间、或中央处理器110要把上述信号发送到哪个内存空间。
图2是显示根据本公开一实施例所述的信号抓取器(Signal Capture,SC)200的示意图。如图所示,信号抓取器200为用于硅后调试(post silicon debug)的一模块,包含触发模块202、配置模块204、以及信号保存模块208,且信号保存模块208有缓存器210。另外,信号抓取器200还可外接配置接口206和存储设备212。信号抓取器200可以用于抓取图1所示的中央处理器110与北桥控制器130通信时产生的信号SIG(如箭头214所示),并将抓取到的信号SIG放入至一封包后、存储到信号保存模块208中的缓存器210中。在一实施例中,缓存器210为静态随机存取存储器(Static Random Access Memory,SRAM)。在一些情况下,还可将存储在缓存器210中的封包转储到存储设备212,存储设备212例如是系统存储器、动态随机存取存储器(Dynamic Random Access Memory,DRAM)或PCI Express。需要说明的是,如果缓存器210已满,则不能再继续存储新产生的信号SIG,此时信号抓取器200会发出一满信号(将信号CAP_FULL设置为1)给图1的中央处理器110(如箭头216所示),以暂停中央处理器110和北桥控制器130之间的通信。等信号抓取器200将保存在缓存器210中的封包转储到存储设备212后,会释放缓存器210中、已经转储到存储设备212的封包所占用的存储空间,并发出一非满信号(将信号CAP_FULL设置为0)给中央处理器110(如箭头216所示),以恢复中央处理器110和北桥控制器130之间的通信。需要说明的一点是,只要缓存器210中存在尚未转储的封包,抓取器200也会执行转储操作,将尚未转储的封包转储到存储设备212,而不必等缓存器210满了之后才转储。后文会结合图3A、3B、4详述信号抓取器200如何抓取信号SIG。
信号抓取器200是可配置的,调试人员可以通过配置启用或停用信号抓取器200,并可通过配置使信号抓取器200抓起来自或发给地址处于特定位置的信号SIG。调试人员可以在遇到系统故障后再启用信号抓取器200,以抓取特定位置附近的信号SIG来进行调试,这样可以提高调试效率。本公开中支持两种配置方式:一种是使用特殊模型寄存器(ModelSpecific Register,MSR)进行配置,另一种是使用联合测试工作群组(Joint Test ActionGroup,JTAG)接口进行配置;其中,JTAG接口配置方式适用于对所有集成电路芯片进行配置。可通过图2所示的配置接口206使用前述两种配置方式之一,发送配置信息给配置模块204,对信号抓取器200进行配置,以使信号抓取器200启动或停止信号抓取。信号抓取器200启动后,信号保存模块208就开始连续不断地抓取信号SIG、并将其保存到缓存器210,再将其转储到存储设备212。信号抓取器200支持多种转储模式,包括:串流模式(stream mode)和触发模式(trigger mode),其中触发模式能够抓取地址处于特定位置的信号SIG(即信号SIG的地址为特定位置,比如信号SIG的地址为0x1234时,或比如信号SIG的地址位于0x1234与0x1238之间时)附近的波形。后文会结合图5、6、7详述信号抓取器200如何转储信号SIG。
本公开中根据信号抓取器200所抓取信号的属性,可将信号分为两类:先入先出(First Input First Output,FIFO)类信号和边带(sideband,SB)类信号。
中央处理器110与北桥控制器130进行事务(Transaction)数据传输时产生的信号为FIFO类信号(本公开中,事务数据也是信号,下同)。由于中央处理器110与北桥控制器130处于不同的时钟域(Clock Domain),所以FIFO类信号是跨时钟域(Clock Domain Cross,CDC)的。可以在中央处理器110与北桥控制器130之间设置CDC模块,以实现两者之间事务数据的跨时钟域传输。按照所属时钟域的不同,可将CDC模块划分为跨时钟域发送模块(CDC_TX)和跨时钟域接收模块(CDC_RX),其中CDC_TX和CDC_RX分别位于不同的时钟域中。如果是北桥控制器130向中央处理器110传输事务数据,则在中央处理器110的时钟域中需要使用CDC_RX,而在北桥控制器130的时钟域中则使用CDC_TX。如果是中央处理器110向北桥控制器130传输事务数据,则在中央处理器110的时钟域中需要使用CDC_TX,而在北桥控制器130的时钟域中则使用CDC_RX。每当中央处理器110与北桥控制器130之间进行事务数据传输时,信号抓取模块200都需要抓取产生的FIFO类信号(即事务数据)。
边带(sideband,SB)类信号为北桥控制器130直接输入到中央处理器110中的信号,这类信号一般需要用同步器接收后才能进入中央处理器110的同步逻辑。边带信号中只要有一个比特(bit)发生翻转(toggle),信号抓取器200就需要抓取整个边带信号。举例来说,假设第一次抓取一个4比特的边带信号时其值为1011,当其值变为1111时(即只有边带信号的第2比特的值改变了),信号抓取器200就需要再一次抓取这个边带信号的所有比特的值(虽然边带信号第0、1、3比特的值没有改变,也需要再次被抓取)。不过,相较于FIFO类信号,SB类信号在数据量过大的情况下,可能会有丢包的问题(即信号抓取器可能会抓不到个别SB类信号),所以FIFO类信号在实施上效果较好。
需要说明的是,本公开中的信号抓取器200可以用于抓取任何集成电路芯片内部的信号以对其进行调试,比如北桥芯片、显卡芯片、南桥芯片等等;本公开中仅以抓取中央处理器(处理器)内部的信号作为一个例子,来对本发明进行详细说明。
下面先描述信号抓取器200如何抓取中央处理器110内部的FIFO类信号。
图3A是显示根据本公开一实施例所述的信号抓取器200抓取FIFO类信号的简要示意图。如图所示,中央处理器110中的模块都处于中央处理器110的时钟域,北桥控制器130中的模块都处于北桥控制器130的时钟域。中央处理器110包含主机接口(Host Interface,HIF)310、CDC_TX 320a、CDC_RX330a。其中HIF 310耦接CDC_TX 320a和/或CDC_RX 330a。在一实施例中,当中央处理器110要发送事务数据给北桥控制器130时,会先通过HIF 310发送给CDC_TX 320a,CDC_TX 320a再将该事务数据发送给位于北桥控制器130的时钟域的CDC_RX 320b,北桥控制器130再从CDC_RX 320b读取该事务数据。在另一实施例中,当北桥控制器130要发送事务数据给中央处理器110时,会先发送给CDC_TX 330b,CDC_TX 330b再把该事务数据发送给位于中央处理器110时钟域的CDC_RX 330a,CDC_RX 330a再把该事务数据发送给HIF 310。
如图3A所示,中央处理器110还包含信号抓取器200,信号抓取器200接收来自HIF310或CDC_RX 330a的事务数据,以及可以输出一满/非满信号(CAP_FULL)。在一实施例中,信号抓取器200从抓取线CL1(与HIF 310和CDC_TX 320a之间的通信线路交叉连接的线,相交于交叉点302a、302b和302c)抓取由HIF 310发送给CDC_TX 320a的事务数据(如箭头361所示)。在另一实施例中,信号抓取器200从抓取线CL2(与HIF 310和CDC_RX 330a之间的通信线路交叉连接的线,相交于交叉点302d、302e和302f)抓取由CDC_RX 330a发送给HIF 310的事务数据(如箭头363所示)。另外,信号抓取器200输出一满信号(CAP_FULL值为1)或一非满信号(CAP_FULL值为0)给HIF 310、CDC_TX 320a和CDC_RX 330a,以暂停或允许HIF 310与CDC_TX 320a/CDC_RX 330a之间的事务数据传输,从而实现连续抓取HIF 310与CDC_TX320a/CDC_RX 330a之间传输的事务数据。下面先描述如何实现连续抓取HIF 310与CDC_TX320a之间传输的事务数据。
请参考图3A,HIF 310和CDC TX 320a之间通信时传输的信号包括:HIF 310发送给CDC_TX 320a的信号data和valid1,以及发送给HIF 310的stall(暂停)信号。data为要传输的事务数据。valid1用于标识事务数据是否有效,valid1值为1表示事务数据有效,即HIF310已经准备好要传输的事务数据data;valid1值为0表示事务数据无效,即HIF 310当前没有要传输的事务数据data。发送给HIF 310的stall(暂停)信号用于控制HIF 310是否可以发送事务数据data。当stall信号为1时,表示不允许HIF 310向CDC_TX 320a传输事务数据data;当stall信号为0时,表示允许HIF 310向CDC_TX 320a传输事务数据data。
信号抓取器200所发出的CAP_FULL信号经反相器353取非后的信号,与HIF 310发出的valid1信号使用与门351做与运算,可生成信号cdc_push_valid。当cdc_push_valid值为1时,表示HIF 310有事务数据data要发送给CDC_TX 320a,并且此时信号抓取器200也有足够的空间用于保存本次要传输的事务数据data。
CDC_TX 320a所发出的cdc_full信号,用于标识CDC_TX 320a是否还有空闲存储空间接收事务数据data。cdc_full值为0表示CDC_TX 320a还有空闲存储空间,cdc_full值为1表示CDC_TX 320a已没有空闲存储空间。
此外,信号cdc_full与CAP_FULL使用或门352做或运算,生成stall信号。当stall值为1时,表示CDC_TX 320a和信号抓取器200中至少有一个已经没有空闲存储空间保存要传输的事务数据data了。当信号stall的值为0、且信号cdc_push_valid的值由0变为1时,表示HIF 310已经准备好要传输的事务数据data、并且CDC_TX 320a和信号抓取器200都有空闲存储空间保存事务数据data。这时,信号抓取器200会将当前的事务数据data存储到缓存器210中,同时CDC_TX 320a也保存当前的事务数据data。
下面举例说明信号抓取器200抓取事务数据的过程,假设HIF 310连续向CDC_TX320a发送3个事务数据:data1、data2、data3(即图3A标示的data);并假设:发送data1时,CDC_TX 320a和信号抓取器200都有空闲存储空间,发送data2时,CDC_TX 320a有空闲存储空间、信号抓取器200没有空闲存储空间,发送data3时,CDC_TX 320a没有空闲存储空间、信号抓取器200有空闲存储空间。另外,发送data1前,valid1和cdc_push_valid的值为0。
首先,HIF 310发送事务数据data1。由于CDC_TX 320a和信号抓取器200都有空闲存储空间,信号CAP_FULL和cdc_full都为0,CAP_FULL和cdc_full通过或门352做或运算后生成的stall信号也为0(即当前允许HIF310发送事务数据),因此,valid1信号由0变为1。信号CAP_FULL(值为0)经反相器353后变为1,再与valid1(值为1)通过与门351做与运算后生成的cdc_push_valid的值由0变为1。此时,由于stall值为0、且cdc_push_valid值由0变为1,所以CDC_TX 320a和信号抓取器200都保存事务数据data1。信号抓取器200会把事务数据data1写入封包后存入缓存器210中。然后,由于已发送完事务数据data1,信号valid1和cdc_push_valid又都变为了0。现在,信号抓取器200变为没有空闲存储空间了,因而信号CAP_FULL变为1。CDC_TX 320a还有空闲存储空间,信号cdc_full还是为0。
然后,HIF 310再发送事务数据data2。此时,由于信号CAP_FULL值为1、而cdc_full值为0,CAP_FULL和cdc_full通过或门352做或运算后生成的stall信号为1(即当前不允许HIF 310发送事务数据),因此HIF 310不会发送事务数据data2,valid1、cdc_push_valid信号都保持为0。等图2所示的信号保存模块208将缓存器210中保存的封包转储到外接的存储设备212后,信号抓取器200就又有空闲存储空间了,然后信号抓取器200将信号CAP_FULL变为0。此时,CDC_TX 320a和信号抓取器200又都有空闲存储空间,HIF 310发送事务数据data2,具体过程与发送事务数据data1的过程相同,此处就不赘述了。发送完事务数据data2后,信号valid1和cdc_push_valid又都变为了0。现在,信号抓取器200还有空闲存储空间,因而信号CAP_FULL变为0。CDC_TX 320a变为没有空闲存储空间了,信号cdc_full变为为1。
接着,HIF 310又发送事务数据data3。此时,由于信号CAP_FULL值为0、而cdc_full值为1,CAP_FULL和cdc_full通过或门352做或运算后生成的stall信号为1(即当前不允许HIF 310发送事务数据),因此HIF 310不会发送事务数据data3,valid1、cdc_push_valid信号都保持为0。等CDC_TX 320a把其缓存空间中事务数据发送给CDC_RX 320b后,CDC_TX320a就又有空闲存储空间了,然后将信号cdc_full变为0。此时,CDC_TX 320a和信号抓取器200又都有空闲存储空间了,HIF 310发送事务数据data3,具体过程与发送事务数据data1的过程相同,此处就不赘述了。发送完事务数据data3后,信号valid1和cdc_push_valid又都变为了0。
从上述抓取流程可知,信号抓取器200藉由信号CAP_FULL,可以实现连续抓取HIF310发送给CDC_TX 320a的事务数据。
下面先描述如何实现连续抓取HIF 310与CDC_RX 330a之间的事务数据。与抓取HIF 310与CDC_TX 320a之间的事务数据不同的是,信号抓取器200是从抓取线CL2(与HIF310和CDC_RX 330a之间的通信线路交叉连接的线,相交于交叉点302d、302e和302f)抓取由CDC_RX 330a发送给HIF 310的事务数据的(如箭头363所示)。
请参考图3A,CDC_RX 330a和HIF 310之间通信时传输的信号包括:CDC_RX 330a发送给HIF 310的信号c_data和cdc_pop_valid,以及发送给CDC_RX 330a的信号cdc_stall。c_data为要传输的事务数据。cdc_pop_valid信号用于标识事务数据是否有效,cdc_pop_valid值为1表示事务数据有效,即CDC_RX 330a已经准备好要传输的事务数据c_data;cdc_pop_valid值为0表示事务数据无效,即CDC_RX 330a当前没有要传输的事务数据cdc_pop_valid。发送给CDC_RX 330a的cdc_stall信号用于控制CDC_RX 330a是否可以发送事务数据c_data。当cdc_stall信号为1时,表示不允许CDC_RX 330a向HIF 310传输事务数据c_data。当cdc_stall信号为0时,表示允许CDC_RX 330a向HIF 310传输事务数据c_data。
信号抓取器200所发出的信号CAP_FULL经反相器353取非后的信号,与CDC_RX330a发出的cdc_pop_valid信号使用与门355做与运算,可生成信号valid2。当valid2值为1时,表示CDC_RX 330a有事务数据c_data要发送给HIF 310,并且此时信号抓取器200也有足够的空间用于保存本次要传输的事务数据c_data。
HIF 310所发出的full信号,用于标识HIF 310是否还有空闲存储空间接收事务数据c_data。full值为0表示HIF 310还有空闲存储空间,full值为1表示HIF 310已没有空闲存储空间。
此外,信号full与CAP_FULL使用或门354做或运算,生成cdc_stall信号。当cdc_stall值为1时,表示HIF 310和信号抓取器200中至少有一个已经没有空闲存储空间保存要传输的事务数据c_data了。当信号cdc_stall的值为0、且信号valid2的值由0变为1时,表示CDC_RX 330a已经准备好要传输的事务数据c_data、并且HIF 310和信号抓取器200都有空闲存储空间保存事务数据c_data。这时,信号抓取器200会将当前的事务数据c_data存储到缓存器210中,同时HIF 310也保存当前的事务数据c_data。
由于信号处理器200从抓取线CL2抓取事务数据的过程,与从抓取线CL1抓取事务数据的过程是类似的,此处就不再举例说明了。
图3B是显示根据本公开另一实施例所述的信号抓取器抓取FIFO类信号的简要示意图。与图3A不同的是图3B增加了中继先入先出(Relay First Input First Output,Relay FIFO)装置340和341。Relay FIFO 340主要用于缓存HIF 310发送给CDC_TX 320a的事务数据,Relay FIFO 341主要用于缓存CDC_RX 330a发送给HIF 310的事务数据。
如图3B所示,Relay FIFO 340耦接于HIF 310和CDC_TX 320a之间,可以从HIF 310接收事务数据data,然后将事务数据data按接收顺序再转发给CDC_TX 320a。Relay FIFO340包含一个先入先出队列,可以用于缓存多个来自HIF 310的事务数据。初始时stall1、stall、valid1、valid3的值均为0。当stall值为0,HIF 310准备好要发送的事务数据data、并将valid1的值置为1时,Relay FIFO 340接收事务数据data。当stall1值为0,Relay FIFO340中还有未发送的事务数据data时,Relay FIFO 340可以弹出(pop)一个事务数据data、并将valid3设置为1,从而信号抓取器200完成事务数据data的抓取、CDC_TX 320a成功接收到事务数据data。
由上述内容可知,图3B中的Relay FIFO 340对于CDC_TX 320a和信号抓取器200来说是透明的。图3B中的Relay FIFO 341与Relay FIFO 340功能类似,并且对于CDC_RX 330a和信号抓取器200来说也是透明的,此处就不再详细介绍了。
图4是显示根据本公开一实施例所述的信号抓取器抓取SB类信号的简要示意图400。SB类信号包括CDC的控制信号、CPU的中断(interrupt)信号、CPU的重置(reset)信号、以及一些会影响到CPU行为的控制信号。如图所示,图400包含中央处理器410。中央处理器410,可以从图1所示的北桥控制器130经由FSB 120接收SB类信号(如图4中的输入箭头所示),还可以向北桥控制器130经由FSB 120发送SB类信号(如图4中的输出箭头)。下面先描述信号抓取器200是如何抓取输入到中央处理器410中的SB类信号的。
请同时参考图1、图2和图4,如图4所示,中央处理器410包含同步器412、如图2的信号抓取器200。中央处理器410使用同步器(syncro-cell)412接收由北桥控制器130输入的SB类信号,将其同步后再做进一步处理。SB类信号之间往往缺乏相关性,为了便于处理,设计人员可以将中央处理器110中的这些没有相关性的信号组合起来,形成一个多比特(bit)的总线。在本公开中,定义上述总线为通道(channel)。信号抓取器200是从抓取点418a抓取输入到中央处理器110中的SB类信号的。如前文所述,通道中的信号只要有一个比特发生翻转(toggle,即改变,比如值由0变为1或由1变为0),信号抓取器200就会抓取通道中的全部信号,并将其经由图2中的缓存器210转储到存储设备212。
下面描述信号抓取器200是如何抓取由中央处理器410输出的SB类信号的。如图4所示,中央处理器410还包括寄存器414。中央处理器410会将要输出的SB类信号写入寄存器414中,并且与输入SB类信号类似,形成一个通道,然后再输出。信号抓取器200是从抓取点418b抓取输出的SB类信号的。如前文所述,通道中的信号只要有一个比特发生翻转(toggle),信号抓取器200就会抓取通道中的全部信号,并将其经由图2中的缓存器210转储到存储设备212。
在另一实施例中,图4中的输入SB类信号和输出SB类信号组合在一起形成一个通道,信号抓取器200每次可从该通道同时抓取到输入和输出SB类信号。
图5是显示根据本公开一实施例所述的信号抓取器汇出所存储内部信号的一封包格式500的示意图。前文所述的图2、3A、3B、4中的信号抓取器200抓取到信号(包含FIFO类信号和SB类信号)后,会将其以封包格式500打包为一个封包,再将该封包通过缓存器210转储到存储设备212中。如图所示,封包格式500包括一标头(Header)字段510及一数据(Data)字段520,其中标头字段510包括一封包的标志位511、封包类型(PacketType)512、时间戳(TimeStamp)513、特殊讯息(Special message)514。下面对标头510进行详细描述。
标头510的第0比特至3比特为标志位511,其值均为1,可以用于标识一个封包的开始。举例来说,当调试(debug)软件从图2所示的存储设备212,读取信号抓取器200抓取到的封包数据进行处理时,会判断所读取到的封包数据的第1个字节的第0比特至第3比特是否都为1,如果都为1表示这个字节是一个封包的第1个字节,标识一个封包的开始;否则表示这个字节不是一个封包的第1个字节,调试软件会再对下一个字节做同样的判断,直到找到一个封包的开始。
标头510的第4比特至15比特为封包类型512。每一比特对应一类型,当值为1时,表示当前封包为对应类型的封包。每个类型的封包的数据长度,根据其所包含的信号的数量的不同而各不相同。表格1为一实施例中,对封包类型的定义,以及每一类型封包的数据长度。如表格1所示,封包类型512的第0比特为1时,表示对应的封包为由图1所示的中央处理器110向系统存储器150写数据时,由图2所示的信号抓取器200所抓取到的信号所生成的封包,该封包数据长度为304比特。封包类型512的第1比特为1时,表示对应的封包为由图1所示的系统存储器150向中央处理器110发送数据时,由图2所示的信号抓取器200所抓取到的信号所生成的封包,该封包数据长度为272比特。封包类型512的第2比特为1时,表示对应的封包为由图4所示的中央处理器410接收或发送SB类信号时,由信号抓取器200所抓取到的SB信号所生成的封包,该封包数据长度为100比特。封包类型512的第3比特为1时,表示对应的封包为由信号抓取器200所抓取到的特殊讯息组成的封包。特殊类型信息长度为4比特,会被直接保存到标头510的特殊信息514中,因而其数据长度为0比特。在另一实施例中,封包类型512的第3比特为1时,特殊类型信息也被放入数据字段520中,对应的封包数据长度为4比特。封包类型512的第4-11比特未定义,为保留类型。需要注意的是,前述定义的封包类型及其对应的数据长度仅为举例说明,本领域技术人员可以根据设计需要定义需要的封包类型及其对应的数据长度。
表格1
标头510的第16比特至27比特为时间戳513,其从信号抓取器200开始工作后不断循环计数,每个时钟周期增加1。当12比特计数器溢出时(即所有比特的值全变为0时),无论当前时钟周期是否存在需要抓取的信号,信号抓取器200都会生成一个时间戳513为0的封包。调试软件在解析从图2所示的存储设备212读取到的封包数据时,会先定义一个时间变量(初始值设为0),每当调试软件发现时间戳513为0的封包时,会将时间变量的值增加4096。调试软件在解析封包数据的过程中,会将该封包中的时间戳513与时间变量中的值相加,作为该封包的时间。举例来说,调试软件将初始时间变量设置为0,在处理到第一个时间戳513为0的封包前,每个封包的时间为封包中时间戳513;在处理到第一个时间戳513为0的封包时,调试软件将时间变量设置为4096(即0+4096),在这之后的处理过程中,每个封包的时间为封包中时间戳513与4096(即当前时间变量的值)的和;在处理到第二个时间戳513为0的封包时,调试软件将时间变量设置为8192(即4096+4096),在这之后的处理过程中,每个封包的时间为封包中时间戳513与8192(即当前时间变量的值)的和;以此类推。这样,只需要用12比特的计数器,就能够表示无限长的时间。
标头510的第28比特至31比特为特殊讯息514,用以放置需要频繁抓取的SB类信号。将需要频繁抓取的SB类信号直接存放在特殊讯息514中,生成的封包只包含标头510,所以可以减小需要存储的封包的尺寸。由于抓取需要频繁抓取的SB类信号会生成大量封包,通过减小这些封包的尺寸,可以大大节省图2所示的存储设备212的存储空间。
图6~7是显示根据本公开一实施例所述的在触发模式下信号存储的示意图。本公开主要支持两种内部信号存储模式:一为触发(trigger)模式,另一为串流(stream)模式。下面先描述触发模式下如何抓取信号。
触发模式下抓取的信号会存储在通过图2所示的配置接口206所设置的存储设备212的地址区间范围(如图6~7所示,可通过设置一基本地址和缓冲大小来指定一地址区间范围)内,可以抓取特定位置(比如特定内存地址)附近的信号(比如波形信息)。还可以通过图2所示的配置接口206,在存储设备212中的上述地址区间范围内设置一如图6~7所示的触发位置。信号抓取器200所抓取到的特定位置附近的信号,会被存储在通过图2所示的配置接口206所设置的触发位置上。在一实施例中,信号抓取器200支持从1/8到7/8等7个不同的触发位置。在另一实施例中,信号抓取器200支持从1/4到3/4等3个不同的触发位置。当信号抓取器200工作完成后,调试软件直接从存储设备212中读取抓取到的封包数据,再对读取到的封包数据进行分析、整理,就可以得到最终的调试信息。值得注意的是,需要在信号抓取器200抓取信号前,通过图2所示的配置接口206设置上述基本地址、上述缓冲大小及上述触发位置,并设置上述特定位置,其中特定位置可以是一个单一地址,比如0x1234;也可以是一个地址区间,比如0x1234-0x1238。
如图6所示,当图2所示的信号抓取器200开始抓取信号时,信号保存模块208会先把与所抓取到的信号所对应的封包依序存储到缓存器210,然后再把所抓取到的封包会从基本地址开始依序存储到存储设备212中(即把抓取到的封包依序转储到存储设备212中)。当信号保存模块208所要保存的封包中的信号正好匹配之前设置的特定位置时,触发模块202会向信号保存模块208发出一触发信号(即,触发发生,如图6的虚线处)。由于此时写入位置(在图6的触发发生位置)还没到达设置的触发位置,后续信号保存模块208依然会依次把与抓取到的信号对应的封包信号转储到存储设备212中,直到到达缓冲大小处,停止运作(即信号抓取器200工作完成)。在这种情况下,触发位置的设置并不起任何作用。所抓取的封包在存储设备212中按时间先后的存储顺序为①-②-③。
在另一种情况下,当信号保存模块208存储封包的过程中到达触发位置时,如果依然未收到来自触发模块202的触发信号,则信号保存模块208会重新从基本地址开始转储与抓取到的信号对应的封包,而先前存储的封包则被覆盖掉。如此循环覆盖基本地址和触发位置之间的封包,直到接收到触发信号。如图7所示,当信号保存模块208接收到来自触发模块202的触发信号(即,触发发生,如图7的虚线处),则信号保存模块208响应于该触发信号,改为从触发位置开始转储与抓取到的信号对应的封包,直到存储到缓冲大小处,停止运作(即信号抓取器200工作完成)。根据前述存储过程可知,所抓取的封包数据在存储设备212中按时间先后的存储顺序为②-①-③。
通过上述内容可知,在触发模式下,使用本发明所述的封包存储方法,可以把与特定位置的信号对应的封包存储在触发位置附近。这样,信号抓取器200就可以抓取到特定位置前、后一段区间内的信号了,从而可以使用调试软件通过分析特定位置前后的信号,判断特定位置前后是否存在问题、以及存在何种类型的问题。
另外。为了保证覆盖存储封包数据的时候不越界(即不出现只覆盖之前保存的封包数据的一部分的情况,例如,如果之前保存的封包被覆盖了二分之一、而保留下来了二分之一,那么被覆盖封包的标头就被覆盖掉了,所以调试软件将无法解析保留下来的这二分之一的封包数据),信号保存模块208存储的封包数据将保持1MB边界对齐,即在存储完当前封包数据后,如果当前封包数据没有使用完当前1MB的存储空间,且下一个封包的大小超过当前1MB剩余的空间,则信号保存模块208直接将当前1MB剩余的空间补0,而前述下一个封包则会被存储在下一个1MB的开头。
下面描述串流模式。
而在串流模式下,信号抓取器200的信号保存模块208将与抓取信号对应的封包从基本地址开始按顺序写入至存储设备212中。当信号保存模块208接收到来自触发模块202的触发信号时,停止运作(即信号抓取器200工作完成)。
综上所述,本发明提出的抓取处理器内部信号的系统包括主机接口(HIF310)、跨时钟域发送模块(CDC_TX 320a)和信号抓取器(200)。跨时钟域发送模块耦接主机接口,用于从主机接口接收事务数据。主机接口与跨时钟域发送模块之间具有第一抓取线(CL1)。信号抓取器耦接第一抓取线,且信号抓取器包含缓存器(210)。主机接口生成第一事务数据,当缓存器有空闲存储空间、且跨时钟域发送模块也有空闲存储空间时,主机接口发送第一事务数据给跨时钟域发送模块;信号抓取器从第一抓取线抓取第一事务数据,将第一事务数据打包为第一封包,并将第一封包保存在缓存器。当跨时钟域发送模块有空闲存储空间、而缓存器没有空闲存储空间时,信号抓取器向主机接口发送第一满信号(CAP_FULL为1),响应于第一满信号,主机接口暂停发送第一事务数据。
上述抓取处理器内部信号的系统还包含存储设备(212),存储设备耦接信号抓取器。当跨时钟域发送模块有空闲存储空间、而缓存器没有空闲存储空间时,信号抓取器将存储在缓存器中之前保存的封包转储到存储设备,然后信号抓取器向主机接口发送第一非满信号(CAP_FULL为0),响应于第一非满信号,主机接口发送第一事务数据,信号抓取器抓取第一事务数据,将第一事务数据打包为第一封包,并将第一封包保存在缓存器。
因此,本公开实施例提供一种抓取处理器内部信号的方法及系统,采用侵入式的抓取方式,通过对传输路径施加影响,从而达到无损抓取内部信号的目的。此外,本公开采用12位的时间戳计数器,既能有效减少封包的长度,也能保证内部信号波形的准确重建。再来,本公开支持触发存储模式,能够精确抓取触发位置前后的波形,其中触发位置更可由使用者自行配置。
权利要6求书中用以修饰元件的“第一”、“第二”、“第三”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本公开已以实施范例公开如上,然其并非用以限定本申请,本领域技术人员在不脱离本公开的精神和范围内,当可做些许更动与润饰,因此本申请的保护范围当视所附权利要求书界定范围为准。
Claims (20)
1.一种抓取处理器内部信号的系统,包括:
主机接口;
跨时钟域发送模块,耦接上述主机接口,用于从上述主机接口接收事务数据,上述主机接口与上述跨时钟域发送模块之间具有第一抓取线;以及
信号抓取器,耦接上述第一抓取线,上述信号抓取器包含缓存器;
其中,
上述主机接口生成第一事务数据;
当上述缓存器有空闲存储空间、且上述跨时钟域发送模块也有空闲存储空间时,上述主机接口发送上述第一事务数据给上述跨时钟域发送模块;上述信号抓取器从上述第一抓取线抓取上述第一事务数据,将上述第一事务数据打包为第一封包,并将上述第一封包保存在上述缓存器;以及
当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述主机接口发送第一满信号,响应于上述第一满信号,上述主机接口暂停发送上述第一事务数据。
2.如权利要求1所述的抓取处理器内部信号的系统,还包含:
存储设备,耦接上述信号抓取器;
其中,当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器将存储在上述缓存器中之前保存的封包转储到上述存储设备,然后上述信号抓取器向上述主机接口发送第一非满信号,响应于上述第一非满信号,上述主机接口发送上述第一事务数据,上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为上述第一封包,并将上述第一封包保存在上述缓存器。
3.如权利要求1所述的抓取处理器内部信号的系统,其中,当上述跨时钟域发送模块没有空闲存储空间、而上述缓存器有空闲存储空间时,上述跨时钟域发送模块向上述主机接口发送第二满信号,响应于上述第二满信号,上述主机接口暂停发送上述第一事务数据。
4.如权利要求3所述的抓取处理器内部信号的系统,其中,当上述跨时钟域发送模块变为有空闲存储空间时,上述跨时钟域发送模块向上述主机接口发送第二非满信号,响应于上述第二非满信号,上述主机接口发送上述第一事务数据,上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为上述第一封包,并将上述第一封包存储到上述缓存器。
5.如权利要求1所述的抓取处理器内部信号的系统,还包含:
跨时钟域接收模块,耦接上述主机接口,用于向上述主机接口发送事务数据,上述主机接口与上述跨时钟域接收模块之间具有第二抓取线,其中上述信号抓取器耦接上述第二抓取线;以及
其中,
上述跨时钟域接收模块生成第二事务数据;
当上述缓存器有空闲存储空间、且上述主机接口也有空闲存储空间时,上述跨时钟域接收模块发送上述第二事务数据给上述主机接口;上述信号抓取器从上述第二抓取线抓取上述第二事务数据,将上述第二事务数据打包为第二封包,并将上述第二封包保存在上述缓存器;以及
当上述主机接口有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述跨时钟域接收模块发送第三满信号,响应于上述第三满信号,上述跨时钟域接收模块暂停发送上述第二事务数据。
6.如权利要求5所述的抓取处理器内部信号的系统,还包含:
存储设备,耦接上述信号抓取器;
其中,当上述主机接口有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器将上述缓存器中、之前保存的封包转储到上述存储设备,然后上述信号抓取器向上述跨时钟域接收模块发送第三非满信号,响应于上述第三非满信号,上述跨时钟域接收模块发送上述第二事务数据,上述信号抓取器抓取上述第二事务数据,将上述第二事务数据打包为上述第二封包,并将上述第二封包保存在上述缓存器。
7.如权利要求1所述的抓取处理器内部信号的系统,还包含:
存储设备,耦接上述信号抓取器;
其中,上述信号抓取器还包含:触发模块;以及信号保存模块,耦接上述触发模块;
其中,
在上述存储设备中设置基本地址及触发位置;
上述信号保存模块从上述基本地址开始转储与从上述主机接口抓取到的事务数据所对应的封包;如果转储到上述触发位置时,上述信号保存模块还没接收到来自上述触发模块的触发信号,则上述信号保存模块从上述基本地址开始覆盖之前写入的封包。
8.如权利要求7所述的抓取处理器内部信号的系统,其中:
设置特定位置;
当上述触发模块判断上述第一封包匹配上述特定位置时,向上述信号保存模块发送上述触发信号;以及
响应于上述触发信号,上述信号保存模块从上述触发位置开始转储上述第一封包。
9.如权利要求1所述的抓取处理器内部信号的系统,还包含:
存储设备,耦接上述信号抓取器;
其中,上述信号抓取器还包含:触发模块;以及信号保存模块,耦接上述触发模块;
其中,
设置特定位置;
在上述存储设备中设置基本地址;
上述信号保存模块从上述基本地址开始转储与从上述主机接口抓取到的事务数据所对应的封包;当上述触发模块判断上述第一封包匹配上述特定位置时,向上述信号保存模块发送触发信号;响应于上述触发信号,上述信号保存模块停止转储封包。
10.如权利要求1所述的抓取处理器内部信号的系统,其中,上述主机接口、上述跨时钟域发送模块以及上述信号抓取器位于同一时钟域中。
11.一种抓取处理器内部信号的方法,包括:
主机接口生成第一事务数据;
当信号抓取器的缓存器有空闲存储空间、且跨时钟域发送模块也有空闲存储空间时,上述主机接口发送上述第一事务数据给上述跨时钟域发送模块;上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为第一封包,并将上述第一封包保存在上述缓存器;以及
当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述主机接口发送第一满信号,响应于上述第一满信号,上述主机接口暂停发送上述第一事务数据。
12.如权利要求11所述的抓取处理器内部信号的方法,还包含:
当上述跨时钟域发送模块有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器将存储在上述缓存器中之前保存的封包转储到存储设备,然后上述信号抓取器向上述主机接口发送第一非满信号,响应于上述第一非满信号,上述主机接口发送上述第一事务数据,上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为上述第一封包,并将上述第一封包保存在上述缓存器。
13.如权利要求11所述的抓取处理器内部信号的方法,还包含:
当上述跨时钟域发送模块没有空闲存储空间、而上述缓存器有空闲存储空间时,上述跨时钟域发送模块向上述主机接口发送第二满信号,响应于上述第二满信号,上述主机接口暂停发送上述第一事务数据。
14.如权利要求13所述的抓取处理器内部信号的方法,还包含:
当上述跨时钟域发送模块变为有空闲存储空间时,上述跨时钟域发送模块向上述主机接口发送第二非满信号,响应于上述第二非满信号,上述主机接口发送上述第一事务数据,上述信号抓取器抓取上述第一事务数据,将上述第一事务数据打包为上述第一封包,并将上述第一封包存储到上述缓存器。
15.如权利要求11所述的抓取处理器内部信号的方法,还包含:
跨时钟域接收模块生成第二事务数据;
当上述缓存器有空闲存储空间、且上述主机接口也有空闲存储空间时,上述跨时钟域接收模块发送上述第二事务数据给上述主机接口;上述信号抓取器抓取上述第二事务数据,将上述第二事务数据打包为第二封包,并将上述第二封包保存在上述缓存器;以及
当上述主机接口有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器向上述跨时钟域接收模块发送第三满信号,响应于上述第三满信号,上述跨时钟域接收模块暂停发送上述第二事务数据。
16.如权利要求15所述的抓取处理器内部信号的方法,还包含:
当上述主机接口有空闲存储空间、而上述缓存器没有空闲存储空间时,上述信号抓取器将上述缓存器中、之前保存的封包转储到存储设备,然后上述信号抓取器向上述跨时钟域接收模块发送第三非满信号,响应于上述第三非满信号,上述跨时钟域接收模块发送上述第二事务数据,上述信号抓取器抓取上述第二事务数据,将上述第二事务数据打包为上述第二封包,并将上述第二封包保存在上述缓存器。
17.如权利要求11所述的抓取处理器内部信号的方法,还包含:
在存储设备中设置基本地址及触发位置;
信号保存模块从上述基本地址开始转储与从上述主机接口抓取到的事务数据所对应的封包;如果转储到上述触发位置时,上述信号保存模块还没接收到来自触发模块的触发信号,则上述信号保存模块从上述基本地址开始覆盖之前写入的封包。
18.如权利要求17所述的抓取处理器内部信号的方法,还包含:
设置特定位置;
当上述触发模块判断上述第一封包匹配上述特定位置时,向上述信号保存模块发送上述触发信号;以及
响应于上述触发信号,上述信号保存模块从上述触发位置开始转储上述第一封包。
19.如权利要求11所述的抓取处理器内部信号的方法,还包含:
设置特定位置;
在存储设备中设置基本地址;
信号保存模块从上述基本地址开始转储与从上述主机接口抓取到的事务数据所对应的封包;以及
当上述触发模块判断上述第一封包匹配上述特定位置时,向上述信号保存模块发送触发信号;响应于上述触发信号,上述信号保存模块停止转储封包。
20.如权利要求11所述的抓取处理器内部信号的方法,其中,上述主机接口、上述跨时钟域发送模块以及上述信号抓取器位于同一时钟域中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269101.5A CN114003352B (zh) | 2021-10-29 | 抓取处理器内部信号的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269101.5A CN114003352B (zh) | 2021-10-29 | 抓取处理器内部信号的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003352A true CN114003352A (zh) | 2022-02-01 |
CN114003352B CN114003352B (zh) | 2024-07-05 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748920A (en) * | 1995-06-23 | 1998-05-05 | Cirrus Logic, Inc. | Transaction queue in a graphics controller chip |
US20050102572A1 (en) * | 2003-11-10 | 2005-05-12 | Infineon Technologies North America Corp. | Memory debugger for system-on-a-chip designs |
US7536669B1 (en) * | 2006-08-30 | 2009-05-19 | Xilinx, Inc. | Generic DMA IP core interface for FPGA platform design |
CN107577216A (zh) * | 2017-08-03 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种在fpga平台上片外抓取调试信号的方法 |
CN111290889A (zh) * | 2018-11-21 | 2020-06-16 | 展讯通信(上海)有限公司 | 基于fpga的面向通用处理器的测试方法及系统 |
CN112328523A (zh) * | 2020-10-28 | 2021-02-05 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及系统 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748920A (en) * | 1995-06-23 | 1998-05-05 | Cirrus Logic, Inc. | Transaction queue in a graphics controller chip |
US20050102572A1 (en) * | 2003-11-10 | 2005-05-12 | Infineon Technologies North America Corp. | Memory debugger for system-on-a-chip designs |
US7536669B1 (en) * | 2006-08-30 | 2009-05-19 | Xilinx, Inc. | Generic DMA IP core interface for FPGA platform design |
CN107577216A (zh) * | 2017-08-03 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种在fpga平台上片外抓取调试信号的方法 |
CN111290889A (zh) * | 2018-11-21 | 2020-06-16 | 展讯通信(上海)有限公司 | 基于fpga的面向通用处理器的测试方法及系统 |
CN112328523A (zh) * | 2020-10-28 | 2021-02-05 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
石伟;汪东升: "基于非易失存储器的事务存储系统综述", 计算机研究与发展, vol. 53, no. 2, 31 December 2016 (2016-12-31) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213143B (zh) | 一种1553b总线ip核及监视系统 | |
CN105117360B (zh) | 基于fpga的接口信号重映射方法 | |
US7710969B2 (en) | Rapid I/O traffic system | |
US7720670B2 (en) | Saving resources by deducing the total prediction events | |
US7590912B2 (en) | Using a chip as a simulation engine | |
US20070285288A1 (en) | High Speed Data Recording With Input Duty Cycle Distortion | |
US20060190668A1 (en) | Computer system architecture | |
US20110106991A1 (en) | Bus system and bus control method | |
JP2007066336A (ja) | 集積回路内の診断データ取り込み | |
US20060255985A1 (en) | Reissue an ID to a Data Log Even if the Same ID May Be Repeated | |
CN101529404B (zh) | 用于时间戳消息的方法 | |
TWI604303B (zh) | 輸入輸出擴展晶片以及其驗證方法 | |
US20080195793A1 (en) | Microcontroller with memory trace module | |
US20060255973A1 (en) | Multi-Port Trace Receiver | |
CN114003352A (zh) | 抓取处理器内部信号的系统及方法 | |
CN114003352B (zh) | 抓取处理器内部信号的系统及方法 | |
US20060282719A1 (en) | Unique Addressable Memory Data Path | |
US20060256877A1 (en) | Rapid I/O Compliant Message Mapper | |
US20060255978A1 (en) | Enabling Trace and Event Selection Procedures Independent of the Processor and Memory Variations | |
US7676697B2 (en) | Using a delay line to cancel clock insertion delays | |
US20060256878A1 (en) | Out of Order Message Completion Management | |
US20060268714A1 (en) | Rapid I/O Compliant Congestion Control | |
US20060255975A1 (en) | Distributed Width Trace Receiver | |
US20060273944A1 (en) | System With Trace Capability Accessed Through the Chip Being Traced | |
Li et al. | Functional verification of QSPI module based on UVM implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |