CN109117415A - 数据共享系统及其数据共享方法 - Google Patents
数据共享系统及其数据共享方法 Download PDFInfo
- Publication number
- CN109117415A CN109117415A CN201710497394.XA CN201710497394A CN109117415A CN 109117415 A CN109117415 A CN 109117415A CN 201710497394 A CN201710497394 A CN 201710497394A CN 109117415 A CN109117415 A CN 109117415A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- processing module
- neural network
- computing module
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000015654 memory Effects 0.000 claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 17
- 238000013528 artificial neural network Methods 0.000 claims description 43
- 239000013598 vector Substances 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 11
- 210000004205 output neuron Anatomy 0.000 claims description 10
- 210000002364 input neuron Anatomy 0.000 claims description 5
- 230000002441 reversible effect Effects 0.000 claims description 3
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 210000002569 neuron Anatomy 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 206010006895 Cachexia Diseases 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 208000016318 wasting Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
一种数据共享系统,包括存储模块和至少两个处理模块,其中:至少两个处理模块共用存储模块;至少两个处理模块之间进行通信,以实现数据共享。以及一种数据共享系统的数据共享方法。本公开可降低存储通信的开销,有效降低数据访问的延时。
Description
技术领域
本公开涉及一种共享系统,尤其涉及一种数据共享系统及其数据共享方法。
背景技术
随着人工智能技术的不断发展,机器学习技术和深度神经网络技术得到了广泛的应用,如可应用于语音识别、图像处理、数据分析、广告推荐系统、汽车自动驾驶等等,可以说,机器学习和深度神经网络已经被应用在了生活的各个方面。这些技术能够取得如此广泛的应用,和其能够很好地处理大数据的优势是分不开的。但随着数据量的越来越大,其计算量也随之增加,因此如何有效的组织和存储数据,成为了设计片上系统芯片(SoC芯片)时一个不得不面对的问题。
如图1所示,在现有的SoC芯片中,机器学习(可以做深度学习或其他)专用集成电路(ASIC模块)的数据时,通常都存在私有的静态随机存取存储器(SRAM)里,通过先进的可扩展接口(AXI)总线将数据放到片外动态随机存取存储器(DRAM)或片内的SRAM(类似缓存SRAM(Cache))里,再间接和其他模块交互。这使得系统开销提高、数据读取延时增大、数据共享和交互的能耗增多。
发明内容
基于以上问题,本公开的主要目的在于提出一种数据共享系统及其数据共享方法,用于解决以上技术问题的至少之一。
为了实现上述目的,作为本公开的一个方面,本公开提出了一种数据共享系统,包括存储模块和至少两个处理模块,其中:
至少两个处理模块共用存储模块;
至少两个处理模块之间通过预设的规则进行通信,以实现数据共享。
在本公开的一些实施例中,上述预设的规则包括通信协议、传送协议、握手协议和/或总线协议。
在本公开的一些实施例中,上述通过预设的规则通信包括:至少两个处理模块包括第一处理模块和第二处理模块,第一处理模块向第二处理模块发送请求信号和相应的数据地址,第二处理模块根据请求信号和相应的数据地址,向第一处理模块回复有效信号和数据,以实现数据共享。
在本公开的一些实施例中,上述至少两个处理模块包括物理处理器。
在本公开的一些实施例中,上述物理处理器包括神经网络处理器。
在本公开的一些实施例中,上述神经网络处理器包括用于执行人工神经网络正向运算的装置。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置包括指令缓存单元和直接内存访问单元,其中:
指令缓存单元用于通过直接内存访问单元读入指令并缓存读入的指令。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置还包括:
控制器单元,用于从指令缓存单元读取指令,并将该指令译码成微指令。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置还包括H数模块、主运算模块、以及多个从运算模块,其中:
H树模块,用于在每层神经网络反向训练开始计算的阶段,主运算模块通过H树模块向所有的从运算模块传输本层的输入神经元向量,以及在从计算模块的计算过程完成后,H树模块用于逐级将各从计算模块的输出神经元值拼成中间结果向量;
主运算模块,用于利用中间结果向量完成后续计算。
在本公开的一些实施例中,上述直接内存访问单元,还用于从外部地址空间向主运算模块和各从运算模块的相应数据缓存单元中写数据,或从所述数据缓存单元向外部地址空间读数据。
在本公开的一些实施例中,上述至少两个处理模块包括两个互异结构的处理器;该两个互异结构的处理器的其中之一为神经网络处理器。
在本公开的一些实施例中,上述至少两个处理模块包括处理器的至少两个处理器内核;该至少两个处理器内核为相同/互异结构的处理器内核。
在本公开的一些实施例中,上述至少两个处理模块包括处理器内核的至少两个运算单元;该至少两个运算单元为相同/互异结构的运算单元。
在本公开的一些实施例中,上述共享系统还包括:
至少两个存储单元,分别连接至少两个运算单元的至少一个,至少两个运算单元中的任一个连接一个或多个存储单元;且至少两个存储单元共享所述存储模块。
在本公开的一些实施例中,上述至少两个运算单元共享同一个存储单元、或独享一个存储单元、或部分共享同一个存储单元,且部分独享一个存储单元。
在本公开的一些实施例中,上述至少两个处理模块包括处理器内核的三个运算单元,至少两个存储单元为两个,其中的两个运算单元同时连接其中的一个存储单元,其中的另外一个运算单元连接其中的另一个存储单元。
为了实现上述目的,作为本公开的另一个方面,本公开提出了一种数据共享方法,包括以下步骤:
至少两个处理模块之间通过预设的规则进行通信,以实现数据共享;
其中,两个处理模块共用存储模块。
在本公开的一些实施例中,上述预设的规则包括通信协议、传送协议、握手协议和/或总线协议。
在本公开的一些实施例中,上述通过预设的规则通信包括:至少两个处理模块包括第一处理模块和第二处理模块,第一处理模块向第二处理模块发送请求信号和相应的数据地址,第二处理模块根据请求信号和相应的数据地址,向第一处理模块回复有效信号和数据,以实现数据共享。
在本公开的一些实施例中,上述至少两个处理模块包括物理处理器。
在本公开的一些实施例中,上述物理处理器包括神经网络处理器。
在本公开的一些实施例中,上述神经网络处理器包括用于执行人工神经网络正向运算的装置。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置包括指令缓存单元和直接内存访问单元,其中:
指令缓存单元通过直接内存访问单元读入指令,并缓存读入指令。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置还包括控制器单元,该控制器单元从指令缓存单元读取指令,并译码该指令生成微指令。
在本公开的一些实施例中,上述用于执行人工神经网络正向运算的装置还包括H数模块、主运算模块、以及多个从运算模块,其中:
H树模块,在每层神经网络反向训练开始计算的阶段,主运算模块通过H树模块向所有的从运算模块传输本层的输入神经元向量,以及在从计算模块的计算过程完成后,H树模块逐级将各从计算模块的输出神经元值拼成中间结果向量;
主运算模块,利用中间结果向量完成后续计算。
在本公开的一些实施例中,上述直接内存访问单元,还从外部地址空间向主运算模块和各从运算模块的相应数据缓存单元中写数据,或从数据缓存单元向外部地址空间读数据。
在本公开的一些实施例中,上述至少两个处理模块包括两个互异结构的处理器;该两个互异结构的处理器的其中之一为神经网络处理器。
在本公开的一些实施例中,上述至少两个处理模块包括处理器的至少两个处理器内核;该至少两个处理器内核为相同/互异结构的处理器内核。
在本公开的一些实施例中,上述至少两个处理模块包括处理器内核的至少两个运算单元;该至少两个运算单元为相同/互异结构的运算单元。
在本公开的一些实施例中,上述数据共享方法还采用:
至少两个存储单元,分别连接至少两个运算单元的至少一个,至少两个运算单元中的任一个连接一个或多个存储单元;且至少两个存储单元共享所述存储模块。
在本公开的一些实施例中,上述至少两个运算单元共享同一个存储单元、或独享一个存储单元、或部分共享同一个存储单元,且部分独享一个存储单元。
在本公开的一些实施例中,上述至少两个处理模块包括处理器内核的三个运算单元,至少两个存储单元为两个,其中的两个运算单元同时连接其中的一个存储单元,其中的另外一个运算单元连接其中的另一个存储单元。
本公开提出的数据共享系统及其数据共享方法,具有以下有益效果:
1、本公开中的至少两个处理模块之间可通过预设的规则直接通信,实现数据共享;因此无需通过共享的存储模块,从而可降低存储通信的开销,有效降低数据访问的延时;
2、本公开的至少两个处理模块可包括不同结构的处理器,及不同结构处理器中的内核,因此可维护相同或不同结构的处理器的外部存储模块和内核对应的核外部存储模块;
3、本公开在不降低原有的存储效率和不增加原有的存储成本的情况下,每个存储单元可以允许一个或多个运算单元进行直接访问,其具体数量无需固定和同意,支持非对称的结构,允许根据需求进行配置和调整,从而减少了片内外访存的交互次数,降低了功耗;
4、本公开对于运算单元独自享有的私有存储模块,允许其可以将数据传递给其他运算单元。即在保护数据私有性的同时,允许数据的快速交互,提高了数据利用率,避免了片上存储多份相同数据带来的资源浪费和反复读取相同数据的访存开销,进一步提高了访存速度,降低了访存功耗。
附图说明
图1是现有技术中的数据处理系统的结构示意图;
图2是本公开一实施例提出的数据共享系统的结构示意图;
图3是图2系统中处理器的结构示意图;
图4是图3中H树模块的结构示意图;
图5是图3中主运算模块的结构示意图;
图6是图3中从运算模块的结构示意图;
图7是本公开另一实施例提出的数据共享系统的结构示意图;
图8是本公开再一实施例提出的数据共享系统的结构示意图;
图9是本公开由一实施例提出的数据共享系统的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。
本公开提出了机器学习ASIC运算单元可以直接访问SoC片内存储模块,与其他SoC内的其他模块实现快速的数据交互的方法。该方法能够有效提高数据交互效率,大大降低交互延迟。对于各层次公用的存储模块,可以由有权限的访问单元进行访问,对于私有的存储模块,访问单元间可以直接或者通过某种规则或者某种协议完成数据的交互和访问。
本公开提出了一种数据共享系统,包括存储模块和至少两个处理模块,其中:
至少两个处理模块共用存储模块;
至少两个处理模块之间通过预设的规则通信,以实现数据共享。
本公开的数据共享系统,支持异构的多处理器情况。处理器外部有外部存储模块,是多个处理器的公用存储模块,这些处理器可以为相同的处理器、可以为不同的处理器,亦或是部分相同的情况。
在本公开的一些实施例中,上述至少两个处理模块可以为相同/互异结构的处理器、相同/互异结构的处理器内核,及相同/互异结构处理器内核中相同/互异结构的运算单元。
在本公开的一些实施例中,上述预设的规则包括通信协议、传送协议、握手协议和/或总线协议。
在本公开的一些实施例中,上述通过预设的规则通信包括:至少两个处理模块包括第一处理模块和第二处理模块,第一处理模块向第二处理模块发送请求信号和相应的数据地址,第二处理模块根据所述请求信号和相应的数据地址,向第一处理模块回复有效信号和数据,以实现数据共享。需要说明的是,此处的至少两个处理模块并不以包括第一处理模块和第二处理模块为限,例如还可包括第三处理模块,则此三个模块中的任意两个均可采用上述预设的规则进行通信。
本公开还提出了一种数据共享方法,包括以下步骤:
至少两个处理模块之间通过预设的规则进行通信,以实现数据共享;
其中,该两个处理模块共用一存储模块。
如图2所示,在本公开的一些实施例中,至少两个处理模块为两个存储器,分别为处理器1、处理器2,两个处理器之间的通信是指处理器内部的内部存储模块之间的通信。外部存储模块允许处理器1和处理器2直接进行访问,分别读取数据至内部存储模块1和内部存储模块2所需要的位置。通过某种一致性协议维护外部存储模块和处理器内部存储模块的数据的一致性问题。现有技术中,如当处理器1改变了自己内部存储模块中的数据时,采用“写穿透”的方式,改变内部存储模块1中的相应位置的数据,同时改变外部存储模块中该数据的相应位置;则外部存储模块同时给内部存储模块2中的相应数据发送一个失效信号。待处理器2使用该数据时,发现失效信号后,从外部存储模块读取新值,并写到内部存储模块2中的相应位置。在本实施例中,对于内部存储模块1中的数据,处理器2可以通过某种预设的规则,如先向处理器1发送请求信号和相应的数据地址,处理器1收到请求信号后,回复有效信号和数据来完成数据交互;因此对于具有多个处理器的结构,可维护同一个存储空间,且可通过某种定义好的规则实现多个处理器相互之间的直接通信,从而降低存储通信开销,降低数据访问延时。
其中,本实施例中涉及的处理器1、处理器2等可以为相同的处理器,也可以为不同的处理器。尤其可以适用于新型的人工神经网络处理器和传统的通用处理器之间的合作。如可假定处理器1为通用处理器CPU,处理器2为人工神经网络处理器。
具体地,如图3所示,人工神经网络处理器可为用于执行人工神经网络正向运算的结构,包括指令缓存单元1、控制器单元2、直接内存访问单元3、H树模块4、主运算模块5和多个从运算模块6。其中,指令缓存单元1、控制器单元2、直接内存访问单元3、H树模块4、主运算模块5和从运算模块6均可以通过硬件电路(例如专用集成电路ASIC)实现。
指令缓存单元1通过直接内存访问单元3读入指令并缓存读入的指令;控制器单元2从指令缓存单元1中读取指令,将指令译成控制其他模块行为的微指令,其中的其他模块例如为直接内存访问单元3、主运算模块5和从运算模块6等;直接内存访问单元3能够访存外部地址空间,直接向处理器内部的各个缓存单元读写数据,完成数据的加载和存储。
如图4所示,为H树模块4的结构,H树模块4是构成主运算模块5和多个从运算模块6之间的数据通路,并具有H树型的结构。H树是由多个节点构成的二叉树通路,每个节点将上游的数据原封不动地发给下游的两个节点,而将下游的两个节点返回的数据进行合并,并返回给上游的节点。例如,在每层人工神经网络开始计算阶段,主运算模块5内的神经元数据通过H树模块4发送给各个从运算模块6;当从运算模块6的计算过程完成后,每个从运算模块输出的神经元的值会在H树中逐级拼成一个完整的由神经元组成的向量,作为中间结果向量。此处以神经网络全连接层为例进行说明,假设处理器中共有N个从运算模块,则中间结果向量按N分段,即每段有N个元素,第i个从运算模块计算每段中的第i个元素。N个元素经过H树模块拼成长度为N的向量后返回给主运算模块。所以如果网络只有N个输出神经元,则每个从运算单元只需输出单个神经元的值,若网络有m*N个输出神经元,则每个从运算单元需输出m个神经元值。
如图5所示,为主运算模块5的结构示例框图,主运算模块5包括运算单元51、数据依赖关系判断单元52和神经元缓存单元53。神经元缓存单元53用于缓存主运算模块5在计算过程中用到的输入数据和输出数据,运算单元51完成主运算模块5的各种运算功能,数据依赖关系判断单元52是运算单元51读写神经元缓存单元53的端口,同时能够保证神经元缓存单元中数据的读写一致性。同时,数据依赖关系判断单元52也负责将读取数据通过H树模块4发送给从计算模块6,而从计算模块6的输出数据通过H树模块4直接发送给运算单元51。控制器单元2输出的指令发送给计算单元51和数据依赖关系判断单元52,来控制其行为。
如图6所示,为从运算模块6的结构示例框图,每个从运算模块6包括运算单元61、数据依赖关系判断单元62、神经元缓存单元63和权值缓存单元64。运算单元61接收控制器单元2发出的微指令并进行算数逻辑运算;数据依赖关系判断单元62负责计算过程中对神经元缓存单元63的读写操作。数据依赖关系判断单元62执行读写操作之前会首先保证指令之间所用的数据不存在读写一致性冲突,例如,所有发往数据依赖关系单元62的微指令都会被存入数据依赖关系单元62内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行;神经元缓存单元63缓存该从运算模块6的输入神经元向量数据和输出神经元值数据。权值缓存单元64缓存该从运算模块6在计算过程中需要的权值数据。对于每一个从运算模块6,都只会存储全部输入神经元与部分输出神经元之间的权值。以全连接层为例,输出神经元按照从运算单元的个数N进行分段,每段的第n个输出神经元对应的权值存放在第n个从运算单元中。
从运算模块6实现每层人工神经网络正向运算过程中可以并行的算数逻辑运算。以人工神经网络全连接层(MLP)为例,过程为y=f(wx+b),其中权值矩阵w和输入神经元向量x的乘法可以划分为不相关的并行计算子任务,即由于out与in是列向量,每个从运算模块6只计算in中相应的部分标量元素与权值矩阵w对应的列的乘积,得到的每个输出向量都是最终结果的一个待累加的部分和,这些部分和在H树模块4中逐级两两相加得到最后的结果。所以计算过程变成了并行的计算部分和的过程和后面的累加的过程。每个从运算模块6计算出输出神经元值,所有的输出神经元值在H树模块4中拼成最后的中间结果向量。因此,每个从运算模块6只需要计算出中间结果向量y中与本模块对应的输出神经元的值即可。H树模块4对所有从运算模块6输出的神经元值求和,得到最终的中间结果向量y。主运算模块5基于中间结果向量y进行后续计算,比如加偏置、池化(例如最大值池化(MAXPOOLING)或平均值池化(AVGPOOLING)等)、做激活和做采样等。
在该结构中,存在一个CPU和人工神经网络处理器的公用存储模块,允许两个处理器直接进行访问,分别读取数据至CPU的缓存之中和人工神经网络处理器的缓存单元之中。当CPU将要改变缓存中的数据时,采用“写穿透”的方式,改变缓存中数据的相应位置的同时,改变外部存储模块中该数据的相应位置,同时给人工神经网络处理器中的相应数据发送一个失效信号。待人工神经网络处理器使用该数据时,发现失效信号后,从外部存储模块读取新值,并写到人工神经网络处理器中的缓存单元的相应位置。另外,对于CPU中的数据,人工神经网络处理器可以通过定义好的规则,即先向CPU发送请求信号和相应的数据地址,CPU收到请求信号后,回复有效信号和数据来完成数据交互。从而,对于异构的多处理器结构,本实施例提出的数据共享系统通过维护同一个存储空间,可降低存储通信开销,降低数据访问延时。
每个处理器内有多个核,核内有核内部存储模块和核外部存储模块,核外部存储模块的数据可以由几个或者所有的核直接进行访问。在本公开的一些实施例中,如图7所示,提出一种数据共享系统,其中至少两个处理模块为两个处理器内核,其之间的数据共享通过其内部的核内部存储模块来实现,存储模块则指核外部存储模块。在本实施例中,一个核想访问另一个核的核内部存储模块可通过通信协议进行防问。核外部存储模块允许核1和核2进行访问,那么,核1和核2分别读取所需要的数据至核内部存储模块1和核内部存储模块2的相应的位置。通过某种一致性协议维护核外部存储模块和核内部存储模块的数据的一致性问题。现有技术中,当核1改变了自己核内部存储模块中的数据,采用“写回”的方式,只改变核内部存储模块1中的相应位置的数据,同时核外部存储模块发送无效信号至核内部存储模块2。待核内部存储模块1中该部分数据被换出时,或者待核2使用该数据时,发现失效信号后,从核外部存储模块读取新值,并写到核内部存储模块2中的相应位置。但在本实施例中,对于核内部存储模块1中的数据,核2还可以通过某种定义好的规则,如先向核1发送请求信号和相应的数据地址,核1收到请求信号后,回复有效信号和数据来完成数据交互。其中,核与核的种类可以相同,如均为神经网络核,也可以不同,如神经网络核和CPU核。这样能够在对数据进行一定的保护的同时,允许相同或不同结构核对数据存储的访问,维护了数据的一致性。同时降低了访存开销,减少了访存延时。
每个神经网络核内包含多个神经网络运算单元,因此,如图8所示,在本公开的一些实施例中,提出一种数据共享系统,其中的至少两个处理模块是指三个运算单元,该三个运算单元可以直接访问核内部存储模块,也可以以一定方向直接传递相关数据,这样有利于通过数据在运算单元之间的传递,减少对存储模块的访问次数,从而降低功耗和访问延时。不妨假定在完成神经网络运算时,运算单元1计算输出值1,其结果用out1表示,对应的神经元为n=(n1,n2,……,nk),突触值为w=(w1,w2,……,wk),那么,out1=n1*w1+n2*w2+……+nk*wk。类似的,运算单元2的输出结果为out2,对应的神经元为m=(m1,m2,……,mk),突触值为w=(w1,w2,……,wk),那么,out2=m1*w1+m2*w2+……+mk*wk。运算单元3的输出结果为out3,对应的神经元为q=(q1,q2,……,qk),突触值为w=(w1,w2,……,wk),那么,out3=q1*w1+q2*w2+……+qk*wk。具体的,首先运算单元1从核内部存储模块中读取出n和w,直接进行运算,得到outl;运算单元2从核内部存储模块中读取出m,并接收从运算单元1中传来的突触值w进行相应的运算,得到out2;运算单元3从核内部存储模块中读取出q,并接收从运算单元1中传来的突触值w进行相应的运算,得到out3。从而,减少了对核内部存储模块的访存次数,降低了延迟和功耗,提升了运算速度,节省了运算能耗。
在本公开的一些实施例中,上一实施例中的数据共享系统中,还可以在核内增设一层或多层存储单元,允许1个存储模单元被几个运算单元共用或1个存储单元被1个运算单元私有。如图9所示,此处假定共享系统包括两个存储单元,且存储单元1由运算单元1和运算单元2所共用,运算单元1和运算单元2可以直接访问存储单元1,运算单元3不能直接访问;存储单元2为运算单元3所私有,运算单元3可以直接访问,而运算单元1和运算单元2不能直接访问。这样,如果运算单元1想要访问运算单元3中的运算结果,可以直接通过运算单元3获取,无需经过存储单元1访问核内部存储模块,而后让存储单元2更新核内部存储模块后传入存储单元1,再允许运算单元1进行访问这样一个漫长的过程,从而在对数据进行有效保护作用的同时,即其他无权限的运算单元(如运算单元1)不能随意更改存储单元(如存储单元2)的同时,又可大大缩减访存次数,避免了片上存储多份相同数据对片上存储资源的浪费,从而,降低了延迟和功耗,进一步提升运算速度,节省运算能耗。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种数据共享系统,包括存储模块和至少两个处理模块,其中:
所述至少两个处理模块共用所述存储模块;
所述至少两个处理模块之间通过预设的规则进行通信,以实现数据共享。
2.如权利要求1所述的数据共享系统,其中,所述预设的规则包括通信协议、传送协议、握手协议和/或总线协议。
3.如权利要求1至2中任一项所述的数据共享系统,其中,所述通过预设的规则通信包括:至少两个处理模块包括第一处理模块和第二处理模块,第一处理模块向第二处理模块发送请求信号和相应的数据地址,所述第二处理模块根据所述请求信号和相应的数据地址,向第一处理模块回复有效信号和数据,以实现数据共享。
4.如权利要求1至3中任一项所述的数据共享系统,其中,所述至少两个处理模块包括物理处理器。
5.如权利要求4所述的数据共享系统,其中,所述物理处理器包括神经网络处理器。
6.如权利要求5所述的数据共享系统,其中,所述神经网络处理器包括用于执行人工神经网络正向运算的装置。
7.如权利要求6所述的数据共享系统,其中,所述用于执行人工神经网络正向运算的装置包括指令缓存单元和直接内存访问单元,其中:
所述指令缓存单元用于通过直接内存访问单元读入指令并缓存读入的指令。
8.如权利要求7所述的数据共享系统,其中,所述用于执行人工神经网络正向运算的装置还包括:
控制器单元,用于从指令缓存单元读取指令,并将该指令译码成微指令。
9.如权利要求7至8中任一项所述的数据共享系统,其中,所述用于执行人工神经网络正向运算的装置还包括H数模块、主运算模块、以及多个从运算模块,其中:
所述H树模块,用于在每层神经网络反向训练开始计算的阶段,主运算模块通过H树模块向所有的从运算模块传输本层的输入神经元向量,以及在从计算模块的计算过程完成后,H树模块用于逐级将各从计算模块的输出神经元值拼成中间结果向量;
主运算模块,用于利用中间结果向量完成后续计算。
10.如权利要求9所述的数据共享系统,其中,所述直接内存访问单元,还用于从外部地址空间向主运算模块和各从运算模块的相应数据缓存单元中写数据,或从所述数据缓存单元向外部地址空间读数据。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110668344.XA CN113468096A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
CN201710497394.XA CN109117415A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
PCT/CN2018/092829 WO2019001418A1 (zh) | 2017-06-26 | 2018-06-26 | 数据共享系统及其数据共享方法 |
EP18824582.3A EP3637272A4 (en) | 2017-06-26 | 2018-06-26 | DATA-SHARING SYSTEM AND RELATED DATA-SHARING PROCESS |
US16/693,918 US10901815B2 (en) | 2017-06-26 | 2019-11-25 | Data sharing system and data sharing method therefor |
US16/694,176 US11726844B2 (en) | 2017-06-26 | 2019-11-25 | Data sharing system and data sharing method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710497394.XA CN109117415A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110668344.XA Division CN113468096A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109117415A true CN109117415A (zh) | 2019-01-01 |
Family
ID=64822743
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110668344.XA Pending CN113468096A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
CN201710497394.XA Pending CN109117415A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110668344.XA Pending CN113468096A (zh) | 2017-06-26 | 2017-06-26 | 数据共享系统及其数据共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113468096A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058884A (zh) * | 2019-03-15 | 2019-07-26 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN110265029A (zh) * | 2019-06-21 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 语音芯片和电子设备 |
CN110889500A (zh) * | 2019-12-09 | 2020-03-17 | Oppo广东移动通信有限公司 | 共享的数据存储模块、神经网络处理器和电子设备 |
CN111949317A (zh) * | 2019-05-17 | 2020-11-17 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992005490A1 (en) * | 1990-09-18 | 1992-04-02 | Fujitsu Limited | Exclusive control method for shared memory |
CN1200513A (zh) * | 1997-05-28 | 1998-12-02 | 三星电子株式会社 | 多处理器系统高速缓冲存储器的测试方法 |
CN1522402A (zh) * | 2001-06-29 | 2004-08-18 | �ʼҷ����ֵ�������˾ | 多处理器系统及运行多处理器系统的方法 |
CN1702858A (zh) * | 2004-05-28 | 2005-11-30 | 英特尔公司 | 具有双向环路互连的多处理器芯片 |
CN1988034A (zh) * | 2005-12-22 | 2007-06-27 | 三星电子株式会社 | 具有在端口间的数据发送模式的多径访问半导体存储器件 |
US20100125717A1 (en) * | 2008-11-17 | 2010-05-20 | Mois Navon | Synchronization Controller For Multiple Multi-Threaded Processors |
CN101980149A (zh) * | 2010-10-15 | 2011-02-23 | 无锡中星微电子有限公司 | 主处理器与协处理器通信系统及通信方法 |
CN102184157A (zh) * | 2011-05-19 | 2011-09-14 | 华东师范大学 | 一种基于双处理器协作的信息显示装置 |
US20120131283A1 (en) * | 2010-05-18 | 2012-05-24 | Lsi Corporation | Memory manager for a network communications processor architecture |
CN102741828A (zh) * | 2009-10-30 | 2012-10-17 | 英特尔公司 | 对计算机平台的异构处理器的双向通信支持 |
CN103347037A (zh) * | 2013-05-29 | 2013-10-09 | 成都瑞科电气有限公司 | 一种基于wcf实现的通信前置机系统及通讯方法 |
CN104281540A (zh) * | 2013-07-04 | 2015-01-14 | 飞思卡尔半导体公司 | 原子地更新多处理器系统中的共享存储器的系统及方法 |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
US20160103743A1 (en) * | 2014-10-08 | 2016-04-14 | Apple Inc. | Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors |
CN105793830A (zh) * | 2013-12-26 | 2016-07-20 | 英特尔公司 | 在节点之间共享存储器和i/o服务 |
CN106407145A (zh) * | 2015-08-03 | 2017-02-15 | 联想(北京)有限公司 | 接口访问方法、系统及存储卡 |
CN106502806A (zh) * | 2016-10-31 | 2017-03-15 | 华为技术有限公司 | 一种总线协议命令处理装置及相关方法 |
-
2017
- 2017-06-26 CN CN202110668344.XA patent/CN113468096A/zh active Pending
- 2017-06-26 CN CN201710497394.XA patent/CN109117415A/zh active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992005490A1 (en) * | 1990-09-18 | 1992-04-02 | Fujitsu Limited | Exclusive control method for shared memory |
CN1200513A (zh) * | 1997-05-28 | 1998-12-02 | 三星电子株式会社 | 多处理器系统高速缓冲存储器的测试方法 |
CN1522402A (zh) * | 2001-06-29 | 2004-08-18 | �ʼҷ����ֵ�������˾ | 多处理器系统及运行多处理器系统的方法 |
CN1702858A (zh) * | 2004-05-28 | 2005-11-30 | 英特尔公司 | 具有双向环路互连的多处理器芯片 |
CN1988034A (zh) * | 2005-12-22 | 2007-06-27 | 三星电子株式会社 | 具有在端口间的数据发送模式的多径访问半导体存储器件 |
US20100125717A1 (en) * | 2008-11-17 | 2010-05-20 | Mois Navon | Synchronization Controller For Multiple Multi-Threaded Processors |
CN102741828A (zh) * | 2009-10-30 | 2012-10-17 | 英特尔公司 | 对计算机平台的异构处理器的双向通信支持 |
US20120131283A1 (en) * | 2010-05-18 | 2012-05-24 | Lsi Corporation | Memory manager for a network communications processor architecture |
CN101980149A (zh) * | 2010-10-15 | 2011-02-23 | 无锡中星微电子有限公司 | 主处理器与协处理器通信系统及通信方法 |
CN102184157A (zh) * | 2011-05-19 | 2011-09-14 | 华东师范大学 | 一种基于双处理器协作的信息显示装置 |
CN103347037A (zh) * | 2013-05-29 | 2013-10-09 | 成都瑞科电气有限公司 | 一种基于wcf实现的通信前置机系统及通讯方法 |
CN104281540A (zh) * | 2013-07-04 | 2015-01-14 | 飞思卡尔半导体公司 | 原子地更新多处理器系统中的共享存储器的系统及方法 |
CN105793830A (zh) * | 2013-12-26 | 2016-07-20 | 英特尔公司 | 在节点之间共享存储器和i/o服务 |
US20160103743A1 (en) * | 2014-10-08 | 2016-04-14 | Apple Inc. | Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN106407145A (zh) * | 2015-08-03 | 2017-02-15 | 联想(北京)有限公司 | 接口访问方法、系统及存储卡 |
CN106502806A (zh) * | 2016-10-31 | 2017-03-15 | 华为技术有限公司 | 一种总线协议命令处理装置及相关方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058884A (zh) * | 2019-03-15 | 2019-07-26 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN110058884B (zh) * | 2019-03-15 | 2021-06-01 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN111949317A (zh) * | 2019-05-17 | 2020-11-17 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN111949317B (zh) * | 2019-05-17 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN110265029A (zh) * | 2019-06-21 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 语音芯片和电子设备 |
CN110889500A (zh) * | 2019-12-09 | 2020-03-17 | Oppo广东移动通信有限公司 | 共享的数据存储模块、神经网络处理器和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113468096A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN109117415A (zh) | 数据共享系统及其数据共享方法 | |
CN106164881B (zh) | 异构计算系统中的工作窃取 | |
CN101855622A (zh) | 用于紧密耦合多处理器的共享存储器系统 | |
CN109242094A (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN111160545A (zh) | 人工神经网络处理系统及其数据处理方法 | |
CN1320458C (zh) | 数据处理系统 | |
CN101833441A (zh) | 并行向量处理引擎结构 | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN105393210A (zh) | 用于模拟共享存储器结构的存储器单元 | |
TW201820151A (zh) | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 | |
CN104040506B (zh) | 均衡使用共享的存储器系统的多个请求器的带宽 | |
JP2021507386A (ja) | ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成 | |
CN106250348A (zh) | 一种基于gpu访存特性的异构多核架构缓存管理方法 | |
US20190196887A1 (en) | Processor circuit, information processing apparatus, and operation method of processor circuit | |
US20230090284A1 (en) | Memory processing optimisation | |
KR20220116050A (ko) | 병렬 로드-저장을 이용하는 공유 스크래치패드 메모리 | |
CN115668222A (zh) | 一种神经网络的数据处理方法及装置 | |
CN105718990B (zh) | 细胞阵列计算系统以及其中细胞之间的通信方法 | |
EP4060505A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
US11816025B2 (en) | Hardware acceleration | |
CN114331806A (zh) | 图形处理器及图形处理方法 | |
CN115904681A (zh) | 任务调度方法、装置及相关产品 | |
CN105718380B (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 |