CN114691591A - 片间通信的电路、方法和系统 - Google Patents

片间通信的电路、方法和系统 Download PDF

Info

Publication number
CN114691591A
CN114691591A CN202011631683.2A CN202011631683A CN114691591A CN 114691591 A CN114691591 A CN 114691591A CN 202011631683 A CN202011631683 A CN 202011631683A CN 114691591 A CN114691591 A CN 114691591A
Authority
CN
China
Prior art keywords
unit
data
chip
description information
task description
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
CN202011631683.2A
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011631683.2A priority Critical patent/CN114691591A/zh
Priority to US18/259,684 priority patent/US20240054012A1/en
Priority to PCT/CN2021/143162 priority patent/WO2022143917A1/zh
Publication of CN114691591A publication Critical patent/CN114691591A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Multi Processors (AREA)

Abstract

本公开提供一种片间通信的电路、方法和系统,该方法可以实现在计算装置中,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。

Description

片间通信的电路、方法和系统
技术领域
本公开涉及人工智能芯片领域,更具体地,涉及多处理器的片间通信领域。
背景技术
在神经网络的训练中,如果单机训练规模为X的神经网络耗时T,那么当有N台相同机器训练该神经网络时,理想状态下,训练耗时应该为T/N,这也被称为理想线性加速比。但是,理想线性加速是不现实的,因为引入了通信开销。虽然计算部分是可以线性加速的;但是通信部分(如AllReduce算法)是客观存在且无法消除的。
因此,为了提升芯片的算力和运行效率,需要提升片间通信的效率。
发明内容
本公开的一个目的在于提升片间通信的效率,进而提升多核处理器的运算效率。
根据本公开的第一方面,提供一种用于片间通信的电路,包括:第一调度单元、第一运算单元和发送单元,其中,所述第一调度单元配置为接收第一任务描述信息;所述第一运算单元配置为从所述第一调度单元接收所述第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;所述第一运算单元进一步配置为将所述第一处理数据传送到所述发送单元;所述发送单元配置为向片外发送所述第一处理数据。
根据本公开的第二方面,提供一种用于片间通信的方法,包括:通过第一调度单元接收第一任务描述信息;通过第一运算单元来根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;通过第一运算单元将所述第一处理数据传送到发送单元;以及通过所述发送单元向片外发送所述第一处理数据。
根据本公开的第三方面,提供一种用于片间通信的电路,包括:第二调度单元、第二运算单元、接收单元和第二存储单元,其中,所述接收单元配置为:接收第一处理数据;将第一处理数据发送到所述第二存储单元;将接收到所述第一处理器数据的消息通知给所述第二调度单元;所述第二调度单元配置为:接收第二任务描述信息;指示所述第二运算单元对所述第一处理数据进行处理;以及所述第二运算单元配置为:从所述第二存储单元中获取所述第一处理数据;从所述第二调度单元接收所述第二任务描述信息;根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
根据本公开的第四方面,提供一种芯片,包括如上所述的电路。
根据本公开的第五方面,提供一种电子设备,包括:如上所述的电路或如上所述的芯片。
根据本公开的第六方面,提供一种片间通信系统,包括第一芯片和第二芯片,其中,所述第一芯片包括第一调度单元、第一运算单元和发送单元,其中,所述第一调度单元配置为接收第一任务描述信息;所述第一运算单元配置为从所述第一调度单元接收所述第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;所述第一运算单元进一步配置为将所述第一处理数据传送到所述发送单元;所述发送单元配置为向第二芯片发送所述第一处理数据;所述第二芯片包括第二调度单元、第二运算单元、接收单元和第二存储单元,其中,所述接收单元配置为:从所述第一芯片接收第一处理数据;将第一处理数据发送到所述第二存储单元;将接收到所述第一处理器数据的消息通知给所述第二调度单元;所述第二调度单元配置为:接收第二任务描述信息;指示所述第二运算单元对所述第一处理数据进行处理;以及所述第二运算单元配置为:从所述第二存储单元中获取所述第一处理数据;从所述第二调度单元接收所述第二任务描述信息;根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
根据本公开的第七方面,提供一种电子设备,包括如上所述的系统。
本公开的技术方案通过改变芯片中数据的转发规则,提升了芯片间通信效率,并进而改进了芯片的整体运行效率。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了根据本公开一个实施方式的片间通信的系统示意图;
图2示出了根据本公开另一个实施方式的用于片间通信的电路的示意图;
图3示出了根据本公开另一个实施方式的用于片间通信的电路的示意图;
图4示出了根据本公开的另一个实施方式的用于片间通信的电路的示意图;
图5示出了根据本公开另一个实施方式的进行片间通信的系统的示意图;
图6示出了根据本公开的一个实施方式的一种用于进行片间通信的方法;
图7示出了一种组合处理装置;以及
图8提供了一种示例性的板卡。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
图1示出了根据本公开一个实施方式的片间通信的系统示意图。
如图1所示,该系统包括了芯片1和芯片2,其中芯片1包括第一调度单元JS(JobScheduler)1,第一运算单元TC1,发送单元TX,第一内存管理子单元SMMU(MemoryManagement Unit)11,第二内存管理子单元SMMU12以及第一存储单元LLC/HBM1;芯片2包括第二调度单元JS2,第二运算单元TC2,接收单元RX,第三内存管理子单元SMMU21,第四内存管理子单元SMMU22以及第二存储单元LLC/HBM2。
运算单元TC1和TC2可以是各种类型的处理内核,例如IPU(图像处理单元)等。
如图1所示,第一调度单元JS1从主机1接收任务描述信息(例如任务描述符),该任务描述信息包括了任务ID、任务的类别、数据尺寸、数据地址、参数尺寸、处理内核(例如第一运算单元)配置信息、处理内核的地址信息以及任务的拆分信息等等。需要理解的是,在从主机首次接收信息的时候,还包括了从主机接收待要处理的数据。而在运行过程中,则数据可以在芯片之间传送,第一调度单元JS1仅接收任务描述信息,而无需每次都接收待要处理的数据。
第一调度单元JS1将接收到的任务描述信息加载到第一运算单元TC1,第一运算单元TC1在接收到加载的任务描述符之后向第一调度单元JS1反馈应答消息,以表示接收成功。
第一运算单元TC1可以根据任务描述信息将任务拆分为多个子任务(job),并以所拆分出来的子任务的颗粒度来将任务调度分发至所述第一运算单元的至少一个处理器核上,以使得该第一运算单元的至少一个处理核能够并行地处理该任务。
第一运算单元TC1在对接收到的数据进行处理之后,还可以通过通信总线将处理后数据存在到第一存储单元LLC(Last Level Cache,最后一级缓存)/HBM1(高带宽存储器,High Bandwidth Memory)中。第一内存管理子单元SMMU11负责实现第一存储单元LLC/HBM1中的内存分配、地址转换等功能。
接下来,发送单元Tx通过第二内存管理单元SMMU12从第一存储单元LLC/HBM1中获取处理后数据,并在第一调度单元JS1的触发下,基于从主机1接收到的第一片间通信描述信息1,将处理后数据传送到芯片2中。其中,该片间通信描述信息1用以描述芯片间的通信任务。
芯片2中的接收单元Rx基于从主机接收的第二片间通信描述信息2从芯片1的发送单元接收处理后数据,并将接收到的处理后数据通过第三内存管理子单元SMMU21,经由通信总线存储到芯片2的第二存储单元LLC/HBM2中。
当接收单元完成处理后数据的接收之后,通知第二调度单元JS2。第二调度单元JS2从主机2接收与主机1发送的第二片间通信描述信息相关联的任务描述模板,并根据该第二片间通信描述信息和所述任务描述模板确定通信任务。
第二处理单元TC2通过第四内存管理单元SMMU22从第二存储单元LLC/HBM2中获取所存储的处理后数据,并进行处理。
在图1所示的方案中,发送单元Tx相对于第一运算单元TC1而言处于主控的角色,其负责了将数据从第一存储单元LLC/HBM1中的提取,以及数据向片外的发送,而并不受到第一运算单元TC1的控制。
在图1所示的方案中,数据需要在芯片内部进行缓存和读取,然后再进行发送和处理,这种缓存的读取的时间将容易导致通信时间的延长,并进而导致多芯片系统处理能力的下降。
此外,如果芯片1中由于从第一存储单元LLC/HBM1中读取数据时产生故障或者时间过程,那么将会影响发送单元Tx将数据从芯片1发送到芯片2,这将导致芯片2长时间的等待。
图2示出了根据本公开另一个实施方式的用于片间通信的电路的示意图。如图2所示,该电路包括:第一调度单元211、第一运算单元212和发送单元213,其中,所述第一调度单元211配置为接收第一任务描述信息;所述第一运算单元212配置为从所述第一调度单元211接收所述第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;所述第一运算单元212进一步配置为将所述第一处理数据传送到所述发送单元213;所述发送单元213配置为向片外发送所述第一处理数据。
如图1所示的系统不同之处在于,在图2所示的系统中,第一调度单元211仅仅负责向第一运算单元212传送第一任务描述信息,而无需对发送单元213进行调度和控制。
第一运算单元212接收第一任务描述信息并根据第一任务描述信息来对第一数据进行处理。处理后第一数据可以直接发送给发送单元213,而发送单元213无需从存储单元中获取处理后数据。
在本实施方式中,发送单元213并不作为主控制方,而是在第一运算单元212的控制之下进行数据的发送。在另一个实施方式中,发送单元213在第一运算单元212的控制下,响应于接收到所述第一处理数据而发送所述第一处理数据。在本实施方式中,发送单元的职责较为单一,从而发送单元213的功能和/或结构也能得到简化。
进一步地,在如图1所示的实施方式中,主机直接将片间通信描述信息下发给发送单元213,发送单元213根据从主机接收到的片间通信描述信息系来与其他芯片上的收发单元进行交互。而在如图2所示的实施方式中,是通过第一运算单元212直接对发送单元213的通信进行控制,换言之第一运算单元212中可以包括片间通信描述信息,从而便于对发送单元213与外部的通信进行控制。
上述的第一数据可以来自于主机,也可以来自于其他芯片处理后生成的数据。
图3示出了根据本公开另一个实施方式的用于片间通信的电路的示意图。
如图3所示,本公开的电路进一步包括第一存储单元214,所述第一运算单元212进一步配置为将所述第一处理数据传送到所述第一存储单元214以便于缓存所述第一处理数据。
在本公开的上述技术方案中,第一运算单元212除了将第一处理数据发送到发送单元213之外,还将第一处理数据发送到第一存储单元214进行存储,以便于对第一处理数据的进一步使用。
根据本公开的一个实施方式,所述第一存储单元可以包括第一内存管理子单元2141和第一缓存子单元2142,所述第一内存管理子单元2141配置为管理所述第一处理数据在所述第一缓存子单元2142上的存储。第一内存管理子单元2141负责实现存储单元中的内存分配、地址转换等功能,第一缓存子单元2142可以是片上缓存器,其负责将第一运算单元212经过处理的数据进行缓存。
可以看出的是,与图1所示的实施方式相比,在图3所示的实施方式中,发送单元213未从第一缓存子单元2142中读取数据,而是直接将从第一运算单元212处接收的第一处理数据发送到其他芯片。
这样的方式减少或消除了发送单元213从第一缓存子单元2142中读取数据产生的时间开销,提升了通信的效率。
此外,发送单元213无需从第一缓存子单元2142中获取数据,因此也无需再调用一个新的内存管理子单元,这与图1中所示的利用两个内存管理子单元进行数据的存储和读取具有显著的区别。
图4示出了根据本公开的另一个实施方式的用于片间通信的电路的示意图。
如图4所示,该电路可以包括:第二调度单元421、第二运算单元422、接收单元423和第二存储单元424。
接收单元423可以接收从该电路外部接收数据,并将数据发送到第二存储单元424进行缓存。同时,接收单元423还可以将接收到数据这样的事件通知给第二调度单元421,从而第二调度单元421知晓数据已进入到该电路(芯片)中。
第二调度单元421可以接收第二任务描述信息,指示所述第二运算单元422对所述接收单元423所接收的数据进行处理。第二任务描述信息可以从主机接收,并将接收到的第二任务描述信息加载到第二运算单元422中。
第二任务描述信息可以独立于上文中描述的第一任务描述信息,也可以与第一任务描述信息相关联,例如第一任务描述信息和第二任务描述信息可以是一个任务描述信息的两个不同部分。
所述第二运算单元422可以配置为从所述第二存储单元424中获取由接收单元423接收并存储在第二存储单元424中的数据,并从所述第二调度单元421处接收所述第二任务描述信息;在接收到第二任务描述信息和数据之后,可以根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
与图1所示的实施方式不同之处在于,在图1所示的实施方式中,主机需要向接收单元Rx发送片间通信描述信息,以控制接收单元Rx对数据的接收和转发;而在如图4所示的实施方式中,接收单元423将无需从主机中接收片间通信描述信息,而只是将接收数据通知给第二调度单元421。
更进一步地,在图1所示的实施方式中,接收单元Rx作为从属方接受主机的控制;而在图4所示的实施方式中,接收单元423作为主控方来进行数据的接收、通知和存储等操作。
根据本公开的一个实施方式,第二存储单元424可以包括第二内存管理子单元4241、第三内存管理子单元4242和第二缓存子单元4243。
在图4中,第二内存管理子单元4241可以管理来自于接收单元423的数据到第二缓存子单元4243上的存储。
而第三内存管理子单元4242可以管理来自于第二缓存子单元4243的数据到第二运算单元422的传送。
图2-图4所示的电路可以形成在芯片中,也可以形成在其他设备中。
图5示出了根据本公开另一个实施方式的进行片间通信的系统的示意图。
如图5所示,本公开的片间通信系统可以包括第一芯片510和第二芯片520,其中,所述第一芯片510可以包括第一调度单元511、第一运算单元512和发送单元513;第二芯片520可以包括第二调度单元521、第二运算单元522、接收单元523和第二存储单元524。
在图5所示的系统中,第一调度单元511接收第一任务描述信息,例如可以从第一主机中接收该第一任务描述信息。
第一运算单元512可以从所述第一调度单元511接收该第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据。
在图5中,第一数据可以是第一调度单元511从第一主机中接收的,也可以是从其他芯片直接或间接接收的,本公开并不限制第一数据的来源。例如在该系统首次启动或者初始化时,第一调度单元511可以随同第一任务描述信息一起从第一主机接收第一数据。当第一数据进入如图5所示的系统之后,则可以在各个芯片之间进行处理。
第一运算单元512在根据第一任务描述信息对该第一数据进行处理之后,可以生成第一处理数据。然后,第一运算单元512可以将所生成的第一处理数据直接发送到发送单元513以便于向第二芯片520发送该第一处理数据。
可选地,所述第一芯片510还可以包括第一存储单元514,其中第一运算单元512进一步配置为将所述第一处理数据传送到所述第一存储单元514以便于缓存所述第一处理数据。
第一处理数据在由第一运算单元512发送给发送单元513的之前,同时或者之后,还可以将该第一处理数据通过通信总线缓存到第一存储单元514中以便于后续的使用。如果未来需要调用第一处理数据,则可以从该第一存储单元514中读取相应的数据,而无需再从第一主机中接收。
第一存储单元514可以包括第一内存管理子单元5141和第一缓存子单元5142,第一存储单元510可以通过所述第一内存管理子单元5141来管理所述第一处理数据在所述第一缓存子单元5142上的存储。
发送单元513在接收到该第一处理数据之后,可以将该第一处理数据发送到第二芯片520。与图1所示的实施方式不同的是,在图1所示的实施方式中,发送单元Tx起到主控作用,而在本实施方式中,发送单元513受控于第一运算单元512,而不起到主控作用。
第二芯片520中的接收单元523可以从第一芯片510(具体而言是第一芯片510中的发送单元513)接收第一处理数据。
在接收到该第一处理数据之后,则将该第一处理数据发送到第二存储单元524,并且将接收到所述第一处理器数据的消息通知给所述第二调度单元521。
第二调度单元521接收第二任务描述信息。第二任务描述信息与第一任务描述信息可以说独立,也可以是相互关联的,例如可以是同一个总体任务中不同的分任务。
接下来,第二调度单元521可以根据该第二任务描述信息指示第二运算单元522对该第一处理数据进行另外的处理。需要理解的是,这里所述的“指示第二运算单元522对该第一处理数据进行处理”意味着第二调度单元521向第二处理单元522发送开始处理的指令,而不是必须向该第二处理单元522发送第一处理数据本身。
第二运算单元522可以从第二调度单元521接收第二任务描述信息,并从第二存储单元524中获取第一处理数据,并根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
第二存储单元524可以包括第二内存管理子单元5241、第三内存管理子单元5242和第二缓存子单元5243。第二内存管理子单元5241可以管理来自于接收单元523的第一处理数据到第二缓存子单元5243上的存储,而第三内存管理子单元5242可以管理来自于第二缓存子单元5243的数据到第二运算单元522的传送。
在图5所示的系统中,接收单元523无需再从第二主机中接收通信任务描述信息,而可以直接从第一芯片510中接收第一处理数据。
需要理解的是,上文中为了清楚起见,第一芯片510仅作为数据发送角色时,其包括了发送单元513,而第二芯片520仅作为数据接收角色时,其包括了接收单元523,但在实际的应用和产品中,发送单元513和接收单元523通常结合为一个收发单元,既负责接收,也负责发送,因此发送单元513和接收单元523在本文中虽然表现为两个不同的实体,但在实际的应用和产品中本质上为同一个实体。
此外,第一运算单元512与第二运算单元522可以是同一个运算单元,第一调度单元511与第二调度单元521可以是同一个调度单元,第一存储单元514与第二存储单元524可以是同一个存储单元,他们只是在所处的芯片作为数据发送角色和数据接收角色时表现有所不同。例如,第一存储单元514实际上可以与第二存储单元524具有相同的内部结构,换言之,第一芯片510和第二芯片520具有相同的结构,二者在批量生产时在结构上并无不同。
图6示出了根据本公开的一个实施方式的一种用于进行片间通信的方法,包括:在操作S610,通过第一调度单元接收第一任务描述信息;在操作S620,通过第一运算单元来根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;在操作S630,通过第一运算单元将所述第一处理数据传送到发送单元;以及在操作S640,通过所述发送单元向片外发送所述第一处理数据。
根据本公开的一个实施方式,通过所述第一运算单元将所述第一处理数据传送到第一存储单元以便于缓存所述第一处理数据。
根据本公开的一个实施方式,其中,所述第一存储单元包括第一内存管理子单元和第一缓存子单元,通过所述第一内存管理子单元管理所述第一处理数据在所述第一缓存子单元上的存储。
根据本公开的一个实施方式,其中,通过所述第一调度单元为从主机接收第一任务描述信息。
根据本公开的一个实施方式,其中,所述第一数据来自于主机或者第一存储单元。
本公开还提供一种芯片,其包括如上所述的电路。
本公开还提供一种电子设备,包括如上所述的芯片或系统。
本公开还提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。该计算机可执行指令可以安装到现有的计算设备中,从而实现上文所述的方法和设备。
本公开的技术方案可应用于人工智能领域,实现为或者实现在人工智能芯片中。该芯片可以单独存在,也可以包含在计算装置中。
图7示出了一种组合处理装置700,其包括上述的计算装置702,通用互联接口704,和其他处理装置706。根据本公开的计算装置与其他处理装置进行交互,共同完成用户指定的操作。图7为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在计算装置(包括例如机器学习运算装置)与其他处理装置间传输数据和控制指令。该计算装置从其他处理装置中获取所需的输入数据,写入该计算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入计算装置片上的控制缓存;也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构还可以包括存储装置708,存储装置分别与所述计算装置和所述其他处理装置连接。存储装置用于保存在所述计算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图8,其提供了一种示例性的板卡,上述板卡除了包括上述芯片802以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件804、接口装置806和控制器件808。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元810。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备812(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡。
电子设备或装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (19)

1.一种用于片间通信的电路,包括:第一调度单元、第一运算单元和发送单元,其中,
所述第一调度单元配置为接收第一任务描述信息;
所述第一运算单元配置为从所述第一调度单元接收所述第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;
所述第一运算单元进一步配置为将所述第一处理数据传送到所述发送单元;
所述发送单元配置为向片外发送所述第一处理数据。
2.根据权利要求1所述的电路,进一步包括第一存储单元,其中所述第一运算单元进一步配置为将所述第一处理数据传送到所述第一存储单元以便于缓存所述第一处理数据。
3.根据权利要求1或2所述的电路,其中,所述发送单元在所述第一运算单元的控制下,响应于接收到所述第一处理数据而发送所述第一处理数据。
4.根据权利要求2所述的电路,其中,所述第一存储单元包括第一内存管理子单元和第一缓存子单元,所述第一内存管理子单元配置为管理所述第一处理数据在所述第一缓存子单元上的存储。
5.根据权利要求1-4中任意一项所述的电路,其中,所述第一调度单元配置为从主机接收第一任务描述信息。
6.根据权利要求1-5中任意一项所述的电路,其中,所述第一数据来自于主机或者第一存储单元。
7.一种用于片间通信的方法,包括:
通过第一调度单元接收第一任务描述信息;
通过第一运算单元来根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;
通过第一运算单元将所述第一处理数据传送到发送单元;以及
通过所述发送单元向片外发送所述第一处理数据。
8.根据权利要求7所述的方法,进一步包括:通过所述第一运算单元将所述第一处理数据传送到第一存储单元以便于缓存所述第一处理数据。
9.根据权利要求8所述的方法,其中,所述第一存储单元包括第一内存管理子单元和第一缓存子单元,通过所述第一内存管理子单元管理所述第一处理数据在所述第一缓存子单元上的存储。
10.根据权利要求7-9中任意一项所述的方法,其中,通过所述第一调度单元为从主机接收第一任务描述信息。
11.根据权利要求7-10中任意一项所述的方法,其中,所述第一数据来自于主机或者第一存储单元。
12.一种用于片间通信的电路,包括:第二调度单元、第二运算单元、接收单元和第二存储单元,其中,
所述接收单元配置为:
接收第一处理数据;
将第一处理数据发送到所述第二存储单元;
将接收到所述第一处理器数据的消息通知给所述第二调度单元;
所述第二调度单元配置为:
接收第二任务描述信息;
指示所述第二运算单元对所述第一处理数据进行处理;以及
所述第二运算单元配置为:
从所述第二存储单元中获取所述第一处理数据;
从所述第二调度单元接收所述第二任务描述信息;
根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
13.根据权利要求12所述的电路,其中,所述第二存储单元包括第二内存管理子单元、第三内存管理子单元和第二缓存子单元;
所述第二内存管理子单元配置为管理所述第一处理数据从所述接收单元到所述第二缓存子单元上的存储;
所述第三内存管理子单元配置为管理所述第一处理数据从所述第一缓存子单元到所述第二运算单元的传送。
14.根据权利要求13或14所述的电路,其中,所述第二调度单元配置为从主机接收第二任务描述信息。
15.一种芯片,包括如权利要求1-6中任意一项所述的电路,或者如权利要求12-14中任意一项所述的电路。
16.一种电子设备,包括:
如权利要求1-6中任意一项所述的电路或如权利要求15所述的芯片;或
如权利要求12-14中任意一项所述的电路或如权利要求15所述的芯片。
17.一种片间通信系统,包括第一芯片和第二芯片,其中,
所述第一芯片包括第一调度单元、第一运算单元和发送单元,其中,
所述第一调度单元配置为接收第一任务描述信息;
所述第一运算单元配置为从所述第一调度单元接收所述第一任务描述信息,并根据所述第一任务描述信息对第一数据进行处理,以得到第一处理数据;
所述第一运算单元进一步配置为将所述第一处理数据传送到所述发送单元;
所述发送单元配置为向第二芯片发送所述第一处理数据;
所述第二芯片包括第二调度单元、第二运算单元、接收单元和第二存储单元,其中,
所述接收单元配置为:
从所述第一芯片接收第一处理数据;
将第一处理数据发送到所述第二存储单元;
将接收到所述第一处理器数据的消息通知给所述第二调度单元;
所述第二调度单元配置为:
接收第二任务描述信息;
指示所述第二运算单元对所述第一处理数据进行处理;以及
所述第二运算单元配置为:
从所述第二存储单元中获取所述第一处理数据;
从所述第二调度单元接收所述第二任务描述信息;
根据所述第二任务描述信息对所述第一处理数据进行处理,以得到第二处理数据。
18.根据权利要求17所述的系统,所述第一芯片进一步包括第一存储单元,其中所述第一运算单元进一步配置为将所述第一处理数据传送到所述第一存储单元以便于缓存所述第一处理数据。
19.一种电子设备,包括如权利要求17或18所述的系统。
CN202011631683.2A 2020-12-31 2020-12-31 片间通信的电路、方法和系统 Pending CN114691591A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011631683.2A CN114691591A (zh) 2020-12-31 2020-12-31 片间通信的电路、方法和系统
US18/259,684 US20240054012A1 (en) 2020-12-31 2021-12-30 Inter-chip communication circuit, method and system
PCT/CN2021/143162 WO2022143917A1 (zh) 2020-12-31 2021-12-30 片间通信的电路、方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011631683.2A CN114691591A (zh) 2020-12-31 2020-12-31 片间通信的电路、方法和系统

Publications (1)

Publication Number Publication Date
CN114691591A true CN114691591A (zh) 2022-07-01

Family

ID=82134698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011631683.2A Pending CN114691591A (zh) 2020-12-31 2020-12-31 片间通信的电路、方法和系统

Country Status (1)

Country Link
CN (1) CN114691591A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301434A (zh) * 2014-10-31 2015-01-21 浪潮(北京)电子信息产业有限公司 一种基于集群的高速通信架构及方法
CN110968532A (zh) * 2018-09-29 2020-04-07 上海寒武纪信息科技有限公司 数据传输方法及相关产品
CN111047030A (zh) * 2018-10-11 2020-04-21 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
WO2020087276A1 (zh) * 2018-10-30 2020-05-07 北京比特大陆科技有限公司 大数据运算加速系统和芯片
CN111381958A (zh) * 2018-12-29 2020-07-07 上海寒武纪信息科技有限公司 通信装置、神经网络处理芯片、组合装置和电子设备
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301434A (zh) * 2014-10-31 2015-01-21 浪潮(北京)电子信息产业有限公司 一种基于集群的高速通信架构及方法
CN110968532A (zh) * 2018-09-29 2020-04-07 上海寒武纪信息科技有限公司 数据传输方法及相关产品
CN111047030A (zh) * 2018-10-11 2020-04-21 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
WO2020087276A1 (zh) * 2018-10-30 2020-05-07 北京比特大陆科技有限公司 大数据运算加速系统和芯片
CN111381958A (zh) * 2018-12-29 2020-07-07 上海寒武纪信息科技有限公司 通信装置、神经网络处理芯片、组合装置和电子设备
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质

Similar Documents

Publication Publication Date Title
CN110968532B (zh) 数据传输方法及相关产品
CN111209244B (zh) 数据处理装置及相关产品
CN111382847B (zh) 数据处理装置及相关产品
CN114691591A (zh) 片间通信的电路、方法和系统
CN111258732A (zh) 一种数据处理的方法、数据处理装置和电子设备
CN113157602A (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN111382851A (zh) 运算方法、装置及相关产品
CN111382852A (zh) 数据处理装置、方法、芯片及电子设备
CN111381873A (zh) 运算方法、装置及相关产品
CN111382850A (zh) 运算方法、装置及相关产品
CN113033791B (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN114691312A (zh) 片间通信的电路、方法和系统
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
US20220156077A1 (en) Artificial intelligence computing device and related product
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
CN111399905B (zh) 运算方法、装置及相关产品
CN111210011B (zh) 数据处理装置及相关产品
CN111078125B (zh) 运算方法、装置及相关产品
CN111813537A (zh) 运算方法、装置及相关产品
CN112396186B (zh) 执行方法、装置及相关产品
CN111079915B (zh) 运算方法、装置及相关产品
CN111723916A (zh) 数据处理方法、装置及相关产品
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111723919A (zh) 数据处理方法、装置及相关产品
CN111209245B (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