TW201732545A - 異構計算系統和方法 - Google Patents
異構計算系統和方法 Download PDFInfo
- Publication number
- TW201732545A TW201732545A TW106106379A TW106106379A TW201732545A TW 201732545 A TW201732545 A TW 201732545A TW 106106379 A TW106106379 A TW 106106379A TW 106106379 A TW106106379 A TW 106106379A TW 201732545 A TW201732545 A TW 201732545A
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- processing module
- parallel processing
- computing system
- instruction
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 74
- 238000000034 method Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 18
- 238000013479 data entry Methods 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 21
- 239000000463 material Substances 0.000 description 4
- 238000012913 prioritisation Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 102000006822 Agouti Signaling Protein Human genes 0.000 description 1
- 108010072151 Agouti Signaling Protein Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
Abstract
本發明揭示一種異構計算系統和方法,系統包含多個不同處理器類型的處理器,其中每個處理器包含內部記憶體單元以儲存其當前上下文;並行處理模組,包含多個執行單元;以及切換模組,耦合到處理器和並行處理模組,其中切換模組根據控制信號選擇處理器的一個以使用並行處理模組,用於並存執行具有多個資料條目的指令。基於以上方案,本發明可以改進能量和計算效率。
Description
本發明實施例關於異構計算,尤其是關於異構計算系統和方法。
根據丹那德微縮(Dennard scaling),電壓和電流應該與電晶體的線性尺寸成比例,且功耗(電壓和電流的乘積)應該與電晶體的面積成比例。由於電晶體的大小持續縮減,可以放進晶片相同面積的電晶體的數目以指數方式增加。因此,預測每瓦計算性能還可以指數增加。然而,丹那德微縮似乎在近十年裡被破壞了。即使電晶體的大小持續縮減,每瓦計算性能並沒有以相同的速率改進。對於丹那德微縮的破壞有各種原因。一個原因就是很小的電流洩漏可導致晶片發熱,這將增加能量成本以及熱流失的風險。為了防止熱流失,晶片上的部分矽在給定熱設計功率(TDP)約束的標稱操作電壓下不能被打開(power on)。此現象被稱作“暗矽(dark silicon)”,在現代處理器中顯著地約束每瓦計算性能。
丹那德微縮的破壞已經提示晶片製造商採取多核處理器設計。然而,即使多核處理器也遭遇相同的“暗矽”問
題。依據處理器架構、冷卻技術以及應用工作負擔,暗矽的數量可超過50%。因此,在現代電腦系統中需要改進能量和計算效率。
有鑑於此,本發明提出一種異構計算系統和方法。
在一個實施例中,揭示一種異構計算系統。系統包含多個不同處理器類型的處理器,其中每個處理器包含內部記憶體單元以儲存其當前上下文;並行處理模組,包含多個執行單元;以及切換模組,耦合到處理器和並行處理模組,其中切換模組根據控制信號選擇處理器的一個以使用並行處理模組,用於並存執行具有多個資料條目的指令。
在另一實施例中,揭示一種由異構計算系統執行的方法。包含根據控制信號,選擇多個處理器的一個以連接異構計算系統中的並行處理模組,其中所述器包含不同處理器類型且每個處理器包含內部記憶體單元以儲存其上下文,以及其中並行處理模組包含多個執行單元;由並行處理模組從處理器的一個接收具有多個資料條目的指令;以及由執行單元並行對多個資料條目執行指令。
基於以上方案,本發明可以改進能量和計算效率。
100‧‧‧異構計算系統
160‧‧‧系統記憶體
150‧‧‧互連
130‧‧‧統一解碼器
140‧‧‧並行處理模組
120‧‧‧切換模組
170‧‧‧上下文切換控制器
112‧‧‧處理器
118‧‧‧記憶體介面
210‧‧‧GPU著色器
211‧‧‧命令佇列
212‧‧‧控制單元
214‧‧‧程式寄存器檔
215‧‧‧共用緩衝器
216‧‧‧特殊函數
220‧‧‧DSP
221、234‧‧‧定序器
222‧‧‧DMA
223‧‧‧本地緩衝器
231‧‧‧專門記憶體介面
232‧‧‧特定功能
233‧‧‧專門緩衝器
310a-310d‧‧‧資料獲取
320a-320d‧‧‧指令解碼
331‧‧‧前端
332‧‧‧後端
330‧‧‧資料管線
340‧‧‧指令翻譯
410、420、430、440、450、460、610、620、630‧‧‧步驟
510‧‧‧第一硬體仲裁模組
520‧‧‧第二硬體仲裁模組
第1圖圖示根據一個實施例的異構計算系統的架構。
第2圖圖示根據一個實施例的異構計算系統中不同處理器類型的處理器。
第3圖圖示根據一個實施例的統一解碼器的示例。
第4圖是圖示根據一個實施例的處理器切換過程的流程圖。
第5圖圖示根據一個實施例的上下文切換控制器的示例。
第6圖是圖示根據一個實施例的由異構計算系統執行的方法的流程圖。
在以下的描述中,闡述許多具體細節。然而,要理解,本發明的實施例可在沒有這些具體細節的情況下實踐。在其它實例中,已知電路、結構和技術沒有詳細顯示以防止模糊了對此描述的理解。然而,本領域的技術人員將意識到,本發明可在沒有這樣的具體細節下實踐。本領域的普通技術人員利用所包含的描述,將能夠在不需要過度實驗的情況下實現適當的功能。
異構計算系統包含多於一個類型的處理器工作協力執行計算任務。例如,異構計算系統可包含處理器,例如,一個或多個中央處理單元(CPU)、一個或多個圖形處理單元(GPU)、一個或多個數位訊號處理器(DSP)、一個或多個專用指令組處理器(ASIP)、一個或多個專用積體電路(ASIC)等。在一些實施例中,處理器可都集成到晶片上系統(SoC)平臺。
作為示例,異構計算系統可包含CPU、GPU、DSP、ASIP和ASIC的組合。CPU執行通用計算任務。DSP和ASIP執行信號、圖像和/或多媒體處理操作。DSP和ASIP都是可程式設計
的。ASIP的示例是執行由系統支援的特定功能的專門的硬體加速器。ASIC是執行預定序列特定操作的固定功能處理器;例如,編碼和解碼。GPU執行圖形處理任務;例如,創建3D場景的2D光柵表示。這些圖形處理任務被稱作3D圖形管線或渲染管線。3D圖形管線可以由用於加速計算的固定功能的硬體以及允許在圖形渲染中的靈活性的通用可程式設計硬體的組合來實施。通用可程式設計硬體也被稱作著色器硬體。除了渲染圖形,著色器硬體還可執行通用計算任務。
異構計算系統中的處理器典型地包含並存執行硬體,用於執行單個指令多個資料(single-instruction-multiple-data,SIMD)操作。在現有技術系統這樣的SIMD架構單獨地實施於每個處理器中。因此,在這些系統中,SIMD架構被複製。由複製的SIMD架構佔據的區域沒有完全利用,因為不是所有處理器同時執行SIMD執行。
根據本發明的實施例,異構計算系統使用包含多個執行單元的共用的並行處理模組(例如,算數邏輯單位(ALU))執行SIMD操作。執行單元的共用減少了硬體成本並增加了硬體利用。當SIMD執行從一個處理器到另一處理器的切換時,為了減少上下文切換開銷,每個處理器保持單獨的記憶體控制。更具體地,每個處理器在其內部記憶體單元(例如,寄存器和/或緩衝器)保持其上下文。每個處理器也具有其自己的記憶體介面,用於從系統記憶體(例如,動態隨機存取記憶體(DRAM))裝置存取指令和資料。單獨的記憶體控制減少上下文切換的數目並因此增加能量和計算效率。
計算中的術語“上下文切換”通常指的是儲存和恢復過程或執行緒的狀態(也被稱作“上下文”)以便可以在以後從相同的點繼續執行的機制。上下文的示例包含,但不限於程式計數器、堆疊指標、寄存器內容等。根據本發明的實施例,共用執行單元的處理器在本地且單獨地儲存他們的相應上下文(例如,執行狀態),以便當SIMD執行從第一處理器到第二處理器的切換時,沒有或很少上下文切換開銷用於儲存第一處理器的上下文以及恢復第二處理器的上下文。即,不使用用於處理器間上下文切換的通常方法和共用的緩衝器,每個處理器在其內部記憶體單元(例如,本地緩衝器)儲存其自己的上下文。當SIMD執行從第一處理器到第二處理器的切換時,第一處理器的上下文保持在第一處理器中,並當後面需要時準備好使用。第二處理器的上下文在第二處理器中,並可由第二處理器立刻使用。單獨的上下文管理避免當SIMD執行處理器之間的切換時上下文存儲和恢復的時間和能量消耗。
此外,每個處理器具有其自己的記憶體介面,用於從系統記憶體存取指令、資料和其它資訊。術語“記憶體介面”指的是可以存取系統記憶體的處理器中的硬體單元。記憶體介面的示例包含,但不限於直接記憶體存取(DMA)單元、負載和儲存單元等。具有單獨的記憶體介面使處理器能保持他們的具體資料流程控制。
第1圖圖示根據一個實施例的異構計算系統100的示例架構。系統100包含不同類型的多個處理器112,例如,GPU、DSP、ASIP、ASIC等(在第1圖中顯示為P1,P2,...PN)。
在一個實施例中,每個處理器112包含記憶體介面118用於存取系統記憶體160(例如,動態隨機存取記憶體(DRAM)或其它易失性或非易失性隨機存取記憶體)。一些處理器可包含處理器上暫存器和/或處理器上緩衝器。一些處理器112可包含不同於其它處理器112的特定功能的單元。一些(例如,至少兩個)處理器112具有定義不同指令和/或指令格式的不同指令組架構(ISA)。在一個實施例中,每個處理器112可以是執行由其ISA定義的指令的可程式設計處理器。在另一實施例中,處理器112可包含固定功能的處理器或可程式設計處理器與固定功能的處理器的組合。
處理器112經由互連150連接到系統記憶體160。處理器112也連接到切換模組120,其還連接到統一解碼器130和並行處理模組140。切換模組120可以被控制以將任何一個處理器112連接到統一解碼器130和並行處理模組140。並行處理模組140包含多個執行單元(EU)142;例如,ALU。每個執行單元142執行算術或邏輯操作,且並行處理模組140,作為整體執行SIMD操作。即,並行處理模組140可以並行方式在多個資料條目上執行單個指令。由執行單元142執行的指令具有根據定義用於並行處理模組140的指令組架構(ISA)的指令格式。由執行單元142執行的資料具有定義於一組統一的資料格式的統一的資料格式。例如,統一的資料格式可包含全精度、短整數、浮點、長整數等。在一個實施例中,並行處理模組140可包含在資料陣列上執行向量操作的向量執行單元。
在一個實施例中,切換模組120由上下文切換控制
器170控制,其可以是硬體單元或位於一個或多個CPU或其它控制硬體或由一個或多個CPU或其它控制硬體執行的軟體方法。上下文切換控制器170確定SIMD執行應該切換到哪個處理器112,並生成選擇處理器112連接到並行處理模組140的控制信號。上下文切換控制器170的示例在第5圖中提供。在一個實施例中,處理器112可發送請求,如果有任何優先順序資訊,則和優先順序資訊一起發送到上下文切換控制器170(在第1圖中顯示為單線箭頭)以請求連接。選擇的處理器112然後可經由切換模組120和統一解碼器130發送具有多個資料條目的指令(在第1圖中顯示為具有填充圖案的箭頭)到並行處理模組140用於執行。在一個實施例中,統一解碼器130可解碼或翻譯指令到統一的指令格式以及將伴隨的源運算元解碼或翻譯為統一資料格式用於由並行處理模組140執行。即,統一解碼器130可解碼或翻譯不同的ISA指令為並行處理模組140的ISA。在執行指令後,執行結果發送到系統記憶體160或處理器上緩衝器。
在一個實施例中,異構計算系統100可以是移動計算和/或通信裝置(例如,智慧型電話、平板電腦、膝上型電腦、遊戲裝置等)的一部分。在一個實施例中,異構計算系統100可以是臺式計算系統、伺服器計算系統或雲計算系統的一部分。
第2圖圖示根據一個實施例的第1圖的處理器112的示例。例如,處理器112可包含GPU著色器210、DSP 220以及ASIP 230。儘管三個處理器類型顯示於在此示例中,要理
解,在備選實施例中存在更多或更少處理器類型,且每個處理器類型可具有任何數量的處理器。此外,也應理解所示GPU著色器210、DSP 220以及ASIP 230的功能的特徵出於說明的目的已經被簡化,在備選實施例中,這些處理器可包含更多、更少和/或不同于顯示於第2圖中的部件。在第2圖的實施例中,所有三個處理器112具有不同的ISA;在備選實施例中,處理器112可具有更多或更少(至少兩個)不同的ISA。此外,儘管未示出於第2圖的示例中,在上述備選實施例中,處理器112可包含固定功能的處理器,例如,ASIC用於執行指定操作的預定序列。每個處理器112可以選擇以發送SIMD指令和資料到並行處理模組140用於SIMD操作,且可從並行處理器140接收執行結果(即中間資料)。
GPU著色器210是專門用於圖形操作的可程式設計處理器。在一個實施例中,GPU著色器210包含命令佇列211、控制單元212、程式寄存器檔214、共用緩衝器215、特殊函數216、記憶體介面118以及其它單元。控制單元212的示例包含但不限於,分支預測符、命令獲取單元等。DSP 220是可程式設計處理器,其包含定序器221、直接記憶體訪問(DMA)222、本地緩衝器223、記憶體介面118以及其它單元。ASIP 230也是可程式設計處理器,其包含專門記憶體介面231、專門緩衝器233、特殊函數232、定序器234、記憶體介面118以及其它單元。此外,GPU著色器210、DSP 220以及ASIP 230的一個或多個可包含,用於儲存近來訪問的和/或從系統記憶體160獲取的預獲取的資料的緩存,以及用於儲存在其它資訊中由並行處理模
組140生成的中間資料的緩衝器或其它類型的臨時記憶體。DSP 220以及ASIP 230是可程式設計處理器,用於執行特定功能。特定功能216和232的示例包含但不限於:特定數學功能的單元,例如,正弦、余弦和對數功能、圖形處理、語音資料處理、視頻處理以及影像處理。
在一個實施例中,每個處理器包含內置機制(例如,命令佇列211、定序器221以及定序器234)用於確定接下來執行哪個指令,以及內部寄存器或緩衝器(即,處理器上寄存器或處理器上緩衝器)用於儲存當前上下文,例如程式計數器、堆疊指標、寄存器內容等。當SIMD執行從第一處理器到第二處理器的切換時,第二處理器儲存的上下文可以快速(例如,一個週期內)從其內部寄存器或緩衝器獲取以開始該執行過程。第一處理器的上下文儲存於其內部寄存器或緩衝器,用於當SIMD執行切換到第一處理器時快速獲取。
儘管每個處理器包含內部寄存器或緩衝器,以儲存其上下文,在一些場景中,上下文的數量可超過這些內部寄存器或緩衝器的容量。例如,當單個處理器執行多個任務,且一個或多個任務具有即時約束,處理器可在多個任務中切換上下文。為了儲存這些多個任務的上下文,如果上下文的數量超過其內部上下文存儲容量,處理器可使用外部緩衝器(即,處理器外緩衝器或晶片外緩衝器)以儲存上下文。
第3圖是圖示統一解碼器130的一個實施例的示意圖。在本實施例中,統一解碼器130包含前端331和後端332,由切換模組120分開。前端331和後端332分別是來自切換模組
120的上游和下游。前端331還包含資料獲取(310a-d)和指令解碼(320a-d)。使用處理器P1作為示例,由P1獲取的指令由指令解碼320a解碼。指令解碼320a根據處理器P1的ISA解碼指令。資料獲取310a根據解碼指令從處理器上記憶體(例如,資料緩存)獲取來源操作數。然後,當P1被選擇用於連接並行處理模組140時,指令和獲取的資料經由切換模組120被發送到後端332。
在一些實施例中,前端331可以是一個或多個處理器112的部分;即,處理器的本地解碼和獲取電路的部分。例如,如虛線所示,處理器P1可包含指令解碼320a和資料獲取310a為其本地解碼和獲取電路的部分。如果解碼為非SIMD指令則指令由P1執行;如果解碼為SIMD指令,指令被發送到並行處理模組140用於執行。在一些實施例中,一個或多個處理器112,例如,固定功能的處理器執行操作的預定序列,並因此不需要解碼指令。這些固定功能的處理器不包含本地解碼電路用於解碼指令。在此情況下(例如,P4),當執行SIMD操作時,統一解碼器130提供生成指示符的指令解碼320d。指示符可指定待執行的SIMD操作以及SIMD操作的資料格式。當P4選擇用於連接並行處理模組140時,由資料獲取310d獲取的指示符和來源操作數然後經由切換模組120發送到後端332。
在第3圖的實施例中,統一解碼器130的後端332包含資料管線330和指令翻譯340。指令翻譯340可將來自不同處理器112(例如,不同ISA)的指令翻譯為由並行處理模組140執行的統一指令格式。此外,資料管330可修改來自處理器112
的資料(例如,源運算元)為由並行處理模組140執行的統一資料格式。例如,如果源運算元是雙精度格式,且雙精度不由並行處理模組140支援,則資料管330可修改源運算元為浮點數據。由第3圖的部件執行的過程將參考第4圖在以下提供。
第4圖是圖示根據一個實施例的處理器切換過程400的流程圖。過程400可以由異構計算系統執行,例如,第1圖的系統100。當控制信號選擇處理器(“目標處理器”)以使用並行處理模組140用於SIMD執行(步驟410),目標處理器根據其在本地儲存的上下文獲取指令以執行(步驟420)。目標處理器可從其指令緩存或儲存在目標處理器中本地的命令佇列獲取指令。解碼指令以及獲取源運算元(步驟430),其然後經由切換模組120發送到統一解碼器130(例如,第3圖的後端332)。統一解碼器130解碼或翻譯指令為可執行格式用於由並行處理模組140執行的SIMD(步驟440)。在接收指令和來源操作數後,執行單元142並行對多個來源操作數執行相同指令(步驟450)。並行處理模組140返回執行結果到處理器112(SIMD指令從其發送)或系統記憶體160(步驟460)。
當每次處理器選擇用於SIMD執行時,過程400從步驟410重複。例如,當控制信號選擇另一處理器(“下一處理器”)用於SIMD執行時,下一處理器可使用其在本地儲存的上下文以獲取指令用於執行而不重裝載和恢復上下文到其本機存放區器。此外,以前的處理器(即,目標處理器)的上下文可保留在本地在目標處理器中。目標處理器可使用其在本地儲存的上下文繼續執行非SIMD操作,或可等待其順序以再次使用並
行處理模組140用於SIMD執行。
第5圖是圖示第1圖的上下文切換控制器170的實施例的示意圖。在本實施例中,上下文切換控制器170包含第一硬體仲裁模組510和第二硬體仲裁模組520。在備選實施例中,上下文切換控制器170可包含更多、更少或不同於第5圖中所示的硬體模組。在備選實施例中,一些硬體模組可以至少部分地由運行於硬體處理器上的軟體實施。
上下文切換控制器170可使用不同的硬體模組以為具有不同優先順序的請求實現不同的排程策略。例如,在第5圖的實施例中,來自不指示優先順序的處理器的請求可由第一硬體仲裁模組510處理,第一硬體仲裁模組510根據預定第一策略來排程請求;例如,迴圈策略。來自指示優先順序或即時約束的處理器請求可由第二硬體仲裁模組520處理,第二硬體仲裁模組520根據預定第二策略來排程請求,例如,優先順序排程。即,具有更高優先順序設定或更緊即時約束的請求首先排程以便連接。例如,來自軟體系統具有高優先順序設定的請求可以是來自運行語音呼叫軟體應用以處理語音呼叫DSP的請求。語音呼叫可以在來自過程(例如,背景過程)低優先順序請求之前連接到並行處理模組140。作為另一示例,具有來自硬體系統的即時約束的請求可以是來自視頻解碼器的請求。視頻解碼器可要求滿足即時約束以每秒解碼特定數目的幀。具有即時約束的這樣的請求被給出高的優先順序。當請求被處理,上下文切換控制器170發出控制信號以經由切換模組120連接請求處理器到並行處理模組140。
第6圖是圖示根據一個實施例的由異構計算系統,例如,第1圖的系統100,執行的方法600的流程圖。參考第6圖,當系統根據控制信號選擇多個處理器的一個連接到異構計算系統中的並行處理模組,方法600開始(步驟610)。處理器包含不同的處理器類型,且每個處理器包含內部記憶體單元以儲存其上下文。此外,並行處理模組包含多個執行單元。並行處理模組從選擇的一個處理器接收指令和多個資料條目(步驟620)。然後,並行處理模組中的執行單元並行對多個資料條目執行指令(步驟630)。
每當控制信號選擇不同的處理器用於SIMD時方法600可重複步驟610-630。處理器間的上下文切換出現很少或沒有開銷。在一個實施例中,並行處理模組用於在第一時鐘內完成第一處理器的執行,並在第一時鐘週期後的第二時鐘週期內從第二處理器接收資料。
具有共用的計算單元和單獨的記憶體控制的異構計算系統已經描述。計算單元(例如,並行處理模組140)的共用減少硬體成本並增加硬體利用。每個處理器的單獨的記憶體控制使處理器能保持其上下文和資料流程控制,並因此減少上下文開關開銷。由此,可改善系統的整個能量和計算效率。
第4圖和6的流程圖的操作已經參考第1圖、3和5的示範性實施例描述。然而,應該理解第4圖和6的流程圖的操作可以由除了第1圖、3和5討論之外的本發明實施例執行,且參考第1圖、3和5討論的實施例可執行不同於參考流程圖討論的實施例的操作。儘管第4圖和6的流程圖顯示由本發明的某些實
施例執行的操作的特定順序,應該理解這樣的順序是示範性的(例如,備選實施例可以不同順序、結合某些操作、重複某些操作等執行操作)。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧異構計算系統
160‧‧‧系統記憶體
150‧‧‧互連
130‧‧‧統一解碼器
140‧‧‧並行處理模組
120‧‧‧切換模組
170‧‧‧上下文切換控制器
112‧‧‧處理器
118‧‧‧記憶體介面
Claims (20)
- 一種異構計算系統,包含:多個不同處理器類型的處理器,其中每個處理器包含內部記憶體單元以儲存相應處理器的當前上下文;並行處理模組,包含多個執行單元;以及切換模組,耦合到所述處理器和所述並行處理模組,其中所述切換模組根據控制信號選擇所述處理器的一個以使用所述並行處理模組,用於用多個資料條目並存執行指令。
- 如申請專利範圍第1項所述的異構計算系統,其中,所述處理器包含可程式設計處理器的組合,所述可程式設計處理器的至少兩個具有不同的指令組架構。
- 如申請專利範圍第1項所述的異構計算系統,其中,所述處理器包含可程式設計處理器和固定功能的處理器的組合。
- 如申請專利範圍第1項所述的異構計算系統,其中,所述處理器根據儲存於相應內部記憶體單元的當前上下文通過相應記憶體介面從系統記憶體獲取指令和資料。
- 如申請專利範圍第1項所述的異構計算系統,其中,還包括:統一解碼器,用於解碼不同指令組架構的指令為所述並行處理模組定義的統一指令格式,並將不同格式的資料修改為統一資料格式以便由所述並行處理模組執行。
- 如申請專利範圍第5項所述的異構計算系統,其中,所述統一解碼器還包括前端,用於根據解碼指令解碼指令以獲 取源運算元,以及後端,用於將指令翻譯為統一指令格式並修改所述來源操作數為統一資料格式。
- 如申請專利範圍第1項所述的異構計算系統,其中,還包括上下文切換控制器,用於從所述處理器接收請求,根據所述請求的優先順序排程請求,並生成所述控制信號。
- 如申請專利範圍第7項所述的異構計算系統,其中,上下文切換控制器還包括至少一個硬體仲裁模組,用於優先處理具有高優先順序設定或即時約束的所述請求以便連接所述並行處理模組。
- 如申請專利範圍第1項所述的異構計算系統,其中,所述處理器包含至少圖形處理單元。
- 如申請專利範圍第1項所述的異構計算系統,其中,所述並行處理模組用於在第一時鐘週期完成第一處理器的執行,並在所述第一時鐘週期後在第二時鐘週期從第二處理器接收資料。
- 一種異構計算系統的方法,包含:根據控制信號,選擇多個處理器的一個以連接所述異構計算系統中的並行處理模組,其中所述處理器包含不同處理器類型且每個處理器包含內部記憶體單元以儲存相應處理器的上下文,以及其中所述並行處理模組包含多個執行單元;由所述並行處理模組用多個資料條目從所述處理器的一個接收指令;以及由所述執行單元並存執行所述多個資料條目上的所述指 令。
- 如申請專利範圍第11項所述的方法,其中,所述處理器包含可程式設計處理器的組合,所述可程式設計處理器的至少兩個具有不同的指令組架構。
- 如申請專利範圍第11項所述的方法,其中,所述處理器包含可程式設計處理器和固定功能的處理器的組合。
- 如申請專利範圍第11項所述的方法,其中,還包括:根據儲存於相應內部記憶體單元的當前上下文通過相應記憶體介面由所述處理器從系統記憶體獲取指令和資料。
- 如申請專利範圍第11項所述的方法,其中,還包括:由耦合到所述並行處理模組的統一解碼器解碼不同指令組架構的指令為為所述並行處理模組定義的統一指令格式;以及由所述統一解碼器將不同格式的資料修改為統一資料格式用於由所述並行處理模組執行。
- 如申請專利範圍第15項所述的方法,其中,所述解碼和所述修改還包括:由所述統一解碼器的前端根據解碼指令解碼指令以獲取來源操作數;以及由所述統一解碼器的後端將指令翻譯為統一指令格式並修改所述來源操作數為統一資料格式。
- 如申請專利範圍第11項所述的方法,其中,還包括:由上下文切換控制器從所述處理器接收請求;由所述上下文切換控制器根據所述請求的優先順序排程請 求;以及由所述上下文切換控制器生成所述控制信號。
- 如申請專利範圍第17項所述的方法,其中,排程所述請求還包括:以高優先順序設定或即時約束來區分請求用於連接所述並行處理模組。
- 如申請專利範圍第11項所述的方法,其中,所述處理器包含至少圖形處理單元。
- 如申請專利範圍第11項所述的方法,其中,還包括:由所述並行處理模組在第一時鐘週期完成第一處理器的執行;以及由所述並行處理模組在所述第一時鐘週期後在第二時鐘週期從第二處理器接收資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/065,447 US20170262291A1 (en) | 2016-03-09 | 2016-03-09 | Heterogeneous computing system with a shared computing unit and separate memory controls |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201732545A true TW201732545A (zh) | 2017-09-16 |
Family
ID=59786584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106106379A TW201732545A (zh) | 2016-03-09 | 2017-02-24 | 異構計算系統和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170262291A1 (zh) |
CN (1) | CN107180010A (zh) |
TW (1) | TW201732545A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI765511B (zh) * | 2020-08-10 | 2022-05-21 | 南韓商韓領有限公司 | 在使用者介面故障保安載入資訊之電腦實行系統以及電腦實行方法 |
TWI831729B (zh) * | 2022-09-22 | 2024-02-01 | 大陸商摩爾線程智能科技(北京)有限責任公司 | 處理多個任務的方法、處理設備以及異構計算系統 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107621948B (zh) * | 2017-09-25 | 2021-04-13 | 深圳市紫光同创电子有限公司 | 现场可编程门阵列及其指令解码方法 |
CN111274023B (zh) * | 2018-12-05 | 2022-11-22 | 上海寒武纪信息科技有限公司 | 数据处理方法、装置、计算机系统和存储介质 |
WO2021199283A1 (ja) * | 2020-03-31 | 2021-10-07 | 富士通株式会社 | 画像処理制御装置、画像処理制御プログラム、及び画像処理制御方法 |
US20220383446A1 (en) * | 2021-05-28 | 2022-12-01 | MemComputing, Inc. | Memory graphics processing unit |
US11886877B1 (en) | 2021-09-24 | 2024-01-30 | Apple Inc. | Memory select register to simplify operand mapping in subroutines |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915414B2 (en) * | 2001-07-20 | 2005-07-05 | Zilog, Inc. | Context switching pipelined microprocessor |
CN101551761A (zh) * | 2009-04-30 | 2009-10-07 | 浪潮电子信息产业股份有限公司 | 一种异构多处理器中共享流内存的方法 |
WO2012147364A1 (en) * | 2011-04-28 | 2012-11-01 | Digital Media Professionals Inc. | Heterogeneous graphics processor and configuration method thereof |
US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
-
2016
- 2016-03-09 US US15/065,447 patent/US20170262291A1/en not_active Abandoned
- 2016-06-06 CN CN201610395024.0A patent/CN107180010A/zh not_active Withdrawn
-
2017
- 2017-02-24 TW TW106106379A patent/TW201732545A/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI765511B (zh) * | 2020-08-10 | 2022-05-21 | 南韓商韓領有限公司 | 在使用者介面故障保安載入資訊之電腦實行系統以及電腦實行方法 |
US11561838B2 (en) | 2020-08-10 | 2023-01-24 | Coupang Corp. | Computerized systems and methods for fail-safe loading of information on a user interface using a circuit breaker |
TWI831729B (zh) * | 2022-09-22 | 2024-02-01 | 大陸商摩爾線程智能科技(北京)有限責任公司 | 處理多個任務的方法、處理設備以及異構計算系統 |
Also Published As
Publication number | Publication date |
---|---|
CN107180010A (zh) | 2017-09-19 |
US20170262291A1 (en) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408036B (zh) | 用户级分叉与结合处理器、方法、系统和指令 | |
TW201732545A (zh) | 異構計算系統和方法 | |
US10552201B2 (en) | Software-assisted instruction level execution preemption | |
US10235175B2 (en) | Processors, methods, and systems to relax synchronization of accesses to shared memory | |
US9830156B2 (en) | Temporal SIMT execution optimization through elimination of redundant operations | |
US10242420B2 (en) | Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta | |
CN108885586B (zh) | 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令 | |
JP2013025823A (ja) | 仮想gpu | |
US20130124838A1 (en) | Instruction level execution preemption | |
US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
US8803891B2 (en) | Method for preempting graphics tasks to accommodate compute tasks in an accelerated processing device (APD) | |
US8959319B2 (en) | Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction | |
US9032099B1 (en) | Writeback mechanisms for improving far memory utilization in multi-level memory architectures | |
US20120198458A1 (en) | Methods and Systems for Synchronous Operation of a Processing Device | |
US20120194525A1 (en) | Managed Task Scheduling on a Graphics Processing Device (APD) | |
US20120188259A1 (en) | Mechanisms for Enabling Task Scheduling | |
US9170820B2 (en) | Syscall mechanism for processor to processor calls | |
US8984511B2 (en) | Visibility ordering in a memory model for a unified computing system | |
US20130135327A1 (en) | Saving and Restoring Non-Shader State Using a Command Processor | |
US9329893B2 (en) | Method for resuming an APD wavefront in which a subset of elements have faulted | |
US20130141446A1 (en) | Method and Apparatus for Servicing Page Fault Exceptions | |
US20140201505A1 (en) | Prediction-based thread selection in a multithreading processor | |
US20220147393A1 (en) | User timer directly programmed by application | |
US20130155079A1 (en) | Saving and Restoring Shader Context State | |
TW202107275A (zh) | 用於暫存器記憶體的系統及設備 |