CN115269014A - 一种指令调度方法、芯片及电子设备 - Google Patents
一种指令调度方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN115269014A CN115269014A CN202211169537.1A CN202211169537A CN115269014A CN 115269014 A CN115269014 A CN 115269014A CN 202211169537 A CN202211169537 A CN 202211169537A CN 115269014 A CN115269014 A CN 115269014A
- Authority
- CN
- China
- Prior art keywords
- instruction
- instructions
- target
- evaluation
- optimal
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000011156 evaluation Methods 0.000 claims abstract description 225
- 238000012216 screening Methods 0.000 claims description 26
- 238000002955 isolation Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005587 bubbling Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Abstract
本申请涉及一种指令调度方法、芯片及电子设备,属于计算机技术领域。该指令调度方法,包括:获取按照N个评估指标中的每个单一评估指标所筛选的最优指令;综合所述N个评估指标从获取的所有最优指令中筛选出目标指令;将筛选出的所述目标指令调度给指令执行单元进行执行。采用先按照N个评估指标中的每个单一评估指标来筛选出最优指令,以筛选出每种单一评估指标下需要优先执行的指令,之后再综合N个评估指标从所有获取的最优指令中筛选出目标指令的调度方式,能最大化的提高芯片的处理性能,避免出现某些场景下的最优指令不能优先执行的情况,以及避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种指令调度方法、芯片及电子设备。
背景技术
当前芯片设计中,为了隐藏系统由于较深的流水线导致的高延迟,芯片通常会维护一个未完成指令池,以缓冲足够多的未完成指令,并利用乱序调度方式来调度未完成指令池中的指令,来提高指令执行效率。在某些设计里,该未完成指令池需要能处理上百条(如256条)指令。
合理的调度方式能提高芯片的处理性能,避免出现某些场景下的最优指令不能优先执行的情况;还可以缩短调度所需的时钟周期,避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。因此,如何高效的进行指令调度是当前需要解决的问题。
发明内容
鉴于此,本申请的目的在于提供一种指令调度方法、芯片及电子设备,以实现高效的进行指令调度的目的。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种指令调度方法,包括:获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,N为大于等于2的整数;综合所述N个评估指标从获取的所有最优指令中筛选出目标指令;将筛选出的所述目标指令调度给指令执行单元进行执行。
本申请实施例中,采用先按照N个评估指标中的每个单一评估指标来筛选出最优指令,以筛选出每种单一评估指标下需要优先执行的指令,之后再综合N个评估指标从所有获取的最优指令中筛选出目标指令的调度方式,能最大化的提高芯片的处理性能。由于获取的是按照N个评估指标中的每个单一评估指标所筛选出的最优指令,通过从不同的维度(N个单一评估指标对应N个维度)来筛选出不同维度下的最优指令,从而可以避免仅从单一维度来筛选最优指令,导致出现某些场景下的最优指令不能优先执行的情况,另外,由于在综合多评估指标筛选出目标指令时,并不是从所有的待调度原始指令中筛选出目标指令,而是仅从所有获取的最优指令中筛选出目标指令,这样可以极大的减少同时处理的指令数据,从而可以降低流水深度,避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。
结合第一方面实施例的一种可能的实施方式,获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,包括:按照所述N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令,所述待调度指令池中包括多个待调度指令。
本申请实施例中,按照N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令,从而可以避免出现某些场景下的最优指令不能优先执行的情况,同时,通过该方式可以有效减少在综合多评估指标筛选出目标指令时需要处理的指令数,从而可以降低流水深度,避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。
结合第一方面实施例的一种可能的实施方式,所述按照所述N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令之后,所述方法还包括:将按照所述N个评估指标中的每个单一评估指标所筛选的最优指令进行时序延迟,以实现前后逻辑之间的时序隔离。
本申请实施例中,通过将按照N个评估指标中的每个单一评估指标所筛选的最优指令进行时序延迟,以实现前后逻辑之间的时序隔离,从而可以打断单一评估指标筛选指令与综合多评估指标筛选指令之间的时序路径,使得芯片的时序路径长度被有效限制,以适应高速芯片的时钟频率要求。
结合第一方面实施例的一种可能的实施方式,综合所述N个评估指标从获取的所有最优指令中筛选出目标指令,包括:根据所述N个评估指标各自对应的预设权重,确定获取的所有最优指令中每条指令对应的得分;从所有最优指令中筛选出得分不小于预设阈值的所述目标指令。
本申请实施例中,通过赋予每种评估指标对应的预设权重,从而使得在进行综合多评估指标分析时,便可根据N个评估指标各自对应的预设权重,确定获取的所有最优指令中每条指令对应的得分,从而便可快速确定出最优的目标指令,这样能最大化的提高芯片的处理性能。
结合第一方面实施例的一种可能的实施方式,所述综合所述N个评估指标从获取的所有最优指令中筛选出目标指令之后,所述方法还包括:将所述所有最优指令中除所述目标指令外的剩余指令加入待调度指令池。
本申请实施例中,将所有最优指令中除目标指令外的剩余指令加入待调度指令池,可以消除流水线起泡,以便于未被调度的剩余指令能及时加入待调度指令池进行后续调度,避免流水线停滞。
结合第一方面实施例的一种可能的实施方式,所述单一评估指标包括:
指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型中的一种。
本申请实施例中,可以根据调度需求来设置单一评估值指标为指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型中的一种,从而适应不同的场景需求,使得整个策略可灵活配置,易于实现。
第二方面,本申请实施例还提供了一种芯片,包括: N个单目标评估模块和多目标评估模块;每个所述单目标评估模块,用于按照预设的单一评估指标从待调度指令池中筛选出指定数量的最优指令,所述待调度指令池中包括多个待调度指令,N为大于等于2的整数,不同的单目标评估模块对应不同的评估指标;多目标评估模块分别与每个所述单目标评估模块连接,所述多目标评估模块,用于综合N个评估指标从获取的所有最优指令中筛选出目标指令,并将筛选出的所述目标指令调度给指令执行单元进行执行。
结合第二方面实施例的一种可能的实施方式,所述芯片还包括:时序隔离组件,每个所述单目标评估模块均通过所述时序隔离组件与所述多目标评估模块连接,所述时序隔离组件,用于将每个所述单目标评估模块输出的最优指令延迟一个时钟周期后输出,以实现每个所述单目标评估模块与所述多目标评估模块之间的时序隔离。
结合第二方面实施例的一种可能的实施方式,所述芯片还包括:负反馈模块,与所述多目标评估模块连接,所述负反馈模块用于将所述所有最优指令中除所述目标指令外的剩余指令加入所述待调度指令池。
第三方面,本申请实施例还提供了一种电子设备,包括如上述第二方面实施例和/或结合第二方面实施例的任一种可能的实施方式提供的芯片。
本申请的其他特征和优点将在随后的说明书阐述。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种指令调度方法的流程示意图。
图2示出了本申请实施例提供的一种指令调度方法的原理示意图。
图3示出了本申请实施例提供的一种芯片的结构示意图。
图4示出了本申请实施例提供的又一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
为了能高效的进行指令调度,最大化的提高芯片的处理性能,避免出现某些场景下的最优指令不能优先执行的情况,以及避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。
本申请发明人经过仔细研究后发现,若采用某种单一调度指标,比如采用某种类型的指令优先调度的方式,来调度指令池中的所有指令(如256条指令),该方式虽然可以同时对256条指令进行调度,但只能满足特定指令类型优先的调度,忽略了指令来源、指令延迟时间等指标,导致一些场景下最优指令不能优先执行,会降低芯片的性能。
本申请发明人经过仔细研究后发现,若采样多指标综合评估调度来调度指令池中的所有指令,就需要牺牲同时调度的指令数目,由于要同时考虑多种调度指标需求,一个时钟周期内只能同时调度64条指令。虽然该方式可以从不同的指标来选择合适的指令调度,避免了一些场景下最优指令不能优先执行的问题,但是,多指标的综合评估逻辑深度随着需要同时处理的指令数目变大而加深,导致时序较差,会出现调度不及时的情况,很难在一个时钟周期内实现上百条指令同时调度。这种通过限制同时调度的指令数目的缺陷是遍历完整个指令池需要多个芯片时钟周期,比如,限制多指标的综合评估逻辑能处理的指令数目为64,遍历完整个指令池需要256/64 = 4个时钟周期。
需要说明的是,针对以上方案各自所存在的优缺点,均是发明人在经过实践并仔细研究后得出的结果,因此,上述各个方案的发现过程以及下文中本发明实施例提出的方案,都应该是发明人在本发明过程中对本发明做出的贡献。
本申请发明人经过仔细研究后发现,若采用先按照N个评估指标中的每个单一指标从指令池中选择最优指令,之后再综合N个评估指标从所有获取的最优指令中筛选出目标指令的方式进行调度,能最大化的提高芯片的处理性能。通过筛选出每种单一评估指标下需要优先执行的指令,从而可以避免出现某些场景下的最优指令不能优先执行的情况,另外,由于在综合多评估指标筛选出目标指令时,并不是从所有的待调度原始指令中筛选出目标指令,而是仅从所有获取的最优指令中筛选出目标指令,这样可以极大的减少同时处理的指令数据,从而可以降低流水深度,避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。
为了更好的理解,下面将结合图1所示的流程图,对本申请实施例提供的指令调度方法的原理进行说明。
S1: 获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,N为大于等于2的整数。
获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,可以是从磁盘或数据库中获取按照N个评估指标中的每个单一评估指标所筛选的最优指令。通过事先将按照N个评估指标中的每个单一评估指标所筛选的最优指令存储起来,在需要时直接调用,可以节约后续处理时间。
当然,也可以是多目标评估节点(如多目标评估模块)从N个单目标评估节点(如单目标评估模块)处获取,每个单目标评估节点按照预设的单一评估指标从待调度指令池中筛选出指定数量的最优指令,从而获得按照N个评估指标中的每个单一评估指标所筛选的最优指令。
其中,待调度的指令池作为芯片中缓存一批未完成指令的组件,内部缓存了C(如C = 256)条待调度指令,每条待调度指令包含基本的指令信息,如指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型等信息。
一种实施方式下,获取按照N个评估指标中的每个单一评估指标所筛选的最优指令的过程可以是:按照N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令,待调度指令池中包括多个待调度指令,比如待调度指令池最大能存储256条指令。比如, N个单目标评估节点中的每个单目标评估节点各自按照预设的单一评估指标从待调度指令池中筛选出指定数量的最优指令。通过从不同的维度(N个单一评估指标对应N个维度)来筛选出不同维度下的最优指令,从而可以避免仅从单一维度来筛选最优指令,导致出现某些场景下的最优指令不能优先执行的情况。
为了更好的理解上述过程,举例进行说明,假设N个评估指标依次为评估指标1、评估指标2、评估指标3……评估指标N,则可以按照评估指标1从待调度指令池中筛选出指定数量的最优指令,按照评估指标2从待调度指令池中筛选出指定数量的最优指令,按照评估指标3从待调度指令池中筛选出指定数量的最优指令,以此类推,按照评估指标N从待调度指令池中筛选出指定数量的最优指令。
在按照N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令之后,该指令调度方法还包括:将按照N个评估指标中的每个单一评估指标所筛选的最优指令进行时序延迟,以实现前后逻辑之间的时序隔离,如实现单目标评估节点与多目标评估节点之间的逻辑时序隔离。本申请中,通过将按照N个评估指标中的每个单一评估指标所筛选的最优指令进行时序延迟,以实现前后逻辑之间的时序隔离,从而可以打断单一评估指标筛选指令与综合多评估指标筛选指令之间的时序路径,使得芯片的时序路径长度被有效限制,以适应高速芯片的时钟频率要求。
其中,N的数值为大于等于2的整数,其具体数值其取决于实际使用中所需的评估指标的数量,可以灵活配置。同理,上述的指定数量也可以根据需要进行灵活配置,在此不在进行限定。例如,当N的数值相对大时,可以将指定数量的值设置小一点,当N的数值相对小时,可以将指定数量的值设置大一点,使得最终获取的所有最优指令的总数量相对一致。如假设N的取值为4,可以将指定数量的值设为16,这样最终获取的所有最优指令的总数量为64;又例如,若假设N的取值为5,可以将指定数量的值设为12,这样最终获取的所有最优指令的总数量为60;又例如若假设N的取值为6,可以将指定数量的值设为10,这样最终获取的所有最优指令的总数量为60。
单一评估指标包括:指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型中的一种。当然,单一评估指标的并不限于上述示例的这6种。当N的取值为6时,则这6个单一指标可以分别是指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型。当N的取值小于6时,则N个单一指标可以是上述6种单一评估指标中的部分评估指标。可以根据调度需求来设置单一评估值指标为指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型中的一种,从而适应不同的场景需求,使得整个策略可灵活配置,易于实现。
S2:综合所述N个评估指标从获取的所有最优指令中筛选出目标指令。
在获取到按照N个评估指标中的每个单一评估指标所筛选的最优指令后,综合N个评估指标从获取的所有最优指令中筛选出目标指令。由于在综合多评估指标筛选出目标指令时,并不是从所有的待调度原始指令中筛选出目标指令,而是仅从所有获取的最优指令中筛选出目标指令,这样可以极大的减少同时处理的指令数据,从而可以降低流水深度,避免因为同时处理的指令数目变大而加深流水深度,导致时序差,出现调度不及时的情况。可以采用现有的综合多评估指标逻辑从获取的所有最优指令中筛选出目标指令。
一种实施方式下,综合N个评估指标从获取的所有最优指令中筛选出目标指令的过程可以是:根据N个评估指标各自对应的预设权重,确定获取的所有最优指令中每条指令对应的得分;从所有最优指令中筛选出得分不小于预设阈值的目标指令。其中,预设阈值可以根据需要进行灵活调整,在此不进行限定。本申请中,通过赋予每种评估指标对应的预设权重,从而使得在进行综合多评估指标分析时,便可根据N个评估指标各自对应的预设权重,确定获取的所有最优指令中每条指令对应的得分,从而便可快速确定出最优的目标指令,这样能最大化的提高芯片的处理性能。
其中,每种评估指标对应多个预设权重,同一种评估指标下的不同参数对应不同的预设权重,以评估指标为指令类型为例,则A类型的指令对应的预设权重为W1,B类型的指令对应的预设权重为W2,C类型的指令对应的预设权重为W3,以此类推。又例如,以评估指标为指令来源为例,来源于A的指令对应的预设权重为W1,来源于B的指令对应的预设权重为W2,来源于C的指令对应的预设权重为W3,以此类推。又例如,以评估指标为指令延迟时间为例,不同的延迟时间对应的权重不同,如延迟时间1对应W1,延迟时间2对应W2,延迟时间3对应W3。其余的评估指标所对应的预设权重与此类似,不再一一说明。
需要说明的是,每种评估指标对应的预设权重可以根据需要进行灵活设置。并不限于上述示例的设置方式,比如可以是一段延迟时间对应一个预设权重,如0.1ms至0.2ms这一延迟时间段对应权重1,0.2ms至0.4ms这一延迟时间段对应权重2。
为了更好地理解,下面举例进行说明,假设有3个评估指标,依次为评估指标1、评估指标2、评估指标3。按照每个单一评估指标所筛选的最优指令数为3,则共有9个最优指令,若按照评估指标1所筛选的3条最优指令依次为A1指令、A2指令、A3指令;若按照评估指标2所筛选的3条最优指令依次为B1指令、B2指令、B3指令;若按照评估指标3所筛选的3条最优指令依次为C1指令、C2指令、C3指令。之后综合这3个评估指标从获取的这9个最优指令中筛选出目标指令,也即根据这3个评估指标各自对应的预设权重,确定获取的9条最优指令中每条指令对应的得分;从9条最优指令中筛选出得分不小于预设阈值的目标指令。
在根据N个评估指标各自对应的预设权重,确定这9条最优指令对应的得分时:对于A1指令其对应的得分为A1指令对应评估指标1的权重A1W1*A1指令对应评估指标2的权重A1W2* A1指令对应评估指标3的权重A1W3,也即将A1指令对应不同评估指标的权重相乘,即A1W1*A1W2*A1W3。
同理,对于A2指令其对应的得分为A2指令对应评估指标1的权重A2W1*A2指令对应评估指标2的权重A2W2* A2指令对应评估指标3的权重A2W3,也即将A2指令对应不同评估指标的权重相乘,即A2W1*A2W2*A2W3。
同理,对于A3指令其对应的得分为A3指令对应评估指标1的权重A3W1*A32指令对应评估指标2的权重A3W2* A3指令对应评估指标3的权重A3W3,也即将A3指令对应不同评估指标的权重相乘,即A3W1*A3W2*A3W3。
同理,对于B1指令、B2指令、B3指令,以及C1指令、C2指令、C3指令,确定对应得分的过程与上述确定A1指令、A2指令、A3指令的原理一致。
S3:将筛选出的所述目标指令调度给指令执行单元进行执行。
在筛选出目标指令后,将筛选出的目标指令调度给指令执行单元进行执行。而对于所有最优指令中除目标指令外的剩余指令,则需要加入待调度指令池,以便后续进行调度。也即,该指令调度方法还包括:将所有最优指令中除目标指令外的剩余指令加入待调度指令池。通过将所有最优指令中除目标指令外的剩余指令加入待调度指令池,可以消除流水线起泡,以便于未被调度的剩余指令能及时加入待调度指令池进行后续调度,避免流水线停滞。之后,又可以重复上述流程,如按照N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令,将每个单一评估指标所筛选的最优指令进行时序延迟,之后综合N个评估指标从获取的所有最优指令中筛选出目标指令,将筛选出的目标指令调度给指令执行单元进行执行,将所有最优指令中除目标指令外的剩余指令加入待调度指令池。如此反复,直至待调度指令池中的指令清零或小于预设值为止,其原理示意图如图2所示。
基于同样的发明构思,本申请实施例提供了一种芯片,如图3所示,该芯片包括待调度指令池、N个单目标评估模块、多目标评估模块。多目标评估模块分别与每个单目标评估模块连接,每个单目标评估模块均与待调度指令池连接,N为大于等于2的整数。其中,待调度指令池中包括多个待调度指令,如存储有C(如 C = 256)条待调度指令。需要说明的是,图2中所示的待调度指令池、N个单目标评估模块、多目标评估模块均可以为硬件模块。
每个单目标评估模块,用于按照预设的单一评估指标(如指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型等评估指标中的一种)从待调度指令池中筛选出指定数量的最优指令。
其中,每个单目标评估模块作为芯片中根据某一评估指标处理待调度指令池中所有指令的调度优先级的逻辑处理模块,输入是待调度指令池的所有指令,输出是该评估指标下优先级最高的S(S可配置,且小于C)个最优指令。
可以根据调度需求来设置N的取值,每个单目标评估模块仅面向某一特定评估指标对待调度指令池里所有未完成指令进行评估选择,评估选择策略可以有针对性的设计,不同单目标评估模块定制化设计,灵活度高。经过处理后,每个单目标评估模块选出特定目标下优先级最高的一组指令(如包含S条最优指令)输出。
以待调度指令池有256条未完成指令为例,假设评估指标有三种:指令类型,指令来源以及指令延迟时间;这样需要构建三个单目标评估模块,面向这三个评估指标,同时对待调度指令池的256条未完成指令进行处理,每个单目标评估模块,最多选出对应评估指标下优先级最高的4条指令。最终输出为三组指令包,共:3 x 4=12条指令。
多目标评估模块,用于综合N个评估指标从获取的所有最优指令中筛选出目标指令,并将筛选出的目标指令调度给指令执行单元进行执行。多目标评估模块作为芯片中同时根据多个评估指标对一组指令评估选择处理的模块,其输入是N个单目标评估模块的N组单一评估指标下最高优先级的指令包,输出是一组多目标综合评估选择处理后最高优先级的T(可配置,但T<=S)条指令,以及优先级较低的剩余D(D+T=N*S)条指令。最高优先级的T条指令会调度给指令执行单元进行执行。
例如,多目标评估模块用于对3个单目标评估模块输出的12条指令进行综合评估处理,处理后挑出2条最高优先级指令作为整个方案的输出供后续模块处理执行,剩余的12-2=10条未被选中的较低优先级指令留待后续处理。
一种可选实施方式下,该芯片还包括时序隔离组件以及负反馈模块,如图4所示。图4中的包括时序隔离组件以及负反馈模块均可以为硬件模块。
每个单目标评估模块均通过时序隔离组件与多目标评估模块连接,时序隔离组件,用于将每个单目标评估模块输出的最优指令延迟一个时钟周期后输出,以实现每个单目标评估模块与多目标评估模块之间的时序隔离。这样就可以将单目标评估模块的处理逻辑和多目标评估模块的处理逻辑之间的时序路径打断,使得芯片的时序路径长度被有效限制,以适应高速芯片的时钟频率要求。
其中,时序隔离组件为芯片中用来隔离前后级之间的逻辑时序的组件,以满足高速芯片的时钟频率要求。其输入是N个单目标评估模块的N组单一评估指标下最高优先级的指令包,输出是时序上延迟一个处时钟周期的指令包。
负反馈模块与多目标评估模块以及待调度指令池连接,负反馈模块用于将所有最优指令中除目标指令外的剩余指令加入待调度指令池。反馈模块是芯片中处理多目标评估模块的优先级较低的剩余D条指令的模块,用于将剩余D条指令反馈至待调度指令池,以便这D条未被调度的指令能及时加入待调度指令池进行后续调度。
芯片实施例所提供的指令调度原理及产生的技术效果和前述方法实施例相同,为简要描述,芯片实施例部分未提及之处,可参考前述方法实施例中相应内容。
上述的芯片可以是一种集成电路芯片,具有信号的处理能力。该芯片处理器,如可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该芯片也可以是任何常规的处理器等。
基于同样的发明构思,本申请实施例还提供了一种电子设备,该电子设备包括上述的芯片。该电子设备可以是任何包含上述芯片的电子设备,如可以是手机、平板、电脑、服务器等电子设备。
电子设备实施例的原理及产生的技术效果和前述芯片实施例相同,为简要描述,电子设备实施例部分未提及之处,可参考前述芯片实施例中相应内容。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种指令调度方法,其特征在于,包括:
获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,N为大于等于2的整数;
综合所述N个评估指标从获取的所有最优指令中筛选出目标指令;
将筛选出的所述目标指令调度给指令执行单元进行执行。
2.根据权利要求1所述的方法,其特征在于,获取按照N个评估指标中的每个单一评估指标所筛选的最优指令,包括:
按照所述N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令,所述待调度指令池中包括多个待调度指令。
3.根据权利要求2所述的方法,其特征在于,所述按照所述N个评估指标中的每个单一评估指标,分别从待调度指令池中筛选出指定数量的最优指令之后,所述方法还包括:
将按照所述N个评估指标中的每个单一评估指标所筛选的最优指令进行时序延迟,以实现前后逻辑之间的时序隔离。
4.根据权利要求1所述的方法,其特征在于,综合所述N个评估指标从获取的所有最优指令中筛选出目标指令,包括:
根据所述N个评估指标各自对应的预设权重,确定获取的所有最优指令中每条指令对应的得分;
从所有最优指令中筛选出得分不小于预设阈值的所述目标指令。
5.根据权利要求1所述的方法,其特征在于,所述综合所述N个评估指标从获取的所有最优指令中筛选出目标指令之后,所述方法还包括:
将所述所有最优指令中除所述目标指令外的剩余指令加入待调度指令池。
6.根据权利要求1所述的方法,其特征在于,所述单一评估指标包括:
指令类型、指令来源、指令延迟时间、指令访问对象的优先级、指令访问对象的数量大小、指令的操作类型中的一种。
7.一种芯片,其特征在于,包括:
N个单目标评估模块,每个所述单目标评估模块,用于按照预设的单一评估指标从待调度指令池中筛选出指定数量的最优指令,所述待调度指令池中包括多个待调度指令,N为大于等于2的整数,不同的单目标评估模块对应不同的评估指标;
多目标评估模块,分别与每个所述单目标评估模块连接,所述多目标评估模块,用于综合N个评估指标从获取的所有最优指令中筛选出目标指令,并将筛选出的所述目标指令调度给指令执行单元进行执行。
8.根据权利要求7所述的芯片,其特征在于,所述芯片还包括:
时序隔离组件,每个所述单目标评估模块均通过所述时序隔离组件与所述多目标评估模块连接,所述时序隔离组件,用于将每个所述单目标评估模块输出的最优指令延迟一个时钟周期后输出,以实现每个所述单目标评估模块与所述多目标评估模块之间的时序隔离。
9.根据权利要求7所述的芯片,其特征在于,所述芯片还包括:
负反馈模块,与所述多目标评估模块连接,所述负反馈模块用于将所述所有最优指令中除所述目标指令外的剩余指令加入所述待调度指令池。
10.一种电子设备,其特征在于,包括如权利要求7-9任一项所述的芯片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169537.1A CN115269014B (zh) | 2022-09-26 | 2022-09-26 | 一种指令调度方法、芯片及电子设备 |
PCT/CN2023/084504 WO2024066259A1 (zh) | 2022-09-26 | 2023-03-28 | 一种指令调度方法、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169537.1A CN115269014B (zh) | 2022-09-26 | 2022-09-26 | 一种指令调度方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115269014A true CN115269014A (zh) | 2022-11-01 |
CN115269014B CN115269014B (zh) | 2022-12-30 |
Family
ID=83756938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211169537.1A Active CN115269014B (zh) | 2022-09-26 | 2022-09-26 | 一种指令调度方法、芯片及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115269014B (zh) |
WO (1) | WO2024066259A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024066259A1 (zh) * | 2022-09-26 | 2024-04-04 | 上海登临科技有限公司 | 一种指令调度方法、芯片及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118010554A (zh) * | 2024-04-10 | 2024-05-10 | 东莞信易电热机械有限公司 | 一种高温油式模温机油温评估方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070044079A1 (en) * | 2005-06-02 | 2007-02-22 | Tharas Systems Inc. | A system and method for compiling a description of an electronic circuit to instructions adapted to execute on a plurality of processors |
US20090219876A1 (en) * | 2008-02-28 | 2009-09-03 | Fujitsu Limited | Radio resource allocation control apparatus and method and base station |
US20100107147A1 (en) * | 2008-10-28 | 2010-04-29 | Cha Byung-Chang | Compiler and compiling method |
CN104346223A (zh) * | 2013-07-31 | 2015-02-11 | 想象力科技有限公司 | 基于类型的优先化指令 |
WO2017166643A1 (zh) * | 2016-03-31 | 2017-10-05 | 乐视控股(北京)有限公司 | 一种任务资源的量化方法和装置 |
CN111052078A (zh) * | 2017-09-15 | 2020-04-21 | 高通股份有限公司 | 使用无序指令选取器选择有序指令选取 |
US20200133721A1 (en) * | 2018-10-31 | 2020-04-30 | Renesas Electronics Corporation | Semiconductor device and systems using the same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2433379A1 (en) * | 2003-06-25 | 2004-12-25 | Ibm Canada Limited - Ibm Canada Limitee | Modulo scheduling of multiple instruction chains |
CN101472258B (zh) * | 2007-12-28 | 2010-07-14 | 中国移动通信集团公司 | 业务运营支撑系统调度归属位置寄存器指令的方法及装置 |
US11989555B2 (en) * | 2017-06-29 | 2024-05-21 | Intel Corporation | Instructions for remote atomic operations |
CN114661363A (zh) * | 2022-03-30 | 2022-06-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流水线指令分配方法、系统、设备及介质 |
CN115269014B (zh) * | 2022-09-26 | 2022-12-30 | 上海登临科技有限公司 | 一种指令调度方法、芯片及电子设备 |
-
2022
- 2022-09-26 CN CN202211169537.1A patent/CN115269014B/zh active Active
-
2023
- 2023-03-28 WO PCT/CN2023/084504 patent/WO2024066259A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070044079A1 (en) * | 2005-06-02 | 2007-02-22 | Tharas Systems Inc. | A system and method for compiling a description of an electronic circuit to instructions adapted to execute on a plurality of processors |
US20090219876A1 (en) * | 2008-02-28 | 2009-09-03 | Fujitsu Limited | Radio resource allocation control apparatus and method and base station |
US20100107147A1 (en) * | 2008-10-28 | 2010-04-29 | Cha Byung-Chang | Compiler and compiling method |
CN104346223A (zh) * | 2013-07-31 | 2015-02-11 | 想象力科技有限公司 | 基于类型的优先化指令 |
WO2017166643A1 (zh) * | 2016-03-31 | 2017-10-05 | 乐视控股(北京)有限公司 | 一种任务资源的量化方法和装置 |
CN111052078A (zh) * | 2017-09-15 | 2020-04-21 | 高通股份有限公司 | 使用无序指令选取器选择有序指令选取 |
US20200133721A1 (en) * | 2018-10-31 | 2020-04-30 | Renesas Electronics Corporation | Semiconductor device and systems using the same |
Non-Patent Citations (1)
Title |
---|
刘臻等: "稀疏队列中的动态发射机制及电路实现", 《高技术通讯》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024066259A1 (zh) * | 2022-09-26 | 2024-04-04 | 上海登临科技有限公司 | 一种指令调度方法、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2024066259A1 (zh) | 2024-04-04 |
CN115269014B (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115269014B (zh) | 一种指令调度方法、芯片及电子设备 | |
CN113254178B (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
CN109409513B (zh) | 一种基于神经网络的任务处理方法及相关设备 | |
CN109710981B (zh) | Fpga的布线方法及系统 | |
TWI633504B (zh) | 基於樹狀搜尋的排程方法與使用此方法的電子裝置 | |
US20040068708A1 (en) | Method of using clock cycle-time in determining loop schedules during circuit design | |
US7735047B1 (en) | Method for technology mapping considering boolean flexibility | |
CN1881224A (zh) | 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树 | |
CN103377242A (zh) | 用户行为分析方法、分析预测方法及电视节目推送系统 | |
CN110750345B (zh) | 一种数字孪生系统复杂任务高效调度系统 | |
EP2551767A1 (en) | Method and device for adjusting clock interrupt cycle | |
US8532129B2 (en) | Assigning work from multiple sources to multiple sinks given assignment constraints | |
CN106682258B (zh) | 一种高层次综合工具中的多操作数加法优化方法及系统 | |
US10101965B1 (en) | Method and apparatus for high speed streaming sorter | |
JP2019503014A (ja) | ユーザ挙動データの処理方法及び装置 | |
Sheshadri et al. | Power-aware SoC test optimization through dynamic voltage and frequency scaling | |
CN110955548B (zh) | 数据处理方法及装置 | |
US10742196B2 (en) | Apparatus and method for performing digital infinite impulse filtering | |
CN104765864A (zh) | 搜索结果的输出方法及客户端和服务器 | |
CN113077235A (zh) | 一种会议日程冲突管理方法、系统、电子设备及存储介质 | |
Park et al. | ShortcutFusion++: optimizing an end-to-end CNN accelerator for high PE utilization | |
CN102572295B (zh) | 一种特效图调度方法 | |
US8949249B2 (en) | Techniques to find percentiles in a distributed computing environment | |
CN115016919B (zh) | 任务调度方法、电子设备和存储介质 | |
CN103455625A (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 |