UltraSPARC_T1

**UltraSPARC T1** 是昇陽電腦所研發的微處理器，而處理器還在開發階段時的研發代號稱為「Niagara，尼亞加拉瀑布」，之後在 2005 年 11 月 14 日正式研發完成並發表。UltraSPARC T1 是一顆多核心（執行核）、多執行緒（多執行緒）的 CPU，且針對伺服器運算的運用需求而強化省電設計，在 1.2GHz 運作時脈下的典型用電為 72W（Watt，瓦、瓦特）。

UltraSPARC T1 衍生自 UltraSPARC 系列微處理器，它是昇陽電腦公司的第一顆多核多緒處理器，這顆處理器內可以有 4 個、6 個、8 個 CPU 核心，且每個核心最多可同時執掌、處理 4 個執行緒，如此 UltraSPARC T1 處理器在最理想狀態下可同時執行 32 個執行緒。

UltraSPARC T1 的運作與昇陽電腦的高階對稱處理（SMP）系統很近似，它具有系統分割能力，可以將一個或數個核心切割成一個分區（Partition），然後在分區內執行一個或數個程序（Process）及執行緒（Thread），此外待執行的程序、執行緒也可以儘速派送或轉移給其他較閒餘的執行核心，進而增加整體執行效率。

## 核心

UltraSPARC T1 是針對多緒執行而設計的特殊處理器，它運用新的架構來獲取高執行效率，而不是為單一個執行核心加入更多智慧化、最優化的心力設計，昇陽的目標是在同一時間內盡可能執行、處理多個執行緒，使每個執行核心的執行管線能達到最大的使用率。

此種作法目前來看似乎成效不錯，現有的基準標竿測試證實 UltraSPARC T1 內的每個執行核心確實更有效率，這是與約 2001 年的 UltraSPARC III 相比，UltraSPARC III 是一顆單核、單緒，且能完整執行 SPARC v9 指令集的處理器。

UltraSPARC T1 內雖有 8 個執行核心，但每個執行核心的結構複雜度並不如現有的高階處理器，而且每個執行核心也不具備超序執行（out-of-order execution，簡稱：OOO，也稱亂序執行）的能力，也沒有配屬大容量的快取記憶體。單緒型的處理器極倚賴大容量的快取記憶體來提升執行效能，原因是：一旦在快取記憶體中抓取不到所需的資料（稱為：漏失，miss）時，就必須從主記憶體中去提取（fetch）資料，而增加快取記憶體的容量可減少漏失的機率，不過即便如此，漏失對效能依然是很大的衝擊影響。

相對的，UltraSPARC T1 的核心是運用多執行緒的處理特性來避開快取漏失所造成的效能衝擊，當快取漏失發生時，核心會轉去處理另一個執行緒（在此假設還有其他可放置的待處理位置，每個核最多可執掌 4 個執行緒），在處理的同時，原先漏失的的需求資料，也會在這時候以背景作業的方式自外部主記憶體提取到處理器內。如此雖然每個執行緒的處理速度會較慢，但每個核心的整體處理進出量及運算利用率反而是大幅提高。而這也意味著快取漏失的衝擊影響被大幅降低，這樣 UltraSPARC T1 就能以較少的內建快取記憶體而仍可維持大量的進出處理執行效率，快取記憶體的容量不再需要大到得容納執行核心所需的所有資料或絕大多數的資料，只要能容納每個執行緒最近所漏失而必須提取至處理器內的資料。

## 目標市場

UltraSPARC T1 有其獨到的功效能力使其能專注、適合在特有的市場，而不是用在高階財務數字運算及超高效能的應用，它是鎖定在網路方面的高需求伺服運算上，如高流量的網站伺服器，這類的伺服運算會用到大量的執行緒，且各執行緒間沒有相依性，或者是沒有太高的相依性，各緒相當的個別獨立。

不過，UltraSPARC T1 的設計上也有個局限，那就是整個處理器內僅有 1 個浮點運算單元，且使用上由 8 個核心所共享，因此 UltraSPARC T1 不適合用來執行具有大量浮點運算的應用程式。然而，這顆處理器所想定的網際網路伺服器應用市場本就不常用到大量的浮點運算[1]，昇陽電腦方面不認為在這個市場上這將成為一個問題。

