国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在計算機系統(tǒng)中延遲命令發(fā)出的方法和系統(tǒng)的制作方法

      文檔序號:6561973閱讀:276來源:國知局
      專利名稱:在計算機系統(tǒng)中延遲命令發(fā)出的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明總的涉及計算機的中央處理單元(CPU)與外圍處理單元之間的同步,具體涉及命令發(fā)出的定時。
      背景技術(shù)
      在現(xiàn)代計算機系統(tǒng)中,每個外圍功能模塊(如音頻或視頻)具有它自己的專用處理子系統(tǒng),并且這些子系統(tǒng)的操作典型地要求計算機的中央處理單元(CPU)的直接控制。此外,子系統(tǒng)的部件之間的通信與同步典型地是通過硬件連接實現(xiàn)的。例如,在具有兩個或更多圖形處理單元(GPU)的高級圖形處理子系統(tǒng)中,CPU不得不頻繁地評估GPU的狀態(tài),并且只有當前一或當前命令結(jié)束時,才能發(fā)出下一提供的(rendering)命令。在其他情況下,當CPU在使用多線程技術(shù)為GPU進行某些計算時,GPU在執(zhí)行需要來自CPU的結(jié)果的命令之前,可能不得不等待CPU完成計算。當一個GPU向另一GPU請求數(shù)據(jù)時,必須在CPU的控制下通過直接硬件連接或總線進行傳輸,于是CPU在執(zhí)行后繼命令之前,不得不等待數(shù)據(jù)傳輸完成。不管是CPU等待GPU還是反過來,等待時間都是一種浪費,并且降低了計算機的整體性能。
      因此,期望計算機系統(tǒng)能夠盡可能地將硬等待與CPU的操作分開。

      發(fā)明內(nèi)容
      考慮到上述情況,本發(fā)明提供一種方法和系統(tǒng)來移除CPU的一些等待時間、以及外圍處理單元的一些空閑時間。換句話說,它增加處理器之間的并行度。
      公開一種在具有多個外圍處理器的計算機系統(tǒng)中使用延遲命令發(fā)出的方法和系統(tǒng),所述多個外圍處理器與嵌入一個或多個中央處理器中的外圍設備驅(qū)動程序進行操作。在外圍設備驅(qū)動程序發(fā)出具有第一事件標記的第一命令之后,外圍設備驅(qū)動程序在發(fā)出第一命令之后,生成用于第一外圍處理器的第二命令。如果第一和第二命令需要被同步,則存儲第二命令,等待返回第一事件標記,并且當返回第一事件標記時,發(fā)出第二命令。
      然而,當下面結(jié)合附圖閱讀特定實施例的描述時,本發(fā)明操作的結(jié)構(gòu)和方法、以及其額外目的和優(yōu)點將會得到最好地理解。


      圖1是傳統(tǒng)計算機系統(tǒng)的部分的框圖。
      圖2是根據(jù)本發(fā)明一個實施例的計算機系統(tǒng)的部分的框圖。
      圖3示出根據(jù)本發(fā)明一個實施例的命令和事件標記流。
      圖4A是示出根據(jù)本發(fā)明一個實施例的命令塊生成和同步機制的流程圖。
      圖4B、4C是示出根據(jù)本發(fā)明一個實施例的每個命令塊執(zhí)行中的三個不同的驅(qū)動子程序的流程圖。
      圖5A和5B是示出根據(jù)本發(fā)明一個實施例的延時命令發(fā)出的省時效果的命令時序圖。
      具體實施例方式
      圖1示出傳統(tǒng)計算機系統(tǒng)100的部分。在該系統(tǒng)中,外圍設備驅(qū)動程序110僅僅是程序,功能在本質(zhì)上類似使用說明,其為操作系統(tǒng)提供關(guān)于如何控制和與外圍子系統(tǒng)140的專用處理器120和130通信的信息的指令。驅(qū)動程序110沒有任何由一個或多個中央處理器(CPU)150替代執(zhí)行的控制功能。通過硬件連接160或者通過總線170,進行專用處理器120與130之間的通信。
      作為本發(fā)明的實施例,圖2示出多處理器計算機系統(tǒng)200的部分,它具有嵌入一個或多個中央處理器220中的驅(qū)動程序210。這里,“嵌入”的意思是驅(qū)動程序?qū)嶋H上運行在CPU中,并且使用了一些CPU處理能力,從而驅(qū)動程序可以產(chǎn)生存儲在緩存中的命令,當需要與其他命令同步時分配事件標記,發(fā)出命令并且監(jiān)視事件標記的返回,而完全沒有CPU硬等待。這樣的驅(qū)動程序?qū)崿F(xiàn)不需要大規(guī)模的硬件支持,因此它也是節(jié)省成本的。
      計算機系統(tǒng)200還采用命令緩存器230,后者存儲驅(qū)動程序210發(fā)送的即時命令。命令緩存器230可以僅僅是主存儲器290中的存儲空間,或者是位于任何地方的另一存儲器,并且可以由驅(qū)動程序210動態(tài)地分配。利用中央處理器220的處理能力,驅(qū)動程序210指揮將命令緩存到命令緩存器230中和以后從命令緩存器230中發(fā)出命令,以及指揮專用處理器240和250與中央處理器220之間的同步。專用處理器可以是專用于圖形操作的處理器,稱為圖形處理單元(CPU)。
      圖3是示出根據(jù)本發(fā)明一個實施例的CPU、緩存器與專用處理器之間的命令流的圖。為了說明的目的,提供了更多關(guān)于命令緩存的細節(jié)。嵌入的驅(qū)動程序320連同事件標記一起生成命令,然后將其有選擇地發(fā)送到命令緩存器330和340。專用處理器1350的命令和事件標記被送到命令緩存器1330,而專用處理器2360的命令和事件標記被送到命令緩存2340,從而可以獨立和同時發(fā)出不同專用處理器的命令。當當前命令需要與另一命令執(zhí)行同步時,驅(qū)動程序320伴隨著當前命令生成事件標記。處理器,不管是外圍專用處理器350和360、還是中央處理器300,都執(zhí)行它們相應的命令,并且在執(zhí)行完成后返回事件標記(如果有的話)。它們之間存在通過通信建立的多種控制機制。例如,中央處理器300可以在其操作中控制這兩個緩存器。
      圖4A展示了圖形驅(qū)動程序320如何與GPU和CPU同步命令發(fā)出的詳細流程圖。這里,驅(qū)動程序320在步驟410A到470A中連續(xù)生成命令塊而沒有在CPU側(cè)的任何延遲。這些命令中的一些在被送到GPU執(zhí)行之前,要被存儲在命令緩存器中。例如,命令塊[n-1]410A具有到第一GPU的、請求返回事件標記[i]的命令。第一GPU將在命令塊[n-1]410A完成后返回事件標記[i]。在檢測到事件標記[i]后,驅(qū)動程序320于是可以從命令緩存器中發(fā)出需要與命令塊[n-1]410A同步的另一命令。這樣,消除了CPU對同步事件的硬等待。術(shù)語“延遲命令發(fā)出”泛指該命令緩存過程。
      圖4A還示出需要與另一CPU線程同步的命令塊[n+m]440A以及需要與第二GPU同步的命令塊[n+m+k]470A。在這兩種情況中,驅(qū)動程序320的存儲命令、檢查事件標記和發(fā)出命令的操作與上面第一GPU情況中的相同。
      在每個命令塊中,驅(qū)動程序320執(zhí)行特定子程序,如生成新命令和相關(guān)事件標記(如果需要的話),檢查返回的事件標記,緩存新命令,以及發(fā)出緩存的命令,或者如果沒有待決的事件標記的話直接發(fā)出新命令。這些子程序可以以各種順序執(zhí)行。圖4B、4C和4D是執(zhí)行這些子程序的三個例子。
      參照圖3和圖4B,驅(qū)動程序320首先在步驟410B中生成當前命令,然后在步驟420B中檢查任何返回的事件標記。如果存在返回的事件標記,并且如果相關(guān)的命令在緩存器中,則驅(qū)動程序320將緩存的命令與其自己的事件標記(如果有的話)一同發(fā)出,如步驟430B和440B中所示。這里,“相關(guān)”的意思是指在緩存的命令與向緩存器返回事件標記的前一命令之間存在同步需要。如果相關(guān)命令不在緩存器中,則驅(qū)動程序320在步驟450B中檢查當前命令是否與返回的事件標記相關(guān)。如果是的話,則它發(fā)出當前命令(步驟470B),否則,它緩存當前命令(步驟480B)。
      另一方面,如果緩存器中不存在返回的事件標記,則驅(qū)動程序320在步驟460B中檢查任何待決事件標記。在存在當前命令發(fā)出將依賴或相關(guān)的待決事件標記的情況下,則驅(qū)動程序320緩存當前命令(步驟480B)。在不存在待決相關(guān)事件標記的情況下,驅(qū)動程序320直接發(fā)出當前命令。要注意,在所有命令緩存或發(fā)出的情況中,相關(guān)的事件標記(如果存在的話)也連同命令一起被緩存或發(fā)出。
      圖4C示出根據(jù)本發(fā)明另一實施例的另一子程序,其中驅(qū)動程序320首先在步驟410C中檢查任何返回的事件標記。如果存在返回的事件標記,并且如果相關(guān)的命令在緩存器中,則驅(qū)動程序320發(fā)出緩存的命令(步驟430C)。如果不存在返回的事件標記(步驟410C),或者緩存器中不存在相關(guān)命令(步驟420C),則驅(qū)動程序320生成當前命令(步驟445C)。如果當前命令與任何返回的事件標記相關(guān)(步驟450C),則驅(qū)動程序發(fā)出當前命令(步驟480C)。如果當前命令不與任何返回的事件標記相關(guān),則它還檢查是否存在任何與當前命令相關(guān)的待決事件標記(步驟460C)。在存在待決的相關(guān)事件標記的情況下,驅(qū)動程序320將當前命令與其事件標記(如果有的話)一同緩存(步驟470C),否則驅(qū)動程序320發(fā)出當前命令與其事件標記(如果存在的話)(步驟480C)。上述事件標記檢查過程可以僅限于那些以前向其發(fā)送了命令與事件標記的處理器。
      在圖4B和4C所示的兩種情況下,作為替代,如果存在任何待決的事件標記,則總是緩存當前命令。如果驅(qū)動程序320只檢查事件標記緩存器,則在待決事件標記返回之前,驅(qū)動程序320事實上沒有辦法知道它是否與新生成的當前命令相關(guān)。因此如果存在任何待決的事件標記,那么需要緩存當前命令。
      圖5A和5B是示出減少CPU等待時間和GPU空閑時間的延遲命令發(fā)出的時序圖。圖5A顯示不采用延遲命令發(fā)出過程的情形。在這種情況下,CPU在時隙500A、510A和520A中分別生成用于第一GPU(或GPU1)在時隙550A、560A和570A中的命令。在時隙502A、512A和522A中生成的命令分別是用于第二GPU(或GPU2)在時隙552A、562A和572A中。由于沒有采用命令緩存過程,因此只有當當前GPU操作完成時才能生成和發(fā)出后繼命令。例如,時隙510A只能在時隙552A之后開始,類似地,時隙520A只能在時隙562A之后開始。在之前發(fā)出的命令被執(zhí)行期間,CPU不得不等待。如圖所示,兩個相鄰時隙之間的時間間隔為CPU等待時間或GPU空閑時間。例如,510A和502A之間的間隔是CPU的等待時間,而560A和550A之間的間隔是GPU1的空閑時間。
      與圖5A相對比,圖5B示出在采用延遲命令發(fā)出過程以允許CPU連續(xù)生成命令到命令緩存器、而不必等待任何GPU完成命令執(zhí)行的情形下的時序關(guān)系。在這種情況下,CPU在時隙500B、510B和520B中分別生成用于GPU1在時隙550B、560B和570B中的命令。在時隙502B、512B和522B中生成的命令分別是用于GPU2在時隙552B、562B和572B中。如圖所示,CPU命令生成時隙510B被上提到緊跟時隙502B的完成,而在GPU2時隙552B結(jié)束之前。但是在時隙520B的CPU的第五命令仍然等待時隙552B結(jié)束,這是因為該特定命令與GPU2執(zhí)行之間存在同步需要,在530B的命令和在562B的GPU2執(zhí)行也是如此。在這樣的命令處理系統(tǒng)中,尤其是對于采用這樣的延遲命令發(fā)出過程的圖形系統(tǒng),由于后繼命令已經(jīng)被生成并在命令緩存器中等待GPU執(zhí)行,因此獲得了好處。另一方面,GPU不需要等待CPU生成命令,并且可以在當前命令結(jié)束之后執(zhí)行下一命令。這在GPU2在時隙562B和572B的情況中進一步示出,其中GPU2沒有空閑時間?;谕瑯拥脑?,時隙570B和560B之間的GPU1空閑時間也減少。
      為了量化通過采用的延遲命令發(fā)出過程而節(jié)省的時間,如果假設CPU命令生成時間為‘t’,并且GPU1和GPU2的執(zhí)行時間分別為T1和T2(為了容易估計,假設T1<T2),如圖5A所示,不使用延遲命令發(fā)出的系統(tǒng)花費3*T2+3*t來完成三個命令周期。圖5B的具有延遲命令發(fā)出的系統(tǒng)將三周期的時間縮短到3*T2+t。因此,對于三個周期,節(jié)省的時間為2*t。一般地說,對于n個命令周期,節(jié)省(n-1)*t。
      圖5A與5B之間的比較還顯示出GPU空閑時間的節(jié)省。在圖5A中,時隙560A與570A之間的GPU1空閑時間為T2-T1+t,并且GPU2空閑時間為t。在圖5B中,對應時隙之間的GPU1空閑時間變?yōu)門2-T1,或者說節(jié)省了t。GPU2空閑時間完全被消除,也節(jié)省了t。
      本發(fā)明提供用于實現(xiàn)本發(fā)明不同特征的許多不同的實施例或例子。描述部件或方法的特定例子以幫助闡明本公開。它們當然僅僅是例子,而不是意圖將本公開限制于說明書所描述的內(nèi)容。
      本申請要求于2005年10月18日提交的名為“Smart CPU SyncTechnology for MultiGPU Solution”的美國專利申請No.60/727668的優(yōu)先權(quán)。
      權(quán)利要求
      1.一種在具有一個或多個專用處理器的計算機系統(tǒng)中延遲命令發(fā)出的方法,所述一個或多個專用處理器用運行在一個或多個中央處理器上的設備驅(qū)動程序進行操作,該方法包括外圍設備驅(qū)動程序發(fā)出第一命令與第一事件標記;外圍設備驅(qū)動程序在發(fā)出第一命令之后,生成用于第一外圍處理器的第二命令;存儲第二命令,等待返回第一事件標記;以及當返回第一事件標記時,發(fā)出第二命令。
      2.如權(quán)利要求1所述的方法,其中,所述存儲第二命令的步驟還包括將第二命令存儲在與第一處理器相關(guān)的緩存器中。
      3.如權(quán)利要求2所述的方法,還包括生成用于第二處理器的第三命令;以及將第三命令存儲在與其相關(guān)的緩存器中。
      4.如權(quán)利要求3所述的方法,其中,與第一和第二處理器相關(guān)的緩存器是不同的。
      5.如權(quán)利要求1所述的方法,還包括檢查生成的第二命令是否與第一命令相關(guān),要求在第二命令發(fā)出前返回第一事件標記。
      6.如權(quán)利要求5所述的方法,其中,所述檢查步驟還包括檢查第一事件標記是否已返回;以及如果還未返回第一事件標記,并且如果第一事件標記與第二命令相關(guān),則檢查第一事件標記是否是待決的。
      7.如權(quán)利要求6所述的方法,其中,所述檢查第一事件標記是否已返回的步驟是在如下兩個時間之一時執(zhí)行的生成第二命令之后;生成第二命令之前。
      8.一種在具有多個圖形處理器的計算機系統(tǒng)中延遲命令發(fā)出的方法,所述多個圖形處理器用嵌入多線程中央處理器中的圖形驅(qū)動程序進行操作,該方法包括圖形驅(qū)動程序發(fā)出第一命令與第一事件標記;圖形驅(qū)動程序在發(fā)出第一命令之后,生成用于計算機系統(tǒng)的第一處理器的第二命令;存儲第二命令,等待返回第一事件標記;以及當返回第一事件標記時,發(fā)出第二命令。
      9.如權(quán)利要求8所述的方法,其中,所述存儲第二命令的步驟還包括將第二命令存儲在與第一處理器相關(guān)的緩存器中。
      10.如權(quán)利要求9所述的方法,還包括生成到第二處理器的第三命令;以及將第三命令存儲在與其相關(guān)的緩存器中。
      11.如權(quán)利要求10所述的方法,其中,與第一和第二處理器相關(guān)的緩存器是不同的。
      12.如權(quán)利要求8所述的方法,還包括檢查生成的第二命令是否需要等待第一事件標記返回。
      13.如權(quán)利要求12所述的方法,其中,所述檢查步驟還包括檢查第一事件標記是否已返回;以及如果還未返回第一事件標記,則檢查第一事件標記是否是待決的。
      14.如權(quán)利要求13所述的方法,其中,所述檢查第一事件標記是否已返回的步驟是在如下兩個時間之一時執(zhí)行的生成第二命令之后;生成第二命令之前。
      15.一種在高級計算機系統(tǒng)中支持延遲命令發(fā)出的系統(tǒng),該系統(tǒng)包括多線程中央處理單元CPU;具有多個圖形處理單元的圖形子系統(tǒng);至少一個命令緩存器,用于存儲命令和相關(guān)事件標記;和嵌入CPU中的圖形驅(qū)動程序,用于生成要存儲在命令緩存器中的命令,當需要同步時分配事件標記,控制命令發(fā)出并監(jiān)視事件標記返回。
      全文摘要
      公開一種在具有多個外圍處理器的計算機系統(tǒng)中延遲命令發(fā)出的方法,所述多個外圍處理器用嵌入多線程中央處理器中的外圍設備驅(qū)動程序進行操作。在外圍設備驅(qū)動程序發(fā)出第一命令與第一事件標記之后,外圍設備驅(qū)動程序在發(fā)出第一命令之后,生成用于第一外圍處理器的第二命令。如果第一和第二命令需要被同步,則存儲第二命令,等待返回第一事件標記,并且當返回第一事件標記時,發(fā)出第二命令。
      文檔編號G06F9/46GK101025717SQ20061013594
      公開日2007年8月29日 申請日期2006年10月17日 優(yōu)先權(quán)日2005年10月18日
      發(fā)明者張國峰 申請人:威盛電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1