跳至內容

AltiVec

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

AltiVec是一个浮點佮規型單指令流多數據流(SIMD)指令集,其由蘋果,IBM,Freescale Semiconductor(早前的摩托羅拉半導體部,合稱 AIM 聯盟), 創建而且有,並由 PowerPC 版本實現,包括摩托羅拉的 G 四,IBM 的 G 五和 POWER 六,閣有 P . A . Semi 的 PWRficient PA 六 T。AltiVec 其實是由 Freescale 公司擁的一个商標,所有的這个系統嘛予人看做是蘋果的 Velocity ia̋n-jín 和 IBM 佮 P . A . Semi 的 VMX,雖然 IBM 今仔嘛咧使用 AltiVec。

值得注意的是,AltiVec 是講一个指令集,而且 IBM 佮摩托羅拉佇咧中央處理器的實現有無仝的邏輯設計計計畫。這馬乎,IBM 的核心無包含摩托羅拉授權的 AltiVec 邏輯設計,反之亦然。

AltiVec 是 Power ISA v . 二嬸空三詳述的一个標準部份。欲佇這个詳述出現進前,AltiVec 一直毋是 PowerPC 的正式的組件,雖然其使用 PowerPC 的指令格式佮語法並且有專門為此目的咧分配的作業碼空間。

特點佮相仝性

AltiVec 和 SSE 攏有會當表述十六个八比特的有符號抑是無符號字符,八个十六比特有符號抑是無符號短整型,四个三十二比特整型抑是四个三十二位浮點型變量的一百二十八比特暫存器。兩个人攏提供緩存控制指令以使得做處理數據流的慢存汙染上細。

𪜶嘛表現出重要的無仝款。無成 SSE 二,AltiVec 支持一个特別的 RGB 像素數據類型,但是其實無佇咧六十四比特別的雙精度浮點,而且無法度佇純量佮向量暫存器之間直接徙動數據。為著欲保持佮 PowerPC 的 RISC 設計的內底「載入/儲存」模式一致,向量暫存器,親像純量暫存器,只會當對內存中載入並存儲到內存中去。猶毋過,AltiVec 提供閣較濟的「水平」操作的集合,其迒過所有的向量元素;許可的數據類型佮操作的結合嘛更加完整。AltiVec 提供三十二个百二八比特向量暫存器,佮之相比並,SSE 和 SSE 二隻提供八隻。大多數啦 AltiVec 指令採用三个暫存器運算對象,啊若佇咧 IA 抹三十二中間干焦兩个暫存器/暫存器抑是暫存器/內存操作對象。

AltiVec 嘛是唯一支持靈活向量排列的指令,佇咧其中,一个結果向量值的每一个字節攏會當對兩个其他向量中的任何一个提升,並且予另外一个向量參數化。這就允准佇一條指令中的複雜操控。

上蓋新版本的 GCC,IBM VisualAge 編譯器佮其他編譯器提供了本徵函數以直接對 C 和 C + + 程序訪問 AltiVec 指令。佇咧版本四中,GCC 原仔有包含著「自動向量化」的能力,其試圖的智能地創建 AltiVec 加速二進位代碼而程式設計師毋通直接使用本徵函數。「向量」儉儉類的引入允准了原向量類型的聲明,比如講「vector unsigned char foo;」 聲明一个號做「foo」的一百二十八比特的向量變量,其包括十六个八比特無符號字符。載入去的本徵函數譬如講「vec \ _ add」發出了基於向量內的元素類型的合適的作業代碼,並強制嚴格的類型檢查。佇咧佮人相比並,Intel 為 IA 鋪三十二 SIMD 暫存器所定義的數據類型干焦聲明囉向量暫存器(一百二十八抑六十四比特)的大細並且佇一百二十八比特暫存器時定義其包括整型抑是浮點型數值。程式設計師著愛位數據類型選擇合適的本徵函數,如「\ _ mm \ _ add \ _ epil 六 ( x , y )」以求兩个包含八个十六比特整型的向量之和。

VMX 一百二十八

IBM 為 Xbox 三百六十 Xenon 處理器加強矣 VMX , 遮的增強包含講新 routines , 當遊戲為目標(增加速三 D 圖形佮遊戲物理), 總共一百二十八 registers , VMX 一百二十八佮 VMX / Altivec 無完全兼容,一部份伊的整數 operations 去予人徙掉,以予閣較大的 register file 和 additional application-specific operations 提供空間