專(zhuān)利名稱(chēng):在分配后推測(cè)調(diào)度微操作的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在分配后推測(cè)調(diào)度^:指令的裝置、系統(tǒng)和方法,所 述裝置含有在所述^(效指令的源數(shù)據(jù)備妥前調(diào)度供執(zhí)行的微操作的邏 輯部件。
背景技術(shù):
流水線(xiàn)微處理器架構(gòu)經(jīng)常使用這樣一種旁通方案當(dāng)邏輯部件 未準(zhǔn)備好供調(diào)度的另一微操作時(shí),允許新分配的微操作(p叩)繞過(guò) 微處理器的執(zhí)行調(diào)度邏輯部件或"保留位置"。該旁通方案會(huì)等待調(diào)度 微操作直到能確定微操作的源數(shù)據(jù)是否有效。若該源數(shù)據(jù)有效,則 該旁通方案調(diào)度該微操作并派出它來(lái)執(zhí)行。若源數(shù)據(jù)是無(wú)效的,則 該旁通方案將放棄調(diào)度微操作并將該微操作返回到調(diào)度邏輯部件。 然而,由于等待源數(shù)據(jù)的確認(rèn),在流水線(xiàn)插入了等待時(shí)間或"氣泡", 這浪費(fèi)了微操作分配和其調(diào)度之間寶貴的處理器周期。
發(fā)明內(nèi)容
本發(fā)明為克服現(xiàn)有技術(shù)中存在的上述缺點(diǎn)構(gòu)思而成。 本發(fā)明的第一方面是這樣一種裝置,其中 在微操作的源數(shù)據(jù)備妥之前調(diào)度供執(zhí)行的所述微操作的邏輯部 件;以及
若源數(shù)據(jù)無(wú)效則取消供執(zhí)行的微操作之派出的邏輯部件。 本發(fā)明的第二方面是這樣一種系統(tǒng),其中 存儲(chǔ)指令的存儲(chǔ)器,所述指令包括孩么操作;以及 處理器,它包括在收到對(duì)與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)的有效
性確認(rèn)前調(diào)度供執(zhí)行的微操作的邏輯部件,所述處理器還包括若源 數(shù)據(jù)無(wú)效則取消供執(zhí)行的微操作之派出的邏輯部件。
本發(fā)明的第三方面是這樣一種系統(tǒng),其中
獲得代碼的天線(xiàn),所述代碼包括至少一個(gè)指令,所述指令包括 至少一個(gè)微操作;以及
處理器,它包括在收到與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)的有效性 確認(rèn)前調(diào)度供執(zhí)行的微操作的邏輯部件,所述處理器還包括若源數(shù) 據(jù)無(wú)效則取消供執(zhí)行的微操作之派出的邏輯部件。
本發(fā)明的第四方面是這樣一種方法,其中
分配供調(diào)度的微操作;以及
在確定與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)是否備妥之前,調(diào)度供執(zhí) 行的所述微操作。
結(jié)合于本說(shuō)明書(shū)并構(gòu)成其一部分的
了與本發(fā)明原理一 致的一個(gè)和多個(gè)實(shí)施例,并與文字描述一起解釋這些實(shí)施例。這些 圖不必按比例畫(huà)出,其重點(diǎn)放在說(shuō)明本發(fā)明的原理上。這些附圖中 圖1是說(shuō)明本發(fā)明一些實(shí)施例的處理器的部分的框圖; 圖2是說(shuō)明本發(fā)明一些實(shí)施例的過(guò)程的流程圖; 圖3說(shuō)明了本發(fā)明一些實(shí)施例的典型流水線(xiàn)方案; 圖4A和4B是本發(fā)明一些實(shí)施例的邏輯部件的示意圖; 圖5是說(shuō)明本發(fā)明一些實(shí)施例的系統(tǒng)的框圖;以及 圖6是說(shuō)明本發(fā)明一些實(shí)施例的另一系統(tǒng)的框圖。
具體實(shí)施例方式
以下參照附圖進(jìn)行說(shuō)明。在各附圖中,相同的附圖標(biāo)記可用于 表示相同和類(lèi)似的要素。雖然下面描述通過(guò)說(shuō)明諸如特殊結(jié)構(gòu)、架 構(gòu)、接口、技術(shù)等特定細(xì)節(jié)提供了對(duì)本申請(qǐng)?zhí)岢鰴?quán)利要求的各發(fā)明
的充分理解,但這些細(xì)節(jié)是為解釋目的而提供的,不應(yīng)被視為限制。 此外,本領(lǐng)域技術(shù)人員會(huì)根據(jù)本公開(kāi),理解到提出權(quán)利要求的本申 請(qǐng)的各發(fā)明可在不按照這些特定細(xì)節(jié)的其他例和實(shí)施例中實(shí)施。在 下面公開(kāi)中的某些點(diǎn)上,省略了公知的設(shè)備、電路和方法以避免不 必要的細(xì)節(jié)使本發(fā)明的描述變得不清晰。
圖1是本發(fā)明一些實(shí)施例的處理器100部分的示意圖。處理器100 包含前端(FE)階段102、執(zhí)行級(jí)104、存儲(chǔ)器接口 106和故障(000 ) 階段108。故障階段108包含分配邏輯部件(ALLOC) 110,寄存器 別名表邏輯部件(RAT) 112,包含一個(gè)和多個(gè)調(diào)度程序115的保留 位置邏輯部件(RS) 114,以及重新排序緩沖器(ROB)/實(shí)際寄存 器文件(RRF)邏輯部件116。為了完全性而包含在圖1中的FE102、 執(zhí)行級(jí)104和存儲(chǔ)器接口 106,這提供了為本領(lǐng)域技術(shù)人員所公知的 功能,因此不再進(jìn)一步詳細(xì)討i侖。此外,本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到 有些處理器部件,如指令/數(shù)據(jù)高速緩存、分支目標(biāo)緩沖器、取指令 邏輯部件等已從圖1中省略,以免不必要地使本發(fā)明的實(shí)施例變得
不清晰。
處理器100可采用Pentium⑧兼容處理器(如Intel⑧^^司生產(chǎn)的 那些處理器)來(lái)實(shí)施。然而,本發(fā)明也可用其他類(lèi)型的處理器來(lái)實(shí) 施,如Itanium⑧處理器系列兼容處理器或X-Scale⑧系列兼容處理器。 此外,處理器100可包括多核^L處理器中的一個(gè)處理器核。然而, 本發(fā)明不限于特定的處理器或孩么處理器架構(gòu),而可用任何流水線(xiàn)處 理器或^:處理器架構(gòu)來(lái)實(shí)現(xiàn)。
FE 102可將經(jīng)解碼的孩i操作提供給故障階段108。 ALLOC 110 可與RAT 112和ROB/RRF 116協(xié)同操作來(lái)為被提供給故障階段108 的微操作分配物理注冊(cè)表?xiàng)l目。雖然RAT 112可重命名或?qū)⑴c微操 作相關(guān)聯(lián)的邏輯部件寄存器(例如,x86邏輯寄存器如EAX、 EBX、 ECX等)映射到ROB/RRF 116中的物理寄存器(圖中未示出),但 是ALLOC 110可進(jìn)行那些物理寄存器的實(shí)際分配。ALLOC IIO還可
將微操作分配到RS 114中的條目,使得調(diào)度程序115可調(diào)度用于由 執(zhí)行部件(圖中未示出)在執(zhí)行級(jí)104中執(zhí)行的微操作。RS 114然 后可將用于執(zhí)行的微操作派出到階段104。微操作的執(zhí)行可使數(shù)據(jù)源 自或存到(為RAT 112所映射的)ROB/RRF 116中的物理寄存器。
根據(jù)本發(fā)明的一些實(shí)施例,若RS 114未準(zhǔn)備好供調(diào)度的先前分 配的微操作,則由FE 102提供給故障階段108的用于執(zhí)行的微操作 可在被ALLOC 110分配執(zhí)行之后被推測(cè)調(diào)度,不用等待來(lái)自 ROB/RRF 116的關(guān)于微操作的源數(shù)據(jù)或源已備妥或有效的指示。RS 114可響應(yīng)由ALLOC 110提供的與該微操作相關(guān)聯(lián)的指示符(例如, SpecSched)來(lái)推測(cè)調(diào)度該孩t操作。
本發(fā)明的一些實(shí)施例中,RS 114可響應(yīng)由ROB/RRF 116提供的 并與微操作需要執(zhí)行的操作數(shù)或源相關(guān)聯(lián)的一個(gè)和多個(gè)指示符,取 消對(duì)該微操作的推測(cè)調(diào)度。例如,ROB/RRF 116可提供指示符或信 號(hào)(例如,否定的SrceValid的信號(hào))給RS 114,指示推測(cè)調(diào)度的 微操作不應(yīng)被派出用于執(zhí)行,因?yàn)?一個(gè)和多個(gè)數(shù)據(jù)源未備妥或非有 效。而且,若該微操作被取消,則根據(jù)本發(fā)明的一些實(shí)施例,由被 推測(cè)調(diào)度的微操作引起的任何從屬微操作也可被取消。
圖2說(shuō)明了根據(jù)本發(fā)明的一些實(shí)施例用于在分配后推測(cè)調(diào)度微 操作的過(guò)程200。為便子解釋?zhuān)脠D1來(lái)針對(duì)圖1所示的處理器100 描述過(guò)程200及相關(guān)處理,但是本發(fā)明不限于此,用本發(fā)明的適當(dāng) 的裝置和/或裝置的組合支持和/或?qū)崿F(xiàn)的其他過(guò)程和方案也是可能 的。
圖3說(shuō)明了本發(fā)明一些實(shí)施例的可與分配之后推測(cè)調(diào)度^效操作 相關(guān)聯(lián)的典型的流水線(xiàn)方案300。方案300說(shuō)明了在三個(gè)處理器的流 水線(xiàn)310之間以及四個(gè)流水線(xiàn)階段312上分布的典型操作302-308, 該方案的提供是為了有助于過(guò)程200的討論,而不是要將本發(fā)明限 制為特定的流水線(xiàn)方案。例如,本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到,盡管方 案300示出了四個(gè)流水線(xiàn)階段312,本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到在使
用能夠在上升和下降時(shí)鐘沿上派出微操作的調(diào)度邏輯部件的流水線(xiàn)
架構(gòu)中,該四個(gè)流水線(xiàn)階段312可實(shí)際代表四個(gè)處理器半周期。
回到圖2,過(guò)程200可從寄存器重命名并分配供調(diào)度的微操作(步 驟202)開(kāi)始。在本發(fā)明的一些實(shí)施例中,步驟202可由ALLOC 110 執(zhí)行以將從FE 102接收的微操作從RAT 112分配到RS 114中。同 時(shí),RAT 112可使重命名或與從與微操作相關(guān)聯(lián)的邏輯寄存器到與 ROB/RRF 116相關(guān)聯(lián)的該組物理寄存器(圖中未示出)的映射得以 實(shí)現(xiàn)。RAT 112還可對(duì)微操作的源或操作數(shù)映射物理寄存器。在執(zhí) 行步驟202中,RAT 112還可才是供一個(gè)和多個(gè)信號(hào)或指示符(例如, SpecSched)給RS 114,以指示RS 114微操作將被推測(cè)調(diào)度。因此, 參照?qǐng)D3的方案300,步驟202可導(dǎo)致發(fā)生在階段1的操作302。
過(guò)程200以如下的執(zhí)行繼續(xù)判定前一微操作是否準(zhǔn)備好供調(diào) 度(步驟204 )。在本發(fā)明的一些實(shí)施例中,在從RAT 112接收微 操作將被推測(cè)調(diào)度的指示后,RS 114可執(zhí)行步驟204的判定。因此, 若RS 114包含準(zhǔn)備好供調(diào)度的先前分配的微操作,則RS 114可忽略 在步驟202中從RAT 112接收的指示并可不進(jìn)行孩t操作的推測(cè)調(diào)度。 在這種情況下,步驟204可產(chǎn)生肯定的判定(即,前一微操作已準(zhǔn) 備好供調(diào)度),并且過(guò)程200可終止且微操作可不被推測(cè)調(diào)度。
另一方面,若在步驟204中判定RS 114不具有準(zhǔn)備好供調(diào)度的 另一先前分配的微操作,則過(guò)程200以如下的執(zhí)行繼續(xù)讀出微操 作的源或操作數(shù)的步驟(步驟206 )并推測(cè)調(diào)度該微操作(步驟208 )。 在本發(fā)明的一些實(shí)施例中,步驟206可被執(zhí)行,讓RS 114從在步驟 202中被分配給該微操作的源的ROB/RRF 116的物理寄存器中讀出 與該微操作相關(guān)聯(lián)的源或源數(shù)據(jù)。在本發(fā)明的一些實(shí)施例中,RAT 112 可識(shí)別在步驟202中被分配給孩i操作的源的物理寄存器。然而,本 發(fā)明不限于圖2所示的步驟204和206的順序。例如,在本發(fā)明的 一些實(shí)施例中,步驟204 (判定前一孩么操作是否準(zhǔn)備好供調(diào)度)和步 驟206 (讀出^敬操作的源)可并4亍地執(zhí)行。在執(zhí)行步驟206時(shí),RS 114
也可調(diào)度該微操作來(lái)執(zhí)行步驟208。因此,參照?qǐng)D3中的方案,步驟 206和208可導(dǎo)致發(fā)生在階段2中的相應(yīng)操作303和305。
過(guò)程200然后以如下的執(zhí)^亍繼續(xù)判定該微操作的源是否有效 (步驟210)。在本發(fā)明的一些實(shí)施例中,RS 114可響應(yīng)由ROB/RRF 116提供的一個(gè)和多個(gè)信號(hào)或指示符(例如,SrcValid),執(zhí)行步驟 210的判定。若例如ROB/RRF 116指示數(shù)據(jù)操作數(shù)或源已備妥或有 效(例如,通過(guò)提供SrcValid信號(hào)),則步驟210可產(chǎn)生肯定的判 定。另一方面,若ROB/RRF 116指示數(shù)據(jù)操作數(shù)或源未備妥或非有 效(例如,通過(guò)提供否定的SrcValid信號(hào)),則步驟210可產(chǎn)生否 定的判定。本領(lǐng)域技術(shù)人員當(dāng)知,微操作可與多個(gè)數(shù)據(jù)操作數(shù)或源 相關(guān)聯(lián),且在這種情況下,ROB/RRF 116可為各源提供單獨(dú)的指示 符或信號(hào),來(lái)對(duì)RS 114指示各源是否備妥或有效。在這些實(shí)施例中, 可響應(yīng)那些指示符或信號(hào)中任何一個(gè)來(lái)執(zhí)行步驟210的判定。
若步驟210的結(jié)果是肯定的,即,若與該微操作相關(guān)聯(lián)的源已 備妥或有效,則過(guò)程200以如下的執(zhí)行繼續(xù)派出該孩t操作(步驟212 ) 并為該樣么操作寫(xiě)備妥狀態(tài)(步驟214)。根據(jù)本發(fā)明的一些實(shí)施例, 步驟212可通過(guò)RS 114提供或派出該孩t操作給執(zhí)行級(jí)104來(lái)執(zhí)行, 而步驟214可通過(guò)RS 114對(duì)RS 114中的寄存器(圖中未示出)寫(xiě)或 指示備妥狀態(tài)來(lái)執(zhí)行。因此,參照?qǐng)D3所示的方案300,步驟212和 214可導(dǎo)致發(fā)生在階段3的相應(yīng):^作306和304。
另一方面,若步驟210的結(jié)果是否定的,即,若與該微操作相 關(guān)聯(lián)的源未備妥或非有效,則過(guò)程200以如下的執(zhí)行繼續(xù)取消該 微操作(步驟216)并取消任何從屬微操作(步驟218)。在本發(fā)明 的一些實(shí)施例中,步驟216可#1執(zhí)行,即RS 114響應(yīng)ROB/RRF 116 在步驟210中提供的一個(gè)和多個(gè)指示符或信號(hào)來(lái)取消對(duì)該微操作的 推測(cè)調(diào)度。
再參照?qǐng)D3,本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到,若該孩么操作在階段2中 已被推測(cè)調(diào)度(操作305 ),則該橫L操作可能已引起在階段3 (操作
307 )或之后被調(diào)度的一個(gè)和多個(gè)從屬微操作。因而,若與該微操作 相關(guān)聯(lián)的源在210被判定未備妥或非有效,使得該微操作的推測(cè)調(diào) 度在步驟216中被取消,并因此該微操作未在階段3中派出(操作 306),則可能必須取消由該微操作引起的任何被調(diào)度的從屬微操。
圖4A是本發(fā)明一些實(shí)施例的可根據(jù)過(guò)程200的步驟216來(lái)取消 孩t操作調(diào)度的邏輯部件或電路400的示意圖。邏輯部件400包含第 一 AND邏輯部件402,該部件對(duì)指示該微操作將被推測(cè)調(diào)度的信號(hào) (例如,SpecSched(O))和指示與該微操作相關(guān)聯(lián)的第一源或操作 數(shù)未備妥或非有效的信號(hào)(例如,否定的SrcValid (0))進(jìn)行"與" 運(yùn)算。邏輯部件400還包含第二 AND邏輯部件404,該部件對(duì)指示 該微操作將被推測(cè)調(diào)度的信號(hào)(例如,SpecSched (1))和指示與該 微操作相關(guān)聯(lián)的第二源或操作數(shù)未備妥或非有效的信號(hào)(例如,否 定的SrcValid (1 ))進(jìn)行"與"運(yùn)算。邏輯部件400還包含OR邏 輯部件406,該部件將AND邏輯部件402的輸出和AND邏輯部件404 的輸出一起進(jìn)行"或"運(yùn)算來(lái)產(chǎn)生指示該微操作的推測(cè)調(diào)度將被取 消的控制信號(hào)(例如,Cancelu叩(l))。在本發(fā)明的一些實(shí)施例中, 邏輯部件400可在RS 114和/或RAT 112中實(shí)現(xiàn),但本發(fā)明并不限 于此。
取消從屬微操作可能需要兩條信息(i)檢測(cè)出 一微操作依賴(lài) 于被推測(cè)調(diào)度的另一微操作(父微操作),以及(ii)檢測(cè)出該父微 操作被取消。Consumedspeculativevalid (CSV)和Consumedrealvalid (CRV)信號(hào)可分別提供上述兩條信息。若該父微操作導(dǎo)致源被推 測(cè)調(diào)度(基于SpecSched),則可產(chǎn)生微操作的源操作數(shù)的CSV。若 該父微操作的推測(cè)是正確的(基于SrcValid信號(hào)),則可產(chǎn)生微操 作的源操作數(shù)的CRV。關(guān)于一微操作的家系信息(parentage information)可例如從RAT 112獲得,對(duì)于給定實(shí)施例,RAT 112 可為標(biāo)準(zhǔn)寄存器重命名來(lái)產(chǎn)生該信息,或通過(guò)比較該微操作的源操 作數(shù)寄存器和其他早先微操作的輸出寄存器來(lái)計(jì)算。本領(lǐng)域技術(shù)人
員會(huì)理解到若不是其推測(cè)的確認(rèn)或取消尚未發(fā)生(即,在步驟208 和212/216之間),這可通過(guò)著眼于被推測(cè)調(diào)度的該等微操作的輸出 寄存器來(lái)實(shí)現(xiàn)。
圖4B是本發(fā)明一些實(shí)施例的可根據(jù)過(guò)程200的步驟218來(lái)取消 從屬微操作之調(diào)度的邏輯部件或電路400的示意圖。邏輯部件410 包含第一 AND邏輯部件412,該部件對(duì)指示與從屬^:操作相關(guān)聯(lián)的 第一源或操作數(shù)未備妥或非有效的信號(hào)(例如,否定的 ConsumedRealValid或CRV (0))和指示從屬孩t操作已被推測(cè)調(diào)度 的信號(hào)(例如,ConsumedSpeculativeValid或CSV (0))進(jìn)行"與" 運(yùn)算。邏輯部件410還包含第二 AND邏輯部件414,該部件對(duì)指示 與從屬微操作相關(guān)聯(lián)的第二源或操作數(shù)未備妥或非有效的信號(hào)(例 如,CRVU))和指示從屬微:操作已被推測(cè)調(diào)度的信號(hào)(例如,否 定的SrcValid ( 1 ))進(jìn)行"與"運(yùn)算。邏輯部件410還包含OR邏
的輸出一起進(jìn)行"或"運(yùn)算來(lái)產(chǎn)生指示從屬微操作的推測(cè)調(diào)度將被 取消的控制信號(hào)(例如,CancelDepuop (1))。在本發(fā)明的一些實(shí) 施例中,邏輯部件410可在RS 114和/或RAT 112中實(shí)現(xiàn),但本發(fā) 明不限于此。
圖2所示的步驟不必按所示的順序來(lái)實(shí)現(xiàn);也不是必須執(zhí)行所 有的步驟。同時(shí),那些不依賴(lài)于其他步驟的步驟可在其他步驟之前 或與其他步驟并行地執(zhí)行。例如,步驟206可與步驟208并行地執(zhí) 行。同樣,步驟204和206可并行地執(zhí)行。此外,圖2所示的步驟 中至少有一些可由可機(jī)讀介質(zhì)中的指令或多組指令來(lái)實(shí)現(xiàn)。
圖5說(shuō)明了可用于實(shí)現(xiàn)本發(fā)明的前端總線(xiàn)(FSB)計(jì)算機(jī)系統(tǒng) 500。系統(tǒng)500包含處理器502、圖形/存儲(chǔ)控制器504、存儲(chǔ)器506 (例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)等)、顯示器508 (例如, 平板顯示器)、輸入/輸出控制器510,數(shù)據(jù)存儲(chǔ)器511 (例如, 一個(gè) 和多個(gè)磁盤(pán)驅(qū)動(dòng)器)、無(wú)線(xiàn)發(fā)射器和接收器電路512和天線(xiàn)514 (例
如,偶極天線(xiàn)、窄帶蛇形天線(xiàn)(MLA)、寬帶MLA、反向"F'天線(xiàn)、 平面反向"F"天線(xiàn)、Goubau天線(xiàn)、貼片天線(xiàn)等)。根據(jù)本發(fā)明的一些 實(shí)施例,處理器502可提供如前面詳細(xì)描述的處理器100的功能。 存儲(chǔ)器511可存儲(chǔ)代碼513,其中該代碼可包含指令,當(dāng)該指令被解 碼時(shí),提供包括前面針對(duì)處理器100和/或過(guò)程200描述的微操作的 一個(gè)和多個(gè)孩^乘作。存儲(chǔ)器506然后可存儲(chǔ)一個(gè)和多個(gè)指令,那些 指令各自包含一個(gè)和多個(gè)微操作。
圖6說(shuō)明了可用于實(shí)現(xiàn)本發(fā)明的點(diǎn)對(duì)點(diǎn)(PtP)計(jì)算機(jī)系統(tǒng)600。 系統(tǒng)600包含至少兩個(gè)處理器602和603,它們含有各自的處理器核 心604和605,以及點(diǎn)對(duì)點(diǎn)(PtP)接口 606/607和608/609。處理器 602和603還包含各自的將處理器602和603連接到各自的存儲(chǔ)器612 和613 (例如,DRAM)的存儲(chǔ)控制集線(xiàn)器(MCH) 610和611。處 理器602和603可通過(guò)接口 607和608交換數(shù)據(jù)。處理器602和603 還可通過(guò)連接到芯片組614中相應(yīng)的PtP接口 615和616的各自的接 口 606和609用芯片組614來(lái)交換數(shù)據(jù)。芯片組614還可通過(guò)圖形 接口 619用高性能圖形邏輯部件618來(lái)交換數(shù)據(jù)。根據(jù)本發(fā)明的一 些實(shí)施例,核心604和/或605可實(shí)現(xiàn)如前所述的處理器100的功能。 芯片組614還可通過(guò)總線(xiàn)^接口 620用總線(xiàn)622來(lái)交換數(shù)據(jù),其 中,在各實(shí)施例中,總線(xiàn)622可為工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線(xiàn)或外圍 部件互連(PCI)總線(xiàn)。各種I/O設(shè)備623和總線(xiàn)橋624可被連接到 總線(xiàn)622,其中,總線(xiàn)橋624可允許在總線(xiàn)622和另一總線(xiàn)625之間 交換數(shù)據(jù)。在各種實(shí)施例中,總線(xiàn)625可為小型計(jì)算機(jī)系統(tǒng)接口
(SCSI)總線(xiàn)、電子集成驅(qū)動(dòng)器(IDE)總線(xiàn)或通用串行總線(xiàn)(USB )。 附加I/0設(shè)備,如鍵盤(pán)/鼠標(biāo)或其他光標(biāo)控制設(shè)備626、音頻1/0 622、 通信設(shè)備628 (例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口等)和數(shù)據(jù)存儲(chǔ)設(shè)備630
(例如,磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、光磁盤(pán)驅(qū)動(dòng)器、磁帶或包括閃 存的非易失性存儲(chǔ)器)。存儲(chǔ)器630可存儲(chǔ)代碼631,其中,.該代碼 可包含一些指令,它們被解碼后可提供包括前面針對(duì)處理器100和/
或過(guò)程200描述的微操作的一個(gè)和多個(gè)微操作。
系統(tǒng)500和/或600可采取多種物理實(shí)現(xiàn)方式。例如,系統(tǒng)500 或600可在個(gè)人計(jì)算機(jī)(PC)、連網(wǎng)的PC、媒體PC、服務(wù)器計(jì)算 系統(tǒng)、機(jī)頂盒(STB )、手持式計(jì)算平臺(tái)(例如,個(gè)人數(shù)字助理(PDA))、 游戲系統(tǒng)(便攜式或其他方式)、3D性能移動(dòng)電話(huà)手機(jī)等中實(shí)現(xiàn)。 此外,雖然系統(tǒng)500或600的部件可在諸如片上系統(tǒng)(SOC)集成電 路(IC)的單個(gè)設(shè)備中實(shí)現(xiàn),但是系統(tǒng)500或600的部件還可被分 布在多個(gè)IC或設(shè)備之間。例如,處理器502、控制器504/510、存儲(chǔ) 器506、電路512和天線(xiàn)514可作為包含在單個(gè)計(jì)算平臺(tái)中的多個(gè)IC (如媒體PC或STB等)來(lái)部分地實(shí)現(xiàn)。雖然顯示器508還可連同 系統(tǒng)500的其他部件在PC、 STB或類(lèi)似平臺(tái)中實(shí)現(xiàn),但是作為可選 的方案,它也可作為連接到包含系統(tǒng)500的其他部件的平臺(tái)的獨(dú)立 設(shè)備上實(shí)現(xiàn)。
本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到^:操作和指令可替換使用,或者微操 作可被認(rèn)為是經(jīng)解碼的指令的子指令。因此,例如,本發(fā)明的一些 實(shí)施例可用指令來(lái)實(shí)現(xiàn)而本發(fā)明的其他實(shí)施例可用微操作來(lái)實(shí)現(xiàn)。
根據(jù)如前所述的本發(fā)明的一些實(shí)施例,本發(fā)明的一些實(shí)施例包 括可消除繞過(guò)保留位置或調(diào)度程序的等待時(shí)間的推測(cè)調(diào)度方案。當(dāng) 微操作源從ROB被讀出時(shí),推測(cè)調(diào)度方案可調(diào)度微操作,然后可在 ROB中的數(shù)據(jù)變成無(wú)效時(shí)有選擇地取消該調(diào)度。在數(shù)據(jù)有效的場(chǎng)合, 推測(cè)調(diào)度方案能消除與判定源數(shù)據(jù)是否有效相關(guān)聯(lián)的等待時(shí)間。在 數(shù)據(jù)無(wú)效的場(chǎng)合,推測(cè)調(diào)度方案可在推測(cè)調(diào)度的影響傳播太遠(yuǎn)之前 就實(shí)行有選擇的取消。
雖然前面就與本發(fā)明原理一致的 一個(gè)和多個(gè)實(shí)施例作了說(shuō)明和 描述,但并不是要窮盡本發(fā)明的范圍或?qū)⒈景l(fā)明的范圍限制為所公 開(kāi)的精確形式。可按照上面教導(dǎo)對(duì)本發(fā)明作出其修改和變化或可從 本發(fā)明各實(shí)施例的實(shí)施中得到其修改和變化。很明顯,許多其他實(shí) 施例可被用于提供方法、裝置和/或系統(tǒng)以實(shí)現(xiàn)與本申請(qǐng)?zhí)岢鰴?quán)利要
求的發(fā)明 一致的在分配之后推測(cè)調(diào)度凝:操作。
除非有明確描述,否則本申請(qǐng)的描述中使用的任何要素、步驟 或指令都不應(yīng)被解釋成對(duì)于本發(fā)明是關(guān)鍵的或基本的。同時(shí),如本 文中使用的,冠詞"一 (a),,意指包含一個(gè)和多個(gè)。此外,用于描 述本發(fā)明的一些實(shí)施例的一些術(shù)語(yǔ),如"操作數(shù)"在有些情況下可 與"源數(shù)據(jù)"替換使用。此外,當(dāng)術(shù)語(yǔ)如"連接(coupled)"或"響 應(yīng)(reponsive)"在本文中使用或在后面的權(quán)利要求中使用時(shí),這 些術(shù)語(yǔ)要作廣義解釋。例如,短語(yǔ)"連接到(coupled to)"可按適 合該短語(yǔ)使用的上下文指通信上連接、電氣上連接和/或操作上連 接。可在基本不背離本發(fā)明的精神和范圍的前提下,對(duì)被提出權(quán)利 要求的本發(fā)明的上述實(shí)施例作出變更和修改。所有這些變更和修改 均擬包含在本文中、本公開(kāi)的范圍內(nèi)并為后附的權(quán)利要求所保護(hù)。
權(quán)利要求
1.一種裝置,包括在微操作的源數(shù)據(jù)備妥之前調(diào)度供執(zhí)行的所述微操作的邏輯部件;以及若源數(shù)據(jù)無(wú)效則取消供執(zhí)行的微操作之派出的邏輯部件。
2. 如權(quán)利要求l所述的裝置,還包括若源數(shù)據(jù)無(wú)效則取消供執(zhí)行的從屬微操作之派出的邏輯部件。
3. 如權(quán)利要求2所述的裝置,其中,所述若源數(shù)據(jù)無(wú)效則取消供 執(zhí)行的從屬孩么操作之派出的所述邏輯部件,包括對(duì)第一指示符和第二 指示符作出響應(yīng)的AND邏輯部《牛,第一指示符指示所述^f效操作已被推 測(cè)調(diào)度,笫二指示符指示與所述微操作相關(guān)聯(lián)的所述源數(shù)據(jù)為非有 效。
4. 如權(quán)利要求3所述的裝置,還包括 提供第一指示符的寄存器別名表;以及 提供第二指示符的重排序緩沖器。
5. 如權(quán)利要求3所述的裝置,其中,所述若源數(shù)據(jù)無(wú)效則取消供 執(zhí)行的從屬微操作之派出的所迷邏輯部件,包括對(duì)第一指示符和第三 指示符作出響應(yīng)的附加AND邏輯部件,第三指示符指示與所述^1操作 相關(guān)聯(lián)的附加源數(shù)據(jù)為非有效。
6. —種系統(tǒng),包括存儲(chǔ)指令的存儲(chǔ)器,所述指令包括微操作;以及處理器,它包括在收到對(duì)與所述孩封喿作相關(guān)聯(lián)的源數(shù)據(jù)的有效性確認(rèn)前調(diào)度供執(zhí)行的微操作的邏輯部件,所述處理器還包括若源數(shù)據(jù)無(wú)效則取消供執(zhí)行的微操作之派出的邏輯部件。
7. 如權(quán)利要求6所述的系統(tǒng),其中,所述處理器還包括若源數(shù)據(jù) 無(wú)效則取消供執(zhí)行的從屬孩i操作之派出的邏輯部件。
8. 如權(quán)利要求7所述的系統(tǒng),其中,所述若源數(shù)據(jù)無(wú)效則取消供執(zhí)行的從屬微操作之派出的邏輯部件,包括對(duì)第一指示符和第二指示符作出響應(yīng)的AND邏輯部件,第 一指示符指示所述微操作已被推測(cè)調(diào) 度,第二指示符指示與所述樣t操作相關(guān)聯(lián)的源數(shù)據(jù)為非有效。
9. 如權(quán)利要求8所述的系統(tǒng),其中,所述處理器還包括 提供第一指示符的寄存器別名表;以及提供第二指示符的重排序緩沖器。
10. 如權(quán)利要求7所述的系統(tǒng),其中,所述若源數(shù)據(jù)無(wú)效則取消 供執(zhí)行的從屬微操作之派出的邏輯部件,包括對(duì)第一指示符和第三指 示符作出響應(yīng)的附加AND邏輯部件,第三指示符指示與所述微操作相 關(guān)聯(lián)的附加源數(shù)據(jù)為非有效。
11. 一種系統(tǒng),包括獲得代碼的天線(xiàn),所述代碼包括至少一個(gè)指令,所述指令包括至 少一個(gè)孩i操作;以及處理器,它包括在收到與所述纟款操作相關(guān)聯(lián)的源數(shù)據(jù)的有效性確 認(rèn)前調(diào)度供執(zhí)行的微操作的邏輯部件,所述處理器還包括若源數(shù)據(jù)無(wú) 效則取消供執(zhí)行的纟救操作之派出的邏輯部件。
12. 如權(quán)利要求11所述的系統(tǒng),其中,所述處理器還包括若源數(shù) 據(jù)無(wú)效則取消供執(zhí)行的從屬孩i操作之派出的邏輯部件。
13. 如權(quán)利要求11所述的系統(tǒng),其中,若源數(shù)據(jù)無(wú)效則取消供執(zhí) 行的從屬微操作之派出的邏輯部件包括對(duì)第 一指示符和第二指示符作 出響應(yīng)的AND邏輯部件,第一指示符指示所述微操作已被推測(cè)調(diào)度, 第二指示符指示與所述孩i操作相關(guān)聯(lián)的源數(shù)據(jù)為非有效。
14. 如權(quán)利要求13所述的系統(tǒng),其中,所述處理器還包括 提供第一指示符的寄存器別名表;以及提供第二指示符的重排序緩沖器。
15. 如權(quán)利要求11所述的系統(tǒng),其中,所述若源數(shù)據(jù)無(wú)效則取消 供執(zhí)行的從屬微操作之派出的邏輯部件,包括對(duì)笫一指示符和第三指 示符作出響應(yīng)的附加AND邏輯部件,第三指示符指示與所述孩i捧作相 關(guān)聯(lián)的附加源數(shù)據(jù)為非有效。
16. —種方法,包括 分配供調(diào)度的艱i操作;以及在確定與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)是否備妥之前,調(diào)度供執(zhí)行 的所述微操作。
17. 如權(quán)利要求16所述的方法,還包括若與所述賴(lài):操作相關(guān)聯(lián)的源數(shù)據(jù)未備妥,則在執(zhí)行前取消所述4效 操作。
18. 如權(quán)利要求16所述的方法,還包括若與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)未備妥,則在執(zhí)行前取消從屬微 操作。
19. 如權(quán)利要求18所述的方法,其中,若與所述孩么操作相關(guān)聯(lián)的 源數(shù)據(jù)未備妥、則在執(zhí)行前取消從屬微操作包括響應(yīng)第一指示符和 第二指示符,在執(zhí)行前取消所迷從屬微操作,第一指示符指示所述微 操作已被推測(cè)調(diào)度,第二指示符指示與所述微操作相關(guān)聯(lián)的源數(shù)據(jù)為 非有效。
全文摘要
本發(fā)明公開(kāi)了在分配后推測(cè)調(diào)度微指令的裝置、系統(tǒng)和方法,包括一種裝置,該裝置含有在所述微指令的源數(shù)據(jù)備妥之前調(diào)度供執(zhí)行的微操作(μop)的邏輯部件。所述裝置還包括若干所述源數(shù)據(jù)無(wú)效則取消供執(zhí)行的微指令之派發(fā)的邏輯部件。本發(fā)明還公開(kāi)了其他實(shí)施例。
文檔編號(hào)G06F9/22GK101101539SQ20071012900
公開(kāi)日2008年1月9日 申請(qǐng)日期2007年6月30日 優(yōu)先權(quán)日2006年6月30日
發(fā)明者A·索達(dá)尼, D·K·李, R·庫(kù)爾卡尼 申請(qǐng)人:英特爾公司