NO IMAGE

      計算機組成原理是計算機科目中偏向於硬體的,我真的沒學好,唯一做的好的筆記還是比較完整的。哈哈。這門課真的是博大精深。現在把組成原理的基本知識點與大家分享,希望大家在這門課的學習中少走彎路。

計算機系統概論

把以軟體為主實現的機器稱為虛擬機器器;把由硬體和韌體實現的機器稱為實際機器。
高階語言的翻譯程式有編譯程式和解釋程式兩種。
計算機系統的層次結構從低到高:
(1)微程式機器(第0級)、
(2)傳統機器(第1級)、
(3)作業系統機器(第2級)、
(4)組合語言機器(第3級)、
(5)高階語言機器(第4級)、
(6)應用語言機器(第5級)。

在計算機技術中,一種本來存在的事物或屬性,從某種角度看卻好像不存在,稱為透明性。
一個完整的計算機系統由硬體和軟體兩大部分組成。
計算機硬體由運算器、控制器、儲存器、輸入裝置和輸出裝置五大部分組成。
儲存器由記憶體(cache,主存(ROM,RAM))和輔存組成。
主機由CPU(控制器、運算器、cache)和記憶體組成。
輔存又叫外存。輔存中的資訊既可以讀出又可以寫入,所以輔存是輸入輸出裝置。
輸入裝置、輸出裝置和輔助儲存器都位於主機之外,稱為外圍裝置,簡稱外設。由於外設的作用是完成輸入輸出操作,所以外設又稱IO裝置。
系統匯流排包括地址匯流排、資料匯流排、控制匯流排。
運算器由ALU(核心)、GR、PSW暫存器組成。
控制器由PC、IR、指令譯碼器、時序產生器和操作控制器組成。
系統軟體包括:

(1)語言處理程式、
(2)作業系統、
(3)服務性程式、
(4)資料庫管理系統。

邏輯等價性:軟體和硬體在邏輯功能上是等效的,同一功能既可以用軟體也可以用硬體或韌體實現。從原理上講,軟體實現的功能完全可以用硬體或韌體完成,同樣,硬體實現的邏輯功能也可以用軟體完成。
用硬體實現的功能有較高的執行速度,成本也相對較高,而且硬體也不易更改,靈活性也較差。通常硬體實現一些最基本的功能,軟體實現一些比較複雜的功能。
運算方法和運算器

符號位相加向前產生的進位要丟掉。
正溢:兩個正數相加,若運算結果大於機器所能表示的最大正數。
負溢:兩個負數相加,若運算結果小於機器所能表示的最小負數。
定點數(定點整數、定點小數)判斷溢位方法:

單符號位法。在同符號數相加時,結果的符號位與被加數和加數的符號位相異時才發生溢位。
進位判斷法。當符號位向前產生的進位值與尾數最高位向前產生的進位值相異時才發生溢位。
雙符號位法。將數的兩個符號位都看作是數的一部分參與運算,運算結果的最高符號位向前產生的進位要丟掉。若運算結果的雙符號位相同,即00,11時,表示結果沒有發生溢位;若運算結果的雙符號位不同,即01,10時,運算結果發生溢位。01表示正溢,10表示負溢。

原碼一位乘法:兩個n位小數相乘,要進行n次加、n次右移。
 邏輯非就是按位求反。(注意邏輯非的符號)
邏輯加就是邏輯或。(注意有兩種符號)
邏輯乘就是邏輯與。(注意有兩種符號)
碼距:根據任意兩個合法碼之間至少有幾個二進位制位不相同而確定的。若任意兩個合法碼之間僅有一位不同,則碼距為1.
合理增大碼距,就能提高發現錯誤的能力。
奇偶校驗碼是一種開銷最小,能發現資料中一位出錯情況的編碼,常用於儲存器的讀寫檢查。
實現原理:在每組程式碼程式碼中增加一個冗餘位,使碼距由1到2.如果合法編碼中有奇數個位發生了錯誤,則該編碼成為非法編碼。增加的冗餘位稱為奇偶校驗位。

奇偶校驗碼只能發現一位錯或奇數個位錯,但不能確定是哪一位,因此沒有糾錯能力。不能發現偶數個位錯。

儲存系統

儲存器用來存放程式和資料。
儲存元(儲存位元)可以儲存一位二進位制程式碼。這個二進位制程式碼是儲存器中最小的儲存單元。
若干個儲存位元組成一個儲存單元,一個儲存單元可以儲存一個機器字或一個位元組。存放一個機器字的儲存單元是字儲存單元,存放一個位元組的儲存單元是位元組儲存單元。對應的儲存單元地址稱為字地址和位元組地址。
儲存器分類:

按儲存介質分:半導體儲存器(主存)、磁表面儲存器(磁碟)、光碟儲存器(CD)。
按存取方式分:隨機儲存器(半導體儲存器)、順序儲存器(磁帶)、半順序儲存器(磁碟)。
按讀寫功能分:只讀儲存器(ROM)、讀寫儲存器(RAM)。
半導體儲存器按讀寫功能分:ROM、RAM
按資訊的可儲存性分:易失性儲存器(RAM)、非易失性儲存器(ROM)。
按在計算機中的作用分:主存、快取、輔存、控制儲存器

儲存層次設計的主要依據是程式的區域性性原理。包括時間區域性性和空間區域性性。
三級儲存層次:cache、主存、輔存。
RAM按在執行中能否長時間儲存資訊分SRAM和DRAM。(注意:當掉電時,儲存的資訊都消失,是易失性儲存器。)
SRAM利用雙穩態觸發器儲存資訊,只要不斷電,資訊不會丟失。
DRAM利用電容儲存電荷儲存資訊,要定期給電容充電才能儲存資訊。
SRAM速度快,但是整合度低,功耗大。DRAM相反。
MROM:掩膜式ROM
PROM:可程式設計ROM
EPROM:紫外線擦除可程式設計ROM
EEPROM:電擦除可程式設計ROM
半導體儲存器的容量擴充套件方法:字擴充套件法、位擴充套件法、字位擴充套件法
位擴充套件法:用多個儲存器晶片對字長進行擴充。
字擴充套件法:增加儲存器中的字的數量。
高速儲存器有雙埠RAM(按地址訪問)、多模組交叉儲存器(按地址訪問)、相聯儲存器(按內容訪問)。都可以提高CPU和主存之間的資料傳輸速率。
雙埠RAM同一儲存器有兩組相互獨立的讀寫控制電路。由於並行的獨立操作,因此是一種高速儲存器。
多模組交叉儲存器實現流水式並行存取提高儲存器頻寬。(各模組並行操作。)
儲存器模組的兩種組織方式:順序方式、交叉方式。
相聯儲存器的基本原理是把儲存單元所存內容的某一部分作為檢索項,去檢索該儲存器,把符合的儲存單元內容讀入讀出。
cache從功能上看,是主存的緩衝儲存器,由高速的SRAM組成,全部功能由硬體實現。Cache對系統程式設計師和應用程式設計師都是透明的。
CPU和cache之間的資料交換以字為單位,cache和主存之間資料交換以塊為單位。
重點:cache的工作過程。每當給出一個主存地址進行訪存時,都必須通過主存—cache地址映像變換機構判斷該訪問字是否已在cache中。如果在cache中(cache命中),則地址映像變換機構將主存地址變換成cache地址去訪問cache;如果不在cache中(cache不命中),則產生cache塊失效,此時就需要從訪問主存的通路中把塊調入cache,並直接送往處理機。如果cache已經裝不進了,則發生cache塊衝突,就需要使用相應的替換演算法調出塊,並修改地址映像表。
在有cache的主存系統中都採用多模組交叉儲存器。
cache訪存的優先順序高於通道和CPU。
cache效能引數計算!
cache和主存的地址映像變換(理解)

