国产精品一区二区x88av_日韩三级av高清片_亚洲日本久久_丝袜亚洲另类丝袜在线

浙江自考網

咨詢熱線

15700080354 (點擊在線咨詢)
您現在的位置:浙江自考網>復習資料 > 正文
自考攻略

2022年浙江自考計算機系統結構復習資料匯總

時間:2022-07-26 10:04:00 作者:儲老師

自考助學

計算機中所采用的數據類型,它們主要有兩類:一類是基本數據類型,包括位、串、整數、實數、字符和布爾量等;另一類是結構數據類型,包括向量、數據、字符串、堆棧、隊列、記錄等。因為計算機只能識別"0"和"1"這些二進制位,那么在計算機中如何在存儲器中用"0"和"1"來表示上面的這些數據,就是我們要學的數據表示。這一章內容不多,比較難理解的似乎是"向量"這種數據類型。本章的內容主要應掌握浮點數的數據表示。

 

一、數據類型(識記)

計算機中所使用的數據一般可分為三類:第一類是用戶定義的數據,這類數據通常是由程序設計語言所確定的;第二類是系統數據,它是程序在執行時由計算機系統蘊含生成的;第三類是指令,即被執行的程序可看成是數據的復合。

 

上面講的是"數據",那么"數據類型"是什么呢? 它不同于數據,數據類型除了指一組值的集合外,還定義了可作用于這個集合上的操作集,比如有一組整數值的集合,連同定義在這個集合上可進行的加減乘除等算術操作,這個整數的集合就成為了整數數據類型。

 

從系統結構的觀點來看,數據類型可分為基本數據、結構數據、訪問指針和抽象數據等類型。我們這里講的主要是基本數據和結構數據。

 

1、基本數據類型(識記)

 

一般包括二進制位及其位串、整數及自然數、實數(浮點數)、字符和布爾數等。

 

2、結構數據類型(識記)

 

結構數據類型是一組由相互有關的數據元素復合而成的數據類型,這些數據元素可以是基本數據類型中的元素,也可以是結構數據類型本身中的元素。也就是說這些數據是有結構的,包括向量和數組、字符串、堆棧、隊列、記錄等,結構數據類型中的元素不一定都具有相同類型。

 

這里提到了向量,向量通常是指由標量的一組有序集合表示的量,它類似于一維數組,但又有所不同,因為標量通常只是一個整數或實數,而數組元素不一定只取實數。從計算機存儲結構上來說,向量通常存儲在一段連續的存儲空間里。而數組元素的存儲可能用鏈式存儲方式,也就是不一定存儲在連續的空間里。



二、數據表示

1、數據表示、數據類型、數據結構的關系。(領會)

上面我們學了數據類型,還有一個概念是數據結構,數據結構就是指上面講結構數據類型的組織方式,它反映了結構數據類型中各種數據元素或信息單元之間的結構關系,比如樹這種數據結構,里面的元素就有根和葉的層次邏輯關系。數據結構一般通過高級語言描述建立的,但是計算機硬件并不懂什么是根什么是葉,它只認0和1.這就需要我們確定如何在計算機系統中進行數據表示,讓硬件能認識各種數據類型。

計算機系統結構中的數據表示是指可由硬件直接辨認的數據類型。這里講到硬件直接辨認,就是說在系統中能夠直接由硬件實現相應數據的運算,也就是系統結構中有相應的運算指令和運算部件來完成這項任務。那么怎么表示才能讓硬件識別某種數據類型?

上面的數據類型和數據表示就涉及到軟硬件的交界面了。數據結構所研究的是軟的方面,而數據表示考慮是是硬的方面,讓計算機能夠識別處理,并盡量節約存儲空間。

 

2、二進的定點、浮點數據表示(綜合應用)

主要講述是的IEEE標準的二進制浮點數表示:

IEEE754標準在表示浮點數時,每個浮點數均由三部分組成:符號位S,指數部分E和尾數部分M.

我們知道10進制數的科學計數法如A= -3.5×105

