CN104933009A - 一种用于多核dsp间的片上通信方法及数据通信装置 - Google Patents
一种用于多核dsp间的片上通信方法及数据通信装置 Download PDFInfo
- Publication number
- CN104933009A CN104933009A CN201510210877.8A CN201510210877A CN104933009A CN 104933009 A CN104933009 A CN 104933009A CN 201510210877 A CN201510210877 A CN 201510210877A CN 104933009 A CN104933009 A CN 104933009A
- Authority
- CN
- China
- Prior art keywords
- data
- affairs
- read
- sent
- dce
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种用于多核DSP间的片上通信方法及数据通信装置,该片上通信方法包括:为各DSP内核分别配置一个数据通信装置;各DSP内核通过数据通信装置发送事务至目的DSP内核,且当需要发送数据时,控制将待发送数据写入至数据通信装置的发送数据缓冲中,并通过数据通信装置执行发送;各DSP内核通过数据通信装置接收来自源DSP内核的事务,且当需要接收数据时,通过所述数据通信装置的接收数据缓冲接收数据,并控制将接收到的数据返回至对应的DSP内核;该数据通信装置包括发送单元、接收单元以及全局事务管理单元。本发明能够实现多核DSP间数据通信,具有通信效率及通信带宽高、且通信方式灵活等优点。
Description
技术领域
本发明涉及片上多核DSP的通信技术领域,尤其涉及一种用于多核DSP间的片上通信方法及数据通信装置。
背景技术
雷达信号、MIMO、FFT、数字视频处理等嵌入式高性能计算通常具备问题规模大、计算和存储需求高、可并行性强的特点,并且有严格的实时性要求,因此目前通常采用少量大核(一般小于16)结构的多核DSP(Digital Signal Processor)作为运算平台。多核DSP的核间数据交换机制是影响性能的关键,一方面是由于多核DSP通常会采用大量的运算单元,比如MAC,来提供强大的问题解算能力,特别是高性能的多核DSP;另一方面,典型应用的数据通信需求非常大,比如,在执行无线通信算法MIMO运算的过程中,每个DSP核的每个迭代的算结果都需要与其他DSP核进行交换、混洗。
目前对于多核DSP或高性能多核DSP核间通信主要存在以下几个问题:
(1)性能问题:无法提供与计算能力相匹配的通信带宽;
(2)方式问题:通信方式较为单一,程序员使用非常麻烦。由于嵌入式程序往往需要程序员进行专门优化,人工参与程度高,若使用繁琐,则不利于单核程序向多核程序的移植和调试;
(3)效率问题:不能提供高效率的通信,而往往还需引入复杂的控制开销。
综上所述,如何实现高带宽、通信使用方式灵活的多核DSP间片上通信,提高多核DSP解算嵌入式高性能计算问题的能力,成为了多核DSP领域,特别是嵌入式高性能多核DSP领域,亟待解决的关键问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、通信效率及通信带宽高、且通信方式灵活的用于多核DSP间的片上通信方法及数据通信装置。
为解决上述技术问题,本发明提出的技术方案为:
一种用于多核DSP间的片上通信方法,所述方法包括:
为各DSP内核分别配置一个数据通信装置;
各DSP内核通过所述数据通信装置发送事务至目的DSP内核,且当需要发送数据时,控制将待发送数据写入至所述数据通信装置的发送数据缓冲中,并通过所述数据通信装置执行发送;
各DSP内核通过所述数据通信装置接收来自源DSP内核的事务,且当需要接收数据时,通过所述数据通信装置的接收数据缓冲接收数据,以控制将接收到的数据返回至对应的DSP内核或者对应存储体。
作为本发明片上通信方法的进一步改进,所述数据通信装置发送事务具体包括:
所述数据通信装置将需要发送的事务提交至发送事务队列中;
所述数据通信装置从所述发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务并执行发送,所述读返回事务队列中存储有每当所述数据通信装置接收到读事务时衍生得到的对应的读返回事务;
所述数据通信装置判断当前待发送的事务类型,若为读事务,则存储一份所述读事务至未完成读事务队列中,并控制进入返回数据接收准备状态;如果为写事务,则判定需要发送写数据;如果为读返回事务,则判定需要发送读返回数据。
作为本发明片上通信方法的进一步改进:所述将待发送数据写入发送数据缓冲,具体是通过DSP内核查询所述发送数据缓冲的状态,以控制定期写入待发送的数据至所述发送数据缓冲中;或所述将待发送数据写入发送数据缓冲,具体是通过所述发送数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制写入待发送的数据至发送数据缓冲中;或所述将待发送数据写入发送数据缓冲,具体是采用DSP内核后台执行的方式,控制直接从本地存储器读取出待发送的数据写入至所述发送数据缓冲中;所述待发送数据为来自DSP内核或本地存储器的数据。
作为本发明片上通信方法的进一步改进,所述数据通信装置接收来自源DSP内核的事务具体包括:所述数据通信装置接收来自源DSP内核的事务,并判断接收到的事务类型,若为读事务,则将接收到的所述读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,则判定需要接收返回的读数据;若为写事务,则判定同时需要接收写数据;所述未完成读事务队列中存储有所述数据通信装置还未接收到对应的读返回事务的读事务。
作为本发明片上通信方法的进一步改进:所述将接收到的数据返回,具体是通过DSP内核查询所述接收数据缓冲的状态,以控制定期将接收数据缓冲中数据读取消费;或所述将接收到的数据返回,具体是由所述接收数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制将接收数据缓冲中数据读取消费;或所述将接收到的数据返回,采用DSP内核后台执行的方式将所述接收数据缓冲中数据读取消费;所述接收到的数据返回至DSP内核或本地存储器。
作为本发明片上通信方法的进一步改进:所述数据通信装置执行发送时,当数据发送完成后向DSP内核发出发送事务完成中断信号,具体步骤为:所述数据通信装置判断所发送的数据个数以及数据发送完成状态,当判断到所发送的数据个数等于发送配置的数据个数时,且处于数据发送已完成状态时,生成发送事务完成中断信号发送至DSP内核;
所述数据通信装置接收数据时,当数据接收完成后向DSP内核发出接收事务完成中断信号,具体步骤为:所述数据通信装置判断所接收的数据个数以及数据接收完成状态,当判断到所接收的数据个数等于接收配置的数据个数时,且处于数据接收已完成状态时,生成接收事务完成中断信号发送至DSP内核。
作为本发明片上通信方法的进一步改进:所述数据通信装置执行发送时,将待发送数据封装为数据报文后进行发送,所述数据报文中包括报文头域和报文数据负载域,所述报文数据负载域中包含所需要发送的数据;所述报文头域包括报文请求的来源、目的处理器核以及请求类型。
一种采用上述方法的数据通信装置,包括:用于发送事务及数据的发送单元、用于接收事务及数据的接收单元以及分别与所述发送单元、接收单元连接的全局事务管理单元,所述全局事务管理单根据事务类型控制所述发送单元、接收单元的执行状态。
作为本发明数据通信装置的进一步改进,所述发送单元包括用于缓冲待发送数据的数据发送缓冲、用于执行数据发送的发送接口以及用于控制数据发送过程的发送机,所述数据发送缓冲、发送机分别与所述发送接口连接;所述接收单元包括用于缓冲待接收数据的数据接收缓冲、用于执行数据接收的接收接口以及用于控制数据接收过程的接收机,所述数据接收缓冲、接收机分别于所述接收接口连接;所述数据发送缓冲、数据接收缓冲分别与DSP总线连接,或所述数据发送缓冲、数据接收缓冲均分别与DSP总线以及本地存储总线连接。
作为本发明数据通信装置的进一步改进,所述全局事务管理单元包括:
发送事务管理子单元,用于控制发送事务,将需要发送的事务提交至发送事务队列中,从所述发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务,并控制发送单元执行发送,所述读返回事务队列中存储有每当接收单元接收到读事务时衍生得到的对应的读返回事务;判断当前待发送的事务类型,若为读事务,则存储一份所述读事务至未完成读事务队列中,并控制接收单元进入返回数据接收准备状态;
接收事务管理子单元,用于控制接收事务,接收单元接收到事务后,判断事务类型,若为读事务,则将接收到的所述读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,控制接收单元接收返回的读数据;若为写事务,则控制接收单元接收写数据;所述未完成读事务队列中存储有还未接收到对应的读返回事务的读事务。
与现有技术相比,本发明的优点在于:
1)本发明为各DSP内核设置一个数据通信装置,各DSP内核通过数据通信装置发送、接收事务,当需要发送数据时,控制将待发送数据写入至数据通信装置的发送数据缓冲中执行发送;当需要接收数据时,控制接收数据至数据通信装置的接收数据缓冲中以返回至对应的DSP内核,通过发送数据缓冲和接收数据缓冲可以形成完全流水,从而使得DSP核间数据交换仅受限于核间互连的链路大小,有效的提高了通信带宽以及通信效率,因而能够满足高性能多核DSP间对于通信带宽及通信效率的需求;
2)本发明通过控制数据通信装置的发送数据缓冲写入待发送数据中执行发送,以及通过控制数据通信装置的接收数据缓冲接收数据,能够通过内设中断机制、接收机制支持多种类型的数据发送、接收方式,用户可以根据应用程序灵活的配置数据发送、接收的形式为DSP内核查询方式、基于数据缓冲中断信号的DSP中断方式或DSP后台方式等;同时通过多种数据总线接口与DSP内核和存储器均直接相连,可以接收来自DSP内核或存储器的数据,因而通信方式灵活、通信效率高;
3)本发明通过数据通信装置的发送数据缓冲、接收数据缓冲可以在发送过程中的完成数据格式的变化,能够有效降低数据处理端的开销;
4)本发明通过数据通信装置可以支持DSP Load/Store流水线的直接读写,从而可以降低编程开销,同时对小粒度的快速通信提供了有效的支持;本发明进一步的通过数据通信装置还可以支持本地存储器总线到发送、接收的直接通路,不仅降低了控制开销,而且能够有效降低数据流转开销。
附图说明
图1是本实施例用于多核DSP间的片上通信方法的实现流程示意图。
图2是本发明具体实施例中DSP核之间的连接方式原理示意图。
图3是本实施例用于多核DSP间的片上通信方法中采用的数据通信装置的结构示意图。
图4是本实施例中三种事务类型的生产及消费的原理示意图。
图5是本发明具体实施例中发送事务时的原理示意图。
图6是本发明具体实施例中事务完成中断信号生成的原理示意图。
图7是本实施例中数据报文的结构示意图。
图8是本实施例中进行大量数据交换时发送单元执行数据发送的实现流程示意图。
图9是本实施例进行大量数据交换时接收单元执行数据接收的流程示意图。
图例说明:1、发送单元;11、数据发送缓冲;12、发送接口;13、发送机;2、接收单元;21、数据接收缓冲;22、接收接口;23、接收机;3、全局事务管理单元。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1所示,本实施例用于多核DSP间的片上通信方法,该方法包括:
为各DSP内核分别配置一个数据通信装置;
各DSP内核通过数据通信装置发送事务至目的DSP内核,且当需要发送数据时,控制将待发送数据写入至数据通信装置的发送数据缓冲中,并通过数据通信装置执行发送;
各DSP内核通过数据通信装置接收来自源DSP内核的事务,且当需要接收数据时,通过数据通信装置的接收数据缓冲接收数据,以控制将接收到的数据返回至对应的DSP内核或者对应存储体。
本实施例中各DSP内核分别设置一个数据通信装置,各DSP内核通过数据通信装置进行通信;进行数据通信时,通过数据通信装置发送、接收事务,且当需要发送数据时,控制将待发送数据写入至数据通信装置的发送数据缓冲中执行发送;当需要接收数据时,控制接收数据至数据通信装置的接收数据缓冲中以返回至对应的DSP内核,因而通过发送数据缓冲和接收数据缓冲可以形成完全流水,使得DSP核间数据交换仅受限于核间互连的链路大小,有效的提高了通信带宽以及通信效率,因而能够满足高性能多核DSP间对于通信带宽及通信效率的需求。
如图2所示为本发明在具体实施例(4核DSP系统)中DSP内核间的连接方式,每个数据通信模块对应连接一个DSP内核,各个数据通信模块之间通过互连通路连接,硬件结构简洁,各个数据通信模块之间通过互连通路构成片上互连系统。互连通路可根据实际需求采用网络、总线或crossbar等形式。
本实施例中,数据通信装置发送事务具体包括:
数据通信装置将需要发送的事务提交至发送事务队列中;
数据通信装置从发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务并执行发送,读返回事务队列中存储有每当数据通信装置接收到读事务时衍生得到的对应的读返回事务;
数据通信装置判断当前待发送的事务类型,若为读事务,则存储一份读事务至未完成读事务队列中,并控制进入返回数据接收准备状态;如果为写事务,则判定需要发送写数据;如果为读返回事务,则判定需要发送读返回数据。
本实施例通过数据通信装置发送事务,并根据事务类型执行对应的操作,当为写事务或读返回事务时,则需要发送写数据、读返回数据,则DSP内核控制接入需要发送的数据至发送数据缓冲中以执行发送,当为读事务时,则控制进入数据接收准备以接收返回的数据。
本实施例中,数据通信装置接收来自源DSP内核的事务具体包括:数据通信装置接收来自源DSP内核的事务,并判断接收到的事务类型,若为读事务,则将接收到的读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,则判定需要接收返回的读数据;若为写事务,则判定同时需要接收写数据;未完成读事务队列中存储有数据通信装置还未接收到对应的读返回事务的读事务。
本实施例通过数据通信装置接收事务,并根据接收到的事务类型执行对应的操作,当为读事务时,则自动衍生为读返回事务发送回源DSP内核,当为读返回请求时,则通过与未完成读事务进行匹配判断是否需要返回读数据,若为写事务,则需要接收源DSP内核发送的写数据。
如图3所示为本实施例采用的数据通信装置结构,包括用于发送事务及数据的发送单元1、用于接收事务及数据的接收单元2以及分别与发送单元1、接收单元2连接的全局事务管理单元3,全局事务管理单元3根据事务类型控制发送单元1、接收单元2的执行状态。
本实施例中,发送单元1包括用于缓冲待发送数据的数据发送缓冲11、用于执行数据发送的发送接口12以及用于控制数据发送过程的发送机13,数据发送缓冲11、发送机13分别与发送接口12连接,数据发送缓冲11接收待发送数据进行缓存,由发送接口12在发送机13的控制下执行数据发送;接收单元2包括用于缓冲待接收数据的数据接收缓冲21、用于执行数据接收的接收接口22以及用于控制数据接收过程的接收机23,数据接收缓冲21、接收机23分别于接收接口22连接,接收接口22在控制接收机23的控制下接收数据,由数据接收缓冲21进行数据缓存。发送接口12、接收接口22分别接入网络中,数据发送缓冲11、数据接收缓冲子单元21分别与DSP Load/Store(L/S)总线连接,能够支持DSP L/S流水线的直接读写,从而降低编程开销,对小粒度的快速通信提供了有效的支持。
本实施例发送单元1发送数据时,通过发送接口12从数据发送缓冲11取出待发送数据,并将数据封装成报文发送至互连网络中,由发送机13对数据发送过程进行控制并向全局事务管理单元3输出自身状态;接收单元2接收数据时,通过接收接口22从互连网络中接收数据报文,将数据报文进行拆解后将数据写入数据接收缓冲21中,或接收接口22直接将接收到的数据报文反馈给接收机23,由接收机23对数据接收过程进行控制并向全局事务管理单元3输出自身状态、以及提交衍生的读返回事务。读返回事务是由接收单元2在接收到读事务后,向当前读事务的发送方DSP核自动衍生的写事务,由发送单元1执行发送。
本实施例中,数据发送缓冲11、数据接收缓冲21还分别与存储总线连接,通过存储总线接收来自本地存储器的数据执行发送或接收数据后返回至本地存储器。参见图3,数据发送缓冲11、数据接收缓冲21与DSP的L/S总线和本地存储总线都有连接接口,数据发送缓冲11可以直接接收来自DSP的L/S总线的数据,也可以接收来自本地存储器总线的数据;数据接收缓冲21可以直接将接收到的数据返回给DSP的L/S总线,也可以将数据写到本地存储器总线上,能够支持本地存储器总线到发送机13、接收机23的直接通路,不仅降低了控制开销,而且降低了数据流转开销。
本实施例中,数据通信装置发送事务、接收事务通过全局事务管理单元3控制实现,全局事务管理单元3具体包括:
发送事务管理子单元,用于控制发送事务,将需要发送的事务提交至发送事务队列中,从发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务,并控制发送单元1执行发送,读返回事务队列中存储有每当接收单元2接收到读事务时衍生得到的对应的读返回事务;判断当前待发送的事务类型,若为读事务,则存储一份读事务至未完成读事务队列中,并控制接收单元2进入返回数据接收准备状态;
接收事务管理子单元,用于控制接收事务,接收单元2接收到事务后,判断事务类型,若为读事务,则将接收到的读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,控制接收单元2接收返回的读数据;若为写事务,则控制接收单元2接收写数据;未完成读事务队列中存储有还未接收到对应的读返回事务的读事务。
本实施例中由全局事务管理单元3具体对全局事务进行管理和控制、并完成与DSP内核之间的控制信息的交换,主要执行以下四类操作:
①接收DSP内核总线发送的事务信息,并转换成相应的发送事务或者数据接收事务分别传给发送单元1的发送机13和接收单元2的数据接收机23;
②将接收机23接收到的读事务自动衍生成读返回事务送给发送机13;
③向DSP内核报告发送机13和接收机23的状态,包括缓冲状态、中断信号等;
④对发送机13和接收机23进行状态控制。
本实施例中事务类型包含三类:读事务、写事务和读返回事务,如图4所示,DSP内核通过全局事务管理单元3可以生成读事务和写事务,读事务和写事务由发送方的发送单元1以报文的形式经由中间互连通路传送到接收方的接收单元2,接收单元2解析报文后有两种处理方式:1)若解析发现是读事务,则根据此报文信息,由全局事务管理单元3直接衍生出读返回事务,交由接收方的发送单元1执行;2)若解析发现是写事务,则由接收单元2执行写数据接收;3)若解析发现是读返回事务,则由接收单元2执行读返回数据接收,并执行该事务与未完成读事务的匹配,若发生未匹配错误,则终止此次接收并报错。发送单元1对于发送事务有三种处理方式:1)若发送事务是读事务,则直接发送读事务至接收方的接收单元2,并将未完成的读事务保存在自身发送单元1中,形成未完成读事务列表;2)若发送事务是写事务,则发送写事务同时发送写数据至接收方的接收单元2;3)若发送事务为读写返回事务,则保存由读写返回事务衍生的读返回事务并存储至读返回事务队列中。
如图5所示为本发明具体实施例中控制发送事务的原理示意图,通过全局事务管理单元3控制实现,具体为:DSP内核通过发送寄存器组中点火寄存器向发送事务队列提交发送事务,读返回事务队列中保存根据接收单元2接收的读事务衍生的读返回事务;接收单元2接收到的读事务将自动衍生读返回事务,进入读返回事务队列;通过二选一选择器交替的从发送事务队列和读返回事务队列中取出队头的事务作为当前发送事务送入到发送单元1,若当前发送事务是读事务,则将该事务信息将保存到未完成事务队列中。接收单元2接收到一个读返回事务的时候,将该事务的信息与未完成读事务队列中的事务进行匹配,若匹配成功,则控制接收单元2执行接收操作,否则丢弃该事务。
本实施例中,数据通信装置执行发送时,当数据发送完成后向DSP内核发出发送事务完成中断信号,具体步骤为:数据通信装置判断所发送的数据个数以及数据发送完成状态,当判断到所发送的数据个数等于发送配置的数据个数时,且处于数据发送已完成状态时,生成发送事务完成中断信号发送至DSP内核。数据通信装置接收数据时,当数据接收完成后向DSP内核发出接收事务完成中断信号,具体步骤为:数据通信装置判断所接收的数据个数以及数据接收完成状态,当判断到所接收的数据个数等于接收配置的数据个数时,且处于数据接收已完成状态时,生成接收事务完成中断信号发送至DSP内核。通过事务完成中断信号作为事件同步信号,实现事务之间的同步。
如图6所示为本发明具体实施例中产生事务完成中断信号的原理示意图,通过全局事务管理单元根据发送单元1、接收单元2的状态控制产生,具体为:若发送单元1当前发送计数器的计数等于发送事务的配置的数据个数、并且发送机13处于数据发送完成状态时,发送单元1向DSP发出发送事务完成中断信号;当接收单元2当前接收计数器的个数等于接收配置中获得的数据个数、并且接收机23处于数据接收完成状态时,接收单元2向DSP发出接收事务完成中断信号。
本实施例中,待发送数据执行发送时,将待发送数据封装为数据报文进行发送,数据报文中包括报文头域和报文数据负载域,报文数据负载域中包含所需要发送的数据;报文头域包括报文请求的来源、目的处理器核以及请求类型等,从而在接收方对数据报文进行解析后,即可获得对应的请求来源、目的处理器核以及请求类型等信息,以实现DSP核间通信双方的数据交换。
如图7所示为数据报文的具体格式,数据报文包括报文头域和报文数据负载域,报文数据负载域中包含写事务或读写返回事务所需要传输的数据;报文头域包括报文请求字的字段和报文事务信息字段,报文请求字的字段包含当前报文请求的来源、目的处理器核以及请求类型子字段,供感兴趣的互连通路进行路由以及接收方进行;报文事务信息包含事务类型、数据存储地址、报文负载长度子字段。其中,报文数据负载是可选部分,包含当次事务传输的数据,可能为字、半字或者字节宽度,在读事务中报文不包含报文数据负载部分;事务类型包括读事务、写事务、读返回事务以及其他可能扩展事务。数据通信模块之间为实现有效通信,则互连通路需要满足数据通信模块的报文协议。
本实施例中,将待发送数据写入发送数据缓冲,具体是通过DSP内核查询发送数据缓冲的状态,以控制定期写入待发送的数据至发送数据缓冲中;或将待发送数据写入发送数据缓冲,具体是通过发送数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制写入待发送的数据至发送数据缓冲中;或将待发送数据写入发送数据缓冲,具体是采用DSP内核后台执行的方式,控制直接从本地存储器读取出待发送的数据写入至发送数据缓冲中;待发送数据为来自DSP内核或本地存储器的数据。本实施例数据通信装置通过多种数据总线接口与DSP内核和存储器均直接相连,可以接收来自DSP内核或存储器的数据。
本实施例中,将接收到的数据返回,具体是通过DSP内核查询接收数据缓冲的状态,以控制定期将接收数据缓冲中数据读取消费;或将接收到的数据返回,具体是由接收数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制将接收数据缓冲中数据读取消费;或将接收到的数据返回,采用DSP内核后台执行的方式将接收数据缓冲中数据读取消费;数据通信装置接收到的数据可以直接返回至DSP内核或本地存储器。
本实施例通过控制发送数据缓冲写入待发送数据中执行发送,以及通过控制接收数据缓冲接收数据,能够支持多种类型的数据发送、接收方式,数据通信方式灵活,用户可以根据应用程序灵活的配置数据发送、接收的形式为DSP内核查询方式、基于数据缓冲中断信号的DSP中断方式或DSP后台方式等,同时通过多种数据总线接口与DSP内核和存储器均直接相连,可以接收来自DSP内核或存储器的数据,因而通信方式灵活且通信效率高。
如图8所示,本实施例中进行大量数据交换时发送单元1执行数据发送的具体工作流程为:
步骤1)配置发送寄存器组,DSP内核通过全局事务管理单元3中发送寄存器组配置发送事务,并将发送单元1都退出复位状态,通过点火寄存器实现发送事务的提交;
步骤2)按照提交事务的类型处理:
步骤2.1)若提交事务为写事务:
步骤2.1.1)根据DSP内核的数据发送模式执行步骤2.1.1.1)~步骤2.1.1.3):
步骤2.1.1.1)若采用DSP查询方式,则DSP内核通过程序定期或合适的时候查询数据发送缓冲11的状态,以定期或合适的时候通过DSP的L/S总线向数据发送缓冲11写入所需发送的数据;
步骤2.1.1.2)若采用DSP中断方式,则DSP内核通过中断服务程序,使得当数据发送缓冲11发出中断信号时,通过DSP的L/S总线向发送单元1的数据缓冲写入所需发送的数据,即通过中断报告方式写入所需发送的数据至发送缓冲;
步骤2.1.1.3)若采用DSP后台方式,发送单元1直接从本地存储器读出发送数据写入数据发送缓冲11中,并执行发送,同时DSP内核可以转为执行其他任务;
步骤2.1.2)重复步骤2.1.1)直到数据发送完成,且当数据发送完成后发送单元1发出发送事务完成中断信号,DSP内核根据需要进行响应;
步骤2.2)若提交事务为读事务,由于该读事务在目的端将衍生读返回事务,因此使得当前接收单元2进行数据接收流程,以做好接收数接收返回数据的准备。
如图9所示,本实施例中进行大量数据交换时接收单元2执行数据接收的具体工作流程为:
步骤1)DSP内核通过全局事务管理单元3中的配置寄存器组,使接收单元2退出复位状态,进入可接收事务状态;
步骤2)根据DSP内核的数据接收模式执行步骤2.1)~步骤2.3):
步骤2.1)若采用DSP查询方式,则DSP内核通过程序定期或合适的时候查询数据接收缓冲21的状态,定期或合适的时候将数据接收缓冲21中的数据读走消费;
步骤2.2)若采用DSP中断方式,则DSP内核通过断服务程序,当数据接收缓冲21发出中断信号时,从数据接收缓冲21中读走数据,即通过中断报告的方式读走接收数据;
步骤2.3)若采用后台方式,等待数据接收完成,同时DSP内核可以转为执行其他任务;
步骤3)重复步骤2)直到数据接收完成,并当数据接收完成后接收单元2发出接收事务完成中断信号,DSP内核根据需要进行响应。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种用于多核DSP间的片上通信方法,其特征在于,所述方法包括:
为各DSP内核分别配置一个数据通信装置;
各DSP内核通过所述数据通信装置发送事务至目的DSP内核,且当需要发送数据时,控制将待发送数据写入至所述数据通信装置的发送数据缓冲中,并通过所述数据通信装置执行发送;
各DSP内核通过所述数据通信装置接收来自源DSP内核的事务,且当需要接收数据时,通过所述数据通信装置的接收数据缓冲接收数据,以控制将接收到的数据返回至对应的DSP内核或者对应存储体。
2.根据权利要求1所述的用于多核DSP间的片上通信方法,其特征在于,所述数据通信装置发送事务具体包括:
所述数据通信装置将需要发送的事务提交至发送事务队列中;
所述数据通信装置从所述发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务并执行发送,所述读返回事务队列中存储有每当所述数据通信装置接收到读事务时衍生得到的对应的读返回事务;
所述数据通信装置判断当前待发送的事务类型,若为读事务,则存储一份所述读事务至未完成读事务队列中,并控制进入返回数据接收准备状态;如果为写事务,则判定需要发送写数据;如果为读返回事务,则判定需要发送读返回数据。
3.根据权利要求2所述的用于多核DSP间的片上通信方法,其特征在于:所述将待发送数据写入发送数据缓冲,具体是通过DSP内核查询所述发送数据缓冲的状态,以控制定期写入待发送的数据至所述发送数据缓冲中;或所述将待发送数据写入发送数据缓冲,具体是通过所述发送数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制写入待发送的数据至发送数据缓冲中;或所述将待发送数据写入发送数据缓冲,具体是采用DSP内核后台执行的方式,控制直接从本地存储器读取出待发送的数据写入至所述发送数据缓冲中;所述待发送数据为来自DSP内核或本地存储器的数据。
4.根据权利要求1或2或3所述的用于多核DSP间的片上通信方法,其特征在于,所述数据通信装置接收来自源DSP内核的事务具体包括:所述数据通信装置接收来自源DSP内核的事务,并判断接收到的事务类型,若为读事务,则将接收到的所述读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,则判定需要接收返回的读数据;若为写事务,则判定同时需要接收写数据;所述未完成读事务队列中存储有所述数据通信装置还未接收到对应的读返回事务的读事务。
5.根据权利要求4所述的用于多核DSP间的片上通信方法,其特征在于:所述将接收到的数据返回,具体是通过DSP内核查询所述接收数据缓冲的状态,以控制定期将接收数据缓冲中数据读取消费;或所述将接收到的数据返回,具体是由所述接收数据缓冲产生中断信号,并在DSP内核接收到中断信号时控制将接收数据缓冲中数据读取消费;或所述将接收到的数据返回,采用DSP内核后台执行的方式将所述接收数据缓冲中数据读取消费;所述接收到的数据返回至DSP内核或本地存储器。
6.根据权利要求5所述的用于多核DSP间的片上通信方法,其特征在于:所述数据通信装置执行发送时,当数据发送完成后向DSP内核发出发送事务完成中断信号,具体步骤为:所述数据通信装置判断所发送的数据个数以及数据发送完成状态,当判断到所发送的数据个数等于发送配置的数据个数时,且处于数据发送已完成状态时,生成发送事务完成中断信号发送至DSP内核;
所述数据通信装置接收数据时,当数据接收完成后向DSP内核发出接收事务完成中断信号,具体步骤为:所述数据通信装置判断所接收的数据个数以及数据接收完成状态,当判断到所接收的数据个数等于接收配置的数据个数时,且处于数据接收已完成状态时,生成接收事务完成中断信号发送至DSP内核。
7.根据权利要求1或2或3所述的用于多核DSP间的片上通信方法,其特征在于:所述数据通信装置执行发送时,将待发送数据封装为数据报文后进行发送,所述数据报文中包括报文头域和报文数据负载域,所述报文数据负载域中包含所需要发送的数据;所述报文头域包括报文请求的来源、目的处理器核以及请求类型。
8.一种采用权利要求1~7中任意一项所述方法的数据通信装置,其特征在于,包括:用于发送事务及数据的发送单元(1)、用于接收事务及数据的接收单元(2)以及分别与所述发送单元(1)、接收单元(2)连接的全局事务管理单元(3),所述全局事务管理单元(3)根据事务类型控制所述发送单元(1)、接收单元(2)的执行状态。
9.根据权利要求8所述的数据通信装置,其特征在于:所述发送单元(1)包括用于缓冲待发送数据的数据发送缓冲(11)、用于执行数据发送的发送接口(12)以及用于控制数据发送过程的发送机(13),所述数据发送缓冲(11)、发送机(13)分别与所述发送接口(12)连接;所述接收单元(2)包括用于缓冲待接收数据的数据接收缓冲(21)、用于执行数据接收的接收接口(22)以及用于控制数据接收过程的接收机(23),所述数据接收缓冲(21)、接收机(23)分别于所述接收接口(22)连接;所述数据发送缓冲(11)、数据接收缓冲(21)分别与DSP总线连接,或所述数据发送缓冲(11)、数据接收缓冲(21)均分别与DSP总线以及本地存储总线连接。
10.根据权利要求8或9所述的数据通信装置,其特征在于,所述全局事务管理单元(3)包括:
发送事务管理子单元,用于控制发送事务,将需要发送的事务提交至发送事务队列中,从所述发送事务队列、读返回事务队列中交替取出事务作为当前待发送的事务,并控制发送单元(1)执行发送,所述读返回事务队列中存储有每当接收单元(2)接收到读事务时衍生得到的对应的读返回事务;判断当前待发送的事务类型,若为读事务,则存储一份所述读事务至未完成读事务队列中,并控制接收单元(2)进入返回数据接收准备状态;
接收事务管理子单元,用于控制接收事务,接收单元(2)接收到事务后,判断事务类型,若为读事务,则将接收到的所述读事务衍生为对应的读返回事务,并存储至读返回事务队列中作为待发送的事务;若为读返回事务,则将接收到的读返回事务与未完成读事务队列中事务进行匹配,且当匹配成功时,控制接收单元(2)接收返回的读数据;若为写事务,则控制接收单元(2)接收写数据;所述未完成读事务队列中存储有还未接收到对应的读返回事务的读事务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510210877.8A CN104933009A (zh) | 2015-04-29 | 2015-04-29 | 一种用于多核dsp间的片上通信方法及数据通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510210877.8A CN104933009A (zh) | 2015-04-29 | 2015-04-29 | 一种用于多核dsp间的片上通信方法及数据通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104933009A true CN104933009A (zh) | 2015-09-23 |
Family
ID=54120178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510210877.8A Pending CN104933009A (zh) | 2015-04-29 | 2015-04-29 | 一种用于多核dsp间的片上通信方法及数据通信装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104933009A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN109189472A (zh) * | 2018-08-06 | 2019-01-11 | 北京电子工程总体研究所 | 一种指令和数据交互的方法、计算机设备及存储介质 |
CN110647494A (zh) * | 2019-10-09 | 2020-01-03 | 盛科网络(苏州)有限公司 | 多处理器通信方法及装置 |
WO2020087248A1 (zh) * | 2018-10-30 | 2020-05-07 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构和数据发送的方法 |
CN113535425A (zh) * | 2021-06-16 | 2021-10-22 | 南京南瑞继保电气有限公司 | 一种数据发送方法、装置、电子设备及存储介质 |
CN114077568A (zh) * | 2020-08-18 | 2022-02-22 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子组件以及电子设备 |
WO2023231768A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种多核处理器及相关核间通信方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135929A (zh) * | 2007-09-28 | 2008-03-05 | 中国科学院计算技术研究所 | 一种多核处理器及其变频装置和核间通信方法 |
CN101546277A (zh) * | 2009-04-27 | 2009-09-30 | 华为技术有限公司 | 一种多核处理器平台及多核处理器同步的方法 |
US20090265485A1 (en) * | 2005-11-30 | 2009-10-22 | Broadcom Corporation | Ring-based cache coherent bus |
CN101673244A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 多核或集群系统的存储器控制方法 |
CN102141974A (zh) * | 2011-04-11 | 2011-08-03 | 复旦大学 | 一种多核处理器核间通信方法及其电路结构 |
CN102446157A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 基于阵列结构的处理器核心的通信方法及通信装置 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
-
2015
- 2015-04-29 CN CN201510210877.8A patent/CN104933009A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265485A1 (en) * | 2005-11-30 | 2009-10-22 | Broadcom Corporation | Ring-based cache coherent bus |
CN101135929A (zh) * | 2007-09-28 | 2008-03-05 | 中国科学院计算技术研究所 | 一种多核处理器及其变频装置和核间通信方法 |
CN101673244A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 多核或集群系统的存储器控制方法 |
CN101546277A (zh) * | 2009-04-27 | 2009-09-30 | 华为技术有限公司 | 一种多核处理器平台及多核处理器同步的方法 |
CN102446157A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 基于阵列结构的处理器核心的通信方法及通信装置 |
CN102141974A (zh) * | 2011-04-11 | 2011-08-03 | 复旦大学 | 一种多核处理器核间通信方法及其电路结构 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN108228524B (zh) * | 2016-12-14 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN109189472A (zh) * | 2018-08-06 | 2019-01-11 | 北京电子工程总体研究所 | 一种指令和数据交互的方法、计算机设备及存储介质 |
WO2020087248A1 (zh) * | 2018-10-30 | 2020-05-07 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构和数据发送的方法 |
CN110647494A (zh) * | 2019-10-09 | 2020-01-03 | 盛科网络(苏州)有限公司 | 多处理器通信方法及装置 |
WO2021068978A1 (zh) * | 2019-10-09 | 2021-04-15 | 盛科网络(苏州)有限公司 | 多处理器通信方法及装置 |
CN114077568A (zh) * | 2020-08-18 | 2022-02-22 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子组件以及电子设备 |
CN113535425A (zh) * | 2021-06-16 | 2021-10-22 | 南京南瑞继保电气有限公司 | 一种数据发送方法、装置、电子设备及存储介质 |
WO2023231768A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种多核处理器及相关核间通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933009A (zh) | 一种用于多核dsp间的片上通信方法及数据通信装置 | |
CN109213706A (zh) | 用于访问作为存储器的存储设备的系统和方法 | |
CN104303166B (zh) | 高性能互连链路层 | |
CN105593830B (zh) | 用于测量电路的物理单元中的等待时间的方法、装置和系统 | |
Mamidala et al. | MPI collectives on modern multicore clusters: Performance optimizations and communication characteristics | |
US7971029B2 (en) | Barrier synchronization method, device, and multi-core processor | |
CN110366842A (zh) | 可调节的重定时器缓冲器 | |
TW200405208A (en) | A scalar/vector processor | |
CN108701023A (zh) | 带内重定时器寄存器访问 | |
CN110036380A (zh) | 用于高速互连中低延迟的双模phy | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
CN110034870A (zh) | 在通道测试期间在多通道链路中的串扰生成 | |
CN102521201A (zh) | 多核数字信号处理器片上系统及数据传输方法 | |
CN102984123A (zh) | 使用多个消息组的计算机系统中的代理之间的通信消息请求事务类型 | |
CN105025070A (zh) | 用于优化约束系统内的网络数据流的方法 | |
CN102929363B (zh) | 一种高密度刀片服务器的设计方法 | |
CN105207957A (zh) | 一种片上网络多核架构 | |
WO2023040197A1 (zh) | 一种跨节点通信方法、装置、设备及可读存储介质 | |
CN102301363A (zh) | 数据处理节点、系统及方法 | |
CN103282888A (zh) | 数据处理方法、图像处理器gpu及第一节点设备 | |
CN107436851A (zh) | 串行外设接口四线隔离系统及其控制方法 | |
CN100562864C (zh) | 一种嵌入式异构多核体系片上通信的实现方法 | |
CN102929329A (zh) | 片上系统间互连网络的动态重构方法 | |
CN103106177B (zh) | 多核网络处理器的片上互联结构及其方法 | |
CN103217681B (zh) | 一种树形拓扑机构多处理器声纳信号处理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150923 |
|
RJ01 | Rejection of invention patent application after publication |