1. **^** - **附註：** _文章雖如此翻譯，但我持有另一個看法，即是昇陽電腦為了及早推出 UltraSPARC T1 處理器，因此將重要性較次的設計項目加以精省，而浮點運算、加密運算皆在此列，所以 UltraSPARC T1 僅有 8 個整數運算核心，但卻沒有 8 個浮點數運算核心及 8 個加密運算核心，反而是只有 1 個浮點數運算核心與 1 個加密運算核心，而這些已在後續的新款處理器中得到補足強化。_

已經證實這些問題已經在昇陽的下一代晶片 UltraSPARC T2 中得到解決。這款晶片將具有 8 個核，每個核具有 8 個硬體執行緒支持能力（這比 UltraSPARC-T1 多一倍）。同時，每個核心都具有獨立的浮點運算單元。因此，這款晶片的浮點運算能力甚至可用於高性能計算領域（需要大量浮點運算支持）。

同為多核心處理器，Sun 的 Niagara 系列晶片（UltraSPARC T1, T2）與 IBM 的多核心晶片 Cell 顯著不同。首先，前者是對等結構，各核之間地位對等、沒有差異；而後者是主從結構。其次，前者的每個核心均具有完整的 SPARC V9 指令集支持能力，均可獨立執行任何指令，理論上二進位代碼可以直接運行；後者只有一個 Power 核心作為主控，其餘核心實質上都是矢量處理單元（VPE），只負責執行 SIMD 指令，如果要充分發揮其處理能力，應用程式必須以 SIMD 指令重寫。以上不同造成了兩款晶片面向不同應用的事實，即前者適合於處理無規則數據流，如網絡伺服器；後者適合大批量規則運算，如做為遊戲機處理晶片。

## 研發代號：「Rock」

UltraSPARC T1 是針對單顆 CPU 的系統所設計，所以它不具備對稱處理（SMP）能力，即由 UltraSPARC T1 組成的系統，最多只能有一顆多核心晶片。而未來昇陽的 CMT UltraSPARC 處理器，如 Rock（研發代號）將會是多顆處理晶片的伺服器架構，多顆多核心 Rock 晶片將能組成對稱多處理機（SMP）系統，進一步擴展運算能力。Rock 處理器將鎖定在傳統資料運算工作，如資料庫執行。因此，Rock 看來將成為昇陽電腦在 SMP 架構處理器上的新接替，預計會取代現有的 UltraSPARC III、UltraSPARC IV。

與 UltraSPARC T1 不同的，Rock 重視且強化浮點運算的能力。另外根據昇陽電腦的透露，Rock 上將具有一種 Hardware Scout（硬體偵測，硬體偵察）功能，是以多執行緒式的硬體線路設計讓 Rock 具有數據預取（prefetching）的能力。

此外，Rock 不是用來接替 UltraSPARC T1，昇陽電腦已公開其 UltraSPARC T2（Niagara 2）處理器的計畫，Niagara 2 將與 UltraSPARC T1 相同，皆訴求在網路型運算。

## UltraSPARC T2

UltraSPARC T2 是昇陽電腦所研發的 8 核心處理器，每個核心最高可執掌 8 個執行緒，即可同時執行 64 個執行緒；且每個核心皆會配屬到 1 個浮點運算單元，即是一顆 T2 處理器內會有 8 個浮點運算單元。

## 開放原碼

2006 年 3 月 21 日，昇陽電腦將 UltraSPARC T1 的相關原始程式碼，以 GPL（GNU General Public License）授權的方式加以公開公佈，而公開的項目包括：

* UltraSPARC T1 在邏輯電路設計上的原始程式碼（使用 Verilog 語言）
* 驗證套件與電路功效的模擬推演模型
* 指令集的規格（2005 年的 UltraSPARC 架構版本）
* Solaris 10 作業系統在推演模擬之用時的系統映象檔（Image）

## 作業系統支持

* Solaris
* Ubuntu

## 外部連結

* 在昇陽電腦的官方正式網站上，關於 UltraSPARC T1 處理器的資訊
* 昇陽電腦發表八核處理器 – 2005 年 11 月 14 日，作者：Jessica Davis，出處：Electronic News
* OpenSPARC – 昇陽電腦的 OpenSPARC 網站
* UltraSPARC T1 Project home - UltraSPARC T1 專案網站