計算機組成原理——組成篇


計算機的總線

1、總線的作用及概述

解決設備間通訊問題。

總線是為了解決不同設備之間的通信問題。

總線可以連接CPU和IO設備。

 

2、總線分類:片內總線、系統總線

片內總線:連接CPU內部高速緩存、寄存器、運算單元的總線;

系統總線:數據總線、地址總線、控制總線

 

 

數據總線:雙向傳輸各個部件的數據信息;數據總線的位數(總線寬度)是數據總線的重要參數(一般於CPU位數相同)

總線如果是32位 則一次可傳遞4個字節的數據 總線如果是64位 則一次可傳遞8個字節的數據

地址總線:指定源數據或目的數據在內存中的地址;地址總線的位數和存儲單元相關

(地址總線的位數=n,尋址范圍0~2^n-1)

控制總線:控制總線是用來發出各種控制信號的傳輸線;

控制信號經由控制總線從一個組件發給另一個組件;

控制組件可以監視不同組件之間的狀態(就緒/未就緒);

3、總線的總裁:為了解決總線使用權的沖突問題。

仲裁方法有三種。(鏈式查詢、計時器定時查詢、獨立請求)

為了解決各設備之間的總線使用權問題;

鏈式查詢:各個設備與仲裁器串聯,當有設備申請總線使用權時,仲裁器發出使用許可,總是按照設備優先順序接收到信號,導致優先級高的設備總是能先獲取到使用權。

鏈式查詢的優缺點:

好處:電路復雜度低,總裁方式簡單

壞處:優先級低的設備難以獲得總線使用權

壞處:對電腦故障敏感

 

計時器定時查詢:仲裁控制器對設備標號並使用計數器累計計數,其次當控制器接收到仲裁信號后,往所有設備發出計數值,計數值與設備編號保持一致時會優先獲得使用權。

計時器查詢的工作過程:設備主要是通過設備地址與計數器進行對比的,課程使用計數器是為了方便理解,可以理解為設備有一個唯一的設備地址,將設備地址的值與計數器比較,如果一致的話,才會得到總線使用權。

 

獨立請求:每個設備均有縱線獨立連接仲裁器,可獨立向仲裁器發送和接受請求,同時接到多個請求信號時,仲裁器有權按優先級分配使用權。

獨立請求的優缺點:

好處:響應速度快,優先順序可動態改變

壞處:設備連接多,總線控制復雜

 

 

計算機的輸入輸出設備

常見的輸入輸出設備

字符輸入設備:鍵盤(薄膜鍵盤,機械鍵盤)。

圖像輸入設備:鼠標;數位板;掃描儀。

圖像輸出設備:顯示器(CRT顯示器、液晶顯示器);打印機;投影儀。

輸入輸出接口的通用設計

數據線:IO設備與主機之間進行數據交換的傳送線(單向,雙向)。

狀態線:IO設備狀態向主機報告的信號線(是否正常連接;是否被占用)。

命令線:CPU向設備發送命令的信號線(發送讀寫信號;發送啟動停止信號)。

設備選擇線:主機選擇IO設備進行操作的信號線。(對連在設備總線上進行選擇)

 

CPUIO設備的通信方法(程序中斷、DMA):

前提:CPU速度和IO設備速度不一致

程序中斷:外圍設備就緒時,向CPU發出中斷,專門電路相應中斷信號。

提供低速設備通知CPU的一種異步的方式、CPU可以高速的運轉同時兼顧低速設備的響應

第一種方法如果頻繁打斷CPU的工作,會降低其效率。

 

因此產生了第二種方法,DMA 直接存儲器訪問方法:

 

DMA:DMA(Direct Memory Access,直接存儲器訪問)。對於沒有DMA的情況,CPU可能需要被IO設備頻繁打斷,並且由CPU進行IO設備緩存與主存之間的數據拷貝,占用大量的CPU時間。對於有DMA的情況,當IO設備准備完成以后,會先通知CPU,然后后續的數據傳輸由DMA協助就可以完成,不再需要CPU的參與。

DMA的出現就是為了解決批量數據的輸入/輸出問題。DMA是指外部設備不通過CPU而直接與系統內存交換數據的接口技術。這樣數據的傳送速度就取決於存儲器和外設的工作速度。

通常系統總線是由CPU管理的,在DMA方式時,就希望CPU把這些總線讓出來,即CPU連到這些總線上的線處於第三態(高阻狀態),而由DMA控制器接管,控制傳送的字節數,判斷DMA是否結束,以及發出DMA結束信號。

因此DMA控制器必須有以下功能:

1、    能向CPU發出系統保持(HOLD)信號,提出總線接管請求;

2、    當CPU發出允許接管信號后,負責對總線的控制,進入DMA方式;

3、    能對存儲器尋址及能修改地址指針,實現對內存的讀寫;

4、    能決定本次DMA傳送的字節數,判斷DMA傳送是否借宿。

5、    發出DMA結束信號,使CPU恢復正常工作

 

 

計算機儲存器概述

存儲器的分類

存儲介質分類

  • 半導體存儲器:內存、u盤、固態硬盤等
  • 磁存儲器:磁帶、磁盤等

