分值占比3-4分
計算機硬件組成
計算機硬件組成主要包括主機、存儲器和輸入/輸出設備。
-
主機:主機是計算機的核心部分,包括運算器、控制器、主存等組件。運算器負責執行算術和邏輯運算;控制器負責協調和控制計算機的各個部件;主存(內存)用于存儲正在運行的程序和數據。
-
存儲器:存儲器分為主存和輔存兩種類型。主存(內存)是計算機中臨時存儲數據的地方,通常比輔存速度快,但容量較小。輔存(如硬盤、固態硬盤等)用于長期存儲數據,容量較大,但速度較慢。
-
輸入/輸出設備:輸入設備(如鍵盤、鼠標、觸摸屏等)用于向計算機輸入數據;輸出設備(如顯示器、打印機、音響等)用于顯示或播放計算機處理后的結果。
主機的組成
主機的組成主要包括CPU(中央處理器)、主存儲器和控制器等部分。以下是這些部件的具體功能和作用:
-
CPU(中央處理器):
- 算術邏輯單元(ALU):負責處理所有的算術運算(如加減乘除)和邏輯運算(如AND、OR、NOT)。
- 控制單元(CU):解釋程序指令,控制數據流向,并管理其它電腦硬件資源。
- 寄存器:暫時存儲數據和指令,包括:
- 指令寄存器(IR):存儲當前正在執行的指令。
- 地址寄存器(AR):存儲將要訪問的內存地址。
- 數據寄存器(DR):暫時存儲數據。
- 狀態條件寄存器(PSW):存儲處理器的狀態信息。
- 程序計數器(PC):存儲下一條要執行的指令的地址。
- 存儲器緩沖寄存器(MBR):在數據傳輸時作為主存和CPU之間的緩沖。
-
主存儲器:
- 存儲體:主存儲器的主要部分,用于存放程序和數據。
- 存儲器地址寄存器(MAR):存儲體中用于存放要訪問的內存單元的地址。
- 存儲器數據寄存器(MDR):存儲體中用于暫存要寫入內存或從內存讀取的數據。
-
控制器:
- 指令譯碼器(ID):對指令寄存器中的指令進行譯碼,確定需要執行的操作。
- 提加寄存器(IR):與指令寄存器配合使用,提供指令的臨時存儲。
- 控制邏輯單元:生成控制信號,用于控制數據在各個寄存器和處理器之間的傳輸。
- 時序部件:產生時鐘信號,同步各部件的操作。
以上是計算機主機內部的主要組成部分及其功能。每個部件都扮演著特定的角色,共同完成計算機的各項操作和數據處理任務。
指令系統
指令系統是計算機硬件的語言系統,它包含了機器所具有的全部指令的集合。反映了計算機所擁有的基本功能。
指令系統作為計算機的基本命令集,體現了計算機處理任務的基本方法。在設計計算機架構時,確定哪些操作由硬件直接實現,哪些由軟件間接實現是關鍵。這直接影響到計算機的性能和靈活性。指令系統的設計和選擇可以從以下幾個角度進行探討:
- 操作碼字段(OP):
- 操作碼字段是指令的一部分,用來指定操作的性質及功能。
- 每條指令都通過操作碼來區分其具體執行的操作類型,如加、減、乘、除等。
- 操作碼的設計要簡潔明了,易于理解和使用,以減少錯誤并提高編程效率。
- 地址碼字段(Addr):
- 地址碼字段用于指出操作數的存放位置或直接給出操作數。
- 通過地址碼,CPU可以定位到所需的數據或指令存儲的具體位置。
- 地址碼的設計需要考慮到存儲器的容量與機器的字長,確保指令能夠有效訪問所需數據。
- 指令的功能與操作:
- 指令系統包括數據處理、數據傳送、程序控制等多種類型的指令。
- 每種指令都有其特定的功能,如數據處理指令用于執行算術運算和邏輯運算。
- 程序控制指令則用于改變程序執行的順序,如條件轉移和轉子程序指令。
- 指令的格式與類型:
- 指令格式通常包含操作碼字段和地址碼字段,根據操作數數量的不同,可以分為三地址、二地址、單地址等格式。
- 選擇合適的指令格式可以優化存儲空間的使用和提高指令執行的效率。
- 指令還可以根據功能分為算術運算型、邏輯運算型、數據傳送型等。
- 指令系統的發展歷程:
- 從早期的簡單指令系統到現在的復雜指令系統,計算機的功能和性能有了顯著提升。
- 現代計算機通過引入更多面向高級語言的復雜指令,縮小了機器指令與高級語言之間的語義差距。
- 隨著技術的發展,指令系統也在不斷地調整和優化,以適應新的技術挑戰和應用需求。
總的來說,指令系統不僅僅是計算機硬件的核心部分,它也是計算機功能實現的基礎。操作碼字段和地址碼字段的設計決定了指令的種類和功能,從而影響計算機的處理能力和適用范圍。隨著計算機技術的發展,指令系統也在不斷演進,以提供更強大、更靈活的計算能力。
復雜指令系統
復雜指令系統(CISC)是一種計算機指令集架構,其基本思想是通過進一步增強原有指令的功能,用更為復雜的新指令取代原先由軟件子程序完成的功能,實現軟件功能的硬化,導致機器的指令系統越來越龐大、復雜。
復雜指令系統(CISC)在設計上具有獨特的特點和優勢,但也存在一些缺點。下面的內容將詳細分析其特點:
- 指令數量眾多:
- CISC指令系統擁有大量的指令,通常有100~50條。這些指令涵蓋各種功能,包括數據傳輸、算術運算、邏輯運算等。
- 由于指令數量眾多,編程者可以方便地找到特定操作對應的指令,這在某種程度上簡化了程序設計。
- 指令使用頻率相差懸殊:
- 最常使用的是一些比較簡單的指令,僅占指令總數的20%,但在程序中出現的頻率卻占80%。而部分復雜指令卻很少使用。
- 這種使用頻率的懸殊導致許多復雜指令在實際程序中并不實用,增加了硬件的復雜度卻沒有帶來相應的性能提升。
- 功能強大的指令集:
- CISC指令集包含豐富的指令,每條指令可以完成多個操作,這使得處理特殊任務時效率較高。
- 例如,一條單一的指令可能包含存儲、加載、計算等多種操作,減少了需要執行的指令數量,提高了程序運行效率。
- 靈活的存儲器操作:
- CISC架構允許指令直接操作存儲器,存儲器操作指令多且靈活,這使得數據傳遞和處理更加直接。
- 這種靈活性對編寫復雜程序和科學計算非常有利,匯編語言程序設計相對簡單。
- 微程序控制器:
- 在CISC架構中,通常會采用微程序控制器來實現復雜指令。微程序控制器包含微代碼,用于解釋和執行指令。
- 通過微代碼實現指令可以增加處理器的靈活性,但同時也增加了處理器設計的復雜度和執行時間。
- 向后兼容性好:
- CISC架構由于歷史悠久,具有良好的向后兼容性。新的處理器能夠運行舊的軟件和應用程序。
- 這種向后兼容性使得CISC架構在企業級應用和桌面計算領域得到了廣泛應用,如x86體系結構。
精簡指令系統
精簡指令系統(RISC)是一種計算機指令集架構,其基本思想是通過減少指令總數和簡化指令功能降低硬件設計的復雜度,使指令能單周期執行,并通過優化編譯提高指令的執行速度,采用硬布線控制邏輯優化編譯程序。
精簡指令系統(RISC)在設計上具有顯著的特點和優勢,這些特點使它與復雜指令系統(CISC)有明顯區別。下面的內容將詳細解析其特點:
- 指令數量少:
- RISC指令系統優先選取使用頻率最高的一些簡單指令和一些常用指令,避免使用復雜指令。
- 由于指令數量較少,硬件設計相對簡單,從而降低了設計成本和功耗。
- 尋址方式少:
- RISC指令的尋址方式較少,這簡化了指令解碼過程,提高了指令執行效率。
- 這種簡化同時也減少了編譯器的負擔,使得編譯過程更加高效。
- 指令長度固定:
- RISC指令長度固定,指令格式種類少,這有利于流水線的高效執行。
- 固定長度的指令簡化了硬件設計,使得每條指令都能在一個機器周期內完成。
- 硬布線邏輯控制為主:
- 為了提高操作的執行速度,RISC通常采用硬布線邏輯(組合邏輯)來構建控制器。
- 與微程序控制相比,硬布線邏輯控制能夠更快地完成指令執行,從而提高整體性能。
- 單周期指令執行:
- RISC采用流水線技術,大部分指令都能在一個機器周期內完成。
- 這種設計使得處理器可以高效地處理指令,提升了運算速度和系統吞吐率。
- 優化的編譯器:
- RISC的精簡指令集使編譯工作簡單化。因為指令長度固定、格式少、尋址方式少,編譯時不必在具有相似功能的許多指令中進行選擇。
- 優化編譯器可以生成高效率執行的機器代碼,進一步提升程序運行效率。
- CPU中的通用寄存器數量多:
- RISC架構的CPU中通常包含多個通用寄存器,一般在32個以上,多的甚至上千個。
- 大量的寄存器減少了對存儲器的依賴,從而加快了數據處理速度和指令執行效率。
指令流水
要計算流水線周期和100條指令全部執行完畢所需的時間,我們首先需要了解流水線周期的計算方法。流水線周期是指執行時間最長的一個階段,它決定了流水線的頻率。對于給定的例子,我們可以按照以下步驟進行計算:
-
確定流水線周期:
- 取指時間為2ns,分析時間為2ns,執行時間為1ns。
- 流水線周期取這些階段中最長的時間為周期長度,因此流水線周期為2ns(取指和分析的時間)。
-
計算100條指令全部執行完畢所需的時間:
- 公式為: ( t 1 + t 2 + … + t k ) + ( n ? 1 ) ? Δ t (t_1 + t_2 + \ldots + t_k) + (n - 1) * \Delta t (t1?+t2?+…+tk?)+(n?1)?Δt,其中 t 1 , t 2 , … , t k t_1, t_2, \ldots, t_k t1?,t2?,…,tk?是各個階段的時間, n n n是指令數, Δ t \Delta t Δt是流水線周期。
- 將給定的值代入公式: ( 2 + 2 + 1 ) + ( 100 ? 1 ) ? 2 = 5 + 99 ? 2 = 5 + 198 = 203 (2 + 2 + 1) + (100 - 1) * 2 = 5 + 99 * 2 = 5 + 198 = 203 (2+2+1)+(100?1)?2=5+99?2=5+198=203ns。
因此,流水線周期是2ns,100條指令全部執行完畢需要的總時間是203ns。
流水線的吞吐率(TP)和最大吞吐率(TP_max)是衡量流水線性能的重要指標。吞吐率是指單位時間內流水線處理的結果數,對于指令執行而言,就是單位時間內完成的指令數。下面是關于流水線吞吐率和最大吞吐率的詳細解析:
流水線吞吐率(TP)
吞吐率定義為單位時間內流水線處理的結果數。在流水線中,這通常是指在穩定狀態下,流水線每個周期完成的任務數。公式為:
T P = n T TP = \frac{n}{T} TP=Tn?
其中,$ n $ 是任務數(或指令數),$ T $ 是完成所有任務所需的總時間。
最大吞吐率(TP_max)
最大吞吐率是在理想情況下,流水線每個周期都能輸出一個結果時的吞吐率。在這種情況下,吞吐率等于流水線的周期時間的倒數,即:
T P m a x = 1 Δ t TP_{max} = \frac{1}{\Delta t} TPmax?=Δt1?
其中,$ \Delta t $ 是流水線的周期時間。
流水線執行時間
流水線執行時間是指從第一條指令開始執行到最后一條指令完成的總時間。對于一個分為$ k 個階段的流水線,執行 個階段的流水線,執行 個階段的流水線,執行 n 條指令的總時間 條指令的總時間 條指令的總時間 T $可以表示為:
T = ( k + ( n ? 1 ) ) × Δ t T = (k + (n - 1)) \times \Delta t T=(k+(n?1))×Δt
流水線加速比(S)
流水線加速比是指使用流水線執行時間與不使用流水線執行時間的比值。公式為:
S = T n o n ? p i p e l i n e d T p i p e l i n e d S = \frac{T_{non-pipelined}}{T_{pipelined}} S=Tpipelined?Tnon?pipelined??
其中,$ T_{non-pipelined} $ 是不使用流水線時執行$ n 條指令所需的時間, 條指令所需的時間, 條指令所需的時間, T_{pipelined} $ 是使用流水線執行$ n $條指令所需的時間。
存儲系統
存儲器的層次
存儲器的層次結構是一個由多級存儲設備組成的系統,其頂層是寄存器,然后依次是Cache、主存和磁盤。
寄存器位于CPU內部,它的訪問速度最快,能在單個CPU周期內完成,容量有限,僅能存儲少量數據,但價格相對較高。Cache使用靜態隨機存取存儲器,位于CPU和主存之間,用于暫存頻繁訪問的指令和數據。它比寄存器慢,但速度仍遠快于主存,其價格也較高。
主存通常使用動態隨機存取存儲器,容量較大,價格適中,但速度慢于Cache。磁盤包括固態硬盤和機械硬盤,它們有極大的容量和最低的成本,但訪問速度最慢。
從用戶角度出發,存儲器的三個主要指標是容量、速度和每位價格。越靠近CPU的存儲器容量越小、速度越快、價格越高;反之,遠離CPU的存儲器則容量大、速度慢、價格便宜。這種層次結構不僅解決了存儲器的速度、容量和成本之間的矛盾,還通過局部性原理優化了存儲訪問效率。
主存儲器
主存用來存放計算機運行期間所需要的程序和數據,CPU可直接隨機地 進行讀/寫。
在計算機系統中,CPU與主存之間的數據交換是通過總線進行的,具體涉及到數據總線、地址總線和控制總線。以下是這一過程的詳細描述:
數據總線(DR)
- 功能:數據總線用于在CPU和主存之間傳輸數據。
- 特點:它的寬度決定了每次可以傳輸數據的位數,直接影響數據傳輸的速度和效率。
地址總線(AR)
- 功能:地址總線用于從CPU向主存傳遞地址信息。
- 特點:地址總線的寬度決定了CPU可以直接尋址的內存范圍。例如,32位寬的地址總線可以尋址到4GB的內存空間。
控制總線
- 功能:控制總線攜帶的是控制信號,如讀/寫控制信號。
- 特點:控制總線確保數據傳輸的正確性和有序性,它傳達了CPU對外圍設備的操作命令,如讀取或寫入數據的指令。
讀/寫操作過程
-
讀操作:
- CPU通過地址總線發送所要讀取數據的內存地址。
- 控制總線發出讀信號。
- 數據通過數據總線從主存傳輸到CPU。
-
寫操作:
- CPU通過地址總線發送將要寫入數據的內存地址。
- 控制總線發出寫信號。
- 數據通過數據總線從CPU傳輸到主存。
典型真題
題目
內存按字節編址,地址從A4000H到CBFFFH,共有()個字節。若用存儲容量為32KX8bit的存儲芯片構成該內存,至少需要()片。
A、80K
B、96K
C、160K
D、192K
A、2
B、5
C、8
D、10
解題思路
-
計算地址范圍:
- 首先,將十六進制地址轉換為十進制地址。
- 計算兩個地址之間的差值,得到總的字節數。
-
計算所需芯片數量:
- 每個存儲芯片的容量為32K字節,即32768字節(因為1K = 1024字節)。
- 使用總字節數除以單片芯片的字節數,得到所需的芯片數量。
- 如果結果不是整數,向上取整得到實際需要的芯片數量。
具體步驟
-
地址轉換和計算:
- A4000H = $ 10 \times 65536 + 4 \times 4096 + 0 \times 256 = 655360 + 16384 = 671744 $
- CBFFFH = $ 12 \times 65536 + 11 \times 4096 + 15 \times 256 + 15 = 786432 + 45056 + 3840 + 15 = 835343 $
- $ 835343 - 671744 = 163599 $ 字節
-
計算芯片數量:
- 每片芯片容量:32768 字節
- 所需芯片數:$ \lceil \frac{163599}{32768} \rceil = 5 $
結論
- 從地址A4000H到CBFFFH共有163599個字節。
- 若用存儲容量為32KX8bit的存儲芯片構成該內存,至少需要5片。
- 正確答案是 B、5。
磁盤陣列
磁盤陣列(RAID)是一個由多個磁盤驅動器組成的存儲系統,旨在提供更高的性能、更大的存儲容量和更好的數據可靠性。下面是關于RAID的詳細解析:
RAID的級別
RAID共有8個不同的級別,每個級別都提供了不同的性能和冗余特性。這些級別包括:
- RAID 0 - 無冗余分條:提供數據分條技術,但不提供冗余,因此沒有容錯能力。
- RAID 1 - 鏡像:數據被鏡像到兩個或多個磁盤上,提供數據冗余,但磁盤利用率較低。
- RAID 2 - 位級條帶化加漢明碼:使用漢明碼進行錯誤校正,適用于高性能計算環境。
- RAID 3 - 帶奇偶校驗的并行訪問:所有數據磁盤共享一個奇偶校驗磁盤,適用于大文件的順序訪問。
- RAID 4 - 帶專用奇偶校驗的磁盤鏡像:與RAID 3類似,但奇偶校驗信息存儲在專用磁盤上。
- RAID 5 - 帶分散奇偶校驗的分條:類似于RAID 0,但增加了分散的奇偶校驗信息,提高了讀取速度和可靠性。
- RAID 6 - 雙奇偶校驗:提供雙重奇偶校驗,即使兩個磁盤同時失效也能保持數據完整性。
- RAID 7 - 帶網絡支持的磁盤陣列:使用高速緩存和網絡連接,適用于大型數據中心。
RAID的主要技術
- 分塊技術:將數據分成小塊,分布在多個磁盤上,可以提高數據傳輸速率和并行處理能力。
- 交叉技術:交叉技術是指將數據以交叉的方式存儲在多個磁盤上,可以改善I/O性能,減少磁盤訪問時間。
- 重聚技術:在數據從多個磁盤讀取后,重聚技術負責將數據重新組合成用戶所需的格式,確保數據的完整性和可用性。
RAID的優勢
- 提高讀寫速度:通過并行訪問多個磁盤,RAID可以顯著提高數據的讀寫速度。
- 增加存儲容量:RAID系統通過組合多個磁盤的存儲空間,提供了更大的存儲容量。
- 提供冗余保護:除了RAID 0,其他RAID級別都提供了不同程度的數據冗余保護,以防數據丟失。
- 提高可靠性:通過冗余和錯誤校正技術,RAID系統提高了數據的可靠性和系統的容錯能力。
校驗碼
循環冗余校驗碼
循環冗余校驗(CRC)是一種通過特定的生成多項式來檢測或驗證數據傳輸或存儲過程中的錯誤的技術。下面是關于CRC的詳細解析:
CRC的基本原理
CRC基于除法算法,使用一個稱為生成多項式的特定多項式來生成校驗碼。生成多項式的最高位為1,且通常比要計算的數據位長。CRC的處理過程如下:
- 準備數據:將要傳輸或存儲的數據表示為一個二進制數。
- 選擇生成多項式:選擇一個適當的生成多項式,該多項式的位數決定了校驗位的長度。
- 編碼過程:將數據與生成多項式進行模2除法,得到的余數即為CRC校驗碼。
- 附加校驗碼:將校驗碼附加到數據的末尾,形成完整的CRC編碼數據。
CRC的數學表達
假設有一個數據位序列 $ D(x) $ 和一個生成多項式 $ G(x) $,其中 $ G(x) $ 的次數為 $ r $(即校驗位的長度)。CRC編碼的過程可以表示為:
CRC編碼 = D ( x ) ? x r m o d G ( x ) \text{CRC編碼} = D(x) \cdot x^r \mod G(x) CRC編碼=D(x)?xrmodG(x)
這里的 $ \mod G(x) $ 表示模2除法操作。
CRC的特點
- 錯誤檢測能力:CRC能夠檢測出大部分常見的錯誤,如單比特錯誤、雙比特錯誤等。
- 無法糾正錯誤:CRC僅用于錯誤檢測,不能糾正錯誤。
- 低誤判率:CRC具有極低的誤判率,這意味著很少會將錯誤數據誤認為是正確數據。
- 靈活性:通過選擇不同的生成多項式,可以在檢測能力和系統開銷之間做出權衡。
CRC的應用
- 數據通信:在數據傳輸中,CRC用于確保數據的正確性,特別是在無線通信和網絡協議中。
- 磁介質存儲:在硬盤驅動器和固態硬盤中,CRC用于檢測存儲數據的錯誤。
- 文件系統:許多文件系統使用CRC來檢測文件數據的完整性。
結論
循環冗余校驗(CRC)是一種強大且廣泛應用于數據通信和存儲領域的錯誤檢測技術。它利用生成多項式對數據進行編碼,產生校驗碼,從而在數據傳輸或存儲過程中提供錯誤檢測功能。盡管CRC無法糾正錯誤,但其高可靠性和低誤判率使其成為保護數據完整性的重要工具。
考試真題
好的,下面是整理后的題目和解題思路:
題目
采用CRC進行差錯校驗,生成多項式為 $ G(X) = X^4 + X + 1 $,信息碼字為10111,則計算出的CRC校驗碼是( )。
A. 0000
B. 0100
C. 0010
D. 1100
解題步驟
-
化解多項式:生成多項式 $ G(X) = X^4 + X + 1 $ 對應的二進制數為10011。
-
信息碼加0:在信息碼字10111后面添加4個0,變為101110000。這些額外的位用于存放計算出的CRC校驗碼。
-
模二除運算:使用生成多項式10011對101110000進行模二除法運算。模二除法類似于常規的除法,但使用的是異或操作而不是減法,并且不進位。
迭代過程:
得到余數:
最終的余數是最后5位,這5位即為CRC校驗碼。
總線
總線是計算機硬件系統中的重要組成部分,它負責在各個組件之間傳輸數據和控制信號。根據不同的標準,總線可以分為多種類型,每種類型的總線都有其特定的設計目的和應用場景。下面是對您提到的各種總線的簡要概述:
內部總線與外部總線
- 內部總線:連接CPU內部的各個部件,如寄存器、算術邏輯單元等。
- 外部總線:連接CPU與計算機系統中的其他主要組件,如內存、輸入輸出設備等。
按功能分類
- 地址總線:傳輸地址信息,指定數據的來源或目的地。
- 數據總線:傳輸實際的數據。
- 控制總線:傳輸控制信號,用于管理數據總線和地址總線的操作。
按數據線的多少分類
- 并行總線:具有多條雙向數據線,能夠同時傳輸多位數據,提高了數據傳輸速率,適用于近距離連接,如計算機內部的連接。
- 串行總線:只有一條或兩條單向數據線,數據傳輸速率相對較低,但適合長距離連接,常用于計算機之間或計算機與其他系統間的通信。
應用示例
- 系統總線:如PCI, PCIe,主要用于計算機內部各部件的連接,屬于并行總線。
- 通信總線:如USB, RS-232,主要用于計算機與外部設備的連接,可以是串行也可以是并行。
- 串行總線:如I2C, SPI,主要用于嵌入式系統和外圍設備的通信,適合長距離連接。
特點與適用場景
- 并行總線:由于有多條數據線,可以同時傳輸多個數據位,因此傳輸速度快,適合內部高速數據傳輸。
- 串行總線:數據傳輸速度相對較慢,但由于只需要少量的線纜,成本較低,易于維護,適合遠距離通信。