CN111722876A - 利用超标量流水线执行程序的方法、装置、系统及介质 - Google Patents

利用超标量流水线执行程序的方法、装置、系统及介质 Download PDF

Info

Publication number
CN111722876A
CN111722876A CN202010565522.1A CN202010565522A CN111722876A CN 111722876 A CN111722876 A CN 111722876A CN 202010565522 A CN202010565522 A CN 202010565522A CN 111722876 A CN111722876 A CN 111722876A
Authority
CN
China
Prior art keywords
program
target
target instructions
instruction
executing
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.)
Withdrawn
Application number
CN202010565522.1A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010565522.1A priority Critical patent/CN111722876A/zh
Publication of CN111722876A publication Critical patent/CN111722876A/zh
Withdrawn 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

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

利用超标量流水线执行程序的方法、装置、系统及介质
技术领域
本公开属于计算机程序技术领域,具体涉及一种利用超标量流水线执行程序的方法、装置、系统及介质。
背景技术
CPU完成一条指令,多分为五步,分别为——取指令(IF,Instruction fetch);译码(ID,Instruction decode);取操作数(OF,Operand fetch);执行(EX,Instructionexecution);写回(WB,Write back)。
流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即取指令、译码、执行、写回结果,浮点流水又分为八级流水。
超标量(superscalar)试图在一个周期取出多条指令并行执行,是通过内置多条流水线来同时执行多个处理,其实质是以空间换取时间。超标量流水线,在不考虑CPU乱序发射的情况下,某个时刻有多条不同类型的指令在各个步骤中执行相应操作,如下表中时刻5,在进行指令1的写回、指令2的执行、指令3的取操作数、指令4的译码、指令5的取指令。这样从时刻5开始每一个时刻都有一条指令写回。
超标量流水线中是将现有的流水线技术与超标量技术相结合的CPU执行程序的技术。
发明人了解到,在利用超标量流水线技术执行程序的过程中,如后一条指令需要前一条指令的运算结果,则两条指令不一定能连续发射,此时后一条指令与前一条指令之间也会有停顿。这种停顿降低了CPU的效率。
发明内容
本公开的目的是提供超标量流水线执行程序的方法、装置、系统及介质,能够至少解决上述技术问题之一。
为实现上述目的,本公开的第一方面提供一种利用超标量流水线执行程序的方法,包括以下步骤:
读取程序中待执行的多条目标指令;
按照预设的规则对目标指令进行重排,并通过超标量流水线方式设置多个模块单元,每个模块单元能够独立完成相应的目标指令;
利用超标量流水线的方式发射目标指令,以执行程序;
其中,若相邻两条目标指令之间存在运算结果的依存关系且无法连续发射:对目标指令进行重排时,在具有依存关系的两条目标指令之间加入无关语句,以填充空语句的运算周期。
两个目标指令之间存在运算结果的依存关系且无法连续发射指的是:后一条目标指令需要读取前一条目标指令的运算结果,且无法通过数据旁路的方法实现连续发射。
本公开的第二方面提供一种利用超标量流水线执行程序的装置,包括:
读取模块,用于读取存储模块中的目标指令;
重排模块,用于重排目标指令,以调节目标指令的发射顺序;
执行模块,用于执行重排模块发出的目标指令,以实现程序的执行。所述执行模块中的模块单元按照超标量流水线方式布置。
本公开的第三方面提供一种利用超标量流水线执行程序的系统,包括:
存储器,用于存储目标指令;
处理器,用于执行所述的利用超标量流水线执行程序的方法。
本公开的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有目标指令组成的计算机程序,目标指令被执行时实现所述的利用超标量流水线执行程序的方法。
以上一个或多个技术方案的有益效果:
本公开在相邻两个具有运算结果依存关系的语句之间加入了一条无关语句,利用无关语句来填充原本空语句占用的运算周期,能够减少程序执行时的停顿,提高了程序的运行效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的限定。
图1为本公开实施例中程序的执行过程流程图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
表格1
时刻1 时刻2 时刻3 时刻5 时刻6 时刻7 时刻8 时刻9 时刻10
IF1 ID1 OF1 WB1 IF2 ID2 OF2 EX2 WB2
表格2
Figure BDA0002547699700000041
如上文所示,表格1提供了一种串行执行目标指令的示意图。表格2提供了一种流水线方式,部分重叠的准并行执行目标指令的示意图。
实施例1
本实施例提供了一种利用超标量流水线执行程序的方法,包括以下步骤:
读取程序中待执行的多条目标指令;
按照预设的规则对目标指令进行重排,并通过超标量流水线方式设置多个模块单元,每个模块单元能够独立完成相应的目标指令;
利用超标量流水线的方式发射目标指令,以执行程序;
其中,若相邻两条目标指令之间存在运算结果的依存关系且无法连续发射:对目标指令进行重排时,在具有依存关系的两条目标指令之间加入无关语句,以填充空语句的运算周期。
两个目标指令之间存在运算结果的依存关系且无法连续发射指的是:后一条目标指令需要读取前一条目标指令的运算结果,且无法通过数据旁路的方法实现连续发射。
判断两条目标指令之间的无关语句是否存在分支语句:若不存在,按照目标指令运行规则进行目标指令运算;若存在,当分支语句跳转到相关目标指令自行结束后,跳回无关语句后方的目标指令处,继续执行。
所述目标指令的执行步骤依次为:取指令、译码、取操作数、执行和写回。
实施例2
本实施例提供了一种利用超标量流水线执行程序的装置,包括:
读取模块,用于读取存储模块中的目标指令;
重排模块,用于重排目标指令,以调节目标指令的发射顺序;
执行模块,用于执行重排模块发出的目标指令,以实现程序的执行。所述执行模块中的模块单元按照超标量流水线方式布置。
实施例3
本实施例提供了一种利用超标量流水线执行程序的系统,包括:
存储器,用于存储目标指令;
处理器,用于执行所述的利用超标量流水线执行程序的方法。
实施例4
本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有目标指令组成的计算机程序,目标指令被执行时实现所述的利用超标量流水线执行程序的方法。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

