亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于矢量處理的可擴展并行流水線浮點單元的制作方法

文檔序號:6557415閱讀:203來源:國知局
專利名稱:用于矢量處理的可擴展并行流水線浮點單元的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實施例涉及微處理器領(lǐng)域,尤其涉及浮點單元。
背景技術(shù)
浮點(FP)運算的使用在諸如三維(3-D)計算機圖形、圖像處理、數(shù)字信號處理、天氣預(yù)報、空間探測、地震處理和數(shù)值分析的許多計算機領(lǐng)域里逐漸變得普及。已經(jīng)開發(fā)了專門設(shè)計的浮點單元來增強計算機系統(tǒng)里的FP計算能力。許多FP應(yīng)用程序涉及矢量處理。設(shè)計用于矢量處理的浮點處理器(FPP)通常使用流水線結(jié)構(gòu)。
用于流水線FPP的現(xiàn)有技術(shù)通常使用單深度流水線(deep pipeline)來進行矢量處理。雖然這個方法對一些應(yīng)用程序可能是簡單和充分的,但它對于高強度的矢量處理而言具有許多缺點。當(dāng)問題大小改變時一不管是增加還是減少—很難改變該體系結(jié)構(gòu)。也可能存在死鎖,從而導(dǎo)致低的流水線利用率。簡單的指令可能具有與復(fù)雜指令相同的等待時間,從而導(dǎo)致流水線的低效使用。其它缺點包括低的吞吐量、吞吐量取決于矢量總數(shù)等。