存取方式分類

  • 隨機存儲器(RAM):隨機讀取、與位置無關
  • 串存儲器: 與位置有關、按順序查找
  • 只讀存儲器(ROM):只讀不寫

存儲器的層次結構

讀寫速度

存儲容量

價格

容量+價格=>位價:每比特位價格

 

 

緩存:速度快 位價高

主存:速度適中 位價適中

輔存:速度慢 位價低

 

緩存-主存層次

原理:局部性原理

    CPU訪問存儲器時,無論是存取指令還是存取數據,所訪問的存儲單元都是趨於聚集在一個較小的連續區域中

實現:在CPU與主存之間增加一層速度快容量小的緩存

目的:解決主存速度不足的問題

主存-輔存層次

原理:局部性的原理

實現:主存之外增加輔助存儲器(磁盤、SD卡、U盤等)

目的:解決主存容量不足的問題

 

 

 

計算機的主存儲器與副存儲

主存儲器——內存RAM(隨機存儲器)

 

 

工作原理:RAM,(隨機存儲器;Random Access Memory)通過電容存儲數據,必須每隔一段時間刷新一次,如果斷電,那么一段時間后將丟失所有數據。

內存與CPU的交互:

 

 

操作系統位數與內存大小關系

首先,2是從比特位來的,一個比特位可以表示0和1。

那么,對於32位地址,就有2^32次方的尋址范圍可以表示,換算成數值就是4*2^30次方,指的是尋址范圍,每個地址按字尋址是1byte,所以總的過程就是4 * 1024 * 1024 * 1024 * 1Byte = 4G。

32位CPU的意思是,一次CPU尋址,可以尋址32個比特位長度的地址,也就是最多2^32個數據地址,這里面,對於每個地址,尋址數據大小是一個字節1Byte,可以得到4G的結果;因此,對於32位CPU,安裝超過4G的物理內存,都是浪費的。

 

 

 

輔助存儲器——磁盤

 

 

工作原理:表面是可磁化的硬磁特性材料,移動磁頭徑向運動讀取磁道信息。

磁盤內容讀取主要算法

  • 先來先服務算法
  • 最短尋道時間優先
  • 掃描算法(電梯算法)
  • 循環掃描算法

例題:假如磁盤最外圈磁道為1,最內圈磁道為5,磁頭現在在4磁道,且磁頭移動向外,求不同尋道算法的磁頭移動順序,假設磁頭需要讀取的順序為142315.