Claims (8)

1.一种利用超标量流水线执行程序的方法,其特征是,包括以下步骤:
读取程序中待执行的多条目标指令;
按照预设的规则对目标指令进行重排,并通过超标量流水线方式设置多个模块单元,每个模块单元能够独立完成相应的目标指令;
利用超标量流水线的方式发射目标指令,以执行程序;
其中,若相邻两条目标指令之间存在运算结果的依存关系且无法连续发射:对目标指令进行重排时,在具有依存关系的两条目标指令之间加入无关语句,以填充空语句的运算周期。
2.根据权利要求1所述的利用超标量流水线执行程序的方法,其特征是,两个目标指令之间存在运算结果的依存关系且无法连续发射指的是:后一条目标指令需要读取前一条目标指令的运算结果,且无法通过数据旁路的方法实现连续发射。
3.根据权利要求1所述的利用超标量流水线执行程序的方法,其特征是,判断两条目标指令之间的无关语句是否存在分支语句:
若不存在,按照目标指令运行规则进行目标指令运算;
若存在,当分支语句跳转到相关目标指令自行结束后,跳回无关语句后方的目标指令处,继续执行。
4.根据权利要求1所述的利用超标量流水线执行程序的方法,其特征是,所述目标指令的执行步骤依次为:取指令、译码、取操作数、执行和写回。
5.一种利用超标量流水线执行程序的装置,其特征是,包括:
读取模块,用于读取存储模块中的目标指令;
重排模块,用于重排目标指令,以调节目标指令的发射顺序;
执行模块,用于执行重排模块发出的目标指令,以实现程序的执行。。
6.根据权利要求5所述的利用超标量流水线执行程序的装置,其特征是,所述执行模块中的模块单元按照超标量流水线方式布置。
7.一种利用超标量流水线执行程序的系统,其特征是,包括:
存储器,用于存储目标指令;
处理器,用于执行权利要求1-4中任意一项所述的利用超标量流水线执行程序的方法。
8.一种计算机可读存储介质,其特征是,所述计算机可读存储介质上存储有目标指令组成的计算机程序,目标指令被执行时实现如权利要求1-6中任意一项所述的利用超标量流水线执行程序的方法。
CN202010565522.1A 2020-06-19 2020-06-19 利用超标量流水线执行程序的方法、装置、系统及介质 Withdrawn CN111722876A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010565522.1A CN111722876A (zh) 2020-06-19 2020-06-19 利用超标量流水线执行程序的方法、装置、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010565522.1A CN111722876A (zh) 2020-06-19 2020-06-19 利用超标量流水线执行程序的方法、装置、系统及介质

Publications (1)

Publication Number Publication Date
CN111722876A true CN111722876A (zh) 2020-09-29

Family

ID=72567711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010565522.1A Withdrawn CN111722876A (zh) 2020-06-19 2020-06-19 利用超标量流水线执行程序的方法、装置、系统及介质

Country Status (1)

Country Link
CN (1) CN111722876A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472445A (zh) * 2023-12-26 2024-01-30 睿思芯科(深圳)技术有限公司 基于发射缓冲的超标量处理系统、方法及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472445A (zh) * 2023-12-26 2024-01-30 睿思芯科(深圳)技术有限公司 基于发射缓冲的超标量处理系统、方法及相关设备
CN117472445B (zh) * 2023-12-26 2024-04-23 睿思芯科(深圳)技术有限公司 基于发射缓冲的超标量处理系统、方法及相关设备

Similar Documents

Publication Publication Date Title
CN106104481B (zh) 用于执行确定性和机会性多线程的系统和方法
JP4292198B2 (ja) 実行スレッドをグループ化するための方法
US20080244247A1 (en) Processing long-latency instructions in a pipelined processor
US9170816B2 (en) Enhancing processing efficiency in large instruction width processors
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
JP2009099097A (ja) データ処理装置
RU2375768C2 (ru) Процессор и способ осуществления операций непрямого чтения и записи регистра
CN114968373A (zh) 指令分派方法、装置、电子设备及计算机可读存储介质
WO2020210624A1 (en) Data loading and storage instruction processing method and device
US20100306504A1 (en) Controlling issue and execution of instructions having multiple outcomes
CN111722876A (zh) 利用超标量流水线执行程序的方法、装置、系统及介质
CN116737241B (zh) 一种指令融合方法、处理器核、处理器和计算机系统
US10503541B2 (en) System and method for handling dependencies in dynamic thread spawning for a multi-threading processor
US9213547B2 (en) Processor and method for processing instructions using at least one processing pipeline
KR101420592B1 (ko) 컴퓨터 시스템
US20090144523A1 (en) Multiple-simd processor for processing multimedia data and arithmetic method using the same
US10459725B2 (en) Execution of load instructions in a processor
CN114610395A (zh) 指令分派方法、装置、电子设备及计算机可存储介质
US8966230B2 (en) Dynamic selection of execution stage
CN111857830A (zh) 一种提前转发指令数据的通路设计方法、系统及存储介质
JP2008242947A (ja) 半導体装置
CN114047956B (zh) 处理器指令多发射方法、双发射方法、装置及处理器
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
CN113703841B (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200929