用定制DSP設計MPEG-4無(wú)線(xiàn)視頻產(chǎn)品
用戶(hù)應用引擎的一種專(zhuān)用解決方案
下面來(lái)討論一個(gè)現實(shí)生活中的解決方案,該方案采用了三級不同的可定制性來(lái)構造專(zhuān)門(mén)的用戶(hù)應用引擎。
第一級可定制性在處理器的標準資源處提供,這些標準資源包括算術(shù)邏輯單元(ALU)以及乘法器和累加器(MAC)等。對某些應用而言MAC 用得較多,如基于快速傅立葉變換(FFT)的算法;還有一些則傾向于更多地采用ALU。這就提出了一個(gè)要求,對于不同的應用,處理器應有不同的資源組合,而不是將所有的應用都分配到同樣的一組固定的資源中去。
例如,可以將一個(gè)MAC密集的算法分配到一個(gè)包含4 MAC、2 ALU、1 SHIFT的處理器中去,而將一個(gè)ALU密集的應用分配給一個(gè)包含3 ALU、1 MAC、1 SHIFT的引擎。這種處理器資源分配的可定制性對許多普通應用而言已經(jīng)綽綽有余,但對大多數與視頻相關(guān)的應用來(lái)說(shuō)還遠遠不夠,它們的要求更高,并且需要更多的運算單元來(lái)加快運行速度。
第二級可定制性允許向處理器添加DDCU協(xié)處理器。設計者先要對所需完成的應用有一個(gè)大致的認識,接著(zhù)對該應用進(jìn)行分析,將其中的一些專(zhuān)用函數分離出來(lái),然后在硬件上專(zhuān)門(mén)針對這些函數進(jìn)行加速處理,即添加DDCU。此外,設計者還可以分析一下,采用工具組添加DDCU來(lái)加快運行速度會(huì )對處理器的性能造成怎樣的潛在影響,以及在諸如此類(lèi)的一些其他假設下會(huì )出現什么情況。
DDCU是一種適用于專(zhuān)用算法的計算單元。一旦設計者確認了哪個(gè)算法需要用DDCU進(jìn)行硬件加速之后,就可以寫(xiě)出實(shí)現該DDCU的RTL 代碼,并將其加入用戶(hù)應用引擎。例如,在通用DSP中加入濾波DDCU,那么若用該DSP實(shí)現一個(gè)需要濾波的應用,其表現出來(lái)的性能就會(huì )有所增強。
除此以外,設計者還要在增加并行性所帶來(lái)的性能優(yōu)化和該并行性對指令的影響之間尋找最佳平衡。為解決這一問(wèn)題,可以在VLIW指令中定義分段的數目(從而定義最大并行度),并為每一段分別分配CU和DDCU(見(jiàn)圖1)。
最后一級可定制性表現在處理器資源的選擇上。設計者可以自己決定需要多大的數據存儲器,以及需要多少個(gè)數據寄存器和地址寄存器。而且,根據具體應用所提出的數據要求,設計者還可以增加存儲器接口,以便提供并行數據訪(fǎng)問(wèn)。這些共享的存儲器接口又可以用來(lái)連接多個(gè)處理器引擎,這就為處理器資源提供了一定的可伸縮性。
采用DSP引擎的一個(gè)關(guān)鍵的好處是可以加快產(chǎn)品投入市場(chǎng)的時(shí)間。但要達到這個(gè)目的,還要先定義一系列與DSP引擎協(xié)作的DDCU協(xié)處理器。在設計MPEG-4引擎的時(shí)候,首先要對其各個(gè)方面進(jìn)行全面分析,確定需要采用哪些DDCU。然后用這些DDCU構建起一個(gè)大致MPEG-4引擎,分析其性能瓶頸,并針對性能瓶頸再定義一些DDCU加入引擎中,從而提高該引擎的性能,沖破其瓶頸。為了更方便地完成以上工作,人們開(kāi)發(fā)出一個(gè)專(zhuān)門(mén)用于MPEG -4應用的DDCU庫。以下討論了該庫中的某些專(zhuān)用DDCU。
1. 比特流/可變長(cháng)度解碼DDCU
在視頻編碼中常常會(huì )遇到可變長(cháng)度解碼。比特流/可變長(cháng)度解碼DDCU 可以加快從輸入比特流中取出可變長(cháng)度字段的速度,這是一種基本操作。如果用軟件來(lái)實(shí)現這種比特流管理,會(huì )消耗大量的時(shí)鐘周期來(lái)處理指針的移位、屏蔽和管理,而采用比特流/可變長(cháng)度解碼DDCU則可以在一個(gè)簡(jiǎn)單的硬件單元里快速完成同樣的功能。
在比特流/可變長(cháng)度解碼DDCU中,由用戶(hù)設計的指令組集中完成普通比特的提取和插入操作。這種DDCU不但能加快處理速度,提高整個(gè)視頻引擎的性能,還可以解放處理器中的其他資源,使之得以用于周?chē)钠渌幚磉^(guò)程。因此,采用這種DDCU不但可以減小指令長(cháng)度,同時(shí)還增強了系統性能。實(shí)際上,在DSP中加入這種計算單元會(huì )使可變長(cháng)度解碼的速度增快23.2%。
評論