掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法及装置

文献发布时间:2023-06-19 16:08:01



技术领域

本申请涉及芯片诊断技术领域,尤其是一种数据传输方法及装置。

背景技术

在系统级芯片(System On Chip,SoC)内,通常设置有多个知识产权核(Intellectual Property Core,IP核),同一SoC内的各个IP核,以及不同SoC内的IP核之间可传输数据。

但是,在数据传输的过程中,有时会出现传输延迟,即需要获取数据的IP核无法及时获取到数据,而传输延迟往往会导致IP核出现功能异常(例如IP核挂死),甚至可能导致SoC失效。

发明内容

为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据传输方法及装置。

根据本公开的一个方面,提供了一种数据传输方法,包括:

确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长;

从检测到所述待传输数据从所述第一处理单元传输时启动计时;

基于计时时长以及所述待传输数据的传输状态,确定所述第一处理单元在传输所述待传输数据时的物理参数;

基于所述物理参数,将所述待传输数据传输至所述第二处理单元。

根据本公开实施例的又一个方面,提供了一种数据传输装置,包括:

时长确定模块,用于确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长;

计时启动模块,用于从检测到所述待传输数据从所述第一处理单元传输时启动计时;

参数确定模块,用于基于所述计时启动模块确定的计时时长以及所述待传输数据的传输状态,确定所述第一处理单元在传输所述待传输数据时的物理参数;

数据传输模块,用于基于所述参数确定模块确定的所述物理参数,将所述待传输数据传输至所述第二处理单元。

根据本公开实施例的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述任一实施例所述的数据传输的方法。

根据本公开实施例的又一个方面,提供了一种电子设备,所述电子设备包括:

处理器;

用于存储所述处理器可执行指令的存储器;

所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述任一实施例所述的数据传输的方法。

基于本公开实施例提供的方案,能够在待传输数据出现传输延迟时,对第一处理单元传输该待传输数据时的物理参数进行调整,并基于调整后的物理参数,将待传输数据传输至第二处理单元。也就是说,本公开实施例提供的方案可根据数据传输的延迟状态,动态调整数据传输过程中的物理参数,从而减少数据传输延迟发生的可能性,提高数据传输的可靠性。

进一步的,由于本公开实施例提供的方案能够提高芯片传输数据的可靠性,因此,还大大提升了芯片的可靠性的性能。

附图说明

通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1是一种传统的SoC的示意图。

图2是本公开一示例性实施例提供的SoC的示意图。

图3是本公开一示例性实施例提供的数据传输方法的流程示意图。

图4是本公开一示例性实施例提供的数据交互的示意图。

图5是本公开另一示例性实施例提供的数据传输方法的流程示意图。

图6是本公开另一示例性实施例提供的数据传输方法的流程示意图。

图7是本公开另一示例性实施例提供的数据传输方法的流程示意图。

图8是本公开另一示例性实施例提供的数据传输方法的流程示意图。

图9是本公开一示例性实施例提供的数据传输装置的结构图。

图10是本公开另一示例性实施例提供的数据传输装置的结构图。

图11是本公开一示例性实施例提供的电子设备的结构图。

具体实施方式

下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

申请概述

芯片为一种在硅板上集合多种电子元器件,以实现某种特定功能的电路模块,通常包括多种类型,例如片上系统(System On Chip,SoC)、微控制单元(MicrocontrollerUnit,MCU)和现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)等。另外,各种芯片内往往包含多个模块,该多个模块之间通常可进行数据交互。并且,有些芯片还可与其他芯片进行数据交互。

以SoC为例,在SoC内通常会设置多个知识产权核(Intellectual Property Core,IP核)。其中,同一SoC内的各个IP核之间可进行数据交互。

另外,SoC还可通过总线(例如高速串行计算机扩展总线)与其他SoC相连接,并与其他SoC内的IP核进行数据交互。参见图1所示的一种SoC的架构示意图,该图中示出三个SoC,分别为SoC 1、SoC 2和SoC 3。这三个SoC位于同一电子控制单元(Electronic ControlUnit,ECU)内,各个SoC之间可通过总线连接,构成该ECU的集成电路模块。在一个示例中,该ECU可设置在车辆的车载智能终端内,为车辆提供辅助驾驶或自动驾驶的功能。

参见图1,各个SoC中均设置多个IP核。其中,SoC 1中的IP核包括:通用中断控制(General Interrupt Controller,GIC)模块、中央处理器(Central Processing Unit,CPU)模块、片上网络(Network On Chip,NOC)控制模块、高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIe)模块、直接存储器访问(DirectMemoryAccess,DMA)模块、内存模块和其他IP模块,SoC 2中的IP核包括:PCIe模块、CPU模块、内存模块和其他IP模块,SoC 3中的IP核包括:PCIe模块、CPU模块、内存模块和其他IP模块。在图1中,同一SoC内连接各个IP模块的实线为片上总线,虚线为信号线。

这种情况下,SoC中的各个IP核之间通常可传输数据,实现数据交互,并且,不同SoC之间也可传输数据。例如,SoC 1内的IP核还可与SoC 2和SoC 3内的IP核之间传输数据,进行数据交互。

