1. 馮·諾伊曼結構主要思想
莫齊利(Mauchly)和他的學生艾克特(Eckert)
自從第一台通用電子計算機ENIAC誕生之后,人類社會進入了一個嶄新的電子計算和信息化時代。
計算機硬件早期的發展受電子開關器件的影響極大,為此,傳統上人們以元器件的更新作為計算機技術進步和划代的主要標志。
在ENIAC的研制工作中,研制小組意識到ENIAC還存在許多問題。(沒有存儲器、沒有采用二進制……)
在共同討論的基礎上,馮·諾依曼《關於EDVAC的報告草案》——“存儲程序(stored-program)通用電子計算機方案”
——現代計算機結構思想的誕生
“存儲程序”方式的基本思想:
任何要計算機完成的工作都要先被編寫成程序,
然后將程序和原始數據送入主存並啟動執行。
一旦程序被啟動,
計算機能在不需操作人員干預下,自動完成逐條取出指令並執行指令的任務。
輸入部件、輸出部件、主存、運算器、控制器
2. 現代計算機結構模型及工作原理
CPU |
||
ALU(Arithmetic and Logic Unit) | 算術邏輯部件 | 進行算術和邏輯運算 |
GPRs(General Purpose Register set) | 通用寄存器組 | (由若干通用寄存器組成,早期就是累加器) 每個通用寄存器有一個編號, 通過指令可以指定哪個編號的寄存器中的數據作為ALU的操作數 |
PSW(Program Status Word) | 標志寄存器(程序狀態字) | 存放ALU運算得到的一些標志信息 |
IR(Instruction Register) | 指令寄存器 | 存放從主存讀出的指令; 指令中的操作碼被送到控制器進行譯碼,以生成控制信號(控制如何修改PC以得到下條指令的地址; 控制ALU執行何種運算; 控制主存進行讀操作還是寫操作) |
MAR(Memory Address Register) | 存儲器地址寄存器 | 存放需要送到地址線上的地址信息 |
PC(Program Counter) | 程序計數器 | 存放下一條指令的地址 |
MDR(Memory Data Register) | 存儲器數據寄存器 | 臨時存放主存和CPU需要交換的數據 |
總線 | |
控制線 | 讀\寫信號線,指出數據是從CPU寫入主存(將MDR中的數據直接送到數據線上) 還是從主存讀出到CPU(將數據線上的數據接收到MDR中) |
地址線 | 傳輸地址 |
數據線 | 傳輸數據 |
(送地址到地址線上 或者 送數據到數據線上,
同時將控制信號送到讀/寫信號線上)
主存:用來存儲指令和操作數。
每個存儲單元有一個編號(地址),通常一個存儲單元存放一個字節(8位)
一條指令或者一個操作數 可能占用多個存儲單元,指令和操作數的地址都是指一組連續存儲單元中最小的地址
1.根據PC取指令到IR
->將PC的內容送MAR
->MAR中的內容直接送地址線,同時控制器將讀信號送讀/寫信號線。
->主存根據地址線上的地址和讀信號,從指定存儲單元開始讀出指令,並送到數據線上,
->MDR從數據線接受指令信息,並傳送到IR中
2.指令譯碼並送出控制信號
->控制器根據IR中指令的操作碼,生成相應的控制信號,送到不同的執行部件
3.取操作數
若為ALU運算類指令:
根據IR中指令指定的寄存器編號選擇兩個或者一個寄存器中的內容作為操作數,送到ALU的輸入端
4.指令執行
若為ALU運算類指令:
ALU在控制信號的控制下,進行相應的運算,並生成運算結果和相應的標志信息。
若為取數/存數指令:
主存在讀/寫控制信號的控制下,對地址線指定的存儲單元進行讀/寫
5.回寫結果
將ALU運算的結果寫入指定編號的寄存器或指定的主存單元中。
不論是定長指令字系統還是變長指令字系統,當一條指令執行結束時,PC中一定是下一條指令的地址
指令的執行由時鍾信號(clock signal)進行定時,一條指令的執行可能需要一個或多個時鍾周期。
3.從機器語言到高級編程語言
指令是一些對結構操作的動作的描述
匯編語言比機器語言好, 但
程序長、不可移植(不夠抽象)
兩者都是面向機器結構的語言
4.程序的開發和執行及其支撐環境
5.現代計算機系統的層次結構
ISA是軟硬件的 interface(接口)
ISA是計算機組成的抽象,也就是計算機硬件的抽象。