女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > EDA > 電子設計自動化
[導讀]眾所周知,匯編語言具有更高的性能優(yōu)勢,而用C語言編碼則能更容易和快速地實現(xiàn)。DSP處理器功能的不斷增強以及編譯器優(yōu)化技術的提高,使得傳統(tǒng)的用匯編語言編寫DSP應用程序的做法逐漸被淘汰?,F(xiàn)在的DSP應用程序幾乎都

眾所周知,匯編語言具有更高的性能優(yōu)勢,而用C語言編碼則能更容易和快速地實現(xiàn)。DSP處理器功能的不斷增強以及編譯器優(yōu)化技術的提高,使得傳統(tǒng)的用匯編語言編寫DSP應用程序的做法逐漸被淘汰?,F(xiàn)在的DSP應用程序幾乎都是由C代碼和匯編代碼混合組成的。在那些對性能起決定性作用的關鍵功能中,DSP工程師將繼續(xù)使用高度優(yōu)化的匯編代碼,同時轉用C語言編寫那些不太關鍵的功能,這將有利于代碼維護和移植。而C和匯編代碼的這種結合要求DSP工程師具備專門的工具和方法。

正確混合C代碼和匯編代碼

問題是在哪里劃分C代碼和匯編代碼的界限。這取決于跟蹤器(profiler)所能提供的性能分析結果。然而在使用跟蹤器之前,DSP工程師需要為應用程序定義清晰的目標,這些目標一般包括循環(huán)數(shù)、代碼規(guī)模和數(shù)據(jù)量。目標一旦確定后,應該先全部用C語言編寫和創(chuàng)建應用程序,然后才使用跟蹤器來分析性能。

在某些特定情況下,主要是控制應用中,C語言級的編碼就足夠了。但在大多數(shù)情況下,初始編寫的C語言應用程序是不能滿足一個或更多目標要求的。這通常意味著多少需要一些匯編代碼。在求助于匯編編程之前,強烈建議保存原始的C代碼。這樣不僅方便調試,而且當條件成熟(比如采用更強大的平臺),還可以返回到這些C語言的實現(xiàn)。

匯編部分代碼應盡可能少。為此,工程師需要認真分析跟蹤器提供的性能結果,并確定應用程序中的關鍵函數(shù)。關鍵函數(shù)是指占用大部分執(zhí)行時間,而必須用匯編語言重寫才能滿足性能目標的那些函數(shù)。重寫其中的幾個關鍵函數(shù)后,需要重新進行性能分析。如果仍達不到目標要求,那就應該確定其它關鍵函數(shù),再進行重寫。圖1顯示了利用專用硬件機制獲得高度優(yōu)化的匯編代碼。


圖1:用C語言創(chuàng)建的循環(huán)緩沖器代碼(左)以及由CEVA-teakLite-III創(chuàng)建的等效匯編代碼(右)。

對編譯器的考慮事項

在編寫需要與C代碼結合的匯編代碼時,匯編編程人員必須了解編譯器的約定和假設。匯編編程人員還必須了解編譯器的寄存器使用約定。通常,寄存器使用約定將硬件寄存器分成被調用方保存(或調用方使用)和被調用方使用(或調用方保存)寄存器。

圖2給出了從CEVA-X1641 DSP內核FFT實現(xiàn)中摘取的匯編代碼例子。左邊第二行的add指令符合CEVA-X1641編譯器傳遞r0地址寄存器中指針參數(shù)的調用約定。右邊的pushd指令用于備份后面函數(shù)會用到的被調用方保存寄存器。


圖2:從CEVA-X1641 DSP內核的FFT實現(xiàn)中摘取的一段匯編代碼。

除了調用約定和寄存器使用約定外,一些編譯器在人工編寫的匯編代碼方面可能還會有一些額外的假設。這些假設通常是專門針對某個編譯器的,因此編譯器提供商會提供完善的資料和說明。

用于C和匯編連接的常用C語言擴展

