CN117331603B - 基于优先级判定的深度流水线前向旁路 - Google Patents
基于优先级判定的深度流水线前向旁路 Download PDFInfo
- Publication number
- CN117331603B CN117331603B CN202311199843.4A CN202311199843A CN117331603B CN 117331603 B CN117331603 B CN 117331603B CN 202311199843 A CN202311199843 A CN 202311199843A CN 117331603 B CN117331603 B CN 117331603B
- Authority
- CN
- China
- Prior art keywords
- bypass
- input
- output
- gates
- gate
- 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
Links
- 238000000034 method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 125000003580 L-valyl group Chemical group [H]N([H])[C@]([H])(C(=O)[*])C(C([H])([H])[H])(C([H])([H])[H])[H] 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
-
- 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
- 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技术领域,尤其涉及一种基于优先级判定的深度流水线前向旁路。
背景技术
在深度流水线中,指令被分解成多个阶段依次执行,每个阶段的结果作为下一个阶段的输入,这样能够提高CPU的执行效率。但是,在执行过程中,如果前面的指令产生的结果需要被后面的指令使用,而前面的指令的结果还没有来得及写回寄存器中,那么后面的指令就会出现数据相关性,导致CPU无法继续执行,即出现数据相关性问题(datadependency)导致的流水线停顿(pipeline stall)问题。
为了解决数据相关性问题导致的流水线停顿问题,目前提出了前向旁路,前向旁路又称为一级旁路或数据旁路。前向旁路通过将结果从前一个阶段直接转发给需要使用该结果的下一个阶段,绕过了流水线的停顿,这样,后续的指令可以继续在流水线中执行,提高了处理器的性能和效率,能够有效解决数据相关性导致的停顿,比如数据依赖、读后写、写后写等情况。
然而,目前使用的前向旁路结构没有考虑优先级判定问题,而在深度流水线中,可能有多个前向旁路同时存在的情况,导致现有的前向旁路结构在实际使用时存在一定的局限性。
发明内容
为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种基于优先级判定的深度流水线前向旁路。
本发明的技术方案如下:
提供了一种基于优先级判定的深度流水线前向旁路,所述深度流水线前向旁路包括:
旁路比较器,与旁路生成器连接,被配置为对输入的译码阶段的源寄存器标号与各个执行阶段的目的寄存器标号分别进行匹配比较,获取并输出各个执行阶段对应的比较结果信号;
所述旁路生成器,与优先级判别器连接,被配置为根据输入的译码阶段的源操作数有效信号、各个执行阶段的写回有效信号、以及所述旁路比较器输出的各个执行阶段对应的比较结果信号,获取并输出各个执行阶段对应的旁路有效信号,其中,若源操作数有效信号、某个执行阶段的写回有效信号和比较结果信号均为1,则当前执行阶段对应的旁路有效信号为1;
所述优先级判别器,与数据选择器连接,被配置为根据所述旁路生成器输出的各个执行阶段对应的旁路有效信号和各个执行阶段的优先级顺序,获取并输出各个执行阶段对应的选择有效信号和用于表示不存在数据相关性情况的选择有效信号,其中,若某个执行阶段对应的旁路有效信号为1,且不存在优先级更高的执行阶段对应的旁路有效信号为1,则当前执行阶段对应的选择有效信号为1,其余执行阶段对应的选择有效信号为0,若各个执行阶段对应的旁路有效信号均为0,则用于表示不存在数据相关性情况的选择有效信号为1;
所述数据选择器,被配置为根据输入的各个执行阶段的目的操作数、译码阶段的源寄存器操作数、以及所述优先级判别器输出的选择有效信号,确定并输出旁路数据。
在一些可能的实现方式中,所述旁路比较器包括多个同或门;
多个所述同或门分别以多个执行阶段的目的寄存器标号作为一个输入、以及以译码阶段的源寄存器标号作为一个输入,所述同或门被配置为对两个输入进行同或逻辑操作,获取并输出比较结果信号,多个所述同或门的输出与所述旁路生成器连接,多个所述同或门的输出为所述旁路比较器的输出。
在一些可能的实现方式中,所述旁路生成器包括多个第一与门;
多个所述第一与门分别以多个所述同或门输出的比较结果信号作为一个输入、分别以输入的比较结果信号所对应的执行阶段的写回有效信号作为一个输入、以及以译码阶段的源操作数有效信号作为一个输入,所述第一与门被配置为对三个输入进行与逻辑操作,获取并输出旁路有效信号,多个所述第一与门的输出与所述优先级判别器连接,多个所述第一与门的输出为所述旁路生成器的输出。
在一些可能的实现方式中,所述优先级判别器包括第一或非门、第二或非门和第二与门;
所述第一或非门包括多个,第i个所述第一或非门以第i-1个至第一个所述第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,i>1,第一个所述或非门以0号寄存器返回的数据为输入,所述第二或非门以第n个至第一个所述第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,所述第一或非门和所述第二或非门被配置为对输入进行或非逻辑操作,n表示执行阶段的个数,第i个所述第一或非门和第i个所述第一与门对应于第i个执行阶段;
所述第二与门包括多个,多个所述第二与门分别以多个所述第一或非门的输出作为一个输入、以及分别以多个所述第一与门输出的旁路有效信号作为一个输入,所述第二与门被配置为对两个输入进行与逻辑操作,获取并输出各个执行阶段对应的选择有效信号,所述第二或非门输出用于表示不存在数据相关性情况的选择有效信号,多个所述第二与门和所述第二或非门的输出为所述优先级判别器的输出。
在一些可能的实现方式中,所述数据选择器包括第一门控电路、第二门控电路和或门;
所述第一门控电路包括多个,多个所述第一门控电路分别以多个所述第二与门输出的选择有效信号作为一个输入、以及分别以多个执行阶段的目的操作数作为一个输入,所述第一门控电路被配置为在输入的选择有效信号为1时,输出所输入的目的操作数,在输入的选择有效信号为0时,输出0;
所述第二门控电路以所述第二或非门输出的选择有效信号作为一个输入、以译码阶段的源寄存器操作数作为一个输入,所述第二门控电路被配置为在输入的选择有效信号为1时,输出所输入的源寄存器操作数,在输入的选择有效信号为0时,输出0;
所述或门的输入端与多个所述第一门控电路的输出端和所述第二门控电路的输出端连接,所述或门被配置为对输入的数据进行或逻辑操作,获取并输出旁路数据,旁路数据为源寄存器操作数或一个执行阶段的目的寄存器。
本发明技术方案的主要优点如下:
本发明的基于优先级判定的深度流水线前向旁路能够实现前向旁路的优先级判定,确定并输出优先级最高的旁路数据,有效地缓解数据相关性问题导致的流水线停顿问题,且具有较强的适用性;并且,通过采用逻辑门操作来实现优先级判定,能够保证该深度流水线前向旁路易于实现,并降低实现成本。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例的基于优先级判定的深度流水线前向旁路的结构原理示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明实施例提供的技术方案。
参考图1,本发明一实施例提供了一种基于优先级判定的深度流水线前向旁路,该深度流水线前向旁路包括:
旁路比较器1,与旁路生成器2连接,被配置为对输入的译码阶段的源寄存器标号与各个执行阶段的目的寄存器标号分别进行匹配比较,获取并输出各个执行阶段对应的比较结果信号;
旁路生成器2,与优先级判别器3连接,被配置为根据输入的译码阶段的源操作数有效信号、各个执行阶段的写回有效信号、以及旁路比较器1输出的各个执行阶段对应的比较结果信号,获取并输出各个执行阶段对应的旁路有效信号,其中,若源操作数有效信号、某个执行阶段的写回有效信号和比较结果信号均为1,则当前执行阶段对应的旁路有效信号为1;
优先级判别器3,与数据选择器4连接,被配置为根据旁路生成器2输出的各个执行阶段对应的旁路有效信号和各个执行阶段的优先级顺序,获取并输出各个执行阶段对应的选择有效信号和用于表示不存在数据相关性情况的选择有效信号,其中,若某个执行阶段对应的旁路有效信号为1,且不存在优先级更高的执行阶段对应的旁路有效信号为1,则当前执行阶段对应的选择有效信号为1,其余执行阶段对应的选择有效信号为0,若各个执行阶段对应的旁路有效信号均为0,则用于表示不存在数据相关性情况的选择有效信号为1;
数据选择器4,被配置为根据输入的各个执行阶段的目的操作数、译码阶段的源寄存器操作数、以及优先级判别器3输出的选择有效信号,确定并输出旁路数据。
本发明一实施例中,该深度流水前向旁路接收来自译码阶段和执行阶段的输入,输出为旁路后的源操作数。
具体地,来自译码阶段(ID)的输入包括源操作数有效信号(rs_val)、源寄存器标号(id_rs)和源寄存器操作数(id_gpr)。源操作数有效信号用于表示译码阶段的指令是否需要读取源操作数;源寄存器标号表示用来检索通用寄存器文件、读取寄存器操作数的索引,如架构有32个寄存器,那么寄存器标号可用5个比特位表示;源寄存器操作数表示根据源寄存器标号去寄存器文件检索所得的数据。来自执行阶段的输入分别包括各个执行阶段的写回有效信号(ex1_val/ex2_val/.../exn_val)、目的寄存器标号(ex1_rd/ex2_rd/.../exn_rd)和目的操作数(ex1_data/ex2_rd/.../exn_rd)。写回有效信号表示对应执行阶段需要的执行结果写回寄存器文件;目的寄存器标号表示将数据写回到寄存器文件的索引;目的操作数表示需要写回的数据。
在深度流水线中,在译码阶段需要从前序多个执行阶段中,根据优先级判定选择最多一条旁路,并选择该旁路对应的目的操作数作为当前站的源操作数。而如果多条旁路都不满足条件,则选择源寄存器操作数作为当前站的源操作数。本发明一实施例提供的深度流水前向旁路能够根据输入,确定并输出最终的旁路数据,即目的操作数或源寄存器操作数。
进一步地,对于如何实现上述的旁路比较器1、旁路生成器2、优先级判别器3和数据选择器4的功能,以实现该深度流水前向旁路的功能,以下进行具体说明:
参考图1,本发明一实施例中,旁路比较器1包括多个同或门(&xnor);
多个同或门分别以多个执行阶段的目的寄存器标号作为一个输入、以及以译码阶段的源寄存器标号作为一个输入,同或门被配置为对两个输入进行同或逻辑操作,获取并输出比较结果信号(ex1_cmp/ex2_cmp/.../exn_cmp),多个同或门的输出与旁路生成器连接,多个同或门的输出为旁路比较器的输出。
具体地,以执行阶段为n个(EX1、EX2、...、EXn)为例,则同或门包括至少n个,n个同或门分别以n个执行阶段的目的寄存器标号作为一个输入、以及以译码阶段的源寄存器标号作为一个输入,同或门对输入的目的寄存器标号和源寄存器标号进行同或逻辑操作,若目的寄存器标号和源寄存器标号一致,则同或门输出为1的比较结果信号,若目的寄存器标号和源寄存器标号不一致,则同或门输出为0的比较结果信号。
由于当译码阶段的源寄存器标号和前序执行阶段的目的寄存器标号匹配时才存在数据相关,而存在数据相关是进行数据旁路的必要条件,通过上述设置的旁路比较器1能够确定各个执行阶段与译码阶段是否存在数据相关,进而确定是否满足数据旁路的必要条件。
进一步地,参考图1,本发明一实施例中,旁路生成器2包括多个第一与门(and-1);
多个第一与门分别以多个同或门输出的比较结果信号作为一个输入、分别以输入的比较结果信号所对应的执行阶段的写回有效信号作为一个输入、以及以译码阶段的源操作数有效信号作为一个输入,第一与门被配置为对三个输入进行与逻辑操作,获取并输出旁路有效信号(byp_val[1]/byp_val[2]/.../byp_val[n]),多个第一与门的输出与优先级判别器3连接,多个第一与门的输出为旁路生成器2的输出。
具体地,以执行阶段为n个为例,则第一与门包括至少n个,n个第一与门分别与n个同或门连接,n个第一与门分别以n个同或门输出的比较结果信号作为一个输入、分别以输入的比较结果信号所对应的执行阶段的写回有效信号作为一个输入、以及以译码阶段的源操作数有效信号作为一个输入,第一与门对输入的比较结果信号、写回有效信号和源操作数有效信号进行与逻辑操作,若比较结果信号、写回有效信号和源操作数有效信号均为1,则第一与门输出为1的旁路有效信号,若比较结果信号、写回有效信号和源操作数有效信号不均为1,则第一与门输出为0的旁路有效信号。
由于只有同时满足译码阶段的源操作数有效、执行阶段的写回有效、译码阶段的源寄存器标号和对应执行阶段的目的寄存器标号匹配时,对应执行阶段的目的操作数才满足被旁路的条件,通过上述设置的旁路生成器2能够确定各个执行阶段是否满足被旁路的条件。
进一步地,由于距离译码阶段越近的执行阶段所产生的目的操作数越新,因此,距离译码阶段越近的执行阶段的优先级越高,即第i-1个执行阶段的优先级高于第i个执行阶段。为此,参考图1,本发明一实施例中,优先级判别器3包括第一或非门、第二或非门和第二与门(and-2);
第一或非门包括多个,第i个第一或非门以第i-1个至第一个第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,i>1,第一个或非门以0号寄存器返回的数据为输入,第二或非门以第n个至第一个第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,第一或非门和第二或非门被配置为对输入进行或非逻辑操作,n表示执行阶段的个数,第i个第一或非门和第i个第一与门对应于第i个执行阶段;
第二与门包括多个,多个第二与门分别以多个第一或非门的输出作为一个输入、以及分别以多个第一与门输出的旁路有效信号作为一个输入,第二与门被配置为对两个输入进行与逻辑操作,获取并输出各个执行阶段对应的选择有效信号(sel[1]/sel[2]/.../sel[n]),第二或非门输出用于表示不存在数据相关性情况的选择有效信号(sel[n+1]),多个第二与门和第二或非门的输出为优先级判别器3的输出。
本发明一实施例中,优先级判别器3通过或非门的或非逻辑操作来判断是否存在更高优先级的执行阶段。
具体地,以执行阶段为n个为例,则第一或非门包括至少n个,第二与门包括至少n个,第i个(i>1)第一或非门以第i-1个至第一个第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,第一个或非门以0号寄存器返回的数据为输入,第一或非门对输入的数据进行或非逻辑操作,若输入的数据均为0,则第一或非门输出1,若输入的数据不均为0,则第一或非门输出0。第二或非门以第n个至第一个第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,若输入的数据均为0,则第二或非门输出为1的选择有效信号,若输入的数据不均为0,则第二或非门输出为0的选择有效信号。n个第二与门分别以n个第一或非门的输出作为一个输入、以及分别以n个第一与门输出的旁路有效信号作为一个输入,第二与门对输入的第一或非门的输出和旁路有效信号进行与逻辑操作,若第一或非门的输出和旁路有效信号均为1,则第二与门输出为1的选择有效信号,若第一或非门的输出和旁路有效信号不均为1,则第二与门输出为0的选择有效信号。
本发明一实施例中,基于上述设置的优先级判别器3,优先级判别器3输出的选择有效信号最多只有一个有效,即最多只有一个为1。当某一执行阶段对应的选择有效信号为1时,则同时满足该执行阶段的旁路有效,并且不存在更高优先级的有效旁路;当某一执行阶段对应的选择有效信号为1时,则其他执行阶段对应的选择有效信号均为0。而当所有执行阶段对应的选择有效信号为0时,此时意味着译码阶段和执行阶段没有数据相关,则表示不存在数据相关性情况的选择有效信号为1。
此外,由于在一些深度流水线体系架构中,0号寄存器需要返回0,本发明一实施例设置的优先级判别器3也考虑该情况的存在,通过设置byp_val[0]用以标识这种特殊用途,即当byp_val[0]=1时将不选择旁路数据。
进一步地,参考图1,本发明一实施例中,数据选择器4包括第一门控电路(gate-1)、第二门控电路(gate-2)和或门(or);
第一门控电路包括多个,多个第一门控电路分别以多个第二与门输出的选择有效信号作为一个输入、以及分别以多个执行阶段的目的操作数作为一个输入,第一门控电路被配置为在输入的选择有效信号为1时,输出所输入的目的操作数,在输入的选择有效信号为0时,输出0;
第二门控电路以第二或非门输出的选择有效信号作为一个输入、以译码阶段的源寄存器操作数作为一个输入,第二门控电路被配置为在输入的选择有效信号为1时,输出所输入的源寄存器操作数,在输入的选择有效信号为0时,输出0;
或门的输入端与多个第一门控电路的输出端和第二门控电路的输出端连接,或门被配置为对输入的数据进行或逻辑操作,获取并输出旁路数据(byp_rs),旁路数据为源寄存器操作数或一个执行阶段的目的寄存器。
具体地,以执行阶段为n个为例,则第一门控电路包括至少n个,n个第一门控电路分别以n个第二与门输出的选择有效信号作为一个输入、以及分别以n个执行阶段的目的操作数作为一个输入,当某个第一门控电路输入的选择有效信号有效时,即为1时,则该第一门控电路输出所输入的目的操作数,当某个第一门控电路输入的选择有效信号无效时,即为0时,则该第一门控电路输出0。第二门控电路以第二或非门输出的选择有效信号作为一个输入、以译码阶段的源寄存器操作数作为一个输入,当第二门控电路输入的选择有效信号有效时,即为1时,则第二门控电路输出所输入的源寄存器操作数,当第二门控电路输入的选择有效信号无效时,即为0时,则第二门控电路输出0。或门以n个第一门控电路的输出和第二门控电路的输出为输入,对输入进行或逻辑操作,输出输入中不为0的数据作为旁路数据。
其中,基于上述设置的优先级判别器3和数据选择器4,当byp_val[0]=1时,所有的选择有效信号(sel[n+1:1])均为0,即旁路的结果为0,恰好符合深度流水线体系架构对0号寄存器的语义要求。
本发明一实施例提供的基于优先级判定的深度流水线前向旁路能够实现前向旁路的优先级判定,确定并输出优先级最高的旁路数据,有效地缓解数据相关性问题导致的流水线停顿问题,且具有较强的适用性;并且,通过采用逻辑门操作来实现优先级判定,能够保证该深度流水线前向旁路易于实现,并降低实现成本。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。
最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (2)
1.一种基于优先级判定的深度流水线前向旁路,其特征在于,包括:
旁路比较器,与旁路生成器连接,被配置为对输入的译码阶段的源寄存器标号与各个执行阶段的目的寄存器标号分别进行匹配比较,获取并输出各个执行阶段对应的比较结果信号;
所述旁路生成器,与优先级判别器连接,被配置为根据输入的译码阶段的源操作数有效信号、各个执行阶段的写回有效信号、以及所述旁路比较器输出的各个执行阶段对应的比较结果信号,获取并输出各个执行阶段对应的旁路有效信号,其中,若源操作数有效信号、某个执行阶段的写回有效信号和比较结果信号均为1,则当前执行阶段对应的旁路有效信号为1;
所述优先级判别器,与数据选择器连接,被配置为根据所述旁路生成器输出的各个执行阶段对应的旁路有效信号和各个执行阶段的优先级顺序,获取并输出各个执行阶段对应的选择有效信号和用于表示不存在数据相关性情况的选择有效信号,其中,若某个执行阶段对应的旁路有效信号为1,且不存在优先级更高的执行阶段对应的旁路有效信号为1,则当前执行阶段对应的选择有效信号为1,其余执行阶段对应的选择有效信号为0,若各个执行阶段对应的旁路有效信号均为0,则用于表示不存在数据相关性情况的选择有效信号为1;
所述数据选择器,被配置为根据输入的各个执行阶段的目的操作数、译码阶段的源寄存器操作数、以及所述优先级判别器输出的选择有效信号,确定并输出旁路数据;
所述旁路比较器包括多个同或门;
多个所述同或门分别以多个执行阶段的目的寄存器标号作为一个输入、以及以译码阶段的源寄存器标号作为一个输入,所述同或门被配置为对两个输入进行同或逻辑操作,获取并输出比较结果信号,多个所述同或门的输出与所述旁路生成器连接,多个所述同或门的输出为所述旁路比较器的输出;
所述旁路生成器包括多个第一与门;
多个所述第一与门分别以多个所述同或门输出的比较结果信号作为一个输入、分别以输入的比较结果信号所对应的执行阶段的写回有效信号作为一个输入、以及以译码阶段的源操作数有效信号作为一个输入,所述第一与门被配置为对三个输入进行与逻辑操作,获取并输出旁路有效信号,多个所述第一与门的输出与所述优先级判别器连接,多个所述第一与门的输出为所述旁路生成器的输出;
所述优先级判别器包括第一或非门、第二或非门和第二与门;
所述第一或非门包括多个,第i个所述第一或非门以第i-1个至第一个所述第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,i>1,第一个所述或非门以0号寄存器返回的数据为输入,所述第二或非门以第n个至第一个所述第一与门输出的旁路有效信号和0号寄存器返回的数据为输入,所述第一或非门和所述第二或非门被配置为对输入进行或非逻辑操作,n表示执行阶段的个数,第i个所述第一或非门和第i个所述第一与门对应于第i个执行阶段;
所述第二与门包括多个,多个所述第二与门分别以多个所述第一或非门的输出作为一个输入、以及分别以多个所述第一与门输出的旁路有效信号作为一个输入,所述第二与门被配置为对两个输入进行与逻辑操作,获取并输出各个执行阶段对应的选择有效信号,所述第二或非门输出用于表示不存在数据相关性情况的选择有效信号,多个所述第二与门和所述第二或非门的输出为所述优先级判别器的输出。
2.根据权利要求1所述的基于优先级判定的深度流水线前向旁路,其特征在于,所述数据选择器包括第一门控电路、第二门控电路和或门;
所述第一门控电路包括多个,多个所述第一门控电路分别以多个所述第二与门输出的选择有效信号作为一个输入、以及分别以多个执行阶段的目的操作数作为一个输入,所述第一门控电路被配置为在输入的选择有效信号为1时,输出所输入的目的操作数,在输入的选择有效信号为0时,输出0;
所述第二门控电路以所述第二或非门输出的选择有效信号作为一个输入、以译码阶段的源寄存器操作数作为一个输入,所述第二门控电路被配置为在输入的选择有效信号为1时,输出所输入的源寄存器操作数,在输入的选择有效信号为0时,输出0;
所述或门的输入端与多个所述第一门控电路的输出端和所述第二门控电路的输出端连接,所述或门被配置为对输入的数据进行或逻辑操作,获取并输出旁路数据,旁路数据为源寄存器操作数或一个执行阶段的目的寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311199843.4A CN117331603B (zh) | 2023-09-18 | 2023-09-18 | 基于优先级判定的深度流水线前向旁路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311199843.4A CN117331603B (zh) | 2023-09-18 | 2023-09-18 | 基于优先级判定的深度流水线前向旁路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117331603A CN117331603A (zh) | 2024-01-02 |
CN117331603B true CN117331603B (zh) | 2024-04-09 |
Family
ID=89278184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311199843.4A Active CN117331603B (zh) | 2023-09-18 | 2023-09-18 | 基于优先级判定的深度流水线前向旁路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331603B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590365A (en) * | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
EP1217514A2 (en) * | 2000-12-23 | 2002-06-26 | International Business Machines Corporation | Method and apparatus for bypassing pipeline stages |
US6601162B1 (en) * | 2000-01-19 | 2003-07-29 | Kabushiki Kaisha Toshiba | Processor which executes pipeline processing having a plurality of stages and which has an operand bypass predicting function |
CN1664775A (zh) * | 2004-03-03 | 2005-09-07 | 浙江大学 | 一种数字信号处理器中数据旁路技术 |
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN111078294A (zh) * | 2019-11-22 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种处理器的指令处理方法、设备以及存储介质 |
CN111414196A (zh) * | 2020-04-03 | 2020-07-14 | 中国人民解放军国防科技大学 | 一种零值寄存器的实现方法及装置 |
CN112182999A (zh) * | 2020-09-14 | 2021-01-05 | 西北工业大学 | 一种基于mips32指令系统的三级流水线cpu设计方法 |
CN114398298A (zh) * | 2022-01-18 | 2022-04-26 | 中国人民解放军国防科技大学 | 一种缓存流水线处理方法及装置 |
CN114780149A (zh) * | 2022-04-07 | 2022-07-22 | 中国人民解放军国防科技大学 | 用于乱序超标量处理器的操作依赖性调度方法、部件及处理器 |
-
2023
- 2023-09-18 CN CN202311199843.4A patent/CN117331603B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590365A (en) * | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
US6601162B1 (en) * | 2000-01-19 | 2003-07-29 | Kabushiki Kaisha Toshiba | Processor which executes pipeline processing having a plurality of stages and which has an operand bypass predicting function |
EP1217514A2 (en) * | 2000-12-23 | 2002-06-26 | International Business Machines Corporation | Method and apparatus for bypassing pipeline stages |
CN1664775A (zh) * | 2004-03-03 | 2005-09-07 | 浙江大学 | 一种数字信号处理器中数据旁路技术 |
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN111078294A (zh) * | 2019-11-22 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种处理器的指令处理方法、设备以及存储介质 |
CN111414196A (zh) * | 2020-04-03 | 2020-07-14 | 中国人民解放军国防科技大学 | 一种零值寄存器的实现方法及装置 |
CN112182999A (zh) * | 2020-09-14 | 2021-01-05 | 西北工业大学 | 一种基于mips32指令系统的三级流水线cpu设计方法 |
CN114398298A (zh) * | 2022-01-18 | 2022-04-26 | 中国人民解放军国防科技大学 | 一种缓存流水线处理方法及装置 |
CN114780149A (zh) * | 2022-04-07 | 2022-07-22 | 中国人民解放军国防科技大学 | 用于乱序超标量处理器的操作依赖性调度方法、部件及处理器 |
Non-Patent Citations (3)
Title |
---|
64位MIPS指令处理器的流水线设计;李明刚;《现代电子技术》;20050201(第3期);全文 * |
Improving Interrupt Handling in the nMPRA;Gaitan, Nicoleta Cristina等;《IEEE》;20150909;全文 * |
基于提前写回策略的数据转发优化方法;蔡卫光;姚庆栋;刘鹏;张奇;张贻雄;;浙江大学学报(工学版);20100115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117331603A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0551932B1 (en) | Digital signal processor processing multi-point conditional branch operations in a pipeline mode | |
US7203817B2 (en) | Power consumption reduction in a pipeline by stalling instruction issue on a load miss | |
US6976152B2 (en) | Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard | |
US6279105B1 (en) | Pipelined two-cycle branch target address cache | |
US5619664A (en) | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms | |
CN103488463A (zh) | 通过循环结束分支来抑制分支历史寄存器的更新 | |
US5668984A (en) | Variable stage load path and method of operation | |
US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
KR100986375B1 (ko) | 피연산자의 빠른 조건부 선택 | |
US20040225870A1 (en) | Method and apparatus for reducing wrong path execution in a speculative multi-threaded processor | |
US20050223055A1 (en) | Method and apparatus to correct leading one prediction | |
US6708267B1 (en) | System and method in a pipelined processor for generating a single cycle pipeline stall | |
CN117331603B (zh) | 基于优先级判定的深度流水线前向旁路 | |
US6405232B1 (en) | Leading bit prediction with in-parallel correction | |
US6587940B1 (en) | Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file | |
KR100305487B1 (ko) | 특정유형의인스트럭션을동시에처리할수있는방법및데이터프로세싱시스템 | |
US7269714B2 (en) | Inhibiting of a co-issuing instruction in a processor having different pipeline lengths | |
US10275220B2 (en) | Arithmetic processing device and control method for arithmetic processing device | |
US6442678B1 (en) | Method and apparatus for providing data to a processor pipeline | |
US8375078B2 (en) | Fast floating point result forwarding using non-architected data format | |
JPH08263288A (ja) | パイプライン・プロセッサ内において、誤って予測された実行分岐後にアネックス内のヤング・ビットを回復する方法及び装置 | |
US7783692B1 (en) | Fast flag generation | |
US7991816B2 (en) | Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units | |
US20040249878A1 (en) | High frequency compound instruction mechanism and method | |
US6772318B1 (en) | Bypass control circuit |
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 |