多重處理器與平行處理架構並非頭一次出現。今日,多重處理器研發業者已不再依賴提高時脈速度與增進層級平行處理(Instruction-level Parallelism, ILP)等方法來增進效能,因絕對的效能、增加的耗電量、以及攀高的成本使邊際效益呈現逐漸遞減的趨勢,目前,多數產業都已體認多重核心(Multi-core)是未來的發展方向,其主要設計挑戰已逐漸被成功克服,實際的建置行動更已經展開。
轉移至多重核心技術的主要動力有二,一是「現實世界是平行處理」的,桌上型電腦經常讓使用者誤以為許多作業都是同時平行處理,但實際上是以循序模式逐一執行,之後在多個作業之間快速切換,產生同步處理的錯覺。更重要的是,當電腦科學家嘗試找出能作為更複雜程式的原始功能模塊時,均一致發現這些元件都屬於平行處理程序。此外,電子市場中成長最快速的領域–即時媒體處理和資料壓縮,正是平行處理技術最普遍的應用。
開發門檻大幅降低
近年來,發展最迅速的其中一項領域,促使著研發人員探索應用需求與平行架構之間的關聯性。英特爾(Intel)與超微(AMD)推出的「主流」處理器,都採用較鬆散的耦合設計,結合兩個或四個處理器,不必大幅變更程式開發模式,就能達到增進兩倍與四倍的效能結果,但其產生了對更高效能及增加核心數量的需求,而影響程式執行的模式。以往,多重核心與平行處理系統的程式撰寫被認為難度極高,需要特殊的工具和專業知識,唯一有能力撰寫程式的人,就是開發這種處理器的工程師。的確,這也是以往多重核心處理器失敗的原因,但現今已有一些產品,能運用標準工具來進行設定與開發程式,讓晶片設計人員和程式開發人員都能輕鬆上手。
以picoChip的picoArray晶片為例,其含有數百個異質化的處理器,能針對訊號處理作業進行優化設計(圖1、圖2)。透過一對一的模式,其可將每個工作指派給各個處理器,處理器本身以標準C或組譯語言作為開發工具。因此,不僅效能會隨著處理器數量呈現線性成長,更重要的是,它讓一般工程師能快速且輕易地開發程式(圖3)。
![]() |
| 圖1 藉由內含數百個異質化處理器核心來優化訊號處理作業 |
![]() |
| 圖2 多重核心處理架構示意 |
![]() |
| 圖3 picoArray晶片程式開發環境 |
這種模式讓各種平行運算作業,如無線基頻處理和軟體無線電能快速且直覺化地建置,也讓設計人員能實際運用異質化的多重核心架構。
除增加可用性之外,業界更體認到許多運算作業與生俱有的平行處理特性,而使其成為第二個促使業界採納多重核心技術的動力。儘管主流時脈速度已攀升至3GHz,電晶體數量亦增加到數以億計,但在過去5年,單核處理器的發展動力已不如以往,而為克服諸多挑戰所發展的多重核心架構,正是造成這種現象的原因。
傳統處理架構遇瓶頸
在1986至2002年間,微處理器的效能每年提高52%,每十八個月就增加一倍。但到了2006年,每年成長的幅度減緩至不到20%,因此現今每隔5年效能才能增加一倍。
造成此效能成長減緩的現象包含許多因素。首先,系統工程師無法再透過ILP技術來增加布線,對工程師而言,最基本的技巧包括簡單的預先擷取指令,但現在他們必須運用極複雜的技巧,如亂序執行和分支預測等。在許多情況下,增加複雜度所付出的代價,甚至超過增加效能的效益。因此,利用作業與字元層級的平行處理來取代ILP,是進一步增進效能的唯一方法。
功耗,則是單核處理器另一不同於以往的發展領域。在90奈米以下的製程中,功耗密度已達到100W/cm2,逼近核子反應爐的水準,不久後即將攀升到1,000W/cm2,接近太空火箭噴嘴的層級,這並不是唯一的限制條件,因漏電造成的靜態耗電率,在晶片的總功耗比重中足以達到40%。
picoArray的各種平行架構,可從許多層面解決功耗問題。第一,其於執行特定功能時運用了許多更省電的方法,尤其是當軟體設計時,刻意分成多個功能模塊。微調的多重核心架構,能借重各種現代功耗管理技術,類似時脈控制閘與區域化的關閉電源,讓停止運作的元件,都能暫時關閉。這使得系統能以更聰明的方式運作,解決現代製程中主動功耗與靜態漏電流的問題。
多重核心元件亦能解決運用先進半導體製程所衍生的另一項問題,亦即持續下滑的元件可靠度。尤其是在65奈米與45奈米製程中,以往的「正品-次品」已被統計效能評測技術所取代。此外,這類製程生產出的元件,容易產生硬錯和軟錯(Hard and Soft Error)。
多重核心架構自然會採取各種備援式設計技術,這種方式經常見於記憶體製造,以關閉不符規格或有故障的元件區域。一家微處理器製造廠商目前已全部銷售採用單一八處理器核心設計為基礎的四核、六核、和八核版本處理器晶片。
功耗及統計上差異的效能,也會對單核處理器系統的發展產生間接影響,限制晶片製造無法透過提高時脈速度來增進效能。現今的3GHz已證明是處理器製造商自1979年以來所面臨時脈速度的極限。平行處理則仍能發揮後續製程尺吋縮小所帶來的利益,讓製造商每推進至新製程世代時,便能讓每個晶片內的標準核心數量增加一倍。
選擇適當開發工具與通訊架構
當然,要讓這些額外增加的核心投入實際的作業,必須設計一個適合的架構,至少涉及跨處理器的通訊基礎架構,以及設計各個運算元件。這方面也須依賴設計流程以及編程工具,這類工具必須在一個環境中支援各種陣列尺寸(圖4)。相關工具在自動設定低階平行元件、自動將作業分配給各個核心、以及設定互連元件等各方面的能力都是相當重要的。可重複使用的多重核心設計環境,其讓編程工作能專注於設計元件本身,而不是將心力分散至建置過程中,此與另一種平行架構不同,針對FPGA,工程師必須處理時序收斂以及行為合成方面的問題。
![]() |
| 圖4 用於開發多重核心設計的工作流程與編程工具 |
過去幾年,這些問題開始衍生出另一重大改革:大多數處理器面臨的效能提升限制主要來自移動資料的能力,而不是運算效能。DRAM記憶體的存取須耗費兩百個時脈週期,而浮點運算乘法僅須四個週期便能完成。所產生成本不光只是時間,運用區域內的暫存器,遠比使用全域記憶體要來得省電,這在能源有限的環境中尤為重要。
因此,多重核心系統的設計者可選擇適合的通訊架構,並建置適當的暫存器、區域與全域記憶體資源來解決許多問題。一個高效率的通訊架構,甚至能取代許多記憶體存取作業,支援核心與核心之間的資料傳輸功能。
以多重核心架構而言,最後一個待克服的問題,就是人。多年來,晶片的規模已發展到超乎理解(進而設計或使用)的範圍,一般工程師無法「從頭開始」研發。研發工程師和程式開發人員,必須愈來愈依賴抽象層面的模式來瞭解。
有助製程持續演進
但到了65奈米以下製程,一切變得不再適用。訊號完整性、時脈抖動、以及許多其他小規模的限制,導致業者無法從前一世代所累積的基礎和抽象知識來進行設計工作。但多重核心架構提供一種新的抽象模式,讓工程師能運用90奈米以下製程晶片中為數可觀的電晶體。此外,根據過去的經驗,只要透過設計完善的通訊基礎架構,以「逐步擴增」的模式進行設計,在處理更小的子單元時,設計、驗證、以及測試方面的工作都會變得愈來愈容易。
自從Jack Kilby與Bob Noyce在1950年代末期推出矽元件平面製程以來,半導體產業便持續朝向更小、更快的目標前進。但發展至今,傳統的動力是在一個晶片中嵌入更多電晶體,以及更高的時脈速度,已無法再提供前進的動能。研發人員必須開始思索更聰明的方法,甚至拋棄累積數十年的技術。因此多重核心架構將在現今與未來的產業新局勢中,扮演重要的角色。
(本文作者為picoChip共同創辦人及營運長)