用于嵌入式平臺的大多數(shù)編譯器,特別是用于DSP編程的編譯器,都具有豐富的C語言和匯編語言連接功能。其中絕大部分功能不屬于標準C語言,因此被稱為C語言擴展。下面列出的是其中有益于DSP編程的一些功能。

內聯(lián)匯編(inline assembly):該功能可以幫助編程人員將匯編指令插入C代碼。

硬件寄存器綁定C變量:該功能經(jīng)常與匯編指令內聯(lián)功能結合在一起,幫助內聯(lián)匯編代碼訪問C語言級的變量(見圖3)。


圖3:結合內聯(lián)匯編和硬件寄存器綁定功能的代碼示例。

存儲區(qū)屬性:該功能允許編程人員將上述變量和函數(shù)分配到獨特的用戶定義存儲區(qū),可以讓編程人員將C語言級單元分配到實際的存儲器位置,這對DSP應用來說非常關鍵。

用戶定義的調用約定:在某些情況下,匯編函數(shù)可以通過用戶定義的調用約定取得更好的優(yōu)化效果。

編譯器內部函數(shù)(Compiler intrinsics):是指能夠使用專門的宏或函數(shù)調用觸發(fā)的內建編譯器功能總稱。沒有內部函數(shù)支持的編譯器必須調用用戶定義的函數(shù),這樣做可能會令用戶定義函數(shù)可能會在一個環(huán)路里產(chǎn)生函數(shù)調用和返回(見圖4),從而產(chǎn)生巨大的開銷。


圖4:ETSI的mult_r(乘法和取整)基本操作的C代碼實現(xiàn)(左)和對應的由CEVA-TeakLite-III編譯器生成的匯編代碼(右)。

匯編內部函數(shù):是將匯編代碼內聯(lián)進C代碼的一種先進方法,下文將有詳細介紹。

把匯編指令當作C語句一樣來編寫

內聯(lián)匯編功能具有顯著的缺點。它會破壞各種編譯器優(yōu)化操作,因為編譯器不了解內聯(lián)代碼的內容,會使用最壞假設;以及它可能迫使編程人員處理底層問題,如寄存器分配和指令調度。

匯編內部函數(shù)可以幫助編程人員實現(xiàn)內聯(lián)匯編代碼,并且不存在這些缺點。從編程人員的角度看,匯編內部函數(shù)就像是C語言宏或函數(shù)。它們接收C語言變量,返回C語言輸出結果,同時表現(xiàn)為單個匯編指令。由于涉及該功能的所有代碼都在C語言等級,因此編程人員不必擔心寄存器分配、指令調度和其它底層問題。匯編內部函數(shù)不僅不會妨礙編譯器優(yōu)化操作,還會參與優(yōu)化過程,就像它們是編譯器正常產(chǎn)生的匯編指令一樣。這些特征使得匯編內部函數(shù)的功能非常強大。

利用匯編內部函數(shù),編程人員可以從編譯器不可能產(chǎn)生的獨特匯編指令中受益。例如,CEVA-X1641的bitrev(位反向)指令就是為FFT等算法定制的。由于編譯器不太可能把一個程序看作一個FFT并使用bitrev指令,因此編程人員可以完全把bitrev匯編內部功能嵌入到C代碼中。結合對應用的透徹了解,編程人員還可以使用C應用程序的性能決定段里的精確序列匯編內部函數(shù),從而能夠確保編譯器生成的代碼效率就像手工編寫的一樣高。

圖5是CEVA-X1641編譯器與匯編內部函數(shù)一起使用的例子。匯編內部函數(shù)還受益于由CEVA-X1641編譯器處理的問題所決定的機器,如寄存器分配、指令調度和硬件單元分配。


圖5:CEVA-X1641編譯器支持的匯編內部函數(shù)的使用。

調試混合代碼的應用程序

匯編代碼的調試需要對延遲和存儲器對齊限制等架構和機器級問題有深入的了解。只是簡單地把C代碼和匯編代碼放在一起會使事情更麻煩,因為編程人員現(xiàn)在還必須調試C代碼和匯編代碼之間的連接。

