TW200828179A - Dual independent and shared resource vector execution units with shared register file - Google Patents
Dual independent and shared resource vector execution units with shared register file Download PDFInfo
- Publication number
- TW200828179A TW200828179A TW096136488A TW96136488A TW200828179A TW 200828179 A TW200828179 A TW 200828179A TW 096136488 A TW096136488 A TW 096136488A TW 96136488 A TW96136488 A TW 96136488A TW 200828179 A TW200828179 A TW 200828179A
- Authority
- TW
- Taiwan
- Prior art keywords
- vector
- unit
- instruction
- processing
- vector unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
200828179 九、發明說明: 【發明所屬之技術領域】 本發明大體係關於影像處理之領域,且更特定言之,係 關於支援影像處理的向量單元。 ” 【先前技術】 通常將自三維場景再現二維影像之過程稱為影像處理。 影像處理之料目標為盡可能逼真地進行二維仿真或再現 二維場景。此料再現較逼真場景之尋求已導致影像之複 雜性增加亚導致產生詩處理複雜影像之創新方法。 通常將表^料景之二維影像㈣於-監視器或某一 類型之顯示幕上。現代監視器藉由像素之使用而顯示影 像。像素為最小空間區域,其可在一監視器上被照亮。多 數現代電腦監視器使用數十萬或數百萬像素之組合以組成 整個顯示或再現場景。個別像素經配置於以柵格圖案中且 共同覆,監視器之整個觀看區域。可照亮每—個別像素以 再現一最終圖片以用於觀看。 -種使用像素將一真實世界三維場景再現於二維監視器 上的方法被稱為光柵化。光柵化為取得以向量格式(場景 内幾何物件之數學表示)表示的二維影像及將該影像轉換 成個別像素以在監視器上顯示的過程。光栅化在迅速再現 圖形及制相對較少4之計算能力方㈣有效的;然而, 光栅化經受某些缺點。舉例而言,光栅化通常經受缺乏真 實性,因為光柵化並非基於光的實體特性,而其係基於投 影於二維平面上的場景中之三維幾何物件的形狀。此外, 124554.doc 200828179 • 以光柵化再現場景所需的計算能力直接與待再現之場景中 之物件的複雜性之增加成比例。當影像處理變得更加逼真 時,再現之場景變得更複雜。因此,隨影像處理發展而光 栅化文影響,因為光柵化直接與複雜性成比例。 •。另一種使用像素將一真實世界三維場景再現於二維監視 器上的方法稱為射線追蹤。射線追蹤技術追蹤進入一待再 現於一電腦螢幕上之三維場景中的假想射線(其表現類似 • 於光線)之傳播。射線源於坐在電腦螢幕後的觀看者之眼 睛亚朝向三維場景橫穿過組成電腦榮幕之像素。每一經追 蹤之射線繼續進入場景中且可與場景内之物件相交。若射 線與場景内之物件相交,則該物件之特性及若干其他影響 因素(例如,光源之效應)用於計算色彩量及光量,或若射 2未與該物件相交,則射線被曝露。此科算接著用於確 疋、、二追如之射線所通過的像素之最終色彩。 對於單一場景進行多次追蹤射線之處理。舉例而言,單 ·—射線可經追蹤用於顯示中之每—像素…旦足夠數目之 射線已經追縱以確定組成電腦勞幕之二維顯示的所有像素 色心便可將二維場景之二維合成顯示於電腦營幕上以 供觀看者觀看。 旦射線追蹤通常比光栅化更逼真地再現真實世界三維場 2。此部分地歸因心下事實:射線追縱仿真光線如何在 ”實世界&境中行進及表現,而非如光柵化所冑,簡單地 將三維形狀投影於二維平面上。因此,使用射線追縱所再 現的圖形更準確地在監視器上描繪吾人眼睛在真實世界中 124554.doc 200828179 習慣看到的圖形。 此外,射線追蹤亦比光柵化更好地處理增加之場景複雜 性。射線追蹤與場景複雜性成對數比例關係。此係歸因於 以下事實:即使場景變得較複雜,亦可將相同數目之射線 投射至場景中。因此,不同於光柵化,當場景變得較複雜 時射線追蹤並不在計算能力t求方面受影響。’
而,射線追蹤之一主要缺點為需要大量的浮點, 且因此需要增加處理能力(再現場景所快料 現時(例如,當諸如在遊戲控制台中影像處理系統為動晝 目的而再現圖形時)此產生問題。歸因於增加之計算需 求,射線追蹤難以足夠快地再現動晝則吏其看起來= (逼真的動畫為每秒約二十至二十四訊框)。 ” 使用(例如)射線追蹤之影像處理可涉及執行向量與標量 數學。因此’支援f彡像處理之硬體可包括經㈣以執行多 種計算之向量及標量單元。舉例而言,向量及標量運算可 追蹤經過場景之光線的路徑或三維場景内之運動物件。— 向量單元可對與場景中之物件相關的向量執行運算(例 二’點積及叉積)。-標量單元可對標量值執行算術運算 (列如j加法、減法、乘法、除法及其類似運算)。 向量及標量單元可經管線化(pipeline)以改良效能。然 :、,執仃向量運算可涉及執行可彼此依賴之多個指令的多 二迭代。指令之間的、此等相關性可降低管線化單元之效 :。舉例而言’為了使第一指令在執行第二指令之前完 成’可讓若干管線階段不被使用。 124554.d〇( 200828179 二匕外,影像處理計算可涉及向量單元與標量單元之間的 大里相互作用°因為先前技術實施向量及標量單元,該等 向:及標量單元可經獨立地配給,且具有其自身各別暫存 :檔:旦:該等單元之間傳送資料通常非常低效。舉例而 。‘里早兀可將資料自記憶體載入至其相關聯之暫存器 執行標量運算1接著將計算結果儲存回記憶體 。奴後’可將來自標量計算之結果載入至與向量 暫㈣㈣中以執行向量運算。 -傳运貪料至記憶體及傳送來自記憶體之資料以在標 咸r:::X之間傳达育料’且指令之間的相關性可引入 缝衫像處理之顯著延遲,藉此㈣地影響 及動晝之能力。 、一如像 製:此,需要用於執.行射線追蹤之更有效的方法、系統及 【發明内容】 本發明大體係關於影像處理之領域,且更特定 關於支援影像處理的向量單元。 ” 本發明之-實施例提供_通常包含—第_ 第二向量單元之處理器。該第-向量單元及該第一二 元=自一,一向量指令二= :理通道0_)及經组態以執行一標量指令之至 處理通道’該第-向量單元及該第二向量單亓…/、 立地且同時地執行指令。 心以獨 本發明之另-實施例提供一種用於處理指令之方法。該 124554.doc 200828179 方法通f包含發出第一指令至第—向量單元及同時發出第 二指令至第二向量單元,其中該第-向量單元及該第二向 量單元經㈣以獨立地且同時地處理該第-指令及該第二 指令。 本發明之又-實施例提供—種通f包含彼此可通信地輕 接=數個處理器的系統。每一處理器通常可包含一第— 向里早元及一弟二向量單元。令證 旦 該弟一向ΐ單元及該第二向 …各自包含經組態以執行一向量指令之複數個 =理通道及經組態以執行-標量指令之至少-標量處 1通道’該第一向量單元及該第二向量單元經組態以獨立 地且同時地執行指令。 【實施方式】 本發明大體係關於影像處理之領域,且更特定言之,係 :於支㈣:象處理的向量單元。描述雙向量單元實施,其 篁單元經組態以自一共用暫存器擋案接收資料。 Ιί早Γ可獨立地且料地處理指令。此外,該等向 處理整合於一單元Γ;Γ二错此將向量處理與標量 中;對於一些實施例,向量單元亦可經 h以共享資源以執行單1算(例如,又積運算)。 不描Γί發明之實施例,’應瞭解本發明 Γ θ田、之Λ知例。實情為,預期以下特徵及元件 :否與不同實施例相關)之任何組合實施並實踐本發 術之在各種實施例中,本發明提供許多優於先前技 I點。然而’儘管本發明之實施例可達成優於其他可 124554.doc 200828179 月b解決方案及/或優於先前技術之優點,但是不論是否由 給定實施例達成一特定優點並不是本發明的限制。因此, 以下態樣、特徵、實施例及優點僅為例示性的,且除在申 請專利範圍中明確闡述以外並非將以下態樣、特徵、實施 例及優點認為是附加申請專利範圍之要素或限制。同樣, 不應將提及”本發明”認為是對本文中所揭示之任何發明標 • 的之概括,且除在申請專利範圍中明確闡述以外不應將其 • 認為是附加申請專利範圍之要素或限制。 例示性處理器布局及通信網路 圖1說明一例示性多核心處理元件i 〇〇,其中可實施本發 明之實施例。多核心處理元件1 00包括複數個基本通量引 擎(basic throughput engine)105(BTE)。BTE 105可含有複 數個處理執行緒(processing thread)及一核心快取(例如, L1快取)。位於每一 BTE内之處理執行緒可有權存取一共 享多核心處理元件快取11 〇(例如,L2快取)。 φ BTE 105亦可有權存取複數個入箱(inbox)115。入箱115 可為一記憶體映射位址空間。可將入箱n5映射至位於 BTE 105之每一者内的處理執行緒。位於BTE内之每一執 敲 行緒可具有一纪憶體映射入箱並有權存取所有其他記憶體 • 映射入箱115。入箱115組成一由BTE 105使用的低潛時及 高頻寬通信網路。 BTE可將入箱115用作一網路以彼此通信並在bte中再分 配資料處理工作。對於一些實施例,獨立出箱(〇utb〇x)可 用於通信網路(例匆)以接收由BTE 105處理之結果。對於 124554.doc -11 - 200828179 其他實施例,入箱11 5亦可充當出箱,例如,一 bte 1 〇5直 接將處理函數之結果寫入至將使用該等結果之另一 BTE 10 5的入箱。 可將影像處理系統之聚集效能與BTE可如何很好地分割 及再分配工作聯繫起來。入箱115之網路可用於收集工作 並將其分配至其他BTE,而不破壞具有無訊框與訊框相干 I*生的BTE通佗資料封包之共享多核心處理元件快取11 〇。 φ 每訊框可再現數百萬個三角形的影像處理系統可包括許多 以此方式連接的BTE 105。 在本發明之一實施例中,可將一βτε ι〇5之執行緒指派 給卫作負荷管理器。影像處理系統可使用多種軟體及硬體 組件以自三維場景再現二維影像。根據本發明之一實施 例:影像處理系統可使用工作負荷管理器以使用由影像處 理系統發出之射線來遍曆空間索引。可將空間索引實施為 用於將相對較大之三維場景分成較小之包絡空間咖㈣⑻ 籲 VGlume)的樹型f料結構4用用於影像處理之射線追蹤 方法的影像處理系統可使用空間索引以迅速確定射線包 “間相又。在本發明之一實施例中,工作負荷管理器可 糟由使用空間索引來執行射線-包絡空間相交測試。 、、在本發明之—實施例中,多核心處理元件⑽上之多核 心處理元件BTE 1G5之其他執行緒可為向量通量引擎。在 =負荷管理器確定射線.包、絡空間相交後,工作負荷管 η經由入箱115發出(發送)射線至複數個向量通量引擎 ^者。向量if量引擎可接著確定射線是否與包絡空間 124554.doc • 12 - 200828179 内所含有之圖元(primitive)相交。肖量通量引擎亦可執疒 與確定射線所通過的像素之色彩相關的運算。 仃 圖2說明根據本發明之一實施例的多核心處理元件之衾 路2〇〇。圖2亦說明本發明之一實施例,其中多核心處= 件100之BTE之-者的執行緒為一工作負荷管理器2〇5。根 據本發明之一實施例,多核心處理元件之網路2〇〇中的每 -多核心處理元件22()ι·Ν可含有一工作負荷管理器2〇5ι·ν。 根據本發明之一實施例,多核心處理元件之網路2〇〇中的 每一處理器220亦可含有複數個向量通量引擎21〇。 根據本發明之一實施例,工作負荷管理器2〇5ι_ν可使用 一高速匯流排225以與其他工作負荷管理器2〇5^及/或其 他多核心處理元件220之向量通量引擎21〇通信。向量通量 引擎210之每一者可使用高速匯流排225以與其他向量通量 引擎210或工作負荷管理器2〇5通信。工作負荷管理器處理 器205可使用鬲速匯流排225以收集與影像處理相關之任務 並將其分配至其他工作負荷管理器處理器2〇5,且/或將任 務分配至其他向量通量引擎21〇。高速匯流排225之使用可 允許工作負荷管理器2〇5ιν通信,而不影響具有與工作負 荷官理器205通信相關之資料封包的快取230。 例示性三維場景 圖3為一待由影像處理系統再現的例示性三維場景3〇5。 物件320可在三維場景305内。圖3中之物件320為不同幾何 形狀。儘管圖3中說明僅四個物件320,但是典型三維場景 中之物件的數目可更多或更少。通常,三維場景將具有比 124554.doc -13- 200828179 圖3中所說明之多得多的物件。 可在圖3中所見,物件為不同幾何形狀及尺寸。舉例 而δ ’圖3中之-物件為錐體32〜。⑸中之其他物件為盒 形體32〇B.D。在許多現代影像處理㈣中,通常將物件分 解成較小幾何形狀(例如,正方形、圓形、三角形等)。接 著由若干較小簡單幾何形狀表示較大物件。此等較小幾何 形狀通常被稱為圖元。 場景305中還說明光源325a b。光源可照亮位於場景 内之物件32G。此外’視場景3G5内之光源奶及物件之 位置而定’光源可使陰影投射於場景305内之物件上。 可藉由-影像處理系統將三維場景3〇5再現於二維圖片 中。影像處理系統亦可使二維圖片顯示於監視器3ι〇上。 監視器310可使用許多不同色彩之像素330以再現最終二維 圖片。 一種由影像處理系統使用以再現三維場景3〇5於二維圖 片中的方法被稱為射線追蹤。藉由影像處理系統自觀看者 3 15之視點”發出"或”發射”射線至三維場景3〇5中而實現射 線追蹤。射線具有類似於光線之特性及行為。 可在圖3中看見一射線34〇,其在觀看者315之位置處起 始並橫穿過三維場景305。當射線34〇自觀看者315橫穿至 三維場景305時,射線340通過將由影像處理系統再現最終 二維圖片的平面。在圖3中,由監視器31〇表示此平面。由 像素335表示射線340通過平面或監視器31〇之點。 如先前簡要論述,多數影像處理系統使用數千(但並非 124554.doc -14- 200828179 數百萬)個像素之柵格330以將最終場景再現於監視器3i〇 上。每一個別像素可顯示一不同色彩以將最終合成之二維 圖片再現於監視器3 10上。使用射線追蹤影像處理方法以 自三維場景再現二維圖片的影像處理系統將計算該發出之 射線或該等發出之射線在三維場景中遇到的色彩。影像處 理%不將接著指派由射線所遇到的色彩至射線在其自觀看 者至三維場景之路徑上通過的像素。
每一像素所發出之射線的數目可改變。一些像素可具有 許多經發出用於再現特定場景之射線。在該狀況下,藉由 來自經發出用於像素之所有射線的每—色彩貢獻而確定像 素之最終色彩。其他像素可僅具有—經發出以確定二維圖 片中之像素之所得色彩的單—射線。—些像素可並不具有 由影像處理“發出的任何麟,在該狀況下其色彩可藉 由影像處理系統中之演算法而確^、估計或指派。0 為確定二維圖片中之像素335之最終色彩,影像處理 統必須確定射線340是否與場景内之一物件相交❶若射 並非與場景内之一物件相交,則其可經指派一預設背景 (例如’表示白天或夜晚天空的藍色或黑色)。相反,當: 線340橫穿過三維場景時’射線34()可撞擊物件。當射線; 擊場景内之物件時,物株夕洛忽 牛色杉可、、至才曰派給射線所通過: 像素。然而,物件之$ &β #
^ 色I必須在其經指派給像素之前被J 許夕口素可衫響由原始射線34〇撞擊之物件的色彩。 例而言,三維場景内之光源可照亮物件。此外,物件之 124554.doc •15- 200828179 體特性可影響物件之色彩。舉例而言,若物件為反射或透 明物件’則其他非光源物件可接著影響物件之色彩。 為了確定來自三維場景内之其他物件的影響,可自原始 射線340與物件相交之點發出第二射線。舉例而言,一種 類型的第二射線可為险旦< Μ姑 -马陰如射線。陰影射線可用於確定至原 • ㉟射線WO與物件相父之點的光之貢獻。另-種類型之第 二射線可為透射射緩。读^^ 4 、裏透射射線可用於確定何種色彩或光 φ Τ透射穿過物件之本體。此外,第三種類型之第二射線可 為反射射線。反射射線可用於確定何種色彩或光經反射至 物件上。 如上文所提及’ 一種類型之第二射線可為陰影射線。可 自原始射線與物件的相交點至三維場景3〇5内之光源追縱 每-陰影射線。若在射線到達光源前射線不遇到另一物件 而到達光源,則光源將在原始射線撞擊物件之點處照亮由 原始射線撞擊之物件。 • 舉例而言,陰影射線341α可自原始射線340與物件32〇α 相交之點發出,且可沿朝向光源325α之方向橫穿。陰影^ 線341八到達光源325α而不遇到場景3〇5内之任何其他物件 . 320。因此,光源325α將在原始射線34〇與物件32〇 a相交的 點處照亮物件320A。 其他陰影射線可使其路徑在原始射線撞擊物件之點與由 二維場景内之另一物件所阻擋的光源之間。若阻擋原始射 線撞擊的物件上之點與光源之間的路徑之物件為不透明 的,則光源將不會在原始射線撞擊物件之點處照亮物件。 124554.doc -16- 200828179 因此,光源可並不影響原始射線之色彩且因此亦不影響待 再現於二維圖片中之像素的色彩。然而,若物件為半透明 或透明物件,則光源可在原始射線撞擊物件之點處照亮物 件0 舉例而言,陰影射線341B可自原始射線340與物件320
A
相交之點發出,且可沿朝向光源325b之方向橫穿。在此實 例中,陰影射線341b之路徑由物件320d阻擋。若物件32〇〇 為不透明的,則光源325b將不會在原始射線34〇與物件 320A相父之點處照亮物件32〇a。然而,若物件32心為半透 明的或透明的,則光源325b可在原始射線34〇與物件32〇A 相父之點處照亮物件32〇A。 另種類型之第二射線為透射射線。若原始射線與其相 交的物件具有透明或半透明特性(例如,玻璃),則影 像處理㈣發线㈣線。透射m㈣始射線撞擊 物件之角度相關的角度橫穿過物件。舉例而言,看見透射 射線344橫穿過原始射線340與其相交之物件32〇a。 另-種類型之第二射線為反射射線。若原始射線與其相 交的物件具有反射特性(例如,金屬飾面(metai制叫), 則將由影像處理系統發出反射射線以確定可藉由物件反射 何種色彩或光。反射射線以—與原始射線與物件相交之角 度相關的角度遠離物件而橫穿。舉例而言,可藉由影像處 理糸統發出反射射線343以確定可藉由原始射、㈣峨其相 交的物件320A反射何種色彩或光。 所有弟一射線(例如 ’陰影射線、透射射線、反射射線 124554.doc -17· 200828179 等)之色彩及光的總貢獻將產生原始射線所通過的像素之 最終色彩。 向量運算 處理影像可涉及執行一或多個向量運算以確定(例如)射 , 、線與物件之相父’陰影射線、反射射線及其類似射線之產 纟纟〜像處理期間執行的共用運算為兩個向量之間的又 冑運T執仃又積以確定表面(例如,三維場景中之物 • #之圖兀的表面)之法向量。法向量可指示觀看者是否可 看見物件之表面。 如先前所描述’可將場景中之每—物件表示為彼此連接 以形成物件之形狀的複數個圖元。舉例而言,在一實施例 中,每-物件可由複數個相互連接之三角形組成。圖4說 明一由複數個三角形410組成之例示性物件4〇〇。物件 可為一由圖4中之複數個三角形41〇形成的球形物件。為說 明之目的’展示-粗糙的球形物件。熟習此項技術者將瞭 • 解物件彻之表面可以大量較小三角形彻來形成以較佳地
近似一曲面物件D 在本發明之一實施例中,可計算每一三角形41〇之表面 ·&線以確㈣看者450是否可看見三角形之表面。為確定 每一三角形之表面法線,可在表示三角形之兩邊的兩個向 量之間執行叉積運算。舉例而言,可藉由在向量411&與 4Hb之間執行叉積而計算三角形41〇a之表面法線413。 法向量可確定一表面(例如,圖元之表面)是否面向觀看 者。參看圖4,法向量413沿觀看者45〇之方向而指向。因 124554.doc -18- 200828179 此’三角形410可顯示給使用者。另一方面,三角形侧 之法向量化遠離觀看者柳而指向。因此,三角形侧可 不會顯示給使用者。 圖5說明在兩個向量八與3之間的又積運算。如所說明, 向量A可由座標[Xa,ya,Za]來表示,且向量B可由座標[Xb, yb,來表示。又積AxB產生垂直(正交)於一包含向量 B之平面的向量Νβ如所說明,法向量之座標為[“_
ybZa),(xbZa-XaZb),(Xayb_Xbya)J。熟習此項技術者將瞭解, 向量A可對應於圖4中之向4411a,向量B可對應於向量 411b ’且向量N可對應於法向量413。 在影像處理期間執行的另—共料量運算為點積運算。 可執行點積運算以確^場景中之物件的旋轉、運動、定位 及㈣似情況。點積運算產生一獨立於座標系統且表示歐 幾,德^間之内積的標量值。以下等式描述在先前描述之 向量A與B之間執行的點積運算:
AmB^xa^b+ya^yb+za.zb 支援執行向量運算之硬體 如先前所描述,向量通量引擎(VTE)(例如,圖2中之實 例VTE 21G)可執行運算以確定射線是否與圖元相交,並確 定射線所通過之像素的色彩。所執行之運算可包括複數個 向量運算及標量運算。因此,VTE 21()可經組態以發出指 令至用於執行向量運算之向量單元。 向量處理可涉及發出一或多個向量指令。該等向量指令 可經組態魏行涉及第-暫存器巾之—或多個運算元及第 124554.doc -19- 200828179 二暫存器中之-或多個運算元的運算。第一暫存器及第二 暫存器可為與向量單元相關聯之暫存器權案的_部分。圖 6說明包含-或多個運算元之例示性暫存器_。如圖艸 所說明,暫存器擋案中之每一暫 (· 节仔态可包含複數個區段 (section),其中每一區段包含一運算元。 在圖6中所說明之實施例中’將暫存器_展示為一 128 ^暫存器。如所說明,可將暫存器刚分成四個32位元 I組區段:字組〇;字組1;字組2;及字組3。如所說明, 子組〇可包括位以-31,字組i可包括位元32_63,字组2可 包括位元64-97’且字組3可包括位元98·ΐ27。然而,孰習 此項技術者將瞭解,暫存器_可為任何適當長度之暫存 斋且可包括任何適當長度之任何數目的區段。 暫存器_中之每一區段可包括一用於向量運算之運算 -。舉例而言,暫存器600可包括向量(例如,圖5之向量 Α)之座標及資料。因此’字組。可包括座標、,字組工可包 且字組2可包括座標&。字組3可包括與-與向 1相關聯之圖元相關的資料’例如,色彩、透明度及豆類 似資料。在-實施例中,字組3可用於儲存標量值。桿量 值可(或可不)與字組Ο·2中所含有之向量座標相關。 圖7說明—例示性向量單元7〇〇及一相關聯之暫存器權幸 710。向量單元期可經組態以執行單指令多資mSIM· 令。換吕之,向量單元700可對一或多個向量進行運算以 產生單-標量或向量結果。舉例而言,向量單元7〇〇;對 包含一❹個向量之資料元執行並行運算以產生標量或向 124554.doc 200828179 量結果。 可將由向量單元進行運算之複數個向量儲存於暫存器檔 案710中舉例而έ,在圖7中,暫存器擋案川提 職元暫存器卿叫可以一類似於圖6之暫存器 _之方式組織該等暫存器711之每一者。因此,每一暫存 裔711可包括向吾咨輕 . 白里貝枓,例如,向量座標、像素資料、透 明度及其類似資料。可#用_ —- 冑用載入及儲存扣令在暫存器檔案 仏體(例如’快取記憶體)之間交換資料。因此,可 將暫存器擋案710與記憶體設備(例如’動態隨機存取記憶 體(DRAM)設備)可通信地耦接。 ‘ 一複數個通道720可連接暫存器#案71〇至向量單元7〇〇。 每一通道可經組態以提供自暫存器 入。舉例而言,在圖7中,三個128位元宰通至二里接=之輸 宏5(^旦兀逋道連接暫存器檔 二向里早凡·。因此,可—次將來自暫存器檔案川之 任何3個暫存器的内容提供給向量單元。 可將由向量單元計算的運算結果 710 〇 · 至暫存器檔案 °舉例而έ,一 128位元通道721提供_宜、n w 由向量單元7 0 0 4瞀少社里合 寫迴路徑以將 700计异之結果寫回至暫存器檔案 711之任一者。 ’仔益 二說明向量單元議之詳細視圖。向量單元8〇〇為圖7中 :描1曰之向量單元7〇0的一實施例。如圖8中所說明,向量 早疋800可包括複數個處理通道。舉例而言,圖8中展示三 個處理通道810、820及830。每一處理、s m * 理通道可經組態以與 一或夕個其他處理通道-起並行地執行運算。舉例而言, 124554.doc -21- 200828179 每一處理通道可使一對一 算。藉由使向量單元之不;7相乘以執行叉積或點積運 乘,可料巾料㈣運算元相 速及更有效地執行向量運算。 一:=理通道可經管線化以進一步:良效能。因此,每 個:綠、道可包括用於對運算元執行-或多個運算的複數 官線階段。舉例而言,每-向量通道可包括一用於使 對運算元830及831相乘之乘沐突以 便 :法器851。可自耦接暫存器檔 柔與向3:早兀之通道(例 (例如圖7中之通道720)之一者得到 异凡〇及831。在本發明之一實施例中,可在如圖8中 ㈣明的管線之第-階段中執行運算元之乘法。 母處理通道亦可包括一用於對準由乘法器所計算 之積的對準态。舉例而言,可在每一處理通道中提供一對 準。。852 準器852可經組態以將由乘法器⑸所計算之 積的小數點調整至結果中的一所要位置。舉例而言,對準 器852可經組態以將由乘法器851所計算之積的位元移位二 或多個位置’藉此得到所要格式之積。雖然圖8中將對準 展示為一獨立管線階段,但是熟習此項技術者將瞭解,可 在同一管線階段中執行乘法及對準。 母處理通道亦可包括一用於使兩個或兩個以上運算元 相加之加法器853。在一實施例(圖8中所說明)中,每一加 法器853經組態以接收由乘法器計算之積,並將該積與另 一運算元832相加。可自連接暫存器檔案至向量單元的通 道之一者得到運算元832(類似於運算元83〇及831)。因此, 每一處理通道可經組態以執行一乘-加,指令。熟習此項技 124554.doc -22- 200828179 術者將瞭解,在向量運算 ^ ^ 肀頻繁地執行乘-加指令。因 此’藉由在並行通道争執 執仃右干乘-加指令,可顯著改良 句1處理之效率。 如圖8中所說明,每一 母向置處理通道亦可包括一標準化 "又及一四捨五入階段0因此,可在每一處理通道中提供 一標準化器854。檸準介 — 、匕时854可經組態來以一方便的指數
::表示一計算值。舉例而言’標準化器可接收作為運算 *之值0.0000063。標準化器854可將該值轉換成一更適 二f數格式’例如,6.3X1G·6。四捨五人階段可涉及將 十开值四捨五入至一所要的小數點數目。舉例而言,若 結果中需要僅三個小數位,則可將計算值1〇5682349四 入至10.568。在本發明之—實施例中,四捨五入器可 對四捨五^器經設計以對其起作用的特定精度浮點數之最 低有效位元進行四捨五入。 熟習此項技術者將瞭解,本發明之實施例不限於上文及 圖8中所描述之特定管線階段 '組件及組件的配置。舉例 而言,在一些實施例中’對準器852可經組態以對準運算 凡832 &乘法|§計算之積或兩者。此外,本發明之實施 例不限於圖8中所描述之料組件。所說明之組件與額外 、件(諸如(但不限於)前導零加法器、除法器等)之任何組 合可包括於每一處理通道中。 使用單一向量單元執行叉積 、使用—向量單元(例如,向量單元800)執行叉積運算可 ν及夕個指令。舉例而言,返回參看圖5,叉積運算需要 124554.doc -23- 200828179 六個乘法運算及三個減法運算。因為向量單元_包括具 有三個乘法器之三個處理通道’所以執行叉積運算可涉及 多個指令。 圖9A說明用於藉由發出多個指令至向量單元而執行叉積 運算的例示性指令。執行又積運算可涉及發出複數個置換 I曰令901。該等置換指令可經組態以將用於執行又積運瞀 之運算元移動至暫存器檔案之所要的暫存器中之所要的: 置。舉例而言’置換運算可將資料自第一暫存器傳送至第 二暫存器。置換指令亦可選擇一特定位置(例如,特定字 組位置(參看圖6))以用於將資料自—暫存器傳送至另一暫 存器。在-實施例中’置換指令可重新配置同—暫存器内 之資料元的位置。 -旦運算元在所要的暫存器中之所要的位置中,便可發 出第一指令902以執行第一組乘法運算。第一組乘法運^ 可執行用以執行叉積運算所需的6個乘法運算中之一或多 者。舉例而言’在一實施例中,第一組乘法 個乘法運算中之三個。可在向量單元之三個處理通= 一者中執行多個運算。可將第—組乘法運算之結果儲存回 暫存器檔案之一或多個暫存器中。 P現後可發出一第二指令903以執行第二組乘法運算。 第二組乘法運算可執行未在第一組乘法運算中執行的又積 之剩餘乘法運算。在_實施例中,第二指令可涉及執行第 一組多個運算與減法運算以完成叉積運算。 舉例而言,返回參看圖8,運算元83〇及831可與用於執 124554.doc -24 - 200828179 行第二組乘法運算之運算元相關聯。可將第一組乘法運算 之結果減去第二組乘法運算之結果,或將第二組乘法運算 之結果減去第一組乘法運算之結果。可(例如)經由圖8之運 算元832將第一組乘法運算之結果作為一輸入提供至加法 器853以用於執行減法運算。 、如先岫所論述,由向量單元執行的指令可經管線化。因 為相關性可存在於置換指令9〇1、第一乘法指令902與第二 乘法#曰令903之間,所以可一或多個管線階段暫停。舉例 而言,直至將運算元移動至適當暫存器中之適當位置中才 :執行第-乘法指令。因此,直至完成置換指令才可執行 第-乘法指令’藉此需要管線暫停。類似地,因為第二乘 法指令可使用來自第一乘法指令之結果,所以直至完成第 曰令才可執行第二乘法指♦’藉此需要第-乘法指 7 /、苐一乘法指令之間的管線暫停。 圖9β彡兄明在圖中所% Β 荇‘ ㈣中所呪明之叉積指令之間的管線之暫 分。如圖9B中所說明,可藓 ^ 叉積。如所說明,執行:=:置換指令901開始執行 令〇1可涉及暫停第一乘法 子曰γ 9〇2之執行。圖9B中 可執杆μ —、 *之虛線框中說明經暫停之階段。 算元適當地位於適當::::允許用於第-乘法運算之運 管明第一乘法指令9〇2與第二乘法指令9〇3之間的 管線之暫二:::第:乘法指令與第二乘法指令之間的 令。因此,如圖-中所說明,;弟二乘法指 至弟乘法指令之四捨五 124554.doc -25- 200828179 入階段完成,第二乘法 杳私令才可進入管線。 雙向量單元實施 在本發明之一實施例中 指令之處理。因此, 7/又°里早70以改良向量 嚴开可^ &供兩個獨立向量單元。兩個向量 早凡可存取相同暫存琴栲 a 描曰A ‘案。此外,雙向量單元可包括一 標量處理通道,藉此敕人人 里早兀祜 精此整合向量指令與標量 圖10說明根據本發明之告A I之處理。
…… 之一實施例的雙向量單元。如圖 中所祝明,雙向量栗 旦σο — 匕括弟一向量單元1010及第二向 里早疋1020。母一向吾留- —^ _ 曰 兀可經組態以經由耦接暫存器檔 案1030至向量單元1〇1〇及1〇2〇 一 或夕個通道接收來自同 一暫存器檔案1030之一痞客桐辦女抑 次夕個暫存斋的資料。舉例而言, 二個通道1011輛接暫存器槽索 于裔;荼與向Ϊ早元1010且三個通道 1021耦接暫存器檔案與向量單元1〇2〇。 通道urn及urn可類似於圖7中之輕接暫存器檔案71〇盘 向量單元700的通道72G。在本發明之—實施例中,通道 及刪可為128位元寬以分別將f料自暫存器權案 刪中之128位元寬暫存器提供至向量單元⑻0及1020。 热習此項技術者將瞭解,耦接向量單元至暫存器檔案之通 道的數目不限制本發明。可提供任何適當數目的通道以耦 接每一向量單元與暫存器檔案。此外,一向量單元無需具 有與其他向量單元相同數目的通道。 圖10中所說明之實施例的一優點在於:可實施複數個向 篁早元’而無用於為母一向置早元增加更多的暫存器構宰 的額外空間的複雜性及消耗。可以一類似於圖7中之暫存 124554.doc -26· 200828179 器檔案710之古 々式配置暫存器檔案1030,且暫存器擋案 /、有、、、工、、、且態以儲存向量及標量資料之複數個暫存 器。 此^夕卜5 暫^ 哭也 心擒案1030可經組態以經由(例如)通道1〇11 及1021同時發ψ 4匕人^ λ 知出私令至向量單元1010及1〇2〇。舉例而言, X 知令至向量單元1010且可獨立地發出一第二 7至向里單元1020,藉此允許並行地處理兩個獨立指
令。藉由^行地處理指令,可極大改良效能。 暫存器槽案亦可包括—或多個寫人埠1G31。寫入埠1031 可、、二、、且恶以接收來自向量單元1010及1020之每一者的結果 ^將該^果儲存於暫存器權案内之-暫存H中。在本發 κ轭例中,寫入埠可同時將資料寫入至暫存器檔案 中之不同暫存哭Φ。缺 时宁;、、'、而’兩個或兩個以上寫入埠不可同 日t將貝料寫入至暫存器檔案中之相同暫存器中。 暫存器播案_亦可包括-讀料1032及寫人埠1033以 用於與記憶體交換資料。舉例而言,可經由載人及儲存指 “工由埠1032及1033將來自暫存器標案旧。中之暫存器的 資料與記憶體交換。
圖10中所說明之雙向II ^ π里早兀的另一優點在於:每一向量 單元除包括向量處理诵:;蓄々k 地逋道外遷包括一標量處理通道。舉例 而言,向量單元1010包括二 匕祐一個向量處理通道1013及一重疊 標量處理通道1012。同描,& θ β 且 」樣向置皁元1 〇2〇包括三個向量處 理通道1023及一重疊擇吾♦抑 且輙里處理通道1〇22。每一標量通道 1012及1022可經組態以執耔擗田、安# , 。A钒仃払$運算。因此,可並行地執 124554.doc -27· 200828179 行向量及標量運算。 舉例而言,可發出一標量指令至向量單元刪且可發出 -向量指令至向量單元1020。假如該等指令之間無:目關 性,則可並行地執行向量及標量運算。可在向量單元咖 之標量通道urn中執行標量運算’且可在向量單元咖之 向量處理通道1023中執行向量運算。然而,更一般而言, 可獨立地發出向量指令與標量指令之任何組合至向量^ 1010及1020 ’藉此改良效能。 此外’藉由允許向量單元執行標量運算,避免了在向量 早:與標量單元之間傳送資料的低效率。如先前所描述, 先刖㈣需,將記憶體用作一媒體以在向量單元與標量單 元之間父換貧料。使用ip惜辦六始次 之用汜隐體乂換貧料可能效率非常低。 藉由允許暫存器檔案中之標署眘祖 , τ之&里貝料及向量資料可用於經組 ::處理標量指令之向量單元,消除了實施獨立標量及向 里早元的低效率。 藉由雙向量單元執行又積 亡:發明:一實施例中’一向量單元之一或多個資源可 積二一向量單元共享以執行向量運算(例如,叉積或點 =1。广自一向量單元之一或多個處理通道或 件可由另-向量單元來使用以執行運算。 述’藉由單一向量單元執行又積運算可需要 /= 乘法指令…卜’複數個暫停可發生於執 订夕個k的管線中’藉此影響效能。雙向之 點在於:藉由在兩個向量單元之間共享資源,可允許單一 124554.doc -28- 200828179 指令執行向量運算(例如,又積 指令數目及在獨立指令之間的浪費的)暫:二二員著減少 舉例而言,圖9A中之第一乘法指 二:。 9°3可以單-叉積指令來替代。因為,在雙法指令 八個乘法器可用’所以八個乘法器中之六個可用:::一 循環中執行用於又積運算之所有乘法。可將來自乘^一 結”送至三個加法器以用於執行減法運算。因此,:: 用單一指令執行叉積。 n使 圖11說明在雙向量單元之間共 如圖U中所說明,可在向量單元⑽之原广亍又積運算。 及向量單元⑽之處料道1121_1122=通道U11-1114 在本發明之一春#如击 1122中執仃又積運算。 積運曾 “例中,因為兩個向量單元皆用於執行叉 積運…斤以暫存器檔案可經組態以 雙及獨立指今)。力士欲0口 夺日*T (而非 道可用於A旦 發月之—實施例中,因為-標量通 量運/1置单元1120中’所以可同時執行又積運算及標 令。开’糟此允許在執行叉積運算的同時發出雙獨立指 =發明之—實施例中,為減少置換指令之數目及由置 供曰::丨起的暫停循環之數目,可在乘法器之輸入端處提 t❹個運算元多工器1130。運算元多工器1130可經組 、曰由連接暫存H檔案至向量單元111()及1⑽的通道之 入=選擇-可用運算元’且提供運算元至各別乘法器之輸 如圖11(在兩頁上展示為圖UA及圖11B)中所說明,向量 124554.doc -29- 200828179 單元1110及1120中之乘法器可計算執行叉積運算所必需之 積。舉例而言’向量單元111〇中之乘法器1141 — 1144及向量 單元1120中之乘法器1151-1152各自計算一積。可將由乘 法益计异之積投送至對準該等積之三個對準器6舉例而 «,如所說明,將來自乘法器1141及1144之積投送至對準 态1161,將來自乘法器1142及1151之積投送至對準器 1162,且將來自乘法器1 us及1152之積投送至對準器 1163。可在每一對準器之輸入端處提供一多工器(例如, 夕工器1171)以選擇自不同處理通道中之乘法器所接收的 積及在對準器之處理通道中所接收的輸入中之一者。 可接著減去經對準之積。舉例而言,加法器丨丨8丨可減去 由對準器1161所對準之積,加法器1182可減去由對準器 1162所對準之積,且加法器1183可減去由對準器1163所對 準之積。 由加法器1181-1183計算的差可經標準化並經四捨五入 以提供又積運算之結果(法向量)。舉例而言,在一實施例 中,處理通道1111可產生法向量之乂座標,處理通道丨ιΐ2 可產生法向量之y結果,且處理通道1113可產生法向量之z 結果。可使用-與向量單相關聯之寫迴路徑將法向 量儲存回暫存器檔案中。 熟習此項技術者將瞭解,圖11中所說明及上文所描述之 特定處理方法並不限制本發明。更一般而言,向量單元 1110及112G中之可用乘法器之任—者可經選擇以執行用於 叉積運算之乘法。此外,可將由乘法器所計算之積投送至 124554.doc -30- 200828179 任何可用對準器及用於執行減法之加法器。因此,可自向 量單元中之任何可用處理通道得到叉積之結果。 結論 藉由實施經組態以在一些狀況下獨立地並行執行指令或 在其他狀況下共享資源以執行如”大規模”叉積及點積之運 算的雙向量單元,影像處理變得更有效率,藉此允許顯示 更逼真的影像及動畫。
雖然前述内容係針對本發明之實施例,但是在不偏離其 基本範疇的情況下可設計本發明之其他及另外實施例,且 其範疇係由以下申請專利範圍所確定。 【圖式簡單說明】 圖1說明根據本發明之一實施例的多核心處理元件。 圖2說明根據本發明之一實施例的多核心處理元件網 路。 圖3為根據本發明之一實施例的待由影像處理系統再現 之例示性三維場景。 圖4說明根據本發明之—實施例的待再現於螢幕上之 件的詳細視圖。 之一實施例的暫存器。 之一實施例的向量單元及暫存器
圖5說明叉積運算。 圖6說明根據本發明 圖7說明根據本發明 案。 圖8說明根據本發明之 圖。 實施例的向量單元之詳細視 124554.doc -31- 200828179 圖9 A說明根據本發明之一實施例的用於執行叉積運算之 例示性程式碼。 圖9B說明在執行圖9A中之程式碼時的管線之暫停。 圖10說明根據本發明之一實施例的雙向量處理單元。 圖11(在兩頁上展示為圖11A及圖11B)說明根據本發明之
一實施例的經組態以執行叉 【主要元件符號說明】 100 105 110 115 200 205、205!、2052、2053、 205n 210 220 > 22〇ι、2202、2203 〜 運算之雙向量處理單元。 多核心處理元件 基本通量引擎/BTE 共享的多核心處理元件快取 入箱 多核心處理元件之網路 工作負荷管理器 向量通量引擎 多核心處理元件/處理器 2 2 On 225 匯流排 230 快取 305 三維場景 310 監視器 315 觀看者 320 物件 32〇a 錐體/物件 124554.doc -32- 200828179
320b、320c ' 32〇d 325 > 325a ^ 325b 330 335 340 341a ^ 341b 343 344 400 410 > 410a > 410b 411a 411b 413 415 450 700 710 711 720 721 800 810 > 820 830 831 盒形體/物件 光源 柵格/像素 像素 射線 陰影射線 反射射線 透射射線 物件 三角形 向量 向量 法向量/表面法線 法向量 觀看者 向量單元 暫存器檔案 暫存器 通道 通道 向量單元 處理通道 運算元/處理通道 運算元 124554.doc -33- 200828179 851 852 853 854 901 902 903 1010 1012 1013 1020 1022 1023 1030 1031 1110 1111 、 1112 、 1113 1120 1121 、 1122 、 1123 1130 1141 1161 1181 R0-R31 乘法器 對準器 加法器 標準化器 置換指令 第一乘法指令 第二乘法指令 第一向量單元 標量處理通道 向量處理通道 第二向量單元 標量處理通道 向量處理通道 暫存器檔案 寫入埠 向量單元 1114 處理通道 向量單元 1124處理通道 運算元多工器 乘法器 對準器 加法器 暫存器 -34· 124554.doc
Claims (1)
- 200828179 十、申請專利範園: 1· 一種處理器,其包含: 一第一向量單元;及 一第二向量單元, 其中Ί亥^ ^ ^ ——向量單元及該第二向量單元各自包含經組 態以執行一 6旦 ~篁‘令的複數個向量處理通道及經組態以 執行一標量指合a s ^ θ ^ 7的至少一標量處理通道,該第一向量單 元及該第一 6窃 μ——句量單元經組態以獨立地且同時地執行指 〇 2.如請求項1之處理器,其中第-向量單元 單元經組態以執行一單一指令。 &求項2之處理器,其中該指令經組態以確定兩個卢 量之一又積。 4·如請求項1之虛 ^ σσ ’八進一步包含一包含複數個暫? 裔之暫存器權牵,诗&把 茶該稷數個暫存器經組態以儲存向量』 標量資料。 一月求項4之處理器,其中該第一向量單元及該第二# 量單元與該暫存器檔案可通信地粞接且經組態以自ΙΜ 存盗檔案中之複數個暫存器接收資料。 6 ·如请求項4之處理5|,1# 旦器其中该弟一向量單元及該第二# 里單兀之每一者包含一經組態以將來自該等向量單元」 結果寫回至該暫存器檑案的寫迴路徑。 7.如請求項1之處理器,其中每一抑- 旦 、丁兮 向1早兀之該復數個^ ϊ處理通道經組態以並杆士 仃地對硬數個向量運算元執行;j 124554.doc 200828179 數個運异,.該複數個運算 8.如請求項6之處理g 〜指令來碟定。 多個功能單元―向莖處理通道包含一或 算中_運算。纟能單元經組態以執行該複數個運 如叫求項8之處理器’其中該等功能單元 對準器及加法器。 S笊法态、 10· -種用於處理指令之方法,其包含: 發出-第-指令至一第一向量單元;及 同時發出一第二指令至一第2向量單元, 其中該第—向量單元及該第二向量單元經組態以獨立 地且同時地處理該第一指令及該第二指令。 η·ΓΓ=方法’其進一步包含,發出-第三指令至 該弟' 向買早元及該第二向量單元,其中該第一向量單 兀及該弟二向量單元經組態以處理該指令。 Α如請求項U之方法,其中該第三指令確定—在兩個 之間的叉積。 …求項10之方法,其中該第一向量單元及該第二向量 早70包含複數個向量處理通道及至少—標量處理通道。 14,如請求項Π之方法,其中該第一指令為_向量… A如請求項14之方法,其中處理該第一指令包含在該複數 個向量處理通道中處理該第—指令,該處理包含並行地 對複數個向量運算元執行複數個運算,該複數個運算係 由該第一指令來確定。 16· —種系統,其包含彼此可通信地耦接之複數個處理器, I24554.doc -2- 200828179 其中每一處理器包含: —第一向量單元;及 一第二向量單元, 、中該第向量單元及該第二向量單元各自勺人 態以執行一命* π里早70各自包含經組 °里扣令的複數個向量處理通道及經《且離以 執行一標量指八沾s 1 工、、且悲以 元及該第二^處理通道,該第—向量翠 令。 °里早凡經組態以獨立地且同時地執行指17·如睛求項16之系 元經組態以執行 18·如請求項17之系 之一又積。 統,其中第一向量單元及該第二向量單 一單一指令。 統,其中該指令經組態以確定兩個向量 包含複數個暫存器 悲以儲存向量及桿 19·如請求項16之系統,其進__步包含_ 之暫存器檔案,該複數個暫存器經組 量資料。 ^ π/求項19之系統’其中該第-向量單元及該第二向量 ^與該暫存H㈣可通信地_且經組態以自該暫存 益檔案中之複數個暫存器接收資料。 ⑽:求項19之系統’其中該第一向量單元及該第二向量 •早元之每一者包含一經組態以將來自該等向量單元之結 果寫回至該暫存器檔案的寫迴路徑。 如明求項16之系統,其中每一向量單元之該複數個向量 處理通道經組態以並行地對複數個向量運算元執行複數 個運异,該複數個運算係由一單_向量指令來確定。 124554.doc 20082817923. 如請求項22之系統,其中每一向量處理通道包含一或多 個功能單元,每一功能單元經組態以執行該複數個運算 中之一運算。 24. 如請求項23之系統,其中該等功能單元包含乘法器、對 準器及加法器。 124554.doc
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/536,146 US20080079712A1 (en) | 2006-09-28 | 2006-09-28 | Dual Independent and Shared Resource Vector Execution Units With Shared Register File |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW200828179A true TW200828179A (en) | 2008-07-01 |
Family
ID=39230565
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW096136488A TW200828179A (en) | 2006-09-28 | 2007-09-28 | Dual independent and shared resource vector execution units with shared register file |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US20080079712A1 (zh) |
| TW (1) | TW200828179A (zh) |
| WO (1) | WO2008037715A2 (zh) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080079712A1 (en) * | 2006-09-28 | 2008-04-03 | Eric Oliver Mejdrich | Dual Independent and Shared Resource Vector Execution Units With Shared Register File |
| US20090106526A1 (en) * | 2007-10-22 | 2009-04-23 | David Arnold Luick | Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing |
| US8169439B2 (en) * | 2007-10-23 | 2012-05-01 | International Business Machines Corporation | Scalar precision float implementation on the “W” lane of vector unit |
| HU227600B1 (hu) | 2009-06-23 | 2011-09-28 | Attila Angyal | Eljárás vezeték nélküli fix egységek által meghatározott zónákban mozgó mobil egységek nyomvonal követésére és nyilvántartására |
| WO2012052774A2 (en) * | 2010-10-21 | 2012-04-26 | Bluwireless Technology Limited | Data processing units |
| SE1151231A1 (sv) * | 2011-12-20 | 2013-05-07 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
| US9606797B2 (en) * | 2012-12-21 | 2017-03-28 | Intel Corporation | Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor |
| US9659046B2 (en) | 2013-07-31 | 2017-05-23 | Oracle Inernational Corporation | Probing a hash table using vectorized instructions |
| US9256631B2 (en) | 2013-07-31 | 2016-02-09 | Oracle International Corporation | Building a hash table using vectorized instructions |
| CN109213527A (zh) * | 2017-06-30 | 2019-01-15 | 超威半导体公司 | 具有重叠执行的流处理器 |
| US10699465B1 (en) * | 2018-12-28 | 2020-06-30 | Intel Corporation | Cluster of scalar engines to accelerate intersection in leaf node |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1411372A (en) * | 1971-08-24 | 1975-10-22 | Elliott Brothers London Ltd | Electrical apparatus for performing digital calculations |
| JPS6077265A (ja) * | 1983-10-05 | 1985-05-01 | Hitachi Ltd | ベクトル処理装置 |
| US5261113A (en) * | 1988-01-25 | 1993-11-09 | Digital Equipment Corporation | Apparatus and method for single operand register array for vector and scalar data processing operations |
| US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
| US5303358A (en) * | 1990-01-26 | 1994-04-12 | Apple Computer, Inc. | Prefix instruction for modification of a subsequent instruction |
| US5537606A (en) * | 1995-01-31 | 1996-07-16 | International Business Machines Corporation | Scalar pipeline replication for parallel vector element processing |
| US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
| US6282634B1 (en) * | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
| US6178500B1 (en) * | 1998-06-25 | 2001-01-23 | International Business Machines Corporation | Vector packing and saturation detection in the vector permute unit |
| US6489955B1 (en) * | 1999-06-07 | 2002-12-03 | Intel Corporation | Ray intersection reduction using directionally classified target lists |
| US6891538B1 (en) * | 1999-07-01 | 2005-05-10 | Microsoft Corporation | Dual mode device and method for generating vector cross products or dot products |
| US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
| US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
| GB2363869B (en) * | 2000-06-20 | 2004-06-23 | Element 14 Inc | Register addressing |
| US6598209B1 (en) * | 2001-02-28 | 2003-07-22 | Sequence Design, Inc. | RTL power analysis using gate-level cell power models |
| US6922716B2 (en) * | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
| US6839828B2 (en) * | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
| US6784888B2 (en) * | 2001-10-03 | 2004-08-31 | Ati Technologies, Inc. | Method and apparatus for executing a predefined instruction set |
| US20040073773A1 (en) * | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
| GB2390443B (en) * | 2002-04-15 | 2005-03-16 | Alphamosaic Ltd | Application registers |
| AU2003228069A1 (en) * | 2002-05-24 | 2003-12-12 | Koninklijke Philips Electronics N.V. | A scalar/vector processor |
| US7373369B2 (en) * | 2003-06-05 | 2008-05-13 | International Business Machines Corporation | Advanced execution of extended floating-point add operations in a narrow dataflow |
| US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
| US7339837B2 (en) * | 2004-05-18 | 2008-03-04 | Infineon Technologies Ag | Configurable embedded processor |
| US7461117B2 (en) * | 2005-02-11 | 2008-12-02 | International Business Machines Corporation | Floating point unit with fused multiply add and method for calculating a result with a floating point unit |
| US7933405B2 (en) * | 2005-04-08 | 2011-04-26 | Icera Inc. | Data access and permute unit |
| US20070198815A1 (en) * | 2005-08-11 | 2007-08-23 | Coresonic Ab | Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit |
| US20080079712A1 (en) * | 2006-09-28 | 2008-04-03 | Eric Oliver Mejdrich | Dual Independent and Shared Resource Vector Execution Units With Shared Register File |
| US20080079713A1 (en) * | 2006-09-28 | 2008-04-03 | Eric Oliver Mejdrich | Area Optimized Full Vector Width Vector Cross Product |
| US20090106525A1 (en) * | 2007-10-23 | 2009-04-23 | David Arnold Luick | Design structure for scalar precision float implementation on the "w" lane of vector unit |
| US8169439B2 (en) * | 2007-10-23 | 2012-05-01 | International Business Machines Corporation | Scalar precision float implementation on the “W” lane of vector unit |
| US20090150648A1 (en) * | 2007-12-06 | 2009-06-11 | Eric Oliver Mejdrich | Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions |
-
2006
- 2006-09-28 US US11/536,146 patent/US20080079712A1/en not_active Abandoned
-
2007
- 2007-09-25 WO PCT/EP2007/060164 patent/WO2008037715A2/en not_active Ceased
- 2007-09-28 TW TW096136488A patent/TW200828179A/zh unknown
- 2007-10-26 US US11/924,980 patent/US7926009B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008037715A2 (en) | 2008-04-03 |
| US20080079712A1 (en) | 2008-04-03 |
| US20080082783A1 (en) | 2008-04-03 |
| WO2008037715A3 (en) | 2008-06-19 |
| US7926009B2 (en) | 2011-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW200828179A (en) | Dual independent and shared resource vector execution units with shared register file | |
| CN110084875B (zh) | 使用计算着色器作为顶点着色器的前端 | |
| US8169439B2 (en) | Scalar precision float implementation on the “W” lane of vector unit | |
| US7158141B2 (en) | Programmable 3D graphics pipeline for multimedia applications | |
| US20090150648A1 (en) | Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions | |
| US8063903B2 (en) | Edge evaluation techniques for graphics hardware | |
| US5268995A (en) | Method for executing graphics Z-compare and pixel merge instructions in a data processor | |
| US20080082784A1 (en) | Area Optimized Full Vector Width Vector Cross Product | |
| US20090106526A1 (en) | Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing | |
| Sintorn et al. | Sample based visibility for soft shadows using Alias‐free shadow maps | |
| US20140176579A1 (en) | Efficient super-sampling with per-pixel shader threads | |
| US8332452B2 (en) | Single precision vector dot product with “word” vector write mask | |
| US9495724B2 (en) | Single precision vector permute immediate with “word” vector write mask | |
| US6597357B1 (en) | Method and system for efficiently implementing two sided vertex lighting in hardware | |
| US20090063608A1 (en) | Full Vector Width Cross Product Using Recirculation for Area Optimization | |
| US6590574B1 (en) | Method, system, and computer program product for simulating camera depth-of-field effects in a digital image | |
| US20090284524A1 (en) | Optimized Graphical Calculation Performance by Removing Divide Requirements | |
| CN100573578C (zh) | 对处理图像的指令进行处理的方法、控制器和系统 | |
| US20140176547A1 (en) | Programmable blending via multiple pixel shader dispatches | |
| US20080100628A1 (en) | Single Precision Vector Permute Immediate with "Word" Vector Write Mask | |
| Eisemann et al. | Visibility sampling on gpu and applications | |
| Wolfe et al. | A superscalar 3D graphics engine | |
| Hermes et al. | Global Illumination using Parallel Global Ray-Bundles. | |
| EP0485833A2 (en) | A method for executing graphics color saturating arithmetic instructions in a data processor | |
| Aila | Efficient algorithms for occlusion culling and shadows |