全相聯映像(硬體自動完成):主存中的任一塊可以被放置到cache中的任意一個位置。衝突概率最低。Cache空間利用率最高。
直接映像(硬體自動完成):主存中的每一塊只能映像到cache的唯一一個位置。把主存空間按cache的空間分成區。衝突概率很高。Cache空間利用率很低。
組相聯映像:組間直接映像、組內全相聯。
指令系統

指令系統效能要求

完備性
有效性
規整性
相容性

按照指令地址碼個數不同,分為零地址指令、一地址指令、二地址指令、三地址指令
操作碼的位數決定了不同功能指令的多少。位數越多,所能表示的操作功能越豐富。
指令的操作碼兩種編碼格式:等長操作碼、變長操作碼(哈夫曼編碼、擴充套件操作碼)
定址方式是指尋找指令或運算元有效地址的方式方法。
指令的定址方式(簡單)   資料的定址方式(複雜)
指令的定址方式

順序定址方式:當執行一段程式時,要執行的下一條指令便是程式當中正在執行指令的下一條(PC)。
跳躍定址方式

運算元的定址方式

隱含定址
立即定址
暫存器直接定址
暫存器間接定址
直接定址
間接定址
相對定址
基址定址
變址定址
自動增量減量定址
堆疊定址

隱含定址:有些型別的指令不是明顯給出運算元的地址,而是隱含地由累加器給出運算元。
立即定址:指令的形式地址給出的是運算元本身。
暫存器直接定址:理解
暫存器間接定址:暫存器的內容為運算元在主存中的有效地址,由暫存器的內容訪存所得到的內容才是真正的運算元。(和暫存器直接定址比較,暫存器直接定址的運算元在暫存器中;暫存器間接定址的運算元在記憶體中。)
直接定址:理解
間接定址:理解
相對定址:相對於PC而言的。運算元在主存中的有效地址等於PC的內容加上指令中的位移量。
基址定址:對於基址暫存器而言的。運算元在主存中的有效地址等於基址暫存器的內容加上指令中的位移量。
變址定址:對於變址暫存器而言的。運算元在主存中的有效地址等於變址暫存器的內容加上指令中的位移量。

CISC大多數採用微程式控制。CISC中的各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,僅佔指令總數的20%,但在程式中出現的頻度卻佔80%,這意味著由硬體支援的指令約有80%是很少使用的。
RISC通過精簡指令系統來簡化控制器設計,增加片內暫存器和快取記憶體的容量,以及增加浮點運算部件和採用流水線技術提高處理器效能。
RISC以硬連線控制為主。
退耦的CISC/RISC既不採用純RISC,也不採用經典的CISC,而是採用混合式的CISC/RISC體系結構。
在指令系統的發展過程中出現過兩種截然不同的方向,即CISC和RISC,他們都具有各自的優缺點。隨著退耦CISC/RISC和後RISC出現,關於RISC和CISC兩種體系結構效能好壞已經在很大程度上平息下來了,兩者都從對方陣營參考了很多概念和技術,兩種技術逐漸交融,結構上的區別也逐漸模糊。

中央處理器

程式一旦裝入記憶體,中央處理器就能自動地、逐條地取指令、分析指令和執行指令。
CPU基本功能:

指令控制
操作控制
時間控制
資料加工(這是最基本的功能)

CPU基本組成

控制器
運算器
Cache,有指令cache和資料cache

CPU中的主要暫存器

PC。程式計數器、指令地址暫存器、指令指標。
IR。指令暫存器。
AR。資料地址暫存器
GR。通用暫存器
PSW。狀態字暫存器

