計算機體系結構

Williamoses發表於2019-01-04


在這裡插入圖片描述

前言

計算機體系結構指軟、硬體的系統結構 ,有兩方面的含義:它包括機器內的資料表示、定址方式以及對這些資料的運算和控制這些運算的執行等(即指令系統)看成是一臺計算機的邏輯組成中最基本的軟體。計算機運算器、儲存器、控制器、輸入裝置和輸出裝置等主要功能部件的相互連線和相互作用,藉以實現機器指令級的各種功能和特性。從最基本的功能和作用原理來說,計算機是在控制器的全面控制下,接收經數字化編碼的輸入資訊(程式和資料),把它存放在儲存器中,根據程式的要求對資料進行快速運算,產生結果資料輸出。因此,可以把運算器、儲存器、控制器、輸入裝置和輸出裝置看成是一臺計算機的邏輯組成中最基本的硬體。

一. 物理(電子的運動)

如果問大家CPU的原料是什麼,大家可能都會輕而易舉的給出答案—是矽,準確的來說是單晶矽,矽(Silicon,Si)是第Ⅳ族元素,因此其化合價外層有4個電子,並與4個相鄰元素緊密連線,形成晶格(lattice)。在上古時代,世界上第一個和第一個商用的雙極結型電晶體都是用鍺做的。摩托羅拉是當時第一家使用電晶體來製造收音機的廠商。但是好景不長,摩托羅拉收到了大量使用者投訴,說他們發現摩托羅拉的車載收音機在午後的陽光下曝曬一個下午後,就不再工作了。因為鍺在受熱之後會變成本徵態,這使得nMOS電晶體和pMOS電晶體都失去了他們特有的性質,結果雙極結型電晶體不能再工作了。而矽可以經受更高溫度的考驗,具有更好的熱穩定性,並且有著和鑽石一樣棒的晶體結構,這賦予了矽極好的穩定性和強度。電子的運動不只是在CPU裡面進行,一開機TA就在所有通電的硬體裡運動著,電源的電經由主機板上電阻、電容等元器件的控制變成微弱的電流在適合TA運動的二級管裡運動。

  • 二進位制
  • 邏輯閘()

二.器件(電晶體、二極體)

  1. 電晶體(transistor)是一種固體半導體器件,具有檢波、整流、放大、開關、穩壓、訊號調製等多種功能。電晶體泛指一切以半導體材料為基礎的單一元件,包括各種半導體材料製成的二極體、三極體、場效電晶體、可控矽等(電晶體有時多指晶體三極體)。電晶體作為一種可變電流開關,能夠基於輸入電壓控制輸出電流。與普通機械開關(如Relay、switch)不同,電晶體利用電訊號來控制自身的開合,而且開關速度可以非常快,實驗室中的切換速度可達100GHz以上。

  2. 二極體(Diode)是一種具有兩個電極的裝置,只允許電流由單一方向流過,許多的使用是應用其整流的功能。而變容二極體(Varicap Diode)則用來當作電子式的可調電容器。大部分二極體所具備的電流方向性我們通常稱之為“整流(Rectifying)”功能。二極體最普遍的功能就是隻允許電流由單一方向通過(稱為順向偏壓),反向時阻斷 (稱為逆向偏壓)。因此,二極體可以想成電子版的逆止閥。

  3. 快取記憶體

  4. 虛擬儲存器

  5. 嵌入式I/O

  6. PC I/O

三.類比電路(放大器、濾波器)

四.數位電路(邏輯閘與、或、非)

五.邏輯(加法器、儲存器)

六.微體系結構(資料路徑控制器)

1.單週期處理
2.多週期處理
3.流水線處理
4.硬體描述語言表示
5.高階微體系結構
6.x86微體系結構

七.體系結構(指令暫存器)

體系結構是程式設計師所見到的計算機,它由指令集(組合語言)和運算元地址(operand location)(暫存器和儲存器)來定義。如x86、MIPS、SPARC、PowerPC等。

理解計算機體系結構的第一步是學習它的語言。計算機語言中的單詞叫做指令(instruction),詞彙表叫做指令集(instruction set),在同一臺計算機上執行的所有程式使用相同的指令集。即使是非常複雜的軟體應用(如webstorm、myeclipse等)最終都會被編譯為一系列諸如加法、減法或跳轉的簡單指令,計算機指令包含需要完成的操作和要使用的運算元,如MIPS彙編程式碼:add a, b, c用高階語言表示就是a=b+c;
1.組合語言
在這裡插入圖片描述
因為計算機用電路的通斷處理資訊,所以計算機硬體只能理解二進位制資訊,指令也會被編碼為二進位制,這樣微處理器才可以讀取並執行指令需要完成的操作,但是變成了二進位制我們人去閱讀就會很枯燥並且麻煩,所以就用符號格式來表示指令,稱為組合語言(assembly language),所以組合語言是計算機機器語言的人類可閱讀表示,每條組合語言指令都指明瞭需要完成的操作和操作所處理的運算元,運算元可以存放在暫存器或者儲存器中,也可以作為常數儲存在指令自身當中,訪問暫存器和指令自身的運算元會很快。

組合語言是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或運算元的地址。在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。

許多彙編程式為程式開發、彙編控制、輔助除錯提供了額外的支援機制。有的組合語言程式設計工具經常會提供巨集,它們也被稱為巨集彙編器。

組合語言不像其他大多數的程式設計語言一樣被廣泛用於程式設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程式優化的場合。驅動程式、嵌入式作業系統和實時執行程式都需要組合語言。

  1. 機器語言
  2. 程式設計
  3. 定址方式
  4. 編譯、彙編和裝入
  5. x86結構

八.作業系統(裝置驅動程式)

九.應用軟體(程式 “hello world”)

相關文章