帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
升級到SOC的技術須知
 

【作者: 景元】   2002年03月05日 星期二

瀏覽人次:【5073】

最近因為資訊媒體的推波助瀾,SOC儼然已經成為半導體業的新「法寶」。SOC究竟會對晶片設計與應用產生甚麼影響呢?本文將從系統開發的技術層面來分析。其實系統單晶片(System-On-a-Chip;SOC)技術已經有十年以上的發展歷史了。由於積體電路的不斷縮小,將離散元件整合到單一晶片的製程技術已經日益成熟。如今,系統單晶片可以在成本,價格,功率,和傳輸速率上逐漸與多晶片系統並駕齊驅了。


雖然SOC技術已經商品化,不過,它的良率低和價格高仍然阻止著普及化的腳步。舉數位相機為例,高整合度的SOC確實能符合產品開發商在極短時間內研發上市的要求,同時也會帶來設計上的新陷阱,和增加驗證上的困難度。因此,產品開發人員有必要知道當升級到SOC時,將會面臨到的問題,這包括:


* 離散元件整合到SOC之後,還遺留下哪些問題?


* 太早採用SOC時,應注意什麼?


* 當更換不同SOC,而且系統需重新設計時,將會遭遇哪些問題?


* 採用SOC的優缺點為何?


* 最佳的SOC驗證除錯策略為何?


什麼是SOC?

SOC也解釋為「一家晶片公司的系統」(The System on a Chip Company),因為一個以應用為主的SOC極可能就是一家晶片公司的註冊商標。不過,SOC的種類繁多,目前有從針對特殊應用的SOC,到整合通用微處理器/DSP的SOC。所以,採用時必須審慎選擇。


SOC設計挑戰

設計SOC時,會遭遇一些挑戰,其中有兩個最為麻煩:一是要整合硬體核心(hard cores)並不容易。因為硬體核心的接腳(layouts)涉及智慧財產權或即時計時(critical timing),所以要將許多不同的硬體核心整合在一起,必須要擁有相當的智慧財產權和技術能力才行。另一是設計韌體核心(firm cores)也不容易。雖然韌體核心可以被修改,但是,在一般的情況之下,它並不屬於智慧財產。因此,供應商針對韌體核心的支援也就不多,設計者就被迫必須自行重新開發韌體核心。SOC是由許多硬體核心和韌體核心構成的,缺一不可,因此開發這些核心的成本是業者必須細思量的。


SOC的底層結構是SOC的「引擎」,通常是混合的或通用的微處理器或DSP解決方案,例如: SH3-DSP,ARM/Piccolo......等,它們可以提供強大的運算能力,支援多媒體軟體執行。數位相機、手持式PC、機上盒(Set Top Box)解碼器、和手機...等產品就可以使用以微處理器或DSP為基礎的SOC來開發。


若客戶使用這種SOC來開發產品,並不需要額外的加工成本,比起目前業者常使用獨立的微處理器或DSP自行整合其它元件(例如:FPGA、微控制器)構成模組的開發成本節省許多。雖然使用獨立的微處理器或DSP整合其它元件的作法比較有彈性,可以讓開發商具有更多的選擇,但是「魚與熊掌難以兼得」,因為使用這種傳統方法可能需要其它元件或軟/韌體支援才行,所以成本比較高。


SOC的上層結構是針對特殊應用提供必需的功能。這個結構是由一群整合完備的裝置(devices)所構成,即SOC的上層結構所需的額外元件是非常很少的。就數位相機市場而言,有兩種知名的SOC解決方案:一是Zoran公司的COACH (Camera On A Chip),另一是LSI Logic公司的DCAM-101,這兩種SOC包含許多必備的元件,可以提供大多數數位相機所需的功能。


兩種SOC類型

一般而言,SOC可區分成兩種類型:一是通用混合(generic hybrid)型、另一是整合型。其實,這就是依上述SOC的底層和上層結構來區分的。若要求SOC的底層結構具有較大的應用彈性,則須選擇通用混合型SOC。若要求SOC的上層結構能滿足特殊應用規格,則須選擇整合型SOC。就應用面而言,數位式行動電話就需要使用通用混合型SOC來開發,而數位相機需要使用整合型SOC來開發。


通用混合型SOC

Hitachi公司的SH3-DSP解決方案就是典型的通用混合型SOC。這顆SOC是通用型的,因為它的底層是SuperH微處理器,SuperH整合了一個記憶體管理單元(MMU)和一個記憶體控制器(on-chip memory controller)。這顆SOC也是混合型的,因為它支援SH3或DSP,SH3是屬於SuperH微處理器。不過,在任何一個工作時脈之內,它只能執行SH3或DSP指令。


