CN111209230A - 数据处理装置、方法及相关产品 - Google Patents

数据处理装置、方法及相关产品 Download PDF

Info

Publication number
CN111209230A
CN111209230A CN201811390409.3A CN201811390409A CN111209230A CN 111209230 A CN111209230 A CN 111209230A CN 201811390409 A CN201811390409 A CN 201811390409A CN 111209230 A CN111209230 A CN 111209230A
Authority
CN
China
Prior art keywords
data
interface
machine learning
processing circuit
unicast
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.)
Granted
Application number
CN201811390409.3A
Other languages
English (en)
Other versions
CN111209230B (zh
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 Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information 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 Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811390409.3A priority Critical patent/CN111209230B/zh
Priority to JP2020569113A priority patent/JP7060720B2/ja
Priority to KR1020207033053A priority patent/KR20200139829A/ko
Priority to EP21217804.0A priority patent/EP4009186A1/en
Priority to EP21217809.9A priority patent/EP4009183A1/en
Priority to US17/278,812 priority patent/US20220035762A1/en
Priority to PCT/CN2019/111977 priority patent/WO2020078470A1/zh
Priority to EP19873122.6A priority patent/EP3869352A4/en
Priority to EP21217802.4A priority patent/EP4009185A1/en
Priority to EP21217811.5A priority patent/EP4009184A1/en
Publication of CN111209230A publication Critical patent/CN111209230A/zh
Priority to JP2020206272A priority patent/JP7053775B2/ja
Priority to JP2020206281A priority patent/JP7074831B2/ja
Priority to JP2020206293A priority patent/JP7074832B2/ja
Priority to JP2020206306A priority patent/JP7074833B2/ja
Publication of CN111209230B publication Critical patent/CN111209230B/zh
Application granted granted Critical
Priority to US17/564,366 priority patent/US20220156215A1/en
Priority to US17/564,431 priority patent/US11880329B2/en
Priority to US17/564,579 priority patent/US11960431B2/en
Priority to US17/564,560 priority patent/US20220121603A1/en
Priority to US17/564,509 priority patent/US11797467B2/en
Priority to US17/564,492 priority patent/US11880330B2/en
Priority to US17/564,411 priority patent/US11809360B2/en
Priority to US17/564,398 priority patent/US11880328B2/en
Priority to US17/564,529 priority patent/US11868299B2/en
Priority to US17/564,389 priority patent/US11841816B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及一种数据处理装置、方法及相关产品。数据处理装置包括:机器学习装置、传输电路以及共享存储器,机器学习装置包括至少一个机器学习单元,机器学习单元包括至少一个发送接口和至少一个接收接口,机器学习单元所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享机器学习单元上的一个发送接口,机器学习单元与传输电路连接,传输电路与共享存储器连接;传输电路用于根据机器学习单元上的至少一个发送接口发出的数据操作信号,从共享存储器中获取输入数据,并通过接收接口返回至机器学习装置。本数据处理装置能够有效节省机器学习单元中数据操作信号发送接口的数量,降低硬件的面积和功耗。

Description

数据处理装置、方法及相关产品
技术领域
本申请涉及信息处理技术领域,特别是涉及一种数据处理装置、方法及相关产品。
背景技术
随着信息技术的不断发展和日益增长的需求,人们对数据访问和数据处理的需求越来越高,随之对一些处理数据和访问数据的处理器的要求也越来越严格。以一种通用处理器为例,多个通用处理器核(例如,CPU核)构成的多核处理器,以其强大的并行计算能力,成为一种主流。
但是随着目前机器学习算法的不断发展,越来越多架构的机器学习芯片逐渐问世,这些机器学习芯片经常需要以单播读、单播写、广播等多种方式访问或者处理共享存储中的数据,因此设置有相应的多个传输接口,导致机器学习芯片面积较大。
因此,如何简化机器学习芯片的传输接口以降低机器学习芯片的面积,成为当前技术人员亟待解决的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够简化机器学习芯片的传输接口的数据处理装置、方法及相关产品。
第一方面,本申请实施例提供了一种数据处理装置,所述数据处理装置包括:机器学习装置、传输电路以及共享存储器,所述机器学习装置包括至少一个机器学习单元,所述机器学习单元包括至少一个发送接口和至少一个接收接口,所述机器学习单元所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享所述机器学习单元上的一个发送接口,所述机器学习单元与所述传输电路连接,所述传输电路与所述共享存储器连接;
所述传输电路,用于根据所述机器学习装置通过所述机器学习单元上的所述至少一个发送接口发出的数据操作信号,从所述共享存储器中获取所述机器学习装置所需的输入数据,并将所述输入数据通过所述接收接口返回至所述机器学习装置。
第二方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第一方面所述的数据处理装置、通用互联接口,和其他处理装置。该数据处理装置与上述其他处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存储装置分别与所述数据处理装置和所述其他处理装置连接,用于保存所述数据处理装置和所述其他处理装置的数据。
第三方面,本申请实施例提供了一种机器学习芯片,该机器学习芯片包括上述第一方面所述的数据处理装置、上述第二方面所述的组合处理装置。
第四方面,本申请实施例提供了一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述第三方面所述的机器学习芯片。
第五方面,本申请实施例提供了一种板卡,该板卡包括上述第四方面所述的机器学习芯片封装结构。
第六方面,本申请实施例提供了一种电子装置,该电子装置包括上述第五方面所述的板卡。
上述数据处理装置、方法及相关产品,通过至少一个机器学习单元执行单播读操作、单播写操作、广播操作中的至少两种数据操作时共享所述机器学习单元上的一个发送接口,能够有效节省机器学习单元中数据操作信号发送接口的数量,节省硬件资源,降低硬件的面积和功耗。
附图说明
图1为一个实施例中数据处理装置的结构示意图之图一;
图2为一个实施例中机器学习单元的结构示意图;
图3为一个实施例中数据处理装置的结构示意图之图二;
图4为一个实施例中数据处理装置的结构示意图之图三;
图5为一个实施例中数据处理装置的结构示意图之图四;
图6为一个实施例中数据处理装置的结构示意图之图五;
图7为一个实施例中数据处理装置的结构示意图之图六;
图8为一个实施例中数据处理装置的结构示意图之图七;
图9为一个实施例中一种组合处理装置的结构示意图;
图10为一个实施例中另一种组合处理装置的结构示意图;
图11为一个实施例中一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明实施例涉及的数据处理装置,可以通过软件、硬件或者软硬件结合的方式实现;该数据处理装置可以为图1所示的部分或者全部。所述数据处理装置可以包括:机器学习装置11、传输电路12以及共享存储器13,所述机器学习装置11可以包括至少一个机器学习单元15,所述机器学习单元15可以包括至少一个发送接口141和至少一个接收接口142,所述机器学习单元15所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享所述机器学习单元15上的一个发送接口,所述机器学习单元15与所述传输电路12连接,所述传输电路12与所述共享存储器13连接;所述传输电路12,用于根据所述机器学习装置11通过所述机器学习单元15上的所述至少一个发送接口141发出的数据操作信号,从所述共享存储器13中获取所述机器学习装置所需的输入数据,并将所述输入数据通过所述接收接口142返回至所述机器学习装置。需要说明的是,上述机器学习单元15可以包括第一传输接口14(图中未示出),第一传输接口可以包括上述至少一个发送接口141和至少一个接收接口142。
可选的,所述机器学习装置11可以用于根据输入数据,执行机器学习运算,得到输出数据。可选的,所述机器学习装置11还可以用于将输出数据通过传输电路12传输至共享存储器13进行数据存储。具体的,若机器学习装置11用于执行一种神经网络运算时,机器学习装置11可以根据输入神经元数据和/或权值数据,执行人工神经网络运算,得到输出神经元数据,以及将输出神经元数据作为新的输入神经元数据,并通过传输电路12传输至共享存储器13进行数据存储。
需要说明的是,上述机器学习单元、传输电路、共享存储器以及各类接口均可以通过硬件电路的方式实现。示例性地,传输电路可以是广播总线(broadcast bus);共享存储器可以是非易失性和/或易失性存储器,包括但不限于随机存取存储器(RAM)、高速缓冲存储器等;各类接口可以对应一个或多个数据I/O(in/out,读入读出)接口或I/O引脚。
本申请提出的数据处理装置可以应用于机器学习运算,其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。当上述机器学习装置进行神经网络计算时,可选地,上述输入数据可以包括输入神经元数据和/或权值数据,该输入神经元数据和/或权值数据是机器学习装置在执行一种人工神经网络运算时需要输入的数据;相应的,上述输出数据可以包括输出神经元数据,该输出神经元数据是机器学习装置在执行一种人工神经网络运算时输出的中间结果或最终结果。可以理解的是,因为权值数据和神经元数据是可以复用的,因此在计算过程中输入数据并不一定要包括输入神经元数据和权值数据,也可以仅包括输入神经元数据,也可以仅包括权值数据。
以神经网络运算为例(如果不进行额外说明,本实施例中均以神经网络运算为例进行说明),本申请提出的数据处理装置可以进行神经网络中的一层的运算,也可以进行神经网络中的多层的运算。对于多层神经网络,其实现过程可以是:在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元数据作为下一层的输入神经元数据进行运算(或者是对该输出神经元数据进行某些操作再作为下一层的输入神经元数据),同时,将权值数据也替换为下一层的权值数据;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度(同样可以作为一种输入的神经元数据)作为下一层的输出神经元梯度进行运算(同样可以作为一种输出的神经元数据)(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值数据替换为下一层的权值数据。
参照图1所示,在一种可选的方案中,上述机器学习装置11可以包括多个机器学习单元15。针对多层神经网络的运算,以正向运算中某一层神经网络的计算为例进行说明。在一种实施方式中,上述机器学习装置可以通过多个机器学习单元(MLU,Machine LearningUnit)并行计算神经网络中该层所有神经元的输出神经元数据。示例性地,该机器学习装置包括4个机器学习单元,该层神经网络具有100个神经元,则可以分配由每个机器学习单元处理其中25个神经元,可以通过设置对应的运算指令来实现;在该过程中,每一个机器学习单元均可以通过传输电路从共享存储器中获取分配的该层25个神经元分别对应的输入神经元数据和权值数据,以此计算得到分配的该层25个神经元的输出神经元数据,并可以将分配的该层25个神经元的输出神经元数据通过传输电路传输至共享存储器进行存储。可以理解的是,上述各个机器学习单元在处理其分配的该层的多个神经元数据时,可以是并行计算处理的;如此进行一层又一层神经网络的并行计算,可以实现神经网络计算的并行处理,提高了处理效率。
在另一种可选的方案中,上述机器学习装置还可以利用多个机器学习单元按照一定先后顺序分别计算神经网络中各层所有神经元的输出神经元数据。在该过程中,前一个机器学习单元可以将该层所有神经元的输出神经元数据通过传输电路传输至共享存储器进行存储,以供后一个机器学习单元可以提取到该层所有神经元的输出神经元数据作为下一层的输入神经元数据进行计算。可以理解的是,上述应用适用于每一层的神经网络计算量不大的场景,例如每一层的神经元数目较少的神经网络的计算。
参照图2所示,以图1中的机器学习单元0为例,这里对机器学习单元进行详细说明。在一种方案中,机器学习单元15可以包括:至少一个发送接口141、至少一个接收接口142、至少一个运算单元151、以及与所述运算单元151连接的控制器单元152;所述运算单元151可以包括一个主处理电路151a和多个从处理电路151b,所述运算单元151通过所述至少一个发送接口141和至少一个接收接口142与所述传输电路12连接;
所述控制器单元152,用于通过所述至少一个发送接口141向所述传输电路12发送所述数据操作信号和所述输出神经元数据,并通过所述至少一个接收接口142接收所述传输电路12从所述共享存储器13获取的所述输入神经元数据和所述权值数据,并将所述输入神经元数据和所述权值数据发送给所述主处理电路151a和/或所述从处理电路151b;
所述主处理电路151a,用于将所述输入神经元数据和/或权值数据分发至所述多个从处理电路151b;所述多个从处理电路151b,用于依据所述神经元数据和权值数据并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路151a;所述主处理电路151a,还用于对所述多个中间结果执行后续处理得到计算结果。其中,所述后续处理可以包括激活运算。具体地,该控制器单元152还可以获取计算指令,并解析该计算指令得到多个运算指令,将该多个运算指令发送给所述主处理电路。
可以理解的是,在本实施例中,当机器学习单元包括多个运算单元时,各运算单元可以共用上述至少一个发送接口和上述至少一个接收接口。
举例说明,在一个可选的技术方案中,主处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将运算指令译码成微指令。当然在另一种可选方案中,从处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。例如,乘积微指令为卷积指令的下一级指令。
示例型性的,以上述的机器学习单元的结构为例,对该机器学习单元的神经网络运算流程进行详细说明,参见以下步骤S101-S106:
S101,在控制器单元的指令存储单元的首地址处预先存入一条IO指令;
S102,控制器单元从指令存储单元的首地址读取该IO指令,然后根据该IO指令译出的控制信号,通过片外接口从片外存储器中获取该机器学习单元对应的神经网络运算指令,或者,通过传输电路从共享存储器中获取该机器学习单元对应的神经网络计算指令,并将获得的计算指令储存在指令存储单元中;
S103,控制器单元从指令存储单元中读入下一条IO指令,根据该IO指令译出的数据操作信号,通过传输电路从共享存储器中读取运算单元需要的所有数据块,包括需要的分配的该层神经元的输入神经元数据和权值数据,还可以包括用于作快速的激活函数运算的插值表、用于配置运算器件参数的常数表、偏置数据等;上述数据操作信号中包括上述数据块在共享存储器中的源地址;
S104,控制器单元从指令存储单元中读入下一条CONFIG(配置)指令,根据该CONFIG指令译出的控制信号,配置该层神经网络计算所需的各类常数,例如,运算单元根据激活函数所需的常数配置其内寄存器的值;
S105,控制器单元从指令存储单元中读入下一条COMPUTE(计算)指令,根据该COMPUTE指令译出的控制信号(即运算指令),运算单元将分配的该层神经元的输入神经元数据、权值数据和运算指令传输给主处理电路;主处理电路可以将分配的该层神经元的输入神经元数据确定为广播数据,权值数据确定为分发数据,将一个分发数据分配成多个数据块,将多个数据块中的至少一个数据块、广播数据以及多个运算指令中的至少一个运算指令发送给从处理电路,由从处理电路根据乘法处理电路、累加处理电路等得到中间结果,并由主处理电路根据中间结果和激活处理电路等得到分配的该层神经元输出的神经元数据;
S106,控制器单元从指令存储单元中读入下一条IO指令,根据该IO指令译出的数据操作信号,将上述输出的神经元数据,通过传输电路传输至共享存储器中存储,下一层部分神经元的输入神经元数据;上述数据操作信号中包括上述输出的神经元数据在共享存储器中的目的地址。
以下示例性地对S105进行说明。以神经网络运算中的全连接运算为例,某层神经网络过程可以为:y=f(wx+b),其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid函数,tanh、relu、softmax函数中的任意一个。这里假设主从处理电路之间为二叉树关系(一种树型关系),运算单元具有一个主处理电路和8个从处理电路,则上述S105的实现的方法可以为:控制器单元从共享存储器内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路;主处理电路确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路,将输入神经元矩阵x广播给8个从处理电路,从处理电路并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中间结果,将8个中间结果发送给主处理电路;主处理电路,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b的运算后执行激活运算得到最终结果y。
可以理解的是,因为上述各机器学习单元可以并行对某一层的各分配的神经元进行计算,因此共享存储器中可以存储有每一层所有神经元的输出神经元数据,以及下一层所有神经元需要的输入的神经元数据,而权值数据可以复用或从共享存储器中获取新一层的神经网络的权值数据。
需要说明的是,各机器学习单元中可以包括一个运算单元,也可以包括多个运算单元,而且各运算单元的结构可以相同,也可以不同。其中,各运算单元的结构体现在主处理电路和各从处理电路的关系可以包括但不限于是树型、H型、脉动阵列型的关系。本申请提供的技术方案将运算单元设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
现在回到上述图1中所示的本实施例涉及的数据处理装置。其中,单播读操作对应的数据操作信号可以是:单播读指令、单播读请求,单播写操作对应的数据操作信号可以是:单播写指令、单播写请求,广播操作对应的数据操作信号可以是:广播指令、多播指令、广播请求、多播请求。示例性地,单播读指令为某机器学习单元发送的对共享存储器中源地址的输入神经元数据和权值数据的读取指令,需要返回该输入神经元数据和权值数据至上述机器学习单元,该输入神经元数据和权值数据为该机器学习单元根据计算指令进行某一层分配的神经元计算过程中该分配的神经元所需的输入神经元数据和权值数据;单播写指令为某机器学习单元发送的需要将神经网络计算得到的输出神经元数据写入共享存储器中目的地址的写入指令,可以理解的是,上一层神经网络中输出神经元数据可以作为下一层神经网络所需的输入神经元数据,因此写入共享存储器中便于各机器学习单元从共享存储器中获取所需的输入神经元数据;广播指令为某机器学习单元发送的对共享存储器中源地址的输入神经元数据和权值数据的读取指令,需要返回该输入神经元数据和权值数据至上述机器学习装置中的所有机器学习单元,该输入神经元数据可以是某一层所有的神经元所需的输入神经元数据,即上一层所有的输出神经元数据,该权值数据可以为复用的权值数据,例如卷积核;多播指令与广播指令的不同在于,多播指令的数据返回对象并非上述机器学习装置中的所有机器学习单元,而是与该多播指令中标记域对应的多个机器学习单元。此外,一般来说,指令和请求的区别在于,执行指令的开销比较大,但是指令包含的信息比较多;而执行请求开销比较小,但是请求包含的信息比较少。
一般地,机器学习单元发送单播读信号、单播写信号、广播和/或多播信号时至少需要对应的三个数据操作信号发送接口,分别用于:向传输电路发送单播读信号、向传输电路发送单播写信号、向传输电路发送广播和/或多播信号。而在本实施例中,至少一个机器学习单元执行单播读操作、单播写操作、广播操作中的至少两种数据操作时共享所述机器学习单元上的一个发送接口,参照图1所示,所述机器学习单元0的至少一个发送接口141可以包括接口a0和接口b0两个数据操作信号发送接口:在一种实施方式中,接口a0可以为单播读信号发送接口,接口b0可以为单播写信号和广播和/或多播信号共享的信号发送接口;在一种实施方式中,接口a0可以为单播写信号发送接口,接口b0可以为单播读信号和广播和/或多播信号共享的信号发送接口;在一种实施方式中,接口a0可以为广播和/或多播信号发送接口,接口b0可以为单播读信号和单播写信号共享的信号发送接口。此外,在一种可选方案中,至少一个机器学习单元执行单播读操作、单播写操作、广播操作时可以共享所述机器学习单元上的一个发送接口,即该发送接口可以发送单播读信号、单播写信号、广播和/或多播信号。
因此,本实施例所示的数据处理装置中,至少一个机器学习单元执行单播读操作、单播写操作、广播操作中的至少两种数据操作时共享所述机器学习单元上的一个发送接口,能够有效节省机器学习单元中数据操作信号发送接口的数量,节省硬件资源,降低硬件的面积和功耗。
在一种可选地方案中,相应于上述单播读操作、单播写操作和广播操作,参照图3所示,在上述图1的基础上,上述数据处理装置中的传输电路12可以包括:第二传输接口120、与所述第二传输接口120连接的读写处理电路121、以及与所述读写处理电路121连接的仲裁电路122;所述读写处理电路121,用于接收所述至少一个机器学习单元15通过所述至少一个发送接口141和所述第二传输接口120发送的数据操作信号,并将所述数据操作信号传输至所述仲裁电路122,以及将所述仲裁电路122从所述共享存储器13中获取到的数据通过所述第二传输接口120和所述至少一个接收接口142返回所述数据操作信号对应的机器学习单元;所述仲裁电路122,用于根据预设仲裁规则仲裁从所述读写处理电路121接收到的数据操作信号,并根据仲裁成功的数据操作信号对所述共享存储器13中的数据进行操作。
具体地,所述读写处理电路121可以处理单播读信号,可以处理单播写信号,也可以处理广播信号和/或多播信号。在一种实施方式中,所述读写处理电路121可以包括:单播读处理电路和单播写处理电路;所述单播读处理电路可以处理单播读信号,还可以处理广播信号和/或多播信号,其中,以机器学习单元执行的单播写操作和广播操作中共享所述机器学习单元上的一个发送接口为例,则所述至少一个发送接口包括单播读信号发送接口和共享信号发送接口,所述单播读处理电路处理广播信号和/或多播信号时,可以接收至少一个机器学习单元通过所述共享信号发送接口和所述第二传输接口发送的广播和/或多播信号,并将所述广播和/或多播信号传输至所述仲裁电路,以及将所述仲裁电路从所述共享存储器中获取到的数据,通过所述第二传输接口和上述至少一个接收接口分别按预设顺序发送至所述广播和/或多播信号对应的多个机器学习单元,上述预设顺序为向上述多个机器学习单元返回数据的顺序,可以根据各机器学习单元的优先级排列,也可以按多个机器学习单元的编号顺序,或者其它顺序。
可选地,所述读写处理电路121可以包括:单播读处理电路、单播写处理电路、广播处理电路;所述单播读处理电路用于处理单播读信号,所述单播写处理电路用于处理单播写信号,所述广播处理电路用于处理广播信号和/或多播信号。
同样以机器学习单元执行的单播写操作和广播操作中共享所述机器学习单元上的一个发送接口为例;其中,单播读处理电路可以用于接收至少一个机器学习单元通过单播读信号发送接口和第二传输接口发送的单播读信号,并将所述单播读信号传输至所述仲裁电路,以及将所述仲裁电路从所述共享存储器中获取到的数据,通过所述第二传输接口和上述至少一个接收接口发送至所述单播读信号对应的机器学习单元;单播写处理电路可以用于接收至少一个机器学习单元通过共享信号发送接口和第二传输接口发送的单播写信号,并将所述单播写信号传输至所述仲裁电路,以及将所述单播写信号对应的单播写数据写入所述共享存储器中;所述广播读处理电路可以用于接收至少一个机器学习单元通过所述共享信号发送接口和所述第二传输接口发送的广播和/或多播信号,并将所述广播和/或多播信号传输至所述仲裁电路,以及将所述仲裁电路从所述共享存储器中获取到的数据,通过所述第二传输接口和上述至少一个接收接口发送至所述广播和/或多播信号对应的多个机器学习单元。需要说明的是,一般地,单播写信号中可以包括单播写数据,也可以在发送单播写信号后采用同一数据通路传输单播写数据。
其中,预设仲裁规则可以用于使仲裁电路按照一定的规则确定多个数据操作信号的优先级,从而使仲裁电路可以根据各个数据操作信号的优先级来确定需要操作的对象,即选择出高优先级的数据操作信号作为仲裁成功的数据操作信号;例如,可以将传输速率大的数据操作信号的优先级设置为高优先级,将传输速率小的数据操作信号的优先级设置为低优先级;示例性地,上述预设仲裁规则可以为轮询调度仲裁规则、最大载干调度规则、比例公平规则等。此外,仲裁电路还可以根据机器学习单元和读写处理电路之间的数据通路(接口到接口)是否空闲来作为辅助仲裁规则,即仲裁成功的数据操作信号其对应的数据通路是空闲的。
具体地,单播读处理电路可以通过第二传输接口连接多个机器学习单元,处理多个机器学习单元的单播读操作,可以将多个单播读指令缓存在单播读处理电路中的单播读指令缓存队列中,并可以对单播读指令进行解析得到相应的单播读指令,并缓存在单播读处理电路中的单播读请求缓存队列中,由仲裁电路仲裁;而对于单播读请求,可以不经过解析操作,缓存在单播读请求缓存队列中。类似的,广播处理电路也可以通过第二传输接口连接多个机器学习单元,可以包括广播和/或多播指令缓存队列和广播和/或多播请求缓存队列;同样地,单播写处理电路也可以通过第二传输接口连接多个机器学习单元,可以包括单播写指令缓存队列和单播写请求缓存队列,这里不再赘述。在一种可选的方案中,读写处理电路可以包括一个单播读处理电路、一个单播写处理电路和一个广播处理电路。
因此,本实施例可以通过单播读处理电路处理单播读操作,可以通过单播写处理电路处理单播写操作,可以通过广播处理电路处理广播操作,分别通过不同处理电路实现不同类型的数据操作的处理,简化了处理逻辑。
可选地,参照图3所示,至少一个机器学习单元执行单播写操作、广播操作时共享所述机器学习单元上的一个发送接口,即上述至少一个发送接口141可以包括:单播写操作和广播操作共享的共享信号发送接口、以及单播读信号发送接口。示例性地,对MLU0而言,接口a0为单播读信号发送接口,接口b0为共享信号发送接口,可以发送单播写信号、广播和/或多播信号;接口c0为单播读数据接收接口,接口d0为广播和/或多播数据接收接口。为了便于进行说明,在以下的实施例中,均以至少一个机器学习单元执行单播写操作、广播操作时共享所述机器学习单元上的一个发送接口为例,进行说明;当然,以下的实施例也可以应用于其他共享信号发送接口的方案。
在一种可选的方案中,参照图3所示,所述读写处理电路被划分为多个处理电路组,一个机器学习单元对应一个处理电路组,所述处理电路组包括一个单播读处理电路、一个单播写处理电路和一个广播处理电路。示例性地,MLU0对应单播读处理电路0、单播写处理电路0和广播处理电路0,MLUn对应单播读处理电路n、单播写处理电路n和广播处理电路n。同样地,第二传输接口中存在与一个处理电路组和一个机器学习单元分别连接的一组接口,用于实现机器学习单元和单播读处理电路的一对一连接,机器学习单元和单播写处理电路的一对一连接,以及机器学习单元和广播处理电路的一对一连接。
具体地,参照图3所示,所述第二传输接口120可以包括多个接口组,所述一个处理电路组对应一个接口组,所述一个接口组包括:与所述单播读处理电路连接的单播读信号接收接口和单播读数据发送接口、与所述单播写处理电路连接的单播读信号接收接口、与所述广播处理电路连接的广播信号接收接口和广播数据发送接口。
例如,对MLU0而言,其相应的处理电路组对应的接口组包括接口e0、接口f0、接口g0、接口h0、接口i0。对于MLU0和单播读处理电路0而言,第二传输接口中的接口e0作为单播读信号接收接口分别连接MLU0的单播读信号发送接口a0和单播读处理电路0,可以用于接收从MLU0发送的单播读信号并传输给单播读处理电路0进行处理;第二传输接口中的接口f0作为单播读数据发送接口分别连接MLU0的单播读数据接收接口c0和单播读处理电路0,可以用于接收单播读处理电路0发送的上述单播读信号对应的输入神经元数据和权值数据并传输至MLU0中的接口c0。对于MLU0和单播写处理电路0而言,第二传输接口中的接口g0作为单播写信号接收接口分别连接MLU0的共享信号发送接口b0和单播写处理电路0,可以用于接收从MLU0发送的单播写信号并传输给单播写处理电路0进行处理。对于MLU0和广播处理电路0而言,第二传输接口中的接口h0,作为广播信号接收接口分别连接MLU0的共享信号发送接口b0和广播处理电路0,可以用于接收从MLU0发送的广播和/或多播信号并传输给广播处理电路0进行处理;第二传输接口中的接口i0,作为广播数据发送接口分别连接多个MLU的广播数据接收接口di和广播处理电路0,可以用于接收广播处理电路0发送的上述广播和/或多播信号对应的输入神经元数据和权值数据并传输至多个MLU中的广播数据接收接口di。
因此,本实施例可以通过机器学习单元和单播读处理电路的一对一连接,机器学习单元和单播写处理电路的一对一连接,以及机器学习单元和广播处理电路的一对一连接,实现针对性的一对一数据操作处理,降低数据操作的访问逻辑的复杂性,减少冲突、提高处理效率。
在一种可选的方案中,参照图4所示,在上述图3的基础上,对传输电路中的接口数量进行节省,所述一个处理电路组中的单播写处理电路和广播处理电路共享所述对应的接口组中的一个共享信号接收接口,所述处理电路组对应的共享信号接收接口与所述处理电路组对应的机器学习单元的共享信号发送接口连接,所述处理电路组中的单播读信号接收接口与所述处理电路组对应的机器学习单元的单播读信号发送接口连接。参照图4所示,对MLU0相应的处理电路组而言,其单播写处理电路和广播处理电路共享一个共享信号接收接口g0,且共享信号接收接口g0与MLU0中的共享信号发送接口b0连接,用于接收共享信号发送接口b0发送的单播写信号、广播和/或多播信号,并将单播写信号、广播和/或多播信号发送给单播写处理电路0和广播处理电路0进行处理。可见,在传输电路中,单播写处理电路i和广播处理电路i共享了共享信号接收接口gi,且由MLUi中的共享信号发送接口bi和传输电路中的共享信号接收接口ei构成的数据通路可以实现MLUi和传输电路之间的单播写信号、广播和/或多播信号的传输。
可见,一个处理电路组中的单播写处理电路和广播处理电路共享了信号接收接口,因此,本实施例所示的数据处理装置在有效节省机器学习单元中数据操作信号发送接口的数量的基础上,进一步节省了传输电路中接口的数量,进一步节省硬件资源,降低硬件的面积和功耗。
在一种实施方式中,所述处理电路组对应的共享信号接收接口分别与所述处理电路组中的单播写处理电路和广播处理电路连接,用于接收所述机器学习单元的共享信号发送接口发送的数据操作信号,并将所述数据操作信号分为两路相同的数据操作信号,分别发送给所述单播写处理电路和所述广播处理电路。参照图4,以共享信号接收接口g0为例,其可以将接收到的数据操作信号(单播读信号、广播和/或多播信号)分为两路相同的数据操作信号,分别发送给单播写处理电路0和广播处理电路0进行处理。示例性地,所述共享信号接收接口可以通过硬件电路分别与单播写处理电路0和广播处理电路0连接,可以将一路数据操作信号分为两路相同的数据操作信号;可以理解的是,上述数据操作信号可以是高低电平信号。
可以理解的是,各处理电路可以对数据操作信号进行解析,判断数据操作信号的类型,例如是单播写信号,则单播写处理电路进行处理,而广播处理电路不进行处理;例如是广播和/或多播信号,则广播处理电路进行处理,而单播写处理电路不进行处理。具体地,各处理电路可以通过数据操作信号的操作码来判断操作信号类型,例如“write”意味着数据操作信号为单播写信号,“cast”意味着数据操作信号为广播和/或多播信号;还可以通过标记域中标记的机器学习单元(数据返回对象)的数量判断操作信号类型,例如0个返回对象意味着数据操作信号为单播写信号,1个返回对象意味着数据操作信号为单播读信号,多个(小于n+1)返回对象意味着数据操作信号为多播信号,n+1个返回对象意味着数据操作信号为广播信号。
在一种可选的方案中,参照图5所示,在上述图4的基础上,对机器学习单元中的接口数量进行进一步节省,机器学习单元执行单播读操作和广播操作时共享所述机器学习单元上的一个数据接收接口,即所述处理电路组中的单播读处理电路和广播处理电路返回的数据共享所述机器学习单元上的一个共享数据接收接口。相比图4,以MLU0为例,其至少一个接收接口142包括一个接口c0,而非之前的接口c0和接口d0,图5中的接口c0可以与处理电路中的接口f0连接,用于接收单播读处理电路0返回的单播读数据;还可以与处理电路中的多个接口ii连接,用于接收多个广播处理电路i返回的广播和/或多播数据。
因此,本实施例所示的数据处理装置中,至少一个机器学习单元执行单播读操作和广播操作时共享所述机器学习单元上的一个数据接收接口,进一步节省机器学习单元中返回的数据接口的数量,进一步节省硬件资源,降低硬件的面积和功耗。
进一步地,参照图6所示,在上述图5的基础上,对传输电路中的接口数量进行进一步节省,所述一个处理电路组中的单播读处理电路和广播处理电路共享所述对应的接口组中的一个共享数据发送接口,所述处理电路组对应的共享数据发送接口与所述处理电路组对应的机器学习单元的共享数据接收接口连接。相比图5,对MLU0相应的处理电路组而言,其单播读处理电路和广播处理电路共享一个共享数据发送接口i0,图6中的接口i0可以与处理电路中单播读处理电路0连接,用于接收单播读处理电路0返回的单播读数据;还可以与处理电路中的多个广播处理电路i连接,用于接收多个广播处理电路i返回的广播和/或多播数据。
因此,本实施例所示的数据处理装置中,一个处理电路组中的单播读处理电路和广播处理电路共享所述对应的接口组中的一个共享数据发送接口,更进一步节省机器学习单元中返回的数据接口的数量,更进一步节省硬件资源,降低硬件的面积和功耗。
在一种可选的方案中,参照图7所示,在上述图6的基础上,机器学习单元中可能存在至少一个不共享数据返回接口的运算单元,因此所述机器学习单元的至少一个发送接口还可以包括:至少一个独立数据接收接口,所述独立数据接收接口与所述机器学习单元中的一个运算单元连接,所述第二传输接口还包括与所述独立数据接收接口连接的独立数据发送接口,所述运算单元通过所述独立数据接收接口和所述独立数据发送接口实现与所述机器学习单元对应的处理电路组的连接。示例性地,参照图7所示,对MLU0而言,其包括多个运算单元,其中至少一个运算单元与接口j0连接,而其它运算单元分别与接口c0连接,即接口c0为上述其它运算单元共享的共享数据接收接口,而接口j0为独立数据接收接口。相应地,第二传输接口120中还包括与接口j0连接的独立数据发送接口h0。在图7中,独立数据发送接口h0可以连接单播读处理电路0和多个广播处理电路i,接收单播读数据、广播和/或多播数据,并通过独立数据接收接口j0发送给上述不共享数据返回接口的运算单元。
在一种可选的方案中,参照图8所示,在上述图6的基础上,各机器学习单元可以共享所述处理电路中的一个广播处理电路。该共享的广播处理电路可以与各共享信号接收接口gi和各共享数据发送接口ii连接。因此,本实施例所示的数据处理装置中,各机器学习单元可以共享所述处理电路中的一个广播处理电路,因此降低了广播处理电路的数量,简化了传输电路,降低硬件的面积和功耗。
参照图9所示,本申请还提供了一种组合处理装置,其包括上述数据处理装置、通用互联接口和除上述数据处理装置以外的其它处理装置;数据处理装置与其它处理装置进行交互,共同完成用户指定的计算操作。其中,其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为数据处理装置与外部数据和控制的接口,包括数据搬运,完成对本数据处理装置的开启、停止等基本控制;其他处理装置也可以和数据处理装置协作共同完成运算任务。通用互联接口,用于在所述数据处理装置与其他处理装置间传输数据和控制指令。该数据处理装置从其他处理装置中获取所需的输入数据,写入数据处理装置片上的共享存储器;可以从其他处理装置中获取控制指令,写入数据处理装置片上的机器学习装置;也可以读取数据处理装置的共享存储器中的数据并传输给其他处理装置。
可选的,参照图10所示,上述组合处理装置还可以包括存储装置,存储装置分别与所述数据处理装置和所述其他处理装置连接。存储装置用于保存在所述数据处理装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本数据处理装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一个实施例中,本申请还提供了一种机器学习芯片,其包括了上述数据处理装置和/或组合处理装置。
在一个实施例中,本申请还提供了一种芯片封装结构,其包括了上述芯片。
在一个实施例中,本申请还提供了一种板卡,其包括了上述芯片封装结构。参照图11所示,上述板卡除了包括上述芯片封装结构81以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件82、接口装置83和控制器件84;所述存储器件82与所述芯片封装结构81内的机器学习芯片811通过总线连接,用于存储数据,所述存储器件82可以包括多组存储单元821。每一组所述存储单元821与所述机器学习芯片811通过总线连接。可以理解,每一组所述存储单元821可以是DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述机器学习芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置83与所述芯片封装结构81内的机器学习芯片811电连接。所述接口装置83用于实现所述机器学习芯片811与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置83可以为标准PCIE(peripheral componentinterconnect express,一种高速串行计算机扩展总线标准)接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述机器学习芯片,实现数据转移。优选的,当采用PCIE3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置83还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口装置能够实现转接功能即可。另外,所述机器学习芯片811的计算结果仍由所述接口装置83传送回外部设备(例如服务器)。
所述控制器件84与所述机器学习芯片811电连接。所述控制器件84用于对所述芯片的状态进行监控。具体的,所述机器学习芯片811与所述控制器件84可以通过SPI(SerialPeripheral Interface,串行外设接口)接口电连接。所述控制器件可以包括单片机(MicroController Unit,MCU)。如所述机器学习芯片可以包括多个数据处理装置和/或组合处理装置,可以带动多个负载。因此,所述机器学习芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制器件84可以实现对所述机器学习芯片中多个数据处理装置和/或组合处理装置的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
此外,本发明实施例还提供了一种数据处理方法,所述数据处理方法应用于上述的数据处理装置,所述数据处理装置包括:机器学习装置、传输电路以及共享存储器,所述机器学习装置包括至少一个机器学习单元,所述机器学习单元包括至少一个发送接口和至少一个接收接口,所述机器学习单元所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享所述机器学习单元上的一个发送接口,所述机器学习单元与所述传输电路连接,所述传输电路与所述共享存储器连接;所述方法可以包括:
所述机器学习装置将数据操作信号通过所述至少一个发送接口发送给所述传输电路;
所述传输电路根据所述数据操作信号,从所述共享存储器中获取所述机器学习装置所需的输入数据,并将所述输入数据通过所述接收接口返回至所述机器学习装置。
上述数据处理方法中,数据处理装置通过至少一个机器学习单元执行单播读操作、单播写操作、广播操作中的至少两种数据操作时共享所述机器学习单元上的一个发送接口,能够有效节省机器学习单元中数据操作信号发送接口的数量,节省硬件资源,降低硬件的面积和功耗。
可选地,所述数据操作信号为广播信号和/或多播信号,所述将所述输入数据通过所述接收接口返回至所述机器学习装置,可以包括:
所述传输电路将所述输入数据通过所述接收接口发送给所述广播信号和/或多播信号对应的多个机器学习单元。
示例性地,本实施例的任意一个机器学习单元可以将广播信号和/或多播信号通过上述至少一个发送接口发送给传输电路,传输电路可以根据上述广播信号和/或多播信号中的目的地址从共享存储器中获取输入数据,并将上述输入数据通过接收接口发送给上述广播信号和/或多播信号的标记域对应的多个机器学习单元。也就是说,本实施例的数据处理方法可以由机器学习单元发起进行广播和/或多播操作,将从共享存储器中获取的输入数据广播和/或多播给多个机器学习单元,以便于机器学习计算过程中的数据访问和数据共用,简化数据访问逻辑,提高数据访问效率。
关于数据处理方法的具体限定可以参见上文中对于数据处理装置的描述,在此不再赘述。
本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的全部或部分处理过程是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:RandomAccess Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (21)

1.一种数据处理装置,其特征在于,所述数据处理装置包括:机器学习装置、传输电路以及共享存储器,所述机器学习装置包括至少一个机器学习单元,所述机器学习单元包括至少一个发送接口和至少一个接收接口,所述机器学习单元所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享所述机器学习单元上的一个发送接口,所述机器学习单元与所述传输电路连接,所述传输电路与所述共享存储器连接;
所述传输电路,用于根据所述机器学习装置通过所述机器学习单元上的所述至少一个发送接口发出的数据操作信号,从所述共享存储器中获取所述机器学习装置所需的输入数据,并将所述输入数据通过所述接收接口返回至所述机器学习装置。
2.根据权利要求1所述的数据处理装置,其特征在于,所述机器学习装置用于根据所述输入数据,执行机器学习运算,得到输出数据。
3.根据权利要求2所述的数据处理装置,其特征在于,所述机器学习装置还用于将所述输出数据通过所述传输电路传输至所述共享存储器进行数据存储。
4.根据权利要求1中所述的数据处理装置,其特征在于,所述传输电路包括:第二传输接口、与所述第二传输接口连接的读写处理电路、以及与所述读写处理电路连接的仲裁电路;
所述读写处理电路,用于接收所述至少一个机器学习单元通过所述至少一个发送接口和所述第二传输接口发送的数据操作信号,并将所述数据操作信号传输至所述仲裁电路,以及将所述仲裁电路从所述共享存储器中获取到的数据通过所述第二传输接口和所述至少一个接收接口返回所述数据操作信号对应的机器学习单元;
所述仲裁电路,用于根据预设仲裁规则仲裁从所述读写处理电路接收到的数据操作信号,并根据仲裁成功的数据操作信号对所述共享存储器中的数据进行操作。
5.根据权利要求4中所述的数据处理装置,其特征在于,所述读写处理电路包括:单播读处理电路、单播写处理电路、广播处理电路;所述单播读处理电路用于处理单播读信号,所述单播写处理电路用于处理单播写信号,所述广播处理电路用于处理广播信号和/或多播信号。
6.根据权利要求5所述的数据处理装置,其特征在于,所述读写处理电路被划分为多个处理电路组,一个机器学习单元对应一个处理电路组,所述处理电路组包括一个单播读处理电路、一个单播写处理电路和一个广播处理电路。
7.根据权利要求6所述的数据处理装置,其特征在于,所述处理电路组中的单播读处理电路和广播处理电路返回的数据共享所述机器学习单元上的一个共享数据接收接口。
8.根据权利要求6所述的数据处理装置,其特征在于,所述至少一个发送接口包括:单播写操作和广播操作共享的共享信号发送接口、以及单播读信号发送接口。
9.根据权利要求8所述的数据处理装置,其特征在于,所述第二传输接口包括多个接口组,所述一个处理电路组对应一个接口组,所述一个接口组包括:与所述单播读处理电路连接的单播读信号接收接口和单播读数据发送接口、与所述单播写处理电路连接的单播读信号接收接口、与所述广播处理电路连接的广播信号接收接口和广播数据发送接口。
10.根据权利要求9所述的数据处理装置,其特征在于,所述一个处理电路组中的单播写处理电路和广播处理电路共享所述对应的接口组中的一个共享信号接收接口,所述处理电路组对应的共享信号接收接口与所述处理电路组对应的机器学习单元的共享信号发送接口连接,所述处理电路组中的单播读信号接收接口与所述处理电路组对应的机器学习单元的单播读信号发送接口连接。
11.根据权利要求9所述的数据处理装置,其特征在于,所述一个处理电路组中的单播读处理电路和广播处理电路共享所述对应的接口组中的一个共享数据发送接口,所述处理电路组对应的共享数据发送接口与所述处理电路组对应的机器学习单元的共享数据接收接口连接。
12.根据权利要求7所述的数据处理装置,其特征在于,所述处理电路组对应的共享信号接收接口分别与所述处理电路组中的单播写处理电路和广播处理电路连接,用于接收所述机器学习单元的共享信号发送接口发送的数据操作信号,并将所述数据操作信号分为两路相同的数据操作信号,分别发送给所述单播写处理电路和所述广播处理电路。
13.根据权利要求4中所述的数据处理装置,其特征在于,所述机器学习单元的至少一个发送接口还包括:至少一个独立数据接收接口,所述独立数据接收接口与所述机器学习单元中的一个运算单元连接,所述第二传输接口还包括与所述独立数据接收接口连接的独立数据发送接口,所述运算单元通过所述独立数据接收接口和所述独立数据发送接口实现与所述机器学习单元对应的处理电路组的连接。
14.根据权利要求1所述的数据处理装置,其特征在于,所述机器学习单元包括:至少一个发送接口、至少一个接收接口、至少一个运算单元、以及与所述运算单元连接的控制器单元;所述运算单元包括一个主处理电路和多个从处理电路,所述运算单元通过所述至少一个发送接口和至少一个接收接口与所述传输电路连接;
所述控制器单元,用于通过所述至少一个发送接口向所述传输电路发送所述数据操作信号和所述输出数据,并通过所述至少一个接收接口接收所述传输电路从所述共享存储器获取的所述输入数据,并将所述输入数据发送给所述主处理电路和/或所述从处理电路;
所述主处理电路,用于将所述输入数据分发至所述多个从处理电路;
所述多个从处理电路,用于依据所述输入数据并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,还用于对所述多个中间结果执行后续处理得到计算结果。
15.根据权利要求1-14中任一项所述的数据处理装置,其特征在于,所述输入数据包括输入神经元数据和/或权值数据,所述输出数据包括输出神经元数据。
16.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求1-15中任一项所述的数据处理装置、通用互联接口和除所述数据处理装置以外的其它处理装置;所述数据处理装置与所述其它处理装置进行交互。
17.一种机器学习芯片,其特征在于,所述机器学习芯片包括如权利要求16所述的组合处理装置和/或如权利要求1-15中任一项所述的数据处理装置。
18.一种板卡,其特征在于,所述板卡包括如权利要求17所述的机器学习芯片。
19.一种电子设备,其特征在于,所述电子设备包括如权利要求18所述的板卡。
20.一种数据处理方法,其特征在于,所述数据处理方法应用于数据处理装置,所述数据处理装置包括:机器学习装置、传输电路以及共享存储器,所述机器学习装置包括至少一个机器学习单元,所述机器学习单元包括至少一个发送接口和至少一个接收接口,所述机器学习单元所执行的单播读操作、单播写操作和广播操作中的至少两种数据操作共享所述机器学习单元上的一个发送接口,所述机器学习单元与所述传输电路连接,所述传输电路与所述共享存储器连接;所述方法包括:
所述机器学习装置将数据操作信号通过所述至少一个发送接口发送给所述传输电路;
所述传输电路根据所述数据操作信号,从所述共享存储器中获取所述机器学习装置所需的输入数据,并将所述输入数据通过所述接收接口返回至所述机器学习装置。
21.根据权利要求20所述的数据处理方法,其特征在于,所述数据操作信号为广播信号和/或多播信号,所述将所述输入数据通过所述接收接口返回至所述机器学习装置,包括:
所述传输电路将所述输入数据通过所述接收接口发送给所述广播信号和/或多播信号对应的多个机器学习单元。
CN201811390409.3A 2018-10-18 2018-11-21 数据处理装置、方法及相关产品 Active CN111209230B (zh)

Priority Applications (24)

Application Number Priority Date Filing Date Title
CN201811390409.3A CN111209230B (zh) 2018-11-21 2018-11-21 数据处理装置、方法及相关产品
JP2020569113A JP7060720B2 (ja) 2018-10-18 2019-10-18 ネットワークオンチップによるデータ処理方法及び装置
KR1020207033053A KR20200139829A (ko) 2018-10-18 2019-10-18 네트워크 온칩 데이터 처리 방법 및 장치
EP21217804.0A EP4009186A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
EP21217809.9A EP4009183A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
US17/278,812 US20220035762A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
PCT/CN2019/111977 WO2020078470A1 (zh) 2018-10-18 2019-10-18 片上网络数据处理方法及装置
EP19873122.6A EP3869352A4 (en) 2018-10-18 2019-10-18 NETWORK-ON-CHIP DATA PROCESSING METHOD AND APPARATUS
EP21217802.4A EP4009185A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
EP21217811.5A EP4009184A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
JP2020206293A JP7074832B2 (ja) 2018-10-18 2020-12-11 ネットワークオンチップによるデータ処理方法及び装置
JP2020206281A JP7074831B2 (ja) 2018-10-18 2020-12-11 ネットワークオンチップによるデータ処理方法及び装置
JP2020206272A JP7053775B2 (ja) 2018-10-18 2020-12-11 ネットワークオンチップによるデータ処理方法及び装置
JP2020206306A JP7074833B2 (ja) 2018-10-18 2020-12-11 ネットワークオンチップによるデータ処理方法及び装置
US17/564,389 US11841816B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,529 US11868299B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,560 US20220121603A1 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,431 US11880329B2 (en) 2018-10-18 2021-12-29 Arbitration based machine learning data processor
US17/564,579 US11960431B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,366 US20220156215A1 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,509 US11797467B2 (en) 2018-10-18 2021-12-29 Data processing device with transmission circuit
US17/564,492 US11880330B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,411 US11809360B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,398 US11880328B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811390409.3A CN111209230B (zh) 2018-11-21 2018-11-21 数据处理装置、方法及相关产品

Publications (2)

Publication Number Publication Date
CN111209230A true CN111209230A (zh) 2020-05-29
CN111209230B CN111209230B (zh) 2021-08-31

Family

ID=70784050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811390409.3A Active CN111209230B (zh) 2018-10-18 2018-11-21 数据处理装置、方法及相关产品

Country Status (1)

Country Link
CN (1) CN111209230B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827284A (zh) * 2023-02-20 2023-03-21 北京象帝先计算技术有限公司 片上系统、电子组件、电子设备和传输处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282698A (ja) * 2000-03-31 2001-10-12 Matsushita Electric Ind Co Ltd データ受信装置、データ供給装置およびマルチタスクデータ転送システム
CN106034132A (zh) * 2015-03-05 2016-10-19 纬创资通股份有限公司 保护方法与计算机系统
US20170103040A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Processor with variable rate execution unit
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN108064017A (zh) * 2017-12-22 2018-05-22 武汉邮电科学研究院 一种停车数据的处理方法和处理系统
CN108564169A (zh) * 2017-04-11 2018-09-21 上海兆芯集成电路有限公司 硬件处理单元、神经网络单元和计算机可用介质
CN108805795A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于机器学习的硬件实现的点对点通信原语

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282698A (ja) * 2000-03-31 2001-10-12 Matsushita Electric Ind Co Ltd データ受信装置、データ供給装置およびマルチタスクデータ転送システム
CN106034132A (zh) * 2015-03-05 2016-10-19 纬创资通股份有限公司 保护方法与计算机系统
US20170103040A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Processor with variable rate execution unit
CN108564169A (zh) * 2017-04-11 2018-09-21 上海兆芯集成电路有限公司 硬件处理单元、神经网络单元和计算机可用介质
CN108805795A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于机器学习的硬件实现的点对点通信原语
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN108064017A (zh) * 2017-12-22 2018-05-22 武汉邮电科学研究院 一种停车数据的处理方法和处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁丁等: "多端口模式下的多消息广播算法与分析", 《计算机科学》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827284A (zh) * 2023-02-20 2023-03-21 北京象帝先计算技术有限公司 片上系统、电子组件、电子设备和传输处理方法

Also Published As

Publication number Publication date
CN111209230B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
US11797467B2 (en) Data processing device with transmission circuit
CN110968532B (zh) 数据传输方法及相关产品
CN110750351B (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN111209244B (zh) 数据处理装置及相关产品
KR102539571B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
CN111930681B (zh) 一种计算装置及相关产品
CN110059797B (zh) 一种计算装置及相关产品
CN111209230B (zh) 数据处理装置、方法及相关产品
CN111381882B (zh) 数据处理装置及相关产品
CN111368967B (zh) 一种神经网络计算装置和方法
CN111258769B (zh) 数据传输装置和方法
CN111209245B (zh) 数据处理装置、方法及相关产品
CN111367567B (zh) 一种神经网络计算装置和方法
CN111368986B (zh) 一种神经网络计算装置和方法
CN111210011B (zh) 数据处理装置及相关产品
CN111368990B (zh) 一种神经网络计算装置和方法
CN112948001A (zh) 设定张量硬件配置的方法、可读存储介质及装置
KR20200139256A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
KR20200138413A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
WO2020063940A1 (zh) 计算装置及相关产品
CN112394990A (zh) 浮点转半精度浮点指令处理装置、方法及相关产品
CN111045729A (zh) 运算方法、装置及相关产品
CN111047027A (zh) 运算方法、装置及相关产品
CN112394903A (zh) 短整形转半精度浮点指令处理装置、方法及相关产品
CN111222633A (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
GR01 Patent grant
GR01 Patent grant