欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

異構計算系統(tǒng)和方法與流程

文檔序號:11261928閱讀:460來源:國知局
異構計算系統(tǒng)和方法與流程

【技術領域】

本發(fā)明實施例關于異構計算,尤其是關于異構計算系統(tǒng)和方法。



背景技術:

根據(jù)丹那德微縮(dennardscaling),電壓和電流應該與晶體管的線性尺寸成比例,且功耗(電壓和電流的乘積)應該與晶體管的面積成比例。由于晶體管的大小持續(xù)縮減,可以放進芯片相同面積的晶體管的數(shù)目以指數(shù)方式增加。因此,預測每瓦計算性能還可以指數(shù)增加。然而,丹那德微縮似乎在近十年里被破壞了。即使晶體管的大小持續(xù)縮減,每瓦計算性能并沒有以相同的速率改進。對于丹那德微縮的破壞有各種原因。一個原因就是很小的電流泄漏可導致芯片發(fā)熱,這將增加能量成本以及熱流失的風險。為了防止熱流失,芯片上的部分硅在給定熱設計功率(tdp)約束的標稱操作電壓下不能被打開(poweron)。此現(xiàn)象被稱作“暗硅(darksilicon)”,在現(xiàn)代處理器中顯著地約束每瓦計算性能。

丹那德微縮的破壞已經(jīng)提示芯片制造商采取多核處理器設計。然而,即使多核處理器也遭遇相同的“暗硅”問題。依據(jù)處理器架構、冷卻技術以及應用工作負擔,暗硅的數(shù)量可超過50%。因此,在現(xiàn)代計算機系統(tǒng)中需要改進能量和計算效率。



技術實現(xiàn)要素:

有鑒于此,本發(fā)明提出一種異構計算系統(tǒng)和方法。

在一個實施例中,揭示一種異構計算系統(tǒng)。系統(tǒng)包含多個不同處理器類型的處理器,其中每個處理器包含內部存儲器單元以儲存其當前上下文;并行處理模塊,包含多個執(zhí)行單元;以及切換模塊,耦合到處理器和并行處理模塊,其中切換模塊根據(jù)控制信號選擇處理器的一個以使用并行處理模塊,用于并行執(zhí)行具有多個數(shù)據(jù)條目的指令。

在另一實施例中,揭示一種由異構計算系統(tǒng)執(zhí)行的方法。包含根據(jù)控制信號,選擇多個處理器的一個以連接異構計算系統(tǒng)中的并行處理模塊,其中所述器包含不同處理器類型且每個處理器包含內部存儲器單元以儲存其上下文,以及其中并行處理模塊包含多個執(zhí)行單元;由并行處理模塊從處理器的一個接收具有多個數(shù)據(jù)條目的指令;以及由執(zhí)行單元并行對多個數(shù)據(jù)條目執(zhí)行指令。

基于以上方案,本發(fā)明可以改進能量和計算效率。

【附圖說明】

圖1圖示根據(jù)一個實施例的異構計算系統(tǒng)的架構。

圖2圖示根據(jù)一個實施例的異構計算系統(tǒng)中不同處理器類型的處理器。

圖3圖示根據(jù)一個實施例的統(tǒng)一解碼器的示例。

圖4是圖示根據(jù)一個實施例的處理器切換過程的流程圖。

圖5圖示根據(jù)一個實施例的上下文切換控制器的示例。

圖6是圖示根據(jù)一個實施例的由異構計算系統(tǒng)執(zhí)行的方法的流程圖。

【具體實施方式】

在以下的描述中,闡述許多具體細節(jié)。然而,要理解,本發(fā)明的實施例可在沒有這些具體細節(jié)的情況下實踐。在其它實例中,已知電路、結構和技術沒有詳細顯示以防止模糊了對此描述的理解。然而,本領域的技術人員將意識到,本發(fā)明可在沒有這樣的具體細節(jié)下實踐。本領域的普通技術人員利用所包含的描述,將能夠在不需要過度實驗的情況下實現(xiàn)適當?shù)墓δ堋?/p>

