用于处理请求的总线系统、集成电路装置、板卡及保序方法与流程

专利2022-05-09  36



1.本披露一般地涉及计算机领域。更具体地,本披露涉及用于混合型系统中处理请求的总线系统、集成电路装置、板卡及保序方法。


背景技术:

2.在人工智能领域中,通过神经网络来进行深度学习是当代显学,其将把海量数据分组分层,再利用类似神经元的运作概念将这些数据进行处理,形成了神经网络,通过层层的深度学习,最终获得结果。这样的计算过程耗费庞大的资源,通常需要多核处理器作为支撑,且系统会变得十分复杂。这样的系统可能属于混合型,处理器在彼此协作的过程当中,信号的处理顺序显得至为关键。因此,如何获得一种用于混合型系统中处理请求的技术方案仍是现有技术中需要解决的问题。


技术实现要素:

3.为了至少部分地解决背景技术中提到的技术问题,本披露的方案提供了一种用于混合型系统中处理请求的总线系统、集成电路装置、板卡及保序方法。
4.在一个方面中,本披露提供一种用于处理请求的总线系统,包括:总线、第一子系统及第二子系统。第一子系统为保序系统,配置成接收第一请求并且包括:第一处理单元,其配置成响应于所述第一请求,通过所述总线反馈真结果;以及第二处理单元,其配置成响应于所述第一请求,通过所述总线反馈假结果。第二子系统为高效系统,配置成接收第二请求并且包括:第三处理单元,其配置成响应于所述第二请求,通过所述总线反馈真结果;以及第四处理单元,其配置成响应于所述第二请求,禁止通过所述总线进行反馈。
5.在另一个方面中,本披露提供一种集成电路装置,其包括上述的总线系统。
6.在另一个方面中,本披露提供一种板卡,其包括前述的集成电路装置。
7.在另一个方面中,本披露提供一种用于在多系统中处理请求的方法,包括以下步骤:第一子系统接收第一请求,所述第一子系统为保序系统,包括第一处理单元及第二处理单元;所述第一处理单元响应于所述第一请求,通过总线反馈真结果;所述第二处理单元响应于所述第一请求,通过所述总线反馈假结果;第二子系统接收第二请求,所述第二子系统为高效系统,包括第三处理单元及第四处理单元;所述第三处理单元响应于所述第二请求,通过所述总线反馈真结果;以及所述第四处理单元响应于所述第二请求,禁止通过所述总线进行反馈。
8.利用本披露的总线系统、集成电路装置、板卡及方法,在混合型的总线系统中,如果是保序的子系统,不论是否应该针对特定请求执行任务的计算装置都会发出响应,后端装置可以透过接收所有计算装置的响应来识别并确保响应的顺序,而不需要增加硬件需求。如果是高效的子系统,则不针对特定请求执行任务的计算装置不发出响应,借以提高工作效率。整体来说可以降低能耗也减小了集成电路的布置面积。
附图说明
9.通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
10.图1是示出根据本披露实施例的计算装置的框架图;
11.图2是示出根据本披露实施例的总线系统的结构框图;
12.图3是示出根据本披露实施例中请求的数据格式的示意图;
13.图4是示出根据本披露另一实施例的总线系统的结构框图;
14.图5是示出根据本披露实施例的集成电路装置的结构图;
15.图6是示出根据本披露实施例的板卡的框架图;
16.图7是示出根据本披露实施例的保序方法的流程图;
17.图8是示出根据本披露实施例用于混合型系统中处理请求的方法的流程图;
18.图9是示出根据本披露另一实施例用于保序子系统中处理请求的方法的流程图;以及
19.图10是示出根据本披露另一实施例用于高效子系统中处理请求的方法的流程图。
具体实施方式
20.本披露的技术方案在整体上提供一种用于混合型系统中的总线系统、集成电路装置、板卡及方法。不同于现有技术的方式,本披露提供了一种高效的技术方案,能有效降低能耗并缩小硬件面积。
21.当多个请求通过总线先后发送给多个计算装置时,由于每个计算装置处理这些请求所需的时间不一定相同,有可能发生后送达的请求先处理完毕,使得后级装置先收到后发送请求的响应,造成指令顺序的混乱。本披露所指的保序,便是透过特定的机制确保响应的先后顺序与请求的先后顺序一致。
22.图1是示出本披露实施例的计算装置的框架图。如图1所示,计算装置100包括:处理单元102、运算单元104及存储单元106。
23.在此实施例中,处理单元102可以是中央处理器,用于获取数据、参数以及计算指令。处理单元102包括:取指模块108、译码模块110、指令队列112、依赖关系计算装置114及存储队列模块116。其中,取指模块108用以自指令序列中取出待执行的运算指令,译码模块110用以对取指后的运算指令进行译码,指令队列112用于暂存译码后的运算指令,依赖关系计算装置114判断译码后的运算指令与之前尚未执行完成的指令的依赖关系,存储队列模块116为一有序队列,用以存储与之前尚未执行完成的指令有依赖关系的指令,依序输出至运算单元104进行运算。
24.在此实施例中,运算单元104可以是机器学习单元(machine learning unit),用于执行矩阵运算。在此实施例的架构中,运算单元104包括一个主处理电路118及多个从处理电路120。当需要执行矩阵运算时,存储队列模块116将运算指令发送给主处理电路118,主处理电路118用于执行前序处理,并与多个从处理电路120之间进行数据以及运算指令的传输。从处理电路120用于并行执行中间运算并得到多个中间结果,并将这些中间结果传输给主处理电路118,主处理电路118对多个中间结果执行后续处理得到最终计算结果。
25.存储单元106包括:输入输出单元122、缓存124及寄存器126。其中,输入输出单元122用以通过总线128读取或写入数据、参数以及计算指令,缓存124用于存储计算指令,寄存器126用于存储数据和参数。
26.当计算装置100接收到一个请求时,该请求会通过总线128经由输出输入单元122存储在寄存器126中,处理单元102存取该请求,经取指模块108、译码模块110、指令队列112、依赖关系计算装置114及存储队列模块116处理后,在有序队列中排队等候执行。
27.在此实施例中,如果处理单元102判断需执行该请求,则将相关数据和参数传送给运算单元104进行运算,运算完毕后再通过输出输入单元122反馈一个真结果的响应至总线128。如果处理单元102判断不需执行该请求(例如该请求并非针对计算装置100),则不会驱动运算单元104进行运算,但计算装置100同样会通过输出输入单元122反馈一个假结果的响应至总线128。
28.图2是示出本披露另一实施例的总线系统的结构框图,特别应用在神经网络的深度学习上。由于深度学习需要占用大量的运算资源,所以建制在多核异构的环境中。总线系统200包括前级计算装置202、后级计算装置204、第一计算装置206、第二计算装置208、总线210及存储器件212,其中前级计算装置202、后级计算装置204、第一计算装置206及第二计算装置208可以是中央处理器(“cpu”)、图形处理器(“gpu”)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理装置如果是人工智能处理器,可以具有图1所示的结构。
29.存储器件212用于存储数据,可以包括多组存储器214,每一组存储器214与第一计算装置206及第二计算装置208通过总线210连接。每一组存储器214可以是ddr sdram(“double data rate sdram”,双倍速率同步动态随机存储器)。
30.前级计算装置202与后级计算装置204可以是神经网络系统的何模块中的单元,前级计算装置202输出请求交由第一计算装置206或第二计算装置208执行任务,所产出的结果传送至后级计算装置204。
31.前级计算装置202、后级计算装置204、第一计算装置206、第二计算装置208及存储器件212通过总线210串接在一起。总线210是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,总线210可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。在此实施例中,总线210是用来传输数据的。
32.在多核异构的基础上,第一计算装置206及第二计算装置208是不同类型的处理器,例如一个是中央处理器,一个是人工智能处理器,且每个计算装置都有唯一的处理器编号,用以识别计算装置身份。
33.在此实施例中,于总线系统200上传递的请求的数据格式如图3所示,请求300包括以下几个字段:位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306。位址字段302为12比特的字段,储存有内存的位址;资料字段304为64比特的字段,储存待处理的资料信息;身份识别字段306为2比特,储存有身份识别信息,即指定处理信息的计算装置的处理器编号。任一个计算装置在接收到请求300时,会判断身份识别字段306里的身份识别信息是否与其处理器编号一致。如是,表示请求300是针对该计算装置所发送的,该计算装置便读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址
中,或是从内存相对应的位址中将资料读出,具体任务视总线系统200的功能而定。
34.回到图2,在此实施例中,总线系统200是保序系统,前级计算装置202执行任务完毕后,会通过总线210发送请求300,总线210承载并传送请求300至第一计算装置206及第二计算装置208。
35.在此实施例中,请求300是针对第一计算装置206所发送的,也就是前级计算装置202要求第一计算装置206而非第二计算装置208执行某项任务,因此储存在请求300的身份识别字段306里的身份识别信息是第一计算装置206的处理器编号(第一处理器编号)。第一计算装置206首先验证确认身份识别字段306的身份识别信息与第一处理器编号一致,便响应于请求300,读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出,再通过总线210反馈一个真结果的响应至后级计算装置204。
36.由于第二计算装置208亦连接至总线210,同样也接收到请求300,当第二计算装置208验证请求300的身份识别字段306时,发现其身份识别信息并非第二计算装置208的处理器编号(第二处理器编号),因此禁止响应于请求300,也就是不读取位址字段302里的位址,不将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。但此实施例的第二计算装置208同样会通过总线210反馈一个假结果的响应至后级计算装置204。
37.不论是第一计算装置206的真结果或是第二计算装置208的假结果,都是分别透过一个响应发送给后级计算装置204的。本披露实施例的响应包括纠错字段,其数据格式如表一所示,为2比特的信息串,其中:
38.表一
[0039][0040]
当第一计算装置206执行完任务后,第一纠错字段便会载入“0b00”以显示正常访问成功的信息,所述响应被发送至总线210,表示第一计算装置206确实完成任务且得到一个真结果。在本实施例中,虽然第二计算装置208未实际执行任务,仍会发送一个响应,其第二纠错字段亦载入“0b00”显示正常访问成功的信息,所述响应同样被发送至总线210。由于请求300是针对第一计算装置206发送的,就第二计算装置208来说,禁止执行任务才是正确的,因此第二计算装置208的响应的第二纠错字段同样内含“0b00”的信息,以表示操作正确。但第二计算装置208并未真的执行请求300的任务,所以第二计算装置208发出的响应属于是假结果。
[0041]
后级计算装置204在接收到所有计算装置的响应后,便能确认请求300的任务顺利完成。在此实施例中,后级计算装置204接收到第一计算装置206的真结果和第二计算装置208的假结果后,能确认请求300的任务在正确的时序下顺利完成,后级计算装置204会根据
第一计算装置206的真结果来执行自身的任务,之后才会处理来自第一计算装置206和第二计算装置208执行下一个请求的响应,以避免因下一个请求所产生的响应比第一计算装置206的真结果更早到达后级计算装置204,造成时序上的混乱。
[0042]
进一步来说,现假设一种特殊的情况,前级计算装置202发送第一请求给第一计算装置206,之后发送第二请求给第二计算装置208。第一计算装置206接收到第一请求后便执行相应工作,由于工作较为繁复,因此耗费了较多的时间。在第一计算装置206针对第一请求执行工作的同时,第二计算装置208针对第一请求直接发送一个假结果的响应给后级计算装置204,且接收到第二请求,由于第二请求的工作较为简单,第二计算装置208处理完毕后发送真结果的响应给后级计算装置204。在第二计算装置208发送针对第二请求的真结果的响应给后级计算装置204后,第一计算装置206才完成第一请求的工作,发送真结果的响应给后级计算装置204,之后第一计算装置206处理第二请求,针对第二请求发送一个假结果的响应给后级计算装置204。
[0043]
对后级计算装置204来说,其收到响应的顺序是:第二计算装置208针对第一请求的假结果

