一种基于TMS320C6678分布式系统的事件跟踪同步方法技术方案

技术编号:32532658 阅读:5 留言:0更新日期:2022-03-05 11:27
本申请涉及TMS320C6678芯片领域,为一种基于TMS320C6678分布式系统的事件跟踪同步方法,通过在上电初始阶段启动核0计数器,完成核0的系统时间同步,以使得此时系统中的每片DSP的计数时间均是同步的,而后再通过将其他核阻塞在同一位置的方法实现对其它核的同步,再通过启动其它核计数,从而准确、稳定地实现了所有核的同步,适应性强、系统占用小、使用方便。使用方便。使用方便。

【技术实现步骤摘要】
一种基于TMS320C6678分布式系统的事件跟踪同步方法


[0001]本申请属于TMS320C6678芯片领域,特别涉及一种基于TMS320C6678分布式系统的事件跟踪同步方法。

技术介绍

[0002]C6678是一款高性能多核DSP嵌入式芯片,其广泛应用于对计算要求比较高的信号与信息处理领域。TI提供多种C6678加载方式,可通过JTAG(调试用测试接口)、Ethernet(以太网,简称ETH)、PCIe(PCI Express总线)等接口来加载软件。C6678的Bootload分为两级,第一级为Rom Bootloader(RBL),是处理器上电复位后首先运行的一段代码,用来完成处理器上电后的系统初始化配置何种方式运行二级Bootloader。RBL的代码在处理器出厂时已经固化在处理器用户不可更改。第二级为Intermediate Bootloader(IBL)。根据用户需求,完成系统初始化配置,如工作时钟PLL,DDR存储器,计数计时器等初始化,以及选择DSP的加载方式和应用程序的调转执行。
[0003]事件跟踪是指在系统运行过程中,记录系统中的某个事件的起始和结束时间以及处理该事件所用的时间等相关信息。比如处理器之间的数据传输,用户想知道输出处理器在什么时候启动输出、接收处理器在什么时候启动接收,数据的传输耗时多少,都可以通过事件跟踪记录下来。事件跟踪在分布式系统中是一种极其重要的调试手段。
[0004]在C6678的分布式实时系统中,每个结点处理器都拥有自己独立的硬件时钟,C6678内部包含8个核,每个核中有两个计数寄存器TSCH和TSCL,与CPU同频,共同表示一个64bit数,CPU运行一个cycle,寄存器加1,来记录DSP运行或事件发生的时间。然而采用ETH、PCIe、JTAG等加载方式的分布式系统普遍存在各DSP加载时间先后不一致的现象,这会导致DSP的时间无法同步,因此系统中的事件跟踪也无法同步。例如:两片DSP在通信时,由于加载时间不一致,导致系统记录时间不一致,从而无法通过事件跟踪计算本次通信所需的时间。
[0005]因此,如何保证系统记录时间的一致,对事件通信时间进行准确跟踪计算是一个需要解决的问题。

技术实现思路

