TW200929062A - Scalar float register overlay on vector register file for efficient register allocation and scalar float and vector register sharing - Google Patents

Scalar float register overlay on vector register file for efficient register allocation and scalar float and vector register sharing Download PDF

Info

Publication number
TW200929062A
TW200929062A TW097136672A TW97136672A TW200929062A TW 200929062 A TW200929062 A TW 200929062A TW 097136672 A TW097136672 A TW 097136672A TW 97136672 A TW97136672 A TW 97136672A TW 200929062 A TW200929062 A TW 200929062A
Authority
TW
Taiwan
Prior art keywords
vector
scalar
register
processing
data
Prior art date
Application number
TW097136672A
Other languages
English (en)
Inventor
David Arnold Luick
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 TW200929062A publication Critical patent/TW200929062A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Description

200929062 九、發明說明: 【發明所屬之技術領域】 本發明大體係關於影像處理之領域’且更具體言之’係 關於用於支援影像處理之暫存器檔案。 本申請案係關於由_等人在2007年_申請之名為 "SCALAR PRECISION FLOAT IMPLEMENTATION ON THE "W" LANE OF VECTOR UNIT"的美國專利申請案代 理人案號R〇C92〇060117US1 »此相關專利申請案以引用的 ❹ 方式全部併入本文中。 【先前技術】 影像處理涉及執行向量運算及純量運算兩者。向量運算 包括對一或多個向量執行運算,諸如,點乘積 product)運算及交又乘積(cross product)運算。純量運算巧 括加法、減法、乘法、除法及其類似者。因此,處理景,像 之處理器包括用於執行向量運算之獨立向量單元 干凡及用於執 行純量運算之獨立純量單元。 向量及純量單元中之每一者通常具有其自己的各別暫存 器檔案。暫存器檔案含有由關聯向量或純量單元戶斤 資料。暫存器檔案亦用以儲存由各別向量或純量單% ~執^ 行之運算之結果。若需要將一單元之結果用於由另_單_ 所執行之運算,則首先必須將結果儲存至記憶體,1& $ 載入至另一單元之各別暫存器檔案中。 【發明内容】 本發明大體係關於影像處理之領域,且更具體係 134597.doc 200929062 關於用於支援影像處理之暫存器檔案。 本發明之-實施例提供一種處理器,其通常包含 器樓案,其包含複數個暫存器’其中每—暫存器包含複數 =:,且其中—或多個暫存器之第—預定一或多個區段 、么、且〜、以儲存純量資料或多個暫存器之第二預定 :個區:組態以儲存向量資料。處理器進一步包含處:里 =執3!存器槽案可通信地麵接,其中處理單元經組 態以執仃向夏及純量指令,其中執行向量及純量指令包含 更新暫存器檔案中所含有之資料。 次本發明之另-實施例提供一種用於儲存向量資料及純量 貝枓之方法。方法通常包含:在暫存器槽案之一或多個暫 存器之第預疋一或多個區段中儲存純量資料;在暫存器 標案之《夕個暫存器之第二預定一或多個區段中健存向 量資料’及藉由在與暫存器棺案可通信地耗接之處理單元 ❿ 中執行向量及純量指令來更新暫存器槽案中之向量資料及 純量資料。 、本發月之又一t施例提供一種包含彼此可通信地麵接之 複數個處理器的系統。每一處理器通常包含暫存器稽案, ”包a複數個暫存器,其中每一暫存器包含複數個區段, 且其中一或多個暫存器之第一預定一或多個區段經組態以 儲存純量資料且—或多個暫存器之第二就一或多個區段 經組態以儲存向量資料。每一處理器進一步包含處理單 疋其與暫存器檔案可通信地耦接,其中處理單元經組態 以執仃向量及純量指令,其中執行向量及純量指令包含更 134597.d〇, 200929062 新暫存器檀案中所含有之資料。 【實施方式】 為了達成可獲得且可詳細地理解本發明之上述特徵 勢及目標的方式’可藉由參考隨附圖式中所說明的本發明 之實施例而具有以上簡要所概述的本發明之更特定描述。 然而,應注意’隨附圖式僅說明本發明之典型實施例, 且因此不應被認為其範嗜之限制,因為本發明可允許其他 同等有效的實施例。 本發明之實施例大體係關於影像處理,且更具體言之, 係關於詩支援影像處理之向量單減暫存器播案。提供 組合向量/純量單元,其中向量單元之一或多個處理路線 (processing lane)係用於執行純量運算。亦提供用於儲存向 量及純量資料之整合暫存器#案。目必匕’消&用以在獨立 向量與純量單元之間交換資料的至記憶體之資料傳遞。 在下文中’參考本發明之實施例。然而’應理解,本發 明不限於特定所描述實施例。實情為,設想以下特徵及元 件之任何組合(不管是否與不同實施例相關)以實施及實踐 本發明。此外,在各種實施例中,本發明提供優於先前技 術之眾多優勢。然而,雖然本發明之實施例可達成優於其 他可能解決方案及/或優於先前技術之優勢,但特定優勢 是否由給定實施例達成不為本發明之限制。因此,以下態 樣、特徵、實施例及優勢僅為說明性的,且除了在申請專 利範圍中明確地闡述以外不將以下態樣、特徵、實施例及 優勢認為是隨附申請專利範圍之要素或限制。同樣地,不 134597.doc 200929062 應將對,,本發明,,之參考認為是對本文中所揭示之任何發明 性標的之概括,且除了在巾請專利範圍中明確地闡述以外 不應將其認為是隨附巾請專利範圍之要素或限制。 、下為隨附圖式中所描繪的本發明之實施例的詳細描 述實施例為實例且如此詳細以便清楚地傳達本發明。然 而,所提供之細節量不意欲限制實施例之預期變化;而相 反地’本發明將涵蓋屬於由隨附申請專利範圍所界定的本 發明之精神及料的所有修改、均等物及替代物。 本發月之實施例可與一系統(例如,電腦系統)一起使用 且下文將關於該系統而描述該等實施例。如本文中所使 用’系統可包括利用處理器及快取記憶體之任一系統,包 括個人電腦、網際網路電氣設備、數位媒體電氣設備、攜 帶型數位助理(PDA)、構帶型音樂/視訊播放器及視訊遊戲 控制台。雖然快取記憶體可與利用快取記憶體之處理器位 於同-晶粒上,但在一些狀況下,處理器及快取記憶體可 位於不同晶粒(例如,單獨模組内之單獨晶片或單一模組 内之單獨晶片)上。 ' ’ 影像處理 通常將自三維場景再現二維影像之過程稱為影像處理。 影像處理之特定目標為儘可能逼真地進行三料景之二維 模擬或再現。對於再現較逼真場景之此尋求已導致影像之 複雜性增加且導致用於處理複雜影像之創新方法。 通常將表示三維場景之二維影像顯示於監視器或某一類 型之顯示螢m代監視n藉由使用像素而顯示影像。 134597.doc 200929062 像素為可在監視器上被照明之最小空間區域。大多數現代 電腦監視器使用數十萬或數百萬像素之組合以構成整個顯 不或經再現場景。個別像素經配置於一拇格圖案中且共同 地覆蓋監視器之整個檢視區域。可照明每一個別像素以再 現最終圖片以用於檢視。 -種用於使用像素而將真實世界三維場景再現於二維監 視盗上之方法被稱為光栅化。光栅化為取得以向量格式 (場景内幾何物件之數學表示)所表示之二維影像且將影像 ㈣成個別像素以用於在監視器上顯示的過程。光柵化在 快速地再現㈣且使用相對較低量之計算能力㈣為有效 的;然而,光柵化遭受-些缺點。舉例而言,紐化通常 遭夂缺乏真實性,因為其不是基於光之實體特性更確切 而言,光柵化係基於投影於二維平面上之場景中之三維幾 何物件的形狀。此外,為以光柵化來再現場景所需要之計 算能力直接與待再現之場景中之物件的複雜性之增加成比 _ 例。隨著影像處理變得更逼真,經再現場景變得更複雜。 因此,光柵化隨著影像處理演進而受影響,因為光栅化直 接與複雜性成比例。 另一種用於使用像素而將真實世界三維場景再現於二維 監視器上之方法被稱為射線追縱。射線追蹤技術追縱假想 射線(其表現類似於光線)至待再現於電腦螢幕上之三維場 景中的傳播。射線源自位於電腦螢幕後方之檢視者之眼睛 且朝向三維場景橫穿過組成電腦螢幕之像素。每一經追蹤 射線前進至場景中且可與場景内之物件相交。若射線與場 134597.doc -10· 200929062 景内之物件相交,則物件之特性 荷阻及右干其他影響因素(例 如,光源之效應)用以計算色彩量 /里久兀*篁,或若射線未與 物件相交’則射線被曝露。此等种篡 ^ ^ 寻寸鼻接者用以判定經追蹤 射線所通過之像素之最終色彩。 丄對於單-場景將追蹤射線之過程進行許多次。舉例而 言,對於顯示中之每-像素,可追縱單—射線…旦已追 蹤足夠數目之射線以判定組成電腦勞幕之二維顯示的所有
像素之色彩’便可在電腦榮幕上向檢視者顯示三維場景之 二維合成* 射線追蹤通常比光柵化真實地再現真實世界三維場景。 此係部分地歸因於以下事實:射線追蹤模擬光如何在真實 世界環境中行進及表現,而非如光栅化所進行,簡單地將 二維形狀投影於二維平面上。因此,使用射線追蹤所再現 之圖形更準確地在監視器上描繪吾人眼睛在真實世界中習 慣於看到之物。 此外,射線追蹤亦比光柵化好地處置增加之場景複雜 性。射線追蹤對數性地與場景複雜性成比例。此係歸因於 以下事實:即使場景變得較複雜,亦可將相同數目之射線 投拋至場景中。因此,不同於光柵化,隨著場景變得較複 雜,射線追蹤不會在計算能力需求方面受影響。 射線追蹤通常需要為再現場景所需要之大量的浮點計算 且因此需要增加之處理能力。此可特別為在需要快速再現 時(例如,在(諸如)在遊戲控制台中影像處理系統將為了動 晝目的而再現圖形時)的情況。歸因於對射線追蹤的增加 134597.doc 200929062 之計算需求’難以足夠快速地再現動晝以使其看似逼真 (逼真動畫為每秒大致二十至二十四個圖框)。 ❹ ❹ 使用(例如)射線追縱之影像處理可涉及執行向量與純量 數學兩者。因此’用於影像處理之硬體支援可包括經組態 以執行各種各樣之計算之向量及純量單元。舉例而言,向 篁及純量運算可追蹤通過場景之光的路徑,或移動三維場 景内之物件。向量單元可對與場景中之物件相關的向量執 仃運算(例如’點乘積及交又乘積)。純量單元可對純量值 執行算術運算(例如,加法、減法、乘法、除法及其類似 者)。向量及純量單元可經管線化以?文良效能。 影像處理計算可涉及向量單元與純量單元之間的大量互 動。因為先前技術實施可經獨立地配給且具有其自己的各 別暫存器槽案之向量及純量單元,所以在該等單元 ^料通常非常低效,例而言,純量單元可將資料自記 憶體载人至其關聯暫存器槽案中以執行純量運算。接著可 十算之、、’α果自與純量單兀相關聯之暫存器檔案儲存回於 1 己憶體中。隨後,可將儲存於記憶體中的純量運算之結果 2至與向量單元相關聯之單獨暫存器槽案中以執行向量 運算。 用以在純量單元與向量單元之間傳遞資料的至記 ^記憶體之f料傳遞及指令之間的依賴性 t之顯著延遲’藉此不利地影響再現逼真影像及動2 發明之實施例將向量單元與純量單元組合為能夠 仃》運算及純量運算兩者之單一單元。實施例亦提供 134597.doc 200929062 能夠儲存向量資料及純量資料兩者之暫存器播案。 例示性系統 圖1說明例示性多核心處理元件1 〇〇,其中可實施本發明 之實施例》多核心處理元件100包括複數個基本通量引擎 1〇5(ΒΤΕ)。BTE 105可含有複數個處理線緒及一核心快取 記憶體(例如,L1快取記憶體p位於每一BTE内之處理線 緒可能能夠存取共享多核心處理元件快取記憶體丨丨〇(例 如,L2快取記憶體)。 BTE 105亦可能能夠存取複數個處理結果收件匣 (inb〇X)115❶處理結果收件匣115可為記憶體映射之位址空 間。可將處理結果收件匣115映射至位於bte 1〇5中之每一 者内的處理線緒。位於BTE内之每一線緒可能具有記憶體 映射之處理結果收件匿且能夠存取所有其他記憶體映射之 處理結果收件£115。處理結果收件E115組成由ΒΤΕ ι〇5 所使用之低延時及高頻寬通信網路。 BTE可將處理結果收件匣115用作網路以相互通信且在 BTE當中重新分配資料處理工作。對於一些實施例,可於 通信網路中使用分開的處理結果寄件匿(〇utb〇x),例如, 以接收由BTE 105所進行之處理的結果。對於其他實施 例,處理結果收件匣丨15亦可充當處理結果寄件匣,例 如:其中一 BTE 105將處理功能之結果直接寫入至將使用 該等結果的另一 BTE 105之處理結果收件匣。 可將影像處理系統之彙總效能與BTE可如何完善地分割 及重新分配工作聯繫起來。處理結果收件匣ιΐ5之網路可 134597.doc -13- 200929062 用以收集工作且將工作分配至其他bte,而不破壞具有無 圖框至圖框連貫性之ΒΤΕ通信資料封包的共享多核心處理 疋件决取s己憶體i! 〇。每圖框可再現數百萬個三角形之影 像處理系統可包括以此方式而連接之許多⑼。 在本發明之一實施例中,可將一BTE 105之線緒指派至 工作負何管理器。影像處理系統可使用各種軟體及硬體組 件以自一維場景再現二維影像。根據本發明之一實施例, 《像處理系統可使用工作負荷管理器以藉由由影像處理系 、统所發出之射線來橫穿空間索引。可將空間索引實施為用 以將相對較大三維場景分割成較小界限容積…⑽此丨吨 V〇1Ume)之樹型資料結構。使用用於影像處理之射線追蹤 方法的影像處理系統可使用空間索引以快速地判定射線_ 界限容積相交。在本發明之一實施例中,工作負荷管理器 可藉由使用空間索引來執行射線_界限容積相交測試。 在本發明之一實施例中,多核心處理元件1〇〇上之多核 〇 心處理元件BTE 105之其他線緒可為向量通量(vect〇r throughput)引擎。在工作負荷管理器判定射線界限容積相 交之後,工作負荷管理器可經由處理結果收件昆ιΐ5而發 出(發送)射線至複數個向量通量引擎中之一者。向量通量 引擎可接著判定射線是否與界限容積内所含有之基元相 交。向量通量引擎亦可執行與判定射線所通過之像素之色 彩相關的運算》 圖2說明根據本發明之一實施例的多核心處理元件網路 200。圖2亦說明多核心處理元件100之BTE中之一 134597.doc • 14- 200929062 緒為工作負荷管理器205的本發明之一實施例。根據本發 明之一實施例,多核心處理元件網路2〇〇中之每一多核心 處理元件22Gl.N可含有—工作負荷管理器2G5in。根據本發 明之一實施例,多核心處理元件網路2〇〇中之每一處理器 220亦可含有複數個向量通量引擎21〇。 根據本發明之一實施例,工作負荷管理器2〇5i_n可使用 尚速匯流排225以與其他工作負荷管理器2〇5^及/或其他 多核心處理元件220之向量通量引擎21〇通信。向量通量引 © 擎210中之每一者可使用高速匯流排225以與其他向量通量 引擎210或工作負荷管理器2〇5通信。工作負荷管理器處理 器205可使用高速匯流排225來收集影像處理相關任務且將 其分配至其他工作負荷管理器處理器2〇5,及/或將任務分 配至其他向量通量引擎210。高速匯流排225之使用可允許 工作負荷管理器2〇5ι·ν通信,而不影響具有與工作負荷管 理器205通信相關之資料封包的快取記憶體Mo。 Ρ 例示性三維場景 圖3為待由影像處理系統再現之例示性三維場景3〇5。在 二維場景305内的可為物件320。圖3中之物件320具有不同 幾何形狀。儘管圖3中僅說明四個物件32〇,但典型三維場 景中之物件的數目可更多或更少。通常,三維場景將具有 比圖3所說明多得多的物件。 如可在圖3中所見,物件具有變化的幾何形狀及尺寸。 舉例而言’圖3中之一物件為錐體32〇α。圖3中之其他物件 為箱體320β·ε>。在許多現代影像處理系統中,物件通常被 134597.doc -15- 200929062 分裂為較小幾何形狀(例如,正方形、圓形、三角形等 等)。接著藉由許?較小的簡單幾何形狀來表*較大物 件。此等較小幾何形狀通常被稱為基元。 β亦在場景305中所說明的為光源325…光源可照明位於 場景305内之物件32〇。此外,視光源325及物件32〇在場景 305内之位置而定,光源可導致陰影投拋至場景3〇5内之物 件上。 三維場景305可由影像處理系統再現於二維圖片中。影 © 料理系統亦可導致二維圖片顯示於監視器别上。監視 器310可使用不同色彩之許多像素33〇來再現最終二維圖 片。 種由影像處理系統用以將三維場景3〇5再現於二維圖 片中之方法被稱為射線追蹤。射線追蹤由影像處理系統自 檢視者3 1 5之觀點將射線"發出"或"發射•,至三維場景3〇5中 完成。射線具有類似於光線之特性及行為。 談 一源於檢視者315之位置處且橫穿過三維場景3〇5之射線 340可見於圖3中。隨著射線34〇自檢視者315橫穿至三維場 景305,射線340通過最終二維圖片將由影像處理系統再現 之平面在圖3中,此平面由監視器310表示。射線3 40通 過平面或監視器310之點由像素335表示。 如較早先簡要所論述,大多數影像處理系統使用數千個 (若非數百萬個)像素之栅格330以將最終場景再現於監視器 3 10上。每一個別像素可顯示不同色彩以將最終複合二維 圖片再現於監視器310上。使用射線追蹤影像處理方法以 134597.doc -16 -
200929062 -維场景再現二維圖片 線在三維場景中遇到之色彩1像處算所發出射 線所遇到之在μ 影像處理场景將接著將由射 色彩私派至射線在其自檢視者至三維場景之路 把上所通過的像素。 景之路 每像素所發出之射線的數目可變化。— 發出用於付* 一1豕素可具有經 =於待再現之特定場景之許多射線。在該狀況下,藉 =自經發出用於像素之所有射線的每—色彩影響而判定 ”之最終色彩。其他像素可僅具有經發出以判定二維圖 中之像素之所得色彩的單—射線…些像素可能不具有 由影像處理系統所發出之任何射線,在該狀況下,其色彩 可藉由影像處理系統内之演算法而加以判定近似或指 派0 為了判定二維圖片中之像素335之最終色彩,影像處理 系統必須判定射線340是否與場景内之物件相交。若射線 未與場景内之物件相交,則其可經指派預設背景色彩(例 如,表示白天或夜空之藍色或黑色)。相反地,當射線34〇 橫穿過二維%景時’射線340可撞擊物件。當射線撞擊場 景内之物件時’物件之色彩可經指派射線所通過之像素。 然而’物件之色彩必須在其經指派至像素之前加以判定。 許多因素可對由原始射線340所撞擊之物件之色彩有影 響。舉例而言,三維場景内之光源可照明物件。此外,物 件之實體特性可對物件之色彩有影響。舉例而言,若物件 為反射或透明的,則其他非光源物件可對物件之色彩有景多 響。 134597.doc -17- 200929062 為了判定來自三維場景内之其他物件的效應,可自原始 射線340與物件相交之點發出次級射線。舉例而言—類 型之次級射線可為陰影射線。陰影射線可用以判定光對原 始射線340與物件相交之點的影響。另一類型之次級射線 可為透射射線。透射射線可用以判定何種色彩或光可透射 過物件之本體。此外,第三類型之次級射線可為反射射 線°反射射線可用以判定何種色彩或光經反射至物件上。 如以上所指出,一類型之次級射線可為陰影射線。每一 陰影射線可自原始射線與物件之相交點被追蹤至三維場景 3〇5内之光源。若射線到達光源而在射線到達光源之前未 遇到另一物件,則光源將照明由原始射線在原始射線撞擊 物件之點處所撞擊的物件。 舉例而言’陰影射線341a可自原始射線34〇與物件32〇a 相交之點發出,且可在朝向光源325a之方向上橫穿。陰影 射線3 41A到達光源3 2 5 A ’而未遇到場景3 〇 5内之任何其他 物件320。因此,光源325a將在原始射線34〇與物件32〇a相 交之點處照明物件320A。 其他陰影射線可具有其在原始射線撞擊物件之點與由三 維場景内之另一物件所阻擋之光源之間的路徑。若阻礙原 始射線所撞擊之物件上之點與光源之間的路徑之物件為不 透明的’則光源將不在原始射線撞擊物件之點處照明物 件。因此’光源可能不對原始射線之色彩有影響,且因此 亦不對待再現於二維圖片中之像素之色彩有影響。然而, 若物件為半透明或透明的,則光源可在原始射線撞擊物件 134597.doc 18 200929062 之點處照明物件。 舉例而言,陰影射線341b可自原始射線340與物件32、 相交之點發出,且可在朝向光源325B之方向上橫穿。在此 實例中,陰影射線341B之路徑由物件320D阻擋。若物件 32〇D為不透明的,則光源325b將不在原始射線34〇與物件 320A相父之點處照明物件32〇a。然而,若物件為半透 月或透月的’則光源325b可在原始射線340與物件320八相 交之點處照明物件320a。 另一類型之次級射線為透射射線。若與原始射線相交之 物件具有透明或半透明特性(例如,玻璃),則可由影像處 理系統發出透射射線》透射射線以相對於原始射線撞擊物 件之角度的角度橫穿過物件。舉例而言,看見透射射線 344橫穿過與原始射線34〇相交之物件32〇a。 另類型之次級射線為反射射線。若與原始射線相交之 物件具有反射特性(例如,金屬表面光潔度),則將由影像 處理系統發出反射射線以判定可由物件反射何種色彩或 光。反射射線以相對於原始射線與物件相交之角度的角度 遠離物件而橫穿。舉例而言,可由影像處理系統發出反射 射線343以判定可由與原始射線340相交之物件32〇a反射何 種色彩或光。 所有次級射線(例如’陰影射線、透射射線、反射射 線,等等)之色彩及光的總影響將導致原始射線所通過之 像素之最終色彩。 向量運算 134597.doc 19 200929062 =影像可涉及執行—或多個向量運算 =件之相交、陰影射線、反射射線之產生,= 2在影像處理_所執行之—t料算為兩量 ==運算。可執行交又乘積以判定自表面(例如 二?=中之物件之基元的表面)之法向向量。法向向量 了如不檢視者是否可看見物件之表面。 =前所描述’可將場景中之每一物件表示為彼此連接
场=物件之形狀的複數個基元。舉例而言,在—實施例 L每—物件可由複數個互連三角形構成。圖4說明由複 固二角形410構成之例示性物件4〇〇。物件4〇〇可為球形 物件,其由圖4中之複數個三角形41〇形成。為了說明之目 的,展示粗球形物件。熟習此項技術者將認識到,物件 例之表面可以較大數目之較小三㈣彻來形成以較好地 近似彎曲物件。 在本發明之-實施例中,每一三角形41。之表面法線可 經2算以判定檢視者450是否可看見三角形之表面。為了 判疋每一三角形之表面法線,可在表示三角形之兩邊的兩 個向量之間&行交叉乘積運算。冑例而t,可藉由在向量 41U與4Ub之間執行交叉乘積而計算三角形41〇a之表面法 線 413。 法向向量可判定表面(例如,基元之表面)是否面向檢視 者。參看圖4,法向向量413指向於檢視者45〇之方向上。 因此’可向使用者顯示三角形410。另一方面,三角形 41〇b之法向向量415指向離開檢視者45〇。因此可能不向 134597.doc •20· 200929062 檢視者顯示三角形410b。 圖5說明兩個向量八與8之間的交叉乘積運算。如所說 月白量AT由座標[χ&,〜ζ&]表示且向量b可由座標[知 yb,zb]表示。交又乘積ΑχΒ導致與包含向量八及6之平面垂 直(正交)的向量N。如所說明,法向向量之座標為[(心 ybZa)’(XbZa_XaZb),(Xayb_Xbya)]。熟習此項技術者將認識 到向ΐ a可對應於圖4中之向量411a m可對應於向 量411b,且向量N可對應於法向向量4U。 在影像處理肖間所執行之另一普通向量運算為點乘積運 算。可執行點乘積運算以判定物件在場景中之旋轉、移 動:定位及其類似者。點乘積運算產生與座標系統無關之 純量值,且表示歐幾里德(Euclidean)空間之内積。以下等 式描述在先前所描述之向量之間所執行的點乘 算:
A ' ^ = Xa ' xb + ya . yb + Za . zb 用於影像處理之硬體支援 如較早先所描述,向量通量引擎(VTE)(例如,圖2中之 VTE 21G)可執行運算以狀輯是^與基以目交且判定 :線所通過之像素之色彩。所執行之運算可包括複數個向 量運算及純量運算。因此’ VTE 21〇可經組態以發出指令 至用於執行向量運算之向量單元。 向量處理可涉及發出一或多個向量指令。向量指令可經 組態以執行涉及第一暫存器中之一 存器中之一或多個運算元的運算。 或多個運算元及第二暫 第一暫存器及第二暫存 134597.doc -21 - 200929062 器可為與向量單元相關聯之暫存器檔案的一部分。圖峨 明包含-或多個運算元之例示性暫存器如圖6所說 明’暫存器檔案中之每一暫存器可包含複數個區段,其中 每一區段包含一運算元。 在圖6所說明之實施例中,將暫存器_展示為128位元 暫存器。I存器600可被劃分為四個叫立元字區段:字〇, 字1 '字2及字3 ’如所說明。如所說明’字〇可包括位元0-
31 ’字1可包括位元32.63,字2可包括位元64_97,且字3可 包括位元98-127。銬而,鈾羽i = 、’、 晃、$此項技術者將認識到,暫存 1§600可具有任何合理屬_择βία 且可包括任何合理長度之任何 數目的區段。 智存器_中之每一區段可包括用於向量運算之運算 Ρ舉例而言’暫存器6〇〇可包括向量(例如,圖5之向量 Α)之座標及資料。因此,宝 b子〇可包括座標xa,字1可包括座 標ya’且字2可包括座標7。i ^ a予3可包括與一與向量相關聯 之基元相關的資料,例如,A如 . 例如,色彩、透明度及其類似者。在 實施例巾+ 3可用以儲存純量值。純量值可能或可能 不與字°-2中所含有之向量座標相關。 圖7說明例示性向量置;7ΛΛ 单疋700及關聯暫存器檔案710。向 量單元700可經組態以鈾4一结此人办 〇 執仃单扎令多資料(SIMD)指令。換 言之,向量單元7〇〇可料_ +, 對—或多個向量進行運算以產生單 一純量或向量結果。舉你丨_ θ 率例而s,向1單元7〇〇可對包含一 或多個向量之資料元勃并* 執仃並行運算以產生純量或向量結 果0 134597.doc -22- 200929062 可將由向量單元所運算之複數個向量儲存於暫存器棺案 710一中。舉例而言,在圖7中,暫存器槽案71〇提供32個备⑶ 位兀暫存器7!! (R0_R3 J)。可以類似於圖6之暫存器_的 方式來組織暫存器711令之每—者。因此,每—暫存器川 可包括向量資料,例如,向量座標、像素資料、透明度及 其類似者。可使用載入及儲存指令而在暫存器播案Η。與 記憶體(例如’快取記憶體)之間交換資料。因此,可將暫 ❹ 存器檔案710與記憶體裝置(例如,動態隨機存取記憶體 (DRAM)裝置)可通信地耦接。 " 複數個路線720可將暫存器檔案710連接至向量單元 =。每:路線可經組態以將來自暫存器槽案之輸入= 早凡°舉例而言’在圖7中,三個128位元路線將 存器槽案連接至向量單元7〇〇。因此,可一次將來 器槽案710之任何3個暫存器之内容提供至向量單&子 =舉:而一位元路線721提供寫回路徑以將由向 川中1任0^异之結果寫回至暫存器標案710之暫存器 描單元8°°之詳細視圖。向量單〜^ "量早7L 700之實施例。如圖8所說明 :包括複數個處理路線。舉例而言,圖”展示四= - Μ: SI請及請。每—處理路線可經組態以與 ;:或多個其他處理路線並行地執行運算。舉例而言,每二 處理路線可使-對運算元相乘以執行交又乘積或點乘積運 134597.doc -23· 200929062 算。藉由使向量單元之不同處理路線中的不同對運算元相 乘,可更快速且更有效地執行向量運算。
每一處理路線可經管線化以進_步改良效能。因此,每 一處理路線可包括詩料算元執行—或多個運算之複數 個管線階段。舉例而言’如圖8所說明,每一向量路線可 包括乘法器851,其用於使—對運算元Αχ#Βχ、〜與〜、 、飢及、與〜相乘。可自將暫存器槽案與向量單元輕接 之路線(例如,圖7中之路線72G)中之—者導出運算元A〆 x Ay By、Αζ、Βζ、Aw& Bw中之每一者。在本發明之一 實施例中,可在管線之第-階段中執行運算元之乘法,如 圖8所說明。 每一處理路線亦彳包括用於對準由乘法器851所計算之 乘積的對準器(aligned舉例而言’可將對準器㈣提供於 每一處理路線卜對準n 852可經組態以將由乘法器851所 計算之乘積的小數點調整至結果中之理想位置。舉例而 言,對準器852可經組態以將由乘法器851所計算之乘積的 位元移位一或多個位置,藉此使乘積處於所要格式。雖然 圖8中將對準展示為單獨管線階段’但熟習此項技術者將 認識到’可在同一管線階段中執行乘法及對準。 每一處理路線亦可包括用於使兩個或兩個以上運算元相 加之加法器853。在一實施例(圖8所說明)中,每一加法器 853經組態以接收由乘法器所計算之乘積,且將乘積加至 另一運算元C。類似於運算元A&B,可自將暫存器檔案連 接至向量單元之路線中之一者導出運算元C。因此,每一 134597.doc -24- 200929062 處理路線可經組態以執行乘加指令。熟習此項技術者將認 識到,在向量運算中頻繁地執行乘加指令。因此,藉由在 並行路線中執行若干乘加指令,可顯著地改良向量處理效 率。 如圖8所說明,每一向量處理路線亦可包括正規化階段 及捨入階段。因此,可將正規化器854提供於每一處理路 線中。正規化器854可經組態成以方便的指數格式來表示 计算值《舉例而言,正規化器可接收作為運算之結果之值 0.0000063。正規化器854可將值轉換為更合適的指數格 式,例如,6·3 X 1〇-、捨入階段可涉及將計算值捨入至所 要數目之小數點。舉例而言,若在結果中僅需要三個小數 位,則可將計算值10.5682349捨入至1〇 568。在本發明之 一實施例中,捨入器可對特定精度浮點數之最低有效位元 (捨入器經設計以對其起作用)進行捨入。
熟褊此項技術者將認識到,本發明之實施例不限於以上 及在圖8中所描述之特定管線階段、組件及組件配置。舉 例而言,在一些實施例中,路線81〇之對準器852可經組態 以對準運算元Cx、由乘法!|所計算之乘積或兩者。此外, 本發明之實施例不限於圖8所描述之特定組件。所說明之 組件與額外組件(諸如(但不限於),前置字元為零(1以^叫 zero)之加法器、除法器,等等)之任一組合可包括於每一 處理路線中。 在本發明之-實施例中,向量單元之—或多個處理路線 可用以執行純量運算。因此,向量指令及純量指令兩者皆 134597.doc •25· 200929062 可由向X單元處理。舉例而言’參看圖8,處理路線84〇可 用以執仃純量運算。處理路線840可用於執行純量指令, 因為在一實施例中,路線84〇可在執行向量指令的同時相 。未、里使用。因此,本發明之實施例允許待獨立地發出 至向量單元之向量指令與純量指令之任何組合藉此改良 效能。 w—卜藉^允許向量單元執行純量運算,避免與在向量 ❹ ❾ 單疋與純!單几之間傳遞資料相關聯的低效。如先前所描 述習知處理器需要將記憶體用作媒體以在向量單元與^ …之間交換資料。利用記憶體來交換資料可能非常低 =藉由允許純量及向量運算由同—處理單元執行,可將 存於統—暫存器槽案中,藉此避免為經由記憶體而 父換資料所需要之高延時。 j一些實施例中,純量處理路線可經修改以包 ^算所需要之較多功能單元,諸如,浮點狀態/控制 一子》 i去正規化支援及其類似者。整合向量與純量單 疋之另-優勢在於:與獨立向量及純量單元㈣ ::著的面積節省。所節省的空間可用以建構其他極重; ,且件且增加晶片密度。 在本發明之一肚實施例中 個處理… 量指令可僅利用複數 ^線中之-或多者。舉例而言,參看圖8,處理向 可需要三個路線,例如,處理路線8W因 可W與向量指令相同之#環來處理純量指令。換言 ,可在處理路線81〇-830中處理向量指令且可並行地 134597.doc -26 - 200929062 在路線840中處理純量指令。 圖9說明根據一實施例之例示性統一暫存器檔案9〇〇。暫 存器檔案900為圖7所說明之暫存器檔案71〇的更詳細視 圖。如圖9所說明,暫存器檔案900可包括複數個暫存器(〇_ m)。每一暫存器可類似於圖6所說明之暫存器6⑽而配置, 亦即,具有複數個區段(字0至字3)〇在本發明之一實施例 中’-或多個暫存器之-或多個區段可經組態以儲存純量
運算元。舉例而言’在圖9中’最^個暫存器之字3區段 可用以儲存純量運算元。因&,藉由將純量暫存器樓案覆 蓋於向量暫存II標案上,可避免對向量及純量運算之傳遞 結果的記憶體存取。 此外編譯器可㉟能夠在暫存器配置期㈤利用暫存器播 案900之結構以使暫存器檔案之利用最大化且改良指令排 '。舉例而言,編譯器可能能夠使用排列指令而非發出存 取記憶體以在單獨向量與純量暫存器㈣之間交換資料之 長延時移動指令來操縱暫存器檔案_中之向量及 料。 只 整合向量及純量單元及暫存器播案之另一優勢在於:可 減少經發出以執行特定任務之指令之總數。圖心說明可 象處理處理器所執行之運算之例示性序列。如圖心 說明,運算可包括第-運算,其用於使兩個向量v3與V4 :加’且將結果儲存於向量v2f。運算可進—步包括:第 :、’、用於將純量運算元f2加至向量V2之y座標;及 運算,其用於將向量…與以之和儲存於向量vi中。 134597.doc •27- 200929062 圖謂說明可經發出以在使用獨立向量及純量單元的情 況下執仃圖1〇A所說明之運算之序列之例示性指令。例示 性指令可包括指令群咖_刪。指令群職可與圖10A所 說明之第一運算相關聯。因為第-運算為向量運算,所以 指令群1〇01可與向量單元相關聯。如圖10B所說明,指令 群1’包括向量加法指令及健存指令。儲存指令可經組態 以將第運算之結果儲存於記憶體中以使第一運算結果可 用於純量單元。
第二指令群10〇2可與圖10A中之第二運算相關聯。因為 第二運算涉及純量數學,所以第二指令群1002可與純量單 元相關聯。如圖10B所說明,第二指令群1〇〇2可包括用以 將來自記憶體之第-運算之結果載人至與純量單元相關聯 之暫存器標案的載人指令。第二指令群1()()2亦包括用以執 行第二運算之純量加法指令及用以將來自純量暫存器檔案 之第二運算之結果儲存至記憶體之儲存指令。 第三指令群1003可與圖1〇A中之第三運算相關聯。因為 第二運算涉及向量數學’所以第三指令群1003可與向量單 元相關聯。如圖10B所說明,第三指令群1003可包括用以 將來自記憶體之在第二運算中所計算之結果載入至向量暫 存器檔案之載入指令。第三指令群1〇〇3亦包括用以執行第 三運算之向量加法指令。如較早先所論述,圖10B所說明 之載入及儲存指令可具有長延時,其可不利地影響有效影 響處理及再現。 圖10C說明可經發出以使用整合向量/純量單元及暫存器 134597,doc -28- 200929062 檔案來執行圖10A之運算的例示性指令。如圖 明,不使用载入及儲存指令,因為向量及純量運算元在整 合向量/純量暫存器槽案(例如’圖9之暫存器槽 不可用的。因此’發出第一向量加法指令以執行第)_: 算’發出第一純量加法>a 勒 運 …… 打第二運算’且發出第二 向量加法扣令以執行第三運算。 如圖i〇c所說明,亦可在表示圖1〇A之運算 ❹ ❹ 發出一或多個排列指令。排列指令可經組態以在暫存器^ 案之一或多個暫存器中番 节仔15中重新配置運算元,使得以所要次庠 而將運算元發送至命番 廷至白量/純量単疋之處理路線。在本 之一些實施例中,可蕊士产a θ 〇丄 皆入處提… 量單元之處理路線的 輸入處提供運算元多工it而避免排列指令。 以上所揭示的本發明之實施例提供若干優勢。舉例而 δ ’載入及儲存指令不再為在向量與純量處理單元之間傳 遞資料所必要。因為不再需要記憶體階層作為用 與純量處理單元之間交換資料之媒體,所以避免與載入及 儲存指令相關聯之延時。在—些實施财,排列指令可為 在將暫存H内容傳遞至處理路線之前重新排序暫存器 算元所必要。排列指令涵t 的延時。 k通常具有比載入及儲存指令顯著低 藉由提供整合向量/純量單元及整合向量/純量暫存器播 案,本發明之實施例避免用於在向量與純量單元之間交換 資料之長延時,且藉此改良效能。 I34597.doc •29· 200929062 雖然前述内容係針對本發明之實_,但可設計本發明 之其他及另外實施例而不f離其基本範_,且其範脅係由 以下申請專利範圍判定。【圖式簡單說明】 圖1說明根據本發明之-實施例的多核心處理元件。 圖2說明根據本發明之一實施例的多核心處理元件網 路 ❹ ❹ 圖3為根據本發明之—實施㈣待㈣像處理系統再現 之例示性三維場景。 圖4說明根據本發明之一實施例的待再現於螢幕 件的詳細視圖。 圖5說明交又乘積運算。 圖6說明根據本發明之一實施例的暫存器。 圖7說明根據本發明之—實施例的向量單元及暫存器樓 〇 圖8說明根據本發明之一實施例之向量單元的詳細視 上之物 案 圖 圖9說明根據本發明之-實施例之例示性暫存器權案的 詳細視圖。 圖10A說明可在影像處理期間執行之例示性運算。 圖10B說明用於使用獨立向量及純 里汉,屯重卓凡來執行圖10A 之運算的例示性指令。 圖10C說明用於使用整合向量/純量單元及整合暫存器檔 案來執行圖10A之運算的例示性指令。 * 134597.doc -30· 200929062 ❹ ❿ 【主要元件符號說明】 105 基本通量引擎(BTE) 110 多核心處理元件快取記憶體 115 處理結果收件匣 200 多核心處理元件網路 205ι 工作負荷管理器 2052 工作負荷管理器 2053 工作負荷管理器 205n 工作負荷管理器 210 向量通量引擎 22〇! 多核心處理元件 2202 多核心處理元件 2203 多核心處理元件 2 2 〇ν 多核心處理元件 225 高速匯流排 230 快取記憶體 305 三維場景 310 監視器 315 檢視者 32〇α 物件/錐體 32〇β 物件/箱體 320c 物件/箱體 320d 物件/箱體 325a 光源 134597.doc ,31 200929062
325β 光源 330 像素/柵格 335 像素 340 原始射線 341α 陰影射線 341β 陰影射線 343 反射射線 344 透射射線 410 三角形 410a 三角形 410b 三角形 411a 向量 411b 向量 413 表面法線/法向向量 415 法向向量 600 暫存器 700 向量單元 710 暫存器檔案 711 暫存器 720 路線 721 128位元路線 800 向量單元 810 處理路線 820 處理路線 134597.doc -32· 200929062 830 處理路線 840 處理路線 851 乘法器 852 對準器 853 加法器 854 正規化器 1001 指令群 1002 指令群 1003 指令群 ❹ 134597.doc -33