第二计算装置208针对第二请求的真结果

第一计算装置206针对第一请求的真结果

第一计算装置206针对第二请求的假结果。当后级计算装置204收到第二计算装置208针对第一请求的假结果时,后级计算装置204会得知第一请求需优先处理,并预期收到第一计算装置206针对第一请求的真结果,然而稍后接收到的是第二计算装置208针对第二请求的真结果,后级计算装置204会将第二计算装置208针对第二请求的真结果放在缓存中,暂不处理。待后级计算装置204接收到第一计算装置206针对第一请求的真结果时,便基于第二计算装置208针对第一请求的假结果和第一计算装置206针对第一请求的真结果,优先处理。当再接收到第一计算装置206针对第二请求的假结果时,才会基于第二计算装置208针对第二请求的真结果和第一计算装置206针对第二请求的假结果,进行处理。
[0044]
基于本披露的技术方案,保序总线系统上的各个计算装置在处理请求时,即便不是针对自己的,也会发送假结果,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
[0045]
图4是示出本披露另一实施例的总线系统的结构框图,总线系统400包括两个子系统:第一子系统406及第二子系统408,这两个子系统通过总线410与前级计算装置402和后级计算装置404进行信号传输。更进一步来说,前级计算装置402发送第一请求给第一子系统406,第一子系统406处理完毕后,发送响应给后级计算装置404,后级计算装置404处理完毕后,发送第二请求给第二子系统408,第二子系统408处理完毕后再发送响应出去。
[0046]
在此实施例中,于总线系统400上传递的第一请求和第二请求的数据格式同样如图3所示,不再赘述。任一个计算装置在接收到请求300时,会判断身份识别字段306里的身份识别信息是否与其处理器编号一致。如是,表示请求300是针对该计算装置所发送的,该计算装置便读取位址字段302里的位址,将资料字段304里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
[0047]
总线系统400是一种混合型系统,在此实施例中,第一子系统406为保序系统,即响应的顺序是关键且重要的,而第二子系统408为高效系统,响应的顺序并不重要的,重要的是请求被处理的速度,第二子系统408可以接受后发出的请求先被执行完毕。
[0048]
第一子系统406包括第一计算装置412及第二计算装置414。前级计算装置402、第
一计算装置412、第二计算装置414及后级计算装置404的工作方式与图2的实施例无异,故不赘述。
[0049]
在保序的第一子系统406中,不论是第一计算装置412的真结果或是第二计算装置414的假结果,都是分别透过一个响应发送给后级计算装置404的。第一计算装置412与第二计算装置414基于第一请求,会在如表一所示的响应的纠错字段载入“0b00”以显示正常访问成功的信息,表示第一计算装置412确实完成任务且发出真结果的响应,而第二计算装置414并未真的执行第一请求的任务且发出假结果的响应。
[0050]
第二子系统408包括第三计算装置416及第四计算装置418,这两个计算装置可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理装置如果是人工智能处理器,可以具有图1所示的结构。
[0051]
在此实施例中,后级计算装置404执行任务完毕后,会通过总线410发送第二请求,总线410承载并传送第二请求至第二子系统408。
[0052]
第二请求是针对第三计算装置416所发送的,因此储存在第二请求的身份识别字段里的身份识别信息是第三计算装置416的处理器编号(第三处理器编号)。第三计算装置416首先判断并确认身份识别字段的身份识别信息与第三处理器编号一致,便响应于第二请求,读取位址字段里的位址,将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出,再通过总线410反馈一个真结果的响应出去。
[0053]
第四计算装置418同样也接收到第二请求,当第四计算装置418验证第二请求的身份识别字段时,发现其身份识别信息并非第四计算装置418的处理器编号(第四处理器编号),因此禁止响应于第二请求,也就是不读取位址字段里的位址,不将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。由于第二子系统408为高效系统,并非保序系统,因此第四计算装置418不会通过总线410反馈一个假结果的响应,使得下级装置能判断响应的先后顺序,第四计算装置418直接禁止通过总线410进行反馈。
[0054]
在高效的第二子系统408中,只要是进行响应的计算装置,在此实施例中为第三计算装置416,都会在如表一所示的响应的纠错字段载入“0b00”以显示正常访问成功的信息,表示顺利完成任务且发出真结果的响应。
[0055]
基于本披露的技术方案,保序系统上的各个计算装置在处理请求时,即便不是针对自己的,也会发送假结果,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。而高效无需保序系统上的各个计算装置在处理请求时,只有基于针对自己的请求才会发送真结果的响应,至于非针对自己的请求,则不反馈响应,以此来提高处理速度。
[0056]
图5是示出根据本披露实施例的集成电路装置500的结构图。如图所示,集成电路装置500包括总线系统502,总线系统502可以是图2或图4的总线系统200或400。另外,集成电路装置500还包括通用互联接口504和其他处理装置506。
[0057]
在此实施例中,其他处理装置506可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。在特定的情况下,其他处理装置506可以作为总线系统502与外部数据和控制的接口,执行包括但不限于数据搬运,完成对机器学习运算装置的开启、停止等的基本控制。
[0058]
根据此实施例的技术方案,通用互联接口504可以用于在总线系统502与其他处理装置506间传输数据和控制指令。例如,总线系统502可以经由通用互联接口504从其他处理装置506中获取所需的输入数据,写入总线系统502片上的存储装置。进一步,总线系统502可以经由通用互联接口504从其他处理装置506中获取控制指令,写入总线系统502片上的控制缓存。替代地或可选地,通用互联接口504也可以读取总线系统502的存储模块中的数据并传输给其他处理装置506。
[0059]
可选地,集成电路装置500还可以包括存储装置508,其可以分别与总线系统502和其他处理装置506连接。在一个或多个实施例中,存储装置508可以用于保存总线系统502和其他处理装置506的数据,尤其适用于所需要运算的数据在总线系统502或其他处理装置506的内部存储中无法全部保存的数据。
[0060]
根据应用场景的不同,本披露的集成电路装置500可以作为手机、机器人、无人机、视频采集、视频采集设备等设备的soc片上系统,从而有效地降低控制部分的核心面积,提高处理速度并降低整体的功耗。在此情况下,集成电路装置500的通用互联接口504与设备的某些部件相连接。此处所指的某些部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。
[0061]
在一些实施例里,本披露还公开了一种芯片或集成电路芯片,其包括了集成电路装置500。在另一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
[0062]
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图6,其提供了前述的示例性板卡600,板卡600除了包括上述芯片602以外,还可以包括其他的配套部件,该配套部件可以包括但不限于:存储器件604、接口装置606和控制器件608。
[0063]
存储器件604与芯片封装结构内的芯片602通过总线614连接,用于存储数据。存储器件604可以包括多组存储器610。每一组存储器610与芯片602通过总线614连接。每一组存储器610可以是ddr sdram(“double data rate sdram”,双倍速率同步动态随机存储器)。
[0064]
不同于图6所示,在一个实施例中,存储器件604可以包括4组存储器610。每一组存储器610可以包括多个ddr4颗粒(芯片)。在一个实施例中,所述芯片602内部可以包括4个72位ddr4控制器,上述72位ddr4控制器中的64比特用于传输数据,8比特用于ecc校验。
[0065]
在一个实施例中,每一组存储器610可以包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在芯片602中设置控制ddr的控制器,用于对每个存储器610的数据传输与数据存储的控制。
[0066]
接口装置606与所述芯片封装结构内的芯片602电连接。接口装置606用于实现芯片602与外部设备612(例如服务器或计算机)之间的数据传输。在一个实施例中,接口装置606可以为标准pcie接口。例如,待处理的数据由服务器通过标准pcie接口传递至芯片602,实现数据转移。在另一个实施例中,接口装置606还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,能够实现转接功能即可。另外,芯片602的计算结果仍由接口装置606传送回外部设备612。
[0067]
控制器件608与芯片602电连接,以便对芯片602的状态进行监控。具体地,芯片602与控制器件608可以通过spi接口电连接。控制器件608可以包括单片机(“mcu”,micro controller unit)。芯片602可以包括多个处理芯片、多个处理核或多个处理电路,并且可以带动多个负载。由此,芯片602可以处于多负载和轻负载等不同的工作状态。通过控制器
件608可以实现对芯片602中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
[0068]
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡600。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。
[0069]
图7是示出本披露实施例处理请求的保序方法的流程图,特别应用在神经网络的深度学习上。如前所述,深度学习需要占用大量的运算资源,所以经常配置在多核异构的环境中,以此实施例为例,这样的环境可以是如图2所示的架构,或是如图4所示的第一子系统406的架构。
[0070]
在步骤702中,第一计算装置及第二计算装置接收来自前级计算装置的请求,该请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
[0071]
在步骤704中,第一计算装置响应于请求,验证该请求是发送给第一计算装置的,因此通过总线反馈真结果。
[0072]
在步骤706中,第二计算装置响应于请求,验证该请求并不是发送给第二计算装置的,因此通过总线反馈假结果。
[0073]
后级计算装置接收来自第一计算装置的真结果的响应,及来自第二计算装置的假结果的响应,可以避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
[0074]
图8是示出本披露实施例的混合系统处理请求的方法流程图,可以应用在如图4所示的混合型总线系统400中。
[0075]
在步骤802中,第一子系统接收第一请求,所述第一子系统为保序系统,且包括第一处理单元及第二处理单元,第一请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
[0076]
在步骤804中,第一计算装置响应于第一请求,验证第一请求是发送给第一计算装置的,因此通过总线反馈真结果的第一响应。
[0077]
在步骤806中,第二计算装置响应于第一请求,验证第一请求不是发送给第二计算装置的,因此通过总线反馈假结果的第二响应。
[0078]
在步骤808中,第二子系统接收第二请求,所述第二子系统为高效系统,且包括第三处理单元及第四处理单元,第二请求的数据格式同样如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
[0079]
在步骤810中,第三计算装置响应于第二请求,验证第二请求是发送给第三计算装置的,因此通过总线反馈真结果的第三响应。
[0080]
在步骤812中,第四计算装置响应于第二请求,验证第二请求不是发送给第四计算装置的,因此禁止通过所述总线进行反馈。
[0081]
基于本披露的技术方案,保序子系统上的各个计算装置在处理请求时,即便不是针对自己的,也会发送假结果,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。而高效无需保序的子系统上的各个计算装置在处理请求时,只有基于针对自己的请求才会发送真结果的响应,至于非针对自己的请求,则不反馈响应,以此来提高处理速度。
[0082]
图9是示出本披露另一实施例处理请求的方法的流程图,此实施例应用在混合型总线系统中的保序子系统,即适用在图2或是图4的第一子系统406。在此实施例中,前级计算装置通过总线发送第一请求,总线承载并传送第一请求至第一计算装置及第二计算装置。不论第一计算装置或是第二计算装置,在接收到第一请求时,均会执行图9所示的流程,以发送一响应至后级计算装置。
[0083]
在步骤902中,计算装置接收来自前级计算装置的第一请求,该第一请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
[0084]
在步骤904中,计算装置判断第一请求中的身份识别字段是否与计算装置的处理器编号一致。如果身份识别字段与处理器编号一致,在步骤906中,计算装置响应于第一请求,执行所对应的操作,读取位址字段里的位址,将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。如果身份识别字段与处理器编号不一致,在步骤908中,计算装置禁止响应于第一请求,不执行所对应的操作,也就是不会读取位址字段里的位址,不会将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
[0085]
在步骤910中,不论计算装置是否执行第一请求所对应的操作,均写入操作正确的信息至响应中。更详细来说,本披露实施例的响应包括纠错字段,其数据格式如表一所示。计算装置在纠错字段中载入“0b00”显示正常访问成功的信息。
[0086]
在步骤912中,计算装置输出所述响应至总线。如果在步骤904中,计算装置验证身份识别信息与处理器编号一致,且在步骤906中,计算装置执行第一请求所对应的操作,即表示计算装置确实完成任务,所述响应显示一个真结果。如果在步骤904中,计算装置发现身份识别信息与处理器编号不一致,且在步骤908中,计算装置禁止执行第一请求所对应的操作,即表示计算装置未实际完成任务,所述响应显示一个假结果。
[0087]
后级计算装置在接收到所有计算装置的响应后,便能确认请求的任务顺利完成,使得后级计算装置得以根据这些响应进行排序,避免后请求的响应快于前请求的响应,造成后级计算装置在执行工作时发生时序混乱的情况。
[0088]
图10是示出本披露另一实施例处理请求的方法的流程图,此实施例应用在混合型总线系统的高效子系统中,即适用图4的第二子系统408。在此实施例中,高效子系统通过总线接收第二请求,总线承载并传送第二请求至第三计算装置及第四计算装置。不论第三计算装置或是第四计算装置,在接收到第二请求时,均会执行图10所示的流程。
[0089]
在步骤1002中,计算装置接收来自上一级装置的第二请求,第二请求的数据格式亦如图3所示,包括位址字段(addr)302、资料字段(data)304及身份识别字段(core_id)306等字段。
[0090]
在步骤1004中,计算装置判断第二请求中的身份识别字段是否与计算装置的处理
器编号一致。如果身份识别字段与处理器编号一致,在步骤1006中,计算装置响应于第二请求,执行所对应的操作,读取位址字段里的位址,将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
[0091]
在步骤1008中,计算装置写入操作正确的信息至响应中。更详细来说,本披露实施例的响应包括纠错字段,其数据格式如表一所示。计算装置在纠错字段中载入“0b00”显示正常访问成功的信息。
[0092]
在步骤1010中,计算装置输出所述响应至总线,该响应表示计算装置确实完成任务,所述响应显示一个真结果。
[0093]
在步骤1004中,如果判断身份识别字段与处理器编号不一致,在步骤1012中,计算装置禁止响应于第二请求,不执行所对应的操作,也就是不会读取位址字段里的位址,不会将资料字段里的资料信息储存至内存相对应的位址中,或是从内存相对应的位址中将资料读出。
[0094]
在步骤1014中,计算装置禁止输出响应至总线。
[0095]
尽管上述方法以步骤形式示出利用本披露的计算装置来执行程序,但这些步骤顺序并不意味着本方法的步骤必须依所述顺序来执行,而是可以采其他顺序或并行的方式来处理。另外,此处为了描述的简明而没有阐述本披露的其他步骤,但本领域技术人员根据本披露的内容可以理解该方法也可以通过使用计算装置来执行前述结合附图所描述的各种操作。
[0096]
应当理解,前述实施例虽然仅用两个或四个计算装置为示例,但本披露的计算装置并不限制个数。一般而言,人工智能芯片中会设置有数十个计算装置,该技术领域人士可以透过本实施例的揭露,轻易地推及超过两个计算装置的实施态样。再者,本实施例的“第一”及“第二”等用语是用于区别不同对象,而不是用于描述特定顺序。
[0097]
在本披露的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0098]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
[0099]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0100]
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
[0101]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0102]
另外,在本披露各个实施例中的各功能单元可以集成在一个计算装置中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
[0103]
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(“rom”,read-only memory)、随机存取存储器(“ram”,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0104]
依据以下条款可更好地理解前述内容:
[0105]
条款a1、一种用于处理请求的总线系统,包括:总线;第一子系统,其配置成接收第一请求并且包括:第一处理单元,其配置成响应于所述第一请求,通过所述总线反馈真结果;以及第二处理单元,其配置成响应于所述第一请求,通过所述总线反馈假结果;第二子系统,其配置成接收第二请求并且包括:第三处理单元,其配置成响应于所述第二请求,通过所述总线反馈真结果;以及第四处理单元,其配置成响应于所述第二请求,禁止通过所述总线进行反馈。
[0106]
条款a2、根据条款a1所述的总线系统,其中所述第一请求包括身份识别字段,所述身份识别字段承载有对应于所述第一处理单元的身份识别信息。
[0107]
条款a3、根据条款a2所述的总线系统,其中所述第一处理单元配置成:判断所述身份识别信息是否与所述第一处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第一请求的操作;以及向所述总线输出第一响应,所述第一响应承载有所述真结果的信息。
[0108]
条款a4、根据条款a3所述的总线系统,其中所述第一响应包括第一纠错字段,所述纠错字段承载有对应于所述第一请求的操作为正确的信息。
[0109]
条款a5、根据条款a2所述的总线系统,其中所述第二处理单元配置成:判断所述身份识别信息是否与所述第二处理单元的处理器编号一致,如否,执行下列步骤:禁止执行对应于所述第一请求的操作;以及向所述总线输出第二响应,所述第二响应承载有所述假结果的信息。
[0110]
条款a6、根据条款a5所述的总线系统,其中所述第二响应包括第二纠错字段,所述第二纠错字段承载有对应于所述第一请求的操作为正确的信息。
[0111]
条款a7、根据条款a1所述的总线系统,其中所述第二请求包括身份识别字段,所述身份识别字段承载有对应于所述第三处理单元的身份识别信息。
[0112]
条款a8、根据条款a7所述的总线系统,其中所述第三处理单元配置成:判断所述身份识别信息是否与所述第三处理单元的处理器编号一致,如是,执行下列步骤:执行所述第
二请求所对应的操作;以及向所述总线输出第三响应,所述第三响应承载有所述真结果的信息。
[0113]
条款a9、根据条款a8所述的总线系统,其中所述第三响应包括第三纠错字段,所述第三纠错字段承载有对应于所述第二请求的操作为正确的信息。
[0114]
条款a10、根据条款a7所述的总线系统,其中所述第四处理单元配置成:判断所述身份识别信息是否与所述第四处理单元的处理器编号一致,如否,执行下列步骤:禁止执行所述第二请求所对应的操作;以及禁止输出任何响应至所述总线。
[0115]
条款a11、根据条款a1所述的总线系统,其中所述第一子系统为保序系统。
[0116]
条款a12、一种集成电路装置,包括根据条款a1-11的任意一项所述的总线系统。
[0117]
条款a13、一种板卡,包括根据条款a12所述的集成电路装置。
[0118]
条款a14、一种用于在多系统中处理请求的方法,包括以下步骤:
[0119]
第一子系统接收第一请求,所述第一子系统包括第一处理单元及第二处理单元;所述第一处理单元响应于所述第一请求,通过总线反馈真结果;所述第二处理单元响应于所述第一请求,通过所述总线反馈假结果;第二子系统接收第二请求,所述第二子系统包括第三处理单元及第四处理单元;所述第三处理单元响应于所述第二请求,通过所述总线反馈真结果;以及所述第四处理单元响应于所述第二请求,禁止通过所述总线进行反馈。
[0120]
条款a15、根据条款a14所述的方法,其中所述第一请求包括身份识别字段,所述身份识别字段承载有对应于所述第一处理单元的身份识别信息,所述第一处理单元通过总线反馈真结果的步骤包括下列步骤:判断所述身份识别信息是否与所述第一处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第一请求的操作;以及向所述总线输出第一响应,所述第一响应承载有所述真结果的信息。
[0121]
条款a16、根据条款a15所述的方法,其中所述第一响应包括第一纠错字段,所述第一处理单元通过总线反馈真结果的步骤还包括下列步骤:写入操作正确的信息至所述第一纠错字段。
[0122]
条款a17、根据条款a15所述的方法,其中所述第二处理单元通过所述总线反馈假结果的步骤包括以下步骤:判断所述身份识别信息是否与所述第二处理单元的处理器编号一致,如否,执行下列步骤:禁止执行对应于所述第一请求的操作;以及向所述总线输出第二响应,所述第二响应承载有所述假结果的信息。
[0123]
条款a18、根据条款a17所述的方法,其中所述第二响应包括第二纠错字段,所述第二处理单元通过总线反馈假结果的步骤还包括下列步骤:写入操作正确的信息至所述第二纠错字段。
[0124]
条款a19、根据条款a14所述的方法,其中所述第二请求包括身份识别字段,所述身份识别字段承载有对应于所述第三处理单元的身份识别信息,所述第三处理单元通过所述总线反馈真结果的步骤包括下列步骤:判断所述身份识别信息是否与所述第三处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第二请求的操作;以及向所述总线输出第三响应,所述第三响应承载所述真结果的信息。
[0125]
条款a20、根据条款a19所述的方法,其中所述第三响应包括第三纠错字段,所述第三处理单元通过所述总线反馈真结果的步骤还包括下列步骤:写入操作正确的信息至所述第三纠错字段。
[0126]
条款a21、根据条款a20所述的方法,其中所述第四处理单元禁止通过所述总线进行反馈的步骤包括以下步骤:判断所述身份识别信息是否与所述第四处理单元的处理器编号一致,如否,执行下列步骤:
[0127]
禁止执行对应于所述第二请求的操作;以及禁止输出任何响应至所述总线。
[0128]
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
[0129]
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0130]
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0131]
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0132]
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

