CN114091384A - 数据处理电路及人工智能芯片、数据处理方法和装置 - Google Patents
数据处理电路及人工智能芯片、数据处理方法和装置 Download PDFInfo
- Publication number
- CN114091384A CN114091384A CN202111435830.3A CN202111435830A CN114091384A CN 114091384 A CN114091384 A CN 114091384A CN 202111435830 A CN202111435830 A CN 202111435830A CN 114091384 A CN114091384 A CN 114091384A
- Authority
- CN
- China
- Prior art keywords
- instruction
- information
- read
- sent
- queue
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本公开实施例提供一种数据处理电路及人工智能芯片、数据处理方法和装置,通过多个处理单元来处理指令,各个处理单元之间相互独立地基于本处理单元接收到的第一指令的信息以及本处理单元已发送的第二指令的信息判断本处理单元所处理的指令之间是否存在数据冒险。在其中的部分处理单元所处理的指令之间存在数据冒险的情况下,仍然可以通过其他处理单元发送指令,从而减少了指令拥塞。
Description
技术领域
本公开涉及集成电路设计技术领域,尤其涉及数据处理电路及人工智能芯片、数据处理方法和装置。
背景技术
随着人工智能和高性能计算的不断发展,处理系统所需要处理的数据量日趋庞大。在处理过程中,大量数据需要在内部存储空间和外部存储空间之间进行搬运。在搬运过程中可能发生读写数据冒险的情况,即,至少两笔指令往相同的存储地址分别读取和写入数据。在发生读写数据冒险时,需要对读指令和写指令进行控制,以防发生数据读写错误。相关技术一般只判断前后两条指令之间是否存在数据冒险。一旦发生数据冒险,则后续指令无法下发,容易导致指令拥塞。
发明内容
本公开提供一种数据处理电路及人工智能芯片、数据处理方法和装置。
根据本公开实施例的第一方面,提供一种数据处理电路,所述电路包括多个处理单元,所述多个处理单元中的每个处理单元均包括:指令队列,用于对接收到的第一指令进行缓存;已发送信息队列,用于缓存已发送的至少一条第二指令中每条第二指令的信息;检测单元,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,并在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;所述信息包括读写类型信息与地址信息中的至少一者。
可选地,所述检测单元用于:在所述已发送信息队列未存满的情况下,基于所述第一指令的读写类型信息、所述第二指令的读写类型信息、所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件;在所述已发送信息队列存满的情况下,基于所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件。
可选地,在所述已发送信息队列未存满的情况下,所述检测单元用于:在所述已发送信息队列中任意一条第二指令的读写类型信息与所述第一指令的读写类型信息不同,且地址信息与所述第一指令的地址信息相同的情况下,判定所述第一指令不满足指令发送条件;在所述已发送信息队列中各第二指令的地址信息均不同于所述第一指令的地址信息的情况下,或者在所述已发送信息队列中属于同一条第二指令的目标地址信息和目标读写类型信息不同时满足所述目标地址信息与所述第一指令的地址信息相同,且所述目标读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令满足指令发送条件。
可选地,在所述已发送信息队列存满的情况下,所述检测单元用于:在所述已发送信息队列中存在至少一条指令的读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令不满足指令发送条件;在所述已发送信息队列中各第二指令的读写类型信息均与所述第一指令的读写类型信息相同的情况下,判定所述第一指令满足指令发送条件。
可选地,不同的处理单元用于处理不同的线程组发送的指令。
可选地,所述电路还包括第一指令分发单元,用于:接收各个线程组发送的第一指令,每个线程组发送的第一指令中均携带对应线程组的标识信息;分别基于各个线程组发送的第一指令中携带的标识信息,将各个线程组发送的第一指令分发至对应的处理单元。
可选地,不同的处理单元发送的指令具有不同的优先级;所述电路还包括:指令仲裁单元,用于接收各个处理单元发送的第一指令,并基于各个处理单元发送的第一指令的优先级,依次对各个处理单元发送的第一指令进行发送。
可选地,所述第一指令中包括旁路信息的存储地址,所述旁路信息的存储地址下存储有所述第一指令对应的旁路信息;所述电路还包括:第二指令分发单元,用于对携带所述旁路信息的原始指令进行解耦,得到解耦后的原始指令以及所述旁路信息,将所述旁路信息存储到旁路信息的存储地址下,基于解耦后的原始指令与所述旁路信息的存储地址生成所述第一指令,并将所述第一指令下发至所述指令队列;总线控制单元,用于基于所述第一指令和所述旁路信息的存储地址生成目标指令,并对所述目标指令进行发送。
可选地,所述总线控制单元还用于:从所述已发送队列中清空已处理完成的第二指令的信息。
可选地,所述第一指令包括写指令,所述旁路信息包括所述写指令对应的第一旁路信息;所述电路还包括:第一存储单元,用于存储所述第一旁路信息。
可选地,所述总线控制单元用于:从所述写指令中提取所述第一旁路信息的存储地址,从所述第一旁路信息的存储地址中获取所述第一旁路信息,基于所述第一旁路信息与所述写指令生成所述目标指令,并对所述目标指令进行发送。
可选地,所述第一指令包括读指令,所述旁路信息包括所述读指令对应的第二旁路信息;所述电路还包括:第二存储单元,用于存储所述第二旁路信息。
可选地,所述总线控制单元还用于:将所述读指令作为所述目标指令。
可选地,所述总线控制单元还用于:接收所述读指令读取到的目标数据,所述目标数据中携带所述第二旁路信息的存储地址;将所述目标数据写入所述第二存储单元中所述第二旁路信息的存储地址中。
可选地,所述总线控制单元还用于:在所述第一指令处理完成的情况下,从所述旁路信息的存储地址中清除所述第一指令对应的旁路信息。
可选地,在所述第二指令的总数超过所述已发送信息队列的长度的情况下,将所述已发送信息队列中的各项信息均置为无效。
可选地,所述电路还包括统计单元,用于统计以下信息:所述第二指令的总数;各个第二指令中已处理完成的指令的数量;以及各个第二指令的读写类型信息;所述检测单元用于:在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,基于所述统计单元统计的信息检测所述第一指令是否满足指令发送条件。
可选地,在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,若各第二指令均处理完成,判定所述第一指令满足指令发送条件。
可选地,所述第一指令的信息在所述第一指令发送成功的情况下被写入所述已发送信息队列。
根据本公开实施例的第二方面,提供一种人工智能芯片,包括:本公开任一实施例所述的数据处理电路;以及控制单元,用于向所述数据处理电路中的指令队列发送所述第一指令。
根据本公开实施例的第三方面,提供一种数据处理方法,应用于本公开任一实施例所述的数据处理电路中的检测单元,所述方法包括:基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;所述信息包括读写类型信息与地址信息中的至少一者。
根据本公开实施例的第四方面,提供一种数据处理装置,应用于本公开任一实施例所述的数据处理电路中的检测单元,所述装置包括:检测模块,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;发送模块,用于在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;所述信息包括读写类型信息与地址信息中的至少一者。
本公开实施例通过多个处理单元来处理指令,各个处理单元之间相互独立地基于本处理单元接收到的第一指令的信息以及本处理单元已发送的第二指令的信息判断本处理单元所处理的指令之间是否存在数据冒险。在其中的部分处理单元所处理的指令之间存在数据冒险的情况下,仍然可以通过其他处理单元发送指令,从而减少了指令拥塞。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是本公开实施例的数据处理电路的示意图。
图2是本公开实施例的检测单元的检测原理的示意图。
图3是本公开另一实施例的数据处理电路的示意图。
图4是本公开实施例的指令超发的示意图。
图5A和图5B分别是本公开实施例的指令的解耦与合并的示意图。
图6是本公开实施例的指令发送过程的示意图。
图7是本公开实施例的整体流程图。
图8是本公开实施例的人工智能芯片的框图。
图9是本公开实施例的数据处理方法的流程图。
图10是本公开实施例的数据处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
在内部存储空间和外部存储空间之间进行数据搬运时,可能发生读写数据冒险的情况,即,至少两笔指令往相同的存储地址分别读取和写入数据。在发生读写数据冒险时,需要对读指令和写指令进行控制,以防发生数据读写错误。举例来说,外部存储空间中的地址1存储有数据d1,控制单元产生了两笔指令,一笔指令是从地址1中读取数据并写入寄存器,另一笔指令是向地址1写入数据d2。所述外部存储空间可以包括但不限于双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR)或者高带宽显存(High BandwidthMemory,HBM)等。所述控制单元可以包括但不限于中央处理单元(Central ProcessingUnit,CPU)或者图形处理器(Graphics Processing Unit,GPU)等。这两笔指令按照不同的顺序执行,会产生不同的执行结果。如果先执行读指令再执行写指令,则向寄存器写入的数据为地址1中的原始数据d1。如果先执行写指令再执行读指令,则向寄存器写入的数据为地址1中被写指令修改后的数据d2。这种因对同一个地址分别执行读写类型不同的指令而可能导致的数据读写错误称为数据冒险。为了减少数据冒险,需要对读指令和写指令的发送过程进行控制。然而,相关技术一般只判断前后两条指令之间是否存在数据冒险。一旦发生数据冒险,则后续指令无法下发,容易导致指令拥塞。
基于此,本公开实施例提供一种数据处理电路100,参见图1和图3,所述电路100包括多个处理单元,所述多个处理单元中的每个处理单元101均包括:
指令队列1011,用于对接收到的第一指令进行缓存;
已发送信息队列1012,用于缓存已发送的至少一条第二指令中每条第二指令的信息;
检测单元1013,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,并在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
现有技术中一般在存在数据冒险的情况下需要停止发送指令,并等待已发送的指令处理完成才能重新发送指令。本公开实施例采用多个相互独立的数据处理单元101,即便其中某个或某些处理单元处理的指令存在数据冒险,仍然可以通过其他的处理单元来发送指令。只有在所有的处理单元处理的指令都存在数据冒险的情况下才需要停止发送指令。因此,本公开实施例能够有效提高指令发送效率,减少指令拥塞。
由于各个处理单元之间相互独立地基于本处理单元接收到的第一指令的信息以及本处理单元已发送的第二指令的信息判断本处理单元所处理的指令之间是否存在数据冒险。在其中的部分处理单元所处理的指令之间存在数据冒险的情况下,仍然可以通过其他处理单元发送指令,从而减少了指令拥塞。
上述指令队列1011可以是一个先进先出(First In First Out,FIFO)队列,指令队列1011每接收到上级控制单元发送的第一指令,可以对该第一指令进行缓存。第一指令在指令队列1011中的缓存顺序与指令队列1011接收到第一指令的顺序相同。第一指令可以包括读指令,用于从外部存储空间(例如,硬盘)中的某个地址读取数据。所述第一指令也可以包括写指令,用于将数据写入外部存储空间中的某个地址。第一指令中可以包括所述第一指令对应的信息,所述信息包括地址信息和读写类型信息。其中,地址信息用于指示所述第一指令所请求访问的地址。对于读指令,所述地址信息表示所需读取的数据所在的地址(即数据来源);对于写指令,所述地址信息表示数据需要写入的地址(即数据的目的地)。读写类型信息用于表示所述第一指令是读指令还是写指令。
上述已发送信息队列1012中可以对每条第二指令的信息均进行缓存。第二指令是指已成功发送的指令。其中,第二指令中既可以包括已成功发送但未被处理完成的指令,又可以包括已成功发送且已被处理完成的指令。可以在接收到针对第二指令返回的用于表征指令被处理完成的通知消息的情况下确定指令被处理完成。该通知消息的返回条件可以基于实际情况设置。例如,针对一条读指令,可以在将该读指令所请求的数据返回给数据请求方的情况下,由数据请求方返回所述通知消息。又例如,针对一条写指令,可以在将该写指令中携带的数据写入指定的数据接收方的情况下,由数据接收方返回所述通知消息。当然,实际情况不限于以上列举的方式。
第二指令的信息也可以包括地址信息和读写类型信息。第二指令中包括的地址信息与读写类型信息的含义可参见第一指令中包括的地址信息与读写类型信息的含义,此处不再赘述。已发送信息队列1012中的地址信息和读写类型信息可以对应缓存,即,将同一条第二指令的地址信息和读写类型信息作为一条信息进行缓存。
检测单元1013可以分别将所述第一指令的信息与已发送信息队列1012中缓存的每条信息进行比较,从而确定所述第一指令是否与已发送的第二指令之间存在数据冒险。在第一指令的信息与任意一条第二指令之间存在数据冒险的情况下,不对第一指令进行发送。只有在第一指令与任意一条第二指令之间均不存在数据冒险的情况下,才对第一指令进行发送。在存在数据冒险的情况下,检测单元可以在一定的时间间隔之后再次检测是否存在数据冒险,直到所述第一指令被从所述指令队列1011中取出。其中,所述时间间隔可以是一个时钟周期,也可以是其他时长。
下面结合图2对判断是否存在数据冒险的方式进行说明。检测单元1013可以基于读写类型信息和地址信息中的至少一者来判断是否存在数据冒险。具体来说,可以先判断已发送信息队列是否已存满(步骤201)。在所述已发送信息队列未存满的情况下,可以基于所述第一指令的读写类型信息、所述第二指令的读写类型信息、所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件。
具体来说,在所述已发送信息队列1012中各第二指令的地址信息均不同于所述第一指令的地址信息的情况下,可以判定所述第一指令满足指令发送条件(步骤202),并发送第一指令(步骤207)。例如,假设已发送信息队列1012中包括的信息如表1所示:
表1已发送信息队列
信息所属指令 | 地址信息 | 读写类型信息 |
指令1 | A1 | 读 |
指令2 | A2 | 写 |
指令3 | A2 | 读 |
其中,指令1、指令2和指令3均为第二指令,已发送信息队列1012中包括的信息{A1,读}为指令1的信息,{A2,写}为指令2的信息,{A3,读}为指令3的信息。再假设所述第一指令中的地址信息为A3,A3不同于A1,且A3不同于A2。由于第一指令中的地址信息与已发送的各个第二指令中的地址信息均不相同,因此,无论第一指令的读写数据类型与各第二指令的读写数据类型是怎样的,由于不同地址之间的数据读写是相互独立的,因此,第一指令与任意一条第二指令之间均不存在数据冒险,即,第一指令满足发送条件,从而可以对第一指令进行发送。
仍假设已发送信息队列1012中包括的信息如表1所示,并假设所述第一指令中的地址信息为A1,由于第一指令与指令1针对的是同一地址,如果此时对第一指令进行发送,则在第一指令与指令1的读写类型信息不同的情况下,可能发生数据读写错误,即存在数据冒险。因此,在这种情况下需要同时结合读写类型信息与地址信息共同判断第一指令是否满足指令发送条件。
在所述已发送信息队列1012中存在与所述第一指令的地址信息相同的目标地址信息的情况下,若所述已发送信息队列1012中存在与所述第一指令的数据读写类型信息不同的目标读写类型信息,且所述目标读写类型信息与所述目标地址信息属于同一条第二指令,可以判定所述第一指令不满足指令发送条件(步骤203),从而不发送第一指令(步骤206)。
在所述已发送信息队列1012中存在与所述第一指令的地址信息相同的目标地址信息的情况下,若所述已发送信息队列1012中不存在与所述第一指令的数据读写类型信息不同的目标读写类型信息,其中,所述目标读写类型信息与所述目标地址信息属于同一条第二指令,可以判定所述第一指令满足指令发送条件(步骤202),并发送第一指令(步骤207)。
例如,在上述实施例中,假设第一指令的读写类型信息为写,由于第一指令的地址信息与指令1的地址信息相同,且第一指令的读写类型信息与指令1的读写类型信息不同,因此存在数据冒险,第一指令不满足指令发送条件。假设第一指令的读写类型信息为读,则并不存在任何一条第二指令既满足该第二指令的地址信息与第一指令的地址信息相同,又满足该第二指令的读写类型信息与第一指令的读写类型信息不同,因此,不存在数据冒险,第一指令满足指令发送条件。
在所述已发送信息队列存满的情况下,可以基于所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件。具体来说,在所述已发送信息队列1012中各第二指令的读写类型信息均与所述第一指令的读写类型信息相同的情况下,判定所述第一指令满足指令发送条件(步骤204),并发送第一指令(步骤207)。
例如,参见图4,假设已发送信息队列1012中的各项读写类型信息均为写,且所述第一指令的读写类型信息也为写,无论各条写指令中的地址信息(地址1,地址2,……,地址n)是否相同,各条写指令之间都不存在数据冒险,因此,在这种情况下,可以直接对第一指令进行发送。同理,假设已发送信息队列1012中的各项读写类型信息均为读,且所述第一指令的读写类型信息也为读,也可以直接对第一指令进行发送。上述情况由于发送出去的指令数量已经超出了已发送信息队列1012的长度,因此称为指令超发。通过指令超发,能够提高连续的多条读写类型相同的指令的发送效率,进一步减少指令拥塞。
在所述已发送信息队列1012中存在至少一条指令的读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令不满足指令发送条件(步骤205),从而不发送第一指令(步骤206)。例如,已发送信息队列1012中的各项读写类型信息既包括读又包括写;或者,已发送信息队列1012中的各项读写类型信息均为读,但第一指令的读写类型信息为写;或者,已发送信息队列1012中的各项读写类型信息均为写,但第一指令的读写类型信息为读。在上述三种情况下,无论第一指令与第二指令中的地址信息是怎样的,均不对第一指令进行发送。
应当说明的是,在进行指令超发时,由于发送的指令数量已经超出了已发送信息队列1012的长度。例如,已经发送的指令的数量为5,已发送信息队列1012中总共可缓存4条指令的信息(即已发送信息队列1012的长度为4)。这种情况下,已经不能基于已发送信息队列1012中的信息来确定是否存在数据冒险了。例如,假设超发指令S0为针对地址A0的读指令,而指令S0的信息{A0,读}并未缓存在已发送信息队列1012中,并假设已发送信息队列1012中的各项信息如表2所示:
地址信息 | 读写类型信息 |
A1 | 读 |
A2 | 读 |
A3 | 读 |
在信息{A1,读}对应的第二指令处理完成的情况下,将信息{A1,读}从已发送信息队列1012中清除,此时已发送信息队列1012未存满。如果指令队列1011接收到一条信息为{A0,写}的指令Sk,则根据前述判断数据冒险的方式可知,由于已发送信息队列1012中不存在与指令Sk的地址信息相同的地址信息,因此,如果基于已发送信息队列1012中的信息会判定指令Sk满足指令发送条件。但实际上,由于已发送的指令中存在一条与指令Sk读写类型信息不同且地址信息相同的指令S0,指令S0与指令Sk存在数据冒险,因此实际上指令Sk是不满足指令发送条件的。意思就是说,在指令超发的情况下,如果仍基于已发送信息队列1012中的信息判断是否满足指令发送条件,则可能得到错误的判断结果。
为了提高指令超发情况下的判断准确性,可以在所述第二指令的总数超过所述已发送信息队列的长度的情况下,将所述已发送信息队列中的各项信息均置为无效。在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,可以基于已发送指令的统计信息检测所述第一指令是否满足指令发送条件。在这种情况下,只有已发送的各个第二指令均处理完成,才对所述第一指令进行发送;只要存在未处理完成的第二指令,就不对所述第一指令进行发送。
在一些实施例中,所述电路还包括统计单元1014,用于统计以下信息:所述第二指令的总数;各个第二指令中已处理完成的指令的数量;以及各个第二指令的读写类型信息。检测单元1013可以在所述已发送信息队列1012中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,基于所述统计单元1014统计的信息检测所述第一指令是否满足指令发送条件。
检测单元1013可以先确定第一指令与已发送的各第二指令的读写类型信息是否相同。在读写类型信息不同的情况下,从统计单元1014获取已发送的第二指令的总数以及已处理完成的指令的数量。只有在已发送的第二指令的总数与已处理完成的指令的数量相等的情况下,才判定第一指令满足指令发送条件,否则判定第一指令不满足指令发送条件。
在一些实施例中,不同的处理单元101用于处理不同的线程组发送的指令。其中,每个处理单元101可用于处理一个或多个线程组发送的指令,且不同的处理单元负责的线程组可以相同,也可以不同。例如,处理单元0用于处理线程组0发送的指令,处理单元1用于处理线程组1和线程组2发送的指令,处理单元2用于处理线程组3和线程组4发送的指令。为了将不同线程组发送的指令分发给对应的处理单元,所述电路还包括指令分发单元102,用于接收各个线程组发送的第一指令,每个线程组发送的第一指令中均携带对应线程组的标识信息;分别基于各个线程组发送的第一指令中携带的标识信息,将各个线程组发送的第一指令分发至对应的处理单元。
在一些实施例中,不同的处理单元发送的指令具有不同的优先级;所述电路还包括:指令仲裁单元103,用于接收各个处理单元101发送的第一指令,并基于各个处理单元101发送的第一指令的优先级,依次对各个处理单元101发送的第一指令进行发送。
在一些实施例中,所述第一指令中包括旁路信息的存储地址,所述旁路信息的存储地址下存储有所述第一指令对应的旁路信息;所述电路还包括:指令分发单元102,用于对携带所述旁路信息的原始指令进行解耦,得到解耦后的原始指令以及所述旁路信息,将所述旁路信息存储到旁路信息的存储地址下,基于解耦后的原始指令与所述旁路信息的存储地址生成所述第一指令,并将所述第一指令下发至所述指令队列;总线控制单元,用于基于所述第一指令和所述旁路信息的存储地址生成目标指令,并对所述目标指令进行发送。
应当说明的是,在上述实施例中,用于向各个处理单元分发指令的指令分发单元与用于对原始指令进行解耦的指令分发单元是同一个指令分发单元102,但在实际应用中,也可以通过不同的指令分发单元分别执行指令分发与指令解耦。
原始指令中可能携带一些旁路信息,这些旁路信息与判断第一指令是否满足指令发送条件的过程无关。例如,针对写指令,旁路信息可以包括但不限于待写入的数据、用于标识待写入的数据的有效位的标识信息等。针对读指令,旁路信息可以包括但不限于数据读取的目标地址、存储所述目标地址的寄存器地址等。如果这些旁路信息始终携带在指令中,则每个处理单元都需要额外的存储空间来存储这些旁路信息,会增加数据处理电路的面积和功耗。因此,本实施例将旁路信息与指令进行解耦,对旁路信息单独进行存储,并基于指令中除旁路信息以外的部分进行数据冒险检测,从而降低电路的面积和功耗,同时能够降低crossbar复杂度。只有在确定第一指令满足指令发送条件的情况下,才再次将旁路信息与第一指令进行合并,得到目标指令,并对目标指令进行发送。
参见图5A和图5B,首先,分发单元102在接收到包括旁路信息和指令信息的原始指令之后,可以从原始指令中提取出旁路信息,并将旁路信息发送至旁路信息存储单元。这里可以对读指令对应的旁路信息与写指令对应的旁路信息分别进行存储。其中,写指令对应的旁路信息可以存储至第一存储单元105,读指令对应的旁路信息可以存储至第二存储单元106。旁路信息存储单元可以返回旁路信息的存储地址至分发单元102。对于写指令,所述旁路信息的存储地址为写指令对应的旁路信息在第一存储单元105中的存储地址;对于读指令,所述旁路信息的存储地址为读指令对应的旁路信息在第二存储单元106中的存储地址。分发单元102可以对指令信息与旁路信息的存储地址进行合并后生成第一指令,并将第一指令通过指令仲裁单元发送至总线控制单元104。
总线控制单元104可以生成最终的目标指令并进行发送。其中,针对写指令与读指令,总线控制单元104可以采用不同的方式生成目标指令。具体来说,针对写指令,由于待写入数据等旁路信息需要随指令一同发送至目标地址,以便将待写入数据写入目标地址,因此,总线控制单元104可以从所述写指令中提取所述第一旁路信息的存储地址,从所述第一旁路信息的存储地址中获取所述第一旁路信息,基于所述第一旁路信息与所述写指令生成所述目标指令,并对所述目标指令进行发送。针对读指令,存储待读取数据的数据存储单元并不需要知道待读取数据会被读取到哪里,因此,总线控制单元104可以直接将携带旁路信息的存储地址与指令信息的读指令作为目标指令进行发送。
进一步地,针对读指令,总线控制单元104还可以接收所述读指令读取到的目标数据,所述目标数据中携带所述读指令对应的旁路信息的存储地址。总线控制单元104可以将目标数据写入所述读指令对应的旁路信息的存储地址,以便数据请求方(例如,寄存器)从旁路信息的存储地址中读取目标数据。
在一些实施例中,所述总线控制单元104还用于在所述第一指令处理完成的情况下,从所述旁路信息的存储地址中清除所述第一指令对应的旁路信息,以便用于存储旁路信息的存储单元能够空出存储空间来存储其他指令的旁路信息。其中,在读指令处理完成的情况下,可以从读指令对应的旁路信息的存储地址中清除该读指令对应的旁路信息;在写指令处理完成的情况下,可以从写指令对应的旁路信息的存储地址中清除该写指令对应的旁路信息。
在一些实施例中,在所述第一指令发送成功的情况下,将所述第一指令的信息写入所述已发送信息队列。参见图6,在指令发送过程中,假设在时钟周期T1,已发送信息队列中包括指令1的信息、指令2的信息和指令3的信息;指令队列中包括指令4、指令5和指令6。则可以提取指令队列中处于最前端的指令(即指令4)的信息,并基于指令4的信息与指令1的信息检测指令4是否满足指令发送条件。如果满足,则对指令4进行发送。在指令4发送成功的情况下,在时钟周期T2,将指令4的信息存入已发送信息队列。在时钟周期T3,还可以从已发送信息队列中清除已处理完成的指令的信息(假设为指令1的信息)。应当说明的是,时钟周期T2可以在时钟周期T3之前,也可以在时钟周期T3之后,本公开对此不作限制。此外,先发送的指令被处理完成的时间可以早于或晚于后发送的指令被处理完成的时间,即,各指令的信息存入已发送信息队列的顺序与各指令的信息从已发送信息队列中清除的顺序并不一定相同。
在一些实施例中,总线控制单元104还用于从所述已发送信息队列中清空已处理完成的第二指令的信息。已发送信息队列1012可以将缓存的信息以及该信息的缓存地址发送至总线控制单元104,在该信息所属的第二指令处理完成的情况下,总线控制单元104可以向已发送信息队列1012发送一个使能信号,所述使能信号中携带处理完成的第二指令的信息在已发送信息队列1012中的缓存地址。这样,已发送信息队列1012可以响应于该使能信号清除相应缓存地址中的信息。
参见图7,是本公开实施例的整体流程图。该流程可通过图3所示的电路实现。首先,可由指令分发单元102依据线程组号向各处理单元101中的指令队列1011分发指令(S1)。指令分发单元102还可以对指令中的指令信息与旁路信息进行解耦,解耦后的旁路信息存入旁路信息的存储地址(S2)。该存储地址与指令信息进行合并,生成第一指令。检测单元1013可以基于第一指令的信息与已发送信息队列中所存储的各第二指令的信息,判断是否存在数据冒险(即第一指令是否满足指令发送条件),或者基于统计单元统计的信息判断是否存在数据冒险(S3)。如果存在数据冒险,则仍然将第一指令缓存在指令队列1011中,并周期性地重新判断是否存在数据冒险(S4)。如果不存在数据冒险,则从指令队列1011中取出第一指令并发送至仲裁单元103(S5)。各个处理单元101的处理流程相同,此处不再一一描述。
仲裁单元103可以按照各处理单元101所发送的第一指令的优先级,依次将各个第一指令发送至总线控制单元104(S6)。总线控制单元104可以基于从仲裁单元103接收到的第一指令生成目标指令,并将目标指令发送到对应的目标地址(S7)。
此外,总线控制单元104还可以在接收到针对某个第二指令的处理完成信息的情况下,清除已发送信息队列1012中该第二指令对应的信息(S8),以及清除旁路信息(S9)。检测单元还可以在第一指令通过总线控制单元104成功发送的情况下,将第一指令信息写入已发送信息队列1012(S10)。
上述各步骤的执行顺序并不限于图中所示的顺序,例如,步骤S8与S9的顺序可以互换,步骤S10与步骤S8或S9的顺序可以互换等。
本公开实施例多线程组并行处理数据冒险。当某些线程组出现数据冒险,其它无数据冒险的线程组依然可以发送指令。此外,本公开允许连续相同读写类型的指令超发。指令超发可以有效提升系统访存性能。可以利用本公开的方法实现高效的多线程组处理数据冒险,提升系统的访存性能,利用本公开方法的扩展性及变形,可以降低功耗和降低crossbar复杂度。
如图8所示,本公开所述还提供一种人工智能芯片,包括:数据处理电路801;以及控制单元802,用于向所述数据处理电路801中的指令队列发送所述第一指令。
所述数据处理电路801可以采用本公开任一实施例所述的数据处理电路。本实施例中数据处理电路801的具体细节详见前述实施例,此处不再赘述。
参见图9,本公开实施例还提供一种数据处理方法,应用于本公开任一实施例所述的数据处理电路中的检测单元,所述方法包括:
步骤901:基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;
步骤902:在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
可选地,所述基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,包括:在所述已发送信息队列未存满的情况下,基于所述第一指令的读写类型信息、所述第二指令的读写类型信息、所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件;在所述已发送信息队列存满的情况下,基于所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件。
可选地,在所述已发送信息队列未存满的情况下,所述基于所述第一指令的读写类型信息、所述第二指令的读写类型信息、所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件,包括:在所述已发送信息队列中任意一条第二指令的读写类型信息与所述第一指令的读写类型信息不同,且地址信息与所述第一指令的地址信息相同的情况下,判定所述第一指令不满足指令发送条件;在所述已发送信息队列中各第二指令的地址信息均不同于所述第一指令的地址信息的情况下,或者在所述已发送信息队列中属于同一条第二指令的目标地址信息和目标读写类型信息不同时满足所述目标地址信息与所述第一指令的地址信息相同,且所述目标读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令满足指令发送条件。
可选地,在所述已发送信息队列存满的情况下,所述基于所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件,包括:在所述已发送信息队列中存在至少一条指令的读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令不满足指令发送条件;在所述已发送信息队列中各第二指令的读写类型信息均与所述第一指令的读写类型信息相同的情况下,判定所述第一指令满足指令发送条件。
可选地,不同的处理单元用于处理不同的线程组发送的指令。
可选地,所述电路还包括统计单元,用于统计以下信息:所述第二指令的总数;各个第二指令中已处理完成的指令的数量;以及各个第二指令的读写类型信息;所述基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,包括:在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,基于所述统计单元统计的信息检测所述第一指令是否满足指令发送条件。
可选地,所述基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,包括:在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,若各第二指令均处理完成,判定所述第一指令满足指令发送条件。
可选地,所述第一指令的信息在所述第一指令发送成功的情况下被写入所述已发送信息队列。
上述方法实施例的细节详见前述数据处理电路的实施例,此处不再赘述。
参见图10,本公开实施例还提供一种数据处理装置,应用于本公开任一实施例所述的数据处理电路中的检测单元,所述装置包括:
检测模块1001,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;
发送模块1002,用于在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (22)
1.一种数据处理电路,其特征在于,所述电路包括多个处理单元,所述多个处理单元中的每个处理单元均包括:
指令队列,用于对接收到的第一指令进行缓存;
已发送信息队列,用于缓存已发送的至少一条第二指令中每条第二指令的信息;
检测单元,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件,并在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
2.根据权利要求1所述的电路,其特征在于,所述检测单元用于:
在所述已发送信息队列未存满的情况下,基于所述第一指令的读写类型信息、所述第二指令的读写类型信息、所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件;
在所述已发送信息队列存满的情况下,基于所述第一指令的地址信息以及所述第二指令的地址信息检测所述第一指令是否满足指令发送条件。
3.根据权利要求2所述的电路,其特征在于,在所述已发送信息队列未存满的情况下,所述检测单元用于:
在所述已发送信息队列中任意一条第二指令的读写类型信息与所述第一指令的读写类型信息不同,且地址信息与所述第一指令的地址信息相同的情况下,判定所述第一指令不满足指令发送条件;
在所述已发送信息队列中各第二指令的地址信息均不同于所述第一指令的地址信息的情况下,或者在所述已发送信息队列中属于同一条第二指令的目标地址信息和目标读写类型信息不同时满足所述目标地址信息与所述第一指令的地址信息相同,且所述目标读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令满足指令发送条件。
4.根据权利要求2或3所述的电路,其特征在于,在所述已发送信息队列存满的情况下,所述检测单元用于:
在所述已发送信息队列中存在至少一条指令的读写类型信息与所述第一指令的读写类型信息不同的情况下,判定所述第一指令不满足指令发送条件;
在所述已发送信息队列中各第二指令的读写类型信息均与所述第一指令的读写类型信息相同的情况下,判定所述第一指令满足指令发送条件。
5.根据权利要求1至4任意一项所述的电路,其特征在于,不同的处理单元用于处理不同的线程组发送的指令。
6.根据权利要求5所述的电路,其特征在于,所述电路还包括第一指令分发单元,用于:
接收各个线程组发送的第一指令,每个线程组发送的第一指令中均携带对应线程组的标识信息;
分别基于各个线程组发送的第一指令中携带的标识信息,将各个线程组发送的第一指令分发至对应的处理单元。
7.根据权利要求5或6所述的电路,其特征在于,不同的处理单元发送的指令具有不同的优先级;所述电路还包括:
指令仲裁单元,用于接收各个处理单元发送的第一指令,并基于各个处理单元发送的第一指令的优先级,依次对各个处理单元发送的第一指令进行发送。
8.根据权利要求1至7任意一项所述的电路,其特征在于,所述第一指令中包括旁路信息的存储地址,所述旁路信息的存储地址下存储有所述第一指令对应的旁路信息;所述电路还包括:
第二指令分发单元,用于对携带所述旁路信息的原始指令进行解耦,得到解耦后的原始指令以及所述旁路信息,将所述旁路信息存储到旁路信息的存储地址下,基于解耦后的原始指令与所述旁路信息的存储地址生成所述第一指令,并将所述第一指令下发至所述指令队列;
总线控制单元,用于基于所述第一指令和所述旁路信息的存储地址生成目标指令,并对所述目标指令进行发送。
9.根据权利要求8所述的电路,其特征在于,所述总线控制单元还用于:
从所述已发送队列中清空已处理完成的第二指令的信息。
10.根据权利要求8或9所述的电路,其特征在于,所述第一指令包括写指令,所述旁路信息包括所述写指令对应的第一旁路信息;所述电路还包括:
第一存储单元,用于存储所述第一旁路信息。
11.根据权利要求10所述的电路,其特征在于,所述总线控制单元用于:
从所述写指令中提取所述第一旁路信息的存储地址,从所述第一旁路信息的存储地址中获取所述第一旁路信息,基于所述第一旁路信息与所述写指令生成所述目标指令,并对所述目标指令进行发送。
12.根据权利要求9至11任意一项所述的电路,其特征在于,所述第一指令包括读指令,所述旁路信息包括所述读指令对应的第二旁路信息;所述电路还包括:
第二存储单元,用于存储所述第二旁路信息。
13.根据权利要求12所述的电路,其特征在于,所述总线控制单元还用于:
将所述读指令作为所述目标指令。
14.根据权利要求12或13所述的电路,其特征在于,所述总线控制单元还用于:
接收所述读指令读取到的目标数据,所述目标数据中携带所述第二旁路信息的存储地址;
将所述目标数据写入所述第二存储单元中所述第二旁路信息的存储地址中。
15.根据权利要求9至14任意一项所述的电路,其特征在于,所述总线控制单元还用于:
在所述第一指令处理完成的情况下,从所述旁路信息的存储地址中清除所述第一指令对应的旁路信息。
16.根据权利要求1至15任意一项所述的电路,其特征在于,在所述第二指令的总数超过所述已发送信息队列的长度的情况下,将所述已发送信息队列中的各项信息均置为无效。
17.根据权利要求16所述的电路,其特征在于,所述电路还包括统计单元,用于统计以下信息:
所述第二指令的总数;
各个第二指令中已处理完成的指令的数量;以及
各个第二指令的读写类型信息;
所述检测单元用于:
在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,基于所述统计单元统计的信息检测所述第一指令是否满足指令发送条件。
18.根据权利要求17所述的电路,其特征在于,在所述已发送信息队列中的各项信息均为无效,且存在与所述第一指令的读写类型信息不同的第二指令的情况下,若各第二指令均处理完成,判定所述第一指令满足指令发送条件。
19.根据权利要求1至18任意一项所述的电路,其特征在于,所述第一指令的信息在所述第一指令发送成功的情况下被写入所述已发送信息队列。
20.一种人工智能芯片,其特征在于,包括:
权利要求1至19任意一项所述的数据处理电路;以及
控制单元,用于向所述数据处理电路中的指令队列发送所述第一指令。
21.一种数据处理方法,其特征在于,应用于权利要求1至19任意一项所述的数据处理电路中的检测单元,所述方法包括:
基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;
在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
22.一种数据处理装置,其特征在于,应用于权利要求1至19任意一项所述的数据处理电路中的检测单元,所述装置包括:
检测单元,用于基于所述第一指令的信息与每条第二指令的信息检测所述第一指令是否满足指令发送条件;
发送单元,用于在满足所述指令发送条件的情况下,从所述指令队列中取出所述第一指令进行发送;
所述信息包括读写类型信息与地址信息中的至少一者。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435830.3A CN114091384A (zh) | 2021-11-29 | 2021-11-29 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
PCT/CN2022/124509 WO2023093335A1 (zh) | 2021-11-29 | 2022-10-11 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435830.3A CN114091384A (zh) | 2021-11-29 | 2021-11-29 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114091384A true CN114091384A (zh) | 2022-02-25 |
Family
ID=80305502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111435830.3A Pending CN114091384A (zh) | 2021-11-29 | 2021-11-29 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114091384A (zh) |
WO (1) | WO2023093335A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093335A1 (zh) * | 2021-11-29 | 2023-06-01 | 上海商汤智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946547B2 (en) * | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US9870339B2 (en) * | 2015-06-26 | 2018-01-16 | Intel Corporation | Hardware processors and methods for tightly-coupled heterogeneous computing |
CN113326066B (zh) * | 2021-04-13 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
CN114091384A (zh) * | 2021-11-29 | 2022-02-25 | 上海阵量智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
-
2021
- 2021-11-29 CN CN202111435830.3A patent/CN114091384A/zh active Pending
-
2022
- 2022-10-11 WO PCT/CN2022/124509 patent/WO2023093335A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093335A1 (zh) * | 2021-11-29 | 2023-06-01 | 上海商汤智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023093335A1 (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101730885B (zh) | 用于多线程和多核心系统的高速缓存及其方法 | |
US7634591B2 (en) | Method and apparatus for tracking command order dependencies | |
CN102662868A (zh) | 用于处理器的动态组相联高速缓存装置及其访问方法 | |
CN105849705B (zh) | 用于检测暂停的逻辑分析器 | |
US7490219B2 (en) | Counter counts valid requests based on a judgment in a system having a plurality of pipeline processors | |
CN115033184A (zh) | 访存处理装置、方法、处理器、芯片、板卡及电子设备 | |
CN107025130B (zh) | 处理节点、计算机系统及事务冲突检测方法 | |
CN113836184A (zh) | 一种业务持久化方法及装置 | |
CN104049955A (zh) | Cache一致性多级流水线处理方法及装置 | |
CN114091384A (zh) | 数据处理电路及人工智能芯片、数据处理方法和装置 | |
CN105980978B (zh) | 用于检测暂停的逻辑分析器 | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
US8464005B2 (en) | Accessing common registers in a multi-core processor | |
CN105934743B (zh) | 一种微处理器及在其中检测arb的模式的方法 | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
CN109508782A (zh) | 基于神经网络深度学习的加速电路和方法 | |
CN115840654B (zh) | 消息的处理方法、系统、计算设备及可读存储介质 | |
CN105980979B (zh) | 用于检测暂停的逻辑分析器 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US20140173225A1 (en) | Reducing memory access time in parallel processors | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 | |
CN110688238B (zh) | 一种分离存储的队列实现方法及装置 | |
CN107025266B (zh) | 业务数据的处理方法和装置 | |
CN104778131B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40061877 Country of ref document: HK |