CN117616735A - 一种数据传输装置、方法及相关设备 - Google Patents

一种数据传输装置、方法及相关设备 Download PDF

Info

Publication number
CN117616735A
CN117616735A CN202180100274.6A CN202180100274A CN117616735A CN 117616735 A CN117616735 A CN 117616735A CN 202180100274 A CN202180100274 A CN 202180100274A CN 117616735 A CN117616735 A CN 117616735A
Authority
CN
China
Prior art keywords
router
data
processing unit
unit
receiving
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
Application number
CN202180100274.6A
Other languages
English (en)
Inventor
欧阳伟龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN117616735A publication Critical patent/CN117616735A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • H04L45/655Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种数据传输装置、方法及相关设备。其中,一种数据传输装置,可包括:多个处理单元和多个路由器,每个路由器与一个或多个处理单元连接,每个路由器与多个路由器中任意一个路由器形成通信连接关系;多个路由器包括第一路由器,第一路由器与第一处理单元连接。第一处理单元用于:生成第一请求;在确定第一路由器的接收数据的状态就绪后,基于第一请求,确定第一时钟信号;基于第一时钟信号向第一路由器发送目标数据,并将第一时钟信号发送至第一路由器。第一路由器用于:基于第一时钟信号接收第一处理单元发送的目标数据;根据目的地址,向第二处理单元发送目标数据。实施本申请实施例,可以在减少芯片面积的同时提升系统性能。

Description