其中,在数据交互过程中的发送端可称为第一处理单元,接收端可称为第二处理单元。以SoC为例,参见图1,如果SoC 1中的各个IP核之间进行数据交互,则SoC 1内需要进行数据交互的IP核分别为第一处理单元和第二处理单元,如果SoC 1中的IP核向SoC 2中的IP核传输数据,则该SoC1中的IP核为第一处理单元,该SoC 2中的IP核为第二处理单元。

但是,第一处理单元和第二处理单元在进行数据交互的过程中,有时会出现传输延迟,导致需要获取数据的第二处理单元无法及时获取所需的数据。特别在有些情况下,需要传输的数据量较大,会出现较严重的传输延迟,甚至导致第二处理单元无法获取到所需的数据。如果芯片存在传输延迟,可能导致芯片内的模块功能异常(例如需要接收数据的第二处理单元挂死),甚至可能导致芯片整体的功能失效。

例如,如果芯片用于为车辆的自动驾驶功能提供支持,在数据传输过程中出现传输延迟的话,可能会导致车辆的自动驾驶功能丧失。

针对传输延迟的现象,传统方案中通常采用超时错误监控技术。这一技术中,通常由芯片内的某一模块(例如图1中的NOC控制模块)对数据传输的过程进行监控,并在监控到某一数据的传输出现超时时,报告错误。

但是,通过超时错误监控技术,只能监控到是否出现传输延迟的现象,在报告错误时,传输延迟现象已经发生,并且往往已经产生芯片内模块的功能异常或芯片的功能失效。

有鉴于此,本公开实施例提供一种数据传输方法及装置,以减少芯片出现数据传输延迟的现象。

示例性系统

本公开实施例可应用于需要进行数据交互的芯片中,该芯片可包括SoC、MCU和FPGA等。并且,该芯片可应用于多种应用场景中,该应用场景可包括辅助驾驶、自动驾驶或物联网(Internet ofThings,IoT)等应用场景。

例如,在辅助驾驶或自动驾驶的应用场景中,车辆的同一芯片内的各个处理单元(例如SoC内的IP核)或不同芯片之间的处理单元之间可通过本公开实施例提供的数据传输方法进行数据交互,以减少数据传输延迟的现象,提高数据传输的可靠性,进一步提高辅助驾驶或自动驾驶的准确度。

为了实现本公开实施例提供的数据传输方法,在芯片内通常设置有可执行该数据传输方法的模块。在一个可行的示例中,该模块可为图1所示的示意图内的NOC控制模块。在另一个可行的示例中,该模块可为在传统的芯片的基础上增设的一个模块。

图2是本公开所适用的一种芯片的示例图,并且在该示例中,应用本公开实施例提供的数据传输方法的芯片为SoC。如图2所示,在ECU内设置有三个SoC,分别为SoC 1、SoC 2和SoC 3。其中SoC 1内的各个IP核之间可进行数据传输,这种情况下,第一处理单元和第二处理单元均为SoC 1内的IP核。并且,SoC 1内的IP核还可以与其他SoC内的IP核之间进行数据传输,这种情况下,第一处理单元可为SoC 1内的IP核,第二处理单元为其他SoC内的IP核。针对这一示例,可在SoC 1内增设NOC诊断模块,由NOC诊断模块执行本公开实施例提供的数据传输方法,以减少数据传输过程中出现的传输延迟的现象。

另外,如果SoC 2或SoC 3有传输数据的需求,也可在SoC 2或SoC 3内设置NOC诊断模块,并由该NOC诊断模块执行本公开实施例提供的数据传输方法,相应减少数据传输过程中的传输延迟现象。

示例性方法

图3是本公开一示例性实施例提供的数据传输方法的流程示意图。本实施例可应用在电子设备上,如图3所示,该方法包括如下步骤:

步骤S201、确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长。

其中,如果待传输数据为在同一芯片内的各个模块之间传输的数据,则第一处理单元与第二处理单元位于同一芯片。例如,如果待传输数据为在图2所示的SoC 1内的CPU模块和内存模块之间传输的数据,则第一处理单元为SoC 1内的CPU模块,第二处理单元为SoC1内的内存模块。

如果待传输数据为不同芯片之间传输的数据,则第一处理单元与第二处理单元分别位于不同的芯片。例如,如果待传输数据为在图2所示的SoC 1和SoC 2之间传输的数据,并且,该待传输数据由SoC 1内的CPU模块发送,并由SoC 2内的内存模块接收,则第一处理单元为SoC 1内的CPU模块,第二处理单元为SoC 2内的内存模块。

步骤S202、从检测到待传输数据从第一处理单元传输时启动计时。

其中,如果本次数据传输为数据写操作,则可从检测到第一处理单元开始向第二处理单元发送写入地址时启动计时;如果本次数据传输为数据读操作,则可从检测到第一处理单元向第二处理单元发送读取地址时启动计时。

