如何實現(xiàn)高性能的DSP處理
應(yīng)用開發(fā)通常開始于在個人電腦或工作站編寫的C原型代碼,然后將代碼移植到嵌入式處理器中,并加以優(yōu)化。本系列文章則將這種層面的優(yōu)化在系統(tǒng)級擴展到包括以下三方面的技術(shù):內(nèi)存管理,DMA管理,系統(tǒng)中斷管理。這些優(yōu)化措施與程序代碼優(yōu)化同樣重要。
本文引用地址:http://www.ex-cimer.com/article/152151.htm在大多數(shù)系統(tǒng)中,有很多的數(shù)據(jù)需要傳輸,并需要很高的數(shù)據(jù)傳輸速率。因此,你最終會混合使用處理器中的所有存儲器,如內(nèi)部存儲器和外部存儲器。
軟件架構(gòu)選擇
在開始設(shè)計之前,我們必須確定使用什么類型的軟件“架構(gòu)”,所謂架構(gòu)是在嵌入式系統(tǒng)中搬移程序代碼和數(shù)據(jù)的軟件底層結(jié)構(gòu)。由于架構(gòu)定義了使用多少存儲和其他系統(tǒng)資源,因此,架構(gòu)也影響系統(tǒng)的性能。設(shè)計的架構(gòu)也能反映某些性能特性、是否易于使用,以及其他應(yīng)用要求。軟件架構(gòu)劃分為以下幾類:高速實時處理;易編程要求優(yōu)于對性能的要求;以性能為第一考慮。
第一類高速實時處理架構(gòu),對于安全性至關(guān)重要的應(yīng)用程序或沒有外部存儲器的系統(tǒng)是很理想的。在這種情況下,要么是無法忍受緩沖數(shù)據(jù)所需的時間,或者是沒有相應(yīng)的系統(tǒng)資源,由于沒有外部存儲器,故所有工作都需在片內(nèi)完成。在這種情況下,需要先讀取并處理數(shù)據(jù),再進行判決,然后刪除數(shù)據(jù)。然而,這里必須保證的是,在當前幀的所有處理完成前正在使用的緩沖數(shù)據(jù)幀不會被覆蓋。
例如,車道偏離系統(tǒng)就是一個安全性至關(guān)重要的應(yīng)用。在這個系統(tǒng)中,通常不能在做出判斷前等待33毫秒的全幀數(shù)據(jù),更好的做法是處理幀的一部分。例如,您可以從幀末尾處開始檢測車道,因此只需讀入數(shù)據(jù)幀末尾部分的數(shù)據(jù)。
第二種架構(gòu)通常用在是否易于編程是最重要的考慮因素的情況。這種架構(gòu)對于需要快速面市的應(yīng)用,以及需要迅速開發(fā)樣機和易于編程超過對性能的要求等應(yīng)用都是十分理想的,它也同樣降低了開發(fā)難度。
當需要達到系統(tǒng)的最優(yōu)性能時,第三類架構(gòu)就是合適的選擇。由于重點是性能,所以需要對某些因素,諸如處理器、數(shù)據(jù)流、帶寬效率和優(yōu)化技術(shù)等的選擇,做仔細的考慮。然而,這種架構(gòu)的不足之處在于可復(fù)用性和可升級性方面有所降低。
在開發(fā)周期中,事先規(guī)劃好指令和數(shù)據(jù)流是十分重要的,這也包括對是否需要外部存儲器或者緩存做出重要決定。這樣,開發(fā)人員就可以集中精力利用處理器的結(jié)構(gòu)特點,并調(diào)整性能,而不需要重新審視初始設(shè)計。
高速緩存概述
高速緩存能夠以很快的存取時間(通常是單個周期)將指令和數(shù)據(jù)存儲在處理器片內(nèi)存儲器中。高速緩存的實現(xiàn)是因為減少了系統(tǒng)對單周期訪問的存儲器資源數(shù)量的需求?;诟咚倬彺娴奶幚砥鹘Y(jié)構(gòu),開始時將數(shù)據(jù)放置在低成本的低速外部存儲器中,需要時,高速緩存可自動地將其中的指令和數(shù)據(jù)傳輸?shù)教幚砥鞯钠瑑?nèi)存儲器。
評論