第 1 章 計算機組成與體系結構 1.1計算機系統組成

1 計算機組成與體系結構安全

 

 

也許有人認爲系統架構設計師不須要硬件或計算機底層原理的知識。由於這個層面的一些處理每每已經封裝好,不須要架構師從新進行規劃。然而,事實並不是如此,系統構建 硬件與操做系統之上,若是咱們不對計算機底層原理有必定認識,會致使一系列安全與性能問題。本章將從計算機的組成,計算機的指令系統,存儲系統等方面展開論述。架構

 

1.1 計算機系統組成性能

 

計算機系統是一個硬件和軟件的綜合體,能夠把它當作按功能劃分的多級層次結構。優化

 

 

1.1.1 計算機硬件的組成spa

 

 

硬件一般是指一切看得見,摸獲得的設備實體。原始的馮•諾依曼(VonNeumann)計算機在結構上是以運算器爲中心的,而發展到如今,已轉向以存儲器爲中心了。圖 1-1 所示爲計算機最基本的組成框圖。操作系統

 

 

(1) 控制器。控制器是分析和執行指令的部件,也是統一指揮並控制計算機各部件協調工做的中心部件,所依據的是機器指令。控制器的組成包含以下。架構設計

① 程序計數器 PC:存儲下一條要執行指令的地址;設計

 

② 指令寄存器 IR:存儲即將執行的指令;blog

 

③ 指令譯碼器 ID:對指令中的操做碼字段進行分析解釋;接口

 

④ 時序部件:提供時序控制信號。

 

(2) 運算器。運算器也稱爲算術邏輯單元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各類算術運算和邏輯運算。運算器的組成包含以下。

① 算術邏輯單元 ALU:數據的算術運算和邏輯運算;

 

② 累加寄存器 AC:通用寄存器,爲 ALU 提供一個工做區,用在暫存數據;

 

③ 數據緩衝寄存器 DR:寫內存時,暫存指令或數據;

 

④ 狀態條件寄存器 PSW:存狀態標誌與控制標誌(爭議點:也有將其歸爲控制器的)。

 

(3) 主存儲器。主存儲器也稱爲內存儲器(一般簡稱爲「內存」或「主存」)。存儲現場操做的信息與中間結果,包括機器指令和數據。

(4) 輔助存儲器。輔助存儲器也稱爲外存儲器,一般簡稱爲外存或輔存。存儲須要長期保存的各類信息。

(5) 輸入設備。輸入設備的任務是把人們編好的程序和原始數據送到計算機中去,並且將它們轉換成計算機內部所能識別和接受的信息方式。按輸入信息的形態可分爲字符

(包括漢字)輸入、圖形輸入、圖像輸入及語音輸入等。目前,常見的輸入設備有鍵盤、 標、掃描儀等。

(6) 輸出設備。輸出設備的任務是將計算機的處理結果以人或其餘設備所能接受的  形式送出計算機。目前,最經常使用的輸出設備是打印機和顯示器。有些設備既能夠是輸入 設備,同時也能夠是輸出設備,例如,輔助存儲器、自動控制和檢測系統中使用的數模轉換裝置等。

 

1.1.2 計算機系統結構的分類

 

計算機的發展經歷了電子管和晶體管時代、集成電路時代(中小規模、大規模、超大規模、甚大規模、極大規模)。目前,世界最高水平的單片集成電路芯片上所容納的元器件數量已經達到 80 多億個。

  1. 存儲程序的概念

 

「存儲程序」的概念是馮•諾依曼等人於 1946 6 月首先提出來的,它能夠簡要地歸納爲如下幾點:

(1) 計算機(指硬件)應由運算器、存儲器、控制器、輸入設備和輸出設備五大基本部件組成。

 

(2) 計算機內部採用二進制來表示指令和數據。

 

(3) 將編好的程序和原始數據事先存入存儲器中,而後再啓動計算機工做。這就是存儲程序的基本含義。馮•諾依曼對計算機世界的最大貢獻在於「存儲程序控制」概念的提出和實現。六十多年來,雖然計算機的發展速度驚人,但就其結構原理來講,目前絕大多數計算機仍創建在存儲程序概念的基礎上。一般把符合存儲程序概念的計算機統稱爲•諾依曼型計算機。固然,現代計算機與早期計算機相比,在結構上仍是有許多改進的。

隨着計算機技術的不斷髮展,也暴露出了馮•諾依曼型計算機的主要弱點:存儲器訪問會成爲瓶頸。目前,已出現了一些突破存儲程序控制的計算機,統稱爲非馮•諾依曼型計算機,例如,數據驅動的數據流計算機、需求驅動的歸約計算機和模式匹配驅動的智能計算機等。

  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 的指令系統很複雜,難以用硬佈線邏輯(組合邏輯)電路實現控制器,一般採用微程序控制

 

  1. 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 或其餘芯片的位置可分爲內部總線和外部總線兩種。 CPU 內部, 寄存器之間和算術邏輯部件 ALU 與控制部件之間傳輸數據所用的總線稱爲內部總線;外部總線是指 CPU 與內存 RAM、ROM 和輸入/輸出設備接口之間進行通訊的通路。因爲 CPU 經過總線實現程序取指令、內存/外設的數據交換, CPU 與外設必定的狀況下,總線速度是制約計算機總體性能的最大因素。

按總線功能來劃分,又可分爲地址總線、數據總線、控制總線三類,人們一般所說的總線都包括這三個組成部分,地址總線用來傳送地址信息,數據總線用來傳送數據信息,控制總線用來傳送各類控制信號。

相關文章
相關標籤/搜索