VIS指令集

Visual Instruction Set （ 縮寫VIS ） ， 是一個用於SPARC處理器的SIMD多媒體指令集擴展 。 VIS在所有的UltraSPARC以及較新的SPARC64處理器上都有實現 。 VIS有三個版本 。 VIS 1.0 和VIS 2.0 已在先前的SPARC處理器上得到實現 ； VIS 3.0 將在Rock微處理器中首次實現 。 VIS重用了SPARC處理器中的64位長浮點寄存器來儲存8位 ， 16位或者32位的整數數值 。 從這方面來講 ， VIS大概更像MMX而不怎麼像SSE ／ SSE2 ／ AltiVec ， 後者都具有專用的128位SIMD寄存器 。 但是 ， MMX只有8個寄存器可用 ， 而SPARC處理器通常具有數目大得多的寄存器 ， 這是RISC處理器的特色之一 。 作爲RISC處理器的擴展指令集 ， VIS嚴格遵守RISC的設計原則 -- 保持指令集的精簡與高效 。 這很不同於CISC處理器擴展指令集 （ 如MMX / SSE / SSE2 / SSE3 / SSE4 / 3D Now! ） 的做法 。 理論上 ， RISC的設計原則可以保持流水線的簡單高效 ， 從而可能帶來更大的吞吐量及性能提升 。 然而 ， Intel ／ AMD可以很容易的爲x86 / x64處理器加入新的指令集擴展 ， Sun卻必須在這方面非常謹慎 。 這可能是CISC相較於RISC的優勢之一 。 有時候程序員們不得不組合幾條VIS指令來完成MMX / SSE只用一條指令便可完成的某項操作 。 值得指出的是 ， 更少的指令數目並不一定就會帶來更大的性能提升 。 VIS包含一系列對圖形圖像網絡等的處理支持 ， 其中大多數只可用於整型數據 。 有三種方法可以在程序中使用VIS: 使用內嵌彙編 使用VSDK中的內嵌模板 ， 這很類似於使用編譯器原語 ， 使用起來有些像調用C語言函數 使用mediaLib多媒體函數庫 。 這個庫提供C函數接口 ， 並在SPARC平臺上使用VIS （ 同時在x86 / x64平臺上使用MMX / SSE / SSE2 ） 來加速多媒體應用程序