SH3負責位址的產生和流量控制,DSP則負責執行乘法和累加運算。從軟體開發的角度來觀察,SH3-DSP解決方案類似對一顆單獨的處理器做程式設計,因為它也具有編譯器(compiler),可以讓軟體開發者利用C語言設計,此編譯器能將這些C語言轉譯成SH或DSP指令,此編譯器也能在舊版本的SH微處理器上編譯。此外,Hitachi公司及其協力廠商也針對SH3-DSP提供了一系列完整的軟硬體開發和除錯工具,包含模擬器(simulator)、組譯器(assembler)、圖形介面開發工具、除錯環境。


混合型SOC非常適合被用來開發數位式行動電話(digital cell phone)和其它無線電通訊裝置。因為數位式行動電話需要用到微控制器(MCU)和數位訊號處理器(DSP)的功能,所以整合微控制器和數位訊號處理器的系統單晶片可以提高數位式行動電話的設計水平。例如:SH3-DSP這顆SOC藉由SH3微控制器,能提供良好的人機操作介面;它也藉由DSP提供非常高效率的語音編解碼器(speech codec)、通道編解碼器(channel codec)、等化器(equalizer)和通訊協定堆疊(communications protocol stack)。


整合型SOC

Zoran公司的COACH就是整合型SOC,它提供所有必須的硬體元件和微碼(micro-code),例如:CCD/CMOS感測器、LCD控制器、TV輸出、flash記憶體、 USB介面、RS-232介面、IrDA介面、和語音錄製/播放。


雖然,整合型SOC是屬於高整合度的晶片,但是,它仍然需要一些韌體或驅動程式才能正常工作。例如:COACH沒有CPU內核,只有DSP內核,而且,它也沒有能處理影像的硬體內核(hard cores),不過,和其它SOC一樣,COACH解決方案中,包含有許多設計數位相機時所需的現成軟體套件(ready-to-run software package),它們可以協助數位相機開發商快速設計出他們心中所想要的新產品。


各家解決方案

DCAM-101數位相機開發解決方案

從SOC中蒙受其利最明顯的例子當屬數位相機市場。開發數位相機需要先進的科技和複雜的製造工程。因為隨著像素大小的不同,數位相機的解析度也會不一樣,所以,市面上會存在許多不同型號的數位相機,目前約有100種不同的型號存在。而針對這100種數位相機的開發,也存在著許多不同的解決方案。有些方案是植基於廠商特製(proprietary)的晶片組之中,有些則是使用通用的晶片組設計。


數位相機的基本原理就是:將人眼可見的類比物像轉換成微處理器裡面的數位訊號。透過CCD(charge coupled device)和類比數位轉換器(A/D converter)將類比物像數位化,並將數位訊號壓縮,成為壓縮檔,以利後續的圖像處理和儲存作業。


LSI Logic公司的DCAM-101系統單晶片,是目前數位相機市場上,非常著名的解決方案之一。它能提供數位相機所有必需的功能,這些功能通常包含如下所列:


* CCD或CMOS感測器,以捕捉圖像數據。


* LCD顯示器,可顯示現場影像和靜態圖片。


* CompactFlash或SmartMedia儲存裝置。


* USB、IrDA、或串列埠通訊通道,以傳輸圖像數據。


* 提供人機鍵控功能,以利相機操作。


為了能支援上述功能,DCAM-101具有下列元件:


* 圖像處理器:能執行圖像壓縮(例如:JPEG)和圖像處理(例如:色彩空間轉換)。


* 核心處理單元:DCAM-101是使用MIPS為其處理器核心。


* 匯流排介面:能支援DRAM/ SRAM。


* DMA控制器:可加快系統對周邊裝置的處理速度。


* GPIO介面:便利週邊裝置輸入數據。


* CCD控制器:控制圖像數據之捕捉。


* 顯示裝置(LCD)控制器


* ATA/SmartMedia/CompactFlash介面:可外接多種儲存裝置。


* USB、IrDA、1394、UART通訊介面:支援多種通訊通道。


在上述元件中,只有DRAM、ROM和CompactFlash是屬於外部裝置,其餘皆內建於DCAM-101之中,因此,DCAM-101確實是一顆SOC。


MIPS CPU核心

MIPS CPU核心和像素加速協同處理器(pixel accelerator coprocessor)是DCAM-101的心臟,下面簡單介紹一下這兩個重要元件的功能。


DCAM-101的MIPS CPU整合了LSI Logic公司的CW4003處理器核心,CW4003和MIPS R3000 RISC是屬於同等級的處理器,且CW4003支援MIPS II指令集。CW4003具有下列優點:


