專利名稱:超線程微處理器中經(jīng)線程優(yōu)先級(jí)提供服務(wù)質(zhì)量的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器領(lǐng)域,并且具體地說(shuō),涉及向優(yōu)先級(jí)處理元件提供服務(wù)質(zhì)量。
技術(shù)背景
半導(dǎo)體加工和邏輯設(shè)計(jì)的發(fā)展允許增加可在集成電路器件上存在的邏輯量。因 此,計(jì)算機(jī)系統(tǒng)配置已從系統(tǒng)中單個(gè)或多個(gè)集成電路發(fā)展到在各個(gè)集成電路上存在的多個(gè) 核和多個(gè)邏輯處理器。處理器或集成電路一般包括單個(gè)處理器芯片,其中處理器芯片可包 括任意數(shù)量的處理元件,如核、線程和/或邏輯處理器。
在具有多線程的處理器中,由于資源和流水線共享的原因,一個(gè)線程的行為可能 影響同一處理器核上另一線程的行為。一個(gè)線程的行為經(jīng)常在共享資源和流水線使用上造 成不公平。實(shí)際上,在一個(gè)線程的性能相對(duì)于同一核中其它線程發(fā)生相當(dāng)大變化時(shí),經(jīng)常從 共享資源的不平衡使用引起性能方面出現(xiàn)大的不可預(yù)測(cè)變化性。
線程經(jīng)常是執(zhí)行軟件實(shí)體,從系統(tǒng)級(jí)和用戶級(jí)角度兩者而言,它們?cè)谄鋬?yōu)先級(jí)別 方面不同。最高優(yōu)先級(jí)軟件實(shí)體經(jīng)常包括具有最終期限的應(yīng)用程序,如媒體應(yīng)用程序。例 如,如果執(zhí)行媒體應(yīng)用程序的第一線程受到在后臺(tái)執(zhí)行病毒掃描的另一線程的不利影響, 用戶可能會(huì)遇到跳躍和小故障,這降低了性能。
以前的工作致力于保持線程之間的公平。然而,對(duì)處理資源的公平訪問可能不足 以保證更高優(yōu)先級(jí)線程/軟件實(shí)體的服務(wù)質(zhì)量。繼續(xù)上面的示例,第一和第二線程對(duì)處理 資源的公平訪問可能不足以確保媒體應(yīng)用程序順利運(yùn)行。因此,更高優(yōu)先級(jí)線程/應(yīng)用程 序可能需要更大的不公平的資源量以確保有效的執(zhí)行。發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面提供了一種設(shè)備,包括
第一處理元件;
第二處理元件;
存儲(chǔ)區(qū)域,保存與所述第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別和與所述第二處理元 件相關(guān)聯(lián)的第二優(yōu)先級(jí)別;以及
控制邏輯,將所述第一處理元件與保留資源第一部分相關(guān)聯(lián),并將所述第二處理 元件與所述保留資源第二部分相關(guān)聯(lián),其中,響應(yīng)于所述第一優(yōu)先級(jí)別高于所述第二優(yōu)先 級(jí)別,所述第一部分大于所述第二部分。
根據(jù)本發(fā)明的另一個(gè)方面還提供了另一種設(shè)備,包括
處理器,包括由至少第一和第二處理元件共享的流水線,其中所述處理器又包 括
存儲(chǔ)區(qū)域,保存與所述第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別和與所述第二處理元 件相關(guān)聯(lián)的第二優(yōu)先級(jí)別;
選擇邏輯,為在所述流水線中的進(jìn)一步處理選擇所述第一處理元件或所述第二處理元件;以及
偏置邏輯,根據(jù)所述第一優(yōu)先級(jí)別是比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí),將所述 選擇邏輯偏向所述第一處理元件。
根據(jù)本發(fā)明的又一方面提供了一種方法,包括
在第一存儲(chǔ)元件中存儲(chǔ)與處理器第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別并在第二 存儲(chǔ)元件中存儲(chǔ)與所述處理器第二處理元件相關(guān)聯(lián)的第二優(yōu)先級(jí)別;
確定所述第一優(yōu)先級(jí)別是否為比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí)別;
根據(jù)所述第一優(yōu)先級(jí)別是比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí)別,使處理資源耗用 偏向所述第一處理元件。
本發(fā)明通過(guò)示例描述,并不限于附圖的圖形。
圖1示出能夠基于優(yōu)先級(jí)在多個(gè)處理元件中提供服務(wù)質(zhì)量的處理器實(shí)施例。
圖2A示出能夠基于優(yōu)先級(jí)分配條目到處理元件的保留單元實(shí)施例。
圖2B示出基于優(yōu)先級(jí)別比較將保留條目分配到處理元件的邏輯實(shí)施例。
圖3A示出包括偏置邏輯以將流水線耗用偏向更高優(yōu)先級(jí)處理元件的實(shí)施例流水 線。
圖;3B示出將流水線耗用偏向更高優(yōu)先級(jí)處理元件的偏置邏輯實(shí)施例。
圖4示出基于優(yōu)先級(jí)將處理資源耗用偏向某個(gè)處理元件的方法流程圖實(shí)施例。
圖5示出基于優(yōu)先級(jí)將共享流水線耗用偏向某個(gè)處理元件的方法流程圖實(shí)施例。
具體實(shí)施方式
在下面的說(shuō)明中,陳述了許多特定的細(xì)節(jié),如在處理元件之間提供服務(wù)質(zhì)量的特 定偏置邏輯實(shí)施例、特定處理器組織、特定流水線級(jí)等示例,以便提供本發(fā)明的詳盡理解。 但是,本領(lǐng)域的技術(shù)人員將明白,實(shí)踐本發(fā)明可無(wú)需采用這些特定細(xì)節(jié)。在其它實(shí)例中,諸 如流水線的各種變化、空周期檢測(cè)、處理元件識(shí)別、處理元件選擇及微處理器特定操作細(xì)節(jié) 等熟知的組件或方法未詳細(xì)描述,以免不必要地混淆本發(fā)明。
本文所述方法和設(shè)備用于基于優(yōu)先級(jí)向處理元件提供服務(wù)質(zhì)量。具體而言,主要 參照具有多線程的微處理器論述提供服務(wù)質(zhì)量。但是,提供服務(wù)質(zhì)量的方法和設(shè)備并不限 于此,因?yàn)樗鼈兛稍谌魏渭呻娐菲骷蛳到y(tǒng)上實(shí)現(xiàn)或與其相關(guān)聯(lián),如蜂窩電話、個(gè)人數(shù)據(jù) 助理、嵌入式控制器、移動(dòng)平臺(tái)、桌面平臺(tái)和服務(wù)器平臺(tái),以及與任何類型的處理元件結(jié)合 實(shí)現(xiàn),如核、硬件線程、軟件線程、邏輯處理器或其它處理元件。
參照?qǐng)D1,示出了能夠基于優(yōu)先級(jí),向處理元件提供服務(wù)質(zhì)量的處理器實(shí)施例。處 理元件指線程、進(jìn)程、上下文、邏輯處理器、硬件線程、核和/或任何處理元件,共享對(duì)諸如 保留單元、執(zhí)行單元、流水線和更高級(jí)高速緩存/存儲(chǔ)器等處理器資源的訪問。例如,處理 元件指要在硬件線程或物理處理器核上執(zhí)行的軟件線程。如下所述,諸如軟件線程的處理 元件可與某個(gè)優(yōu)先級(jí)別相關(guān)聯(lián)。物理處理器一般指集成電路,它可能包括任何數(shù)量的其它 處理元件,如核或硬件線程。
核通常指位于能夠保持獨(dú)立架構(gòu)狀態(tài)(如架構(gòu)狀態(tài)101和102)的集成電路上的邏輯,其中每個(gè)獨(dú)立保持的架構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相關(guān)聯(lián)。與核不同,硬件線程 一般指位于能夠保持獨(dú)立架構(gòu)狀態(tài)的集成電路上的任何邏輯,其中獨(dú)立保持的架構(gòu)狀態(tài)共 享對(duì)執(zhí)行資源的訪問。
正如可看到的一樣,在某些資源共享,而其它資源專用于某種架構(gòu)狀態(tài)時(shí),硬件線 程與核的名稱之間的界線重疊。然而,核和硬件線程經(jīng)常被操作系統(tǒng)視為單獨(dú)的邏輯處理 器,這種情況下,操作系統(tǒng)能夠單獨(dú)調(diào)度每個(gè)邏輯處理器上的操作。換而言之,軟件將物理 處理器上的兩個(gè)核或線程視為兩個(gè)獨(dú)立的處理器。此外,每個(gè)核可能包括用于執(zhí)行多個(gè)軟 件線程的多個(gè)硬件線程。因此,處理元件包括能夠保持上下文的任何上述元件,如核、線程、 硬件線程、虛擬機(jī)或其它資源,它們共享對(duì)諸如共享流水線或共享保留單元/站的處理器 共享資源的訪問。
在一個(gè)實(shí)施例中,處理器100是能夠并行執(zhí)行多個(gè)線程的多線程處理器。此處,第 一線程與架構(gòu)狀況寄存器101相關(guān)聯(lián),第二線程與線程102相關(guān)聯(lián)。因此,下面線程101和 102分別指第一和第二線程。線程101和102共享對(duì)保留單元的訪問,這些單元可分布在處 理器100中或位于諸如調(diào)度程序/執(zhí)行模塊140或重命名/分配器模塊130等單元中。存 儲(chǔ)元件103和104均要保存分別與線程101和102相關(guān)聯(lián)的優(yōu)先級(jí)別。如下所述,在一個(gè) 實(shí)施例中,基于線程101和102的優(yōu)先級(jí)別,部分保留單元能夠?qū)S糜诿總€(gè)線程,在兩個(gè)線 程中共享,或者被保留,即,不與任一線程相關(guān)聯(lián)。
另外,流水線或諸如流水線前端或指令解碼部分等部分流水線由線程101和102 共享。此處,在一個(gè)實(shí)施例中,流水線或部分流水線能夠基于優(yōu)先級(jí)別向線程101和102提 供服務(wù)質(zhì)量。
如圖所示,架構(gòu)狀況寄存器101在架構(gòu)狀況寄存器102中復(fù)制,以便各個(gè)架構(gòu)狀態(tài) /上下文能夠存儲(chǔ)用于邏輯處理器101和邏輯處理器102。諸如指令指針和重命名分配器 邏輯130中的重命名邏輯等其它更小的資源也可復(fù)制用于線程101和102。諸如重排序/ 退役單元135中的重排序緩沖器、ILTB 120、加載/存儲(chǔ)緩沖器及隊(duì)列等一些資源可通過(guò)分 區(qū)共享。但諸如通用內(nèi)部寄存器、頁(yè)表基址寄存器、低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)TLB 150、執(zhí)行 單元140及失序(out-of-order)單元135等資源可能完全共享。注意,如下所述,存儲(chǔ)元 件103和104可包括在單個(gè)物理存儲(chǔ)區(qū)域內(nèi)及位于硬件線程物理結(jié)構(gòu)外。
總線接口模塊105與處理器100外的器件通信,如系統(tǒng)存儲(chǔ)器175、芯片集、北橋或 其它集成電路。存儲(chǔ)器175可專用于處理器100或與系統(tǒng)中的其它器件共享。存儲(chǔ)器175 的示例包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)RAM(SRAM)、非易失性存儲(chǔ)器(NV存儲(chǔ)器)和 長(zhǎng)期儲(chǔ)存。
—般情況下,總線接口單元105包括輸入/輸出(I/O)緩沖器以發(fā)送和接收互連 170上的總線信號(hào)?;ミB170的示例包括射電收發(fā)邏輯電路(GTL)總線、GTL+總線、雙倍數(shù) 據(jù)率(DDR)總線、泵式總線、差分總線、高速緩存一致總線、點(diǎn)對(duì)點(diǎn)總線、多點(diǎn)總線或?qū)崿F(xiàn)任 何熟知總線協(xié)議的其它熟知的互連。如圖所示的總線接口單元105也要與更高級(jí)高速緩存 110通信。
更高級(jí)或更進(jìn)一步的高速緩存110要用于在元件上為最近獲取和/或操作的內(nèi)容 進(jìn)行高速緩存。注意,更高級(jí)或更進(jìn)一步指高速緩存級(jí)增大,或者從執(zhí)行單元得到另外的通 路。在一個(gè)實(shí)施例中,更高級(jí)高速緩存110是二級(jí)數(shù)據(jù)高速緩存。但是,更高級(jí)高速緩存110并不限于此,它可以是或者包括指令高速緩存,該緩存也可稱為跟蹤高速緩存。跟蹤高 速緩存可在解碼器125后耦合以存儲(chǔ)最近解碼指令。模塊120也可能包括預(yù)測(cè)要執(zhí)行/使 用的分支的分支目標(biāo)緩沖器和存儲(chǔ)指令的地址轉(zhuǎn)換條目的指令轉(zhuǎn)換緩沖器(I-TLB)。此處, 能夠推測(cè)執(zhí)行的處理器可能預(yù)取和推測(cè)執(zhí)行預(yù)測(cè)分支。
解碼模塊125耦合到取指令單元120以將取指令的元件解碼。在一個(gè)實(shí)施例中, 處理器100與定義/指定在處理器100上可執(zhí)行指令的指令集架構(gòu)(ISA)相關(guān)聯(lián)。此處, ISA識(shí)別的機(jī)器代碼指令通常包括稱為操作碼的部分指令,操作碼參考/指定要執(zhí)行的指 令或操作。
在一個(gè)示例中,分配器和重命名器塊130包括分配器以保留資源,如存儲(chǔ)指令處 理結(jié)果的寄存器文件。但是,線程101可能能夠失序執(zhí)行,這種情況下,分配器和重命名器 塊130也保留其它資源,如重排序緩沖器以跟蹤指令結(jié)果。單元130也可包括寄存器重命名 器以將程序/指令參考寄存器重命名為處理器100內(nèi)部的其它寄存器。重排序/退役單元 135包括支持失序執(zhí)行和以后失序執(zhí)行的指令有序退役的組件,如上述重排序緩沖器、加載 緩沖器和存儲(chǔ)緩沖器。
在一個(gè)實(shí)施例中,調(diào)度程序和執(zhí)行單元塊140包括在執(zhí)行單元上調(diào)度指令/操作 的調(diào)度程序單元。實(shí)際上,指令/操作可能是在執(zhí)行單元上根據(jù)其類型可用性調(diào)度。例如, 浮點(diǎn)指令在具有可用浮點(diǎn)執(zhí)行單元的執(zhí)行單元端口上調(diào)度。與執(zhí)行單元相關(guān)聯(lián)的寄存器文 件也包括在內(nèi),以存儲(chǔ)信息指令處理結(jié)果。示范執(zhí)行單元包括浮點(diǎn)執(zhí)行單元、整數(shù)執(zhí)行單 元、跳轉(zhuǎn)執(zhí)行單元、加載執(zhí)行單元、存儲(chǔ)執(zhí)行單元及其它熟知的執(zhí)行單元。
更低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)轉(zhuǎn)換緩沖器(D-TLB) 150耦合到執(zhí)行單元140。數(shù)據(jù)高 速緩存要在元件上存儲(chǔ)最近使用/操作的內(nèi)容,如數(shù)據(jù)運(yùn)算符,這些內(nèi)容可能以存儲(chǔ)器相 干狀態(tài)保存,如已修改、獨(dú)占、共享和無(wú)效(MESI)狀態(tài)。D-TLB要用于存儲(chǔ)最近的虛擬/線 性到物理地址轉(zhuǎn)換。以前,D-TLB條目包括虛擬地址、物理地址和其它信息,如偏移等,以便 為最近使用的虛擬存儲(chǔ)器地址提供便宜的轉(zhuǎn)換。
在圖1中,處理器100示為具有兩個(gè)邏輯處理器的微處理器,即,兩個(gè)硬件線程,其 中,諸如保留單元和流水線等某些共享資源能夠基于優(yōu)先級(jí)向兩個(gè)線程提供服務(wù)質(zhì)量。但 是,處理器100并不限于此。例如,處理器100可以為任何處理元件,如嵌入式處理器、單元 處理器、微處理器或其它熟知處理器,包括能夠執(zhí)行多個(gè)上下文、線程、虛擬機(jī)等的任意數(shù) 量的多個(gè)核/線程。
另外,為處理器100示出了處理器失序的簡(jiǎn)單圖示微架構(gòu)。但是,處理器100中所 示任何模塊/單元可以不同順序/方式配置,可不包括在內(nèi)及可與包括駐留在多個(gè)模塊中 的部分組件的另一模塊/單元重疊。例如,保留單元可分布在處理器100中,而處理器在處 理器100不同模塊中包括多個(gè)更小的保留表。
轉(zhuǎn)到圖2,它示出了能夠基于優(yōu)先級(jí),向處理元件提供服務(wù)質(zhì)量的保留單元實(shí)施 例。此處,保留單元200包括保留條目201-210。例如,保留單元包括36個(gè)條目;但是任何 數(shù)量的條目均可包括。條目的示范范圍包括從8個(gè)條目到1 個(gè)條目的范圍。
在一個(gè)實(shí)施例中,保留條目要用于保存指令信息。注意,在許多架構(gòu)中,指令細(xì)分 成多個(gè)微操作(micro-ops)。因此,指令信息的使用也包括微操作信息。指令信息的示例包 括保留信息、相關(guān)性信息、指令識(shí)別信息、結(jié)果信息、調(diào)度信息和與指令或微操作、資源保留和/或保留條目相關(guān)聯(lián)的任何其它信息。
例如,如果參考第一指令的第一條目取決于第二指令,則第一條目包括相關(guān)性信 息以指示它取決于第二指令。因此,第一指令在第二指令后才被調(diào)度執(zhí)行。此外,第二指令 的結(jié)果可保存在第一條目中,即與取決于第二指令結(jié)果的第一指令相關(guān)聯(lián)的條目。
處理元件220和230共享對(duì)保留單元200的訪問。存儲(chǔ)區(qū)域可包括在內(nèi)以保存與 第一處理元件(PE) 220相關(guān)聯(lián)的第一優(yōu)先級(jí)別和與第二處理元件(PE) 230相關(guān)聯(lián)的第二優(yōu) 先級(jí)別。存儲(chǔ)區(qū)域可包括處理器中的任何存儲(chǔ)區(qū)域,如高速緩存、寄存器或其它存儲(chǔ)器件。 在一個(gè)實(shí)施中,存儲(chǔ)區(qū)域包括保存與處理元件220相關(guān)的第一優(yōu)先級(jí)別的存儲(chǔ)元件225和 保存與處理元件230相關(guān)聯(lián)的第二優(yōu)先級(jí)別的存儲(chǔ)元件235。
存儲(chǔ)元件包括存儲(chǔ)諸如表示優(yōu)先級(jí)別的邏輯值等信息的任何元件。存儲(chǔ)元件的示 例包括上下文特定配置寄存器、上下文特定控制寄存器、機(jī)器狀態(tài)寄存器(MSR)、架構(gòu)控制 寄存器、架構(gòu)狀況寄存器及通用控制寄存器。
第一和第二優(yōu)先級(jí)別可包括與處理元件或軟件實(shí)體相關(guān)聯(lián)的任何優(yōu)先級(jí)別。例 如,有兩個(gè)優(yōu)先級(jí)別,即,高優(yōu)先級(jí)別和低優(yōu)先級(jí)別。諸如媒體應(yīng)用程序和操作系統(tǒng)代碼等 某些類型軟件實(shí)體可設(shè)計(jì)為高優(yōu)先級(jí),而諸如病毒掃描軟件等其它軟件實(shí)體可設(shè)計(jì)為低優(yōu) 先級(jí)。在利用兩個(gè)優(yōu)先級(jí)別時(shí),存儲(chǔ)元件225和235中單個(gè)比特可用于表示每個(gè)優(yōu)先級(jí)別。 但是,優(yōu)先級(jí)別不限于兩個(gè)優(yōu)先級(jí)別。實(shí)際上,可利用任何數(shù)量的優(yōu)先級(jí)別或優(yōu)先級(jí)分層結(jié) 構(gòu)。例如,可利用兩個(gè)比特表示的四個(gè)優(yōu)先級(jí)別。
在一個(gè)實(shí)施例中,諸如操作系統(tǒng)(OS)、管理程序、應(yīng)用程序或代碼段要用于確定處 理元件的優(yōu)先級(jí)別。例如,知曉在PE 220和230上執(zhí)行軟件實(shí)體的管理程序或OS基于每 個(gè)軟件實(shí)體相互比較的重要性將第一優(yōu)先級(jí)別分配并寫入存儲(chǔ)元件225,并將第二優(yōu)先級(jí) 別分配并寫入存儲(chǔ)元件235。
又如,OS或管理程序響應(yīng)于新上下文到PE220中的上下文切換,將與新上下文相 關(guān)聯(lián)的優(yōu)先級(jí)別交換到存儲(chǔ)元件225。此處,存儲(chǔ)元件225是線程特定控制寄存器,專用于 PE220。在新線程交換到核/硬件線程220時(shí),OS或管理程序?qū)懭刖€程特定的控制寄存器 225。此外,要在PE 220上執(zhí)行的應(yīng)用程序可被授予足夠的特權(quán)級(jí)別以在PE220中設(shè)置其 自己的優(yōu)先級(jí)。
在另一實(shí)施例中,存儲(chǔ)元件225是架構(gòu)控制/狀態(tài)寄存器或其它控制寄存器,響應(yīng) 于上下文交換而不是軟件實(shí)體寫入寄存器225自動(dòng)設(shè)置。此處,硬件或其它代碼可確定要 交換到PE 220中的上下文優(yōu)先級(jí)別。在上下文切換發(fā)生時(shí),存儲(chǔ)元件225的內(nèi)容會(huì)自動(dòng)設(shè)置。
控制模塊/邏輯240要用于將處理元件220與保留資源的第一部分,即,保留單元 200相關(guān)聯(lián),并且將處理元件230與保留資源的第二部分相關(guān)聯(lián)?;谔幚碓?20和230 的優(yōu)先級(jí)別,改變保留單元200的耗用以提供服務(wù)質(zhì)量。此處,諸如處理元件220的處理元 件優(yōu)先級(jí)高于諸如處理元件230的另一處理元件時(shí),與PE230相比,PE220分配到更多保留 條目。例如,在保留單元200包括36個(gè)條目時(shí),20個(gè)條目專用于PE 220,8個(gè)條目專用于 PE 230,并且8個(gè)條目在PE 220與230之間共享。
存儲(chǔ)元件221和231示為在控制邏輯240外,但它們也可包括在控制邏輯240內(nèi)。 另外,控制邏輯240可以分布在包括處理元件220和230的整個(gè)處理器內(nèi)。PE220與存儲(chǔ)元件221相關(guān)聯(lián),并且PE230與存儲(chǔ)元件231相關(guān)聯(lián)。在一個(gè)實(shí)施例中,存儲(chǔ)元件221和231 是管理程序或操作系統(tǒng)看不到的寄存器。在另一實(shí)施例中,存儲(chǔ)元件221和231是屏蔽寄 存器,可能向用戶顯示為機(jī)器特定寄存器(MSR);但是,它們也可以是用戶級(jí)看不到的屏蔽 寄存器,并且只可由諸如控制邏輯M0、操作系統(tǒng)、管理程序或BIOS等執(zhí)行程序看到。
掩碼221中的條目或字段與第一數(shù)量的保留條目相關(guān)聯(lián)。如圖所示,字段222與 兩個(gè)條目相關(guān)聯(lián),即,條目201和202。但是,一個(gè)字段或任何數(shù)量的比特/字段可與任何數(shù) 量的保留條目相關(guān)聯(lián)。例如,在字段與條目之間可存在一對(duì)一關(guān)系,或者在字段與條目之間 可存在一對(duì)二、一對(duì)三、一對(duì)四或其它比率。
此處,在字段222保存第一值,如邏輯1時(shí),條目201和202與PE220相關(guān)聯(lián)。換 而言之,在字段222保存第一值時(shí),PE220可利用在保留單元200中的條目201和202。此 外,在諸如條目223的條目保存第二值,如邏輯0時(shí),PE 220不與對(duì)應(yīng)的條目207和208相 關(guān)聯(lián)。因此,PE 220不能利用條目207和208。存儲(chǔ)元件231與PE230相關(guān)聯(lián)。類似于字 段222,存儲(chǔ)元件231中的字段232也與條目201和202相關(guān)聯(lián)。但是,如圖所示,字段232 保存第二值,即邏輯0,以指示PE230不與條目201和202相關(guān)聯(lián)。換而言之,條目201和 202專用于PE 220,字段222指示PE 220可訪問條目201和202,而條目232指示PE230不 可訪問條目201和202。
如圖所示,掩碼221和231的組合指示條目201-206專用于PE220,條目207-208 專用于PE230,并且條目209-210與PE220和PE230均相關(guān)聯(lián)。因此,如圖所示,PE 220相 關(guān)聯(lián)的優(yōu)先級(jí)別高于PE230,這在存儲(chǔ)元件225和235中指示。此處,通過(guò)允許PE 220訪問 10個(gè)保留條目中的8個(gè)條目,而更低優(yōu)先級(jí)PE230只能夠訪問10個(gè)條目中的4個(gè)條目,服 務(wù)質(zhì)量提供到處理元件220,即,更高優(yōu)先級(jí)處理元件。此外,PE220具有6個(gè)專用條目,而 PE230只具有2個(gè)專用條目。
注意,掩碼221和231可隨時(shí)動(dòng)態(tài)更新。例如,在產(chǎn)生新線程時(shí),條目可動(dòng)態(tài)專用于 新線程。相反,在終止線程時(shí),專用條目可從該線程解除分配,并返回當(dāng)前包括條目209-210 的共用池,或者專用于另一處理元件。此外,條目可保留用于兩個(gè)處理元件的調(diào)試或其它目 的。雖然未示出,但如果條目2 和234均包括邏輯0,則線程220和線程230均不與條目 209-210相關(guān)聯(lián)。
另外,在上下文中交換到某個(gè)處理元件時(shí),如PE 220,控制邏輯240可重新評(píng)估優(yōu) 先級(jí)并相應(yīng)地更改掩碼221和231。在一個(gè)實(shí)施例中,PE220表示比PE230更低優(yōu)先級(jí)的情 況下,掩碼221和231更新為提供更多保留條目到PE 230。在另一實(shí)施例中,掩碼231即更 高優(yōu)先級(jí)掩碼,可更新為從條目209-210共享?xiàng)l目池中提供更多條目到PE230。此外,掩碼 221可更新為向共享?xiàng)l目池返回一些專用條目,即201-206。
現(xiàn)參照?qǐng)D2b,它示出了控制模塊/邏輯MO的實(shí)施例。雖然如圖所示,掩碼221 和231均可更新以向更高優(yōu)先級(jí)PE提供服務(wù)質(zhì)量,但更低優(yōu)先級(jí)掩碼用于確保高優(yōu)先級(jí)處 理服務(wù)質(zhì)量。換而言之,如圖2所示,不是通過(guò)更新高優(yōu)先級(jí)掩碼添加由高優(yōu)先級(jí)處理元件對(duì)條目的訪問,而是通過(guò)更新低優(yōu)先級(jí)掩碼從低優(yōu)先級(jí)處理元件解除條目分配或者移去條目。
例如,假設(shè)圖加的存儲(chǔ)元件225指示PE220優(yōu)先級(jí)比PE230低,這在存儲(chǔ)元件235 中指示。但是,最初掩碼221和231設(shè)為圖加中所示的值,這為PE220提供的條目多于PE230。圖2b中的控制邏輯240確定PE230優(yōu)先級(jí)更高,并為PE220實(shí)施低優(yōu)先級(jí)掩碼以確 保高優(yōu)先級(jí)PE230從保留站接收適當(dāng)?shù)姆?wù)質(zhì)量。基本上,復(fù)用器270和271要用于基于 PE220和230的優(yōu)先級(jí)驅(qū)動(dòng)最終掩碼。在所示示例中,如果PE 220優(yōu)先級(jí)更高,則復(fù)用器 270選擇掩碼250,并且如果PE220優(yōu)先級(jí)更低,則選擇備選“與”值。在一個(gè)實(shí)施例中,復(fù)用 器270和271的輸出要用于驅(qū)動(dòng)圖加的掩碼221和231。在另一實(shí)施例中,復(fù)用器270和 271的輸出返回給掩碼250和251,掩碼250和251有效地作為最終掩碼221和231工作以 確定保留條目分配。
為預(yù)排說(shuō)明性示例,邏輯260確定PE230優(yōu)先級(jí)是否高于PE220。在一個(gè)實(shí)施例 中,比較邏輯將在存儲(chǔ)元件235中存儲(chǔ)的優(yōu)先級(jí)別與存儲(chǔ)元件225中存儲(chǔ)的優(yōu)先級(jí)別進(jìn)行 比較。此處,處理元件230優(yōu)先級(jí)更高,即,邏輯沈0中的語(yǔ)句為真,并且邏輯266的語(yǔ)句為 真。因此,邏輯1從邏輯沈0發(fā)送到反相器沈1/與門沈3以及從邏輯沈6發(fā)送到與門262 和與門263。反相器的反轉(zhuǎn)(invert)輸出,即邏輯0和邏輯沈6的邏輯1作為到與門 262的輸入。從260和沈6的邏輯1作為到與門沈3的輸入。與門262將0輸出到復(fù)用器 271,以便從控制寄存器251為PE230選擇最初掩碼值。換而言之,默認(rèn)掩碼值用于高優(yōu)先 處理元件。
與此相反,與門沈3的輸出向復(fù)用器270提供邏輯1,復(fù)用器選擇與門沈4的輸出, 即,在低優(yōu)先級(jí)掩碼255與PE 220的掩碼控制寄存器250之間執(zhí)行與運(yùn)算的結(jié)果。換而 言之,在掩碼控制寄存器250上施加低優(yōu)先級(jí)掩碼。此處,通過(guò)施加低優(yōu)先級(jí)掩碼,從諸如 PE220的低優(yōu)先級(jí)處理元件解除條目的分配。此外要注意的是,在PE 220優(yōu)先級(jí)更高時(shí),在 處理元件230的控制寄存器251上施加更低優(yōu)先級(jí)掩碼255。在圖2b所示的示例只示出兩 個(gè)處理元件。然而,類似的邏輯可用于為任何數(shù)量的處理元件更新任何數(shù)量的掩碼。此外, 可通過(guò)高優(yōu)先級(jí)掩碼添加條目到高優(yōu)先級(jí)PE,S卩,在邏輯1中的或操作,通過(guò)低優(yōu)先級(jí)掩碼 從低優(yōu)先級(jí)PE減少條目,通過(guò)在兩個(gè)掩碼上的操作或者其組合重新分布條目。
回到圖加,在未示出的另一實(shí)施例中,存儲(chǔ)元件221和231包括保存當(dāng)前分別可由 PE220和230使用的條目的數(shù)量的計(jì)數(shù)器。在分配新指令或微操作到保留單元200中時(shí),如 果使用的當(dāng)前條目數(shù)量低于閾值,則PE會(huì)分配到條目。在分配條目時(shí),計(jì)數(shù)器會(huì)增大,并且 在解除條目分配時(shí),計(jì)數(shù)器會(huì)減小。因此,對(duì)于更高優(yōu)先級(jí)處理元件,閾值可設(shè)得更高,和/ 或?qū)τ诟吞幚碓?,可設(shè)得更低。
上面的示例分別利用邏輯1和邏輯0作為第一和第二值。但是,任何值可保存在 字段中以指示相關(guān)聯(lián)資源是否與保留條目相關(guān)聯(lián)。此外,可能有與任何數(shù)量處理元件相關(guān) 聯(lián)的任何數(shù)量的存儲(chǔ)元件,這些元件示為線程,但可包括共享對(duì)保留單元200訪問的任何 資源。
轉(zhuǎn)到圖3a,它示出了能夠基于優(yōu)先級(jí),向線程提供服務(wù)質(zhì)量的流水線實(shí)施例。雖然 示出的是線程,但可包括共享流水線的任何處理元件。流水線經(jīng)常指串聯(lián)耦合在一起的若 干個(gè)元件或級(jí),其中,一個(gè)級(jí)的輸出是下一個(gè)級(jí)的輸入。例如,簡(jiǎn)化的流水線包括四個(gè)級(jí)取 指令、解碼、失序執(zhí)行和退役。注意,流水線330包括任何數(shù)量的級(jí)。另外,流水線330可表 示諸如前端部分、后端部分或其它部分等部分流水線及整個(gè)流水線。級(jí)310-325包括任何 熟知的流水線級(jí),如資源選擇、指令解碼、分配、重命名、執(zhí)行、退役或其它流水線級(jí)。
如圖所示的選擇級(jí)310要用于為在流水線330中的進(jìn)一步處理選擇線程301或線11程302。以前,在假設(shè)流水線中未發(fā)生停止或其它事件的情況下,選擇級(jí)310將選擇最后選 定線程的反轉(zhuǎn),以便線程301和302將在每個(gè)其它周期被選定。
在一個(gè)實(shí)施例中,偏置邏輯305要用于將選擇邏輯偏向更高優(yōu)先級(jí)線程。例如,存 儲(chǔ)元件303為線程301保存第一優(yōu)先級(jí)別,并且存儲(chǔ)元件304為線程302保持第二較低優(yōu) 先級(jí)別。因此,偏置邏輯305將選擇邏輯偏向線程301,或換而言之,偏離線程302。在一個(gè) 實(shí)施例中,偏置邏輯305在一段時(shí)間內(nèi)向選擇邏輯310提供線程優(yōu)選比率以使選擇邏輯310 偏向線程301。此處,偏向線程301包括為線程301提供比線程302更多優(yōu)選到選擇邏輯 310。例如,優(yōu)選線程301對(duì)線程302的比率6 2提供到選擇邏輯310。其它的比率示例 包括3 1、4 1、5 2和8 0。雖然,提供了特定的比率示例,但任何優(yōu)選比率或模式 可提供到選擇邏輯310。另外,在多于兩個(gè)線程共享對(duì)流水線330的訪問時(shí),可提供不同的 優(yōu)選級(jí)別。此處,偏向更高優(yōu)選線程包括用于該線程的優(yōu)選值比更低優(yōu)先級(jí)線程更多。
轉(zhuǎn)到圖3b,它示出了偏置邏輯305的實(shí)施例。此處,線程優(yōu)先級(jí)偏置模式寄存器 355是可配置長(zhǎng)度反饋寄存器,在一段時(shí)間內(nèi)注入一種線程優(yōu)選模式。例如,偏置模式寄存 器355的邏輯0表示諸如線程301的第一線程的優(yōu)選,邏輯1表示諸如線程302的第二線 程的優(yōu)選。如圖所示,偏置模式358要用于使優(yōu)選偏向線程301。
在一個(gè)實(shí)施例中,控制寄存器350要用于保存偏置模式351。例如,在復(fù)位或起動(dòng) 時(shí),偏置控制寄存器350設(shè)為保存偏置模式。另外,偏置控制寄存器350可在運(yùn)行期間通過(guò) 軟件實(shí)體、用戶或其它硬件/軟件設(shè)置,以提供偏置模式/比率的動(dòng)態(tài)改變。如圖所示,一部 分偏置控制寄存器350要用于保存偏置模式351,第二部分要用于保存大小值352。在一個(gè) 實(shí)施例中,偏置模式寄存器355具有可調(diào)節(jié)的大小。此處,基于大小值352,復(fù)用器360從位 移寄存器355選擇四個(gè)輸入之一作為頭條目。例如,大小值352中的00值選擇復(fù)用器360 的零輸入為頭條目,這有效地設(shè)置寄存器355的大小為五。又如,大小值352設(shè)為11以選 擇復(fù)用器360的輸入3作為頭條目,即頭條目357,這有效地設(shè)置寄存器355的大小為八。
通過(guò)調(diào)節(jié)寄存器355的大小,可提供不同的優(yōu)選比率。例如,大小為八時(shí),不可提 供3 2的比率;但是,如果大小設(shè)為五,S卩,大小值為00,則可提供3 2的比率。在一個(gè) 實(shí)施例中,諸如頭條目357的選定頭條目值再循環(huán)到尾條目356。此處,在條目357中的0 作為優(yōu)選移出時(shí),它也再循環(huán)到尾部356,而在位移寄存器355中其它值前移。雖然上面的 論述參照八位位移寄存器,但具有任何優(yōu)選比率的任何大小存儲(chǔ)區(qū)域均可利用。此外,任何 值可用于表示處理元件或線程。例如,二進(jìn)制值組合或多個(gè)寄存器可用于不止兩個(gè)線程/ 處理元件。
在一個(gè)實(shí)施例中,寄存器355在空/閑置周期內(nèi)不從頭條目357移出值。例如,在 流水線中發(fā)生阻塞停止時(shí),不會(huì)進(jìn)行線程選擇,這是因?yàn)闊o(wú)法繼續(xù)進(jìn)行進(jìn)一步處理??罩芷?的另一示例包括無(wú)微操作、操作或指令可用于進(jìn)一步處理的周期。如上所述,優(yōu)選包括表示 一個(gè)線程的選擇高于另一線程的優(yōu)選。如圖所示,提供了 6 2的比率,其中,一個(gè)線程是 優(yōu)選為選擇六次,而與之相比的另一個(gè)線程是兩次。因此,在空周期內(nèi)從寄存器355移出值 可能改變預(yù)定的優(yōu)選比率。
要舉例說(shuō)明,可假設(shè)在不進(jìn)行選擇的閑置周期內(nèi)從寄存器355左側(cè)移出兩個(gè)0,并 且隨后在活動(dòng)周期內(nèi)剩余寄存器值的所有其它值會(huì)移出以提供優(yōu)選。因此,由邏輯0表示 的第一個(gè)線程將被選擇四次而不是預(yù)定的六次。當(dāng)前的6 2比率因而將通過(guò)在閑置周期中的位移改變?yōu)? 2。此處,值響應(yīng)于空或閑置周期未移出以可能保持比率。注意,如后 面所述,選擇邏輯可由于單個(gè)優(yōu)選線程無(wú)活動(dòng)而忽略優(yōu)選。因此,在另一實(shí)施例中,由于單 個(gè)處理元件無(wú)活動(dòng),值可不移出。
邏輯365和/或邏輯375要用于確定處理元件的優(yōu)先級(jí)別。在有不止兩個(gè)處理元 件時(shí),更復(fù)雜的比較邏輯可用于確定多個(gè)優(yōu)先級(jí)別。此處,邏輯365要用于確定諸如線程 301的處理元件是否優(yōu)先級(jí)比諸如線程302的另一處理元件更高。例如,邏輯365比較在與 線程301相關(guān)聯(lián)的存儲(chǔ)元件303中保存的優(yōu)先級(jí)值和在與線程302相關(guān)聯(lián)的存儲(chǔ)元件304 中保存的優(yōu)先級(jí)別。
注意,要用于確定是否存在更高優(yōu)先級(jí)處理元件的邏輯375示為與邏輯365分開, 但是,邏輯365可確定一個(gè)PE是否為更高優(yōu)先級(jí)和/或?yàn)橄嗤膬?yōu)先級(jí)。此處,在線程301 比線程302優(yōu)先級(jí)更高時(shí),邏輯365輸出邏輯0,并且在線程302比線程301優(yōu)先級(jí)更高時(shí), 輸出邏輯1。如圖所示,邏輯370為異或門。因此,如果邏輯365輸出邏輯0以指示線程301 優(yōu)先級(jí)更高,則保持來(lái)自寄存器355的優(yōu)選值。但是,如果如來(lái)自邏輯365的邏輯1所示, 線程302優(yōu)先級(jí)更高,則優(yōu)選值被反轉(zhuǎn)。
基本上,偏置模式是通用偏置模式,最初從線程301的角度設(shè)定,這可根據(jù)確定線 程302優(yōu)先級(jí)更高而反轉(zhuǎn)。例如,如圖所示,在寄存器355中用于線程301的6 2優(yōu)選提 供為偏置模式。但是,如果邏輯365輸出邏輯1以指示線程302優(yōu)先級(jí)更高,則異或370提 供反轉(zhuǎn)的偏置模式,這對(duì)于線程302現(xiàn)在具有6 2優(yōu)選。
在另一實(shí)施例中,異或370耦合在控制寄存器350與優(yōu)先級(jí)偏置模式寄存器355 之間。此處,偏置模式可在線程優(yōu)先級(jí)更改時(shí)重新加載。如果線程302成為更高優(yōu)先級(jí)的 線程,則初始偏置模式355通過(guò)異或門載入偏置模式寄存器355時(shí)反轉(zhuǎn)以形成反轉(zhuǎn)的偏置 模式。
如上所述,邏輯375要用于確定一個(gè)線程是否優(yōu)先級(jí)比另一線程更高。此處,如果 線程301和線程302為相同的優(yōu)先級(jí)別,則一個(gè)邏輯值輸出到復(fù)用器380,該值指示線程為 相同的優(yōu)先級(jí)別。因此,復(fù)用器380選擇默認(rèn)輸入,即,最后選定線程的默認(rèn)選擇邏輯的反 轉(zhuǎn)。此處,如上所述,選擇最后線程的反轉(zhuǎn)。但是,如果線程之一優(yōu)先級(jí)更高,則第二邏輯值 提供到復(fù)用器380以便選擇從邏輯370提供的優(yōu)選值。換而言之,存在優(yōu)先級(jí)差別時(shí),選擇 優(yōu)選,并且在無(wú)優(yōu)先級(jí)差別時(shí),利用默認(rèn)選擇方法。
如上所述,未示出的邏輯可提供以忽略優(yōu)選,并在單個(gè)線程的閑置周期內(nèi)選擇另 一線程。例如,邏輯0從頭條目357中移出。邏輯365確定線程301優(yōu)先級(jí)比線程302更 高。因此,異或370輸出邏輯0到復(fù)用器380。此外,在線程301優(yōu)先級(jí)比線程302更高時(shí), 邏輯375提供一個(gè)邏輯值以選擇優(yōu)選值0,即,線程301。但是,假設(shè)線程301具有閑置周期, 即沒有要選擇的微操作或操作,則選擇邏輯可選擇線程302以保持流水線的最大使用。
回到圖3a,在未示出的另一實(shí)施例中,偏置邏輯305包括跟蹤邏輯以相對(duì)于線程 302的選擇跟蹤線程301的選擇。在一個(gè)實(shí)施例中,跟蹤邏輯包括一個(gè)計(jì)數(shù)器或一組計(jì)數(shù) 器。此處,在選擇線程301時(shí),計(jì)數(shù)器會(huì)增大,而在選擇線程302時(shí),計(jì)數(shù)器會(huì)減小。因此, 如果線程301的選擇次數(shù)多于線程302,則計(jì)數(shù)器為正值。與此相反,計(jì)數(shù)器可因?yàn)檫x擇線 程302而增大。控制邏輯也可包括在內(nèi)并耦合到跟蹤邏輯,以便基于計(jì)數(shù)器值提供優(yōu)選。例 如,如果線程301優(yōu)先級(jí)更高,則控制邏輯基于計(jì)數(shù)器值提供優(yōu)選。這種情況下,控制邏輯13嘗試保持正計(jì)數(shù)器值,即,相對(duì)于線程302更多次選擇線程301。備選,可嘗試將計(jì)數(shù)器保持 為0。此處,在選擇線程301時(shí),計(jì)數(shù)器減小三,并且在選擇線程302時(shí),計(jì)數(shù)器增大一。在 此示例中,保持計(jì)數(shù)器為0的偏置選擇提供偏向線程301的3 1選擇比率。
參照?qǐng)D4,示出了基于優(yōu)先級(jí)偏置資源耗用的方法流程圖實(shí)施例。在流程405中, 與第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別和與第二處理元件相關(guān)聯(lián)的優(yōu)先級(jí)別存儲(chǔ)在存儲(chǔ) 區(qū)域中。處理元件通常包括保存處理器上下文/狀態(tài)的任何元件,如線程、核或其它熟知的 處理器器件。存儲(chǔ)區(qū)域的示例包括高速緩存、存儲(chǔ)器、寄存器、機(jī)器特定寄存器(MSR)、控制 寄存器、上下文特定寄存器、架構(gòu)寄存器或其它存儲(chǔ)元件。存儲(chǔ)區(qū)域可以是物理上連續(xù)的存 儲(chǔ)區(qū)域或單獨(dú)的存儲(chǔ)元件。
優(yōu)先級(jí)可以任何方式確定。在一個(gè)實(shí)施例中,諸如管理程序、操作系統(tǒng)、客戶應(yīng)用 程序、應(yīng)用程序、虛擬機(jī)或其它代碼等軟件實(shí)體確定要在處理元件上執(zhí)行的任務(wù)和/或代 碼的優(yōu)先級(jí)別。在另一實(shí)施例中,硬件和/或固件基于任何數(shù)量的因素確定處理元件的優(yōu) 先級(jí)別,如要執(zhí)行的任務(wù)、能耗水平和/或用戶請(qǐng)求。在還有的另一實(shí)施例中,用戶能夠訪 問存儲(chǔ)區(qū)域以明確設(shè)置優(yōu)先級(jí)別。作為帶有線程的一個(gè)說(shuō)明性示例,響應(yīng)于上下文切換,優(yōu) 先級(jí)別交換到上下文特定寄存器以指示優(yōu)先級(jí)別。
接著,在流程410中,確定與第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別是否為比與第 二處理元件相關(guān)聯(lián)的第二優(yōu)先級(jí)別更高的優(yōu)先級(jí)別。在一個(gè)實(shí)施例中,比較邏輯用于比較 第一優(yōu)先級(jí)值和第二優(yōu)先級(jí)值。在另一實(shí)施例中,在執(zhí)行時(shí)的代碼要用于比較第一優(yōu)先級(jí) 別和第二優(yōu)先級(jí)別。如果第一優(yōu)先級(jí)別與第二優(yōu)先級(jí)別相同,則利用默認(rèn)選擇方法,如交替 選擇。
但是,如果第一優(yōu)先級(jí)別具有高于第二優(yōu)先級(jí)別的優(yōu)先級(jí),則在流程415中,處理 資源耗用偏向第一處理元件。處理資源示例包括保留資源、保留站、流水線、填充緩沖器、分 支預(yù)測(cè)器單元、轉(zhuǎn)換緩沖器、高速緩存。在一個(gè)實(shí)施例中,資源是保留站的情況下,保留站耗 用偏向第一處理元件包括相應(yīng)地設(shè)置第一和第二掩碼。
如上參照?qǐng)D2所述,相對(duì)于第二更低的優(yōu)先級(jí)處理元件,更多的總條目或更多的 專用條目與第一處理元件相關(guān)聯(lián)。作為帶有觀個(gè)條目保留站的一個(gè)特定說(shuō)明性示例,第一 掩碼設(shè)為第一值以指示M個(gè)條目與第一處理元件相關(guān)聯(lián),并且第二掩碼設(shè)為第二值以指 示12個(gè)條目與第二處理元件相關(guān)聯(lián)。另外,值的組合指示16個(gè)條目專用于第一處理元件, 4個(gè)條目專用于第二處理元件,并且8個(gè)條目在第一和第二處理元件之間共享。
轉(zhuǎn)到圖5,示出了基于優(yōu)先級(jí)偏置流水線耗用的方法流程圖實(shí)施例。雖然,在圖4 和5中的流程以線性方式示出,但不同的流程可以不同的順序執(zhí)行。例如,偏置模式流程 520和525可在流程505之前或之后計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí)執(zhí)行。在流程505中,第一上下文和 第二上下文在第一和第二處理元件中加載。例如,第一上下文在第一線程中加載,第二上下 文在第二線程中加載。加載上下文通常包括在架構(gòu)狀況寄存器中加載線程的架構(gòu)狀態(tài)及加 載其它上下文有關(guān)信息。
接著,在流程510中,確定用于第一處理元件的第一優(yōu)先級(jí)和用于第二處理元件 的第二優(yōu)先級(jí)。在一個(gè)實(shí)施例中,優(yōu)先級(jí)別可能已由以前的上下文執(zhí)行預(yù)先確定。備選地, 硬件、軟件和/或固件可基于任何數(shù)量的因素確定上下文的優(yōu)先級(jí)別。相應(yīng)地,在流程515 中,確定的優(yōu)先級(jí)別存儲(chǔ)在與第一處理元件相關(guān)聯(lián)的第一寄存器和與第二處理元件相關(guān)聯(lián)的第二寄存器中。
在流程520和525中,偏置模式值寫入控制寄存器,并從控制寄存器加載到移位寄 存器。在一個(gè)實(shí)施例中,偏置模式是通用比率優(yōu)選模式。此處,如傳播到選擇邏輯的默認(rèn)模 式可表示第一線程在第二線程之上的優(yōu)選。但是,在優(yōu)選傳播期間邏輯可根據(jù)第二線程為 更高優(yōu)先級(jí)而反轉(zhuǎn)優(yōu)選。備選地,邏輯可耦合在控制寄存器與移位寄存器之間以根據(jù)第二 線程為更高優(yōu)先級(jí)別而反轉(zhuǎn)通用偏置模式。
注意,此處流程可移到流程M0,在該流程中,一個(gè)值會(huì)移出并且優(yōu)選或反轉(zhuǎn)的優(yōu) 選值會(huì)根據(jù)第一與第二上下文之間的優(yōu)先級(jí)差別而提供。但是,為進(jìn)一步示出可能的操作, 在流程530中,第三上下文交換到第二處理元件中。上下文切換可由于任何數(shù)量的原因而 發(fā)生,如在遇到觸發(fā)事件/操作或不活動(dòng)/活動(dòng)線程管理時(shí)。
在流程535中,確定第三上下文的第三優(yōu)先級(jí)。另外,第三優(yōu)先級(jí)存儲(chǔ)在與第二處 理元件相關(guān)聯(lián)的第二寄存器中。在一個(gè)實(shí)施例中,在上下文切換期間,諸如操作系統(tǒng)或管理 程序的軟件實(shí)體將第三優(yōu)先級(jí)別交換到第二寄存器中,該寄存器是與第二處理元件相關(guān)聯(lián) 的上下文特定寄存器。在另一實(shí)施例中,第二寄存器是架構(gòu)寄存器,可響應(yīng)于上下文切換自 動(dòng)與新的第三優(yōu)先級(jí)別交換。
在流程540中,一個(gè)偏置值從要用于保存偏置模式的移位寄存器移出。如上所述, 偏置模式可包括任何的優(yōu)選比率。在流程M5中,確定第一優(yōu)先級(jí)別是否為比第三優(yōu)先級(jí) 別更高的優(yōu)先級(jí)別。如果第一優(yōu)先級(jí)別比第三優(yōu)先級(jí)別更高,則偏置值提供到選擇邏輯而 無(wú)反轉(zhuǎn)。但是,如果第三優(yōu)先級(jí)別更高,則在流程陽(yáng)0中,偏置值會(huì)反轉(zhuǎn)?;旧?,如果移出 的偏置值表示第一線程,則它反轉(zhuǎn)為表示第二線程,且反之亦然。選擇邏輯可能基于優(yōu)選 值,即偏置值或反轉(zhuǎn)的偏置值,為進(jìn)一步的處理來(lái)選擇線程。注意,選擇邏輯可選擇不同于 優(yōu)選值的線程。例如,如果優(yōu)選值表示第一線程,并且第一線程具有閑置周期,則選擇邏輯 可選擇第二線程以保持完整的流水線。
如上所述,基于優(yōu)先級(jí)從諸如保留站和流水線等資源為處理元件提供服務(wù)質(zhì)量。 因此,諸如媒體應(yīng)用程序等高優(yōu)先級(jí)應(yīng)用程序可被授予不公平或更大量的資源以確保更高 的性能。但是,在處理元件具有相同優(yōu)先級(jí)別時(shí),可利用默認(rèn)選擇方法,或者可提供默認(rèn)的 資源量以確保公平訪問。
上述方法、軟件、固件或代碼集的實(shí)施例可經(jīng)在機(jī)器可存取或機(jī)器可讀媒體上存 儲(chǔ)、可由處理元件執(zhí)行的指令或代碼實(shí)現(xiàn)。機(jī)器可存取/可讀媒體包括以機(jī)器可讀形式提 供(即,存儲(chǔ)和/或發(fā)送)信息的任何機(jī)件,如計(jì)算機(jī)或電子系統(tǒng)。例如,機(jī)器可訪問媒體 包括諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)RAM(DRAM)的RAM、R0M、磁性或光學(xué)存儲(chǔ)媒體、 閃存器件、電氣、光學(xué)、聲學(xué)或其它形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào))等。
此說(shuō)明書通篇對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用指結(jié)合該實(shí)施例描述的特定特 性、結(jié)構(gòu)或特征包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,在說(shuō)明書通篇各個(gè)位置出現(xiàn)的短 語(yǔ)“在一個(gè)實(shí)施例中”或“在實(shí)施例中”不一定全部指本發(fā)明的同一實(shí)施例。此外,特定的 特性、結(jié)構(gòu)或特征可在一個(gè)或多個(gè)實(shí)施例中以任何適合的方式組合。
在上述說(shuō)明中,參照特定示范實(shí)施例提供了詳細(xì)說(shuō)明。然而,顯而易見,在不脫離 如所附權(quán)利要求書所述范圍更廣泛的精神和范圍的情況下,可對(duì)其進(jìn)行各種修改和更改。 相應(yīng)地,說(shuō)明書和附圖要視為是說(shuō)明性而不是限制性。此外,實(shí)施例和其它示范語(yǔ)言的上述使用不必指同一實(shí)施例或同一示例,而是可指不同和獨(dú)特的實(shí)施例及可能同一實(shí)施例。
權(quán)利要求
1.一種設(shè)備,包括處理器,包括由至少第一和第二處理元件共享的流水線,其中所述處理器也包括存儲(chǔ)區(qū)域,保存與所述第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別和與所述第二處理元件相 關(guān)聯(lián)的第二優(yōu)先級(jí)別;選擇邏輯,選擇所述第一處理元件或所述第二處理元件,用于所述流水線中的進(jìn)一步 處理;以及偏置邏輯,響應(yīng)于所述第一優(yōu)先級(jí)別是比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí),而將所述 選擇邏輯向著所述第一處理元件偏置。
2.如權(quán)利要求1所述的設(shè)備,其中所述第一和所述第二處理元件各從由微處理器、嵌 入式處理器、核、線程及單元處理器組成的組中選擇,以及其中所述存儲(chǔ)區(qū)域包括保存所述 第一優(yōu)先級(jí)別的第一存儲(chǔ)元件和保存所述第二優(yōu)先級(jí)別的第二存儲(chǔ)元件。
3.如權(quán)利要求1所述的設(shè)備,其中所述偏置邏輯包括保存偏置模式的第一存儲(chǔ)元件, 所述偏置模式表示傾向所述第一處理元件的優(yōu)選。
4.如權(quán)利要求3所述的設(shè)備,其中表示傾向所述第一處理元件的優(yōu)選的所述偏置模式 包括包含表示所述第一處理元件優(yōu)選的第一值多于表示所述第二處理元件優(yōu)選的第二值 的偏置模式。
5.如權(quán)利要求3所述的設(shè)備,其中所述第一存儲(chǔ)元件包括偏置模式移位寄存器,以及 其中所述偏置邏輯還包括第一組邏輯,確定所述第一優(yōu)先級(jí)別是否為比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí);以及第二組邏輯,輸出優(yōu)選值到所述選擇邏輯,其中所述優(yōu)選值包括響應(yīng)于所述第一優(yōu)先級(jí)別高于所述第二優(yōu)先級(jí)別而來(lái)自所述偏置模式的第一優(yōu)選值;以及響應(yīng)于所述第二優(yōu)先級(jí)別是比所述第一優(yōu)先級(jí)別更高的優(yōu)先級(jí)而來(lái)自所述偏置模式 的第二反轉(zhuǎn)的優(yōu)選值。
6.如權(quán)利要求5所述的設(shè)備,其中所述選擇邏輯能夠響應(yīng)于表示所述第一處理元件閑 置周期內(nèi)的所述第一處理元件的所述優(yōu)選值,而選擇所述第二處理元件。
7.如權(quán)利要求5所述的設(shè)備,其中所述偏置模式移位寄存器將從所述偏置模式移位寄 存器頭條目到所述偏置模式位移寄存器尾條目移位的值再循環(huán),以及其中響應(yīng)于所述第一 和所述第二處理元件閑置,沒有值從所述偏置模式位移寄存器的所述頭條目移出。
8.如權(quán)利要求7所述的設(shè)備,其中所述偏置邏輯還包括控制寄存器,以保存設(shè)置所述 偏置模式移位寄存器的大小的大小值,并保存要載入所述偏置模式位移寄存器中的所述偏 置模式,以及其中要保存在所述控制寄存器中的大小值要用作復(fù)用器中的輸入,以選擇所 述偏置模式的條目作為頭條目。
9.如權(quán)利要求1所述的設(shè)備,其中所述偏置邏輯包括跟蹤邏輯,跟蹤所述選擇邏輯相對(duì)于所述第二處理元件選擇所述第一處理元件的次 數(shù);以及控制邏輯,基于所述選擇邏輯響應(yīng)于所述第一優(yōu)先級(jí)高于所述第二優(yōu)先級(jí)而相對(duì)于所 述第二處理元件選擇所述第一處理元件的次數(shù),從而向所述選擇邏輯提供表示所述第一處 理元件的第一優(yōu)選,以及基于所述選擇邏輯響應(yīng)于所述第二優(yōu)先級(jí)高于所述第一優(yōu)先級(jí)而相對(duì)于所述第二處理元件選擇所述第一處理元件的次數(shù),從而向所述選擇邏輯提供表示所 述第二處理元件的第二優(yōu)選。
10.一種方法,包括在第一存儲(chǔ)元件中存儲(chǔ)與處理器第一處理元件相關(guān)聯(lián)的第一優(yōu)先級(jí)別,并在第二存儲(chǔ) 元件中存儲(chǔ)與所述處理器第二處理元件相關(guān)聯(lián)的第二優(yōu)先級(jí)別;確定所述第一優(yōu)先級(jí)別是否為比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí)別; 響應(yīng)于所述第一優(yōu)先級(jí)別是比所述第二優(yōu)先級(jí)別更高的優(yōu)先級(jí)別,而使處理資源耗用 向所述第一處理元件偏置。
11.如權(quán)利要求10所述的方法,其中所述處理資源從由保留站、流水線、填充緩沖器、 分支預(yù)測(cè)器單元、轉(zhuǎn)換緩沖器及高速緩存組成的組中選擇。
12.如權(quán)利要求10所述的方法,其中在第一存儲(chǔ)元件中存儲(chǔ)與處理器第一處理元件相 關(guān)聯(lián)的所述第一優(yōu)先級(jí)別是響應(yīng)于與所述第一處理元件相關(guān)聯(lián)的第一上下文中的交換,所 述第一優(yōu)先級(jí)別基于所述第一上下文;以及其中,在第二存儲(chǔ)元件中存儲(chǔ)與處理器第二處 理元件相關(guān)聯(lián)的所述第二優(yōu)先級(jí)別是響應(yīng)于與所述第二處理元件相關(guān)聯(lián)的第二上下文中 的交換,所述第二優(yōu)先級(jí)別基于所述第二上下文。
13.如權(quán)利要求10所述的方法,其中所述處理資源包括保留站,以及其中向所述第一 處理元件偏置所述保留站的耗用包括將與所述第一處理元件相關(guān)聯(lián)的第一掩碼設(shè)為第一 值,并且將與所述第二處理元件相關(guān)聯(lián)的第二掩碼設(shè)為第二值,所述第一和第二值指示所 述第一處理資源在所述保留站中分配比所述第二處理資源更多的保留條目。
14.如權(quán)利要求10所述的方法,其中所述處理資源包括由所述第一和所述第二處理資 源共享的流水線,以及其中向所述第一處理元件偏置所述流水線的耗用包括在偏置移位寄存器中載入偏置模式;在所述偏置移位寄存器中從所述偏置模式移位表示所述第一處理元件的第一偏置值;響應(yīng)于當(dāng)前周期內(nèi)所述流水線中所述第一處理元件具有要調(diào)度的活動(dòng),而基于所述第 一偏置值為所述流水線中的進(jìn)一步處理選擇所述第一處理元件。
15.如權(quán)利要求14所述的方法,其中在偏置移位寄存器中載入偏置模式包括 在偏置模式控制寄存器中存儲(chǔ)所述偏置模式以設(shè)置向著所述第一處理元件的所述處理資源的耗用比率;以及將所述偏置模式從所述偏置模式控制寄存器載入所述偏置位移寄存器。
16.如權(quán)利要求15所述的方法,其中向著所述第一處理元件的所述處理資源的耗用比 率包括對(duì)于所述第一處理元件相對(duì)于所述第二處理元件的三比一的比率。
17.如權(quán)利要求14所述的方法,還包括響應(yīng)于所述第二優(yōu)先級(jí)別是比所述第一優(yōu)先級(jí) 別更高的優(yōu)先級(jí)別,而向所述第二處理元件偏置所述流水線的耗用,其中向所述第二處理 元件偏置所述流水線的耗用包括響應(yīng)于所述第二優(yōu)先級(jí)別是比所述第一優(yōu)先級(jí)別更高的優(yōu)先級(jí)別,而從所述移位寄存 器中的所述偏置模式將表示所述第一處理元件的所述第一偏置值反轉(zhuǎn)為表示所述第二處 理元件的反轉(zhuǎn)的第一偏置值;以及響應(yīng)于當(dāng)前周期內(nèi)所述第二處理元件具有要選擇的活動(dòng),而基于所述反轉(zhuǎn)的第一偏置值選擇所述第二處理元件用于所述流水線中的進(jìn)一步處理。
18.如權(quán)利要求14所述的方法,其中向所述第一處理元件偏置所述流水線的耗用也包 括響應(yīng)于空周期而不從所述偏置移位寄存器中的所述偏置模式移位所述第一偏置值。
19.如權(quán)利要求14所述的方法,其中向所述第一處理元件偏置所述流水線耗用也包 括響應(yīng)于所述當(dāng)前周期內(nèi)所述流水線中所述第一處理元件沒有要調(diào)度的活動(dòng),而選擇所 述第二處理元件。
全文摘要
本發(fā)明的名稱是超線程微處理器中經(jīng)線程優(yōu)先級(jí)提供服務(wù)質(zhì)量,描述了基于優(yōu)先級(jí)在多處理元件環(huán)境中提供服務(wù)質(zhì)量的方法和設(shè)備。諸如保留站和流水線等資源耗用偏向更高優(yōu)先級(jí)處理元件。在保留站中,掩碼元件設(shè)為向更高優(yōu)先級(jí)處理元件提供到更多保留條目的訪問。在流水線中,偏置邏輯提供優(yōu)選比率以便為流水線中的進(jìn)一步處理選擇高優(yōu)先級(jí)處理元件。
文檔編號(hào)G06F9/38GK102033738SQ201010624670
公開日2011年4月27日 申請(qǐng)日期2008年8月14日 優(yōu)先權(quán)日2007年8月14日
發(fā)明者G·欣頓, J·霍爾姆, M·梅爾藤, M·馬登, S·斯里納 申請(qǐng)人:英特爾公司