一种数据传输装置、方法及相关设备 技术领域
本申请涉及信息技术领域,尤其涉及一种数据传输装置、方法及相关设备。
背景技术
随着互联网化和行业数字化的深入,个人和行业智能终端的厂家越来越普遍采用片上系统(system on chip,soc)技术集成多个种类的芯片知识产权(intellectual property core,ip)核,如微处理器,中央处理单元(central processing unit,cpu),数字信号处理(digital signal processing,dsp),图像处理单元(graphics processing unit,gpu),神经网络处理单元(neural-network processing unit,npu)内存,网络联接芯片等等,集成ip核的数量也从几十个增长到上百个。这就是导致每个ip核之间需要更多互连和带宽来支撑越来越多实时数据通信。
异步电路设计技术因天然取消时钟,可实现全局异步本地同步(globally-asynchronous locaiiy-synchronous,gals)的新型soc集成架构,可大大简化芯片设计复杂度,减少开发投入和周期。其中,noc(network over chip/片上网络)架构是目前主流的大规模ip核集成的总线集成技术,每个路由节点(node)都是四个互连方向与其他路由节点相连,形成一张网状的全互连的网络,每个处理进程实体(process entity,pe)只与其中一个路由节点相连,与其他pe进行通信,其中,不同的pe工作在不同的主频上。
然而,现有的noc架构中每个路由节点只能接一个处理进程实体(即,pe),路由器数量多,占用大量芯片面积。同时,现在noc架构采用网状互连架构且现在需要集成的处理单元的ip规模面积均很大,如可达亿级晶体管,路由器出线多且长,引入传输时延大且不同局向的时延也差异大,导致时序分析和收敛难度大。
因此,如何在减少芯片面积的同时提升系统性能,是本申请实施例亟需解决的问题。
发明内容
本申请实施例提供一种数据传输装置、方法及相关设备,减少芯片面积的同时提升系统性能。
第一方面,本申请实施例提供了一种数据传输装置,可包括:多个处理单元和多个路由器,每个上述路由器与一个或多个处理单元连接,每个上述路由器与上述多个路由器中任意一个路由器形成通信连接关系;其中,上述多个路由器包括第一路由器,上述第一路由器与第一处理单元连接。
上述第一处理单元,用于:生成第一请求,上述第一请求用于请求将目标数据发送至第二处理单元,上述目标数据包括第二处理单元的目的地址;在确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定第一时钟信号;基于上述第一时钟信号向上述第一路由器发送上述目标数据,并将上述第一时钟信号发送至上述第一路由器。
上述第一路由器,用于:接收上述第一时钟信号;基于上述第一时钟信号接收上述第一处理单元发送的上述目标数据;根据上述目的地址,向上述第二处理单元发送上述目标 数据。
在第一方面提供的实施例中,基于异步握手机制的数据传输装置在确定路由器(如:第一路由器)接收数据的状态就绪后,使得处理单元(如:第一处理单元)基于发送数据的请求,生成第一时钟信号;并按照第一时钟信号将所述第一时钟信号和所述目标数据发送至路由器中,使得路由器可以通过接收到的第一时钟信号接收目标数据,然后路由器再根据接收到的目标数据中携带的目的地址,向第二处理单元发送该目标数据。这种处理单元和路由器之间异步握手的传输方式可以确保路由器接收完成目标数据。另外,处理单元将发送目标数据时的时钟信号(即,第一时钟信号)也发送至路由器,以使路由器可以根据该时钟信号接收到数据,减少了数据传输装置内的时钟约束,使得数据传输装置内更易集成多种异构的处理单元或知识产权核,同时使得多个路由器之间不受同步时钟限制,决策更快,可有效提升系统的传输性能。而且,处理单元与路由器之间连接数据线相对短且相对确定,会进一步导致在处理单元有发送数据的需求时,对应的时钟信号的时延小且相对确定。与此同时,本申请实施例中一个路由器可以与多个处理单元异步连接,大大减少总线占用的芯片面积。
在一种可能实现的方式中,上述第一路由器还用于:在上述目标数据接收完毕后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪;上述第一处理单元还用于:在监测到上述第一路由器的接收数据的状态就绪变为状态未就绪后,确定上述目标数据发送完成。在本申请实施例中,当路由器中接收数据的状态由就绪状态转变为未就绪状态后,处理单元就可以确定数据发送完毕,即可停止数据发送节省通信资源。其中,就绪状态和未就绪状态可以分别高、低电信号标识。
在一种可能实现的方式中,每个上述处理单元包括第一异步握手电路;上述第一处理单元具体用于:通过上述第一异步握手电路在确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定上述第一时钟信号。在本申请实施例中,第一时钟信号信号(也可以称之为自时序时钟)是由异步握手电路提供的。该异步握手电路,结构简单,可以通过自环路的方式产生自时序时钟,即,在路由器的接收数据的状态就绪和第一请求同时存在时,即可产生自时序时钟,以驱动异步消息发送器以串行单比特的传输方式发送目标数据至路由器。
在一种可能实现的方式中,每个上述处理单元包括异步消息发送器;上述第一处理单元具体用于:基于上述第一请求,控制上述异步消息发送器基于上述第一时钟信号将上述目标数据以串行单比特的传输方式发送至上述第一路由器。在本申请实施例中,该异步消息发送器可以接收第一时钟信号的驱动以串行单比特的传输方式发送目标数据至路由器,实现如处理单元与路由器之间的异步传输。
在一种可能实现的方式中,上述目标数据在发送过程中的数据形式为变长或定长的数据包;上述第一处理单元还用于:在生成第一请求后,设置上述目标数据的包头,将上述包头和上述第一时钟信号发送至上述第一路由器;在上述目标数据的最后一位数据发送完毕后,设置上述目标数据的包尾并发送;上述第一路由器还用于:在接收到上述目标数据对应的包头后,启动接收上述目标数据;在接收到上述目标数据的包尾后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪。在本申请实施例中,通过设置 目标数据的包头和包尾实现目标数据的异步传输,使得不需要同步处理单元与路由器之间的时钟,也令一个路由器更易集成多种异构的处理单元或知识产权核。
在一种可能实现的方式中,每个上述处理单元包括基于先进先出存储机制的存储区域;上述第一处理单元具体用于:将上述目标数据写入至上述基于先进先出存储机制的存储区域后,生成上述第一请求。在本申请实施例中,通过先进先出的存储机制使得在多个目标数据需要发送的情况下,按照一定的时间次序依次发送,使得在发送过程中发送决策更快,可有效提升系统的传输性能。
在一种可能实现的方式中,上述第一处理单元和上述第一路由器之间通过异步消息总线连接,其中,上述异步消息总线包括接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。在本申请实施例中,异步消息总线包括四根信号线,即,接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。其中,接收就绪信号线用于传输就绪信号,该就绪信号用于指示接收数据的状态就绪;时钟信号线用于传输第一时钟信号;消息有效位信号线用于传输目标数据的包头信号和包尾信号;一根或多根数据线用于传输目标数据的有效数据。该四种信号线大大缓解了现有技术中处理单元与路由器之间出线多、出线复杂等问题,减少了整个异步消息总线占用的芯片面积。可选的,根据业务需求,该数据线还可以是支持多通道的多根数据线。
在一种可能实现的方式中,每个上述路由器包括多组端口,每组上述端口包括接收端口和发送端口,其中,每个上述接收端口用于接收数据,每个上述发送端口用于发送数据。在本申请实施例中,路由器通过可配置的端口,配置与路由器连接的处理单元或其他路由器。通过基于端口可配置的路由器,可灵活重构的组网架构,如点到点,多点到多点等架构。而且,路由器的内部每个端口都连接有接收单元或发送单元,以便收发数据。
在一种可能实现的方式中,每个上述接收端口与一个接收单元对应,每个上述接收单元包括基于先进先出存储机制的存储区域;上述第一路由器具体用于:基于上述第一时钟信号,通过目标接收端口驱动第一接收单元内的上述存储区域接收上述第一处理单元发送的上述目标数据,上述目标接收端口为上述第一路由器中与上述第一处理单元连接的接收端口。在本申请实施例中,通过先进先出的存储机制使得在多个目标数据需要发送的情况下,按照一定的时间次序依次发送,使得在发送过程中发送单元决策更快,可有效提升系统的传输性能。另外,该基于先进先出存储机制的存储区域可以适用于同步转异步的适配方法,同步写入数据(如:处理单元中将目标数据同步写入发送单元)或读出数据(如:路由器中发送单元基于接收单元的存储区域同步读出数据),异步读出数据(如:处理单元中将目标数据由处理单元中的发送单元异步发送至路由器)或写入数据(如:路由器中的第一接收单元异步写入数据)。
在一种可能实现的方式中,每个上述发送端口与一个发送单元对应;上述第一路由器具体用于:根据上述目的地址,确定上述第一路由器中的目标发送端口,上述目标发送端口为上述第一路由器中与上述第二处理单元对应的发送端口;通过上述目标发送端口对应的第一发送单元向上述第二处理单元发送上述目标数据。在本申请实施例中,通过基于端口可配置的路由器根据目的地址,确定与第一发送单元对应的目标发送端口,并通过该发送端口向第二处理单元发送目标数据。而且,在多个路由器形成的通信连接中,并不需要 确定接收到目标数据时确定端口号,即可根据该目的地址向第二处理单元发送数据。
在一种可能实现的方式中,每个上述路由器包括映射表,上述映射表包括上述路由器中每个上述发送端口的端口标识与对应的上述处理单元的单元标识或其他上述路由器的路由标识之间的映射关系,上述单元标识用于唯一确定上述处理单元,上述路由标识用于唯一确定上述路由器;上述第一路由器具体用于:根据上述目的地址,基于上述第一路由器中的映射表确定上述目标发送端口。在本申请实施例中,通过查询映射表的路由转发机制,简化路由转发过程,提高传输效率。
在一种可能实现的方式中,在上述第二处理单元与第二路由器对应连接,且上述第一路由器与上述第二路由器为上述多个路由器中两个不同的路由器时,上述目标发送端口为与上述第一路由器中与上述第二路由器连接跳数最少的发送端口。实施本申请实施例,在多个路由器形成的通信连接中,路由连接跳数的数据最多的情况是在路由器数量的基础上减一,路由器可以根据目的地址自行选择连接跳数最少的传输路径进行向第二处理单元发送目标数据。
在一种可能实现的方式中,上述第一路由器具体用于:在上述第一发送单元接收到上述第一接收单元发送的第二请求时,控制上述第一发送单元从上述第一接收单元的存储区域中获取上述目标数据,上述第二请求用于请求通过上述第一发送单元发送上述目标数据;通过上述第一发送单元基于上述目标发送端口以串行单比特的传输方式向上述第二处理单元发送上述目标数据。在本申请实施例中,通过基于共享数据的简单发送单元,重用接收端的fifo机制的存储区域,减少数据搬移,提高传输效率。
在一种可能实现的方式中,每个上述路由器包括通道选择器;上述第一路由器的通道选择器用于,联通上述第一接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述第一接收单元的存储区域获取上述目标数据。在本申请实施例中,当有数据发送的需求时,通道选择器可以连通接收单元与发送单元之间的数据通路,以使发送单元可以通过该数据通路复用接收单元的fifo存储区域,减少数据搬移,大大的提高了路由器的传输性能。
在一种可能实现的方式中,每个上述路由器包括仲裁器,每个上述发送单元对应一个上述仲裁器;上述第一路由器的仲裁器用于:在m个接收单元同时向上述第一发送单元请求发送数据时,根据预设仲裁规则,从上述m个接收单元中确定目标接收单元,m为大于1且小于或等于上述路由器包含的全部上述接收单元数量。可选的,上述第一路由器的通道选择器还用于,在上述仲裁器确定上述目标接收单元后,联通上述目标接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述目标接收单元的存储区域获取数据并发送在本申请实施例中,利用仲裁器实现“多到一”的公平仲裁机制,减少路由转发数据时的冲突。其中,为了保证每个发送单元的正常工作,仲裁器与该发送单元存在一一对应的关系。
在一种可能实现的方式中,上述仲裁器包括第二异步握手电路;上述第一路由器的第二异步握手电路用于:在确定上述第一发送单元的发送数据的状态就绪后,基于上述目标接收单元向上述第一发送单元发送的请求发送数据的信号,确定第二时钟信号;上述第一路由器的通道选择器具体用于:基于上述第二时钟信号,联通上述目标接收单元到上述第 二发送的数据通路。在本申请实施例中,路由器中的仲裁器基于Click电路等握手电路的简单令牌环机制,实现该数据传输装置中公平仲裁机制。而且,该仲裁器通过利用同接收单元的时序依赖关系的公共仲裁机制,实现基于数据包的传输机制,性能高。可以理解的是,该路由器中的仲裁器为异步仲裁器。
在一种可能实现的方式中,每个上述仲裁器中上述第二异步握手电路的数量与上述路由器中接收端口的数量相比少一。在本申请实施例中,为了保证除发送端口对应的接收端口外,其他接收端口都需要向发送端口发送消息,所以,仲裁器中第二异步握手电路的数量与路由器中接收端口的数量相比少一。
第二方面,本申请实施例提供了一种数据传输方法,应用于数据传输装置,上述数据传输装置包括:多个处理单元和多个路由器,每个上述路由器与一个或多个处理单元连接,每个上述路由器与上述多个路由器中任意一个路由器形成通信连接关系;其中,上述多个路由器包括第一路由器,上述第一路由器与第一处理单元连接;上述方法包括:通过上述第一处理单元生成第一请求,上述第一请求用于请求将目标数据发送至第二处理单元,上述目标数据包括第二处理单元的目的地址;通过上述第一处理单元确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定第一时钟信号;通过上述第一处理单元基于上述第一时钟信号向上述第一路由器发送上述目标数据,并将上述第一时钟信号发送至上述第一路由器;通过上述第一路由器接收上述第一时钟信号;通过上述第一路由器基于上述第一时钟信号接收上述第一处理单元发送的上述目标数据;通过上述第一路由器根据上述目的地址,向上述第二处理单元发送上述目标数据。
在一种可能实现的方式中,上述方法还包括:通过上述第一路由器在上述目标数据接收完毕后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪;通过上述第一处理单元在监测到上述第一路由器的接收数据的状态就绪变为状态未就绪后,确定上述目标数据发送完成。
在一种可能实现的方式中,每个上述处理单元包括第一异步握手电路;上述第一处理单元具体用于:通过上述第一异步握手电路在确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定上述第一时钟信号。
在一种可能实现的方式中,每个上述处理单元包括异步消息发送器;上述第一处理单元具体用于:基于上述第一请求,控制上述异步消息发送器基于上述第一时钟信号将上述目标数据以串行单比特的传输方式发送至上述第一路由器。
在一种可能实现的方式中,上述目标数据在发送过程中的数据形式为变长或定长的数据包;上述方法还包括:通过上述第一处理单元在生成第一请求后,设置上述目标数据的包头,将上述包头和上述第一时钟信号发送至上述第一路由器;在上述目标数据的最后一位数据发送完毕后,设置上述目标数据的包尾并发送;通过上述第一路由器在接收到上述目标数据对应的包头后,启动接收上述目标数据;在接收到上述目标数据的包尾后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪。
在一种可能实现的方式中,每个上述处理单元包括基于先进先出存储机制的存储区域;上述通过上述第一处理单元生成第一请求,包括:通过上述第一处理单元将上述目标数据 写入至上述基于先进先出存储机制的存储区域后,生成上述第一请求。
在一种可能实现的方式中,上述第一处理单元和上述第一路由器之间通过异步消息总线连接,其中,上述异步消息总线包括接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。
在一种可能实现的方式中,每个上述路由器包括多组端口,每组上述端口包括接收端口和发送端口,其中,每个上述接收端口与一个接收单元对应,用于接收数据,每个上述发送端口与一个发送单元对应,用于发送数据。
在一种可能实现的方式中,每个上述接收端口与一个接收单元对应,每个上述接收单元包括基于先进先出存储机制的存储区域;上述通过上述第一路由器基于上述第一时钟信号接收上述第一处理单元发送的上述目标数据,包括:基于上述第一时钟信号,通过目标接收端口驱动第一接收单元内的上述存储区域接收上述第一处理单元发送的上述目标数据,上述目标接收端口为上述第一路由器中与上述第一处理单元连接的接收端口。
在一种可能实现的方式中,每个上述发送端口与一个发送单元对应;上述通过上述第一路由器根据上述目的地址,向上述第二处理单元发送上述目标数据,包括:根据上述目的地址,确定上述第一路由器中的目标发送端口,上述目标发送端口为上述第一路由器中与上述第二处理单元对应的发送端口;通过上述目标发送端口对应的第一发送单元向上述第二处理单元发送上述目标数据。
在一种可能实现的方式中,每个上述路由器包括映射表,上述映射表包括上述路由器中每个上述发送端口的端口标识与对应的上述处理单元的单元标识或其他上述路由器的路由标识之间的映射关系,上述单元标识用于唯一确定上述处理单元,上述路由标识用于唯一确定上述路由器;上述根据上述目的地址,确定上述第一路由器中的目标发送端口,包括:根据上述目的地址,基于上述第一路由器中的映射表确定上述目标发送端口。
在一种可能实现的方式中,在上述第二处理单元与第二路由器对应连接,且上述第一路由器与上述第二路由器为上述多个路由器中两个不同的路由器时,上述目标发送端口为与上述第一路由器中与上述第二路由器连接跳数最少的发送端口。
在一种可能实现的方式中,上述通过上述目标发送端口对应的第一发送单元向上述第二处理单元发送上述目标数据,包括:在上述第一发送单元接收到上述第一接收单元发送的第二请求时,控制上述第一发送单元从上述第一接收单元的存储区域中获取上述目标数据,上述第二请求用于请求通过上述第一发送单元发送上述目标数据;通过上述第一发送单元基于上述目标发送端口以串行单比特的传输方式向上述第二处理单元发送上述目标数据。
在一种可能实现的方式中,每个上述路由器包括通道选择器;上述方法还包括:通过上述第一路由器的通道选择器联通上述第一接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述第一接收单元的存储区域获取上述目标数据。
在一种可能实现的方式中,每个上述路由器包括仲裁器,每个上述发送单元对应一个上述仲裁器;上述方法还包括:在m个接收单元同时向上述第一发送单元请求发送数据时,通过上述第一路由器的仲裁器根据预设仲裁规则,从上述m个接收单元中确定目标接收单元,m为大于1且小于或等于上述路由器包含的全部上述接收单元数量。
在一种可能实现的方式中,上述方法还包括:在上述仲裁器确定上述目标接收单元后,通过上述第一路由器的通道选择器联通上述目标接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述目标接收单元的存储区域获取数据并发送。
在一种可能实现的方式中,上述仲裁器包括第二异步握手电路;上述在上述仲裁器确定上述目标接收单元后,通过上述第一路由器的通道选择器联通上述目标接收单元到上述第一发送单元的数据通路,包括:在确定上述第一发送单元的发送数据的状态就绪后,基于上述目标接收单元向上述第一发送单元发送的请求发送数据的信号,通过上述第一路由器的第二异步握手电路确定第二时钟信号;基于上述第二时钟信号,通过上述第一路由器的通道选择器联通上述目标接收单元到上述第二发送的数据通路。
在一种可能实现的方式中,每个上述仲裁器中上述第二异步握手电路的数量与上述路由器中接收端口的数量相比少一。
第三方面,本申请实施例提供一种计算机可读存储介质,用于储存为上述第一方面提供的一种数据传输装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第四方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面中的数据传输装置所执行的流程。
第五方面,本申请提供了一种芯片系统,该芯片系统包括了上述第一方面以及结合第一方面的任意一种实现方式所提供的装置。该芯片系统用于实现上述第一方面中所涉及的装置的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存数据传输装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第六方面,本申请实施例提供了一种电子设备,该电子设备包括了上述第一方面以及结合第一方面的任意一种实现方式所提供的装置。该电子设备用于实现上述第一方面中所涉及的功能。
在本申请实施例中,基于异步握手机制的数据传输装置通过处理单元(第一处理单元)在确定路由器(第一路由器)的接收数据的状态就绪后,基于处理单元发送数据的请求,生成第一时钟信号;并按照第一时钟信号将所述第一时钟信号和所述目标数据发送至路由器中,使得与处理单元连接的路由器可以通过第一时钟信号接收到目标数据,然后路由器再根据接收到的目标数据中,携带的目的地址向第二处理单元发送该目标数据。这种处理单元和路由器之间异步握手的传输方式可以确保路由器接收完成目标数据。另外,处理单元将发送目标数据时的时钟信号(即,第一时钟信号)也发送至路由器,以使路由器可以根据该时钟信号接收到数据,减少数据传输装置内的时钟约束,更易集成多种异构的处理单元或知识产权核,同时使得多个路由器之间不受同步时钟限制,决策更快,可有效提升系统的传输性能。而且,处理单元与路由器之间连接数据线相对短且相对确定,会进一步导致在处理单元有发送数据的需求时,对应的时钟信号的时延小且相对确定。与此同时,本申请实施例中一个路由器可以同时与多个处理单元异步连接,大大减少总线占用的芯片 面积。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种数据包的结构示意图。
图2是本申请实施例提供的一种数据传输装置的结构示意图。
图3是本申请实施例提供的另一种数据传输装置的结构示意图。
图4是本申请实施例提供的一种异步消息收发器的结构示意图。
图5是本申请实施例提供的一种Click单元的电路示意图。
图6是本申请实施例提供的一种Click单元处于工作模式下的工作时序示意图。
图7是本申请实施例提供的一种发送单元的结构示意图。
图8是本申请实施例提供的一种异步消息发送处理流程示意图。
图9是本申请实施例提供的一种接收单元的结构示意图。
图10是本申请实施例提供的一种路由器的结构示意图。
图11是本申请实施例提供的一种简单数据传输装置的结构示意图。
图12是本申请实施例提供的一种路由器的实现框图。
图13是本申请实施例提供的一种路由器的转发流程示意图。
图14是本申请实施例提供的一种仲裁流程示意图。
图15是本申请实施例提供的一种仲裁器内部电路结构示意图。
图16是本申请实施例提供的一种基于图7发送单元扩展后的结构示意图。
图17是本申请实施例提供的一种基于图7所示发送单元的数据包传输效果图。
图18是本申请实施例提供的一种基于图16所示发送单元的数据包传输效果。
图19是本申请实施例提供的一种与图16对应的扩展后路由器的实现框图。
图20是本申请实施例提供的一种数据传输方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两 个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
现有的数据在传输过程中,可以分为串行传输和并行传输两种传输方式。其中,串行传输是数据传输在一条信号线路上,按位进行的传输方式。例如,可以使用一根数据线传输数据,一次传输1个比特,多个比特需要一个接一个依次传输。并行传输是数据按照设定的位数分割成块,数据块通过与其位数相同数量的若干数据线同时将各批量数据传送。即,并行传输是将数据传输在多条信号线路上,使用多根并行的数据线一次同时传输多个比特。
串行传输和并行传输的区别:
1、由于传输特性,并行传输的线缆所占用的空间比串行传输的线缆所占用的空间大很多。
2、并行传输中,如果并行的线路之间的物理性质不一致,例如:长度上有细微差别,线缆的材质不同等,会导致并行线路中传输的比特不是同时到达接收方,接收器接收数据时容易出错。
3、串行传输传输频率比并行传输高。
4、并行传输的线路成本是串行传输的若干倍。
与串行传输和并行传输相对应的通信方式为异步通信和同步通信。异步通信在发送数据时,所发送的单位数据之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。相比于同步通信,异步通信的好处是通信设备简单、便宜,最重要的是不需要严格的控制时钟同步。
随着互联网化和行业数字化的深入,目前芯片间的集成ip核的数量也从几十个增长到上百个。这就是导致ip之间需要更多互连和带宽来支撑越来越多实时数据通信。而且,由于当前ip核都是采用同步电路设计技术,需要严格时钟同步且规模越来越大,因此,在高主频和数据位数大的情况下,ip核在soc芯片内的布局布线引入的时延也无法被忽略,导致规模越大的soc芯片的设计复杂度大幅度增加。所以为了简化芯片设计复杂度,减少开发投入和周期,同时又保证芯片的算力,本申请实施例中的芯片间架构采用异步通信与串行传输相结合的方式,并且在单一路由节点尽可能多接处理单元,简化芯片设计复杂度,减小芯片面积。
首先,在本申请实施例的数据传输装置中,传输的数据形式可以是数据包。其中,该数据包可以是定长,也可以是变长的。本申请实施例以变长的数据包为例,数据包结构如图1。其中,请参考附图1,图1是本申请实施例提供的一种数据包的结构示意图。如图1所示,该数据包的各个字段定义如下:
第一个字段是数据包的目的地址,也就是确定该数据包的接受方(第二处理单元),该字段的长度可根据实际总线的规模做相应的扩展。例如,3比特标识。在本申请实施例中可以是第二处理单元的通信地址。
第二字段是数据包的长度字段,表示该数据包的有效数据长度,如图1所示,数据包的有效数据以2比特为基本长度单位,长度字段表示有效数据为2比特的倍数,即2*长度值。
第三字段是数据包的有效数据,是存放该数据包要传递的信息,具体格式可根据设计需要进行约定,本申请实施例不做具体的限定。
第四字段是数据包的传输校验位,是检查传输中是否引入误码,其中,校验方式可根据实际场景选择。例如:可以采用奇偶校验等方式,本申请实施例对此不作具体的限定。
需要说明的是,本申请实施例以在数据传输装置中传输该数据包为例进行说明,并不限制在该数据架构中数据的具体传输形式。例如:还可以是数据帧、数据块等数据形式进行传输。
接下来,本申请实施例以传输的数据如图1所示的数据包为例,简单介绍下本申请实施例中异步通信与串行传输相结合的数据传输装置。请参考附图2,图2是本申请实施例提供的一种数据传输装置的结构示意图。该数据传输装置的结构示意图中,圆形代表处理单元01,方形代表路由器02。
如图2所示:该装置包括多个处理单元01和多个路由器02,所述多个路由器02之间可以形成连接通路,每个所述路由器02与一个或多个处理单元01连接,且每个所述处理单元01有且只有一个对应的路由器02与之连接。即,每个路由器02可以连接多个处理单元01,但每个所述处理单元01只能连接一个路由器02。而且,每个路由器02可以与多个路由器02中任意一个路由器02形成通信连接关系。即,所述多个路由器02中任意一个所述路由器02可以与所述多个路由器02中另外任意一个所述路由器02进行数据传输;进而,与一个所述路由器02连接处理单元01可以通过一个或多个路由器02与另一个路由器02 连接的处理单元01进行数据传输。例如:如图2所示,处理单元101中的数据可以通过路由器102和路由器104传输至处理单元103中。
可选的,多个路由器之间可以通过背靠背级联方式进行连接,减少路由器出线,缩短路由器间互连的线长,缩短传输时延。其中,所谓的背靠背级联方式是将相互连接的两个路由器之间接收端口和发送端口,通过数据线、导线或其他数据传输介质直接连接起来。即两台相互连接的路由器不通过通信网络,而直接通过相关数据传输介质来连接。例如:发送端路由器的发送端口与接收端路由器的接收端口直接连接起来。
可选的,路由器和处理单元之间也可以通过背靠背级联方式进行连接。
其中,该数据传输装置中的第一处理单元用于:生成第一请求,上述第一请求用于请求将目标数据发送至第二处理单元,上述目标数据包括第二处理单元的目的地址;在确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定第一时钟信号;基于上述第一时钟信号向上述第一路由器发送上述目标数据,并将上述第一时钟信号发送至上述第一路由器。
第一路由器用于:接收上述第一时钟信号;基于上述第一时钟信号接收上述第一处理单元发送的上述目标数据;根据上述目的地址,向上述第二处理单元发送上述目标数据。
在本申请实施例中,基于异步握手机制的数据传输装置通过处理单元(第一处理单元)在确定路由器(第一路由器)的接收数据的状态就绪后,基于处理单元发送数据的请求,生成第一时钟信号;并按照第一时钟信号将所述第一时钟信号和所述目标数据发送至路由器中,使得与处理单元连接的路由器可以通过第一时钟信号接收到目标数据,然后路由器再根据接收到的目标数据中,携带的目的地址向第二处理单元发送该目标数据。这种处理单元和路由器之间异步握手的传输方式可以确保路由器接收完成目标数据。另外,处理单元将发送目标数据时的时钟信号(即,第一时钟信号)也发送至路由器,以使路由器可以根据该时钟信号接收到数据,减少数据传输装置内的时钟约束,更易集成多种异构的处理单元或知识产权核,同时使得多个路由器之间不受同步时钟限制,决策更快,可有效提升系统的传输性能。而且,处理单元与路由器之间连接数据线相对短且相对确定,会进一步导致在处理单元有发送数据的需求时,对应的时钟信号的时延小且相对确定。与此同时,本申请实施例中一个路由器可以与多个处理单元异步连接,大大减少总线占用的芯片面积。
需要说明的是,该数据传输装置的处理单元可以包括知识产权(intellectual property,ip)核、微处理器,中央处理单元(central processing unit,cpu),数字信号处理(digital signal processing,dsp),图像处理单元(graphics processing unit,gpu),神经网络处理单元(neural-network processing unit,npu)等等可以进行数据处理的相关处理实体(process entity,pe)。
还需要说明的是,本申请实施例提供的数据传输装置结构不仅仅是如图2所示的闭合式结构,还可以包括非闭合式结构。例如:请参考附图3,图3是本申请实施例提供的另一种数据传输装置的结构示意图。如图3所示,该装置包括多个处理单元01和多个路由器02,所述多个路由器02之间可以形成连接通路,每个所述路由器02与至少两个处理单元01连接,且每个所述处理单元01有且只有一个对应的路由器02与之连接。与图2所示的装置不同,该数据传输装置内的多个路由器呈链状分布,该数据传输过程中最长传输路径 的路由跳数比该数据传输装置内路由器的数量减一。因此,本申请实施例对数据传输装置的连接结构不做具体的限定。
下面以处理单元向路由器发送数据为例,简单介绍下本申请实施例中异步串行传输方式涉及的示例性的电子设备以及相关逻辑模块。
(一)异步消息收发器
本申请实施例中的处理单元01和路由器02中均可以包括异步收发器,该异步收发器可以将目标数据按照异步串行的传输方式进行收发。
该异步收发器包括发送单元和接收单元,该发送单元包括异步握手电路和异步消息发送器,所述异步握手电路用于为所述异步消息发送器提供自时序时钟信号(相当于本申请中的第一时钟信号),以使该异步消息发送器按照该自时序时钟信号将目标数据以串行单比特的传输方式发送。
所述接收单元,用于接收目标数据。
以处理单元向路由器发送数据为例,请参考附图4,图4是本申请实施例提供的一种异步消息收发器的结构示意图。如图4所示:发送端中包括处理单元的发送单元tx(也可称之为异步消息发送单元、第二发送单元等)和消息包管理单元,接收端中包括路由器的接收单元rx(也可称之为异步消息接收单元、第一接收单元等)和消息包管理单元。其中,
发送端的消息包管理单元msg:基于fifo的消息包管理机制,可以驱动异步消息发送单元和异步消息接收单元传输数据包,实现异步消息包传输机制。其中,fifo是指先进先出机制,即最先进入该消息包管理单元中的目标数据最先被发送。另外,该发送端的消息包管理单元可以同步接收处理单元发送目标数据,包括数据发送指示位(数据包的开始位(msg_bn)和结束位(msg_end)),有效数据以及同步时钟等中的一个或多个。还可以向处理单元发送接收指示位(接收到数据)以及反馈数据发送状态(成功或失败)。
接收端的消息包管理单元msg:也是基于fifo的消息包管理机制,另外,该接收端的消息包管理单元可以向路由器或处理单元发送目标数据,包括数据发送指示位(数据包的开始位(msg_bn)和结束位(msg_end)),有效数据以及异步自时钟等。还可以接收路由器或处理单元发送接收指示位(接收到数据)以及反馈数据发送状态(成功或失败)。
发送单元和接收单元:可以实现1、串行单比特传输机制。由于路由器和处理单元时背靠背级联连接的传输架构,所以不同端(例如:不同端是指不同处理单元与路由器之间,不同路由器与路由器之间)的发送单元和接收单元可通过一根或多根数据线来发送或接收数据(如图4中发送数据),例如:可以通过单根数据线实现本申请的串行单比特传输机制。2、缩短数据传输时延。由于本申请实施例中发送单元和接收单元之间数据的最小传输单元可以是数据包,即,本申请实施例采用基于包的异步握手机制替代异步单比特握手的机制,缩短了传输时延,(例如:如图4中发送指示位,通过消息有效位信号线传输的信号确定包的开始位(msg_bn)和结束位(msg_end)。3、简化集成和对接的时序分析。由于不同端之间采用了异步时序(如图4中自时序自时钟),而且针对一个路由器的不同接收单元之间无需严格时钟同步,进一步的简化集成和对接的时序分析,易于根据业务需求做扩展。
需要说明的是,上述发送单元和接收单元之间的具体实施过程请参考下述发送单元和 接收单元装置实施例以及方法实施例的相关描述,此处暂不赘述。
a、发送单元
发送单元包括异步握手电路和异步消息发送器,所述异步握手电路为异步消息发送器提供自时序时钟,所述异步消息发送器按照所述自时序时钟信号将所述目标数据以串行单比特的传输方式发送至路由器。
异步握手电路
首先,简单介绍一下本申请实施例涉及的异步握手电路,该步握手电路可称作click element,以下称Click单元,该Click单元可以为异步消息发送器提供自时序时钟。而且Click单元因设计简单,可大大简化将同步电路改为异步电路的设计复杂度。其中,该Click单元通过自环路的方式产生自时序时钟驱动异步消息发送器连续发送串行数据,自环路的时延由发送单元到接收单元的最大时延决定。
请参考附图5,图5是本申请实施例提供的一种Click单元的电路示意图。该Click单元包括:两个与门,一个或门和锁相寄存器。
与门,是执行“与”运算的基本逻辑门电路。此电路有多个输入端,一个输出端。当所有的输入同时为高电平(逻辑1)时,输出才为高电平,否则输出为低电平(逻辑0)。
或门,是实现逻辑加的电路,又称逻辑和电路。此电路有两个以上输入端,一个输出端。其中,只要有一个或几个输入端是高电平(逻辑1),或门的输出即为高电平(逻辑1)。而只有所有输入端为低电平(逻辑0)时,输出才为低电平(逻辑0)。
锁相寄存器,用于将在本申请实施例中B.ack对应的信号进行电平翻转,即,当B.ack的电平发生变化后,将变化后的电平翻转回来。例如:B.ack由低电平变为了高电平,锁相寄存器可以将高电平重新变为低电平。
即,该Click单元最终输出的Fire=-A.req*A.ack*B.ack+A.req*-A.ack*-B.ack。其中,-A.req为A.req的反转信号。例如:A.req为高电平时,-A.req为低电平。同理,-A.ack和-B.ack分别为A.ack和B.ack的反转信号。一般高电平为1,低电平为0。
其中,该Click单元握手电路包括:前向握手信号线,后向握手信号线和自时钟信号线。
1.前向握手信号线,分别是请求和响应两个信号线,如图5中的A.req,A.ack;
2.后向握手信号线,分别是请求和响应两个信号线,如图5中的B.req,B.ack;
3.自时钟信号线,如图5中Fire。
该自时钟信号线Fire可以驱动基于先进先出机制的数据存储装置(如:寄存器、串行fifo存储器、fifo队列)按照自时钟信号Fire输出数据。
请参考附图6,图6是本申请实施例提供的一种Click单元处于工作模式下的工作时序示意图。Click单元的电路工作模式,其中,如图6所示:信号in_req为上述图5中的A.req信号线输出的信号,in_ack为上述图5中的B.ack信号线输出的信号,out_req为上述图5中的B.req信号线输出的信号,out_ack为上述图5中的A.ack信号线输出的信号。
即,Fire=-in_req*out_ack*in_ack+in_req*-out_ack*-in_ack。
其中,该Click单元的前向握手信号线A.req和后向握手信号线B.ack是该Click单元两个输入信号线,前向握手信号线A.ack和后向握手信号B.req是该Click单元两个输出信 号线。在本申请实施例中,当接收到目标数据的发送请求时,输入信号in_req由低电平变为高电平时(上升沿),即可触发该Click单元自时钟Fire,进行数据的发送。
同时,由图6所示的工作时序可知,该Click单元实现4相握手协议,其中,请求的上升沿和下降沿都可以产生自时序时钟,即,图6所示中的Fire。
需要说明的是,本申请实施例也可采用其他电路用于提供自时序时钟,本申请实施例对此并不做具体的限定。
还需要说明的是,本申请实施例Click单元的具体应用过程还请参考下述装置实施例的相关描述,本申请实施例暂不叙述。
其次,以上述图4中处理单元为发送端为例,介绍下处理单元向路由器发送目标数据时处理单元侧的发送单元的相关实施方式。请参考附图7,图7是本申请实施例提供的一种发送单元的结构示意图。如图7所示:发送单元可以包括Click单元和异步消息发送器,还可以包括异步消息总线。其中,
异步消息总线是指连接接收单元和发送单元的连接数据线,其中,发送单元侧的包括四根信号线,包含接收就绪信号线,自时序时钟信号线,消息有效位信号线,数据线(传输数据的信号线)。接收就绪信号线用于传输指示位,自时序时钟信号线用于传输自时序时钟,消息有效位信号线用于传输数据包的包头和包尾,数据线用于传输有效数据。
Click单元(相当于本申请中的第一异步握手电路),通过自环路的方式产生自时序时钟驱动异步消息发送器连续发送串行数据,其中,Click单元中自环路的时延由处理单元侧发送单元到路由器侧接收单元的最大时延决定。需要说明的是,最大时延可以由连接了处理单元侧发送单元与路由器侧接收单元的数据线的长度、材质等影响数据传输时间的物理量确定。还需要说明的是,Click单元产生自时序时钟的方式可以对应参考上述图5到图6相关实施例的描述,本申请实施例在此暂不赘述。
异步消息发送器,基于上述Click单元提供的自时序时钟的驱动读取串行fifo(基于fifo存储介质)和数据包的有效位,向异步消息总线的数据线和消息有效位输出数据,同时也延迟一定时间也将自时序时钟也输出到异步消息总线的自时序时钟。其中,如图7所示:异步消息发送器包括异步消息发送处理流程,消息长度len,异步串行fifo,包封装模块M,有效数据D。请参考附图8,图8是本申请实施例提供的一种异步消息发送处理流程示意图。如图8所示:异步消息发送处理流程可以启动消息包发送,调用消息len判断消息长度是否大于0;若是,设置发送请求信号A.req;设置消息有效位为有效;等待发送完成设置A.ack,异步串行fifo中的数据移出一位,同时消息len减小1;循环该过程,直至消息len长度为0,设置消息发送完成,并设置消息有效位为无效。其中,消息len用于进行目标数据的包长统计,有效数据D为目标数据中的有效数据。
以发送单元向路由器发送目标数据为例,处理单元侧发送单元中异步消息收发器发送数据流程的具体步骤如下:
1、写发送消息。处理单元先从数据接口向异步消息发送器中的异步串行fifo写入要发送的数据包。
2、启动发送。处理单元通知其异步消息发送单元中异步消息发送处理流程启动数据发 送。
3、设置包头并等待接收。异步消息发送单元在包封装模块M设置包头并等待路由节点的接收端的接收就绪变为有效。
4、请求发送。如接收就绪变为有效,则向异步消息发送单元中的Click单元请求发送。
5、发送比特。Click单元触发时钟,向异步消息总线发送包头,第一个比特数据及对应的时钟脉冲。
6、本比特发送完成。根据预设的时延电路,Click单元向自己反馈该比特发送是否完成。需要说明的是,该时延电路确定的延时时长由数据从发送单元到接收单元之间的距离确定。
7、下一比特。一旦检测到发送完成,Click单元向异步消息发送单元通知可以发第一个比特,如果报文未结束,则重复上述步骤4到7,直到报文的最后一个比特。
8、设置包尾。在检测到最后一个比特之后,异步消息发送单元在数据包模块M设置包尾,重复上述步骤4-7。
9、接收完成。路由节点的接收端在检测到包尾之后,将接收就绪信号设置为无效,表示报文已接收完成。
10、发送完成。处理单元的发送单元在检测到报文接收完成信号,向本端的处理单元通知发送完成。
b、接收单元
另外,请参考附图9,图9是本申请实施例提供的一种接收单元的结构示意图。如图9所示:接收单元可包括:异步消息总线和异步消息接收器两个部分组成。
其中,异步消息总线是指连接接收单元和发送单元的连接数据线,其中,接收单元侧的包括四根信号线(与发送单元侧连接),包含接收就绪信号线,自时序时钟信号线,消息有效位信号线,数据线(传输数据的信号线)。接收就绪信号线用于传输指示位,自时序时钟信号线用于传输自时序时钟,消息有效位信号线用于传输数据包的包头和包尾,数据线用于传输有效数据。
异步消息接收器包括异步消息接收处理流程和异步串行fifo。异步消息接收处理流程可以监管数据接收流程并将数据包保存在异步串行fifo中。由于发送单元将自时序时钟通过异步消息总线传递过来,所以接收单元可直接利用这个时钟信号来接收发送单元传输过来的数据。接收单元需要等待消息发送的完成信号或事件,即可通知下游的处理单元或路由器等读取接收到的数据包。
其中,以上述图4中路由器为接收端为例,介绍下发送单元向路由器发送目标数据时路由器侧接收单元的相关实施方式。如图9所示:具体接收单元接收数据流程的具体步骤如下:
1、接收就绪。在接受到异步消息发送单元发送数据的请求时,本端(路由器中的接收单元)确认可接收新的数据包,设置接收就绪信号。
2、检测到包头。在检测到包头信号时启动接收数据和数据包长统计。
3、接收数据。基于对端(处理单元中的发送单元)的自时钟驱动本端的fifo接收数据 并更新包长统计。
4、检测到包尾。在检测到包尾信号时确认报文已接收完成。
5、接收完成。本端设置接收完成信号通知对端报文已接收完毕,即,将接收就绪信号设置为无效,表示报文已接收完成。
6、消息就绪。通知本端的处理单元(接收目标数据的处理单元)的消息就绪。
7、读接收消息。本端处理单元通过数据接口读取接收到的数据包。
8、读完成。本端处理单元在读完数据包之后设置读完成,本端的接口单元检测该信号之后并重复步骤1准备接收下一数据包。
需要说明的是,步骤6-步骤8是在连接在同一个路由器且没有发送冲突时两个处理单元进行目标数据传输的步骤流程。
由于本申请实施例中发送单元和接收单元之间的最小传输单元是数据包,即,本申请实施例采用基于包的异步握手机制替代异步单比特握手的机制,缩短了传输时延,(例如:如图4中发送指示位,确定包的开始位(msg_bn)和结束位(msg_end)。而且,不同端之间采用了异步时序(如图4中自时序自时钟),无需严格时钟同步,简化集成和对接的时序分析,易于根据业务需求做扩展。
总之,在本申请实施例中路由器和处理单元均包括接收单元和发送单元,其中,该路由器和处理单元中接收单元和发送单元的结构和功能均可参考上述实施例的相关描述。例如:该第一路由器的接收单元和第一处理单元的发送单元之间可以实现1、异步串行单比特传输机制。2、缩短数据传输时延。3、简化集成和对接的时序分析。
(二)路由器
路由器配置有多组路由端口,每组所述路由端口包括接收端口和发送端口,其中,每组所述路由端口接收端口还连接一个接收单元,每组所述路由端口发送端口连接一个发送单元。
其中,路由器包含有异步收发单元(即:与各个端口连接的接收单元或发送单元),映射表,路由仲裁和通道选择器。请参考附图10,图10是本申请实施例提供的一种路由器的结构示意图。如图10所示:
异步收发单元:从路由端口上接收和发送消息包,路由器中异步收发单元也包括接收单元和发送单元(即,RX和TX)。
如上述图10所示:异步收发单元包括多个接收单元和发送单元。每个接收单元和每个发送单元都对应了一个端口。例如:接收单元RX0对应了接收端口A,接收单元RX1对应了接收端口B,接收单元RX2对应了接收端口C,接收单元RX3对应了接收端口D;发送单元TX0对应了发送端口A,发送单元TX1对应了发送端口B,发送单元TX2对应了发送端口C,发送单元TX3对应了发送端口D。
需要说明的是,路由器中的接收单元和发送单元与上述实施例(一)中异步收发器的传输机制相同,可以实现1、串行单比特传输机制。2、缩短数据传输时延。3、简化集成和对接的时序分析等,本申请实施例在此不再赘述。
映射表:包括本路由器各个发送端口与处理单元或其他路由器的连接关系,使得路由 器根据soc的拓扑组网情况配置映射表,查找消息包的发送端口。该映射表包括目标端口号和本路由器发送端口号。其中,目标端口号包括该端口连接的处理单元的单元标识、路由器的路由标识或该端口对应的通信编码、通信地址(如:数据包中包含的目的地址)等等,其中,该单元标识用于唯一识别处理单元,路由标识用于唯一识别路由器。
请参考附图11,图11是本申请实施例提供的一种简单数据传输装置的结构示意图。该数据传输装置包括两个路由器和六个处理单元,其中,每个路由器连接三个处理单元。如图11所示的连接关系,该数据传输装置的每个路由器的映射表如下所示:
表1:路由器1的映射表
目标端口号 本路由器发送端口号
1-处理单元1 1
2-处理单元2 2
3-处理单元3 3
其他 4
表2:路由器2的映射表
目标端口号 本路由器发送端口号
4-处理单元4 1
5-处理单元5 3
6-处理单元6 4
其他 2
需要说明的是,每个路由器只保存自己本地端口对应的映射表。
仲裁器:每个发送端口都对应一个仲裁器,在满足仲裁条件的情况下(如:多个接收端口同时向一个发送端口发送消息时),每次只处理一个接收端口发送请求并每个接收端口都获得公平的发送机会;
通道选择器:连通或断开接收端口到发送端口的数据通道。例如:在满足仲裁条件的情况下,根据仲裁器的仲裁结果,连通或断开接收端口到发送端口的数据通道。又例如:在数据传输完毕的情况下,断开接收端口到发送端口的数据通道。
基于上述图10所示的路由器结构示意图,下面以端口A向端口D发送消息包为例,描述路由器的转发流程,具体步骤如下:请参考附图12和图13,图12是本申请实施例提供的一种路由器的实现框图,图13是本申请实施例提供的一种路由器的转发流程示意图。其中,如图12所示,端口A、端口B和端口C均可以向端口D的仲裁器发送数据请求;仲裁器选择端口A、端口B或端口C向端口D发送数据;通道选择器获取仲裁器确定的发送端口后,打通端口A、端口B或端口C与端口D之间的数据通道;接收端口A、端口B或端口C发送的1、发送请求;2、消息有效位(即,数据的包头或包尾);3、数据位;4、并向其反馈继续发送下一比特的数据位。
以端口A向端口D发送数据为例,如图13所示:
1、路由器的端口A的接收单元收到一个消息包之后,提取目的处理单元的编码,通过目的处理单元的编码查找其所在对应的端口,如端口D。
2、端口A的接收单元向端口的仲裁器请求发送消息包。
3、仲裁器在确认端口D发送就绪之后启动仲裁,如不存在冲突,直接判决给端口A发送消息包。
4、仲裁器向通道选择单元发送选通端口A的信号,打通端口A和端口D的数据通道
5、在数据通道打通之后,端口D的发送就绪信号就可以送到端口A。
6、在检测到端口D的发送就绪信号之后,端口A启动消息包发送。
7、在发送报文结束之后,向仲裁器通知发送完成。
8、接收端口A也同时释放请求。
9、仲裁器根据端口D的发送完成和端口A的释放请求信号之后,向通道选择单元通知释放端口A和端口D的数据通道,至此完成一个完整的发送过程。
路由器中的仲裁器
由于本申请中的仲裁器没有同步时钟周期的仲裁保护窗口,不能完全重用现在同步的仲裁器机制,因此需要设计基于事件达到时间的实时仲裁器机制,可发挥异步的实时优势,同时还要实现公平仲裁。
下面以三个接收端口同时向一个发送端口的冲突场景为例,示例性的说明该发送端口对应仲裁器的工作原理。请参考附图14,图14是本申请实施例提供的一种仲裁流程示意图。如图14所示,步骤如下:
1、仲裁器在判断同时满足预设仲裁条件中的多个,则启动新一轮仲裁,否则等待状态变化。其中,预设仲裁条件如下:
1)至少一个接收端口的异步消息接收器器要向目标发送端口请求发送目标数据。
2)本发送端口处于就绪状态。
3)本发送端口不处于完成状态。
4)本发送端口不被选通。
2、判断接收端口A是否需要选通,如端口A有请求,则设置接收端口A选通;否则,步骤3;
3、判断接收接收端口B是否需要选通,如端口B有请求,则设置接收端口B选通;否则,步骤4;
4、判断接收端口C是否需要选通,如端口C有请求,则设置接收端口C选通;否则,回到步骤1;
5、在接收端口A选通之后,等待接收端口A发送完成,如未完,则等待;否则释放接收端口A的选通信号,到步骤3;
6、在接收端口B选通之后,等待接收端口B发送完成,如未完,则等待;否则释放接收端口B的选通信号,到步骤4;
7、在接收端口C选通之后,等待接收端口C发送完成,如未完,则等待;否则释放接收端口C的选通信号,到步骤1。
请参考附图15,图15是本申请实施例提供的一种仲裁器内部电路结构示意图。如图15是异步仲裁器的实现方案,是基与多个Click电路(可对应参考上述图5所述实施例)的循环仲裁电路,利用Click电路实现令牌环机制,只有收到令牌才能做判决,确保在任意时间序列下每个端口都获得一次判断机会,从而达到循环仲裁的目标。其中,该Click电路的工作模式可以对应参考上述Click电路装置实施例的相关描述本申请实施例再次不再赘述。需要说明的是,该Click电路的数量与路由器中接收端口的数量相对应。
其中,该图15中R A、R B、R C表示接收端口A、接收端口B、接收端口C的信号;S A、S B、S C分别表示接收端口A、接收端口B、接收端口C到发送端口D的连接通路;T A是状态切换指示,T R是发送端口D就绪状态,T C发送端口D发送完成状态。ClickA电路、ClickB电路和ClickC电路是三个异步握手电路(相当于本申请中的第二异步握手电路),&表示与门逻辑电路。其中,图15中的①-⑦对应上述图14中的实现流程的①-⑦。
可以理解的是,本申请实施例对仲裁器的实现方案并不做具体的限定。
基于上述仲裁器内部电路结构,对仲裁器内真值表进行分析。请参考下表3-表5。
表3:三个发送请求同时到达的情况
表4:只有一个发送信号的情况
表5:有两个发送请求同时到达的情况
其中,上述表3至表5的真值表中1为逻辑1,代表真、就绪状态,0为逻辑0,代表假、未就绪状态。发送请求下的PortA、PortB和PortC分别代表接收端口A、接收端口B和接收端口C的发送请求;通道信号下的PortA、PortB和PortC分别代表发送端口D与接收端口A、接收端口B和接收端口C之间的通道信号;发送就绪是指发送端口D是否可以完成发送任务;发送完成是指发送端口D是否完成一个发送任务。例如:发送请求在自时序时钟(相当于本申请实施例中的第二时钟信号)的T0时刻PortA为1是指接收端口A在自时序时钟的T0时刻有发送请求需要被发送。
上述表3(场景一)是三个发送请求同时到达的情况,要实现先发送端口A,再发送端口B,最后发送端口C;表4(场景二)是只有一个发送信号的情况,要实现最短的仲裁周期(如六次Click握手周期);表5(场景三)是有两个发送请求同时到达的情况,也要实现公平调度。
在本申请实施例中,路由器中的仲裁器基于Click电路等握手电路的简单令牌环机制,实现该数据传输装置中公平仲裁机制。而且,该仲裁器通过利用同接收单元的时序依赖关 系的公共仲裁机制,实现基于数据包的传输机制,性能高。
通过本申请实施例可以基于异步消息总线架构,采用端口可复用的路由器和路由器级联技术,可与多个处理单元或路由器相连,布线简单,布线简短,路由算法简单,最多跳数是异步路由器数量减一,时延小且相对确定,大大减少总线占用的芯片面积;而且,路由器中的异步收发单元和处理器中异步收发器的应用可减少时钟约束,更易集成多种异构的处理单元或ip核;路由器中采用异步仲裁器,不受同步时钟限制,决策更快,可有效提升系统的转发性能。
(三)扩展后的接收单元和发送单元。
基于上述图7和图9所示的结构示意图,连接接收单元和发送单元的连接数据线包括四根信号线,包含接收就绪信号线,自时序时钟信号线,消息有效位信号线,数据线(传输数据的信号线)。其中,该数据线用于以串行传输的方式传输有效数据,当需要传输大数据块或向量等要求高速传输的数据时,该接收单元和发送单元之间的传输速度较慢。
由于本申请实施例中基于异步消息收发器的实现方案(图7和图9),通过采用绑定数据传输方案,可方便扩展数据线的通道数,完全可重复使用接收单元和发送单元的控制线及控制逻辑,这样可以就根据需要将数据线扩展来支持大数据传输。因此,为了提高大数据块或传输速度要求较高的数据时,可以增加接收单元和发送单元之间数据线的数量,以实现多通道串行传输的传输方式。
请参考附图16,图16是本申请实施例提供的一种基于图7发送单元扩展后的结构示意图。如图16所示,相较于图7所示的消息总线,图16中的拓展了一条新的数据通道,包括:异步数据总线中添加了新的数据线,异步消息发送器中添加了新的有效数据传输模块D,异步串行fifo-2。
其中,请参考附图17和图18,图17是本申请实施例提供的一种基于图7所示发送单元的数据包传输效果图,图18是本申请实施例提供的一种基于图16所示发送单元的数据包传输效果。扩展后的电路结构示意图。如图17所示,在数据线只有一根时,数据包根据一条数据通道进行串行单比特传输,D0、D1和D2等是数据包中每个单位的数据,每单位数据的大小可以是1比特。如图18所示,在数据线只有多根时(以两根为例),数据包根据多条数据通道进行串行单比特传输,其中,D0、D1和D2等是数据包对应通道中每个单位的数据,每单位数据的大小可以是1比特。此时,在同一异步时钟驱动下,可同时传输多路数据。需要说明的是,当大数据包按照并行数据的方式发送时,可以根据一定的算法如奇偶分行算法,将原有的并行数据转为多个通道的串行数据(如:奇数位比特数据在通道1对应的数据线和串行fifo中传输和存储,偶数位比特在通道2对应的数据线和串行fifo中传输和存储)。
需要说明的是,在发送单元的基础上接收单元可以对应增加串行fifo以保存接收到的数据。
请参考附图19,图19是本申请实施例提供的一种与图16对应的扩展后路由器的实现框图。如图19所示,针对路由器,在扩展后接收单元和发送单元后,只需要扩展通道选择 器,与异步数据收发单元的保持一致即可使得,该通道选择器支持多通道的数据传输即可实现。
需要说明的是,图19只是以扩展数据通道为例示例性的说明,具体的实现方式可以根据业务需求进行定制,本申请实施例对此不做具体的限制。
还需要说明的是,上述图4-上述图19只是本申请实施例示例性的说明,其具体的实现方式本申请实施例并不限制,而且本申请实施例所提及的装置可以是一个控制装置或者一个处理模块等用于对数据传输装置内的数据进行传输,本申请对装置的具体形式不做具体的限定。
还需要说明的是,上述图4-上述图19所述多个单元的划分仅是一种根据功能进行的逻辑划分,不作为对数据传输装置内具体的结构的限定。在具体的实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,数据传输装置在对数据传输的过程中所执行的大致流程是相同的。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在相关硬件装置上运行时,使得该单元执行相应的流程从而实现相应功能。另外,每个单元的功能还可以通过相关的硬件实现。
基于上述装置实施例提供的相关装置,结合本申请中提供的数据传输方法,对本申请中提出的技术问题进行具体分析和解决。
参见图20,图20是本申请实施例提供的一种数据传输方法的流程示意图,该方法可应用于上述图2或图3中所述的数据传输架构中,其中,处理单元可以用于支持并执行图3中所示的方法流程步骤S301-步骤S304。路由器可以用于支持并执行图3中所示的方法流程步骤S305-步骤S308。下面以第一处理单元向目标处理单元发送目标数据为例,示例性的说明本申请实施例中数据传输方法。该方法可以包括以下步骤S301-步骤S308。
步骤S301:第一处理单元确定目标数据。
具体地,第一处理单元确定目标数据,所述目标数据包括第二处理单元的目的地址。其中,目标地址可以为第二处理单元的通信地址。
可选的,目标数据在发送过程中的数据形式为变长或定长的数据包。如上述图1所述的数据包结构。
步骤S302:第一处理单元生成第一请求。
具体地,第一处理单元生成第一请求,所述第一请求用于请求将目标数据发送至第二处理单元。需要说明的是,该第一请求相当于图5所示的A.req信号,当生成第一请求时,相当于该A.req信号由低电平变为高电平。第一请求可以用于触发第一异步握手电路(如图5所示)生成第一时钟信号。
可选的,每个所述处理单元包括基于先进先出存储机制的存储区域。第一处理单元将所述目标数据写入至所述基于先进先出存储机制的存储区域后,生成所述发送请求。其中,该基于先进先出存储机制的存储区域可以是如上述图7或图9中的异步串行fifo模块,还可以是其他形式的存储区域,如:存储器、队列或链表等等。通过先进先出的存储机制使得在多个目标数据需要发送的情况下,按照一定的时间次序依次发送,使得在发送过程中 发送单元决策更快,可有效提升系统的传输性能。
步骤S303:第一处理单元在确定第一路由器的接收数据的状态就绪后,基于第一请求,确定第一时钟信号。
具体地,第一处理单元在确定第一路由器的接收数据的状态就绪后,基于第一请求,确定第一时钟信号。需要说明的是,该第一时钟信号是由第一路由器的接收状态就绪和第一请求同时触发的时钟信号,该时钟信号可以驱动发送单元向接收单元发送数据,也可以驱动接收单元接收发送单元发送的数据。该第一时钟信号相当于上述图7或图9所述实施例中的自时序时钟信号。
可选的,每个上述处理单元包括第一异步握手电路;上述第一处理单元具体用于:通过上述第一异步握手电路在确定上述第一路由器的接收数据的状态就绪后,基于上述第一请求,确定上述第一时钟信号。第一时钟信号信号(也可以称之为自时序时钟)是由异步握手电路提供的。该异步握手电路,结构简单,可以通过自环路的方式产生自时序时钟,即,在路由器的接收数据的状态就绪和第一请求同时存在时,即可产生自时序时钟,以驱动异步消息发送器以串行单比特的传输方式发送目标数据至路由器。
可选的,每个上述处理单元包括异步消息发送器;上述第一处理单元具体用于:基于上述第一请求,控制上述异步消息发送器基于上述第一时钟信号将上述目标数据以串行单比特的传输方式发送至上述第一路由器。该异步消息发送器可以接收第一时钟信号的驱动以串行单比特的传输方式发送目标数据至路由器,实现如处理单元与路由器之间的异步传输。
需要说明的是,该第一时钟信号信号也可以称之为自时序时钟(如上述图7-图9所示实施例),是由异步握手电路提供的,如上述图5所示的Fire信号。该异步握手电路,结构简单,可以通过自环路的方式产生自时序时钟,即,在路由器的接收数据的状态就绪和第一请求同时存在时,即可产生自时序时钟,以驱动异步消息发送器以串行单比特的传输方式发送目标数据至路由器。每个上述处理单元还可以包括发送单元(即,第二发送单元),上述第二发送单元包括第一异步握手电路和异步消息发送器。
步骤S304:第一处理单元基于第一时钟信号向第一路由器发送目标数据,并将第一时钟信号发送至第一路由器。
具体地,第一处理单元中的第二发送单元基于第一时钟信号向第一路由器发送目标数据,并将第一时钟信号发送至第一路由器。
可选的,上述第一处理单元和上述第一路由器之间通过异步消息总线连接,其中,上述异步消息总线包括接收就绪信号线,时钟信号线,消息有效位信号线和数据线。在本申请实施例中,异步消息总线包括四根信号线,即,接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。其中,接收就绪信号线用于传输就绪信号,该就绪信号用于指示接收数据的状态就绪;时钟信号线用于传输第一时钟信号;消息有效位信号线用于传输目标数据的包头信号和包尾信号;一根或多根数据线用于传输目标数据的有效数据。其中,当传输的数据较小(例如:目标数据为指示消息、控制消息、数据大小小于预设阈值的数据等等)时,可以通过一根数据线进行串行单比特的方式传输;当数据比较大(例如:目标数据为向量型数据、视频帧、图像数据、语音数据、数据大小大于或等于预设阈 值的数据等等)时,可以通过支持多通道的多根数据线进行串行传输,具体的实施方式可以对应参考上述实施例,本申请在此暂不赘述。该四根信号线大大缓解了现有技术中处理单元与路由器之间出线多、出线复杂等问题,减少了整个异步消息总线占用的芯片面积。
可选的,根据业务需求,该数据线还可以是支持多通道的多根数据线。
步骤S305:第一路由器接收第一时钟信号。
具体地,第一路由器接收第一时钟信号。
可选的,每个上述路由器包括多组端口,每组上述端口包括接收端口和发送端口,其中,每个上述接收端口用于接收数据,每个上述发送端口用于发送数据。在本申请实施例中,路由器通过可配置的端口,配置与路由器连接的处理单元或其他路由器。通过基于端口可配置的路由器,可灵活重构的组网架构,如点到点,多点到多点等架构。而且,路由器的内部每个端口都连接有接收单元或发送单元,以便收发数据。
可选的,所述目标数据在发送过程中的数据形式为变长或定长的数据包;所述第一处理单元还用于:在生成发送请求后,设置所述目标数据的包头。可以理解的,该包头需要通过消息有效位信号线同第一时钟信号一同发送至路由器。
步骤S306:第一路由器基于第一时钟信号接收第一处理单元发送的目标数据。
具体地,上述第一路由器基于第一时钟信号接收第一处理单元发送的目标数据。
可选的,目标数据在发送过程中的数据形式为变长或定长的数据包;上述第一处理单元还用于:在生成第一请求后,设置上述目标数据的包头,将上述包头和上述第一时钟信号发送至上述第一路由器;上述第一路由器还用于:在接收到上述目标数据对应的包头后,启动接收上述目标数据。例如:如上述图7所示,第一路由器检测到包头信号时并启动接收数据和消息包长统计。
可选的,路由器中每个上述接收端口与一个接收单元对应,每个上述接收单元包括基于先进先出存储机制的存储区域;上述第一路由器具体用于:基于上述第一时钟信号,通过目标接收端口驱动第一接收单元内的上述存储区域接收上述第一处理单元发送的上述目标数据,上述目标接收端口为上述第一路由器中与上述第一处理单元连接的接收端口。通过先进先出的存储机制使得在多个目标数据需要发送的情况下,按照一定的时间次序依次发送,使得在发送过程中发送单元决策更快,可有效提升系统的传输性能。另外,该基于先进先出存储机制的存储区域可以适用于同步转异步的适配方法,同步写入数据(如:处理单元中将目标数据同步写入发送单元)或读出数据(如:路由器中发送单元基于接收单元的存储区域同步读出数据),异步读出数据(如:处理单元中将目标数据由第二发送单元异步发送至路由器)或写入数据(如:路由器中的第一接收单元异步写入数据)。
步骤S307:在目标数据接收完毕后,将第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪。
具体地,上述第一路由器还用于:在上述目标数据接收完毕后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪;上述第一处理单元还用于:在监测到上述第一路由器的接收数据的状态就绪变为状态未就绪后,确定上述目标数据发送完成。在本申请实施例中,当路由器中接收数据的状态由就绪状态转变为未就绪状态后,处理单元就可以确定数据发送完毕,即可停止数据发送节省通信资源。其中,就绪状态和未就绪 状态可以分别高、低电信号标识。
可选的,上述第一处理单元还用于:在上述目标数据的最后一位数据发送完毕后,设置上述目标数据的包尾并发送;上述第一路由器还用于:在接收到上述目标数据的包尾后,将上述第一路由器的接收数据的状态就绪调整为接收数据的状态未就绪。通过设置目标数据的包头和包尾实现目标数据的异步传输,使得不需要同步处理单元与路由器之间的时钟,也令一个路由器更易集成多种异构的处理单元或知识产权核。
步骤S308:第一路由器根据目的地址,向第二处理单元发送目标数据。
具体地,第一路由器根据所述目的地址,向所述目标单元发送所述目标数据。
可选的,路由器中每个上述发送端口与一个发送单元对应;根据上述目的地址,确定上述第一路由器中的目标发送端口,上述目标发送端口为上述第一路由器中与上述第二处理单元对应的发送端口;通过上述目标发送端口对应的第一发送单元向上述第二处理单元发送上述目标数据。通过基于端口可配置的路由器根据目的地址,确定与第一发送单元对应的目标发送端口,并通过该发送端口向第二处理单元发送目标数据。而且,在多个路由器形成的通信连接中,并不需要确定接收到目标数据时确定端口号,即可根据该目的地址向第二处理单元发送数据。
可选的,每个上述路由器包括映射表,上述映射表包括上述路由器中每个上述发送端口的端口标识与对应的上述处理单元的单元标识或其他上述路由器的路由标识之间的映射关系,上述单元标识用于唯一识别上述处理单元,上述路由标识用于唯一识别上述路由器;上述第一路由器具体用于:根据上述目的地址,基于上述第一路由器中的映射表确定上述目标发送端口。在本申请实施例中,通过查询映射表的路由转发机制,简化路由转发过程,提高传输效率。
可选的,在上述第二处理单元与第二路由器对应连接,且上述第一路由器与上述第二路由器为上述多个路由器中两个不同的路由器时,上述目标发送端口为与上述第一路由器中与上述第二路由器连接跳数最少的发送端口。在多个路由器形成的通信连接中,路由连接跳数的数据最多的情况是在路由器数量的基础上减一,路由器可以根据目的地址自行选择连接跳数最少的传输路径进行向第二处理单元发送目标数据。
可选的,上述第一路由器具体用于:在上述第一发送单元接收到上述第一接收单元发送的第二请求时,控制上述第一发送单元从上述第一接收单元的存储区域中获取上述目标数据,上述第二请求用于请求通过上述第一发送单元发送上述目标数据;通过上述第一发送单元基于上述目标发送端口以串行单比特的传输方式向上述第二处理单元发送上述目标数据。通过基于共享数据的简单发送单元,重用接收端的fifo机制的存储区域,减少数据搬移,提高传输效率。
可选的,每个上述路由器包括通道选择器;上述第一路由器的通道选择器用于,联通上述第一接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述第一接收单元的存储区域获取上述目标数据。当有数据发送的需求时,通道选择器可以连通接收单元与发送单元之间的数据通路,以使发送单元可以通过该数据通路复用接收单元的fifo存储区域,减少数据搬移,大大的提高了路由器的传输性能。
可选的,在发送完毕之后通道选择器释放该数据通路,供其他第一接收单元向第一发 送单元发送数据。即,第一发送单元一次只能发送一个第一接收单元的数据,在发送完毕后,第一发送单元与该第一接收单元的数据通路会断开。
可选的,每个上述路由器包括仲裁器,每个上述发送单元对应一个上述仲裁器;上述第一路由器的仲裁器用于:在m个接收单元同时向上述第一发送单元请求发送数据时,根据预设仲裁规则,从上述m个接收单元中确定目标接收单元,m为大于1且小于或等于上述路由器包含的全部上述接收单元数量;上述第一路由器的通道选择器还用于,在上述仲裁器确定上述目标接收单元后,联通上述目标接收单元到上述第一发送单元的数据通路,以使上述第一发送单元从上述目标接收单元的存储区域获取数据并发送。在本申请实施例中,利用仲裁器实现“多到一”的公平仲裁机制,减少路由转发数据时的冲突。其中,为了保证每个发送单元的正常工作,仲裁器与该发送单元存在一一对应的关系。
可选的,上述仲裁器包括第二异步握手电路;上述第一路由器的第二异步握手电路用于:在确定上述第一发送单元的发送数据的状态就绪后,基于上述目标接收单元向上述第一发送单元发送的请求发送数据的信号,确定第二时钟信号;上述第一路由器的通道选择器具体用于:基于上述第二时钟信号,联通上述目标接收单元到上述第二发送的数据通路。在本申请实施例中,路由器中的仲裁器基于Click电路等握手电路的简单令牌环机制,实现该数据传输装置中公平仲裁机制。而且,该仲裁器通过利用同接收单元的时序依赖关系的公共仲裁机制,实现基于数据包的传输机制,性能高。可以理解的是,该路由器中的仲裁器为异步仲裁器。
可选的,每个上述仲裁器中上述第二异步握手电路的数量与上述路由器中接收端口的数量相比少一。在本申请实施例中,为了保证除发送端口对应的接收端口外,其他接收端口都需要向发送端口发送消息,所以,仲裁器中第二异步握手电路的数量与路由器中接收端口的数量相比少一。
实施本申请实施例,基于异步握手机制的数据传输装置通过处理单元(如,第一处理单元)在确定路由器(如,第一路由器)的接收数据的状态就绪后,基于处理单元发送数据的请求,生成第一时钟信号;并按照第一时钟信号将所述第一时钟信号和所述目标数据发送至路由器中,使得与处理单元连接的路由器可以通过第一时钟信号接收到目标数据,然后路由器再根据接收到的目标数据中,携带的目的地址向第二处理单元发送该目标数据。这种处理单元和路由器之间异步握手的传输方式可以确保路由器接收完成目标数据。另外,处理单元将发送目标数据时的时钟信号(即,第一时钟信号)也发送至路由器,以使路由器可以根据该时钟信号接收到数据,减少数据传输装置内的时钟约束,更易集成多种异构的处理单元或知识产权核,同时使得多个路由器之间不受同步时钟限制,决策更快,可有效提升系统的转发性能。而且,处理单元与路由器之间连接数据线相对短且相对确定,会进一步导致在处理单元有发送数据的需求时,对应的时钟信号的时延小且相对确定。与此同时,本申请实施例中一个路由器可以与多个处理单元异步连接,大大减少总线占用的芯片面积。
需要说明的是,第一路由器和第一处理单元中均包括接收单元和发送单元,例如:第一路由器中可以包括第一接收单元和第一发送单元,第一处理单元可以包括第二接收单元和第二发送单元。其中,第一接收单元和第二接收单元功能相似,结构相似均用于通过异 步串行单比特的传输方式接收数据,第一发送单元和第二发送单元功能和结构相似均可用于通过异步串行单比特的传输方式发送数据。其中,第一路由器和第一处理单元中接收单元和发送单元的相关结构和功能还可以对应参考上述实施例的相关描述,本申请实施例暂不赘述。
还需要说明的是,本申请实施例中提及的第一路由器可对应参考上述图4-上述图19中所涉及的路由器,本申请实施例中提及的第一处理单元可对应参考上述图4-上述图19中所涉及的处理单元,本申请实施例在此暂不赘述。
本申请实施例还提供了一种芯片系统,该芯片系统包括了上述任意一个实施例以及结合上述实施例的任意一种实现方式所提供的装置。该芯片系统用于实现如上述数据传输装置的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存数据传输装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例还提供了一种电子设备,该电子设备包括了上述任意一个实施例以及结合上述实施例的任意一种实现方式所提供的装置。该电子设备用于实现如上述数据传输装置的功能。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者 说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务端或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:u盘、移动硬盘、磁碟、光盘、只读存储器(read-only memory,缩写:rom)或者随机存取存储器(random access memory,缩写:ram)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (24)

  1. 一种数据传输装置,其特征在于,包括:多个处理单元和多个路由器,每个所述路由器与一个或多个处理单元连接,每个所述路由器与所述多个路由器中任意一个路由器形成通信连接关系;其中,所述多个路由器包括第一路由器,所述第一路由器与第一处理单元连接;
    所述第一处理单元,用于:生成第一请求,所述第一请求用于请求将目标数据发送至第二处理单元,所述目标数据包括第二处理单元的目的地址;
    在确定所述第一路由器的接收数据的状态就绪后,基于所述第一请求,确定第一时钟信号;
    基于所述第一时钟信号向所述第一路由器发送所述目标数据,并将所述第一时钟信号发送至所述第一路由器;
    所述第一路由器,用于:接收所述第一时钟信号;
    基于所述第一时钟信号接收所述第一处理单元发送的所述目标数据;
    根据所述目的地址,向所述第二处理单元发送所述目标数据。
  2. 根据权利要求1所述装置,其特征在于,每个所述处理单元包括第一异步握手电路;
    所述第一处理单元具体用于:通过所述第一异步握手电路在确定所述第一路由器的接收数据的状态就绪后,基于所述第一请求,确定所述第一时钟信号。
  3. 根据权利要求1或2所述装置,其特征在于,每个所述处理单元包括异步消息发送器;
    所述第一处理单元具体用于:基于所述第一请求,控制所述异步消息发送器基于所述第一时钟信号将所述目标数据以串行单比特的传输方式发送至所述第一路由器。
  4. 根据权利要求1-3任意一项所述装置,其特征在于,每个所述处理单元包括基于先进先出存储机制的存储区域;
    所述第一处理单元具体用于:将所述目标数据写入至所述基于先进先出存储机制的存储区域后,生成所述第一请求。
  5. 根据权利要求1-4任意一项所述装置,其特征在于,所述第一处理单元和所述第一路由器之间通过异步消息总线连接,其中,所述异步消息总线包括接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。
  6. 根据权利要求1-5任意一项所述装置,其特征在于,每个所述路由器包括多组端口,每组所述端口包括接收端口和发送端口,其中,每个所述接收端口用于接收数据,每个所述发送端口用于发送数据。
  7. 根据权利要求6所述装置,其特征在于,每个所述接收端口与一个接收单元对应,每个所述接收单元包括基于先进先出存储机制的存储区域;
    所述第一路由器具体用于:基于所述第一时钟信号,通过目标接收端口驱动第一接收单元内的所述存储区域接收所述第一处理单元发送的所述目标数据,所述目标接收端口为所述第一路由器中与所述第一处理单元连接的接收端口。
  8. 根据权利要求7所述装置,其特征在于,每个所述发送端口与一个发送单元对应;
    所述第一路由器具体用于:根据所述目的地址,确定所述第一路由器中的目标发送端口,所述目标发送端口为所述第一路由器中与所述第二处理单元对应的发送端口;
    通过所述目标发送端口对应的第一发送单元向所述第二处理单元发送所述目标数据。
  9. 根据权利要求8所述装置,其特征在于,在所述第二处理单元与第二路由器对应连接,且所述第一路由器与所述第二路由器为所述多个路由器中两个不同的路由器时,所述目标发送端口为与所述第一路由器中与所述第二路由器连接跳数最少的发送端口。
  10. 根据权利要求8所述装置,其特征在于,所述第一路由器具体用于:在所述第一发送单元接收到所述第一接收单元发送的第二请求时,控制所述第一发送单元从所述第一接收单元的存储区域中获取所述目标数据,所述第二请求用于请求通过所述第一发送单元发送所述目标数据;
    通过所述第一发送单元基于所述目标发送端口以串行单比特的传输方式向所述第二处理单元发送所述目标数据。
  11. 根据权利要求8-10任意一项所述装置,其特征在于,每个所述路由器包括仲裁器,每个所述发送单元对应一个所述仲裁器;
    所述第一路由器的仲裁器用于:在m个接收单元同时向所述第一发送单元请求发送数据时,根据预设仲裁规则,从所述m个接收单元中确定目标接收单元,m为大于1且小于或等于所述路由器包含的全部所述接收单元数量。
  12. 一种数据传输方法,其特征在于,应用于数据传输装置,所述数据传输装置包括:多个处理单元和多个路由器,每个所述路由器与一个或多个处理单元连接,每个所述路由器与所述多个路由器中任意一个路由器形成通信连接关系;其中,所述多个路由器包括第一路由器,所述第一路由器与第一处理单元连接;所述方法包括:
    通过所述第一处理单元生成第一请求,所述第一请求用于请求将目标数据发送至第二处理单元,所述目标数据包括第二处理单元的目的地址;
    通过所述第一处理单元确定所述第一路由器的接收数据的状态就绪后,基于所述第一请求,确定第一时钟信号;
    通过所述第一处理单元基于所述第一时钟信号向所述第一路由器发送所述目标数据,并将所述第一时钟信号发送至所述第一路由器;
    通过所述第一路由器接收所述第一时钟信号;
    通过所述第一路由器基于所述第一时钟信号接收所述第一处理单元发送的所述目标数据;
    通过所述第一路由器根据所述目的地址,向所述第二处理单元发送所述目标数据。
  13. 根据权利要求12所述方法,其特征在于,每个所述处理单元包括第一异步握手电路;
    所述通过所述第一处理单元确定所述第一路由器的接收数据的状态就绪后,基于所述第一请求,确定第一时钟信号,包括:
    通过所述第一异步握手电路在确定所述第一路由器的接收数据的状态就绪后,基于所述第一请求,确定所述第一时钟信号。
  14. 根据权利要求12或13所述方法,其特征在于,每个所述处理单元包括异步消息发送器;
    所述通过所述第一处理单元基于所述第一时钟信号向所述第一路由器发送所述目标数据,包括:
    基于所述第一请求,控制所述异步消息发送器基于所述第一时钟信号将所述目标数据以串行单比特的传输方式发送至所述第一路由器。
  15. 根据权利要求12-14任意一项所述方法,其特征在于,每个所述处理单元包括基于先进先出存储机制的存储区域;
    所述通过所述第一处理单元生成第一请求,包括:
    通过所述第一处理单元将所述目标数据写入至所述基于先进先出存储机制的存储区域后,生成所述第一请求。
  16. 根据权利要求12-15任意一项所述方法,其特征在于,所述第一处理单元和所述第一路由器之间通过异步消息总线连接,其中,所述异步消息总线包括接收就绪信号线,时钟信号线,消息有效位信号线和一根或多根数据线。
  17. 根据权利要求12-16任意一项所述方法,其特征在于,每个所述路由器包括多组端口,每组所述端口包括接收端口和发送端口,其中,每个所述接收端口用于接收数据,每个所述发送端口用于发送数据。
  18. 根据权利要求17所述方法,其特征在于,每个所述接收端口与一个接收单元对应,每个所述接收单元包括基于先进先出存储机制的存储区域;
    所述通过所述第一路由器基于所述第一时钟信号接收所述第一处理单元发送的所述目标数据,包括:
    基于所述第一时钟信号,通过目标接收端口驱动第一接收单元内的所述存储区域接收 所述第一处理单元发送的所述目标数据,所述目标接收端口为所述第一路由器中与所述第一处理单元连接的接收端口。
  19. 根据权利要求18所述方法,其特征在于,每个所述发送端口与一个发送单元对应;所述通过所述第一路由器根据所述目的地址,向所述第二处理单元发送所述目标数据,包括:
    根据所述目的地址,确定所述第一路由器中的目标发送端口,所述目标发送端口为所述第一路由器中与所述第二处理单元对应的发送端口;
    通过所述目标发送端口对应的第一发送单元向所述第二处理单元发送所述目标数据。
  20. 根据权利要求19所述方法,其特征在于,在所述第二处理单元与第二路由器对应连接,且所述第一路由器与所述第二路由器为所述多个路由器中两个不同的路由器时,所述目标发送端口为与所述第一路由器中与所述第二路由器连接跳数最少的发送端口。
  21. 根据权利要求19所述装置,其特征在于,所述通过所述目标发送端口对应的第一发送单元向所述第二处理单元发送所述目标数据,包括:
    在所述第一发送单元接收到所述第一接收单元发送的第二请求时,控制所述第一发送单元从所述第一接收单元的存储区域中获取所述目标数据,所述第二请求用于请求通过所述第一发送单元发送所述目标数据;
    通过所述第一发送单元基于所述目标发送端口以串行单比特的传输方式向所述第二处理单元发送所述目标数据。
  22. 根据权利要求19-21任意一项所述方法,其特征在于,每个所述路由器包括仲裁器,每个所述发送单元对应一个所述仲裁器;所述方法还包括:
    在m个接收单元同时向所述第一发送单元请求发送数据时,通过所述第一路由器的仲裁器根据预设仲裁规则,从所述m个接收单元中确定目标接收单元,m为大于1且小于或等于所述路由器包含的全部所述接收单元数量。
  23. 一种芯片系统,其特征在于,所述芯片系统包括上述权利要求1-11中任意一项所述的装置。
  24. 一种电子设备,其特征在于,所述电子设备包括上述权利要求1-11中任意一项所述的装置。
CN202180100274.6A 2021-07-09 2021-07-09 一种数据传输装置、方法及相关设备 Pending CN117616735A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/105474 WO2023279369A1 (zh) 2021-07-09 2021-07-09 一种数据传输装置、方法及相关设备

Publications (1)

Publication Number Publication Date
CN117616735A true CN117616735A (zh) 2024-02-27

Family

ID=84800239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180100274.6A Pending CN117616735A (zh) 2021-07-09 2021-07-09 一种数据传输装置、方法及相关设备

Country Status (2)

Country Link
CN (1) CN117616735A (zh)
WO (1) WO2023279369A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065570A (zh) * 2014-06-23 2014-09-24 合肥工业大学 异步可容错片上网络路由器设计方法
CN104683263B (zh) * 2015-01-26 2018-01-12 天津大学 缓解热点的片上网络拓扑结构
US20180159786A1 (en) * 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
CN111131091B (zh) * 2019-12-25 2021-05-11 中山大学 一种面向片上网络的片间互连方法和系统
CN112597075B (zh) * 2020-12-28 2023-02-17 成都海光集成电路设计有限公司 用于路由器的缓存分配方法、片上网络及电子设备
CN113079100A (zh) * 2021-03-03 2021-07-06 桂林电子科技大学 一种用于高速数据采集的NoC路由器

