【計算機組成】常用總結


計算機的組成


  • 運算器:用來完成算術運算和邏輯運算,並將中間結果暫存在運算內。
  • 存儲器:用來放數據和程序。
  • 控制器:用來控制、指揮程序和數據的輸入、運行以及處理運算結果。
  • 輸入設備:用來將人們熟悉的信息形式轉換為機器能識別的信息形式。

    常見的鍵盤、鼠標等。

  • 輸出設備:用來將機器運算的結果轉換為人們熟悉的信息形式。

    如打印機輸出、顯示器輸出等。

計算機的結構

馮·諾依曼結構:指令和數據存放在同一個存儲器

  • 計算機由運算器存儲器控制器輸入設備輸出設備五大部件組成。
  • 指令和數據以同等地位存放於存儲器內,並可按地址尋訪。
  • 指令和數據均用二進制數表示。
  • 指令由操作碼和地址碼組成
    • 操作碼:用來表示操作性質
    • 地址碼:用來表示操作數在存儲器中的位置
  • 指令在存儲器內按順序存放。通常指令是順序執行的,在特定條件下,可根據運算結果或根據設定的條件改變執行順序。
  • 機器以運算器為中心,輸入輸出設備與存儲器間的數據傳送通過運算器完成。

哈佛結構:指令和數據分別放在兩個存儲器

哈佛結構的計算機比馮·諾依曼結構的計算機速度更快。

計算機性能指標

  • 平均執行周期數(Clock cycle Per Instruction, CPI):表示每條指令的時鍾周期數,即 執行一條指令所需的平均時鍾周期數。
    \[CPI=執行某段程序所需的 CPU 時鍾周期數÷程序包含的指令條數\]

  • 單字長定點指令平均執行速度(Million Instructions Per Second, MIPS):表示平均每秒執行多少百萬條定點指令數。
    \[MIPS=指令數÷(程序執行時間*10^6)\]

    理解:Million 百萬,當然是\(10^6\)

  • 主頻/時鍾周期:CPU 的工作節拍受主時鍾控制,主時鍾不斷產生固定頻率的時鍾,主時鍾的頻率CPU的主頻
    主頻即 CPU 的時鍾頻率,計算機的操作在時鍾信號的控制下分步執行,每個時鍾信號周期完成一步操作,時鍾頻率的高低在很大程度上反映了 CPU 速度的快慢。
  • 外頻:通常為系統總線的工作頻率(系統時鍾頻率),CPU 與周邊設備傳輸數據的頻率,具體是指 CPU 到芯片組之間的總線速度。外頻是 CPU 與主板之間同步運行的速度。

