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中,資料比較安全,但是軟體處理起來複雜一點(需要統一
規劃連結地址)。
歡迎各位指出不足之處