1. 程式人生 > >信庭嵌入式工作室-ARM應用技術之體系結構應用(上)

信庭嵌入式工作室-ARM應用技術之體系結構應用(上)

    ARM應用技術是拋去作業系統,面向ARM自身的應用技術,總的來講可以分為三部分:ARM體系結構應用、ARM最小系統應用和ARM外設(外圍介面)應用。ARM體系結構應用包含比較多的模組,下面逐個解析。

    ARM體系結構-CPU核應用,CPU核主要用來執行程式,換句話說所有程式的指令都是在CPU核執行,CPU核最重要的指標是MIPS數,MIPS數和CPU核主頻、流水線和MAC等有關係。CPU核主頻越高的CPU核並不意味著它的MIPS數越高。有些CPU核跑220MHz並不比另外的跑200MHz的CPU核執行程式快,可能是後者採用的流水線比前者多;如果是執行的複雜數學運算的速度快,也有可能後者使用的MAC單元比前者多。所以專業來將用於衡量程式執行效率用CPU核MIPS數替代CPU核主頻衡量模式會比較精確。同樣在選者ARM時CPU核MIPS數是一項重要的指標。

    ARM體系結構-AMBA匯流排應用,CPU核對DDR(SDRAM)、FLASH和其它外圍介面的操作是通過AMBA匯流排來實現的,可以說ARM地址空間的操作都需要通過AMBA匯流排來進行,包括ARM自身的暫存器,AMBA匯流排就像橋樑,連線著“天南地北”。除了最重要的橋接功能,AMBA匯流排對程式執行效率也有影響,曾經我做過一個實驗,把匯流排的速度由54MHz提升到108MHz,程式的執行效率提升20%;把CPU核的頻率由108MHz提高到216MHz(保持54MHz的匯流排速率),程式的執行效率只提升了10%。所以匯流排對程式執行效率有影響。通常CPU核主頻的和匯流排的良好匹配是重要的匯流排選擇指標。一個低主頻(如108Hz)CPU核和一個高速(500MHz)的匯流排,或者一個主頻(如500MHz)CPU核和一個低速(108MHz)的匯流排都不是良好的匹配。如果你對PC比較熟,你可以這樣理解,若顯示卡(GPU)使用系統記憶體(DDR),顯示卡圖形圖象處理速度相對就較慢,若顯示卡(GPU)使用自有擴充套件的記憶體(GDDR),顯示卡圖形圖象處理速度相對就較快。

    ARM體系結構-快取記憶體(Cache)應用,快取記憶體是ARM內部的儲存單元,是高速的SRAM。可分為D-Cache和I-Cache兩種,D-Cache是資料快取記憶體,就是把CPU常用到的資料或者最近常用到的資料存放到D-Cache中,當需要的時候從D-Cache取數而不是從記憶體(DDR)SDRAM取數,從而加快了資料操作的速度;I-Cache是指令快取記憶體,就是CPU常執行的程式塊或者最近常執行的程式塊存放到I-Cache中,當執行到本程式塊時,從I-Cache中獲取程式指令,而不是從記憶體(DDR)SDRAM或者FLASH中獲取程式指令,通過Cache可以提高程式執行的效率,但有時候也有負作用,如記憶體(DDR)SDRAM中視訊緩衝區的資料有更改,而通過Framebuffer刷到LCD顯示頻上的部分資料卻從D-Cache獲取的舊資料,這是LCD顯示的圖象看起來有雜點,這就需要做Flush Cache處理

    ARM體系結構-中斷應用,中斷是ARM內部體系的結構的重要部分,中斷分為快速中斷(FIQ)和通用中斷(IRQ),FIQ原理上是一有中斷觸發就執行中斷程式,IRQ有優先順序,就是說如過一箇中斷觸發了,有更高優先順序的中斷也觸發了,那麼這個中斷就需要等待高優先順序的中斷處理過後才能處理。所以為了避免中斷等待時間過長,編寫的中斷處理程式儘量簡單(不要有複雜處理),這種要求是由IRQ中斷的優先順序屬性決定的。中斷是打斷CPU‘常規執行程式’跳轉到‘中斷執行程式’的處理過程,所以中斷程式和常規執行程式比較而言有更高的優先順序,這種屬性可以用於慢速介面(讀寫)和快速介面處理(讀寫)匹配,如串列埠收資料時,應用程式啟動接收的最長等待(最壞)時間比較長,而這個時間間隔串列埠又接收到了大量的資料,以至於串列埠資料緩衝區(FIFO)已滿,這時就可能有資料丟失,如何解決,就需要使用中斷,在中斷中接收資料到大的軟體緩衝區中。IRQ中斷主要為解決介面資料丟失的問題而發明的。

                                <轉載請註名來路>