在一个示例中,第一处理单元为图2所示的SoC 1内的CPU模块,第二处理单元为图2所示的SoC 2内的内存模块。这种情况下,可对SoC 1内的CPU模块进行监控。如果本次数据传输为数据写操作,并且通过监控,确定SoC 1内的CPU模块向SoC 2内的内存模块发送写入地址,则启动计时。另外,如果本次数据传输为数据读操作,并且通过监控,确定SoC 1内的CPU模块向SoC 2内的内存模块发送读取地址,则启动计时。

步骤S203、基于计时时长以及待传输数据的传输状态,确定第一处理单元在传输待传输数据时的物理参数。

其中,待传输数据的传输状态通常包括:待传输数据处于传输中和待传输数据结束传输。通常情况下,如果基于计时时长和待传输数据的传输状态,确定待传输数据出现传输延迟,则确定第一处理单元在传输待传输数据时的物理参数。

例如,第一处理单元为图2所示的SoC 1内的CPU模块,第二处理单元为图2所示的SoC 2内的内存模块,若计时时长以及待传输数据的传输状态表征在到达待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长之后,待传输数据的传输状态仍为待传输数据处于传输中,则表示待传输数据出现传输延迟,则确定SoC 1内的CPU模块在传输待传输数据时的物理参数。

步骤S204、基于物理参数,将待传输数据传输至第二处理单元。

通过步骤S203,可在待传输数据出现传输延迟的情况下,确定第一处理单元在传输待传输数据时的物理参数。这种情况下,为了能够使第二处理单元及时获取所需的数据,可基于确定的物理参数,再次向第二处理单元传输该待传输数据。

例如,芯片的架构如图2所示,第一处理单元为SoC 1内的CPU模块,第二处理单元为SoC 2内的内存模块,通过本公开实施例的方案进行数据传输时,首先确定待传输数据在SoC 1内的CPU模块与SoC 2内的内存模块之间传输时所需的传输时长,并在检测到待传输数据从SoC 1内的CPU模块传输时启动计时;若基于计时时长及待传输数据的传输状态,确定该待传输数据在从SoC 1内的CPU模块到SoC 2内的内存模块的传输过程中出现延时,确定SoC 1内的CPU模块在传输该待传输数据时的物理参数;然后,基于该物理参数,向SoC 2内的内存模块传输该待传输数据。

基于本公开实施例提供的方案,能够在待传输数据出现传输延迟时,对第一处理单元传输该待传输数据时的物理参数进行调整,并基于调整后的物理参数,将待传输数据传输至第二处理单元。也就是说,本公开实施例提供的方案可根据数据传输是否出现延迟的情况,动态调整数据传输过程中的物理参数,从而减少数据传输延迟发生的可能性,提高数据传输的可靠性。

进一步的,由于本公开实施例提供的方案能够提高芯片传输数据的可靠性,因此,还大大提升了芯片可靠性的性能。

另外,第一处理单元可能需要传输多种数据,例如中断信号、故障信号、握手信号、控制信号、应用数据和状态信号等。

其中,如果需要指示第二处理单元进入中断状态,第一处理单元可传输该中断信号;当某一模块出现故障,需要第二处理单元进行分析时,第一处理单元可传输该故障信号,该故障信号可包含该模块的故障信息;如果需要与第二处理单元进行握手,第一处理单元可传输握手信号;当需要对第二处理单元进行控制时,第一处理单元可向第二处理单元传输相应的控制信号;当第二处理单元需要获取应用数据时,第一处理单元可向第二处理单元传输该应用数据,例如,如果第一处理单元获取移动硬盘中的某一文件,而第二处理单元需要该文件,则第一处理单元可向第二处理单元传输包括该文件的应用数据;另外,为了使第二处理单元确定第一处理单元的状态,第一处理单元可向第二处理单元传输状态信号,该状态信号可包括第一处理单元的状态。

在一种可能的实现方式中,可将该多种数据均作为待传输数据,并通过本公开实施例提供的方案进行数据传输。

或者,在另一种可能的实现方式中,可将该多种数据中的部分数据作为待传输数据,并通过本公开实施例提供的方案进行数据传输,以减少芯片的功耗。

示例性的,由于传输时长较长的数据出现传输延迟的可能性较高,因此,可将第一处理单元需要传输的多种数据中,传输时长较长的数据作为待传输数据,例如,将传输时长为前五的五种数据作为待传输数据;或者,由于优先级较高的数据往往为较重要的数据,为了减少重要数据的传输延迟,可将第一处理单元需要传输的多种数据中,优先级较高的数据作为待传输数据。

在本公开实施例中,可基于计时时长以及待传输数据的传输状态,确定第一处理单元传输该待传输数据时的物理参数。在一个可行的实现方式中,该物理参数包括用于控制待传输数据的传输速度的参数。

例如,通常情况下,传输数据的带宽越宽,数据的传输速度越快,也就是说,数据的传输带宽对数据的传输速度有一定的影响,因此,在基于计时时长以及待传输数据的传输状态,确定待传输数据出现传输延迟时,可调高待传输数据的传输带宽,相应的该物理参数可包括待传输数据的传输带宽;或者,如果预先为数据设置不同等级的优先级,通常某一数据的优先级越高,则为该数据分配的传输带宽越宽,相应的该数据的传输速度越快,即数据的优先级对数据的传输速度有一定的影响,因此,在基于计时时长以及待传输数据的传输状态,确定待传输数据出现传输延迟时,可提高待传输数据的优先级,则该物理参数可包括待传输数据的优先级。

