CN115016848A - 指令处理方法、装置、芯片、板卡、设备及介质 - Google Patents

指令处理方法、装置、芯片、板卡、设备及介质 Download PDF

Info

Publication number
CN115016848A
CN115016848A CN202210612463.8A CN202210612463A CN115016848A CN 115016848 A CN115016848 A CN 115016848A CN 202210612463 A CN202210612463 A CN 202210612463A CN 115016848 A CN115016848 A CN 115016848A
Authority
CN
China
Prior art keywords
instruction
calculation
cached
merging
computing
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
Application number
CN202210612463.8A
Other languages
English (en)
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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent Technology Co 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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202210612463.8A priority Critical patent/CN115016848A/zh
Publication of CN115016848A publication Critical patent/CN115016848A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本公开提供了一种指令处理方法、装置、芯片、板卡、设备及介质,其中,该方法包括:获取当前时刻待执行的第一计算指令;在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。

Description

指令处理方法、装置、芯片、板卡、设备及介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种指令处理方法、装置、芯片、板卡、设备及介质。
背景技术
处理器在处理指令过程中,通常是按照一定的排列顺序执行接收到的指令。指令执行的过程主要包括对处理器中存储空间的访问过程和对数据的计算过程。数据的计算过程需要调用处理的硬件计算装置,在这一过程每个指令中对应计算过程的执行过程需要占用该硬件计算装置的一个时钟周期。如果待处理指令的数量较多,那么现有指令处理过程将影响处理器对指令的处理效率,从而降低处理器的处理性能。
发明内容
本公开实施例至少提供一种指令处理方法、装置、芯片、板卡、设备及介质。
第一方面,本公开实施例提供了一种指令处理装置,所述指令处理装置包括:指令接收单元和指令合并单元:所述指令接收单元,用于获取当前时刻待执行的第一计算指令;所述指令合并单元,用于在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;以及在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
一种可选的实施方式中,所述指令合并单元,还用于:确定所述第一计算指令的指令识别标识,其中,所述指令识别标识用于指示所述第一计算指令是否为待合并指令;在确定所述指令识别标识的标识内容为目标内容的情况下,确定所述第一计算指令为所述待合并指令。
一种可选的实施方式中,所述指令合并单元,还用于:基于预先设置的合并策略确定所述已缓存计算指令与所述第一计算指令是否满足所述指令合并条件;其中,所述指令合并条件为与所述指令合并策略相关联的条件。
一种可选的实施方式中,所述指令合并单元,还用于:在所述合并策略为第一策略的情况下,获取所述已缓存计算指令的指令属性信息,得到第一信息,并获取所述第一计算指令的指令属性信息,得到第二信息;其中,所述第一策略用于指示基于指令属性信息进行计算指令的合并;确定所述第一信息和所述第二信息之间的信息匹配度;在所述信息匹配度满足预设匹配度要求的情况下,确定所述已缓存计算指令和第一计算指令满足所述指令合并条件。
一种可选的实施方式中,所述第一信息包含多个第一子信息,所述第二信息包含多个第二子信息;所述指令合并单元,还用于:分别确定对应属性信息的第一子信息和第二子信息的子匹配度值,得到多个子匹配度值;基于所述多个子匹配度值确定所述第一信息和所述第二信息之间的信息匹配度;所述属性信息包括:指令通道数量、指令计算类型和指令数据类型。
一种可选的实施方式中,所述指令合并单元,还用于:在所述合并策略为第二策略的情况下,确定所述缓存空间的剩余缓存空间;其中,所述第二策略用于指示基于缓存空间中剩余空间大小进行计算指令的合并;在确定所述剩余缓存空间不满足所述第一计算指令的缓存要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
一种可选的实施方式中,所述指令合并单元,还用于:在所述合并策略为第三策略的情况下,获取所述缓存空间中已缓存计算指令的指令数量;其中,所述第三策略用于指示基于预设指令数量进行计算指令的合并;在确定所述指令数量信息满足指令数量要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
一种可选的实施方式中,所述指令处理装置还包括:指令调度单元;所述指令合并单元,用于对所述已缓存计算指令和所述第一计算指令进行合并,得到目标计算指令;所述指令调度单元,用于接收所述指令合并单元发送的所述目标计算指令,并将所述目标计算指令发送到计算装置中进行计算处理。
一种可选的实施方式中,所述指令合并单元,还用于:确定所述第一计算指令和/或所述已缓存计算指令的指令计算类型;在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第一合并模式的情况下,将所述已缓存计算指令和所述第一计算指令进行合并,得到所述目标计算指令。
一种可选的实施方式中,所述指令合并单元,还用于:在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第二合并模式的情况下,向所述指令调度单元发送目标控制指令;所述指令调度单元,用于在接收到所述目标控制指令之后,在同一个指令发射周期内将所述第一计算指令和所述已缓存计算指令发送到计算装置中进行计算处理。
一种可选的实施方式中,所述指令处理装置还包括:指令调度单元;所述指令调度单元,还用于在确定出查找到所述已缓存计算指令和所述第一计算指令不满足所述指令合并条件的情况下,将所述已缓存计算指令发送至计算装置进行处理,并将所述第一计算指令缓存至所述缓存空间。
第二方面,本公开实施例还提供一种指令处理方法,包括:获取当前时刻待执行的第一计算指令;在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
第三方面,本公开实施例还提供一种芯片,包括:指令分发装置、指令处理装置和计算装置;所述指令分发装置,用于向所述指令处理装置分发当前时刻待执行的第一计算指令;所述指令处理装置,用于获取当前时刻待执行的第一计算指令;在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理,得到目标计算指令;所述计算装置,用于获取用于执行所述目标计算指令的操作数,并基于所述操作数执行所述目标计算指令。
第四方面,本公开实施例还提供一种板卡,其特征在于,包括:封装有至少一个如第三方面所述芯片的封装结构。
第五方面,本公开实施例还提供一种计算机设备,包括如第三方面所述的芯片,或者如第四方面所述的板卡。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种指令处理方法的流程图;
图2示出了本公开实施例所提供的指令处理装置的示意图;
图3示出了本公开实施例所提供的一种芯片的结构示意图;
图4示出了本公开实施例所提供的一种指令处理装置的示意图;
图5示出了本公开实施例所提供的一种芯片的示意图;
图6示出了本公开实施例所提供的一种板卡的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,相关技术中,数据的计算过程需要调用处理的硬件计算装置,在这一过程每个指令中对应计算过程的执行过程需要占用该硬件计算装置的一个时钟周期。如果待处理指令的数量较多,那么现有指令处理过程将影响处理器对指令的处理效率,从而降低处理器的处理性能。基于此,发明人发现可以将全部指令中的部分指令合并起来进行处理,以提高计算装置对于数据的吞吐率,进而提高处理器的性能。这里,将部分指令合并起来处理可以理解为通过占用同一个时钟周期来对该部分指令进行处理,从而提高处理器的处理效率和处理器的处理性能,进而缩短处理器对指令的处理时间。
发明人发现,在对指令进行合并的过程中,可以通过编程人员在程序中设定待合并的指令,并通过预先编写的程序对待合并的指令进行合并。然而,发明人发现,该指令合并方式具有一定的局限性,例如,如果合并条件过多,则会导致编程人员所编写的程序过于复杂,增加了程序出现漏洞或者缺陷的概率,从而导致指令合并结果的准确性不理想。
基于上述研究,本公开提供了一种指令处理方法、装置、芯片、板卡、设备及介质。在本公开实施例中,首先,可以获取当前时刻待执行的第一计算指令,在确定出该第一计算指令为待合并计算指令之后,可以在缓存空间中查找已缓存的计算指令,并在确定出该已缓存计算指令和该第一计算指令满足指令合并条件的情况下,将该第一计算指令和已缓存计算指令进行合并处理,并对合并之后的指令进行处理。通过上述处理方式,可以实现将满足指令合并条件的计算指令进行自动合并,以通过处理器对合并后的指令进行处理,从而可以提高处理器的处理效率,加快处理器对指令的处理速度。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种指令处理方法进行详细介绍,本公开实施例所提供的指令处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,该指令处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的一种指令处理方法的流程图,所述方法包括步骤S101~S105,该步骤S101~S105所描述的过程可以应用于指令处理装置,其中,该指令处理装置为芯片的处理器中的装置,该芯片为上述计算机设备中的芯片,具体地:
S101:获取当前时刻待执行的第一计算指令。
在本公开实施例中,处理器的指令处理装置可以接收处理器中指令分发装置分发的待执行指令(即,上述第一计算指令)。这里,该第一计算指令可以为任意一种计算指令,例如,可以为macc指令,即乘累加指令。例如,该macc指令可以为:macc1(a0,b0),其中,a0和b0为寄存器标识。其中,该寄存器标识可以理解为存储用于执行该第一计算指令macc1的操作数的寄存器。
S103:在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令。这里,已缓存计算指令为在接收到所述第一计算指令之前缓存至所述缓存空间中的待合并计算指令。
在本公开实施例中,在获取到上述第一计算指令后,可以获取第一计算指令的指令属性信息,从而基于该第一计算指令的指令属性信息确定该第一计算指令是否为能够合并的指令,并在确定该第一计算指令为能够合并的指令的情况下,将该第一计算指令确定为待合并指令。
这里,指令属性信息可以用于指示以下至少之一:指令计算类型、指令所占用指令发送通道的数量、该指令所对应操作数的数据类型。
例如,数据类型可以包含二进制数据、八进制数据、十进制数据、十六进制数据等。指令计算类型可以用于表示第一计算指令的运算策略,例如点积计算,加减乘除运算等。指令所占用指令发送通道的数量可以理解为指令处理装置向计算装置发送该第一计算指令的过程中,该第一计算指令所占用的指令发送通道的数量。这里,计算装置可以理解为处理器中执行该第一计算指令的单元。
以指令属性信息为指令所占用指令发送通道的数量为例,在指令处理装置获取到第一计算指令后,可以通过指令处理装置和计算装置之间预先设定的指令发送通道将该指令发送至计算装置,以使该计算装置对获取到的第一计算指令进行数据处理。如果指令处理装置在向该计算装置发送第一计算指令的过程中,所占用的指令发送通道的通道数量小于上述预先设定的指令发送通道的通道数量。此时,如果选择将第一计算指令在一个时钟周期将该第一计算指令发送至计算装置中进行处理,将浪费大量的资源。
假设,上述预先设定的指令发送通道数量为8个通道,且该第一计算指令所占用的指令发送通道的数量为4个通道,此时,可以确定第一计算指令所占用的指令发送通道的数量小于预先设定的指令发送通道数量。此时,为了节省处理器的资源,可以将该第一计算指令与其他计算指令进行合并之后再发送至计算装置,此时,可以确定该第一计算指令为待合并指令。
以指令属性信息为指令计算类型为例。假设,预先设定的能够合并的指令的指令计算类型为点积计算。在指令接收单元在接收到第一计算指令后,可以获取第一计算指令的指令计算类型,如果该指令计算类型为点积计算,那么该第一计算指令为能够合并的指令,此时,可以确定该第一计算指令为待合并指令。
以指令属性信息为数据类型为例。假设,预先设定的能够合并的指令的数据类型为二进制数据。在指令接收单元在接收到第一计算指令后,可以获取第一计算指令的数据类型,如果该数据类型为二进制数据,那么该第一计算指令为能够合并的指令,此时,可以确定该第一计算指令为待合并指令。
在确定第一计算指令为待合并指令之后,可以在处理器的缓存空间中查找已缓存计算指令。这里,查找到的已缓存计算指令的指令数量可以为一个,还可以为多个。
S105:在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
在缓存空间中查找到已缓存计算指令的情况下,可以确定该已缓存计算指令和第一计算指令是否满足指令合并条件。
这里,可以确定已缓存计算指令和第一计算指令的合并策略,并基于合并策略确定所述已缓存计算指令与所述第一计算指令是否满足所述指令合并条件;其中,所述指令合并条件为与所述指令合并策略相关联的条件。
其中,合并策略可以用于指示基于指令属性信息对已缓存计算指令和第一计算指令进行合并;或者,用于指示基于缓存空间中剩余空间大小对已缓存计算指令和第一计算指令进行合并;或者,用于指示基于预设指令数量对已缓存计算指令和第一计算指令进行合并。可以理解的是,不同合并策略所对应的指令合并条件不相同。
如果合并策略用于指示基于指令属性信息对已缓存计算指令和第一计算指令进行合并,那么可以基于已缓存计算指令的指令属性信息以及第一计算指令的指令属性信息确定,已缓存计算指令与第一计算指令是否满足指令合并条件。
延续上例,在上述预先设定的指令发送通道的通道数量为8个通道的情况下,可以分别基于已缓存计算指令和第一计算指令的指令属性信息,确定该已缓存计算指令和第一计算指令所占用的指令发送通道的通道数量和是否小于或者等于预先设定的指令发送通道的通道数量。在确定出是的情况下,可以确定该已缓存计算指令和第一计算指令满足指令合并条件。
具体的,假设指令处理装置在向计算装置发送已缓存计算指令时,所占用的指令发送通道的通道数量为4个,指令处理装置在向计算装置发送第一计算指令时,所占用的指令发送通道的通道数量为4个,那么,该已缓存计算指令和第一计算指令所占用的通道数和为8个通道。此时,可以确定该已缓存计算指令和第一计算指令满足指令合并条件。接下来,可以对该第一计算指令和已缓存计算指令进行合并处理。
如果合并策略用于指示基于缓存空间中剩余空间大小对已缓存计算指令和第一计算指令进行合并,那么可以基于剩余空间大小确定已缓存计算指令和第一计算指令是否满足指令合并条件。
如果合并策略用于指示基于预设指令数量进行计算指令的合并,那么可以基于已缓存计算指令的指令数量和第一计算指令的指令数量,确定已缓存计算指令和第一计算指令是否满足指令合并条件。
通过上述描述可知,可以实现将满足指令合并条件的计算指令进行自动合并,以通过处理器对合并后的指令进行处理,从而可以提高处理器的处理效率,加快处理器对指令的处理速度。
在一个可选的实施方式中,上述步骤S103,确定出所述第一计算指令为待合并指令,具体包括如下过程:
S1031:确定所述第一计算指令的指令识别标识,其中,所述指令识别标识用于指示所述第一计算指令是否为待合并指令。
S1032:在确定所述指令识别标识的标识内容为目标内容的情况下,确定所述第一计算指令为所述待合并指令。
在本公开实施例中,可以预先设置先决合并条件和后置合并条件,其中,该先决合并条件用于确定第一计算指令是否为待合并指令,后置合并条件用于确定第一计算指令和查找到的已缓存计算指令是否能够进行合并,也即,上述指令合并条件可以为上述后置合并条件。
这里,可以确定第一计算指令的指令识别标识,根据指令识别标识确定该第一计算指令是否满足先决合并条件。在确定第一计算指令满足先决合并条件的情况下,可以将该第一计算指令确定为待合并指令。
这里,可以通过以下方式确定第一计算指令的指令识别标识。
在第一计算指令的指令内容中确定指令识别标识。
这里,获取第一计算指令的指令内容,进而在该指令内容中查找指令识别标识。在查找到第一计算指令的指令识别标识的标识内容之后,可以将该标识内容和目标内容进行匹配,并在该标识内容与目标内容相同的情况下,将该第一计算指令确定为待合并指令。
例如,第一计算指令为macc,那么该第一计算指令的指令内容可以为:macc(a0,b0,c),其中,a0和b0为寄存器标识。其中,该寄存器标识可以理解为存储用于执行该第一计算指令macc1的操作数的寄存器,c可以理解为上述指令识别标识。
通过上述描述可知,本公开实施例中,指令识别标识的标识内容可以用于指示指令处理装置在接收到该第一计算指令之后是否立即向计算装置输出该第一计算指令。在标识内容为目标内容的情况下,可以确定不需要立即输出该第一计算指令,也即,该第一计算指令满足先决合并条件,并将该第一计算指令确定为待合并指令。
上述实施方式中,在获取到第一计算指令的指令内容后,可以确定该指令内容中的指令识别标识,并在该指令识别标识的标识内容为目标内容的情况下,确定该第一计算指令满足先决合并条件,从而将该第一计算指令确定为待合并指令。通过该处理方式,可以提高待合并指令的设置灵活性,以满足用户的各种合并需求。
本公开实施例中,承接上述方式,可以确定每个第一计算指令的指令识别标识。
可以在每个第一计算指令的指令内容均设置上述指令识别标识。指令处理装置在获取到每个第一计算指令之后,可以在每个第一计算指令的指令内容中查找该指令识别标识,以根据该指令识别标识的标识内容确定该第一计算指令是否为待合并指令。
这里,指令识别标识的标识内容除了能够用于指示该第一计算指令是否满足先决合并条件之外,还可以通过该指令识别标识的标识内容确定在该第一计算指令满足先决合并条件的情况下,该缓存空间中所包含的已缓存计算指令中能够与该第一计算指令进行合并的指令。例如,可以针对不同类型的待合并指令设置不同的标识内容,以通过该标识内容对相同类型的待合并指令进行合并。
在一个可选的实施方式中,上述步骤S105,确定出查找到所述已缓存计算指令和所述第一计算指令满足指令合并条件,具体包括如下过程:
(1)、在所述合并策略为第一策略的情况下,获取所述已缓存计算指令的指令属性信息,得到第一信息,并获取所述第一计算指令的指令属性信息,得到第二信息;其中,所述第一策略用于指示基于指令属性信息进行计算指令的合并;
(2)、确定所述第一信息和所述第二信息之间的信息匹配度;
(3)、在所述信息匹配度满足预设匹配度要求的情况下,确定所述已缓存计算指令和第一计算指令满足所述指令合并条件。
在合并策略为第一策略的情况下,可以分别获取已缓存计算指令和第一计算指令的指令属性信息,从而得到已缓存计算指令所对应的第一信息(相当于已缓存计算指令所对应的指令属性信息的属性值)以及第一计算指令所对应的第二信息(相当于第一计算指令所对应的属性信息的属性值)。
这里,指令属性信息可以用于指示以下至少之一:指令计算类型、指令所占用指令发送通道的数量、该指令所对应操作数的数据类型。
例如,数据类型可以包含二进制数据、八进制数据、十进制数据、十六进制数据等。指令计算类型可以用于表示第一计算指令的运算模式,例如点积计算,加减乘除运算等。指令所占用指令发送通道的数量可以理解为指令处理装置向计算装置发送该对应指令的过程中,该指令所占用的指令发送通道的数量。这里,计算装置可以理解为处理器中执行上述指令的单元。
通过上述描述可知,第一信息包含多个第一子信息,其中,该多个第一子信息包含已缓存计算指令的以下指令属性信息的属性值:指令计算类型、指令所占用指令发送通道的数量、该指令所对应操作数的数据类型;第二信息包含多个第二子信息,其中,该多个第二子信息包含第一计算指令的以下指令属性信息的属性值:指令计算类型、指令所占用指令发送通道的数量(以下简称通道数量)、该指令所对应操作数的数据类型。
在此情况下,指令合并单元,还用于:分别确定对应属性信息的第一子信息和第二子信息的子匹配度值,得到多个子匹配度值;以及基于所述多个子匹配度值确定所述第一信息和所述第二信息之间的信息匹配度。
这里,第一子信息中的通道数量与第二子信息中通道数量可以通道数量属性的属性值,第一子信息中的数据类型与第二子信息中数据类型可以是数据类型属性的属性值。
接下来,可以确定每个所述信息组中第一子信息和第二子信息的子匹配度值,得到多个子匹配度值。
在确定每个信息组中第一子信息和第二子信息之间的子匹配度值的过程中,针对上述第一子信息和第二子信息中所包含的不同内容,可以设置不同的匹配标准,具体包括如下几种情况:
情况一:第一子信息为已缓存计算指令的数据类型,第二子信息为第一计算指令的数据类型。此时,可以确定上述第一计算指令和已缓存计算指令之间的数据类型是否匹配。
在本公开实施例中,可以基于上述第二子信息确定出第一计算指令所对应操作数的第一数据类型,并基于上述第一子信息确定出已缓存计算指令所对应操作数的第二数据类型,并确定该第一数据类型与第二数据类型是否匹配。在该第一数据类型与第二数据类型匹配的情况下,确定该第一计算指令和已缓存计算指令之间的数据类型匹配。例如,在该第一数据类型与第二数据类型所指示的数制均为二进制的情况下,可以确定该第一计算指令和已缓存计算指令之间的数据类型匹配。此时,可以确定第一子信息和第二子信息的子匹配度值为预设数值(例如,1/3)。
情况二:第一子信息为已缓存计算指令的指令计算类型,第二子信息为第一计算指令的指令计算类型。此时,可以确定上述第一计算指令和已缓存计算指令之间的指令计算类型是否匹配。
在本公开实施例中,可以分别基于上述第一子信息以及第二子信息确定出第一计算指令和已缓存计算指令的运算模式,并在该第一计算指令和已缓存计算指令的运算模式相同的情况下,确定该第一计算指令和已缓存计算指令的之间的指令计算类型相匹配。例如,在确定出该第一计算指令和已缓存计算指令的运算模式均为点积运算的情况下,可以确定该第一计算指令和已缓存计算指令的指令计算类型相匹配。此时,可以确定第一子信息和第二子信息的子匹配度值为预设数值(例如,1/3)。
情况三:第一子信息为已缓存计算指令的通道数量,第二子信息为第一计算指令的通道数量。此时,可以确定上述第一计算指令所占用指令发送通道的数量和已缓存计算指令所占用指令发送通道的数量是否匹配。
在本公开实施例中,可以基于上述第二子信息确定出第一计算指令所占用指令发送通道的数量,即第一通道数信息,并基于上述第一子信息确定出已缓存计算指令所占用指令发送通道的数量,即第二通道数信息。然后,可以确定该第一通道数信息以及第二通道数信息的和是否和上述指令发送通道相匹配,并在该第一通道数信息以及第二通道数信息的和与上述预先设定的指令发送通道的通道数量相匹配的情况下,确定该第一计算指令和已缓存计算指令之间的通道数信息相匹配。此时,可以确定第一子信息和第二子信息的子匹配度值为预设数值(例如,1/3)。
这里,在该第一通道数信息以及第二通道数信息的和小于或者等于预先设定的指令发送通道的通道数量的情况下,可以确定该第一计算指令和已缓存计算指令之间的通道数信息相匹配。
举例来说,在上述指令发送通道的总通道数量为8个通道的情况下,若上述第一计算指令所对应的第一通道数信息为4个通道,已缓存计算指令所对应的第二通道信息为4个通道,那么,可以确定该第一计算指令和已缓存计算指令之间的通道数信息相匹配。
在得到多个子匹配度值之后,就可以将多个子匹配度值进行求和运算,得到第一信息和第二信息之间的信息匹配度。因此,上述信息匹配度可以为指令属性信息中相匹配的内容的占比,例如,若上述第一计算指令和已缓存计算指令之间的通道数信息不匹配,而指令计算类型和数据类型相匹配,那么指令属性信息中相匹配的内容的占比为2/3,此时,可以该第一计算指令和已缓存计算指令之间的信息匹配度可以四舍五入为67%。
在上述信息匹配度满足预设匹配度要求的情况下,可以确定该已缓存计算指令和第一计算指令满足后置合并条件。例如,若上述第一计算指令和已缓存计算指令之间的信息匹配度为100%,预设匹配度要求为80%,此时可以确定该已缓存计算指令和第一计算指令满足后置合并条件,即满足指令合并条件。
在本公开实施例中,在缓存空间中包含已缓存计算指令的情况下,可以基于已缓存计算指令和第一计算指令的指令属性信息,确定已缓存计算指令和第一计算指令之间的信息匹配度是否满足预设匹配度要求,从而对第一计算指令和已缓存计算指令是否满足指令合并条件进行判断,为将该第一计算指令和已缓存计算指令进行合并处理提供了技术基础。
在一个可选的实施方式中,上述步骤S105,确定出查找到所述已缓存计算指令和所述第一计算指令满足指令合并条件,具体还包括如下过程:
(1)、在所述合并策略为第三策略的情况下,获取所述缓存空间中已缓存计算指令的指令数量信息;其中,所述第三策略用于指示基于预设指令数量进行计算指令的合并;
(2)、在确定所述指令数量信息满足指令数量要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
在合并策略为第三策略的情况下,如果确定出上述第一计算指令为待合并指令,则可以获取缓存空间中已缓存计算指令的指令数量,并确定该指令数量信息是否满足指令数量要求。
这里,编程人员在编写程序代码之后,指令处理装置可以基于该程序代码确定用于指示计算机设备运行的指令。因此,编程人员在编写程序代码的过程中,还可以在该程序代码中编写指令合并条件,例如,该指令合并条件可以为指令数量要求,该指令数量要求可以用于指示在指令合并过程中进行合并的指令的数量(即,上述预设指令数量)。
具体实施时,在预设指令数量为n的情况下,若缓存空间中已缓存计算指令的指令数量信息为n-1,可以确定该指令数量信息满足指令数量要求,并确定该已缓存计算指令和第一计算指令满足指令合并条件。应理解的是,该指令数量要求n为2以上的整数,如3、4、5、6等。
若缓存空间中已缓存计算指令的指令数量信息为n,则可以按照缓存空间中已缓存计算指令的缓存顺序在已缓存计算指令中选择最先缓存至缓存空间的n-1个已缓存计算指令,并将最先缓存至缓存空间的n-1个已缓存计算指令和第一计算指令进行合并。
在本公开实施例中,可以设置指令数量要求,并在缓存空间中已缓存计算指令的指令数量信息满足该指令数量要求的情况下,确定已缓存计算指令和第一计算指令满足指令合并条件,从而对指令合并的过程进行了完善,提高了进行指令合并处理的准确性。
在一个可选的实施方式中,上述步骤S105,确定出查找到所述已缓存计算指令和所述第一计算指令满足指令合并条件,具体还包括如下过程:
(1)、在所述合并策略为第二策略的情况下,确定所述缓存空间的剩余缓存空间;其中,所述第二策略用于指示基于缓存空间中剩余空间大小进行计算指令的合并;
(2)、在确定所述剩余缓存空间不满足所述第一计算指令的缓存要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
在合并策略为第二策略的情况下,在将该第一计算指令存储到缓存空间中之前,还可以确定该缓存空间中的剩余缓存空间是否满足该第一计算指令的缓存要求。
在该剩余缓存空间不满足所述第一计算指令的缓存要求的情况下,可以确定已缓存计算指令和第一计算指令满足指令合并条件,并对该已缓存计算指令和第一计算指令满足指令进行合并处理。
在该剩余缓存空间满足所述第一计算指令的缓存要求的情况下,可以将该第一计算指令缓存至该缓存空间,直至剩余缓存空间不满足缓存要求时,将不满足缓存要求时接收到的第一计算指令和缓存空间中的已缓存计算指令进行合并。
举例来说,可以为上述缓存空间设置最大缓存数量y,该最大缓存数量y可以用于指示该缓存空间中可以存储的已缓存计算指令数量的上限值。在该缓存空间的剩余缓存空间无法完整对第一计算指令进行缓存时,可以确定该剩余缓存空间不满足第一计算指令的缓存要求。
在确定该缓存空间的剩余缓存空间的过程中,可以获取该缓存空间中已缓存计算指令已占用的缓存空间,并计算该缓存空间的最大缓存空间y和已占用的缓存空间x的差值y-x,并将该差值y-x的结果确定为剩余缓存空间。如果该差值y-x小于第一计算指令的指令大小,则确定剩余缓存空间不满足所述第一计算指令的缓存要求,也即可以确定已缓存计算指令和第一计算指令满足指令合并条件。
在本公开实施例中,在将上述第一计算指令存储到缓存空间中之前,还可以确定该缓存空间中的剩余缓存空间是否满足该第一计算指令的缓存要求,并在不满足缓存要求的情况下,确定已缓存计算指令和第一计算指令满足指令合并条件,从而对该已缓存计算指令和第一计算指令进行合并处理,进一步对指令合并的过程进行了完善,提高了进行指令合并处理的准确性。
在一个可选的实施方式中,上述步骤S105,将所述第一计算指令和所述已缓存计算指令进行合并处理,具体包括如下过程:
S1051:对所述已缓存计算指令和所述第一计算指令进行合并,得到目标计算指令;
S1052:将所述目标计算指令发送到计算装置中进行计算处理。
在本公开实施例中,在将上述已缓存计算指令和第一计算指令进行合并处理之后,可以得到目标计算指令,然后,可以将该目标计算指令发送到计算装置中,以使该计算装置基于该目标计算指令对待处理数据进行计算处理,得到计算结果。
具体实施时,以卷积运算中的点积运算为例,展示上述合并处理的过程:
例如,处理器接收到的指令为计算矩阵a和矩阵b的点积a·b,这里,
Figure BDA0003673365220000111
Figure BDA0003673365220000112
那么,上述a·b=a0b0+a1b1+…+a8b8。因此,基于获取到的指令a·b,可以分别得到如下所示的计算指令0-计算指令8:
计算指令0:macc(a0,b0);
计算指令1:macc(a1,b1);
计算指令2:macc(a2,b2);
计算指令3:macc(a3,b3);
计算指令4:macc(a4,b4);
计算指令5:macc(a5,b5);
计算指令6:macc(a6,b6);
计算指令7:macc(a7,b7);
计算指令8:macc(a8,b8)。
这里,对上述计算指令0至8进行指令合并的合并策略为上述第一策略和第三策略,即:基于指令属性信息和指令数量要求对计算指令0至8进行合并。若上述指令数量要求n=2,那么,针对上述计算指令0-计算指令8进行合并处理的过程过下:
获取计算指令0,并将获取到的计算指令0:macc(a0,b0)确定为第一计算指令,并判断该计算指令0是否满足先决合并条件,在该计算指令0满足先决合并条件的情况下,将该计算指令0存储到缓存空间中作为已缓存计算指令。
获取计算指令1,并将获取到的计算指令1:macc(a1,b1)确定为第一计算指令,接下来,可以分别获取第一计算指令以及缓存空间中的已缓存计算指令的指令计算类型。由于缓存空间中的已缓存计算指令的指令数量信息为1,满足指令数量要求n-1≤1,因此,如果计算指令1的指令计算类型与计算指令0的指令计算类型相同,则该计算指令1和计算指令0满足指令合并条件。此时,可以将该计算指令1和计算指令0进行合并处理,得到目标计算指令macc(a0,b0,a1,b1),并将该目标计算指令macc(a0,b0,a1,b1)发送至计算装置中进行计算处理。
获取计算指令2,并将获取到的计算指令2:macc(a2,b2)确定为第一计算指令,并判断该计算指令2是否满足先决合并条件,在该计算指令2满足先决合并条件的情况下,将该计算指令2存储到缓存空间中作为已缓存计算指令。
获取计算指令3,并将获取到的计算指令3:macc(a3,b3)确定为第一计算指令,接下来,可以分别获取第一计算指令以及缓存空间中的已缓存计算指令的指令计算类型。由于缓存空间中的已缓存计算指令的指令数量信息为1,满足指令数量要求n-1≤1,因此,如果计算指令2的指令计算类型与计算指令3的指令计算类型相同,则可以确定该计算指令3和计算指令2满足指令合并条件。此时,可以将该计算指令2和计算指令3进行合并处理,得到目标计算指令macc(a2,b2,a3,b3),并将该目标计算指令macc(a2,b2,a3,b3)发送至计算装置中进行计算处理。
这里,对上述计算指令4-7的合并过程如上所述,此处不再赘述。
接下来,由于计算指令8为计算a·b的指令中的最后一条计算指令,因此,区别于上述指令类型为不需要立即输出的指令类型,该计算指令8的指令识别标识所指示的指令类型可以为需要立即输出的指令类型。因此,该计算指令8不满足上述先决合并条件,此时,可以直接将该计算指令8发送到计算装置中进行计算处理。
在本公开实施例中,可以对已缓存计算指令和第一计算指令进行合并,得到目标计算指令,并将该目标计算指令发送到计算装置中进行计算处理,从而使得计算装置能够基于该目标计算指令对待处理数据进行计算处理,得到计算结果。
在一个可选的实施方式中,上述步骤S1051,对所述已缓存计算指令和所述第一计算指令进行合并,得到目标计算指令,具体包括如下过程:
(1)、确定所述第一计算指令和所述已缓存计算指令的指令计算类型;
(2)、在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第一合并模式的情况下,将所述已缓存计算指令和所述第一计算指令进行合并,得到所述目标计算指令;
(3)、在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第二合并模式的情况下,在同一个指令发射周期内将所述第一计算指令和所述已缓存计算指令发送到计算装置中进行计算处理。
在本公开实施例中,在针对上述第一计算指令和已缓存计算指令进行合并时,可以采用不同的指令合并模式,其中,采用的指令合并模式可以根据该第一计算指令和所述已缓存计算指令的指令计算类型进行确定。
举例来说,上述指令合并模式可以分为第一合并模式和第二合并模式。在该第一计算指令和已缓存计算指令的指令计算类型相同的情况下,可以采用第一合并模式,在该第一计算指令和已缓存计算指令的指令计算类型不相同的情况下,可以采用第二合并模式。
在本公开实施例中,在指令合并模式为上述第一合并模式的情况下,首先可以分别获取上述第一计算指令和已缓存计算指令所对应的上述指令计算类型,并基于该指令计算类型所指示的计算方式,对第一计算指令和已缓存计算指令中的元素进行合并。例如,在该第一计算指令和已缓存计算指令的指令计算类型所指示的计算方式为点积运算的情况下,可以将该第一算指令和已缓存计算指令中的元素进行合并,从而得到目标计算指令。
这里,元素可以用于指示执行对应计算指令的操作数,或者,用于指示存储该操作数的寄存器的标识信息。
具体的,以上述计算指令0macc(a0,b0)和计算指令1macc(a1,b1)为例,将该计算指令1macc(a1,b1)和计算指令0macc(a0,b0)进行合并处理后,可以得到目标计算指令macc(a0,b0,a1,b1)。
另外的,上述第二合并模式所指示的合并方式可以为并列合并,即在同一个指令发射周期内向计算装置发送第一计算指令和已缓存计算指令,例如,已缓存计算指令为上述macc指令,第一计算指令为初始化指令minit,那么,该第一计算指令和已缓存计算指令所对应的指令合并模式可以为该第二合并模式。
在本公开实施例中,可以基于指令计算类型确定第一计算指令和已缓存计算指令的指令合并模式,从而使得本公开能够适用于不同指令计算类型的计算指令,增加了本公开的适用范围。
在一个可选的实施方式中,上述方法还包括如下过程:
在确定出查找到所述已缓存计算指令和所述第一计算指令不满足所述指令合并条件的情况下,将所述已缓存计算指令发送至计算装置进行处理,并将所述第一计算指令缓存至所述缓存空间。
通过上述描述可知,已缓存计算指令和第一计算指令之间的合并策略包含以下至少之一:第一策略、第二策略和第三策略,其中,每种合并策略对应一个子合并条件,分别为子合并条件1、子合并条件2和子合并条件3。
这里,在指令合并条件包含多个子合并条件的情况下,如果已缓存计算指令和第一计算指令不满足第一策略所对应的子合并条件,那么可以将已缓存计算指令发送至计算装置进行处理,并将第一计算指令缓存至缓存空间。
以合并策略为第一策略和第三策略为例介绍。
在上述缓存空间中包含已缓存计算指令的情况下,可以获取已缓存计算指令的指令属性信息,得到第一信息,并获取第一计算指令的指令属性信息,得到第二信息。然后,可以确定该第一信息和第二信息之间的信息匹配度是否满足预设匹配度要求,此时,可以确定已缓存计算指令和第一计算指令不满足子合并条件1,此时,无论已缓存计算指令的指令数量是否满足子合并条件3,都可以将已缓存计算指令发送至计算装置进行处理,并将第一计算指令缓存至所述缓存空间。
在另一个实施例中,在指令合并条件包含多个子合并条件的情况下,如果已缓存计算指令和第一计算指令不满足第一策略所对应的子合并条件,还可以将第一计算指令发送至计算装置进行处理,并继续对接下来的获取到的计算指令进行识别,确定接下来的计算指令是否能和已缓存计算指令进行合并。
在本公开实施例中,在确定出查找到已缓存计算指令和第一计算指令不满足指令合并条件的情况下,可以将已缓存计算指令发送至计算装置进行处理,并将第一计算指令缓存至缓存空间中,从而在能够进行合并处理的计算指令之间相隔较远的情况下,减少因为等待合并而造成的指令处理延时。
参见图2所示,为本公开实施例提供的一种指令处理装置的示意图。参见图3所示,为本公开实施例提供的一种芯片的示意图。
如图3所示,该芯片包含指令分发装置31、指令处理装置32、调度单元33和计算装置34。
如图3所示,指令分发装置用于向指令处理装置分发第一计算指令;指令处理装置用于基于本公开实施例所提供的指令处理装置对该第一计算指令进行处理;指令调度单元用于将合并之后的计算指令发送至对应的计算装置进行处理。
在本公开实施例中,该指令处理装置32包括:指令接收单元10和指令合并单元20。
指令接收单元10,用于获取当前时刻待执行的第一计算指令。
在本公开实施例中,芯片的指令处理装置可以接收芯片中指令分发装置分发的待执行指令(即,上述第一计算指令)。这里,该第一计算指令可以为任意一种计算指令,例如,可以为macc指令,即乘累加指令。例如,该macc指令可以为:macc1(a0,b0),其中,a0和b0为寄存器标识。其中,该寄存器标识可以理解为存储用于执行该第一计算指令macc1的操作数的寄存器。
所述指令合并单元20,用于在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;其中,所述已缓存计算指令为在接收到所述第一计算指令之前缓存至所述缓存空间中的待合并计算指令。
在本公开实施例中,在获取到上述第一计算指令后,可以获取第一计算指令的指令属性信息,从而基于该第一计算指令的指令属性信息确定该第一计算指令是否为能够合并的指令,并在确定该第一计算指令为能够合并的指令的情况下,将该第一计算指令确定为待合并指令。
在缓存空间中查找到已缓存计算指令的情况下,可以确定该已缓存计算指令和第一计算指令是否满足指令合并条件。具体的,可以基于预先设置的合并策略确定所述已缓存计算指令与所述第一计算指令是否满足所述指令合并条件;其中,所述指令合并条件为与所述指令合并策略相关联的条件。在确定该已缓存计算指令和第一计算指令满足指令合并条件的条件下,可以对该第一计算指令和已缓存计算指令进行合并处理。
通过上述描述可知,可以实现将满足指令合并条件的计算指令进行自动合并,以通过对合并后的指令进行处理,从而可以提高芯片中处理器的处理效率,加快处理器对指令的处理速度;同时还可以减少了编程人员的编程工作量。
在一个可选的实施方式中,指令合并单元20,还用于:
(1)、确定所述第一计算指令的指令识别标识,其中,所述指令识别标识用于指示所述第一计算指令是否为待合并指令;
(2)、在确定所述指令识别标识的标识内容为目标内容的情况下,确定所述第一计算指令为所述待合并指令。
在本公开实施例中,可以预先设置先决合并条件和后置合并条件,其中,该先决合并条件用于确定第一计算指令是否为待合并指令,后置合并条件用于确定第一计算指令和查找到的已缓存计算指令是否能够进行合并,也即,上述指令合并条件可以为上述后置合并条件。
这里,可以确定第一计算指令的指令识别标识,根据指令识别标识确定该第一计算指令是否满足先决合并条件。在确定第一计算指令满足先决合并条件的情况下,可以将该第一计算指令确定为待合并指令。具体判断该第一计算指令是否满足先决合并条件的过程如上述图1所对应的指令处理方法中的步骤S1031所对应的实施方式所述,此处不再赘述。
在本公开实施例中,在获取到第一计算指令的指令内容后,可以确定该指令内容中的指令识别标识,并在该指令识别标识的标识内容为目标内容的情况下,确定该第一计算指令满足先决合并条件,从而将该第一计算指令确定为待合并指令。具体确定指令识别标识的标识内容是否为目标内容的过程如上述图1所对应的指令处理方法中的步骤S1032所述,此处不再赘述。
在一个可选的实施方式中,上述指令合并单元,还用于:
(1)、在合并策略为第一策略的情况下,获取所述已缓存计算指令的指令属性信息,得到第一信息,并获取所述第一计算指令的指令属性信息,得到第二信息;其中,所述第一策略用于指示基于指令属性信息进行计算指令的合并;
(2)、确定所述第一信息和所述第二信息之间的信息匹配度;
(3)、在所述信息匹配度满足预设匹配度要求的情况下,确定所述已缓存计算指令和第一计算指令满足所述指令合并条件。
在合并策略为第一策略的情况下,可以分别获取已缓存计算指令和第一计算指令的指令属性信息,从而得到已缓存计算指令所对应的第一信息以及第一计算指令所对应的第二信息。
另外的,在本公开实施方式中,上述指令合并单元在确定第一信息和第二信息之间的信息匹配度是否满足预设匹配度要求的过程如上述图1所对应的指令处理方法中的步骤S105所对应的实施方式所述,此处不再赘述。
在本公开实施例中,在缓存空间中包含已缓存计算指令的情况下,可以基于已缓存计算指令和第一计算指令的指令属性信息,确定已缓存计算指令和第一计算指令之间的信息匹配度是否满足预设匹配度要求,从而对第一计算指令和已缓存计算指令是否满足指令合并条件进行判断,为将该第一计算指令和已缓存计算指令进行合并处理提供了技术基础。
在一个可选的实施方式中,在第一信息包含多个第一子信息,所述第二信息包含多个第二子信息的情况下,上述指令合并单元,还用于:
分别确定对应属性信息的第一子信息和第二子信息的子匹配度值,得到多个子匹配度值;基于所述多个子匹配度值确定所述第一信息和所述第二信息之间的信息匹配度;所述属性信息包括:指令通道数量、指令计算类型和指令数据类型。
具体实施过程如上述实施例中情况一至情况三的描述,此处不再详细赘述。
在一个可选的实施方式中,上述指令合并单元,还用于:
(1)、在所述合并策略为第二策略的情况下,确定所述缓存空间的剩余缓存空间;其中,所述第二策略用于指示基于缓存空间中剩余空间大小进行计算指令的合并;
(2)、在确定所述剩余缓存空间不满足所述第一计算指令的缓存要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
在合并策略为第二策略的情况下,确定剩余缓存空间是否满足第一计算指令的缓存要求的过程如上述图1所对应的指令处理方法中的步骤S105所对应的实施方式所述,此处不再赘述。
在本公开实施例中,在将上述第一计算指令存储到缓存空间中之前,还可以确定该缓存空间中的剩余缓存空间是否满足该第一计算指令的缓存要求,并在不满足缓存要求的情况下,确定已缓存计算指令和第一计算指令满足指令合并条件,从而对该已缓存计算指令和第一计算指令进行合并处理,进一步对指令合并的过程进行了完善,提高了进行指令合并处理的准确性。
在一个可选的实施方式中,上述指令合并单元,还用于:
(1)、在所述合并策略为第三策略的情况下,获取所述缓存空间中已缓存计算指令的指令数量;其中,所述第三策略用于指示基于预设指令数量进行计算指令的合并;
(2)、在确定所述指令数量信息满足指令数量要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
在合并策略为第三策略的情况下,确定缓存空间中已缓存计算指令的指令数量是否满足指令数量要求的过程如上述图1所对应的指令处理方法中的步骤S105所对应的实施方式所述,此处不再赘述。
在本公开实施例中,可以设置指令数量要求,并在缓存空间中已缓存计算指令的指令数量信息满足该指令数量要求的情况下,确定已缓存计算指令和第一计算指令满足指令合并条件,从而对指令合并的过程进行了完善,提高了进行指令合并处理的准确性。
在一个可选的实施方式中,上述指令处理装置还包括:指令调度单元。
所述指令合并单元,用于对所述已缓存计算指令和所述第一计算指令进行合并,得到目标计算指令;
所述指令调度单元,用于接收所述指令合并单元发送的所述目标计算指令,并将所述目标计算指令发送到计算装置中进行计算处理。
在本公开实施例中,将已缓存计算指令和第一计算指令进行合并,得到目标计算指令,并将该目标计算指令发送到计算装置中的过程如上述图1所对应的指令处理方法中的步骤S105所对应的实施方式所述,此处不再赘述。
在本公开实施例中,可以对已缓存计算指令和第一计算指令进行合并,得到目标计算指令,并将该目标计算指令发送到计算装置中进行计算处理,从而使得计算装置能够基于该目标计算指令对待处理数据进行计算处理,得到计算结果。
在一个可选的实施方式中,上述指令合并单元,还用于:
(1)、确定所述第一计算指令和所述已缓存计算指令的指令计算类型;
(2)、在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第一合并模式的情况下,将所述已缓存计算指令和所述第一计算指令进行合并,得到所述目标计算指令。
在本公开实施例中,确定第一计算指令和已缓存计算指令的指令合并模式,并基于该指令合并模式将已缓存计算指令和第一计算指令进行合并的过程如上述图1所对应的指令处理方法中的步骤S1051所对应的实施方式所述,此处不再赘述。
在本公开实施例中,可以基于指令计算类型确定第一计算指令和已缓存计算指令的指令合并模式,从而使得本公开能够适用于不同指令计算类型的计算指令,增加了本公开的适用范围。
在一个可选的实施方式中,所述指令合并单元,还用于:在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第二合并模式的情况下,向所述指令调度单元发送目标控制指令;
所述指令调度单元,用于在接收到所述目标控制指令之后,在同一个指令发射周期内将所述第一计算指令和所述已缓存计算指令发送到计算装置中进行计算处理。
这里,第二合并模式所指示的合并方式可以为并列合并,即在同一个指令发射周期内向计算装置发送第一计算指令和已缓存计算指令,例如,已缓存计算指令为上述macc指令,第一计算指令为初始化指令minit,那么,该第一计算指令和已缓存计算指令所对应的指令合并模式可以为该第二合并模式。
在一个可选的实施方式中,上述指令处理装置还包括:指令调度单元;
所述指令调度单元,还用于在确定出查找到所述已缓存计算指令和所述第一计算指令不满足所述指令合并条件的情况下,将所述已缓存计算指令发送至计算装置进行处理,并将所述第一计算指令缓存至所述缓存空间。
在本公开实施例中,在上述缓存空间中包含已缓存计算指令的情况下,可以获取已缓存计算指令的指令属性信息,得到第一信息,并获取第一计算指令的指令属性信息,得到第二信息。然后,可以确定该第一信息和第二信息之间的信息匹配度是否满足预设匹配度要求,并在不满足预设匹配度要求的情况下,确定已缓存计算指令和第一计算指令不满足指令合并条件,其中,确定第一信息和第二信息之间的信息匹配度的过程如上述步骤S105所对应的实施方式所述,此处不再赘述。
在确定出已缓存计算指令和第一计算指令不满足指令合并条件之后,可以包括以下两种实施方式:
方式一:
在本公开实施例中,将第一计算指令发送至计算装置进行处理,并继续对接下来的获取到的计算指令进行识别,确定接下来的计算指令是否能和已缓存计算指令进行合并。
方式二:
在本公开实施例中,可以将已缓存计算指令进行合并处理,并将合并处理之后得到的计算指令发送至计算装置进行处理,同时将该第一计算指令缓存至缓存空间中。
在本公开实施例中,在确定出查找到已缓存计算指令和第一计算指令不满足指令合并条件的情况下,可以将已缓存计算指令发送至计算装置进行处理,并将第一计算指令缓存至缓存空间中,从而在能够进行合并处理的计算指令之间相隔较远的情况下,减少因为等待合并而造成的指令处理延时。
另外的,在本公开实施例中,如图3所示为一种芯片的示意图,如图3所示,在该芯片中包括指令分发装置31,指令处理装置32以及计算装置33,具体地:
指令分发装置,用于向所述指令处理装置分发当前时刻待执行的第一计算指令;
指令处理装置,用于获取当前时刻待执行的第一计算指令;在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理,得到目标计算指令;
计算装置,用于获取所述目标计算指令所对应的操作数,并基于所述操作数执行所述目标计算指令。
这里,该指令处理装置中包含指令接收单元、指令合并单元、指令调度单元,计算装置中包含多个计算核。
在本公开实施例中,指令分发装置31,指令处理装置32以及计算装置33的处理流程可以为下述步骤S301~S308所描述的流程,其中:
S301:指令分发装置可以将获取到的计算指令发送至指令处理装置中进行处理。
S302:指令处理装置的指令接收单元可以在将接收到的计算指令确定为第一计算指令之后,确定第一计算指令是否为待合并计算指令。
其中,在该第一计算指令不是待合并计算指令的情况下,则执行S303,之后,跳转至执行S308。在该第一计算指令是待合并计算指令的情况下,则跳转至执行S304至S308。
S303:指令接收单元将该待合并计算指令发送至指令调度单元。其中,在执行S303之后,跳转至执行S308,直至将待合并计算指令发送至计算装置中进行处理。
S304:指令处理装置中的指令接收单元将该待合并计算指令发送至指令合并单元。
在执行S303之后,依次执行S305-S308,直至将待合并计算指令发送至计算装置中进行处理。
S305:指令接收单元可以确定上述待合并计算指令和缓存空间中的已缓存计算指令是否满足指令合并条件,在满足指令合并条件的情况下,则执行S306,在不满足指令合并条件的情况下,则执行S307。
S306:指令接收单元对第一计算指令和已缓存计算指令进行合并处理,得到目标计算指令,并将该目标计算指令发送至指令发送器中。
S307:指令接收单元将该待合并计算指令存储到缓存空间中。
S308:指令调度单元将获取到的计算指令(可以包括第一计算指令以及目标计算指令)发送到计算装置中,以使计算装置中的多个计算核可以基于获取到的计算指令进行计算处理。
综上,在本公开实施例中,在确定出获取到当前时刻待执行的第一计算指令为待合并计算指令之后,可以在缓存空间中查找已缓存的计算指令,并在查找到的已缓存计算指令和该第一计算指令满足指令合并条件的情况下,将该第一计算指令和已缓存计算指令进行合并处理,从而实现计算指令的动态合并,减少了编程人员的编程工作量,进而提高了编程人员的编程效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与指令处理方法对应的指令处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述指令处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种指令处理装置的示意图,所述装置包括:获取单元41、确定单元42、合并单元43;其中,
获取单元41,用于获取当前时刻待执行的第一计算指令;
确定单元42,用于在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;
合并单元43,用于在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
在本公开实施例中,在确定出获取到当前时刻待执行的第一计算指令为待合并计算指令之后,可以在缓存空间中查找已缓存的计算指令,并在查找到的已缓存计算指令和该第一计算指令满足指令合并条件的情况下,将该第一计算指令和已缓存计算指令进行合并处理,从而实现计算指令的动态合并。
关于装置中的各单元的处理流程、以及各单元之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的指令处理方法,本公开实施例还提供了一种芯片500,如图5所示,为本公开实施例提供的芯片500结构示意图,包括:
芯片51、存储器52、和总线53;存储器52用于存储执行指令,所述芯片51与所述存储器52之间通过总线53通信,使得所述芯片51执行以下指令:
获取当前时刻待执行的第一计算指令;
在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;
在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
本公开还提供了一种板卡,其包括了封装有至少一个上述芯片的封装结构。参阅图6,其提供了一种示例性的板卡,上述板卡包括上述芯片500,还可以包括其他的部件,包括但不限于:存储器件604和接口器件606。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元608,例如:DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)等。每一组所述存储单元与所述芯片通过总线连接。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备610(例如:终端、服务器、摄像头等)之间的数据传输。在一个实施例中,所述接口装置可以包括PCIE接口,还可以是网络接口、或者其他的接口,本公开不做限制。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被芯片运行时执行上述方法实施例中所述的指令处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的指令处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个芯片可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (16)