這里最前面有一個負號,3.5是尾數,兩個有效數字,后面以10為基數的指數為5.我們可以將它表示為-3.5E5

同樣,二進制數也可以用科學計數法規格化表示,比如5這個數,如果用二進制表示的話,整型為101,如果用科學計數法則可以表示為 1.25×24 ,這里用的是十進制,將尾數換成二進制就是1.01(就是101向前移兩位小數點,和十進制完全相同),后面的指數4換成二進制則是10,那我們將其用二進制的科學計數法就可以寫成1.01E10.

當我們依照這種計數法給一個數字確定其精度(有效位)后,就可以用一定長度的1和0的位串來表示一個實數了。

浮點數一般采用以下四種基本格式:

(1)單精度格式(32位):除去符號位1位后,E占8位,M占23位。

(2)擴展單精度格式:E>=11位,M31位。

(3)雙精度格式:(64位);E=11位,M=52位。

(4)擴展雙精度格式:E>=15位,M>63位。

我們最重要的是掌握單精度格式的表示法。在IEEE754標準中,約定小數點左邊隱含有一位,通常這位數就是1,這樣實際上使尾數的有效位數為24位,即尾數為1.M.指數的值在這里稱為階碼,為了表示指數的正負,所以階碼部分采用移碼表示,移碼值為127,階碼值即從1到254變為-126至+127,在IEEE754中所有的數字位都得到了使用,明確地表示了無窮大和0,并且還引進了"非規格化數",使得絕對值較小的數得到更準確表示。

 

3、向量數據表示(簡單應用)

這里又提到向量,前面已經簡單解釋過向量,這里說的是向量數據表示,我們知道向量在內存中是連續存放在一段空間里的,換句話說,這些向量元素的地址是連續的。

在標量計算機上運行時,由于沒有專門的向量數據表示,因此在計算一個向量(相當于一維數組的計算)時,每取用一個數據元素,都要用到計算該元素的地址。而在向量機中,由于有了向量數據表示,就可以把一個向量用一個位串來表示出來。向量指令就是能夠用一條指令對向量的全部元素進行運算的指令。

比方,有兩排抽屜:A和B:我們有一個任務,就是把A中每個抽屜里的東西按照順序一一對應地搬到B的每個抽屜里。

用標量指令就是這樣:聽著,把A1抽屜里的東東給我搬到B1里去~~(等打工的搬好后……)再把A2抽屜里的東東給我搬到B2里去!(又等跑腿的搬完后……)還有,把A3抽屜……直到把全部抽屜搬好,數到了5,算是完成一項任務了,其間用了5次循環命令。

而用向量指令就是這么說的:聽著,把A柜子從第1格抽屜起的5個抽屜的東東給搬到B柜子里去,位置是從第1格抽屜起,依次放到5個抽屜里去。這樣,跑腿的就明白了,只要一句話就完成了任務。

向量表示就是用一個位串來表示一個向量的基址、位移量和向量長度,這樣三個值就能明確表示一個向量,并能確定參加計算的元素所在的位置,因此向量表示是向量指令及向量機得以實現的基礎。

在向量處理中,還會遇到稀疏向量(就是含有大量0元素的向量),所以為了節省空間了處理時間,采用壓縮向量的表示方法。這里要注意的是有一個中間向量Z向量,它是一個位向量,每個元素不是1就是0,而壓縮向量就是根據Z向量中的有1的元素對應的稀疏向量元素存儲起來而得到的。這個容易理解。

 

4、自定義數據表示(領會)

為了減少高級語言與機器語言之間的差別,采用了自定義數據表示,就是由數據本身來表明數據類型,這樣可以使每種指令的種類大為減少,稱為通用化指令。自定義數據表示形式有兩種,即帶標志符數據表示和數據描述符表示。

帶標志符數據表示就是對每一個數據都附加一個標志符,由這個標志符來表示這個數據的類型。這種表示法有它的優點也有它的缺點,請認真領會一下。

其優點是:簡化指令系統;易于對編程查錯;自動類型轉換;簡單化編譯;方便程序調試。缺點是增加存儲空間又使指令執行速度變慢。