先來先服務算法(FCFS:按順序訪問進程的磁道讀寫需求。讀取順序為142315.

最短尋道時間優先算法(SSTF:與磁頭當前位置有關,優先訪問離磁頭最近的磁道。讀取順序為452311

掃描算法(電梯算法/SCAN):每次只往一個方向移動,到達一個方向的盡頭后反方向移動。讀取順序為432115

循環掃描算法(C-SCAN:只往一個方向移動。讀取順序為451123

計算機的高速緩存

高速緩存的工作原理

前提知識之主存存取數據的方法

1. :指存放在一個存儲單元中的二進制代碼組合

2. 字塊:存儲在連續的存儲單元中而被看作是一個單元的一組字

 

 

例題:假設主存用戶空間容量為4G,字塊大小為4M,字長為32位,則對於字地址中的塊地址m和塊內地址b的位數,至少應該是多少?

解: 

高速緩存的內部存儲結構與主存的邏輯結構非常類似,緩沖容量較小,緩沖的速度更快

 

CPU可以從高速緩存和主存中獲取數據,前者的效率比后者高。

命中率

  • 命中率是衡量緩存的重要性能指標
  • 理論上CPU每次都能從高速緩存存取數據時候,命中率為1

 

例題

假設CPU在執行某段程序時,共訪問了Cache命中2000次,訪問主存50次,已知Cache的存取時間為50ns,主存的存取時間為200ns,求Cache-主存系統的命中率、訪問效率和平均訪問時間。

:命中率、訪問效率、平均訪問時間分別是0.97、91.7%、54.5ns

 

 

 

高速緩沖的替換策略

替換時機:高速緩存內沒有需要運行的數據,就會從主存內拿數據。

 

替換算法:隨機算法、先進先出算法(FIFO)、最不經常使用算法(LFU)、最近最少使用算法(LRU

  • 隨機算法(RAND:每一次需要發生替換,隨機選取一個高速緩存的位置,然后把相關的內容替換掉
  • 先進先出算法(FIFO):把高速緩存看做是一個先進先出的隊列,優先替換最先進入的字塊

 

  • 最不經常使用算法(LFU):優先淘汰掉最不經常使用的字快,需要額外的空間記錄字塊的使用頻率

 

 

  • 最近最少使用算法(LRU):優先淘汰一段時間內沒有使用的字塊;有多種實現方法,一般是用雙向列表;把當前訪問節點置與鏈表前面(保證鏈表頭部節點是最近使用的)

 

 

計算機的指令系統

機器指令的形式

機器指令主要由兩部分組成:操作碼.地址碼

操作碼:操作碼指明指令所要完成的操作;操作碼的位數反映了機器的操作種類(比如有8位,那么就是2^8 = 256種操作)

地址碼:直接給出操作數或者操作數的地址;分三地址指令二地址指令一地址指令零地址指令

 

三地址指令:   

                

二地址指令:

一地址指令: 

零地址指令:

機器指令的操作類型(數據傳輸、算數邏輯操作、位移操作、控制指令)

1.         數據傳輸

  • 寄存器之間、寄存器與存儲單元、存儲單元之間的傳送(存儲單元可以是主存,高速緩存,硬盤等等...)
  • 數據讀寫、交換地址數據、清零置一等操作

2.         算數邏輯操作

  • 操作數之間的加減乘除的運算
  • 操作數的與或非等邏輯位運算

3.         位移操作

  • 數據左移(乘2)、數據右移(除2)
  • 完成數據在算術邏輯單元的必要操作

4.         控制指令

  • 等待、停機、空操作、中斷等

 

 

機器指令的尋址方式(指令尋址、數據尋址)

指令尋址(順序尋址、跳躍尋址)

1.        順序尋址:通過程序計數器PC加1,自動形成下一條指令的地址

 

2.  跳躍尋址:通過轉移指令實現

 

 

數據尋址(立即尋址、直接尋址、間接尋址)

1.        立即尋址:機器指令內包含了操作的數據,無需訪問存儲器

2.        直接尋址:機器指令內包含了數據在內存中的地址,無需計算數據地址

3.        間接尋址:機器指令內包含了數據地址在內存的地址,通過內存地址找到真正的數據。需要訪問一次或多次主存來獲取操作數

 

數據尋址的優缺點

 

計算機的控制器

控制器是協調和控制計算機運行的

程序計數器

  1. 用來存儲下一條指令的地址
  2. 循環從程序計數器中拿出指令
  3. 當指令被拿出時指向下一條指令

時序發生器

  1. 電氣工程領域,用於發送時序脈沖
  2. CPU依據不同的時序脈沖有節奏的進行工作

指令譯碼器

  1. 是控制器的主要部件之一
  2. 計算機指令有操作碼和地址碼組成
  3. 翻譯操作碼對應的操作以及控制傳輸地址碼對應的數據

指令寄存器

  1. 也是控制器的主要部件之一
  2. 從主存或高速緩存取計算機指令

主存地址寄存器

  1. 保存當前CPU正要訪問的單元的地址

主存數據寄存器

  1. 保存當前CPU正要讀或寫的主存數據

通用寄存器

  1. 暫時存放或存送數據或指令
  2. 可保存ALU的運算中間的結果
  3. 容量比一般專業寄存器要大

 

 

計算機的運算器

運算器時用來進行數據運算加工的

數據緩存器

  1. 分為輸入緩沖和輸出緩沖
  2. 輸入緩沖暫時存放外設送過來的數據
  3. 輸出緩沖暫時存放送往外設的數據

ALU

  1. ALU:算術邏輯單元,是運算器的主要組成
  2. 常見的位運算(左右移、與、非)
  3. 算術運算(加減乘除)

 

狀態字寄存器

  1. 存放運算狀態(條件碼、進位、溢出、結果正負等)
  2. 存放運算控制信息(調試跟蹤標記位、允許中斷位等)

通用寄存器

  1. 用於暫時存放或傳送數據或指令
  2. 可保存ALU的運算中間結果
  3. 容量比一般專用寄存器要大

 

CPU指令執行的過程

由於是在cpu內執行的,所以涉及的設備有: 控制器(程序計數器,指令譯碼器,時序發生器,指令寄存器)

高速緩存(數據緩存器,指令緩存器),運算器(通用寄存器,數據寄存器,狀態寄存器),他們是由片內總線連接的;

 

 

詳細過程是:

首先,系統operator(自己)調用系統功能的時候,會生成指令,和數據,然后它們緩存入指令緩存和數據緩存中(例:數據緩存有"地址"1,數據120;

 

指令緩存有地址101,操作碼MOV,地址碼RO,R1),接着程序計數器會把指令緩存中,指令的地址記錄下來(例:101), 指令會通過片內總線傳輸到指令寄存器(操作碼,地址碼),接着又從指令寄存器發送到指令譯碼器中,之后程序計數器會+1(例:變成102), 之后指令譯碼器譯碼完成(把匯編語言變成機器語言),之后其通過片內總線發送控制信號給運算器進行運算:

 

例如,把指令緩存中,地址101,操作碼MOV,地址碼R0,R1的數據中的R1,加載到ALU(算數邏輯單元,是邏輯門),再通過片內總線的數據總線,傳入數據緩存器,然后把R1數據覆蓋掉R0,記錄運算狀態(狀態寄存器)並送出運算結果給UI至此,就完成了這條指令的操作,CPU會執行下一條指令(如果有發起操作)

CPU的流水線設計

執行過程中,控制器和運算器不能同時工作,所以CPU綜合利用率不高所以需要流水線設計

 

可以看到,非流水線情況,指令只能一條一條被執行,而流水線的情況,系統可以並發執行指令(不等前一條結束,后一條指令就可以執行),從而大大增加執行效率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM