1. 概論
1.1 問題引入
等我學完了再回來解釋
1.2 計算機系統基本組成與基本功能
馮諾依曼機
核心思想:存儲程序
工作方式: 任何要計算機完成的工作都要先被編寫成程序,然後將程序和原始 數據送入主存並啓動執行。一旦程序被啓動,計算機應能在不需操 作人員干預下,自動完成逐條取出指令和執行指令的任務。
主要思想:
- 計算機有控制器、運算器、存儲器、輸入、輸出五個基本部分。
- 存儲器:存放數據和
指令
,兩者形式上沒有區別,但是計算機應當能夠進行區分 - 控制器:能自動取出指令來執行
- 運算器:能進行加減乘除、邏輯運算和附加運算。
- 輸入輸出:操作人員的通信方式
- 存儲器:存放數據和
- 內部以二進制表示指令和數據。指令由操作碼和地址碼組成。操作碼指出操作類型,地址碼指出操作數地址。一串指令組成程序。
- 採用
存儲程序
方式工作。
馮諾依曼結構模型
早期這些部件都是分散方式連接,現在都是用總線方式連接
現代計算機結構模型
CPU:中央處理器
PC:程序計數器
MAR:存儲器地址寄存器
ALU:算術邏輯部件
IR:指令寄存器
MDR:存儲器數據寄存器
GPRs:通用寄存器組(早期的累加器)
廚房-CPU,廚師-控制器,盤-GPRs,鍋竈等-ALU ,架子-存儲器
做菜前:
- 原材料(數據)和菜譜(指令)
按序
放在廚房外的架子上(存儲器),每個架子有編號(存儲單元地址) - 菜譜信息:原料位置、做法、做好的菜放哪等
- (數據和指令事先存放在存儲器中,每條指令和每個數據都有地址, 指令按序存放,指令由OP、ADDR字段組成,程序起始地址置PC)
開始做菜:
- 從5號架子上取菜譜(根據PC取指令)
- 看菜譜(指令譯碼)
- 從架上或盤中取原材料(取操作數)
- 開始炒菜(指令執行)
- 裝盤送桌(回寫結果)
- 算出下一個菜譜所在架子號6=5+1(修改PC值)
- 繼續做下一道菜(執行下一條指令)
指令和數據:
- 程序啓動前,指令和數據都存放在存儲器中,形式上沒有差別, 都是0/1序列
- 採用”存儲程序“工作方式:
- 程序由指令組成,程序被啓動後,計算機能自動取出一條條的指令執行,在執行過程中無需人的干預。
- 指令執行過程中,指令和數據被從存儲器取到CPU,存放在CPU內的寄存器中,指令在IR中,數據在GPR中。
- 指令中需給出的信息:
- 操作性質(操作碼)
- 源操作數1 或/和源操作數2 (立即數、寄存器編號、存儲地址)
- 目的操作數地址 (寄存器編號、存儲地址)
- 存儲地址的描述與操作數的數據結構有關!
編譯程序(Complier):將高級語言源程序轉換爲機器級目 標程序,執行時只要啓動目標程序即可
解釋程序(Interpreter ):將高級語言語句逐條翻譯成機器 指令並立即執行,不生成目標文件。
HelloWorld.c的運行
- 紅色:鍵盤讀入./hello,到達cpu,得到計算結果後放入主存儲器中
- 藍色:hello可執行文件運行
- 綠色:從主存儲器中拿到數據,最終在顯示屏顯示