CN213482864U - 用于调度乱序队列的仲裁电路 - Google Patents
用于调度乱序队列的仲裁电路 Download PDFInfo
- Publication number
- CN213482864U CN213482864U CN202022585459.6U CN202022585459U CN213482864U CN 213482864 U CN213482864 U CN 213482864U CN 202022585459 U CN202022585459 U CN 202022585459U CN 213482864 U CN213482864 U CN 213482864U
- Authority
- CN
- China
- Prior art keywords
- instruction
- queue
- exclusive
- age
- order
- 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
Images
Landscapes
- Advance Control (AREA)
Abstract
本实用新型公开了一种用于调度乱序队列的仲裁电路,包括:与用于记录乱序处理器中所有指令的寄存器队列地址相连的多个异或门,其中,异或门的一个输入端与寄存器队列地址前面增加的最高位相连,另一个输入端与寄存器队列的读指针增加的最高位相连,将异或后得到的地址作为指令的年龄信息;与多个异或门相连的比较器组件,比较器组件用于根据指令的年龄信息判断得到指令年龄的新老;分别与乱序队列和比较器组件相连的调度部件,调度部件在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。该仲裁电路可以提高调度的可靠性,降低判断复杂度,减小判断延时,提高乱序处理器的性能、降低功耗、节约面积。
Description
技术领域
本实用新型涉及乱序处理器技术领域,特别涉及一种用于调度乱序队列的仲裁电路。
背景技术
乱序处理器的指令到了乱序队列中,就不会按照程序中指定的顺序在处理器中流动,只要满足执行的条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。
在乱序处理器的乱序队列调度上,当乱序队列中有多条指令准备好,一般优先选择程序上最早的指令执行,即采用oldest-first策略进行调度仲裁,因此需要判断指令的先后顺序。这是考虑到越是旧的指令,和它存在相关的指令也就越多,因此优先执行最旧的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指令还占据着处理器中的硬件资源,包括其他的乱序队列、重定序缓存、写缓冲区(StoreBuffer)等部件,越早地执行这些旧的指令,就可以越早地释放这些硬件资源,供后面的指令使用。乱序处理器中的乱序队列包括发射队列、各级缓存的访问队列、缓存访问失效队列,一致性请求队列等。
相关技术中,通常通过乱序处理器的仲裁电路进行指令年龄信息的判断,然而,在判断时容易出现指令年龄大小的混乱问题,因此也降低了仲裁电路进行乱序队列调度的可靠性;且由于判断的实质是通过比较器的比较实现的,因此,如果想要在判断中解决年龄大小混乱的问题,提高调度的速度,则需要增加大量的比较器,从而大大增加了处理器的复杂度、延时、面积以及功耗。
实用新型内容
本实用新型旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本实用新型的目的在于提出一种用于调度乱序队列的仲裁电路,可以提高调度的可靠性,降低判断复杂度,减小判断延时,提高乱序处理器的性能、降低功耗、节约面积。
为达到上述目的,本实用新型提供一种用于调度乱序队列的仲裁电路,包括:与用于记录乱序处理器中所有指令的寄存器队列地址相连的多个异或门,其中,异或门的一个输入端与寄存器队列地址前面增加的最高位相连,另一个输入端与寄存器队列的读指针增加的最高位相连,将异或后得到的地址作为指令的年龄信息;与多个异或门相连的比较器组件,所述比较器组件用于根据指令的年龄信息判断得到指令年龄的新老;分别与乱序队列和比较器组件相连的调度部件,所述调度部件在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。
根据本实用新型的用于调度乱序队列的仲裁电路,通过在比较器前增加的异或门异或寄存器队列地址前面增加的最高位和寄存器队列的读指针增加的最高位,得到每条指令的年龄信息,并通过比较得到年龄的新老,避免在判断时出现指令年龄大小混乱的问题,提高调度的可靠性;由于增加的异或门可以有效减少比较的次数,因此可以直接减少所需比较器的数量,从而可以降低判断复杂度,减小判断延时,提高乱序处理器的性能、降低功耗、节约面积。
进一步地,所述寄存器队列为重定序缓存或转移重定序缓存。
进一步地,所述比较器组件包括:多个第一级比较器,每个第一级比较器的两个输入端分别与相邻的两个异或门的输出端相连,以比较两条指令的年龄信息,判断得到指令年龄的新老。
进一步地,所述比较器组件还包括:多个第二级至第N级比较器,在后比较器的两个输入端分别与在前两个相邻比较器的输出端相连,以比较得到所有指令年龄的新老,其中,N大于等于2。
本实用新型附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本实用新型的实践了解到。
附图说明
本实用新型上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本实用新型实施例提供的用于调度乱序队列的仲裁电路的结构示意图;
图2为根据本实用新型实施例提供的用于调度乱序队列的仲裁电路的部分结构示例图;
图3为根据本实用新型实施例提供的用来进行年龄比较地址信息的装置示意图;
图4为根据本实用新型实施例提供的乱序队列选择指令执行的仲裁电路示意图;
图5为根据本实用新型实施例提供的乱序队列仲裁的指令用重定序缓存中的地址生成年龄(age)值示意图。
具体实施方式
下面详细描述本实用新型的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本实用新型,而不能理解为对本实用新型的限制。
下面参照附图描述根据本实用新型实施例提出的具有指令年龄比较功能的仲裁电路用于调度乱序队列的仲裁电路。具体而言,图1为本实用新型实施例所提供的一种具有指令年龄比较功能的仲裁电路用于调度乱序队列的仲裁电路的结构示意图。
如图1所示,用于调度乱序队列的仲裁电路10包括:多个异或门100、比较器组件200和调度部件300。
其中,多个异或门100与用于记录乱序处理器中所有指令的寄存器队列地址相连,其中,异或门的一个输入端与寄存器队列地址前面增加的最高位相连,另一个输入端与寄存器队列的读指针增加的最高位相连,将异或后得到的地址作为指令的年龄信息;比较器组件200与多个异或门相连,比较器组件200用于根据指令的年龄信息判断得到指令年龄的新老;调度部件300分别与乱序队列和比较器组件相连,调度部件300在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。
可以理解的是,本实用新型实施例通过增加异或门实现指令年龄的比较,由于异或门的使用减少了比较器的使用数量,从而有效降低了指令年龄判断的复杂度,减小指令年龄判断的延时,提高调度的可靠性,有效提高乱序处理器的性能、降低功耗、节约面积。
需要说明的是,当寄存器队列的读指针和写指针按地址增加的方向指向下一项时,地址增加的方向上年龄值小,其中,年龄值越小,则年龄越老,年龄值越大,则年龄越新。当寄存器队列的读指针和写指针按地址减小的方向指向下一项时,地址减小的方向上年龄值大,其中,年龄值越大,则年龄越老,年龄值越小,则年龄越新。
在本实用新型的一个实施例中,寄存器队列可以为重定序缓存或转移重定序缓存。
进一步地,在本实用新型的一个实施例中,比较器组件200包括:多个第一级比较器,每个第一级比较器的两个输入端分别与相邻的两个异或门的输出端相连,以比较两条指令的年龄信息,判断得到指令年龄的新老。
举例而言,如图2所示,以两个异或门和一个第一级比较器为例进行指令1和指令2的年龄信息的大小比较,具体如下:两个异或门分别为第一异或门和第二异或门,两个异或门的一个输入端均与寄存器的读指针增加的最高位相连,第一异或门的另一输入端与指令1对应地址前面增加的最高位相连,第二异或门的另一输入端与指令2对应地址前面增加的最高位相连,将异或后得到的地址作为两条指令的年龄信息进行大小比较,以判断得到指令年龄的新老。
进一步地,本实用新型实施例中可以通过如图3所示的装置用来进行年龄比较地址信息。例如,在重定序缓存和转移重定序缓存地址前面再增加一位最高位,用重定序缓存的读指针增加的最高位,异或两个需要比较的重定序缓存地址的最高位,将异或后得到的地址作为指令的年龄信息,即,
roqid0_cmp={roqid0[highestbit]^roqhead[highestbit],roqid0[highestbit-1:0]};
roqid1_cmp={roqid1[highestbit]^roqhead[highestbit],roqid1[highestbit-1:0]};
再使用roqid0_cmp与roqid1_cmp进行地址大小的比较,得到两条指令的年龄新旧。其中,roqid0[highestbit]和roqid1[highestbit]表示两个需要比较的重定序缓存或转移重定序缓存地址增加的最高位,roqhead[highestbit]表示重定序缓存或转移重定序缓存的读指针增加的最高位,roqid0[highestbit-1:0]和roqid1[highestbit-1:0]表示两个需要比较的重定序缓存或转移重定序缓存地址0至最高位-1,roqid0_cmp和roqid1_cmp表示将异或后得到的地址,图3中,roqid0_cmp[highestbit]和roqid1_cmp[highestbit]表示最高位异或后得到的地址,roqid0_cmp[highestbit-1:0]和roqid1_cmp[highestbit-1:0]与roqid0[highestbit-1:0]和roqid1[highestbit-1:0]的地址一样。
进一步地,在本实用新型的一个实施例中,比较器组件200还包括:多个第二级至第N级比较器,在后比较器的两个输入端分别与在前两个相邻比较器的输出端相连,以比较得到所有指令年龄的新老,其中,N大于等于2。
可以理解的是,第二级比较器的两个输入端分别与两个相邻的第一级比较器的输出端相连,第三级比较器的两个输入端分别与两个相邻的第二比较器的输出端相连,依次类推,将第一级至N级比较器进行连接。需要说明的是,本领域技术人员可以根据设计的需求设计每一级比较器的数量和所以比较器的级数,在此不做具体限定。
举例而言,对于乱序队列的指令调度的情况,以8项的乱序队列为例,队列每一项包括valid域、rdy域、roqid域和data域等指令用到的信息域。valid域记录该项是否有效(例如定义valid为1表示有效,valid为0表示无效);rdy域记录该项指令和数据是否已准备好(例如定义rdy为1表示已准备好,即达到可执行的状态;rdy为0表示未准备好);roqid域记录该指令的重定序缓存地址,用来生成指令的年龄信息;data域记录该项的指令用到的命令、数据等信息。Roqhead表示重定序缓存的头指针地址。
乱序队列在执行的时候,选择队列中有效且年龄最老的准备好的项的指令执行。指令年龄的判断用每项对应的roqid增加的最高位异或roqhead的最高位得到对应的指令年龄信息,age小的指令年龄最老。选出age最小的第一项作为乱序队列执行项。
如图4所示,对于8项的乱序队列,队列中的指令A、B、C、D、E、F、G均处于有效状态,即valid位均为1。rdy位为1的指令表示已准备好,即指令B、C、D、F、H处于已准备好,可执行状态。Roqid为指令在重定序缓存中的地址,指令在重定序缓存中的状态如图5所示,roqhead增加的最高位为1,用roqhead增加的最高位异或指令roqid增加的最高位得到指令的年龄信息age。图4中的roqid为包括增加的最高位后的值。通过指令age大小的比较,仲裁得到指令有效、已经准备好、且年龄值最小为4的指令B来执行。
根据本实用新型实施例提出的用于调度乱序队列的仲裁电路,通过在比较器前增加的异或门异或寄存器队列地址前面增加的最高位和寄存器队列的读指针增加的最高位,得到每条指令的年龄信息,并通过比较得到年龄的新老,避免在判断时出现指令年龄大小混乱的问题,提高调度的可靠性;由于增加的异或门可以有效减少比较的次数,因此可以直接减少所需比较器的数量,从而可以降低判断复杂度,减小判断延时,提高乱序处理器的性能、降低功耗、节约面积。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本实用新型的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本实用新型的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本实用新型的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本实用新型的限制,本领域的普通技术人员在本实用新型的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (4)
1.一种用于调度乱序队列的仲裁电路,其特征在于,包括:
与用于记录乱序处理器中所有指令的寄存器队列地址相连的多个异或门,其中,异或门的一个输入端与寄存器队列地址前面增加的最高位相连,另一个输入端与寄存器队列的读指针增加的最高位相连,将异或后得到的地址作为指令的年龄信息;
与多个异或门相连的比较器组件,所述比较器组件用于根据指令的年龄信息判断得到指令年龄的新老;
分别与乱序队列和比较器组件相连的调度部件,所述调度部件在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。
2.根据权利要求1所述的仲裁电路,其特征在于,所述寄存器队列为重定序缓存或转移重定序缓存。
3.根据权利要求1所述的仲裁电路,其特征在于,所述比较器组件包括:
多个第一级比较器,每个第一级比较器的两个输入端分别与相邻的两个异或门的输出端相连,以比较两条指令的年龄信息,判断得到指令年龄的新老。
4.根据权利要求3所述的仲裁电路,其特征在于,所述比较器组件还包括:
多个第二级至第N级比较器,在后比较器的两个输入端分别与在前两个相邻比较器的输出端相连,以比较得到所有指令年龄的新老,其中,N大于等于2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022585459.6U CN213482864U (zh) | 2020-11-10 | 2020-11-10 | 用于调度乱序队列的仲裁电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022585459.6U CN213482864U (zh) | 2020-11-10 | 2020-11-10 | 用于调度乱序队列的仲裁电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN213482864U true CN213482864U (zh) | 2021-06-18 |
Family
ID=76354557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202022585459.6U Active CN213482864U (zh) | 2020-11-10 | 2020-11-10 | 用于调度乱序队列的仲裁电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN213482864U (zh) |
-
2020
- 2020-11-10 CN CN202022585459.6U patent/CN213482864U/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022100054A1 (zh) | 调度乱序队列和判断队列取消项的方法和装置 | |
JP3729087B2 (ja) | マルチプロセッサシステム、データ依存投機実行制御装置およびその方法 | |
JP5209933B2 (ja) | データ処理装置 | |
JP5548037B2 (ja) | 命令発行制御装置及び方法 | |
CN108932108B (zh) | 快闪存储器的命令排程及执行方法以及使用该方法的装置 | |
US8131953B2 (en) | Tracking store ordering hazards in an out-of-order store queue | |
US20090157943A1 (en) | Tracking load store ordering hazards | |
US7197590B2 (en) | Method and apparatus for connecting LPC bus and serial flash memory | |
CN116560729B (zh) | 一种多线程处理器的寄存器多级管理方法及系统 | |
US7966477B1 (en) | Power optimized replay of blocked operations in a pipilined architecture | |
KR100730280B1 (ko) | 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 | |
US7877576B2 (en) | Processing system having co-processor for storing data | |
CN114168202B (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
CN213482862U (zh) | 用于调度乱序队列和判断队列取消项的乱序处理器 | |
US7725686B2 (en) | Systems and methods for processing buffer data retirement conditions | |
US6862670B2 (en) | Tagged address stack and microprocessor using same | |
US7509482B2 (en) | Orderly processing ready entries from non-sequentially stored entries using arrival order matrix reordered upon removal of processed entries | |
CN213482864U (zh) | 用于调度乱序队列的仲裁电路 | |
CN108874447B (zh) | 处理器电路及其操作方法 | |
WO2024146076A1 (zh) | 乱序处理器中队列的队列项选择方法及装置 | |
CN213482863U (zh) | 具有指令年龄比较功能的仲裁电路 | |
WO2004046926A1 (ja) | イベント通知方法、デバイス及びプロセッサシステム | |
CN213482861U (zh) | 用于判断队列项是否取消的裁决电路 | |
US6282629B1 (en) | Pipelined processor for performing parallel instruction recording and register assigning | |
US11829768B2 (en) | Method for scheduling out-of-order queue and electronic device items |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |