1.一種處理器,包括:
多個(gè)物理寄存器,每個(gè)所述物理寄存器由物理寄存器索引標(biāo)識(shí);
重排序緩沖器,包括多個(gè)指令條目,每個(gè)指令條目存儲(chǔ)多至兩個(gè)物理寄存器索引用于回收相應(yīng)的物理寄存器,其中,所述重排序緩沖器在每個(gè)處理器周期中回退多至N個(gè)指令,其中N是正整數(shù);
主空閑列表和從空閑列表,均包括N個(gè)輸入端口并存儲(chǔ)所述物理寄存器的相應(yīng)物理寄存器索引,其中,其相應(yīng)物理寄存器索引存儲(chǔ)在所述主空閑列表中的所述物理寄存器將用于分配給正在發(fā)射的指令;
主回收電路,當(dāng)回退指令時(shí),將所述指令的指令條目中存儲(chǔ)的第一物理寄存器索引路由到所述主空閑列表的所述N個(gè)輸入端口之一;以及
從回收電路,當(dāng)回退所述指令時(shí),將所述指令的所述指令條目中存儲(chǔ)的第二物理寄存器索引路由到所述從空閑列表的所述N個(gè)輸入端口之一。
2.如權(quán)利要求1所述的處理器,進(jìn)一步包括:傳送電路,對(duì)于所述主回收電路路由與N相差差值數(shù)目的物理寄存器索引的任何給定處理器周期,所述傳送電路將所述從空閑列表中存儲(chǔ)的多至所述差值數(shù)目的物理寄存器索引傳送到所述主空閑列表的可用的輸入端口。
3.如權(quán)利要求1所述的處理器,進(jìn)一步包括:分配器,當(dāng)發(fā)射在其回退時(shí)要回收相應(yīng)的第一物理寄存器的所述指令時(shí),所述分配器將所述第一物理寄存器索引存儲(chǔ)至所述指令的所述指令條目中,和當(dāng)發(fā)射在其回退時(shí)要回收相應(yīng)的第二物理寄存器的所述指令時(shí),所述分配器另外地將所述第二物理寄存器索引存儲(chǔ)至所述指令的所述指令條目中。
4.如權(quán)利要求1所述的處理器,其中,所述多個(gè)指令條目中的每一個(gè)存儲(chǔ)用于所述第一物理寄存器索引的第一有效值和用于所述第二物理寄存器索引的第二有效值,且其中,分配器設(shè)置所述第一有效值以指示當(dāng)存儲(chǔ)所述第一物理寄存器索引時(shí)的有效性和設(shè)置所述第二有效值以指示當(dāng)存儲(chǔ)所述第二物理寄存器索引時(shí)的有效性。
5.如權(quán)利要求1所述的處理器,其中:
所述主回收電路從所述多個(gè)指令條目中對(duì)應(yīng)于正在回退的所述多至N個(gè)指令的指令條目中,選擇多至N個(gè)第一物理寄存器索引中的有效第一物理寄存器索引,并將其轉(zhuǎn)發(fā)到相應(yīng)的N個(gè)回收路徑上;以及
其中,所述處理器進(jìn)一步包括選擇電路,所述選擇電路接收多至N個(gè)第一物理寄存器索引中所述有效第一物理寄存器索引,并將其提供到所述主空閑列表的所述N個(gè)輸入端口中的相應(yīng)輸入端口。
6.如權(quán)利要求5所述的處理器,其中:
所述主回收電路聲明N個(gè)選擇信號(hào),所述N個(gè)選擇信號(hào)指示所述N個(gè)回收路徑中的哪個(gè)提供多至N個(gè)第一物理寄存器索引中所述有效第一物理寄存器索引中的相應(yīng)一個(gè);以及
其中,所述處理器進(jìn)一步包括傳送控制器,所述傳送控制器接收所述N個(gè)選擇信號(hào)中的有效選擇信號(hào),基于N和指示有效值的所述有效選擇信號(hào)的實(shí)際數(shù)目之間的差值確定差值數(shù)目,并且擷取多至所述差值數(shù)目的所述從空閑列表中存儲(chǔ)的物理寄存器索引,并經(jīng)由N個(gè)傳送路徑將其傳送到所述選擇電路。
7.如權(quán)利要求6所述的處理器,其中,所述選擇電路包括N個(gè)2輸入多路復(fù)用器,每個(gè)具有從所述主回收電路耦合到所述N個(gè)回收路徑中的相應(yīng)回收路徑的第一數(shù)據(jù)輸入,具有耦合到所述N個(gè)傳送路徑中的相應(yīng)傳送路徑的第二數(shù)據(jù)輸入,并具有耦合到所述N個(gè)有效選擇信號(hào)中的相應(yīng)有效選擇信號(hào)的選擇輸入。
8.如權(quán)利要求1所述的處理器,其中,所述從回收電路從所述多個(gè)指令條目的對(duì)應(yīng)于正在回退的所述多至N個(gè)指令的指令條目中,選擇多至N個(gè)第二物理寄存器索引中的有效第二物理寄存器索引,并將其轉(zhuǎn)發(fā)到耦合到所述從空閑列表的所述N個(gè)輸入端口的相應(yīng)N個(gè)回收路徑上。
9.一種處理器,包括:
多個(gè)物理寄存器,每個(gè)所述物理寄存器由物理寄存器索引標(biāo)識(shí);
重排序緩沖器,包括多個(gè)指令條目,每個(gè)指令條目存儲(chǔ)多至兩個(gè)物理寄存器索引用于回收相應(yīng)的物理寄存器,其中,所述多個(gè)指令條目中的每一個(gè)相應(yīng)于由所述重排序緩沖器回退的指令;
主隊(duì)列和從隊(duì)列,均包括多個(gè)輸入端口;
主回收電路,當(dāng)回退指令時(shí),將所述指令的指令條目中存儲(chǔ)的第一物理寄存器索引路由到所述主隊(duì)列;
從回收電路,當(dāng)回退所述指令時(shí),將所述指令的所述指令條目中存儲(chǔ)的第二物理寄存器索引路由到所述從隊(duì)列;以及
傳送控制器,當(dāng)所述主隊(duì)列具有至少一個(gè)可用的輸入端口時(shí),在處理器周期中將所述從隊(duì)列中存儲(chǔ)的至少一個(gè)物理寄存器索引傳送到所述主隊(duì)列。
10.如權(quán)利要求9所述的處理器,進(jìn)一步包括:
分配器,當(dāng)發(fā)射在其回退時(shí)要回收相應(yīng)的第一物理寄存器的所述指令時(shí),所述分配器將所述第一物理寄存器索引存儲(chǔ)至所述指令的所述指令條目中,并標(biāo)記所述第一物理寄存器索引為有效,以及當(dāng)發(fā)射在其回退時(shí)要回收相應(yīng)的第二物理寄存器的所述指令時(shí),所述分配器另外地將所述第二物理寄存器索引存儲(chǔ)至所述指令的所述指令條目中,并標(biāo)記所述第二物理寄存器索引為有效。
11.如權(quán)利要求10所述的處理器,其中,所述主回收電路僅當(dāng)所述第一物理寄存器索引標(biāo)記有效時(shí)將所述第一物理寄存器索引路由到所述主隊(duì)列,且其中,所述從回收電路僅當(dāng)所述第二物理寄存器索引標(biāo)記有效時(shí)將所述第二物理寄存器索引路由到所述從隊(duì)列。
12.如權(quán)利要求9所述的處理器,其中,所述重排序緩沖器每個(gè)處理器周期回退多至指定數(shù)目的指令,且其中,所述主回收電路從相應(yīng)于正在回退的所述指令的指令條目將多至實(shí)際數(shù)目的第一物理寄存器索引路由到所述主隊(duì)列。
13.如權(quán)利要求12所述的處理器,其中,所述傳送控制器確定所述指定數(shù)目和路由至所述主隊(duì)列的所述第一物理寄存器索引的所述實(shí)際數(shù)目之間的差值數(shù)目,且其中,所述傳送控制器將所述從隊(duì)列中存儲(chǔ)的多至所述差值數(shù)目的物理寄存器索引傳送到所述主隊(duì)列。
14.如權(quán)利要求9所述的處理器,其中,相應(yīng)物理寄存器索引存儲(chǔ)在所述主空閑列表中的所述物理寄存器將用于分配給正在發(fā)射的指令。
15.一種在處理器中回收物理寄存器的方法,包括:
由重排序緩沖器在每個(gè)處理器周期中回退多至N個(gè)指令;
對(duì)于正在回退的每個(gè)指令:
當(dāng)在該指令回退時(shí),第一物理寄存器標(biāo)識(shí)為要回收時(shí),將相應(yīng)的第一物理寄存器索引路由到主空閑列表;以及
當(dāng)在該指令回退時(shí),第二物理寄存器標(biāo)識(shí)為要回收時(shí),將相應(yīng)的第二物理寄存器索引路由到從空閑列表;以及
將在主空閑列表中存儲(chǔ)其相應(yīng)物理寄存器索引的物理寄存器分配給正在發(fā)射的指令。
16.如權(quán)利要求15所述的方法,當(dāng)在處理器周期中小于N個(gè)第一物理寄存器被回收到所述主空閑列表時(shí),進(jìn)一步包括:
確定N和正要回收到所述主空閑列表的所述第一物理寄存器的實(shí)際數(shù)目之間的差值數(shù)目;以及
將從空閑列表中存儲(chǔ)的多至所述差值數(shù)目的物理寄存器索引傳送到主空閑列表。
17.如權(quán)利要求15所述的方法,對(duì)于正在發(fā)射以用于執(zhí)行的每個(gè)指令,進(jìn)一步包括:
當(dāng)發(fā)射在其回退時(shí)要回收所述第一物理寄存器的指令時(shí),將第一物理寄存器索引存儲(chǔ)至所述重排序緩沖器的指令條目中;以及
當(dāng)發(fā)射在其回退時(shí)要回收所述第二物理寄存器的指令時(shí),將第二物理寄存器索引存儲(chǔ)至所述重排序緩沖器的所述指令條目中。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括更新所述指令條目中存儲(chǔ)的每個(gè)物理寄存器索引的有效位。
19.如權(quán)利要求15所述的方法,其中,所述將相應(yīng)的第一物理寄存器索引路由到主空閑列表包括:
將每個(gè)有效的第一物理寄存器索引轉(zhuǎn)發(fā)到N個(gè)回收路徑中的相應(yīng)回收路徑上;以及
從N個(gè)轉(zhuǎn)發(fā)路徑當(dāng)中選擇攜帶有效的第一物理寄存器索引的轉(zhuǎn)發(fā)路徑,并將每個(gè)有效的第一物理寄存器索引提供到所述主空閑列表的輸入端口。
20.如權(quán)利要求15所述的方法,其中,所述將所述相應(yīng)的第二物理寄存器索引路由到所述從空閑列表包括將每個(gè)有效的第二物理寄存器索引轉(zhuǎn)發(fā)到所述從空閑列表的N個(gè)輸入端口中的相應(yīng)輸入端口。