通過參考下述描述和用來示例說明本發(fā)明實施例的附圖可以最好的理解本發(fā)明的實施例,在附圖里圖1A是示例說明可以實施本發(fā)明的一個實施例的處理系統(tǒng)的圖。
圖1B是示例說明可以實施本發(fā)明一個實施例的圖形系統(tǒng)的圖。
圖2是示例說明根據(jù)本發(fā)明一個實施例的FPU的圖。
圖3是示例說明根據(jù)本發(fā)明一個實施例的調(diào)度器的圖。
圖4是示例說明根據(jù)本發(fā)明一個實施例的FP流水線的圖。
圖5是示例說明根據(jù)本發(fā)明一個實施例的仲裁器和組裝單元的圖。
圖6是示例說明根據(jù)本發(fā)明一個實施例的為矢量處理執(zhí)行FP運算的過程的流程圖。
圖7是示例說明根據(jù)本發(fā)明一個實施例的分派矢量輸入的過程的流程圖。
圖8是示例說明根據(jù)本發(fā)明一個實施例的仲裁和組裝的過程的流程圖。
具體實施例方式
本發(fā)明的實施例是為矢量處理執(zhí)行浮點運算的技術(shù)。輸入隊列捕獲多個矢量輸入。調(diào)度器分派所述矢量輸入。多個浮點(FP)流水線根據(jù)對由調(diào)度器分派的矢量輸入的標(biāo)量分量的運算而產(chǎn)生FP結(jié)果。仲裁器和組裝單元仲裁輸出部件的使用并組裝FP結(jié)果以寫入到輸出部件。
在以下說明中描述了大量細節(jié)。然而,應(yīng)當(dāng)理解本發(fā)明的實施例可以脫離這些細節(jié)而實現(xiàn)。在其它情況里,沒有示出公知電路、結(jié)構(gòu)和技術(shù)以避免混淆對該說明的理解。
本發(fā)明的一個實施例可描述為一個過程,其通常被描述為流程圖、程序框圖、結(jié)構(gòu)圖或塊圖。盡管流程圖可將運算描述為按照時間順序的過程,但許多運算可并行或同時執(zhí)行。此外運算的順序也可重新安排。當(dāng)過程的運算完成時該過程也就結(jié)束了。過程可對應(yīng)于方法、程序、工序、制造或裝配方法等。
本發(fā)明的一個實施例是為矢量處理有效地執(zhí)行FP運算的技術(shù)。該技術(shù)使用FP單元(FPU)體系結(jié)構(gòu),該體系結(jié)構(gòu)使用多個淺流水線而不是單深度流水線。這在計算能力和緩沖深度方面提供了高度的可擴展性。通過改變流水線的數(shù)量,該體系結(jié)構(gòu)就可以適應(yīng)任何計算需求。將進入的矢量輸入分解或者拆解為一組獨立的標(biāo)量分量,將這些標(biāo)量分量轉(zhuǎn)發(fā)到多個FP流水線以并行處理。一個簡單的仲裁模式以異步方式將FP結(jié)果分配到輸出緩沖器并重新組裝該整個矢量結(jié)果。這種無次序的完成可允許在長的等待時間和復(fù)雜指令之前完成短的等待時間和簡單指令,導(dǎo)致高的吞吐量。通過在命令完成時而不是在分派的時候分配輸出緩沖器空間,該仲裁模式也提供改進的死鎖阻止,產(chǎn)生高的流水線利用率。
圖1A是可以實現(xiàn)本發(fā)明一個實施例的處理系統(tǒng)10的圖。系統(tǒng)10包括處理器單元15,浮點單元(FPU)20,存儲器控制器集線器(MCH)25,主存儲器30,輸入/輸出控制器集線器(ICH)40,互連45,海量存儲設(shè)備50,及輸入/輸出(I/O)設(shè)備471到47k。
處理器單元15表示任何類型體系結(jié)構(gòu)的中央處理單元,諸如使用超線程、安全、網(wǎng)絡(luò)、數(shù)字媒體技術(shù)的處理器、單核心處理器、多核心處理器、嵌入處理器、移動處理器、微控制器、數(shù)字信號處理器、超標(biāo)量計算機、矢量處理器、單指令多數(shù)據(jù)(SIMD)計算機、復(fù)雜指令集計算機(CISC)、精簡指令集計算機(RISC)、超長指令字(VLIW)或混合結(jié)構(gòu)。
FPU20是為矢量處理執(zhí)行浮點運算的協(xié)處理器。它可具有與處理器單元15的直接接口,并可與處理器單元15共享系統(tǒng)資源,諸如存儲空間。處理器單元15和FPU20可交換指令和數(shù)據(jù),包括矢量數(shù)據(jù)及FP指令。FPU20也可看作占有處理器單元15的地址空間的輸入/輸出(I/O)處理器。它也可連接到MCH25而不是直接連接到處理器單元15。它使用具有用于高效矢量處理的多個FP流水線的高度可擴展體系結(jié)構(gòu)。
MCH25提供諸如主存儲器30和ICH40的存儲器和輸入/輸出設(shè)備的控制和配置。MCH25可集成到芯片組,該芯片組集成了諸如圖形、媒體、孤立執(zhí)行模式、主到外圍總線接口、存儲器控制、電源管理等多個功能。MCH25或MCH25里的存儲控制功能可集成在處理器單元15里。在一些實施例里,不管存儲器控制器是在處理器單元15的內(nèi)部還是外部,都可為處理器單元15的所有核心或處理器工作。在其它實施例里,存儲器控制器可以包括可分別為處理器單元15里的不同核心或處理器工作的不同部件。
主存儲器30存儲系統(tǒng)代碼和數(shù)據(jù)。所述主存儲器30通??捎蓜討B(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)或包括不需要刷新的存儲器的任何其它存儲器類型來實現(xiàn)。所述主存儲器30可由處理器單元15訪問或由處理器單元15和FPU20訪問。
ICH40具有設(shè)計為支持I/O功能的多個功能??蓪⑺鯥CH40與MCH20一起集成到芯片組或與MCH20分離地執(zhí)行I/O功能。ICH40可包括多個接口和I/O功能,如外設(shè)部件互連(PCI)總線接口、處理器接口、中斷控制器、直接存儲器存取(DMA)控制器、電源管理邏輯、計時器、系統(tǒng)管理總線(SMBus)、通用串行總線(USB)接口、海量存儲器接口、低管腳數(shù)(LPC)接口等。
互連45提供與外部設(shè)備的接口。互連45可是點對點或連接到多個設(shè)備。為清楚起見沒有示出所有的互連。可以預(yù)期的是,互連45可包括任何互連或總線如外設(shè)部件互連(PCI)、PCI快速、通用串行總線(USB)和直接媒體接口(DMI)等。
海量存儲設(shè)備50存儲存檔信息,諸如代碼、程序、文件、數(shù)據(jù)和應(yīng)用程序。所述海量存儲設(shè)備50可包括致密盤(CD)、只讀存儲器(ROM)52、數(shù)字化視頻/多用盤(DVD)53、軟盤驅(qū)動器54和硬盤驅(qū)動器56,及任何其它磁性或光學(xué)存儲設(shè)備。該海量存儲設(shè)備50提供讀取機器可訪問介質(zhì)的機制。I/O設(shè)備471到47k可包括任何I/O設(shè)備來執(zhí)行I/O功能。I/O設(shè)備471到47k的示例包括用于輸入設(shè)備(例如鍵盤,鼠標(biāo),跟蹤球,指向設(shè)備)、媒體卡(例如音頻、視頻、圖形)、網(wǎng)卡的控制器,及任何其它外設(shè)控制器。
圖1B是可實現(xiàn)本發(fā)明一個實施例的圖形系統(tǒng)60的圖。圖形系統(tǒng)60包括圖形控制器65、浮點單元(FPU)70、存儲器控制器75、存儲器80、像素處理器85、顯示處理器90、數(shù)模轉(zhuǎn)換器(DAC)95和顯示監(jiān)視器。
圖形控制器65是任何具有用于執(zhí)行圖形操作的圖形能力的處理器,所述圖形操作例如是快速線條繪制、二維(2-D)和三維(3-D)圖形著色功能、明暗處理、反鋸齒、多邊形著色、透明效果、色彩空間轉(zhuǎn)換、α混合、色度調(diào)節(jié)等。FPU70基本上與圖1A示出的FPU20相類似。它對圖形數(shù)據(jù)執(zhí)行浮點運算。FPU70可從FP圖形控制器65接收FP指令和FP矢量輸入并向圖形控制器65返回FP結(jié)果。存儲器控制器75執(zhí)行與圖1A里的MCH25相類似的存儲器控制功能。存儲器80包括SRAM或DRAM存儲設(shè)備來存儲器由圖形控制器60和FPU70處理的指令和圖形數(shù)據(jù)。
像素處理器85是專門的圖形引擎,可執(zhí)行特定和復(fù)雜的圖形功能,諸如幾何計算、仿射變換、模型視圖投影、3-D剪輯等。像素處理器85也可連接到存儲器控制器70來訪問存儲器80和/或圖形控制器65。顯示處理器90處理圖形數(shù)據(jù)的顯示并執(zhí)行與顯示有關(guān)的功能,如調(diào)色板表查找、同步、逆光控制器、視頻處理等。DAC95將數(shù)字顯示數(shù)字數(shù)據(jù)轉(zhuǎn)換成模擬視頻信號到顯示監(jiān)視器97。顯示監(jiān)視器97是任何可在屏幕上顯示圖形信息以觀看的顯示監(jiān)視器。顯示監(jiān)視器可是陰極射線管(CRT)監(jiān)視器、電視(TV)設(shè)備、液晶顯示屏(LCD)、平板或數(shù)字CRT。
圖2是示例說明根據(jù)本發(fā)明一個實施例的FPU20/70的圖。FPU20/70包括輸入隊列210、矢量輸入選擇器220、調(diào)度器230、FP部件240、仲裁器和組裝單元240及輸出部件260。
輸入隊列210從處理器單元15(圖1)、圖形控制器60(圖2)或存儲矢量輸入的數(shù)據(jù)存儲器獲取或存儲將被處理的矢量輸入。每個矢量輸入包括FP指令和與該指令關(guān)聯(lián)的矢量數(shù)據(jù)。所述FP指令可是任何FP運算,諸如FP加法、FP減法、FP乘法、FP除法、FP三角函數(shù)等。所述矢量數(shù)據(jù)可包括多個標(biāo)量分量。矢量寬度可是任何寬度(例如64位、128位)。輸入隊列210可由具有合適深度和寬度的先進先出(FIFO)存儲器實現(xiàn),或者是平面的,實際上同時顯露所有條目,或者是它們的組合。在其它實施例里,輸入隊列210可以是沒有順序限制的緩沖存儲器。
矢量輸入選擇器220從輸入隊列210選擇矢量輸入來發(fā)送到調(diào)度器230。它包括K個多路復(fù)用器2251到225k。每個多路復(fù)用器具有連接到輸入隊列210的一個或多個輸出的多個輸入。矢量輸入的選擇可基于合適的準則。
調(diào)度器230接收由矢量輸入選擇器220選擇的矢量輸入,并依據(jù)FP指令、FP部件240的可用性和該實現(xiàn)方式特定的可選其它準則將包含在所述矢量輸入內(nèi)的浮點運算分派到FP部件240以進行處理。調(diào)度器230將唯一標(biāo)識符(ID)或序列號分配給每個矢量輸入,并將所述矢量輸入的唯一ID轉(zhuǎn)發(fā)到仲裁器和組裝單元250,并將分派給FP部件240的每個運算和此ID包括在一起。
FP部件240根據(jù)FP指令對分派的矢量輸入執(zhí)行FP運算。FP部件240可包括并行并且相互獨立運行的P個FP流水線2451到245P。數(shù)字P可是任何適用于應(yīng)用程序的數(shù)。P個FP流水線2451到245P可以相同也可以不同。它們包括設(shè)計用來執(zhí)行特定FP運算的獨立的FP流水線,諸如FP加法器、FP減法器、FP除法器、FP乘法器、FP復(fù)雜數(shù)學(xué)運算函數(shù)(例如三角函數(shù))等。所述P個FP流水線2451到245P可具有導(dǎo)致相同或不同等待時間的相同或不同深度。調(diào)度器230根據(jù)與所述矢量輸入相關(guān)聯(lián)的FP指令及所述FP流水線是否是可用或者空閑,將運算分派給P個FP流水線2451到245P的一個。P個FP流水線2451到245P的每一個產(chǎn)生狀態(tài)信號給調(diào)度器230,以表明該FP流水線是否能夠接收額外的FP運算或是否不可用。如果FP流水線不可用,并且所述FP指令需要使用該流水線,則所述調(diào)度器230將相應(yīng)的矢量輸入保持在等待隊列里直到所述FP流水線或另一個合適的FP流水線可用為止。P個FP流水線2451到245P的每一個在輸出端產(chǎn)生FP結(jié)果。
仲裁器和組裝單元250將FP結(jié)果從FP部件240寫入到輸出部件260。仲裁器和組裝單元250在FP部件240的輸出端有多個FP結(jié)果可用的時候,仲裁輸出部件的使用。當(dāng)FP結(jié)果之間有一個優(yōu)勝者時,仲裁器和組裝單元250將所述FP結(jié)果寫入輸出部件的分配在合適位置上的輸出緩沖器。實際上,仲裁器和組裝單元250在矢量輸入的所有標(biāo)量分量處理完畢之后,為每個結(jié)果矢量組裝所述FP結(jié)果。
輸出部件260存儲由仲裁器和組裝單元250寫入的FP結(jié)果。所述FP結(jié)果可被清空、讀取或由另一單元如處理器單元15、圖形控制器60或任何其它進一步處理的消費實體使用。輸出部件260包括Q個輸出緩沖器2651到265Q。每個輸出緩沖器具有足夠的存儲容量來存儲結(jié)果矢量。輸出緩沖器可實現(xiàn)為寄存器或存儲器。Q個輸出緩沖器2651到265Q的每一個具有狀態(tài)信號來表明它是否獲得了矢量結(jié)果的所有標(biāo)量分量,及它的內(nèi)容是否已被清空、讀取或被系統(tǒng)里的其它消費實體使用。仲裁器和組裝單元250監(jiān)視這些狀態(tài)信號,以確定輸出緩沖器是否可用或空閑以用于寫入。
圖3是根據(jù)本發(fā)明一個實施例示例說明圖2示出的調(diào)度器230的圖。調(diào)度器230包括ID產(chǎn)生器310、矢量分解器320和分派器330。
所述ID產(chǎn)生器310為調(diào)度要加以分派的矢量輸入產(chǎn)生唯一ID。所述唯一ID可根據(jù)矢量輸入到達輸入隊列210的順序或由矢量輸入選擇器220選擇的順序來順序地或遞增地產(chǎn)生。所述ID可以在零到K內(nèi),其中K大于可以包含在圖2示出的P個FP流水線2451到245P中的唯一矢量指令的個數(shù)。唯一ID與標(biāo)量分量一起被分派到FP部件240的FP流水線,并通過相關(guān)聯(lián)的FP流水線與FP結(jié)果一起傳送到該FP流水線的輸出端。也可由仲裁器和組裝單元250使用來將FP結(jié)果分配到輸出緩沖器并將屬于相同ID的所有FP結(jié)果組裝到輸出部件260里分配的輸出緩沖器。
矢量分解器320將矢量輸入分解成多個標(biāo)量分量。每個標(biāo)量分量具有表明其在關(guān)聯(lián)的輸入矢量中的位置的標(biāo)量位置標(biāo)記。矢量分解器320將分解的標(biāo)量分量及其的位置標(biāo)記轉(zhuǎn)送到分派器330。
分派器330接收FP部件240里的FP流水線2451到245P的狀態(tài)信號,以確定它們的可用性并將標(biāo)量分量發(fā)送給FP部件240中可用的FP流水線。分派器330也將矢量輸入的ID和位置標(biāo)記及該矢量輸入的標(biāo)量分量發(fā)送給仲裁器和組裝單元250。
圖4是根據(jù)本發(fā)明一個實施例示例說明圖2示出的FP流水線245K的圖。所述FP流水線245K包括選擇器410和流水線(PL)單元420。
選擇器410選擇從調(diào)度器230發(fā)送的標(biāo)量分量及在PL單元420的輸出端的FP結(jié)果。當(dāng)FP結(jié)果的ID與仲裁器和組裝單元250分配的ID不匹配時,重新循環(huán)該FP結(jié)果。所述重新循環(huán)的FP結(jié)果被標(biāo)上空操作標(biāo)記,以致于使得它可通過PL單元無修改地傳播,由此保持了其值。選擇器410可實現(xiàn)為在PL單元420的輸入端的多路復(fù)用器。
PL單元420對標(biāo)量分量執(zhí)行浮點運算。它具有M個PL級4251到425M。深度M可以是任何適合于可擴展性和/或吞吐量需求的深度。PL單元420在輸出端產(chǎn)生FP PL結(jié)果到仲裁器和組裝單元250。此外,所述標(biāo)量分量所屬于的矢量輸入的ID及在該矢量內(nèi)部的位置標(biāo)記也沿著M個PL級4251到425M傳播。將這個FP PL ID與仲裁器和組裝單元250分配的ID進行匹配以確定所關(guān)聯(lián)的FP PL結(jié)果是否可寫入輸出緩沖器,或是否需要重新循環(huán)回選擇器410。如果該運算未完成,諸如為計算目的需要額外通過,或完成了運算但沒有匹配,則重新循環(huán)所述FP PL結(jié)果以等待輸出緩沖器變得可用。如果運算完成并且匹配,則利用對應(yīng)的位置標(biāo)記將所述FP PL結(jié)果寫入所分配的輸出緩沖器的合適位置。PL單元420也產(chǎn)生狀態(tài)信號到調(diào)度器230以表明該PL單元是繁忙還是可用于處理標(biāo)量分量。
圖5是示例說明根據(jù)本發(fā)明一個實施例的仲裁器和組裝單元250的圖。仲裁器和組裝單元250包括ID隊列510、仲裁器520、匹配電路530和組裝器540。
所述ID隊列510存儲從調(diào)度器230發(fā)送的ID。該ID隊列可由FIFO或任何其它合適的存儲機制來實現(xiàn)。它的深度取決于并行FP流水線的數(shù)量P、可擴展性和/或吞吐量需要。此外,可以讓多個ID為仲裁器520所用。
仲裁器520從ID隊列510接收ID,并從輸出部件260接收狀態(tài)信號。該狀態(tài)信號由輸出緩沖器提供以表明該輸出緩沖器是否可用。如果輸出部件260中的輸出緩沖器可用,貝仲裁器520將ID分配給這個輸出緩沖器。仲裁器520可利用循環(huán)復(fù)用、先進先出或任何其它合適的分配模式來將ID分配給輸出緩沖器。一旦輸出緩沖器被分配了ID,其使用該分配的ID直到所有的標(biāo)量分量都被寫入到該輸出緩沖器為止。然后仲裁器520將所有分配的ID傳送到匹配電路530。通過在仲裁器520中推遲緩沖器分配可改進死鎖阻止,導(dǎo)致高的流水線利用率。
匹配電路530將與在輸出部件260里的FP流水線2451到245P的輸出端的FP PL結(jié)果相關(guān)的ID與分配的ID進行匹配。如果存在任何匹配,則匹配電路530將匹配結(jié)果發(fā)送到組裝器530。對于沒有匹配的任何FP PL ID,對應(yīng)的FP流水線將它的FP PL結(jié)果重新循環(huán)到它的輸入端。匹配電路530可將FP PL ID與單個分配的ID或多個分配的ID進行匹配。由于匹配多個分配的ID能夠使與較短等待時間流水線相關(guān)的指令通過長等待時間流水線相關(guān)的指令,因此匹配多個分配的ID可提供更高的吞吐量。匹配電路530可通過多個并行執(zhí)行比較的比較器來實現(xiàn)。比較器可用L個異或門構(gòu)成來執(zhí)行逐位比較,后面連接了一個L個輸入的或門,其中L是ID的字大小,或用等價的邏輯電路來構(gòu)成。
組裝器540接收匹配電路530的結(jié)果、從調(diào)度器230接收位置標(biāo)記及從FP部件240接收FP PL結(jié)果。它將具有與分配的ID相匹配的ID的FP結(jié)果寫入到輸出緩沖器里通過對應(yīng)標(biāo)量位置標(biāo)記指示的位置。
圖6是根據(jù)本發(fā)明一個實施例示例說明為矢量處理執(zhí)行FP運算的過程600的流程圖。
在開始之后,過程600獲得矢量輸入(塊610)。每個矢量輸入具有N個標(biāo)量分量。然后,過程600根據(jù)FP指令和FP流水線的可用性將矢量輸入分派給所述FP流水線(塊620)。接著,過程600通過對矢量輸入執(zhí)行FP運算產(chǎn)生FP結(jié)果(塊630)。然后,過程600仲裁輸出部件的使用并將所述FP結(jié)果組裝到輸出部件(塊640),然后結(jié)束。
圖7是根據(jù)本發(fā)明一個實施例示例說明圖6示出的分派矢量輸入的過程620的流程圖。
在開始之后,過程620為矢量輸入產(chǎn)生ID(塊710)。所述ID對每個矢量輸入是唯一的。然后過程620將所述ID傳送到仲裁器和組裝單元(塊720)。接著,過程620將所述矢量輸入分解成標(biāo)量分量,并將每個標(biāo)量分量與一個標(biāo)量位置標(biāo)記關(guān)聯(lián)以表明該標(biāo)量分量在矢量輸入里的位置(塊730)。然后,過程620確定用于標(biāo)量分量的FP流水線是否可用(塊740)。如果不可用,則過程620返回到塊740以等待可用的FP流水線。否則過程620將該標(biāo)量分量、ID和位置標(biāo)記發(fā)送到可用的FP流水線(塊750)。
然后,過程620確定是否還有針對這個矢量的標(biāo)量分量(塊760)。如果還有,則過程620返回塊740以繼續(xù)等待可用的FP流水線。否則結(jié)束過程620。
圖8是根據(jù)本發(fā)明一個實施例示例說明圖6示出的仲裁和裝配的過程640的流程圖。
在開始之后,過程640確定輸出緩沖器是否可用(塊810)。如果不可用則結(jié)束過程640。否則,過程640將來自ID隊列的ID分配到可用的輸出緩沖器(塊820)??衫醚h(huán)復(fù)用、先進先出和任何其它合適的分配原則來實施該分配。然后,過程640確定在FP流水線的輸出端的已完成操作的FP ID是否與分配的ID相匹配(塊830)。如果不匹配,則過程640返回到塊830以繼續(xù)檢查。由于FP流水線彼此獨立和并行地運行,最終將會有一個與分配的ID相匹配的FP ID。如果存在匹配,那么過程640將該FP結(jié)果與匹配的ID一起寫入輸出緩沖器中由與該FP結(jié)果關(guān)聯(lián)的位置標(biāo)記指示的位置(塊840)。
然后,過程640確定在輸出緩沖器里的該矢量是否已完成(塊850)。當(dāng)該輸出緩沖器里的矢量的所有標(biāo)量分量都被寫入所述輸出緩沖器時,該輸出緩沖器里的矢量已經(jīng)完成。如果沒有完成,則過程640返回塊830以檢查后來的匹配。否則,過程640將所述輸出緩沖器標(biāo)記為完成并將結(jié)果數(shù)據(jù)位就緒的信息通知給消費實體(塊860)。消費實體可以是圖1A和圖1B示出的處理器15或圖形控制器65。然后,過程640確定結(jié)果數(shù)據(jù)是否已經(jīng)被消費實體使用(塊70)。如果沒有,則過程640返回塊870以繼續(xù)檢查。否則,過程640將可用狀態(tài)發(fā)送到仲裁器單元以表明所述輸出緩沖器現(xiàn)在可用來接收新的結(jié)果數(shù)據(jù)(塊880)。過程640然后結(jié)束并在所述輸出緩沖器被清空之后,將可用狀態(tài)發(fā)送給仲裁器和組裝單元(塊860),然后結(jié)束。
雖然已經(jīng)根據(jù)幾個實施例描述了本發(fā)明,本領(lǐng)域的普通技術(shù)人員將認識到本發(fā)明并不限于所描述的實施例,而是可以通過在所附權(quán)利要求的精神和范圍里修改和變化來實現(xiàn)。因此說明書只是用來示例說明而不是限制。
權(quán)利要求
1.一種設(shè)備,包括輸入隊列,用于捕獲多個矢量輸入;耦合到所述輸入隊列的調(diào)度器,用于分派所述矢量輸入中的運算;耦合到所述調(diào)度器的多個浮點(FP)流水線,用于根據(jù)對所述調(diào)度器分配的矢量輸入的標(biāo)量分量的運算來產(chǎn)生FP結(jié)果;及耦合到所述多個FP流水線的仲裁器和組裝單元,用于仲裁輸出部件的使用和組裝所述FP結(jié)果以寫入到所述輸出部件。
2.如權(quán)利要求1所述的設(shè)備,其中所述調(diào)度器包括標(biāo)識符產(chǎn)生器,用于為多個矢量輸入里的矢量輸入產(chǎn)生標(biāo)識(ID);用于將所述矢量輸入分解成標(biāo)量分量的矢量分解器,其中每個標(biāo)量分量具有表明該標(biāo)量分量在關(guān)聯(lián)的輸入矢量里的位置的位置標(biāo)記;及耦合到所述標(biāo)識符和所述矢量分解器的分派器,用于將標(biāo)量分量和位置標(biāo)記發(fā)送到FP流水線,所述分派器將所述ID轉(zhuǎn)發(fā)到仲裁器和組裝單元。
3.如權(quán)利要求2所述的設(shè)備,其中所述仲裁器和組裝單元包括仲裁器,用于將所述ID分配到輸出部件里的輸出緩沖器;匹配電路,用于將所述FP結(jié)果的ID和分配的ID相匹配;及組裝器,用于將具有與分配的ID相匹配的ID的FP結(jié)果寫入輸出緩沖器里由標(biāo)量位置標(biāo)記指示的位置。
4.如權(quán)利要求3所述的設(shè)備,其中每個FP流水線包括輸入選擇器,用于選擇從調(diào)度器發(fā)送的標(biāo)量分量之一和在需要額外通過或當(dāng)所述ID與分配的ID不匹配時被重新循環(huán)的FP結(jié)果。
5.如權(quán)利要求3所述的設(shè)備,其中所述仲裁器和組裝單元還包括ID隊列,用于存儲從調(diào)度器分派的ID。
6.如權(quán)利要求5所述的設(shè)備,其中所述仲裁器根據(jù)循環(huán)復(fù)用和先進先出模式中的一個分配來自ID隊列的ID。
7.如權(quán)利要求3所述的設(shè)備,其中所述仲裁器將ID分配到可用的輸出緩沖器。
8.一種方法,包括把多個矢量輸入捕獲到輸入隊列里;利用調(diào)度器來分派矢量輸入中的運算;利用多個浮點(FP)流水線,根據(jù)對調(diào)度器分派的矢量輸入的標(biāo)量分量的運算來產(chǎn)生FP結(jié)果;利用仲裁器和組裝單元來仲裁存儲所述FP結(jié)果的輸出部件的使用;將所述FP結(jié)果組裝到輸出部件。
9.如權(quán)利要求8所述的方法,其中所述分派步驟包括為多個矢量輸入中的矢量輸入產(chǎn)生標(biāo)識(ID);將所述矢量輸入分解成標(biāo)量分量,其中每個標(biāo)量分量具有表明該標(biāo)量分量在關(guān)聯(lián)的輸入矢量里的位置的位置標(biāo)記;及將標(biāo)量分量和位置標(biāo)記發(fā)送到FP流水線;及將所述ID轉(zhuǎn)發(fā)到仲裁器和組裝單元。
10.如權(quán)利要求9所述的方法,其中所述仲裁器和組裝單元包括將ID分配到輸出部件里的輸出緩沖器;將FP結(jié)果的ID和分配的ID進行匹配;及將具有與分配的ID相匹配的ID的FP結(jié)果寫入輸出緩沖器里由標(biāo)量位置標(biāo)記指示的位置。
11.如權(quán)利要求10所述的方法,還包括選擇從調(diào)度器發(fā)送的標(biāo)量分量之一和在需要額外通過或當(dāng)所述ID與分配給多個FP流水線之一的ID不匹配時被重新循環(huán)的FP結(jié)果。
12.如權(quán)利要求10所述的方法,其中所述仲裁步驟包括將從調(diào)度器分派的ID存儲到ID隊列里。
13.如權(quán)利要求12所述的方法,其中仲裁包括根據(jù)循環(huán)復(fù)用和先進先出模式中的一個來分配來自ID隊列的ID。
14.如權(quán)利要求10所述的方法,其中仲裁包括將ID分配給可用的輸出緩沖器。
15.一種系統(tǒng),包括用于處理圖形數(shù)據(jù)的圖形控制器;存儲器,耦合到所述圖形控制器以存儲所述圖形數(shù)據(jù);浮點單元(FPU),耦合到所述圖形控制器用于對所述圖形數(shù)據(jù)執(zhí)行浮點運算,所述FPU包括用于捕獲多個矢量輸入的輸入隊列,耦合到所述輸入隊列的調(diào)度器,用于分派矢量輸入里的運算,耦合到所述調(diào)度器的多個浮點(FP)流水線,用于根據(jù)對調(diào)度器分派的矢量輸入的標(biāo)量分量的運算產(chǎn)生FP結(jié)果,及耦合到所述多個FP流水線的仲裁器和組裝單元,用于仲裁輸出部件的使用和組裝所述FP結(jié)果以寫入所述輸出部件。
16.如權(quán)利要求15所述的系統(tǒng),其中所述調(diào)度器包括標(biāo)識符產(chǎn)生器,用于為多個矢量輸入里的矢量輸入產(chǎn)生標(biāo)識(ID);用于將所述矢量輸入分解成標(biāo)量分量的矢量分解器,其中每個標(biāo)量分量具有表明該標(biāo)量分量在關(guān)聯(lián)的輸入矢量里的位置的位置標(biāo)記;及耦合到所述標(biāo)識符產(chǎn)生器和所述矢量分解器的分派器,用于將標(biāo)量分量和位置標(biāo)記發(fā)送到FP流水線,所述分派器將所述ID轉(zhuǎn)發(fā)到仲裁器和組裝單元。
17.如權(quán)利要求16所述的系統(tǒng),其中所述仲裁器和組裝單元包括仲裁器,用于將ID分配到輸出部件里的輸出緩沖器;匹配電路,用于將FP結(jié)果的ID和分配的ID進行匹配;及組裝器,用于將具有與分配的ID相匹配的ID的FP結(jié)果寫入輸出緩沖器里由標(biāo)量位置標(biāo)記指示的位置。
18.如權(quán)利要求17所述的系統(tǒng),其中每個FP流水線包括輸入選擇器,用于選擇從調(diào)度器發(fā)送的標(biāo)量分量之一和在需要額外通過或當(dāng)所述ID與分配的ID不匹配時被重新循環(huán)的FP結(jié)果。
19.如權(quán)利17所述的系統(tǒng),其中仲裁器和組裝單元還包括ID隊列,用于存儲從所述調(diào)度器分派的ID。
20.如權(quán)利要求19所述的系統(tǒng),其中所述仲裁根據(jù)循環(huán)復(fù)用和先進先出模式中的一個來分配來自ID隊列的ID。
全文摘要
本發(fā)明涉及一種為矢量處理執(zhí)行浮點運算的技術(shù)。輸入隊列捕獲多個矢量輸入。調(diào)度器分配所述矢量輸入。多個浮點(FP)流水線根據(jù)對所述調(diào)度器分配的矢量輸入的標(biāo)量分量的運算來產(chǎn)生FP結(jié)果。仲裁器和組裝單元仲裁輸出部件的使用并組裝所述FP結(jié)果以寫入所述輸出部件。
文檔編號G06T1/20GK1983164SQ20061006392
公開日2007年6月20日 申請日期2006年9月27日 優(yōu)先權(quán)日2005年9月28日
發(fā)明者D·多諾夫里奧, M·德懷爾 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1