異構計算系統(tǒng)包含多于一個類型的處理器工作協(xié)力執(zhí)行計算任務。例如,異構計算系統(tǒng)可包含處理器,例如,一個或多個中央處理單元(cpu)、一個或多個圖形處理單元(gpu)、一個或多個數(shù)字信號處理器(dsp)、一個或多個專用指令組處理器(asip)、一個或多個專用集成電路(asic)等。在一些實施例中,處理器可都集成到芯片上系統(tǒng)(soc)平臺。

作為示例,異構計算系統(tǒng)可包含cpu、gpu、dsp、asip和asic的組合。cpu執(zhí)行通用計算任務。dsp和asip執(zhí)行信號、圖像和/或多媒體處理操作。dsp和asip都是可編程的。asip的示例是執(zhí)行由系統(tǒng)支持的特定功能的專門的硬件加速器。asic是執(zhí)行預定序列特定操作的固定功能處理器;例如,編碼和解碼。gpu執(zhí)行圖形處理任務;例如,創(chuàng)建3d場景的2d光柵表示。這些圖形處理任務被稱作3d圖形管線或渲染管線。3d圖形管線可以由用于加速計算的固定功能的硬件以及允許在圖形渲染中的靈活性的通用可編程硬件的組合來實施。通用可編程硬件也被稱作著色器硬件。除了渲染圖形,著色器硬件還可執(zhí)行通用計算任務。

異構計算系統(tǒng)中的處理器典型地包含并行執(zhí)行硬件,用于執(zhí)行單個指令多個數(shù)據(jù)(single-instruction-multiple-data,simd)操作。在現(xiàn)有技術系統(tǒng)這樣的simd架構單獨地實施于每個處理器中。因此,在這些系統(tǒng)中,simd架構被復制。由復制的simd架構占據(jù)的區(qū)域沒有完全利用,因為不是所有處理器同時執(zhí)行simd執(zhí)行。

根據(jù)本發(fā)明的實施例,異構計算系統(tǒng)使用包含多個執(zhí)行單元的共享的并行處理模塊(例如,算術邏輯單元(alu))執(zhí)行simd操作。執(zhí)行單元的共享減少了硬件成本并增加了硬件利用。當simd執(zhí)行從一個處理器到另一處理器的切換時,為了減少上下文切換開銷,每個處理器保持單獨的存儲器控制。更具體地,每個處理器在其內部存儲器單元(例如,寄存器和/或緩沖器)保持其上下文。每個處理器也具有其自己的存儲器接口,用于從系統(tǒng)存儲器(例如,動態(tài)隨機存取存儲器(dram))裝置存取指令和數(shù)據(jù)。單獨的存儲器控制減少上下文切換的數(shù)目并因此增加能量和計算效率。

計算中的術語“上下文切換”通常指的是儲存和恢復過程或線程的狀態(tài)(也被稱作“上下文”)以便可以在以后從相同的點繼續(xù)執(zhí)行的機制。上下文的示例包含,但不限于程序計數(shù)器、堆棧指針、寄存器內容等。根據(jù)本發(fā)明的實施例,共享執(zhí)行單元的處理器在本地且單獨地儲存他們的相應上下文(例如,執(zhí)行狀態(tài)),以便當simd執(zhí)行從第一處理器到第二處理器的切換時,沒有或很少上下文切換開銷用于儲存第一處理器的上下文以及恢復第二處理器的上下文。即,不使用用于處理器間上下文切換的通常方法和共享的緩沖器,每個處理器在其內部存儲器單元(例如,本地緩沖器)儲存其自己的上下文。當simd執(zhí)行從第一處理器到第二處理器的切換時,第一處理器的上下文保持在第一處理器中,并當后面需要時準備好使用。第二處理器的上下文在第二處理器中,并可由第二處理器立刻使用。單獨的上下文管理避免當simd執(zhí)行處理器之間的切換時上下文存儲和恢復的時間和能量消耗。

此外,每個處理器具有其自己的存儲器接口,用于從系統(tǒng)存儲器存取指令、數(shù)據(jù)和其它信息。術語“存儲器接口”指的是可以存取系統(tǒng)存儲器的處理器中的硬件單元。存儲器接口的示例包含,但不限于直接存儲器存取(dma)單元、負載和儲存單元等。具有單獨的存儲器接口使處理器能保持他們的具體數(shù)據(jù)流控制。

