是否僅僅使用喜歡而且熟悉的處理器?
讓我們從顯而易見的選項開始。你的是使用自己熟悉的處理器。這也合情合理,因為你已經有在這些平臺上做開發的經驗。即使對于正在進行中的項目,你也有編碼基礎以資利用。
那究竟你為什么還要從一種處理器系列轉向其他的處理器系列呢?常見的原因是,當前的應用要求比原先的應用更為苛刻。如果對器件的要求出現劇增,你就不能繼續采用同一個處理器家族。例如,一個針對音頻應用優化的處理器家族不可能總是滿足視頻需求。同樣,如果你先前的設計目標是較低分辨率(和較低幀速率)的視頻,你可能需要轉向其他家族才能選出適用于分辨率和幀速率更高的處理器。
需要對數據進行何種處理?
這個問題與處理器的性能相關。系統的設計者評估處理器性能時應該首先分析的指標包括:每秒運行的指令數目、在每一個處理器的時鐘周期中完成的操作數和計算單元的效率。
當
|
若要從上面提到的各種度量標準出發考察處理器是否具備相應的優點,則可以在有待評估的處理器上運行一套有代表性的基準程序。結果將表明實時處理方面的需求是否超出了處理器的能力,同樣重要的是顯示出是否有充足的能力來滿足新的或不斷提高的系統需求。
系統帶寬是否夠用?
常見的一個錯誤是對系統的帶寬需求的估算過于簡化。正確的分析研究需要將每一個單獨的數據流相加起來。例如,對于一個視頻譯碼器,你首先要考慮到有待譯碼的數據讀入時所需的帶寬。然后,你必須考慮到創建經過解碼的幀序列時需要對數據進行處理的次數。這種處理需要在內部和外部存儲器之間多次經由緩存區傳輸數據。,你還必須考慮到從顯示緩存器輸送到輸出裝置的顯示數據流。在對數據流的所有分析都完成后,下一步是調整各方面的帶寬需求,以便讓相應的總系統預算得到滿足。
是否針對便攜應用?
系統的電池供電帶來了一整套全新的應用需求。它們需要使用一個外形緊湊的、節能的處理器解決方案。這種限制使得設計者必須在處理性能和功率效率之間權衡利弊,做出折中。而且在這個領域中,如果處理器沒有標明適用于多媒體應用,就將不堪使用,因為若要求它們完成并非它們所擅長的任務則功率消耗將過大。
應用要求定點還是浮點運算?
處理器的算法分為兩大類別:浮點運算和定點運算。通常定點運算的系列產品運行更快,對功率和成本都更加敏感,而浮點處理器則可以在較寬的動態范圍內提供高精確度運算。動態范圍指的是數字格式所能表示的數與小數的比值。而精確度指的是確定分度時的精細程度。
如圖1表示,僅有少量浮點函數運算需求的應用的設計者會陷入“灰色區”,他們經常被迫轉向成本更高的浮點運算設備。如今某些定點運算處理器能夠在極高的時鐘速度下運行,以至于如果架構選取恰當的話,它有可能模擬出浮點運算的操作。這種方法允許設計者犧牲浮點計算效率來保證低成本和低能耗工作。顯然,這種方法對真正需要進行密集的浮點運算的應用來說并不適用,但是為那些陷在灰色區中“不能自拔”的設計人員提供了誘人的機會。
數據是怎樣流入和流出芯片的?
必須仔細地考察處理器的外圍設備,確保他們適合你的應用。恰當的外圍設備的組合可以取消支持所需接口時必須采用的外電路,從而能實現時間和金錢上的節約。當然,你在設計中會改變你的連接選項,所以選擇外設靈活、兼容性好的處理器。
怎樣在處理器上做開發?
這是一個非常重要的問題,因為一套強大的開發工具能極大提高生產率,降低開發和調試時間。要理解的是,這一問題的答案既取決于各開發者的需求,又取決于終應用。許多公司可能都建立了一個針對某個開發工具包的經驗庫,他們也可能已經建立了大型的代碼庫,以供利用。
當你轉向新的處理器平臺時,研發工具會變的特別重要。例如,一個功能強大的C/C++編譯器能輕松把現有的源代碼移植到新的開發平臺上,各種各樣的優化選項(例如,優化速度,功率或代碼密度)能幫助設計者完成他們的開發目標,而不必在理解處理器的指令系統和架構的細節上投入大量的精力。