另一種就是數據描述符表示,主要用來描述復雜和多維結構的數據類型,如向量、記錄等,它于帶標志符數據表示不同之處是:

(1)標志符要與每個數據相連,兩者合存在一個存儲單元中;而描述符則和數據分開存放(一個連合一個分)

(2)要訪問數據集中的元素時,必須先訪問描述符,這就至少增加一級尋址(先訪描符增尋址)

(3)描述符可看成是程序一部分,而不是數據的一部分。標志符則可看作是數據的一部分(程序部分不是數)



指令系統是計算機外特性的重要內容,本章主要介紹了兩種不同風格的指令系統:RISC和CISC.在學習這兩種指令系統之前,我們先了解一下什么是指令系統。

 

一、指令系統的設計(領會)

 

指令系統是指機器所具有的全部指令的集合。它反映了計算機所擁有的基本功能。它是機器語言程序員所看到的機器的主要屬性之一。

 

通常我們說的加法指令、傳輸數據指令等等就是計算機的指令,這些指令就是告訴計算機從事某一特殊運算的代碼,一種計算機系統確定的這些指令的集合我們就說它是這種機器的指令系統。

 

那么指令系統的設計要做什么? 就是要確定它的指令格式(就是指令有多少位長,哪幾位表示地址,哪幾位表示操作等)、類型(如堆棧型、寄存器型等分類)、操作(比如運算、數據傳送啊什么的都是指令中要確定的操作)以及操作數的訪問方式(一個指令要訪問數據,是按其地址訪問還是按內容訪問等也要由指令設計來解決)。

 

我們知道,由多條指令構成的程序是要以二進制的形式放到存儲器中的,早期的存儲器很昂貴,因此導致指令設計者盡量增強一條指令的復雜性以減少程序的長度。還用微程序(就是保存在專用的存儲器中的一小段程序,運行時只要用一條指令來啟動它就可用來代替好多條指令) 來改進代碼密度。這樣的設計傾向形成了一種傳統的指令設計風格,即認為計算機系統性能的提高主要依靠增加指令復雜性及其功能來獲取。這就是稱為復雜指令系統(CISC)的設計風格。我們現在用的PC機多是用這種設計風格的指令系統,比如MMX多媒體擴展指令等,都是增加進去的指令,是復雜指令。

 

后來,通過測試,這種不斷增加指令復雜度的辦法并不能使系統性能得到很大提高,反倒使指令系統實現更困難和費時。所以在70年代中期又出現了另一種稱為"簡化指令系統(RISC)"的設計風格。它的基本思想是,簡單的指令能執行得更快以及指令系統只需由使且頻率高的指令組成。(插話)

 

指令系統在設計時,應特別注意的是如何能使編譯系統高效、簡易地將源程序翻譯成目標代碼。這就是指令系統的設計原則。為了達到這個目的,在設計時應注意:正交性、規整性、可擴充性、對稱性。(請對照課本加以理解)



二、指令系統集結構的分類(識記)

 

前面我們知道了指令系統的設計要確定它的指令格式、類型、操作及對操作數的訪問方式。現在就提到了分類:

 

一般地,指令系統集結構分類主要是依據在CPU中以何種存儲方式來存放操作數。

 

我們知到,CPU在進行數據計算時,總是要先把數據取到某種寄存器中才能開始。而這寄存器的類型有堆棧型、累加器型和通用寄存器型三種。相應地,使用哪種存儲方式來存放操作數的,就把指令系統集結構分成堆棧型、累加器型和通用寄存器型三類。它們是有區別的,堆棧型結構中,操作數總是被默認存放在棧頂,累加器結構中,操作數總是被默認存放在累加器中;而在通用寄存器中,所有的操作數都必須被說明是存放在哪一個寄存器或存儲器的哪個單元中。

 

所有的計算機都可按上述分類標準進行歸類。但有的機器可能是某些類型的混合,如intel的8086處理器便是通用寄存器結構和累加器結構的混合。

 