多層次的存儲器

  • 高級緩存(Cache):它是介於 CPU 與內存之間,常用有一級緩存(L1)、二級緩存(L2)、三級緩存(L3)(一般存在於 Intel 系列)。它的讀寫速度比內存還快,當 CPU 在內存中讀取或寫入數據時,數據會被保存在高級緩沖存儲器中,當下次訪問該數據時,CPU 直接讀取高級緩沖存儲器,而不是更慢的內存。
  • 內存:內存(Memory)也被稱為內存儲器主存儲器,是 CPU 能直接尋址的存儲空間,其作用是用於暫時存放 CPU 中的運算數據,以及與硬盤等外部存儲器交換的數據。

    內存是計算機中重要的部件之一,它是外存與 CPU 進行溝通的橋梁。
    計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。

    只要計算機在運行中,操作系統就會把需要運算的數據從內存調到 CPU 中進行運算,當運算完成后CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。
    例如:計算機中的內存條,內存條是由內存芯片、電路板、金手指等部分組成的。

    • 隨機存取存儲器(Random Access Memory, RAM):我們不僅可以從中讀取數據,而且還可以寫入數據。但是機器電源關閉時,數據就會丟失。

      內存條(SIMM)就是把RAM集成塊集中在一小塊電路板上。

    • 只讀存儲器(Read Only Memory, ROM):它是把數據或程序永久保存在其中,不能更改,只能讀取。即使機器斷電,數據也不會丟失。
  • 外存:外儲存器是指除計算機內存及 CPU 緩存以外的儲存器,此類儲存器一般斷電后仍然能保存數據。

    例如:常見的外存儲器有硬盤、軟盤、光盤、U盤等。


  • 主存:就是內存,主存儲器(Main memory),簡稱主存。是計算機硬件的一個重要部件,其作用是存放指令和數據,並能由中央處理器(CPU)直接隨機存取。現代計算機是為了提高性能,又能兼顧合理的造價,往往采用多級存儲體系。即由存儲容量小,存取速度高的高速緩沖存儲器,存儲容量和存取速度適中的主存儲器是必不可少的。

  • 輔存:就是外存,輔存狹義上是我們平時講的硬盤。科學地說是外部存儲器(需要通過I/O系統與之交換數據,又稱為輔助存儲器)。


  • 數據存儲的方式:
    • 小端方式:先存儲低位字節,后存儲高位字節
    • 大端方式:先存儲高位字節,后存儲低位字節
  • 邊界對齊方式

    字節不論在哪個 CPU 上都是 8bit。
    是根據處理器的特性決定的。

    例如:ARM 是 32bit 處理器,所以它的字是 32bit的,半字就是 16bit。
    假設存儲字長為 32 位,可以按照字節、半字、字尋址。在對准邊界的 32 位字長的計算機中,半字地址是 2 的整數倍,字地址是 4 的整數倍,當所存數據不能滿足此要求時,可以填充空白字節。
    這樣保證對齊以后,可以使得每次取數據都是一次訪存取出。

Cache 緩存

Cache:是一種高速緩沖存儲器,是為了解決 CPU 和主存之間速度不匹配而采用的一項重要技術。
是位於 CPU 與內存間的一種容量較小但速度很高的存儲器。
CPU 的速度遠高於內存,當 CPU 直接從內存中存取數據時要等待一定時間周期,而 Cache 則可以保存 CPU 剛用過或循環使用的一部分數據
如果 CPU 需要再次使用該部分數據時可從 Cache 中直接調用,這樣就避免了重復存取數據,減少了 CPU 的等待時間,因而提高了系統的效率。

cache 存儲速度比主存快,通過向 CPU 高速提供指令和數據,加快了程序的執行速度。

計算 cache 的命中率

  • 在一個程序執行期間,設\(N_c\)表示cache完成存取的總次數,\(N_m\)表示主存(memory)完成存取的總次數,h 定義為命中率(hit),則有
    \[h={{N_c} \over {N_c+N_m}}\]

  • \(t_c\)表示命中時的cache訪問時間,\(t_m\)表示未命中時的主存(memory)訪問時間,1-h 表示未命中率,則cache/主存系統的平均訪問(access)時間\(t_a\)為:
    \[t_a=ht_c+(1-h)t_m\]

  • \(r=t_m/t_c\)表示主存慢於 cache 的倍率(rate),e 表示訪問效率(efficiency),則有
    \[e={{t_c} \over {t_a}}={{t_c} \over {ht_c+(1-h)t_m}}={{1} \over {h+(1-h)r}}={{1} \over {r+(1-r)h}}\]

主存→cache的地址映射

主存→cache):為了把主存塊放到cache中,必須應用某種方法把主存地址定位到cache中,稱作地址映射
當中央處理器存取主存某一單元時,計算機硬件就自動地將包括該單元在內的那一組單元內容調入高速緩存

Cache 通常由相聯存儲器實現。相聯存儲器的每一個存儲塊都具有額外的存儲信息,稱為標簽(Tag)。當訪問相聯存儲器時,將地址和每一個標簽同時進行比較,從而對標簽相同的存儲塊進行訪問。

