CN113033791B - 用于保序的计算装置、集成电路装置、板卡及保序方法 - Google Patents
用于保序的计算装置、集成电路装置、板卡及保序方法 Download PDFInfo
- Publication number
- CN113033791B CN113033791B CN202011183132.4A CN202011183132A CN113033791B CN 113033791 B CN113033791 B CN 113033791B CN 202011183132 A CN202011183132 A CN 202011183132A CN 113033791 B CN113033791 B CN 113033791B
- Authority
- CN
- China
- Prior art keywords
- computing device
- response
- result
- task
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000004321 preservation Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 102
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种用于保序的计算装置、集成电路装置、板卡及保序方法,其中该总线系统可以包括组合处理装置,该组合处理装置还可以包括通用互联接口和其他处理装置。所述总线系统中的计算装置与其他处理装置进行交互,共同完成指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于该计算装置和其他处理装置的数据存储。
Description
技术领域
本披露一般地涉及计算机领域。更具体地,本披露涉及用于保序的计算装置、集成电路装置、板卡及保序方法。
背景技术
在人工智能领域中,通过神经网络来进行深度学习是当代显学,其将把海量数据分组分层,再利用类似神经元的运作概念将这些数据进行处理,形成了神经网络,通过层层的深度学习,最终获得结果。这样的计算过程耗费庞大的资源,通常需要多核处理器作为支撑。在这些处理器彼此协作的过程当中,信号的处理顺序显得至为关键。因此,如何获得一种有效保序的技术方案仍是现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本披露的方案提供了一种用于保序的总线系统、集成电路装置、板卡及保序方法。
在一个方面中,本披露提供一种应用在神经网络的保序方法,包括:接收来自第二计算装置针对第一任务结果的响应;接收来自所述第二计算装置针对第二任务结果的响应;将所述第二计算装置针对所述第二任务结果的响应放在缓存中;接收来自第一计算装置针对所述第一任务结果的响应;以及处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应。
在另一个方面中,本披露提供一种应用在神经网络的后级计算装置,根据第一计算装置及第二计算装置的任务结果而执行任务,所述后级计算装置用以执行:接收来自所述第二计算装置针对第一任务结果的响应;接收来自所述第二计算装置针对第二任务结果的响应;将所述第二计算装置针对所述第二任务结果的响应放在缓存中;接收来自所述第一计算装置针对所述第一任务结果的响应;以及处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应。
在另一个方面中,本披露提供一种集成电路装置,其包括上述的后级计算装置。
在另一个方面中,本披露提供一种板卡,其包括前述的集成电路装置。
利用本披露的计算装置、集成电路装置、板卡及方法,不论是否应该针对特定请求执行任务的计算装置都会发出响应,后端装置可以透过接收所有计算装置的响应来识别并确保响应的顺序,更有效率地保序而无需扩充硬件,例如利用后端装置的缓存调整响应的顺序即可,由此可以降低能耗也减小了集成电路的布置面积。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本披露实施例的计算装置的框架图;
图2是示出根据本披露实施例的总线系统的结构框图;
图3是示出根据本披露实施例中请求的数据格式的示意图;
图4是示出根据本披露实施例的集成电路装置的结构图;
图5是示出根据本披露实施例的板卡的框架图;
图6是示出根据本披露实施例的保序方法的流程图;以及
图7是示出根据本披露另一实施例的保序方法的流程图。
具体实施方式
本披露的技术方案在整体上提供一种用于保序的总线系统、集成电路装置、板卡及方法。不同于现有技术的保序方式,本披露提供了一种高效的技术方案,能有效降低能耗并缩小硬件面积。
在神经网络的深度学习领域中,需要大量的处理器进行运算,在这种多计算装置的系统环境中,当这些计算装置接收到一个请求时,每个计算装置都会判断是否应该响应所述请求执行任务。如果是,则该计算装置便会执行相应工作,并发送响应给后级装置;如果不是,则一般不执行任何工作也不发送响应。
当多个请求通过总线先后发送给多个计算装置时,由于每个计算装置处理这些请求所需的时间不一定相同,有可能发生后送达的请求先处理完毕,使得后级装置先收到后发送请求的响应,造成指令顺序的混乱。本披露所指的保序,便是透过特定的机制确保响应的先后顺序与请求的先后顺序一致。
图1是示出本披露实施例的计算装置的框架图。如图1所示,计算装置100包括:处理单元102、运算单元104及存储单元106。
在此实施例中,处理单元102可以是中央处理器,用于获取数据、参数以及计算指令。处理单元102包括:取指模块108、译码模块110、指令队列112、依赖关系计算装置114及存储队列模块116。其中,取指模块108用以自指令序列中取出待执行的运算指令,译码模块110用以对取指后的运算指令进行译码,指令队列112用于暂存译码后的运算指令,依赖关系计算装置114判断译码后的运算指令与之前尚未执行完成的指令的依赖关系,存储队列模块116为一有序队列,用以存储与之前尚未执行完成的指令有依赖关系的指令,依序输出至运算单元104进行运算。
在此实施例中,运算单元104可以是机器学习单元(machine learning unit),用于执行矩阵运算。在此实施例的架构中,运算单元104包括一个主处理电路118及多个从处理电路120。当需要执行矩阵运算时,存储队列模块116将运算指令发送给主处理电路118,主处理电路118用于执行前序处理,并与多个从处理电路120之间进行数据以及运算指令的传输。从处理电路120用于并行执行中间运算并得到多个中间结果,并将这些中间结果传输给主处理电路118,主处理电路118对多个中间结果执行后续处理得到最终计算结果。
存储单元106包括:输入输出单元122、缓存124及寄存器126。其中,输入输出单元122用以通过总线128读取或写入数据、参数以及计算指令,缓存124用于存储计算指令,寄存器126用于存储数据和参数。
当计算装置100接收到一个请求时,该请求会通过总线128经由输出输入单元122存储在寄存器126中,处理单元102存取该请求,经取指模块108、译码模块110、指令队列112、依赖关系计算装置114及存储队列模块116处理后,在有序队列中排队等候执行。
在此实施例中,如果处理单元102判断需执行该请求,则将相关数据和参数传送给运算单元104进行运算,运算完毕后再通过输出输入单元122反馈一个真结果的响应至总线128。如果处理单元102判断不需执行该请求(例如该请求并非针对计算装置100),则不会驱动运算单元104进行运算,但计算装置100同样会通过输出输入单元122反馈一个假结果的响应至总线128。
图2是示出本披露另一实施例的总线系统的结构框图,特别应用在神经网络的深度学习上。由于深度学习需要占用大量的运算资源,所以建制在多核异构的环境中。总线系统200包括前级计算装置202、后级计算装置204、第一计算装置206、第二计算装置208、总线210及存储器件212,其中前级计算装置202、后级计算装置204、第一计算装置206及第二计算装置208可以是中央处理器(“CPU”)、图形处理器(“GPU”)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理装置如果是人工智能处理器,可以具有图1所示的结构。
存储器件212用于存储数据,可以包括多组存储器214,每一组存储器214与第一计算装置206及第二计算装置208通过总线210连接。每一组存储器214可以是DDR SDRAM(“Double Data Rate SDRAM”,双倍速率同步动态随机存储器)。
前级计算装置202与后级计算装置204可以是神经网络系统的何模块中的单元,前级计算装置202输出请求交由第一计算装置206或第二计算装置208执行任务,所产出的结果传送至后级计算装置204。
前级计算装置202、后级计算装置204、第一计算装置206、第二计算装置208及存储器件212通过总线210串接在一起。总线210是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,总线210可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。在此实施例中,总线210是用来传输数据的。
在多核异构的基础上,第一计算装置206及第二计算装置208是不同类型的处理器,例如一个是中央处理器,一个是人工智能处理器,且每个计算装置都有唯一的处理器编号,用以识别计算装置身份。
在此实施例中,于总线系统200上传递的请求的数据格式如图3所示,请求300包括以下几个字段:位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306。位址字段302为12比特的字段,储存有内存的位址;资料字段304为64比特的字段,储存待处理的资料信息;身份识别字段306为2比特,储存有身份识别信息,即指定处理信息的计算装置的处理器编号。任一个计算装置在接收到请求300时,会判断身份识别字段306里的身份识别信息是否与其处理器编号一致。如是,表示请求300是针对该计算装置所发送的,该计算装置便读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出,具体任务视总线系统200的功能而定。
回到图2,在此实施例中,前级计算装置202执行任务完毕后,会通过总线210发送请求300,总线210承载并传送请求300至第一计算装置206及第二计算装置208。
在此实施例中,请求300是针对第一计算装置206所发送的,也就是前级计算装置202要求第一计算装置206而非第二计算装置208执行某项任务,因此储存在请求300的身份识别字段306里的身份识别信息是第一计算装置206的处理器编号(第一处理器编号)。第一计算装置206首先验证确认身份识别字段306的身份识别信息与第一处理器编号一致,便响应于请求300,读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出,再通过总线210反馈一个真结果的响应至后级计算装置204。
由于第二计算装置208亦连接至总线210,同样也接收到请求300,当第二计算装置208验证请求300的身份识别字段306时,发现其身份识别信息并非第二计算装置208的处理器编号(第二处理器编号),因此禁止响应于请求300,也就是不读取位址字段302里的位址,不将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。但此实施例的第二计算装置208同样会通过总线210反馈一个假结果的响应至后级计算装置204。
不论是第一计算装置206的真结果或是第二计算装置208的假结果,都是分别透过一个响应发送给后级计算装置204的。本披露实施例的响应包括纠错字段,其数据格式如表一所示,为2比特的信息串,其中:
表一
当第一计算装置206执行完任务后,纠错字段便会载入“0b00”以显示正常访问成功的信息,所述响应被发送至总线210,表示第一计算装置206确实完成任务且得到一个真结果。在本实施例中,虽然第二计算装置208未实际执行任务,仍会发送一个响应,其纠错字段亦载入“0b00”显示正常访问成功的信息,所述响应同样被发送至总线210。由于请求300是针对第一计算装置206发送的,就第二计算装置208来说,禁止执行任务才是正确的,因此第二计算装置208的响应的纠错字段同样内含“0b00”的信息,以表示操作正确。但第二计算装置208并未真的执行请求300的任务,所以第二计算装置208发出的响应属于是假结果。
后级计算装置204在接收到所有计算装置的响应后,便能确认请求300的任务顺利完成。在此实施例中,后级计算装置204接收到第一计算装置206的真结果和第二计算装置208的假结果后,能确认请求300的任务在正确的时序下顺利完成,后级计算装置204会根据第一计算装置206的真结果来执行自身的任务,之后才会处理来自第一计算装置206和第二计算装置208执行下一个请求(第二请求)的响应,以避免因第二请求所产生的响应比第一计算装置206的真结果更早到达后级计算装置204,造成时序上的混乱。
进一步来说,现假设一种特殊的情况,前级计算装置202发送第一请求给第一计算装置206,之后发送第二请求给第二计算装置208。第一计算装置206接收到第一请求后便执行相应工作,由于工作较为繁复,因此耗费了较多的时间。在第一计算装置206针对第一请求执行工作的同时,第二计算装置208针对第一请求直接发送一个假结果的响应给后级计算装置204,且接收到第二请求,由于第二请求的工作较为简单,第二计算装置208处理完毕后发送真结果的响应给后级计算装置204。在第二计算装置208发送针对第二请求的真结果的响应给后级计算装置204后,第一计算装置206才完成第一请求的工作,发送真结果的响应给后级计算装置204,之后第一计算装置206处理第二请求,针对第二请求发送一个假结果的响应给后级计算装置204。
对后级计算装置204来说,其收到响应的顺序是:第二计算装置208针对第一请求的假结果→第二计算装置208针对第二请求的真结果→第一计算装置206针对第一请求的真结果→第一计算装置206针对第二请求的假结果。当后级计算装置204收到第二计算装置208针对第一请求的假结果时,后级计算装置204会得知第一请求需优先处理,并预期收到第一计算装置206针对第一请求的真结果,然而稍后接收到的是第二计算装置208针对第二请求的真结果,后级计算装置204会将第二计算装置208针对第二请求的真结果放在缓存中,暂不处理。待后级计算装置204接收到第一计算装置206针对第一请求的真结果时,便基于第二计算装置208针对第一请求的假结果和第一计算装置206针对第一请求的真结果,优先处理。当再接收到第一计算装置206针对第二请求的假结果时,才会基于第二计算装置208针对第二请求的真结果和第一计算装置206针对第二请求的假结果,进行处理。
基于本披露的技术方案,总线上的各个计算装置在处理请求时,即便不是针对自己的,也会发送假结果,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
在图2的实施例中,总线系统200包括了前级计算装置202及后级计算装置204,但在其他实施例中,总线系统200可以仅包括第一计算装置206、第二计算装置208、总线210及存储器件212,前级计算装置202属于总线系统200的前级装置,而后级计算装置204属于总线系统200的后级装置,这样的配置不影响本披露技术方案的实施。
图4是示出根据本披露实施例的保序集成电路装置400的结构图。如图所示,集成电路装置400包括计算装置群402,计算装置群402可以包括多个图1的计算装置100,这些计算装置的交互工作方式同图2的第一计算装置206及第二计算装置208所示例的,不再赘述。另外,集成电路装置400还包括通用互联接口404和其他处理装置406。
在此实施例中,其他处理装置406可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。在特定的情况下,其他处理装置406可以作为计算装置群402(其可以具体化为人工智能运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运,完成对机器学习运算装置的开启、停止等的基本控制。
根据此实施例的技术方案,通用互联接口404可以用于在计算装置群402与其他处理装置406间传输数据和控制指令。例如,计算装置群402可以经由通用互联接口404从其他处理装置406中获取所需的输入数据,写入计算装置群402片上的存储装置。进一步,计算装置群402可以经由通用互联接口404从其他处理装置406中获取控制指令,写入计算装置群402片上的控制缓存。替代地或可选地,通用互联接口404也可以读取计算装置群402的存储模块中的数据并传输给其他处理装置406。
可选地,集成电路装置400还可以包括存储装置408,其可以分别与计算装置群402和其他处理装置406连接。在一个或多个实施例中,存储装置408可以用于保存计算装置群402和其他处理装置406的数据,尤其适用于所需要运算的数据在计算装置群402或其他处理装置406的内部存储中无法全部保存的数据。
根据应用场景的不同,本披露的集成电路装置400可以作为手机、机器人、无人机、视频采集、视频采集设备等设备的SOC片上系统,从而有效地降低控制部分的核心面积,提高处理速度并降低整体的功耗。在此情况下,集成电路装置400的通用互联接口404与设备的某些部件相连接。此处所指的某些部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。
在一些实施例里,本披露还公开了一种芯片或集成电路芯片,其包括了集成电路装置400。在另一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图5,其提供了前述的示例性板卡500,板卡500除了包括上述芯片502以外,还可以包括其他的配套部件,该配套部件可以包括但不限于:存储器件504、接口装置506和控制器件508。
存储器件504与芯片封装结构内的芯片502通过总线514连接,用于存储数据。存储器件504可以包括多组存储器510。每一组存储器510与芯片502通过总线514连接。每一组存储器510可以是DDR SDRAM(“Double Data Rate SDRAM”,双倍速率同步动态随机存储器)。
不同于图5所示,在一个实施例中,存储器件504可以包括4组存储器510。每一组存储器510可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片502内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中的64比特用于传输数据,8比特用于ECC校验。
在一个实施例中,每一组存储器510可以包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在芯片502中设置控制DDR的控制器,用于对每个存储器510的数据传输与数据存储的控制。
接口装置506与所述芯片封装结构内的芯片502电连接。接口装置506用于实现芯片502与外部设备512(例如服务器或计算机)之间的数据传输。在一个实施例中,接口装置506可以为标准PCIE接口。例如,待处理的数据由服务器通过标准PCIE接口传递至芯片502,实现数据转移。在另一个实施例中,接口装置506还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,能够实现转接功能即可。另外,芯片502的计算结果仍由接口装置506传送回外部设备512。
控制器件508与芯片502电连接,以便对芯片502的状态进行监控。具体地,芯片502与控制器件508可以通过SPI接口电连接。控制器件508可以包括单片机(“MCU”,MicroController Unit)。芯片502可以包括多个处理芯片、多个处理核或多个处理电路,并且可以带动多个负载。由此,芯片502可以处于多负载和轻负载等不同的工作状态。通过控制器件508可以实现对芯片502中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡500。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
图6是示出本披露实施例处理请求的保序方法的流程图,特别应用在神经网络的深度学习上。如前所述,深度学习需要占用大量的运算资源,所以经常配置在多核异构的环境中,以此实施例为例,这样的环境可以是如图2所示的架构。
在步骤602中,第一计算装置及第二计算装置接收来自前级计算装置的请求,该请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
在步骤604中,第一计算装置响应于请求,验证该请求是发送给第一计算装置的,因此通过总线反馈真结果。
在步骤606中,第二计算装置响应于请求,验证该请求并不是发送给第二计算装置的,因此通过总线反馈假结果。
后级计算装置接收来自第一计算装置的真结果的响应,及来自第二计算装置的假结果的响应,可以避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
图7是示出本披露另一实施例处理请求的保序方法的流程图,同样地适用在图2架构下的第一计算装置206和第二计算装置208。在此实施例中,前级计算装置通过总线发送请求,总线承载并传送请求至第一计算装置及第二计算装置。不论第一计算装置或是第二计算装置,在接收到请求时,均会执行图7所示的流程,以发送一响应至后级计算装置。
在步骤702中,计算装置接收来自前级计算装置的请求,该请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
在步骤704中,计算装置判断请求中的身份识别字段是否与计算装置的处理器编号一致。如果身份识别字段与处理器编号一致,在步骤706中,计算装置响应于请求,执行所对应的操作,读取位址字段里的位址,将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。如果身份识别字段与处理器编号不一致,在步骤708中,计算装置禁止响应于请求,不执行所对应的操作,也就是不会读取位址字段里的位址,不会将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
在步骤710中,不论计算装置是否执行请求所对应的操作,均写入操作正确的信息至响应中。更详细来说,本披露实施例的响应包括纠错字段,其数据格式如表一所示。计算装置在纠错字段中载入“0b00”显示正常访问成功的信息。
在步骤712中,计算装置输出所述响应至总线。如果在步骤704中,计算装置验证身份识别信息与处理器编号一致,且在步骤706中,计算装置执行请求所对应的操作,即表示计算装置确实完成任务,所述响应显示一个真结果。如果在步骤704中,计算装置发现身份识别信息与处理器编号不一致,且在步骤708中,计算装置禁止执行请求所对应的操作,即表示计算装置未实际完成任务,所述响应显示一个假结果。
后级计算装置在接收到所有计算装置的响应后,便能确认请求的任务顺利完成,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
尽管上述方法以步骤形式示出利用本披露的计算装置来执行保序程序,但这些步骤顺序并不意味着本方法的步骤必须依所述顺序来执行,而是可以采其他顺序或并行的方式来处理。另外,此处为了描述的简明而没有阐述本披露的其他步骤,但本领域技术人员根据本披露的内容可以理解该方法也可以通过使用计算装置来执行前述结合附图所描述的各种操作。
应当理解,前述实施例虽然仅用两个计算装置为示例,但本披露的计算装置并不限制个数。一般而言,人工智能芯片中会设置有数十个计算装置,该技术领域人士可以透过本实施例的揭露,轻易地推及超过两个计算装置的实施态样。再者,本实施例的“第一”及“第二”等用语是用于区别不同对象,而不是用于描述特定顺序。
在本披露的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个计算装置中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(“ROM”,Read-OnlyMemory)、随机存取存储器(“RAM”,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
依据以下条款可更好地理解前述内容:
条款A1、一种应用在神经网络的保序方法,包括:接收来自第二计算装置针对第一任务结果的响应;接收来自所述第二计算装置针对第二任务结果的响应;将所述第二计算装置针对所述第二任务结果的响应放在缓存中;接收来自第一计算装置针对所述第一任务结果的响应;以及处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应。
条款A2、根据条款A1所述的保序方法,其中所述第一计算装置针对所述第一任务结果为真结果,所述第二计算装置针对所述第一任务结果为假结果,所述处理步骤根据所述真结果执行任务。
条款A3、根据条款A2所述的保序方法,还包括:接收来自所述第一计算装置针对所述第二任务结果的响应;以及在根据所述真结果执行任务后,处理来自所述第一计算装置针对所述第二任务结果的响应,以及来自所述第二计算装置针对所述第二任务结果的响应。
条款A4、根据条款A1所述的保序方法,其中所述响应包括纠错字段,所述纠错字段载有操作正确的信息。
条款A5、一种应用在神经网络的后级计算装置,根据第一计算装置及第二计算装置的任务结果而执行任务,所述后级计算装置用以执行:接收来自所述第二计算装置针对第一任务结果的响应;接收来自所述第二计算装置针对第二任务结果的响应;将所述第二计算装置针对所述第二任务结果的响应放在缓存中;接收来自所述第一计算装置针对所述第一任务结果的响应;以及处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应。
条款A6、根据条款A5所述的后级计算装置,其中所述第一计算装置针对所述第一任务结果为真结果,所述第二计算装置针对所述第一任务结果为假结果,所述后级计算装置根据所述真结果执行任务。
条款A7、根据条款A6所述的后级计算装置,还用以执行:接收来自所述第一计算装置针对所述第二任务结果的响应;以及在根据所述真结果执行任务后,处理来自所述第一计算装置针对所述第二任务结果的响应,以及来自所述第二计算装置针对所述第二任务结果的响应。
条款A8、根据条款A5所述的后级计算装置,其中所述响应包括纠错字段,所述纠错字段载有操作正确的信息。
条款A9、一种集成电路装置,包括根据条款A5-8的任意一项所述的后级计算装置。
条款A10、一种板卡,包括根据条款A9所述的集成电路装置。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (8)
1.一种应用在神经网络的保序方法,包括:
接收来自第二计算装置针对第一任务结果的响应;
接收来自所述第二计算装置针对第二任务结果的响应;
将所述第二计算装置针对所述第二任务结果的响应放在缓存中;
接收来自第一计算装置针对所述第一任务结果的响应;以及
处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应;
其中所述第一计算装置针对所述第一任务结果为真结果,所述第二计算装置针对所述第一任务结果为假结果,所述处理的步骤根据所述真结果执行任务。
2.根据权利要求1所述的保序方法,还包括:
接收来自所述第一计算装置针对所述第二任务结果的响应;以及
在根据所述真结果执行任务后,处理来自所述第一计算装置针对所述第二任务结果的响应,以及来自所述第二计算装置针对所述第二任务结果的响应。
3.根据权利要求1所述的保序方法,其中所述响应包括纠错字段,所述纠错字段载有操作正确的信息。
4.一种应用在神经网络的后级计算装置,根据第一计算装置及第二计算装置的任务结果而执行任务,所述后级计算装置用以执行:
接收来自所述第二计算装置针对第一任务结果的响应;
接收来自所述第二计算装置针对第二任务结果的响应;
将所述第二计算装置针对所述第二任务结果的响应放在缓存中;
接收来自所述第一计算装置针对所述第一任务结果的响应;以及
处理来自所述第一计算装置针对所述第一任务结果的响应,以及来自所述第二计算装置针对所述第一任务结果的响应;
其中所述第一计算装置针对所述第一任务结果为真结果,所述第二计算装置针对所述第一任务结果为假结果,所述后级计算装置根据所述真结果执行任务。
5.根据权利要求4所述的后级计算装置,还用以执行:
接收来自所述第一计算装置针对所述第二任务结果的响应;以及
在根据所述真结果执行任务后,处理来自所述第一计算装置针对所述第二任务结果的响应,以及来自所述第二计算装置针对所述第二任务结果的响应。
6.根据权利要求4所述的后级计算装置,其中所述响应包括纠错字段,所述纠错字段载有操作正确的信息。
7.一种集成电路装置,包括根据权利要求4-6的任意一项所述的后级计算装置。
8.一种板卡,包括根据权利要求7所述的集成电路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183132.4A CN113033791B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183132.4A CN113033791B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
CN201911349821.5A CN113033789B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的总线系统、集成电路装置、板卡及保序方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911349821.5A Division CN113033789B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的总线系统、集成电路装置、板卡及保序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113033791A CN113033791A (zh) | 2021-06-25 |
CN113033791B true CN113033791B (zh) | 2024-04-05 |
Family
ID=76452168
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011183132.4A Active CN113033791B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
CN201911349821.5A Active CN113033789B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的总线系统、集成电路装置、板卡及保序方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911349821.5A Active CN113033789B (zh) | 2019-12-24 | 2019-12-24 | 用于保序的总线系统、集成电路装置、板卡及保序方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113033791B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3964054A (en) * | 1975-06-23 | 1976-06-15 | International Business Machines Corporation | Hierarchy response priority adjustment mechanism |
CN103838570A (zh) * | 2012-11-27 | 2014-06-04 | 佳能株式会社 | 信息处理装置及其控制方法、以及电子设备 |
CN108595370A (zh) * | 2018-03-30 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种多核处理器及报文处理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237567A (en) * | 1990-10-31 | 1993-08-17 | Control Data Systems, Inc. | Processor communication bus |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
US11467856B2 (en) * | 2002-12-12 | 2022-10-11 | Flexiworld Technologies, Inc. | Portable USB device for internet access service |
CN101840328B (zh) * | 2010-04-15 | 2014-05-07 | 华为技术有限公司 | 一种数据处理方法及系统以及相关设备 |
JP5533538B2 (ja) * | 2010-10-12 | 2014-06-25 | 富士通株式会社 | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
DE102012101881B4 (de) * | 2012-03-06 | 2013-11-21 | Softing Ag | Verfahren zur Bestimmung der Topologie eines seriellen asynchronen Datenbusses |
US20170371660A1 (en) * | 2016-06-23 | 2017-12-28 | Microsoft Technology Licensing, Llc | Load-store queue for multiple processor cores |
CN107277128B (zh) * | 2017-06-15 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种分布式存储协议中请求处理保序的方法及装置 |
US20190303170A1 (en) * | 2018-03-30 | 2019-10-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Systems and methods for initializing computing device bus lanes during boot |
CN110096309B (zh) * | 2018-11-14 | 2020-04-14 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110223075B (zh) * | 2019-05-22 | 2022-11-15 | 深圳壹账通智能科技有限公司 | 身份认证方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-24 CN CN202011183132.4A patent/CN113033791B/zh active Active
- 2019-12-24 CN CN201911349821.5A patent/CN113033789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3964054A (en) * | 1975-06-23 | 1976-06-15 | International Business Machines Corporation | Hierarchy response priority adjustment mechanism |
CN103838570A (zh) * | 2012-11-27 | 2014-06-04 | 佳能株式会社 | 信息处理装置及其控制方法、以及电子设备 |
CN108595370A (zh) * | 2018-03-30 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种多核处理器及报文处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113033791A (zh) | 2021-06-25 |
CN113033789A (zh) | 2021-06-25 |
CN113033789B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258935B (zh) | 数据传输装置和方法 | |
CN111209243B (zh) | 数据处理装置、方法及相关产品 | |
CN111258769B (zh) | 数据传输装置和方法 | |
CN113033791B (zh) | 用于保序的计算装置、集成电路装置、板卡及保序方法 | |
CN111813449A (zh) | 运算方法、装置及相关产品 | |
CN113032298B (zh) | 用于保序的计算装置、集成电路装置、板卡及保序方法 | |
CN113032299B (zh) | 用于处理请求的总线系统、集成电路装置、板卡及保序方法 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353595A (zh) | 运算方法、装置及相关产品 | |
CN111325331B (zh) | 运算方法、装置及相关产品 | |
CN111210011B (zh) | 数据处理装置及相关产品 | |
CN111290789B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111723921B (zh) | 人工智能计算装置及相关产品 | |
CN111399905B (zh) | 运算方法、装置及相关产品 | |
CN111400341B (zh) | 标量查找指令处理方法、装置及相关产品 | |
CN111078283B (zh) | 运算方法、装置及相关产品 | |
CN111339060B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113849226A (zh) | 一种指令提取装置、处理器、板卡和指令提取方法 | |
CN111078125B (zh) | 运算方法、装置及相关产品 | |
CN111260045B (zh) | 译码器和原子指令解析方法 | |
CN111813376A (zh) | 运算方法、装置及相关产品 | |
CN117667212A (zh) | 指令控制装置、方法、处理器、芯片和板卡 | |
CN111813448A (zh) | 运算方法、装置及相关产品 | |
CN111813537A (zh) | 运算方法、装置及相关产品 | |
CN111813450A (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 |