晶片的發明開啟了資訊時代,而系統單晶片把各式功能的矽智產整合在一顆複雜的晶片中以降低生產成本、增加效能、降低功耗,舉凡手機、行車記錄器、電視機等產品,都受惠於系統單晶片的設計與實現。
電晶體、晶片及系統單晶片
西元1947年,美國貝爾實驗室的3位工程師蕭克利(Shockley)、巴丁(Bardeen)及布萊頓(Brattain)發明了一種比傳統真空管體積更小、速度更快、成本更低及可靠度更高的電晶體,這時的電晶體可做為訊號放大及開關使用。西元1958年,柯耳比(Kilby)和諾宜司(Noyce)發現可把眾多電晶體、金屬連線和電阻電容被動元件放置在矽材料中,組成目前常聽到的積體電路(或晶片),若一顆晶片中的電晶體數量超過1萬個,則這晶片又稱為超大型積體電路。
西元1965年,由Intel公司創辦人摩爾(Moore)透過對積體電路發展趨勢的觀察,提出每顆晶片中的電晶體數量每18個月成長一倍,這也是我們常聽到的摩爾定律。西元1971年,由Intel發表世界上第一顆微處理器4004,這顆處理器擁有超過2,000個以上的電晶體,當微處理器應用於PC系統時,開始進入PC時代。
隨著電腦架構和半導體技術的不斷進步,人們開始思考如何把各式類比訊號晶片、數位訊號晶片及混合訊號晶片功能整合在同一顆複雜的系統單晶片中,以降低生產成本、增加效能及降低功耗。舉凡個人電腦、行車記錄器、電視機、手機等產品,都受惠於系統單晶片的設計與實現。
晶片設計
依電路種類,晶片可分為:類比晶片、數位晶片、混合訊號晶片等。數位晶片處理0或1的邏輯訊號,一般常使用邏輯閘進行數位晶片設計。類比晶片處理光、電、磁、熱等各式類比訊號,這種晶片可針對接收到的類比訊號進行放大或其他處理。混合訊號晶片則整合數位晶片及類比晶片的功能。
在設計者對要設計的晶片有構想後,就可開始使用數位晶片、類比晶片或混訊晶片的設計流程,加上設計軟體的輔助,進行晶片電路設計及布局設計。之後把晶片布局圖交由製程廠商生產晶片,由於晶片的腳位太小,需透過封裝廠和打件廠封裝及打線把訊號線拉出,測試晶片的功能後,才完成真正的晶片雛型品或產品。
在晶片設計中,晶片設計者常使用的設計流程有全客戶型的設計流程(full-custom design flow)及元件庫型的設計流程(cell-based design flow)。在全客戶型的設計流程中,設計者使用電晶體層級設計進行電路設計,這些電路設計可以是數位電路或類比電路,經過電路模擬確認電路效能及功耗滿足需求後,設計者開始進行晶片布局設計,並經過相關電路及布局的設計準則驗證後,就可把晶片布局設計圖交由晶片製作廠製作晶片。
在元件庫型的設計流程中,晶片設計者會使用硬體描述語言(如Verilog或VHDL)描述晶片電路或硬體,透過硬體描述語言模擬器確認電路功能無誤後,經由邏輯合成器把這些使用硬體描述語言的設計轉換成邏輯閘層級的設計。之後透過自動擺放及繞線軟體針對對應的邏輯閘元件布局進行擺放及繞線,最後經過相關電路及布局的設計準則驗證後,晶片設計者就可把晶片布局設計圖交由晶片製作廠製作晶片。
系統單晶片設計
為了降低晶片生產成本、增加晶片效能及降低晶片功耗,人們開始思考如何把各式類比訊號晶片、數位訊號晶片及混合訊號晶片功能整合在同一顆複雜的系統單晶片中。由於系統單晶片的複雜度非常高,為了加速系統單晶片的設計及確保如此大型晶片的正確性,傳統使用電晶體層次的全客戶型晶片設計流程及元件庫型晶片設計流程已無法滿足需求,使用矽智產(Silicon Intelligent Property,簡稱IP)來完成系統單晶片的設計及製作已成為目前電子業最廣泛討論的一個話題。
所謂的矽智產,指的是把系統單晶片中的各功能電路事先完成設計,並經過晶片的實體驗證,系統單晶片的設計或整合者只要透過挑選所需要功能的IP,就可以快速完成一個複雜系統單晶片的設計。如果說未來系統單晶片都是由各種不同功能的IP所組成,而這些IP也都經過矽驗證,目前最重要的課題就是如何建立及使用這些IP之間共同的介面。假如可把這個共同介面變成一個標準,使得這些IP的提供者和IP的使用者都能夠有一個標準介面可遵循,將可加速系統單晶片整合的實現。
常見系統單晶片上的IP溝通介面有兩種。第一種介面定義了IP與IP間的點對點溝通協定,常見的介面包含VCI(Virtual Component Interface)或OCP(Open Core Protocol),VCI不是匯流排(一般來說,匯流排包含仲裁電路、解碼電路、主人端IP、僕人端IP等機制),而是一個規範IP和IP間點對點的介面標準。假如IP是連接在匯流排上,IP和IP之間的資料傳輸可先透過匯流排包裹器,再透過這共通的IP介面溝通。
第二種介面是晶片匯流排,系統單晶片上不同的軟硬體IP可透過晶片匯流排協定互傳資料。目前工業界常見的晶片匯流排包含IBM的OPB(On-Chip Peripheral Bus)和PLB(Processor Local Bus)、ARM的APB(ARM Peripheral Bus)和AHB(ARM High Performance Bus)、OMI的PIbus(Peripheral Interconnect Bus)、PIbus2及PALMCHIP的Mbus和PalmBus。其中ARM公司發展的內嵌式微處理器具低功率、快速、高效率指令集及擁有非常完整的發展環境,且所提出的晶片匯流排具低功率、彈性、可重複使用、可模組化設計、彈性的測試方針等特性。
除此之外,ARM公司開發的AMBA(Advanced Microprocessors Bus Architecture)是一公開的標準,使得AMBA已成為發展系統單晶片時首要考慮使用的晶片匯流排架構。ARM公司的AMBA AHB匯流排主要是由主人端IP、僕人端IP、仲裁電路和解碼電路所組成。主人端IP主要負責提供位址和控制訊號去啟動一個讀或寫的資料傳送。僕人端IP會依主人端IP發出的讀寫要求進行資料的傳送,並做出如成功、失敗或資料傳遞中的訊號回應。
仲裁電路負責在眾多主人端同時發出資料傳送要求訊號時,保證只有一個主人端IP可以啟動資料的傳輸。雖然說這個仲裁電路的介面協定是固定的,但仲裁的演算法可以依不同應用而有不同仲裁的實現方法。AMBA解碼電路負責從資料傳遞的位址中,解碼出一個致能訊號來選擇一個可進行資料傳送的僕人端IP。
由於系統單晶片設計的複雜度非常高,在進行IP整合及系統驗證前,會先以虛擬元件進行模擬來評估系統架構。由於虛擬元件設計具備快速的模擬速度特點,可以在很短的時間內得知系統效能及功耗是否符合需求,進而決定系統架構。系統晶片架構決定後,系統單晶片設計者開始進行各式IP整合及系統驗證,並透過自動擺放及繞線布局軟體進行系統單晶片布局設計及驗證,最後進行晶片製作。
系統單晶片參考平台及實作
筆者所屬的研發團隊曾提出一個以ARM處理器為核心,以AMBA為晶片匯流排的架構,適用於多媒體應用的系統單晶片參考平台。平台式的系統單晶片設計是目前最廣泛用來設計系統單晶片時所採用的方法之一。
所謂平台,指的是由各種事先定義及驗證好的軟硬體IP、電子設計自動化軟體、軟體工具及設計方法所組成的IP資料庫及骨架環境。系統單晶片設計參考平台是一個由晶片匯流排或其他網路接線協定所架構而成的,參考平台的元件主要由硬體計算核心、軟體及其資料庫和一些驗證機制所構成。硬體核心包含了處理器IP、匯流排或連線機制、周邊IP及一些特殊應用的IP,軟體部分包含驅動程式、韌體、作業系統及一些應用軟體和資料庫,驗證機制包含有軟硬體協同驗證、相容性測試驗證及軟硬體的雛型驗證。
在系統單晶片的設計過程中,可根據不同的應用需求對這個參考平台做些許的更改,就可衍生出一個符合設計者需求的系統單晶片設計。這些更改包含了加入、移除及修改平台上的IP元件。
在建立參考平台前,必須先確定欲執行的應用及晶片上的通訊協定或骨架。之後,可以依據所選定的通訊協定或骨架選擇適合的處理器IP,如選定的骨架是AMBA晶片匯流排時,就可選擇相容於AMBA匯流排的處理器,如ARM處理器IP。
接著,必須定義平台上各元件間的存取機制,進而選定適合這平台的作業系統,這作業系統可透過AMBA匯流排或特定的協同處理器介面機制來控制各元件的溝通。最後,可根據平台上的應用選取參考平台上的軟硬體IP,如這些IP介面無法滿足所選定的通訊協定骨架,就必須設計一個符合這通訊骨架的IP包裹器,讓這些IP順利地整合進入這系統單晶片平台中。
再來,討論如何根據前述的系統單晶片參考平台,產生特殊應用的系統單晶片設計。首先必須針對平台上所需要執行的應用軟體進行分析與評估,然後更改(包含加入、移除及修改)平台上的IP元件以符合系統單晶片設計的應用需求。由以上的描述可知平台式系統單晶片設計方法最大的優點是,重複使用了事先定義好及驗證過的參考平台衍生出不同的系統單晶片設計,如此可加速系統單晶片設計所需的時間;不過,這種設計方法的缺點是參考平台的骨架確認後,就無法再做大幅度整體架構上的變動。
從模擬JPEG軟體所得到的數據,發現JPEG影像應用中的離散餘絃轉換(Discrete Cosine Transform,簡稱DCT)及逆向離散餘絃轉換(Inverse Discrete Cosine Transform,簡稱IDCT)是計算量最大且很適合以硬體實現的模組。因此,在這平台中我們設計了一個和AHB相容的DCT∕IDCT僕人端IP。系統單晶片平台中的ARM處理器負責JPEG應用中DCT∕IDCT以外的運算。
此外,ARM處理器也是整個系統的控制器,控制整個系統的同步、溝通等問題。在定義好DCT∕IDCT IP的記憶體位址空間範圍後,ARM處理器在遇到DCT∕IDCT運算時,會透過AHB匯流排開始把DCT∕IDCT運算所需要的資料和控制訊號寫入該DCT∕IDCT的記憶體位址空間。在DCT∕IDCT運算過程中,ARM處理器會使用輪詢機制知道DCT∕IDCT硬體模組是否完成運算。整個系統軟硬體的溝通及同步問題就透過AMBA晶片匯流排和輪詢機制來完成。
除了使用特殊的硬體加速器(如DCT∕IDCT IP)外,設計者也可透過指令集架構的延伸及協同處理器介面設計一額外的協同處理器,當作系統單晶片中的硬體加速器。這協同處理器和處理器可透過特定的傳輸介面溝通,不需要透過平台上的晶片匯流排。相較於使用特定的外掛硬體,使用協同處理器及協同處理器介面的效能雖然較差,但所需要的硬體成本較低,且提供了一個有效率的方法解決系統單晶片運算量不足的問題。
在這JPEG影像應用的系統單晶片實作上,我們使用0.18 μm 1P6M的製程來實現這系統單晶片,實現後的晶片布局大小是4,488 μm × 3,493 μm。這晶片共有148根腳位,其工作頻率是100 MHz。一個完整的系統單晶片尚需即時作業系統、硬體驅動程式等軟體發展環境的配合,系統中的軟硬體協同驗證、相容性測試驗證、軟硬體雛型驗證等機制也是發展系統單晶片時不可缺少的環節,因篇幅關係在此不加以詳述。
晶片的發明啟動了資訊時代,透過整合各式功能矽智產技術的系統單晶片大幅降低了生產成本及提高效能和降低晶片功耗,未來可透過使用者更多的創新演算法及應用,配合系統單晶片硬體實作,來實現更多的晶片產品應用。