三種類型的比較:

其中通用寄存器指令系統又可進一步分為:寄存器-寄存器、寄存器-存儲器以及存儲器-存儲器三類。在RISC機中,只可能存在寄存器-寄存器類型。(寄存器是在計算機內部的存儲小容量數據的裝置,尤指數據可以同時存儲和運算的裝置)請注意它們的優缺點,第一種是具有最好的指令密度,但是訪存速度慢。第三種方式則簡單,但程序代碼較長。第二種取中。



三、操作數訪問(尋址)方式(識記)

 

指令中對操作數的訪問方式,按訪問手段可分為兩大類:常用的是按地址訪問,另一類是按內容訪問方式。

 

計算機中的兩個地址概念一個是邏輯地址、一個是物理地址,前者為虛,后者是實,一般所討論的尋址方式是指邏輯地址的尋址方式。

 

地址的編址,通常有三種不同方式:(1)按各種部件分類編址;(2)統一編址;(3)隱式編址

 

對存儲器這一存儲部位編址(領會),絕大多數計算機將字節作為最小訪問單位(注意,1字節=8位。1字=4字節。)這里我們要弄清什么是"大端排序"和"小端排序".比如要訪問一個字(32位4字節)的時候,要求一次寫入4個字節的數據,而存儲器最小訪問單位是1個字節,那么就需要把這"字"分成4段存入4個單元中。如果確定把這個"字"的最低有效位的字節(最右邊的一段)是存儲器地址末位為"0"中的內容,最高有效位的字節(最左邊的一段)是地址末位為3的內容,則我們稱之為小端排序(即訪問字的最低有效位(小端)地址是按0、4……等順序排列的);反之若將字的最高有效位的字節放在"0"、"4"等地址中,則稱之為大端排序。

 

訪問方式可按面向對象和尋址方式來區分:前者可分為面向寄存器、面向存儲器、面向堆棧的訪問方式。后者可分為如下尋址方式:(了解一下即可)

 

立即數 指令中所帶的操作數內容即是一個可用的數絕對方式 指令中給出一個地址,訪問該地址得到操作數寄存器方式 訪問某個寄存器中給出的地址,由地址訪問到操作數寄存器間接訪問某個寄存器,由這個寄存器中的內容找到另一寄存器,由給出的地址取得操作數存儲器間接訪問存儲器中某單元,得到另一地址,再訪問到該地址取得操作數自增/自減將某寄存器中的數加上或減去操作操作數的字節數,找到地址變址方式 由寄存器中的數加上變址量得到地址…… ……

 

在CISC計算機中,使用頻率最高的是帶偏移的寄存器尋址方式,其次是直接量尋址,再就是寄存器間接尋址。在RISC機中,只選擇那些使用頻率高的尋址方式,如相對于寄存器尋址或PC的偏移尋址、立即數尋址以及基址加變址尋址等。

 

按內容訪問方式時,并不提供要訪問的存儲單元地址,而是給出要訪問的內容(很像是查詢)。因此存儲器的結構形式要作相應變化。為了加快訪問速度,必須采用并行方式,相應的存儲器就稱為聯想存儲器。請對照課本第49頁,對聯想存儲器的基本結構和其訪問方法進行理解和領會。

 

實用的聯想存儲器,一般除有按內容訪問能力外,還有按地址訪問能力。
 

指令格式及其優化(簡單應用)

 

指令一般由兩部分組成:一部分是操作碼,另一部分是操作地址碼。當操作數地址為隱式時(如堆棧的操作,默認為棧頂),后一部分則不是必須的。根據指令地址碼部分中顯式指明的地址個數,則可形成零地址、單地址、二地址、三地址及四地址指令。

 

我們說的確定指令格式主要就是選擇指令字中的操作碼長度和地址數。指令字的長度有定長和變長兩種。

 

我們著重要討論的問題是指令格式的優化問題,優化就是以較少的格式,以盡可能短的碼長來實現各種指令編碼。

 