圖1圖示根據(jù)一個實施例的異構計算系統(tǒng)100的示例架構。系統(tǒng)100包含不同類型的多個處理器112,例如,gpu、dsp、asip、asic等(在圖1中顯示為p1,p2,…pn)。在一個實施例中,每個處理器112包含存儲器接口118用于存取系統(tǒng)存儲器160(例如,動態(tài)隨機存取存儲器(dram)或其它易失性或非易失性隨機存取存儲器)。一些處理器可包含處理器上緩存器和/或處理器上緩沖器。一些處理器112可包含不同于其它處理器112的特定功能的單元。一些(例如,至少兩個)處理器112具有定義不同指令和/或指令格式的不同指令組架構(isa)。在一個實施例中,每個處理器112可以是執(zhí)行由其isa定義的指令的可編程處理器。在另一實施例中,處理器112可包含固定功能的處理器或可編程處理器與固定功能的處理器的組合。

處理器112經(jīng)由互連150連接到系統(tǒng)存儲器160。處理器112也連接到切換模塊120,其還連接到統(tǒng)一的解碼器130和并行的處理模塊140。切換模塊120可以被控制以將任何一個處理器112連接到統(tǒng)一的解碼器130和并行的處理模塊140。并行的處理模塊140包含多個執(zhí)行單元(eu)142;例如,alu。每個執(zhí)行單元142執(zhí)行算術或邏輯操作,且并行的處理模塊140,作為整體執(zhí)行simd操作。即,并行的處理模塊140可以并行方式在多個數(shù)據(jù)條目上執(zhí)行單個指令。由執(zhí)行單元142執(zhí)行的指令具有根據(jù)定義用于并行的處理模塊140的指令組架構(isa)的指令格式。由執(zhí)行單元142執(zhí)行的數(shù)據(jù)具有定義于一組統(tǒng)一的數(shù)據(jù)格式的統(tǒng)一的數(shù)據(jù)格式。例如,統(tǒng)一的數(shù)據(jù)格式可包含全精度、短整數(shù)、浮點、長整數(shù)等。在一個實施例中,并行的處理模塊140可包含在數(shù)據(jù)陣列上執(zhí)行向量操作的向量執(zhí)行單元。

在一個實施例中,切換模塊120由上下文切換控制器170控制,其可以是硬件單元或位于一個或多個cpu或其它控制硬件或由一個或多個cpu或其它控制硬件執(zhí)行的軟件方法。上下文切換控制器170確定simd執(zhí)行應該切換到哪個處理器112,并生成選擇處理器112連接到并行的處理模塊140的控制信號。上下文切換控制器170的示例在圖5中提供。在一個實施例中,處理器112可發(fā)送請求,如果有任何優(yōu)先級信息,則和優(yōu)先級信息一起發(fā)送到上下文切換控制器170(在圖1中顯示為單線箭頭)以請求連接。選擇的處理器112然后可經(jīng)由切換模塊120和統(tǒng)一的解碼器130發(fā)送具有多個數(shù)據(jù)條目的指令(在圖1中顯示為具有填充圖案的箭頭)到并行的處理模塊140用于執(zhí)行。在一個實施例中,統(tǒng)一的解碼器130可解碼或翻譯指令到統(tǒng)一的指令格式以及將伴隨的源操作數(shù)解碼或翻譯為統(tǒng)一數(shù)據(jù)格式用于由并行處理模塊140執(zhí)行。即,統(tǒng)一解碼器130可解碼或翻譯不同的isa指令為并行處理模塊140的isa。在執(zhí)行指令后,執(zhí)行結果發(fā)送到系統(tǒng)存儲器160或處理器上緩沖器。

在一個實施例中,異構計算系統(tǒng)100可以是移動計算和/或通信裝置(例如,智能電話、平板電腦、膝上型計算機、游戲裝置等)的一部分。在一個實施例中,異構計算系統(tǒng)100可以是臺式計算系統(tǒng)、服務器計算系統(tǒng)或云計算系統(tǒng)的一部分。

圖2圖示根據(jù)一個實施例的圖1的處理器112的示例。例如,處理器112可包含gpu著色器210、dsp220以及asip230。盡管三個處理器類型顯示于在此示例中,要理解,在備選實施例中存在更多或更少處理器類型,且每個處理器類型可具有任何數(shù)量的處理器。此外,也應理解所示gpu著色器210、dsp220以及asip230的功能的特征出于說明的目的已經(jīng)被簡化,在備選實施例中,這些處理器可包含更多、更少和/或不同于顯示于圖2中的部件。在圖2的實施例中,所有三個處理器112具有不同的isa;在備選實施例中,處理器112可具有更多或更少(至少兩個)不同的isa。此外,盡管未示出于圖2的示例中,在上述備選實施例中,處理器112可包含固定功能的處理器,例如,asic用于執(zhí)行指定操作的預定序列。每個處理器112可以選擇以發(fā)送simd指令和數(shù)據(jù)到并行處理模塊140用于simd操作,且可從并行處理器140接收執(zhí)行結果(即中間數(shù)據(jù))。

gpu著色器210是專門用于圖形操作的可編程處理器。在一個實施例中,gpu著色器210包含命令隊列211、控制單元212、程序寄存器文件214、共享緩沖器215、特殊函數(shù)216、存儲器接口118以及其它單元??刂茊卧?12的示例包含但不限于,分支預測符、命令獲取單元等。dsp220是可編程處理器,其包含定序器221、直接存儲器訪問(dma)222、本地緩沖器223、存儲器接口118以及其它單元。asip230也是可編程處理器,其包含專門存儲器接口231、專門緩沖器233、特殊函數(shù)232、定序器234、存儲器接口118以及其它單元。此外,gpu著色器210、dsp220以及asip230的一個或多個可包含,用于儲存近來訪問的和/或從系統(tǒng)存儲器160獲取的預獲取的數(shù)據(jù)的緩存,以及用于儲存在其它信息中由并行處理模塊140生成的中間數(shù)據(jù)的緩沖器或其它類型的臨時存儲器。dsp220以及asip230是可編程處理器,用于執(zhí)行特定功能。特定功能216和232的示例包含但不限于:特定數(shù)學功能的單元,例如,正弦、余弦和對數(shù)功能、圖形處理、語音數(shù)據(jù)處理、視頻處理以及圖像處理。

在一個實施例中,每個處理器包含內置機制(例如,命令隊列211、定序器221以及定序器234)用于確定接下來執(zhí)行哪個指令,以及內部寄存器或緩沖器(即,處理器上寄存器或處理器上緩沖器)用于儲存當前上下文,例如程序計數(shù)器、堆棧指針、寄存器內容等。當simd執(zhí)行從第一處理器到第二處理器的切換時,第二處理器儲存的上下文可以快速(例如,一個周期內)從其內部寄存器或緩沖器獲取以開始該執(zhí)行過程。第一處理器的上下文儲存于其內部寄存器或緩沖器,用于當simd執(zhí)行切換到第一處理器時快速獲取。

盡管每個處理器包含內部寄存器或緩沖器,以儲存其上下文,在一些場景中,上下文的數(shù)量可超過這些內部寄存器或緩沖器的容量。例如,當單個處理器執(zhí)行多個任務,且一個或多個任務具有實時約束,處理器可在多個任務中切換上下文。為了儲存這些多個任務的上下文,如果上下文的數(shù)量超過其內部上下文存儲容量,處理器可使用外部緩沖器(即,處理器外緩沖器或芯片外緩沖器)以儲存上下文。

圖3是圖示統(tǒng)一解碼器130的一個實施例的示意圖。在本實施例中,統(tǒng)一解碼器130包含前端331和后端332,由切換模塊120分開。前端331和后端332分別是來自切換模塊120的上游和下游。前端331還包含數(shù)據(jù)獲取(310a-d)和指令解碼(320a-d)。使用處理器p1作為示例,由p1獲取的指令由指令解碼320a解碼。指令解碼320a根據(jù)處理器p1的isa解碼指令。數(shù)據(jù)獲取310a根據(jù)解碼指令從處理器上存儲器(例如,數(shù)據(jù)緩存)獲取來源操作數(shù)。然后,當p1被選擇用于連接并行處理模塊140時,指令和獲取的數(shù)據(jù)經(jīng)由切換模塊120被發(fā)送到后端332。

