CN109992307B - 指令列表调度方法、装置、计算机设备及存储介质 - Google Patents

指令列表调度方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109992307B
CN109992307B CN201711484410.8A CN201711484410A CN109992307B CN 109992307 B CN109992307 B CN 109992307B CN 201711484410 A CN201711484410 A CN 201711484410A CN 109992307 B CN109992307 B CN 109992307B
Authority
CN
China
Prior art keywords
instruction
execution time
node
scheduled
selection
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.)
Active
Application number
CN201711484410.8A
Other languages
English (en)
Other versions
CN109992307A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information 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
Priority to CN201711484410.8A priority Critical patent/CN109992307B/zh
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201911214046.2A priority patent/CN111104169B/zh
Priority to PCT/CN2018/108298 priority patent/WO2019095873A1/zh
Priority to EP18878728.7A priority patent/EP3614260A4/en
Priority to JP2019568198A priority patent/JP7074777B2/ja
Priority to EP19210491.7A priority patent/EP3651020A1/en
Priority to KR1020197037907A priority patent/KR102569086B1/ko
Publication of CN109992307A publication Critical patent/CN109992307A/zh
Priority to US16/575,344 priority patent/US11221877B2/en
Priority to US16/702,491 priority patent/US11360811B2/en
Priority to US16/702,502 priority patent/US11113103B2/en
Priority to US16/705,190 priority patent/US11113104B2/en
Application granted granted Critical
Publication of CN109992307B publication Critical patent/CN109992307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Abstract

本发明涉及一种指令列表调度方法、装置、计算机设备及存储介质,该方法通过分析待调度指令的数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点,再根据对各次序对应的选择节点的评估结果确定调度后的指令列表中各次序的指令。该方法可以保证每次选择指令时,选择的指令为当前状态的最优结果,使用这些最优结果得到的调度后的指令列表,各个指令之间的排列更加紧凑,便于缩短原指令列表中指令序列的执行时间。

Description