CPU取指令時,將PC的內容送入指令cache,經地址譯碼後選中相應的儲存單元,取出一條指令並將取出的指令程式碼送往IR,同時自動修改PC的值形成下一條指令的地址。
指令暫存器的作用是儲存當前正在執行的一條指令。當解釋一條指令時,首先根據PC的值從指令cache中取出一條指令,並將其送往IR。在這條指令執行的過程中,指令暫存器的內容始終保持不變,直到有新的指令被取出並送往IR為止。
指令譯碼器用來完成對指令暫存器中的操作碼欄位進行譯碼。
AR儲存當前CPU所訪問的資料cache單元的地址。
產生控制訊號並建立正確資料通路的部件叫做操作控制器。根據指令的操作碼和時序訊號,產生各種具有時間標誌的操作控制訊號,以建立正確的資料通路。
操作控制訊號的形成方法:

微程式設計方法(微程式控制器)
組合邏輯設計方法(硬連線控制器)

時序產生器產生一組時序訊號,及一系列的節拍電位訊號和節拍脈衝訊號。作用就是對各種操作控制訊號實施時間上的控制。
指令週期是指從CPU送出取指令地址到取出本條指令並執行完畢所花的時間。
取出和執行任何一條指令所需的最短時間為兩個CPU週期。
CPU週期又叫機器週期,由若干個時鐘週期組成。時鐘週期通常又稱節拍脈衝週期或T週期,是處理操作的最基本單位。
用方框圖語言表示指令週期。一個方框表示一個CPU週期。
在相同的CPU結構上解釋指令,所有指令的取值週期是相同的。
從時間上看,取指令事件發生在指令週期的第一個CPU週期內,即發生在取值週期,而取資料事件發生在取值週期之後的幾個CPU週期內,即發生在執行週期。

從空間上看,如果取出的程式碼是指令,一定送往指令暫存器,如果取出的程式碼是資料,則一定送往通用暫存器或地址暫存器。

時序訊號最基本的體制是電位—脈衝制。
一個節拍電位表示一個CPU週期的時間,包含若干個節拍脈衝。
實現時序控制所需的時序訊號,主要包含節拍電位和節拍脈衝。它們構成了CPU的時序系統。
形成控制不同操作序列時序訊號的方法,稱為控制器的控制方式。
控制器的控制方式:

同步控制方式
非同步控制方式
聯合控制方式
人工控制方式

同步控制方式又稱固定時序控制方式。基本思想是:選取部件中最長的操作時間作為統一的CPU週期時間,使所有的部件都能在一個CPU週期內啟動並完成操作,同時,以最複雜指令所需的CPU週期數為標準作為所有指令的解釋時間。即指令中所有指令的解釋具有相同的CPU週期數和時鐘週期數。
非同步控制方式又稱可變時序控制方式。基本思想是:系統不設立統一的CPU週期數和時鐘週期數,各部件按本身的速度需要佔用時間。
微程式控制基本思想:把操作控制訊號編成所謂的“微指令”,存放到一個只讀儲存器裡。當機器執行時,一條一條讀出這些微指令,從而產生全機所需要的各種操作控制訊號,控制相應的執行部件完成規定的操作。
控制部件與執行部件的聯絡有兩種,一種是通過控制線,一種是通過狀態線。
微命令:控制部件通過控制線發往執行部件的各種控制命令。
微操作:執行部件在微命令的控制下所進行的操作。
微操作分為相容性和相斥性。
在機器的一個CPU週期內,一組實現一定操作功能的微命令的組合,構成一條微指令。
在一個CPU週期內完成的操作功能由一條微指令來實現。
微指令組成

操作控制欄位
順序控制欄位:P欄位和直接微地址組成

一條機器指令的功能是由若干條微指令組成的序列來實現的。這個微指令序列又叫微程式。
確定微地址方法:

計數器方式
多路轉移方式(用組合邏輯方法設計)

微程式控制器組成

控制儲存器
微指令暫存器(微地址暫存器、微命令暫存器)
地址轉移邏輯