Also Published As

Publication number Publication date
WO2023279369A1 (zh) 2023-01-12

Similar Documents

Publication Publication Date Title
JP3816530B2 (ja) 低い待ち時間、高いクロック周波数、プレジオ非同期 パケット・ベースクロスバー・スイッチング・チップ・システム及び方法
US4292623A (en) Port logic for a communication bus system
US6314487B1 (en) Adaptive routing controller of a crossbar core module used in a crossbar routing switch
CN100527697C (zh) 用于交换数据分组或帧的装置和方法
US5680402A (en) Priority broadcast and multi-cast for unbuffered multi-stage networks
EP0495575B1 (en) Repeater interface controller
US4623996A (en) Packet switched multiple queue NXM switch node and processing method
US6922749B1 (en) Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US4944038A (en) Method and apparatus for utilization of dual latency stations for performance improvement of token ring networks
US6728790B2 (en) Tagging and arbitration mechanism in an input/output node of a computer system
US6681274B2 (en) Virtual channel buffer bypass for an I/O node of a computer system
US6721816B1 (en) Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
US6807599B2 (en) Computer system I/O node for connection serially in a chain to a host
US8824295B2 (en) Link between chips using virtual channels and credit based flow control
CN117616735A (zh) 一种数据传输装置、方法及相关设备
US6820151B2 (en) Starvation avoidance mechanism for an I/O node of a computer system
JP7337021B2 (ja) 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール
US20240004735A1 (en) Non-blocking ring exchange algorithm
KR0168904B1 (ko) 그룹통신을 제공하는 데이터 교환 장치 및 방법
JP2001257686A (ja) 計算機システム及び計算機システムのデータ通信方法
TW386195B (en) Repeater array used in a computer network
JP2750314B2 (ja) 非バッファ式交換装置
US7861018B2 (en) System for transmitting data between transmitter and receiver modules on a channel provided with a flow control link
JPH0685161B2 (ja) ネットワーク用スイッチングシステム
JPH05207151A (ja) 非緩衝非同期交換網による同報/多報転送を実行するための同報/交換装置

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