計算機的基本原理是存貯程式和程式控制。預先要把指揮計算機如何進行操作的指令序列(稱為程式)和原始數據通過輸入設備輸送到計算機記憶體貯器中。每一條指令中明確規定了計算機從哪個地址取數,進行什麼操作,然後送到什麼地址去等步驟。計算機在運行時,先從記憶體中取出第一條指令,通過控制器的解碼,按指令的要求,從存貯器中取出數據進行指定的運算和邏輯操作等加工,然後再按地址把結果送到記憶體中去。接下來,再取出第二條指令,在控制器的指揮下完成規定操作。依此進行下去,直至遇到停止指令。程式與數據一樣存貯,按程式編排的順序,一步一步地取出指令,自動地完成指令規定的操作是計算機最基本的工作原理。這一原理最初是由美籍匈牙利數學家馮.諾依曼於1945年提出來的,故稱為馮.諾依曼原理。
一、計算機的存儲程式工作原理和硬體系統
馮•諾依曼結構。計算機系統由硬體系統和軟體系統兩大部分組成。美藉匈牙利科學家馮•諾依曼結構(John Von Neumann)奠定了現代計算機的基本結構,其特點是:
1)使用單一的處理部件來完成計算、存儲以及通信的工作。
2)存儲單元是定長的線性組織。
3)存儲空間的單元是直接定址的。
4)使用低級機器語言,指令通過操作碼來完成簡單的操作。
5)對計算進行集中的順序控制。
6)計算機硬體系統由運算器、存儲器、控制器、輸入設備、輸出設備五大部件組成並規定了它們的基本功能。
7)彩二進制形式表示數據和指令。
8)在執行程式和處理數據時必須將程式和數據道德從外存儲器裝入主存儲器中,然後才能使計算機在工作時能夠自動調整地從存儲器中取出指令並加以執行。
這就是存儲程式概念的基本原理。
二、計算機指令
計算機根據人們預定的安排,自動地進行數據的快速計算和加工處理。人們預定的安排是通過一連串指令(操作者的命令)來表達的,這個指令序列就稱為程式。一個指令規定計算機執行一個基本操作。一個程式規定計算機完成一個完整的任務。一種計算機所能識別的一組不同指令的集合,管為該種計算機的指令集合或指令系統。在微機的指令系統中,主要使用了單地址和二地址指令。其中,第1個位元組是操作碼,規定計算機要執行的基本操作,第2個位元組是運算元。計算機指令包括以下類型:數據處理指令(加、減、乘、除等)、數據傳送指令、程式控制指令、狀態管理指令。整個記憶體被分成若干個存儲單元,每個存儲單元一般可存放8位二進制數(位元組編址)。每個在位單元可以存放數據或程式代碼。為了能有效地存取該單元記憶體儲的內容,每個單元都給出了一個唯一的編號來標識,即地址。
按照馮•諾依曼存儲程式的原理,計算機在執行程式時須先將要執行的相關程式和數據放入記憶體儲器中,在執行程式時CPU根據當前程式指針暫存器的內容取出指令並執行指令,然後再取出下一條指令並執行,如此循環下去直到程式結束指令時才停止執行。其工作過程就是不斷地取指令和執行指令的過程,最後將計算的結果放入指令指定的存儲器地址中。計算機工作過程中所要涉及的計算機硬體部件有記憶體儲器、指令暫存器、指令解碼器、計算器、控制器、運算器和輸入/輸出設備等,在以後的內容中將會著重介紹。
三、計算機硬體系統
硬體通常是指構成計算機的設備實體。一台計算機的硬體系統應由五個基本部分組成:運算器、控制器、存儲器、輸入和輸出設備。這五大部分通過系統匯流排完成指令所傳達的操作,當計算機在接受指令後,由控制器指揮,將數據眾輸入設備傳送到存儲器存放,再由控制器將需要參加運算的數據傳送到運算器,由運算器進行處理,處理後的結果由輸出設備輸出。
1、中央處理器
CPU(central processing unit)意為中央處理單元,又稱中央處理器。CPU由控制器、運算器和暫存器組成,通常集中在一塊晶片上,是計算機系統的核心設備。計算機以CPU為中心,輸入和輸出設備與存儲器之間的數據傳輸和處理都通過CPU來控制執行。微型計算機的中央處理器又稱為微處理器。
2、控制器
控制器是對輸入的指令進行分析,並統一控制計算機的各個部件完成一定任務的部件。它一般由指令暫存器、狀態暫存器、指令解碼器、時序電路和控制電路組成。計算機的工作方式是執行程式,程式就是為完成某一任務所編制的特定指令序列,各種指令操作按一定的時間關係有序安排,控制器產生各種最基本的不可再分的微操作的命令信號,即微命令,以指揮整個計算機有條不紊地工作。當計算機執行程式時,控制器首先從指令指針暫存器中取得指令的地址,並將下一條指令的地址存入指令暫存器中,然後從存儲器中取出指令,由指令解碼器對指令進行解碼後產生控制信號,用以驅動相應的硬體完成指紋操作。簡言之,控制器就是協調指揮計算機各部件工作的元件,它的基本任務就是根據種類指紋的需要綜合有關的邏輯條件與時間條件產生相應的微命令。
3、運算器
運算器又稱運算邏輯單元ALU(Arithmetic Logic Unit)。運算器的主要任務是執行各種算術運算和邏輯運算。算術運算是指各種數值運算,比如:加、減、乘、除等。邏輯運算是進行邏輯判斷的非數值運算,比如:與、或、非、比較、移位等。計算機所完成的全部運算都是在運算器中進行的,根據指令規定的定址方式,運算器從存儲或暫存器中取得運算元,進行計算後,送回到指令所指定的暫存器中。運算器的核心部件是加法器和若干個暫存器,加法器用於運算,暫存器用於存儲參加運算的各種數據以及運算後的結果。
4、存儲器
存儲器分為記憶體儲器(簡稱記憶體或主存)、外存儲器(簡稱外存或輔存)。外存儲器一般也可作為輸入/輸出設備。計算機把要執行的程式和數據存入記憶體中,記憶體一般由半導體器構成。半導體存儲器可分為三大類:隨機存儲器、唯讀存儲器、特殊存儲器。
RAM
RAM是隨機存取存儲器(Random Access Memory),其特點是可以讀寫,存取任一單元所需的時間相同,通電是存儲器內的內容可以保持,斷電後,存儲的內容立即消失。RAM可分為動態(Dynamic RAM)和靜態(Static RAM)兩大類。所謂動態隨機存儲器DRAM是用MOS電路和電容來作存儲元件的。由於電容會放電,所以需要定時充電以維持存儲內容的正確,例如互隔2ms刷新一次,因此稱這為動態存儲器。所謂靜態隨機存儲器SRAM是用雙極型電路或MOS電路的觸發器來作存儲元件的,它沒有電容放電造成的刷新問題。只要有電源正常供電,觸發器就能穩定地存儲數據。DRAM的特點是集成密度高,主要用於大容量存儲器。SRAM的特點是存取速度快,主要用於調整緩衝存儲器。
ROM
ROM是唯讀存儲器(Read Only Memory),它只能讀出原有的內容,不能由用戶再寫入新內容。原來存儲的內容是由廠家一次性寫放的,並永久保存下來。ROM可分為可程式(Programmable)ROM、可擦除可程式(Erasable Programmable)ROM、電擦除可程式(Electrically Erasable Programmable)ROM。如,EPROM存儲的內容可以通過紫外光照射來擦除,這使它的內可以反覆更改。
特殊固態存儲器
包括電荷耦合存儲器、磁泡存儲器、電子束存儲器等,它們多用於特殊領域內的信息存儲。
此外,描述內、外存儲容量的常用單位有:
①位/比特(bit):這是記憶體中最小的單位,二進制數序列中的一個0或一個1就是一比比特,在電腦中,一個比特對應著一個電晶體。
②位元組(B、Byte):是計算機中最常用、最基本的存在單位。一個位元組等於8個比特,即1 Byte=8bit。
③千位元組(KB、kilo Byte):電腦的記憶體容量都很大,一般都是以千位元組作單位來表示。1KB=1024Byte。
④兆位元組(MB Mega Byte):90年代流行微機的硬碟和記憶體等一般都是以兆位元組(MB)為單位。1 MB=1024KB。
⑤吉位元組(GB、Giga Byte):目前市場流行的微機的硬碟已經達到4.3GB、6.4GB、8.1GB、12G、13GB等規格。1GB=1024MB。
⑥太位元組(TB、Tera byte):1TB=1024GB。
5、輸入/輸出設備
輸入設備是用來接受用戶輸入的原始數據和程式,並將它們變為計算機能識別的二進制存入到記憶體中。常用的輸入設備有鍵盤、滑鼠、掃瞄器、光筆等。
輸出設備用於將存入在記憶體中的由計算機處理的結果轉變為人們能接受的形式輸出。常用的輸出設備有顯示器、印表機、繪圖儀等。
6、匯流排
匯流排是一組為系統部件之間數據傳送的公用信號線。具有匯集與分配數據信號、選擇傳送信號的部件與接收信號的部件、匯流排控制權的建立與轉移等功能。典型的微機計算機系統的結構如圖2-3所示,通常多採用單匯流排結構,一般按信號類型將匯流排分為三組,其中AB(Address Bus)為地址匯流排;DB(Data bus)為數據匯流排;CB(Control Bus)控制匯流排。
四、微型計算機主要技術指標
①CPU類型:是指微機系統所採用的CPU晶片型號,它決定了微機系統的檔次。
②字長:是指CPU一次最多可同時傳送和處理的二進制位數,字長直接影響到計算機的功能、用途和套用範圍。如Pentium是64位字長的微處理器,即數據位數是64位,而它的定址位數是32位。
③時鐘頻率和機器周期:時鐘頻率又稱主頻,它是指CPU內部晶振的頻率,常用單位為兆(MHz),它反映了CPU的基本工作節拍。一個機器周期由若干個時鐘周期組成,在機器語言中,使用執行一條指令所需要的機器周期數來說明指令執行的速度。一般使用CPU類型和時鐘頻率來說明計算機的檔次。如Pentium III 500等。
④運算速度:是指計算機每秒能執行的指令數。單位有MIPS(每秒百萬條指令)、MFLOPS(秒百萬條浮點指令)
⑤存取速度:是指存儲器完成一次讀取或寫存操作所需的時間,稱為存儲器的存取時間或訪問時間。而邊連續兩次或寫所需要的最短時間,稱為存儲周期。對於半導體存儲器來說,存取周期大約為幾十到幾百毫秒之間。它的快慢會影響到計算機的速度。
⑥內、外存儲器容量:是指記憶體存儲容量,即內容儲存器能夠存儲信息的位元組數。外儲器是可將程式和數據永久保存的存儲介質,可以說其容量是無限的。如硬碟、軟碟已是微機系統中不可缺少的外部設備。迄今為止,所有的計算機系統都是基於馮•諾依曼存儲程式的原理。內、外存容量越大,所能運行的軟體功能就越豐富。CPU的高速度和外存儲器的低速度是微機系統工作過程中的主要瓶頸現象,不過由於硬碟的存取速度不斷提高,目前這種現象已有所改善。
我們先從最早的計算機講起,人們在最初設計計算機時採用這樣一個模型:
人們通過輸入設備把需要處理的信息輸入計算機,計算機通過中央處理器把信息加工後,再通過輸出設備把處理後的結果告訴人們。
其實這個模型很簡單,舉個簡單的例子,你要處理的信息是1+1,你把這個信息輸入到計算機中後,計算機的內部進行處理,再把處理後的結果告訴你。
早期計算機的輸入設備十分落後,根本沒有現在的鍵盤和滑鼠,那時候計算機還是一個大傢伙,最早的計算機有兩層樓那么高。人們只能通過扳動計算機龐大的面板上無數的開頭來向計算機輸入信息,而計算機把這些信息處理之後,輸出設備也相當簡陋,就是計算機面板上無數的信號燈。所以那時的計算機根本無法處理像現在這樣各種各樣的信息,它實際上只能進行數字運算。
當時人們使用計算機也真是夠累的。但在當時,就算是這種計算機也是極為先進的了,因為它把人們從繁重的手工計算中解脫出來,而且極大地提高了計算速度。
隨著人們對計算機的使用,人們發現上述模型的計算機能力有限,在處理大量數據時就越發顯得力不從心。為些人們對計算機模型進行了改進,提出了這種模型:
就是在中央處理器旁邊加了一個內部存儲器。這個模型的好處在於。先打個比方說,如果老師讓你心算一道簡單題,你肯定毫不費勁就算出來了,可是如果老師讓你算20個三位數相乘,你心算起來肯定很費力,但如果給你一張草稿紙的話,你也能很快算出來。
可能你會問這和計算機有什麼關係?其實計算機也是一樣,一個沒有內部存儲器的計算機如果讓它進行一個很複雜的計算,它可能根本就沒有辦法算出來,因為它的存儲能力有限,無法記住很多的中間的結果,但如果給它一些內部存儲器當“草稿紙”的話,計算機就可以把一些中間結果臨時存儲到內部存儲器上,然後在需要的時候再把它取出來,進行下一步的運算,如此往復,計算機就可以完成很多很複雜的計算。
隨著時代的發展,人們越來越感到計算機輸入和輸出方式的落後,改進這兩方面勢在必行。在輸入方面,為了不再每次扳動成百上千的開頭,人們發明了紙帶機。紙帶機的工作原理是這樣的,紙帶的每一行都標明了26個字母、10個數字和一些運算符號,如果這行的字母A上面打了一個孔,說明這裡要輸入的是字母A,同理,下面的行由此類推。這樣一個長長的紙帶就可以代表很多的信息,人們把這個紙帶放入紙帶機,紙帶機還要把紙帶上的信息翻譯給計算機,因為計算機是看不懂這個紙帶的。
這樣雖然比較麻煩,但這個進步確實在很大程度上促進了計算機的發展。在發明紙帶的同時,人們也對輸出系統進行了改進,用印表機代替了計算機面板上無數的信號燈。印表機的作用正好和紙帶機相反,它負責把計算機輸出的信息翻譯成人能看懂的語言,列印在紙上,這樣人們就能很方便地看到輸出的信息,再也不用看那成百上千的信號燈了。
不過人們沒有滿足,他們繼續對輸入和輸出系統進行改進。後來人們發明了鍵盤和顯示器。這兩項發明使得當時的計算機和我們現在使用的計算機有些類似了,而且在些之前經過長時間的改進,計算機的體積也大大地縮小了。鍵盤和顯示器的好處在於人們可以直接向計算機輸入信息,而計算機也可以及時把處理結果顯示在螢幕上。
可是隨著人們的使用,逐漸又發現了不如意之處。因為人們要向計算機輸入的信息越來越多,往往要輸入很長時間後,才讓計算機開始處理,而在輸入過程中,如果停電,那前面輸入的內容就白費了,等來電後,還要全部重新輸入。就算不停電,如果人們上次輸入了一部分信息,計算機處理理了,也輸出了結果;人們下一次再需要計算機處理這部分信息的時候,還要重新輸入。對這種重複勞動的厭倦導致了計算機新的模型的產生。
這回的模型是這樣的:
這回增加了一個外部存儲器。外部存儲器的“外部”是相對於內部存儲器來說的,在中央處理器處理信息時,它並不直接和外部存儲器打交道,處理過程中的信息都臨時存放在內部存儲器中,在信息處理結束後,處理的結果也存放在內部存儲器中。可是如果這時突然停電,那些結果還會丟失的。內部存儲器(或簡稱記憶體)中的信息是靠電力來維持的,一旦電力消失,記憶體中的數據就會全部消失。也正因為如此,人們才在計算機模型中加入了外部存儲器,把記憶體中的處理結果再存儲到外部存儲器中,這樣停電後數據也不會丟失了。
外部存儲器與記憶體的區別在於:它們的存儲機制是不一樣的,外部存儲器是把數據存儲到磁性介質上,所以不依賴於是否有電。這個磁性介質就好比家裡的歌曲磁帶,磁帶上的歌曲不管有沒有電都是存在的。當時人們也是考慮到了磁帶這種好處,所以在計算機的外部存儲器中也採用了類似磁帶的裝置,比較常用的一種叫磁碟。
磁碟本來是圓的,不過裝在一個方的盒子裡,這樣做的目的是為了防止磁碟表面劃傷,導致數據丟失。
有了磁碟之後,人們使用計算機就方便多了,不但可以把數據處理結果存放在磁碟中,還可以把很多輸入到計算機中的數據存儲到磁碟中,這樣這些數據可以反覆使用,避免了重複勞動。
可是不久之後,人們又發現了另一個問題,人們要存儲到磁碟上的內容越來越多,眾多的信息存儲在一起,很不方便。這樣就導致了檔案的產生。
這和我們日常生活中的檔案有些相似。我們日常生活中的檔案是由一些相關信息組成,計算機的檔案也是一樣。人們把信息分類整理成檔案存儲到磁碟上,這樣,磁碟上就有了檔案1、檔案2……。
可是在使用過程中,人們又漸漸發現,由人工來管理越來越多的檔案是一件很痛苦的事情。為了解決這個問題,人們就開發了一種軟體叫作業系統。
其實作業系統就是替我們管理計算機的一種軟體,在作業系統出現之前,只有專業人士才懂得怎樣使用計算機,而在作業系統出現之後,不管你是否是計算機專業畢業,只要經過簡單的培訓,你都能很容易地掌握計算機。
有了作業系統之後,我們就不直接和計算機的硬體打交道,不直接對這些硬體發號施令,我們把要的事情告訴作業系統,作業系統再把要作的事情安排給計算機去作,等計算機做完之後,作業系統再把結果告訴我們,這樣就省事多了。
在作業系統出現之前,人們通過鍵盤給計算機下達的命令都是特別專業的術語,而有了作業系統之後,人們和計算機之間的對話就可以使用一些很容易懂的語言,而不用去死記硬背那些專業術語了。
作業系統不但能在計算機和人之間傳遞信息,而且字還負責管理計算機的內部設備和外部設備。它替人們管理日益增多的檔案,使人們能很方便地找到和使用這些檔案;它替人們管理磁碟,隨時報告磁碟的使用情況;它替計算機管理記憶體,使計算機能更高效而安全地工作;它還負責管理各種外部設備,如印表機等,有了它的管理,這些外設就能有效地為用戶服務了。
也正因為作業系統這么重要,所以人們也在不斷地改進它,使它的使用更加方面,功能更加強大。對於咱們現在使用的微機來說,作業系統主要經歷了DOS、Windows 3.x、Windows95和Windows98這幾個發展階段。
在DOS階段,人們和計算機打交道,還是主要靠輸入命令,“你輸入什麼命令,計算機就做什麼,如果你不輸入,計算機就什麼也不做”。在這一階段,人們還是需要記住很多命令和它們的用法,如果忘記了或不知道,那就沒有辦法了。所以說,這時的計算機還是大太好用,作業系統也處於發展的初級階段。Windows的出現在很大程度上彌補了這個不足,人們在使用Windows時,不必記住什麼命令,只需要用滑鼠指指點點就能完成很多工作。而當作業系統發展到Windows95之後,使用計算機就變得更加簡單。
現在我們來簡單總結一下上面我們講的一些內容。經過人們幾十年的努力,計算機的組成結構已經基本定型,現在我們日常使用的微機在硬體方面可以用下圖表示:這裡CPU就是我們以前談到的中央處理器的英文縮寫,它和其它輔助電路構成了計算機的核心。我們通過鍵盤和其它輸入設備輸入的信息經過它的處理之後顯示在顯示器上。在信息處理過程中,CPU要和記憶體頻繁地交換信息,在工作結束之後,還要把記憶體中的數據保存在磁碟上。
上面說的是硬體的工作原理,那么在軟體上,我們又是如何使用計算機的呢?
在前面我們講過,我們可以通過作業系統給計算機布置工作,作業系統也可以把計算機的工作結果告訴我們。可是作業系統的功能也不是無限的,實際上計算機的很多功能是靠多種套用軟體來實現的。作業系統一般只負責管理好計算機,使它能正常工作。而眾多的套用軟體才充分發揮了計算機的作用。但這些套用軟體都是建立在作業系統上的,一般情況下,某一種軟體都是為特定的作業系統而設計的,因為這些軟體不能直接和計算機交換信息,需要通過作業系統來傳遞信息。
這就是所謂的“硬”、“軟”結合。硬體就是我們能看見的這些東西:主機、顯示器、鍵盤、滑鼠等,而軟體是我們看不見的,存在於計算機內部的。打個比方,硬體就好比人類軀體,而軟體就好比人類的思想,沒有軀體,思想是無法存在的,但沒有思想的軀體也只是一個植物人。一個正常人要完成一項工作,都是軀體在思想的支配下完成的。電腦和這相類似,沒有主機等硬體,軟體是無法存在的;而一個沒有軟體的計算機也只是一堆廢鐵。
還有一個重要的概念沒有講,就是作業系統是如何管理檔案的呢?其實也很簡單,檔案都有自己的名字,叫檔案名稱,用來區分不同的檔案的。計算機中的檔案有很多,成千上萬,光用名字來區分也不利於查找,所以計算機中又有了資料夾的概念,把不同類型的檔案存儲在不同的資料夾中,查找起來就快多了,也不會太亂。檔案多了,可以分別存儲在不同的資料夾中,而當資料夾多了之後,再把一些相關的資料夾存儲在更在的資料夾中,這樣管理檔案是比較科學的。