基礎知識:

  • cache 與主存之間的數據交換以“塊”為單位進行的。
    一個“塊”中包含若干個“字”,字長由實際情況確定。

    注意:習慣上,cache中的“塊”稱為“行”,主存中稱為“塊”
    cache的“行”與主存的“塊”存儲容量相同

  • 相聯存儲器(Content Addressed Memory, CAM)是一種不根據地址而是根據存儲內容來進行存取的存儲器,可以實現快速地查找塊表。
    既可以按照地址尋址也可以按照內容尋址(通常是某些字段),為了與傳統寄存器作區別,稱為按內容尋址的存儲器。
    下面所提到的標記(tag)存於該存儲器中。
  • cache 中的標記 tag 與 cache 的“行”一一對應的。
    如果某一塊主存數據塊拷貝到 cache 中的某一行,該 cache 行就會形成相應的標記 tag。

    思考:如果沒有按照存儲內容進行存取的相聯存儲器中的 tag,那么你將無法得知緩存 Cache 中存儲的到底是些什么東西。
    例子:比如說,我看個視頻,視頻中的某一段從我的主存中放到了我的緩存 Cache 中,tag 就會標記“XXX視頻”等信息(畢竟是按內容尋址,所以存這個內容就夠了),方便查找。
    如果不用 tag 標記的話,緩存里面有圖片、有文檔、有視頻這哪知道我正在看的視頻那部分的緩存放在哪了。

地址映射的方式有直接映射方式、全相聯映射方式、組相聯映射方式:

  • 直接映射方式:直接映射是一種多對一的映射關系,但一個主存塊只能拷貝到 cache 的一個特定行位置上去。
    cache的行號i和主存的塊號j有如下函數關系:
    \[i=j\ mod\ m\]

    式中:i為cache的行號,j為主存的塊號,m為cache中的總行數

    解釋:
    cache共4行

    組內編號為b0的主存塊如果需要拷貝至cache,只能放置到L0;
    b1只能拷貝到L1;b2只能拷貝到L2;b3只能拷貝到L3。
    如上圖所示,相同顏色的說明可以進行拷貝

  • 全相聯映射方式:在全相聯映射中,將主存中一個塊的地址與塊的內容一起存於 cache 的行中,其中塊地址存於 cache 行的標記部分中。

    因為它塊地址和塊內容一起保存,所以叫全相聯,它可使主存的一個塊直接拷貝到cache中的任意一行上,非常靈活。

    全相聯 cache 中,全部標記用相聯存儲器來實現,全部數據用一個 RAM 來實現。

  • 組相聯映射方式:將 cache 分成 u 組,每組 v 行。主存塊存放到哪個組是固定的,至於存到該組哪一行是靈活的。
    有如下函數關系:
    \[m=u*v\]
    \[組號q=j\ mod\ u\]

    式中:m為cache中的總行數,u為總組數,v為每組總行數;
    q為組號,j為主存的塊號,u為總組數。

    解釋:
    cache共 4 行,分為 2 組

    凡是組內編號為 b0 的主存塊,可以拷貝至 cache 的 G0 組,至於是2行中的哪一行,是隨機的無硬性規定的。
    依次類推,組內編號 b1 的主存塊可以拷貝至 G1 組。

  • 總結:
    • 直接映射方式中每一個內存塊只能放置到計算好的特定位置上。
    • 全相聯映射方式是整塊空間都可以放元素,元素放置的位置不固定
    • 組相聯映射方式則是要求每個內存塊只能放到固定的組中,但是在組中位置不固定

內存

RAM

隨機存取存儲器(Random Access Memory, RAM):我們不僅可以從中讀取數據,而且還可以寫入數據。但是機器電源關閉時,它中數據就會丟失。

RAM 是一種可讀/寫存儲器,其特點是存儲器的任何一個存儲單元的內容都可以隨機存取,而且存取時間與存取單元的物理位置無關。

計算機系統中的主存都采用這種隨機存儲器。

ROM

只讀存儲器(Read Only Memory, ROM):它是把數據或程序永久保存在其中,不能更改,只能讀取。即使機器斷電,數據也不會丟失。

只讀存儲器是能讀出其存儲的內容,而不能對其重新寫入的存儲器。
這種存儲器一旦存入了原始信息后,在程序執行過程中,只能將內部信息讀出,而不能隨意重新寫入新的信息去改變原始信息。

用途:通常它存放固定不變的程序、常數和漢字字庫,甚至用於操作系統的固化。

它與隨機存儲器可共同作為主存的一部分,統一構成主存的地址域。

指令系統

  • 復雜指令系統計算機(Complex Instruction Set Computer, CISC):采用一整套計算機指令進行操作的計算機。指令系統多達幾百條。
  • 精簡指令系統計算機(Reduced Instruction Set Computer, RISC):它精簡了指令集,只保留了那些常用的指令,降低了控制器設計的難度。

指令的格式

一條指令分為操作碼字段地址碼字段
根據一條指令中有幾個操作數地址,可將該指令稱為幾操作數指令幾地址指令

  • 零地址指令:指令中只有操作碼,沒有地址碼。
  • 一地址指令:只有一個地址碼,它指定一個操作數,另一個操作數地址是隱含的。
  • 二地址指令:常被稱為雙操作數指令,它有兩個地址碼字段\(A_1\)\(A_2\),分別指明參與操作的兩個數在內存或運算器中通用寄存器地址,其中地址\(A_1\)兼做存放操作結果的地址。
  • 三地址指令:有三個操作數地址\(A_1\),\(A_2\)\(A_3\)\(A_1\)為被操作數地址,\(A_2\)為操作數地址,\(A_3\)為存放操作結果的地址。

尋址方式

指令尋址

  • 順序尋址:由於指令地址在內存中按順序安排,當執行一段程序時,通常是一條指令接一條指令地順序進行。也就是說,從存儲器取出第一條指令,然后執行這條指令;接着從存儲器取出第二條指令,再執行第二條指令;接着再取出第三條指令。
    這種程序順序執行的過程,稱為指令的順序尋址方式。為此,必須使用程序計數器(又稱指令計數器)PC來計數指令的順序號,該順序號就是指令在內存中的地址。

    程序計數器(Program Counter, PC):用來存放當前欲執行指令的地址,它與主存的MAR之間有一條直接通路,且具有自加1的功能,即可形成下一條指令的地址。

  • 跳躍尋址:當程序轉移執行的順序時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址碼不是由程序計數器給出,而是由本條指令給出。

    注意:程序跳躍后,按新的指令地址開始順序執行
    因此,程序計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。

    用途:可以實現程序轉移或構成循環程序,從而能縮短程序長度,或將某些程序作為公共程序引用。指令系統中的各種條件轉移或無條件轉移指令,就是為了實現指令的跳躍尋址而設置的。

