專利名稱:利用性能計數(shù)器的圖形流水線調(diào)度架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在性能計數(shù)器的幫助下以圖形流水線的方式調(diào)度命令。
背景技術(shù):
當前的離散圖形卡通常包括用于計算頂點、幾何圖形和像素數(shù)據(jù)的若干處理核心。通常,若干個核心被群組成多核心(m-核心),而且每個m-核心通常與紋理單元配對。紋理單元耦合到向卡上的視頻存儲器提供接口的一個或多個存儲控制器。離散圖形卡的這些部件中的許多部件也可以存在于集成圖形解決方案中。集成圖形解決方案可以與芯片組集成或與中央處理單元集成。圖形卡可以將包括像素、頂點和幾何圖形數(shù)據(jù)的圖像數(shù)據(jù)劃分成固定大小的塊。圖像數(shù)據(jù)的這些塊之后在若干個圖形處理m-核心和紋理單元中進行分布。另外,許多處理m-核心、紋理單元和存儲控制器包括用于允許執(zhí)行性能計算以確定這些器件的效率的若干個性能計數(shù)器。
通過示例的方式示出本發(fā)明,并且本發(fā)明不受附圖限制,其中類似的標號指代類似的元件,而且其中圖I示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的實施例。圖2示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的另一實施例。圖3示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的再一實施例。圖4示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的計算機系統(tǒng)中的圖形子系統(tǒng)的詳細視圖的實施例。圖5A-5C示出被劃分成具有不同大小的塊的屏幕圖像的實施例。圖6是用于分析圖形流水線瓶頸并調(diào)度適用于這種瓶頸的模式的過程的實施例的流程圖。圖7是用于分析圖形流水線瓶頸并動態(tài)地切換調(diào)度模式的過程的實施例的流程圖。
具體實施例描述了用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的方法、設(shè)備和系統(tǒng)的實施例。用于幫助調(diào)度圖形流水線的邏輯位于計算機系統(tǒng)中。該邏輯收集從硬件性能計數(shù)器接收到的數(shù)據(jù),并計算圖形存儲器或圖形m-核心計算是否可能正在導(dǎo)致計算機系統(tǒng)的圖形子系統(tǒng)的性能瓶頸。一旦執(zhí)行了該計算并且已經(jīng)確定了瓶頸,則該邏輯就能夠改變正在從圖形驅(qū)動器接收到的當前和未來繪制命令(draw command)的調(diào)度過程。調(diào)度繪制命令包括向要被顯示的整個圖像中的某些圖像數(shù)據(jù)塊(包括紋理數(shù)據(jù)、頂點數(shù)據(jù)和幾何圖形數(shù)據(jù))分配圖形m-核心和紋理單元。該圖像數(shù)據(jù)被劃分成具有特定像素大小(例如,8X8個像素、32 X 32個像素等)的塊。改變塊大小能夠改變m-核心和視頻存儲器的效率。因此,一旦已經(jīng)識別了瓶頸,圖形m-核心和紋理單元就被調(diào)度以相應(yīng)地操作更大或更小的數(shù)據(jù)塊。在下面的說明書和權(quán)利要求中對所公開技術(shù)的“一個實施例”或“實施例”的提及意味著結(jié)合該實施例描述的特定特征、結(jié)構(gòu)或特性包括在所公開技術(shù)的至少ー個實施例中。因此,說明書中各處出現(xiàn)的短語“在一個實施例中”不是必須都指代同一實施例。在下面的說明書和權(quán)利要求中,術(shù)語“包含”和“包括”及其衍生詞可以被使用并意欲作為彼此的同義詞圖I示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的實施例。示出了計算機系統(tǒng)100。該計算機系統(tǒng)可以是臺式計算機、服務(wù)器、工作站、膝上型計算機、手持設(shè)備、機頂盒、媒體中心、游戲操作臺、集成系統(tǒng)(諸如車輛中的)或其他類型的計算機系統(tǒng)。在若干實施例中,計算機系統(tǒng)100包括中央處理單元(CPU) 102。CPU 102可以是Intel 公司的CPU或具有另ー商標的CPU。CPU可以包括不止ー個核心。實際上,CPU102可以包含N個核心,其中示出了核心O (104)、核心I (106)、核心2 (108)和核心3(110)。潛在地,N可以是任意正數(shù)。在許多實施例中,每個核心(諸如核心O (104))包括內(nèi)部功能塊,諸如一個或多個執(zhí)行単元、引退単元、ー組通用和專用寄存器等。如果諸如核心O (104)、核心I (106)等的核心是多線程或超線程的,則每個硬件線程被認為是用于本發(fā)明用途的核心。CPU 102還可以包括用于存儲由ー個或多個核心使用的數(shù)據(jù)的高速緩存112。在不同的實施例中,可以以不同的方式來分配高速緩存。在不同的實施例中,高速緩存112可以是許多不同大小中的ー種。例如,高速緩存112可以是8兆字節(jié)(MB)高速緩存、16MB高速緩存等。另外,在不同的實施例中,高速緩存可以是直接映射高速緩存、全關(guān)聯(lián)高速緩存或多路組關(guān)聯(lián)高速緩存。高速緩存可以包括在所有核心之間被共享的ー個大部分,或者可以被劃分成若干個單獨的功能片(例如,每個核心ー個片)。高速緩存還可以包括在所有核心之間被共享的ー個大部分以及被劃分成若干個單獨的功能片的ー個部分。CPU 102還可以包括系統(tǒng)存儲控制器114,以提供接ロ來通過處理器-存儲器互連118與系統(tǒng)存儲器116進行通信。在未被示出的其他實施例中,存儲控制器114可以是離散器件或者被集成到計算機系統(tǒng)100中的另ー器件中。系統(tǒng)存儲器116可以包括動態(tài)隨機存取存儲器(DRAM)(諸如雙數(shù)據(jù)速率(DDR)類型的DRAM)、非易失性存儲器(諸如閃存)、相變存儲器(PCM)或其他類型的存儲器技術(shù)。系統(tǒng)存儲器116可以是用于存儲要被CPU 102、計算機系統(tǒng)100中的其他CPU以及計算機系統(tǒng)100中的可能其他器件(例如,能夠?qū)崿F(xiàn)直接存儲器訪問(DMA)的I/O器件)操作的數(shù)據(jù)和指令的通用存儲器。處理器-存儲器互連118可以包括能夠傳輸數(shù)據(jù)、地址、控制和時鐘信息的ー個或多個光學(xué)導(dǎo)線、金屬線或其他導(dǎo)線(即線路)。雖然未被示出,但是CPU 102還可以包括給CPU 102供電并向位于CPU 102上的電路提供參考時鐘信號的功率和時鐘功能単元。另外,CPU 102還可以包括I/O接ロ單元120。I/O接ロ單元114能夠?qū)崿F(xiàn)CPU 102與任何其他CPU之間的通信。另外,I/O接ロ単元114或未被示出的另一通信塊還可以允許CPU 102與未被示出的I/O集線器復(fù)合體(complex)之間的通信。I/O集線器復(fù)合體可以包括ー個或多個I/O主控制器,以提供用于ー個或多個I/O器件與計算機系統(tǒng)100的剩余器件之間的通信的接ロ。另外,I/O接ロ単元114可以通過處理器-圖形互連124來提供CPU 102與圖形子系統(tǒng)122之間的通信接ロ。處理器-圖形互連可以是外圍部件接ロ(PCI)快速互連,其包括ー個或多個高速、雙向串行接ロ通道。在其他實施例中,處理器-圖形互連124利用用于CPU 102與圖形子系統(tǒng)122之間的通信的另ー協(xié)議。圖形子系統(tǒng)122可以被合并到離散插卡中,該離散插卡能夠在計算機系統(tǒng)100中的母板中插入通信性槽接ロ。在其他實施例中,圖形子系統(tǒng)可以在沒有槽接ロ的情況下直接連線到計算機系統(tǒng)100中的母板中,以允許互換不同的離散圖形卡。圖形子系統(tǒng)122可以包括用于執(zhí)行繪制命令的若干個GPU m_核心,所述繪制命令用于向顯示屏幕進行ニ維和三維圖像渲染。每個m-核心可以在群組中包括若干(例如,8、 16、40等)個單獨的核心??梢源嬖贛個GPUm-核心,其中M是正數(shù)。例如,在圖I所示的實施例中,圖形子系統(tǒng)122包括四個m-核心,即GPU m_核心A (126),GPU m_核心B (128)、GPU m-核心 C (130)和 GPU m_ 核心 D (132)。在許多實施例中,ー個或多個紋理單元(TU)以I比I的比率與GPUm-核心匹配。在具有四個分離的圖形m-核心的圖I中,存在著4個紋理單元TU A (134), TU B (136)、TU C (138)和TU D (140)。在其他實施例中,GPU m-核心和TU沒有I比I地進行匹配,因此會存在GPU m-核心比TU多或者TU比GPU m-核心多的實施例。圖形子系統(tǒng)122還可以包括一個或多個圖形存儲控制器,諸如圖形存儲控制器A(142)和圖形存儲控制器B (144)。圖形存儲控制器提供m-核心/TU與視頻存儲器146之間的接ロ。視頻存儲器可以是DRAM或其他存儲器技術(shù)的形式。通常,由于視頻和圖形密集程序以極快的速率要求大的吞吐量,所以視頻存儲器在訪問時間上至少與通用系統(tǒng)存儲器一祥快或者比通用系統(tǒng)存儲器更快。在許多實施例中,圖形子系統(tǒng)122包括數(shù)據(jù)分布邏輯148。數(shù)據(jù)分布邏輯148能夠提供計算機系統(tǒng)100中的圖形流水線的瓶頸分析。圖形流水線瓶頸分析將在圖4至圖7中詳細討論。圖2示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的另ー實施例。示出了計算機系統(tǒng)200。在若干實施例中,計算機系統(tǒng)200包括組合的中央處理單元/圖形處理單元(CPU/GPU) 202。CPU/GPU 202可以包括不止ー個CPU核心,諸如被示出的CPU核心O (204)、CPU核心I (206)、核心2 (208)和核心3 (210)。可以存在比圖2所示的4個CPU核心更多或更少的CPU核心。在許多實施例中,每個CPU核心(諸如CPU核心O (104))包括內(nèi)部功能塊,諸如一個或多個執(zhí)行単元、引退単元、ー組通用和專用寄存器等。如果諸如核心O (104)、核心I (106)等的核心是多線程或超線程的,則每個硬件線程被認為是用于本發(fā)明用途的核心。CPU/GPU 202還可以包括用于存儲數(shù)據(jù)的高速緩存212。CPU/GPU 202還可以包括用于提供與系統(tǒng)存儲器216進行通信的接ロ的系統(tǒng)存儲控制器214。系統(tǒng)存儲器216可以包括DRAM、非易失性存儲器、PCM或其他類型的存儲器技術(shù)形式。系統(tǒng)存儲器216可以是用于存儲要被CPU/GPU 202、計算機系統(tǒng)200中的其他CPU以及計算機系統(tǒng)200中的可能其他器件(例如,能夠?qū)崿F(xiàn)DMA的I/O器件)操作的數(shù)據(jù)和指令的通用存儲器。CPU/GPU 202還可以 包括集成的圖形子系統(tǒng)218。圖形子系統(tǒng)218可以包括用于執(zhí)行繪制命令的ー個或多個GPU m-核心,所述繪制命令用于向顯示屏幕進行ニ維和三維圖像渲染。例如,在圖2所示的實施例中,圖形子系統(tǒng)218包括四個m-核心,即GPU m-核心A (220)、GPU m-核心 B (222)、GPU m_ 核心 C (224)和 GPU m_ 核心 D (226)。在許多實施例中,ー個或多個TU以I比I的比率與GPU m-核心匹配。在具有四個分離的GPU m-核心的圖2中,存在著4個紋理單元TU A (228),TU B (230),TU C (232)和TU D (234)。在其他實施例中,GPU m-核心和TU沒有I比I地進行匹配,因此會存在GPU m-核心比TU多或者TU比GPU m-核心多的實施例。圖形子系統(tǒng)218還可以包括一個或多個圖形存儲控制器,諸如圖形存儲控制器A(236)和圖形存儲控制器B (238)。圖形存儲控制器提供m_核心/TU與視頻存儲器240之間的接ロ。視頻存儲器可以是DRAM或其他存儲器技術(shù)的形式。通常,由于視頻和圖形密集程序以極快的速率要求大的吞吐量,所以視頻存儲器在訪問時間上至少與通用系統(tǒng)存儲器一祥快或者比通用系統(tǒng)存儲器更快。在許多實施例中,圖形子系統(tǒng)122包括數(shù)據(jù)分布邏輯148。數(shù)據(jù)分布邏輯148能夠提供計算機系統(tǒng)100中的圖形流水線的瓶頸分析。圖形流水線瓶頸分析將在圖4至圖7中詳細討論。圖3示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的通用計算機系統(tǒng)的再ー實施例。示出了計算機系統(tǒng)300。在若干實施例中,計算機系統(tǒng)300包括組合的中央處理單元/圖形處理單元(CPU/GPU)302。CPU/GPU 302可以包括ー個或多個通用核心。在圖3中,每個通用核心可以執(zhí)行通用CPU任務(wù)和/或?qū)S脠D形任務(wù)。這些核心(在圖3中各自被稱為CPU/GPU m-核心)可以在給定時刻被分配通用任務(wù)或圖形專用任務(wù)。在圖3中,示出了 4 個分離的 CPU/GPU m-核心CPU/GPU m_ 核心 304、CPU/GPU m_ 核心 306、CPU/GPU m_ 核心308和CPU/GPU m-核心310。核心的每個CPU部分包括內(nèi)部功能塊,諸如ー個或多個執(zhí)行単元、引退単元、ー組通用和專用寄存器等。CPU/GPU 302還可以包括用于存儲數(shù)據(jù)的高速緩存312。在許多實施例中,ー個或多個TU與CPU/GPU m_核心匹配。在具有四個分離的CPU/GPU m-核心的圖3中,存在著4個紋理單元TU 314、TU 316、TU 318和TU 320。CPU/GPU 302還可以包括用于提供與通用存儲器324進行通信的接ロ的通用存儲控制器322。通用存儲器324可以是用于存儲要被CPU/GPU302、計算機系統(tǒng)300中的其他CPU以及計算機系統(tǒng)300中的可能其他器件(例如,能夠?qū)崿F(xiàn)DMA的I/O器件)操作的數(shù)據(jù)和指令的通用存儲器。在圖3所示的實施例中,通用存儲器被用作系統(tǒng)存儲器和視頻存儲器兩者。在許多實施例中,圖形子系統(tǒng)122包括數(shù)據(jù)分布邏輯148。數(shù)據(jù)分布邏輯148能夠提供計算機系統(tǒng)100中的圖形流水線的瓶頸分析。圖形流水線瓶頸分析將在圖4至圖7中詳細討論。圖4示出用于實施瓶頸靈敏型圖形流水線調(diào)度架構(gòu)的計算機系統(tǒng)中的圖形子系統(tǒng)的詳細視圖的實施例。圖形驅(qū)動器400向圖形硬件子系統(tǒng)發(fā)送繪制調(diào)用(即命令)。該繪制調(diào)用處理對數(shù)據(jù)(例如,像素、頂點、幾何圖形等)的組合的渲染,以創(chuàng)建用于存儲在存儲器的幀緩沖器中的圖像。幀緩沖器保持在顯示設(shè)備(諸如視頻監(jiān)控器)上顯示的信息??梢愿鶕?jù)數(shù)據(jù)在要被渲染的圖像中的坐標來將數(shù)據(jù)劃分成塊。例如,要被渲染的3D圖像可以是640像素寬乘以480像素高。該圖像可以被劃分成柵格塊,每個塊是8像素乘以8像素、16像素乘以16像素、32像素乘以32像素等。在許多實施例中,每個塊可以由諸如分離的處理器、紋理單元等単獨處理。圖5A-5C示出被劃分成具有不同大小的塊的屏幕圖像的實施例。圖5A示出640X480的圖像。如圖所示,圖像被劃分成許多個塊。例如,整個圖像大小的左上角中的4個塊在圖5B和5C中被放大,以示出不同的可能塊大小。在圖5B中,4個塊中左上方的塊跨越從坐標0,0 (該塊的左上角)到坐標15,15 (該塊的右下角)的像素。 其他三個塊對該群組進行充實,并且如圖所示,每個塊包括16X 16柵格的像素??商鎿Q地,在圖5C中,圖5A所示的左上方的2X2柵格的塊被進一步劃分成大小為8像素乘以8像素的更小的塊。如上面討論的,每個塊可以由不同的硬件単獨處理。例如,如圖5B和5C中所示,這些塊在4個m-核心(m-核心O、m-核心I、m_核心2和m_核心3)中進行劃分。返回圖4,柵格器(raSteriZer)401接收繪制調(diào)用井隨后生成與該繪制調(diào)用相關(guān)的像素數(shù)據(jù),并將所述該像素數(shù)據(jù)發(fā)送給數(shù)據(jù)分布邏輯402。數(shù)據(jù)分布邏輯402可以利用若干算法來確定該繪制調(diào)用的極限性能因數(shù)。在許多實施例中,數(shù)據(jù)分布邏輯402包括瓶頸分析模塊404。瓶頸分析模塊404從圖形子系統(tǒng)中獲取用于計算該子系統(tǒng)的哪部分正在被耗費得最多的信息。該信息通常是在操作于圖形子系統(tǒng)中的許多器件中實施的性能計數(shù)器的形式。例如,在所示的實施例中,存在著4個m-核心(M-核心A406、M-核心B 408、M-核心C 410和M-核心D 412),它們執(zhí)行與繪制調(diào)用相關(guān)的工作(例如,執(zhí)行幾何圖形計算),而且在每個m-核心中,存在著若干性能計數(shù)器,諸如m-核心A計數(shù)器414、m-核心B計數(shù)器416、m_核心C計數(shù)器418和m_核心D計數(shù)器420。除了 m-核心之外,在圖4所示的實施例中還存在著4個紋理単元(TU A422,TU B 424,TU C 426和TUD 428)。每個紋理單元也可以包括ー組性能計數(shù)器,諸如TUA計數(shù)器430、TU B計數(shù)器432、TU C計數(shù)器434和TU D計數(shù)器436。一旦m_核心和紋理単元對繪制調(diào)用進行操作,則結(jié)果就通過與視頻存儲器442接ロ的一個或多個存儲控制器(諸如存儲控制器A 438和存儲控制器B 440)發(fā)送給視頻存儲器442。所存在的每個存儲控制器還可以包括ー組性能計數(shù)器(例如,存儲控制器A計數(shù)器444和存儲控制器B計數(shù)器446)。視頻存儲器442可以存儲一個或多個紋理高速緩存(即針對紋理數(shù)據(jù)的存儲區(qū)域)、一個或多個幀緩沖器以及許多其他類型的圖像相關(guān)的數(shù)據(jù)。在許多實施例中,所有的性能計數(shù)器發(fā)送數(shù)據(jù)給歷史數(shù)據(jù)緩沖器448。歷史數(shù)據(jù)緩沖器可以是在任何充分存儲位置中建立的緩沖器。在一些實施例中,歷史數(shù)據(jù)緩沖器448可以是視頻存儲器442的預(yù)留部分。在其他實施例中,歷史數(shù)據(jù)緩沖器448可以是系統(tǒng)存儲器的預(yù)留部分。在再一實施例中,歷史數(shù)據(jù)緩沖器448可以是專用于歷史數(shù)據(jù)緩沖器448的分離的存儲器存儲器件。在又一其他實施例中,歷史數(shù)據(jù)緩沖器448可以作為整體被集成到位于圖形子系統(tǒng)或計算機系統(tǒng)中的其他位置的電路中。
歷史數(shù)據(jù)緩沖器448可以用于若干用途。例如,來自圖4所示的一個或多個器件的性能計數(shù)器可以持續(xù)地向歷史數(shù)據(jù)緩沖器448饋送更新后的值。在另ー示例中,在計算機系統(tǒng)中可以存在間隔計時器,而且每次該計時器在所述間隔的末端期滿時,整個系統(tǒng)中的每個計數(shù)器將它們的當前值寫入歷史數(shù)據(jù)緩沖器中。在其他實施例中,從計數(shù)器中獲取到的信息被饋送給瓶頸分析模塊,該瓶頸分析模塊隨后將利用一片或多片計數(shù)器數(shù)據(jù)來執(zhí)行一個或多個計算,而且隨后瓶頸分析模塊404可以將所計算的結(jié)果存儲在歷史數(shù)據(jù)緩沖器448中。在許多實施例中,在給定時刻,瓶頸分析模塊404將從m-核心、紋理單元和/或存儲控制器中的性能計數(shù)器獲取所有相關(guān)數(shù)據(jù)。瓶頸分析模塊404之后將計算m-核心和/或視頻存儲器442的利用,并確定在圖形子系統(tǒng)中運行的當前工作負荷正在如何影響m-核心以及視頻存儲器的利用水平。 例如,ー個繪制調(diào)用可能促使ー個m-核心(例如,m-核心A 406)相比于其他三個m-核心被繁重得多地利用。這導(dǎo)致不均衡的工作負荷,因為并非所有4個m-核心都正在均等地進行工作,因此圖形子系統(tǒng)因m-核心工作量的不均衡而沒有被有效地使用。在另ー示例中,瓶頸分析模塊可能發(fā)現(xiàn)所有4個m-核心正在被均等地利用,但是利用的是它們總計算功率的一小部分,因為有大量的紋理數(shù)據(jù)正在進進出出針對頂點或像素的視頻存儲器442。因此,少量的幾何圖形正在被計算,但是數(shù)據(jù)吞吐量達到了可用存儲器帶寬的最大值。再次地,這將導(dǎo)致圖形子系統(tǒng)的整體低效,因為m-核心未被要求以快的速率執(zhí)行工作而且它們正因存儲器的低效而缺乏數(shù)據(jù)。ー些繪制調(diào)用是計算密集型的,這意味著執(zhí)行所有計算性計算的m-核心將需要更大量的工作來完成每個調(diào)用。其他繪制調(diào)用是存儲器密集型的,這意味著會存在大量數(shù)據(jù)被傳輸給存儲器和傳輸自存儲器。另外,再一繪制調(diào)用在該調(diào)用的整個長度期間在這兩個類別之間切換。對于計算密集型繪制調(diào)用,所有m-核心之間的均衡工作負荷對于總圖形子系統(tǒng)性能而言是重要的。相反地,對于存儲器密集型繪制調(diào)用而言,紋理高速緩存效率是最大的因素。在計算密集型繪制調(diào)用中,不均衡的m-核心工作負荷會導(dǎo)致性能惡化。在存儲器密集型繪制調(diào)用中,使m-核心缺乏工作的工作負荷也將導(dǎo)致性能惡化。単獨m-核心/TU所工作的塊的大小對計算密集型繪制調(diào)用的性能影響與對存儲器密集型繪制調(diào)用的性能影響不同。例如,轉(zhuǎn)到圖5B和5C,相對更大的塊(例如,圖5B)將因數(shù)據(jù)局部性和紋理高速緩存效率而有益于存儲器密集型工作負荷。相對更小的塊(例如,圖5C)將有益于計算密集型工作負荷,因為對于圖像的正在被執(zhí)行操作的任何給定區(qū)域而言,有更多的m-核心正在對那個給定區(qū)域內(nèi)的數(shù)據(jù)進行操作。返回圖4,一旦已經(jīng)由瓶頸分析模塊404計算了工作負荷的類型,就向調(diào)度模塊450發(fā)送關(guān)于如何調(diào)度當前繪制調(diào)用的剰余部分或利用類似圖像參數(shù)(即導(dǎo)致當前工作負荷狀況的圖像數(shù)據(jù))的下一(或其他未來)繪制調(diào)用的確定、關(guān)于將所述工作劃分成多大或多小的塊的判定。調(diào)度模塊之后對繪制調(diào)用的數(shù)據(jù)進行處理,并告訴每個m-核心和紋理單元它們將對哪些坐標處的哪些塊進行操作。換言之,基于被發(fā)送給調(diào)度模塊450的由瓶頸分析模塊404做出的關(guān)于塊大小的確定,調(diào)度模塊450之后向m-核心A406發(fā)送命令,諸如對位于從0,0開始并在7,7處結(jié)束的塊、從16,16開始并在23,23處結(jié)束的塊等中的數(shù)據(jù)執(zhí)行計算。命令也被發(fā)送給其他m-核心和紋理單元。在另ー實施例中,塊調(diào)度命令被特別發(fā)送給m-核心,而且每個m-核心之后將調(diào)度命令傳遞給與它配對的紋理單元??梢员挥糜趫蟾嫫款i分析數(shù)據(jù)的ー些標準性能計數(shù)器是“引退紋理指令”和“引退計算指令”,它們能夠分別揭露已經(jīng)完成了多少紋理指令和計算指令。如果在特定時間段內(nèi)對其進行了收集,則可以確定針對每ー者的每個采樣間隔的速率,這能夠?qū)е轮噶顓淄铝坑嬎?,當將指令呑吐量計算與基線值進行比較時可以允許針對每個m-核心和紋理單元采取效率估計。另外,存儲控制器可以包括諸如“存儲器忙周期”、“存儲器空閑周期”、“存儲器讀速率”和“存儲器寫速率”之類的計數(shù)器。從這些計數(shù)器接收的數(shù)據(jù)還能夠允許通用存儲器的效率計算。例如,通過采用上述的都在給定時間量內(nèi)被收集的計數(shù)器,可以通過下面的等式來計算在給定時間幀內(nèi)的存儲器利用百分比
權(quán)利要求
1.ー種方法,包括 確定當前的計算-存儲器比率; 將所述當前的計算-存儲器比率與下限比率閾值進行比較;以及響應(yīng)于所述當前的計算-存儲器比率低于所述下限比率閾值,通過使用圖形存儲器效率操作模式來配置要被執(zhí)行的下ー繪制命令。
2.根據(jù)權(quán)利要求I所述的方法,還包括 將所述當前的計算-存儲器比率與上限比率閾值進行比較;以及響應(yīng)于所述當前的計算-存儲器比率高于所述上限比率閾值,通過使用處理器均衡操作模式來配置所述要被執(zhí)行的下ー繪制命令。
3.根據(jù)權(quán)利要求2所述的方法,還包括 從圖形處理器、紋理單元和存儲控制器中的一者或多者中收集ー個或多個性能計數(shù)器值;以及 根據(jù)ー個或多個所收集的性能計數(shù)器值來計算所述當前的計算-存儲器比率。
4.根據(jù)權(quán)利要求3所述的方法,還包括 以ー個或多個后續(xù)繪制命令之間的預(yù)定間隔動態(tài)地執(zhí)行收集動作和計算動作。
5.根據(jù)權(quán)利要求3所述的方法,還包括 在歷史數(shù)據(jù)緩沖器中保存所述性能計數(shù)器值;以及 將所保存的性能計數(shù)器值與所述繪制命令相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求5所述的方法,還包括 接收后續(xù)繪制命令,其中所述后續(xù)繪制命令包括ー個或多個參數(shù); 獲取與呈現(xiàn)和所述后續(xù)繪制命令包括的所述ー個或多個參數(shù)相類似參數(shù)的繪制命令相關(guān)聯(lián)的所有歷史數(shù)據(jù)緩沖器信息;以及 在與針對呈現(xiàn)所述類似參數(shù)的之前繪制命令而配置的操作模式相一致的操作模式中配置要被執(zhí)行的所述后續(xù)繪制命令。
7.根據(jù)權(quán)利要求2所述的方法,其中,所述計算-存儲器比率包括圖形m-核心計算利用值除以圖形存儲器利用值的比率。
8.根據(jù)權(quán)利要求2所述的方法,其中,所述圖形存儲器效率操作模式利用大小比所述圖形處理器效率操作模式所利用的數(shù)據(jù)塊的大小相對更大的圖形數(shù)據(jù)塊。
9.根據(jù)權(quán)利要求8所述的方法,其中,圖形數(shù)據(jù)包括像素數(shù)據(jù)、頂點數(shù)據(jù)和幾何圖形數(shù)據(jù)中的一者或多者。
10.ー種包括用于控制圖形流水線的邏輯的設(shè)備,所述邏輯用于 確定當前的計算-存儲器比率; 將所述當前的計算-存儲器比率與下限比率閾值進行比較;以及響應(yīng)于所述當前的計算-存儲器比率低于所述下限比率閾值,通過使用圖形存儲器效率操作模式來配置要被執(zhí)行的下ー繪制命令。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述邏輯還用于 將所述當前的計算-存儲器比率與上限比率閾值進行比較;以及 響應(yīng)于所述當前的計算-存儲器比率高于所述上限比率閾值,通過使用處理器均衡操作模式來配置所述要被執(zhí)行的下ー繪制命令。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述邏輯還用于 從圖形處理器、紋理單元和存儲控制器中的一者或多者中收集ー個或多個性能計數(shù)器值;以及 根據(jù)ー個或多個所收集的性能計數(shù)器值來計算所述當前的計算-存儲器比率。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中,所述邏輯還用于 以ー個或多個后續(xù)繪制命令之間的預(yù)定間隔動態(tài)地執(zhí)行收集動作和計算動作。
14.根據(jù)權(quán)利要求12所述的設(shè)備,其中,所述邏輯還用于 在歷史數(shù)據(jù)緩沖器中保存所述性能計數(shù)器值;以及 將所保存的性能計數(shù)器值與所述繪制命令相關(guān)聯(lián)。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中,所述邏輯還用于 接收后續(xù)繪制命令,其中所述后續(xù)繪制命令包括ー個或多個參數(shù); 獲取與呈現(xiàn)和所述后續(xù)繪制命令包括的所述ー個或多個參數(shù)相類似參數(shù)的繪制命令相關(guān)聯(lián)的所有歷史數(shù)據(jù)緩沖器信息;以及 在與針對呈現(xiàn)所述類似參數(shù)的之前繪制命令而配置的操作模式相一致的操作模式中配置要被執(zhí)行的所述后續(xù)繪制命令。
16.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述計算-存儲器比率包括圖形m-核心計算利用值除以圖形存儲器利用值的比率。
17.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述圖形存儲器效率操作模式利用大小比所述圖形處理器效率操作模式所利用的數(shù)據(jù)塊的大小相對更大的圖形數(shù)據(jù)塊。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中,圖形數(shù)據(jù)包括像素數(shù)據(jù)、頂點數(shù)據(jù)和幾何圖形數(shù)據(jù)中的一者或多者。
19.一種系統(tǒng),包括 圖形驅(qū)動器,用于提供一個或多個繪制命令; 柵格器,用于響應(yīng)于所述繪制調(diào)用來提供大量像素數(shù)據(jù); 一個或多個圖形處理m-核心,所述一個或多個圖形處理m-核心各自包括一個或多個m-核心性能計數(shù)器; 一個或多個紋理単元,所述ー個或多個紋理単元各自包括ー個或多個紋理性能計數(shù)器; ー個或多個存儲控制器,所述ー個或多個存儲控制器各自包括一個或多個存儲器性能計數(shù)器; 歷史數(shù)據(jù)緩沖器,用于存儲來自所述m-核心性能計數(shù)器、所述紋理性能計數(shù)器和所述存儲器性能計數(shù)器中的一者或多者的性能計數(shù)器數(shù)據(jù);以及數(shù)據(jù)分布邏輯單元,用干 確定當前的計算-存儲器比率; 將所述當前的計算-存儲器比率與下限比率閾值以及上限比率閾值進行比較; 響應(yīng)于所述當前的計算-存儲器比率低于所述下限比率閾值,通過使用圖形存儲器效率操作模式來配置要被執(zhí)行的從所述圖形驅(qū)動器接收到的下ー繪制命令;以及 響應(yīng)于所述當前的計算-存儲器比率高于所述上限比率閾值,通過使用處理器均衡操作模式來配置所述要被執(zhí)行的下ー繪制命令。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述數(shù)據(jù)分布邏輯單元還用于 根據(jù)來自一個或多個m-核心性能計數(shù)器、紋理性能計數(shù)器和存儲器性能計數(shù)器中的至少一者的所存儲的性能計數(shù)器數(shù)據(jù)來計算所述當前的計算-存儲器比率。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述數(shù)據(jù)分布邏輯單元還用于 以從所述圖形驅(qū)動器接收到的一個或多個后續(xù)繪制命令之間的預(yù)定間隔動態(tài)地計算所述當前的計算-存儲器比率。
22.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述數(shù)據(jù)分布邏輯單元還用于將所存儲的性能計數(shù)器值與當前繪制命令相關(guān)聯(lián)。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中,所述邏輯還用于 從所述圖形驅(qū)動器接收后續(xù)繪制命令,其中所述后續(xù)繪制命令包括一個或多個參數(shù); 獲取與呈現(xiàn)和所述后續(xù)繪制命令包括的所述一個或多個參數(shù)相類似參數(shù)的繪制命令相關(guān)聯(lián)的所有歷史數(shù)據(jù)緩沖器信息;以及 在與針對呈現(xiàn)所述類似參數(shù)的之前繪制命令而配置的操作模式相一致的操作模式中配置要被執(zhí)行的所述后續(xù)繪制命令。
24.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述計算-存儲器比率包括圖形m-核心計算利用值除以圖形存儲器利用值的比率。
25.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述圖形存儲器效率操作模式利用大小比所述圖形處理器效率操作模式所利用的數(shù)據(jù)塊的大小相對更大的圖形數(shù)據(jù)塊。
全文摘要
公開了一種方法、設(shè)備和系統(tǒng)。在一個實施例中,所述方法包括確定當前的計算-存儲器比率。之后所述方法將當前的計算-存儲器比率與下限比率閾值進行比較。之后所述方法在當前的計算-存儲器比率低于下限比率閾值時,通過使用圖形存儲器效率操作模式來配置要被執(zhí)行的下一繪制命令。
文檔編號G06F9/50GK102656603SQ200980162905
公開日2012年9月5日 申請日期2009年12月16日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者J·葉, J·陳, W·劉 申請人:英特爾公司