Claims (1)

  1. 200929062十、申請專利範圍: 一種處理器,其包含: 。暫存器檔案’其包含複數個暫存器,其中每 器包含複數個區段,且其中 存 — 升甲—或多個暫存器之一第— ❹ =一或多個區段經組態以儲存純量資料且-或多個暫存 之一第二預定-或多個區段經組態以儲存向量資料;及 一處理單元,其與該暫存器槽案可通信地麵接,其中 =處理單元經組態以執行向量及純量指令,其中執行該 荨向量及純量指令包含更新該暫存器㈣中所含有 料。 2·如請求項1之處理器’其中該複數個區段中之每一者包 含一運算元。 月求項2之處理器,其中該第一預定一或多個區段包 含純ϊ運算兀’且該第二預定一或多個區段包含向量運 粒 一 算7L。 4·如請求項1之處理器,其令該處理單元包含複數個處理 路線其中該複數個處理路線中之每一者經,组態以對自 該暫存器檔案所接收之複數個運算元並行地執行複數個 運算。 5. 如請求項4之處理器,其中該複數個處理路線中之每一 者包含複數個功能單元,每一功能單元經組態以執行該 複數個運算中之一運算。 6. 如請求項5之處理器,其中該等功能單元包含乘法器、 加法器及對準器。 134597.doc 200929062 7. —種用於儲存向量資料及純量資料之方法,其包含. 在一暫存器檔案之一或多個暫存器之一第一預定一$ 多個區段中儲存該純量資料; 5 在該暫存器檔案之一或多個暫存器之一第二 ^ ^ ""'或 多個區段中儲存該向量資料;及 一 -藉由在一與該暫存器檔案可通信地耦接之處理單元中 執行向量及純量指令來更新該暫存器檔案中之該向量資 料及該純量資料。 β 8·如請求項7之方法,其中該複數個區段中之每—者包含 一運算兀。 9. 如請求項7之方法,其中該第一預定一或多個區段包含 純量運算元,且該第二預卜或多個區段包含向量運算 元。 10. 一種包含彼此可通信地耦接之複數個處理器的系統,每 一處理器包含: ◎一暫存器檔案,其包含複數個暫存器,其中每一暫存 器L含複數個區段,且其中一或多個暫存器之一第一預 疋一或多個區段經組態以儲存純量資料且一或多個暫存 器之一第二預定一或多個區段經組態以儲存向量資料;及 一處理單元,其與該暫存器檔案可通信地耦接,其中 該處理單元經組態以執行向量及純量指令,其中執行該 等向置及純量指令包含更新該暫存器檔案中所含有之資 料。 11. 如請求項10之系統,其中該複數個區段中之每一煮包含 134597.doc 200929062 一運算元。 :求項11之系統’其中該等運算元包含向量運算元及 純罝運算元。 13·如請求項li之系統,其令該第一預定一或多個區段中之 每一t包含一純量運算元,且該第二預定一或多個區段 中之每一者包含一向量運算元。 14·如a求項1()之系統’其中該處理單元包含複數個處理路 線,其中該複數個處理路線中之每一者經組態以對自該 $存器槽案所接收之複數個運算元並行地執行複數個^ 2求項14之系統’其中該複數個處理路線中之每 =含複數個功能單元,每—功能單元經 數個運算中之一運算。 矾仃該複 16.如明求項15之系統,其中該 法器及對準器。 〜單疋包含乘法器、加 134597.doc
