CN115221070A - 基于NVMe盘的片上***诊断方法 - Google Patents
基于NVMe盘的片上***诊断方法 Download PDFInfo
- Publication number
- CN115221070A CN115221070A CN202210923792.4A CN202210923792A CN115221070A CN 115221070 A CN115221070 A CN 115221070A CN 202210923792 A CN202210923792 A CN 202210923792A CN 115221070 A CN115221070 A CN 115221070A
- Authority
- CN
- China
- Prior art keywords
- nvme
- disk
- chip
- trace
- command
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于NVMe盘的片上***诊断方法,该方法包括:当接收到CoreSight Trace网络传输的片上***Trace数据时,将接收到的Trace数据写入DDR,同时构建NVMe写盘命令;将NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取写盘命令,所述写盘命令用于将DDR中的Trace数据搬移到NVMe盘;当NVMe盘提取并执行写盘命令之后,将命令执行状态反馈到片上***中。本发明的方法能够满足CoreSight Trace网络在应对CPU多core、高频等较复杂***和拥有多路Trace数据源的***问题诊断分析场景时,存在的较大数据带宽和较高传输数据速率的需求,并保证了片上数据追踪的完整性,节约片上内存资源,提高***分析和诊断问题的能力并且节约芯片调试成本。
Description
技术领域
本发明属于芯片调试领域,特别涉及一种基于NVMe盘的片上***诊断方法。
背景技术
在芯片调试环节,对片内数据和指令的跟踪对于片上***的诊断至关重要。但随着芯片***复杂度越来越高,在进行处理器调试过程中片外仪器难以测量片内数据流和指令流,容易产生无法分析的***问题。因此需要以硅片面积为代价来解决处理器运行状态的实时跟踪观测问题。越来越多的处理器厂商开始提供硬件片上Trace即跟踪功能。片上Trace***通过专用硬件设计,以非入侵方式实时记录程序执行路径和数据读写等信息,随后将有效信息压缩成Trace数据流,然后通过专用数据通道传输至调试主机,最后通过外部接收工具接收解压缩Trace数据流,恢复程序运行信息以进行***调试和性能分析。
目前,业界领先的多核片上Trace解决方案包括ARM的CoreSight。CoreSight是一个开放体系结构,SoC设计人员能够将其他IP内核的调试和跟踪功能添加到CoreSight基础结构中。CoreSight包括ARM处理器的各种跟踪宏单元、***和软件测量以及一整套IP块,以便对各种复杂的多核SoC进行调试和跟踪。CoreSight网络中通常包括Trace通路。Trace通路用于将CPU core即处理器核的内部信息输出到外部。通过CoreSight网络的Trace通路,可以实现对CPU core的数据追踪功能。
典型的CPU(4cores)CoreSight网络的Trace通路如图1所示。ETM(Embedded TraceMacrocell)负责追踪处理器的信息,将信息打包并通过ATB总线(AMBA Trace Bus)发送到Trace总线上。通过配置Trace总线上的CoreSight funnel和replicator组件,将ATB数据发送给CoreSight ETB(Embedded Trace Buffer)和TPIU组件(Trace Port Interface),最终输出至片外。CPU每个core在运行期间由各自ETM对其监控并以ATB格式输出对应追踪信息。CoreSight funnel组件通过配置将接收到的4路ATB数据输出为1路ATB数据后,送至CoreSight replicator组件。CoreSight replicator组件将接收到的1路ATB数据复制为2路,分别送至CoreSight TPIU和CoreSight ETB组件。CoreSight TPIU组件将接收到的ATB数据通过内部处理后以串行方式,从芯片管脚发送到片外。其中Trace_out_clk为输出时钟,供外部工具采样使用;Trace_ctrl和Trace_data为待采样数据,由外部工具使用Trace_out_clk对其进行双沿采样,从而实现数据接收。而CoreSight ETB组件将接收到的ATB数据缓存至其内部RAM中,由外部调试工具进行数据读取。传统的CoreSight网络的Trace通路通过对其内部CPU运行进行数据追踪,输出至片外进行***分析,能够解决较为复杂的***问题。
然而随着芯片制造工艺水平的提高,CPU以更高的工作频率运行。为提高芯片性能,越来越多的***还需要CPU多core并行协同工作。芯片性能的提升依赖于高频多核协同运行的***设计,因此导致***复杂度的增加。此外,除CPU外的许多IP厂商为增强自身调试功能,也支持Trace输出。这就会造成在设计使用CoreSight网络的Trace通路时需要应对更为复杂的***和更多的Trace数据源,因为CPU多core均为高频运行,并且除CPU外,其他IP也会产生Trace数据。传统CoreSight网络的Trace通路在面对此类场景时通常存在以下多方面的缺陷和不足:
1)数据带宽不足
对于CPU多个core同时进行Trace的场景,由于每个core在运行期间的每个时钟周期都有可能产生Trace数据,而Trace通路最后要将所有Trace数据源合并汇总为一路数据后再输出至片外,因此可能会出现带宽不足导致部分数据链路被反压。如果某个core对应的ETM受到反压,则无法正常及时地抓取监控该core的运行信息,会导致数据追踪过程中存在盲区,影响***诊断分析。
对于数据量较大的Trace场景,如果使用传统CoreSight架构只能通过TPIU组件将Trace数据通过PAD输出至片外,然后由片外接收工具对数据进行采样、存储和分析。但是由于PAD时钟频率限制和采用时钟双沿采样方式的外部接收工具采样频率限制,片上Trace带宽并不能设计过大。传统CoreSight网络中最大Trace带宽为19.2Gbps。
根据ARM提供的标准,如果CPU单core工作频率为1GHz,则Trace带宽需满足4Gbps。如果CPU 4cores工作频率为1GHz,则trace带宽需满足21Gbps。由此可见,按照上述传统CoreSight架构通过TPIU输出Trace数据的方法不能满足4cores工作频率为1GHz的Trace带宽需求。
2)片上数据存储空间不足
CoreSight还支持将Trace数据暂时存放在片上ETB RAM中,由调试工具进行读取。根据ARM提供了推荐标准,对于多个CPU core,建议ETB RAM进行相应增大。例如,8KB ETB用于2个CPU core或16KB用于4个CPU core。但是由于ETB实现采用环形RAM,且只能在Trace停止后才能由外部调试工具进行读取。因此如果Trace启动时间较长,会存在RAM在写满后新数据覆盖旧数据的现象,从而导致Trace数据丢失。尤其对于较为复杂的***分析,存在需要进行持续追踪的场景,更容易由于***运行时间过长,引起产生的数据量急剧增加。单次Trace数据量可能达到GB数量级,导致Trace数据丢失。
此外,虽然ETB提供的RAM可以用于存放产生的Trace数据,可用空间由实际芯片设计的memory大小决定。但是面对GB数量级的海量Trace数据,依靠通过增大芯片内部memory大小来满足Trace数据存储的方法是不可取的,带来的芯片面积和制造成本的急剧增加是不可接受的。
3)数据传输速率偏低
传统CoreSight网络的Trace通路采用通过外部接收工具进行数据抓取Trace数据再写入硬盘的方法,不仅会受到TPIU传输速率限制,还与写入硬盘的速率与硬盘类型有关,如果使用SATA硬盘(gen3),最大速率为6Gbps。如果使用SAS硬盘(gen3),最大速率为12Gbps。
以上述设计中Trace带宽达到峰值19.2Gbps为例,在进行多core复杂***分析时,可能由于整个芯片内部Trace数据产生速率较快,由于写入硬盘的速率相对较慢,导致外部接收工具在接收抓取芯片Trace数据后不能及时写入硬盘空间,造成传输Trace数据丢失。
4)外部接收工具使用局限性
在芯片产品化后,通常为节约封装成本和考虑***安全,在封装时不会保留调试用途的管脚。因此采用传统CoreSight网络的Trace通路的方法在芯片产品化后需要进行***问题诊断分析时,由于芯片内部Trace数据无法通过TPIU管脚进行对外输出,造成无法通过按照芯片产品化前的方法对片上Trace数据进行接收,增加了***问题诊断分析难度。
5)外部接收工具成本较高
在芯片调试及测试阶段,通常需要配置多套调试工具,保证芯片调试及测试的并行开展,以加快项目交付进度。因此,采用支持CoreSight Trace数据接收的外接调试工具作为芯片的调试及测试工具,会显著地增加芯片调试及测试的投入成本。
发明内容
本发明的目的在于提供一种基于NVMe盘的片上***诊断方法,以解决针对传统CoreSight Trace网络将CPU内部信息输出到片外的***诊断方法存在的局限性,以及通过外部接收工具对Trace数据进行接收存储存在的缺陷。
所述基于NVMe盘的片上***诊断方法包括:
当接收到CoreSight Trace网络传输的片上***Trace数据时,将接收到的Trace数据写入DDR,同时构建NVMe写盘命令;
将所述NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取所述写盘命令,所述写盘命令用于将所述DDR中的片上***Trace数据搬移到所述NVMe盘;
当所述NVMe盘提取并执行所述写盘命令之后,将命令执行状态反馈到片上***中。
优选地,所述将接收到的Trace数据写入DDR,进一步包括:
通过NVMe Trace ctrl单元接收CoreSight replicator组件传输的Trace数据,然后所述NVMe Trace ctrl单元将接收到的Trace数据控制写入DDR对应空间进行缓存。
优选地,所述CoreSight replicator组件传输的Trace数据是由片上CPU执行程序并通过配置ETM生成的。
优选地,所述NVMe Trace ctrl单元与NVMe dispatch单元相连接,所述NVMedispatch单元包括提交队列SQ和完成队列CQ,所述构建NVMe写盘命令,进一步包括:
利用所述NVMe Trace ctrl单元构造所述NVMe写盘命令,将所述NVMe写盘命令投递到所述NVMe dispatch单元的提交队列SQ,并记录已下发的命令ID。
优选地,所述NVMe dispatch单元和所述DDR分别通过AXI总线与PCIe控制单元相连接,并且所述PCIe控制单元通过PCIe链路与所述NVMe盘相连接。
优选地,所述将NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取所述写盘命令,进一步包括:
通过所述NVMe dispatch单元下发命令帧内容至所述PCIe控制单元,并通过PCIe链路和NVMe盘侧控制器进行通信,以通知所述NVMe盘侧控制器从SQ中提取相关命令。
优选地,所述NVMe盘提取并执行所述写盘命令,进一步包括:
所述NVMe盘根据所述写盘命令,通过PCIe控制单元读取所述DDR中缓存的Trace数据,然后写入NVMe盘的对应空间。
优选地,所述将命令执行状态反馈到片上***中,进一步包括:
所述NVMe盘将命令执行的完成状态写入所述NVMe dispatch单元的完成队列CQ,然后通过发送中断信息,通知芯片检查命令的完成状态;
通过所述NVMe dispatch单元向所述NVMe Trace ctrl单元返回命令执行结果,由所述NVMe Trace ctrl单元进行相应处理操作。
优选地,所述处理操作为命令ID回收、事件统计、错误记录或信息上报。
优选地,所述NVMe盘是NVMe gen4硬盘。
相比于现有技术,本发明具有以下优点:
本发明的方法通过对传统CoreSight Trace网络添加NVMe Trace ctrl、NVMedispatch、DDR和PCIe控制单元,以及通过硬件自动化控制Trace数据流构造、派发NVMe命令和处理命令执行返回结果,实现了将片上Trace数据写入NVMe硬盘以进行***问题诊断分析的功能,提供了一种基于NVMe盘的片上***诊断方法的解决方案。有效解决了传统CoreSight Trace网络***诊断方法存在Trace数据带宽不足、片上数据存储空间不足、数据传输速率偏低、外部接收工具使用局限性和外部接收工具成本较高的问题,达到了片上Trace数据高速接收存储的目的,显著提高了***分析和诊断问题的能力并且节约了芯片调试成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构来实现和获取。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1示出了根据现有技术的典型CoreSight网络的Trace通路示意图。
图2示出了根据本发明的基于NVMe盘的片上***诊断方法实现架构示意图。
图3示出了根据本发明的基于NVMe盘的片上***诊断方法的执行流程示意图。
图4示出了根据本发明的基于NVMe盘的片上***诊断过程的控制流图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获取的所有其他实施例,都属于本发明保护的范围。
为解决背景技术中提出的问题,本发明提出了一种基于NVMe盘的片上***诊断方法。在传统CoreSight网络基础架构上,添加NVMe Trace ctrl和NVMe dispatch单元,控制片上追踪数据写入DDR缓存并且自动投递NVMe搬移数据命令,最后通过使用NVMe PCIe链路实现海量片上追踪数据高速直接存入NVMe盘的目的,以增强***分析能力。
NVMe(Non-Volatile Memory express)是一种高性能的、非易失存储的、内存访问优化的、高度可扩展的存储协议,用于连接主机和存储子***。NVMe是专门为NAND、闪存等非易失性存储设计的,能够满足高速存储介质的需求。NVMe的优势在于它能够利用并行数据路径,从而在加速方面提供更好的性能。它能够使现有的应用程序以及新的应用程序可以更有效地工作。NVMe相比于AHCI(Advanced Host Controller Interface,一种高级主机控制器接口)/SATA的读写性能提升近6倍,相比AHCI/PCIe SSD的读写性能提升2~3倍。此外,NVMe的优势还包括低延时、低功耗以及兼容性高。
图2示出了根据本发明的基于NVMe盘的片上***诊断方法实现架构示意图。本发明的CoreSight网络架构由发明单元和标准IP单元组成,其中发明单元包括NVMe Tracectrl单元(NVMe Trace数据控制单元)和NVMe dispatch单元(NVMe命令派发单元),而标准IP单元包括DDR(Double Data Rate,双倍速率同步动态随机存储器)和PCIe控制单元。所述NVMe Trace ctrl单元连接到CoreSight replicator组件的输出端。NVMe Trace ctrl单元分别通过AXI总线进一步与NVMe dispatch单元和DDR相连接。NVMe dispatch单元进一步包括提交队列SQ(Submission Queue)和完成队列CQ(Completion Queue),分别用于缓存待分发的写盘命令和已完成的写盘命令。而NVMe dispatch单元和DDR分别通过AXI总线进一步与PCIe控制单元相连接。PCIe控制单元的输出端通过PCIe链路连接到NVMe盘。在优选的实施例中,NVMe盘可以采用NVMe gen4硬盘。
与使用CoreSight ETB组件的传统架构不同,本发明通过NVMe Trace ctrl单元接收CoreSight网络中标准ATB格式Trace数据,在进行处理后使用AXI总线将该Trace数据写入DDR进行缓存,然后再向NVMe dispatch单元投递数据搬移命令,最后通过PCIe链路完成将片上Trace数据搬移至NVMe硬盘,从而实现了将较复杂***网络的片上海量Trace数据直接高速搬移至NVMe盘的设计架构,而不需要使用外部接收工具。
通过对传统CoreSight Trace网络添加NVMe Trace ctrl、NVMe dispatch、DDR和PCIe控制单元,以及下文所述的通过硬件自动化控制Trace数据流构造、派发NVMe命令和处理命令执行返回结果,实现了将片上Trace数据写入NVMe硬盘以进行***问题诊断分析的解决方案。本发明的方法能够实现接收存储片上Trace数据大小无限制、高速传输过程对源端数据产生无反压和片上数据追踪无盲区的目的,提高了***分析和诊断问题的能力并节约芯片调试成本,因而有效克服了传统CoreSight Trace网络***诊断方法存在的数据带宽、片上数据存储空间、数据传输速率、外部接收工具的各种缺陷和不足。
图3示出了根据本发明的基于NVMe盘的片上***诊断方法的总体流程图。以图2的片上***网络架构为基础,本发明的片上***具体诊断流程如下所述:
步骤101:当接收到CoreSight Trace网络传输的片上***Trace数据时,将接收到的Trace数据写入DDR,同时构建NVMe写盘命令。
结合图4从事件角度来描述的基于NVMe盘的片上***诊断方法的控制流图,在事件T1中,CPU执行程序,通过配置ETM生成对应Trace数据,运用CoreSight Trace网络将数据传输至NVMe Trace ctrl单元。接下来,在事件T2中,所述NVMe Trace ctrl单元将接收到的Trace数据控制写入DDR对应空间进行缓存。同时,在事件T3中,NVMe Trace ctrl单元构造NVMe写盘命令,将写盘命令投递到所述NVMe dispatch单元的SQ,并记录已下发的命令ID。该过程可以持续投递多个命令,以发挥NVMe多队列并行处理能力,提升链路传输性能。
步骤102:将所述NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取所述写盘命令,所述写盘命令用于将所述DDR中的片上***Trace数据搬移到所述NVMe盘。
参见图4,在事件T4中,所述NVMe dispatch单元进行SQ队列管理,下发命令帧内容至PCIe控制单元。优选地,PCIe控制单元可以选用PCIe gen4。在事件T5中,所述NVMedispatch单元通过PCIe链路和NVMe盘侧控制器(Controller)进行通信,包含下发SQ TailDoorbell(以通知NVMe盘侧Controller提取命令)和执行命令期间与芯片进行数据传递。此外还包含下发更新NVMe盘侧Controller的CQ Head Doorbell,以通知NVMe盘侧处理完成Completion信息。在事件T6中,NVMe盘侧Controller收到相关消息后,通过PCIe链路从NVMedispatch单元的SQ中提取命令并执行,执行命令期间还会与芯片进行数据传递。在事件T7中,NVMe盘侧通过PCIe控制单元读取DDR缓存的Trace数据,然后写入NVMe硬盘的对应空间。
步骤103:当所述NVMe盘提取并执行所述写盘命令之后,将命令执行状态反馈到片上***中。
参见图4,当NVMe盘完成命令和数据的接收之后,在事件T8中,NVMe盘侧将命令执行的完成状态写入NVMe dispatch单元的CQ,然后通过发送中断信息,通知芯片检查命令的完成状态。进一步地,NVMe dispatch单元向所述NVMe Trace ctrl单元返回命令执行结果,由NVMe Trace ctrl单元进行相应处理,包含命令ID回收、事件统计、错误记录和信息上报。
本领域技术人员可以理解,上述实施例中描述的方法步骤和装置的组件仅为举例。本领域技术人员可以根据需要,对上述基于NVMe盘的片上***诊断方法流程的多个步骤进行合并、增删或顺序调整,或者对CoreSight Trace网络架构进行容易想到的调整。而不应将本发明的构思限制于上述示例的具体结构和流程。
可以看出,本发明提出的基于NVMe盘的片上***诊断方法,可以解决上述传统CoreSight Trace网络在应对多核、高频等较复杂***和拥有多路Trace数据源的***问题诊断分析场景所存在的缺陷,具体如下:
1)在数据带宽方面,采用本发明的方法,由于不使用外部接收工具而是直接将Trace数据写入NVMe硬盘。因此不再受外部接收工具接收能力限制,片内trace数据频率选择为1GHz,数据位宽为32bit,Trace带宽可以达到32Gbps。输出接口PCIe(gen4)采用双通道的物理速率可以达到32Gbps。由此可满足上述场景,即CPU 4cores工作频率为1GHz,则trace带宽需满足21Gbps,解决了由于Trace通路带宽不足而存在高概率反压CPU ETM输出的问题,达到CPU监控追踪无盲区的效果。
2)在片上数据存储空间方面,采用本发明的方法,由于不再使用ETB组件,而采用通过DDR缓存Trace数据后再存入外部NVMe硬盘,因此不再需要专用的片上内存对Trace数据进行缓存,从而节省了片上内存资源。外部NVMe硬盘大小一般可容纳几百GB甚至TB级别,因此对于处理海量Trace数据的场景,本发明的方法也能够进行正常接收存储。采用本发明的方法不仅能够支持海量Trace数据接收存储,还节约了片上存储空间资源,降低了芯片设计及制造成本。
3)在数据传输速率方面,在应对芯片Trace持续输出时,本发明的方法采用NVMegen4硬盘,其传输速率可以达到32Gbps,满足上述CPU 4cores工作频率为1GHz的Trace数据最大传输速率21Gbps。可以将片上Trace数据及时写入对应硬盘空间,从而解决了传统CoreSight Trace网络数据传输速率偏低的问题。
4)在外部接收工具使用范围方面,采用本发明的方法,将Trace数据通过原有的片上高速数据通道接口输出至片外的外部NVMe硬盘,而不再使用传统的调试管脚,因此不再受芯片产品化后封装时不保留调试用途管脚的影响,解决了传统CoreSight Trace网络需要依赖调试用途管脚和外部接收工具而带来的使用局限性。
5)在外部接收工具成本方面,采用本发明的方法,由于不再依赖支持CoreSightTrace数据接收的外接调试工具,而只需要采购成本较低的普通调试工具,因此可以大幅节省芯片调试及测试工具的投入成本。
由此可见,采用本发明的方法可以有效解决传统CoreSight Trace网络在应对CPU多core、高频等较复杂***和拥有多路Trace数据源的***问题诊断分析场景时,存在的较大数据带宽和较高传输数据速率的需求。在应对海量Trace数据场景时,依靠外接NVMe硬盘的大容量存储空间,达到了数据能够及时接收和存储的目的,保证了片上数据追踪的完整性。由于本发明的方法不再使用CoreSight ETB组件,节约了片上内存资源,降低了设计制造成本。由于不再依赖外部接收工具,因此芯片传统的Trace输出管脚可以不用保留,节约了管脚资源。由于无需采购成本较高的支持CoreSight Trace数据接收的外接调试工具,降低了芯片调试及测试工具成本。采用本发明的方法达到了接收存储片上Trace数据大小无限制、高速传输过程对源端数据产生无反压和片上数据追踪无盲区的目的,显著提高了***分析和诊断问题的能力并且节约了芯片调试成本。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于NVMe盘的片上***诊断方法,其特征在于,包括:
当接收到CoreSight Trace网络传输的片上***Trace数据时,将接收到的Trace数据写入DDR,同时构建NVMe写盘命令;
将所述NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取所述写盘命令,所述写盘命令用于将所述DDR中的片上***Trace数据搬移到所述NVMe盘;
当所述NVMe盘提取并执行所述写盘命令之后,将命令执行状态反馈到片上***中。
2.根据权利要求1所述的基于NVMe盘的片上***诊断方法,其特征在于,所述将接收到的Trace数据写入DDR,进一步包括:
通过NVMe Trace ctrl单元接收CoreSight replicator组件传输的Trace数据,然后所述NVMe Trace ctrl单元将接收到的Trace数据控制写入DDR对应空间进行缓存。
3.根据权利要求2所述的基于NVMe盘的片上***诊断方法,其特征在于,所述CoreSight replicator组件传输的Trace数据是由片上CPU执行程序并通过配置ETM生成的。
4.根据权利要求3所述的基于NVMe盘的片上***诊断方法,其特征在于,所述NVMeTrace ctrl单元与NVMe dispatch单元相连接,所述NVMe dispatch单元包括提交队列SQ和完成队列CQ,所述构建NVMe写盘命令,进一步包括:
利用所述NVMe Trace ctrl单元构造所述NVMe写盘命令,将所述NVMe写盘命令投递到所述NVMe dispatch单元的提交队列SQ,并记录已下发的命令ID。
5.根据权利要求4所述的基于NVMe盘的片上***诊断方法,其特征在于,所述NVMedispatch单元和DDR分别通过AXI总线与PCIe控制单元相连接,并且所述PCIe控制单元通过PCIe链路与所述NVMe盘相连接。
6.根据权利要求5所述的基于NVMe盘的片上***诊断方法,其特征在于,所述将NVMe写盘命令下发到PCIe控制单元,通知NVMe盘提取所述写盘命令,进一步包括:
通过所述NVMe dispatch单元下发命令帧内容至所述PCIe控制单元,并通过PCIe链路和NVMe盘侧控制器进行通信,以通知所述NVMe盘侧控制器从SQ中提取相关命令。
7.根据权利要求1所述的基于NVMe盘的片上***诊断方法,其特征在于,所述NVMe盘提取并执行所述写盘命令,进一步包括:
所述NVMe盘根据所述写盘命令,通过PCIe控制单元读取所述DDR中缓存的Trace数据,然后写入NVMe盘的对应空间。
8.根据权利要求5所述的基于NVMe盘的片上***诊断方法,其特征在于,所述将命令执行状态反馈到片上***中,进一步包括:
所述NVMe盘将命令执行的完成状态写入所述NVMe dispatch单元的完成队列CQ,然后通过发送中断信息,通知芯片检查命令的完成状态;
通过所述NVMe dispatch单元向所述NVMe Trace ctrl单元返回命令执行结果,由所述NVMe Trace ctrl单元进行相应处理操作。
9.根据权利要求8所述的基于NVMe盘的片上***诊断方法,其特征在于,所述处理操作为命令ID回收、事件统计、错误记录或信息上报。
10.根据权利要求1所述的基于NVMe盘的片上***诊断方法,其特征在于,所述NVMe盘是NVMe gen4硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923792.4A CN115221070B (zh) | 2022-08-02 | 2022-08-02 | 基于NVMe盘的片上***诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923792.4A CN115221070B (zh) | 2022-08-02 | 2022-08-02 | 基于NVMe盘的片上***诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115221070A true CN115221070A (zh) | 2022-10-21 |
CN115221070B CN115221070B (zh) | 2023-06-20 |
Family
ID=83616232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210923792.4A Active CN115221070B (zh) | 2022-08-02 | 2022-08-02 | 基于NVMe盘的片上***诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115221070B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230216508A1 (en) * | 2022-01-05 | 2023-07-06 | Xilinx, Inc. | FAST LINE RATE SWITCHING IN PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) ANALYZERS |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075310A1 (en) * | 2004-09-21 | 2006-04-06 | Fujitsu Limited | Microcomputer and trace control method capable of tracing desired task |
US20070220361A1 (en) * | 2006-02-03 | 2007-09-20 | International Business Machines Corporation | Method and apparatus for guaranteeing memory bandwidth for trace data |
US20100332909A1 (en) * | 2009-06-30 | 2010-12-30 | Texas Instruments Incorporated | Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems |
CN102495359A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种fpga调试***和方法 |
US20120266029A1 (en) * | 2011-04-18 | 2012-10-18 | Infineon Technologies Ag | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information |
CN103246584A (zh) * | 2012-02-14 | 2013-08-14 | 苏州澜起微电子科技有限公司 | 片上***芯片结构及保存调试信息的方法 |
US20160077905A1 (en) * | 2014-09-12 | 2016-03-17 | Intel Corporation | Low Power Debug Architecture For System-On-Chips (SoCs) And Systems |
CN106951587A (zh) * | 2017-02-15 | 2017-07-14 | 芯启源(南京)半导体科技有限公司 | Fpga调试***及方法 |
CN113760748A (zh) * | 2021-07-30 | 2021-12-07 | 浪潮电子信息产业股份有限公司 | 一种fpga原型验证装置及方法 |
CN114416452A (zh) * | 2022-01-20 | 2022-04-29 | 无锡众星微***技术有限公司 | 片上***诊断方法和装置 |
-
2022
- 2022-08-02 CN CN202210923792.4A patent/CN115221070B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075310A1 (en) * | 2004-09-21 | 2006-04-06 | Fujitsu Limited | Microcomputer and trace control method capable of tracing desired task |
US20070220361A1 (en) * | 2006-02-03 | 2007-09-20 | International Business Machines Corporation | Method and apparatus for guaranteeing memory bandwidth for trace data |
US20100332909A1 (en) * | 2009-06-30 | 2010-12-30 | Texas Instruments Incorporated | Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems |
US20120266029A1 (en) * | 2011-04-18 | 2012-10-18 | Infineon Technologies Ag | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information |
CN102495359A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种fpga调试***和方法 |
CN103246584A (zh) * | 2012-02-14 | 2013-08-14 | 苏州澜起微电子科技有限公司 | 片上***芯片结构及保存调试信息的方法 |
US20160077905A1 (en) * | 2014-09-12 | 2016-03-17 | Intel Corporation | Low Power Debug Architecture For System-On-Chips (SoCs) And Systems |
CN106951587A (zh) * | 2017-02-15 | 2017-07-14 | 芯启源(南京)半导体科技有限公司 | Fpga调试***及方法 |
CN113760748A (zh) * | 2021-07-30 | 2021-12-07 | 浪潮电子信息产业股份有限公司 | 一种fpga原型验证装置及方法 |
CN114416452A (zh) * | 2022-01-20 | 2022-04-29 | 无锡众星微***技术有限公司 | 片上***诊断方法和装置 |
Non-Patent Citations (1)
Title |
---|
唐杉;徐强;丁炜;: "基于NoC的SoC中实时跟踪数据的传输", vol. 34, no. 15, pages 16 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230216508A1 (en) * | 2022-01-05 | 2023-07-06 | Xilinx, Inc. | FAST LINE RATE SWITCHING IN PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) ANALYZERS |
US11705910B1 (en) * | 2022-01-05 | 2023-07-18 | Xilinx, Inc. | Fast line rate switching in peripheral component interconnect express (PCIe) analyzers |
Also Published As
Publication number | Publication date |
---|---|
CN115221070B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918303B (zh) | 一种芯片、芯片调试方法及装置、设备、介质 | |
CN108121672B (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
US7058855B2 (en) | Emulation interface system | |
US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
CN108228513B (zh) | 一种基于fpga架构的智能串口通讯装置 | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
CN106951587A (zh) | Fpga调试***及方法 | |
CN110109626A (zh) | 一种基于FPGA的NVMe SSD命令处理方法 | |
CN111258504B (zh) | 一种基于sata接口固态硬盘的存储控制*** | |
CN105335548B (zh) | 一种用于ice的mcu仿真方法 | |
CN103002046B (zh) | 多***数据拷贝的rdma装置 | |
CN115221070B (zh) | 基于NVMe盘的片上***诊断方法 | |
CN108427629A (zh) | 一种数据压缩的SoC芯片信息追踪装置和性能优化方法 | |
CN107885517A (zh) | 嵌入式***处理器程序加载电路 | |
US20190271740A1 (en) | Non-intrusive on-chip debugger with remote protocol support | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
CN115480976A (zh) | 一种软硬件协同片上***诊断方法 | |
US7213169B2 (en) | Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory | |
CN109582232A (zh) | 一种基于FPGA的顺序读写多片Flash***及方法 | |
US7302616B2 (en) | Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory | |
US9710349B2 (en) | Storing first computer trace information in memory of second computer | |
US20070265822A1 (en) | Data processing system and method | |
CN112162879A (zh) | 一种实时多核dsp软件的日志*** | |
CN115454881B (zh) | Risc-v架构的调试***及调试方法 | |
US20040199722A1 (en) | Method and apparatus for performing bus tracing in a data processing system having a distributed memory |
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 | ||
GR01 | Patent grant |