電腦的組成 1、控制器 2、運算器(CPU) 3、主存儲器(記憶體) 4、外存 5、輸入、輸出設備 存儲器:主存和外存 數據的表示 對於任意一個R進位數,它的每一位數值等於該位的數位乘以該位的權數。權數由Rk表示,K與該位和小數點之間的距離有關。當該位位於小數點左邊,K值是該位和小數點之間的數位的個... ...
電腦的組成
1、控制器
2、運算器(CPU)
3、主存儲器(記憶體)
4、外存
5、輸入、輸出設備
存儲器:主存和外存
數據的表示
對於任意一個R進位數,它的每一位數值等於該位的數位乘以該位的權數。權數由Rk表示,K與該位和小數點之間的距離有關。當該位位於小數點左邊,K值是該位和小數點之間的數位的個數,而當該位位於小數點的右邊,K值是負值,其絕對值是該位和小數點之間數位的個數加1。
例如,十進位數1234.56,其數值可計算如下:
1234.56=1*103+2*102+3*101+4*100+5*10-1+6*10-2
二進位數10100.01B的值可計算如下:
10100.01B=1*24+1*22+1*2-2=20.25
十六進位數8ABH的值可計算如下:
8ABH=8*162+10*161+11*160=2219
十進位轉二進位使用"除二取餘"法,如將86轉換為二進位數:
86/2=43——餘0
43/2=21——餘1
21/2=10——與1
10/2=5——餘0
5/2=2——餘1
2/2=1——餘0
1/2=0——餘1
將餘數從下往上排列,即得1010110
二進位轉八進位時,從右開始,每三位為一組,不夠三位最高位向前補0即可。每組按權展開求和,最終得到八進位數。
例如:11101001=(011)(101)(001)=351
同理,二進位轉十六進位,每四位為一組。
例如:11101001=(1110)(1001)=E9
1 | -1 | 1-1 | |
原碼 | 0000 00001 | 1000 0001 | 1000 0010 |
反碼 | 0000 00001 | 1111 1110 | 1111 1111 |
補碼 | 0000 00001 | 1111 1111 | 0000 0000 |
移碼 | 1000 00001 | 0111 1111 | 0000 0000 |
補碼是最適合進行數字加減運算的數字編碼。
定點數和浮點數
(1)定點數。小數點的位置固定不變的數。分為定點整數(純整數,小數點在最低有效位數值之後)和定點小數(純小數,小數點在最高有效位數值位之前)。
0.1011001 | -0.1011001 | |
原碼 | 01011001 | 11011001 |
反碼 | 01011001 | 10100110 |
補碼 | 01011001 | 10100111 |
移碼只用於表示浮點數的階碼,所以只用於整數。
浮點數表示:N=M*Re
其中M稱為尾數,e為指數,R為基數。
例如:1234=1.234*103
浮點數的運算:對階——尾數計算——結果格式化
校驗碼
電腦中的數據在進行存儲和傳輸的過程中可能會發生失誤。為了及時發現和糾正這類錯誤,在數據傳輸過程中要進行校驗,也就是在傳輸的數據中增加數據校驗碼。
數據校驗碼是具有發現某些錯誤或具有自動糾錯能力的數據編碼,最常用的是奇偶校驗碼。
碼距,是指在一個編碼系統中任意兩個合法編碼(碼字)之間不同的二進位位數叫這兩個碼字的碼距。
1、奇偶校驗
只能檢測代碼中奇數位出錯的編碼,但不能發現偶數位出錯的情況。
奇數+奇數=偶數;偶數+奇數=奇數;偶數+偶數=偶數;奇數+偶數=奇數。
2、海明碼
海明碼的校驗碼的位置必須是在2n位置(n從0開始,分別代表從左邊數起分別是第1、2、4、8、16…),信息碼也就是在非2n位置
… | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 位數 |
… | I8 | I7 | I6 | I5 | I4 | I3 | I2 | I1 | 信息位 | ||||
r3 | r2 | r1 | r0 | 校驗位 |
設數據位是n位,校驗位是k位,則n和k必須滿足關係:2k>=n+k+1
例如,求信息1011的海明碼。
解答:(1)根據2k>=4+k+1,確定校驗位為3位23>=4+3+1。
(2)列出公式表格。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 位數 |
I4 | I3 | I2 | I1 | 信息位 | |||
r2 | r1 | r0 | 校驗位 |
填入數值
7 | 6 | 5 | 4 | 3 | 2 | 1 | 位數 |
1 | 0 | 1 | 1 | 信息位 | |||
r2 | r1 | r0 | 校驗位 |
7=22+21+20,6=22+21,5=22+20,3=21+20
r2=I4⊕I3⊕I2=1⊕0⊕1=0
r1=I4⊕I3⊕I1=1⊕0⊕1=0
r0=I4⊕I2⊕I1=1⊕1⊕1=1
填入校驗位
7 | 6 | 5 | 4 | 3 | 2 | 1 | 位數 |
1 | 0 | 1 | 1 | 信息位 | |||
0 | 0 | 1 | 校驗位 |
電腦系統結構分類
1、Flynn分類法
在Flynn分類法中,M.J.Flynn提出了下麵幾個定義:
指令流:機器執行的指令序列。
數據流:由指令流調用的數據序列,包括輸入數據和中間結果,但不包括輸出數據。
多倍性:在系統性能瓶頸部件上同時處於同一執行階段的指令或數據的最大可能個數。
按照指令和數據流不同的組織方式,電腦系統可分為四類:
1.單指令單數據流(SISD):單處理機,SISD其實就是傳統的順序執行的單處理器電腦,其指令部件每次只對一條指令進行解碼,並只對一個操作部件分配數據。流水線方式的單處理機有時也被當成SISD。第一代電腦。
2.單指令多數據流(SIMD):並行處理機、陣列處理機、超級向量處理機,各處理機以同步的形式執行同一條指令。圖形處理方面。
3.多指令單數據流(MISD):流水線電腦,被證明不可能,至少是不實際。理論模型。
4.多指令多數據流(MIMD):多處理機,能夠實現作業、任務、指令等各級全面並行。多核電腦。
2、馮氏分類法
1972年馮澤雲提出用最大並行度來對電腦體繫結構進行分類。所謂最大並行度是指電腦系統在單位時間內能夠處理的最大二進位位數。
3、Handler分類法
根據電腦指令執行的並行度和流水線來對電腦系統進行分類。
4、Kuck分類方法
也是用指令流、執行流和多倍性來描述電腦系統特性,但其強調執行流的概念,而不是數據流。
存儲器系統
存儲器的主要功能是存儲程式和各種數據,並能在電腦運行過程中高速、自動地完成程式或數據的存取。
存取方式 | 讀寫裝置 | 數據塊標誌 | 訪問特性 | 代表 |
順序存取 | 共用 | 無 | 線性 | 磁帶 |
直接存取 | 共用 | 數據塊,每塊一個唯一標誌 | 可直接移到特定數據塊 | 磁碟 |
隨機存取 | 每個可定址單元專有 | 每個定址單元均有一個唯一地址 | 隨時訪問任何一個存儲單元 | 主存 |
相連存取(屬於隨機存取) | 每個可定址單元專有 | 每個定址單元均有一個唯一地址 | 根據內容而非地址來選擇讀寫點 | Cache |
主存儲器
1、隨機存儲器RAM:可寫可讀,斷電信息無法保存。
1.DRAM動態隨機存儲器:不斷刷新保存信息。
2.SRAM靜態隨機存儲器:不斷電不丟失。
2、只讀存儲器ROM:斷電信息可保存。
根據編程類型ROM分為:
1.掩模式MROM:生產過程寫入,無法改變。
2.一次可編程PROM:一次寫入。
3.可擦除的EPROM:可多次改寫。
4.快閃記憶體flash memory:支持不加電保存,快速擦除重寫。
輔助存儲器
又稱外存儲器(簡稱外存)。記憶體儲器最突出的特點是存取速度快,但是容量小、價格貴;外存儲器的特點是容量大、價格低,但是存取速度慢。記憶體儲器用於存放那些立即要用的程式和數據;外存儲器用於存放暫時不用的程式和數據。記憶體儲器和外存儲器之間常常頻繁地交換信息。
常見的外存有磁碟存儲器、硬碟存儲器、磁碟陣列和光碟存儲器。
1、磁帶存儲器
順序存儲、存儲容量大、便於攜帶、價格便宜,但存儲時間長。在微型電腦上一般用做後備存儲裝置,以便在硬碟發生故障時,恢復系統和數據。分為啟停式和數據流式。
2、磁碟存儲器
硬碟組成部分:主軸、組合臂、磁臂、讀寫磁頭、磁軌、扇區、柱面、馬達。
磁碟標稱的容量是格式化容量,計算公式如下:
存儲容量=n*t*s*b
其中,n為保持數據的總記錄面數,t為每面磁軌數,s為每道的扇區數,b為每個扇區存儲的位元組數。
磁碟存取時間=尋道時間+等待時間+讀/寫時間
其中,讀/寫時間可忽略不計。
磁碟存取時間=平均尋道時間+平均等待時間
硬碟的數據傳輸速度分為內部數據傳輸和外部數據傳輸速率。內部數據傳輸速率是指磁頭與硬碟緩存之間的數據傳輸速率,它的高低是評價一個硬碟整體性能的決定性因素。外部數據傳輸速率是指系統匯流排與硬碟緩存之間的數據傳輸速率,外部數據傳輸速率與硬碟介面類型和緩存大小有關。
3、磁碟陣列(RAID)
磁碟陣列是由很多價格較便宜的磁碟,組合成一個容量巨大的磁碟組,利用個別磁碟提供數據所產生加成效果提升這個磁碟系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個磁碟上。
1.RAID 0(無冗餘和無校驗的數據分塊)代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續的數據分散到多個磁碟上存取,這樣,系統有數據請求就可以被多個磁碟並行的執行,每個磁碟執行屬於它自己的那部分數據請求。這種數據上的並行操作可以充分利用匯流排的帶寬,顯著提高磁碟整理存取性能。
2.RAID 1(磁碟鏡像陣列)
RAID 1稱為鏡像,它將數據完全一直地分別寫到工作磁碟和鏡像磁碟,磁碟空間利用率為50%。
3.RAID 2(糾錯海明碼的磁碟陣列)
採用了海明碼糾錯技術,用戶需增加校驗盤來提供單糾錯和雙驗錯功能。對數據的訪問涉及陣列中的每一個盤。大量數據傳輸時I/O性能較高,但不利於小批量數據傳輸。實際應用中很少使用。
4.RAID 3和RAID 4(奇偶校驗碼的磁碟陣列)
把奇偶校驗碼存放在一個獨立的校驗盤上。如果有一個盤失效,其上的數據可以通過對其他盤上的數據進行異或運算得到。讀數據很快,但因為寫入數據時要計算校驗位,速度較慢。RAID 3採用位交叉奇偶校驗,RAID 4採用塊交叉奇偶校驗碼。RAID 3適用於大型文件且I/O需求不頻繁的應用,RAID 4適用於大型文件的讀取。
5.RAID 5(無獨立校驗盤的奇偶校驗碼的磁碟陣列)
無獨立校驗盤,校驗信息分佈在組內所有盤上,對於大批量和小批量數據的讀寫性能都很好,適用於I/O需求頻繁的應用。
6.RAID 6(獨立的數據硬碟與兩個獨立的分散式校驗方案)
具有一個專用的、可快速訪問的非同步校驗盤,該盤具有獨立的數據訪問通路,但其性能改進有限,價格卻很昂貴。
7.RAID7(最優化的非同步高I/O速率和高數據傳輸率)
RAID 7完全可以理解為一個獨立存儲電腦,它自身帶有操作系統和管理工具,完全可以獨立運行。
8.RAID 10(最可靠與高性能)
RAID 1+0也被稱為RAID 10標準,實際是將RAID 1和RAID 0標準結合的產物。RAID 1是一個冗餘的備份陣列,而RAID 0負責數據讀寫的陣列。由於利用了RAID 0極高的讀寫效率和RAID 1較高的數據保護與恢復能力,使RAID 10成為了一種性價比高的等級。
光碟存儲器
利用激光束在記錄錶面存儲信息,根據激光束的反射來讀出信息。分不可擦寫光碟,如CD-ROM、DVD-ROM等;可擦寫光碟,如CD-RW、DVD-RAM等。
Cache存儲器
在CPU的所有操作中,訪問記憶體是最頻繁的操作。由於一般微機中的主存儲器的工作速度比CPU低一個數量級,加上CPU的所有訪問都要通過匯流排這個瓶頸。所以,縮短存儲器的訪問時間是提高電腦速度的關鍵。採用在CPU和記憶體之間加進高速緩衝存儲器cache的辦法較好地解決了這一問題。
簡單來說cache是為瞭解決高速運行的cpu與主存儲器之間速度不匹配的問題。
CPU在訪問記憶體時,首先判斷所要訪問的內容是否在Cache中,如果在,就稱為"命中",此時CPU直接中Cache中調用該內容;否則,就稱為"不命中",CPU只好去記憶體中調用所需的子程式或指令了。CPU不但可以直接從Cache中讀出內容,也可以直接往其中寫入內容。由於Cache的存取速率相當快,使得CPU的利用率大大提高,進而使整個系統的性能得以提升。
如果以Hc為代表對Cache的訪問命中率,tc為Cache的存取時間,tm為主存的訪問時間,則Cache+主存的平均訪問時間ta為:ta=Hc*tc+(1-Hc)*tm。
例題:某流水線計算主存的讀/寫時間為100ns,有一個指令和數據合一的cache,該cache的讀/寫時間為10ns,取指令的命中率為98%,取數據的命中率為95%。在執行某類程式時,約有1/5指令需要存/取一個操作數。假設指令流水線在任何時候都不阻塞,則設置cache後,每條指令的平均訪問時間約為?
(2%*100ns+98%*10ns)+1/5*(5%*100ns+95%*10ns)=14.7ns
Cache映射機制
(1)直接映射
是一種多對一的映射關係,但一個主存塊只能夠複製到cache的一個特定位置上去。
關於其設計實現是基於模數計算行與主存的一個塊是相互對應的。
i=j mod m
其中j是主存塊的編號,m是cache的行數,而i是主存中塊映射到cache中的行編號。
(2)全相聯映射
主存的每一頁可以映射到cache的任一塊。如果淘汰cache中某一塊的內容,則可調入任一主頁的內容,因而較直接映射方式靈活。缺點是速度慢,只適用於小容量的cache。
(3)組相聯映射
是直接映射與全相聯映射的折中方案。它將cache中的塊再分成組,通過直接映射方式決定組號,通過全相聯的方式決定cache中的塊號。
Cache替換演算法
當cache產生了一次訪問未命中之後,相應的數據應同時讀入CPU和cache。但是當cache已存滿數據後,新數據必須替換(淘汰)cache中的某些舊數據。最常用的替換演算法有:
(1)隨機淘汰演算法。
(2)先進先出淘汰演算法FIFO。
(3)最近最少未使用淘汰演算法LRU。
Cache寫操作
因為cache的內容是部分主存內容的副本,應該與主存內容保存一致。而CPU對cache的寫入更改了cache內容,如何與主存內容保存一致就有幾種寫操作工作方式可供選擇,統稱為寫策略。
1、寫回法(write--back)
當cpu對cache寫命中時,只修改cache的內容不立即寫入主存,只當此行被換出時才寫回主存。這種策略使cache在cpu—主存之間不僅在讀方向而去在寫方向上都起到高速緩存作用。
2、寫直達法(write--through)
又稱全寫法,寫透。是當cache寫命中時,cache與主存同時發生寫修改。
3、標記法
數據進入cache後,有效位置1,當cpu對該數據修改時,數據只寫入主存並將該有效位置0。要從cache中讀取數據時要測試其有效位,若為1則直接從cache中取數,否則從主存中取數。
虛擬存儲
虛擬存儲器是一個主存-輔存兩級存儲層次。它對應用程式是完全透明的,使應用程式不必作任何修改就可以在系統上運行。
Cache主要目的是提高存儲器速度。Cache存儲系統對系統程式員以上均透明。
輸入輸出系統
在電腦中,I/O系統可以有5種不同的工作方式,分別是程式控制方式、程式中斷方式、DMA工作方式、通道方式、I/O處理機。
1、程式控制方式
分為無條件查詢和程式查詢方式。
(1)無條件傳送方式,I/O埠總是準備好接受主機的輸出數據,或是總是準備好向主機輸入數據,而CPU在需要時,隨時直接利用I/O指令訪問相應的I/O埠,實現與外設的數據交換。優點是軟、硬體結構簡單,缺點是對時序要求高,只適用於簡單的I/O控制。
(2)程式查詢方式
程式查詢方式也稱為程式輪詢方式,該方式採用程式直接控制主機與外部設備之間輸入/輸出操作。CPU必須不停地迴圈測試I/O設備的狀態埠,當發現設備處於準備好(Ready)狀態時,CPU就可以與I/O設備進行數據存取操作。這種方式下的CPU與I/O設備是串列工作的。
2、中斷方式
當I/O設備結束(完成、特殊或異常)時,就會向CPU發出中斷請求信號,CPU收到信號就可以採取相應措施。當某個進程要啟動某個設備時,CPU就向相應的設備控制器發出一條設備I/O啟動指令,然後CPU又返回做原來的工作。CPU與I/O設備可以並行工作,與程式查詢方式相比,大大提高了CPU的利用率。
3、DMA(直接記憶體存取)方式
DMA方式也稱為直接主存存取方式,其思想是:允許主存儲器和I/O設備之間通過"DMA控制器(DMAC)"直接進行批量數據交換,除了在數據傳輸開始和結束時,整個過程無須CPU的干預。
4、通道控制方式
在一定的硬體基礎上利用軟體手段實現對I/O的控制和傳送,更多地免去了CPU的接入,使主機和外設並行工作程度更高。
5、I/O處理機
指專門負責輸入/輸出的處理機。可以有獨立的存儲器、運算部件和指令控制部件。
匯流排
匯流排(Bus)是電腦各種功能部件之間傳送信息的公共通信幹線。
按照匯流排相對應cpu或其他晶元的位置可分為:
(1)內部匯流排
寄存器之間和算數邏輯部件ALU與控制部件。
(2)外部匯流排
CPU與記憶體和I/O設備介面之間。
按照匯流排功能劃分:
(1)地址匯流排——傳送地址信息
(2)數據匯流排——傳送數據信息
(3)控制匯流排——傳送控制信號和時序信號
按匯流排在微機中的位置,可以分為機內匯流排和機外匯流排兩種。
按匯流排功能劃分,可以分為局部匯流排、系統匯流排、通信匯流排三種。
按照匯流排中數據線的多少,可以分為並行匯流排和串列匯流排。
指令系統
指令系統是指電腦所能執行的全部指令的集合,它描述了電腦內全部的控制信息和"邏輯判斷"能力。
1、複雜指令系統CISC
(1)指令數量多
(2)指令使用頻率相差懸殊
(3)支持多種定址方式
(4)變長的指令
(5)指令可對主存單元中的數據直接進行處理
(6)以微程式控製為主
2、精簡指令系統(RISC)
(1)指令數量少
(2)指令的定址方式少
(3)指令長度固定
(4)以硬佈線邏輯控製為主
(5)單周期指令執行,採用流水線技術
(6)優化的編譯器
(7)CPU中的通用寄存器數量多