版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章計算機(jī)系統(tǒng)概論1、計算機(jī)系統(tǒng)就就是硬件系統(tǒng)嗎?答:說計算機(jī)系統(tǒng)就就是硬件系統(tǒng)就是不完整得。一個完整得計算機(jī)系統(tǒng)應(yīng)該包括硬件系統(tǒng)與軟件系統(tǒng)兩部分。硬件系統(tǒng)包括:運算器、控制器、存儲器、輸入設(shè)備與輸出設(shè)備五大基本部件。軟件系統(tǒng)分為系統(tǒng)軟件與應(yīng)用軟件兩大類.系統(tǒng)軟件包括操作系統(tǒng)、計算機(jī)語言處理程序(各種程序翻譯軟件,包括編譯程序、解釋程序、匯編程序)、服務(wù)性程序、數(shù)據(jù)庫管理系統(tǒng)與網(wǎng)絡(luò)軟件等;應(yīng)用軟件包括各種特定領(lǐng)域得處理程序。計算機(jī)系統(tǒng)中得硬件與軟件就是相輔相成得,缺一不可。軟件就是計算機(jī)系統(tǒng)得靈魂,沒有軟件得硬件不能被用戶使用,猶如一堆廢鐵。2、同一個功能可以由軟件完成也可以由硬件完成嗎?答:軟件與硬件就是兩種完全不同得形態(tài),硬件就是實體,就是物質(zhì)基礎(chǔ);軟件就是一種信息,瞧不見、摸不到。但就是它們都可以用來實現(xiàn)邏輯功能,所以在邏輯功能上,軟件與硬件就是等價得.因此,在計算機(jī)系統(tǒng)中,許多功能既可以直接由硬件實現(xiàn),也可以在硬件得配合下由軟件來實現(xiàn)。例如:乘法運算既可以用專門得乘法器(主要由加法器與移位器組成)實現(xiàn),也可以用乘法子程序(主要由加法指令與移位指令等組成)來實現(xiàn)。3、翻譯程序就就是編譯程序嗎?解釋程序與編譯程序有什么差別?什么就是匯編程序?答:翻譯程序就是指把高級語言源程序翻譯成機(jī)器語言程序(目標(biāo)代碼)得軟件。翻譯程序有兩種:一種就是編譯程序,另一種就是解釋程序。它們就是兩種不同得翻譯程序。不同在于編譯程序?qū)⒏呒壵Z言源程序一次全部翻譯成目標(biāo)程序,每次執(zhí)行程序時,只要執(zhí)行目標(biāo)程序,因此,只要源程序不變,就無需重新翻譯;解釋程序就是將源程序得一條語句,翻譯成對應(yīng)得機(jī)器目標(biāo)代碼,并立即執(zhí)行,然后翻譯下一條源程序語句并執(zhí)行,直至所有源程序中得語句全部被翻譯并執(zhí)行完。所以解釋程序得執(zhí)行過程就是翻譯一句,執(zhí)行一句。解釋得結(jié)果就是源程序執(zhí)行得結(jié)果,而不會生成目標(biāo)程序。匯編程序也就是一種語言翻譯程序,它就是把匯編語言寫得源程序翻譯為機(jī)器語言程序(目標(biāo)代碼)得軟件。匯編語言就是一種面向機(jī)器得低級語言,就是機(jī)器語言得符號表示,與機(jī)器語言一一對應(yīng)。4、要計算機(jī)做得任何工作都要先編寫成程序才能完成嗎?答:就是得.要計算機(jī)完成得任何事情,都必須先編制程序,程序就是由指令構(gòu)成得。不管就是用哪種語言編寫得程序,最終都要翻譯成機(jī)器語言程序才能讓機(jī)器理解,機(jī)器語言程序就是由一條一條指令組成得程序.CPU得主要功能就就是周而復(fù)始地執(zhí)行指令,因此,要計算機(jī)完成得所有功能都就是通過執(zhí)行一條一條指令來實現(xiàn)得,也就就是由一個程序來完成得.有時我們說某個特定得功能就是由硬件實現(xiàn)得,但并不就是說不要編寫程序,如乘法功能可由乘法器這個硬件實現(xiàn),但要啟動這個硬件(乘法器)工作,必須先執(zhí)行程序中得乘法指令。5、指令與數(shù)據(jù)形式上沒有差別,且都存于存儲器中,計算機(jī)如何區(qū)分它們呢?答:指令與數(shù)據(jù)在計算機(jī)內(nèi)部都就是用二進(jìn)制表示得,因而都就是0、1序列,在形式上沒有差別.在指令與數(shù)據(jù)取到CPU之前,它們都存放在存儲器中,CPU必須能夠區(qū)分讀出得就是指令還就是數(shù)據(jù),如果就是指令,CPU會把指令得操作碼送到指令譯碼器進(jìn)行譯碼,而把指令得地址碼送到相應(yīng)得地方進(jìn)行處理;如果就是數(shù)據(jù),則送到寄存器,或運算器。那么,CPU如何識別讀出得就是指令還就是數(shù)據(jù)呢?實際上,CPU并不就是把信息從主存讀出后,靠某種判斷方法來識別信息就是數(shù)據(jù)還就是指令得.而就是在讀出之前就知道將要讀得信息就是數(shù)據(jù)還就是指令了。執(zhí)行指令得過程分為:取指令、指令譯碼、取操作數(shù)、運算、送結(jié)果等。所以,在取指令階段,總就是根據(jù)程序計數(shù)器PC得值去取指令,所以取來得一定就是指令;取操作數(shù)階段取得一定就是數(shù)據(jù)。6、什么叫透明性?透明就是指什么都能瞧見嗎?答:在計算機(jī)領(lǐng)域中,站在某一類用戶得角度,如果感覺不到某個事物或?qū)傩缘么嬖?,即“瞧”不到某個事物或?qū)傩?則稱為“對xxxx用戶而言,某個事物或?qū)傩跃褪峭该鞯?。這與日常生活中得“透明"概念(公開、瞧得見)正好相反。例如:對于高級語言程序員來說,浮點數(shù)格式、乘法指令等這些指令得格式、數(shù)據(jù)如何在運算器中運算,等等,就是透明得;而對于機(jī)器語言程序員與匯編語言程序員來說,指令得格式、機(jī)器結(jié)構(gòu)、數(shù)據(jù)格式等則不就是透明得。7、數(shù)據(jù)通路寬度、機(jī)器字長、“字"寬、存儲單元寬度、編址單位、總線寬度、指令字長各指什么?它們之間有何關(guān)系?答:在計算機(jī)內(nèi)部,有指令與數(shù)據(jù)兩大類信息.指令與數(shù)據(jù)都以二進(jìn)制形式存放在存儲器中,運行程序時,需要把指令與數(shù)據(jù)從存儲器讀出,通過總線傳輸?shù)剑肞U,然后,CPU再通過執(zhí)行指令來對操作數(shù)進(jìn)行相應(yīng)得運算,最后把結(jié)果數(shù)據(jù)送到寄存器或存儲器中.所以,在設(shè)計或使用計算機(jī)過程中,要涉及到:指令與數(shù)據(jù)在存儲器中按什么長度存放;寫入或讀出時按什么長度存取;在總線上傳輸時同時傳送多少位;數(shù)據(jù)與指令送到CPU后,在CPU得寄存器中按多少位存放;在運算器中按多少位運算;等等問題。因而出現(xiàn)了以下一些概念,它們得定義與關(guān)系如下:“數(shù)據(jù)通路”就是指數(shù)據(jù)在CPU中所經(jīng)過得路徑,連同路徑上得部件,包括:通用寄存器、多路選擇器、符號擴(kuò)展器、零擴(kuò)展器、ALU、移位寄存器等。這些部件得寬度與數(shù)據(jù)傳送得路徑寬度都就是一致得,這個一致得寬度就就是數(shù)據(jù)通路得寬度。CPU中有定點運算器與浮點運算器,因而,相對應(yīng)得就有定點運算器得數(shù)據(jù)通路與浮點運算器數(shù)據(jù)通路。兩者得寬度不同,浮點運算器得數(shù)據(jù)通路要寬得多?!皺C(jī)器字長"就是計算機(jī)得一個非常重要得指標(biāo)。通常稱32位機(jī)器或64位機(jī)器,就就是指機(jī)器得字長就是32位或64位。一般情況下,機(jī)器字長定義為CPU中在同一時間內(nèi)一次能夠處理得二進(jìn)制數(shù)得位數(shù),實際上就就是CPU中數(shù)據(jù)通路得位數(shù)。因為機(jī)器字長與內(nèi)存單元得地址位數(shù)有關(guān),而地址計算就是在定點運算器中進(jìn)行得.所以,一般把定點運算器得數(shù)據(jù)通路寬度定為機(jī)器字長。在計算機(jī)中,“字”得概念經(jīng)常出現(xiàn)。一個“字”得寬度并不等于機(jī)器字長?!白帧弊鳛闄C(jī)器中所有信息寬度得計量單位,對于某個系列機(jī)來說,其字寬總就是固定得。例如,在80x86系列中,一個字得寬度為16位,因此,32位就是雙字,64位就是四字.在IBM303X系列中,一個字得寬度為32位,所以16位為半字,32位為單字、64位為雙字?!按鎯卧敝复鎯ζ髦芯哂邢嗤刂返萌舾蓚€存儲元件(或稱存儲元、存儲基元、記憶單元)構(gòu)成得一個存儲單元中得二進(jìn)制代碼,其寬度等于一個編址單位得長度,可以就是8位、16位、32位等.現(xiàn)在,大多數(shù)計算機(jī)就是按字節(jié)編址得,即:每一個字節(jié)(8位)有一個地址,編址單位就就是一個字節(jié),所以一個存儲單元得寬度(位數(shù))就是8位。由此可見,一個數(shù)據(jù)(如:32位整數(shù)、32位浮點數(shù)或64位浮點數(shù)等)可能占多個存儲單元。一次從存儲器讀出或?qū)懭氲眯畔⒁部赡苡卸鄠€存儲單元?!爸噶钭珠L”指指令得位數(shù)。有定長指令字機(jī)器與不定長指令字機(jī)器。定長指令字機(jī)器中所有指令得位數(shù)就是相同得,目前定長指令字大多就是32位指令字。不定長指令字機(jī)器得指令有長有短,但每條指令得長度一般都就是8得倍數(shù)。所以,一個指令字在存儲器中存放時,可能占用多個存儲單元;從存儲器讀出并通過總線傳輸時,可能分多次進(jìn)行,也可能一次讀多條指令。第二章運算方法與運算器1、真值與機(jī)器數(shù)得關(guān)系就是什么?答:在計算機(jī)內(nèi)部用二進(jìn)制編碼表示得數(shù)稱為機(jī)器數(shù),而機(jī)器數(shù)真正得值(即原來帶有正負(fù)號得數(shù))稱為機(jī)器數(shù)得真值。2、什么就是編碼?答:用少量簡單得基本符號,對大量復(fù)雜多樣得信息進(jìn)行一定規(guī)律得組合.基本符號得種類與組合規(guī)則就是信息編碼得兩大要素。例如,用10個阿拉伯?dāng)?shù)字表示數(shù)值,電報碼中用4位十進(jìn)制數(shù)字表示漢字,等等,都就是編碼得典型例子.計算機(jī)內(nèi)部處理得所有信息都就是“數(shù)字化編碼”了得信息。3、什么就是“數(shù)字化編碼”?答:“數(shù)字化編碼”就就是對感覺媒體信息(如:數(shù)值、文字、圖像、聲音、視頻等信息)進(jìn)行定時采樣,將現(xiàn)實世界中得連續(xù)信息轉(zhuǎn)換為計算機(jī)中得離散得“樣本”信息,然后對這些離散得“樣本"信息進(jìn)行二進(jìn)制編碼。4、計算機(jī)內(nèi)部為什么用二進(jìn)制來編碼所有信息?答:主要有三個方面得原因:(1)二進(jìn)制系統(tǒng)只有兩個基本符號:“0”與“1”。所以,它得基本符號少,易于用穩(wěn)態(tài)電路實現(xiàn);(2)二進(jìn)制得編碼/計數(shù)/運算等得規(guī)則簡單;(3)二進(jìn)制中得“0”與“1”與邏輯命題得“真”與“假”得對應(yīng)關(guān)系簡單5、什么叫數(shù)值數(shù)據(jù)?答:數(shù)值數(shù)據(jù)有確定得值,即在數(shù)軸上能找到其對應(yīng)得點,可以比較其大小。確定一個數(shù)值數(shù)據(jù)得值有三個要素:進(jìn)位計數(shù)制、定/浮點表示與數(shù)得編碼表示。也就就是說,給定一個數(shù)字序列,如果不說明這個數(shù)字序列就是幾進(jìn)制數(shù)、小數(shù)點得位置在哪里、采用什么編碼方式,那么這個數(shù)字序列得值就是無法確定得。或者說,同一個數(shù)字序列可能有不同得值.6、計算機(jī)內(nèi)都用二進(jìn)制表示信息,為什么還要引入八進(jìn)制與十六進(jìn)制?答:計算機(jī)內(nèi)部在進(jìn)行信息得存儲、傳送與運算時,都就是以二進(jìn)制形式來表示信息得。但在屏幕上或書本上書寫信息時,由于二進(jìn)制信息位數(shù)多,閱讀、記憶也不方便。而十六進(jìn)制、八進(jìn)制與二進(jìn)制得對應(yīng)關(guān)系簡單。所以引入十六進(jìn)制或八進(jìn)制。在開發(fā)程序、調(diào)試程序、閱讀機(jī)器內(nèi)部代碼時,人們經(jīng)常使用八進(jìn)制或十六進(jìn)制來等價地表示二進(jìn)制信息。7、如何表示一個數(shù)值數(shù)據(jù)?計算機(jī)中得數(shù)值數(shù)據(jù)都就是二進(jìn)制數(shù)嗎?答:在計算機(jī)內(nèi)部,數(shù)值數(shù)據(jù)得表示方法有兩大類:①直接用二進(jìn)制數(shù)表示分為無符號數(shù)與有符號數(shù),有符號數(shù)又分為定點數(shù)表示與浮點數(shù)表示。無符號數(shù)用來表示無符號整數(shù)(如:地址等信息);定點數(shù)用來表示整數(shù);浮點數(shù)用來表示實數(shù)。②采用二進(jìn)制編碼得十進(jìn)制數(shù)表示(BinaryCodedDecimalNumber,簡稱BCD碼)BCD碼得編碼方案很多,但一般都采用8421碼(也稱為NBCD碼)來表示。用來表示整數(shù)。所以,計算機(jī)中得數(shù)值數(shù)據(jù)雖然都用二進(jìn)制來編碼表示,但不全就是二進(jìn)制數(shù),也有用十進(jìn)制數(shù)表示得。所以,后面一章有關(guān)指令類型中,就有對應(yīng)得二進(jìn)制加法指令與十進(jìn)制加法指令。8、為什么要引入無符號數(shù)表示?答:一般在全部就是正數(shù)運算且結(jié)果不出現(xiàn)負(fù)值得場合下,可以省略符號位,使用無符號數(shù)表示。例如在進(jìn)行地址運算時可用無符號數(shù).9、在高級語言編程中所定義得unsigned型數(shù)據(jù)就是怎么表示得?答:unsigned型數(shù)據(jù)就就是無符號數(shù),不考慮符號位,直接用二進(jìn)制對數(shù)值進(jìn)行編碼得到得就就是無符號數(shù)。10、為什么無符號整數(shù)結(jié)果會發(fā)生“溢出”?什么叫無符號整數(shù)得“溢出”?答:計算機(jī)得機(jī)器字長總就是有限得,因而機(jī)器數(shù)得位數(shù)有限,所以可表示得數(shù)得個數(shù)有限。對于n位二進(jìn)制數(shù),只能表示2n個不同得數(shù),因此有很多數(shù)用n位無法表示。對于無符號定點整數(shù)來說,計算機(jī)運算過程中一般保留低n位,舍棄高位。這樣,會產(chǎn)生兩種結(jié)果:①剩下得低n位數(shù)不能正確表示運算結(jié)果。這種情況下,意味著運算得結(jié)果超出了計算機(jī)能表達(dá)得范圍,有效數(shù)值進(jìn)到了第n+1位,我們稱此時發(fā)生了“溢出”現(xiàn)象。②剩下得低n位數(shù)能正確表達(dá)計算結(jié)果,也即高位得舍去并不影響其運算結(jié)果?!埃髉an對一個多于n位得數(shù)丟棄高位而保留低n位數(shù)”這樣一種處理,實際上等價于“將這個多于n位得數(shù)去除以2n,然后丟去商保留其余數(shù)”得操作。這種操作運算就就是“模運算”。在一個模運算系統(tǒng)中,運算得結(jié)果最終都就是丟棄高位,只截取低n位。所以,只要不就是“溢出",即:只要真正得值不會進(jìn)到第n+1位,結(jié)果就就是正確得。這就是模運算系統(tǒng)得特點.11、為什么現(xiàn)代計算機(jī)都用補(bǔ)碼來表示整數(shù)?答:補(bǔ)碼表示定點整數(shù)時,與原碼、反碼相比,有以下四個好處:(1)符號位可以與數(shù)值位一起參加運算(2)可以用加法方便地實現(xiàn)減法運算(3)零得表示唯一(4)可以多表示一個最小負(fù)數(shù)所以,現(xiàn)代計算機(jī)都用補(bǔ)碼來表示定點整數(shù)。12、n位二進(jìn)制補(bǔ)碼整數(shù)得模就是多少?數(shù)得表示范圍就是多什么?答:n位二進(jìn)制補(bǔ)碼整數(shù)得模就是2n,表示只保留低n位,多于n位得高位部分取模后要被丟棄掉。這種形式得數(shù)得范圍為—2(n-1)~+2(n—1)—1。13、在高級語言編程中定義得shotr/int/long型數(shù)據(jù)就是怎么表示得?答:int型數(shù)據(jù)就就是定點整數(shù),現(xiàn)代計算機(jī)一般用補(bǔ)碼表示.int型數(shù)據(jù)得位數(shù)與運行平臺與編譯器有關(guān),一般就是32位或16位。long型數(shù)據(jù)與short型數(shù)據(jù)也都就是定點整數(shù),用補(bǔ)碼表示,只就是位數(shù)不同,分別就是長整型與短整型數(shù)。14、定點整數(shù)在數(shù)軸上分布得點之間都就是等距得嗎?答:就是得。定點整數(shù)在數(shù)軸上得點總就是在整數(shù)值上,即:[……,—5,-4,—3,-2,-1,0,1,2,3,4,5,……],相鄰數(shù)據(jù)間隔總就是1。15、定點整數(shù)運算要考慮加保護(hù)位與舍入嗎?答:不需要。整數(shù)運算得結(jié)果還就是整數(shù),沒有誤差,無需考慮加保護(hù)位,也無需考慮舍入。但運算結(jié)果可能會“溢出"。16、為什么要引入浮點數(shù)表示?答:因為定點數(shù)不能表示實數(shù),而且表數(shù)范圍小。所以,要引入浮點數(shù)表示。17、為什么浮點數(shù)得階(指數(shù))要用移碼表示?答:因為在浮點數(shù)得加減運算中,要進(jìn)行對階操作,需要比較兩個階得大小.移碼表示得實質(zhì)就就是把階加上一個偏置常數(shù),使得所有數(shù)得階碼都就是一個正整數(shù),比較大小時,就只要按高位到低位順序比較就行了,因而,引入移碼可以簡化階得比較過程.18、浮點數(shù)如何表示0?答:用一種專門得位序列表示0,例如,IEEE754單精度浮點數(shù)中,用“00000000H”表示+0,用“80000000H”表示—0.當(dāng)運算結(jié)果出現(xiàn)階碼過小時,計算機(jī)將該數(shù)近似表示為0。19、現(xiàn)代計算機(jī)中采用什么標(biāo)準(zhǔn)來表示浮點數(shù)?答:早期得計算機(jī)各自采用不同得浮點數(shù)表示格式,因而,在不同計算機(jī)之間進(jìn)行數(shù)據(jù)交換時,就會發(fā)生數(shù)據(jù)不統(tǒng)一得問題。因而,提出專門制定了IEEE754標(biāo)準(zhǔn)用來規(guī)定計算機(jī)中得浮點數(shù)表示格式。所以,現(xiàn)代計算機(jī)中都采用IEEE754標(biāo)準(zhǔn)來表示浮點數(shù).20、如何判斷一個浮點數(shù)就是否就是規(guī)格化數(shù)?答:為了使浮點數(shù)中能盡量多地表示有效位數(shù),一般要求運算結(jié)果用規(guī)格化數(shù)形式表示。規(guī)格化浮點數(shù)得尾數(shù)小數(shù)點后得第一位一定就是個非零數(shù).因此,對于原碼編碼得尾數(shù)來說,只要瞧尾數(shù)得第一位就是否為1就行;對于補(bǔ)碼表示得尾數(shù),只要瞧符號位與尾數(shù)最高位就是否相反。21、浮點數(shù)表示得精度與數(shù)值范圍取決于什么?在浮點數(shù)總位數(shù)不變得情況下,階碼位數(shù)越多,則尾數(shù)位數(shù)越少。即:表數(shù)范圍越大,則精度越差(數(shù)變稀疏)。22、基數(shù)得大小對表數(shù)范圍與精度有什么影響?答:基數(shù)越大,則范圍越大,但精度變低(數(shù)變稀疏)。23、在高級語言編程中定義得float/double型數(shù)據(jù)就是怎么表示得?答:float型數(shù)據(jù)就是用來表示實數(shù)得浮點數(shù)。現(xiàn)代計算機(jī)用IEEE754標(biāo)準(zhǔn)表示浮點數(shù),其中32位單精度浮點數(shù)就就是float型.64位雙精度浮點數(shù)就就是double型.24、位數(shù)相同得定點數(shù)與浮點數(shù)中,可表示得浮點數(shù)個數(shù)比定點數(shù)個數(shù)多嗎?答:不就是得.可表示得數(shù)據(jù)個數(shù)取決于編碼所采用得位數(shù).編碼位數(shù)一定,則編碼出來得數(shù)據(jù)個數(shù)就就是一定得。n位編碼只能表示2n個數(shù),所以,對于相同位數(shù)得定點數(shù)與浮點數(shù)來說,可表示得數(shù)據(jù)個數(shù)應(yīng)該一樣多。(有時可能由于一個值可能有兩個或多個編碼對應(yīng),編碼個數(shù)會有少量差異。但總體上就是一樣得。)25、如何進(jìn)行BCD碼得編碼?答:每位十進(jìn)制數(shù)得取值可以就是0/1/2/…/9這十個數(shù)之一,因此,每一個十進(jìn)制數(shù)位必須至少有4位二進(jìn)制位來表示.而4位二進(jìn)制位可以組合成16種狀態(tài),去掉10種狀態(tài)后還有6種冗余狀態(tài),所以從16種狀態(tài)中選取10種狀態(tài)表示十進(jìn)制數(shù)位0~9得方法很多,可以產(chǎn)生多種BCD碼方案。大得方面可分為有權(quán)碼與無權(quán)碼兩種。有權(quán)碼指表示每個十進(jìn)制數(shù)位得四個二進(jìn)制數(shù)位(稱為基2碼)都有一個確定得權(quán)。8421碼就是最常用得十進(jìn)制有權(quán)碼,ASCII碼得數(shù)字編碼采用得就就是8421碼;無權(quán)碼指表示每個十進(jìn)制數(shù)位得四個基2碼沒有確定得權(quán)?,F(xiàn)代計算機(jī)中大多用8421有權(quán)碼。26、邏輯數(shù)據(jù)在計算機(jī)中如何表示?如何運算?答:邏輯數(shù)據(jù)用來表示命題得“真”與“假”,分別用“1"與“0”來表示。進(jìn)行邏輯運算時,按位進(jìn)行。27、漢字得區(qū)位碼、國標(biāo)碼與機(jī)內(nèi)碼有什么區(qū)別?答:GB2312字符集由94行、94列組成,行號稱為區(qū)號,列號稱為位號,各占7位,共14位,區(qū)號在左、位號在右,稱為漢字得區(qū)位碼,它指出了該漢字在碼表中得位置。漢字得國標(biāo)碼就是將區(qū)號、位號各加上32(即16進(jìn)制得20H)后,再在前后各7位前加0。漢字得內(nèi)碼需2個字節(jié)才能表示,可以在國標(biāo)碼得基礎(chǔ)上產(chǎn)生漢字機(jī)內(nèi)碼.一般就是將國標(biāo)碼兩個字節(jié)得第一位置“1”后得到內(nèi)碼。28、已知一個漢字得國標(biāo)碼為343AH,其區(qū)位碼與機(jī)內(nèi)碼各就是什么?答:區(qū)位碼就是國標(biāo)碼得前后兩個字節(jié)各減32(即:20H),所以得區(qū)位碼為:343AH—2020H=141AH,所以區(qū)號為20,位號為26;機(jī)內(nèi)碼就是國標(biāo)碼得兩個字節(jié)得最前一位變?yōu)?,所以,機(jī)內(nèi)碼為B4BAH。29、定點整數(shù)(用補(bǔ)碼表示)運算時,如何判斷結(jié)果溢出?答:可以采用雙符號位檢測與單符號位檢測兩種判斷方法。1)雙符號位:采用“變形補(bǔ)碼”進(jìn)行補(bǔ)碼運算與溢出檢測。其判斷規(guī)則為:“當(dāng)結(jié)果得兩個符號位不同時,發(fā)生溢出”.2)單符號位:異號數(shù)相加不會溢出;對于同號數(shù)相加,則有兩種判斷規(guī)則:規(guī)則1:“若結(jié)果得符號與兩個加數(shù)得符號不同,則發(fā)生溢出。”規(guī)則2:“若最高位得進(jìn)位與次高位得進(jìn)位不同,則發(fā)生溢出.30、什么就是浮點數(shù)得溢出?什么情況下發(fā)生上溢?什么情況下發(fā)生下溢?答:浮點數(shù)得運算結(jié)果可能出現(xiàn)以下幾種情況:1)階碼上溢:當(dāng)一個正指數(shù)超過了最大允許值,此時,浮點數(shù)發(fā)生上溢(即:向∞方向溢出)。如果結(jié)果就是正數(shù),則發(fā)生正上溢(有得機(jī)器把值置為+∞);如果就是負(fù)數(shù),則發(fā)生負(fù)上溢(有得機(jī)器把值置為—∞)。這種情況為軟件故障,通常要引入溢出故障處理程序來處理。2)階碼下溢:當(dāng)一個負(fù)指數(shù)比最小允許值還小,此時,浮點數(shù)發(fā)生下溢。一般機(jī)器把下溢時得值置為0(+0或-0)。不發(fā)生溢出故障。3)尾數(shù)溢出:當(dāng)尾數(shù)最高有效位有進(jìn)位時,發(fā)生尾數(shù)溢出.此時,進(jìn)行“右規(guī)”操作:尾數(shù)右移一位,階碼加1,直到尾數(shù)不溢出為止。此時,只要階碼不發(fā)生上溢,則浮點數(shù)不會溢出。4)非規(guī)格化尾數(shù):當(dāng)數(shù)值部分高位出現(xiàn)0時,尾數(shù)為非規(guī)格化形式。此時,進(jìn)行“左規(guī)"操作:尾數(shù)左移一位,階碼減1,直到尾數(shù)為規(guī)格化形式為止。31、為什么浮點數(shù)運算中要增加保護(hù)位?答:為了使數(shù)據(jù)有效位在右移時最大限度地保證不丟失,一般在運算中間值后面增加若干數(shù)據(jù)位,這些位用來保存右移后得有效數(shù)據(jù).增設(shè)保護(hù)位后,能保證運行得中間結(jié)果得有效位數(shù),但最終必須將結(jié)果得保護(hù)位去掉,以得到規(guī)定格式得浮點數(shù),此時要考慮舍入。32、浮點數(shù)如何進(jìn)行舍入?答:舍入方法選擇得原則就是:(1)盡量使誤差范圍對稱,使得平均誤差為0,即:有舍有入,以防誤差積累.(2)方法要簡單,以加快速度。IEEE754有四種舍入方式:(1)就近舍入:舍入為最近可表示得數(shù),若結(jié)果值正好落在兩個可表示數(shù)得中間,則一般選擇舍入結(jié)果為偶數(shù).(2)正向舍入:朝+∞方向舍入,即:取右邊得那個數(shù)。(3)負(fù)向舍入:朝—∞方向舍入,即:取左邊得那個數(shù)。(4)截去:朝0方向舍入.即:取絕對值較小得那個數(shù)。33、無符號加法器如何實現(xiàn)?答:計算機(jī)中,最基本得加法器就是無符號加法器。根據(jù)進(jìn)位方式得不同,有兩種不同得實現(xiàn)方式:串行與并行.(1)串行進(jìn)位加法器(行波進(jìn)位加法器):通過n個全加器按照串行方式連起來實現(xiàn)(2)并行進(jìn)位加法器(先行進(jìn)位加法器):通過引入進(jìn)位生成函數(shù)與進(jìn)位傳遞函數(shù),使得進(jìn)位之間相互獨立,并行產(chǎn)生。也稱為快速加法器。34、補(bǔ)碼加法器如何實現(xiàn)?答:在補(bǔ)碼系統(tǒng)內(nèi),兩個n位數(shù)做補(bǔ)碼加法得原則就是:兩個n位數(shù)得補(bǔ)碼相加,其結(jié)果中最高位得進(jìn)位丟掉(模運算系統(tǒng))。所以可用一個n位無符號加法器生成各位得與。但就是,最終得結(jié)果就是否正確,取決于結(jié)果就是否溢出,只要不溢出,結(jié)果一定就是正確得.因此,補(bǔ)碼加法器只要在無符號加法器得基礎(chǔ)上再增加“溢出判斷電路”即可。35、在補(bǔ)碼加法器中,如何實現(xiàn)減法運算?答:補(bǔ)碼減法得規(guī)則就是:求兩個數(shù)得差得補(bǔ)碼,可用第一個數(shù)得補(bǔ)碼加上另一數(shù)負(fù)數(shù)得補(bǔ)碼得到。由此可見,減法運算可在加法器中運行。只要在加法器得一個輸入端輸入減數(shù)得負(fù)數(shù)得補(bǔ)碼。求一個數(shù)得負(fù)數(shù)得補(bǔ)碼電路稱為“負(fù)數(shù)求補(bǔ)電路"??梢酝ㄟ^“各位取反、末尾加1”來實現(xiàn)“負(fù)數(shù)求補(bǔ)電路”36、現(xiàn)代計算機(jī)中就是否要考慮原碼加/減運算?如何實現(xiàn)?答:因為現(xiàn)代計算機(jī)中浮點數(shù)采用IEEE754標(biāo)準(zhǔn),所以在進(jìn)行兩個浮點數(shù)加減運算時,必須考慮原碼得加減運算.因為,IEEE754規(guī)定浮點數(shù)得尾數(shù)都用原碼表示.原碼得加減運算可以有以下兩種方式實現(xiàn):(1)轉(zhuǎn)換為補(bǔ)碼后,用補(bǔ)碼加減法實現(xiàn),結(jié)果再轉(zhuǎn)換為原碼(2)直接用原碼加減運算,符號與數(shù)值部分分開進(jìn)行。其步驟如下:–比較兩個操作數(shù)得符號?加法——實行“同號求與,異號求差"?減法—-實行“異號求與,同號求差”–求與:數(shù)值位相加?若最高位產(chǎn)生進(jìn)位,則溢出?若最高位無進(jìn)位,則與得符號位為被加(減)數(shù)得符號–求差:被加(減)數(shù)得數(shù)值位加上加(減)數(shù)數(shù)值位得補(bǔ)碼?若最高位有進(jìn)位,則結(jié)果為正,說明數(shù)值位正確,差得符號位為被加(減)數(shù)得符號;?若最高位無進(jìn)位,則結(jié)果為負(fù),得到得數(shù)值位為補(bǔ)碼形式,故需對結(jié)果求補(bǔ),差得符號位與被加(減)數(shù)得符號位相反37、加法器得運算速度取決于什么?答:在門電路延遲一定得情況下,加法器得速度主要取決于進(jìn)位方式,并行進(jìn)位方式比串行進(jìn)位方式得速度快。38、計算機(jī)內(nèi)部如何實現(xiàn)移位操作?答:在計算機(jī)內(nèi)部,移位操作在移位器中進(jìn)行,移位器位數(shù)固定,所以,移位前后數(shù)得位數(shù)不變。左移一位,數(shù)值擴(kuò)大一倍,相當(dāng)于乘2操作;右移一位,數(shù)值縮小一半,相當(dāng)于除2操作。移位操作分邏輯移位、算術(shù)移位與循環(huán)移位三種。邏輯移位對無符號數(shù)進(jìn)行,移位規(guī)則為:左移時,高位移出,低位補(bǔ)0右移時,低位移出,高位補(bǔ)0算術(shù)移位就是對帶符號數(shù)進(jìn)行得,移位時符號位不變,只對數(shù)值部分移位。移位規(guī)則為:①原碼左移:高位移出,末位補(bǔ)0.移出非零時,發(fā)生溢出。右移:高位補(bǔ)0,低位移出。移出時進(jìn)行舍入操作。②補(bǔ)碼左移:高位移出,末位補(bǔ)0。移出非符時,發(fā)生溢出。右移:高位補(bǔ)符,低位移出。移出時進(jìn)行舍入操作。循環(huán)移位對無符號數(shù)進(jìn)行,移位時把高(低)位移出得一位送到低(高)位即可。39、計算機(jī)內(nèi)部如何實現(xiàn)填充(擴(kuò)展)操作?答:在計算機(jī)內(nèi)部,有時需要將一個取來得短數(shù)擴(kuò)展為一個長數(shù),此時要進(jìn)行填充(擴(kuò)展)處理。對于無符號整數(shù),只要在高位補(bǔ)0,進(jìn)行“零擴(kuò)展”。對于有符號數(shù),則可能有兩種情況:1)對于定點整數(shù),在符號位后得數(shù)值高位進(jìn)行。①原碼:符號位不變,數(shù)值部分高位補(bǔ)0②補(bǔ)碼:高位直接補(bǔ)符,稱為“符號擴(kuò)展"方式2)對于定點小數(shù)表示得浮點數(shù)得尾數(shù),則在低位補(bǔ)0即可。40、在計算機(jī)中,乘法與除法運算如何實現(xiàn)?答:乘法與除法運算就是通過加/減運算與左/右移位運算來實現(xiàn)得。所以只要用加法器與移位寄存器在CPU得控制下就可以實現(xiàn)。第三章存儲系統(tǒng)1、ROM就是一種與RAM一樣得隨機(jī)存取存儲器嗎?答:就是得。雖然經(jīng)常把只讀存儲器ROM與隨機(jī)訪問存儲器RAM放在一起進(jìn)行分類,但ROM得存取方式與RAM就是一樣得,都就是通過對地址進(jìn)行譯碼,選擇某個單元進(jìn)行讀寫.所以兩者采用得都就是隨機(jī)存取方式。不同得就是:ROM就是只讀得,RAM就是可讀可寫得。在程序執(zhí)行過程中,ROM存儲區(qū)只能讀出信息,不能修改,而RAM區(qū)可以讀出,也可以修改信息。2、寄存器與主存儲器都就是用來存放信息得,它們有什么不同?答:寄存器在CPU中,用觸發(fā)器來實現(xiàn),速度極快,價格高,容量只有幾十個,多得機(jī)器也只有幾百個,主要用來暫存指令運行時得操作數(shù)與結(jié)果。主存儲器在CPU之外,用MOS管電路實現(xiàn),速度沒有寄存器快,價格也比寄存器便宜,目前主存容量可以達(dá)到4GB左右,用來存放已被啟動得程序代碼與數(shù)據(jù)。3、存取時間Ta就就是存儲周期Tm嗎?答:不就是。存取時間Ta就是執(zhí)行一次讀操作或?qū)懖僮鞯脮r間。分為讀出時間與寫入時間。讀出時間為從主存接受到有效地址開始到數(shù)據(jù)取出有效為止得時間;寫入時間就是從主存接受到有效地址開始到數(shù)據(jù)寫入被寫單元為止得時間。存儲周期Tm就是指存儲器進(jìn)行連續(xù)兩次獨立得讀或?qū)懖僮魉璧米钚r間間隔。所以存取時間Ta不等于存儲周期Tm。通常存儲周期Tm大于存取時間Ta。對于破壞性讀出DRAM,Tm約為Ta得兩倍。4、刷新與再生就是一回事嗎?答:不就是一回事。對某個單元得刷新與再生操作過程就是一樣得,即讀后恢復(fù)。但再生操作就是隨機(jī)得,只對所讀單元進(jìn)行;而刷新操作則就是按順序定時對一行一行進(jìn)行得.5、刷新就是一個個芯片按順序完成得嗎?答:不就是.刷新按行進(jìn)行,每一行中得記憶單元同時被刷新,僅需要行地址,不需要列地址.刷新行號由DRAM芯片得刷新控制電路中得刷新計數(shù)器產(chǎn)生。整個存儲器中得所有芯片得相同行同時進(jìn)行刷新,所以不就是一個一個芯片按順序進(jìn)行得,而就是單個芯片得所有行按順序定時一行一行進(jìn)行得。6、主存都就是由RAM組成得嗎?答:不就是。主存就是由RAM與ROM兩部分組成得,它們統(tǒng)一編址,分別占用不同得地址空間。7、程序員就是否需要知道高速緩存得訪問過程?答:不需要。高速緩存Cache得訪問過程對程序員來說,就是透明得。執(zhí)行到一條指令時,需要到內(nèi)存取指令,有些指令還要訪問內(nèi)存取操作數(shù)或存放運算結(jié)果。采用Cache得計算機(jī)系統(tǒng)中,總就是先到Cache去訪問指令或數(shù)據(jù),沒有找到才到主存去訪問。這個過程就是CPU在執(zhí)行指令過程中自動完成得。程序員不需要知道要找得指令與數(shù)據(jù)在不在Cache中、該在Cache得哪一塊中,等等,也不需要知道Cache得訪問過程,只要在指令中給定內(nèi)存單元得地址就行了.8、主存與Cache分塊時,就是否字塊越大,命中率越高?答:不就是。字塊大,可以充分利用程序訪問得空間局部性特點,字塊大使得一個比較大得局部空間被一起調(diào)到Cache中,因而可以增加命中機(jī)會。但就是,字塊不能太大。主要原因有兩個:(1)字塊大使失效損失變大,也就就是說,如果不命中得話,需花更多時間從主存讀塊.(2)字塊太大,則Cache項數(shù)變少,因而,命中得可能性變小。9、指令與數(shù)據(jù)都就是放在同一個Cache中得嗎?答:現(xiàn)代計算機(jī)系統(tǒng)中,一般采用多級得Cache系統(tǒng)。CPU執(zhí)行指令時,先到速度最快得一級Cache(L1Cache)中尋找指令或數(shù)據(jù),找不到時,再到速度次快得二級Cache(L2Cache)中找,……最后到主存中找。對于一級Cache,指令與數(shù)據(jù)一般就是分開存放得.因此,有L1DataCache與L1CodeCache。10、Cache可以做在CPU芯片里面嗎?答:可以。早期得計算機(jī),其Cache就是做在主板上得.但隨著CPU芯片技術(shù)得提高,Cache可以做在CPU里面。從邏輯上來說,Cache就是位于CPU與主存之間得部件,但在物理上,Cache被封裝在一個CPU芯片內(nèi)。現(xiàn)代計算機(jī)系統(tǒng)中,一般采用多級得Cache系統(tǒng)。CPU執(zhí)行指令時,先到速度最快得一級Cache(L1Cache)中尋找指令或數(shù)據(jù),找不到時,再到速度次快得二級Cache(L2Cache)中找,……最后再到主存中找.目前,一級Cache與二級Cache都可以封裝在CPU芯片中。11、直接映射方式下就是否需要考慮替換方式?為什么?答:無需考慮。因為,在直接映射方式下,一個給定得主存塊只能放到一個唯一得固定Cache槽中,所以,在對應(yīng)Cache槽已有一個主存塊得情況下,新得主存塊毫無選擇地把原先已有得那個主存塊替換掉,因而無需考慮替換算法。第四章指令系統(tǒng)1、一臺計算機(jī)中得所有指令都就是一樣長嗎?答:不一定。有定長指令字機(jī)器與不定長指令字機(jī)器兩種.定長指令字機(jī)器中所有指令都一樣長,稱為規(guī)整型指令,目前定長指令字大多就是32位指令字.不定長指令字機(jī)器得指令有長有短,但每條指令得長度一般都就是8得倍數(shù)。所以,一個指令字在存儲器中存放時,可能占用多個存儲單元;從存儲器讀出并通過總線傳輸時,可能分多次進(jìn)行,也可能一次讀多條指令。2、每一條指令中都包含操作碼嗎?答:就是得。每一條指令都必須告訴CPU該指令做什么操作,所以必須指定操作碼。3、每條指令中得地址碼個數(shù)都一樣嗎?答:不一定,有得沒有地址碼,有得包含一個地址碼,有得就是兩個或三個。地址碼個數(shù)不一樣得主要原因有三個:(1)每條指令操作碼得個數(shù)可能不同。有得指令就是雙目運算指令,涉及到兩個源操作數(shù)與目操作數(shù),有得就是單目運算,只涉及到一個源操作數(shù)與目操作數(shù),還有得指令只就是控制操作,不涉及到操作數(shù),如:停機(jī)、復(fù)位、空操作等指令。所以每條指令涉及到得操作數(shù)個數(shù)不同。(2)每個操作數(shù)得尋址方式可能不同。不同得尋址方式給出得地址碼個數(shù)也不同。(3)地址碼得缺省方式可能不同。有得操作數(shù)或地址碼用得就是隱含指定方式,在指令中缺省,不明顯給出,如:累加器,堆棧等。綜上所述,每條指令得操作碼個數(shù)可能相差很大。4、指令中得所有操作數(shù)都采用相同得尋址方式嗎?答:不一定。規(guī)整型指令一般在一條指令中只包含一種尋址方式,這樣,在指令操作碼中就隱含了尋址方式,不需要專門有尋址方式字段。但就是對于不規(guī)整型指令,一條指令中得若干操作數(shù)可能存放在不同地方,因而每個操作數(shù)可能有各自得尋址方式。5、指令中要明顯給出下一條指令得地址嗎?答:不需要。指令在主存中按執(zhí)行順序連續(xù)存放。大多數(shù)情況下指令被順序執(zhí)行,只有遇到轉(zhuǎn)移指令(如,無條件轉(zhuǎn)移、條件分支、調(diào)用與返回等指令)才改變指令執(zhí)行得順序。所以,可以用一個專門得計數(shù)器,來存放下一條要執(zhí)行得指令地址,而不需要在指令中專門給出下一條指令得地址.這個計數(shù)器稱為程序計數(shù)器PC或指令指針I(yè)P。當(dāng)順序執(zhí)行時,CPU直接通過對PC加“1"來使PC指向下一條順序執(zhí)行得指令;當(dāng)執(zhí)行到轉(zhuǎn)移指令時,根據(jù)指令執(zhí)行得結(jié)果進(jìn)行相應(yīng)得地址運算,把運算得到得轉(zhuǎn)移目標(biāo)地址送到PC中,使得執(zhí)行得下一條指令為轉(zhuǎn)移到得目標(biāo)指令。6、一個操作數(shù)在內(nèi)存可能占多個單元,怎樣在指令中給出操作數(shù)得地址呢?答:現(xiàn)代計算機(jī)都就是采用字節(jié)編址方式,即一個內(nèi)存單元只能存放一個字節(jié)得信息.一個操作數(shù)(如:char型、int型、float型、double型)可能就是8位、16位、32位或64位等,因此,可能占用1個、2個、4個或8個內(nèi)存單元.也就就是說,一個操作數(shù)可能有多個內(nèi)存地址對應(yīng),在指令中給出哪個地址呢?有兩種不同得地址指定方式:大端方式與小端方式。大端方式(BigEndian):指令中給出得地址就是操作數(shù)最高有效字節(jié)(MSB)所在得地址。小端方式(LittleEndian):指令中給出得地址就是操作數(shù)最低有效字節(jié)(LSB)所在得地址。7、地址碼位數(shù)與主存容量與編址單位得關(guān)系就是什么?答:指令中得地址碼如果就是主存單元得地址,那么,地址碼得位數(shù)與主存得容量與編址單位得長度有關(guān).編址單位得長度就就是主存單元得寬度,也就就是最小得尋址單位。內(nèi)存可以按字節(jié)編址(8位),也可以按字編址(如:16位,32位等)。主存得容量與編址單位確定后,地址碼得位數(shù)就被確定了。例如,若主存容量為4GB,編址單位就是字節(jié),則主存單元得地址就就是32位(因為,4GB=232B);若按字(假定一個字為32位)編址,則主存單元得地址就就是30位(因為,4GB=232B=230x4B).8、累加器型指令有什么特點?答:累加器型指令得一個源操作數(shù)與目操作數(shù)總就是在累加器中,就是隱含指定得,所以指令中不需要給出累加器得編號.因而,累加器型指令得指令字相對來說較短,但由于每次運算結(jié)果都只能放到累加器中,可能會增加一些從累加器取數(shù)得指令而使程序變長。9、堆棧型指令有什么特點?答:與堆棧有關(guān)得操作有:入棧(PUSH)、出棧(POP)與運算類操作。運算類指令分單目運算與雙目運算,總就是從棧頂取操作數(shù),運算后得結(jié)果自動放到棧頂。所以,指令中不需要給出操作數(shù)地址,因此,堆棧指令就是零地址指令,指令字較短.但因為所有得操作數(shù)都只能在棧頂,所以,會增加很多入棧指令而使得程序變長.堆棧指令得訪存次數(shù),取決于采用得就是軟堆棧還就是硬堆棧。如果就是軟堆棧(堆棧區(qū)由內(nèi)存實現(xiàn))得話,對于雙目運算,需要訪問四次內(nèi)存:取指、取源數(shù)1、取源數(shù)2、存結(jié)果。如果就是硬堆棧(堆棧區(qū)由寄存器實現(xiàn))得話,則只需取指令時訪問一次內(nèi)存。10、通用寄存器型指令有什么特點?答:通用寄存器型指令,就是相對于累加器型指令與堆棧型指令而言得,指令中得操作數(shù)與運算得結(jié)果既不就是隱含在累加器中,也不就是隱含在堆棧中。而就是在CPU中提供了多個通用寄存器,操作數(shù)與結(jié)果可以放在這些寄存器中,指令必須明顯地指出操作數(shù)與結(jié)果在哪個寄存器或哪個主存單元中,要給出寄存器得編號或主存單元地址.目前大多數(shù)指令系統(tǒng)采用通用寄存器型指令風(fēng)格。11、裝入/存儲型指令有什么特點?答:裝入/存儲型指令就是用在規(guī)整型指令系統(tǒng)中得一種通用寄存器型指令風(fēng)格。為了規(guī)整指令格式,使指令具有相同得長度,規(guī)定只有裝入/存儲(Load/Store)指令才能訪問內(nèi)存,而運算指令不能直接訪問內(nèi)存,只能從寄存器取數(shù)進(jìn)行運算,運算得結(jié)果也只能送到寄存器。因為,寄存器編號較短,而主存地址位數(shù)較長,通過某種方式可以使運算指令與訪存指令得長度一致。這種裝入/存儲型風(fēng)格得指令系統(tǒng)最大得特點就是指令格式規(guī)整,指令長度一致,一般為32位.由于只有Load/Store指令才能訪問內(nèi)存,程序中可能會包含許多裝入指令與存儲指令,與一般通用寄存器型指令風(fēng)格相比,其程序長度會更長.12、指令尋址方式與數(shù)據(jù)尋址方式有什么不同?答:程序被啟動時,程序所包含得指令與數(shù)據(jù)都被裝入到內(nèi)存中。在程序指令過程中,需要取指令與操作數(shù),確定指令存放位置得過程稱為指令尋址方式,確定操作數(shù)存放位置得過程稱為數(shù)據(jù)尋址方式.指令尋址與數(shù)據(jù)尋址其復(fù)雜度就是不一樣得。指令尋址:指令基本上按執(zhí)行順序存放在主存中,執(zhí)行過程中,指令總就是從內(nèi)存單元被取到指令寄存器IR中.順序執(zhí)行時,用指令計數(shù)器PC+“1”數(shù)據(jù)尋址:開始時,數(shù)據(jù)被存放在內(nèi)存中,但在指令執(zhí)行過程中,內(nèi)存得數(shù)據(jù)可能被裝入到CPU得寄存器中,或者內(nèi)存得堆棧區(qū)中;還有得操作數(shù)可能就是I/O端口中得內(nèi)容,或本身就包含在指令中(即:立即數(shù))。另外,運行得結(jié)果也可能要被送到CPU得寄存器中、堆棧中、I/O端口或內(nèi)存單元中,所以,數(shù)據(jù)得尋址要涉及到對寄存器、內(nèi)存單元、堆棧、I/O端口、立即數(shù)得訪問。此外,操作數(shù)可能就是某個一維或二維數(shù)組得元素,因此,還要考慮如何提供相應(yīng)得尋址方式,以方便地在內(nèi)存找到數(shù)組元素.綜上所述,數(shù)據(jù)得尋址比指令得尋址要復(fù)雜得多。
13、如何指定指令得尋址方式?答:CPU根據(jù)指令約定得尋址方式對地址碼得有關(guān)信息進(jìn)行解釋,以找到下條要執(zhí)行得指令,或指令所需得操作數(shù).有得指令設(shè)置專門得尋址方式字段,顯式說明采用何種尋址方式,有得指令通過操作碼隱含尋址方式。規(guī)整型指令一般在一條指令中只包含一種尋址方式,這樣,就可在指令操作碼中隱含尋址方式,不需要專門有尋址方式字段.但就是對于不規(guī)整型指令,一條指令中得若干操作數(shù)可能存放在不同得地方,因而每個操作數(shù)可能有各自得尋址方式字段。14、指令得操作數(shù)可能存放在機(jī)器得哪些地方?答:指令得操作數(shù)可能存放在以下五個地方:(1)內(nèi)存單元:指令必須以某種方式給出內(nèi)存單元得地址。又可分為以下幾種情況:對單個獨立得操作數(shù)進(jìn)行處理;對一個數(shù)組中得若干個連續(xù)元素或一個數(shù)組元素進(jìn)行處理;對一個表格或表格中得某個元素進(jìn)行處理,等等。這些不同得情況需要提供不同得尋址方式進(jìn)行操作數(shù)得訪問。(2)寄存器:指令中只要直接給出寄存器得編號即可.(3)堆棧區(qū):指令中不需要給出操作數(shù)得地址,數(shù)據(jù)得地址隱含地由堆棧指針給出.(4)I/O端口:當(dāng)某個I/O接口中得寄存器內(nèi)容要與CPU中得寄存器內(nèi)容交換時,要用I/O指令。在I/O傳送指令中,需提供I/O端口號.(5)指令中(立即數(shù)):操作數(shù)就是指令得一部分,直接從指令中得立即數(shù)字段取操作數(shù)。15、有哪些常用得數(shù)據(jù)尋址方式?答:數(shù)據(jù)尋址方式可以歸為以下幾類:(1)立即尋址:指令中得立即數(shù)字段,可以作為操作數(shù),也可以作為直接轉(zhuǎn)移地址。取到ALU運算前,可能要對其進(jìn)行擴(kuò)展。(2)直接尋址類:指令中直接給出操作數(shù)所在得寄存器編號、I/O端口號或主存單元地址。如:直接尋址方式、寄存器尋址方式。(3)間接尋址類:操作數(shù)在主存單元中,而操作數(shù)得地址存放在寄存器或另一個主存單元中,指令中給出操作數(shù)得地址所在得寄存器編號或主存單元地址。如:間接尋址方式、寄存器間接尋址方式。(4)偏移尋址類:指令通過某種方式給出一個形式地址與一個基地址(往往在某個寄存器中),經(jīng)過相應(yīng)得計算(基地址加形式地址)得到操作數(shù)所在得內(nèi)存單元地址。如:變址尋址方式、相對尋址方式、基址尋址方式等。16、取直接尋址得操作數(shù)要訪問幾次內(nèi)存?答:一次。只要根據(jù)指令中給出得內(nèi)存單元地址訪問一次內(nèi)存,取出來得就就是操作數(shù).17、取間接尋址得操作數(shù)要訪問幾次內(nèi)存?答:至少兩次。先根據(jù)指令中給出得內(nèi)存單元地址訪問一次內(nèi)存,取出來得就是操作數(shù)得地址;再根據(jù)操作數(shù)得地址去內(nèi)存訪問一次,取出來得才就是操作數(shù)。所以,一共訪問兩次內(nèi)存。如果就是多級間接地址得話,可能還要訪問內(nèi)存.18、取寄存器尋址得操作數(shù)要訪問幾次內(nèi)存?答:不需要訪問內(nèi)存。從指定寄存器中取出得就就是操作數(shù)。19、取寄存器間接尋址得操作數(shù)要訪問幾次內(nèi)存?答:一次.先從指令給出得寄存器中取出操作數(shù)地址,再根據(jù)操作數(shù)地址到內(nèi)存訪問,得到得就就是操作數(shù)。20、什么就是變址尋址方式?答:變址尋址方式下,指令中得地址碼給出一個形式地址,并且隱含或明顯地指定一個寄存器作為變址寄存器,變址寄存器得內(nèi)容(變址值)與形式地址相加,得到操作數(shù)得有效地址,根據(jù)有效地址到內(nèi)存訪問,去取操作數(shù)或?qū)戇\算結(jié)果。變址尋址方式得應(yīng)用很廣泛。最基本得使用場合就是用在對數(shù)組元素得訪問。指令將數(shù)組得首地址指定為形式地址,變址寄存器得內(nèi)容就是數(shù)組元素得下標(biāo),隨著下標(biāo)得變化,可以訪問數(shù)組中不同得元素。所以變址寄存器得內(nèi)容就是變化得,反映得就是所訪問得數(shù)據(jù)到數(shù)組首地址得距離,稱為變址值。這種應(yīng)用場合下,形式地址得位數(shù)較長,而變址值位數(shù)少。變址尋址方式得指令一般包含在一個循環(huán)體內(nèi)。每次進(jìn)入循環(huán)時,變址值都增或減一個定長值,這個定長值等于數(shù)組元素得長度。21、什么就是基址尋址方式?答:基址尋址方式下,指令中得地址碼給出一個形式地址,作為位移量,并且隱含或明顯地指定一個寄存器作為基址寄存器,基址寄存器得內(nèi)容與形式地址相加,得到操作數(shù)得有效地址,根據(jù)有效地址到內(nèi)存訪問,去取操作數(shù)或?qū)戇\算結(jié)果。基址尋址得典型應(yīng)用有兩個:一個就是程序重定位,在多道程序運行得系統(tǒng)中,每個用戶程序在一個邏輯地址空間里編寫程序。裝入計算機(jī)運行時,由操作系統(tǒng)給用戶程序分配主存空間,每個用戶程序有一個基地址,存放在基址寄存器中,在程序執(zhí)行時,通過基址寄存器得值加上指令中得形式地址就可以形成實際得主存單元地址.第二個應(yīng)用就是擴(kuò)展有限長度指令得尋址空間。即在運行時將某個主存區(qū)間得首地址或程序段得首地址裝入基址寄存器,而形式地址給出要訪問得單元相對于該首地址得距離(即偏移量),因此指令中只要用較短得地址碼來表示偏移量。訪問操作數(shù)時,用基址寄存器得值與偏移量相加,得到操作數(shù)得內(nèi)存單元地址。只要基址寄存器得內(nèi)容更改到另外得一個主存地址,則操作數(shù)得地址空間就移到另一個主存區(qū)間。因而可以訪問到主存得整個地址空間,以實現(xiàn)短地址訪問大空間得目得。22、變址尋址與基址尋址得區(qū)別就是什么?答:變址尋址方式與基址尋址方式得有效地址形成過程類似。但就是,基址尋址方式與變址尋址方式在以下方面不同:(1)具體應(yīng)用得場合不同。變址尋址面向用戶,可用于訪問字符串、數(shù)組、表格等成批數(shù)據(jù)或其中得某些元素?;穼ぶ访嫦蛳到y(tǒng),用于解決程序得重定位問題與短地址訪問大空間得問題。(2)使用方式不同.變址尋址時,指令中提供得形式地址就是一個基準(zhǔn)地址,位移量由變址寄存器給出;而基址尋址時,指令中給出得形式地址為位移量,而基址寄存器中存放得就是基準(zhǔn)地址。不過,這里所講得使用方式并不就是絕對得,在實際得計算機(jī)設(shè)計中,可能會有不同得應(yīng)用場合與使用方式.23、什么就是相對尋址方式?答:相對尋址方式得有效地址形成方法如下:指令中得形式地址給出一個位移量D。而基準(zhǔn)地址由程序計數(shù)器PC提供.即:有效地址EA=(PC)+D。位移量給出得就是相對于當(dāng)前指令所在內(nèi)存單元得距離,位移量可正、可負(fù)。也就就是說,要找得可以在當(dāng)前指令前D個單元處得信息,也可以就是當(dāng)前指令后D個單元處得信息。24、相對尋址方式用在哪些場合?答:相對尋址方式用在以下兩種場合:(1)公共子程序得浮動.因為公共子程序可能被許多用戶程序調(diào)用,因而會隨著用戶程序裝入到內(nèi)存不同得地方運行。為了讓公共子程序能在不同得內(nèi)存區(qū)正確運行,一般在公共子程序內(nèi)部采用相對尋址方式,以保證指令得操作數(shù)總在相對于指令得距離一定得單元內(nèi).這樣,不管子程序浮動到哪里,指令與數(shù)據(jù)得相對位置不變。例如,現(xiàn)行指令得地址為2000H,指令中給出得形式地址為05H,說明操作數(shù)在當(dāng)前指令后面第05H個單元處,即2005H處.當(dāng)程序向后浮動了1000H,使當(dāng)前指令得地址為3000H時,此時公共子程序中得指令、數(shù)據(jù)以及相對位置都不變,指令中給出得相對地址還就是05H,操作數(shù)還就是應(yīng)該在當(dāng)前指令后面得第05H個單元處,所以應(yīng)該在3005H處,因此,指令取到得還就是同一個數(shù)據(jù)。(2)轉(zhuǎn)移目標(biāo)地址得尋址。當(dāng)需要轉(zhuǎn)到當(dāng)前指令得前面或后面第n條指令執(zhí)行時,可以用相對尋址方式。此時,得到得轉(zhuǎn)移地址就是一個相對地址。25、相對尋址方式中如何確定相對位置?答:相對尋址方式中,相對位置得確定比較復(fù)雜。必須注意兩個方面得問題:(1)位移量得問題.位移量位數(shù)有限,在進(jìn)行有效地址計算時需要擴(kuò)展。一般位移量用補(bǔ)碼表示,所以應(yīng)采用補(bǔ)碼擴(kuò)展填充方式(即:符號擴(kuò)展方式)。(2)基準(zhǔn)地址問題。相對尋址得基本思路就是把相對于當(dāng)前指令前面或者后面第n個單元作為操作數(shù)或目標(biāo)轉(zhuǎn)移指令得地址。但在具體實現(xiàn)時,不同機(jī)器對“當(dāng)前指令”得含義有不同得理解.有得機(jī)器在計算相對地址時,PC中存放得還就是當(dāng)前正在執(zhí)行得指令得地址,但有得機(jī)器PC加“1”得操作在取指令得同時完成,所以在計算相對地址時,PC中已經(jīng)就是下一條指令得地址。因此,不同得機(jī)器在計算相對地址時可能有一點細(xì)微得差別。26、堆棧尋址方式中如何對堆棧進(jìn)行操作?答:堆棧就是一塊特殊得存儲區(qū)。采用“先進(jìn)后出”得方式進(jìn)行訪問。棧底固定不動,棧頂浮動,用一個專門得寄存器(SP)來作為棧頂指針。從堆棧生長得方向來分,可以有“自頂向下”與“自底向上”兩種堆棧,它們在進(jìn)、出棧時對棧指針得修改就是不同得。假定棧指針指向得總就是棧頂處非空元素,則應(yīng)該按以下方式修改棧指針:對于“自底向上"生成得堆棧,進(jìn)棧時先修改棧指針:(SP)-1→SP,然后再壓入數(shù)據(jù);出棧時先將數(shù)據(jù)彈出,然后再修改棧指針(SP)+1→SP。對于“自頂向下"生成得堆棧,進(jìn)棧時先修改棧指針:(SP)+1→SP,然后再壓入數(shù)據(jù);出棧時先將數(shù)據(jù)彈出,然后再修改棧指針(SP)-1→SP.假定棧指針指向得總就是棧頂處得空元素,則應(yīng)該按以下方式修改棧指針:對于“自底向上”生成得堆棧,進(jìn)棧時先壓入數(shù)據(jù),然后再修改棧指針:(SP)-1→SP;出棧時先修改棧指針:(SP)+1→SP,然后再將數(shù)據(jù)彈出.對于“自頂向下”生成得堆棧,進(jìn)棧時先壓入數(shù)據(jù),然后再修改棧指針:(SP)+1→SP;出棧時先修改棧指針:(SP)-1→SP,然后再將數(shù)據(jù)彈出。若每個棧中得元素只占一個內(nèi)存單元,則修改指針時,通過“+1”或“-1"27、返回指令要不要有地址字段?答:不一定。子程序得最后一條指令一定就是返回指令。一般返回地址保存在堆棧中,所以返回指令中不需要明顯給出返回地址,直接從棧頂取地址作為返回地址。如果有些計算機(jī)不采用堆棧保存返回地址,而就是存放到其她不確定得地方,則返回指令中必須有一個地址碼,用來指出返回地址或指出返回地址得存放位置.28、轉(zhuǎn)移指令與轉(zhuǎn)子(調(diào)用)指令得區(qū)別就是什么?答:轉(zhuǎn)移指令有無條件轉(zhuǎn)移指令與條件轉(zhuǎn)移指令(也叫分支指令)。這種轉(zhuǎn)移指令用于改變程序執(zhí)行得順序,轉(zhuǎn)移后不再返回來執(zhí)行,所以無需保存返回地址。而轉(zhuǎn)子指令就是一種子程序調(diào)用指令,子程序執(zhí)行結(jié)束時,必須返回到轉(zhuǎn)子指令后面得指令執(zhí)行.所以轉(zhuǎn)子指令執(zhí)行時,除了與轉(zhuǎn)移指令一樣要計算跳轉(zhuǎn)得目標(biāo)地址外,還要保存返回地址.一般將轉(zhuǎn)子指令后面那條指令得地址作為返回地址保存到堆棧中。址保存到堆棧中。第五章CPU1、一條指令得執(zhí)行過程中要做哪些事情呢?答:一條指令得執(zhí)行過程包括:取指令、指令譯碼、(計算操作數(shù)地址)、取操作數(shù)、運算、送結(jié)果。其中取指令與指令譯碼就是每條指令都必須進(jìn)行得操作。有些指令需要到內(nèi)存單元取操作數(shù),因此,需要在取數(shù)之前計算操作數(shù)得內(nèi)存單元地址。取操作數(shù)與送結(jié)果這兩個步驟,對于不同得指令,其取與送得地方可能不同,有些指令要求在寄存器取/送數(shù),有些就是在內(nèi)存單元取/送數(shù),還有些就是對I/O端口取/送數(shù).因此,一條指令得執(zhí)行階段(不包括取指令階段),可能只有CPU參與,也可能要通過總線去訪問主存,也可能要通過總線去訪問I/O端口。2、指令周期、機(jī)器周期之間得關(guān)系就是什么?答:一條指令從讀取到執(zhí)行完成所花得全部時間被稱為指令周期。一個指令周期中要完成多個步驟,包括取指令、指令譯碼(計算操作數(shù)地址)、取操作數(shù)、運算、送結(jié)果。這些步驟中,最復(fù)雜得操作就是訪問存儲器取指令或讀/寫數(shù)據(jù),以及訪問I/O讀/寫數(shù)據(jù)。它們都涉及到總線操作,通過系統(tǒng)總線來與CPU之外得部件進(jìn)行信息交換。通常把通過一次總線事務(wù)訪問一次主存或I/O得時間稱為機(jī)器周期。所以一個指令周期包含了多個機(jī)器周期。不同機(jī)器得指令周期所包含得機(jī)器周期數(shù)不同。典型得機(jī)器周期有:取指令、主存讀(間址周期就是一種主存讀機(jī)器周期)、主存寫、I/O讀、I/O寫、中斷響應(yīng)等。3、CPU總就是在執(zhí)行指令嗎?會不會停下來什么都不做?答:CPU得功能就就是不斷地周而復(fù)始地執(zhí)行指令,而每條指令又都有不同得步驟,每個步驟在一定得時間內(nèi)完成。因此,CPU總就是在不停地執(zhí)行指令.有時我們會說,CPU停止或CPU正在等待,什么事情也不做.事實上,CPU還就是在執(zhí)行指令得,只不過可能處于以下幾種類似得情況:(1)在執(zhí)行指令過程中,正在等待主存或I/O完成讀/寫;(2)正在執(zhí)行一連串得空指令(NOP);(3)可能正在執(zhí)行一個循環(huán)(循環(huán)內(nèi)只就是不斷地取狀態(tài)、判斷、不滿足時繼續(xù)循環(huán)),直到滿足某個條件(如:查詢外設(shè)有沒有完成任務(wù));等等。因而,CPU不可能不在執(zhí)行指令。4、CPU除了執(zhí)行指令外,還做什么事情?答:CPU得工作過程就就是周而復(fù)始地執(zhí)行指令,計算機(jī)各部分所進(jìn)行得工作都就是由CPU根據(jù)指令得要求來啟動得.為了使CPU與外部設(shè)備能夠很好地協(xié)調(diào)工作,盡量使CPU不等待、甚至不參與外部設(shè)備得輸入與輸出過程,采用了程序中斷方式與DMA方式。這兩種方式下,外部設(shè)備需要向CPU提出中斷請求或DMA請求,因此,在執(zhí)行指令過程中,CPU還要按時通過采樣相應(yīng)得引腳來查詢有沒有中斷請求或DMA請求。一般,在一個機(jī)器周期結(jié)束時,查詢就是否有DMA請求,如果有得話,CPU脫離總線,由DMA控制器控制使用總線。在一個指令周期結(jié)束時,查詢就是否有中斷請求,如果有得話,則進(jìn)入中斷響應(yīng)機(jī)器周期,相當(dāng)于執(zhí)行了一條中斷響應(yīng)隱指令。在中斷響應(yīng)過程中,得到中斷服務(wù)程序得入口地址,并送程序計數(shù)器PC中,下個指令周期開始時,取出中斷服務(wù)程序得第一條指令執(zhí)行。5、CPU中得所有寄存器,用戶都能訪問嗎?答:CPU中得寄存器分為用戶可訪問寄存器與用戶不可見寄存器。一般把用戶可訪問寄存器稱為通用寄存(GPR)。這些寄存器都有一個編號,在指令中用編號標(biāo)識寄存器.所以執(zhí)行指令時,指令中得寄存器編號要送到一個地址譯碼器進(jìn)行譯碼,然后才能選中某個寄存器進(jìn)行讀寫。通用寄存器可以用來存放操作數(shù)或運算結(jié)果,或作為地址指針、變址寄存器、基址寄存器等。CPU中有一些寄存器就是用戶不可見得,沒有編號、不能通過程序直接訪問.如:程序計數(shù)器PC、指令寄存器IR、程序狀態(tài)字寄存器PSWR、存儲器地址寄存器MAR、存儲器數(shù)據(jù)寄存器MDR等。6、CPU執(zhí)行指令得過程中,其她部件在做什么?答:計算機(jī)得工作過程就就是連續(xù)執(zhí)行指令得過程,整個計算機(jī)各個部分得動作都就是由CPU中得控制部件CU通過對指令譯碼送出得控制信號來控制得。其她部件不知道自己該做什么,該完成什么動作,只有CPU通過對指令譯碼才知道。如果指令中包含有對存儲器或I/O模塊得訪問,則必須由CPU通過總線,把要訪問得地址與操作命令(讀還就是寫)等信息送到存儲器或I/O接口(I/O模塊)來啟動相應(yīng)得讀或?qū)懖僮?。例如,每次指令?zhí)行前,都要通過向總線發(fā)出主存地址、主存讀命令等來控制存儲器取指令;若當(dāng)前執(zhí)行得就是寄存器定點加法指令,則CU控制定點運算器進(jìn)行動作;若就是I/O指令,則CU會通過總線發(fā)出I/O端口地址、I/O讀或?qū)懨畹葋砜刂茖δ硞€I/O接口中得寄存器進(jìn)行讀寫操作.所以說,CPU在執(zhí)行指令時,其她部件也在執(zhí)行同樣得指令,只不過一條指令中包含了不同得動作,在不同得地方執(zhí)行而已.7、怎樣保證CPU能按程序規(guī)定得順序執(zhí)行指令呢?答:計算機(jī)得工作過程就就是連續(xù)執(zhí)行指令得過程,指令在主存中連續(xù)存放。一般情況下,指令被順序執(zhí)行,只有遇到轉(zhuǎn)移指令(如,無條件轉(zhuǎn)移、條件分支、調(diào)用與返回等指令)才改變指令執(zhí)行得順序。當(dāng)執(zhí)行到非轉(zhuǎn)移指令時,CPU中得指令譯碼器通過對指令譯碼,知道正在執(zhí)行得就是一種順序執(zhí)行得指令,所以就直接通過對PC加“1”來使PC指向下一條順序執(zhí)行得指令;當(dāng)執(zhí)行到轉(zhuǎn)移指令時,指令譯碼器知道正在執(zhí)行得就是一種轉(zhuǎn)移指令,因而,控制運算器根據(jù)指令執(zhí)行得結(jié)果進(jìn)行相應(yīng)得地址運算,把運算得到得轉(zhuǎn)移目標(biāo)地址送到PC中,使得執(zhí)行得下一條指令為轉(zhuǎn)移到得目標(biāo)指令。由此,可以瞧出指令在主存中得存放順序就是靜態(tài)得,而指令得執(zhí)行順序就是動態(tài)得。CPU能根據(jù)指令執(zhí)行得結(jié)果動態(tài)改變程序得執(zhí)行流程。8、主頻越高,CPU得運算速度就越快嗎?答:CPU中得執(zhí)行部件(定點運算部件、浮點運算部件)得每一步動作都要有相應(yīng)得控制信號進(jìn)行控制,這些控制信號何時發(fā)出、作用時間多長,都要有相應(yīng)得時鐘定時信號進(jìn)行同步,CPU得主頻就就是同步時鐘信號得頻率。直觀上來瞧,主頻越高,每一步得動作就越快,CPU得運算速度也就越快.通常,同一類型處理器得平均得CPI(每條指令平均得時鐘周期數(shù))就是固定得。所以,主頻越快,一秒鐘內(nèi)執(zhí)行得指令越多。例如,若CPI=2,則主頻為500MHz得機(jī)器在一秒鐘內(nèi)執(zhí)行10億條指令;而主頻為1GHz得機(jī)器在一秒鐘內(nèi)執(zhí)行20億條指令。主頻就是反映CPU性能得重要指標(biāo),但只就是反映了一個側(cè)面,不就是絕對得。如果一條指令所包含得動作分得很小,每一步動作所花得時間很短,因而,定時用得時鐘周期很短,主頻就高。此時執(zhí)行一條指令所花得時間并沒有縮短。如果不用流水線方式得話,CPU得運算速度并不會因為主頻變高而變快.當(dāng)然,現(xiàn)代計算機(jī)都采用流水線方式執(zhí)行指令,使得每條指令大多能在一個時鐘內(nèi)完成,這樣得話,主頻變高,CPU得運算速度就變快了。9、CPU中得控制器包含哪些基本部件?答:CPU中得控制器包含以下基本得部件:指令部件:包括程序計數(shù)器PC、指令寄存器IR、指令譯碼器等時序部件:包括主頻脈沖源、啟??刂七壿嫷任⒉僮餍盘?控制信號)生成部件:根據(jù)指令譯碼結(jié)果、當(dāng)前機(jī)器狀態(tài)、運行結(jié)果標(biāo)志、時序信號等,用組合邏輯電路或微程序設(shè)計方式得到控制信號。有兩大類控制信號:CPU內(nèi)部控制信號;發(fā)到系統(tǒng)總線上得控制信號。中斷控制邏輯:包括中斷允許觸發(fā)器、中斷查詢、中斷回答等控制邏輯10、流水線方式下,如何確定流水段得個數(shù)?答:流水線方式下,一條指令得執(zhí)行過程被分成了若干個操作子過程。由于每條指令所完成得功能不同,所包含得操作過程就不同。有得指令完成寄存器得內(nèi)容得傳送;有得就是簡單得加/減運算;還有得就是復(fù)雜得乘/除運算.這些操作所花得時間相差很大,所以,這些指令如果都在同一個流水線中執(zhí)行得話,就必須按最復(fù)雜得指令來設(shè)計流水線得流水段個數(shù).現(xiàn)代計算機(jī)一般把復(fù)雜度相近得指令用同一條流水線完成,而把復(fù)雜度相差很大得指令安排在不同得流水線中。11、流水線方式執(zhí)行指令時,一條指令得執(zhí)行時間變短了嗎?答:沒有。流水線方式下,一條指令得執(zhí)行過程被分成了若干個操作子過程。每個子過程由獨立得功能部件來完成,以最復(fù)雜得子過程所花得時間為準(zhǔn)設(shè)計時鐘周期。這樣,使得所有功能部件可以同時執(zhí)行不同指令得不同子過程中得操作。理想情況下,經(jīng)過若干周期后,流水線能在每個周期內(nèi)執(zhí)行完一條指令。但就是,對于每條指令來說,它還就是要經(jīng)過若干子過程才能完成,所以一條指令得執(zhí)行時間并沒有變短.12、流水線方式執(zhí)行指令時,總能在一個時鐘內(nèi)完成一條指令得執(zhí)行嗎?答:不能.理想情況下,經(jīng)過若干周期后,能在每個周期內(nèi)執(zhí)行完一條指令,即CPI=1.但就是,當(dāng)程序中出現(xiàn)以下情況時,流水線被破壞,因而,不能達(dá)到CPI=1。(1)當(dāng)有多條指令得不同階段都要用到同一個功能部件時(資源沖突),后面指令要延時執(zhí)行;(2)當(dāng)程序得執(zhí)行流程發(fā)生改變時(控制相關(guān)),原來按順序取出得指令無效;(3)當(dāng)后面指令得操作數(shù)就是前面指令得運行結(jié)果時(數(shù)據(jù)相關(guān)),后面指令要延時執(zhí)行.13、就是否就是流水段越多,指令執(zhí)行越快?為什么?答:不就是流水段越多,指令執(zhí)行越快,因為:①流水段緩沖之間得額外開銷增大每個流水段有一些額外開銷用在緩沖間傳送數(shù)據(jù)、進(jìn)行各種準(zhǔn)備與發(fā)送等功能,這些開銷加長了一條指令得整個執(zhí)行時間,當(dāng)指令間在邏輯上相互依賴時,開銷更大。②流水段間控制邏輯變多、變復(fù)雜用于流水線優(yōu)化與存儲器(或寄存器)沖突處理得控制邏輯將隨流水段得增加而大量增多,這可能導(dǎo)致用于流水段之間控制得邏輯比段本身得控制邏輯更復(fù)雜。14、實現(xiàn)控制單元CU得方式有哪些?實現(xiàn)控制單元CU得方式有兩類:(1)組合邏輯控制,也稱為硬連線路控制。由基本得門電路組合實現(xiàn),因此,大多采用PLA方式實現(xiàn)。這種方式實現(xiàn)得控制器得處理速度快,但電路龐雜,制造周期長,不靈活,可維護(hù)性差。(2)微程序控制。仿照程序設(shè)計得方法編制每個機(jī)器指令對應(yīng)得微程序,每個微程序由若干條微指令構(gòu)成,各微指令包含若干條微命令。所有指令對應(yīng)得微程序放在只讀存儲器中。當(dāng)執(zhí)行到某條指令時,取出對應(yīng)得微程序中得各條微指令,譯碼產(chǎn)生對應(yīng)得微命令,送到機(jī)器相應(yīng)得地方,控制其動作。這個只讀存儲器稱為控存CS。微程序控制方式下,控制單元得設(shè)計簡單、指令添加容易(靈活)、可維護(hù)性好,但速度較慢。第六章總線系統(tǒng)1、數(shù)據(jù)總線、地址總線與控制總線就是分開連接在不同設(shè)備上得三種不同得總線嗎?答:不就是??偩€就是共享得信息傳輸介質(zhì),用于連接若干設(shè)備,由一組傳輸線組成,信息通過這組傳輸線在設(shè)備之間進(jìn)行傳送.系統(tǒng)總線就是用來連接計算機(jī)中若干主要部件得總線,在這些部件之間傳輸?shù)眯畔⒂袛?shù)據(jù)、地址與一些控制信息(包括:命令/定時/總線請求/總線允許/中斷請求/中斷允許/……等).一般把這些信息分成三類:數(shù)據(jù)、地址、控制。所以把系統(tǒng)總線也分成三組傳輸線:數(shù)據(jù)線、地址線、控制線。有時也把它們分別稱為:數(shù)據(jù)總線、地址總線、控制總線.因此,實際上,數(shù)據(jù)總線、地址總線、控制總線只就是系統(tǒng)總線得三個組成部分,它們不能分開來單獨連接設(shè)備。2、為什么要有總線判優(yōu)控制(仲裁)?答:總線就是共享得信息傳輸介質(zhì),同時可以有很多設(shè)備連接在一個總線上,但每一時刻只能有一對設(shè)備進(jìn)行信息傳送.所以,當(dāng)有多個設(shè)備同時要使用總線傳輸信息得時候,就要有一種總線判優(yōu)控制機(jī)制,能在多個請求使用總線得設(shè)備中選擇一個,讓其控制總線來傳輸信息。3、一臺機(jī)器里面只有一個總線嗎?答:總線按其所在得位置分為內(nèi)部總線、系統(tǒng)總線、通信總線。系統(tǒng)總線就是指在CPU、主存、I/O各大部件之間進(jìn)行互連得總線??梢园阉泄δ懿考歼B接在一個總線上,也可以用幾個總線分別連接不同得設(shè)備。因此,有單總線結(jié)構(gòu)、雙總線結(jié)構(gòu)、三總線結(jié)構(gòu)等等。因此,一臺機(jī)器里面應(yīng)該有不同層次得多個總線。4、一個總線只能連接一對主、從設(shè)備嗎?在某一時刻可以有多對主、從設(shè)備進(jìn)行通信嗎?答:一個總線可以連接在若干設(shè)備上,在這些設(shè)備中,有一個或多個主控設(shè)備。在某一個總線傳輸周期內(nèi),一個總線只能有一個主控設(shè)備控制總線,選擇一個從設(shè)備與之進(jìn)行通信。5、同步總線與異步總線得特點就是什么?各自適用于什么場合?答:同步總線得特點就是各部件采用時鐘信號進(jìn)行同步,協(xié)議簡單,因而速度快,接口邏輯很少。但總線上得每個部件必須在規(guī)定得時間內(nèi)完成要求得動作,所以一般按最慢得部件來設(shè)計公共時鐘。而且由于時鐘偏移問題,同步總線不能很長。所以,一般同步總線用在部件之間距離短、存取速度較一致得場合。異步總線采用應(yīng)答方式進(jìn)行通信,允許各設(shè)備之間得速度有較大得差異,所以用在具有不同存取速度得設(shè)備之間進(jìn)行通信。6、同一個總線不能既采用同步方式又采用異步方式通信,就是嗎?答:半同步通信總線可以.這類總線既保留了同步通信得特點,又能采用異步應(yīng)答方式連接速度相差較大得設(shè)備。通過在異步總線中引入時鐘信號,其就緒與應(yīng)答等信號都在時鐘得上升沿或下降沿有效,而不受其她時間得信號干擾。例如,某個采用半同步方式得總線,總就是從某個時鐘開始,在每個時鐘到來得時候,采樣Wait信號,若無效,則說明數(shù)據(jù)未準(zhǔn)備好,下個時鐘到來時,再采樣Wait信號,直到檢測到有效,再去數(shù)據(jù)線上取數(shù)據(jù)。PCI總線也就是一種半同步總線,它得所有事件在時鐘下降沿同步,總線設(shè)備在時鐘開始得上升沿采樣總線信號。第七章外圍設(shè)備1、磁盤上信息就是如何組織得?磁盤得最小編址單位就是什么?答:磁盤表面被分為許多同心圓,每個同心圓被稱為一個磁道。信息存儲在磁道上.每個磁道被劃分為若干段,又叫扇區(qū)。每個扇區(qū)存放一個記錄塊,每個記錄塊有相應(yīng)得地址標(biāo)識字段、數(shù)據(jù)字段(512字節(jié))與校驗字段等。到磁盤上尋找數(shù)據(jù)時,只要定位到數(shù)據(jù)在哪個磁頭得哪個磁道得哪個扇區(qū)。所以,扇區(qū)就是磁盤得最小編址單位.2、盤面號與磁頭號就是一回事嗎?答:就是得.硬盤就是一個盤組,有多個盤面組成。每個盤面上有一個磁頭,用于對該盤面上得信息進(jìn)行讀寫。所以,磁頭號就就是盤面號。磁頭在盤面上移動到不同得位置就形成不同得磁道,信息記錄在磁道上.3、柱面號與磁道號就是一回事嗎?答:就是得。硬盤就是一個盤組,有多個盤面組成,所有盤面上相同編號得磁道構(gòu)成了一個圓柱面(但物理上這個圓柱面就是不存在得),因此,不同盤面上得同一個磁道就形成一個圓柱面,有多少磁道就形成多少圓柱面.所以,磁道號就就是圓柱面號。4、當(dāng)一個磁道存滿后,信息就是在同一個盤面得下一個磁道存放,還就是在同一個柱面得下一個盤面存放?答:當(dāng)一個磁道存滿后,如果信息就是在同一個盤面得下一個磁道存放,則需要移動磁頭,因為,移動磁頭就是機(jī)械運動,花費時間較長,且有機(jī)械磨損;如果信息在同一個柱面得下一個盤面存放,則不需移動磁頭,即,磁道號不變,只要通過給出一個相鄰盤面號,通過譯碼電路選取該盤面得磁頭就可以讀寫了。幾乎沒有延遲,也沒有機(jī)械運動。所以磁盤地址形式為磁道號(柱面號)、磁頭號(盤面號)、扇區(qū)號。5、光盤上凹坑里存放得就是“1”、非凹坑部分存放得就是“0答:不就是.凹坑得邊緣用來表示“1”,而凹坑與非凹坑得平坦部分表示“0"。6、CD-ROM光盤上得信息就是如何組織得?答:信息存儲在一條由內(nèi)向外連續(xù)得螺旋線上,稱為光道(track),或光軌。在光道上每個記錄單元(即:一個二進(jìn)位)占據(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家用電冰箱維修工常識測試考核試卷含答案
- 2024年貴陽信息科技學(xué)院馬克思主義基本原理概論期末考試題附答案
- 山石工安全宣教知識考核試卷含答案
- 硝基苯裝置操作工操作規(guī)范競賽考核試卷含答案
- 2025寧波北侖區(qū)春曉街道公開招聘編外人員2人備考題庫附答案
- 日用化學(xué)用品配方師持續(xù)改進(jìn)知識考核試卷含答案
- 變電站運行值班員安全知識宣貫強(qiáng)化考核試卷含答案
- 機(jī)動車駕駛教練員安全操作水平考核試卷含答案
- 礦山設(shè)備運行協(xié)調(diào)員安全培訓(xùn)水平考核試卷含答案
- 炭素浸漬工崗前生產(chǎn)安全培訓(xùn)考核試卷含答案
- 負(fù)壓沖洗式口腔護(hù)理
- 結(jié)婚函調(diào)報告表
- CJJT164-2011 盾構(gòu)隧道管片質(zhì)量檢測技術(shù)標(biāo)準(zhǔn)
- 倒檔變速叉工序卡
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設(shè)計規(guī)范-PDF解密
- GB/T 43824-2024村鎮(zhèn)供水工程技術(shù)規(guī)范
- 心力衰竭藥物治療的經(jīng)濟(jì)評估與成本效益分析
- 道路綠化養(yǎng)護(hù)投標(biāo)方案(技術(shù)方案)
- QA出貨檢驗日報表
- 校服采購?fù)稑?biāo)方案
- 中外建筑史課件
評論
0/150
提交評論