TW097136672A 2007-10-22 2008-09-24 Scalar float register overlay on vector register file for efficient register allocation and scalar float and vector register sharing TW200929062A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/876,056 US20090106526A1 (en) 2007-10-22 2007-10-22 Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing

Publications (1)

Publication Number Publication Date
TW200929062A true TW200929062A (en) 2009-07-01

Family

ID=40564665

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097136672A TW200929062A (en) 2007-10-22 2008-09-24 Scalar float register overlay on vector register file for efficient register allocation and scalar float and vector register sharing

Country Status (2)

Country Link
US (1) US20090106526A1 (zh)
TW (1) TW200929062A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103119579A (zh) * 2010-09-24 2013-05-22 英特尔公司 用于向量整数乘加指令的功能单元
US9092213B2 (en) 2010-09-24 2015-07-28 Intel Corporation Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation
TWI498815B (zh) * 2011-12-23 2015-09-01 Intel Corp 用以響應於單一指令而執行橫向部分和之系統、裝置及方法
US9703966B2 (en) 2011-11-17 2017-07-11 Arm Limited Cryptographic support instructions

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8169439B2 (en) * 2007-10-23 2012-05-01 International Business Machines Corporation Scalar precision float implementation on the “W” lane of vector unit
CN104137052A (zh) * 2011-12-23 2014-11-05 英特尔公司 用于选择向量计算的元素的装置和方法
US9575755B2 (en) 2012-08-03 2017-02-21 International Business Machines Corporation Vector processing in an active memory device
US9632777B2 (en) 2012-08-03 2017-04-25 International Business Machines Corporation Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry
US9569211B2 (en) 2012-08-03 2017-02-14 International Business Machines Corporation Predication in a vector processor
US9003160B2 (en) 2012-08-03 2015-04-07 International Business Machines Corporation Active buffered memory
US9594724B2 (en) 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
US8972782B2 (en) 2012-11-09 2015-03-03 International Business Machines Corporation Exposed-pipeline processing element with rollback

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US6178500B1 (en) * 1998-06-25 2001-01-23 International Business Machines Corporation Vector packing and saturation detection in the vector permute unit
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
US6598209B1 (en) * 2001-02-28 2003-07-22 Sequence Design, Inc. RTL power analysis using gate-level cell power models
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
GB2390443B (en) * 2002-04-15 2005-03-16 Alphamosaic Ltd Application registers
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
US20080079713A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Area Optimized Full Vector Width Vector Cross Product
US20080079712A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Dual Independent and Shared Resource Vector Execution Units With Shared Register File
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103119579A (zh) * 2010-09-24 2013-05-22 英特尔公司 用于向量整数乘加指令的功能单元
US8667042B2 (en) 2010-09-24 2014-03-04 Intel Corporation Functional unit for vector integer multiply add instruction
TWI455021B (zh) * 2010-09-24 2014-10-01 Intel Corp 向量整數乘加指令之功能單元、方法及計算系統
US9092213B2 (en) 2010-09-24 2015-07-28 Intel Corporation Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation
CN103119579B (zh) * 2010-09-24 2016-08-03 英特尔公司 用于向量整数乘加指令的功能单元
US9703966B2 (en) 2011-11-17 2017-07-11 Arm Limited Cryptographic support instructions
TWI498815B (zh) * 2011-12-23 2015-09-01 Intel Corp 用以響應於單一指令而執行橫向部分和之系統、裝置及方法
US9678751B2 (en) 2011-12-23 2017-06-13 Intel Corporation Systems, apparatuses, and methods for performing a horizontal partial sum in response to a single instruction

