電腦的原理
個(gè)人電腦(PC:personal computer )的主要結(jié)構(gòu):
顯示器
主板
CPU (中央處理器)
主要儲(chǔ)存器 (內(nèi)存)
擴(kuò)充卡(顯示卡 聲卡 網(wǎng)卡等 有些主板可以整合這些)
電源供應(yīng)器
光驅(qū)
次要儲(chǔ)存器 (硬盤)
鍵盤
鼠標(biāo)
盡管計(jì)算機(jī)技術(shù)自20世紀(jì)40年代第一臺(tái)電子通用計(jì)算機(jī)誕生以來(lái)以來(lái)有了令人目眩的飛速發(fā)展,但是今天計(jì)算機(jī)仍然基本上采用的是存儲(chǔ)程序結(jié)構(gòu),即馮·諾伊曼結(jié)構(gòu)。這個(gè)結(jié)構(gòu)實(shí)現(xiàn)了實(shí)用化的通用計(jì)算機(jī)。
存儲(chǔ)程序結(jié)構(gòu)間將一臺(tái)計(jì)算機(jī)描述成四個(gè)主要部分:算術(shù)邏輯單元(ALU),控制電路,存儲(chǔ)器,以及輸入輸出設(shè)備(I/O)。這些部件通過(guò)一組一組的排線連接(特別地,當(dāng)一組線被用于多種不同意圖的數(shù)據(jù)傳輸時(shí)又被稱為總線),并且由一個(gè)時(shí)鐘來(lái)驅(qū)動(dòng)(當(dāng)然某些其他事件也可能驅(qū)動(dòng)控制電路)。
概念上講,一部計(jì)算機(jī)的存儲(chǔ)器可以被視為一組“細(xì)胞”單元。每一個(gè)“細(xì)胞”都有一個(gè)編號(hào),稱為地址;又都可以存儲(chǔ)一個(gè)較小的定長(zhǎng)信息。這個(gè)信息既可以是指令(告訴計(jì)算機(jī)去做什么),也可以是數(shù)據(jù)(指令的處理對(duì)象)。原則上,每一個(gè)“細(xì)胞”都是可以存儲(chǔ)二者之任一的。
算術(shù)邏輯單元(ALU)可以被稱作計(jì)算機(jī)的大腦。它可以做兩類運(yùn)算:第一類是算術(shù)運(yùn)算,比如對(duì)兩個(gè)數(shù)字進(jìn)行加減法。算術(shù)運(yùn)算部件的功能在ALU中是十分有限的,事實(shí)上,一些ALU根本不支持電路級(jí)的乘法和除法運(yùn)算(由是使用者只能通過(guò)編程進(jìn)行乘除法運(yùn)算)。第二類是比較運(yùn)算,即給定兩個(gè)數(shù),ALU對(duì)其進(jìn)行比較以確定哪個(gè)更大一些。
輸入輸出系統(tǒng)是計(jì)算機(jī)從外部世界接收信息和向外部世界反饋運(yùn)算結(jié)果的手段。對(duì)于一臺(tái)標(biāo)準(zhǔn)的個(gè)人電腦,輸入設(shè)備主要有鍵盤和鼠標(biāo),輸出設(shè)備則是顯示器,打印機(jī)以及其他許多后文將要討論的可連接到計(jì)算機(jī)上的I/O設(shè)備。
控制系統(tǒng)將以上計(jì)算機(jī)各部分聯(lián)系起來(lái)。它的功能是從存儲(chǔ)器和輸入輸出設(shè)備中讀取指令和數(shù)據(jù),對(duì)指令進(jìn)行解碼,并向ALU交付符合指令要求的正確輸入,告知ALU對(duì)這些數(shù)據(jù)做哪些運(yùn)算并將結(jié)果數(shù)據(jù)返回到何處。控制系統(tǒng)中一個(gè)重要組件就是一個(gè)用來(lái)保持跟蹤當(dāng)前指令所在地址的計(jì)數(shù)器。通常這個(gè)計(jì)數(shù)器隨著指令的執(zhí)行而累加,但有時(shí)如果指令指示進(jìn)行跳轉(zhuǎn)則不依此規(guī)則。
20世紀(jì)80年代以來(lái)ALU和控制單元(二者合成中央處理器,CPU)逐漸被整合到一塊集成電路上,稱作微處理器。這類計(jì)算機(jī)的工作模式十分直觀:在一個(gè)時(shí)鐘周期內(nèi),計(jì)算機(jī)先從存儲(chǔ)器中獲取指令和數(shù)據(jù),然后執(zhí)行指令,存儲(chǔ)數(shù)據(jù),再獲取下一條指令。這個(gè)過(guò)程被反復(fù)執(zhí)行,直至得到一個(gè)終止指令。
由控制器解釋,運(yùn)算器執(zhí)行的指令集是一個(gè)精心定義的數(shù)目十分有限的簡(jiǎn)單指令集合。一般可以分為四類:1)、數(shù)據(jù)移動(dòng)(如:將一個(gè)數(shù)值從存儲(chǔ)單元A拷貝到存儲(chǔ)單元B)2)、數(shù)邏運(yùn)算(如:計(jì)算存儲(chǔ)單元A與存儲(chǔ)單元B之和,結(jié)果返回存儲(chǔ)單元C)3)、條件驗(yàn)證(如:如果存儲(chǔ)單元A內(nèi)數(shù)值為100,則下一條指令地址為存儲(chǔ)單元F)4)、指令序列改易(如:下一條指令地址為存儲(chǔ)單元F)
指令如同數(shù)據(jù)一樣在計(jì)算機(jī)內(nèi)部是以二進(jìn)制來(lái)表示的。比如說(shuō),10110000就是一條Intel x86系列微處理器的拷貝指令代碼。某一個(gè)計(jì)算機(jī)所支持的指令集就是該計(jì)算機(jī)的機(jī)器語(yǔ)言。因此,使用流行的機(jī)器語(yǔ)言將會(huì)使既成軟件在一臺(tái)新計(jì)算機(jī)上運(yùn)行得更加容易。所以對(duì)于那些機(jī)型商業(yè)化軟件開(kāi)發(fā)的人來(lái)說(shuō),它們通常只會(huì)關(guān)注一種或幾種不同的機(jī)器語(yǔ)言。
強(qiáng)大的小型計(jì)算機(jī),大型計(jì)算機(jī)和服務(wù)器可能會(huì)與上述計(jì)算機(jī)有所不同。它們通常將任務(wù)分擔(dān)給不同的CPU來(lái)執(zhí)行。今天,微處理器和多核個(gè)人電腦也在朝這個(gè)方向發(fā)展。
超級(jí)計(jì)算機(jī)通常有著與基本的存儲(chǔ)程序計(jì)算機(jī)顯著區(qū)別的體系結(jié)構(gòu)。它們通常有著數(shù)以千計(jì)的CPU,不過(guò)這些設(shè)計(jì)似乎只對(duì)特定任務(wù)有用。在各種計(jì)算機(jī)中,還有一些微控制器采用令程序和數(shù)據(jù)分離的哈佛架構(gòu)(Harvard architecture)。