在本公开实施例提供的方案中,物理参数包括用于控制待传输数据的传输速度的参数。这种情况下,如果基于计时时长以及待传输数据的传输状态,确定待传输数据出现传输延迟,则可调整该物理参数,并通过调整后的物理参数传输待传输数据,以加快该待传输数据的传输速度,减少传输延迟的发生,提高数据传输的可靠性。

在步骤S201中,公开确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长的操作。在本公开实施例中,数据传输通常包括:数据写操作和数据读操作。参见图4所示的数据交互的示意图,其中,如果数据传输为数据写操作,数据传输过程通常包括以下步骤:

第一步,第一处理单元向第二处理单元发送写入地址(WriteAddress,AW);

第二步,第一处理单元从第二处理单元中读取数据;

第三步,第二处理单元向第一处理单元发送写入确认(Write Response),第一处理单元接收该写入确认。

这一场景下,待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长,通常为第一处理单元开始发送写入地址至第一处理单元接收到写入确认这一过程的时长。在本公开实施例中,可预先通过对这一过程的监控,确定所需的传输时长。

如果数据传输为数据读操作,数据传输过程通常包括以下步骤:

第一步,第一处理单元向第二处理单元发送读取地址(ReadAddress,AR);

第二步,第二处理单元向第一处理单元发送该读取地址对应的数据,第一处理单元获取该数据。

这一场景下,待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长,通常为第一处理单元开始发送单独去地址至成功获取需要读取的数据这一过程的时长。在本公开实施例中,可预先通过对这一过程的监控,确定所需的传输时长。

参见图5,在本公开另一示例性实施例中,可在上述图4所示实施例的基础上,通过以下步骤确定第一处理单元在传输待传输数据时的物理参数:

步骤S2031、通过在启动计时时触发的计时装置,确定计时时长。

在这一实施例中,可在第一处理单元所在的芯片内设置计时装置。示例性的,第一处理单元为图2所示的SoC 1内的IP核,则该计时装置可设置在图2所示的NOC诊断模块中。

在检测到待传输数据从第一处理单元传输时,可触发该计时装置,以使该计时装置开始计时,并通过读取该计时装置的计时信息,确定计时时长。其中,如果该计时装置设置在NOC诊断模块中,则NOC诊断模块在检测到第一处理单元传输该待传输数据时,触发该计时装置,并通过读取该计时转至的计时信息确定计时时长。

步骤S2032、通过读取第一寄存器中缓存的传输状态对应的状态位,确定待传输数据的传输状态。

在这一实施例中,可在第一处理单元所在的芯片内设置第一寄存器。示例性的,第一处理单元为图2所示的SoC 1内的IP核,则该第一寄存器可设置在图2所示的NOC诊断模块中。

第一寄存器用于缓存传输状态对应的状态位,其中,如果待传输数据处于传输中,该第一寄存器通常缓存对应的第一状态位,该第一状态位用于表示待传输数据处于传输中。另外,如果待传输数据结束传输,第一寄存器中缓存的状态位调整为相应的第二状态位,该第二状态位表示该待传输数据已经结束传输。

这种情况下,通过读取第一寄存器中缓存的传输状态对应的状态位,即可确定待传输数据的传输状态。其中,如果第一寄存器设置在图2所示的NOC诊断模块中,则NOC诊断模块可读取该第一寄存器中缓存的状态位,并据此确定待传输数据的传输状态。

步骤S2033、当传输状态对应的状态位表征待传输数据处于传输中时,基于计时时长确定第一处理单元在传输待传输数据时的物理参数。

如果传输状态对应的状态位表征待传输数据处于传输中,则表明待传输未完成传输,有可能出现传输延迟,因此可根据计时时长与待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长,确定是否需要确定第一处理单元在传输待传输数据时的物理参数。

这一实施例公开的方案,能够基于计时装置确定计时时长,以及基于第一寄存器的缓存确定待传输数据的传输状态,以便根据该计时时长和待传输数据的传输状态确定第一处理单元传输待传输数据时的物理参数。

计时装置通常包括多种类型。在一个可行的示例中,用于计时的计时装置可包括计时器。当计时装置包括计时器时,步骤S2031可通过以下操作实现:通过周期性读取计时器的计时信息,确定计时时长。

也就是说,这一实施例中,检测到待传输数据从第一处理单元传输时,触发计时器开始计时,从而可通过计时器确定计时时长。

相应的,参见图6,在本公开另一示例性实施例中,可在上述图4所示实施例的基础上,基于计时时长确定第一处理单元在传输待传输数据时的物理参数,可包括以下步骤:

步骤S20331、比较计时时长与待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长。

步骤S20332、当计时时长大于传输时长时,通过第二寄存器中存储的标识信息与时长阈值之间的对应关系,以及待传输数据的标识信息,确定待传输数据对应的时长阈值。

