1. 程式人生 > >ARM之指令集和結構

ARM之指令集和結構

一、指令集

    1、CISC複雜指令集CPU,CISC體系的設計理念使用最少的指令來完成任務,因此CISC的CPU

        本身設計複雜,工藝複雜,但好處是編譯器好設計。CISC出現較早,Intel還一直採用CISC設

        計。

    2、RISC精簡指令集CPU,RISC的設計理念是讓軟體來完成具體的任務,CPU本身提供基本功能

        指令集。因此RISC CPU的指令集中只有很少的指令,這種設計相對於CISC,CPU的設計和工

        藝簡單了,但是編譯器的設計變難了。

二、CPU設計方式發展

    1、早期簡單CPU,指令和功能都很有限

    2、CISC年代-CPU功能擴充套件依賴於指令集的擴充套件,實質是CPU內部組合邏輯電路的擴充套件。

    3、RISC年代-CPU僅提供基礎功能指令(譬如記憶體與暫存器通訊指令,基本運算與判斷指令等),

        功能擴充套件由使用CPU的人利用基礎架構來靈活實現。

發展趨勢:沒有純粹的RISC或CISC,發展方向是RISC與CISC結合,形成一種介於兩者之間的CPU型別。

三、什麼是IO?什麼是記憶體?

    1、記憶體是程式的執行場所,記憶體和CPU之間通過匯流排連線,CPU通過一定的地址來訪問具體記憶體單元。

    2、IO是輸入輸出介面,是CPU和其他外部裝置(如串列埠、LCD、觸控式螢幕、LED等)之間通訊的道路。

        一般的,IO就是指CPU的各種外部或者內部外設。

四、記憶體的訪問方式

    1、記憶體同過CPU的地址匯流排來定址定位,然後通過CPU資料匯流排來讀寫。

    2、CPU的地址匯流排的位數是CPU設計時確定的,因此一款CPU所能定址的範圍是一定的,而記憶體是需要

        佔用CPU定址空間的。

    3、記憶體與CPU的這種匯流排連線方式是一種直接連線,優點是效率高訪問快,缺點是資源有限,擴充套件性差。

五、IO的訪問方式

    1、IO指的是與CPU連線的各種外設。

    2、CPU訪問各種外設有2中方式:一種是類似於訪問記憶體的方式,即把外設的暫存器當作一個記憶體地址來

        讀寫,從而以訪問記憶體相同的方式來操作外設,叫做IO與記憶體統一編址方式;另一種是專用的CPU指令

        來訪問某種特定的外設,叫做IO與記憶體獨立編址。

六、程式和資料

    1、程式執行時兩大核心元素:程式+資料

    2、程式是我們寫好的原始碼經過編譯,彙編之後的到的機器碼,這些機器碼可以拿去給CPU執行,CPU不會

        也不應該去修改程式,所以程式是隻讀的。

    3、資料是程式執行過程中定義和產生的變數的值,是可以讀寫的,程式執行實際就是為了改變資料的值。

七、馮諾依曼結構和哈佛結構

    1、程式和資料都放在記憶體中,且不彼此分離的結構稱為馮諾依曼結構。比如Intel的CPU。

    2、程式和資料完全分開獨立放在不同的記憶體中,彼此完全分離的結構稱為哈佛結構。譬如大部分微控制器(MC

        S51、ARM9等)。

馮諾依曼結構程式和資料都放在記憶體中不安全但是處理起來簡單。

哈佛結構程式一般放在ROM、flash中,資料放在RAM中,資料比較安全,但是軟體處理起來複雜一點(需要統一

規劃連結地址)。

歡迎各位指出不足之處