在一些實施例中,前端331可以是一個或多個處理器112的部分;即,處理器的本地解碼和獲取電路的部分。例如,如虛線所示,處理器p1可包含指令解碼320a和數(shù)據(jù)獲取310a為其本地解碼和獲取電路的部分。如果解碼為非simd指令則指令由p1執(zhí)行;如果解碼為simd指令,指令被發(fā)送到并行處理模塊140用于執(zhí)行。在一些實施例中,一個或多個處理器112,例如,固定功能的處理器執(zhí)行操作的預定序列,并因此不需要解碼指令。這些固定功能的處理器不包含本地解碼電路用于解碼指令。在此情況下(例如,p4),當執(zhí)行simd操作時,統(tǒng)一解碼器130提供生成指示符的指令解碼320d。指示符可指定待執(zhí)行的simd操作以及simd操作的數(shù)據(jù)格式。當p4選擇用于連接并行處理模塊140時,由數(shù)據(jù)獲取310d獲取的指示符和來源操作數(shù)然后經(jīng)由切換模塊120發(fā)送到后端332。

在圖3的實施例中,統(tǒng)一解碼器130的后端332包含數(shù)據(jù)管線330和指令翻譯340。指令翻譯340可將來自不同處理器112(例如,不同isa)的指令翻譯為由并行處理模塊140執(zhí)行的統(tǒng)一指令格式。此外,數(shù)據(jù)管330可修改來自處理器112的數(shù)據(jù)(例如,源操作數(shù))為由并行處理模塊140執(zhí)行的統(tǒng)一數(shù)據(jù)格式。例如,如果源操作數(shù)是雙精度格式,且雙精度不由并行處理模塊140支持,則數(shù)據(jù)管330可修改源操作數(shù)為浮點數(shù)據(jù)。由圖3的部件執(zhí)行的過程將參考圖4在以下提供。

圖4是圖示根據(jù)一個實施例的處理器切換過程400的流程圖。過程400可以由異構計算系統(tǒng)執(zhí)行,例如,圖1的系統(tǒng)100。當控制信號選擇處理器(“目標處理器”)以使用并行處理模塊140用于simd執(zhí)行(步驟410),目標處理器根據(jù)其在本地儲存的上下文獲取指令以執(zhí)行(步驟420)。目標處理器可從其指令緩存或儲存在目標處理器中本地的命令隊列獲取指令。解碼指令以及獲取源操作數(shù)(步驟430),其然后經(jīng)由切換模塊120發(fā)送到統(tǒng)一解碼器130(例如,圖3的后端332)。統(tǒng)一解碼器130解碼或翻譯指令為可執(zhí)行格式用于由并行處理模塊140執(zhí)行的simd(步驟440)。在接收指令和來源操作數(shù)后,執(zhí)行單元142并行對多個來源操作數(shù)執(zhí)行相同指令(步驟450)。并行處理模塊140返回執(zhí)行結果到處理器112(simd指令從其發(fā)送)或系統(tǒng)存儲器160(步驟460)。

當每次處理器選擇用于simd執(zhí)行時,過程400從步驟410重復。例如,當控制信號選擇另一處理器(“下一處理器”)用于simd執(zhí)行時,下一處理器可使用其在本地儲存的上下文以獲取指令用于執(zhí)行而不重裝載和恢復上下文到其本地存儲器。此外,以前的處理器(即,目標處理器)的上下文可保留在本地在目標處理器中。目標處理器可使用其在本地儲存的上下文繼續(xù)執(zhí)行非simd操作,或可等待其順序以再次使用并行處理模塊140用于simd執(zhí)行。

圖5是圖示圖1的上下文切換控制器170的實施例的示意圖。在本實施例中,上下文切換控制器170包含第一硬件仲裁模塊510和第二硬件仲裁模塊520。在備選實施例中,上下文切換控制器170可包含更多、更少或不同于圖5中所示的硬件模塊。在備選實施例中,一些硬件模塊可以至少部分地由運行于硬件處理器上的軟件實施。