其中,标识信息包括以下至少一种:地址、数据标识符(Data Identifier,DID)和传输通道。该地址通常包括源地址和目的地址。

在这一实施例中,可在第一处理单元所在的芯片内设置第二寄存器。示例性的,第一处理单元为图2所示的SoC 1内的IP核,则该第二寄存器可设置在图2所示的NOC诊断模块中。另外,第一寄存器和第二寄存器可为同一寄存器,也可为不同的寄存器,本公开实施例对此不作限定。

标识信息与时长阈值之间的对应关系可通过不同方式确定。在一个示例中,针对优先级较高的数据或较为重要的数据,其标识信息所对应的时长阈值较小。或者,在另一示例中,可设置传输时长越长的数据,其标识信息所对应的时长阈值越大。当然,也可通过其他方式设置该对应关系,本公开实施例对此不作限定。

其中,如果第二寄存器设置在图2所示的NOC诊断模块中,则NOC诊断模块确定计时时长大于传输时长时,可读取第二寄存器中存储的标识信息与时长阈值之间的对应关系,以及待传输数据的标识信息,并据此确定待传输数据对应的时长阈值。

步骤S20333、当计时时长与传输时长之间的差值不小于待传输数据对应的时长阈值时,确定第一处理单元在传输待传输数据时的物理参数。

如果计时时长与传输时长之间的差值不小于待传输数据对应的时长阈值,则表明待传输数据的传输出现延迟,这种情况下,需要确定第一处理单元在传输待传输数据时的物理参数。

本公开实施例通过周期性读取计时器的计时信息,确定计时时长,并通过第二寄存器存储的标识信息与时长阈值之间的对应关系,确定待传输数据对应的时长阈值,从而能够根据该时长阈值,确定是否需要确定第一处理单元传输待传输数据的物理参数。

进一步的,在这一方案中,第二寄存器中可存储多种标识信息与时长阈值之间的对应关系,从而能够根据该对应关系,确定第一处理单元在传输多种待传输数据时的物理参数,满足多种数据的传输需求。

在一个可行的示例中,用于计时的计时装置可包括定时器。当计时装置包括定时器时,步骤S2031可通过以下操作实现:

通过读取定时器生成的定时信息,确定计时时长。定时器用于在当前时间与触发时间之间的差值到达预警时长时,生成定时信息,预警时长大于待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长。

在这一实施例中,检测到待传输数据从第一处理单元开始传输时,触发定时器。该定时器在当前时间与触发时间之间的差值到达预警时长时,会生成定时信息。这种情况下,该当前时间与触发时间之间的时长可作为该待传输数据的传输时长,即定时器在待传输数据的传输时长到达预警时长时,生成定时信息。

通过该定时信息,即可确定待传输数据在传输过程中出现延迟,从而需要确定第一处理单元在传输待传输数据时的物理参数。

进一步的,在这一方案中,只需设置定时器且通过读取定时器生成的定时信息,即可确定该物理参数,操作方式较为简捷。并且,该方案在待传输数据的传输时长到达预警时长时,即可获取定时信息,因此,能够及时确定待传输数据是否出现传输延迟,提高数据传输的效率。

参见图7,在本公开另一示例性实施例中,可在上述图4所示实施例的基础上,可通过以下步骤确定第一处理单元在传输待传输数据时的物理参数:

步骤S20334、确定第一处理单元在传输待传输数据时的标识信息。

其中,标识信息包括以下至少一种:地址、数据标识符DID和传输通道。

步骤S20335、基于标识信息,以及第三寄存器中存储的标识信息分别与当前需要调整的物理参数的类型以及调整幅度的对应关系,确定当前需要调整的物理参数的类型和调整幅度。

在这一实施例中,可在第一处理单元所在的芯片内设置第三寄存器。示例性的,第一处理单元为图2所示的SoC 1内的IP核,则该第三寄存器可设置在图2所示的NOC诊断模块中。另外,第三寄存器和第一寄存器或第二寄存器可为同一寄存器,也可为不同的寄存器,本公开实施例对此不作限定。

第三寄存器用于存储预先设置的标识信息与当前需要调整的物理参数的类型以及调整幅度的对应关系。

在一种可行的示例中,该对应关系中的调整幅度可为具体的数值。例如,可通过表1表示:

表1

在表1对应的示例中,标识信息为DID 1时,对应的需要调整的物理参数为优先级,对应的调整幅度为1级;标识信息为DID 2时,对应的需要调整的物理参数为传输带宽,对应的调整幅度为10%;标识信息为传输通道1时,对应的需要调整的物理参数为优先级和传输带宽,对应的调整幅度分别为1级和5%;标识信息为传输通道2时,对应的需要调整的物理参数为工作频率,对应的调整幅度为5%。

其中,如果在该对应关系中,待传输数据的标识信息所对应的需要调整的物理参数包括至少两种,则可将这至少两种物理参数均作为当前需要调整的物理参数,或者任选其中一种物理参数作为当前需要调整的物理参数。