調試混合代碼應用程序的第一步就是分隔問題。假設保持匯編代碼的C語言實現(xiàn)不變以及C語言實現(xiàn)方案工作正常,那么將匯編函數(shù)轉換成C語言實現(xiàn)并重新測試應用程序就相對比較容易。為了迅速檢測出問題,編程人員可以在每一步把受懷疑函數(shù)的一半轉換為相應的C語言實現(xiàn)方案。

一旦有問題的匯編函數(shù)被確定,它就應該同時作為獨立的匯編問題和C與匯編的連接問題加以分析。調試獨立的匯編問題對匯編編程人員來說十分簡單明了,但C與匯編的連接問題就有點麻煩。在考慮匯編函數(shù)本身時,C與匯編的連接問題是不可見的,這與獨立的匯編問題有所不同。為了找出這些問題,編程人員必須檢查編譯器的約定,比如調用約定和寄存器使用約定。

編程人員還必須檢查編譯器假設,比如匯編指令的行蹤。為了節(jié)省調試時間,編程人員應該在第一次實現(xiàn)匯編函數(shù)時驗證是否遵循所有的編譯器約定和假設。

案例研究:H.264視頻編碼器和AMR-NB

本文討論的技術和方法已被CEVA公司用于各種各樣的應用,包括視頻編解碼器、音頻編解碼器、聲音合成器和設備驅動器。而本文所述的功能在這些應用中都可以顯著提高性能。H.264視頻編碼器是一個很好的研究案例。它在處理能力及其它資源方面要求非常嚴格,尤其是相比語音編解碼器等其它類型的編解碼器而言。

CEVA公司的CEVA-X16xx高端DSP內核系列及其MM2000多媒體平臺可以為這種編碼器提供所需的處理能力。先用高級跟蹤技術確定這種編碼器的關鍵函數(shù),然后逐步對之進行優(yōu)化。首先,利用匯編內部函數(shù)在C語言級對這些函數(shù)進行全面優(yōu)化。然后,在匯編語言級對編譯器提供的匯編代碼作進一步優(yōu)化。

圖6展示了通過對這種編碼器的關鍵函數(shù)進行全面優(yōu)化所獲得的性能提高。只有最后一個優(yōu)化階段涉及到純匯編編程,所有其它階段都基于帶有匯編內部函數(shù)的C代碼。這些匯編內部函數(shù)主要用于SIMD操作,如avg_acW_acX_acZ_4b。這條指令對8個輸入字節(jié)取平均,產(chǎn)生4字節(jié)結果。這種SIMD操作對執(zhí)行大量字節(jié)級計算的視頻編解碼器非常有用。


圖6:對H.264編碼器的關鍵函數(shù)進行優(yōu)化以提升性能。

AMR-NB(自適應多速率-窄帶)是廣泛用于無線通信應用的語音編解碼器。通常都是采用純匯編來實現(xiàn)聲音合成器,但C語言實現(xiàn)與CEVA-X1620編譯器利用本文討論的各種功能可以獲得與匯編實現(xiàn)媲美的結果。圖7顯示了整個AMR-NB應用經(jīng)過全面優(yōu)化而取得的以MCPS(每秒百萬周期)計的性能提高幅度。只有最后的優(yōu)化階段涉及到了純匯編編程,所有其它階段都基于帶有ETSI內部函數(shù)和匯編內部函數(shù)等的C代碼。


圖7:通過各種優(yōu)化方法取得的ARM-NB性能改進。

總之,H.264編碼器和AMR-NB例子清楚地表明了匯編實現(xiàn)方案的性能優(yōu)勢,但也表明純匯編實現(xiàn)并非首選的優(yōu)化方法。利用高質量軟件開發(fā)工具提供的C與匯編功能,DSP編程人員無需純匯編語言也能使整個應用程序達到令人滿意的性能。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

隨著在線會議、直播和游戲語音交流的普及,高質量的音頻輸入設備變得越來越重要。為此,邊緣AI和智能音頻專家XMOS攜手其全球首家增值分銷商飛騰云科技,利用其集邊緣AI、DSP、MCU和靈活I/O于一顆芯片的xcore處理器...

