CN115878190A - 一种应用于发射队列间指令调度填充的方法 - Google Patents
一种应用于发射队列间指令调度填充的方法 Download PDFInfo
- Publication number
- CN115878190A CN115878190A CN202310216717.9A CN202310216717A CN115878190A CN 115878190 A CN115878190 A CN 115878190A CN 202310216717 A CN202310216717 A CN 202310216717A CN 115878190 A CN115878190 A CN 115878190A
- Authority
- CN
- China
- Prior art keywords
- instruction
- queue
- instructions
- queues
- distributed
- 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
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种应用于发射队列间指令调度填充的方法,包括以下步骤:指令在译码阶段给当前指令一个待分配发射队列的标识号‑所有分布式发射队列共用一级分配电路以及二级分配电路,以指令所需分配到的目标发射队列为最高优先级,将指令分配至目标发射队列中‑当指令目标发射队列已满时,以发射队列编号为优先级顺序,将指令暂时分配至其余发射队列中‑指令通过选择电路后进入其对应的执行单元。本发明采用上述应用于发射队列间指令调度填充的方法,在保证原有的发射队列的基础上,通过一级分配电路将待分配指令分配到有空闲端口的其余发射队列中,再通过二级分配电路将已分配指令转移到目标发射队列中,从而解决了分布式发射队列空间浪费问题。
Description
技术领域
本发明涉及一种乱序超标量处理器技术,尤其涉及一种应用于发射队列间指令调度填充的方法。
背景技术
乱序超标量处理器是一种应用广泛的处理器架构,它能够显著提高程序的执行效率。其中,发射队列是处理器中的一个关键部件,用于存储待执行的指令,并将操作数准备好且满足发射条件的执行指令从发射队列中选出来,送到功能单元(Function Unit,FU)中执行的过程。
由于乱序超标量处理器具有高度的并行度,指令的发射顺序是不确定的,这意味着在一般的发射队列设计中会导致空间的浪费。即如果发射队列的设计不当,将成为性能瓶颈,降低处理器的整体性能。
发明内容
为解决上述问题,本发明提供一种应用于发射队列间指令调度填充的方法,实现了在保证原有发射队列结构不变的情况下,最大限度利用发射队列的使用空间,保证指令的并行度。
为实现上述目的,本发明提供了一种应用于发射队列间指令调度填充的方法,包括以下步骤:
步骤一:指令在译码阶段给当前指令一个待分配发射队列的标识号,并存入分布式发射队列中;
步骤二:所有分布式发射队列共用一个一级分配电路以及一个二级分配电路,以指令所需分配到的目标发射队列为最高优先级,一级分配电路将指令分配至目标发射队列中;
步骤三:当指令目标发射队列已满时,以发射队列编号为优先级顺序,将指令暂时分配至其余发射队列中;
在此过程中,若指令在一级分配电路阶段已经分配至目标发射队列中,则执行步骤四;若指令被暂时分配至目标发射队列外其余有空闲端口的发射队列中时,此指令被二级分配电路监测,当指令的目标发射队列有空闲端口时,将其转移至目标发射队列,再执行步骤四;
步骤四:指令通过选择电路后进入其对应的执行单元。
优选的,在步骤一中,以000、001、…00n表示标识号。
优选的,步骤二具体包括以下步骤:
一级分配电路从所有分布式发射队列中寻找有空闲端口的发射队列,同时生成有空闲端口的发射队列标号表;
若目标发射队列存在空闲端口,则待分配指令优先分配至指令所对应的目标发射队列中;
若目标发射队列无空闲端口,则以发射队列标识号作为优先级,通过查询一级分配电路中产生的有空闲端口的发射队列标识号表,将指令分配至其余最高优先级的发射队列中。
优选的,在步骤三中,当分布式发射队列暂存有其余类型指令时,会生成转移使能信号transfer_enN提供给二级分配电路,表示第N个分布式发射队列中有待转移指令。
优选的,当转移使能信号transfer_enN有效,且通过查询,得到一级分配电路有空闲端口的发射队列的标识号,查询结果有效时,指令开始转移,转移步骤如下:
将待转移指令从所在发射队列中取出暂存至二级分配电路,而后在同一周期将指令输出至目标发射队列中。
优选的,在步骤三中,分布式发射队列采用一个写指针和两个读指针结构,读指针select_pointer1用于同类型指令中最旧指令的移出操作,读指针transfer_pointer2用于分布式发射队列中的其他类型指令的转移操作;
对于同一个分布式发射队列,当同时有来自一级分配电路和二级分配电路的指令需要写入时,来自二级分配电路的指令具有最高优先级,以此依据管理发射队列的写入顺序。
优选的,二级分配电路与唤醒电路互连,使指令在转移的过程中也能被唤醒。
优选的,在步骤三中,二级分配电路内含一个N端输入输出的缓存区,用于将指令从发射队列中取出暂存,并在指令的目标发射队列有空闲端口时将其转移至目标发射队列,待后续选择电路进行选取。
优选的,在步骤三中,每个执行单元对应各自的发射队列和各自的选择电路,选择电路只对其所对应的发射队列中此执行单元所需的指令类型进行oldest-first选择,对于暂存于此发射队列中的其余类型的指令,选择电路根据指令在译码阶段被标上的发射队列标识号进行筛除。
优选的,在步骤四中,选择电路对发射队列中的指令以oldest-first原则进行选取后发射至执行单元。
本发明具有以下有益效果:
1、避免了当指令目标发射队列已满时,指令需要在一级分配电路中等待的情况,使指令能提前进入发射队列中待唤醒执行。
2、利用二级分配电路进行指令在发射队列中的转移,增大了发射队列的利用率,较大程度的利用有空闲端口的发射队列。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1是本发明所述的一种应用于发射队列间指令调度填充的方法的基本实施流程示意图;
图2 是本发明所述的一种应用于发射队列间指令调度填充的方法的指令处理流程结构图;
图3是本发明所述的一种应用于发射队列间指令调度填充的方法的一级分配电路结构示意图;
图4是本发明所述的一种应用于发射队列间指令调度填充的方法的分布式发射队列结构示意图;
图5是本发明所述的一种应用于发射队列间指令调度填充的方法的二级分配电路结构示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
在本实施例中,对于乱序超标量处理器的发射队列的设计,需要综合考虑多个因素,在保证处理器性能的同时,尽可能地减少空间浪费和设计复杂度,是发射队列设计的重要目标,从而进行如下设计:
一种应用于发射队列间指令调度填充的方法,包括以下步骤:
步骤一:指令在译码阶段给当前指令一个待分配发射队列的标识号,并存入分布式发射队列中;
优选的,在步骤一中,以000、001、…00n表示标识号。以类型1指令为例,该类型指令在译码阶段给予000标识号。
步骤二:所有分布式发射队列共用一个一级分配电路以及一个二级分配电路,以指令所需分配到的目标发射队列为最高优先级,一级分配电路将指令分配至目标发射队列中;
优选的,步骤二具体包括以下步骤:
一级分配电路从所有分布式发射队列中寻找有空闲端口的发射队列,同时生成有空闲端口的发射队列标号表;
若目标发射队列存在空闲端口,则待分配指令优先分配至指令所对应的目标发射队列中;即类型1指令优先分配至分布式发射队列1中。
若目标发射队列无空闲端口,则以发射队列标识号作为优先级,通过查询一级分配电路中产生的有空闲端口的发射队列标识号表,将指令分配至其余最高优先级的发射队列中。即分布式发射队列1已满时,类型1指令以001、010、011…的优先级顺序,若标号为001分布式发射队列,即分布式发射队列2有空闲端口时,将类型1指令分配至分布式发射队列2中。
步骤三:当指令目标发射队列已满时,以发射队列编号为优先级顺序,将指令暂时分配至其余发射队列中;
在此过程中,若指令在一级分配电路阶段已经分配至目标发射队列中,则执行步骤四;若指令被暂时分配至目标发射队列外其余有空闲端口的发射队列中时,此指令被二级分配电路监测,当指令的目标发射队列有空闲端口时,将其转移至目标发射队列,再执行步骤四;
优选的,在步骤三中,当分布式发射队列暂存有其余类型指令时,会生成转移使能信号transfer_enN提供给二级分配电路,表示第N个分布式发射队列中有待转移指令。
优选的,当转移使能信号transfer_enN有效,且通过查询,得到一级分配电路有空闲端口的发射队列的标识号,查询结果有效时,指令开始转移,转移步骤如下:
将待转移指令从所在发射队列中取出暂存至二级分配电路,而后在同一周期将指令输出至目标发射队列中。
优选的,在步骤三中,分布式发射队列采用一个写指针和两个读指针结构,读指针select_pointer1用于同类型指令中最旧指令的移出操作,读指针transfer_pointer2用于分布式发射队列中的其他类型指令的转移操作;
对于同一个分布式发射队列,当同时有来自一级分配电路和二级分配电路的指令需要写入时,来自二级分配电路的指令具有最高优先级,以此依据管理发射队列的写入顺序。
优选的,二级分配电路与唤醒电路互连,使指令在转移的过程中也能被唤醒。
优选的,在步骤三中,二级分配电路内含一个N端输入输出的缓存区,用于将指令从发射队列中取出暂存,并在指令的目标发射队列有空闲端口时将其转移至目标发射队列,待后续选择电路进行选取。
优选的,在步骤三中,每个执行单元对应各自的发射队列和各自的选择电路,选择电路只对其所对应的发射队列中此执行单元所需的指令类型进行oldest-first(最旧的指令)选择,对于暂存于此发射队列中的其余类型的指令,选择电路根据指令在译码阶段被标上的发射队列标识号进行筛除。 即选择电路1为分布式发射队列1的选择电路,选择电路1只对发射队列1中类型1指令进行选取,忽略存放于发射队列1中其他类型的指令。选择电路以指令伴随的发射队列标识号为依据,即选择电路1在选取过程中直接跳过标识号为001、010、011…的指令。
步骤四:指令通过选择电路后进入其对应的执行单元。
优选的,在步骤四中,选择电路对发射队列中的指令以oldest-first(最旧的指令)原则进行选取后发射至执行单元。
因此,本发明采用上述应用于发射队列间指令调度填充的方法,在保证原有的发射队列的基础上,通过一级分配电路,将待分配指令分配到有空闲端口的其余发射队列中,再通过二级分配电路将已分配指令转移到目标发射队列中,从而解决了分布式发射队列空间浪费问题。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (10)
1.一种应用于发射队列间指令调度填充的方法,其特征在于:包括以下步骤:
步骤一:指令在译码阶段给当前指令一个待分配发射队列的标识号,并存入分布式发射队列中;
步骤二:所有分布式发射队列共用一个一级分配电路以及一个二级分配电路,以指令所需分配到的目标发射队列为最高优先级,一级分配电路将指令分配至目标发射队列中;
步骤三:当指令目标发射队列已满时,以发射队列编号为优先级顺序,将指令暂时分配至其余发射队列中;
在此过程中,若指令在一级分配电路阶段已经分配至目标发射队列中,则执行步骤四;若指令被暂时分配至目标发射队列外其余有空闲端口的发射队列中时,此指令被二级分配电路监测,当指令的目标发射队列有空闲端口时,将其转移至目标发射队列,再执行步骤四;
步骤四:指令通过选择电路后进入其对应的执行单元。
2.根据权利要求1所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤一中,以000、001、…00n表示标识号。
3.根据权利要求1所述的一种应用于发射队列间指令调度填充的方法,其特征在于:步骤二具体包括以下步骤:
一级分配电路从所有分布式发射队列中寻找有空闲端口的发射队列,同时生成有空闲端口的发射队列标号表;
若目标发射队列存在空闲端口,则待分配指令优先分配至指令所对应的目标发射队列中;
若目标发射队列无空闲端口,则以发射队列标识号作为优先级,通过查询一级分配电路中产生的有空闲端口的发射队列标识号表,将指令分配至其余最高优先级的发射队列中。
4.根据权利要求1所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤三中,当分布式发射队列暂存有其余类型指令时,会生成转移使能信号transfer_enN提供给二级分配电路,表示第N个分布式发射队列中有待转移指令。
5.根据权利要求4所述的一种应用于发射队列间指令调度填充的方法,其特征在于:当转移使能信号transfer_enN有效,且通过查询,得到一级分配电路有空闲端口的发射队列的标识号,查询结果有效时,指令开始转移,转移步骤如下:
将待转移指令从所在发射队列中取出暂存至二级分配电路,而后在同一周期将指令输出至目标发射队列中。
6.根据权利要求5所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤三中,分布式发射队列采用一个写指针和两个读指针结构,读指针select_pointer1用于同类型指令中最旧指令的移出操作,读指针transfer_pointer2用于分布式发射队列中的其他类型指令的转移操作;
对于同一个分布式发射队列,当同时有来自一级分配电路和二级分配电路的指令需要写入时,来自二级分配电路的指令具有最高优先级,以此依据管理发射队列的写入顺序。
7.根据权利要求5所述的一种应用于发射队列间指令调度填充的方法,其特征在于:二级分配电路与唤醒电路互连,使指令在转移的过程中也能被唤醒。
8.根据权利要求4所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤三中,二级分配电路内含一个N端输入输出的缓存区,用于将指令从发射队列中取出暂存,并在指令的目标发射队列有空闲端口时将其转移至目标发射队列,待后续选择电路进行选取。
9.根据权利要求1所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤三中,每个执行单元对应各自的发射队列和各自的选择电路,选择电路只对其所对应的发射队列中此执行单元所需的指令类型进行oldest-first选择,对于暂存于此发射队列中的其余类型的指令,选择电路根据指令在译码阶段被标上的发射队列标识号进行筛除。
10.根据权利要求1所述的一种应用于发射队列间指令调度填充的方法,其特征在于:在步骤四中,选择电路对发射队列中的指令以oldest-first原则进行选取后发射至执行单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310216717.9A CN115878190B (zh) | 2023-03-08 | 2023-03-08 | 一种应用于发射队列间指令调度填充的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310216717.9A CN115878190B (zh) | 2023-03-08 | 2023-03-08 | 一种应用于发射队列间指令调度填充的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878190A true CN115878190A (zh) | 2023-03-31 |
CN115878190B CN115878190B (zh) | 2023-04-21 |
Family
ID=85762064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310216717.9A Active CN115878190B (zh) | 2023-03-08 | 2023-03-08 | 一种应用于发射队列间指令调度填充的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878190B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443129B1 (en) * | 2010-07-21 | 2013-05-14 | Xilinx, Inc. | Method and apparatus for implementing a data bus interface |
CN113095026A (zh) * | 2021-03-12 | 2021-07-09 | 苏州芯启微电子科技有限公司 | 一种支持乱序多读写的寄存器组电路装置 |
US20220100569A1 (en) * | 2020-09-26 | 2022-03-31 | Intel Corporation | Methods, systems, and apparatuses for scalable port-binding for asymmetric execution ports and allocation widths of a processor |
CN115576610A (zh) * | 2022-11-18 | 2023-01-06 | 北京数渡信息科技有限公司 | 一种适用于通用顺序发射处理器的指令分发处理方法及装置 |
-
2023
- 2023-03-08 CN CN202310216717.9A patent/CN115878190B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443129B1 (en) * | 2010-07-21 | 2013-05-14 | Xilinx, Inc. | Method and apparatus for implementing a data bus interface |
US20220100569A1 (en) * | 2020-09-26 | 2022-03-31 | Intel Corporation | Methods, systems, and apparatuses for scalable port-binding for asymmetric execution ports and allocation widths of a processor |
CN113095026A (zh) * | 2021-03-12 | 2021-07-09 | 苏州芯启微电子科技有限公司 | 一种支持乱序多读写的寄存器组电路装置 |
CN115576610A (zh) * | 2022-11-18 | 2023-01-06 | 北京数渡信息科技有限公司 | 一种适用于通用顺序发射处理器的指令分发处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
刘臻等: "稀疏队列中的动态发射机制及电路实现" * |
胡伟武等: "龙芯2号处理器设计和性能分析" * |
Also Published As
Publication number | Publication date |
---|---|
CN115878190B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836524B2 (en) | Memory interface for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11868163B2 (en) | Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11573796B2 (en) | Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11567766B2 (en) | Control registers to store thread identifiers for threaded loop execution in a self-scheduling reconfigurable computing fabric | |
US20230153163A1 (en) | Computational Partition for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
CN1294484C (zh) | 利用重新调度的重放队列中断处理器中的重放依赖关系循环 | |
CN111966406B (zh) | 乱序处理器中乱序执行队列的调度方法和装置 | |
EP1242883B1 (en) | Allocation of data to threads in multi-threaded network processor | |
CN101763251B (zh) | 含有译码缓冲装置的多线程的微处理器 | |
US9747132B2 (en) | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions | |
US9886278B2 (en) | Computing architecture and method for processing data | |
CN110908716B (zh) | 一种向量聚合装载指令的实现方法 | |
US12026628B2 (en) | Processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process | |
US20080320240A1 (en) | Method and arrangements for memory access | |
CN118295710B (zh) | 多端口发射的空间回收方法、装置、设备和介质 | |
CN118312218A (zh) | 一种指令处理装置、处理器及其处理方法 | |
KR20140096587A (ko) | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 | |
CN115878190A (zh) | 一种应用于发射队列间指令调度填充的方法 | |
CN115454506A (zh) | 指令调度装置、方法、芯片和计算机可读存储介质 | |
JP2760273B2 (ja) | 演算装置及びその制御方法 | |
CN118295711B (zh) | 多端口发射的空间分配方法、装置、设备和介质 | |
CN117931729B (zh) | 向量处理器访存指令处理方法和系统 | |
CN113703841B (zh) | 一种寄存器数据读取的优化方法、装置及介质 | |
CN112732416B (zh) | 有效消除数据访问延迟的并行数据处理方法及并行处理器 | |
CN107479683B (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 |