操作數尋址

  • 隱含尋址:在指令中不是明顯的給出操作數的地址,而是在指令中隱含着操作數的地址

    例如:單地址的指令格式,就不是明顯地在地址字段中指出第 2 操作數的地址,而是規定累加寄存器 AC 作為第 2 操作數地址
    指令格式明顯指出的僅是第 1 操作數的地址 D。
    因此,累加寄存器 AC 對單地址指令格式來說是隱含地址。如:DAA(涉及到匯編語言)(加法指令中隱含着操作數的地址

  • 立即尋址:指令的地址字段指出的不是操作數的地址,而是操作數本身
  • 直接尋址:在指令格式的地址字段中直接指出操作數在內存的地址
  • 間接尋址:指令地址字段中的形式地址不是操作數的真正地址,而是操作數地址的指示器

    指示器:其實就是指針,是一個始終指示某單元位置的地址寄存器。

  • 寄存器尋址:操作數不在內存中,而是放在 CPU 的通用寄存器中。指令中給出的操作數地址不是內存的地址單元號,而是通用寄存器的編號。
  • 寄存器間接尋址:指令中的寄存器內存不是操作數,而是操作數的地址
  • 偏移尋址:它要求指令中有兩個地址字段,其中一個為形式地址,另一個是指的是某個寄存器寄存器的內容加上形式地址以后就能得到有效地址
  • 段尋址:段寄存器中的地址左移 4 位后,加上某個寄存器中存儲的偏移量,即可得到所需的內存地址。
  • 堆棧尋址:數據存儲與棧頂地址有關,需要一個棧頂指示器。


  • 相對尋址方式:相對尋址是把程序計數器PC的內容加上指令格式中的形式地址D而形成操作數的有效地址。程序計數器的內容就是當前指令的地址。“相對”尋址,就是相對於當前的指令地址而言。采用相對尋址方式的好處是程序員無須用指令的絕對地址編程,因而所編程序可以放在內存的任何地方。

    指令格式:MOV AX,[BX+1200H] 操作數物理地址 PA=(DS/SS)*16H+EA EA=(BX/BP/SI/DI)+(6/8)位偏移量 Disp 對於 BX,SI,DI 寄存器來說段寄存器默認為 DS,對於 BP 來說,段寄存器默認為 SS

  • 基址尋址方式:在基址尋址方式中將 CPU 中的基址寄存器的內容,加上變址寄存器的內容而形成操作數的有效地址。基址尋址的優點是可以擴大尋址能力,因為與形式地址相比,基址寄存器的位數可以設置得很長,從而可以在較大的存儲空間中尋址。
  • 變址尋址方式:變址尋址方式與基址尋址方式計算有效地址的方法很相似,它把 CPU 中某個變址寄存器的內容與偏移量 D 相加來形成操作數有效地址。
    但使用變址尋址方式的目的不在於擴大尋址空間,而在於實現程序塊的規律變化。為此,必須使變址寄存器的內容實現有規律的變化(如自增 1、自減 1、乘比例系數)而不改變指令本身,從而使有效地址按變址寄存器的內容實現有規律的變化。
  • 塊尋址方式:
    塊尋址方式經常用在輸入輸出指令中,以實現外存儲器或外圍設備同內存之間的數據塊傳送。塊尋址方式在內存中還可用於數據塊移動。

中央處理器

CPU的基本結構

中央處理器(central processing unit, CPU)作為計算機系統的運算和控制核心,是信息處理、程序運行的最終執行單元。


CPU由控制器、運算器、cache 組成。

  • 控制器:由程序計數器、指令寄存器、指令譯碼器、時序產生器和操作控制器組成。
    它是發布命令的“決策機構”,即 完成協調和指揮整個計算機系統的操作。
    主要功能:
    • 從指令 cache 中取出一條指令,並指出下一條指令在 cache 中的位置。
    • 對指令進行譯碼或測試,並產生對應的操作控制信號,以便啟動規定的動作。
  • 運算器:由算術邏輯單元、通用寄存器、數據緩沖寄存器和狀態條件寄存器組成。
    它是數據加工處理部件。
    主要功能有:
    • 執行所有的算術運算
    • 執行所有的邏輯運算,並進行邏輯測試
  • 高級緩存(Cache):它是介於 CPU 與內存之間,常用有一級緩存(L1)、二級緩存(L2)、三級緩存(L3)(一般存在於 Intel 系列)。它的讀寫速度比內存還快,當 CPU 在內存中讀取或寫入數據時,數據會被保存在高級緩沖存儲器中,當下次訪問該數據時,CPU 直接讀取高級緩沖存儲器,而不是更慢的內存。

控制器

組合邏輯控制器

組合邏輯控制器:采用組合邏輯技術實現,其微操作信號發生器是由門電路組成的復雜樹形網絡構成的。

微程序控制器

科普:

  • 微命令:控制部件通過控制線向執行部件發出的各種控制命令。它構成控制信號的最小單元。
  • 微操作:執行部件接受微命令后所進行的操作。它是由微命令實現的最基本操作。
  • 微指令:在機器的一個 CPU 周期中,一組實現一定操作功能的微命令的組合。

    微地址:微指令的地址。

  • 微程序:實現一條機器指令功能的許多條微指令組成的序列。

總結:
程序由一組指令組成;
指令由一個微程序實現;
微程序由一組微指令實現;
微指令由一組微操作實現。

一層一層組裝:微命令→微指令→微程序=指令→程序

微程序控制器:是一種控制器,同組合邏輯控制器相比較,具有規整性、靈活性、可維護性等一系列優點,因而在計算機設計中逐漸取代了早期采用的組合邏輯控制器,並已被廣泛地應用。
在計算機系統中,微程序設計技術是利用軟件方法來設計硬件的一門技術。

微程序控制器:采用微程序控制方式的控制器。

微程序控制方式:是指微命令不是由組合邏輯電路產生的,而是由微指令譯碼產生。
一條機器指令往往分成幾步執行,將每一步操作所需的若干位命令以代碼形式編寫在一條微指令中,若干條微指令組成一段微程序,對應一條機器指令。
在設計 CPU 時,根據指令系統的需要,事先編制好各段微程序,且將它們存入一個專用存儲器(稱為控制存儲器)中。

微程序控制器主要由控制存儲器、微指令存儲器和地址轉移邏輯三大部分組成。

  • 控制存儲器:
    控制存儲器用來存放實現全部指令系統的微程序,它是一種只讀存儲器。若指令系統中有多少條機器指令,就有多少微程序。一旦微程序固化,機器運行時則只讀不寫。
    其工作過程是:
    • 每讀出一條微指令,則執行這條微指令;
      接着又讀出下一條微指令,又執行這一條微指令……。
      讀出一條微指令並執行微指令的時間總和稱為一個微指令周期。

      注意:通常,在串行方式的微程序控制器中,微指令周期就是只讀存儲器的工作周期。
      控制存儲器的字長就是微指令字的長度,其存儲容量視機器指令系統而定,即 取決於微程序的數量。
      對控制存儲器的要求是速度快,讀出周期要短。

  • 微指令寄存器:
    微指令寄存器用來存放由控制存儲器讀出的一條微指令信息。其中微地址寄存器決定將要訪問的下一條微指令的地址,而微命令寄存器則保存一條微指令的操作控制字段和判別測試字段的信息。
  • 地址轉移邏輯:
    在一般情況下,微指令由控制存儲器讀出后直接給出下一條微指令的地址,通常我們簡稱微地址,這個微地址信息就存放在微地址寄存器中。
    如果微程序不出現分支,那么下一條微指令的地址就直接由微地址寄存器給出。
    當微程序出現分支時,意味着微程序出現條件轉移。在這種情況下,通過判別測試字段 P 和執行部件的“狀態條件”反饋信息,去修改微地址寄存器的內容,並按改好的內容去讀下一條微指令。地址轉移邏輯就承擔自動完成修改微地址的任務。

兩者差別

  • 組合邏輯控制器采用組合邏輯技術實現,其微操作信號發生器是由門電路組成的復雜樹形網絡構成的。
  • 微程序控制器采用存儲邏輯實現,將微操作控制信號以編碼字(即 微指令)的形式存放在控制存儲器中。執行指令時,通過依次讀取一條條微指令,產生一組組操作控制信號,控制有關功能部件完成一組組微操作。

    微程序控制器的設計思想和組合邏輯設計思想截然不同。
    它具有設計規整,調試、維修以及更改、擴充指令方便的優點,易於實現自動化設計。但是,由於它增加了一級控制存儲器,所以指令的執行速度比組合邏輯控制器慢。

其實微程序控制器其實就是將組合邏輯控制器的操作控制信號分解成更小的步驟。

類比:如果我們需要將桌子上的咖喱放入冰箱。(別問為什么是咖喱,因為我喜歡。。)
組合邏輯控制器:操作控制信號——將桌子上的咖喱放入冰箱。
微程序控制器:微指令——拿起來、走過去、放進去。
這兩者都能使我們將桌子上的咖喱放入冰箱,但是組合邏輯控制器一步完成,更加連貫快捷;
而微程序控制器雖然慢一些,但是易於擴展,比如我們要把火鍋放進冰箱,微程序控制器就更容易擴展做到,而組合邏輯控制器要從頭設計。

CPU 指令流水線

指令執行過程分為多個階段,每個階段需要的資源不一樣,因此可以采用流水線技術,同時執行多條指令的不同階段。

  • CPU指令流水線:將一個重復的時序過程分解成多個子過程 Subprocess。每個子過程都可有效地在其專用功能段上與其他子過程同時執行。

    例如:分成四個功能段

影響流水線性能的因素:(沖突)

  • 資源相關:指多條指令進入流水線后在同一機器時鍾周期內爭用同一個功能部件所發生的沖突,那么這兩條指令就是資源相關的。
  • 數據相關:在一個程序中,如果必須要等前一條指令執行完畢后,才能執行后一條指令,那么這兩條指令就是數據相關的。
  • 控制相關:控制相關沖突是由轉移指令引起的。當執行轉移指令時,依據條件的產生結果,可能為順序取下條指令,也可能轉移到新的目標地址取指令,從而使流水線發生斷流。

采用以下方法來減少轉移指令對流水線性能的影響:

  • 延遲轉移法:由編譯程序重新排指令序列來實現。
    基本思想是:
    • “先執行再轉移”:
      發生轉移指令(轉移取)時並不排空指令流水線,而是讓緊跟在轉移指令lb之后已進入流水線的少數幾條指令繼續完成
      如果這些指令是與Ib結果無關的有用指令,那么延遲損失時間片正好得到了有效的利用。
  • 轉移預測法:用硬件方法來實現,依據指令過去的行為來預測將來的行為。
    基本思想是:
    • 通過使用轉移取(指令)順序取(指令)兩路指令預取隊列器以及目標指令 cache,可將轉移預測提前到取指階段進行,以獲得良好的效果。

控制方式

控制器的控制方法:控制不同操作序列時序信號的方法。

常見的有同步控制、異步控制、聯合控制三種方式,其實質反映了時序信號的定時方式

  • 同步控制方式:在任何情況下,已定的指令在執行時所需的機器周期數和時鍾周期數都是固定不變的。
    根據不同的情況,同步控制方式可選取如下方案:
    • 采用完全統一的機器周期執行各種不同的指令:這意味着所有指令周期具有相同的節拍電位數和相同的節拍脈沖數。

      顯然,對簡單指令和簡單操作來說,將造成時間浪費。

    • 采用不定長機器周期:將大多數操作在較短機器的周期完成,對一些時間緊張的操作,則采取延長機器周期的辦法。
    • 中央控制與局部控制結合:
      • 中央控制:將大部分指令安排在固定的機器周期完成。
      • 局部控制:對少數復雜指令(乘、除、浮點運算)采用那個另外的時序進行定時。
  • 異步控制方式:每條指令、每個操作控制信號需要多少時間就占用多少時間
    用這種方式形成的操作序列沒有固定的 CPU 周期數(節拍電位)或者嚴格的時鍾周期(節拍脈沖)與之同步。

    注意:這意味着每條指令的指令周期可由多少不等的機器周期數組成;
    也可以是當控制器發出某一操作控制信號后,等待執行播講完成操作后發回“回答”信號,再開始新的操作。

  • 聯合控制方式:同步控制方式和異步控制方式結合。
    一種情況是,大部分操作序列安排在固定的機器周期中;
    對某些時間難以確定的操作,則以執行部件的“回答”信號作為本次操作的結束。

    注意:同步控制方式要求了每個指令只能是固定的機器周期數,即 指令的時間是機器周期的倍數,經過對應的時間周期就意味着指令執行完了。
    異步則沒有這個要求,每個指令需要多少時間就占用多少時間,發出對應信號才意味着執行完畢。

總線的作用

總線(bus):是構成計算機系統的互聯機構,是多個系統功能部件之間進行數據傳送的公共通路。

總線分為如下三類:

  • 內部總線:CPU-寄存器)CPU 內部連接各寄存器及運算部件之間的總線。
  • 系統總線:CPU-功能部件)CPU同計算機系統的其他高速功能部件相互連接的總線。
  • I/O總線:CPU-I/O設備)CPU 同 I/O 設備之間互相連接的總線。

