[go: up one dir, main page]

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 PDF

Info

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
Application number
TW096136488A
Other languages
English (en)
Inventor
Adam James Muff
Matthew Ray Tubbs
Eric Oliver Mejdrich
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200828179A publication Critical patent/TW200828179A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General 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)

  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 200828179
    23. 如請求項22之系統,其中每一向量處理通道包含一或多 個功能單元,每一功能單元經組態以執行該複數個運算 中之一運算。 24. 如請求項23之系統,其中該等功能單元包含乘法器、對 準器及加法器。 124554.doc
TW096136488A 2006-09-28 2007-09-28 Dual independent and shared resource vector execution units with shared register file TW200828179A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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