上下文切換控制器170可使用不同的硬件模塊以為具有不同優(yōu)先級的請求實現(xiàn)不同的排程策略。例如,在圖5的實施例中,來自不指示優(yōu)先級的處理器的請求可由第一硬件仲裁模塊510處理,第一硬件仲裁模塊510根據(jù)預定第一策略來排程請求;例如,循環(huán)策略。來自指示優(yōu)先級或實時約束的處理器請求可由第二硬件仲裁模塊520處理,第二硬件仲裁模塊520根據(jù)預定第二策略來排程請求,例如,優(yōu)先級排程。即,具有更高優(yōu)先級設定或更緊實時約束的請求首先排程以便連接。例如,來自軟件系統(tǒng)具有高優(yōu)先級設定的請求可以是來自運行語音呼叫軟件應用以處理語音呼叫dsp的請求。語音呼叫可以在來自過程(例如,背景過程)低優(yōu)先級請求之前連接到并行處理模塊140。作為另一示例,具有來自硬件系統(tǒng)的實時約束的請求可以是來自視頻解碼器的請求。視頻解碼器可要求滿足實時約束以每秒解碼特定數(shù)目的幀。具有實時約束的這樣的請求被給出高的優(yōu)先級。當請求被處理,上下文切換控制器170發(fā)出控制信號以經(jīng)由切換模塊120連接請求處理器到并行處理模塊140。

圖6是圖示根據(jù)一個實施例的由異構計算系統(tǒng),例如,圖1的系統(tǒng)100,執(zhí)行的方法600的流程圖。參考圖6,當系統(tǒng)根據(jù)控制信號選擇多個處理器的一個連接到異構計算系統(tǒng)中的并行處理模塊,方法600開始(步驟610)。處理器包含不同的處理器類型,且每個處理器包含內部存儲器單元以儲存其上下文。此外,并行處理模塊包含多個執(zhí)行單元。并行處理模塊從選擇的一個處理器接收指令和多個數(shù)據(jù)條目(步驟620)。然后,并行處理模塊中的執(zhí)行單元并行對多個數(shù)據(jù)條目執(zhí)行指令(步驟630)。

每當控制信號選擇不同的處理器用于simd時方法600可重復步驟610-630。處理器間的上下文切換出現(xiàn)很少或沒有開銷。在一個實施例中,并行處理模塊用于在第一時鐘內完成第一處理器的執(zhí)行,并在第一時鐘周期后的第二時鐘周期內從第二處理器接收數(shù)據(jù)。

具有共享的計算單元和單獨的存儲器控制的異構計算系統(tǒng)已經(jīng)描述。計算單元(例如,并行處理模塊140)的共享減少硬件成本并增加硬件利用。每個處理器的單獨的存儲器控制使處理器能保持其上下文和數(shù)據(jù)流控制,并因此減少上下文開關開銷。由此,可改善系統(tǒng)的整個能量和計算效率。

圖4和6的流程圖的操作已經(jīng)參考圖1、3和5的示范性實施例描述。然而,應該理解圖4和6的流程圖的操作可以由除了圖1、3和5討論之外的本發(fā)明實施例執(zhí)行,且參考圖1、3和5討論的實施例可執(zhí)行不同于參考流程圖討論的實施例的操作。盡管圖4和6的流程圖顯示由本發(fā)明的某些實施例執(zhí)行的操作的特定順序,應該理解這樣的順序是示范性的(例如,備選實施例可以不同順序、結合某些操作、重復某些操作等執(zhí)行操作)。

盡管本發(fā)明已經(jīng)在若干實施例方面描述,本領域技術人員將意識到本發(fā)明不限于所述實施例,且可以在所附權利要求的精神和范圍內以修改和替代來實踐。描述因此被看作是說明性的而不是限制性的。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河西区| 杭锦旗| 柳河县| 牙克石市| 达日县| 天门市| 娄烦县| 郑州市| 肇源县| 昭平县| 青海省| 嘉义县| 沾益县| 醴陵市| 舞钢市| 铜梁县| 胶州市| 赣榆县| 普陀区| 阿瓦提县| 玉龙| 牡丹江市| 荃湾区| 太湖县| 定南县| 琼结县| 边坝县| 忻州市| 都昌县| 汨罗市| 望谟县| 北海市| 石景山区| 庆城县| 阜新| 确山县| 宝山区| 台中市| 神木县| 隆昌县| 浏阳市|