[發明專利]在SIMD處理單元中的任務執行有效
| 申請號: | 201410788491.0 | 申請日: | 2014-12-17 |
| 公開(公告)號: | CN104731561A | 公開(公告)日: | 2015-06-24 |
| 發明(設計)人: | J·豪森;J·里德肖;Y·C·富 | 申請(專利權)人: | 想象技術有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京市金杜律師事務所 11256 | 代理人: | 王茂華;辛鳴 |
| 地址: | 英國赫*** | 國省代碼: | 英國;GB |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | simd 處理 單元 中的 任務 執行 | ||
技術領域
本發明總體上涉及SIMD處理單元,并且更特別地涉及在SIMD處理單元中的任務執行。
背景技術
單指令多數據(SIMD)處理單元被布置為同時對多個數據項目執行相同操作。這允許SIMD處理單元并行處理數據項目,這可以比串行處理每個數據項目更高效。SIMD處理單元在將對大量數據項目執行相同指令(這在多媒體應用中是常見的)時特別有用。例如,圖形處理單元(GPU)可以使用SIMD處理單元以便對計算機生成的圖像的大量像素中的每個像素執行操作。相似地,用于處理(例如,由相機捕獲的)圖像數據的圖像處理單元(該圖像處理單元可以例如是相機處理流水線的部分)可以使用SIMD處理單元以便對圖像的大量像素中的每個像素執行操作。
任務可以由多個“工作項目”形成,其中可以執行任務的工作項目以由此對相應數據項目執行公共指令序列。也就是說,工作項目可以包括將對數據項目執行的指令序列,其中包括將對相應數據項目執行的相同指令序列的一組工作項目被一起分組成任務。每個任務可以包括上至預定最大數目的工作項目。可以在任務中包括的工作項目的最大數目可以在不同系統中變化,但是圖1代表可以包括上至三十二個工作項目102的任務100。為了清楚,在圖1中標注了工作項目102中的僅一些工作項目。圖1也指示了工作項目可以被包括在的在任務內的三十二個不同項目定位(從定位0到定位31)中的一些項目定位。可以并行執行在任務內的不同工作項目,因為它們是將對相應數據項目實施的指令的相應實例。任務100未充滿工作項目,并且因此被視為具有“部分空置(residency)”。也就是說,任務100包括少于三十二個工作項目,但是它具有用于三十二個工作項目的容量。在任務100中的在圖1中有底紋的定位包括工作項目,而在任務100中的在圖1中未被底紋化的定位不包括工作項目。因此,任務100在定位0到16包括用于在SIMD處理單元上執行的十七個工作項目而在定位17到31不包括工作項目。另外,在定位0到6、9、11、15和16的工作項目102是用于由SIMD處理單元執行的有效工作項目。然而,如以下更具體地說明的那樣,一些工作項目可能無效,在該情況下,它們將未被SIMD處理單元執行。在定位7、8、10和12到14的工作項目102在圖1中所示的示例中是無效工作項目并且被示出為交叉影線。
SIMD處理單元可以包括多個處理通道,每個處理通道被配置為在多個處理周期中的每個處理周期中執行工作項目的指令。圖2表示使用SIMD處理單元來處理任務,該SIMD處理單元包括在圖2中被表示為200的十六個處理通道。處理通道和處理周期的組合包括工作項目的指令可以在其中被處理的處理“時隙”。在這一情況下,處理周期是時鐘周期,并且圖2示出了被標注為clk?0、clk?1、clk?2和clk?3的四個時鐘周期。來自第一任務(任務100)的前十六個定位中的工作項目的指令被調度為在第一處理周期(clk?0)中跨越十六個處理通道執行;并且來自任務100的接下來十六個定位中的工作項目的指令被調度為在第二處理周期(clk?1)中跨越十六個處理通道執行。在接下來的時鐘周期(clk?2和clk?3)中,處理通道被調度為執行來自下一任務的工作項目。在任務具有部分空置時,然后將浪費一些處理時隙,即,將未在那些處理時隙中執行工作項目。這從圖2可見,因為任務100未在定位17到31包括工作項目,并且這樣在第二時鐘周期(clk?1)中將執行來自僅一個工作項目(10216)的指令。因此,十五個處理通道在圖2中所示的示例中在時鐘周期clk?1期間空閑。另外,如果無效工作項目被調度用于在處理時隙中執行則也浪費該處理時隙因為未處理無效工作項目因此在圖2中所示的示例中,處理通道7、8、10、12、13和14在第一處理周期(clk?0)期間空閑,因為工作項目1027、1028、10210、10212、10213和10214在任務100中是無效工作項目。在圖2中所示的系統因此出于以上給出的原因而造成浪費的處理時隙。
現代圖形應用編程接口(API)(比如OpenGL和Microsoft的DirectX)定義跨越在2x2像素四方格內的像素而進行操作的指令。例如,經常有必要通過“梯度”操作來確定在不同像素之間的可變數量的改變速率。這些指令的存在防止在將工作項目打包成任務時去除(與無效工作項目對應的)“空”像素時隙。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于想象技術有限公司;,未經想象技術有限公司;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410788491.0/2.html,轉載請聲明來源鉆瓜專利網。