指令字包括操作碼和地址碼,所以對這兩部分都采取優化措施。

 

1、操作碼的優化。這要用到霍夫曼壓縮的概念。霍夫曼壓縮法是一種頻率相關的編碼方法,即出現頻率高的字符編碼短,頻率低的字符編碼長,這樣可以縮短平均碼長。我們要掌握的是用霍夫曼樹實現霍夫曼編碼。其方法很簡單:

根據所給的各種指令使用頻率,把它們從小到大依次排好作為葉結點(相同的頻率可任取一個排在前),然后把最小的兩個結點值(頻率)相加,形成一個新結點,以這個結點的值與其他的葉結點值比較大小,仍舊取最小的兩個結點值合并產生新結點,直到最終合并為一個根(通常這個值是1或100)。簡單地記為:

從小到大排序,

最小兩個合并,

重復上述過程,

只剩一個結束。

編碼時,從根結點開始向下,凡左邊分支都編為"1",右邊分支都編為"0"(也可取反),則從根結點到葉結點的一條路徑上的編碼組合就是該指令的霍夫曼編碼。(請仔細觀察圖4.12中的霍夫曼樹)注意,霍夫曼樹不是唯一的(因為相同的頻率可以任取一個在前,且編碼時又可任取左1或左0),但所得的平均碼長應是一樣的。由于霍夫曼編碼得到的碼長很不規整,所以有時候要采用霍夫曼擴展編碼,就是在霍夫曼碼的基礎上對碼長加以限制(取幾個確定的長度如2位、4位等),對編碼作適當改變。

平均碼長應該容易計算吧,這也是要用到的。

 

2、地址碼的優化。上面我們學了操作碼的優化,但是一條指令碼還包括地址碼。兩者合理安排才能使指令格式得到優化。示意如下:

由于操作碼優化后是變長的編碼,如果整條指令是定長的,那么使地址碼的寬度應隨不同指令變化,以配合操作碼形成定長指令;也可以通過改變指令字中的地址數和地址碼的長度,以使單地址及多址都可以在一條指令中使用;如果操作碼和地址碼之外還有空余的碼位,則設法用來存放立即操作數或常數。

當今的RISC機指令系統中,全都是用定字長指令格式。
 

五、兩種不同的指令系統設計風格 CISC和RISC

 

這兩種風格應作比較深入的領會,并要識記一些內容。

 

CISC(復雜指令集計算機)以VAX-11/780為代表,70年代后的各種微機如我們用的intel80x86均是這種風格的計算機。

 

CISC設計風格的主要特點是:

(1)指令系統復雜;費時(2)絕大多數指令需要多個機器周期方可執行完畢;自由主義(3)各種指令都可訪問存儲器;地方主義(4)采用微程序控制;小金庫(5)有專用寄存器;低效率(6)難以用優化編譯器生成高效的目標代碼程序。 復雜

這哪里是特點,分明是一大堆缺點嘛,RISC機的特點就是把它們"取反",凡是 CISC是這樣的,它就不是這樣的:

(1)簡化指令系統;省時(2)除了LOAD/STORE指令外,所有指令都在一個時鐘周期內執行完畢;集體主義(3)除了LOAD/STORE指令外,其余指令只與寄存器打交道;搞活流通(4)絕大部分采用硬聯線控制,不用或少用微程序實現;查封小金庫(5)使用較多的通用寄存器,一般至少有32個,絕沒有專用寄存器;高效率(6)采用優化編譯技術,生成高效的目標代碼程序。 簡化

RISC與CISC技術兩者的主要區別在于設計思想上的差別,RISC的設計思想是;將那些不是最頻繁使用的功能(指令)由軟件來加以實現,這樣就可以優化硬件,并可使其執行得更快。在第一章中我們學過計算機系統的設計的準則,第一個準則就是:只加速使用頻率高的部件。RISC的設計思想與此完全吻合。

 

下面我們學習RISC技術中所采用的特殊方法:

1、采用較大量的寄存器,采用窗口重疊寄存器技術。