關鍵字: AI DSP MCU

多DSP集群的實時信號處理系統(tǒng),通信拓撲的優(yōu)化直接決定任務調度效率與系統(tǒng)吞吐量。RapidIO與SRIO作為嵌入式領域的主流互連協(xié)議,其帶寬利用率差異與QoS配置策略對集群性能的影響尤為顯著。以無線基站、雷達陣列等典型應...

關鍵字: DSP 通信拓撲優(yōu)化

隨著5G網(wǎng)絡普及與物聯(lián)網(wǎng)設備爆發(fā)式增長,邊緣計算正從概念驗證走向規(guī)?;渴?。據(jù)IDC預測,2025年全球邊緣數(shù)據(jù)量將占總體數(shù)據(jù)量的50%,這對邊緣節(jié)點的實時處理能力提出嚴苛要求。在此背景下,AI加速器的DSP化趨勢與可重...

關鍵字: AI加速器 DSP

在工業(yè)控制領域,數(shù)字信號處理器(DSP)的性能直接決定了系統(tǒng)的實時控制能力和可靠性。德州儀器(TI)的C2000系列芯片憑借其卓越的采樣、控制和功率管理能力,長期以來在全球工業(yè)控制市場占據(jù)絕對領導地位,廣泛應用于能源、電...

關鍵字: TI C2000 DSP 格見半導體 芯來 RISC-V 工控

2025年7月16日 – 專注于引入新品的全球電子元器件和工業(yè)自動化產(chǎn)品授權代理商貿澤電子 (Mouser Electronics) 持續(xù)供貨Texas Instruments (TI) 的新產(chǎn)品和解決方案。作為一家授權...

關鍵字: 線性穩(wěn)壓器 柵極驅動器 DSP

在當今數(shù)字化浪潮的推動下,數(shù)據(jù)流量呈爆炸式增長,數(shù)據(jù)中心、5G通信網(wǎng)絡以及云計算等領域對高速光通信的需求愈發(fā)迫切。800G光模塊作為高速光通信的關鍵組件,其性能直接影響著整個通信系統(tǒng)的傳輸效率和可靠性。數(shù)字信號處理(DS...

關鍵字: 800G DSP PAM4均衡算法

以氫燃料電池空壓機為研究對象 ,開發(fā)超高速永磁同步電機控制器 ,采用傳統(tǒng)的IGBT主功率器件 ,且為兩電平主回 路結構形式 ,通過改進的V/F控制算法 ,完成了控制器的設計。搭建了試驗平臺進行測試 ,結果表明 ,控制器能...

關鍵字: 超高速永磁同步電機 V/F控制 DSP

醫(yī)療設備智能化進程,數(shù)字信號處理器(DSP)作為核心計算單元,承擔著實時處理生物電信號、醫(yī)學影像等敏感數(shù)據(jù)的重任。然而,隨著醫(yī)療設備與網(wǎng)絡互聯(lián)的深化,數(shù)據(jù)泄露風險顯著增加。美國《健康保險流通與責任法案》(HIPAA)明確...

關鍵字: 醫(yī)療設備 DSP

數(shù)字信號處理器(DSP)作為實時信號處理的核心器件,其架構設計直接決定了運算效率與功耗表現(xiàn)。自20世紀70年代DSP理論誕生以來,其硬件架構經(jīng)歷了從馮·諾依曼結構到哈佛結構的演進,這一過程體現(xiàn)了對實時性、并行性與存儲帶寬...

關鍵字: DSP 馮·諾依曼

隨著嵌入式系統(tǒng)對實時性、多任務處理能力的需求日益增長,實時操作系統(tǒng)(RTOS)在數(shù)字信號處理器(DSP)中的移植與性能優(yōu)化成為關鍵技術課題。DSP以其高效的數(shù)值計算能力和并行處理特性,廣泛應用于通信、圖像處理、工業(yè)控制等...

關鍵字: RTOS DSP
關閉