Also Published As

Publication number Publication date
US20090106526A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
TW200929062A (en) Scalar float register overlay on vector register file for efficient register allocation and scalar float and vector register sharing
US8332452B2 (en) Single precision vector dot product with “word” vector write mask
US7783860B2 (en) Load misaligned vector with permute and mask insert
US9495724B2 (en) Single precision vector permute immediate with “word” vector write mask
US10733691B2 (en) Fragment shaders perform vertex shader computations
US20090150648A1 (en) Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions
US8169439B2 (en) Scalar precision float implementation on the “W” lane of vector unit
Schmittler et al. Realtime ray tracing of dynamic scenes on an FPGA chip
US7926009B2 (en) Dual independent and shared resource vector execution units with shared register file
CN110084875B (zh) 使用计算着色器作为顶点着色器的前端
US20080079713A1 (en) Area Optimized Full Vector Width Vector Cross Product
US8248422B2 (en) Efficient texture processing of pixel groups with SIMD execution unit
US8063903B2 (en) Edge evaluation techniques for graphics hardware
CN109978751A (zh) 多gpu帧渲染
CN1329870C (zh) 任意形状图像的基于块的旋转
US10068366B2 (en) Stereo multi-projection implemented using a graphics processing pipeline
US20090063608A1 (en) Full Vector Width Cross Product Using Recirculation for Area Optimization
US8161271B2 (en) Store misaligned vector with permute
US7868894B2 (en) Operand multiplexor control modifier instruction in a fine grain multithreaded vector microprocessor
US20090284524A1 (en) Optimized Graphical Calculation Performance by Removing Divide Requirements
US20090106525A1 (en) Design structure for scalar precision float implementation on the "w" lane of vector unit
US20080100628A1 (en) Single Precision Vector Permute Immediate with "Word" Vector Write Mask
Hermes et al. Global Illumination using Parallel Global Ray-Bundles.
US20240015263A1 (en) Methods and apparatus to provide remote telepresence communication
CN114003197A (zh) 利用梅森数或者费马数快速计算模运算的技术和应用