系統架構設計師教程(第四版)筆記整理(一)


第一章  計算機組成與體系結構

系統構建於硬件與操作系統之上,對計算機底層原理有一定認識后,我們可以對安全與性能有更好的了解、認識,方便優化。

 

1.1 計算機系統組成

  計算機系統是一個硬件和軟件的綜合體,可看做是按功能划分的多級層次結構。

 

  1.1.1 計算機硬件的組成

    硬件通常指能看得見、摸得着的設備實體。

    原始的馮-諾依曼 計算機在結構上以運算器為中心,現在轉向以存儲器為中心了。

 

 

    (1)控制器的組成:

 

1>.程序計數器PC(program counter) 

 詳細解釋摘自百度

程序計數器是用於存放下一條指令所在單元的地址的地方。
當執行一條指令時,首先需要根據PC中存放的指令地址,將指令由內存取到 指令寄存器中,此過程稱為“取指令”。與此同時,PC中的地址或自動加1或由轉移指針給出下一條指令的地址。此后經過分析指令,執行指令。完成第一條指令的執行,而后根據PC取出第二條指令的地址,如此循環,執行每一條指令。
 
程序計數器是計算機 處理器中的 寄存器,它包含當前正在執行的指令的地址(位置)。當每個 指令被獲取,程序計數器的存儲地址加一。在每個指令被獲取之后,程序計數器指向順序中的下一個指令。當計算機重啟或復位時,程序計數器通常恢復到 [1]  零。
 
2>.指令寄存器IR (Instruction Register):存儲即將執行的指令
3>.指令譯碼器ID     (Instruction Decoder)  :對指令中的操作碼字段進行分析解釋
 
計算機能且只能執行 "指令"。指令由操作碼地址碼組成。
操作碼表示要執行的操作性質,即執行什么操作,或做什么;
地址碼是操作碼執行時的操作對象的地址。
 
計算機執行一條指定的指令時,必須首先分析這條指令的操作碼是什么,以決定操作的性質和方法,
然后才能控制計算機其他各部件協同完成指令表達的功能。這個分析工作由譯碼器來完成。 
4>.時序部件:提供時序控制信號
 
(2)運算器,運算器也稱為算術邏輯單元(ArithmeticandLogicUnit  ,ALU), 主要功能時在控制器的控制下完成各種算術運算和邏輯運算。
 
運算器組成包含:
1>.算術邏輯單元ALU:數據的算術運算和邏輯運算
2>.累加寄存器AC (accumulator ):通用寄存器,為ALU提供一個工作區,用於暫存數據
3>.數據緩沖寄存器DR(Data Register):寫內存時,暫存指令或數據
4>.狀態條件寄存器PSW:存狀態標志與控制標志(也有的,將他歸類為:控制器)
 
(3)主存儲器 (也稱為內存儲器,內存或者主存)。
(4)輔助存儲器(也稱為外存儲器,外存或者輔存),存儲需要長期保存的各種信息
(5)輸入設備
(6)輸出設備
  

   1.1.2 計算機系統結構的分類

  計算機的發展經歷了電子管、晶體管時代、集成電路時代(中小規模、大規模、超大規模、甚大規模、極大規模)。
 
1.存儲程序的概念
  1946年6月馮-諾依曼等人提出,可概括為:
  (1)計算機(指硬件)應由運算器、存儲器、控制器、輸入設備、輸出設備五大基本部件組成。
  (2)計算機內部采用二進制來表示指令和數據
  (3)將編好的程序和原始數據事先存入存儲器中,然后再啟動計算機工作。
 
馮-諾依曼型計算機的主要弱點:存儲器訪問
通過百度文庫檢索到的這篇文章,觀點:認為馮-諾依曼結構體系的瓶頸主要是因為:串性
 
https://wenku.baidu.com/view/7c8bd42f2af90242a895e58d.html
  目前出現的一些突破存儲程序控制的計算機,統稱為:非馮-諾依曼型計算機,
例如:數據驅動的數據流計算機、需求驅動的歸約計算機和模式匹配驅動的智能計算機等。
 
2.Flynn分類
 1966年,Michael.J.Flynn 提出根據指令流-數據流的多倍性特征對計算機系統進行分類(通常稱為Flynn分類法),有關定義:
(1)指令流:指機器執行的指令序列;
(2)數據流:指由指令流調用的數據序列,包括輸入數據和中間結果,但不包括輸出數據。
 
Flynn 根據不同的指令流-數據流組織方式,把計算機系統分成四類:
(1)單指令流單數據流(Single Instruction stream and Single Data stream ,SISD)
    SISD就是傳統的順序執行的單處理計算機,其指令部件每次只對一條指令進行譯碼,並只對一個操作部件分配數據。
(2)單指令流多數據流(Single Instruction stream  and Multiple Data stream,SIMD)
    SIMD以並行處理機(矩陣處理機)為代表,並行處理機包括多個重復的處理單元,由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同數據。
(3)多指令流單數據流(Multiple Instruction stream and Single Data stream,MISD)
    MISD具有n個處理單元,按n條不同指令的要求對同一數據流及中間結果進行不同的處理。一個處理單元的輸出又作為另一個處理單元的輸入。這類系統實際上很少見到。有文獻把流水線看作多個指令部件,稱流水線計算機是MISD。
 
(4)多指令流多數據流(Multiple Instruction stream and Multiple Data stream ,MIMD)
    MIMD 是指能實現作業、任務、指令等各級全面並行的多機系統。如多核處理器、多處理機屬於MIMD。

 

1.1.3 復雜指令集系統與精簡指令集系統

    計算機系統結構發展的過程中,指令系統的優化設計有兩個截然相反的方向,
 