指令列表调度方法、装置、计算机设备及存储介质
技术领域
本发明涉及信息技术计算机技术领域,特别是涉及一种指令列表调度方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的飞速发展,出现了诸如多核第一处理器计算机系统(Multi-core processor Computing System)、异构计算机系统(Heterogeneous ComputingSystem)等包含有多个第一处理器的多第一处理器计算机系统(Multi-processorComputing System)。在上述计算机系统的多个第一处理器可以根据多个第一处理器对应的指令列表并行处理不同的指令,提高该计算机系统的处理效率。
但是,上述计算机系统的多个第一处理器对应的指令列表中的指令顺序可能并不合理,例如没有使指令列表中的指令尽可能的并行,这样可能无法提升计算机系统的处理效率,或者提升效率的效果不佳。
因此,如何提供一种指令列表调度方法、装置、计算机设备及存储介质,进行指令列表中指令顺序调整,使指令列表中各个指令之间的排列更加紧凑,缩短指令列表的执行时间便成为亟需解决的技术问题。
发明内容
基于此,有必要针对处理器使用的指令列表中指令序列排序不合理的问题,提供指令列表调度方法、装置、计算机设备及存储介质。
一种指令列表调度方法,包括:获取待调度指令列表中的待调度指令集,并对所述待调度指令集进行数据依赖分析,得到所述待调度指令集中各指令之间的数据依赖关系;
根据各指令之间的所述数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点;
按照预设规则,根据对应次序的所述选择节点确定调度后指令列表中各次序的指令。
在其中一个实施例中,所述按照预设规则,根据对应次序的所述选择节点确定调度后指令列表中各次序的指令的步骤包括:
访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;
若当前访问的所述选择节点对应的最长执行时间小于初始执行时间,则将当前访问的选择节点的已排序指令确定为调度后的指令列表中对应次序的指令;
其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,所述方法包括:
若当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
在预设访问时间段内访问选择节点,并获取当前访问的选择节点对应的最长执行时间;
若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令;
其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,若当前访问的选择节点对应的最长执行时间不小于初始执行时间,则将待调度指令表中指令序列作为调度后指令表中的指令序列。
在其中一个实施例中,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照随机优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照深度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;
按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
获取当前访问的选择节点对应的最短执行时间;
若当前访问的选择节点对应的最短执行时间大于初始执行时间,则终止访问与当前访问的选择节点关联的选择节点;
其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令的步骤包括:
按照指令的预设优先级评估当前次序对应的所有选择节点,得到当前次序的各选择接点的评估结果,并根据所述评估结果确定当前次序对应的指令。
在其中一个实施例中,所述方法包括:根据当前选择节点的具体内容和/或类型设定各指令的优先级。
在其中一个实施例中,按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令的步骤包括:
根据当前次序所有的选择节点对应的最短执行时间的长短,确定当前次序对应的指令。
一种指令调度装置,包括:获取模块、数据依赖分析模块、评估模块,
所述获取模块,用于获取待调度指令列表中的待调度指令集,以及根据各指令之间的数据依赖关系,得到指令调度过程中每次指令选择对应的所有选择节点;
所述数据依赖分析模块,用于对待调度指令集进行数据依赖分析,得到各指令之间的数据依赖关系;
所述评估模块,用于按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令。
一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述的方法所提及的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现执行上述的方法所提及的步骤。
与传统技术相比,本发明提供的一种指令列表调度方法、装置、计算机设备及存储介质具有如下有益效果:
通过分析待调度指令的数据依赖关系,得到调度过程中每次指令选择对应的所有选择节点,再根据对各次序对应的选择节点的评估结果确定调度后的指令列表中各次序的指令。该方法可以保证每次选择指令时,选择的指令为当前状态的最优结果,使用这些最优结果得到的调度后的指令列表,各个指令之间的排列更加紧凑,便于缩短原指令列表中指令序列的执行时间。
附图说明
图1为其中一个实施例中提出计算机系统的结构示意图;
图2为其中一个实施例中一种指令列表调度方法的步骤流程图;
图3为其中一个实施例中得到的待调度指令的数据依赖关系图;
图4为其中一个实施例中得到的选择节点的关联图;
图5为其中一个实施例中提出的指令列表调度装置的结构示意图;
图6为其中一个实施例中提出的一种计算机设备的内部结构图。
具体实施方式
为了使本发明的发明目的、技术方案及技术效果更加清楚明白,以下结合附图对本发明的具体实施例进行描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。应当清楚是,本实施例中的“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
如图1所示,为其中一实施例的计算机系统100可以为多核处理器计算机系统(Multi-core processor Computing System)、异构计算机系统(HeterogeneousComputing System)等包含有多个处理器的多处理器计算机系统(Multi-processorComputing System)。可选地,该计算机系统具体可以包括指令列表调度装置110、多个第一处理器120以及存储器130,多个第一处理器120可以同时连接至指令列表调度装置110,指令列表调度装置110可以用于多个第一处理器120的指令列表重新调度。可选地,该指令列表调度装置110也可以包括第二处理器。可选地,该第二处理器可以包括获取模块、数据依赖分析模块、评估模块、运算模块及控制模块等等,其中,该获取模块可以是IO(Input输入/Output输出)接口等硬件模块,运算模块及控制模块均为硬件模块。
多个第一处理器120可以根据指令列表并行处理不同的指令,以提高该计算机系统的处理效率。可选的,指令列表中可以包含一条或多条指令,每一条指令包含了一组对资源的引用操作,通过对指令的读取或运行,可以获知该指令的引用的资源。即当第一处理器等执行该指令时,可以调用该指令引用的资源,以实现特定的操作。例如,该指令可以是加载指令(Load)、计算指令(computing)或存储指令(store)等等,当然该指令也可以是神经网络的N层计算,N>0,N可以为整数,也可以为非整数。
进一步地,该指令列表中的各个指令按照执行顺序排列,该指令列表中各个指令引用的资源可以是虚拟内存对象,也可以是物理内存对象。该虚拟内存对象可以是内存区块、寄存器或其他能够存储数据的存储装置在软件逻辑上的虚拟存储空间。本实施例中的指令调度过程即是在保证原指令列表语义不变的前提下,对指令列表中的指令重新排序的过程,这可以使得该指令列表中各个指令之间的排列更加紧凑,以便于缩短指令列表的执行时间,提高系统的处理效率。
例如,指令列表中包含N条指令,其中,N≥1,N为正整数,且N条指令按照执行时序标记为第一条指令、第二条指令,……,第N条指令。对该指令列表的调度过程即为重新对上述N条指令进行排序的过程。
具体地,在对指令列表进行调度时,指令列表调度装置110可以首先获得待调度的指令列表中各指令的数据依赖关系。可选的,该数据依赖关系的形式可以包括RAW(ReadAfter Write,读后写)/WAR(Write After Read,写后读)/WAW(Write After Write,写后写)。可选的,该数据依赖关系可以用数据依赖图DDG(Data Dependence Graph,数据依赖图)描述。进一步的,指令列表调度装置110的第二处理器可以通过其获取模块获取待调度的指令列表,通过其数据依赖分析模块对待调度的指令列表中的指令进行数据依赖分析,得到上述指令之间的数据依赖关系。具体的,数据依赖分析模块可以对待调度的指令列表中的各指令进行资源扫描追踪,进而分析各指令之间的数据依赖关系。本实施例中指令之间的数据依赖是指当前指令的执行是否需要依赖其他指令的执行结果。简单举例来讲,若存在指令A“读取写入的指令B所写入的数据”,那么该指令A依赖于指令B的执行结果。之后,获取模块可以根据得到各指令之间的数据依赖关系,获取指令调度过程中每次进行指令选择的所有选择节点。
之后,指令列表调度装置可以通过评估模块按照预设规则,从对应次序的所有选择节点中确定调度后指令列表中各次序的指令。可选的,第二处理器可以通过其评估模块评估当前次序对应的选择节点,得到当前次序的各选择接点的评估结果,根据评估结果确定当前次序对应的指令。每一选择节点记载该选择节点对应的已排序指令和待调度指令集。可选的,评估模块按照各指令的优先级评估当前次序对应的选择节点。可选的,第二处理器还可以根据当前选择节点的具体内容和/或类型设定指令的优先级。
可选的,指令列表调度装置110在进行指令调度时,可以调整待调度的指令列表中指令对应的第一处理器。例如,该待调度指令对应的第一处理器可以根据指令的类型确定,或该待调度指令的具体内容确定对应的第一处理器。
如图2所示,为本发明一实施例的指令列表调度方法的步骤流程图,该方法可以应用于上述的计算机系统中。上述计算机系统可以包含存储器130及多个第一处理器120。该指令列表调度方法用以实现上述计算机系统中多个第一处理器对应的指令列表中指令的重新调度,以提高计算机的处理效率。具体地,上述方法可以包括如下步骤:
步骤S100:获取待调度指令列表中的待调度指令集,并对待调度指令集进行数据依赖分析,得到所述待调度指令集中各指令之间的数据依赖关系。
具体的,第二处理器可以通过其获取模块获取待调度指令列表的待调度指令集,通过数据依赖分析模块得到上述指令的数据依赖关系。本实施例中的待调度指令集由待调度指令列表中的多条待调度指令组成。可选的,待调度指令集中不包含待调度指令列表中的无语义指令(例如同步指令等)。进一步的,获取模块获取待调度指令列表的待调度指令集的步骤包括:获取待调度指令列表,删除待调度指令列表中无语义指令,得到待调度指令集。
例如,获取模块获取的待调度指令集中包含六条指令{L1、L2、C1、C2、S1、S2}。其中,L1、C1、S1需顺序执行,L2、C2、S2需顺序执行,其余指令无数据依赖关系。L1、L2、S1、S2为I/O指令,C1、C2为计算指令。数据依赖分析模块对上述待调度指令进行数据依赖赖分析,得到待调度指令集中各指令之间的数据依赖关系,使用如图3所示的DDG(Data DependenceGraph,数据依赖图)描述上述数据依赖关系。
上述待调度指令列表中各个待调度指令引用的资源可以是虚拟内存对象,也可以为物理内存对象。该虚拟内存对象可以是内存区块、寄存器或其他能够存储数据的存储装置在软件逻辑上的虚拟存储空间。
步骤S200:根据各指令之间的所述数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点。
每个选择节点记载与该选择节点对应的已排序指令和待调度指令集。可选的,得到所有选择的过程可以为:第二处理器通过其获取模块首选获取第一次指令选择时的所有第一选择节点,具体的为,获取各第一选择节点对应的已排序指令和待调度指令集。应当清楚的是这些待调度指令集中各指令存在数据依赖关系。之后第二处理器通过其获取模块根据每个第一选择节点的数据依赖关系,获取每个第一选择节点关联的所有第二选择节点,第二选择节点与第二次指令选择对应。循环上述步骤,得到第三选择节点,……,第N选择节点,N≥3,N为正整数。上述步骤中获取的第一选择节点,……,第N选择节点的总和组成每次进行指令选择的所有选择节点。
例如,获取的待调度指令列表中的待调度指令集共包含六条指令:{L1、L2、C1、C2、S1、S2},用图3表示这六条指令之间的数据依赖关系。由图3可知清楚的得知上述待调度指令集中的六条指令L1、L2可不依赖其他指令的执行,因此,在进行第一次指令选择时,需从L1、L2中选择,即获取的第一选择节点对应选择指令L1或L2的两种情形。当第一次指令选择时选择L1时,L1为已排序指令,此时第一选择节点记载已排序指令L1,以及删除指令L1的待调度指令集{L2、C1、C2、S1、S2}。同理,得到当第一次指令选择时选择L2时,得到的另一个第一选择节点,该第一选择节点记载已排序指令L2,以及删除指令L2的待调度指令集{L1、C1、C2、S1、S2}。循环上述过程可以得到第二次指令选择时的第二选择节点,……,第六次指令选择时的第六选择节点。
本实施步骤每次进行指令选择时,都需要依照前一指令选择得到的待调度指令指令集,例如图3对应的待调度指令集,当第一次指令选择时选择的指令为L1时(对应其中一个第一选择节点),得到的待调度指令集{L2、C1、C2、S1、S2},该第一选择节点的调度指令集中指令L2,C1可不依赖其他指令的执行,此时,在进行第二次指令选择时,需从L2,C1中选择(对应存在两个第二选择节点);当第一次指令选择时选择的指令为L2时(对应另一个第一选择节点),得到的待调度指令集{L1、C1、C2、S1、S2},该第一选择节点的调度指令集中指令L1,C2可不依赖其他指令的执行,此时,在进行第二次指令选择时,需从L1,C2中选择(也对应存在两个第二选择节点)。由此可知,本实施例得到的所有的选择节点之间存在关联,这种各选择节点关联可以用图4来表示。
步骤S300:按照预设规则,根据对应次序的选择节点确定调度后指令列表中各次序的指令。可选的,第二处理器可以通过其评估模块对当前次序对应的选择节点进行评估,得当前次序的各选择接点的评估结果,根据评估结果确定当前次序对应的指令。例如,当前次序为第二指令,此时对应图4中第二选择节点,按照预设规则评估图4中的四个第二选择节点,根据评估结果得到调度的指令列表中第二指令。可选的,评估模块按照各指令的预设优先级评估当前次序对应的选择节点(例如L2的优先级最高,C1次之……),得到评估结果。可选的,第二处理器根据当前选择节点的具体内容和/或类型设定各指令的优先级。
可选的,评估模块可以根据当前次序的所有选择节点对应的最短执行时间的长短,确定当前次序对应的指令。例如,图4中指令L1对应的第一选择节点,其对应的指令序列的最短执行时间为t1,指令L2对应的第一选择节点,对应的指令序列的最短执行时间为t2,t1>t2,则将L2确定为调度后的指令列表中的第一指令。同理确定调度后的指令列表的第二指令,……,第六指令。
本实施例提出的指令列表调度方法,通过分析待调度指令的数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点,再根据对各次序对应的选择节点的评估结果确定调度后的指令列表中各次序的指令。该方法可以保证每次选择指令时,选择的指令为当前状态的最优结果,使用这些最优结果得到的调度后的指令列表,各个指令之间的排列更加紧凑,便于缩短原指令列表中指令序列的执行时间。
作为一种可选的实施方式,评估模块按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令的步骤包括:
步骤210:评估模块访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间。评估模块访问的选择节点可以是第一选择节点、第二选择节点,……,第N选择节点。
步骤S220:若当前访问的选择节点对应的最长执行时间小于初始执行时间T0,则将当前访问节点的已排序指令确定为调度后的指令列表中对应的指令。其中,初始执行时间为待调度指令列表中指令序列的执行时间。
本实施步骤中当前访问的选择节点对应的最长执行时间是指,当前访问节点对应的指令序列的排列最不合理时的执行时间。例如,图4中左侧第一个第二选择节点对应的最长执行时间为T1=t1+t2+t3+t4+t5,其中,t1为已排序指令L1-L2的执行时间,t2为指令C1的执行时间;t3为指令S1的执行时间,t4为指令C2的执行时间,t5为指令S2的执行时间,这是该选择节点对应的未排序指令C1、C2、S1、S2完全没有并行,排序最不合理时情形。若T1<T0,则分别将L1、L2作为调度后的指令列表中的第一指令和第二指令。
由于在当前访问的选择节点对应的最长执行时间小于初始执行时间时,因此本实施例中提出的指令列表调度方法得到的指令序列的执行时间不会大于待调度指令列表中的指令序列。
由于本实施例的评估模块访问按照预设规则访问的选择节点,不在仅根据当前次序的选择节点调度指令列表中的指令,可以避免确定的当前次序的指令对后续指令选择的影响。尤其适于调度包含计算量大的指令的指令列表,可选的,包含神经网络运算指令的指令列表。例如,指令列表中包含N条指令,该N条指令中包含一个权值加载指令A,和一个神经网络卷积层计算指令B,若使用传统方法,可能无法使该指令A和指令B并行,使系统达到最高处理效率,本实施例的指令列表调度方案可以实现在调度后的指令列表中指令A和指令B并行。
在其中一个实施例中,上述方法还可以包括:若当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。例如,上述实施例中,当T1<T0时,分别将L1、L2作为调度后的指令列表中的第一指令和第二指令,同时将T1更新为初始执行时间。
应当清楚的是,在当前访问的选择节点对应的最长执行时间小于初始执行时间时,将将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令,已经可以保证得到的调度后指令列表中的指令序列的执行时间更短。上述更新初始执行时间的方案是为了进一步优化指令的排序,提高系统的处理效率。
作为一种可选的实施方式,评估模块访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
在预设访问时间段内访问选择节点,得到预设访问时间段内每个选择节点对应的最长执行时间。本实施例需结合上述实施例提出的方法确定调度后指令列表的各次序的指令。
由于指令列表中一般存在多条待调度指令,根据这些待调度指令得到的选择节点的数量庞大,在实际操作时,难以有充足的时间遍历所有的选择节点,本发明提出的指令列表调度方法,旨在通过重新排列指令列表中的指令,进一步缩短指令列表的执行时间。基于此,只要通过本发明提出的指令列表调度方法得到的新的指令列表缩短了执行时间即实现本发明的目的。因此,在实际运用本发明提出的指令列表调度方法进行指令重新排序时,一般会根据实际需求,设定访问时间段,控制指令的调度时间。
作为一种可选的实施方式,若当前访问的选择节点对应的最长执行时间不小于初始执行时间,则将待调度指令表中指令序列作为调度后指令表中的指令序列。
本实施例在当前访问的选择节点对应的最长执行时间不小于初始执行时间,将待调度指令表中指令序列作为调度后指令表中的指令序列是对上述实施例提出的指令列表调度方法的优化。可以保证得到的调度后指令列表中的指令序列是,在预设时间段内得到的最优结果。
作为一种可选的实施方式,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤:
步骤230:评估模块获取当前访问的选择节点对应的最短执行时间。
步骤240:若当前访问的选择节点对应的最短执行时间大于初始执行时间T0,则终止访问与当前访问的选择节点关联的选择节点。例如,指令L2对应的第二选择节点的最短执行时间为T2,T2对应该选择节点对应的未排序指令C1、C2、S1、S2完美并行,排序最合理时情形。若T2>T0,则终止访问与该第二选择节点关联的第三选择节点,以及与这些第三选择节点关联的第四选择节点,……,第六选择节点。
由于评估模块每访问一个选择节点均会消耗时间,本实施例的技术方案可以排除对选择节点的无效访问,提高指令列表的调度效率。
作为一种可选的实施方式,评估模块访问所述选择节点,并获取当前选择访问的选择节点对应的最长执行时间的步骤包括:评估模块按照随机优先(例如蒙特卡洛树搜索,MCTS,Monte Carlo Tree Search)的选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
作为一种可选的实施方式,评估模块访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:评估模块按照广度优先(BFS,Breadth FirstSearch)的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。具体的,本实施例中的广度优先是指优先选择与当前访问的选择节点同一次序的选择节点进行访问。例如当前访问的是第二选择节点,则下一个访问的选择节点优先选择其他的第二选择节点。
作为一种可选的实施方式,评估模块访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:评估模块按照深度优先(BFS,Depth First Search)的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。具体的,本实施例中的深度优先是指优先选择当前访问的选择节点关联的下一次序的选择节点进行访问。例如当前访问的是第二选择节点,则下一个访问的选择节点优先选择与该第二选择节点关联的第三选择节点。
可选的,评估模块还可以采用随机优选结合深度优先的规则选择所述选择节点进行访问,或者采用广度优先结合深度优先的规则选择所述选择节点进行访问。具体的,按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。可选的,上述对应次序的预设值根据经验值确定,或者根据预实验结果确定。
在设置访问时间段进行指令列表调度时,指令列表调度装置的评估模块没有足够的时间遍历所有的选择节点,此时,若单一采用深度优先或者广度优先的原则选择所述选择节点进行访问时,最终访问的选择节点的涉及范围可能比较片面(例如仅访问某一选择节点关联的选择节点,或者仅访问了前几次序的选择节点),而仅采用随机优选的原则选择所述选择节点进行访问时最终访问的选择节点的随机性又太强,因此优选采用上述随机优选结合深度优先的规则选择所述选择节点进行访问,或者采用广度优先结合深度优先的规则选择所述选择节点进行访问的方案。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示显示,但是这些步骤并不是必然按照箭头指示的顺序执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5示出的为在其中一个实施例中提出的指令列表调度装置结构示意图,该装置包括:获取模块510、数据依赖分析模块520、评估模块530,
所述获取模块510,用于获取待调度指令列表中的待调度指令集,以及根据各指令之间的数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点。
所述数据依赖分析模块520,用于对待调度指令集进行数据依赖分析,得到所述待调度指令集中各指令之间的数据依赖关系。
所述评估模块530,用于按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令。
在其中一个实施例中,所述评估模块530,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的所述选择节点对应的最长执行时间小于初始执行时间,则将当前访问的选择节点的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,所述指令调度装置还包括更新模块540,所述更新模块,用于当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述评估模块530,用于在预设访问时间段内访问选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,所述评估模块530,用于当前访问的选择节点对应的最长执行时间不小于初始执行时间时,则将待调度指令表中指令序列作为调度后指令表中的指令序列。
在其中一个实施例中,所述评估模块530,用于按照随机优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述评估模块530,用于按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述评估模块530,用于按照深度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述评估模块530,用于按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。
在其中一个实施例中,所述评估模块530,用于获取当前访问的选择节点对应的最短执行时间;若当前访问的选择节点对应的最短执行时间大于初始执行时间,则终止访问与当前访问的选择节点关联选择节点;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在其中一个实施例中,所述评估模块530,用于按照指令的预设优先级评估当前次序对应的所有选择节点,得到当前次序的各选择接点的评估结果,并根据所述评估结果确定当前次序对应的指令。
在其中一个实施例中,所述评估模块530,用于根据当前选择节点的具体内容和/或类型设定各指令的优先级。
在其中一个实施例中,所述评估模块530,用于根据当前次序所有的选择节点对应的最短执行时间的长短,确定当前次序对应的指令。
关于指令列表调度装置的具体限定可以参见上文中对于指令列表调度方法的限定,在此不再赘述。上述指令列表调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述实施例提及的验证激励的生成方法和/或芯片验证方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待调度指令列表中的待调度指令集,并对待调度指令集进行数据依赖分析,得到各指令之间的数据依赖关系;根据各指令之间的所述数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点;按照预设规则,根据对应次序的选择节点确定调度后指令列表中各次序的指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前访问的选择节点对应的最长执行时间小于初始执行时间,则基于当前访问节点对应的已排序指令随机生成指令序列,并使用所述随机生成的指令序列将所述待调度指令列表的指令序列更新。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在预设访问时间段内访问选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照随机优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前访问的选择节点对应的最短执行时间;若当前访问的选择节点对应的最短执行时间大于初始执行时间,则终止访问与当前访问的选择节点关联的选择节点;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照指令的预设优先级评估当前次序对应的所有选择节点,得到当前次序的各选择接点的评估结果,并根据所述评估结果确定当前次序对应的指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据当前选择节点的具体内容和/或类型设定各指令的优先级。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据当前次序所有的选择节点对应的最短执行时间的长短,确定当前次序对应的指令。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待调度指令列表中的待调度指令集,并对待调度指令集进行数据依赖分析,得到各指令之间的数据依赖关系;根据各指令之间的所述数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点;按照预设规则,根据对应次序的选择节点确定调度后指令列表中各次序的指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在预设访问时间段内访问选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前访问的选择节点对应的最长执行时间不小于初始执行时间,则将待调度指令表中指令序列作为调度后指令表中的指令序列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照随机优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照深度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前访问的选择节点对应的最短执行时间;若当前访问的选择节点对应的最短执行时间大于初始执行时间,则终止访问与当前访问的选择节点关联的选择节点;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照指令的预设优先级评估当前次序对应的所有选择节点,得到当前次序的各选择接点的评估结果,并根据所述评估结果确定当前次序对应的指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据当前选择节点的具体内容和/或类型设定各指令的优先级。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据当前次序所有的选择节点对应的最短执行时间的长短,确定当前次序对应的指令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种指令列表调度方法,其特征在于,包括:
获取待调度指令列表中的待调度指令集,并对所述待调度指令集进行数据依赖分析,得到所述待调度指令集中各指令之间的数据依赖关系;
根据各指令之间的所述数据依赖关系,得到指令调度过程中每次进行指令选择的所有选择节点;
按照预设规则,根据对应次序的所述选择节点确定调度后指令列表中各次序的指令;其中,所述按照预设规则,根据对应次序的所述选择节点确定调度后指令列表中各次序的指令的步骤包括:
访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;
若当前访问的所述选择节点对应的最长执行时间小于初始执行时间,则将当前访问的选择节点的已排序指令确定为调度后的指令列表中对应次序的指令;
其中,初始执行时间为待调度指令列表中指令序列的执行时间。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
若当前访问的选择节点对应的最长执行时间小于初始执行时间,则初始执行时间更新为当前访问的选择节点对应的最长执行时间。
3.根据权利要求1所述的方法,其特征在于,所述访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
在预设访问时间段内访问选择节点,并获取当前访问的选择节点对应的最长执行时间;
若当前访问的选择节点对应的最长执行时间小于初始执行时间,则将当前访问节点对应的已排序指令确定为调度后的指令列表中对应次序的指令。
4.根据权利要求3所述的方法,其特征在于,所述方法包括:
若当前访问的选择节点对应的最长执行时间不小于初始执行时间,则将待调度指令表中指令序列作为调度后指令表中的指令序列。
5.根据权利要求1所述的方法,其特征在于,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照随机优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
6.根据权利要求1所述的方法,其特征在于,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照广度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
7.根据权利要求1所述的方法,其特征在于,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照深度优先的规则选择所述选择节点进行访问,并获取当前选择访问的选择节点对应的最长执行时间。
8.根据权利要求1所述的方法,其特征在于,访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
按照广度或随机优先的规则选择小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间;
按照深度优先的规则选择不小于预设次序的所述选择节点进行访问,得到当前选择访问的选择节点对应的最长执行时间。
9.根据权利要求1所述的方法,其特征在于,所述访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间的步骤包括:
获取当前访问的选择节点对应的最短执行时间;
若当前访问的选择节点对应的最短执行时间大于初始执行时间,则终止访问与当前访问的选择节点关联的选择节点;
其中,初始执行时间为待调度指令列表中指令序列的执行时间。
10.一种指令调度装置,其特征在于,包括:获取模块、数据依赖分析模块、评估模块,
所述获取模块,用于获取待调度指令列表中的待调度指令集,以及根据各指令之间的数据依赖关系,得到指令调度过程中每次指令选择对应的所有选择节点;
所述数据依赖分析模块,用于对待调度指令集进行数据依赖分析,得到各指令之间的数据依赖关系;
所述评估模块,用于按照预设规则,根据对应次序的选择节点中确定调度后指令列表中各次序的指令;
其中,所述评估模块具体用于访问所述选择节点,并获取当前访问的选择节点对应的最长执行时间;若当前访问的所述选择节点对应的最长执行时间小于初始执行时间,则将当前访问的选择节点的已排序指令确定为调度后的指令列表中对应次序的指令;其中,初始执行时间为待调度指令列表中指令序列的执行时间。
11.一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行如权利要求1-9任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-9任一项所述的方法的步骤。
CN201711484410.8A 2017-11-20 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质 Active CN109992307B (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
CN201911214046.2A CN111104169B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质
CN201711484410.8A CN109992307B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质
EP18878728.7A EP3614260A4 (en) 2017-11-20 2018-09-28 METHOD, DEVICE AND SYSTEM FOR PARALLEL PROCESSING OF TASKS, STORAGE MEDIUM AND COMPUTER DEVICE
JP2019568198A JP7074777B2 (ja) 2017-11-20 2018-09-28 タスク並列処理方法、装置、システム、記憶媒体およびコンピュータ機器
EP19210491.7A EP3651020A1 (en) 2017-11-20 2018-09-28 Computer equipment, data processing method, and storage medium
KR1020197037907A KR102569086B1 (ko) 2017-11-20 2018-09-28 태스크 병렬 처리 방법, 장치, 시스템, 기억 매체 및 컴퓨터 기기
PCT/CN2018/108298 WO2019095873A1 (zh) 2017-11-20 2018-09-28 任务并行处理方法、装置、系统、存储介质及计算机设备
US16/575,344 US11221877B2 (en) 2017-11-20 2019-09-18 Task parallel processing method, apparatus and system, storage medium and computer device
US16/702,491 US11360811B2 (en) 2017-11-20 2019-12-03 Task parallel processing method, apparatus and system, storage medium and computer device
US16/702,502 US11113103B2 (en) 2017-11-20 2019-12-03 Task parallel processing method, apparatus and system, storage medium and computer device
US16/705,190 US11113104B2 (en) 2017-11-20 2019-12-05 Task parallel processing method, apparatus and system, storage medium and computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711484410.8A CN109992307B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201911214046.2A Division CN111104169B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109992307A CN109992307A (zh) 2019-07-09
CN109992307B true CN109992307B (zh) 2020-05-05

Family

ID=67111244

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201911214046.2A Active CN111104169B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质
CN201711484410.8A Active CN109992307B (zh) 2017-11-20 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201911214046.2A Active CN111104169B (zh) 2017-12-29 2017-12-29 指令列表调度方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (2) CN111104169B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204373A (zh) * 2019-07-24 2021-08-03 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN112947997A (zh) * 2019-12-11 2021-06-11 阿里巴巴集团控股有限公司 数据处理方法、装置以及指令融合方法、代码生成方法
CN111124500B (zh) * 2019-12-12 2022-03-08 浪潮(北京)电子信息产业有限公司 一种指令执行方法、装置、设备及存储介质
CN111190401A (zh) * 2019-12-30 2020-05-22 讯飞智元信息科技有限公司 指令调度方法、水利工程控制方法、设备及介质
CN113312085B (zh) * 2021-04-29 2023-02-03 华人运通(上海)云计算科技有限公司 一种指令块的处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577242A (zh) * 2013-11-14 2014-02-12 中国科学院声学研究所 针对已调度汇编代码的控制流图重构方法
CN104699464A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 一种基于依赖网格的指令级并行调度方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
US6643769B1 (en) * 2000-08-23 2003-11-04 Hewlett-Packard Development Company, L.P. System and method for enabling selective execution of computer code
JP4196614B2 (ja) * 2002-08-22 2008-12-17 パナソニック株式会社 命令スケジューリング方法、命令スケジューリング装置、及びプログラム
US7100157B2 (en) * 2002-09-24 2006-08-29 Intel Corporation Methods and apparatus to avoid dynamic micro-architectural penalties in an in-order processor
US6952592B2 (en) * 2002-10-15 2005-10-04 Motorola, Inc. Method and apparatus for limiting a transmission in a dispatch system
US7240082B2 (en) * 2003-07-07 2007-07-03 Faraday Technology Corp. Method for processing efficiency in a pipeline architecture
KR101335001B1 (ko) * 2007-11-07 2013-12-02 삼성전자주식회사 프로세서 및 인스트럭션 스케줄링 방법
US8098251B2 (en) * 2008-02-22 2012-01-17 Qualcomm Incorporated System and method for instruction latency reduction in graphics processing
CN102063288A (zh) * 2011-01-07 2011-05-18 四川九洲电器集团有限责任公司 一种面向dsp芯片的指令调度方法
US9529596B2 (en) * 2011-07-01 2016-12-27 Intel Corporation Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits
US9304749B2 (en) * 2013-09-12 2016-04-05 Marvell World Trade Ltd. Method and system for instruction scheduling
CN104461471B (zh) * 2014-12-19 2018-06-15 中国人民解放军国防科学技术大学 分簇vliw处理器上统一的指令调度和寄存器分配方法
US10372458B2 (en) * 2015-04-01 2019-08-06 Huawei Technologies Co., Ltd Method and apparatus for a self-clocked, event triggered superscalar processor
CN106814993B (zh) * 2015-12-01 2019-04-12 广州神马移动信息科技有限公司 确定任务调度时间的方法、确定任务执行时间的方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577242A (zh) * 2013-11-14 2014-02-12 中国科学院声学研究所 针对已调度汇编代码的控制流图重构方法
CN104699464A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 一种基于依赖网格的指令级并行调度方法

Also Published As

Publication number Publication date
CN111104169B (zh) 2021-01-12
CN111104169A (zh) 2020-05-05
CN109992307A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
CN109992307B (zh) 指令列表调度方法、装置、计算机设备及存储介质
US11113103B2 (en) Task parallel processing method, apparatus and system, storage medium and computer device
Becker et al. Contention-free execution of automotive applications on a clustered many-core platform
Schranzhofer et al. Timing analysis for TDMA arbitration in resource sharing systems
Pellizzoni et al. Worst case delay analysis for memory interference in multicore systems
US9009711B2 (en) Grouping and parallel execution of tasks based on functional dependencies and immediate transmission of data results upon availability
US8996811B2 (en) Scheduler, multi-core processor system, and scheduling method
US9292359B2 (en) System and method for memory management
US20210191765A1 (en) Method for static scheduling of artificial neural networks for a processor
Liu et al. GPU-based parallelization for fast circuit optimization
CN110209472B (zh) 任务数据处理方法和板卡
Oehlert et al. Bus-aware static instruction SPM allocation for multicore hard real-time systems
CN109992461B (zh) 激励生成装置的模板库构建方法、芯片验证方法及系统
Li et al. Efficient algorithms for task mapping on heterogeneous CPU/GPU platforms for fast completion time
Forsberg et al. HePREM: A predictable execution model for GPU-based heterogeneous SoCs
Beaumont et al. Comparison of static and runtime resource allocation strategies for matrix multiplication
Lázaro-Muñoz et al. A tasks reordering model to reduce transfers overhead on GPUs
Canabé et al. Parallel implementations of the MinMin heterogeneous computing scheduler in GPU
Duttagupta et al. Predicting performance in the presence of software and hardware resource bottlenecks
Jungklass et al. Memopt: Automated memory distribution for multicore microcontrollers with hard real-time requirements
CN110162483B (zh) 静态内存碎片整理方法、装置、计算机设备及存储介质
CN111061875A (zh) 超参数确定方法、装置、计算机设备和存储介质
Ezekiel et al. To Parallelize or to Optimize?
Alhammad Memory Efficient Scheduling for Multicore Real-time Systems
Ma Modeling algorithm performance on highly-threaded many-core architectures

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