減少異構(gòu)計(jì)算系統(tǒng)中的冷tlb未命中的制作方法
【技術(shù)領(lǐng)域】
[0001]所公開(kāi)的實(shí)施方案涉及采用具有公用存儲(chǔ)器地址空間(物理和虛擬兩者)的不同類(lèi)型處理單元(例如中央處理單元、圖形處理單元、數(shù)字信號(hào)處理器或各種類(lèi)型的加速器)的異構(gòu)計(jì)算系統(tǒng)的領(lǐng)域。更具體地,所公開(kāi)的實(shí)施方案涉及在將任務(wù)從一種處理器類(lèi)型卸載到另一種處理器類(lèi)型時(shí)減少或避免此類(lèi)計(jì)算系統(tǒng)中的冷轉(zhuǎn)換后備緩沖器(TLB)未命中的領(lǐng)域。
【背景技術(shù)】
[0002]異構(gòu)計(jì)算系統(tǒng)通常采用不同類(lèi)型的處理單元。例如,異構(gòu)計(jì)算系統(tǒng)可使用共享公用存儲(chǔ)器地址空間(物理存儲(chǔ)器地址空間和虛擬存儲(chǔ)器地址空間兩者)的中央處理單元(CPU)和圖形處理單元(GPU)兩者。在使用GPU的通用計(jì)算(GPGPU計(jì)算)中,利用GPU來(lái)執(zhí)行傳統(tǒng)上由CPU執(zhí)行的某項(xiàng)工作或任務(wù)。CPU將任務(wù)切換或卸載到GPU,GPU繼而將執(zhí)行所述任務(wù)并且直接或通過(guò)將信息存儲(chǔ)在CPU在需要時(shí)能夠檢索到它的地方來(lái)為CPU提供結(jié)果、數(shù)據(jù)或其它信息。
[0003]雖然CPU和GPU常常共享公用存儲(chǔ)器地址空間,但常見(jiàn)的是,這些不同類(lèi)型的處理單元具有可針對(duì)特定類(lèi)型的處理單元進(jìn)行優(yōu)化的獨(dú)立地址轉(zhuǎn)換機(jī)制或分級(jí)結(jié)構(gòu)。也就是說(shuō),當(dāng)今的處理設(shè)備通常利用虛擬尋址方案來(lái)對(duì)存儲(chǔ)器空間進(jìn)行尋址。因此,轉(zhuǎn)換后備緩沖器(TLB)可用于將虛擬地址轉(zhuǎn)換成物理地址,以使得處理單元可定位待執(zhí)行的指令和/或待處理的數(shù)據(jù)。在任務(wù)切換的情況下,很可能的是,完成所卸載任務(wù)需要的轉(zhuǎn)換信息將從其它處理器類(lèi)型的TLB中缺失,從而導(dǎo)致冷(初始)TLB未命中。為了從TLB未命中恢復(fù),接收任務(wù)的處理器必須瀏覽存儲(chǔ)器頁(yè)面(通常被稱(chēng)為“頁(yè)面遍歷(pagewalk)”)以便在任務(wù)處理能夠開(kāi)始之前獲取轉(zhuǎn)換信息。通常,可以幾十至數(shù)百個(gè)時(shí)鐘周期計(jì)測(cè)量由于TLB未命中而導(dǎo)致的處理延遲或等待時(shí)間。
【發(fā)明內(nèi)容】
[0004]提供了一種用于避免具有至少一個(gè)中央處理單元(CPU)和一個(gè)或多個(gè)圖形處理單元(GPU)的異構(gòu)計(jì)算系統(tǒng)中的冷TLB未命中的方法。所述至少一個(gè)CPU和所述一個(gè)或多個(gè)GPU共享公用存儲(chǔ)器地址空間并且具有獨(dú)立的轉(zhuǎn)換后備緩沖器(TLB)。用于將任務(wù)從特定CPU卸載到特定GPU的方法包括將所述任務(wù)和轉(zhuǎn)換信息發(fā)送到所述特定GPU。所述GPU接收所述任務(wù)并且處理所述轉(zhuǎn)換信息以便在執(zhí)行所述任務(wù)之前將地址轉(zhuǎn)換數(shù)據(jù)加載到與所述一個(gè)或多個(gè)GPU相關(guān)聯(lián)的TLB中。
[0005]一種異構(gòu)計(jì)算機(jī)系統(tǒng)包括用于利用執(zhí)行任務(wù)或卸載所述任務(wù)的至少一個(gè)中央處理單元(CPU)以及耦合到所述至少一個(gè)CPU的第一轉(zhuǎn)換后備緩沖器(TLB)。還包括能夠執(zhí)行所述任務(wù)的一個(gè)或多個(gè)圖形處理單元(GPU)和耦合到所述一個(gè)或多個(gè)GPU的第二 TLB。公用存儲(chǔ)器地址空間耦合到所述第一 TLB和所述第二 TLB并且由所述至少一個(gè)CPU和所述一個(gè)或多個(gè)GPU共享。當(dāng)將任務(wù)從特定CPU卸載到特定GPU時(shí),轉(zhuǎn)換信息包括在所述任務(wù)切換中,所述特定GPU在執(zhí)行所述任務(wù)之前將地址轉(zhuǎn)換數(shù)據(jù)從所述轉(zhuǎn)換信息加載到所述第二 TLB 中。
【附圖說(shuō)明】
[0006]在下文中將結(jié)合以下附圖來(lái)描述各個(gè)實(shí)施方案,在附圖中類(lèi)似數(shù)字表示類(lèi)似元件,并且
[0007]圖1是異構(gòu)計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化示例性框圖;
[0008]圖2是示出根據(jù)一些實(shí)施方案的任務(wù)卸載的圖1的框圖;
[0009]圖3是示出根據(jù)一些實(shí)施方案的用于卸載任務(wù)的方法的流程圖;以及
[0010]圖4是示出根據(jù)一些實(shí)施方案的用于執(zhí)行所卸載任務(wù)的方法的流程圖。
【具體實(shí)施方式】
[0011]以下詳細(xì)描述本質(zhì)上僅僅是說(shuō)明性的,并且不意圖限制本公開(kāi)或本公開(kāi)的應(yīng)用和用途。如本文所使用,單詞“示例性”表示“充當(dāng)實(shí)例、例子或說(shuō)明”。因此,在本文中描述為“示例性”的任何實(shí)施方案不一定被解釋為比其它實(shí)施方案更優(yōu)選或更有利。本文所述的所有實(shí)施方案均為示例性實(shí)施方案,其被提供來(lái)使得本領(lǐng)域的技術(shù)人員能夠制作或使用所公開(kāi)的實(shí)施方案并且不限制本公開(kāi)的范圍,本公開(kāi)的范圍由權(quán)利要求書(shū)限定。此外,本公開(kāi)不希望受到在前面的技術(shù)領(lǐng)域、背景、概述或以下詳述中所呈現(xiàn)的或針對(duì)任何特定計(jì)算機(jī)系統(tǒng)的任何明顯或隱含的理論的束縛。
[0012]在本文件中,關(guān)系術(shù)語(yǔ)諸如第一和第二等可單獨(dú)使用以便將一個(gè)實(shí)體或動(dòng)作與另一個(gè)實(shí)體或動(dòng)作區(qū)別開(kāi),而并不一定要求或暗示此類(lèi)實(shí)體或動(dòng)作之間的任何實(shí)際的這種關(guān)系或次序。序數(shù)詞諸如“第一”、“第二”、“第三”等僅僅表示多個(gè)中的不同個(gè)體,并且不暗示任何次序或順序,除非由權(quán)利要求書(shū)的語(yǔ)言明確定義。
[0013]另外,以下描述提及“連接”或“耦合”在一起的元件或特征。如本文所使用,“連接”可表示一個(gè)元件/特征直接結(jié)合到另一個(gè)元件/特征(或與另一個(gè)元件/特征直接進(jìn)行通信),并且不必是機(jī)械地。類(lèi)似地,“耦合”可表示一個(gè)元件/特征直接或間接結(jié)合到另一個(gè)元件/特征(或與另一個(gè)元件/特征直接或間接進(jìn)行通信),并且不必是機(jī)械地。然而,應(yīng)當(dāng)理解,雖然以下可能將兩個(gè)元件描述為“連接的”,但還可以“耦合”類(lèi)似元件,并且反之亦然。因此,盡管本文所示的框圖描繪了元件的示例性布置,但在實(shí)際的實(shí)施方案中可存在額外的插入元件、設(shè)備、特征或組件。
[0014]最后,為簡(jiǎn)單起見(jiàn),本文可不再詳細(xì)描述與計(jì)算機(jī)系統(tǒng)相關(guān)的常規(guī)技術(shù)和組件以及計(jì)算機(jī)系統(tǒng)的其它功能方面(以及系統(tǒng)的各個(gè)操作組件)。此外,本文所包含的各種附圖中所示的連接線(xiàn)路旨在表示各種元件之間的示例性功能關(guān)系和/或物理耦合。應(yīng)注意,實(shí)施方案中可存在許多替代的或額外的功能關(guān)系或物理連接。
[0015]現(xiàn)在參照?qǐng)D1,示出了一個(gè)簡(jiǎn)化的示例性框圖,其示出采用共享公用存儲(chǔ)器(地址空間)110的中央處理單元(CPU)102Q-102N(統(tǒng)稱(chēng)為102)和圖形處理單元(GPU) 1040-104m(統(tǒng)稱(chēng)為104)的異構(gòu)計(jì)算系統(tǒng)100。存儲(chǔ)器110可以是任何類(lèi)型的合適存儲(chǔ)器,包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)(諸如SDRAM)、各種類(lèi)型的靜態(tài)RAM (SRAM)以及各種類(lèi)型的非易失性存儲(chǔ)器(例如PROM、EPROM、閃存、PCM或STT-MRAM)。
[0016]雖然CPU 102和GPU 104兩者利用同一個(gè)公用存儲(chǔ)器(地址空間)110,但這些不同類(lèi)型的處理單元中的每一個(gè)具有獨(dú)立的地址轉(zhuǎn)換機(jī)制,在一些實(shí)施方案中所述地址轉(zhuǎn)換機(jī)制可針對(duì)特定類(lèi)型的處理單元(即,CPU或GPU)進(jìn)行優(yōu)化。也就是說(shuō),在基本實(shí)施方案中,CPU 102和GPU 104利用虛擬尋址方案來(lái)對(duì)公用存儲(chǔ)器110進(jìn)行尋址。因此,轉(zhuǎn)換后備緩沖器(TLB)用于將虛擬地址轉(zhuǎn)換成物理地址,以使得處理單元能夠定位待執(zhí)行的指令和/或待處理的數(shù)據(jù)。如圖1中所示,CPU 102利用TLBepu 106,而GPU 104利用獨(dú)立的TLBgpuK^如本文所使用,TLB是最近使用的或預(yù)測(cè)為不久將使用的來(lái)自公用存儲(chǔ)器110的頁(yè)表112的轉(zhuǎn)換映射的緩存,其用于提高虛擬存儲(chǔ)器地址轉(zhuǎn)換速度。頁(yè)表112包括用于存儲(chǔ)虛擬存儲(chǔ)器地址與物理存儲(chǔ)器地址之間的映射的數(shù)據(jù)結(jié)構(gòu)。虛擬存儲(chǔ)器地址對(duì)于訪(fǎng)問(wèn)過(guò)程是唯一的,而物理存儲(chǔ)器地址對(duì)于CPU 102和GPU 104是唯一的。頁(yè)表112用于將執(zhí)行過(guò)程查看到的虛擬存儲(chǔ)器地址轉(zhuǎn)換成物理存儲(chǔ)器地址,CPU 102和GPU 104使用所述物理存儲(chǔ)器地址來(lái)處理指令和加載/存儲(chǔ)數(shù)據(jù)。
[0017]因此,當(dāng)CPU 102或GPU 104試圖訪(fǎng)問(wèn)公用存儲(chǔ)器110 (例如,試圖取出位于特定虛擬存儲(chǔ)器地址的數(shù)據(jù)或指令、或試圖將數(shù)據(jù)存儲(chǔ)到特定虛擬存儲(chǔ)器地址)時(shí),必須將虛擬存儲(chǔ)器地址轉(zhuǎn)換成對(duì)應(yīng)的物理存儲(chǔ)器地址。因此,在將虛擬存儲(chǔ)器地址轉(zhuǎn)換成物理存儲(chǔ)器地址時(shí),TLB首先進(jìn)行搜索以試圖提供快速轉(zhuǎn)換。通常,TLB具有固定數(shù)量的槽,這些槽包含將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址的地址轉(zhuǎn)換數(shù)據(jù)(條目)。TLB通常是內(nèi)容可尋址存儲(chǔ)器,其中搜索關(guān)鍵字是虛擬存儲(chǔ)器地址并且搜索結(jié)果是物理存儲(chǔ)器地址。在一些實(shí)施方案中,TLB是單個(gè)存儲(chǔ)器緩存。在一些實(shí)施方