1.一种指令处理装置,其特征在于,所述指令处理装置包括:指令接收单元和指令合并单元:
所述指令接收单元,用于获取当前时刻待执行的第一计算指令;
所述指令合并单元,用于在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;以及在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
2.根据权利要求1所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
确定所述第一计算指令的指令识别标识,其中,所述指令识别标识用于指示所述第一计算指令是否为待合并指令;
在确定所述指令识别标识的标识内容为目标内容的情况下,确定所述第一计算指令为所述待合并指令。
3.根据权利要求1或2所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
基于预先设置的合并策略确定所述已缓存计算指令与所述第一计算指令是否满足所述指令合并条件;其中,所述指令合并条件为与所述指令合并策略相关联的条件。
4.根据权利要求3所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
在所述合并策略为第一策略的情况下,获取所述已缓存计算指令的指令属性信息,得到第一信息,并获取所述第一计算指令的指令属性信息,得到第二信息;其中,所述第一策略用于指示基于指令属性信息进行计算指令的合并;
确定所述第一信息和所述第二信息之间的信息匹配度;
在所述信息匹配度满足预设匹配度要求的情况下,确定所述已缓存计算指令和第一计算指令满足所述指令合并条件。
5.根据权利要求4所述的指令处理装置,其特征在于,所述第一信息包含多个第一子信息,所述第二信息包含多个第二子信息;所述指令合并单元,还用于:
分别确定对应属性信息的第一子信息和第二子信息的子匹配度值,得到多个子匹配度值;
基于所述多个子匹配度值确定所述第一信息和所述第二信息之间的信息匹配度;
所述属性信息包括:指令通道数量、指令计算类型和指令数据类型。
6.根据权利要求3至5中所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
在所述合并策略为第二策略的情况下,确定所述缓存空间的剩余缓存空间;其中,所述第二策略用于指示基于缓存空间中剩余空间大小进行计算指令的合并;
在确定所述剩余缓存空间不满足所述第一计算指令的缓存要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
7.根据权利要求3至6中任一项所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
在所述合并策略为第三策略的情况下,获取所述缓存空间中已缓存计算指令的指令数量;其中,所述第三策略用于指示基于预设指令数量进行计算指令的合并;
在确定所述指令数量满足指令数量要求的情况下,确定所述已缓存计算指令和所述第一计算指令满足指令合并条件。
8.根据权利要求1至7中任一项所述的指令处理装置,其特征在于,所述指令处理装置还包括:指令调度单元;
所述指令合并单元,用于对所述已缓存计算指令和所述第一计算指令进行合并,得到目标计算指令;
所述指令调度单元,用于接收所述指令合并单元发送的所述目标计算指令,并将所述目标计算指令发送到计算装置中进行计算处理。
9.根据权利要求8所述的指令处理装置,其特征在于,所述指令合并单元,还用于:
确定所述第一计算指令和/或所述已缓存计算指令的指令计算类型;
在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第一合并模式的情况下,将所述已缓存计算指令和所述第一计算指令进行合并,得到所述目标计算指令。
10.根据权利要求9所述的指令处理装置,其特征在于,
所述指令合并单元,还用于:在基于所述指令计算类型确定所述第一计算指令和所述已缓存计算指令的指令合并模式为第二合并模式的情况下,向所述指令调度单元发送目标控制指令;
所述指令调度单元,用于在接收到所述目标控制指令之后,在同一个指令发射周期内将所述第一计算指令和所述已缓存计算指令发送到计算装置中进行计算处理。
11.根据权利要求1至10中任一项所述的指令处理装置,其特征在于,所述指令处理装置还包括:指令调度单元;
所述指令调度单元,还用于在确定出查找到所述已缓存计算指令和所述第一计算指令不满足所述指令合并条件的情况下,将所述已缓存计算指令发送至计算装置进行处理,并将所述第一计算指令缓存至所述缓存空间。
12.一种指令处理方法,其特征在于,包括:
获取当前时刻待执行的第一计算指令;
在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;
在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理。
13.一种芯片,其特征在于,包括:指令分发装置、指令处理装置和计算装置;
所述指令分发装置,用于向所述指令处理装置分发当前时刻待执行的第一计算指令;
所述指令处理装置,用于获取当前时刻待执行的第一计算指令;在确定出所述第一计算指令为待合并指令的情况下,在缓存空间中查找已缓存计算指令;在确定出查找到的所述已缓存计算指令和所述第一计算指令满足指令合并条件的情况下,将所述第一计算指令和所述已缓存计算指令进行合并处理,得到目标计算指令;
所述计算装置,用于获取用于执行所述目标计算指令的操作数,并基于所述操作数执行所述目标计算指令。
14.一种板卡,其特征在于,包括:封装有至少一个如权利要求13所述芯片的封装结构。
15.一种计算机设备,其特征在于,包括如权利要求1至11中任一项所述的指令处理装置,或者如权利要求13所述的芯片,或者如权利要求14所述的板卡。
16.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求12所述的指令处理方法的步骤。
CN202210612463.8A 2022-05-31 2022-05-31 指令处理方法、装置、芯片、板卡、设备及介质 Pending CN115016848A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210612463.8A CN115016848A (zh) 2022-05-31 2022-05-31 指令处理方法、装置、芯片、板卡、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210612463.8A CN115016848A (zh) 2022-05-31 2022-05-31 指令处理方法、装置、芯片、板卡、设备及介质

