考綱
- 發展路程
- 層次結構
- 性能指標:
## 計算機發展歷程 - 根據物理期間來分大致可以歸為4類,
- 電子管時代: 電子管,機器語言編程,磁帶(bug誕生),主存用鹽池縣或磁鼓傳遞信息,容量小,體積大,成本高,bug多(穿卡孔,紙袋),-> 運算效率低
- 晶體管時代: 邏輯元件使用晶體管, 磁心存儲器,軟件開始使用高級語言,FORTRAN
- 中小規模集成電路時代: 半導體(介於導電和非導電之間,電子特性比較容易改變,方邊進行電容存儲及門電路涉及), SiO2,取代磁芯管,語言發展順序,高級語言迅速發展,開始有了分時操作系統 (***)
- 超大規模集成電路, 產生了微處理器(CPU),並行,流水線,高緩存和虛擬存儲器應用
- 標志
- 摩爾定律: 發展進度 18 -> 翻杯,性價比實惠, 邏輯元件迅速發展的修飾
- 半導體的發展: 從單芯片 1KB .... 1GB (4冪) 11代,邏輯元件的集成度越來越高
- 微處理器的發展: 1971 Intel發展地一個微處理器 Intel 4004至今, 經歷了 8位,.... 64位,64位表示機器字長,是計算機進行一次證書運算所能處理的二進制數據的位數。
計算機軟件的發展
- 大小分類
- 巨型,大型,中,小,微,單片及 6類。價格一次低,復雜度依次降低
- 指令分類
- 單指令流和單數據流系統 SISD (sigle instruction sigle data) 傳統 馮*諾依曼體系
- SIMD 整列處理器和向量處理器系統
- MISD 實際不存在 ***
- MIMD 多處理器多計算機系統
計算機系統層次結構
prym研究EDVAC機提出
存儲程序
概念,奠定了計算機的基本結構
硬件系統組成
- 組成: 運算器,存儲器,控制器,輸入,輸出
- 指令和數據以同等地位存儲在存儲器中,並可按地址尋訪
- 指令和數據均用二進制代碼表示
- 指令由操作碼和地址碼組成,操作碼用來表示操作的性質,地址碼來表示操作數在存儲器中的位置
- 指令在存儲器內按順序存放,同常指令是按准許執行的
- 早期的pruma機以運算器為中心, 現代計算機以存儲器為中
輸入設備
- I: input,聲光熱電力以某種傳感介質轉化為電信號,再轉化計算機能識別的二進制輸入到電腦, 人腦的神經原其實也是通過電信號傳導的
- O: output, 同上,反向操作
- 存儲器: 計算CPU指令常用
- MAR: 地址寄存器(memory address register),接受存儲地址(當前主存儲器的單元號)
- MDR: 數據寄存器(memory data register),存儲從主存儲器中取出的數據,
- 時序控制邏輯: 從MAR獲取地址單元編號,從存儲體中獲取到數據,放到 MDR(數據寄存器)中
- MAR: 地址寄存器(memory address register),接受存儲地址(當前主存儲器的單元號)
- 運算器: 計算機的執行部件,包括算數運算如 加減乘除,邏輯運算 ,~,!,=,>>,<<
- 包括若干個通用寄存器:
- ACC: 累加器, accumulator, AC + cumulator
- MQ: 乘商寄存器, Multiplier-Quotient Register;
- X: 操作數寄存器
- IX: 變址寄存器, index reigster
- BR: 基地址寄存器, Base address register
- PSW: 程序狀態寄存器, program status register,也成為標志寄存器,用於存放ALU
- 核心是邏輯單元
- ALU(Arithmetic and Logical unit),用於存儲ALU運算得到的一些標志信息或處理機的狀態信息
- 如結構是否溢出,有無生產進位或錯位,結果是否為負數
- 包括若干個通用寄存器:
- 控制器
- 指揮中心,指揮各部件協調運行,
- 組成
- PC:(program counter)程序計數器
- IC:(instruction register)指令計數器
- CU:(control unit)控制單元
- PC用來存放當前欲執行的指令的地址,可以自動加1以形成下一條指令的地址它與MAR(memory address regiser)之間有一條直接通路
- IR: 用來存儲當前執行的指令,其內容來自於貯存的MAR,指令OP(IR)中的操作碼發送至CU,用來
分析指令
並發出各種微操作命令
,而地址碼Ad(IR)則被送往MAR,用以取操作數。 (注意: IR被拆分為2部分, OP和AD分別送到CU和MAR)
CPU的組成
- 一般將運算器和控制器集成到同一個CPU上,稱為中央處理器
- prym模型中,CPU包含ALU,通用寄存器組GPRs,標志寄存器,控制器,指令寄存器IR,程序計數器PC,存儲地址寄存器MAR和存儲數據寄存器MDR。
- CPU和主存儲之間通過一組總線相連,總線中有地址,控制和數據3組信號線。MAR中的地址信息會直接送到地址總線上,用於指向讀寫操作的主存存儲單元,控制線中有讀/寫信號線。
CPU運行圖解
- TODO:
計算機軟件的分類
- 軟件功能分類
- 系統軟件和應用軟件,系統軟件是一組保證計算機系統高效,正確運行的基礎組建,通常作為系統資源提供給用戶使用,系統軟件主要有操作系統,數據庫管理系統DBMS,語言處理程序,分布式軟件系統,網絡軟件系統,標注庫程序系統,服務性程序等
- 注意: DBMS, DBS是有區別的,DBMS是用於用戶和操作系統之間一層數據管理軟件,是系統軟件,而DBS是引入數據后的系統,一般由數據庫,DBMS和DBA(data base admin)組成。
- 三個級別的語言
- 機器語言,二進制
- 匯編語言,二進制的助記符,用英文單詞或其縮寫替代二進制的指令代碼,更容易被理解。使用匯編語言編寫的程序,必須經過一個稱為匯編程序的系統軟件編譯,將其轉化為計算機機器語言后, 才能在計算機的硬件系統上執行
- 高級語言,高級語言(如C,C++,Java等)是為了方便程序設計人員寫出解決問題的處理方案和解題過程的程序。
## 計算機工作過程
- 把程序和數據裝入主存儲器中
- 將源程序轉化成為可執行文件
從可執行文件的首地址開始逐條執行指令
從源程序到可執行文件
- 預處理階段: 查找替換,處處一個以
.i
為擴展名的源文件hello.i
. - 編譯階段: 編譯器 ccl對預處理后的源程序進行編譯,生成一個匯編語言程序
hello.s
- 匯編階段: 匯編起(as)將hello.s翻譯成機器指令,並把這些指令打包成一個成為可重定位目標文件
hello.o
,它是一種二進制文件 - 鏈接階段: 連接器(ld)將多個可重定位目標文件和標准庫函數合並為一個可執行目標文件,或簡稱為可執行文件。如教程示例中
hello.o
和prinft
所在的可重定位目標模塊文件prinft
合並生成可執行文件hello
,最終生成的可執行文件被保存在磁盤上。
replace(.i) -> cll(.s) -> as (.o) -> ld(.exe)
- 預處理階段: 查找替換,處處一個以
指令執行過程的描述
- 程序中第一台哦指令的地址置於PC中,根據PC取出第一條指令,經過譯碼,執行步驟等,控制器計算機各功能部件協同下運行,完成這條指令功能,並計算下一一條指令的地址,用心得到的指令地址急促讀取第二條指令並執行,知道程序結束為止。
取指令: PC -> MAR -> M(主存儲) -> MDR -> IR
- 根據PC取指令到指令寄存器,將PC的內容送往MAR,根據數據編號從M中取出指令方法哦MDR中,然后再傳入到IR中
分析指令: OP(IR) -> CU
- 指令譯碼並送出控制信號。控制器根據IR中指令的操作碼,生成相應的控制信號,送到不同的執行部件。IR中是取數指令,因此讀控制信號被送到總線的控制信號上
執行指令: Ad(IR) -> MAR -> M -> MDR -> ACC
- 取數操作,將IR中指令的地址碼送到MAR, MAR中的內容容地址線,
同時控制器將讀信號送讀/寫信號線,從主存指令存儲單元獨處操作數
,並通過數據線傳送至MDR,再傳送數據至MDR,然后傳送至ACC中,執行家法運算。
- 取數操作,將IR中指令的地址碼送到MAR, MAR中的內容容地址線,
計算機多層次結構
- 層級 4個
- 微程序機器層: 它是一個實在的硬件層,他是由機器硬件直接執行的微指令。
- 傳統機器語言層: 它也是一個實際的機器層,由微程序解析機器指令系統
- 操作系統層: 它由操作系統實現,操作系統程序是由機器指令和廣義指令組成,這些廣義指令也是為了擴展機器功能而設置的,它是由操作系統定義和解釋的軟件指令,所以這一層也稱混合層。
- 匯編語言層: 它為用戶提供了一種符號話的語言,一層由匯編程序支持和執行
- 高級語言層: 面向用戶的,是為了方便用戶編寫應用程序而設置的,該層由各種高級語言編譯程序支持和執行。
- 裸機
- 第3層和5層成為虛擬機,軟件實現的機器
計算機的性能指標
- 機器字長: 計算機進行一次整數運算(即定點整數運算)所能處理的二進制數據的位數。通常與CPU寄存器的位數,加法器有關。選定字長為8的整數倍
- 數據通路帶寬: 數據通路帶寬是指數據總線一次所能並行傳送的信息位數,(注 這里所說的數據通路帶寬是只外部數據總線的寬度,與CPU內部數據總線的寬度,內部寄存器的大小可能有所不同,各子系統通過數據總線連接形成的數據傳送路徑成為數據通路)。
- 主存容量: MAR的位數反應存儲單元的個數,MAR的位數反應可尋址范圍的最大值(不一定是實際存儲器的容量)
- 若MAR為16位,則它的尋址范圍是 2的16次方 = 65536
- 運算速度
- 吞吐量: 單位時間內處理的請求數量
- 響應時間: 指用戶向計算機發送一個請求,到系統對該請求作出響應的的時間
- 主頻和時鍾周期:
- 主頻: CPU的時鍾周期,每秒脈沖信號執行次數
- CPU時鍾周期: CPU的最小時間單位,1秒除以主頻
- CPI: (Clock cycle Per instruction),即執行一條指令所需的時鍾周期數
- CPU執行時間: 指運行一個程序所花費的時間
- CPU執行時間 = CPU時鍾周期/主頻 = (指令條數 * CPI)/主頻
- MIPS,MFLOPS,GFLOPS,TFLOPS
- Million Instructions Per Second, 106
- Million Floating-point Operations Per second,
計算機專業術語
- 固件: 將程序固定在ROM中組成的部分成為固件,固件是用具有軟件特性的硬件,性能指標介於硬件和軟件之間,吸收了軟件和硬件的優點,執行速度快於軟件,靈活性優於軟件,是軟硬件的結合產物,例如目前操作系統已經實現了部分固化,通過只讀存儲器將一些固定常用的指令存儲在只讀存儲器中。