基礎知識
- 一、計算機組成與結構
- 1、計算機系統基礎知識
- 1.1 計算機硬件組成
- 1.2 中央處理單元(CPU)
- 1.3 數據表示
- 1.3.1 R進制轉十進制:
- 1.3.2 十進制轉R進制:
- 1.4 校驗碼(3種校驗碼)
- 1.4.1 基本知識
- 1.4.2 奇偶校驗碼
- 1.4.3 循環冗余校驗CRC
- 1.4.4 海明碼
- 2、計算機體系結構
- 2.1 體系結構分類
- 2.2 指令系統
- 2.2.1 指令流水線
- 2.2.2 `流水線時間計算☆☆☆`
- 2.3 存儲系統
- 2.3.1 儲存編址(計算)
- 2.3.2 磁盤
- 2.4 輸入/輸出技術
- 2.5 總線結構
- 3、可靠性
- 3.1 計算機可靠性計算
一、計算機組成與結構
1、計算機系統基礎知識
1.1 計算機硬件組成
計算機的基本硬件系統由
運算器
、控制器
、存儲器
、輸入設備
和輸出設備
5大部件組成。
存儲器是計算機系統的記憶設備,分為內部存儲器(內存)和外部存儲器(硬盤、光盤、U盤等)。
輸入設備和輸出設備合稱為外部設備(簡稱:外設)
1.2 中央處理單元(CPU)
運算器
、控制器
、寄存器組
和內部總線
等部件被集成在一起統稱為中央處理單元
。
CPU用于數據的加工處理(運算器),能完成各種算術、邏輯運算及控制功能(包括:程序控制、操作控制、時間控制)(控制器)。還需要對系統內部和外部的中斷(異常)做出響應,進行相應的處理。
運算器:執行所有的算術運算和邏輯運算。
算術邏輯單元(ALU)
:實現對數據的算術和邏輯運算累加寄存器(AC)
:運算結果或源操作數的存放區數據緩沖寄存器(DR)
:暫時存放內存的指令或數據狀態條件寄存器(PSW)
:保存指令運行結果的條件碼內容,如溢出標志等。
控制器:控制整個CPU的工作,最為重要
指令寄存器(IR)
:暫存CPU執行指令程序計數器(PC)
:存放指令執行地址地址寄存器(AR)
:保存當前CPU所訪問的內存地址指令譯碼器(ID)
:分析指令操作碼
一般執行:先從內存中讀取指令地址程序計數器(PC)
,暫存在指令寄存器(IR)
中,由指令譯碼器(ID)
分析指令是干什么的。然后再去執行指令(比如:加法的指令)。執行指令前先從內存中獲取數據。
CPU根據指令周期的不同階段來區分二進制的指令和數據。
1.3 數據表示
二進制
符號為:0b
,一般表示為:0b0011
十六進制
符號為:0x
或H
,表示為:0x18f 或 18FH。
十六進制可表示0-15,其中10-15用A-F表示
1.3.1 R進制轉十進制:
方法:
位權展開法
(用R進制的每一位乘以R的n次方,n是變量,從R進制最低位開始,依次是0,1,2,3…)
例如:6進制數5043,此時R=6,從低到高位依次是:3-4-0-5,對應的n依次是:0-1-2-3,最終5043 = 3*6^ 0 + 4*6^ 1 + 0*6^ 2 + 5* 6^ 3
1.3.2 十進制轉R進制:
方法:除以R倒取余數。(用十進制除以R,記錄每次所得余數,若商不為0,則繼續除以R,直至商為0,而后將所有余數從下至上記錄,排列成從左到右順序,即為轉換后的R進制數)
例如:十進制200,轉為6進制,此時R=6,
將200/6,商為33,余數為2,商不等于0,繼續除
將33/6,商為5,余數3,商不等于0,繼續除
將5/6,商為0,余數5,
此時,將余數從下至上記錄,得6進制為:532。
m進制轉n進制
:m進制先轉為十進制,十進制再轉n進制。下面2種可以直接轉化
二進制轉八進制
:每三位二進制數轉化為一位八進制數,位數補足的,在前面補0
。(原理:2^3=8)- 例如:二進制數01101,有5位,前面補0一位,變成001 101,每三位轉為一位八進制數,001=1,101=4+1=5,即八進制數:15
二進制轉十六進制
:每四位二進制數轉化為一位十六進制數,位數補足的,在前面補0
。(原理:2^4=16)好像不對
機器數:
各種數值在計算機中表示的形式。用二進制的0和1表示,小數點則隱含,不占位置。
分無符號數
和帶符號數
。無符號表示正數,沒有符號位。帶符號數
最高位是符號位
,沒有±,而 是正數符號位為 0
,負數最高位符號位為1
.
定點表示法:(分為:定點整數和定點小數。定點整數就是純整數,只有整數,定點小數就是純小數,只有小數)
分純小數(只有小數)和純整數(只有整數)兩種,小數點不占存儲位,而是按照以下約定:
純小數:約定小數點的位置在機器數的最高數值位之前
純整數:約定小數點的位置在機器數的最低數值位之后
真值:
機器數對應的實際數值
浮點數:
既有小數,又有整數的,叫浮點數。
帶符號數有下列編碼方式
原碼、反碼、補碼、移碼
正數
:原碼、反碼、補碼是同一個值
負數
:以真值為-45為例:
原碼:是一個數的二進制表示
(把這個數轉為二進制就是原碼)。-45的二進制為101101。負數的最高位符號位是1
,所以補成8位是1 0 101101(按照8位編制,第一個1是符號位,其他的是數值位
)
反碼:在原碼的基礎上
,除符號位外,其他的各位按位取反
,數值0的反碼也有兩種形式:+0(0 0000000),-0(1 1111111)。-45的反碼為11010010.
補碼:在原碼的基礎上,除符號位外,其他的各位按位取反(在反碼的基礎上)
,而后末位+1,若有進位則產生進位
。因此數值0的補碼只有一種形式+0 = -0 = 0 0000000。-45對應的補碼為11010011.
移碼:用作浮點運算的階碼,無論正數負數,都是將該原碼的補碼的首位(符號位)取反得到移碼
。-45的移碼為:01010011
機器字長為n時,各種碼制表示的帶符號數的取值范圍(定點整數/定點小數)
2^ n-1 -1 和2^ n-1 差別:在于0的表示,原碼和反碼分+0和-0,補碼只有一個0,因此可以多表示一個數。
n-1的由來:比如一個n位的二進制數,有符號數,此時
n = n-1 + 1
,n-1代表的是數值位
,1代表的是符號位
。因此要根據n-1數值位進行取值范圍判斷。比如:n=3,此時 3= 2+1,數值位是2(2位/2個,比例00,01,10,11,這些都是2位),2位
二進制數(例如:1/0)
可以 2^ 2 - 1, 為什么是這個?是因為2位 二進制數一共表示的數是2^ 2,但是范圍是從0開始的,他的范圍是0~2^ 2 - 1。舉例說明下: 2位的二進制數有:00,01,10,11,對應的十位數分別是:0,1,2,3。一共表示的數是4個(2^ 2),但是取值范圍是從0開始,所以范圍取值是0 ~3(即:2^ 2 - 1) ,
當機器字長為n時,整數 原碼的范圍計算邏輯如下:
數值位是:n-1,
正數范圍
是0~ 2^數值位 -1
,即:0~ + (2^ n-1 - 1)
,
負數范圍
是-(2^數值位 -1) ~0
,即:0~ -(2^ n-1 - 1)
,合起來就是
-(2^ n-1 - 1)~ + (2^ n-1 - 1)
小數的計算邏輯:
左右各除以2^ n-1
碼制 定點整數 定點小數 原碼 -(2^ n-1 - 1)~ + (2^ n-1 - 1) -(1-2^ -(n-1) )~ + (1-2^ -(n-1)) 反碼 -(2^ n-1 - 1)~ + (2^ n-1 - 1) -(1-2^ -(n-1) )~ + (1-2^ -(n-1)) 補碼(范圍大一個) -(2^ n-1 )~ + (2^ n-1 ) -1~ + (1-2^ -(n-1)) 移碼 -(2^ n-1 )~ + (2^ n-1 ) -1~ + (1-2^ -(n-1))
浮點數(單獨的一類)
浮點數:表示方法為
N = F * 2^E
(尾數 * 2^階碼
)。(相當于拆成2個,一個純小數部分,一個純整數部分,)
N:浮點數
E:階碼。帶符號的純整數(定點整數)
F:尾數。帶符號的純小數(定點小數)
符號占最高位(正數0負數1)
類似于科學計數法。例如:
- 表示十進制的85.125是 0.8512 * 10^2。
- 表示二進制的101.011是0.101011 * 2^3。
- 表示格式
階符 階碼 數符 尾數 階碼的符號位 ------ 尾數的符號位 ----- 浮點數所能表示的
數值范圍由階碼確定,所表示的數值精度由尾數確定
。
浮點數的取值范圍:
其實就是分別求純小數和純整數的取值范圍(最大值~最小值)。然后套公式尾數 * 2^階碼
,兩兩組合計算出浮點數的范圍,取最終結果的最小值~最大值。
1.4 校驗碼(3種校驗碼)
計算機系統運行時,各個部件之間要進行數據交換,為了確保數據在傳送過程中正確無誤,一是提高硬件電路中的可靠性;二是提高代碼的校驗能力,包括查錯和糾錯。通常使用效驗碼的方法來檢測傳送的數據是否出錯,即對數據可能出現的編碼分為兩類:合法編碼和錯誤編碼。合法編碼用于傳送數據,錯誤編碼是不允許在數據中出現的編碼。合理的設計錯誤編碼以及編碼規則,使得數據在傳送中出現某種錯誤是就會變成錯誤編碼,這樣就可以檢測出接收到的數據是否有誤。
1.4.1 基本知識
碼距: 單個編碼A:00,其碼距為1,因為其只需要改變一位就變成另一個編碼。
在兩個編碼中,從A碼到B碼轉換所需要改變的位數稱為碼距,如A:00要轉換為B:11,碼距為2。
一般而言,碼距越大,越利于糾錯和檢錯。
1.4.2 奇偶校驗碼
奇偶校驗碼:在編碼中
增加1位校驗位來使編碼中的1的個數為奇數(奇校驗),或者偶數(偶校驗)
,從而使碼距變為2。
奇校驗:編碼中,含有奇數個1
,發送給接收方,接收方收到后,會計算收到的編碼有多少個1,如果是奇數個,則無誤,是偶數個,則有誤。
偶校驗同理,只是編碼中有偶數個1
,由上述,奇偶校驗只能檢1位錯,并且無法糾錯
。
舉例:原始數據位101110,增加1位校驗位
,如果是奇校驗,需要在后面加一個1,變成101110 1
,變成含有5個1(奇數),如果是偶校驗,需要在后面加一個0,變成101110 0
,變成含有4個1(奇數)
缺點:只能檢一位錯(原因:檢出2位錯,最終1的奇偶數結果仍然不變),
碼距為2的原因:如果有出錯,首先 出錯位是不對的,其次是校驗碼位也是不對的,
1.4.3 循環冗余校驗CRC
CRC只能檢錯,不能糾錯。使用CRC編碼,需要先約定一個生成多項式G(X)。生成多項式的最高位和最低位必須是1。假設原始信息有m位,則對應多項式M(x)。生成校驗碼思想就是在原始信息后追加若干校驗位,使得追加的信息能被G(x)整除。接收方接收到帶校驗位的信息,然后用G(x)整除,余數為0,則沒有錯誤,反之則發生錯誤。
舉例:
假設原始信息串為10110,CRC的生成多項式為G(x)=x^4+x+1,求CRC校驗碼。
求被除數
。在原始信息位后面添0。假設生成多項式的最高階(就是:次方)為 r
,則在原始信息位后添加 r個0
。上述G(x)的最高階位是4,所以需要添加4個0,得到新的信息為:10110 0000,作為被除數。由多項式得到除數
,多項式中x 的冪指數存在的位置是1,不存在的位置是0
。本題中x^ 4+x+1可以看做是:x^ 4+x^ 1+x^ 0。即0,1,4次方是存在的,存在的位置是1,不存在的位置是0,因此得到串10011(對應次方是4-3-2-1-0)。- 生成CRC校驗碼。將前兩步得到的被除數和除數進行
模2除法運算
(模2運算:也叫異或運算,參與運算相同的是0,不同的是1,簡稱同0非1
)。模2運算不關注商,主要看余數
- 得到余數1111。
注意:余數不足 r ,則余數左邊用若干個0補齊,如求得余數為11, r =4,則補兩個0
。- 生成最終發送信息串,
將余數添加到原始信息后
。上例中,原始信息為10110,添加余數1111后,結果為101101111。發送方將此數據發送給接收方。- 接收方進行校驗。接收方的CRC校驗過程與生成過程類似,接受方接收了帶校驗碼的數據后,用多項式G(x)來除,余數為0,則表示信息無錯,否則要求發送方進行重傳。
1.4.4 海明碼
海明碼:本質也是利用奇偶性來檢錯和糾錯的校驗方法,構成方法是在數據位之間的確定位置上插入k個校驗位,通過擴大碼距時間檢錯和糾錯。
例:求信息的1011的海明碼
1.求校驗位的位數
。(校驗位的位數和具體數據位的位數之間有關系。)
所有位(校驗位和數據位)都編號,從最低位編號,從1開始遞增,校驗位處于2的n(n=0,1,2...)次方中,即處于第1,2,4,8,16,32...位上,其余位才能填充真正的數據位
。
例如上題,數據為1011,則可知,第1,2,4位為校驗位,第3.5.6.7位為數據位,從低位開始存放1011,得出信息位和校驗位的分布如下:(注意:數據位放完之后,就不需要繼續增加了。)
2. 編號拆分。
將所有信息位的編號都拆分成2的冪指數(次方)表示
,如下圖表示
7 6 5 4 3 2 1 位數(信息位編號) 1 0 1 1 信息位 0 0 1 校驗位 2 ^ 2 + 2 ^ 1 + 2 ^ 0 2 ^ 2 + 2 ^ 1 2 ^ 2 + 2 ^ 0 ---- 2 ^ 1 + 2 ^ 0 ---- ---- 編號拆分 4
+2+14
+24
+1---- 2+1 ---- ---- 編號拆分結果(用的是這個) 4
+1代表第5位的信息位由第4個校驗位和第1個校驗位校驗。3. 信息位和校驗位相互校驗。
例如:
第5位的信息位,是由第4個校驗位和第1個校驗位校驗。
第4位的校驗位,是由包含了4的編號(上述標紅)
對應的信息位(第7,6,5位信息位)
進行校驗。
同時代表著也可以檢查(第7,6,5位信息位)
。檢查方法:接收方接收數據后,重新異或(第7,6,5位信息位)
,看結果與現在的第4位是否一致,一致說明是對的。
第2位的校驗位,是由第7.6.3位信息位進行校驗
第1位的校驗位,是由第7.5.3位信息位進行校驗
4.計算校驗位
。(以偶校驗為例。奇校驗的話,按位取反即可)
用包含了4的所有信息位(第7,6,5位信息位)
進行異或運算
(第7位的1和第6位的0異或結果R1為1,拿R1與第5位的1異或,結果R2為0,此時第4位的校驗位就是0)。
最終海明碼:1010101
2、計算機體系結構
2.1 體系結構分類
按處理機的數量進行分類:
- 單處理系統:一個處理單元和其他設備集成
- 并行處理系統:兩個以上的處理機互聯
- 分布式處理系統:物理上遠距離且松耦合的多計算機系統
Flynn分類法:
分類有兩個因素,即指令流和數據流
,
指令流
由控制中心
處理,每一個控制中心處理一條指令流,多指令就會有多個控制中心。
數據流
由處理器
處理,每個處理器處理一條數據流,多數據就會有多個處理器。
主存模塊,是用來存儲的,存儲指令流或數據流。無論是多指令流還是多數據流,都需要多個主存模塊來存儲。
Single(單) Instruction(指令) Multiple(多) Data (數據)
依據計算機特性,是由指令來控制數據的傳輸,因此,一條指令可以控制一條或多條數據流,但一條數據流不能被多條指令控制,否則會出錯。因此:
多指令單數據MISD是不可能的
2.2 指令系統
指令組成
一條指令有操作碼
和操作數
兩部分組成,操作碼
決定要完成的操作
,操作數
指參與運算的數據
及其所在的單元地址(內存地址)
。
有的也叫:一條指令有操作碼
和地址碼
兩部分組成,地址碼存儲了操作數和內存地址,其實是一個東西。
指令尋址方式
指:當前指令結束后,怎么找到下一條指令。
順序尋址方式
:當執行一段程序時,是一條指令接著一條指令的順序執行。跳躍尋址方式
:指下一條指令的地址碼不是由程序計數器給出
,而是由本條指令直接給出
。程序跳躍后,按新的指令地址開始順序執行。因此,程序計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。
指令操作數的尋址方式
指:操作數的尋址方式。
立即尋址方式
:指令的地址碼字段指出的不是地址,而是操作數本身。直接尋址方式
:在指令的地址字段中直接指出操作數在主存中的地址。間接尋址方式
:指令地址碼字段所指向的存儲單元中存儲的是操作數的地址。寄存器尋址方式
:指令中的地址碼是寄存器的編號。基址尋址方式
:將基址寄存器的內容加上指令中的形式地址而形成操作數的有效地址,其優點是可以擴大尋址能力。(一般不考)變址尋址方式
:變址尋址方式計算有效地址的方法與基址尋址方式很相似,它是將變址寄存器的內容加上指令中的形式地址而形成操作數的有效地址。(一般不考)
CISC
是復雜指令系統,兼容性強,指令繁多、長度可變,由微程序實現;
RISC
是精簡指令系統,指令少,使用頻率接近,主要依靠硬件實現(通用寄存器、硬布線邏輯控制)
CISC
:Complex Instruction Set Computer
RISC
:Reduced Instruction Set Computer
2.2.1 指令流水線
原理:將
指令分成不同段,每段由不同的部分去處理
,因此可以產生疊加的效果,所有的部件去處理指令的不同段.
單緩沖區:未使用流水線的情況,簡單理解就是一個處理器,只能順序執行,不能并行處理。
RISC中的流水線技術:
超流水線(super Pipe Line)技術
。它通過細化流水、增加級數和提高主頻,使得在每個機器周期內能完成一個甚至兩個浮點操作。其本質是以時間換取空間
:。超標量(super Scalar)技術
。它通過內裝多條流水線來同時執行多個處理,其時鐘頻率雖然與一般流水接近,卻有更小的CPI。其實質是以空間換取時間
超長指令字(Very LongInstruction Word,VLIW)技術
。VLIW 和超標量都是20 世紀80年代出現的概念,其共同點是要同時執行多條指令,其不同在于超標量依靠硬件來實現并行處理的調度,VLIW 則充分發揮軟件的作用
,而使硬件簡化,性能提高。
2.2.2 流水線時間計算☆☆☆
流水線周期
:指令分成不同執行段,其中執行時間最長的段
為流水線周期。- 例如:取值5ns,分析8ns,執行10ns,流水線周期就是10ns。
流水線執行時間
:1條指令總執行時間+(總指令條數-1)*流水線周期
。流水線吞吐率計算
:吞吐率即單位時間內執行的指令條數。公式:指令條數/流水線執行時間
。流水線的加速比計算
:加速比即使用流水線后的效率提升度,即比不使用流水線快了多少倍,越高表明流水線效率越高。公式:不使用流水線執行時間 / 使用流水線執行時間
。
2.3 存儲系統
計算機采用分級存儲體系的主要目的是為了解決存儲容量、成本和速度之間的矛盾問題。
兩級存儲:Cache-主存、主存-輔存(虛擬存儲體系)
局部性原理:總的來說,在CPU運行時,所訪問的數據會趨向于一個較小的局部空間地址內,包括下面兩個方面:
時間局部性原理
:如果一個數據項正在被訪問,那么在近期它很可能會被再次訪問,即在相鄰的時間里會訪問同一個數據項空間局部性原理
:在最近的將來會用到的數據的地址和現在正在訪問的數據地址很可能是相近的,即相鄰的空間地址會被連續訪問,
Cache由
控制部分
和存儲器
組成,存儲器存儲數據,控制部分判斷CPU要訪問的數據是否在Cache中,在則命中,不在則依據一定的算法從主存中替換。
地址映射
:在CPU工作時,送出的是主存單元的地址
,而應從Cache存儲器中讀/寫信息。這就需要將主存地址轉換為Cache存儲器地址
,這種地址的轉換稱為地址映像,由硬件自動完成映射
,分為下列三種方法:
Cache替換算法
目標就是使cache獲得盡可能高的命中率。常用算法有以下幾種:
隨機替換算法
:就是用隨機數發生器產生一個要替換的塊號,將該塊替換出去。先進先出算法
。就是將最先進入Cache的信息塊替換出去:近期最少使用算法
。這種方法是將近期最少使用
的Cache中的信息塊替換出去
優化替換算法
。這種方法必須先執行一次程序
,統計Cache的替換情況
。有了這樣的先驗信息,在第二次執行該程序時便可以用最有效的方式來替換。
Cache命中率及平均時間
Cache有一個命中率的概念,即當CPU所訪問的數據在Cache中時,命中,直接從Cache中讀取數據
,設讀取一次Cache時間為1ns,若CPU訪問的數據不在Cache中則需要從內存中讀取
,設讀取一次內存的時間為1000ns,若在CPU多次讀取數據過程中,有90%命中Cache,則CPU讀取一次的平均時間為(90%*1+10%*1000)ns
2.3.1 儲存編址(計算)
基礎知識
K、M、G是數量單位
,在存儲器里相差1024倍
b(比特),B(字節)是存儲單位
,1 B = 8 b(bit,比特),
1b(比特)表示一個二進制位,比如1或者0
1KB= 1024B
真題:地址編號從80000H到BFFFFH且按字節編址的內容容量為()KB?若用16k*4bit的存儲器芯片構成該內存,共需()片?
第一問解答:
容量計算
:尾地址-首地址+1 = 容量
。比如10到20的容量是20-10+1=11,同比可知道80000H到BFFFFH的容量,也應該是:BFFFFH-80000H+1。- BFFFFH和80000H都是16進制,B是11,B-8=3,F-0=F,所以BFFFFH-80000H=3FFFFH,然后3FFFFH+1,F是15,F+1 = 16,16進制逢16進1,所以3FFFFH+1=
40000H
40000H是存儲單元的個數,并不是容量
。因此存儲單元的個數*每個單元的大小=容量
。此時題目中“按字節編制”就用到了,“按字節編制”的意思是每個存儲單元的大小是1個字節
。40000H*1B=40000H B(總容量)
- 此時需要將
40000H B 轉為十進制的數字
,然后除以1024轉為KB
,得到最終結果。 40000H轉十進制:0*16^ 0+0*16 ^ 1+...+4*16^ 4 = 4*16^ 4 = 2^ 2 * 2^ 16 = 2^ 18(B)
用2^ 18(B)/1024 = 2^ 18 / 2^ 10 = 2^ 8 = 256
。- 注意:不要硬算,要化簡為2的冪指數來算。
第二問解答:
- 總容量計算結果是
40000H B = 2^ 18(B)
- 總容量/單個芯片內存 = 需要的片數。
- 16K = 2^ 14 * 2^ 2 = 2^ 16
- 2^ 16 / 8 = 2^ 16 / 2^ 3 = 2^ 13 (B)
- 2^ 18(B) / 2^ 13 (B) = 2^ 5 = 32
2.3.2 磁盤
基礎概念
磁盤有正反兩個盤面,每個盤面有多個同心圓,每個同心圓是一個磁道,每個同心圓又被劃分為多個扇區,數據就被存放在一個個扇區中。
磁頭首先要尋找到對應的磁道
,然后等待磁盤
進行周期旋轉
,旋轉到指定的扇區
,才能讀取到對應的數據,因此,會產生尋道時間和等待時間
。公式為:存取時間=尋道時間+等待時間(平均定位時間+轉動延遲)
注意:尋道時間是指磁頭移動到磁道所需的時間;等待時間為等待讀寫的扇區轉到磁頭下方所用的時間
磁盤調度算法
之前已經說過,磁盤數據的讀取時間分為尋道時間+旋轉時間
,也即先找到對應的磁道,而后再旋轉到對應的扇區才能讀取數據,其中尋道時間耗時最長
,需要重點調度,有如下調度算法:
先來先服務FCFS
:根據進程請求訪問磁盤的先后順序進行調度。
最短尋道時間優先SSTF
:請求訪問的磁道與當前磁道最近的進程優先調度,使得每次的尋道時間最短。會產生“饑餓”現象,即遠處進程可能永遠無法訪問。
掃描算法SCAN
:又稱“電梯算法”磁頭在磁盤上雙向移動,其會選擇離磁頭當前所在磁道最近的請求訪問的磁道,并且與磁頭移動方向一致,磁頭永遠都是從里向外或者從外向里一直移動完才掉頭,與電梯類似。
單向掃描調度算法CSCAN
:與SCAN不同的是,其只做單向移動,即只能從里向外或者從外向里。
2.4 輸入/輸出技術
計算機系統中存在多種內存與接口地址的編址方法,常見的是下面兩種:
內存與接口地址獨立編址方法
內存地址和接口地址是完全獨立的兩個地址空間
。訪問數據時所使用的指令也完全不同
,用于接口的指令只用于接口的讀/寫,其余的指令全都是用于內存的因此,在編程序或讀程序時很易使用和辨認。這種編址方法的缺點是用于接口的指令太少、功能太弱
,內存與接口地址統一編址方法
內存地址和接口地址統一在一個公共的地址空間里
,即內存單元和接口共用地址空間
。優點是原則上用于內存的指令全都可以用于接口
,這就大大地增強了對接口的操作功能,而且在指令上也不再區分內存或接口指令。該編址方法的缺點就在于整個地址空間被分成兩部分
,其中一部分分配給接口使用,剩余的為內存所用,這經常會導致內存地址不連續。
計算機和外設間的數據交互方式:
程序控制(查詢)方式
:CPU主動查詢外設是否完成數據傳輸,效率極低
。程序中斷方式
:外設完成數據傳輸后,向CPU發送中斷
,等待CPU處理數據效率相對較高。中斷響應時間
指的是從發出中斷請求到開始進入中斷處理程序,中斷處理時間
指的是從中斷處理開始到中斷處理結束。中斷向量
提供中斷服務程序的入口地址。多級中斷嵌套,使用堆棧來保護斷點和現場。DMA方式(直接主存存取)
:CPU只需完成必要的初始化等操作
,數據傳輸的整個過程都由**DMA**控制器來完成
,在主存和外設之間建立直接的數據通路效率很高
。
在一個總線周期
結束后,CPU會響應DMA請求開始讀取數據
,CPU響應程序中斷方式請求
是在一條指令執行結束時
,
2.5 總線結構
總線(Bus),是指計算機設備和設備之間傳輸信息的公共數據通道
。總線是連接計算機硬件系統內多種設備的通信線路,它的一個重要特征是由總線上的所有設備共享
,因此可以將計算機系統內的多種設備連接到總線上。
從廣義上講,任何連接兩個以上電子元器件的導線都可以稱為總線,通常分為以下三類:
內部總線:內部芯片級別的總線,芯片與處理器之間通信的總線。
系統總線
:是板級總線,用于計算機內各部分之間的連接,具體分為數據總線(并行數據傳輸位數)
、地址總線(系統可管理的內存空間的大小)
、控制總線(傳送控制命令)
。代表的有ISA總線、EISA總線、PCI總線。
外部總線:設備一級的總線,微機和外部設備的總線。代表的有RS232(串行總線)、SCSI(并行總線)、USB(通用串行總線,即插即用,支持熱插拔)
3、可靠性
3.1 計算機可靠性計算
可靠性指標
平均無故障時間MTTF(Mean Time to Failure)
=1/失效率。
平均故障修復時間MTTR(MeanTimeto Repair)
=1/修復率。
平均故障間隔時間MTBF(Mean Time Between Failures)
=MTTF+MTTR。
系統可用性=MTTF/(MTTF+MTTR)*100%。
無論什么系統,都是由多個設備組成的,協同工作,而這多個設備的組合方式,可以是串聯、并聯,也可以是混合模式,假設每個設備的可靠性為R1,R2…Rn,則不同的系統的可靠性公式如下:
串并聯系統可靠性
串聯系統,一個設備不可靠,整個系統崩潰
,整個系統可靠性R=R1R2…*Rn。
并聯系統
所有設備都不可靠,整個系統才崩潰
,
不可靠性:(1-R1)*(1-R2)**(1-Rn)
可靠性:1-不可靠性。R=1- (1-R1)*(1-R2)**(1-Rn)
。
N模冗余系統
:N模冗余系統由N個(N=2n+1)相同的子系統和一個表決器組成,表決器把N 個子系統中占多數相同結果的輸出作為輸出系統的輸出,如圖所示。在N個子系統中,只要有n+1個或n+1個以上子系統能正常工作,系統就能正常工作,輸出正確的結果。