2008年2月2日 星期六

電腦的原理

儘管電腦技術自20世紀40年代第一臺電子通用電腦誕生以來以來有了令人目眩的飛速發展,但是今天電腦仍然基本上採用的是存儲程式結構,即馮·諾伊曼結構。這個結構實現了實用化的通用電腦。

存儲程式結構間將一臺電腦描述成四個主要部分:算術邏輯單元(ALU),控制電路,存儲器,以及輸入輸出器材(I/O)。這些部件透過一組一組的排線連線(特別地,當一組線被用於多種不同意圖的資料傳輸時又被稱為匯流排),並且由一個時鐘來驅動(當然某些其他事件也可能驅動控制電路)。

概念上講,一部電腦的存儲器可以被視為一組「細胞」單元。每一個「細胞」都有一個編號,稱為位址;又都可以存儲一個較小的定長資訊。這個資訊既可以是指令(告訴電腦去做什麼),也可以是資料(指令的處理物件)。原則上,每一個「細胞」都是可以存儲二者之任一的。

算術邏輯單元(ALU)可以被稱作電腦的大腦。它可以做兩類運算:第一類是算術運算,比如對兩個數字進行加減法。算術運算部件的功能在ALU中是十分有限的,事實上,一些ALU根本不支援電路級的乘法和除法運算(由是使用者只能透過編程進行乘除法運算)。第二類是比較運算,即給定兩個數,ALU對其進行比較以確定哪個更大一些。[2]

輸入輸出系統是電腦從外部世界接收資訊和向外部世界反饋運算結果的手段。對於一臺標準的個人電腦,輸入器材主要有鍵盤和滑鼠,輸出器材則是顯示器,印表機以及其他許多後文將要討論的可連線到電腦上的I/O器材。

控制系統將以上電腦各部分聯繫起來。它的功能是從存儲器和輸入輸出器材中讀取指令和資料,對指令進行解碼,並向ALU交付符合指令要求的正確輸入,告知ALU對這些資料做哪些運算並將結果資料返回到何處。控制系統中一個重要零件就是一個用來保持跟蹤當前指令所在位址的計數器。通常這個計數器隨著指令的執行而累加,但有時如果指令指示進行跳轉則不依此規則。

20世紀80年代以來ALU和控制單元(二者合成中央處理機,CPU)逐漸被整合到一塊積體電路上,稱作微處理機。這類電腦的工作樣式十分直觀:在一個時鐘周期內,電腦先從存儲器中獲取指令和資料,然後執行指令,存儲資料,再獲取下一條指令。這個過程被反覆執行,直至得到一個終止指令。

由控制器解釋,運算器執行的指令集是一個精心定義的數目十分有限的簡單指令集合。一般可以分為四類:1)、資料移動(如:將一個數值從存儲單元A拷貝到存儲單元B)2)、數邏運算(如:計算存儲單元A與存儲單元B之和,結果返回存儲單元C)3)、條件驗證(如:如果存儲單元A內數值為100,則下一條指令位址為存儲單元F)4)、指令序列改易(如:下一條指令位址為存儲單元F)

指令如同資料一樣在電腦內部是以二進位來表示的。比如說,10110000就是一條Intel x86系列微處理機的拷貝指令程式碼。某一個電腦所支援的指令集就是該電腦的機器語言。因此,使用流行的機器語言將會使既成軟體在一臺新電腦上運行得更加容易。所以對於那些機型商業化軟體開發的人來說,它們通常只會關注一種或幾種不同的機器語言。

更加強大的小型電腦,大型電腦和伺服器可能會與上述電腦有所不同。它們通常將任務分擔給不同的CPU來執行。今天,微處理機和多核個人電腦也在朝這個方向發展。[3]

超級電腦通常有著與基本的存儲程式電腦顯著區別的體系結構。它們通常有著數以千計的CPU,不過這些設計似乎只對特定任務有用。在各種電腦中,還有一些微控制器採用令程式和資料分離的哈佛架構(Harvard architecture)。

資料來源:
http://zh.wikipedia.org/w/index.php?title=%E9%9B%BB%E8%85%A6&variant=zh-tw

沒有留言: