發布日期:2022-07-15 點擊率:75
在移動電話中增加視頻功能的趨勢已經是不爭的事實,采用傳統的方法需要增加數字信號處理芯片或ASIC以及外圍電路,具有極大的設計難度。采用自適應計算技術實現移動MPEG-4視頻功能,可以簡化設計難度、降低設計周期并減小芯片面積和功耗。
3G技術已經開始得到應用,但是移動電話制造商仍然不明確最終用戶的服務需求,而MPEG-4視頻協議的無線視頻應用將是一種必然趨勢。在無線產品中實現MPEG-4視頻數據流功能并不簡單,設計工程師將面臨新的設計挑戰。
如何解決這種挑戰呢?一種方案是利用現有移動終端上的數字信號處理器(DSP)和微處理器核,但是,這些元器件在處理類似3G基帶這樣的任務后已無余力。另外一種解決方案是加入專門處理MPEG-4功能的ASIC芯片,但是這需要增加一個處理器硅片,而且可能需要增加更多的輔助芯片。因此,需要一種全新的替代方案來實現無線設備的視頻功能,而自適應計算技術就是這樣的一種替代方案。
自適應計算技術
為什么說自適應計算技術是一種很好的無線視頻解決方案呢?答案在于其對系統資源進行分配的能力。
在自適應計算技術結構下處理特定任務時,系統硬件總是實時動態地適配任務要求。在無線視頻應用中,如果釋放出一個MPEG-4數據流,系統會輪詢其所有資源,然后基于輪詢結果來分配適合處理MPEG-4任務的可能資源。因此,設計工程師可以最優化資源的利用。
市場上也有許多其它的技術可以實現移動電話資源的調整和分配。不同于DSP、ASIC、微處理器和FPGA等常規的集成電路芯片,對于或長或短的時間周期,自適應計算技術會準確地生成軟件算法所需求的硬件。
支持自適應計算的IC結構在功耗極低的情況下能夠實現每秒幾十萬次的適配,因而自適應計算芯片可以實現空間和時間的分割。自適應計算結構的自適應電路矩陣在不同的時間段(時間上),以及不同的位置(空間上)動態適配硬件資源,達到快速執行算法的不同部分,這個過程就是時間和空間分割。
不同方法的比較
比較一下ASIC和自適應計算MPEG-4的實現方式。ASIC的實現方法會用到多個IP內核,包括專門的運動估計(ME)、形狀編碼(shape coding)、運動補償(MC)、離散余弦變換(DCT)、反向離散余弦變換(IDCT)以及量化等。
根據要求使每一個MEPG-4功能的計算來適應其結構,這樣的優點是消除了固定功能 的ASIC硅模塊。這種硅模塊即使不用時也占一定的空間,并且當設計規范發生變化時需要重新設計芯片。
相反地,自適應計算技術采用單一的自適應電路矩陣來執行每個算法內核,這些算法內核被稱為壓縮二進制代碼。例如,當MPEG-4應用在調用ME時,這部分的特定壓縮二進制代碼下載到一個矩陣中,然后該內核進行解壓縮,產生相應的硬件配置以實現特定功能。
在MPEG-4的應用中,ME是計算最密集的部分,大約會占到MPEG-4總計算量的60-70%。然而,在電路矩陣中以壓縮二進制方式實現ME,而不是固定功能的芯片加速器,自適應計算可以實現硅片的多種功能復用。這種方式有別于在RISC處理器上完全采用軟件實現ME的算法,由于自適應計算技術實現的ME計算比純軟件方式運行更快,所以這種技術降低了功耗。同純粹的硬件實現相比,自適應計算技術更可以適應技術的發展,在設計后期以及在產品應用中可以方便地隨設計規范的變化進行改變,以及解決設計存在的問題和產品升級。
在自適應計算技術中,一定百分比的矩陣空間為ME算法所占用,但也有一部分空間可以運行其它計算密集型的算法內核。只要MPEG-4仍然要求硬件駐留在矩陣中,硬件功能就會一直運行,然后切換到停止狀態。在此期間,所有其它的MPEG-4內核都同時執行。
同時存在于矩陣中的內核是空間分割的實例,而任何短暫存在的內核則是時間分割的實例。圖1為一個完整的空間和時域分割實例。ME計算的粒度(間隔尺寸)比任何其它內核要大6倍。因此,處理同樣大小的數據時ME每運行一次,其它的內核必須運行6次。
圖1a表示MPEG-4的所有算法內核可以以空間模式布置在自適應計算矩陣中。同時,圖1b表示它們也可以實現時域分割。所以采用自適應計算技術,設計工程師可以將ME導入到矩陣中,并且實現快速運行。然后,在一段時間內進行運動補償,然后是DCT、量化處理,等等。
在這一點上,完整的MPEG-4算法內核序列循環往復地運行?;蛘呷鐖D1c所示那樣,設計工程師也可以輕微地改變這種組合。ME會在矩陣中駐留較長的一段時間,然后是MC、DCT和量化部分快速循環進入矩陣,并且這三個算法內核可以反復循環下去。
時域編程
除空間上的編程以外,自適應計算方法同時也支持時域編程。為實現時域編程,自適應計算技術將每個特定的應用在矩陣上運行一定的時間,然后對該矩陣進行適配,以實現另一個時間段上另一個應用的運行,矩陣可以適合前一個應用或任何其它應用。
圖2表示的是基于QCELP語音壓縮算法中,八個計算最密集的內部編碼循環所組成的一個時域編程實例。這八個內部編碼循環包括代碼本搜索(codebook search)、間距搜索(pitch search)、線譜對(LSP)計算、遞歸卷積以及四個濾波器。
正如圖中所示,虛擬硬件執行一系列順序下載到自適應計算電路矩陣中的不同應用二進制代碼。圖中還顯示了下載到距陣中搜索內部代碼循環的代碼本,并創建專門的硬件來執行該二進制代碼。
圖2所示為一段代碼本搜索代碼的算法描述。這一特定的算法段實現一個36位的整數除法,執行一個16位×36位的整數乘法,然后同上一次計算的37位延時時間相減(進行比較)。在算法描述與基本的硬件之間建立一個有效的映射,對于實現這種描述的緊密匹配至關重要。
隨后,將間距搜索代碼循環下載到矩陣中,創建關聯的硬件并導出代碼本搜索。接下來,LSP計算被下載到電路矩陣中并在遞歸卷積加載到電路矩陣中時將LSP導出…。這些二進制的改變每秒會發生400次,即每20毫秒變化8次。
空間域和時域協同工作
在空間域方式下,算法或者壓縮二進制可以從片上緩存裝載到自適應計算矩陣中。任意數量不同的特征、功能以及支持算法都可以通過時域映射來實現。
設計工程師可以在矩陣空間上運行多個任務,也可以進行時域或跨越自適應計算結構硅片矩陣的空間編程。設計工程師也可以實現以空間置換時間或以時間置換空間。例如,如果設計工程師只是設計一個主要任務而不需要硬件的匹配,可以將上面討論的暫態單元放在圖2中,所有這些單元將同時存在于矩陣空間中。
然而,如果一個設計調用到大量同時發生的任務時,設計工程師就可以考慮用空間和時間置換,這樣設計工程師就可以在硅片矩陣上同時運行多個任務。此外,在這種空間、時間的取舍會產生一些不足之處。以在該矩陣中一個時鐘周期內完成的一個簡單三輸入加法器作為例子,這一完整的算法可以在空間上進行布置,如圖3左邊所示。如果空間不能滿足這樣的設計要求,可以按照如圖3右邊所示的解決辦法,將該算法分成兩個暫態單元:在時間0里將A和B相加,在時間1里將A、B相加的結果與C再加。
簡化設計流程
自適應計算技術另一個優點是能實現整個系統設計流程的簡化。由于整個系統的芯片數量并沒有增加,因而設計工程師無需增加額外的設計流程,系統的設計得到很大的簡化。
在常規的IC設計中,設計工程師需要面對三種不同的設計流程,分別支持微處理器、DSP和ASIC,設計工程師和程序員都需要應用不同的語言和工具集來對每一個IC編程:匯編語言或者C用于DSP,C或者C++用于微處理器,而VHDL或者Verilog用于ASIC設計。工程師使用不同語言產生差別很大的設計效率,根據每天編程的行數來衡量,匯編語言編程比C/C++大約要慢一個數量級,VHDL/Verilog語言編程比匯編語言大約要慢一個數量級。而根據每天得到的電路門數來衡量,原理圖輸入設計同VHDL/Verilog相比,大約要慢一個數量級。
所以,通??偸峭瑫r使用三到四種語言(具有明顯不同的效率)和多種不同的工具集。而在設計后端,設計工程師必須確保各部分同步運行。因此采用傳統方案整合無線和MPEG-4功能的設計將具有極大的挑戰性。
使用自適應計算技術,設計工程師可以采用單一的高級語言(HLL),以及單一的工具集來實現整個設計。此外,這種語言同時表述了同一個特定算法相關的硬件和軟件單元,包括時間和空間信息。HLL的一個重要優勢是,設計工程師可以移動自適應計算結構中的設計部分。這種語言可以實現在自適應計算硅片中不同部分的分割,確保設計工程師可以嘗試不同的配置以實現特定應用的最優化。
作者:
Paul Master
技術副總裁
paulm@
Bjorn Freeman-Benson
編譯器工具總監
bnfb@
QuickSilver Technology公司