輸入輸出系統

磁盤的結構

  • 硬磁盤存儲器:由磁盤驅動器、磁盤控制器和盤片三大部分組成。
  • 磁盤驅動器:包括主軸、定位驅動、數據控制三個部分。
    • 主軸:受傳動機構控制,可使磁盤組作高速運動。
    • 定位驅動系統:可以驅動磁頭沿盤面徑向指定位置運動,以尋找目標磁道位置。
    • 數據控制:完成數據轉換和讀/寫控制操作。
  • 磁盤控制器:是主機和磁盤驅動器的接口。它接受主機發來的命令,將它轉換成磁盤驅動器的控制命令,實現主機和驅動器之間的數據格式轉換和數據傳送,並控制驅動器的讀/寫。
  • 盤片:盤片是存儲信息的載體。
  • 磁頭:由軟磁材料做鐵芯繞有讀寫線圈的電磁鐵。寫入時利用磁頭來使盤片具有不同的磁化狀態,讀取時又利用磁頭來判別這些不同的磁化狀態。
  • 磁道:通常將磁盤片表面稱為記錄面。記錄面上一系列同心圓稱為磁道。
  • 扇區:將磁道划分為若干個小的區段,這個區段就被稱為扇區。

磁盤操作時間:包括尋道時間、延遲時間和傳輸時間。

  • 尋道時間:指將磁頭移動到指定磁道所需要花費的時間。
  • 延遲時間:指磁頭定位到某一磁道的扇區所需要的時間。
  • 傳輸時間:指從磁盤讀出或者向磁盤寫入數據所經歷的時間。

中斷響應過程

中斷響應過程包括保護現場、獲取入口地址、中斷返回恢復現場這樣三個步驟。

  1. 當中斷處理的 CPU 控制權轉移涉及特權級改變時,必須把當前的 SS 和 ESP 兩個寄存器的內容壓入系統堆棧予以保存;
  2. 將標志寄存器 EFLAGS 的內容也壓入堆棧;
  3. 消除標志觸發器 TF 和 IF;
  4. 當前的代碼段寄存器 CS 和指令寄指針EIP也壓入此堆棧;
  5. 如果中斷發送伴隨有錯誤碼,則錯誤碼也壓入此堆棧;
  6. 完成上述終端現場保護后,從中斷向量號獲取的中斷服務子程序入口地址分別為裝入 CS 和 EIP,開始執行中斷服務子程序;
  7. 中斷服務子程序最后的 IRET 指令使中斷返回。保存在堆棧中的中斷現場信息被恢復,並由終端點繼續執行原程序;

DMA 傳送方式

DMA(Direct Memory Access,直接內存存取):是指外部設備不通過CPU,而直接與系統內存交換數據的接口技術。
DMA 是所有現代電腦的重要特色,它允許不同速度的硬件裝置來溝通,而不需要依賴於 CPU 的大量中斷負載;
否則,CPU 需要從來源把每一片段的資料復制到暫存器,然后把它們再次寫回到新的地方。在這個時間中,CPU 對於其他的工作來說就無法使用。

  • 在 DMA 方式中,一批數據傳送前的准備工作,以及傳送結束后的處理工作,均為管理程序承擔,而DMA控制器僅負責數據傳送的工作。

DMA 方式基本流程:

  1. 從外圍設備發出 DMA 請求
  2. CPU 響應請求,把 CPU 工作改成 DMA 操作方式DMA控制器從 CPU 接管總線的控制;
  3. DMA控制器對內存尋址,並執行數據傳送,向 CPU 報告 DMA 操作結束。

DMA 和CPU 分時使用內存采用如下方式:

  • 停止 CPU 訪問內存
  • 周期挪用
  • DMA 與 CPU 交替訪問內存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM