CN112506824A - 一种芯片和数据交互方法 - Google Patents

一种芯片和数据交互方法 Download PDF

Info

Publication number
CN112506824A
CN112506824A CN202011497133.6A CN202011497133A CN112506824A CN 112506824 A CN112506824 A CN 112506824A CN 202011497133 A CN202011497133 A CN 202011497133A CN 112506824 A CN112506824 A CN 112506824A
Authority
CN
China
Prior art keywords
port
chip
distribution module
data
bus
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
CN202011497133.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.)
Shanghai Suiyuan Intelligent Technology Co ltd
Original Assignee
Shanghai Suiyuan Intelligent Technology 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 Shanghai Suiyuan Intelligent Technology Co ltd filed Critical Shanghai Suiyuan Intelligent Technology Co ltd
Priority to CN202011497133.6A priority Critical patent/CN112506824A/zh
Publication of CN112506824A publication Critical patent/CN112506824A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种芯片和数据交互方法,芯片包括:第一端口、第二端口、系统总线、第一互联总线、第一仲裁分发模块和第二仲裁分发模块,所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,所述系统总线与所述第一互联总线不同;所述第一端口经所述第一仲裁分发模块与所述系统总线连接,和/或,所述第二端口经所述第二仲裁分发模块与所述系统总线连接。本发明实施例通过与系统总线互不干扰的互联总线传输无需进行数据处理的数据,避免该数据流经系统总线进行非必要的数据处理,节约芯片的计算资源,提升芯片对数据进行操作的整体效率。

Description

一种芯片和数据交互方法
技术领域
本发明涉及数据传输技术领域,特别是涉及一种芯片和数据交互方法。
背景技术
如今,随着信息化技术的发展,信息化的数据越来越复杂,处理数据所需的计算量也越来越大。当前,通过各芯片内部的互联端口,可以构建由多个芯片连接而成的分布式芯片集群。通过构建完成的分布式芯片集群,可以实现数据在不同的芯片中的交换传输,进而对大规模的数据进行快速处理。
现有的芯片的各个互联端口与该芯片的系统总线直接连接,当芯片A中的数据需经芯片B发送至芯片C时,芯片B首先通过与芯片A连接的互联端口获得芯片A中的数据,然后芯片B经过芯片B的系统总线将数据保存至芯片B的存储单元。接着芯片B从存储单元取出数据再经系统总线传输至与芯片C连接的另一互联端口从而将数据传输至芯片C。
可见,虽然上述传输过程中,芯片B仅仅起到了中转作用,但是上述数据的中转过程中,芯片B的系统总线以及存储资源被数据进行了占用,消耗了进行数据中转的芯片的系统资源。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种芯片和数据交互方法,技术方案如下:
一种芯片,包括:第一端口、第二端口、系统总线、第一互联总线、第一仲裁分发模块和第二仲裁分发模块,所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,所述系统总线与所述第一互联总线不同;
所述第一端口经所述第一仲裁分发模块与所述系统总线连接,和/或,所述第二端口经所述第二仲裁分发模块与所述系统总线连接。
可选的,所述芯片还包括:第三仲裁分发模块和第四仲裁分发模块,
所述第一仲裁分发模块设置在所述第一端口处,所述第二仲裁分发模块设置在所述第二端口处,所述第三仲裁分发模块设置在所述第一互联总线的一侧,所述第四仲裁分发模块设置在所述第一互联总线的另一侧;
所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,具体设置为:所述第一端口依次经所述第一仲裁分发模块、所述第三仲裁分发模块与所述第一互联总线的一侧连接;
所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,具体设置为:所述第二端口依次经所述第二仲裁分发模块、所述第四仲裁分发模块与所述第一互联总线的另一侧连接。
可选的,所述第一仲裁分发模块被配置为:根据流经所述第一仲裁分发模块的数据的目的地址,控制流经所述第一仲裁分发模块的数据发送至所述第一端口、所述系统总线、所述第一互联总线中的一个;
和/或,
所述第二仲裁分发模块被配置为:根据流经所述第二仲裁分发模块的数据的目的地址,控制流经所述第二仲裁分发模块的数据发送至所述第二端口、所述系统总线、所述第一互联总线中的一个。
可选的,所述第一端口与第一其他芯片连接,所述第二端口与第二其他芯片连接,
所述第一其他芯片中的数据依次经所述第一端口、所述第一仲裁分发模块、所述第一互联总线、所述第二仲裁分发模块以及所述第二端口被发送给所述第二其他芯片;
和/或,
所述第二其他芯片中的数据依次经所述第二端口、所述第二仲裁分发模块、所述第一互联总线、所述第一仲裁分发模块以及所述第一端口被发送给所述第一其他芯片。
可选的,所述第一仲裁分发模块包括第一仲裁器和第一分发器,所述第二仲裁分发模块包括第二仲裁器和第二分发器,所述第三仲裁分发模块包括第三仲裁器和第三分发器,所述第四仲裁分发模块包括第四仲裁器和第四分发器。
可选的,所述第一端口依次经所述第一仲裁分发模块、所述第三仲裁分发模块与所述第一互联总线的一侧连接,具体设置为:
所述第一端口依次经所述第一分发器、所述第三分发器与所述第一互联总线的一侧连接;
所述第一端口依次经所述第一仲裁器、所述第三仲裁器与所述第一互联总线的一侧连接;
所述第二端口依次经所述第二仲裁分发模块、所述第四仲裁分发模块与所述第一互联总线的另一侧连接,具体设置为:
所述第二端口依次经所述第二分发器、所述第四分发器与所述第一互联总线的另一侧连接;
所述第二端口依次经所述第二仲裁器、所述第四仲裁器与所述第一互联总线的另一侧连接。
可选的,所述第一端口经所述第一仲裁分发模块与所述系统总线连接,具体设置为:
所述第一端口经所述第一分发器与所述系统总线连接;
所述第一端口经所述第一仲裁器与所述系统总线连接;
所述第二端口经所述第二仲裁分发模块与所述系统总线连接,具体设置为:
所述第二端口经所述第二分发器与所述系统总线连接;
所述第二端口经所述第二仲裁器与所述系统总线连接。
可选的,所述第一端口与第三其他芯片中的至少一个端口连接;
和/或,所述第二端口与第四其他芯片中的至少一个端口连接;
所述第三其他芯片与所述第四其他芯片不同。
可选的,所述第一端口与第五其他芯片中的至少一个端口连接,所述第二端口与所述第五其他芯片的至少一个端口连接,所述第一端口与所述第五其他芯片连接的端口与所述第二端口与所述第五其他芯片连接的端口不同。
可选的,所述芯片中的任意两个端口之间至少通过一条互联总线连接;
和/或,
所述芯片中的每个端口都至少与一个仲裁分发模块连接,所述芯片中的任一条互联总线的两侧均至少与一个仲裁分发模块连接。
可选的,所述芯片还包括:与互联总线连接的中转控制引擎,所述中转控制引擎被配置为发起对中转数据的读操作和/或写操作。
一种数据交互方法,所述方法应用于上述的芯片,所述方法包括:
所述第一仲裁分发模块获得经所述第一端口传入所述芯片的数据;
所述第一仲裁分发模块识别该数据中的第一目的地址,当所述第一目的地址与所述第二端口匹配时,所述第一仲裁分发模块将该数据发送至所述第一互联总线;当所述第一目的地址与所述系统总线匹配时,所述第一仲裁分发模块将该数据发送给所述系统总线;
所述第二仲裁分发模块获得经所述第一互联总线或所述系统总线传输的数据;
所述第二仲裁分发模块识别该数据中的第二目的地址,当所述第二目的地址与所述第二端口匹配时,所述第二仲裁分发模块将该数据发送至所述第二端口,以经所述第二端口将数据发送到与所述第二端口连接的其他芯片,其中,所述第二目的地址与所述第一目的地址相同或不同。
借由上述技术方案,本发明提供的一种芯片和数据交互方法,芯片包括:第一端口、第二端口、系统总线、第一互联总线、第一仲裁分发模块和第二仲裁分发模块,所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,所述系统总线与所述第一互联总线不同;所述第一端口经所述第一仲裁分发模块与所述系统总线连接,和/或,所述第二端口经所述第二仲裁分发模块与所述系统总线连接。本发明实施例通过与系统总线互不干扰的互联总线传输无需进行数据处理的数据,避免该数据流经系统总线进行非必要的数据处理,节约芯片的计算资源,提升芯片对数据进行操作的整体效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的一种芯片的结构连接示意图;
图2示出了本发明实施例提供的芯片与其他芯片的一种连接情况示意图;
图3示出了本发明实施例提供的芯片与其他芯片的另一种连接情况示意图;
图4示出了本发明实施例提供的芯片与其他芯片的另一种连接情况示意图;
图5示出了本发明实施例提供的另一种芯片的结构连接示意图;
图6示出了本发明实施例提供的仲裁器与分发器的连接关系示意图;
图7示出了本发明实施例提供的另一种芯片的结构连接示意图;
图8示出了本发明实施例提供的另一种芯片的结构连接示意图;
图9示出了本发明实施例提供的另一种芯片的结构连接示意图;
图10示出了本发明实施例提供的另一种芯片的结构连接示意图;
图11示出了本发明实施例提供的一种数据交互方法的流程示意图;
图12示出了本发明实施例提供的另一种数据交互方法的流程示意图;
图13示出了本发明实施例提供的另一种数据交互方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种芯片,可以包括:第一端口100、第二端口200、系统总线300、第一互联总线400、第一仲裁分发模块500和第二仲裁分发模块600,所述第一端口100经所述第一仲裁分发模块500与所述第一互联总线400的一侧连接,所述第二端口200经所述第二仲裁分发模块600与所述第一互联总线400的另一侧连接,所述系统总线300与所述第一互联总线400不同。
所述第一端口100经所述第一仲裁分发模块500与所述系统总线300连接,和/或,所述第二端口200经所述第二仲裁分发模块600与所述系统总线300连接。
其中,本发明实施例提供的端口可以是由高速模拟接口和与该高速模拟接口对应的控制器构成的高速互联端口。例如:本发明实施例提供的端口可以是由以太网(Ethernet)控制器及其高速串行器/解串器(Serdes)构成的高速互联端口。可选的,在本发明实施例中,一个端口不可以同时与多个其他芯片连接。可选的,本发明实施例提供的端口可以与至少一条互联总线直接连接。本发明实施例通过在芯片中设置高速互联端口,可以使得数据在高速度以及高带宽的情况下进行交互,使得数据经本芯片进行传输的时间降低。例如:本发明实施例的高速互联端口可以实现速度为25Gbps、双向带宽50GB/s的数据交互。可以理解的是,随着芯片端口工艺以及制造技术的不断发展,端口可实现的速度以及带宽也可以不断升级,上述仅为示意性举例,本发明实施例不对端口的速度和带宽进行具体的限制。
可选的,基于图1所示的芯片,图2所示为本发明实施例提供的芯片与其他芯片的一种连接情况,所述第一端口100与第一其他芯片01连接,所述第二端口200与第二其他芯片02连接。
所述第一其他芯片01中的数据依次经所述第一端口100、所述第一仲裁分发模块500、所述第一互联总线400、所述第二仲裁分发模块600以及所述第二端口200被发送给所述第二其他芯片02。
所述第二其他芯片02中的数据依次经所述第二端口200、所述第二仲裁分发模块600、所述第一互联总线400、所述第一仲裁分发模块500以及所述第一端口100被发送给所述第一其他芯片01。
本发明实施例提供的芯片通过与第一其他芯片01和第二其他芯片02连接,可以使得第一其他芯片01与第二其他芯片02之间的数据经本发明实施例提供的芯片进行传输,有助于在芯片的端口数量有限的情况下,通过增加本发明实施例提供的芯片,在多个芯片之间构建多条传输路由,有利于提升在多个芯片之间数据传输的效率。例如:假设本发明实施例提供的芯片和第一其他芯片01各有四个端口,第一其他芯片01可以使用一个端口与本发明实施例提供的芯片的一个端口连接,实现第一其他芯片01经本发明实施例提供的芯片与本发明实施例提供的芯片的其余三个端口分别连接的另外三个其他芯片连接,第一其他芯片01剩余的三个端口可以再分别连接另外的三个其他芯片,即,第一其他芯片01通过本发明实施例提供的芯片,间接与其他三个芯片连接,同时,第一其他芯片01还可以直接与另外其他三个芯片连接。
可选的,本发明实施例提供的端口可以连接同一其他芯片的多个端口。例如:本发明实施例提供的端口可以与其他芯片A的端口a和端口b连接。
可选的,所述第一端口100与第三其他芯片03中的至少一个端口连接。所述第二端口200与第四其他芯片04中的至少一个端口连接。所述第三其他芯片03与所述第四其他芯片04不同。例如:基于图1所示的芯片,图3所示为本发明实施例提供的芯片与其他芯片的另一种连接情况,在实际应用中,第一端口100可以同时与第三其他芯片03中的端口031、端口032以及端口033连接,第二端口200可以同时与第四其他芯片04中的端口041和端口042连接。
通过本发明实施例提供的芯片中的一个端口与其他芯片的多个端口连接,本发明实施例提供的芯片可以从该其他芯片的一个端口获得数据的同时,从该其他芯片的另一个端口向该其他芯片发送数据,提高数据的传输效率。
可选的,所述第一端口100与第五其他芯片05中的至少一个端口连接,所述第二端口200与所述第五其他芯片05的至少一个端口连接,所述第一端口100与所述第五其他芯片05连接的端口与所述第二端口200与所述第五其他芯片05连接的端口不同。例如:基于图1所示的芯片,图4所示为本发明实施例提供的芯片与其他芯片的另一种连接情况,第一端口100与第五其他芯片05的端口051和端口052连接,第二端口200与第五其他芯片05的端口053连接。
通过本发明实施例提供的芯片的不同端口同时与一个其他芯片连接,可以使得该其他芯片需要本发明实施例提供的芯片进行处理的数据,在传输至本发明实施例提供的芯片进行处理后,及时将处理后的数据及时返回至该其他芯片,降低数据传输的整体时长,提升数据传输的效率。
需要注意的是,本发明实施例提供的端口可以为逻辑端口,可以理解的是,多个逻辑端口可以共享同一个物理端口,也可以一个逻辑端口对应着一个物理端口。
其中,系统总线300(System Bus)可以包括数据总线(Data Bus)、地址总线(Address Bus)和控制总线(Control Bus)。可选的,本发明实施例提供的系统总线300可以对流入的数据进行数据处理后再对处理后的数据进行传输。具体的,本发明实施例的系统总线300可以对流入的数据进行同步控制,然后使用预设应用算法对数据进行计算,获得计算结果,接着将该计算结果存储至内存中,最后将已存储的计算结果根据预设应用模型传递至目标地址。需要注意的是,图1所示为第一端口100经第一仲裁分发模块500与系统总线300和第二端口200经第二仲裁分发模块600与系统总线300的连接示意图。可以理解的是,在实际情况中,还可以包括仅第一端口100经第一仲裁分发模块500与系统总线300连接而第二端口200未与系统总线300连接的情况,以及,仅第二端口200经第二仲裁分发模块600与系统总线300连接而第一端口100未与系统总线300连接的情况。在通常情况下,端口与系统总线300的各连接情况,不影响端口之间通过互联总线进行数据传输。
本发明实施例提供的互联总线可以是与系统总线300互不干扰的数据通路。互联总线可以为两个端口提供数据通路。当数据经互联总线在这两个端口之间传输时,不占用系统总线300,也不占用系统总线300上的系统存储资源访问空间。当数据在互联总线上传输时,该数据传输不会占用系统总线300的带宽,芯片内部的其他数据可以正常访问系统总线300以及系统总线300上的系统存储资源访问空间。系统存储资源访问空间可以包括共享的DDR、SRAM以及寄存器等。在互联总线上进行的数据传输不会与系统总线300上的数据传输产生冲突。
本发明实施例提供的仲裁分发模块可以根据预设请求分发原则和/或预设仲裁算法进行配置。本发明实施例提供的仲裁分发模块可以是按照预设请求分发原则和/或预设仲裁算法判断流经的数据的传输路径的虚拟装置或实体器件。例如:仲裁分发模块预先配置为将来自互联总线a的数据传输至端口b,则该仲裁分发模块在获得数据后,识别数据的来源地址和目的地址,若识别该数据的来源地址为互联总线a,识别目的地址为端口b,则该仲裁分发模块可以将该数据传输至端口b。
本发明实施例提供的第一仲裁分发模块500可以获得各芯片的连接信息(即路由信息),进而根据上述连接信息以及数据的目的地址来确定该数据经当前芯片发送至目的地址所要经过的传输线路,进而根据该传输线路确定将该数据发送至第一端口100、系统总线300还是第一互联总线400。可选的,当目的地址即为当前芯片时,第一仲裁分发模块500可以将数据发送到系统总线300以使得当前芯片可以获得该数据。可选的,当传输线路的下一个节点芯片为与第一端口100直接连接的芯片时,第一仲裁分发模块500将数据发送到第一端口100,以使下一个节点芯片获得该数据。可选的,当传输线路的下一个节点芯片为与第二端口200直接连接的芯片时,第一仲裁分发模块500将数据发送到第一互联总线400,以通过第一互联总线400将数据发送到第二仲裁分发模块600。这样,第二仲裁分发模块600就可以根据传输线路将数据发送到第二接口,进而将数据发送到下一个节点芯片。
可选的,所述第一仲裁分发模块500被配置为:根据流经所述第一仲裁分发模块500的数据的目的地址,控制流经所述第一仲裁分发模块500的数据发送至所述第一端口100、所述系统总线300、所述第一互联总线400中的一个。
可选的,所述第二仲裁分发模块600被配置为:根据流经所述第二仲裁分发模块600的数据的目的地址,控制流经所述第二仲裁分发模块600的数据发送至所述第二端口200、所述系统总线300、所述第一互联总线400中的一个。
可选的,本发明实施例提供的芯片还可以包括PCIe(Peripheral ComponentInterconnect express)接口。该PCIe接口可以与系统总线300连接。
可选的,在本发明实施例中,若需将第一互联总线400与其他互联总线进行级联,可以在第一互联总线400的两侧设置仲裁分发模块。
可选的,基于图1所示芯片,如图5所示,本发明实施例提供的另一种芯片,还可以包括:第三仲裁分发模块700和第四仲裁分发模块800。
所述第一仲裁分发模块500设置在所述第一端口100处,所述第二仲裁分发模块600设置在所述第二端口200处,所述第三仲裁分发模块700设置在所述第一互联总线400的一侧,所述第四仲裁分发模块800设置在所述第一互联总线400的另一侧。
所述第一端口100经所述第一仲裁分发模块500与所述第一互联总线400的一侧连接,具体设置为:所述第一端口100依次经所述第一仲裁分发模块500、所述第三仲裁分发模块700与所述第一互联总线400的一侧连接。
所述第二端口200经所述第二仲裁分发模块600与所述第一互联总线400的另一侧连接,具体设置为:所述第二端口200依次经所述第二仲裁分发模块600、所述第四仲裁分发模块800与所述第一互联总线400的另一侧连接。
可选的,本发明实施例提供的仲裁分发模块包括至少一个仲裁器和一个分发器。本发明实施例中直接与端口连接的仲裁分发模块中的仲裁器可以识别发送数据请求的来源总线,其中,来源总线包括系统总线300和/或互联总线。本发明实施例中直接与端口连接的仲裁分发模块中的分发器可以识别接收数据请求的目的总线,其中,目的总线包括系统总线300和/或互联总线。端口与仲裁器和分发器的连接关系可以如图6所示,其中箭头表示数据请求的传输方向。需要注意的是,图6仅展示了数据请求的传输方向,未显示数据响应的传输方法,但可以理解的是,数据请求与数据响应之间的关系为本领域的技术常识。
本发明实施例不对仲裁器所应用的仲裁算法进行限制。
本发明实施例中的分发器可以根据数据请求所请求的访问空间,确定该数据请求的目的总线。例如:若数据请求所请求的访问空间属于系统存储器资源,则将该数据请求分发至系统总线300上。若数据请求所请求的访问空间属于某互联总线空间,则将该数据请求分发至该互联总线上。若该数据请求所请求的访问空间不属于系统存储器资源和互联总线空间,则终止该数据请求。可以理解的是,与数据请求对应的数据响应可采用本领域通用技术手段处理,在此不作说明。
可选的,本发明实施例可以将芯片内部的访问空间划分为端口访问空间、系统存储资源访问空间以及互联总线访问空间。可选的,端口访问空间、系统存储资源访问空间以及互联总线访问空间互相独立且互不重叠。通过系统总线300可以访问各个端口访问空间和系统存储资源访问空间。通过互联总线可以访问互联总线访问空间。系统存储资源访问空间对应的目的地址在芯片的内部。当访问任一个互联端口访问空间时,将映射至与该互联端口连接的芯片内部的系统存储资源访问空间和互联总线访问空间。当访问任一互联总线访问空间时,可以访问与互联总线连接的相关资源。例如:与互联总线连接的装置的寄存器等。在通常情况下,一个端口的端口访问空间大小等于与该端口连接的芯片内部的系统存储资源访问空间和互联总线访问空间之和。若某数据请求所请求的访问空间大于该端口的端口访问空间,则中止该数据请求,防止对芯片内部的访问空间造成不必要的占用。可以理解的是,本发明实施例还可以使用ID加地址范围的方式对芯片内部的访问空间进行划分。本发明实施例在此不对划分方式进行限制。
可选的,基于图5所示芯片,如图7所示,本发明实施例提供的另一种芯片,所述第一仲裁分发模块500包括第一仲裁器520和第一分发器510,所述第二仲裁分发模块600包括第二仲裁器620和第二分发器610,所述第三仲裁分发模块700包括第三仲裁器710和第三分发器720,所述第四仲裁分发模块800包括第四仲裁器810和第四分发器820。
可选的,如图7所示,所述第一端口100依次经所述第一仲裁分发模块500、所述第三仲裁分发模块700与所述第一互联总线400的一侧连接,具体设置为:
所述第一端口100依次经所述第一分发器510、所述第三分发器720与所述第一互联总线400的一侧连接;
所述第一端口100依次经所述第一仲裁器520、所述第三仲裁器710与所述第一互联总线400的一侧连接;
所述第二端口200依次经所述第二仲裁分发模块600、所述第四仲裁分发模块800与所述第一互联总线400的另一侧连接,具体设置为:
所述第二端口200依次经所述第二分发器610、所述第四分发器820与所述第一互联总线400的另一侧连接;
所述第二端口200依次经所述第二仲裁器620、所述第四仲裁器810与所述第一互联总线400的另一侧连接。
可选的,如图7所示,所述第一端口100经所述第一仲裁分发模块500与所述系统总线300连接,具体设置为:
所述第一端口100经所述第一分发器510与所述系统总线300连接;
所述第一端口100经所述第一仲裁器520与所述系统总线300连接;
所述第二端口200经所述第二仲裁分发模块600与所述系统总线300连接,具体设置为:
所述第二端口200经所述第二分发器610与所述系统总线300连接;
所述第二端口200经所述第二仲裁器620与所述系统总线300连接。
可选的,所述芯片中的任意两个端口之间至少通过一条互联总线连接。
可选的,所述芯片中的每个端口都至少与一个仲裁分发模块连接,所述芯片中的任一条互联总线的两侧均至少与一个仲裁分发模块连接。
为了便于从整体理解本发明实施例提供的芯片的结构组成,结合图8所示的本发明实施例提供的另一种芯片的结构示意图进行说明:假设芯片有四个端口,各个端口都直接与一个分发器和一个仲裁器连接,各个端口之间可以通过至少一条互联总线连接。各条互联总线若需级联,需要在互联总线两侧分别直接连接一个分发器和一个仲裁器。两条互联总线可以通过各自直接连接的分发器和仲裁器进行连接。如图8所示,两个端口之间可以通过三条互联总线连接。本发明实施例不对任意两个端口之间连接的互联总线的数量进行限制。当然,本发明实施例也可以在任意两个端口之间都设置一条互联总线。与端口直接连接的分发器可以与互联总线直接连接的分发器连接。与端口直接连接的仲裁器可以与互联总线直接连接的仲裁器连接。
可选的,基于图1所示的芯片,如图9所示,本发明实施例提供的另一种芯片,还可以包括:与互联总线连接的中转控制引擎900,所述中转控制引擎900被配置为发起对中转数据的读操作和/或写操作。
具体的,若数据仅需通过芯片进行传输,无需该芯片对该数据进行数据处理,则该数据对于该芯片而言为中转数据,该芯片也可视为该数据的中转节点芯片。
其中,中转控制引擎900可以是与互联总线连接的装置。中转控制引擎900可以访问与其连接的互联总线,该互联总线也可以访问该中转控制引擎900。具体的,中转控制引擎900可以向互联总线发送读请求,该读请求经过该互联总线传输至数据发送端口,从与该数据发送端口连接的芯片的中读取与该读请求对应的数据,将该数据返回至该中转控制引擎900,使得该中转控制引擎900可以将该数据通过该互联总线写到与数据接收端口连接的芯片中。在上述过程中,数据无需传输至系统总线300,也未将数据存储至系统总线300上的系统存储资源访问空间。
可选的,本发明实施例可以设置中转控制引擎900与互联总线的连接位置接近端口或其他互联总线,以便于减少数据中转过程的时间,从而进一步提高性能。具体的,本发明实施例中多条互联总线可以与同一个中转控制引擎900连接,即至少三个以上的端口共享一个中转控制引擎900。在通常情况下,为了提高数据中转的效率,一条互联总线可以单独连接一个中转控制引擎900,即两个端口共享一个中转控制引擎900。本发明实施例可以设置中转控制引擎900识别的端口,以使中转控制引擎900可以在所识别的端口之间实现数据中转功能。
可选的,基于图1所示的芯片,如图10所示,还可以包括:与系统总线300连接的存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940。
其中,存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940可以是与系统总线300连接的装置。系统总线300可以访问存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940。具体的,系统总线300可以控制存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940进行配合完成对数据的数据处理。例如:控制引擎单元920可以对流入系统总线300的数据进行同步控制,计算引擎单元940可以使用预设应用算法对数据进行计算,获得计算结果,接着存储单元910将该计算结果存储至内存中,最后搬运引擎单元930将已存储的计算结果根据预设应用模型传递至目标地址。
存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940可以是在芯片中与系统总线300连接,完成预先设定操作的虚拟装置。在不同的资料和文件中描述的存储单元910、控制引擎单元920、搬运引擎单元930和计算引擎单元940的名称可能具有区别,但是应当理解的是,这些单元可以是现有芯片中与系统总线300连接且完成基本芯片功能的基础虚拟单元。需要注意的是,本发明实施例中除图10以外的芯片结构示意图,为了便于对本发明的发明点进行说明和示意,在图10以外的芯片结构示意图中对这些基础虚拟单元进行了省略。
在实际应用中,使用本发明实施例提供的芯片,将多个芯片的端口直接连接可以构建芯片集群。芯片与芯片之间的连接方式可以参考上述实施例,在此不再赘述。本发明实施例根据构建芯片集群的互联拓扑结构,可以提供与该互联拓扑结构适配的调度算法。通过该调度算法,使得不同应用类型的数据流在该芯片集群中的传输最大程度达到均衡,避免芯片集群中某一芯片超负荷运行所导致的传输耗时过长以及传输功耗过大的问题。例如:假设将芯片D的数据传输至芯片E,本发明实施例可以根据芯片D与芯片E之间所有的由中转节点芯片构成的传输路径的物理连接情况、各中转节点芯片的各端口的占用情况、芯片E的占用情况。芯片集群的整体资源占用情况以及该数据的数据量等因素,确定传输该数据的传输路径。例如:调度算法确定的传输路径为芯片D至芯片F至芯片G至芯片E,则芯片F从芯片D中获得该数据之后,经芯片F自身与芯片G连接的互联总线,将该数据传输至芯片G,芯片G在获得芯片F传输的该数据之后,经芯片D自身与芯片E连接的互联总线,将该数据传输至芯片E。
可以理解的是,本发明实施例可以应用现成的调度算法,也可以使用针对芯片集群的互联拓扑结构专门设计的调度算法。
本发明实施例提供的一种芯片,包括:第一端口100、第二端口200、系统总线300、第一互联总线400、第一仲裁分发模块500和第二仲裁分发模块600,所述第一端口100经所述第一仲裁分发模块500与所述第一互联总线400的一侧连接,所述第二端口200经所述第二仲裁分发模块600与所述第一互联总线400的另一侧连接,所述系统总线300与所述第一互联总线400不同;所述第一端口100经所述第一仲裁分发模块500与所述系统总线300连接,和/或,所述第二端口200经所述第二仲裁分发模块600与所述系统总线300连接。本发明实施例通过与系统总线300互不干扰的互联总线传输无需进行数据处理的数据,避免该数据流经系统总线300进行非必要的数据处理,节约芯片的计算资源,提升芯片对数据进行操作的整体效率。
与上述本发明实施例提供的芯片相对应的,如图11所示,本发明实施例还提供一种数据交互方法,应用于上述的芯片,所述方法包括:
S100、所述第一仲裁分发模块500获得经所述第一端口100传入所述芯片的数据。
S200、所述第一仲裁分发模块500识别该数据中的第一目的地址,当所述第一目的地址与所述第二端口200匹配时,则执行步骤S300,当所述第一目的地址与所述系统总线300匹配时,则执行步骤S400。
S300、所述第一仲裁分发模块500将该数据发送至所述第一互联总线400。
S400、所述第一仲裁分发模块500将该数据发送给所述系统总线300。
S500、所述第二仲裁分发模块600获得经所述第一互联总线400或所述系统总线300传输的数据。
S600、所述第二仲裁分发模块600识别该数据中的第二目的地址,当所述第二目的地址与所述第二端口200匹配时,所述第二仲裁分发模块600将该数据发送至所述第二端口200,以经所述第二端口200将数据发送到与所述第二端口200连接的其他芯片,其中,所述第二目的地址与所述第一目的地址相同或不同。
本发明实施例提供的一种数据交互方法,应用于芯片中,通过与系统总线300互不干扰的互联总线传输无需进行数据处理的数据,避免该数据流经系统总线300进行非必要的数据处理,节约芯片的计算资源,提升芯片对数据进行操作的整体效率。
可选的,基于图11所示的方法,如图12所示,本发明实施例提供的另一种数据交互方法,步骤S300包括:
S310、所述第一仲裁分发模块500将该数据发送至所述第三仲裁分发模块700。
S320、所述第三仲裁分发模块700将该数据发送至所述第一互联总线400。
步骤S500可以包括:
S510、所述第二仲裁分发模块600获得依次经所述第一互联总线400或所述系统总线300以及所述第四仲裁分发模块800传输的数据。
可选的,基于图12所示的方法,如图13所示,本发明实施例提供的另一种数据交互方法,步骤S100可以包括:
S110、所述第一分发器510获得经所述第一端口100传入所述芯片的数据。
步骤S200可以包括:
S210、所述第一分发器510识别该数据中的第一目的地址。
步骤S310可以包括:
S311、所述第一分发器510将该数据发送至所述第三分发器720。
步骤S320可以包括:
S321、所述第三分发器720将该数据发送至所述第一互联总线400。
步骤S400可以包括:
S410、所述第一分发器510将该数据发送给所述系统总线300。
步骤S510可以包括:
S511、所述第二仲裁器620获得依次经所述第一互联总线400或所述系统总线300以及所述第四仲裁器810传输的数据。
步骤S600可以包括:
S610、第二仲裁器620识别该数据中的第二目的地址,当所述第二目的地址与所述第二端口200匹配时,所述第二仲裁器620将该数据发送至所述第二端口200。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种芯片,其特征在于,包括:第一端口、第二端口、系统总线、第一互联总线、第一仲裁分发模块和第二仲裁分发模块,所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,所述系统总线与所述第一互联总线不同;
所述第一端口经所述第一仲裁分发模块与所述系统总线连接,和/或,所述第二端口经所述第二仲裁分发模块与所述系统总线连接。
2.根据权利要求1所述的芯片,其特征在于,还包括:第三仲裁分发模块和第四仲裁分发模块,
所述第一仲裁分发模块设置在所述第一端口处,所述第二仲裁分发模块设置在所述第二端口处,所述第三仲裁分发模块设置在所述第一互联总线的一侧,所述第四仲裁分发模块设置在所述第一互联总线的另一侧;
所述第一端口经所述第一仲裁分发模块与所述第一互联总线的一侧连接,具体设置为:所述第一端口依次经所述第一仲裁分发模块、所述第三仲裁分发模块与所述第一互联总线的一侧连接;
所述第二端口经所述第二仲裁分发模块与所述第一互联总线的另一侧连接,具体设置为:所述第二端口依次经所述第二仲裁分发模块、所述第四仲裁分发模块与所述第一互联总线的另一侧连接。
3.根据权利要求1所述的芯片,其特征在于,所述第一仲裁分发模块被配置为:根据流经所述第一仲裁分发模块的数据的目的地址,控制流经所述第一仲裁分发模块的数据发送至所述第一端口、所述系统总线、所述第一互联总线中的一个;
和/或,
所述第二仲裁分发模块被配置为:根据流经所述第二仲裁分发模块的数据的目的地址,控制流经所述第二仲裁分发模块的数据发送至所述第二端口、所述系统总线、所述第一互联总线中的一个。
4.根据权利要求3所述的芯片,其特征在于,所述第一端口与第一其他芯片连接,所述第二端口与第二其他芯片连接,
所述第一其他芯片中的数据依次经所述第一端口、所述第一仲裁分发模块、所述第一互联总线、所述第二仲裁分发模块以及所述第二端口被发送给所述第二其他芯片;
和/或,
所述第二其他芯片中的数据依次经所述第二端口、所述第二仲裁分发模块、所述第一互联总线、所述第一仲裁分发模块以及所述第一端口被发送给所述第一其他芯片。
5.根据权利要求2所述的芯片,其特征在于,所述第一仲裁分发模块包括第一仲裁器和第一分发器,所述第二仲裁分发模块包括第二仲裁器和第二分发器,所述第三仲裁分发模块包括第三仲裁器和第三分发器,所述第四仲裁分发模块包括第四仲裁器和第四分发器。
6.根据权利要求5所述的芯片,其特征在于,所述第一端口依次经所述第一仲裁分发模块、所述第三仲裁分发模块与所述第一互联总线的一侧连接,具体设置为:
所述第一端口依次经所述第一分发器、所述第三分发器与所述第一互联总线的一侧连接;
所述第一端口依次经所述第一仲裁器、所述第三仲裁器与所述第一互联总线的一侧连接;
所述第二端口依次经所述第二仲裁分发模块、所述第四仲裁分发模块与所述第一互联总线的另一侧连接,具体设置为:
所述第二端口依次经所述第二分发器、所述第四分发器与所述第一互联总线的另一侧连接;
所述第二端口依次经所述第二仲裁器、所述第四仲裁器与所述第一互联总线的另一侧连接。
7.根据权利要求5所述的芯片,其特征在于,所述第一端口经所述第一仲裁分发模块与所述系统总线连接,具体设置为:
所述第一端口经所述第一分发器与所述系统总线连接;
所述第一端口经所述第一仲裁器与所述系统总线连接;
所述第二端口经所述第二仲裁分发模块与所述系统总线连接,具体设置为:
所述第二端口经所述第二分发器与所述系统总线连接;
所述第二端口经所述第二仲裁器与所述系统总线连接。
8.根据权利要求1所述的芯片,其特征在于,所述第一端口与第三其他芯片中的至少一个端口连接;
和/或,所述第二端口与第四其他芯片中的至少一个端口连接;
所述第三其他芯片与所述第四其他芯片不同。
9.根据权利要求1所述的芯片,其特征在于,所述第一端口与第五其他芯片中的至少一个端口连接,所述第二端口与所述第五其他芯片的至少一个端口连接,所述第一端口与所述第五其他芯片连接的端口与所述第二端口与所述第五其他芯片连接的端口不同。
10.根据权利要求1所述的芯片,其特征在于,
所述芯片中的任意两个端口之间至少通过一条互联总线连接;
和/或,
所述芯片中的每个端口都至少与一个仲裁分发模块连接,所述芯片中的任一条互联总线的两侧均至少与一个仲裁分发模块连接。
11.根据权利要求1所述的芯片,其特征在于,还包括:与互联总线连接的中转控制引擎,所述中转控制引擎被配置为发起对中转数据的读操作和/或写操作。
12.一种数据交互方法,其特征在于,所述方法应用于权利要求1至11中任一项所述的芯片,所述方法包括:
所述第一仲裁分发模块获得经所述第一端口传入所述芯片的数据;
所述第一仲裁分发模块识别该数据中的第一目的地址,当所述第一目的地址与所述第二端口匹配时,所述第一仲裁分发模块将该数据发送至所述第一互联总线;当所述第一目的地址与所述系统总线匹配时,所述第一仲裁分发模块将该数据发送给所述系统总线;
所述第二仲裁分发模块获得经所述第一互联总线或所述系统总线传输的数据;
所述第二仲裁分发模块识别该数据中的第二目的地址,当所述第二目的地址与所述第二端口匹配时,所述第二仲裁分发模块将该数据发送至所述第二端口,以经所述第二端口将数据发送到与所述第二端口连接的其他芯片,其中,所述第二目的地址与所述第一目的地址相同或不同。
CN202011497133.6A 2020-12-17 2020-12-17 一种芯片和数据交互方法 Pending CN112506824A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011497133.6A CN112506824A (zh) 2020-12-17 2020-12-17 一种芯片和数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011497133.6A CN112506824A (zh) 2020-12-17 2020-12-17 一种芯片和数据交互方法

Publications (1)

Publication Number Publication Date
CN112506824A true CN112506824A (zh) 2021-03-16

Family

ID=74922261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011497133.6A Pending CN112506824A (zh) 2020-12-17 2020-12-17 一种芯片和数据交互方法

Country Status (1)

Country Link
CN (1) CN112506824A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024016649A1 (zh) * 2022-07-22 2024-01-25 声龙(新加坡)私人有限公司 总线传输结构及方法、芯片

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145894A (zh) * 2007-10-29 2008-03-19 哈尔滨工业大学 高可用双机容错系统的高可靠仲裁装置
CN103218331A (zh) * 2012-12-07 2013-07-24 浙江大学 采用同步模式切换及帧优先级自动调整的总线装置及方法
CN104035899A (zh) * 2014-03-21 2014-09-10 浪潮电子信息产业股份有限公司 一种高速互联总线多消息源仲裁器的实现方法
CN111290986A (zh) * 2020-03-03 2020-06-16 深圳鲲云信息科技有限公司 一种基于神经网络的总线互联系统
CN111314194A (zh) * 2020-04-15 2020-06-19 联合华芯电子有限公司 一种基于多电平逻辑运算的数据传输系统和方法
CN111314191A (zh) * 2020-04-15 2020-06-19 联合华芯电子有限公司 一种数据传输系统和方法
CN111400239A (zh) * 2020-04-15 2020-07-10 联合华芯电子有限公司 片内分布式互联总线系统及多核处理器
CN111506538A (zh) * 2020-04-15 2020-08-07 联合华芯电子有限公司 用于片内互联总线的时隙分裂中继设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145894A (zh) * 2007-10-29 2008-03-19 哈尔滨工业大学 高可用双机容错系统的高可靠仲裁装置
CN103218331A (zh) * 2012-12-07 2013-07-24 浙江大学 采用同步模式切换及帧优先级自动调整的总线装置及方法
CN104035899A (zh) * 2014-03-21 2014-09-10 浪潮电子信息产业股份有限公司 一种高速互联总线多消息源仲裁器的实现方法
CN111290986A (zh) * 2020-03-03 2020-06-16 深圳鲲云信息科技有限公司 一种基于神经网络的总线互联系统
CN111314194A (zh) * 2020-04-15 2020-06-19 联合华芯电子有限公司 一种基于多电平逻辑运算的数据传输系统和方法
CN111314191A (zh) * 2020-04-15 2020-06-19 联合华芯电子有限公司 一种数据传输系统和方法
CN111400239A (zh) * 2020-04-15 2020-07-10 联合华芯电子有限公司 片内分布式互联总线系统及多核处理器
CN111506538A (zh) * 2020-04-15 2020-08-07 联合华芯电子有限公司 用于片内互联总线的时隙分裂中继设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024016649A1 (zh) * 2022-07-22 2024-01-25 声龙(新加坡)私人有限公司 总线传输结构及方法、芯片

