CN113032298A - 用于保序的计算装置、集成电路装置、板卡及保序方法 - Google Patents

用于保序的计算装置、集成电路装置、板卡及保序方法 Download PDF

Info

Publication number
CN113032298A
CN113032298A CN201911351222.7A CN201911351222A CN113032298A CN 113032298 A CN113032298 A CN 113032298A CN 201911351222 A CN201911351222 A CN 201911351222A CN 113032298 A CN113032298 A CN 113032298A
Authority
CN
China
Prior art keywords
computing device
bus
response
request
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.)
Granted
Application number
CN201911351222.7A
Other languages
English (en)
Other versions
CN113032298B (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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201911351222.7A priority Critical patent/CN113032298B/zh
Publication of CN113032298A publication Critical patent/CN113032298A/zh
Application granted granted Critical
Publication of CN113032298B publication Critical patent/CN113032298B/zh
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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor 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)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种用于保序的计算装置、集成电路装置、板卡及保序方法,其中该总线系统可以包括组合处理装置,该组合处理装置还可以包括通用互联接口和其他处理装置。所述总线系统中的计算装置与其他处理装置进行交互,共同完成指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于该计算装置和其他处理装置的数据存储。

Description

用于保序的计算装置、集成电路装置、板卡及保序方法
技术领域
本披露一般地涉及计算机领域。更具体地,本披露涉及用于保序的计算装置、集成电路装置、板卡及保序方法。
背景技术
在人工智能领域中,通过神经网络来进行深度学习是当代显学,其将把海量数据分组分层,再利用类似神经元的运作概念将这些数据进行处理,形成了神经网络,通过层层的深度学习,最终获得结果。这样的计算过程耗费庞大的资源,通常需要多核处理器作为支撑。在这些处理器彼此协作的过程当中,信号的处理顺序显得至为关键。因此,如何获得一种有效保序的技术方案仍是现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本披露的方案提供了一种用于保序的计算装置、集成电路装置、板卡及保序方法。
在一个方面中,本披露提供一种通过总线响应任务请求和直接内存存取请求的计算装置,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述计算装置包括:处理单元,其配置成响应于所述直接内存存取请求,放弃所述总线控制权;以及直接内存存取控制器,其配置成:接手所述总线控制权;验证所述身份识别信息;当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及输出假结果的响应至所述总线。
在另一个方面中,本披露提供一种集成电路装置,其包括上述的总线系统。
在另一个方面中,本披露提供一种板卡,其包括前述的集成电路装置。
在另一个方面中,本披露提供一种通过总线响应任务请求和直接内存存取请求的方法,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述方法包括以下步骤:响应于所述和直接内存存取请求,禁止处理单元拥有所述总线控制权;响应于所述和直接内存存取请求,允许直接内存存取控制器接手所述总线控制权;验证所述身份识别信息;当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及输出假结果的响应至所述总线。
利用本披露的计算装置、集成电路装置、板卡及方法,不论是否应该针对特定任务请求执行任务的计算装置都会发出响应,后端装置可以透过接收所有计算装置的响应来识别并确保响应的顺序,更有效率地保序而无需扩充硬件,例如利用后端装置的缓存调整响应的顺序即可,由此可以降低能耗也减小了集成电路的布置面积。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本披露实施例的计算装置的框架图;
图2是示出根据本披露实施例的总线系统的结构框图;
图3是示出根据本披露实施例中任务请求的数据格式的示意图;
图4是示出根据本披露实施例的集成电路装置的结构图;
图5是示出根据本披露实施例的板卡的框架图;以及
图6是示出根据本披露实施例的保序方法的流程图。
具体实施方式
本披露的技术方案在整体上提供一种用于保序的计算装置、集成电路装置、板卡及方法。不同于现有技术的保序方式,本披露提供了一种高效的技术方案,能有效降低能耗并缩小硬件面积。
在神经网络的深度学习领域中,需要大量的处理器进行运算,在这种多计算装置的系统环境中,当这些计算装置接收到一个任务请求时,每个计算装置都会判断是否应该响应所述任务请求执行任务。如果是,则该计算装置便会执行相应工作,并发送响应给后级装置;如果不是,则一般不执行任何工作也不发送响应。
当多个任务请求通过总线先后发送给多个计算装置时,由于每个计算装置处理这些任务请求所需的时间不一定相同,有可能发生后送达的任务请求先处理完毕,使得后级装置先收到后发送任务请求的响应,造成指令顺序的混乱。本披露所指的保序,便是透过特定的机制确保响应的先后顺序与任务请求的先后顺序一致。
图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用于存储数据和参数。
输入输出单元122包括直接内存存取控制器(direct memory accesscontroller,DMAC)130,配置成执行直接内存存取(DMA)模式。所谓DMA模式,也称为成组数据传送方式,即处理单元102不参于传送任务,省去了取指等操作,能满足高速输出入的要求,有利于计算装置100高效的工作。
进一步来说,当前级计算装置通过总线128向计算装置100发送任务请求时,前级计算装置也会向计算装置100发送DMA请求,直接内存存取控制器130接收到DMA请求后,向处理单元102提出接手总线控制权的总线请求,在当前的总线周期结束后,处理单元102响应该总线请求,让出总线控制权,由直接内存存取控制器130接手总线控制权。在直接内存存取控制器130的管理下,前级计算装置可以和缓存124及寄存器126直接进行数据交换,不需处理单元102的参与。数据交换完毕后,再向处理单元102发送DMA结束信号,交还总线控制权。
处理单元102重新掌握总线控制权后,将存储在缓存124及寄存器126的相关信息提取出来,经取指模块108、译码模块110、指令队列112、依赖关系计算装置114及存储队列模块116处理后,在有序队列中排队等候执行。
在此实施例中,如果需执行该任务请求,处理单元102将相关数据和参数传送给运算单元104进行运算,运算完毕后再通过输出输入单元122反馈一个真结果的响应至总线128。如果不需执行该任务请求(例如该任务请求并非针对计算装置100),则处理单元102不会驱动运算单元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输出任务请求和DMA请求交由第一计算装置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并同时参照图1,在此实施例中,前级计算装置202执行任务完毕后,会通过总线210发送任务请求300和DMA请求,总线210承载并传送任务请求300和DMA请求至第一计算装置206及第二计算装置208。
在此实施例中,任务请求300是针对第一计算装置206所发送的,也就是前级计算装置202要求第一计算装置206而非第二计算装置208执行某项任务,因此储存在任务请求300的身份识别字段306里的身份识别信息是第一计算装置206的处理器编号(第一处理器编号)。
当前级计算装置202发送任务请求300和DMA请求时,第一计算装置206的直接内存存取控制器130接收到DMA请求,向处理单元102提出接手总线控制权的总线请求,处理单元102放弃总线控制权,由直接内存存取控制器130接手总线控制权。
第一计算装置206的直接内存存取控制器130首先验证确认身份识别字段306的身份识别信息与第一处理器编号一致,便响应于任务请求300,由直接内存存取控制器130读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出,再通过总线210反馈一个真结果的响应至后级计算装置204。
响应发送出去后,直接内存存取控制器130交还总线控制权给处理单元102。
由于第二计算装置208也连接至总线210,同样也接收到任务请求300和DMA请求,第二计算装置208的直接内存存取控制器130根据DMA请求,向处理单元102提出接手总线控制权的总线请求,处理单元102放弃总线控制权,由直接内存存取控制器130接手总线控制权。
当第二计算装置208的直接内存存取控制器130验证任务请求300的身份识别字段306时,发现其身份识别信息并非第二计算装置208的处理器编号(第二处理器编号),因此禁止响应于任务请求300,也就是不读取位址字段302里的位址,不将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。但此实施例的第二计算装置208的直接内存存取控制器130同样会通过总线210反馈一个假结果的响应至后级计算装置204,响应发送出去后,直接内存存取控制器130交还总线控制权给处理单元102。
不论是第一计算装置206的真结果或是第二计算装置208的假结果,都是分别透过一个响应发送给后级计算装置204的。本披露实施例的响应包括纠错字段,其数据格式如表一所示,为2比特的信息串,其中:
表一
Figure BDA0002334707970000071
当第一计算装置206的直接内存存取控制器130执行完任务后,纠错字段便会载入“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架构下的第一计算装置206和第二计算装置208。在此实施例中,前级计算装置通过总线发送任务请求及DMA请求,总线承载并传送这些请求至第一计算装置及第二计算装置。不论第一计算装置或是第二计算装置,在接收到任务请求及DMA请求时,均会执行图6所示的流程,以发送一响应至后级计算装置。
在步骤602中,计算装置响应于DMA请求,禁止处理单元拥有总线控制权。
在步骤604中,计算装置响应于DMA请求,允许直接内存存取控制器接手总线控制权。
在步骤606中,直接内存存取控制器判断任务请求中的身份识别字段是否与计算装置的处理器编号一致。如果身份识别字段与处理器编号一致,即验证成功,在步骤608中,直接内存存取控制器响应于任务请求,执行所对应的操作,读取位址字段里的位址,将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。在步骤608中,如果身份识别字段与处理器编号不一致,即验证失败,在步骤610中,直接内存存取控制器禁止响应于任务请求,不执行所对应的操作,也就是不会读取位址字段里的位址,不会将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
在步骤612中,不论直接内存存取控制器是否执行任务请求所对应的操作,均写入操作正确的信息至响应中。更详细来说,本披露实施例的响应包括纠错字段,其数据格式如表一所示。计算装置在纠错字段中载入“0b00”显示正常访问成功的信息。
在步骤614中,直接内存存取控制器输出所述响应至总线。如果在步骤606中,直接内存存取控制器验证身份识别信息与处理器编号一致,且在步骤608中,直接内存存取控制器执行任务请求所对应的操作,即表示计算装置确实完成任务,所述响应显示一个真结果。如果在步骤606中,直接内存存取控制器发现身份识别信息与处理器编号不一致,且在步骤610中,直接内存存取控制器禁止执行任务请求所对应的操作,即表示计算装置未实际完成任务,所述响应显示一个假结果。
在步骤616中,任务请求的任务完成,允许处理单元重新接手总线控制权。
后级计算装置在接收到所有计算装置的响应后,便能确认任务请求的任务顺利完成,使得后级计算装置得以根据这些响应进行排序,避免后任务请求的响应快于前任务请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
尽管上述方法以步骤形式示出利用本披露的计算装置来执行保序程序,但这些步骤顺序并不意味着本方法的步骤必须依所述顺序来执行,而是可以采其他顺序或并行的方式来处理。另外,此处为了描述的简明而没有阐述本披露的其他步骤,但本领域技术人员根据本披露的内容可以理解该方法也可以通过使用计算装置来执行前述结合附图所描述的各种操作。
应当理解,前述实施例虽然仅用两个计算装置为示例,但本披露的计算装置并不限制个数。一般而言,人工智能芯片中会设置有数十个计算装置,该技术领域人士可以透过本实施例的揭露,轻易地推及超过两个计算装置的实施态样。再者,本实施例的“第一”及“第二”等用语是用于区别不同对象,而不是用于描述特定顺序。
在本披露的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个计算装置中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(“ROM”,Read-OnlyMemory)、随机存取存储器(“RAM”,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
依据以下条款可更好地理解前述内容:
条款A1、一种通过总线响应任务请求和直接内存存取请求的计算装置,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述计算装置包括:处理单元,其配置成响应于所述直接内存存取请求,放弃所述总线控制权;以及直接内存存取控制器,其配置成:接手所述总线控制权;验证所述身份识别信息;当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及输出假结果的响应至所述总线。
条款A2、根据条款A1所述的计算装置,其中所述计算装置更包括内存,所述任务请求更包括位址字段,当所述直接内存存取控制器成功验证所述身份识别信息时,所述直接内存存取控制器配置成基于所述位址字段的信息对所述内存的特定位址进行读取或存储。
条款A3、根据条款A2所述的计算装置,其中所述直接内存存取控制器输出真结果的响应至所述总线。
条款A4、根据条款A1-A3的任意一项所述的计算装置,其中所述响应包括纠错字段,所述纠错字段承载有对应于所述任务请求的操作为正确的信息。
条款A5、一种集成电路装置,包括根据条款A1-A4的任意一项所述的总线系统。
条款A6、一种板卡,包括根据条款A5所述的集成电路装置。
条款A7、一种通过总线响应任务请求和直接内存存取请求的方法,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述方法包括以下步骤:响应于所述和直接内存存取请求,禁止处理单元拥有所述总线控制权;响应于所述和直接内存存取请求,允许直接内存存取控制器接手所述总线控制权;验证所述身份识别信息;当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及输出假结果的响应至所述总线。
条款A8、根据条款A7所述的方法,其中所述任务请求更包括位址字段,所述方法更包括以下步骤:当成功验证所述身份识别信息时,基于所述位址字段的信息对内存的特定位址进行读取或存储。
条款A9、根据条款A8所述的方法,更包括以下步骤:输出真结果的响应至所述总线。
条款A10、根据条款A7-A9的任意一项所述的方法,其中所述响应包括纠错字段,所述方法更包括以下步骤:写入操作正确的信息至所述纠错字段。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

Claims (10)

1.一种通过总线响应任务请求和直接内存存取请求的计算装置,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述计算装置包括:
处理单元,其配置成响应于所述直接内存存取请求,放弃所述总线控制权;以及
直接内存存取控制器,其配置成:
接手所述总线控制权;
验证所述身份识别信息;
当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及
输出假结果的响应至所述总线。
2.根据权利要求1所述的计算装置,其中所述计算装置更包括内存,所述任务请求更包括位址字段,当所述直接内存存取控制器成功验证所述身份识别信息时,所述直接内存存取控制器配置成基于所述位址字段的信息对所述内存的特定位址进行读取或存储。
3.根据权利要求2所述的计算装置,其中所述直接内存存取控制器输出真结果的响应至所述总线。
4.根据权利要求1-3的任意一项所述的计算装置,其中所述响应包括纠错字段,所述纠错字段承载有对应于所述任务请求的操作为正确的信息。
5.一种集成电路装置,包括根据权利要求1-4的任意一项所述的总线系统。
6.一种板卡,包括根据权利要求5所述的集成电路装置。
7.一种通过总线响应任务请求和直接内存存取请求的方法,所述任务请求包括身份识别字段,所述身份识别字段载有身份识别信息,所述方法包括以下步骤:
响应于所述和直接内存存取请求,禁止处理单元拥有所述总线控制权;
响应于所述和直接内存存取请求,允许直接内存存取控制器接手所述总线控制权;
验证所述身份识别信息;
当验证所述身份识别信息失败时,不执行所述任务请求所对应的操作;以及
输出假结果的响应至所述总线。
8.根据权利要求7所述的方法,其中所述任务请求更包括位址字段,所述方法更包括以下步骤:
当成功验证所述身份识别信息时,基于所述位址字段的信息对内存的特定位址进行读取或存储。
9.根据权利要求8所述的方法,更包括以下步骤:
输出真结果的响应至所述总线。
10.根据权利要求7-9的任意一项所述的方法,其中所述响应包括纠错字段,所述方法更包括以下步骤:
写入操作正确的信息至所述纠错字段。
CN201911351222.7A 2019-12-24 2019-12-24 用于保序的计算装置、集成电路装置、板卡及保序方法 Active CN113032298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911351222.7A CN113032298B (zh) 2019-12-24 2019-12-24 用于保序的计算装置、集成电路装置、板卡及保序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911351222.7A CN113032298B (zh) 2019-12-24 2019-12-24 用于保序的计算装置、集成电路装置、板卡及保序方法

Publications (2)

Publication Number Publication Date
CN113032298A true CN113032298A (zh) 2021-06-25
CN113032298B CN113032298B (zh) 2023-09-29

Family

ID=76452267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911351222.7A Active CN113032298B (zh) 2019-12-24 2019-12-24 用于保序的计算装置、集成电路装置、板卡及保序方法

Country Status (1)

Country Link
CN (1) CN113032298B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237567A (en) * 1990-10-31 1993-08-17 Control Data Systems, Inc. Processor communication bus
CN1252142A (zh) * 1997-04-14 2000-05-03 国际商业机器公司 多处理器计算机系统中的读取操作
WO2006030650A1 (ja) * 2004-09-16 2006-03-23 Nec Corporation 複数の処理ユニットでリソースを共有する情報処理装置
CN102906726A (zh) * 2011-12-09 2013-01-30 华为技术有限公司 协处理加速方法、装置及系统
US9059919B1 (en) * 2011-03-28 2015-06-16 Symantec Corporation Systems and methods for preserving network settings for use in a pre-boot environment
CN109104876A (zh) * 2017-04-20 2018-12-28 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN110083388A (zh) * 2019-04-19 2019-08-02 上海兆芯集成电路有限公司 用于调度的处理系统及其访存方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237567A (en) * 1990-10-31 1993-08-17 Control Data Systems, Inc. Processor communication bus
CN1252142A (zh) * 1997-04-14 2000-05-03 国际商业机器公司 多处理器计算机系统中的读取操作
WO2006030650A1 (ja) * 2004-09-16 2006-03-23 Nec Corporation 複数の処理ユニットでリソースを共有する情報処理装置
US9059919B1 (en) * 2011-03-28 2015-06-16 Symantec Corporation Systems and methods for preserving network settings for use in a pre-boot environment
CN102906726A (zh) * 2011-12-09 2013-01-30 华为技术有限公司 协处理加速方法、装置及系统
CN109104876A (zh) * 2017-04-20 2018-12-28 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN110083388A (zh) * 2019-04-19 2019-08-02 上海兆芯集成电路有限公司 用于调度的处理系统及其访存方法

Also Published As

Publication number Publication date
CN113032298B (zh) 2023-09-29

Similar Documents

Publication Publication Date Title
CN110096310B (zh) 运算方法、装置、计算机设备和存储介质
CN111258935B (zh) 数据传输装置和方法
CN110119807B (zh) 运算方法、装置、计算机设备和存储介质
CN111258769B (zh) 数据传输装置和方法
CN111813449A (zh) 运算方法、装置及相关产品
CN113032298B (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113033791B (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113032299B (zh) 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN111723920A (zh) 人工智能计算装置及相关产品
CN111353595A (zh) 运算方法、装置及相关产品
CN111290789B (zh) 运算方法、装置、计算机设备和存储介质
CN111400341B (zh) 标量查找指令处理方法、装置及相关产品
CN111399905B (zh) 运算方法、装置及相关产品
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111026440B (zh) 运算方法、装置、计算机设备和存储介质
CN111325331B (zh) 运算方法、装置及相关产品
CN111210011B (zh) 数据处理装置及相关产品
CN112396186B (zh) 执行方法、装置及相关产品
CN111124497B (zh) 运算方法、装置、计算机设备和存储介质
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
CN111339060B (zh) 运算方法、装置、计算机设备和存储介质
CN111078125B (zh) 运算方法、装置及相关产品
CN111813537A (zh) 运算方法、装置及相关产品
CN117667212A (zh) 指令控制装置、方法、处理器、芯片和板卡
CN111813376A (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