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

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

Info

Publication number
CN111209231B
CN111209231B CN201811392232.0A CN201811392232A CN111209231B CN 111209231 B CN111209231 B CN 111209231B CN 201811392232 A CN201811392232 A CN 201811392232A CN 111209231 B CN111209231 B CN 111209231B
Authority
CN
China
Prior art keywords
data
operation signal
data operation
jump
memory
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.)
Active
Application number
CN201811392232.0A
Other languages
English (en)
Other versions
CN111209231A (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
Priority to CN201811392232.0A priority Critical patent/CN111209231B/zh
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to PCT/CN2019/111977 priority patent/WO2020078470A1/zh
Priority to US17/278,812 priority patent/US20220035762A1/en
Priority to JP2020569113A priority patent/JP7060720B2/ja
Priority to KR1020207034138A priority patent/KR102539573B1/ko
Priority to EP19873122.6A priority patent/EP3869352A4/en
Priority to EP21217804.0A priority patent/EP4009186A1/en
Priority to EP21217802.4A priority patent/EP4009185A1/en
Priority to KR1020207033053A priority patent/KR20200139829A/ko
Priority to EP21217809.9A priority patent/EP4009183A1/en
Priority to EP21217811.5A priority patent/EP4009184A1/en
Publication of CN111209231A publication Critical patent/CN111209231A/zh
Priority to JP2020206306A priority patent/JP7074833B2/ja
Priority to JP2020206293A priority patent/JP7074832B2/ja
Priority to JP2020206281A priority patent/JP7074831B2/ja
Priority to JP2020206272A priority patent/JP7053775B2/ja
Publication of CN111209231B publication Critical patent/CN111209231B/zh
Application granted granted Critical
Priority to US17/564,366 priority patent/US11971836B2/en
Priority to US17/564,579 priority patent/US11960431B2/en
Priority to US17/564,492 priority patent/US11880330B2/en
Priority to US17/564,431 priority patent/US11880329B2/en
Priority to US17/564,529 priority patent/US11868299B2/en
Priority to US17/564,389 priority patent/US11841816B2/en
Priority to US17/564,560 priority patent/US20220121603A1/en
Priority to US17/564,509 priority patent/US11797467B2/en
Priority to US17/564,398 priority patent/US11880328B2/en
Priority to US17/564,411 priority patent/US11809360B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/1668Details of memory controller
    • 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
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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
    • 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/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

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

Abstract

本申请涉及一种数据处理方法、装置及相关产品,传输电路根据内部或者外部设备发送的携带第一类型标志位和第二类型标志位的数据操作信号,对存储器中的待操作的数据执行对应的操作,并得到所需的输入数据。在本实施例中,由于数据操作信号携带第一类型标志位和第二类型标志位,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的第一类型标志位和第二类型标志位判断该数据操作信号的具体类型,然后对存储器中的待操作的数据执行对应的操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。

Description

数据处理方法、装置及相关产品
技术领域
本申请涉及信息处理技术领域,特别是涉及一种数据处理方法、装置及相关产品。
背景技术
随着信息技术的不断发展和日益增长的需求,人们对数据访问和数据处理的需求越来越高,随之对一些处理数据和访问数据的处理器的要求也越来越严格。以一种通用处理器为例,多个通用处理器核(例如,CPU核)构成的多核处理器,以其强大的并行计算能力,成为一种主流。
但是随着目前人工神经网络的不断发展,越来越多架构的机器学习芯片逐渐问世,这些机器学习芯片在运行中需要根据指令来进行数据访问或者处理共享存储中的数据。在数据访问或者共享存储数据较多时,机器学习芯片的指令逐渐变得复杂,进而影响通过指令读取共享存储中的速度,导致神经元数据处理效率低下。
因此,如何提高机器学习芯片在数据访问时的访问速度,成为当前技术人员亟待解决的技术问题。
发明内容
基于此,有必要针对上述在数据访问或者共享存储数据较多时,如何提高机器学习芯片在数据访问时访问速度的技术问题,提供一种数据处理方法、装置及相关产品。
第一方面,本发明实施例提供一种数据处理方法,所述方法包括:
接收内部或者外部设备发送的数据操作信号,所述数据操作信号包括操作域和操作码,所述操作码包括第一类型标志位,所述操作域包括第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否I/O指令,所述第二类型标志位用于表征所述数据操作信号是否为所述I/O指令中的广播或者多播指令;
根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据。
在其中一个实施例中,所述操作域还包括数据接收标志位,所述数据接收标志位用于表征接收所述输入数据的装置或者处理电路。。
在其中一个实施例中,所述数据接收标志位的个数表征能够与所述存储器进行交互的装置的个数或者处理电路的个数。
在其中一个实施例中,所述操作域还包括待操作的数据的信息;所述待操作的数据的信息包括所述待操作的数据在所述存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址;所述根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据,包括:
自所述源地址开始读取所述存储器,获取满足所述数据长度的输入数据;
根据所述数据接收标志位,确定接收输入数据的装置或者处理电路;
按照所述数据返回地址,将所述输入数据返回至所述装置或者处理电路中的所述数据返回地址对应的存储空间。
在其中一个实施例中,所述装置包括至少一个机器学习单元,每个机器学习单元包括主处理电路和多个从处理电路。
在其中一个实施例中,所述操作域还包括跳转子操作域,所述跳转子操作域包括跳转步长以及每次跳转后所操作的数据长度;所述自所述源地址开始读取所述存储器,获取满足所述数据长度的输入数据,包括:
自所述源地址开始读取所述存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据;
获取所述跳转数据的最后一个地址,并根据所述跳转步长从所述最后一个地址跳转至目标跳转地址;
自所述目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足所述数据长度为止。
在其中一个实施例中,所述跳转子操作域包括stride操作域和/或segment操作域;所述stride操作域用于表征所述数据操作信号每次的跳转步长;所述segment操作域用于表征预设的所述数据操作信号每次的分割大小。
在其中一个实施例中,所述操作域还包括功能标志位,用于表征对所读取的数据进行的处理操作。
在其中一个实施例中,所述方法还包括:
若所述第一类型标志位的值为I/O,则确定所述数据操作信号为I/O指令;
若所述第二类型标志位的值为1,则确定所述数据操作信号为所述I/O指令中的广播或者多播指令。
在其中一个实施例中,所述接收内部或者外部设备发送的数据操作信号,包括:
对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息;
依照指令队列执行所述解析的数据操作信号;所述指令队列用于表征所述数据操作信号的执行顺序。
在其中一个实施例中,在依照指令队列执行所述解析的数据操作信号之前,所述方法还包括:
判断相邻的所述解析的数据操作信号的依赖关系,得到判断结果;所述依赖关系表征第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系;
若所述判断结果为所述第s个数据操作信号与所述第s-1个数据操作信号存在依赖关系,缓存所述第s个数据操作信号,在所述第s-1个数据操作信号执行完毕后,提取所述第s个数据操作信号。
在其中一个实施例中,所述判断相邻的所述解析的数据操作信号的依赖关系,包括:
分别获取依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第一存储地址区间,和依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间;
若所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号具有依赖关系;
若所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有依赖关系。
第二方面,本发明实施例提供一种数据处理装置,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收内部或者外部设备发送的数据操作信号,所述数据操作信号包括操作域和操作码,所述操作码包括第一类型标志位,所述操作域包括第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否I/O指令,所述第二类型标志位用于表征所述数据操作信号是否为所述I/O指令中的广播或者多播指令;
根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据。
第三方面,本发明实施例提供一种组合处理装置,所述组合处理装置包括如上第二方面实施例所述的数据处理装置、通用互联接口和除所述数据处理装置以外的其它处理装置;所述数据处理装置与所述其它处理装置进行交互。
在其中一个实施例中,所述装置还包括:存储装置,所述存储装置分别与所述数据处理装置和所述其它处理装置连接,用于保存所述数据处理装置和所述其它处理装置的数据。
第四方面,本发明实施例提供一种机器学习芯片,所述机器学习芯片包括如上第三方面实施例提供的组合处理装置。
第五方面,本发明实施例提供一种机器学习芯片封装结构,所述机器学习芯片封装结构包括如上第四方面实施例所述的机器学习芯片。
第六方面,本发明实施例提供一种板卡,所述板卡包括如上第五方面实施所述的机器学习芯片封装结构。
第七方面,本发明实施例提供一种电子设备,所述电子设备包括如上第六方面所述的板卡。
本申请提供一种数据处理方法、装置及相关产品,传输电路根据内部或者外部设备发送的携带第一类型标志位和第二类型标志位的数据操作信号,对存储器中的待操作的数据执行对应的操作,并得到所需的输入数据。在本实施例中,由于数据操作信号携带第一类型标志位和第二类型标志位,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的第一类型标志位和第二类型标志位判断该数据操作信号的具体类型,然后对存储器中的待操作的数据执行对应的操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。
附图说明
图1为一个实施例提供的一种数据处理方法的应用环境示意图;
图2为一个实施例提供的一种数据处理方法的流程示意图;
图3为一个实施例提供的一种数据处理方法的流程示意图;
图4为一个实施例提供的一种数据处理方法的流程示意图;
图5为一个实施例提供的一种数据处理方法的流程示意图;
图6为一个实施例提供的一种数据处理方法的流程示意图;
图7为一个实施例中一种组合处理装置的结构示意图;
图8为一个实施例中另一种组合处理装置的结构示意图;
图9为一个实施例中一种板卡的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请提供的一种数据处理方法可以应用于如图1所示的硬件电路中,该电路包括:机器学习装置11、传输电路12以及共享存储器13,其中机器学习装置11与所述传输电路12、传输电路12与共享存储器13均是通过接口连接,其中,该机器学习装置11、传输电路12和共享存储器13以及该接口均可以通过硬件电路的方式实现,例如:机器学习装置可以是多个机器学习单元(Machine Learning Unit,简称MLU)构成的具有运算功能的装置,传输电路可以是广播总线(broadcast bus),共享存储器可以是非易失性和/或易失性存储器,包括但不限于随机存取存储器(RAM)、高速缓冲存储器等。本实施例对以上具体硬件形式不做限定。其中,传输电路12用于根据机器学习装置11发出的数据操作信号,从共享存储器13中获取机器学习装置11所需的输入数据,并将输入数据返回至机器学习装置11,机器学习装置11用于根据输入数据,执行机器学习运算,得到输出数据,以及将输出数据作为新的输入数据,并通过传输电路12传输至共享存储器13进行数据存储。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请的实施例提供的数据处理方法,旨在解决在在数据访问或者共享存储数据较多时,如何提高机器学习芯片在数据访问时的访问速度的技术问题。下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。需要说明的是,本发明提供的一种数据处理方法,其执行主体为传输电路,其中,该执行主体还可以为数据处理装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为数据分析终端的部分或者全部。
在一个实施例中,图2提供了一种数据处理方法,本实施例涉及的是传输电路根据数据操作信号的第一类型标志位和第二类型标志位确定数据操作信号的类型,并根据确定的类型定位的对应的操作从存储器中得到所需数据,以提高访问速度的具体过程。如图2所示,该方法包括:
S101,接收内部或者外部设备发送的数据操作信号,所述数据操作信号操作域和操作码,所述操作码包括包括第一类型标志位,所述操作域包括第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否I/O指令,所述第二类型标志位用于表征所述数据操作信号是否为所述I/O指令中的广播或者多播指令。
在本实施例中,传输电路接收内部或者外部设备发送的数据操作信号,该数据操作信号携带数据操作信号的第一类型标志位和第二类型标志位,其中,该内部或者外部设备可以是与传输电路通过接口连接的机器学习装置,该机器学习装置可以是以任何硬件形式实现,例如是多个MLU成的具有运算功能的装置。其中传输电路根据该数据操作信号携带的数据操作信号的第一类型标志位可以确定该数据操作信号的值是否为I/O指令,第二类型标志位可以确定该数据操作信号是否为I/O指令中的具体类型,例如:该数据操作信号的第一类型标志位的值为I/O指令,第二类型标志位为的值1,则该数据操作信号为I/O指令中的广播或者多播指令。
S102,根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据。
基于上述步骤S101中传输电路接收内部或者外部设备发送的数据操作信号,根据该数据操作信号的类型标志位,传输电路确定对存储器中的待操作数据执行对应的操作,得到需要的输入数据,例如:神经元数据和权值数据。其中,神经元数据和权值数据是内部或者外部设备所需的数据,例如,该内部或者外部设备为机器学习装置时,该神经元数据和权值数据是机器学习装置在进行机器学习运算时需要输入的数据。以上数据可以是预先存储在存储器中的数据,也可以是机器学习装置在执行机器学习运算后输出的数据,本实施例对此不做限定。
本实施例提供的数据处理方法,传输电路根据内部或者外部设备发送的携带第一类型标志位和第二类型标志位的数据操作信号,对存储器中的待操作的数据执行对应的操作,并得到所需的输入数据。在本实施例中,由于数据操作信号携带第一类型标志位和第二类型标志位,传输电路可以在接收到该数据操作信号后,根据其中的数据操作信号的第一类型标志位和第二类型标志位判断该数据操作信号的具体类型,然后对存储器中的待操作的数据执行对应的操作。这样,根据数据操作信号的类型标志位先进行分类可以快速定位到对应的操作,简化了数据访问逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。
下面通过几个实施例来分别介绍该操作码和操作域,以及其与数据操作信号的类型标志位、待操作的数据的信息和数据接收标志位之间的关系。
在一个实施例中,所述操作域还包括数据接收标志位,所述数据接收标志位用于表征接收所述输入数据的装置或者处理电路。可选地,所述数据接收标志位的个数表征能够与所述存储器进行交互的装置的个数或者处理电路的个数。可选地,若所述第一类型标志位的值为I/O,则确定所述数据操作信号为I/O指令;若所述第二类型标志位的值为1,则确定所述数据操作信号为所述I/O指令中的广播或者多播指令。
本实施例中,数据操作信号的操作码用于指示该数据操作信号的操作类型,包括了该数据操作信号的第一类型标志位,所述操作域用于存储该数据操作信号在执行过程中的所需数据信息,包括第二类型标志位,示例地,操作码中的数据操作信号的第一类型标志位的值为I/O,则表示该数据操作信号为I/O指令,操作域中的第二类型标志位的值为1,则表示该数据操作信号为I/O指令中的广播或者多播指令,这里需要说明的是,本实施例所描述的第二类型标志位为1时,确定该数据操作信号为I/O指令中的广播或者多播指令,只是一种实施方式,根据用户实际需求,也可以将第二类型标志位为0或者其他标识时,确定该数据操作信号为I/O指令中的广播或者多播指令,本实施例对此不做限定。其中,该数据接收标志位表示内部或外部设备中可以接收输入数据(例如:输入神经元数据和权值数据)的装置或者处理电路。其中该装置可以是机器学习装置或MLU,处理电路可以是运算单元或者运算单元的主处理电路或者从处理电路,本实施例对此不做限定。其中,数据接收标志位的个数表征能够与所述存储器进行交互的装置的个数或者处理电路的个数,示例地,若该操作域中的数据接收标记位中有三个MLU(机器学习单元)的标记为1,表示该三个MLU可以接收数据,一个MLU的标记为0,表示该一个MLU不可以接收数据。需要说明的是,这里将可以接收数据的MLU标记为1只是一种示例方式,用户可根据实际需求将可以接收数据的MLU标记为0或者其他标识,本实施例对此不做限定。
在本实施例中,根据数据信号的第一类型标志位和第二类型标志位,传输电路可以确定该数据操作信号的具体类型,然后定位到对应操作,又根据数据接收标志位确定发送执行操作后数据的目标装置,从而简化了数据访问逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。
在另一个实施例中,所述操作域还包括待操作的数据的信息;所述待操作的数据的信息包括所述待操作的数据在所述存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址,如图3所示,提供了一种数据处理方法,本实施例涉及的是传输电路根据数据操作信号携带的数据信息在存储器中读取数据,再根据该数据操作信息将读取的数据返回装置或者处理电路的具体过程。上述S102包括:
S201,自所述源地址开始读取所述存储器,获取满足所述数据长度的输入数据。
本实施例中,由于数据操作信号的待操作的数据的信息中携带了待操作的数据在存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址,则传输电路自该存储器中的源地址开始读取数据,根据预设规则读取满足待操作的数据长度,其中,该待操作的数据长度是用户根据实际情况自行设定,本实施对此不做限定。其中,传输电路获取满足该数据长度的输入数据和数据,是按照预设规则从存储器中读取满足该数据长度的数据的。其中该预设规则也是用户根据实际情况制定的规则,本实施例对此不做限定,例如,可以是按照从源地址开始一个一个的方式进行读取,直到读取的数据长度满足该数据长度。
S202,根据所述数据接收标志位,确定接收输入数据的装置或者处理电路。
基于上述S201步骤中,传输电路获取的满足数据长度的输入输入数据,传输电路根据数据信号中的数据接收标志位确定数据返回的装置或者处理电路,例如,该装置是机器学习装置时,传输电路根据数据接收标志位确定数据返回至该机器学习装置中的一个或多个目标机器学习单元。
S203,按照所述数据返回地址,将所述输入数据返回至所述装置或者处理电路中的所述数据返回地址对应的存储空间。
本步骤中,基于上述步骤中确定的数据返回的装置或者处理电路,传输电路根据数据操作信号的待操作的数据的信息中的数据返回地址,将该输入数据,返回到装置或者处理电路中该数据返回地址对应的存储空间,其中,该待操作的数据的信息中的数据返回地址可以是机器学习装置的多个目标机器学习单元中的地址。
示例地,如下表2所示,在上述实施例的基础上,本实施例可以举例如下:操作码中的第一类型数据标志位的值为I/O,表示该数据操作信号为I/O指令,操作域中的第二类型数据标志位的值为1,时则表示该数据操作信号为I/O指令中的广播或者多播指令,相应地,当该第二类型数据标志位的值为0时,表示该数据操作信号不是广播或者多播指令。操作域中的带操作的数据信息包括源地址0x110011、目的地址0x000100和数据长度0x0100,该数据长度为用户自行设定的长度,用户可以将该设定长度设置为一个值,也可以将该设定长度设置为多个值,本实施例对此不做限定。操作域中的数据接收标记位中有三个MLU的标记为1,表示该三个MLU可以接收数据,一个MLU的标记为0,表示该一个MLU不可以接收数据,具体地,传输电路根据该数据操作信号从共享存储器中的地址0x110011处读取0x0100长的数据,而后分别写入到机器学习装置中的MLU3、MLU1和MLU0的地址0x000100处。
表2
Figure BDA0001874292870000101
Figure BDA0001874292870000111
本实施例提供的数据处理方法,传输电路根据数据操作信号自源地址开始读取存储器,获取满足数据长度的输入数据,并根据数据接收标志位,确定接收输入数据的装置或者处理电路,然后按照数据返回地址,将输入数据返回至装置或者处理电路中的数据返回地址对应的存储空间,在本实施例中,由于传输电路在获取满足所述数据长度的输入神经元数据和权值数据时,是按照该数据操作信号中数据操作信息指示的读取规则对数据进行读取的,简化了传输电路的读取数据逻辑,提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度
可选地,上述图3所示实施例中,所述装置包括至少一个机器学习单元,每个机器学习单元包括主处理电路和多个从处理电路。其中,该机器学习装置包括的至少一个机器学习单元(即MLU)所执行的数据信号操作可以共享一个数据接收接口,该机器学习单元可以通过发送接口或共享数据接收接口与传输电路连接。需要说明的是,该发送接口和共享数据接收接口均可以通过硬件电路的方式实现,本实施例对该发送接口和共享数据接收接口的类型不做限定。其中,每个机器学习单元包括主处理电路和多个从处理电路,其中主处理电路,用于将输入数据(神经元数据和权值数据)分发至多个从处理电路;多个从处理电路,用于依据主处理电路传输的输入数据并行执行中间运算得到多个中间结果,并将该多个中间结果传输给主处理电路。这样,装置就可以分配每个机器学习单元各自处理其中的神经元,对应输出相应的输出数据,这样进行一层又一层神经网络的并行计算,可以实现神经网络计算的并行处理,提高了处理效率。
在上述实施例的基础上,所述操作域还包括跳转子操作域,所述跳转子操作域包括跳转步长以及每次跳转后所操作的跳转数据长度,如图4所示,提供了一种数据处理方法,本实施例涉及的是传输电路根据操作域中的跳转子操作域对存储器中的数据进行读取的具体过程。上述S201包括:
S301,自所述源地址开始读取所述存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据。
本实施例中,数据操作信号的操作域中包括了跳转子操作域,该跳转子操作域用于指示该传输电路在根据该数据操作信号读取待操作数据信息时,是依照该子操作域的规则读取的。可选地,该跳转子操作域包括stride操作域和/或segment操作域,所述stride操作域用于表征所述数据操作信号每次的跳转步长;所述segment操作域用于表征预设的所述数据操作信号每次的分割大小,需要说明的是,该stride操作域和segment操作域,在本申请实施例中所列举的长度和名称只是一种举例的方式,本申请实施例对此并不做限定。其中,该跳转子操作域中包括了跳转步长以及每次跳转后所操作的跳转数据长度,其中,该跳转数据长度可以为预设的数据长度。具体地,传输电路从待操作的数据信息中的源地址开始读取存储器,在当前次跳转后,将读取的跳转数据长度的数据确定为第一跳转数据,其中,该第一跳转数据表示的是传输电路在读取数据时跳转预设长度数据后获取的数据,其中该预设长度为用户根据实际情况自行设定,本实施例对此不做限定。
S302,获取所述跳转数据的最后一个地址,并根据所述跳转步长从所述最后一个地址跳转至目标跳转地址。
基于上述S301步骤中读取的第一跳转数据,传输电路获取该第一跳转数据的最后一个地址,并根据跳转子操作域中的跳转步长(例如stride步长),从该第一跳转数据的最后一个地址开始跳转该跳转步长的长度至目标跳转地址,可以理解的是,该第一跳转数据的最后一个地址与目标跳转地址之间的长度为跳转子操作域中的跳转步长。
S303,自所述目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足所述数据长度为止。
本步骤中,传输电路读取数据时从上述S302步骤中确定的目标跳转地址开始,跳转预设长度的数据,然后将该跳转预设长度后的数据确定为第二跳转数据,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,则表示该机器学习装置所需数据读取完毕,若该第二跳转数据的地址距上述开始跳转的源地址之间的长度不满足了机器学习装置所需数据的数据长度,则从该第二跳转数据的最后一个地址开始继续依照上述S301至S303步骤中的跳转顺序跳转以读取该数据,直至该第二跳转数据的地址距上述开始跳转的源地址之间的长度满足了机器学习装置所需数据的数据长度,即表示该机器学习装置所需数据读取完毕为止。
示例地,如下表3所示,本实施例中传输电路读取数据的过程举例如下:若操作域中还包括跳转子操作域stride操作域,则传输电路从数据信息中的源地址0x110011开始读取共享存储器中的数据,先读取预设长度的数据(该预设长度小于下表数据信息中的数据长度0x0100),然后跳转stride长度(0x0008)的地址,再读取预设长度的数据,依照此顺序一直读取该数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。若操作域中还包括跳转子操作域segment操作域,则传输电路从数据信息中的源地址0x110011开始读取共享存储器中的数据,先读取segment长度(0x0010)的数据,然后跳转stride长度(0x0008)的地址,再读取segment长度(0x0010)的数据,依照此顺序一直读取该数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。需要说明的是,若该跳转子操作域只有segment操作域没有stride操作域时,传输电路在读取数据时从源地址0x110011开始读取segment长度(0x0010)的数据,直到读取的该数据的总长度为如下表3数据信息中的数据长度0x0100为止,则表示该数据读取完毕。
表3
Figure BDA0001874292870000131
本实施例提供的数据处理方法,传输电路自源地址开始读取共享存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据,并从该第一跳转数据的最后一个地址开始按照跳转步长跳转至目标跳转地址,然后自目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足数据长度为止,这样,在操作域包括跳转子操作域时,由于传输电路是根据子操作域的跳转规则进行数据读取,简化了传输电路的读取数据逻辑,提高了数据访问效率,大大提高了机器学习芯片在数据访问时的访问速度。
由于传输电路根据接收数据操作信号进行操作时,开始接收的数据操作信号为一个编码指令,需要先对该数据操作信号进行译码解析,因此本申请实施例提供一种数据处理方法,如图5所示,所述数据处理装置中的传输电路接收所述数据处理装置中的机器学习装置发送的数据操作信号包括:
S401,对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息。
需要说明的是,一般在数据处理过程中数据操作信号数量比较多,传输电路在处理其中一个数据操作信号时,其他的需要存储在起来,具体地,传输电路对该数据操作信号进行解析,解析该数据操作信号中携带的数据信息和该数据操作信号的类型标志位。其中,该数据操作信息可以包括待操作数据长度,目标地址以及原始地址等信息,本实施例对此不做限定。
S402,依照指令队列执行所述解析的数据操作信号;所述指令队列用于表征所述数据操作信号的执行顺序。
需要理解的是,该数据操作信号在执行时是需要按照顺序依次完成的,基于上述S401步骤中的传输电路对该数据操作信号进行解析后,得到的数据操作信息和类型标志位,传输电路按照指令队列执行该解析后的数据操作信号。
本实施例提供的一种数据处理方法,通过传输电路对所述数据操作信号进行解析,以得到数据操作信号的类型标志位以及待操作的数据的信息,然后传输电路依照指令队列执行解析的数据操作信号,这样,在执行数据操作信号之前,先对数据操作信号进行解析,然后按照顺序执行,大大提高传输电路根据数据操作信号执行操作的速度。
考虑到传输电路在按照队列中的顺序执行数据操作信号时,需要执行是相互关联的数据操作信号,因此,本申请实施例提供另外一个实施例,如图6所示,在所述传输电路依照指令队列执行所述解析的数据操作信号之前,所述方法还包括:
S501,判断相邻的所述解析的数据操作信号的依赖关系,得到判断结果;所述依赖关系表征第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系。
其中,传输电路需要判断相邻的所述解析的数据操作信号的依赖关系,根据判断结果决定处理的两个相邻的数据操作信号之间是要有关联性的,其中,第s个数据操作信号表示的是数据操作信号中的任何一个信号,不特指某一个信号。则第s-1个数据操作信号表示第s个数据操作信号的前一个信号。
可选地,所述传输电路判断相邻的所述解析的数据操作信号的依赖关系的一种可实现方式为:分别获取依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第s个数据操作信号,和依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间;若所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号具有依赖关系;若所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有依赖关系。其中,传输电路分别根据第s个数据操作信号的第s个数据操作信号和第s-1个数据操作信号的第零存储地址区间之间的关系,判断相邻的所述解析的数据操作信号的依赖关系,判断方式可以是若第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则该第s个数据操作信号与第s-1个数据操作信号不具有依赖关系,若第一存储地址区间与所述第零存储地址区间有重叠的区域,则表示第s个数据操作信号与第s-1个数据操作信号有依赖关系。
S502,若所述判断结果为所述第s个数据操作信号与所述第s-1个数据操作信号存在依赖关系,缓存所述第s个数据操作信号,在所述第s-1个数据操作信号执行完毕后,提取所述第s个数据操作信号。
基于上述步骤中传输电路判断的两个相邻的数据操作信号的依赖关系,开始依照顺序执行数据操作信号,若判断结果为第s个数据操作信号与第s-1个数据操作信号存在依赖关系,则传输电路先缓存该第s个数据操作信号,在第s-1个数据操作信号执行完毕后,再提取该第s个数据操作信号。
本实施例提供的一种数据处理方法,由于传输电路会先通过判断两个相邻的数据操作信号之间的关联性保证数据操作信号的连贯性,这样,前期有条不紊的准备工作保证了后期根据该数据操作信号执行相应操作的顺利,从而提高了数据访问效率,大大提高机器学习芯片在数据访问时的访问速度。
又考虑到传输电路根据数据操作信号读取的数据不是机器学习装置需要的格式,因此需要传输电路对读取的数据进行一定处理后再传给机器学习装置,可选地,所述操作域还包括功能标志位,用于表征对所读取的数据进行的处理操作。其中,数据操作信号的操作域中包括了功能标志位表示传输电路需根据该功能标志位的对所读取的数据进行对应的处理,该操作域包括的功能标志位的个数可以是一个,也可以是多个,本实施例对此不做限定。示例地,该功能标记位为增加解压缩标记位,则若该标记为1,则数据在读取之后,传输电路需对该数据进行解压缩,然后再传输给机器学习装置中的指定的MLU,或者是加密标志位,则若该加密标志位为1,则数据在读取之后,传输电路需对该数据进行解压缩,然后再传输给机器学习装置中的指定的MLU,本实施例中,由于传输电路可以先依照数据操作信号操作域中的功能标志位对读取的数据进行对应处理后,再将该数据传输给机器学习装置,以便机器学习装置接收到该数据后可以立即识别并执行运算,提高了数据处理效率,从而大大提高了机器学习芯片在数据访问时的访问速度。
应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,本申请实施例还提供一种数据处理装置,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收内部或者外部设备发送的数据操作信号,所述数据操作信号包括类型标志位,所述类型标志位用于表征所述数据操作信号广播或者多播指令;
根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据。
本实施例提供的一种数据处理装置,其实现原理和技术效果与上述数据处理方法的实施例类似,在此不再赘述。
参照图7所示,本申请实施例还提供了一种组合处理装置,其包括上述数据处理装置、通用互联接口和除上述数据处理装置以外的其它处理装置;数据处理装置与其它处理装置进行交互,共同完成用户指定的计算操作。其中,其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为数据处理装置与外部数据和控制的接口,包括数据搬运,完成对本数据处理装置的开启、停止等基本控制;其他处理装置也可以和数据处理装置协作共同完成运算任务。通用互联接口,用于在所述数据处理装置与其他处理装置间传输数据和控制指令。该数据处理装置从其他处理装置中获取所需的输入数据,写入数据处理装置片上的共享存储器;可以从其他处理装置中获取控制指令,写入数据处理装置片上的机器学习装置;也可以读取数据处理装置的共享存储器中的数据并传输给其他处理装置。
可选的,参照图8所示,上述组合处理装置还可以包括存储装置,存储装置分别与所述数据处理装置和所述其他处理装置连接。存储装置用于保存在所述数据处理装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本数据处理装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一个实施例中,本申请实施例还提供了一种机器学习芯片,其包括了上述数据处理装置和/或组合处理装置。
在一个实施例中,本申请实施例还提供了一种芯片封装结构,其包括了上述芯片。
在一个实施例中,本申请实施例还提供了一种板卡,其包括了上述芯片封装结构。参照图9所示,上述板卡除了包括上述芯片封装结构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校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。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 (15)

1.一种数据处理方法,其特征在于,所述方法包括:
接收内部或者外部设备发送的数据操作信号,所述数据操作信号包括操作域和操作码,所述操作码包括第一类型标志位,所述操作域包括第二类型标志位,所述第一类型标志位用于表征所述数据操作信号是否I/O指令,所述第二类型标志位用于表征所述数据操作信号是否为所述I/O指令中的广播或者多播指令;所述操作域还包括功能标志位,用于表征对所读取的数据进行的处理操作;
根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据;所述操作域还包括数据接收标志位,所述数据接收标志位用于表征接收所述输入数据的装置或者处理电路。
2.根据权利要求1所述的方法,其特征在于,所述数据接收标志位的个数表征能够与所述存储器进行交互的装置的个数或者处理电路的个数。
3.根据权利要求1或2所述的方法,其特征在于,所述操作域还包括待操作的数据的信息;所述待操作的数据的信息包括所述待操作的数据在所述存储器中的源地址、待操作的数据长度、以及操作数据后的数据返回地址;所述根据所述数据操作信号对存储器中的待操作的数据执行对应的操作,得到所需的输入数据,包括:
自所述源地址开始读取所述存储器,获取满足所述数据长度的输入数据;
根据所述数据接收标志位,确定接收输入数据的装置或者处理电路;
按照所述数据返回地址,将所述输入数据返回至所述装置或者处理电路中的所述数据返回地址对应的存储空间。
4.根据权利要求3所述的方法,其特征在于,所述装置包括至少一个机器学习单元,每个机器学习单元包括主处理电路和多个从处理电路。
5.根据权利要求4所述的方法,其特征在于,所述操作域还包括跳转子操作域,所述跳转子操作域包括跳转步长以及每次跳转后所操作的跳转数据长度;所述自所述源地址开始读取所述存储器,获取满足所述数据长度的输入数据,包括:
自所述源地址开始读取所述存储器,根据当前次跳转后的跳转数据长度获取第一跳转数据;
获取所述跳转数据的最后一个地址,并根据所述跳转步长从所述最后一个地址跳转至目标跳转地址;
自所述目标跳转地址开始,根据跳转后的跳转数据长度获取第二跳转数据,直至每次跳转后得到的跳转数据的长度满足所述数据长度为止。
6.根据权利要求5所述的方法,其特征在于,所述跳转子操作域包括stride操作域和/或segment操作域;所述stride操作域用于表征所述数据操作信号每次的跳转步长;所述segment操作域用于表征预设的所述数据操作信号每次的分割大小。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一类型标志位的值为I/O,则确定所述数据操作信号为I/O指令;
若所述第二类型标志位的值为1,则确定所述数据操作信号为所述I/O指令中的广播或者多播指令。
8.根据权利要求7所述的方法,其特征在于,所述接收内部或者外部设备发送的数据操作信号,包括:
对所述数据操作信号进行解析,以得到所述数据操作信号的类型标志位以及待操作的数据的信息;
依照指令队列执行所述解析的数据操作信号;所述指令队列用于表征所述数据操作信号的执行顺序。
9.根据权利要求8所述的方法,其特征在于,在依照指令队列执行所述解析的数据操作信号之前,所述方法还包括:
判断相邻的所述解析的数据操作信号的依赖关系,得到判断结果;所述依赖关系表征第s个数据操作信号与所述第s个数据操作信号之前的第s-1个数据操作信号是否存在关联关系;
若所述判断结果为所述第s个数据操作信号与所述第s-1个数据操作信号存在依赖关系,缓存所述第s个数据操作信号,在所述第s-1个数据操作信号执行完毕后,提取所述第s个数据操作信号。
10.根据权利要求9所述的方法,其特征在于,所述判断相邻的所述解析的数据操作信号的依赖关系,包括:
分别获取依据所述第s个数据操作信号提取所述第s个数据操作信号中所需数据的第一存储地址区间,和依据所述第s-1个数据操作信号提取所述第s-1个数据操作信号中所需数据的第零存储地址区间;
若所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号具有依赖关系;
若所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第s个数据操作信号与所述第s-1个数据操作信号不具有依赖关系。
11.一种数据处理装置,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述方法的步骤。
12.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求11所述的数据处理装置、通用互联接口和除所述数据处理装置以外的其它处理装置;所述数据处理装置与所述其它处理装置进行交互。
13.一种机器学习芯片,其特征在于,所述机器学习芯片包括如权利要求12所述的组合处理装置。
14.一种板卡,其特征在于,所述板卡包括如权利要求13所述的机器学习芯片。
15.一种电子设备,其特征在于,所述电子设备包括如权利要求14所述的板卡。
CN201811392232.0A 2018-10-18 2018-11-21 数据处理方法、装置及相关产品 Active CN111209231B (zh)

Priority Applications (25)

Application Number Priority Date Filing Date Title
CN201811392232.0A CN111209231B (zh) 2018-11-21 2018-11-21 数据处理方法、装置及相关产品
US17/278,812 US20220035762A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
JP2020569113A JP7060720B2 (ja) 2018-10-18 2019-10-18 ネットワークオンチップによるデータ処理方法及び装置
KR1020207034138A KR102539573B1 (ko) 2018-11-21 2019-10-18 네트워크 온칩 데이터 처리 방법 및 장치
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
EP21217804.0A EP4009186A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
EP21217802.4A EP4009185A1 (en) 2018-10-18 2019-10-18 Network-on-chip data processing method and device
KR1020207033053A KR20200139829A (ko) 2018-10-18 2019-10-18 네트워크 온칩 데이터 처리 방법 및 장치
EP21217809.9A EP4009183A1 (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 ネットワークオンチップによるデータ処理方法及び装置
JP2020206306A JP7074833B2 (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 ネットワークオンチップによるデータ処理方法及び装置
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
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,492 US11880330B2 (en) 2018-10-18 2021-12-29 Network-on-chip data processing method and device
US17/564,366 US11971836B2 (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,389 US11841816B2 (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,509 US11797467B2 (en) 2018-10-18 2021-12-29 Data processing device with transmission circuit

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN111209231A CN111209231A (zh) 2020-05-29
CN111209231B true CN111209231B (zh) 2021-05-11

Family

ID=70789194

Family Applications (1)

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

Country Status (2)

Country Link
KR (1) KR102539573B1 (zh)
CN (1) CN111209231B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651384B (zh) * 2020-06-05 2023-06-16 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227486A (zh) * 2008-02-03 2008-07-23 浙江大学 适合于多处理器片上网络的传输协议
CN102015578A (zh) * 2007-04-27 2011-04-13 新日本制铁株式会社 不定形耐火材料用粘合剂及不定形耐火材料
CN103078713A (zh) * 2013-01-24 2013-05-01 东莞宇龙通信科技有限公司 通信设备和数据通信方法
CN103580890A (zh) * 2012-07-26 2014-02-12 深圳市中兴微电子技术有限公司 一种可重配置片上网络结构及其配置方法
CN105446888A (zh) * 2014-05-30 2016-03-30 华为技术有限公司 存储设备间移动数据的方法、控制器和存储系统
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN108133267A (zh) * 2016-12-01 2018-06-08 上海兆芯集成电路有限公司 具有可作为最后级高速缓存片或神经网络单元存储器操作的存储器阵列的处理器
CN108804356A (zh) * 2017-04-26 2018-11-13 上海寒武纪信息科技有限公司 数据传输装置及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW325552B (en) * 1996-09-23 1998-01-21 Advanced Risc Mach Ltd Data processing condition code flags
DE602007006215D1 (de) * 2006-09-06 2010-06-10 Silicon Hive Bv Datenverarbeitungsschaltung mit mehreren anweisungchaltung und scheduling-verfahren für eine solche datenschaltung
US8320373B2 (en) * 2007-08-23 2012-11-27 Qualcomm Incorporated Packet-based processing system
US8533377B2 (en) * 2011-05-28 2013-09-10 Lsi Corporation System and method for allocating transaction ID in a system with a plurality of processing modules
US9965824B2 (en) * 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10606689B2 (en) * 2017-04-18 2020-03-31 SK Hynix Inc. Memory system and operating method thereof

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102015578A (zh) * 2007-04-27 2011-04-13 新日本制铁株式会社 不定形耐火材料用粘合剂及不定形耐火材料
CN101227486A (zh) * 2008-02-03 2008-07-23 浙江大学 适合于多处理器片上网络的传输协议
CN103580890A (zh) * 2012-07-26 2014-02-12 深圳市中兴微电子技术有限公司 一种可重配置片上网络结构及其配置方法
CN103078713A (zh) * 2013-01-24 2013-05-01 东莞宇龙通信科技有限公司 通信设备和数据通信方法
CN105446888A (zh) * 2014-05-30 2016-03-30 华为技术有限公司 存储设备间移动数据的方法、控制器和存储系统
CN108133267A (zh) * 2016-12-01 2018-06-08 上海兆芯集成电路有限公司 具有可作为最后级高速缓存片或神经网络单元存储器操作的存储器阵列的处理器
CN108804356A (zh) * 2017-04-26 2018-11-13 上海寒武纪信息科技有限公司 数据传输装置及方法
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品

Also Published As

Publication number Publication date
KR20200138414A (ko) 2020-12-09
CN111209231A (zh) 2020-05-29
KR102539573B1 (ko) 2023-06-01

Similar Documents

Publication Publication Date Title
CN111209243B (zh) 数据处理装置、方法及相关产品
CN111209231B (zh) 数据处理方法、装置及相关产品
CN111210012B (zh) 数据处理方法、装置及相关产品
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
CN111723920B (zh) 人工智能计算装置及相关产品
CN111079916B (zh) 运算方法、系统及相关产品
CN114691562A (zh) 用于dma操作的方法、装置、设备、集成电路芯片和板卡
CN111401536A (zh) 运算方法、装置及相关产品
CN111381873A (zh) 运算方法、装置及相关产品
CN111382850A (zh) 运算方法、装置及相关产品
CN111382851A (zh) 运算方法、装置及相关产品
CN111399905B (zh) 运算方法、装置及相关产品
CN111260045B (zh) 译码器和原子指令解析方法
CN111400341B (zh) 标量查找指令处理方法、装置及相关产品
CN111079915B (zh) 运算方法、装置及相关产品
CN111079914B (zh) 运算方法、系统及相关产品
CN111078285B (zh) 运算方法、系统及相关产品
CN111723921B (zh) 人工智能计算装置及相关产品
CN111325331B (zh) 运算方法、装置及相关产品
CN111078293B (zh) 运算方法、装置及相关产品
CN111079907B (zh) 运算方法、装置及相关产品
CN111079910B (zh) 运算方法、装置及相关产品
CN111384944B (zh) 全加器、半加器、数据处理方法、芯片及电子设备
CN111079913B (zh) 运算方法、装置及相关产品
CN111382390B (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