例如,在表1中,标识信息为传输通道1时,该对应关系指示的需要调整的物理参数为优先级和传输带宽,这种情况下,可确定当前需要调整的物理参数包括优先级和传输带宽,并在后续操作中,对这两种物理参数均进行调整。或者,还可以仅将优先级或仅将传输带宽作为当前需要调整的物理参数。

在另一种可行的示例中,该对应关系中的调整幅度可包括物理参数的不同范围分别与该范围相对应的调整幅度。这种情况下,可基于物理参数所处的范围确定相应的调整幅度。

例如,如果物理参数包括优先级,且优先级包括七个等级,可设定在该对应关系中,指示某一数据的优先级为1级至3级时,对应的调整幅度为2级,某一数据的优先级为4级至6级时,对应的调整幅度为1级,某一数据的优先级为7级时,对应的调整幅度为0级。这种情况下,如果待传输数据当前的优先级为3级,则确定需要调整的优先级的调整幅度为2级,即在调整后,该待传输数据的优先级为5级。

另外,如果物理参数包括传输带宽,可设定在该对应关系中,指示空闲的传输带宽在a~b MHz范围内时,对应的调整幅度为c MHz,空闲的传输带宽在d~e MHz范围内时,对应的调整幅度为fMHz。其中,a、b、c、d、e和f均为正数,且c≤a

步骤S20336、基于当前需要调整的物理参数的类型和调整幅度,确定第一处理单元在传输待传输数据时的物理参数。

在这一步骤中,可基于该物理参数的当前值和调整幅度,对物理参数进行调整。

通过本公开实施例提供的方案,可基于待传输数据对应的标识信息,以及标识信息分别与当前需要调整的物理参数的类型以及调整幅度的对应关系,确定第一处理单元在传输待传输数据时的物理参数,实现对物理参数的调整,以便通过调整后的物理参数传输该待传输数据,减少传输延迟的现象。

物理参数的类型可包括多种,在本公开另一示例性实施例中,可在上述图4所示实施例的基础上,可通过以下步骤确定第一处理单元在传输待传输数据时的物理参数:

当当前需要调整的物理参数的类型包括优先级时,基于待传输数据当前的优先级和调整幅度,确定调整后的优先级;

基于调整后的优先级,为待传输数据分配相应的优先级标识,或者,将待传输数据缓存至调整后的优先级对应的传输队列中。

如果当前需要调整的物理参数的类型包括优先级,则基于待传输数据当前的优先级和调整幅度,对待传输数据的优先级进行调整。

如果当前需要调整的物理参数的类型包括优先级,通常根据调整幅度,提高待传输数据的优先级,以便提高该待传输数据的传输速度。示例性的,如果预先将数据的优先级划分为七个等级,且等级越高,优先级越高,而待传输数据当前的优先级为第三等级,调整幅度为一级,则可确定调整后的优先级为第四等级。

第一处理单元传输数据的过程中,可通过读取数据的优先级标识确定数据的优先级。这种情况下,在确定调整后的优先级之后,可为待传输数据分配相应的优先级标识。

另外,第一处理单元传输数据的过程中,还可根据数据的优先级,将数据缓存至相应的传输队列中。这种情况下,在确定调整后的优先级之后,可将待传输数据缓存至调整后的优先级对应的传输队列中。

当所述当前需要调整的物理参数的类型包括传输带宽时,确定第一处理单元在传输待传输数据时的物理参数,可包括以下步骤:

基于待传输数据当前的物理带宽和调整幅度,确定调整后的物理带宽。

如果当前需要调整的物理参数的类型包括传输带宽,通常根据调整幅度,提高待传输数据的传输带宽。示例性的,如果调整幅度为10%,则可在当前传输带宽的基础上,以10%的比例提高该传输带宽。

当所述当前需要调整的物理参数的类型包括工作频率时,确定第一处理单元在传输待传输数据时的物理参数,可包括以下步骤:

基于当前的工作频率和调整幅度,确定调整后的工作频率。

在这一步骤中,通常可根据该调整幅度,降低第一处理单元或第一处理单元所在芯片的工作频率,示例性的,如果调整幅度为5%,则可在当前的工作频率的基础上,以5%的比例降低第一处理单元或第一单元所在芯片的工作频率。

另外,通过降低第一处理单元或第一处理单元所在芯片的工作频率,可降低第二处理单元对传输延迟的敏感性,放缓第二处理单元对待传输数据的需求,相应减少传输延迟的现象。

例如,如果某一待传输数据在传输过程中,耗时时长超过30ms则认为出现传输延迟,而在降低工作频率后,第二处理单元对该待传输数据的需求放缓,该待传输数据在传输过程中耗时时长超过32ms的情况下,才认为出现传输延迟,从而能够减少传输延迟的现象。

通过本公开实施例提供的方案,可实现对第一处理单元在传输待传输数据时的物理参数的调整,通过调整后物理参数传输待传输数据,有利于减少数据传输延迟的现象,提高数据传输的可靠性。

在本公开另一示例性实施例中,可在上述图4所示实施例的基础上,确定所述第一处理单元在传输所述待传输数据时的物理参数,可包括以下步骤:

第一步,通过读取计数器的计数信息,确定物理参数的调整次数,该计数器用于对物理参数的调整次数进行计数。

在这一公开实施例中,可在第一处理单元所在的芯片设置计数器。示例性的,第一处理单元为图2所示的SoC 1内的IP核,则该计数器可设置在图2所示的NOC诊断模块中。该计数器用于对物理参数调整的次数进行计数,也就是说,每次调整物理参数后,该计数器在当前计数的基础上加一。

这种情况下,通过读取该计数器的技术信息,即可确定物理参数的调整次数。

第二步,当调整次数小于待传输数据对应的次数阈值时,确定第一处理单元在传输待传输数据时的物理参数。

也就是说,只有物理参数的调整次数小于该次数阈值时,才确定第一处理单元在传输待传输数据时的物理参数。

有些应用场景中,例如芯片出现故障等,即使多次调整物理参数,仍会出现传输延迟,这种情况下,如果每次出现传输延迟都调整物理参数,不仅无法解决传输延迟的问题,还会导致功耗的浪费。

针对这一问题,在这一实施例提供的方案中,为物理参数设置相应的次数阈值,并且在物理参数的调整次数小于该次数阈值的情况下,才确定第一处理单元在传输待传输数据时的物理参数,从而能够在减少传输延迟现象的同时,还可减少功耗的浪费。

另外,如果基于计数器的计数信息,确定物理参数的调整次数不小于该次数阈值,还可产生提示信息,以提示技术人员对芯片性能进行检测。

进一步的,在本公开另一示例性实施例中,当调整次数大于或者等于该待传输数据对应的次数阈值时,还可在保持物理参数不变的情况下,继续传输数据及计时。这种情况下,如果基于计时时长和待传输数据的传输状态,确定计时时长达到中断时长,但待传输数据仍在传输时,还可进行超时错误处理。

其中,中断时长通常大于预警时长。如果计时时长达到中断时长,但待传输数据仍在传输,则表明经过预警时长,该待传输数据仍未完成传输,待传输数据的传输延迟较严重。这种情况下,可认为待传输数据的传输出现超时错误,从而进行超时错误处理。

该超时错误处理可包括调用预先设置的超时错误处理函数,以修复该超时错误。并且,该超时错误处理还可包括生成警示信息,以提示技术人员及时注意到传输延迟较严重的这一现象,便于技术人员及时采取相应措施,避免影响芯片的正常工作。

为了明确本公开的优势,以下提供一种针对本公开实施例的数据传输方法的应用场景。该应用场景中,需要识别是否存在传输延迟的现象,从而针对性对物理参数进行调试,以便提高数据传输的可靠性,使芯片具有较优的性能。这种情况下,参见图8,该数据传输方法可包括以下步骤:

步骤S301、确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长。

步骤S302、从检测到所述待传输数据从所述第一处理单元传输时启动计时。

其中,步骤S301至步骤S302的操作与步骤S201至步骤S202的操作相同,可相互参照,此处不再赘述。

步骤S303、基于计时时长和待传输数据的传输状态,确定第一处理单元在传输该待传输数据时,是否出现传输延迟。

如果否,执行步骤S304的操作,如果是,执行步骤S305的操作。

步骤S304、如果确定第一处理单元在传输该待传输数据时,未出现传输延迟,则确定当前的物理参数已调试至最佳的区间,针对物理参数的调试完成。

步骤S305、如果确定第一处理单元在传输该待传输数据时,出现传输延迟,对物理参数进行调整,并返回执行步骤S302的操作。

其中,对物理参数进行调整的方法可参照步骤S20334至步骤S20336,此处不再赘述。

通过这一实施例的方案,可实现对物理参数的调试,通过调试后的芯片进行数据的传输,能够减少传输延迟的性能,从而提高数据传输的可靠性,提高芯片的性能。

示例性装置

图9是本公开一示例性实施例提供的数据传输装置的结构图。该数据传输装置可以设置于终端设备、服务器等电子设备中,或者车辆等对象上,执行本公开上述任一实施例的数据传输方法。如图9所示,该实施例的数据传输装置包括:时长确定模块21、计时启动模块22、参数确定模块23和数据传输模块24。

其中,时长确定模块21,用于确定待传输数据在第一处理单元与第二处理单元之间传输所需的传输时长;

计时启动模块22,用于从检测到所述待传输数据从所述第一处理单元传输时启动计时;

参数确定模块23,用于基于所述计时启动模块22确定的计时时长以及所述待传输数据的传输状态,确定所述第一处理单元在传输所述待传输数据时的物理参数;

数据传输模块24,用于基于所述参数确定模块23确定的所述物理参数,将所述待传输数据传输至所述第二处理单元。

本公开实施例提供的方案可根据数据传输是否出现延迟的情况,动态调整数据传输过程中的物理参数,从而减少数据传输延迟发生的可能性,提高数据传输的可靠性。

进一步的,由于本公开实施例提供的方案能够提高芯片传输数据的可靠性,因此,还优化了芯片的性能。

