《計算機(jī)原理》PPT課件.ppt
《《計算機(jī)原理》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《計算機(jī)原理》PPT課件.ppt(117頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、計算機(jī)原理,第一部分 計算機(jī)原理,1.1 計算機(jī)概述 1.1.1 計算機(jī)的出現(xiàn) 1.1.2 馮.諾依曼原理 1.1.3 計算機(jī)的分類 1.1.4 計算機(jī)的組成 1.1.5 指令系統(tǒng)與程序 1.2 數(shù)據(jù)及編碼 1.2.1 數(shù)制與數(shù)的表示 1.2.2 軟件技術(shù)中的數(shù)制 1.2.3 二進(jìn)制數(shù)的運(yùn)算 1.2.4 計算機(jī)中數(shù)的表示 1.2.5 計算機(jī)數(shù)據(jù)編碼,1.3 計算機(jī)硬件 1.3.1 硬件系統(tǒng)概述 1.3.2 中央處理單元 1.3.3 主存儲器 1.3.4 高速緩沖存儲器 1.3.5 輔存儲器 1.3.6 人機(jī)交互設(shè)備 1.3.7 子系統(tǒng)的內(nèi)部連接 1.3.8 程序執(zhí)行過程,1.4 計算機(jī)軟件 1
2、.4.1 軟件的定義 1.4.2 軟件與硬件的關(guān)系 1.4.3 軟件的種類 1.4.4 軟件的生產(chǎn) 習(xí) 題 1,1.1 計算機(jī)概述,計算機(jī)的出現(xiàn),世界上第一臺純電子的計算機(jī)或許是Atanasoff-Berry機(jī)器,由約翰安塔納索夫(John Atanasoff)和他的助手克里夫德柏利(Clifford Berry)于1937年1941年在美國愛荷華州立大學(xué)建造。另外一臺是稱為Colossus(巨人)的機(jī)器由湯米福勞爾斯(Tommy Flowers)指導(dǎo)在英國建造,該機(jī)器在第二次世界大戰(zhàn)中用來破譯德國人的密碼。實際上在此期間,全世界共有10余臺這樣的機(jī)器,由于高度保密長期不為人知。以致于人們一直
3、把稍后(1946年2月14日)建造的(當(dāng)然也更加通用和快速)計算機(jī)埃尼阿克(ENIAC, Electronic Numerical Integrator and Calculator, 電子數(shù)字積分器和計算器)作為世界上第一臺電子計算機(jī)。它是由約翰莫奇利(John Manchly)和他的學(xué)生J.普雷斯佩爾艾克特(J. Presper Eckert)在美國賓夕法尼亞大學(xué)摩爾電子工程學(xué)校建造的。,ENIAC,馮諾依曼 原理,馮諾依曼在參與ENIAC的建造過程中,認(rèn)識到了當(dāng)時計算機(jī)結(jié)構(gòu)上的不足,對計算機(jī)的體系結(jié)構(gòu)進(jìn)行了研究,提出了今天我們稱為馮諾依曼原理的三條思想: (1)計算機(jī)的結(jié)構(gòu)應(yīng)由存儲器、算
4、術(shù)邏輯單元、控制單元和輸入輸出單元構(gòu)成。存儲器是計算機(jī)用來存儲的部件;算術(shù)邏輯單元是進(jìn)行計算和邏輯操作的地方;控制單元用來對存儲器、算術(shù)邏輯單元、輸入輸出設(shè)備等子系統(tǒng)的操作進(jìn)行控制;輸入子系統(tǒng)負(fù)責(zé)從計算機(jī)外部接受輸入數(shù)據(jù)和計算程序,而輸出子系統(tǒng)負(fù)責(zé)將計算機(jī)的處理結(jié)果輸出到計算機(jī)的外部。,馮諾依曼(1903-1957),(2)計算機(jī)的計算程序必須存儲在其存儲器中。 (3)計算機(jī)中的指令是一條接著一條順序執(zhí)行的。也就是說,控制器一次從存儲器取出一條指令,接著解釋它、執(zhí)行它。然后,依順序或者程序要求(例如跳轉(zhuǎn))讀取下一條指令。 依照上述原理建造的計算機(jī)稱為馮氏體系結(jié)構(gòu)的計算機(jī)。從此以后,絕大部分計算
5、機(jī),包括我們今天使用的計算機(jī),都是基于馮諾依曼原理的。,計算機(jī)的分類,計算機(jī)的組成,我們考查使用算盤計算一個四則運(yùn)算的過程。設(shè)有下面的算式: 1621561612312015 我們需要有算盤作為運(yùn)算的工具;其次要有筆和紙,用來記錄算式、中間結(jié)果和最后的計算結(jié)果;運(yùn)算過程需要有一個會打算盤的人來控制:人首先把要計算的問題和數(shù)據(jù)記錄下來,然后第一步先算出162156,把計算的中間結(jié)果記在紙上,再計算16123,把它和上一次的結(jié)果相加,再記錄在紙上,然后計算12015,再把它從上一次的結(jié)果中減去,就得到了最后的結(jié)果。,如果用一臺計算機(jī)完成上面的工作,顯然該計算機(jī)也需要有相當(dāng)于算盤用來進(jìn)行計算的部件,
6、我們稱之為運(yùn)算器;其次,該機(jī)器還要有起到紙和筆相同作用,能夠記住算式、中間結(jié)果以及最終結(jié)果的部件,我們稱之為存儲器;再次,要有起到和打算盤的人相似作用的部件,它控制整個計算過程,我們稱之為控制器。除了上面三個部分,該機(jī)器還要有可以輸入算式或計算過程的裝置,我們稱之為輸入設(shè)備;還要有將最終計算結(jié)果告訴我們的裝置,我們稱之為輸出設(shè)備。,這里的運(yùn)算器,實際上進(jìn)行的是算術(shù)和邏輯運(yùn)算,因此也可以稱為算術(shù)邏輯單元。于是,我們得到了與馮諾依曼原理第一條相同的計算機(jī)組成模型。如圖1-2所示。,至于馮諾依曼原理的第二條,在今天看起來似乎是顯而易見的。但早期的計算機(jī)只是將數(shù)據(jù)存儲在存儲器中,而程序需要在計算機(jī)的外
7、部通過開關(guān)板的設(shè)置和連線的改變來編排。這種方式操作十分不便,效率極低,容易引起錯誤。因此限制了計算機(jī)的使用。這是馮諾依曼要將存儲程序作為一條重要的原理提出的原因。 馮諾依曼原理的第三條說:計算機(jī)必須一步一步依次執(zhí)行程序的每一步,這一般來說是最自然、最容易實現(xiàn)的。但今天已經(jīng)有不遵從此原理的計算機(jī),這已經(jīng)超出了本課程的范圍。,可以看出,計算機(jī)除了必須包括運(yùn)算器(算術(shù)邏輯單元)、控制器、存儲器以及輸入輸出設(shè)備等物理器件外,還需要有保存在存儲器中的數(shù)據(jù)和程序才能工作。我們把組成計算機(jī)的物理器件,稱為計算機(jī)的硬件。而計算機(jī)的數(shù)據(jù)和程序,稱為計算機(jī)的軟件。,指令系統(tǒng)與程序,計算機(jī)通常有以下五類指令: 數(shù)據(jù)
8、傳送指令:用來將數(shù)據(jù)從計算機(jī)的一個存儲單元傳 送到另一個存儲單元; 算術(shù)運(yùn)算指令:用來進(jìn)行加、減、乘、除等算術(shù)運(yùn)算; 邏輯運(yùn)算指令:用來進(jìn)行與、或、非等邏輯運(yùn)算。關(guān)于這些運(yùn)算的定義見下一節(jié); I/O指令:完成計算機(jī)的數(shù)據(jù)輸入和輸出操作; 控制指令:用來控制程序的執(zhí)行流程。,指令通常分成操作碼和操作數(shù)兩大部分。操作碼表示計算機(jī)執(zhí)行什么操作;操作數(shù)是參加操作的數(shù)本身或者它在存儲器中的位置。存儲器中的位置用術(shù)語說就是地址(Address)。 使用計算機(jī)解決問題時,必須把問題的解法編成一條條指令,然后讓計算機(jī)依次執(zhí)行。為了能讓計算機(jī)正確識別,這些指令必須是所用計算機(jī)的指令系統(tǒng)中具有的指令。這些解決問題
9、的一系列指令合在一起,稱為程序。,為了能讓計算機(jī)自動執(zhí)行程序,就必須把它預(yù)先存放在存儲器的某個區(qū)域。程序通常是順序執(zhí)行的,所以程序中的指令也是一條一條順序存放的。計算機(jī)在執(zhí)行時,要把這些指令一條條取出來加以執(zhí)行。因此需要有一個器件能夠跟蹤指令在內(nèi)存中的地址,這種器件叫程序計數(shù)器PC(Program Counter)。在程序開始執(zhí)行時,給PC賦以程序中第一條指令所在的地址,然后每取出一條指令PC中的內(nèi)容自動更新以指向下一條指令的地址,如此才可保證指令的順序執(zhí)行。,1.2 計算機(jī)中的數(shù)與數(shù)據(jù)編碼,數(shù)制與數(shù)的表示,從小學(xué)起我們就知道,如果要表示我們雙手的手指個數(shù),用數(shù)字10即可。這里10由1和0兩個
10、阿拉伯?dāng)?shù)字符號構(gòu)成。由于1處在從右邊開始的第二位,1代表了拾。我們對這種表示方法已經(jīng)習(xí)以為常了,以至于忽略了一個明顯的事實:盡管數(shù)的多少是客觀的,但我們表示數(shù)的形式、方法實際上是主觀的。例如,如果我們規(guī)定處在第二位的1代表8,那么,就要用12表示我們的手指個數(shù)。這里,主觀規(guī)定的表示數(shù)的方法,或者說體制,就是數(shù)制。一個數(shù)制的核心,主要是對該數(shù)制下數(shù)的每一位所代表的多少進(jìn)行規(guī)定。,我們現(xiàn)在常用的數(shù)制是拾(十)進(jìn)制,從拾(十)進(jìn)制的規(guī)則,我們可以推論出數(shù)制的一般規(guī)律。例如:十進(jìn)制數(shù)245.24,代表二百四十五點(diǎn)二四,可以表示為: 245.24 21004105120.1040.01 21024101
11、5100210-1410-2 這就是說,處在小數(shù)點(diǎn)左邊第三位的2代表2102;小數(shù)點(diǎn)左邊第一位的5代表5100;小數(shù)點(diǎn)右邊第二位的4代表410-2 這里,102、100和10-2稱為十進(jìn)制位的權(quán)。一個數(shù)的值,就是該數(shù)每一位的數(shù)碼與其權(quán)的乘積的和。,我們不妨將小數(shù)點(diǎn)左邊第一位定義為第0位,右邊第一位定義為-1位,然后依次類推。則十進(jìn)制數(shù)第n位的權(quán)為10n。這里n是整數(shù)(可正可負(fù)),如下表:,將上面關(guān)于十進(jìn)制的規(guī)律一般化,我們可以得出,一個q進(jìn)制數(shù),其第n位的權(quán)為qn。而表示這種進(jìn)制的數(shù)需要q個符號,代表從0到q-1的數(shù)字。舉例來說,5進(jìn)制數(shù)第n位的權(quán)為5n,表示5進(jìn)制數(shù)需要0、1、2、3、4五個
12、數(shù)字符號;2進(jìn)制數(shù)第n位的權(quán)為2n,表示2進(jìn)制數(shù)需要0、1兩個數(shù)字符號。,根據(jù)上面的推論,假設(shè)一個有m+1位整數(shù)、n位小數(shù)的q進(jìn)制數(shù),其m整數(shù)位的數(shù)字是km,m-1整數(shù)位的數(shù)字是km-1,依此類推,第0整數(shù)位的數(shù)字為k0,小數(shù)點(diǎn)后第一位數(shù)字是k -1,小數(shù)點(diǎn)后第二位的數(shù)字是k -2,依此類推,小數(shù)點(diǎn)后第n位的數(shù)字是k-n,則一般化后得該q進(jìn)制數(shù)的十進(jìn)制值V為: Vkmqmkm-1qm-1k0q0 k -1q-1 k -2q-2k n q-n,可以得出,表示一個客觀的數(shù),使用任何一種數(shù)制(主觀方法)都是可行的。不同的數(shù)制,其表示數(shù)的大小、精度是沒有分別的。不同的只是,表示相同大小和精度的數(shù),所需
13、要的位數(shù)不同。 另外,我們也不難想象,二進(jìn)制數(shù)是最低的進(jìn)制,它只需要代表0和1的兩個符號表示。從這個角度看,沒有比二進(jìn)制更簡單的數(shù)制了。,軟件技術(shù)中的數(shù)制,電子計算機(jī)表示數(shù)的方法只能是通過其內(nèi)部的電子器件(就像算盤的珠子)的不同狀態(tài)組合來實現(xiàn)。由于二進(jìn)制數(shù)只需要兩個符號就可以表示,這顯然最便于用電子器件實現(xiàn)。例如,一個電磁繼電器就有開和關(guān)兩種狀態(tài),這正好可以表示二進(jìn)制數(shù)的0和1。因此,計算機(jī)中的數(shù),全部采用二進(jìn)制。,由于我們?nèi)祟愐呀?jīng)習(xí)慣了采用十進(jìn)制數(shù)進(jìn)行記數(shù)和思考,計算機(jī)的二進(jìn)制數(shù)在需要與人交流時要進(jìn)行轉(zhuǎn)換。一種情況是將人所習(xí)慣的十進(jìn)制數(shù)輸入到計算機(jī)時要轉(zhuǎn)換為二進(jìn)制數(shù);另一種情況是,計算機(jī)計算
14、出二進(jìn)制數(shù)結(jié)果后要轉(zhuǎn)換為人能理解的十進(jìn)制數(shù)。,二進(jìn)制數(shù)的缺點(diǎn)是表示一個相同大小和精度的數(shù),它需要的位數(shù)很多。因此轉(zhuǎn)換起來很不方便。為了便于二進(jìn)制數(shù)和十進(jìn)制數(shù)的轉(zhuǎn)換,也為了在書寫時更加簡便易讀,二進(jìn)制數(shù)經(jīng)常要轉(zhuǎn)換成8進(jìn)制數(shù)和16進(jìn)制數(shù)。因此,在軟件技術(shù)中我們經(jīng)常使用的數(shù)制有2進(jìn)制、8進(jìn)制、10進(jìn)制和16進(jìn)制。,16進(jìn)制的數(shù)需要表示0到15的16個符號。使用阿拉伯?dāng)?shù)字09后,還差6 個,于是我們采用英文字母A、B、C、D、E和F分別表示10到15的數(shù)字。如下表所示。這樣,一個16進(jìn)制數(shù)可能寫成23EF.AB。,在某些混合使用不同數(shù)制的場合,我們需要有一個標(biāo)識數(shù)的數(shù)制的方法。例如,數(shù)值100如果不加
15、標(biāo)識,我們就不能確定它究竟是2進(jìn)制數(shù)、8進(jìn)制數(shù)、10進(jìn)制數(shù),還是16進(jìn)制數(shù)。標(biāo)識數(shù)的數(shù)制的方法,在不同的場合有不同的具體要求,我們需要隨時了解并遵守。一般當(dāng)我們在進(jìn)行不同數(shù)制的數(shù)的運(yùn)算或轉(zhuǎn)換時,常采用圓括號加下標(biāo)的方式標(biāo)明一個數(shù)的數(shù)制。例如:(100)2表示一個二進(jìn)制數(shù);(100)8為8進(jìn)制數(shù);(100)10是10進(jìn)制數(shù);(100)16表示一個16進(jìn)制數(shù)。一般,10進(jìn)制數(shù)是缺省的數(shù)制,所以有時候省略對10進(jìn)制數(shù)的標(biāo)注。,課堂練習(xí),下列數(shù)書寫正確嗎(口答): (1) (110)2 (2) (012)2 (3) (110)8 (4) (1028)8 (5) (037)16 (6) (A12.3G5
16、)16,將其他數(shù)制的數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),使用前面的公式可以將任何一種數(shù)制的數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。例如: (100)21220210204; (100)818208108064; (100)16116201610160256; 前面所列舉的16進(jìn)制數(shù)23EF.AB的10進(jìn)制值為: (23EF.AB)162163316214161 151601016-11116-2 9199.66796875,課堂練習(xí),將下列數(shù)轉(zhuǎn)換成十進(jìn)制數(shù): (1) (110)2 (2) (110)8 (3) (110)16 (4) (100110)2 (5) (100110)8 (6) (100110)16 (7) (7301)8
17、 (8) (AB2.E3)16,將十進(jìn)制數(shù)轉(zhuǎn)換為其他數(shù)制的數(shù),Word文檔: 將十進(jìn)制數(shù)轉(zhuǎn)換為其他數(shù)制的數(shù),二進(jìn)制、八進(jìn)制和十六進(jìn)制數(shù)的轉(zhuǎn)換,Word文檔: 二進(jìn)制、八進(jìn)制和十六進(jìn)制數(shù)的轉(zhuǎn)換,二進(jìn)制數(shù)的運(yùn)算,計算機(jī)中數(shù)是用二進(jìn)制方式表示的,那么運(yùn)算也是以二進(jìn)制方式進(jìn)行的。這一節(jié)我們對二進(jìn)制整數(shù)的各種運(yùn)算進(jìn)行了解。由于本節(jié)的數(shù)大部份是二進(jìn)制,所以對二進(jìn)制數(shù)省略了數(shù)制標(biāo)注。,算術(shù)運(yùn)算加法,算術(shù)運(yùn)算指加、減、乘和除。二進(jìn)制數(shù)的算術(shù)運(yùn)算完全類似于十進(jìn)制。 二進(jìn)制加法的運(yùn)算規(guī)則為: 000; 01101; 110 進(jìn)位1 1111 進(jìn)位1,例: 計算二進(jìn)制數(shù)10110101與1111的和。 解:進(jìn)位:
18、1 1 1 1 1 1 被加數(shù): 1 0 1 1 0 1 0 1 加數(shù): 1 1 1 1 和: 1 1 0 0 0 1 0 0 即:10110101111111000100。,算術(shù)運(yùn)算減法,二進(jìn)制減法的運(yùn)算規(guī)則為: 000; 110; 101; 011 借一位。,例: 計算二進(jìn)制數(shù)算式1110111010111010的結(jié)果。 解:借位:0 1 1 0 0 0 0 借位后被減數(shù):1 0 0 0 1 1 1 被減數(shù):1 1 1 0 1 1 1 0 減數(shù): 1 0 1 1 1 0 1 0 差:0 0 1 1 0 1 0 0 即:1110111010111010110100,算術(shù)運(yùn)算乘法,二進(jìn)制乘法的
19、運(yùn)算規(guī)則為: 000; 01100; 111。 左移運(yùn)算:將所有位左移,末尾補(bǔ)0。 如:101左移一位:1010(相當(dāng)于乘以2) 101左移兩位:10100(相當(dāng)于乘以22),算術(shù)運(yùn)算除法,除法是乘法的逆運(yùn)算。 右移運(yùn)算:將所有位右移,末尾位移出。 如:101左移一位:10(相當(dāng)于除以2取整) 101左移兩位:1(相當(dāng)于除以22取整),邏輯運(yùn)算,所謂邏輯運(yùn)算是指對邏輯真(True)和假(False)所進(jìn)行的運(yùn)算。計算機(jī)中全部采用二進(jìn)制數(shù),而二進(jìn)制數(shù)的每一位要么是1,要么是0。如果我們用1表示邏輯狀態(tài)真,0表示邏輯狀態(tài)假,則可以對二進(jìn)制數(shù)的每一位按邏輯運(yùn)算規(guī)則進(jìn)行運(yùn)算。,邏輯運(yùn)算按照需要參與的邏
20、輯狀態(tài)個數(shù),分為一元運(yùn)算和二元運(yùn)算。一元運(yùn)算只有一種,就是非(Not)運(yùn)算。非運(yùn)算改變參與運(yùn)算的邏輯狀態(tài)。即如果狀態(tài)為真,則變?yōu)榧?;反之,如果狀態(tài)為假,則變?yōu)檎妗6\(yùn)算有與(And)、或(Or)和異或(Xor)三種。參與與運(yùn)算的兩個狀態(tài),只有都是真時,結(jié)果才為真;參與或運(yùn)算的兩個狀態(tài),只要有一個為真,結(jié)果就為真;參與異或運(yùn)算的兩個狀態(tài),只有狀態(tài)不同時結(jié)果才為真。,各種邏輯運(yùn)算的規(guī)則可以通過其真值表描述:,例: 對二進(jìn)制數(shù)10011001作非運(yùn)算。 解:對二進(jìn)制數(shù)的邏輯運(yùn)算,是按位進(jìn)行的。即對二進(jìn)制數(shù)逐位進(jìn)行邏輯運(yùn)算。則: NOT 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1
21、0 即:10011001的邏輯非為1100110。,例: 試計算二進(jìn)制數(shù)10011001和二進(jìn)制數(shù)11011011與、或、異或的結(jié)果。 解:與運(yùn)算: 1 0 0 1 1 0 0 1 AND 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 或運(yùn)算: 1 0 0 1 1 0 0 1 OR 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 異或運(yùn)算: 1 0 0 1 1 0 0 1 XOR 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0,課堂練習(xí),計算: (1) 1110+1001101 (2) 10111+10111 (3) 11110-10101 (
22、4) 1011001-10110 (5) 1011001的NOT運(yùn)算結(jié)果 (6) 11110、10101的AND、OR、XOR運(yùn)算結(jié)果,計算機(jī)中數(shù)的表示,我們已經(jīng)粗略地知道,計算機(jī)中的數(shù)是用二進(jìn)制表示的。本節(jié)將介紹: 無符號的整數(shù) 帶符號整數(shù) 整數(shù)的偏移碼 浮點(diǎn)表示法,無符號整數(shù)的表示,無符號的整數(shù),就是從0到無窮大的自然數(shù)。表示這種數(shù)時不需要考慮符號,只需要將它轉(zhuǎn)化成二進(jìn)制,然后存放在計算機(jī)中即可。 計算機(jī)存放二進(jìn)制數(shù)時,通常是有一定的長度限制的。這就是說,計算機(jī)保存的無符號數(shù)的范圍是有限的。根據(jù)數(shù)制的定義公式,一個 n 位無符號二進(jìn)制數(shù)的最大值是:2n -1,帶符號整數(shù)的表示,計算機(jī)中參與
23、計算的數(shù),顯然是有正有負(fù)的。帶符號的二進(jìn)制整數(shù)存在多種表示方法,本小節(jié)主要介紹二進(jìn)制數(shù)的原碼、反碼和補(bǔ)碼,以及他們的特點(diǎn)和應(yīng)用。,原碼,如果用二進(jìn)制數(shù)的最高位表示其符號,用剩下的位表示其絕對值,這樣得到的二進(jìn)制數(shù)的表示就是原碼。原碼表示中,正數(shù)的最高位為0,負(fù)數(shù)的最高位為1。例如: 整數(shù) (+105)10,其8位二進(jìn)制原碼為:0 1101001; 整數(shù) (-105)10,其8位二進(jìn)制原碼為:1 1101001。 上面的表示中,二進(jìn)制數(shù)01101001和11101001,稱為機(jī)器數(shù),而其實際所代表的值+105和-105,稱為該機(jī)器數(shù)的真值。,原碼表示的優(yōu)點(diǎn)是簡單易懂,與真值的換算方便。但用原碼計
24、算時,如果兩個異號數(shù)相加或者同號數(shù)相減,就需要用到減法。在計算機(jī)設(shè)計中,要盡量將運(yùn)算用加法和移位完成。因此,計算機(jī)中實際上沒有用原碼形式存儲帶符號的整數(shù)。但由于其簡單與直觀,在不涉及數(shù)字運(yùn)算的應(yīng)用場合還是會用到。,反碼,正數(shù)的反碼與原碼相同。即最高位是符號位,用0表示正,其余位表示該數(shù)的值。例如: (+127)10的8位二進(jìn)制反碼:01111111; (+31)10的8位二進(jìn)制反碼:00011111。 負(fù)數(shù)的反碼通過將其正數(shù)的反碼按位取反(包括符號位)得到。例如: (-127)10的8位二進(jìn)制反碼:10000000; (-31)10的8位二進(jìn)制反碼:11100000。 在反碼表示中,0有兩種表
25、示方法。姑且稱為0和0: +0的8位二進(jìn)制反碼: 00000000; -0的8位二進(jìn)制反碼: 11111111。,反碼的特點(diǎn): (1)0有兩種表示方法; (2)n位二進(jìn)制反碼所能表示的數(shù)的范圍是2 n112 n11。如8位二進(jìn)制反碼所能表示數(shù)的范圍是127127; (3)當(dāng)反碼的符號位是0(即正數(shù))時,后面的位數(shù)為數(shù)值部分;當(dāng)符號位為1(即負(fù)數(shù)時),將后面的位數(shù)按位取反后才得到其數(shù)值。 由于反碼中0有兩種表示,會引起很大的混亂,另外,進(jìn)行加減法也不方便。所以計算機(jī)中沒有使用反碼存儲帶符號的整數(shù)。反碼的意義在于它是下面要介紹的補(bǔ)碼的基礎(chǔ)。另外,它的某些特性使其可用于諸如錯位檢測和糾錯的數(shù)據(jù)通信應(yīng)
26、用程序中。,補(bǔ)碼,帶符號數(shù)的n位二進(jìn)制補(bǔ)碼按如下的步驟得到: (1)首先將數(shù)的絕對值轉(zhuǎn)換為二進(jìn)制數(shù),不管符號; (2)如果得到的二進(jìn)制位數(shù)不足n位,在高位補(bǔ)0,直到總位數(shù)為n; (3)如果符號為正,就不需要作變動。如果符號為負(fù),則從最低位開始到首次出現(xiàn)的1為止,將所有的0和首次出現(xiàn)的1保持不變,其余位取反。,例:求(+31)10和( -31)10的8位二進(jìn)制補(bǔ)碼。 解:31所對應(yīng)的二進(jìn)制數(shù)為11111。 ( +31)10的8位二進(jìn)制補(bǔ)碼只需在高位補(bǔ)3個0,即00011111。而( -31)10的補(bǔ)碼需要保持00011111最低位的1不變,其他位取反。即11100001。 例:求( +126)1
27、0和( -126)10的8位二進(jìn)制補(bǔ)碼。 解: ( 126)10所對應(yīng)的二進(jìn)制數(shù)為1111110。( +126)10的8位二進(jìn)制補(bǔ)碼只需在高位補(bǔ)1個0,即01111110。而 ( -126)10的補(bǔ)碼需要保持01111110最低位的0和第一個1不變,其他位取反。即10000010。,特別地有: +0的補(bǔ)碼:00000000; -0的補(bǔ)碼:00000000。 這樣,在補(bǔ)碼表示中,0只有一種表示法,克服了在反碼中0有兩種表示的缺點(diǎn)。,求一個補(bǔ)碼的十進(jìn)制真值的方法是: (1)如果最高位是0,則直接將此二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),并在前面加上正號; (2)如果最高位是1,則將最低位連續(xù)的0和第一個出現(xiàn)的1
28、保持不變,將其余位(包括符號位)按位取反,然后將得到的二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),并在前面加負(fù)號。,例:計算8位二進(jìn)制補(bǔ)碼10000000的真值。 解:由于最高位為1,所以該數(shù)是負(fù)數(shù)。將該二進(jìn)制數(shù)最低位連續(xù)的0和第一個出現(xiàn)的1保持不變。這樣得到的二進(jìn)制數(shù)還是10000000。將此數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)為128,然后在前面加負(fù)號,得到(128)10。所以,8位二進(jìn)制補(bǔ)碼10000000的真值是-128。 從該例子看出,8位二進(jìn)制補(bǔ)碼所表示的數(shù)的范圍是 -128+127。一般地,我們可以給出,一個n位二進(jìn)制補(bǔ)碼所能表示的數(shù)的范圍是-2n1+(2n11)。,以上面列舉的補(bǔ)碼表示的數(shù)為例,我們考查用補(bǔ)碼進(jìn)行加法
29、運(yùn)算的情況。首先我們看31-127 = 31+(-127)。算式為: 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 結(jié)果10100000也是一個補(bǔ)碼表示,其符號為負(fù),絕對值是保持最低位連續(xù)的0和第一個1不變,將其余位按位取反,最后得到01100000 =(96)10。所以結(jié)果為-96,與實際相符。,總結(jié)上述內(nèi)容,補(bǔ)碼有以下特點(diǎn): (1)0只有一種表示,即所有位全為0; (2)n位二進(jìn)制補(bǔ)碼表示數(shù)的范圍為-2n1+(2n11) ; (3)通過用補(bǔ)碼表示帶符號的數(shù),可以用加法運(yùn)算實現(xiàn)減法,有助于簡化計算機(jī)的設(shè)計。 由于上述特點(diǎn),現(xiàn)在計算機(jī)中帶符號的
30、數(shù),實際上都是采用補(bǔ)碼存儲的。二進(jìn)制補(bǔ)碼是現(xiàn)在計算機(jī)中最重要、應(yīng)用最普遍的整數(shù)表示法。,帶符號整數(shù)表示法小結(jié),在上述各小節(jié)的介紹中,需要注意的一個共同點(diǎn)是,當(dāng)我們將一個帶符號整數(shù)轉(zhuǎn)換為某種形式的二進(jìn)制編碼時,編碼的長度是一個重要的參數(shù)。例如,同樣的一個整數(shù)5,編碼成4位二進(jìn)制數(shù)和8位二進(jìn)制數(shù)結(jié)果是不同的。在一般的數(shù)據(jù)表示中,整數(shù)部分最前面的0是沒有意義的,可以省略。但在作二進(jìn)制數(shù)編碼時,如果轉(zhuǎn)換的二進(jìn)制數(shù)位數(shù)不夠編碼長度,我們要用0來填充。下面的例子可以說明這點(diǎn)。 例:分別寫出(5)10和(5)10的4位、6位和8位二進(jìn)制補(bǔ)碼。 解:(5)10和(5)10不同位數(shù)的補(bǔ)碼見下表:,另外一個要注意
31、的地方是,計算機(jī)中的機(jī)器數(shù)與真值之間的對應(yīng)關(guān)系,決定于機(jī)器數(shù)的編碼方式。即同樣一個機(jī)器數(shù),它所代表的無符號數(shù)、原碼、反碼和補(bǔ)碼的真值是不同的。換句話說,用不同的編碼規(guī)則去解讀同一機(jī)器數(shù),會得到不同的結(jié)果。 下表列出了所有8位機(jī)器數(shù)按不同的編碼去解讀所得的十進(jìn)制數(shù)真值。,計算機(jī)數(shù)據(jù)編碼,上一節(jié)我們探討了計算機(jī)中數(shù)的表示形式。然而,今天的計算機(jī)并不單純用作計算。計算機(jī)實際要處理的數(shù)據(jù)還包括文字、圖片、聲音以及動畫等。那么,這些數(shù)據(jù)形式在計算機(jī)中是如何表示的呢?答案是用二進(jìn)制編碼。所謂編碼(Code),也可以叫代碼。二進(jìn)制編碼就是用一系列的二進(jìn)制數(shù)字代表某種數(shù)據(jù)。用這種觀點(diǎn)看,上一節(jié)的內(nèi)容實際上是關(guān)
32、于計算機(jī)中數(shù)值的二進(jìn)制編碼的。數(shù)值在計算機(jī)中的編碼由數(shù)值天然的大小決定。而文字、圖像等數(shù)據(jù)的編碼則需要人為的規(guī)定。,采用二進(jìn)制數(shù)字編碼表示數(shù)據(jù)的原因和我們在上一節(jié)中所述道理一樣。這就是數(shù)據(jù)在計算機(jī)中最終都是要用計算機(jī)物理器件的狀態(tài)組合來表示的,而二進(jìn)制數(shù)的物理表示最為簡便。表示非數(shù)值數(shù)據(jù)的二進(jìn)制數(shù),并沒有數(shù)量意義(有時或許有序號意義),所以也可以把他們看成是一系列二進(jìn)制位(bit)的排列模式,稱為位模式(bit pattern)。通常把長度為8的位模式稱為1個字節(jié)。它是我們度量位模式長度,有時甚至是處理數(shù)據(jù)的基本單位。 數(shù)據(jù)被編碼存入計算機(jī)并被處理后,當(dāng)需要從計算機(jī)中輸出時,要重新轉(zhuǎn)換為數(shù)據(jù)本
33、來的形式。將原始形式的數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制編碼的過程稱為編碼(encode),而將二進(jìn)制編碼轉(zhuǎn)換為原始形式的數(shù)據(jù)的過程稱為解碼(decode)。,文字的編碼 ASCII編碼,1960年代初期,美國國會圖書館(Library of Congress, LC)制訂了英文字符集和交換碼,以作為美國圖書館界書目交換的共同標(biāo)準(zhǔn)。后來這個交換碼發(fā)展成為美國的國家標(biāo)準(zhǔn)ASCII(American Standard Code for Information Interchange,美國信息交換標(biāo)準(zhǔn)代碼),而且被國際標(biāo)準(zhǔn)化組織(International Standard Organization, ISO)接受為
34、國際標(biāo)準(zhǔn),標(biāo)準(zhǔn)號為ISO646(其全名為7-bit coded character set for information interchange,信息交換用7位編碼字符集)。該編碼使用7位表示一個符號,總共可表示的符號為27128種。,漢字編碼GB2312編碼,GB2312碼是中國國家漢字信息交換碼,全稱信息交換用漢字編碼字符集基本集。由國家標(biāo)準(zhǔn)總局于1981年5月發(fā)布,通行于中國大陸和新加坡等地 。GB2312收錄簡化漢字及符號、字母、日文假名等共7445個圖形字符,其中漢字占6763個。GB2312將收錄的漢字分成兩級:第一級是常用漢字計3755個,第二級漢字是次常用漢字計3008個。G
35、B2312中一個圖形字符采用兩個字節(jié)表示,每個字節(jié)采用七位編碼。習(xí)慣上稱第一個字節(jié)為高字節(jié),第二個字節(jié)為低字節(jié)。高字節(jié)和低字節(jié)的編碼范圍都是從(21)16到(7E)16。漢字編碼從(3021)16開始,結(jié)束于(777E)16。當(dāng)GB2312編碼在計算機(jī)內(nèi)存儲時,為了與ASCII碼區(qū)分,編碼的高字節(jié)和低字節(jié)的最高位要置為1,這樣得到的代碼稱為“內(nèi)碼”。這樣,與GB2312編碼對應(yīng)的內(nèi)碼是在原編碼的基礎(chǔ)上加(8080)16。該字符集是幾乎所有的中文系統(tǒng)和國際化的軟件都支持的中文字符集,這也是最基本的中文字符集。,1.3 計算機(jī)硬件,硬件系統(tǒng)概述,基于馮諾依曼原理的計算機(jī),從硬件方面看是由運(yùn)算器、控
36、制器、存儲器以及輸入輸出設(shè)備組成的。運(yùn)算器是用于加工、處理數(shù)據(jù)的部件,主要完成對數(shù)據(jù)的算術(shù)和邏輯運(yùn)算??刂破魇怯嬎銠C(jī)的控制部件,它控制其他部件協(xié)調(diào)統(tǒng)一工作,并且還能完成對指令的分析和執(zhí)行。存儲器是計算機(jī)的記憶裝置,它的主要功能是存放程序和數(shù)據(jù)。輸入設(shè)備從計算機(jī)外部獲取數(shù)據(jù),而輸出設(shè)備將計算機(jī)處理的結(jié)果輸出到外部。上述五大部分之間是相互配合關(guān)聯(lián)的??刂破饕蚱渌考l(fā)送控制信號,以協(xié)調(diào)它們的工作;運(yùn)算器要從輸入設(shè)備獲得數(shù)據(jù),與存儲器雙向交換數(shù)據(jù),將計算結(jié)果傳給輸出設(shè)備;而控制器要從存儲器中獲得指令代碼數(shù)據(jù)。 中央處理單元、主存儲器、高速緩沖存儲器、輔存儲器以及其他輸入/輸出設(shè)備等,是構(gòu)成計算機(jī)系
37、統(tǒng)的主要物理器件,也可看成是構(gòu)成計算機(jī)系統(tǒng)的子系統(tǒng)。下面我們對它們逐一簡介。,存儲器在現(xiàn)代計算機(jī)中,被分成多種層次。其中最主要的是內(nèi)存,也稱為主存,是計算機(jī)進(jìn)行計算和數(shù)據(jù)處理的工作場所。程序在執(zhí)行時,程序代碼和相關(guān)數(shù)據(jù)都是存放在主存中的。而在CPU內(nèi)部,有一些暫時存放數(shù)據(jù)的存儲單元,稱為寄存器,它與運(yùn)算部件之間有緊密的聯(lián)系,有助于提高計算的速度。在CPU與主存之間,還有一種用來提高CPU對主存的讀寫速度的存儲器,稱為高速緩沖存儲器(Cache)。為了獲得高的性能,現(xiàn)在很多計算機(jī)將高速緩沖存儲也分為幾級。高速緩存現(xiàn)在一般直接集成在CPU上。在主存之外,還有用來在計算機(jī)斷電后持久保存程序和數(shù)據(jù)的大
38、容量存儲設(shè)備,如磁盤、光盤等,稱為外存,或者輔存。輔存所起的作用與主存不同,它可讓計算機(jī)從外部獲取數(shù)據(jù),也可將結(jié)果輸出給外部,所以既是輸入設(shè)備,也是輸出設(shè)備。上述存儲器從寄存器、高速緩存、主存到輔存,存儲容量是越來越大,而讀寫速度卻是越來越低。如圖32所示。,中央處理單元,中央處理單元(CPU)是計算機(jī)的心臟。它有三個組成部分:算術(shù)邏輯單元(ALU)、控制器、寄存器組。,算術(shù)邏輯單元,CPU中的算術(shù)邏輯單元負(fù)責(zé)算術(shù)和邏輯運(yùn)算。算術(shù)運(yùn)算中最簡單的一元運(yùn)算是增量(加1)和減量(減1)運(yùn)算。最簡單的二元運(yùn)算是加、減、乘和除。邏輯運(yùn)算中,包含一元邏輯運(yùn)算非(Not),二元邏輯運(yùn)算與、或和異或。不管是邏
39、輯運(yùn)算還是算術(shù)運(yùn)算,都必須在控制器的管理下完成。例如,控制器要根據(jù)指令代碼從各種運(yùn)算中選擇一種。,寄存器,寄存器是CPU用來臨時存放數(shù)據(jù)的獨(dú)立的高速存儲單元。CPU在計算時需要多個寄存器參與。多個寄存器組成寄存器組。寄存器組的每一個寄存器都有一個專門的名字或代號。常見的寄存器有以下幾種: (1)數(shù)據(jù)寄存器 過去,計算機(jī)只有一個寄存器用來交替存儲輸入數(shù)據(jù)(直接來自內(nèi)存的輸入數(shù)據(jù))或結(jié)果?,F(xiàn)在,越來越多的復(fù)雜運(yùn)算改由硬件設(shè)備實現(xiàn)(而不是使用軟件),因而需要一些寄存器來保存這些運(yùn)算的中間結(jié)果。這就是在計算機(jī)CPU中需要大量的數(shù)據(jù)寄存器來提高運(yùn)算速度的原因。在圖33中,我們只是示意性地畫出了3個通用數(shù)
40、據(jù)寄存器,分別是R1、R2和Rn。,(2)指令寄存器 現(xiàn)代計算機(jī)中不僅要存儲數(shù)據(jù),還要存儲相應(yīng)的程序。CPU的主要職責(zé)是從內(nèi)存中逐條地讀取指令,并將取出的指令存儲在指令寄存器(圖33中的寄存器I)中,解釋并執(zhí)行指令。后面我們還會討論這個問題。 (3)程序計數(shù)器 CPU中另一個專用寄存器是程序計數(shù)器(圖33中的PC寄存器) 。程序計數(shù)器中保存當(dāng)前正在執(zhí)行的指令的內(nèi)存地址。當(dāng)前指令執(zhí)行完畢,計數(shù)器自動修改,指向下一條指令的地址。,控制器,CPU的第三個部分是控制器??刂破黝愃朴谌四X中控制身體各部分運(yùn)動的區(qū)域??刂剖峭ㄟ^電子線路的電平狀態(tài)(高電平或低電平)實現(xiàn)的。例如,假定一個簡單的ALU可以進(jìn)行1
41、0種不同的運(yùn)算。為了指定這些運(yùn)算,控制單元需要通過4條線路連接到算術(shù)邏輯單元。四條線路每條都有高電平(斷開)和低電平(導(dǎo)通)兩種狀態(tài),組合起來可以表示16種不同的狀態(tài)(24)??梢允褂闷渲?0種表示算術(shù)和邏輯運(yùn)算,而其他的6種作別的用途。如果用0表示線路的高電平,1表示線路的低電平,則線路的狀態(tài)編碼就是0000、0001、0010、1111??梢远x0000(所有線路高電平,即全部斷開)表示不進(jìn)行任何運(yùn)算,0001表示加,0010表示減,等等。,主存儲器,主存儲器是計算機(jī)內(nèi)部的另一個主要子系統(tǒng)(如下頁圖)。它是存儲單元的集合。每一個存儲單元都有唯一的標(biāo)識號,稱為地址。數(shù)據(jù)以稱為字(Word)的
42、二進(jìn)制位組合傳入和傳出存儲器。也就是說,字是存儲器讀寫的基本單位。計算機(jī)一個存儲單元所能存放的數(shù)據(jù),剛好是該計算機(jī)的一個字。字的位數(shù)稱為字長。不同的計算機(jī)的字長可能是不同的。如早期的微型計算機(jī),字長一般是8位,后來,微機(jī)的字長逐步發(fā)展為16位、32位以及現(xiàn)在的64位。我們說某計算機(jī)是多少位的,就是指該計算機(jī)的字長是多少位。顯然,計算機(jī)的字越長,對存儲器的讀寫效率越高。但字長增加也成倍增加了計算機(jī)的復(fù)雜性和制造的難度。,前面曾經(jīng)指出8位的二進(jìn)制位模式稱為一個字節(jié)(Byte)。字節(jié)在計算機(jī)技術(shù)中是一個應(yīng)用非常普遍的度量單位。計算機(jī)的字長可以用字節(jié)表示,存儲容量的大小也是以字節(jié)為基本單位的。下表列出
43、了常用的表示存儲容量的單位。,地址空間,存儲器中的每個存儲單元,其大小等于該計算機(jī)的字長,都需要有一個唯一地址來識別。存儲器中所有可標(biāo)識的獨(dú)立地址集合,稱為地址空間。例如,一個64KB、字長為1字節(jié)的存儲器的地址空間為從0到65535。在計算機(jī)內(nèi)部,地址也是用二進(jìn)制位模式表示的,所以上面的地址空間實際上是從(0000000000000000)2(地址0)到(1111111111111111)2(地址65535)。我們可以把他們看成無符號二進(jìn)制整數(shù)。通常,如果計算機(jī)有n個字(注意,不是字節(jié))的存儲單元,那就需要有l(wèi)og2n位的無符號二進(jìn)制整數(shù)來標(biāo)識每一個存儲單元。 例: 一臺計算機(jī)有128MB內(nèi)
44、存。該計算機(jī)字長為64位。需要多少位來尋址內(nèi)存中的任意一個字(word)? 解:內(nèi)存空間容量為128MB,即227B。字長64位即8(即23)字節(jié)。所以內(nèi)存空間共有224個單字的存儲單元。尋址任意一個單字需要的地址的位數(shù)是log2224,即24位。,主存儲器的種類,在計算機(jī)中,通常有兩種類型的主存儲器。一種是隨機(jī)讀寫存儲器(Random Access Memory, RAM),一種是只讀存儲器(Read Only Memory, ROM)。,RAM,隨機(jī)存取存儲器(RAM)是計算機(jī)主存的主要組成部分。 RAM和ROM的主要區(qū)別在于,用戶可以讀寫RAM,即用戶可以在RAM中寫信息,之后可以方便地
45、通過覆蓋來擦除原有信息。RAM的另一個特點(diǎn)是易失性。當(dāng)計算機(jī)斷電或者關(guān)掉計算機(jī),RAM中的數(shù)據(jù)將不復(fù)存在。RAM從技術(shù)上可以分為靜態(tài)隨機(jī)讀寫存儲器(SRAM)和動態(tài)隨機(jī)讀寫存儲器(DRAM)。,ROM,只讀存儲器(ROM)的內(nèi)容是由制造商寫進(jìn)去的。用戶只能讀不能寫。它的特點(diǎn)是非易失性,即切斷電源后,數(shù)據(jù)也不會丟失。通常ROM用來存儲那些關(guān)機(jī)后也不能丟失的程序或數(shù)據(jù)。例如,用ROM來存儲開機(jī)時運(yùn)行的引導(dǎo)程序。,高速緩沖存儲器,高速緩沖存儲器(Cache)的存取速度要比主存快,但比CPU和CPU中的寄存器慢。高速緩存通常容量較小,且常被置于CPU和主存之間,如圖35所示。,輔存儲器,輔存儲器是可以
46、大量存儲數(shù)據(jù)的裝置,它存儲的信息在計算機(jī)斷電后也不會丟失。輔助存儲器的價格比主存便宜,但速度更慢。在計算機(jī)結(jié)構(gòu)中,輔存屬于輸入和輸出設(shè)備。 根據(jù)實現(xiàn)的原理,輔存主要分成兩類,一是磁介質(zhì)輔存,一是以激光進(jìn)行讀寫的光存儲設(shè)備。,磁介質(zhì)輔存,磁介質(zhì)輔存設(shè)備使用材料的磁性存儲數(shù)據(jù)位。磁介質(zhì)上的點(diǎn)如果有磁性則表示1,如果沒有磁性則表示0。現(xiàn)在仍在使用的磁介質(zhì)存儲設(shè)備主要有磁盤和磁帶。,磁盤,磁盤是由一張或多張磁片構(gòu)成的。磁片由薄磁膜封裝起來。信息是通過每一個磁片上的讀/寫磁頭讀寫磁介質(zhì)表面來進(jìn)行讀取和存儲的。圖36給出了磁盤的物理結(jié)構(gòu)。,圖36 磁盤的物理結(jié)構(gòu),為了將數(shù)據(jù)存儲在磁盤的表面,每個盤面都被劃
47、分為同心的圓環(huán)形磁道(track)。每個磁道又被分成若干個扇區(qū)(sector)(如圖37所示)。磁道間通過磁道間隔隔開,而扇區(qū)間通過扇區(qū)間隔隔開。,圖37 磁盤的表面結(jié)構(gòu),磁盤是隨機(jī)存取設(shè)備。但磁盤的讀取是以扇區(qū)為最小單位。一個扇區(qū)通常包含數(shù)百至數(shù)千字節(jié)(如512字節(jié))。磁盤上的數(shù)據(jù)也被分成塊(Block)。一個塊可以包含一個或多個扇區(qū)上。 磁盤的性能取決于幾個因素。最重要的因素是角速度、尋道時間和傳送時間。角速度定義了磁盤的旋轉(zhuǎn)速度。尋道時間定義了讀寫磁頭尋找數(shù)據(jù)所在磁道的時間。傳送時間定義了將數(shù)據(jù)從磁盤移到CPU內(nèi)存所需的時間。 歷史上,磁盤分為軟盤與硬盤。軟盤是單片的,用塑料封套保護(hù),其
48、讀寫機(jī)構(gòu)在磁盤驅(qū)動器上。單張軟盤的容量一般為1.44MB。而硬盤將盤片與讀寫機(jī)構(gòu)做成一體,用金屬殼體封裝。硬盤技術(shù)隨著計算機(jī)技術(shù)的發(fā)展而朝著容量更大、體積更小、速度更快、性能更可靠、價格更便宜的方向不斷發(fā)展,是計算機(jī)最主要的輔存裝置。軟盤由于讀寫速度慢、可靠性低、容量小,近年已被逐步淘汰?,F(xiàn)在我們說磁盤,一般是指硬盤。,磁帶,磁帶是將磁性材料涂在塑料帶基上形成的。按照磁帶的寬度,一般分為4mm磁帶、8mm磁帶、四分之一英寸磁帶、二分之一英寸磁帶等。結(jié)構(gòu)上,磁帶用兩個滾輪承接。當(dāng)滾輪轉(zhuǎn)動時,拉動磁帶行走,就可以通過磁頭來讀寫磁帶上的數(shù)據(jù)了。如圖38所示。,圖38 磁帶的機(jī)械結(jié)構(gòu)示意圖,光存儲設(shè)備
49、,光存儲設(shè)備使用激光在特別的存儲介質(zhì)上讀取和寫入數(shù)據(jù)。存儲介質(zhì)被做成中間帶孔的圓盤,故稱為光盤。光盤表面是連續(xù)的由里至外的螺旋形軌跡。軌跡由不同長度的凹坑和平臺組成,代表二進(jìn)制數(shù)的0和1。當(dāng)激光照射在軌跡上,凹坑和平臺反射的光線的強(qiáng)弱不同。借此光存儲設(shè)備可以識別出光盤上的數(shù)據(jù)。最開始出現(xiàn)的光盤是小型光盤CD(Compact Disc),用來存放高保真的數(shù)字立體聲音樂。在音樂CD的基礎(chǔ)上,陸續(xù)產(chǎn)生了用于計算機(jī)數(shù)據(jù)存儲的只讀光盤存儲器CD-ROM、可刻錄光盤CD-R、可重寫光盤CD-RW。小型光盤標(biāo)準(zhǔn)容量只有650M,不能滿足大容量信息存儲的要求。工業(yè)界很快又推出了比CD容量大很多的數(shù)字多功能光碟
50、DVD(Digital Versatile Disc)。,CD-ROM,CDROM盤的直徑為120mm,厚度為1.2mm。中間有一個直徑是15mm的圓孔。盤片外沿有一個1mm寬的無數(shù)據(jù)環(huán),環(huán)繞中心孔的13.5mm內(nèi)環(huán)也不存放數(shù)據(jù)。因此半徑方向上可以存放數(shù)據(jù)的寬度只有38mm。在此寬度上,分布著中心距離為1.6m的螺旋軌跡。軌跡上刻上了反映數(shù)據(jù)編碼的不同長度和間隔的凹坑。凹坑寬度為0.5m,深度約為0.12m。當(dāng)用波長是780nm、光點(diǎn)直徑為1m的激光照射盤片上的軌跡時,則有凹坑的地方因為坑底反射的光線比坑面反射的光線延遲了半個振動周期(這考慮了光盤材料的折射率為1.55),或者說相位相差180
51、,這樣這兩股反射光相互抵消,就好象沒有了反射。而沒有凹坑的間隔地帶,光線會有反射。這樣,利用光電傳感器就能夠檢出盤面上的凹坑與平臺,解讀出數(shù)據(jù)編碼。,CD-R,為了能夠讓用戶自行寫入數(shù)據(jù)到CD-ROM盤片,以便作小規(guī)模的數(shù)據(jù)發(fā)布或者數(shù)據(jù)備份,在CD-ROM的基礎(chǔ)上,出現(xiàn)了CD-R光盤。這種光盤可以供用戶一次寫入,多次讀出。因此也叫WORM(Write-Once, Read-Many)盤。,CD-RW,CD-R只能寫一次,不能滿足用戶希望多次擦寫的需要。于是,通過改變CD-R上的有機(jī)染料層,業(yè)界又推出了可以多次擦寫的光盤,CD-RW(CD Rewritable)。CD-RW與CD-R的制造過程十
52、分相似。其不同點(diǎn)主要在: 使用銀、錮、銻和碲的合金取代CD-R上的有機(jī)染料層。這種合金有兩種穩(wěn)定的狀態(tài),晶體態(tài)(透明)和無定型態(tài)(不透明),稱為相變合金; 寫數(shù)據(jù)時,驅(qū)動器使用高能激光束照射合金層,將它從晶體態(tài)轉(zhuǎn)變成無定型態(tài),降低其反射性。這樣可以模擬CD-ROM盤片上的坑; 讀數(shù)據(jù)時,采用低能量的激光束,與讀取CD-ROM類似。低能量的激光束不會改變合金層的狀態(tài); 擦除數(shù)據(jù)時,使用中等能量的激光束,將合金從無定型態(tài)轉(zhuǎn)變?yōu)榫w態(tài)。 CD-RW在容量、速度和格式方面與CD-ROM相同。寫和擦除需要使用刻錄光驅(qū),讀可以使用普通光驅(qū)。,DVD,由于一方面計算機(jī)需要存儲的信息量的爆炸式增長,另一方面,
53、人們對數(shù)字影音質(zhì)量的要求不斷提高,CD盤片650M的存儲容量遠(yuǎn)遠(yuǎn)不能滿足人們的需求。光存儲界仿照CD的原理,重新定義了新的數(shù)字多功能光盤(DVD)的標(biāo)準(zhǔn)。 DVD的總?cè)萘坑辛撕艽蟮奶岣摺?由于數(shù)據(jù)存儲密度的提高,DVD的讀取速度也相應(yīng)得到了提高。其標(biāo)準(zhǔn)速度(1倍速)是1350KB/s。以第三代 DVD-ROM 讀取速度都在四倍速以上計算,存取速度就有5.4MB/s,相當(dāng)于CD-ROM的36倍速。,人機(jī)交互設(shè)備,每一臺計算機(jī)都需要一些可以和操作者進(jìn)行交流的設(shè)備。這些設(shè)備必須能夠接受人的輸入數(shù)據(jù),并將人所需要的結(jié)果表現(xiàn)出來,供人閱讀參考。這些人機(jī)交互設(shè)備和輔存儲器一樣,也屬于輸入/輸出設(shè)備。最常見
54、的人機(jī)交互設(shè)備有鍵盤、鼠標(biāo)、顯示器和打印機(jī)。,鍵盤,從原理上看,計算機(jī)鍵盤有兩種。一種稱為編碼鍵盤,每按一個鍵,就通過鍵盤上的數(shù)字電路產(chǎn)生該鍵對應(yīng)的一個編碼;另一種稱為非編碼鍵盤。在鍵盤上安裝了一個單片計算機(jī),將鍵排列成行和列,單片機(jī)按照一定的規(guī)律不斷掃描這些按鍵。當(dāng)發(fā)現(xiàn)有鍵被按下,則確定其位置。然后根據(jù)位置用程序成生一個鍵盤編碼,稱為掃描碼。這兩種鍵盤的目的都是要根據(jù)操作者所按鍵產(chǎn)生一個鍵盤編碼。編碼鍵盤的優(yōu)點(diǎn)是響應(yīng)速度快,不需要單片機(jī)作為控制器件。但當(dāng)鍵數(shù)增加時,編碼鍵盤的設(shè)計很復(fù)雜。還有一個弱點(diǎn)是,編碼鍵盤不便于擴(kuò)展鍵盤功能。非編碼鍵盤的優(yōu)點(diǎn)是可以用程序擴(kuò)展鍵盤功能,定義新的按鍵。現(xiàn)在我
55、們所見的鍵盤都是非編碼鍵盤。,鍵盤產(chǎn)生的掃描碼通過連線送到計算機(jī)的鍵盤接口上。鍵盤接口是計算機(jī)主機(jī)板上的一部分電路。它每收到一個鍵盤掃描碼,就會自動向CPU發(fā)出一個請求,請求CPU暫停目前的工作來處理新收到的鍵盤編碼。CPU將當(dāng)前正在進(jìn)行的工作(即執(zhí)行的程序)保存好后,轉(zhuǎn)向處理鍵盤編碼的工作(程序)。這個處理的結(jié)果是,鍵盤掃描碼被CPU翻譯成對應(yīng)的ASCII編碼,并存儲在一個稱為鍵盤緩沖區(qū)的內(nèi)存塊中。然后,計算機(jī)取出剛才被打斷的工作,繼續(xù)執(zhí)行。計算機(jī)的這種工作方式,稱為中斷執(zhí)行方式。,從操作者按鍵到該鍵對應(yīng)的ASCII碼被保存在鍵盤緩沖區(qū),鍵盤的輸入過程即告結(jié)束。對這些按鍵如何解釋和處理,是其
56、他程序的事情。例如,在文字處理程序的輸入界面,按鍵被解釋成輸入的文字。在命令解釋程序中,一連串的按鍵被解釋成一個命令。這些程序在需要獲得鍵盤輸入時,會讀取鍵盤緩沖區(qū)。每讀取一個鍵盤碼就從緩沖區(qū)清除一個,這樣鍵盤緩沖區(qū)就不會被填滿。當(dāng)程序不需要按鍵輸入時,操作人員如果不停按鍵,則有可能填滿鍵盤緩沖區(qū)。這時計算機(jī)會發(fā)出響聲表明鍵盤緩沖區(qū)出現(xiàn)了溢出。,鼠標(biāo),鼠標(biāo)可以分為機(jī)械鼠標(biāo)、光機(jī)鼠標(biāo)和光電鼠標(biāo)。機(jī)械鼠標(biāo)用純機(jī)械的方法將位移信號轉(zhuǎn)換成電脈沖信號,精度低,可靠性差,容易磨損,現(xiàn)在已經(jīng)被淘汰。光機(jī)鼠標(biāo)是在機(jī)械式鼠標(biāo)中采用光柵信號傳感器產(chǎn)生位移脈沖信號,提高了靈敏度。我們今天所見的“機(jī)械鼠標(biāo)”都是光機(jī)式
57、的。光電鼠標(biāo)則完全采用光電元件實現(xiàn)位移信號的轉(zhuǎn)換,精度高,使用壽命長。,顯示器,顯示器是計算機(jī)的標(biāo)準(zhǔn)輸出設(shè)備。它從計算機(jī)的顯示控制卡或者叫圖形卡、圖形適配器等獲得圖像信號,然后還原成圖像供操作員觀看。顯示控制卡輸出的顯示信號分為數(shù)字和模擬兩種。模擬信號是將一幅圖像上用紅、綠、蘭三基色表示的每一點(diǎn)的顏色信號,用一定頻率的載波進(jìn)行調(diào)制后得到的。較早的顯示器只能接受模擬信號。而數(shù)字信號類似于位圖編碼,用二進(jìn)制數(shù)表示每一個點(diǎn)的顏色值。現(xiàn)在很多顯示器可以直接接受DVI標(biāo)準(zhǔn)的數(shù)字信號。一般數(shù)字信號可以獲得更加準(zhǔn)確和穩(wěn)定的圖像還原。但由于顯示器技術(shù)的進(jìn)步,模擬信號和數(shù)字信號二者的效果差別已經(jīng)可以忽略。,顯示
58、控制卡是一塊相對獨(dú)立的電路板,當(dāng)然也可以把它集成到主板上,帶有自己的微處理器和信號處理電路。它的功能是根據(jù)計算機(jī)內(nèi)存空間中一個特定區(qū)域稱為顯示內(nèi)存的內(nèi)容,產(chǎn)生傳送給顯示器的圖像信號。從程序員的角度看,要設(shè)定或改變顯示器的顯示結(jié)果,只需改變顯示內(nèi)存中的內(nèi)容。其他的事情分別由顯示控制卡和顯示器自動完成,不需要我們關(guān)心。 將顯示控制卡輸出的圖像信號還原成圖像有不同的方式。歷史上最先采用并沿用至今的是陰極射線管(CRT)顯示器?,F(xiàn)在更加流行的是液晶顯示器(LCD)和等離子體顯示器。后二種顯示器是平板式的,比陰極射線管體積小很多,正在逐步取代CRT顯示器。,打印機(jī),打印機(jī)和顯示器類似,從計算機(jī)獲得圖像或
59、者文字信息后,將信息復(fù)現(xiàn)在紙上,供人閱讀、保存或者分發(fā)。因此打印機(jī)也是最常見和重要的計算機(jī)輸出設(shè)備。 與顯示器需要連接到專門的顯示控制卡(電路接口)不同,打印機(jī)通常使用計算機(jī)的標(biāo)準(zhǔn)通信接口,如RS232串口、并行輸出口、USB口等。計算機(jī)只需要將打印內(nèi)容轉(zhuǎn)換成所使用打印機(jī)能夠識別的數(shù)據(jù)格式,并將數(shù)據(jù)傳送到連接打印機(jī)的標(biāo)準(zhǔn)接口即可完成打印。打印機(jī)從接口獲得這些數(shù)據(jù)后,將數(shù)據(jù)轉(zhuǎn)換為控制打印機(jī)的著色機(jī)構(gòu)的電信號,將數(shù)據(jù)或者圖文復(fù)現(xiàn)在紙上。 根據(jù)所使用的著色原理,打印機(jī)可以分為針式、噴墨式、激光式、熱敏式、熱轉(zhuǎn)移式等多種。,子系統(tǒng)的內(nèi)部連接CPU和主存的連接,CPU和主存之間通常由稱為總線(bus)的
60、三組線路連接。他們分別是數(shù)據(jù)總線、地址總線和控制總線。 數(shù)據(jù)總線:數(shù)據(jù)總線由多根導(dǎo)線組成。每一根線上每次傳送二進(jìn)制數(shù)的一位。導(dǎo)線的數(shù)量取決于計算機(jī)字(word)的長度。例如,如果計算機(jī)字長是32位,則數(shù)據(jù)總線需要32根導(dǎo)線,以便同一時間可以傳送一個字長的信息。數(shù)據(jù)總線傳送的是要處理的數(shù)據(jù)。 地址總線:地址總線傳送的是主存中的某個字的地址。地址總線的導(dǎo)線數(shù)量取決于存儲空間的大小。如果存儲空間為2n字,則地址總線一次需要傳送n位地址數(shù)據(jù),因此需要n根導(dǎo)線。 控制總線:控制總線負(fù)責(zé)在CPU和主存之間傳送控制信息。例如,每次訪問主存時,必須有一個控制代碼從CPU發(fā)送到主存,用于指示是進(jìn)行讀操作還是寫操
61、作??刂瓶偩€的導(dǎo)線數(shù)量取決于計算機(jī)所需要的控制命令的總數(shù)。如果計算機(jī)有2m條控制指令,則控制指令的編碼長度為m位,因為m位可以定義2m個不同的操作。相應(yīng)的,控制總線的導(dǎo)線數(shù)必須為m條。,輸入/輸出設(shè)備的連接,輸入/輸出設(shè)備不能直接與CPU和主存的總線相連。因為輸入/輸出設(shè)備的本質(zhì)與CPU和主存的本質(zhì)不同。輸入/輸出設(shè)備都是些機(jī)電、磁性或光學(xué)設(shè)備,而CPU和主存是電子設(shè)備。與CPU和主存相比,輸入輸出設(shè)備的操作速度要慢很多。因此要有中介來處理這種差異。輸入輸出設(shè)備是通過一種被稱為輸入輸出控制器或接口的器件連接到總線上的。 現(xiàn)在比較常見的輸入輸出控制器有小型計算機(jī)系統(tǒng)接口(SCSI)、火線(IEE
62、E 1394接口)和通用串行總線(USB)。,程序執(zhí)行過程,現(xiàn)在的通用計算機(jī)都是使用程序完成數(shù)據(jù)處理或者控制的任務(wù)。所謂程序,就是一系列對計算機(jī)進(jìn)行控制的指令的集合。這一節(jié),我們基于計算機(jī)硬件基礎(chǔ)知識,對計算機(jī)程序的執(zhí)行過程作原理性說明。,時鐘周期、機(jī)器周期與指令周期,數(shù)字電子計算機(jī)的中央處理單元(CPU),是由數(shù)字電路實現(xiàn)的。數(shù)字電路在工作時,需要統(tǒng)一的時鐘脈沖來控制各部分電路的步調(diào),使之協(xié)調(diào)地一個節(jié)拍一個節(jié)拍地工作。時鐘脈沖的周期,就是時鐘周期,其倒數(shù)就是我們常常說的CPU的主頻。 CPU完成一個最基本的內(nèi)部操作所用的時間,稱為機(jī)器周期。例如從指定內(nèi)存單元中取出一條指令,放在指令寄存器中,
63、稱為取指。與取指對應(yīng)的機(jī)器周期,稱為取指周期。每一個機(jī)器周期,根據(jù)其復(fù)雜程度不同,包含不同數(shù)量的(一般為3到6個)時鐘周期。,CPU執(zhí)行一條指令所需要的時間,稱為指令周期。一個指令周期,由一個或者多個機(jī)器周期構(gòu)成。指令越復(fù)雜,需要的機(jī)器周期數(shù)越多。 一個指令周期至少要包含以下三個步驟: 取指令 在取指階段,控制單元命令系統(tǒng)將程序計數(shù)器所指向的內(nèi)存中的指令復(fù)制到CPU的指令寄存器中。復(fù)制完成后,程序計數(shù)器自動加1指向下一條指令。 譯碼 當(dāng)把指令置于指令寄存器后,該指令由控制單元進(jìn)行譯碼。指令譯碼的結(jié)果是產(chǎn)生系統(tǒng)可以執(zhí)行的操作代碼。 執(zhí)行 指令譯碼完成后,控制單元發(fā)出一系列控制信號到CPU的各部件
64、,使之執(zhí)行規(guī)定的動作。,1.3 計算機(jī)軟件,軟件的定義,馮諾依曼原理告訴我們,計算機(jī)中必須存儲程序才能工作。實際上,早期的非馮諾依曼計算機(jī)也需要通過對一系列開關(guān)的開閉和配線的改變來編程。這就是說,離開了控制計算機(jī)工作的指令序列程序,計算機(jī)什么事情也做不了。程序?qū)嶋H上是計算機(jī)的組成部分。開始,人們將計算機(jī)中存儲的程序和數(shù)據(jù)結(jié)構(gòu)統(tǒng)稱為軟件,以對應(yīng)組成計算機(jī)的物理器件的集合硬件。但隨著軟件技術(shù)和計算機(jī)應(yīng)用的發(fā)展,軟件的含義有了擴(kuò)展。今天,軟件內(nèi)涵至少包括三個方面:(1)控制計算機(jī)工作,并使硬件功能得到充分發(fā)揮的指令集合程序;(2)使程序高效率、正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu);(3)說明程序如何使用和操作的技術(shù)文
65、檔。也就是說,軟件并不完全等同于計算機(jī)程序。,軟件與硬件的關(guān)系,硬件和軟件可以看成計算機(jī)的兩個方面,就像一枚硬幣的正反面。計算機(jī)的軟件和硬件是相互依賴、缺一不可的。沒有軟件,硬件不能發(fā)揮作用;沒有硬件,軟件是無法存在的。 另一方面,硬件和軟件在某種意義上是可以相互轉(zhuǎn)化的。例如,實現(xiàn)某些處理功能的程序邏輯,也可以使用數(shù)字電路實現(xiàn)。有些用硬件實現(xiàn)的邏輯,用軟件實現(xiàn)也很方便。軟件與硬件相互轉(zhuǎn)化的例子,在數(shù)字信號處理、數(shù)據(jù)編碼/解碼方面很常見。同樣的邏輯使用軟件實現(xiàn)的速度沒有用硬件快,但軟件可以修改,具有彈性。另外,用硬件實現(xiàn)往往需要專門的數(shù)字信號處理芯片,會增加機(jī)器的成本。 軟件和硬件相互轉(zhuǎn)化是有條件的。理解這一點(diǎn),不要誤認(rèn)為任何軟件都可以轉(zhuǎn)化為硬件,或者任何硬件都能轉(zhuǎn)化為軟件。,軟件的種類,一般將計算機(jī)的軟件從性質(zhì)上分為系統(tǒng)軟件和應(yīng)用軟件兩大類。系統(tǒng)軟件是計算機(jī)中最基本的程序及相關(guān)數(shù)據(jù)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。