技术特征:
1.一种用于处理请求的总线系统,包括:总线;第一子系统,其配置成接收第一请求并且包括:第一处理单元,其配置成响应于所述第一请求,通过所述总线反馈真结果;以及第二处理单元,其配置成响应于所述第一请求,通过所述总线反馈假结果;第二子系统,其配置成接收第二请求并且包括:第三处理单元,其配置成响应于所述第二请求,通过所述总线反馈真结果;以及第四处理单元,其配置成响应于所述第二请求,禁止通过所述总线进行反馈。2.根据权利要求1所述的总线系统,其中所述第一请求包括身份识别字段,所述身份识别字段承载有对应于所述第一处理单元的身份识别信息。3.根据权利要求2所述的总线系统,其中所述第一处理单元配置成:判断所述身份识别信息是否与所述第一处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第一请求的操作;以及向所述总线输出第一响应,所述第一响应承载有所述真结果的信息。4.根据权利要求3所述的总线系统,其中所述第一响应包括第一纠错字段,所述纠错字段承载有对应于所述第一请求的操作为正确的信息。5.根据权利要求2所述的总线系统,其中所述第二处理单元配置成:判断所述身份识别信息是否与所述第二处理单元的处理器编号一致,如否,执行下列步骤:禁止执行对应于所述第一请求的操作;以及向所述总线输出第二响应,所述第二响应承载有所述假结果的信息。6.根据权利要求5所述的总线系统,其中所述第二响应包括第二纠错字段,所述第二纠错字段承载有对应于所述第一请求的操作为正确的信息。7.根据权利要求1所述的总线系统,其中所述第二请求包括身份识别字段,所述身份识别字段承载有对应于所述第三处理单元的身份识别信息。8.根据权利要求7所述的总线系统,其中所述第三处理单元配置成:判断所述身份识别信息是否与所述第三处理单元的处理器编号一致,如是,执行下列步骤:执行所述第二请求所对应的操作;以及向所述总线输出第三响应,所述第三响应承载有所述真结果的信息。9.根据权利要求8所述的总线系统,其中所述第三响应包括第三纠错字段,所述第三纠错字段承载有对应于所述第二请求的操作为正确的信息。10.根据权利要求7所述的总线系统,其中所述第四处理单元配置成:判断所述身份识别信息是否与所述第四处理单元的处理器编号一致,如否,执行下列步骤:禁止执行所述第二请求所对应的操作;以及禁止输出任何响应至所述总线。11.根据权利要求1所述的总线系统,其中所述第一子系统为保序系统。12.一种集成电路装置,包括根据权利要求1-11的任意一项所述的总线系统。13.一种板卡,包括根据权利要求12所述的集成电路装置。14.一种用于在多系统中处理请求的方法,包括以下步骤:第一子系统接收第一请求,所述第一子系统包括第一处理单元及第二处理单元;
所述第一处理单元响应于所述第一请求,通过总线反馈真结果;所述第二处理单元响应于所述第一请求,通过所述总线反馈假结果;第二子系统接收第二请求,所述第二子系统包括第三处理单元及第四处理单元;所述第三处理单元响应于所述第二请求,通过所述总线反馈真结果;以及所述第四处理单元响应于所述第二请求,禁止通过所述总线进行反馈。15.根据权利要求14所述的方法,其中所述第一请求包括身份识别字段,所述身份识别字段承载有对应于所述第一处理单元的身份识别信息,所述第一处理单元通过总线反馈真结果的步骤包括下列步骤:判断所述身份识别信息是否与所述第一处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第一请求的操作;以及向所述总线输出第一响应,所述第一响应承载有所述真结果的信息。16.根据权利要求15所述的方法,其中所述第一响应包括第一纠错字段,所述第一处理单元通过总线反馈真结果的步骤还包括下列步骤:写入操作正确的信息至所述第一纠错字段。17.根据权利要求15所述的方法,其中所述第二处理单元通过所述总线反馈假结果的步骤包括以下步骤:判断所述身份识别信息是否与所述第二处理单元的处理器编号一致,如否,执行下列步骤:禁止执行对应于所述第一请求的操作;以及向所述总线输出第二响应,所述第二响应承载有所述假结果的信息。18.根据权利要求17所述的方法,其中所述第二响应包括第二纠错字段,所述第二处理单元通过总线反馈假结果的步骤还包括下列步骤:写入操作正确的信息至所述第二纠错字段。19.根据权利要求14所述的方法,其中所述第二请求包括身份识别字段,所述身份识别字段承载有对应于所述第三处理单元的身份识别信息,所述第三处理单元通过所述总线反馈真结果的步骤包括下列步骤:判断所述身份识别信息是否与所述第三处理单元的处理器编号一致,如是,执行下列步骤:执行对应于所述第二请求的操作;以及向所述总线输出第三响应,所述第三响应承载所述真结果的信息。20.根据权利要求19所述的方法,其中所述第三响应包括第三纠错字段,所述第三处理单元通过所述总线反馈真结果的步骤还包括下列步骤:写入操作正确的信息至所述第三纠错字段。21.根据权利要求20所述的方法,其中所述第四处理单元禁止通过所述总线进行反馈的步骤包括以下步骤:判断所述身份识别信息是否与所述第四处理单元的处理器编号一致,如否,执行下列步骤:禁止执行对应于所述第二请求的操作;以及
禁止输出任何响应至所述总线。
技术总结
本发明涉及一种用于混合型系统中保序的总线系统、集成电路装置、板卡及保序方法,其中该总线系统可以包括组合处理装置,该组合处理装置还可以包括通用互联接口和其他处理装置。所述总线系统中的计算装置与其他处理装置进行交互,共同完成指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于该计算装置和其他处理装置的数据存储。他处理装置的数据存储。他处理装置的数据存储。


技术研发人员:ꢀ(74)专利代理机构
受保护的技术使用者:中科寒武纪科技股份有限公司
技术研发日:2019.12.24
技术公布日:2021/6/24

转载请注明原文地址:https://doc.8miu.com/read-250396.html

最新回复(0)