其中,在一种可行的示例中,物理参数包括用于控制待传输数据的传输速度的参数。

进一步的,参见图10所示的结构示意图,在一种可行的示例中,该参数确定模块23包括:

计时单元231,用于通过在启动计时时触发的计时装置,确定计时时长;

状态确定单元232,用于通过读取第一寄存器中缓存的传输状态对应的状态位,确定待传输数据的传输状态;

参数确定单元233,用于当传输状态对应的状态位表征待传输数据处于传输中时,基于所述计时时长确定第一处理单元在传输所述待传输数据时的物理参数。

其中,当所述计时装置包括计时器时,计时单元231用于通过周期性读取所述计时器的计时信息,确定所述计时时长。

并且,这种情况下,参数确定单元233包括:比较子单元、阈值确定子单元和参数确定子单元。

其中,比较子单元用于比较所述计时时长与所述传输时长;

当比较子单元确定所述计时时长大于所述传输时长时,阈值确定子单元用于通过第二寄存器中存储的标识信息与时长阈值之间的对应关系,以及所述待传输数据的标识信息,确定所述待传输数据对应的时长阈值,所述标识信息包括以下至少一种:地址、数据标识符DID和传输通道;

当所述计时时长与所述传输时长之间的差值不小于阈值确定子单元确定的所述待传输数据对应的时长阈值时,参数确定子单元用于确定所述第一处理单元在传输所述待传输数据时的物理参数。

其中,当所述计时装置包括定时器时,计时单元231用于通过读取所述定时器生成的定时信息,确定所述计时时长,所述定时器用于在当前时间与触发时间之间的差值到达预警时长时,生成所述定时信息,所述预警时长大于所述传输时长。

在一种可行的示例中,该参数确定单元233包括:标识信息确定子单元2331、参数信息确定子单元2332和第一确定子单元2333。

其中,标识信息确定子单元2331用于确定第一处理单元在传输待传输数据时的标识信息,所述标识信息包括以下至少一种:地址、数据标识符DID和传输通道;

参数信息确定子单元2332用于基于标识信息确定子单元2331确定的所述标识信息,以及第三寄存器中存储的所述标识信息分别与当前需要调整的物理参数的类型以及调整幅度的对应关系,确定所述当前需要调整的物理参数的类型和调整幅度;

第一确定子单元2333用于基于参数信息确定子单元2332确定的所述当前需要调整的物理参数的类型和调整幅度,确定所述第一处理单元在传输所述待传输数据时的物理参数。

在一种可行的示例中,当所述当前需要调整的物理参数的类型包括优先级时,该第一确定子单元2333用于基于待传输数据当前的优先级和所述调整幅度,确定调整后的优先级,并基于所述调整后的优先级,为所述待传输数据分配相应的优先级标识,或者,将所述待传输数据缓存至所述调整后的优先级对应的传输队列中。

或者,当所述当前需要调整的物理参数的类型包括传输带宽时,该第一确定子单元2333用于基于所述待传输数据当前的物理带宽和所述调整幅度,确定调整后的物理带宽。

另外,当所述当前需要调整的物理参数的类型包括工作频率时,该第一确定子单元2333用于基于当前的工作频率和所述调整幅度,确定调整后的工作频率。

在一种可行的示例中,该参数确定单元233包括:次数确定子单元2334和第二确定子单元2335。

其中,该次数确定子单元2334用于通过读取计数器的计数信息,确定所述物理参数的调整次数,所述计数器用于对所述物理参数的调整次数进行计数;

当次数确定子单元2334确定所述调整次数小于所述待传输数据对应的次数阈值时,第二确定子单元2335用于确定所述第一处理单元在传输所述待传输数据时的物理参数。

示例性电子设备

下面,参考图11来描述根据本申请实施例的电子设备。在本公开一示例性实施例中,该电子设备可以是图2所示的NOC诊断模块,或者为包括该NOC诊断模块的芯片。当然,该电子设备也可以为其他形式,本公开对此不作限定。

图11图示了根据本申请实施例的电子设备的框图。

如图11所示,电子设备11包括一个或多个处理器111和存储器112。

处理器111可以是中央处理单元(central processing unit,CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备11中的其他组件以执行期望的功能。

存储器112可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(random access memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(read-only memory,ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器111可以运行所述程序指令,以实现上文所述的本申请的各个实施例的数据传输方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如物理参数、待传输数据的传输时长和标识信息与时长阈值之间的对应关系等各种内容。

在一个示例中,电子设备11还可以包括:输入装置113和输出装置114,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

此外,该输入装置113还可以包括例如键盘、鼠标等等。

该输出装置114可以向外部输出各种信息,包括待传输数据等。该输出装置114可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图11中仅示出了该电子设备11中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备11还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据传输方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据传输方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read-OnlyMemory,EPROM)或闪存)、光纤、便携式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。

本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 数据传输装置和数据传输方法、接收装置和接收方法、程序以及数据传输系统
  • 无接触式数据传输装置、包含所述无接触式数据传输装置的安全文件和/或有价文件以及用于制造无接触式数据传输装置的方法
技术分类

06120114718717