* 可降低耗電量:CW4003具有「等待中斷」(wait-for-interrupt;WAITI)的指令;在中斷命令來臨時,此指令能使CW4003暫停執行其它指令,直到中斷命令被完成為止。這可以減少不必要的電量消耗。


* 統一使用一個高速緩衝記憶體(cache):這使處理器的輸出入元件減半,同時減少CW4003外部與位址匯流排、數據匯流排、RAM相關的資源數量。


這種混合式修改在設計SOC時是常見到的,因為這麼做可以突顯SOC設計業者所特有的元件特性和智財權,也可以在市場上搶佔一席的地位。


對SOC用戶而言,選擇處理器核心是選擇SOC的第一步,因為不同的處理器核心需要不同的設計技巧和開發策略。DCAM-101中的CW4003是採用常見的MIPS RISC核心,MIPS對SOC應用而言,具有下列優點:


* 新舊版本的MIPS架構是可以相容的(backward-compatible):這一點是MIPS最大的優點。MIPS I指令可以在MPIS II微處理器上面執行,MIPS III可以執行MIPS I和II指令。對應用產品開發業者而言,這種新舊版本的相容特性,確實可以幫助他們縮短新產品設計與程式移植(porting)的時間。


* MIPS I處理器使用相同的記憶體映射(memory map)方式。MIPS I架構具有兩個位址空間:虛擬和實體。虛擬位址空間被區分成四個固定大小的區域:kuseg、kseg0、kseg1、和kseg2。Kuseg和kseg0沒有高速緩衝記憶體,kseg1和kseg2有高速緩衝記憶體。虛擬位址由一個區域識別碼和一個偏移值(offset)組成,虛擬位址的左邊前三碼是區域識別碼,其餘是偏移值。例如:0xA000FF00表示在kseg1區域中,偏移0xFF00的位址。此外,因為DCAM架構沒有記憶體管理單元(MMU)或轉換旁視緩衝器(ranslation lookaside buffer;TLB),因此,對kuseg和kseg2區域的記憶體映射是由供應商自訂的(vendor-specific)。DCAM-101將全部的記憶區域都映射到0x00000000到 0x20000000的實體位址裡。


* 對DCAM-101而言,任何一個外接裝置都是一個記憶體映射值。亦即,讀寫獨特位址上的暫存器或稱作記錄器(registers)值,就可以擷取特定的外接裝置。這些擷取外接裝置的動作,不需要其它複雜的命令或數據暫存器(command/data registers)參與,即可完成。也不需要複雜的組態設定,全部依靠記憶體位址就可以讀寫這些暫存器。因此,對DCAM-101做程式設計,其實,就是對這些暫存器做程式設計。


協同處理器

在應用SOC時,除必須了解其CPU核心之外,也必須知道CPU以外的協同處理器(coprocessor)之功能和利用方法。舉MIPS架構為例,它定義了四個協同處理器(CP0、CP1、CP2和CP3),這些協同處理器和MIPS CPU協同運作,每個協同處理器都有一組指令集,23個通用暫存器和32個控制暫存器。CP0、CP1、CP2和CP3的性能簡介如下:


* CP0-又名系統控制處理器,負責記憶體映射和例外控制(exception handling)、


* CP1-負責浮點運算。


* CP2/CP3-未定義,預留作特殊應用之引擎。


韌體使用MIPS指令與CP0、CP1、CP2、CP3協同處理器互動,這些指令是swcn、lwcn、mtcn、 mfcn、ctfn、cftn、bcnt、bcnf、copn,其中n表示0或1或2或3,分別代表CP0或CP1或CP2或CP3。例如:swc2表示「儲存字組(word)到CP2」,lwc2表示「將字組載入CP2」。


圖素協同處理器

DCAM-101使用CP2來擷取特定的硬體線路和圖素處理加速器。此時,CP2將CCD圖素數據轉換成JPEG壓縮檔,或將JPEG檔解壓縮並傳輸到LCD上顯像。此外,為了完成JPEG壓縮、解壓縮和圖像還原顯像的目的,CP2硬體本身就具備色彩空間(color-space conversion)轉換(例如:從RGB座標轉換成YcrCb座標)、圖素插入(SIM14、SIM20)、圖素數據之高/低取樣、以及其它各種合併/重組暫存數據的函數功能。


當圖素協同處理器和JPEG引擎一起工作時,SOC的性能就能發揮到極致。若DCAM-101只採用軟體解決方案(包含色彩空間轉換和JPEG數據處理)來執行上述工作,則處理一張640 x 480 CCD圖像約需要4秒鐘。可是DCAM的圖素處理加速器(包含圖素協同處理器和JPEG引擎)處理相同的圖像只需200ms。因為就訊號傳輸而言,當然是純硬體的線路會跑的比軟體的程式快。


SOC開發與電路板開發之比較

目前大多數嵌入系統開發業者仍習慣使用電路板來開發產品(board-level solutions),而與電路板相反的開發方法就是SOC。電路板可將許多離散元件整合在一起,這種作法若和SOC比較,將互見長短。茲將兩者的優劣之處簡列於下:


電路板開發之優缺點

使用電路板開發的優點有:


* 除錯容易:當某特殊元件故障或設計有誤時,許多症狀將出現,開發者能在電路板上立即發現和及時修正錯誤。


* 更換元件容易:如上所言,縱使元件無誤,但為了要節省成本或系統升級,來更換某特殊元件,一般而言,都不困難。


* 在每個離散元件間傳輸的信號,對開發者而言都是「可見的」。開發者可以利用示波器、邏輯分析儀....等設備來量測這些信號。


使用電路板開發的缺點有:


* 通常需要獨立的DSP和CPU,不過,這兩者的開發工具不同,所以會增加開發成本。再者,DSP和CPU之介面和互動關係複雜,並非一般電路板開發業者之能力所能及。


* 當離散元件越來越稀少時,尋找替代元件將變得越來越困難。而且,即使能成功地更換為替代元件後,韌體和軟體的修改開銷仍然不可避免。


SOC開發之優缺點

使用SOC開發的優點有:


* 整合CPU/DSP的混合式SOC只需一種開發工具。有時,如SH-DSP一樣,同一個編譯器可以為CPU和DSP正確地編譯指令碼,這能大幅節省採購開發工具的成本。


* 如果一個特別的SOC通過了除錯和驗證的過程,則這顆SOC就能保證它自己的性能與其規格書上記載的內容完全相符,不會有任何瑕疵。這包含在這顆SOC上傳輸的信號也經過驗證。倘若懷疑信號有任何異狀,此時一定是軟體或韌體的問題,不會是SOC的問題。其實,產品開發業者就是希望SOC能協助他們免除大多數令人頭痛的晶片(硬體)問題,而能專心於應用產品的設計(韌體和軟體)。


* 在高整合度的SOC中,具有完整的硬體核心,它可以利用硬體完成複雜的運算作業。例如:DCAM-101具有JPEG引擎,其處理速度是軟體程式的數倍之多。


使用SOC開發的缺點有:


* 無法單獨更換單一元件,必須更換整顆SOC。例如:如果SOC中的CCD控制單元故障了,就必須更換整顆SOC,否則CCD無法正常工作。


* 就單一整合應用而言,用戶必須滿意於SOC的現狀,不能任意添加新元件或功能。例如:DCAM-101的JPEG引擎只支援基本的DCT轉換法,如果需要其它進階的轉換法,必須另選擇其它SOC來取代DCAM-101或另設計軟體來達成。


* 對應用產品開發商而言,SOC內部的信號是「不可見的」。如果SOC不支援JTAG或BDM...等介面來除錯,產品開發者將只能在SOC接腳處量測而已。如果SOC能載入即時作業系統(RTOS)和除錯軟體,則可透過程式碼除錯器(source-level debugger)對SOC內部偵測。


結語

太早採用一種新上市的SOC,八九成註定是會失敗的。這可以從藍芽的雙晶片解決方案中可以證實。不過,若是能在經費允許下,愈早採用新上市的SOC將可以愈早了解新技術的精髓和自我技術的提昇,而且,SOC是會不斷更新改良的,這對新產品的研發助益良多。因此,應用產品開發業者在下決定捨棄傳統的電路板開發方法,而採用SOC之前,必須審慎思考這種升級和改變對自已的衝擊是好還是壞之後,再擇優行之。


相關文章
以協助因應AI永無止盡的能源需求為使命
未來無所不在的AI架構導向邊緣和雲端 逐步走向統一與可擴展
晶體振盪器如何讓數位電子裝置同步化
輕鬆有趣地提高安全性:SoC元件協助人們保持健康
促成次世代的自主系統
comments powered by Disqus
相關討論
  相關新聞
» 美光針對用戶端和資料中心等市場 推出232層QLC NAND
» 摩爾斯微電子在台灣設立新辦公室 為進軍亞太寫下新里程碑
» 愛德萬測試與東麗簽訂Micro LED顯示屏製造戰略夥伴關係
» 格斯科技攜手生態系夥伴 推出油電轉純電示範車
» Arm:因應AI永無止盡的能源需求 推動資料中心工作負載


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.224.44.108
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw