第一章計算機系統概論
硬件:計算機的實體,如主機,外設等
軟件:具備各種特殊功能的信息(程序)組成
系統軟件 |
用來管理整個計算機系統 |
標準程序庫,語言處理程序,操做系統,數據庫管理系統,網絡軟件 |
應用軟件 |
按任務須要編製成的各類程序 |
科學計算程序,數據處理程序,過程控制程序,事務管理程序 |
計算機系統的層次結構
![image](http://static.javashuo.com/static/loading.gif)
計算機系統的體系結構
計算機體系結構 |
有無乘法指令 |
程序員見到的計算機系統的屬性,即概念性的結構和功能特性(指令系統,數據類型,尋址技術,I/O機理) |
計算機組成 |
如何實現乘法指令 |
實現計算機體系結構所體現的屬性(具體指令的實現) |
馮.諾依曼計算機的特色
1.計算機由運算器,存儲器,控制器,輸入設備和輸出設備五大部分組成程序員
2.指令和數據以同等地位存放與存儲器內,並可按地址尋訪數據庫
3.指令和數據用二進制表示編程
4.指令由操做碼和地址碼組成數組
5.存儲程序緩存
6.以運算器爲中心網絡
馮.諾依曼計算機硬件框圖
![image](http://static.javashuo.com/static/loading.gif)
現代計算機硬件框圖
![image](http://static.javashuo.com/static/loading.gif)
設某機的指令字長爲16位,其中操做碼佔6位,地址碼佔10位。
000001 |
取數 |
將指令地址碼指示的存儲單元中的操做數取到運算器的累加器ACC中 |
000010 |
存數 |
將ACC中的數存至指令地址碼指示的存儲單元中 |
000011 |
加 |
將ACC中的數與指令地址碼指示的存儲單元中的數相加,結果存於ACC中 |
000100 |
乘 |
將ACC中的數與指令地址碼指示的存儲單元中的數相乘,結果存於ACC中 |
000101 |
打印 |
將指令地址碼指示的存儲單元中操做數打印輸出 |
存儲器的基本組成
存儲單元 |
存放一串二進制代碼 |
存儲字 |
存儲單元中二進制代碼的組合 |
存儲字長 |
存儲單元中二進制代碼的位數每一個存儲單元賦予一個地址號 |
MAR |
存儲器地址寄存器,反映存儲單元的個數 2**n |
MDR |
存儲器數據寄存器,反映存儲字長 n |
運算器基本組成
ACC |
被加數及和 |
被減數及差 |
乘積高位 |
被除數及餘數 |
MQ |
|
|
乘數及乘積低位 |
商 |
X |
加數 |
減數 |
被乘數 |
除數 |
控制器的基本組成
PC |
取指令 |
取指,訪存 |
存放當前欲執行指令的地址,具備計數功能(PC)+1->pc |
IR |
分析指令 |
取指,訪存 |
存放當前欲執行的指令 |
CU |
執行指令 |
執行,訪存 |
控制單元 |
以取數指令爲例
![image](http://static.javashuo.com/static/loading.gif)
程序首地址PC異步
取指令:PC->MAR->存儲體M-MDR->IR分佈式
分析指令:IR->CU性能
執行指令:IR->MAR->M->MDR->ACC測試
計算機硬件的主要技術指標
機器字長:CPU一次能處理數據的位數,與CPU中的寄存器位數有關。
運算速度:主頻,吉普森法(每條指令的執行的時間以及他們在所有操做中所佔的百分比\(T_M=\sum_{i=1}^{n}f_it_i\)),MIPS(百萬條指令每秒),CPI(執行一條指令所需時鐘週期數),FLOPS(每秒浮點運算次數)
存儲容量(存放二進制信息的總位數)
主存容量 |
存儲單元×字節數 |
主存容量 |
字節數 |
輔存容量 |
字節數 |
指令和數據都存於存儲器中,計算機如何區分它們?
1.經過不一樣的時間段,在取指令階段取出的爲指令,在執行指令階段取出爲數據
2.經過地址源:由PC提供存儲單元地址的取出的是指令,由指令地址碼提供存儲單元地址取出的是操做數。
第二章 計算機的發展及應用
Moore定律:微芯上集成的晶體管數目每三年翻兩番
計算機的應用
1、科學計算和數據處理
2、工業控制和實時控制
3、網絡技術
1.電子商務
2.網絡教育
3.敏捷製造
4、虛擬現實
5、辦公自動化和管理信息系統
6、CAD/CAM/CIMS
7、多媒體技術
8、人工智能
芯片集成度的提升受如下三方面的限制
芯片集成度受物理極限的制約
按幾何級數遞增的製做成本
芯片的功耗、散熱、線延遲
光計算機 |
利用光子取代電子進行運算和存儲 |
DNA生物計算機 |
經過控制DNA分子間的生化反應 |
量子計算機 |
利用原子所具備的量子特性 |
第三章 系統總線
計算機系統五大部件之間的互連的方式有兩種
1.分散鏈接:各部件之間使用單獨的連線
2.總線鏈接:將各部件連到一組公共信息傳輸線上
總線:鏈接各個部件的信息傳輸線,是各個部件共享的傳輸介質
總線傳輸特色:某一時刻只能有一路信息在總線上傳輸,即分時使用。爲了減輕總線負載,總線上的部件應經過三態驅動緩衝電路與總線相連
總線上信息的傳輸:
串行:每條線可一位一位的傳輸二進制代碼,一串二進制代碼可在一段時間內逐一傳輸完成
並行:若干條傳輸線同時傳輸若干條二進制代碼
面向 CPU 的雙總線結構框圖
![image](http://static.javashuo.com/static/loading.gif)
單總線結構框圖
![image](http://static.javashuo.com/static/loading.gif)
以存儲器爲中心的雙總線結構框圖
![image](http://static.javashuo.com/static/loading.gif)
片內總線 |
芯片內部的總線,如寄存器與寄存器之間,寄存器與算邏單元ALU之間。 |
系統總線 |
計算機各部件之間的信息傳輸線(CPU,主存,I/O設備等) |
系統總線-數據總線 |
雙向傳輸,其位數與機器字長,存儲字長有關 |
系統總線-地址總線 |
單向,與存儲地址,I/O地址有關 |
系統總線-控制總線 |
單向,發出各類控制信號。有出(存儲器讀、存儲器寫總線容許、中斷確認),有入(中斷請求、總線請求) |
通訊總線 |
用於計算機系統之間或計算機系統與其餘系統(如控制儀表、移動通訊等)之間的通訊。分爲串行通訊和並行通訊 |
總線物理實現
![image](http://static.javashuo.com/static/loading.gif)
總線特性
機械特性 |
指總線在機械鏈接方式上的一些性能,尺寸,形狀,引腳的個數以及排列的順序,接頭處的可靠接觸 |
電氣特性 |
總線的每一根傳輸線上信號的傳輸方向和有效的電平範圍 |
功能特性 |
每根傳輸線的功能。地址總線用來指出地址碼;數據總線傳遞數據;控制總線發出控制信號 |
時間特性 |
信號的時序關係 |
總線性能指標
總線寬度 |
數據線分根數,用bit |
總線帶寬 |
每秒傳輸的最大字節數(MBps) |
時鐘同步/異步 |
同步,異步 |
總線複用 |
地址線與數據線複用 |
信號線數 |
地址線,數據線和控制線的總和 |
總線控制方式 |
突發,自動,仲裁,邏輯,計數 |
其餘指標 |
負載能力(驅動能力),電源電壓,總線寬度可否擴展等 |
總線標準
總線標準:系統與各模塊,模塊與模塊之間的一個互連的標準界面
爲何要設立總線標準:爲了使設計簡化,模塊生產批量化,確保其性能穩定,質量可靠,實現可移化,便於維護。
ISA |
16 |
24 |
8MHz(獨立) |
16MBps |
|
EISA |
32 |
32 |
8MHz(獨立) |
33MBps |
|
VESA(VL-BUS) |
32 |
|
33MHz(CPU) |
133MBps |
|
PCI |
32 64 |
|
33MHz(獨立)66MHz(獨立) |
132MBps528MBps |
良好的兼容性,即插即用,支持多主設備,具備與處理器和存儲器子系統徹底並行操做的能力,提供數據和地址奇偶校驗,可擴充,軟件兼容性好,支持兩種電壓標準5V、3.3V,採用多路複用 |
AGP |
32 |
|
66.7MHz(獨立)133MHz(獨立) |
266MBps533MBps |
|
RS-232C |
串行通訊總線標準 |
|
數據終端設備(計算機)和數據通訊設備(調制解調器)之間的標準接口 |
|
|
USB |
串行接口總線標準 |
|
普通無屏蔽雙絞線帶屏蔽雙絞線最高 |
1.5 Mbps(USB1.0)12Mbps(USB1.0)480Mbps(USB2.0) |
具備真正的即插即用,很強的鏈接能力,數據傳輸率,標準統一 |
總線結構
單總線結構
![image](http://static.javashuo.com/static/loading.gif)
雙總線結構
![image](http://static.javashuo.com/static/loading.gif)
三總線結構
![image](http://static.javashuo.com/static/loading.gif)
三總線結構又一
![image](http://static.javashuo.com/static/loading.gif)
四總線結構
![image](http://static.javashuo.com/static/loading.gif)
總線判優控制
爲何要設置總線判優控制:總線上所鏈接的各種設備,按其對總線有無控制功能分爲主設備(模塊)和從設備(模塊)。主設備對總線有控制權,從設備只能響應從主設備發來的總線命令,對總線沒有控制權。總線上的信息是又主設備啓動的,若多個主設備同時要使用總線時,就由總線控制器的優判,仲裁邏輯按必定的優先等級順序肯定哪一個主設備能使用總線。
總線優判控制分爲集中式和分佈式兩種
鏈式查詢 |
連線簡單,易於擴充,對電路故障最敏感 |
計數器定時查詢 |
優先級設置較靈活,對故障不敏感,連線及控制過程較複雜 |
獨立請求 |
響應速度快,優先級次序控制靈活,但連線多,總線控制複雜 |
總線通訊
同步通訊 |
指由統一時鐘控制的通訊,控制方式簡單,靈活性差,當系統中各部件工做速度差別較大時,總線工做效率明顯降低 |
通常用於總線長度較短,各部件存取時間比較一致的場合 |
異步通訊 |
指沒有統一時鐘控制的通訊,部件採用應答方式進行聯繫,控制方式較同步複雜,靈活性高,當系統中各部件工做速度差別較大時,有利於提升總線工做效率 |
又分爲不互鎖,半互鎖,全互鎖 |
半同步通訊 |
既能夠像同步通訊同樣由統一時鐘控制,又能夠像異步通訊同樣容許傳輸時間不一致,工做效率介於二者之間 |
|
分離式通訊 |
1.各模塊欲佔用總線使用權必須提出申請2.在獲得總線使用權後,主模塊在限定的時間內向對方傳送信息,採用同步方式,再也不等待對方回答信號3.各模塊在準備數據的過程當中都不佔用總線,使總線能夠接受其餘模塊的請求4.總線被佔用時都在作有效工做,或者經過它發送命令,或者經過它傳送數據,不存在空閒等待時間,充分的利用了總線的有效佔用,從而實現了總線在多個主,從模塊間進行交叉重疊並行傳送。 |
大型計算機系統 |
同步式數據輸入傳輸
![image](http://static.javashuo.com/static/loading.gif)
同步式數據輸出傳輸
![image](http://static.javashuo.com/static/loading.gif)
第四章 存儲器
存儲器分類
![image](http://static.javashuo.com/static/loading.gif)
存儲器速度容量和價位的關係
![image](http://static.javashuo.com/static/loading.gif)
緩存主存層次和主存輔存層次
![image](http://static.javashuo.com/static/loading.gif)
緩存主存--解決CPU和主存速度不匹配的問題
主存輔存--解決存儲系統的容量問題
主存的主要技術指標
存儲容量
指主存能存放二進制代碼的總位數
存儲容量=存儲單元個數*存儲字長
存儲容量=存儲單元個數*存儲字長/8
存儲速度
由存取時間和存取週期來表示,存取時間指存儲器的訪時間,存取週期指存儲器進行兩次獨立的存儲器操做所需的最小時間間隔
存儲器帶寬
單位時間內存儲器存取的信息量,單位能夠用字/秒或字節/秒或位/秒。提升存儲器帶寬能夠1.縮短存取週期2.增長存儲字長,使每一個存取週期可讀/寫更多的二進制位數3.增長存儲體
靜態RAM
![image](http://static.javashuo.com/static/loading.gif)
動態RAM
動態RAM經過電容來存儲電荷的原理來存儲信息,電容上有足夠多的電荷表示存1,無電荷表示存0,電容上電荷通常只能維持1——2ms,所以,必須在2ms內對其所存儲單元恢復一次原狀態,這個過程稱爲再生或刷新。
動態RAM時序圖
先由\(\overline{RAS}\)將行地址送入行地址緩存器,再由\(\overline{CAS}\)將列地址送入列地址緩存器,所以\(\overline{CAS}\)滯後於\(\overline{RAS}\)的時間必需要超過其規定值
\(\overline{RAS}\)和\(\overline{CAS}\)正、負電平的寬度要大於規定值,以保證芯片內部正常工做
行地址對\(\overline{RAS}\)的降低沿以及列地址對\(\overline{CAS}\)的降低沿應有足夠的地址創建時間和地址保持時間,已肯定行、列地址均能準確寫入芯片。
動態RAM讀時序
行地`\(\overline{RAS}\)有效
寫容許\(\overline{WE}\)有效(高)
列地址\(\overline{CAS}\)有效
數據\(D_{OUT}\)有效
動態RAM寫時序
行地址\(\overline{RAS}\)有效
寫容許\(\overline{WE}\)有效(低)
數據\(D_{IN}\)有
列地址\(\overline{CAS}\)有效
動態RAM刷新
刷新實質是將原信息讀出,在由刷新放大器造成原信息並從新寫入的再生過程
集中刷新--在規定的一個刷新週期內,對所有存儲單元集中一段時間逐行進行刷新,此刻必須中止讀/寫操做。以後剩餘的時間進行讀寫操做或維持信息。所以存在「死時間」或訪存「死區」。
![image](http://static.javashuo.com/static/loading.gif)
分散刷新--對每行存儲單元的刷新分散到每一個存取週期內完成。其中把機器的週期\(t_c\)分紅兩段,前半段\(t_M\)用來讀寫或維持信息,後半段\(t_R\)用來刷新,不存在死時間,但存取週期長
![image](http://static.javashuo.com/static/loading.gif)
異步刷新--異步刷新爲前兩種的結合,既能夠縮短死時間,又能夠充分利用2ms的特色
![image](http://static.javashuo.com/static/loading.gif)
動態RAM和靜態RAM的比較
在一樣大小的芯片中,動態RAM的集成度遠高於靜態RAM。
動態RAM行、列地址按前後順序輸送,減小了芯片的引腳,封裝尺寸也減小
動態RAM的功耗比靜態RAM小
動態RAM的價格比靜態RAM的價格便宜
因爲使用動態元件(電容),所以它的速度比靜態RAM低
動態RAM須要再生,故須要配置再生電路,也須要消耗一部分功率。一般,容量不大的高速緩存器大多用靜態RAM實現
存儲器與CPU的鏈接
存儲容量的擴展
位擴展--增長存儲字長
字擴展--增長存儲器字的數量
字、位擴展--既增長存儲字的數量,又增長存儲字長
存儲器與CPU鏈接
地址線的鏈接--CPU的地址線每每比存儲芯片的地址線數多,一般老是將CPU地址線的低位與存儲器的芯片的地址線相連,CPU地址線的高位或在存儲芯片的擴充時用,或做其餘用途。
數據線的鏈接--CPU的數據線與存儲器的也不等,所以必須對存儲芯片擴位使其相等
片選線的鏈接--是CPU與存儲芯片正確工做的關鍵
合理選擇存儲芯片--指存儲芯片類型(RAM或ROM)和數量的選擇。一般用ROM存放程序,標準子程序和各種常數等。RAM爲用戶編程設計。此外,儘可能選擇連線簡單方便。
提升訪存速度的措施
單體多字系統--在一個存取週期內,從同一地址取出4條指令,而後在逐條送至CPU執行。增大存儲器帶寬,提升存儲器工做速度。前提是,指令和數據在主存內必須是連續存放。
多體並行系統--採用多提模塊組成的存儲器,每一個模塊具備相同的容量和存取速度,各自具備獨立的寄存器(MAR),數據寄存器(MDR),地址譯碼,驅動電路和讀寫電路。
![image](http://static.javashuo.com/static/loading.gif)
高位交叉編址的多體存儲器
![image](http://static.javashuo.com/static/loading.gif)
低位交叉編址的多體存儲器
![image](http://static.javashuo.com/static/loading.gif)
高速緩衝存儲器
Cache的基本結構
![image](http://static.javashuo.com/static/loading.gif)
地址映射變換機構--將CPU送來的主存地址轉換爲Cache地址。
Cache--主存地址映射
直接映射
優勢:實現簡單,只須要利用主存地址的某些位直接判斷,便可肯定所需字塊是否在緩存中
缺點:不夠靈活,每一個主存快只能固定的對應某個緩存塊,即便緩存內還空着許多位置也不能被佔用,使緩存的空間得不到充分的利用。此外,若是程序剛好重複訪問對應同一緩存位置不一樣的主存塊,就要不停的進行替換,下降命中率。
全相聯映射--容許主存中每一字塊映射到Cache中的任何一塊位置上。
優勢:靈活,命中率高,縮小了快衝突率。
缺點:所需的邏輯電路甚多,成本較高。
組相聯映射
第五章 輸入輸出系統
輸入輸出系統發展的四個階段
1.早期階段
分散鏈接 CPU和I/O設備 串行工做 程序查詢方式
2.接口模塊和DMA階段
總線鏈接 CPU和I/O設備並行工做
3.具備通道結構的階段
4.具備I/O處理機的階段
輸入輸出系統的組成
1.I/O軟件
I/O指令 CPU指令的一部分
通道指令:通道自身的指令 指明數組的首地址、傳送字數、操做命令。
I/O硬件
設備 I/O接口
設備 設備控制器 通道
I/O設備與主機的聯繫方式
1.I/O設備編址方式
統一編址 用取數存數指令
不統一編址 有專門的I/O指令
2.設備尋址
用設備選擇電路識別是否被選中
3.傳送方式
串行 並行
4.聯絡方式
當即響應方式
異步方式採用應答信號
![image](http://static.javashuo.com/static/loading.gif)
同步工做採用同步時標聯絡
5.I/O設備
輻射式鏈接
![image](http://static.javashuo.com/static/loading.gif)
總線式鏈接
I/O設備與主機信息傳送的控制方式
==1.程序查詢方式==
![image](http://static.javashuo.com/static/loading.gif)
2.程序中斷方式
假若CPU在啓動I/O設備後,不查詢設備是否已準備就緒,繼續執行自身程序,只是當I/O設備準備就緒並向CPU發出中斷請求後才予以響應。
3.DMA方式(直接存儲器存取)
主存與I/O設備之間有一條數據通路,主存與I/O設備交換信息時,無須調用中斷服務程序。若出現DMA和CPU同時訪問主存,CPU老是將總線佔有權讓給DMA,一般把DMA這種佔有稱爲竊取或挪用。竊取的時間通常爲一個週期,故又把DMA佔用的存取週期竊取週期或挪用週期。
I/O接口
==爲何設置I/O接口==
實現設備的選擇
實現數據緩衝達到速度匹配
實現數據串--並格式轉換
實現電平轉換
實現電平轉換
傳送控制命令
反映設備的狀態("忙","就緒","中斷請求")
端口和接口的關係
端口是指接口電路中的一些寄存器,這些寄存器用來存放數據信息,控制信息和狀態信息,相應的端口被分別稱爲數據端口,控制端口,和狀態端口。若干個端口加上相應的控制邏輯才能組成接口。
接口的功能和組成
總線鏈接方式的I/O接口電路
設備選擇線,數據線,命令線,狀態線
接口的功能和組成
選址功能 |
設備選擇電路 |
傳送命令的功能 |
命令寄存器,命令譯碼器 |
傳送數據的功能 |
數據緩衝寄存器 |
反映設備狀態的功能 |
設備標記狀態 |
![image](http://static.javashuo.com/static/loading.gif)
接口類型
按數據傳送方式 |
並行接口(Intel 8255) 串行接口(Intel 8251) |
按功能選擇的靈活性 |
可編程接口(Intel 8255,Intel 8251) 不可編程接口(Intel 8212) |
按通用性 |
通用接口(Intel 825五、 Intel 8251) 專用接口(Intel 827九、 Intel 8275) |
按數據傳送的控制方式 |
中斷接口(Intel 8259) DMA接口(Intel 8257) |
程序查詢方式
測試指令 |
用來查詢I/O設備已準備就緒 |
傳送指令 |
當I/O設備已準備就緒時,執行傳送指令 |
轉移指令 |
若I/O設備未準備就緒,執行轉移指令,轉至測試指令,繼續測試I/O設備的狀態 |
程序流程
![image](http://static.javashuo.com/static/loading.gif)
![image](http://static.javashuo.com/static/loading.gif)
1)CPU發I/O地址設備開始工做;地址總線接口設備選擇器譯碼選中發SEL信號;2)CPU發啓動命令DBR開命令接收門;D置0,B置1接口向設備發啓動命令;3)CPU等待,輸入設備讀出數據;4)外設工做完成,B置0,D置1;5)準備就緒信號接口完成信號控制總線CPU;6)輸入:CPU經過輸入指令(IN)將DBR中的數據取走。
程序中斷方式
中斷:在執行程序過程當中,當出現異常狀況或特殊狀況請求時,計算機中止現行程序的運行,轉向對這些異常狀況或特殊狀況的請求的處理,處理結束後再返回到現行程序的間斷處,繼續執行源程序。
程序中斷方式配置中斷請求和中斷寄存
![image](http://static.javashuo.com/static/loading.gif)
接口電路的基本組成
![image](http://static.javashuo.com/static/loading.gif)
中斷處理過程
1.CPU響應中斷的條件和時間
(1)條件
容許中斷觸發器 EINT = 1
用 開中斷 指令將 EINT 置 「1」
用 關中斷 指令將 EINT 置「 0」 或硬件 自動復位
(2)時間
當 D = 1(隨機)且 MASK = 0 時
在每條指令執行階段的結束前
CPU 發 中斷查詢信號(將 INTR 置「1」)
2.I/O中斷處理過程
1.CPU發啓動I/O設備命令,將接口中的B置1,D置0
2.接口啓動輸入設備開始工做
3.輸入設備將數據送入數據緩衝寄存器
4.輸入設備向接口發出"設備工做結束"信號,將D置1,B置0
5.當設備準備就緒(D=1),且本設備未被屏蔽(MASK=0),在指令執行階段的結束時刻,由CPU發出中斷查詢信號
6.設備中斷請求觸發器INTR被置1,標誌設備向CPU提出中斷請求。於此同時,INTR被送至排隊器,進行中斷優判
7.若CPU容許中斷(EINT=1),設備又被選中排隊,即進入中斷響應階段
8.向量地址送至PC,做爲下一條指令的地址
9.無條件轉至設備服務程序的入口地址,進入中斷服務階段
10.執行結束,中斷返回至原程序的斷點處
中斷服務程序的流程
保護現場
中斷服務
恢復現場
中斷返回
DMA接口的功能和組成
DMA接口具備的功能
向CPU申請DMA傳送
在CPU容許DMA工做時,處理總線控制權的轉交
在DMA期間管理系統總線,控制數據傳送
肯定數據傳送的氣勢地址和數據長度,修正數據傳送過程當中的數據地址和數據長度
在數據塊傳送結束時,給出DMA操做完成的信號
DMA與主存交換數據的三種方式
1.中止CPU訪問主存
2.週期挪用
3.DMA與CPU交替訪問
DMA基本組成
![image](http://static.javashuo.com/static/loading.gif)
DMA的工做過程
預處理、數據傳送、後處理
DMA方式與中斷程序的比較
數據傳送 |
程序 |
硬件 |
響應時間 |
指令執行結束 |
存取週期結束 |
處理異常狀況 |
能 |
不能 |
中斷請求 |
傳送數據 |
後處理 |
優先級 |
低 |
高 |
第七章 指令系統
指令的通常格式
操做碼 反映機器作什麼操做
1).長度固定:用於指令字長較長的狀況,RISC。如IBM 370 操做碼 8位
2).長度可變:操做碼分散在指令字段的不一樣字段中。
指令字長
指令字長決定於操做碼的長度,操做數地址的長度,操做數地址的個數
指令字長固定的話=存儲字長
指令字長可變的話=,按字節的倍數變化
操做數類型和操做種類
地址 |
無符號整數 |
數字 |
定點數、浮點數、十進制數 |
字符 |
ASCII |
邏輯數 |
邏輯運算 |
操做類型
數據傳送 |
寄存器->寄存器、寄存器->存儲器等 |
算數邏輯運算 |
加、減、乘、除等 |
移位操做 |
算數移位、邏輯移位、循環移位(帶進位,不帶進位) |
轉移 |
無條件轉移(JMP)、條件轉移{結果爲零轉(JZ)、結果溢出轉(JO)、結果有進位轉(JC)、跳過一條指令(SKP)} |
調用和返回 |
|
陷阱(Trap)與陷阱指令 |
意外事故的中斷 |
輸入和輸出 |
端口地址->CPU的寄存器,CPU的寄存器->端口地址 |
尋址方式
順序尋址 |
自動造成下一條指令的地址 |
跳躍尋址 |
經過轉移類指令實現 |
當即尋址 |
op # A |
直接尋址 |
EA=A |
隱含尋址 |
ACC x |
間接尋址 |
EA=(A) |
寄存器尋址 |
EA=R |
寄存器間接尋址 |
EA=(R) |
基址尋址 |
EA=A+(BR) |
變址尋址 |
EA=A+(IX) |
相對尋址 |
EA=(PC)+A |
堆棧尋址 |
PUSH A |
設計指令格式應考慮的各類因素
操做類型 |
包括指令數及操做的難易程度 |
數據類型 |
肯定哪些數據類型能夠參與操做 |
指令格式 |
指令字長是否固定、操做碼數、是否採用擴展操做碼技術,地址碼位數、地址個數、尋址方式類型 |
尋址方式 |
指令尋址、操做數尋址 |
寄存器個數 |
寄存器的多少直接影響指令的執行時間 |
RISC技術
RISC:精簡指令系統計算機
CISC:複雜指令系統計算機
RISC的主要特徵
選用使用頻度較高的一些簡單指令,複雜指令的功能由簡單指令來組合
指令 長度固定、指令格式種類少、尋址方式少
只有 LOAD / STORE 指令訪存
CPU 中有多個 通用 寄存器
採用 流水技術 一個時鐘週期 內完成一條指令
採用 組合邏輯 實現控制器
採用 優化 的 編譯 程序
RISC和CISC的比較
RISC更能 充分利用 VLSI 芯片的面積
RISC 更能 提升計算機運算速度(指令數、指令格式、尋址方式少,通用 寄存器多,採用組合邏輯,便於實現指令流水)
RISC 便於設計,可 下降成本,提升 可靠性
RISC 有利於編譯程序代碼優化
RISC 不易 實現 指令系統兼容
第八章 CPU的結構
CPU的功能
控制器的功能
取指令、分析指令、執行指令,發出各類操做命令、控制程序輸入及結果的輸出、總線管理、處理異常狀況和特殊狀況;分別對應指令控制、操做控制、時間控制、處理中斷、數據加工。
運算器的功能
實現算數運算和邏輯預算
CPU的結構
![image](http://static.javashuo.com/static/loading.gif)
![image](http://static.javashuo.com/static/loading.gif)
CPU的寄存器
用戶可見寄存器 |
通用寄存器 |
存放操做數:可作某種尋址方式所需的專用寄存器 |
用戶可見寄存器 |
數據寄存器 |
存放操做數(知足各類數據類型)兩個寄存器拼接存放雙倍字長數據 |
用戶可見寄存器 |
地址寄存器 |
存放地址:其位數應知足最大的地址範圍用於特殊的尋址方式 段基值 棧指針 |
用戶可見寄存器 |
條件碼寄存器 |
存放條件碼:可做程序分支的依據如 正、負、零、溢出、進位等 |
控制和狀態寄存器 |
控制寄存器 |
PC->MAR->M->MDR->IR,控制CPU |
控制和狀態寄存器 |
狀態寄存器 |
狀態寄存器(存放條件碼),PSW寄存器(存放子程序狀態字) |
指令週期
取出並執行一條指令所需的所有時間。分爲取值週期和執行週期
指令週期的數據流
取值週期數據流
![image](http://static.javashuo.com/static/loading.gif)
間址週期數據流
![image](http://static.javashuo.com/static/loading.gif)
執行週期數據流--不一樣指令的執行週期數據流不一樣
中斷週期數據流
![image](http://static.javashuo.com/static/loading.gif)
影響指令流水線性能的因素
結構相關 |
不一樣指令爭用同一功能部件產生資源衝突使指令流水出現停頓,影響流水線效率 |
停頓、指令存儲器和數據存儲器分開、指令預取技術 |
數據相關 |
不一樣指令因重疊操做,可能改變操做數的 讀/寫 訪問順序 |
後推法、採用旁路技術 |
控制相關 |
由轉移指令引發 |
今早判別轉移是否發生、及早生成轉移目標地址、預取轉移成功或不成功兩個控制流方向上的目標指令、加快和提早造成條件碼等 |
流水線性能
吞吐率 |
單位時間內 流水線所完成指令 或輸出結果的數量 |
加速比 |
m 段的流水線的速度與等功能的非流水線的速度之比 |
效率 |
流水線中各功能段的 利用率 |
流水線的多發技術
超標量技術、超流水線技術、超長指令字技術
流水線結構
指令流水線結構
![image](http://static.javashuo.com/static/loading.gif)
運算流水線
![image](http://static.javashuo.com/static/loading.gif)
中斷請求
中斷請求標記、中斷判優邏輯、(硬件排隊、軟件排隊)
中斷響應
響應中斷的條件:容許中斷觸發器 EINT = 1
響應中斷的 時間:指令執行週期結束時刻由CPU發查詢信號
中斷隱指令
1.保護程序斷點
2.尋找服務程序入口地址
3.硬件 關中斷
保護現場和恢復現場
程序斷點保護和保護CPU內部個寄存器內容
中斷屏蔽技術
1.多重中斷的概念
2.實現多重中斷的條件
1).提早設置「開中斷」指令
2).優先級別高的中斷源有權中斷優先級別低的中斷源
3.屏蔽技術
1).屏蔽觸發器和屏蔽字
2).屏蔽技術可改變優先等級
3).屏蔽技術的其餘應用
4.多重中斷的斷點保護
第九章 控制單元功能
取值週期
PC->MAR
1->R
M(MAR)->MDR
MDR->IR
OP(IR)->CU
(PC)+1->PC
間址週期
Ad(IR)->MAR
1->R
M(MAR)->MDR
MDR->Ad(IR)
執行週期
非訪存指令 |
0->ACC、\(\overline{ACC}\)->ACC、L(ACC)->R(ACC),\(ACC_0\)->\(ACC_0\)、R(ACC)->L(ACC),\(ACC_0\)->\(ACC_0\)、0->G |
訪存指令-加法指令 |
ADD X、Ad(IR)->MAR、1->R、M(MAR)->MDR、(ACC)+(MDR)->ACC |
訪存指令-存數指令 |
STA X、Ad(IR)->MAR、1->W、ACC->MDR、MDR->M(MAR) |
訪存指令-取數指令 |
LDA x、Ad(IR)->MAR、1->R、M(MAR)->MDR、MDR-ACC |
轉移指令-無條件轉移 |
JMP x、Ad(IR)->PC |
轉移指令-條件轉移 |
BAN X(負則轉)、\(A_0*Ad(IR)+\overline {A_0}(PC)->PC\) |
中斷週期
0->MAR
1->W
PC->MDR
MDR->M(MAR)
中斷程序識別程序入口地址M->PC
0->EINT
控制方式
同步控制方式 |
任一微操做均由統一基準時標的時序信號控制 |
異步控制方式 |
無基準時標信號、無固定的週期節拍和嚴格的時鐘同步、採用 應答方式 |
聯合控制方式 |
同步與異步相結合 |
人工控制方式 |
Reset、連續和單條指令執行轉換開關、符合停機開關 |