[0006]本申请的目的是提供了一种基于TMS320C6678分布式系统的事件跟踪同步方法,以解决现有技术中C6678芯片中系统记录时间不一致,无法通过事件根据计算通信时间的问题
[0007]本申请的技术方案是:一种基于TMS320C6678分布式系统的事件跟踪同步方法,包括,系统上电初始化;在上电初始节点启动核0计数器,完成核0的系统时间同步;启动核0之外的其它所有核,将先运行到的核阻塞在同一位置,直到确定所有需要同步的核均运行到该位置后,所有核继续向后运行;启动其它核计数;记录系统中需要跟踪的事件信息。
[0008]优选地,多核同步的具体方法为,在芯片外存DDR中定义一个数组counter_
instance,数组中的值由上电初始化随机给出,能够供所有核访问;每个核将counter_instance中初始值拷贝到自身的数组on_entry中,on_entry数组存储在私有的内存中,只有本核才能访问到;同时给每个核分别分配counter_instance中的一个数组元素;程序进入循环处理,每次循环对分配给本核的数组元素值加1,并对比该数组中其它元素值是否与本核中on_entry的对应数组元素值一致,如果一致,则进行下一次循环,如果不一致,则执行下一步骤;退出循环。
[0009]优选地,在多核同步之后,记录下核0的计数计时器TSCH和TSCL的值,组合成一个64位数时间计数t0,将核0以外其它核的寄存器TSCH和TSCL清零,启动计数计时器;通过t0校准DSP内部各核之间的系统时间差。
[0010]优选地,在进行事件跟踪之后,获取系统中所有跟踪事件的信息,将事件的起始和结束时间分别加上固定的时间差t0,作为校准后的事件跟踪事件;在同一时间轴上,将所有跟踪事件通过图形化的方式展示出来。
[0011]优选地,所述核0的系统时间同步方法为,电启动BootLoader,在运行完成第一级程序之后,对第二级的IBL进行初始化,在IBL阶段对核计数寄存器清零,启动核0的系统计时器。
[0012]优选地,所需要跟踪的事件信息包括事件起始和结束的时间、所在系统中的片号和核号、在程序中运行的位置。
[0013]本申请的一种基于TMS320C6678分布式系统的事件跟踪同步方法,通过在上电初始阶段启动核0计数器,完成核0的系统时间同步,以使得此时系统中的每片DSP的计数时间均是同步的,而后再通过将其他核阻塞在同一位置的方法实现对其它核的同步,再通过启动其它核计数,从而准确、稳定地实现了所有核的同步,适应性强、系统占用小、使用方便。
附图说明
[0014]为了更清楚地说明本申请提供的技术方案,下面将对附图作简单地介绍。显而易见地,下面描述的附图仅仅是本申请的一些实施例。
[0015]图1为本申请整体流程结构示意图;
[0016]图2为本申请核0之外的其它核的同步流程示意图;
[0017]图3为本申请事件跟踪同步展示图。
具体实施方式
[0018]为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。
[0019]一种基于TMS320C6678分布式系统的事件跟踪同步方法,如图1所示,包括以下步骤:
[0020]步骤S100,系统上电初始化;
[0021]基于C6678的分布式系统上电,芯片启动RBL,完成系统初始化配置,该阶段为出厂固化程序,无法进行修改;引导DSP进入二次加载(IBL),由于采用同一电源供电,每片C6678上电初始化启动时间基本一致(经测试,相差在us级),同时DSP的RBL和IBL是完全一样的,所以运行时间也相同。
[0022]步骤S200,在上电初始节点启动核0计数器,完成核0的系统时间同步;C56678上电启动采用二次引导的BootLoader方式,在IBL初始化阶段,对每片C6678核0的两个系统计数器TSCH和TSCL清零,启动核0的计数计时器,核0系统时间开始计数。此时对于系统中的每片DSP的核0,其计数时间是同步的,因此系统中所有DSP的核0时间能达到同步。
[0023]步骤S300,启动核0之外的其它所有核,将先运行到的核阻塞在同一位置,直到确定所有需要同步的核均运行到该位置后,所有核继续向后运行;C6678的1

7核在IBL阶段是无法启动的,只在完成程序加载后,通过核0唤醒。如图2所示,在程序加载完成后,程序开始运行,在C6678所有核都驱动后,在程序中进行多核同步处理,多核同步处理的具体方法为:
[0024]步骤S310,在芯片外存DDR中定义一个数组counter_instance,数组中的值由上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于TMS320C6678分布式系统的事件跟踪同步方法,其特征在于:包括,系统上电初始化;在上电初始节点启动核0计数器,完成核0的系统时间同步;启动核0之外的其它所有核,将先运行到的核阻塞在同一位置,直到确定所有需要同步的核均运行到该位置后,所有核继续向后运行;启动其它核计数;记录系统中需要跟踪的事件信息。2.如权利要求1所述的基于TMS320C6678分布式系统的事件跟踪同步方法,其特征在于:多核同步的具体方法为,在芯片外存DDR中定义一个数组counter_instance,数组中的值由上电初始化随机给出,能够供所有核访问;每个核将counter_instance中初始值拷贝到自身的数组on_entry中,on_entry数组存储在私有的内存中,只有本核才能访问到;同时给每个核分别分配counter_instance中的一个数组元素;程序进入循环处理,每次循环对分配给本核的数组元素值加1,并对比该数组中其它元素值是否与本核中on_entry的对应数组元素值一致,如果一致,则进行下一次循环,如果不一致,则执行下一步骤;退出循环。3.如权利要求2所述的基于TM...

【专利技术属性】
技术研发人员:谭湘林杨雁麟吴彬
申请(专利权)人:中国航空工业集团公司雷华电子技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1