窗口重疊技術:在RISC結構中,為了減少過程調用中保存現場和建立新現場,以及返回時恢復現場等輔助操作,通常將所有寄存器分成若干個組,稱為寄存器窗口。每組中有若干個寄存器,每當有過程調用時,就分配一個未被使用的寄存器窗口,這樣就可減少保存和恢復現場的開銷。此外在每個寄存器窗口中,又分成大小固定的高區、本地和低區三個區段。其中本地區用來存放局部變量,高區在被調用時用來保存調用過程送來的參數,而在返回主調用過程時,存放返回結果。而低區在調用時存放欲送往被調用過程的參數,而在被調用過程返回時用來存放返回結果。在使用時,每一對調用和被調用過程的寄存器窗口各自的低區和高區相互重疊。一旦發生過程調用或返回,在控制由一個窗口轉換到另一窗口時,這些參數就通過兩個窗口間的公共寄存器區自動的被傳送而不需要再用額外的傳送時間。 (可參照教材進行理解)。

 

2、采用優化延遲轉移技術

優化延遲轉移技術:即是使轉移指令在準備將控制轉向目標指令的同時,執行緊隨在轉移指令之后的那條指令,也就是是在將轉移指令后延遲槽內的指令執行完畢后,才發生真正的轉移(不論轉移是否成功),這種優化技術可在保證程序正確執行的同時又可避免延遲轉移中損失的一個機器周期時間。

 

3、采用比較轉移指令

比較-轉移指令:在RISC機中,把比較和轉移(在CISC機中需用兩條指令完成的功能)合并成一條指令。該指令將直接對兩個對象(寄存器-寄存器或存儲器-立即數)進行相等或不等比較,然后根據比較結果判別是否進行轉移。這樣就可省去一條指令,并不受條件碼的約束。

 

4、采用優化編譯技術

優化編譯技術:在編譯時就可發現可能出現的阻塞情況,由編譯器通過重排指令執行序列來消除可能出現的阻塞情況,當無法消除時就填入相應的空操作,因此不需要硬件的互鎖流水支持。

以上的特殊技術并中是每一種RISC機都采用的,在RISC機中有兩個比較典型的代表,一個是加州大學伯克萊分校的RISC-I、II機的思路,側重系統結構的支持,采用由大量寄存器組成的寄存器堆及窗口重疊技術。另一個是遵循斯坦福大學的MIPS機器思路,側重采用編譯的支持,采用優化編譯技術,。

CISC和RISC兩種設計風格的比較,其實就是說RISC優點,簡單地說就是快、省、可靠、易實現、好優化。

關于RISC的兩種代表機型的指令系統實例,要對照它們的指令系統中指令數、指令格式、尋址方式及采用的特殊技術來進行比較。


聲明:

(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。

(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。

報名提醒

【考試時間:10月25-26日】

浙江自考服務中心

  • 微信公眾號
  • 考生交流群
  • 微信公眾號 掃一掃加關注微信公眾號

    與考生自由互動、并且能直接與專業老師進行交流解答。

  • 考生交流群 掃一掃加入微信交流群

    與考生自由互動、并且能直接與專業老師進行交流解答。

主站蜘蛛池模板: 沅江市| 凉城县| 乐东| 芒康县| 郸城县| 德庆县| 柳州市| 盐源县| 贡嘎县| 梁河县| 政和县| 合水县| 大石桥市| 凌云县| 肇源县| 盐亭县| 甘德县| 巫山县| 清镇市| 陇南市| 玉树县| 哈巴河县| 盱眙县| 肥西县| 福建省| 南漳县| 海南省| 崇仁县| 东山县| 肥乡县| 故城县| 温泉县| 漯河市| 宁乡县| 汪清县| 怀化市| 乌兰察布市| 尚志市| 金塔县| 苏尼特右旗| 京山县|

關注公眾號

回復“免費資料”領取復習資料

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

man
聯系
微信
wxlogo
掃描
二維碼
反饋建議
反饋
建議
回到頂部
回到
頂部
app
微信客服
 微信公眾號