控制儲存器存放指令系統的所有微程式,是隻讀儲存器。
微指令暫存器用來存放控制儲存器讀出的一條微指令資訊。其中,微地址暫存器決定將要訪問的下一條微指令的微地址。微命令暫存器儲存一條微命令的操作控制欄位和P欄位。
機器指令和微指令關係:

一條機器指令的功能由若干條微指令組成的序列來實現。
機器指令存放在記憶體中,微指令固化在控制儲存器中。
每一個CPU週期對應一條微指令。

微命令的編碼方法:

直接表示法
編碼表示法(注意:只能表示2的n次減一)
混合表示法

微指令格式:

水平型微指令
垂直型微指令

水平型微指令:在一個CPU週期內,一次能定義並執行多個並行操作微命令的微指令。
垂直型微指令:每條垂直型微指令只能完成一個操作,只包含一個或兩個微操作。
用垂直型微指令編寫的微程式比用水平型微指令編寫的微程式要長的多。是採用較長的微程式去換取較短的微指令結構。
水平型微指令執行一條指令的時間短,垂直型微指令執行的時間長。
微程式設計技術:

靜態微程式設計
動態微程式設計

微程式控制器的控制功能是在控制儲存器和微指令暫存器直接控制下實現的,而硬連線控制器則由邏輯閘組合實現的(閘電路、觸發器)。
並行性的兩重含義:

同時性
併發性

顆粒度用來衡量軟體程序所含計算量的大小,最簡單的方法是用程式段的指令條數來表示。
顆粒度的大小分為

細粒度:小於500
中粒度:500~2000
粗粒度:大於2000

並行性的等級劃分(按顆粒度大小不同):

作業級
任務級
例行程式或子程式級
迴圈和迭代級
語句和指令級

層次越高的並行處理的粒度就越粗;低層次上的並行處理粒度較細。
並行處理技術:

時間並行
空間並行
時間並行 空間並行

指令的解釋方式:

順序解釋方式
流水解釋方式

流水線的三個階段:

建立
滿載
排空

流水解釋的三種相關:

資源相關
資料相關
控制相關

56.計算吞吐率、加速比、效率。
匯流排結構

匯流排不僅僅是一組傳輸線,還包括一套管理資訊傳輸的規則(協議)。
匯流排的特性:

物理特性
功能特性
電氣特性
時間特性

地址匯流排的寬度指明瞭匯流排能夠直接訪問儲存器的地址空間範圍。
資料匯流排的寬度指明瞭訪問一次儲存器或外設時能夠交換資料的位數。
匯流排相對於CPU的位置分為:

內部匯流排
外部匯流排

外部匯流排按功用劃分:

區域性匯流排
系統匯流排
通訊匯流排

匯流排按功能劃分為:

地址匯流排
資料匯流排
控制匯流排

按匯流排在微機中的位置分:

機內匯流排
機外匯流排

按資料在匯流排中傳輸位數分:

序列匯流排
並行匯流排

匯流排按資訊傳送方向分:

單向匯流排
雙向匯流排

輸入輸出系統

輸入輸出系統包括:

輸入輸出裝置
裝置控制器
輸入輸出操作有關的軟硬體

為事件服務的程式稱為中斷服務程式或中斷處理程式。
中斷是一個過程,是CPU在執行當前程式的過程中因硬體或軟體的原因插入了另一段程式執行的過程。硬體原因引起的中斷是不可預測的,隨機的。而軟中斷是事先安排的。
凡是能引起中斷的裝置或事件都是中斷源。
中斷源向中斷系統發出請求中斷的申請,稱中斷請求。
中斷過程的4個階段:

中斷請求
中斷響應
中斷處理
中斷返回

在處理某級中的某個中斷請求時,與它同級的或比它低階的中斷請求是不能中斷它的處理的,只有比它高階的中斷請求才能中斷其處理過程。等響應和處理完後,再繼續處理原先的那個中斷請求。
沒有獲得允許的中斷請求稱為中斷被遮蔽。
滑鼠和鍵盤以中斷方式連線。

github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!