一個是增強指令的功能,設置一些功能復雜的指令,把一些原來由軟件實現的、常用的功能改用硬件的指令系統來實現,這種計算機系統 統稱為復雜指令系統計算機(Complex Instruction Set Computer ,CISC)
 
另一個是盡量簡化指令功能,只保留那些功能簡單,能在一個節拍內執行完成指令,較復雜的功能用一段子程序來實現,這種計算機系統統稱為精簡指令系統計算機
(Reduced Instruction Set Computer,RISC)
 
1.CISC指令系統的特點
  CISC指令系統的主要特點:
  (1)指令數量眾多。指令系統擁有大量的指令,通常有100~250條。
  (2)指令使用頻率相差懸殊。最常使用的是一些比較簡單的指令,僅占指令總數的20%,但在程序中出現的頻率缺占80%。而大部分復雜指令卻很少使用。
  (3)支持很多種尋址方式。支持的尋址方式通常為5~20種。
  (4)變長的指令。指令長度不是固定的,變長的指令增加指令譯碼電路的復雜性。
  (5)指令可以對主存單元中的數據直接進行處理。
    典型的CISC 通常都有指令能夠直接對主存單元中的數據進行處理,其執行速度較慢。
  (6)以微程序控制為主。CISC的指令系統很復雜,難以用 硬布線邏輯(組合邏輯)電路實現控制器,通常采用微程序控制。
  
https://baike.baidu.com/item/%E7%A1%AC%E5%B8%83%E7%BA%BF%E6%8E%A7%E5%88%B6%E5%99%A8/5791306
硬布線控制器是早期設計 計算機的一種方法。硬布線控制器是將控制部件做成產生專門固定時序 控制信號的邏輯電路,產生各種控制信號,因而又稱為組合邏輯控制器。這種邏輯電路以使用最少元件和取得最高操作速度為設計目標,因為該邏輯電路由門電路和 觸發器構成的復雜 樹型網絡,所以稱為硬布線控制器。
一旦控制部件構成后,除非重新設計和物理上對它重新布線,否則要想增加新的控制功能是不可能的。 硬布線控制器是計算機中最復雜的邏輯部件之一。
 
硬布線控制器主要由組合 邏輯網絡指令寄存器指令譯碼器、節拍電位/節拍脈沖發生器等部分組成,硬布線控制器的結構方框圖如右圖所示。其中組合邏輯網絡產生計算機所需的全部操作命令,是控制器的核心。
 

 

 
2.RISC 指令系統特點:
  RISC要求指令系統簡化,操作在單周期內完成,指令格式力求一致,尋址方式盡可能減少,並提高編譯的效率,最終達到加快機器處理速度的目的。
  RISC指令系統的主要特點:
  (1)指令數量少。優先選取使用頻率最高的一些簡單指令和一些常用指令,避免使用復雜指令。   只提供了LOAD(從存儲器中讀數)和STORE(把數據寫入存儲器)兩條指令對存儲器操作,其余所有的操作都在CPU的寄存器之間進行。
  (2)指令的尋址方式少。通常只支持 寄存器尋址方式、 立即數尋址方式和 相對尋址方式。
  (3)指令長度固定,指令格式種類少。因為RISC指令數量少、格式少、相對簡單,其指令長度固定,指令之間各字段的划分比較一致,譯碼相對容易。
  (4)以硬布線邏輯控制為主,為了提高操作的執行速度,通常采用硬布線邏輯(組合邏輯)來構建控制器
  (5)單周期指令執行,采用流水線技術。因為簡化了指令系統,很容易利用流水線技術,使得大部分指令都能在一個機器周期內完成。少數指令可能會需要多周期,例如,LOAD/STORE指令因為需要訪問存儲器,其執行時間就會長一些。
  (6)優化的編譯器:RISC的精簡指令集使編譯工作簡單化。因為指令長度固定、格式少、尋址方式少,編譯時不必在具有相似功能的許多指令中進行選擇,也不必為尋址方式的選擇而費心,同時易於實現優化,從而可以生成高效率執行的機器代碼。
  (7)CPU中的通用寄存器數量多,一般在32個以上,有的可達上千個。
 大多數RISC采用了Cache方案,使用Cache來提高取指令的速度。而且,有的RISC使用兩個獨立的Cache來改善性能。一個稱為指令Cache,另一個稱為數據Cache。這樣,取指令和取數據可以同時進行,互不干擾。
 

1.1.4總線

總線是一組能為多個部件分時共享的公共信息傳送線路。
 
共享是指總線上可以掛接多個部件,各個部件之間相互交換的信息都可以通過這組公共線路傳送;
 
分時是指同一時刻只允許有一個部件向總線發送信息,如果出現兩個或兩個以上部件同時向總線發送信息,勢必導致信息沖突。當然,在同一時刻,允許多個部件同時從總線上接收相同的信息。
 
按總線相對於CPU或其他芯片的位置可分為:內部總線和外部總線兩種。
1.在CPU內部,寄存器之間和算術邏輯部件ALU 與控制部件之間傳輸數據所用的總線稱為內部總線。
2.外部總線:指CPU與內存RAM、ROM和輸入/輸出設備接口之間進行通信的通路。
 
由於CPU通過總線實現程序取指令、內存/外設的數據交換,在CPU與外設一定的情況下,總線速度是制約計算機整體性能的最大因素。
 
按總線功能來划分,又可分為地址總線、數據總線、控制總線三類。
地址總線用來傳送地址信息,數據總線用來傳送數據信息,控制總線用來傳送各種控制信號。
 
 
 


免責聲明!

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



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