目錄
一、馮·諾依曼結構與哈佛結構
(一)馮·諾依曼結構
(二)哈佛架構
二、ARM存儲模式
(一)大端模式
(二)小端模式
(三)混合模式
三、CISC 與 RISC
(一)指令集特點
(二)硬件結構
(三)性能表現
(四)應用場景
四、流水線技術
(一)基本原理
(二)優點
(三)缺點
(四)應用領域
一、馮·諾依曼結構與哈佛結構
????????馮·諾依曼結構和哈佛結構是計算機體系結構中的兩種重要類型,以下從其基本定義、特點、應用場景等方面進行介紹:
(一)馮·諾依曼結構
1、定義
????????也稱為普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令和數據都存儲在同一存儲器中,并且通過同一組總線進行訪問。
2、特點
(1)指令和數據共享存儲器
????????程序和數據存放在相同的存儲空間,可按地址訪問,數據和指令在形式上無差別,指令可像數據一樣被修改。
(2)分時復用總線
????????同一時刻只能進行取指令或數據讀寫操作,通過分時復用方式共享數據總線和地址總線,限制了數據傳輸帶寬。
(3)易于實現
????????結構簡單,設計和實現成本較低,通用性強,適用于多種類型的計算任務。
3、應用場景
????????廣泛應用于早期的計算機系統以及一些通用型計算機中,如個人計算機、服務器等。
????????例如,x86 架構的計算機大多采用馮諾依曼結構,能很好地滿足一般用戶的多樣化計算需求,包括辦公、娛樂、編程等各種任務。
(二)哈佛架構
1、定義
????????是一種將程序指令存儲和數據存儲分開的存儲器結構,有獨立的程序存儲器和數據存儲器,分別有各自的地址總線和數據總線。
2、特點
(1)指令和數據分開存儲
????????程序存儲器和數據存儲器相互獨立,可同時進行指令讀取和數據讀寫操作,提高了數據處理效率。
(2)獨立的總線
????????具有獨立的程序總線和數據總線,使指令和數據能并行傳輸,增加了數據傳輸帶寬,適合高速數據處理。
(3)提高指令執行效率
????????由于取指令和取數據可同時進行,能更高效地執行指令,尤其適用于實時性要求高的任務
3、應用場景
????????常用于一些對實時性和處理速度要求較高的系統中,如數字信號處理器(DSP)、微控制器(MCU)以及一些專用的嵌入式系統。
????????例如,在音頻、視頻處理設備以及工業控制領域的嵌入式系統中,哈佛結構能快速處理大量數據,滿足實時處理的要求。
二、ARM存儲模式
????????ARM 處理器具有多種存儲模式,以適應不同的應用場景和數據處理需求,主要包括大端模式、小端模式和混合模式,以下是具體介紹:
(一)大端模式
1、數據存儲方式
????????數據的高位字節存于低地址,低位字節存于高地址。
????????例如,對于 32 位整數0x12345678,在大端模式下,0x12存于內存低地址,接著依次是0x34、0x56、0x78存于更高地址,就像按從左到右(高位在前)的順序存儲。
2、特點
????????符合人類正常思維習慣,先看到數據高位部分。
????????在處理文本、網絡協議等以字節為單位且有明確高低位順序的數據時,大端模式更方便,因為可以按順序讀取和處理字節,無需額外轉換。
3、應用場景
????????常用于一些對數據存儲格式有嚴格規范的場景,如網絡協議棧、文件系統等。在網絡傳輸中,數據通常以大端模式進行打包和傳輸,以確保不同設備和平臺之間的數據一致性。
(二)小端模式
1、數據存儲方式
????????與大端模式相反,數據的低位字節存于低地址,高位字節存于高地址。
????????對于0x12345678,在小端模式下,0x78存于內存低地址,接著是0x56、0x34、0x12存于更高地址,如同從右到左(低位在前)存儲。
2、特點
????????計算機硬件按字節讀取內存時,從小地址開始先讀取到數據低位部分,無需額外轉換操作,能提高數據處理效率,尤其在處理整數等基本數據類型時,CPU 可直接按字節讀取和組合數據,無需調整字節順序。
3、應用場景
????????在大多數微處理器和微控制器中,小端模式是默認存儲模式,因為它更符合硬件的自然處理方式,能減少數據處理中的額外開銷,提高系統性能。
????????許多嵌入式系統和實時操作系統也常采用小端模式,以充分利用硬件性能,快速處理數據。
(三)混合模式
1、數據存儲方式
????????允許在同一系統或程序中同時使用大端模式和小端模式,根據具體數據類型、數據結構或應用需求靈活選擇存儲方式。
2、特點
????????具有較高靈活性,可根據不同數據特性選擇最合適存儲模式,以優化存儲和訪問效率。
????????但管理和維護數據存儲格式的復雜性增加,需要開發者明確區分不同數據的存儲模式,避免數據混淆和錯誤。
3、應用場景
????????在一些復雜的應用場景中,如同時處理多種不同格式數據?(如既有網絡數據又有本地存儲的整數數據) 的系統,或者需要與不同端模式設備進行交互的應用中,混合模式可提供更靈活的解決方案,使系統適應多種數據存儲和傳輸要求。
三、CISC 與 RISC
????????CISC(復雜指令集計算機)和 RISC(精簡指令集計算機)是兩種不同的計算機指令集架構,以下從指令集特點、硬件結構、性能等方面對它們進行介紹:
(一)指令集特點
1、CISC
(1)指令數量多
????????包含大量不同功能的指令,指令長度可變,格式多樣。例如,既有簡單的加法指令,也有復雜的字符串處理指令等。
(2)指令功能復雜
????????一條指令可以完成多種操作,如在一條指令中實現內存訪問、算術運算和邏輯運算等。
(3)尋址方式豐富
????????支持多種尋址方式,如直接尋址、間接尋址、變址尋址等,這使得指令能夠靈活地訪問內存中的數據。
2、RISC
(1)指令數量少
????????只包含一些最基本、常用的指令,指令長度通常固定,格式相對簡單。例如,主要包括加法、減法、加載、存儲等簡單指令。
(2)指令功能簡單
????????每條指令通常只完成一個基本操作,如一條指令只進行一次加法運算或一次內存加載操作。
(3)尋址方式簡單
????????一般采用較少的尋址方式,通常以寄存器尋址為主,減少了指令執行時的復雜性。
(二)硬件結構
1、CISC
(1)硬件復雜
????????由于指令功能復雜,需要更多的硬件電路來實現指令的譯碼和執行,因此 CPU 內部結構復雜,包含多種專用的硬件單元,如乘法器、除法器等。
(2)指令執行單元多樣
????????為了支持不同類型的指令,有多個不同功能的指令執行單元,這些單元的設計和控制較為復雜。
2、RISC
(1)硬件簡單
????????指令簡單使得硬件設計相對容易,CPU 內部結構較為規整,通常采用流水線技術,提高指令執行效率。
(2)強調寄存器使用
????????具有較多的通用寄存器,數據處理主要在寄存器之間進行,減少了對內存的訪問,提高了數據處理速度。
(三)性能表現
1、CISC
(1)程序代碼緊湊
????????對于一些復雜的任務,由于一條指令可以完成較多工作,因此編寫的程序代碼相對較短,占用的內存空間較小。
(2)執行效率不均衡
????????對于簡單指令,執行速度可能較慢,因為硬件需要花費時間來譯碼和執行復雜的指令。而對于復雜任務,可能只需要較少的指令就能完成,執行效率較高。
2、RISC
(1)指令執行速度快
????????由于指令簡單且長度固定,指令的譯碼和執行過程相對簡單,能夠在一個時鐘周期內完成一條指令的執行,因此指令執行速度快。
(2)程序代碼較長
????????因為每條指令功能單一,完成相同的任務可能需要更多的指令,所以程序代碼相對較長,占用的內存空間較大。
(四)應用場景
1、CISC
(1)通用計算機
????????適用于需要處理多種不同類型任務的通用計算機系統,如個人計算機、服務器等。
????????這些系統需要運行各種不同的軟件,包括操作系統、辦公軟件、數據庫管理系統等,CISC 的復雜指令集能滿足這些軟件對各種功能的需求。
(2)早期計算機系統
????????在計算機發展的早期,由于硬件成本較高,人們希望通過復雜的指令集來減少程序代碼的長度,提高計算機的性能。因此,早期的計算機大多采用 CISC 架構。
2、RISC
(1)嵌入式系統
????????在嵌入式系統中,如手機、平板電腦、智能家電等,對芯片的功耗、成本和實時性要求較高。RISC 架構的簡單硬件結構使得芯片能夠在較低的功耗下運行,并且能夠快速響應外部事件,滿足嵌入式系統的要求。
(2)高性能計算
????????在一些高性能計算領域,如超級計算機、圖形處理單元(GPU)等,也采用 RISC 架構。通過大量的簡單指令并行執行,可以實現很高的計算性能。
四、流水線技術
????????流水線技術是一種將指令執行過程分解為多個階段,并讓多個指令在不同階段同時執行的技術,以提高計算機系統的指令執行效率和性能。以下從原理、特點和應用等方面進行介紹:
(一)基本原理
????????把指令執行過程劃分為若干個相對獨立的階段,如取指令→指令譯碼→取操作數→執行指令→寫回結果等。每個階段由專門的硬件單元來完成,就像工廠生產線上的不同工序。
????????當一條指令進入流水線后,會依次經過各個階段,在每個時鐘周期,各階段同時處理不同指令的不同部分。
????????例如,在第一個時鐘周期,第一條指令進行取指令操作;第二個時鐘周期,第一條指令進入指令譯碼階段,同時第二條指令開始取指令操作,以此類推,實現多條指令的重疊執行。
(二)優點
1、提高指令執行效率
????????多條指令在流水線中同時處于不同的執行階段,大大提高了單位時間內執行指令的數量,從而提高了整個系統的處理能力。
????????例如,若沒有流水線技術,執行一條指令需要 5 個時鐘周期,那么執行 5 條指令就需要 25 個時鐘周期;而采用流水線技術,在理想情況下,5 條指令只需 9 個時鐘周期(假設流水線有 5 個階段)。
2、簡化硬件設計
????????流水線技術將復雜的指令執行過程分解為多個簡單的階段,每個階段的硬件設計相對簡單,易于實現和優化。
????????同時,由于各階段可以并行工作,也便于采用大規模集成電路技術實現,提高了硬件的可靠性和穩定性。
3、提高系統的吞吐率
????????系統能夠持續不斷地處理指令,就像流水一樣源源不斷,從而提高了系統的整體性能和響應速度,能夠更好地滿足實時性要求較高的應用場景。
(三)缺點
1、數據相關問題
????????如果相鄰指令之間存在數據依賴關系,例如后一條指令需要使用前一條指令的執行結果,那么可能會導致流水線阻塞。因為后一條指令在相關數據未準備好之前,不能進入相應的執行階段,從而影響流水線的效率。
2、指令相關問題
????????當程序中存在條件轉移指令時,由于在指令執行到轉移指令時才能確定是否轉移以及轉移的目標地址,這就可能導致流水線中的后續指令被錯誤地預取和執行。
????????一旦條件轉移的結果與之前的預測不符,就需要清空流水線,重新取指令,從而造成流水線的停頓和性能損失。
3、硬件資源沖突
????????如果多個指令同時需要使用同一硬件資源,如多個指令同時需要訪問內存或使用乘法器等,就會發生資源沖突,導致某些指令需要等待資源可用,進而影響流水線的連續性。
(四)應用領域
1、CPU 設計
????????幾乎所有現代的微處理器都采用了流水線技術,如英特爾、AMD 的 x86 架構處理器,以及 ARM 架構處理器等。
????????通過不斷優化流水線的深度和結構,提高了 CPU 的性能和運行頻率,使其能夠同時處理多個任務和復雜的計算。
2、數字信號處理(DSP)
????????在音頻、視頻處理,以及通信系統中的數字信號處理等領域,流水線技術被廣泛應用于提高信號處理的速度和實時性。
????????例如,在音頻編碼和解碼過程中,通過流水線技術可以快速地對音頻數據進行采樣、量化、編碼等操作。
3、圖形處理單元(GPU)
????????GPU 在處理圖形渲染、圖像識別等任務時,也采用流水線技術來提高處理效率。
????????例如,在圖形渲染過程中,通過流水線技術可以依次完成頂點處理、光柵化、紋理映射、顏色計算等多個階段的操作,從而快速生成高質量的圖像。