Similar Documents

Publication Publication Date Title
EP3748510A1 (en) Network interface for data transport in heterogeneous computing environments
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
CN101449253B (zh) 多处理器网关
CN100531125C (zh) 在交换结构网络中仲裁虚拟信道传输队列
US9519606B2 (en) Network switch
US7039740B2 (en) Interrupt handling in systems having multiple multi-processor clusters
CN109240832B (zh) 一种硬件重构系统及方法
CN101454763B (zh) 用于在串行总线之间传输数据的网关
JPH10507023A (ja) 共用メモリシステム
CN106933504B (zh) 用于提供存储系统的访问的方法和系统
US10305825B2 (en) Bus control device, relay device, and bus system
CN104657308A (zh) 一种用fpga实现的服务器硬件加速的方法
CN102035688B (zh) 一种快速控制网络链路访问设计方法
CN102866980B (zh) 用于多核微处理器片上互连网络的网络通信胞元
US9069912B2 (en) System and method of distributed initiator-local reorder buffers
CN105468546A (zh) 互连电路的数据处理装置和方法
CN114338824A (zh) 用于数据处理系统的消息协议
CN100401279C (zh) 支持包处理的可配置的多端口多协议网络接口
CN112882986B (zh) 一种带有超节点以及超节点控制器的众核处理器的应用方法
CN113438171B (zh) 一种低功耗存算一体系统的多芯片连接方法
CN112506824A (zh) 一种芯片和数据交互方法
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US11146495B2 (en) Protocol layer tunneling for a data processing system
CN105718393A (zh) 用于网络接口芯片的寄存器多源访问调度方法及装置

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