進位狀態包括計算機系統包括硬體系統和軟體系統兩大部分,通過執行程式而運行。
基本介紹
- 中文名:進位狀態
- 計算機系統:硬體系統和軟體系統兩大部分
- 如何運行:通過執行程式而運行
- 進制數:二進制
電腦工作原理
計算機系統概述
計算機系統包括硬體系統和軟體系統兩大部分。計算機通過執行程式而運行,計算機工作時軟硬體協同工作,二者缺一不可。硬體(Hardware)是構成計算機的物理裝置,是看得見、摸得著的一些實實在在的有形實體。一個計算機硬體系統,從功能級角度而言包五大功能部件:運算器、控制器、存儲器、輸入設備和輸出設備。硬體是計算機能夠運行的物質基礎,計算機的性能,如運算速度、存儲容量、計算精度、可靠性等,很大程度上取決於硬體的配置。只有硬體而沒有任何軟體支持的計算機稱為裸機。在裸機上只能運行機器語言程式,使用很不方便,效率也低。軟體(Software)是指使計算機運行需要的程式、數據和有關的技術文檔資料。軟體是計算機的靈魂,是發揮計算機功能的關鍵。有了軟體,人們可以不必過多地去了解機器本身的結構與原理,可以方便靈活地使用計算機。軟體禁止了下層的具體計算機硬體,形成一台抽象的邏輯計算機(也稱虛擬機),它在用戶和計算機(硬體)之間架起了橋樑。軟體通常分為系統軟體和套用軟體兩大類。系統軟體是計算機製造者提供的使用和管理計算機的軟體,它包括作業系統、語言處理系統、常用服務程式等。套用軟體是計算機用戶用計算機及其提供的各種系統軟體開發的解決各種實際問題的軟體。
一、要求掌握的知識要點(1)掌握十進制數、二進制數、十六進制數、八進制數以及它們之間的相互轉換方法。(2)掌握二進制數的算術運算及邏輯運算的法則,數據在計算機中的表示方法。(3)掌握BCD碼、ASCII碼及漢字編碼的概念。(4)熟悉中央處理單元CPU的組成及內部主要部件的功能。二、知識點概述(一)計算機中數據的表示計算機最主要的功能是處理信息,如處理數值、文字、聲音、圖形和圖像等。在計算機內部,各種信息都必須經過數位化編碼後才能被傳送、存儲和處理,因此,掌握信息編碼的概念與處理技術是至關重要的。所謂編碼,就是採用少量的基本符號,選用一定的組合原則,以表示大量複雜、多樣的信息。基本符號的種類和這些符號的組合規則是一切信息編碼的兩大要素。例如,用10個阿拉伯數碼錶示數字,用26個英文字母表示英文辭彙等,都是編碼的典型例子。1.進位計數制在採用進位計數的數字系統中,如果只用r個基本符號(例如,O,1,2,…,r一1)表示數值,則稱其為基r數制(Radix-rNumberSystem),r稱為該數制的基(Radix)。對於不同的數制,它們的共同特點是:·每一種數制都有固定的符號集。例如,對於十進制數制,其符號有10個:0,1,2,…,9;對於二進制數制,其符號有兩個:O和1。·都使用位置表示法。即處於不同位置的數符所代表的值不同,且與它所在位置的權值有關。例如,十進制數1234.55可表示為1234.55=1×103+2×102+3×101+4×100+5×10-1+5×10-2可以看出,各種進位計數制中的權的值恰好是基數的某次冪。因此,對任何一種進位計數制表示的數都可以寫成按權展開的多項式之和,即任意一個r進制數N可表示為式中:Di是該數制採用的基本數符;ri是權;r是基數,不同的基數表示不同的進制數。表1-1所示的是計算機中常用的幾種進制數。表1-1計算機中常用的幾種進制數的表示進位制二進制八進制十進制十六進制規則逢二進一逢八進一逢十進一逢十六進一基數r=2r=8r=10r=16數符O,1O,1,2,…,7O,1,2,…,9O,l,2,…,9,A,B,…,F權2i8i10i16i形式表示BODH2.算術邏輯運算(1)二進制加法。二進制加法與十進制加法相類似,所不同的是,二進制加法的規則是“逢二進一”,即O+0=01+0=10+1=11+1=0(有進位)(2)二進制減法。在二進制減法中,當不夠減時需要借位,高位的1等於下一位的2,即“借一當二”,其運算法則如下:0-0=01-0=11-1=00-1=1(有借位)(3)二進制乘法。二進制乘法與十進制乘法是一樣的,但因為二進制數隻由0和1構成,因此,二進制乘法更簡單,其運算法則如下:O×O=O1×O=0O×1=01×1=1(4)二進制除法。二進制除法是二進制乘法的逆運算,其運算方法與十進制除法是一樣的。(5)二進制與運算又稱邏輯乘,其運算法則如下:O∧0=OO∧1=01∧O=01∧1=1(6)二進制或又稱邏輯加,其運算法則如下:0∨O=00∨1=11∨0=11∨1=1(7)二進制異或的運算法則如下:OO=001=110=111=03.機器數和碼制各種數據在計算機中表示的形式稱為機器數,其特點是數的符號用O、1表示,如“0”表示正號,“1”表示負號,小數點則隱含表示而不占位置。機器數對應的實際數值稱為該數的真值。機器數有無符號數和帶符號數兩種。無符號數表示正數,在機器數中沒有符號位。對於無符號數,若約定小數點的位置在機器數的最低位之後,則是純整數;若約定小數點的位置在機器數的最高位之前,則是純小數。對於帶符號數,機器數的最高位是表示正、負的符號位,其餘二進制位表示數值。若約定小數點的位置在機器數的最低數值位之後,則是純整數;若約定小數點的位置在機器數的最高數值位之前(符號位之後),則是純小數。為了便於運算,帶符號的機器數可採用原碼、反碼和補碼等不同的編碼方法,機器數的這些編碼方法稱為碼制。4.漢字編碼漢字處理包括漢字的編碼輸入、漢字的存儲和漢字的輸出等環節。也就是說計算機處理漢字,首先必須先將漢字代碼化,即對漢字進行編碼。1)輸入碼
(1)數字編碼。數字編碼就是用數字串代表一個漢字的輸入,常用的是國標區位碼。國際區位碼將國家標準局公布的6763個兩級漢字分成94個區,每個區94位,實際上是把漢字表示成二維數組,區位和位碼各兩位十進制數字,因此,輸入一個漢字需要按鍵四次。例如,“中”字位於第54區48位,區位碼為5448:(2)拼音碼。拼音碼是以漢語讀音為基礎的輸入方法。由於漢字同音字太多,輸入重碼率很高,因此,按拼音輸入後還必須進行同音字選擇,影響了輸入速度。(3)字形編碼。字形編碼是以漢字的形狀確定的編碼。漢字總數雖多,但都是由一筆一划組成,全部漢字的部件和筆劃是有限的,因此,把漢字的筆劃部件用字母或數字進行編碼,按筆劃書寫的順序依次輸入,就能表示一個漢字。五筆字形、表形碼等便是這種編碼法。五筆字形編碼是最有影響的編碼方法。2)內部碼
漢字內部碼(簡稱漢字內碼)是漢字在設備或信息處理系統內部最基本的表達形式,是在設備和信息處理系統內部存儲、處理、傳輸漢字用的代碼。在西文計算機中,沒有交換碼和內碼之分。漢字數量多。用一個位元組無法區分,採用國家標準局GB2312-80中規定的漢字國標碼,兩個位元組存放一個漢字的內碼,每個位元組的最高位置“1”,作為漢字機內碼。由於兩個位元組各用7位,因此可表示16384個可區別的機內碼。以漢字“大”為例,國標碼為3473H,兩個位元組的高位置“1”,得到的機內碼為B4F3H。為了統一地表示世界各國的文字,1993年國際標準化組織公布了“通用多八位編碼字元集”的國際標準ISO/IEC10646,簡稱UCS(UniversalCodeSet)。UCS包含了中、日、韓等國的文字,這一標準為包括漢字在內的各種正在使用的文字規定了統一的編碼方案。3)字形碼
漢字字形碼是表示漢字字形的字模數據,通常用點陣、矢量函式等方式表示。用點陣表示字形時,漢字字形碼指的就是這個漢字字形點陣的代碼。字形碼也稱字模碼,是用點陣表示的漢字字形碼,它是漢字的輸出方式。根據輸出漢字的要求不同,點陣的多少也不同。簡易型漢字為16×16點陣,高精度型漢字為24×24點陣、32×32點陣、48×48點陣等等。(二)中央處理機(CPU)1.CPU的組成前面已經提到,CPU主要由運算器、控制器組成。構成CPU的框圖如圖1-2所示。1)運算器運算器是對數據進行加工處理的部件,它主要完成算術運算和邏輯運算,完成對數據的加工與處理。不同的計算機,運算器的結構也不同,但最基本的結構都是由算術/邏輯運算單元(ALU)、累加器(ACC)、暫存器組、多路轉換器和數據匯流排等邏輯部件組成的。2)控制器計算機能執行的基本操作叫做指令,一台計算機的所有指令組成指令系統。指令由操作碼和地址碼兩部分組成,操作碼指明操作的類型,地址碼則指明運算元及運算結果存放的地址。
圖1-2CPU主要組成部件框圖控制器的主要功能是從記憶體中取出指令,並指出下一條指令在記憶體中的位置,將取出指令經指令暫存器送往指令解碼器,經過對指令的分析發出相應的控制和定時信息,控制和協調計算機的各個部件有條不紊的工作,以完成指令所規定的操作。控制器是由程式計數器(簡稱PC)、指令暫存器、指令解碼器、狀態條件暫存器、時序產生器、微操作信號發生器組成,如圖1-3所示。
圖1-3控制器組成框圖(1)程式計數器。當程式順序執行時,每取出一條指令,PC內容自動增加一個值,指向下一條要取的指令。當程式出現轉移時,則將轉移地址送入PC,然後由PC指向新的程式地址。(2)指令暫存器(IR)。用於存放當前要執行的指令。(3)指令解碼器(ID)。用於對現行指令進行分析,確定指令類型、指令所要完成的操作以及定址方式。(4)時序產生器。用於產生時序脈衝和節拍電位去控制計算機有序的工作。(5)狀態/條件暫存器。用於保存指令執行完成後產生的條件碼。例如,運算是否有溢出,結果為正還是為負,是否有進位等。此外,狀態/條件暫存器還保存中斷和系統工作狀態等信息。(6)微操作信號發生器。把指令提供的操作信號、時序產生器提供的時序信號以及由控制功能部件反饋的狀態信號等綜合成特定的操作序列,從而完成取指令的執行控制。控制器一般由指令暫存器(IR)、程式計數器(PC)、時序部件、微操作形成部件和程式狀態字暫存器(PSW)構成。控制器的作用是控制整個計算機的各個部件有條不紊地工作,它的基本功能就是從記憶體取指令和執行指令。執行指令有取指令、指令解碼、按指令操作碼執行、形成下一條指令地址四個步驟。2.CPU的功能CPU的基本功能如下。(1)程式控制。CPU通過執行指令來控制程式的執行順序,這是CPU的重要職能。(2)操作控制。一條指令功能的實現需要若干操作信號來完成,CPU產生每條指令的操作信號並將操作信號送往不同的部件,控制相應的部件按指令的功能要求進行操作。(3)時間控制。CPU對各種操作進行時間上的控制,這就是時間控制。CPU對每條指令整個的執行時間要進行嚴格控制。同時。指令執行過程中的操作信號的出現時間、持續時間及出現的時間順序都需進行嚴格控制。(4)數據處理。CPU對數據以算術運算及邏輯運算等方式進行加工處理,數據加工處理的結果為人們所利用。所以,對數據的加工處理是CPU最根本的任務。必須指出,在計算機系統中,硬體和軟體之間並沒有一條明確的分界線。一般來說,任何一個由軟體完成的操作也可以直接由硬體來實現,而任何一個由硬體所執行的指令也能夠用軟體來完成。軟體和硬體之間的界線是經常變化的。今天的軟體可能就是明天的硬體,反之亦然。計算機硬體系統組成從功能上來看,計算機的硬體系統由運算器、控制器、存儲器、輸入設備和輸出設備組成,五大部分由匯流排連線。控制器和運算器合在一起被稱為中央處理器CPU(CentralProcessingUnit)。
計算機基本工作原理馮·諾依曼原理世界上第一台計算機基於馮·諾依曼原理,其基本思想是:存儲程式與程式控制。存儲程式是指人們必須事先把計算機的執行步驟序列(即程式)及運行中所需的數據,通過一定方式輸入並存儲在計算機的存儲器中。程式控制是指計算機運行時能自動地逐一取出程式中一條條指令,加以分析並執行規定的操作。到目前為止,儘管計算機發展了4代,但其基本工作原理仍然沒有改變。根據存儲程式和程式控制的概念,在計算機運行過程中,實際上有兩種信息在流動。一種是數據流,這包括原始數據和指令,它們在程式運行前已經預先送至主存中,而且都是以二進制形式編碼的。在運行程式時數據被送往運算器參與運算,指令被送往控制器。另一種是控制信號,它是由控制器根據指令的內容發出的,指揮計算機各部件執行指令規定的各種操作或運算,並對執行流程進行控制。這裡的指令必須為該計算機能直接理解和執行。計算機指令與指令系統指令是指計算機完成某個基本操作的命令。指令能被計算機硬體理解並執行。一條指令就是計算機機器語言的一個語句,是程式設計的最小語言單位。一台計算機所能執行的全部指令的集合,稱為這台計算機的指令系統。指令系統比較充分地說明了計算機對數據進行處理的能力。不同種類的計算機,其指令系統的指令數目與格式也不同。指令系統越豐富完備,編製程序就越方便靈活。指令系統是根據計算機使用要求設計的。一條計算機指令是用一串二進制代碼表示的,它通常應包括兩方面的信息:操作碼和地址碼。操作碼用來表征該指令的操作特性和功能,即指出進行什麼操作;地址碼指出參與操作的數據在存儲器中的地址。一般情況下,參與操作的源數據或操作後的結果數據都在存儲器中,通過地址可訪問該地址中的內容,即得到運算元。CPU訪問存儲器需要一定的時間,為了提高運算速度,有時也將參與運算的數據或中間結果存放在CPU暫存器中或者直接存放在指令中。
計算機的全名應該叫“通用電子數字計算機”(General-PurposeElectronicDigitalComputer)。這個名稱說明了計算機的許多性質。
“通用”說明計算機不是一種專用設備,我們可以把它與電話做一個比較。電話只能作為一種通訊工具,別無他用。而計算機不僅可以作為計算根據,只要有合適的軟體,它也可以作為通訊工具使用,還能有無窮無盡的其他用途。
“電子”是計算機硬體實現的物理基礎,計算機是非常複雜的電子設備,計算機的運行最終都是通過電子電路中的電流、電位等實現的。
“數字”化是計算機一切處理工作的信息表示基礎。在計算機里,一切信息都是採用數位化的形式表示的,無論它原本是什麼。無論是數值、文字,還是圖形、聲音等等,在計算機里都統一到二進制的數位化表示上。數位化是計算機的一種基本特徵,也是計算機通用性的一個重要基礎。
“計算機”意味著這是一種能夠做計算的機器。計算機能夠完成的基本動作不過就是數的加減乘除一類非常簡單的計算動作。但是,當它在程式的指揮下,以電子的速度,在一瞬間完成了數以萬億計的基本動作時,就可能完成了某種很重大的事情。我們在計算機的外部看到的是這些動作的綜合效果。從這個意義上看,計算機本身並沒有多少了不起的東西,唯一了不起的就是它能按照指揮行事,做得快。實際上,更了不起的東西是程式、是軟體,每個程式或軟體都是特殊的,針對面臨的問題專門設計實現的東西。
目前對計算機的另一種流行稱呼是“電腦”,這是從香港台灣轉播開來的一個譯名,目前使用很廣泛。實際上這個名稱並不合適,很容易把人的理解引到錯誤的方向(或許這正是一些人有意或無意的目標)。我們從來不把原始人用於打樹上果子的木棍稱為“木手”,也不把火車稱為“鐵腳”。因為無論是木棍還是火車,雖然各有其專門用途方面的力量,各有其“長處”,但它們都只能在人手腳功能中很窄的一個方面有用,與手腳功能的普適性是根本無法相提並論的。同樣,計算機能幫助人完成的也僅僅是那些能夠轉化為計算問題的事項,與人腦的作用範圍和能力相比,計算機的套用範圍也是小巫見大巫了。
計算機的核心處理部件是CPU(CentralProcessingUnit,中央處理器)。目前各類計算機的CPU都是採用半導體積體電路技術製造的,它雖然不大,但其內部結構卻極端複雜。CPU的基礎材料是一塊不到指甲蓋大小的矽片,通過複雜的工藝,人們在這樣的矽片上製造了數以百萬、千萬計的微小半導體元件。從功能看,CPU能夠執行一組操作,例如取得一個數據,由一個或幾個數據計算出另一個結果(如做加減乘除等),送出一個數據等。與每個動作相對應的是一條指令,CPU接收到一條指令就去做對應的動作。一系列的指令就形成了一個程式,可能使CPU完成一系列動作,從而完成一件複雜的工作。
在計算機誕生之時,指揮CPU完成工作的程式還放在計算機之外,通常表現為一疊打了孔的卡片。計算機在工作中自動地一張張讀卡片,讀一張就去完成一個動作。實際讀卡片的事由一台讀卡機完成(有趣的是,IBM就是製造讀卡機起家的)。採用這種方式,計算機的工作速度必然要受到機械式讀卡機的限制,不可能很快。
美國數學家馮·諾依曼最早看到問題的癥結,據此提出了著名的“存儲程式控制原理”,從而導致現代意義下的計算機誕生了。
計算機的中心部件,除了CPU之外,最主要是一個內部存儲器。在計算機誕生之時,這個存儲器只是為了保存正在被處理的數據,CPU在執行指令時到存儲器里把有關的數據提取出來,再把計算得到的結果存回到存儲器去。馮·諾依曼提出的新方案是:應該把程式也存儲在存儲器里,讓CPU自己負責從存儲器里提取指令,執行指令,循環式地執行這兩個動作。這樣,計算機在執行程式的過程中,就可以完全擺脫外界的拖累,以自己可能的速度(電子的速度)自動地運行。這種基本思想就是“存儲程式控制原理”,按照這種原理構造出來的計算機就是“存儲程式控制計算機”,也被稱做“馮·諾依曼計算機”。
到目前為止,所有主流計算機都是這種計算機,這裡討論的都是這種計算機。(隨著對計算過程和計算機研究的深化,人們也認識到馮·諾依曼計算機的一些缺點,開展了許多目的在於探索其他計算機模式的研究工作。但是到目前為止,這些工作的成果還遠未達到製造出在性能、價格、通用性、自然易用等方面能夠與馮·諾依曼計算機匹敵的信息處理設備的程度。這裡我們就不打算進一步介紹這些方面的情況了。)
從CPU抽象動作的層次看,計算機的執行過程非常簡單,是一個兩步動作的簡單循環(圖1.5),稱為CPU基本執行循環。CPU每次從存儲器取出要求它執行的下一條指令,然後就按照這條指令,完成對應動作,循環往復,直到程式執行完畢(遇到一條要求CPU停止工作的指令),或者永無休止地工作下去。
CPU是一個絕對聽話、服從指揮的服務生,它每時每刻都絕對按照命令行事,程式叫它做什麼,它就做什麼。CPU能完成的基本動作並不多,通常一個CPU能夠執行的指令大約有幾十種到一二百種。另一方面,實際社會各個領域裡,社會生活的各個方面需要套用計算機情況則是千差萬別、錯綜複雜。這樣簡單的計算機如何能應付如此繽紛繁雜的社會需求呢?答案實際上很簡單:程式。通過不同指令的各種適當排列,人可以寫出的程式數目是沒有窮盡的。這就像英文字母只有26個,而用英文寫的書信、文章、詩歌、劇作、小說卻可以無窮地多一樣。計算機從原理上看並不複雜,正是五彩繽紛的程式使計算機能夠滿足社會的無窮無盡的需求。
計算機的這種工作原理帶來兩方面的效果。一方面,計算機具有通用性,一種(或者不多的幾種)計算機就能夠滿足整個社會的需求,這使得人們可以採用大工業生產的方式進行生產,提高生產效率,增強計算機性能,降低成本。這使得計算機變得越來越便宜,與此同時性能卻越來越強。另一方面,通過運行不同的程式,不同的計算機,或者同一台計算機在不同的時刻可以表現為不同的專用信息處理機器,例如計算器、文字處理器、記事本、資料信息瀏覽檢索機器、帳本處理機器、設計圖版、遊戲機等等。甚至同一台計算機在一個時刻同時表現為多種不同的信息處理機器(只要在這台計算機中同時運行著多個不同的程式)。正是這種通用性和專用性的完美統一,使得計算機成為人類走向資訊時代過程中最銳利的一件武器。
我們說CPU並不複雜,這是從原理上講的。而今天最先進的CPU又是極端複雜的東西,甚至可能是人類有史以來製造出的最複雜產品。產生這種情況的原因很多,這裡列舉其中最重要的兩個:
第一,人們對CPU性能的要求越來越高,因為需要由計算機完成的工作越來越複雜(現實社會總是不斷提出新問題,要求用計算機解決。一個複雜問題解決了,人們就看到了另一個更複雜的問題解決的希望,因而會去努力),完成一項工作需要執行的指令數越來越多。一個永遠也不能克服的困難是,計算機執行指令需要時間(請讀者記住計算機的這個本質性的缺點,這對於理解計算機是極端重要的)。雖然目前計算機執行指令的速度已經快得驚人(每秒鐘可以執行數以億計的指令),對於人希望用計算機解決的最複雜任務而言,CPU的速度將永遠是太慢了。為提高CPU在實際計算中的速度,人們開發了許多巧妙技術,而實現這些技術就大大地增加CPU本身的複雜性。
第二,需要用計算機處理的數據的情況越來越多。早期的計算機主要是處理數值性數據,例如整數、實數(在計算機里用一種稱為“浮點數”的方式表示),CPU也就只需要圍繞與這些數據類型有關的計算過程,提供一批指令。隨著計算機的發展,新的套用需求層出不窮。例如,當計算機被廣泛用於圖形圖像聲音信號的處理時,雖然從理論上說CPU可以不改變(原有指令足以完成工作,只要寫出相應的程式),但人們也發現,增加一些新的特殊指令,對這些特殊數據形式的處理就能更有效。新指令的增加能大大提高CPU處理特殊數據形式的效率(有時是必須的,例如為了實時地處理高清晰度的三維動畫),由此帶來的一個副作用是使CPU變得更加複雜了。
過去人們常說計算機的發展經歷了電子管、電晶體、積體電路和大規模積體電路四個階段,也把以這些方式構造起來的計算機分別稱為第一、二、三、四代計算機。今天回頭再看,這種說法已經沒有太大的意義了。製造計算機的器件變化並不是根本性的(雖然其意義不可低估,例如在降低成本、減小體積方面),這個變化過程不過是人們尋求合適方式製造計算機的一個短暫的摸索階段,在大約二十年的時間裡就已經完成了。從那以後,計算機的基本製造工藝再沒有大的變化。而在另一方面,計算機發展史中其他的事件則更重要得多。例如:計算機的小型化和個人計算機的出現,計算機網路的出現和發展,計算機使用形式和出現形式的變化等等(這些都是在大規模積體電路的範圍中完成的)。
今天,人們還一直在研究真正新型的計算機,作為與普通計算機具有根本性差異的另類信息處理工具,它們能夠發明出來嗎?將在什麼時候出現?能夠具有今天計算機這樣的性能價格比、這樣的通用性與專用性的完美統一嗎?能夠取代目前流行的這類電子數字計算機嗎?我們正拭目以待。