Publications (1)

Publication Number Publication Date
CN115016848A true CN115016848A (zh) 2022-09-06

Family

ID=83070651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210612463.8A Pending CN115016848A (zh) 2022-05-31 2022-05-31 指令处理方法、装置、芯片、板卡、设备及介质

Country Status (1)

Country Link
CN (1) CN115016848A (zh)

Similar Documents

Publication Publication Date Title
CA2074769C (en) Formula processor
US9703603B1 (en) System and method for executing accelerator call
CN110597865A (zh) 一种处理用户标签的方法、装置、计算设备及存储介质
CN112395093A (zh) 多线程数据处理方法、装置、电子设备及可读存储介质
US11809953B1 (en) Dynamic code loading for multiple executions on a sequential processor
CN114637536A (zh) 任务处理方法、计算协处理器、芯片及计算机设备
CN113254073B (zh) 数据处理方法及装置
US11494326B1 (en) Programmable computations in direct memory access engine
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
Blanchet et al. Computer architecture
CN115016848A (zh) 指令处理方法、装置、芯片、板卡、设备及介质
EP0363174A2 (en) Branch on bit processing
CN111258950A (zh) 原子访存方法、存储介质、计算机设备、装置和系统
US11500802B1 (en) Data replication for accelerator
CN113296788B (zh) 指令调度方法、装置、设备及存储介质
CN115543317A (zh) 前端页面开发方法及装置
CN114090466A (zh) 一种指令处理装置、方法、计算机设备及存储介质
CN112463218A (zh) 指令发射控制方法及电路、数据处理方法及电路
CN111258653A (zh) 原子访存方法、存储介质、计算机设备、装置和系统
CN112130899A (zh) 一种堆栈计算机
CN116804915B (zh) 基于存储器的数据交互方法、处理器、设备以及介质
CN117389512B (zh) 一种算术逻辑单元alu系统、电子设备和存储介质
US11620120B1 (en) Configuration of secondary processors
US20240111694A1 (en) Node identification allocation in a multi-tile system with multiple derivatives
CN116991593B (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