個人博客:blogs.wurp.top
一、計算機系統組成與多級層次結構
1. 馮·諾依曼體系結構 (核心考點)
這是所有現代計算機的理論基礎。核心思想是 “存儲程序” 。
- 五大部件:運算器、控制器、存儲器、輸入設備、輸出設備。
- 工作流程:指令驅動。CPU從存儲器中取指、譯碼、執行,周而復始。
- 關鍵特征:以運算器為中心;指令和數據以二進制形式并存于存儲器中,按地址尋址。
- 軟考深化:
- 哈佛結構:一種改進結構,將指令存儲和數據存儲在物理上分開,使用獨立的總線。這提高了并行性,常用于CPU內部緩存設計(L1 Cache分I-Cache和D-Cache)和DSP、嵌入式系統中。
- 現代計算機的實際結構:以存儲器為中心,通過系統總線(數據、地址、控制) 連接CPU、內存和I/O設備。
2. 計算機的多級層次結構
計算機系統通過分層來管理復雜性,下層是上層的實現基礎,上層是下層的抽象。
- 典型層次 (從下到上):
- 微程序/硬邏輯層 -> 機器語言層 -> 操作系統層 -> 匯編語言層 -> 高級語言層 -> 應用層
- 軟考視角:架構師工作在高級語言層和應用層,但必須理解下層(尤其是操作系統和機器語言層)的機制和性能特征,才能做出最優設計。
二、硬件系統核心組件 (重點中的重點)
1. 中央處理器 (CPU)
- 核心組件:
- 運算器 (ALU):執行算數和邏輯運算。
- 控制器 (CU):取指、譯碼、發出控制信號。
- 寄存器組:CPU內部的高速存儲單元。
- 關鍵寄存器:PC (程序計數器)、IR (指令寄存器)、ACC (累加器)、MAR (內存地址寄存器)、MDR (內存數據寄存器)、PSW (程序狀態字)。
- 指令系統:
- CISC (復雜指令集) vs RISC (精簡指令集):必考對比點。
特性 CISC (e.g., x86) RISC (e.g., ARM, MIPS) 指令數目 多,復雜 少,精簡 指令長度 可變長 定長 尋址方式 復雜多樣 簡單 實現方式 微程序控制 硬布線控制為主 設計哲學 硬件完成復雜功能 編譯器優化生成高效代碼 寄存器 較少 大量通用寄存器 代表 Intel, AMD CPUs Apple M系列, 手機芯片 - 指令執行過程:取指 -> 譯碼 -> 取操作數 -> 執行 -> 寫回結果。流水線技術 是為了讓這些階段并行,提高吞吐率。
- CISC (復雜指令集) vs RISC (精簡指令集):必考對比點。
- 流水線 (Pipeline):
- 概念:將指令處理過程分解為多個階段,重疊執行。
- 主要風險:
- 資源沖突:解決方法:增加資源、流水線調度。
- 數據相關:寫后讀(RAW) 是最常見的數據相關。解決方法:轉發/旁路 (Forwarding/Bypassing)、流水線暫停(冒泡)。
- 控制相關:由轉移指令(分支、跳轉) 引起。解決方法:分支預測(靜態預測、動態預測)、延遲槽。
- 性能計算:
- 執行n條指令所需時間:
建立時間 + (指令數 - 1) * 時鐘周期
- 吞吐率:
指令條數 / 執行時間
- 執行n條指令所需時間:
- 多處理器系統 (Flynn分類法):
- SISD:單指令流單數據流(傳統單核CPU)。
- SIMD:單指令流多數據流(向量處理器、GPU核心思想)。
- MISD:多指令流單數據流(不常見)。
- MIMD:多指令流多數據流(現代多核CPU、分布式系統)。
2. 存儲系統
核心矛盾:速度、容量、價格無法同時滿足。解決方案:多級存儲體系。
- 層次結構:CPU寄存器 -> Cache (SRAM) -> 主存 (DRAM) -> 外存 (磁盤/SSD)
- 速度從快到慢,容量從小到大,價格從高到低。
- 局部性原理:是緩存技術的理論基礎。
- 時間局部性:剛被訪問的內容很可能再次被訪問。(循環、棧)
- 空間局部性:剛被訪問的內容的相鄰內容很可能被訪問。(順序執行、數組遍歷)
- 高速緩存 (Cache):
- 工作過程:CPU先訪問Cache,若找到數據則為“命中”,否則為“缺失”,需從主存調入。
- 命中率:
命中次數 / 總訪問次數
。是衡量Cache性能的關鍵指標。 - 映射機制:必考。
- 直接相聯:主存塊只能放入Cache的唯一位置。沖突率高,速度快。
- 全相聯:主存塊可放入Cache的任意位置。沖突率低,查找慢(成本高)。
- 組相聯:折中方案。將Cache分組,主存塊映射到特定組,但可放入該組內任意行。是當前最主流的方式(如n路組相聯)。
- 寫策略:
- 寫直達 (Write-through):同時寫Cache和主存。簡單,一致性好,但速度慢。
- 寫回 (Write-back):只寫Cache,僅當該塊被替換時才寫回主存。速度快,但一致性控制復雜。
- 虛擬存儲器:
- 目的:給用戶提供比實際物理內存大得多的地址空間。
- 實現方式:分頁系統。由MMU (內存管理單元) 負責虛擬地址到物理地址的轉換。
- 頁表:存儲映射關系。快表 (TLB) 是頁表的Cache,用于加速地址轉換。
- 缺頁中斷:當訪問的頁面不在物理內存中時,由操作系統將其從外存(交換區)調入。
3. 輸入/輸出技術 (I/O)
- I/O控制方式 (CPU參與度從高到低):
- 程序查詢方式:CPU輪詢I/O設備狀態,效率極低。
- 中斷方式:I/O完成后主動通知CPU,CPU中斷當前程序進行處理。提高了CPU利用率。
- DMA方式:必考。由DMA控制器在主存和I/O設備之間直接建立數據通路,無需CPU干預。僅在傳輸開始和結束時需要CPU參與。極大解放了CPU。
- 通道方式:功能更強的DMA,可執行通道程序,管理多個I/O設備。
- 總線系統:
- 數據總線:寬度決定了一次能傳輸的數據量(位寬)。
- 地址總線:寬度決定了CPU的尋址能力(如32位總線最大尋址4GB)。
- 控制總線:傳送控制信號(讀、寫、中斷等)。
三、操作系統核心機制 (架構師必須理解)
1. 進程與線程
- 進程:資源分配的基本單位。擁有獨立的地址空間、文件描述符等。
- 線程:CPU調度的基本單位。共享進程的資源,但有自己的棧和寄存器。
- 軟考重點:
- 對比:多線程共享數據簡單,但同步復雜,一個線程崩潰可能導致整個進程崩潰;多進程更安全穩定,但通信(IPC)開銷大。
- 狀態轉換:運行、就緒、阻塞(等待)。要能畫出狀態轉換圖。
- 進程調度算法:先來先服務(FCFS)、短作業優先(SJF)、時間片輪轉(RR)、優先級調度、多級反饋隊列。要理解各自的特點和適用場景。
2. 存儲管理
- 分區管理:固定分區、可變分區(會產生外部碎片)。
- 分頁管理:解決外部碎片問題。可能產生內部碎片(最后一頁未用滿)。
- 分段管理:按邏輯單元(代碼段、數據段、堆棧段)劃分,利于共享和保護。可能產生外部碎片。
- 段頁式管理:分段和分頁的結合,綜合兩者優點。是現代操作系統的通用方案。
3. 設備與文件管理
- SPOOLing技術:假脫機技術,將獨占設備改造為共享設備(如打印池)。
- 磁盤調度算法:先來先服務(FCFS)、最短尋道時間優先(SSTF)、掃描算法(SCAN/電梯算法)、循環掃描算法(C-SCAN)。目的是減少磁頭移動距離,提高I/O效率。
四、系統性能評估與可靠性 (高頻考點)
1. 性能指標
- 時鐘頻率 (主頻):基本指標,但并非唯一。
- CPI:執行一條指令所需的平均時鐘周期數。
CPU執行時間 = 指令數 * CPI * 時鐘周期
- MIPS:每秒百萬條指令。MIPS=指令數/(執行時間?106)=主頻/(CPI?106)MIPS = 指令數 / (執行時間 * 10^6) = 主頻 / (CPI * 10^6)MIPS=指令數/(執行時間?106)=主頻/(CPI?106)
- MFLOPS:每秒百萬次浮點操作。
- 吞吐率與響應時間:吞吐率是單位時間內完成的任務數;響應時間是單個任務從提交到完成的時間。通常兩者相互影響。
2. 可靠性
- 平均無故障時間 (MTBF):系統平均能正常運行多長時間。
- 平均修復時間 (MTTR):出故障后平均需要多長時間修復。
- 可用性:A=MTBF/(MTBF+MTTR)A = MTBF / (MTBF + MTTR)A=MTBF/(MTBF+MTTR)
- 系統可靠性模型:
- 串聯系統:可靠性 R=R1?R2?...?RnR = R1 * R2 * ... * RnR=R1?R2?...?Rn。一個失效,全部失效。
- 并聯系統:可靠性 R=1?(1?R1)(1?R2)...(1?Rn)R = 1 - (1-R1)(1-R2)...(1-Rn)R=1?(1?R1)(1?R2)...(1?Rn)。所有部件都失效,系統才失效。
- N模冗余系統:由N個(通常為奇數)相同的子系統進行多數表決。
3. 阿姆達爾定律 (Amdahl’s Law)
必考公式。用于計算對系統某部分性能進行優化后,整體系統性能的提升倍數。
S=1/[(1?F)+F/k]S = 1 / [(1 - F) + F / k]S=1/[(1?F)+F/k]
- SSS:系統加速比
- FFF:可改進部分所占比例(0 < F < 1)
- kkk:可改進部分的性能提升倍數
應用:此定律揭示了優化系統瓶頸的重要性。即使對非瓶頸部分做巨大優化(k很大),整體效果(S)也微乎其微。
總結與應試技巧
- 抓住核心:Cache、指令系統(CISC/RISC)、流水線、存儲層次、I/O方式(DMA)、可靠性計算、阿姆達爾定律是絕對的重中之重,必須徹底理解并能進行計算和分析。
- 理解對比:軟考偏愛考查對比,如CISC vs RISC,各種映射算法、調度算法的優缺點對比。
- 聯系實際:將理論知識與現代計算機架構(如多核、GPU、SSD)聯系起來思考,這在案例分析題中至關重要。
- 刷題鞏固:務必找到歷年真題中的相關題目進行練習,深刻體會出題思路和考查方式。