日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

哈工大刘宏伟《计算机组成原理》课程框架总结

發布時間:2023/12/31 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 哈工大刘宏伟《计算机组成原理》课程框架总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

哈工大劉宏偉老師的《計算機組成原理》采用自頂向下方法,系統介紹了計算機各個基本部件的體系結構、邏輯實現、控制方式。(一定數電基礎是必要的,如果了解匯編更有助于理解部分內容)

B站鏈接計算機組成原理——哈工大劉宏偉(B站)

慕課鏈接(上)計算機組成原理——哈工大劉宏偉(慕課上)

慕課鏈接(下)計算機組成原理——哈工大劉宏偉(慕課下)

本文是筆者聽完全部課程后結合自己的理解,試圖用盡可能通俗的語言,描述課程的框架,摘附主要的構圖進行填充,非詳細的課程筆記。


(引入)首先看一下馮-諾依曼計算機的硬件組成(5大部分):

  • 控制器(CU)

  • 運算器(ALU)

  • 存儲器

  • 輸入設備

  • 輸出設備

(圖中實線代表數據,虛線代表控制信號)

?

接下來進行兩步處理:

1、控制器CU + 運算器ALU = 中央處理器CPU

2、CPU、存儲器、I/O設備之間的通信載體抽象為系統總線

?

一、我們提煉出對計算機組成的抽象:

說明:內容重點介紹存儲器和I/O設備,其中一些DRAM和SRAM實現原理相關的內容需要有一定的數字電路基礎才能理解,本文未對其中細節展開描述。

其中各部件的布局:

(1)關于存儲器

存儲器的基本結構由三部分組成:

  • 存儲體
  • 地址寄存器MAR(反映存儲單元個數)
  • 數據寄存器MDR(反映存儲字長)

根據作用不同,存儲器分為三類:

  • 主存
  • 緩存
  • 輔存

原始的計算機只有CPU和主存結構,隨著計算機的發展,逐漸設計實線了如圖的多級層次化結構。

關于緩存:現代計算機運行速度的瓶頸是訪存速度,在CPU和主存之間加入訪存速度更快的緩存,可以提高CPU使用效率,整體提高計算機運算速度,當然,緩存的經濟成本高于主存,存儲實現方式不同(后續介紹)。

關于輔存:提高數據存儲量,迎合時代需要,缺點是CPU不能直接訪問緩存,需要嵌入主存加載訪存的過程,處理速度慢。

不同原理的存儲器根據特性的不同部署在存儲體系的不同層次中,但也不是嚴格一一對應的,根據不同規格的計算機有一定差別,一般情況下:

  • CPU內部寄存器:靜態RAM
  • 緩存(可以有多級緩存,高級緩存可設計在CPU內部):靜態RAM
  • 主存:動態RAM(用于存儲數據)、ROM(用于存儲系統程序)

(2)關于I/O設備

首先看一下I/O設備連接到I/O總線的方式:

主要包括4條線路:

  • 設備選擇線
  • 命令線
  • 狀態線
  • 數據線

I/O設備的控制方式分為3種:

  • 程序查詢方式(串行)
  • 程序中斷方式(并行)
  • DMA方式(并行)

我們主要了解程序中斷方式和DMA方式。

(1.1)程序中斷方式

程序中斷方式的I/O接口電路:

以CPU讀命令為例簡述響應過程:

(1.1.1)CPU發布“對某個地址的I/O設備的讀命令”

設備選擇電路從地址總線讀取地址,若地址就是本I/O接口的地址,發出SEL信號;

命令譯碼器同時接受到來自CPU的啟動命令SEL信號,發出啟動命令,通過觸發器B啟動設備。

(1.1.2)I/O設備為執行讀命令做準備

將要讀的存儲單元的數據寫入緩存器DBR

寫入完畢后,觸發器B置0,觸發器D置1

(1.1.3)I/O接口對CPU發出中斷請求信號

中斷屏蔽器MASK(由CPU控制)給出信號允許中斷請求,當接收到CPU發出的中斷查詢信號,通過總線向CPU發出中斷請求信號INTR

(1.1.4)I/O設備經由排隊器(這里使用鏈式排隊器)確定中斷響應的優先次序

由簡單的非門和與門電路搭建,圖中4個I/O設備優先級為1>2>3>4

若此時無更高優先級的I/O設備同時發出中斷請求信號,則允許該設備響應中斷

(1.1.5)I/O接口執行中斷響應

當接收到CPU發出的中斷響應INTA信號,且排隊器判優允許,則進入設備編碼器,形成中斷向量地址(指示是哪一個I/O設備在執行中斷響應)

(1.2)DMA方式

DMA方式的I/O接口電路:

其中:

  • AR:地址寄存器
  • WC:計數器(記錄傳輸數據量)
  • BR:數據寄存器
  • DAR:設備地址寄存器

以CPU讀命令為例簡述響應過程:

  • 設備將欲傳的第一個數據輸入到DR
  • 設備DMA控制邏輯發送DREQ請求
  • DMA控制邏輯控制總線發送HRQ請求
  • 控制總線DMA控制邏輯發送HLDA響應
  • AR地址總線發送欲訪問的內存地址
  • DMA控制邏輯設備發送DACK響應
  • BR數據總線發送欲傳的第一個數據,同時AR+1,WC+1(為下一個數據的傳輸做準備)
  • 循環步驟1-7,直至WC中斷機構發出溢出信號
  • 中斷機構控制總線發送中斷信號
  • (1.3)程序中斷方式和DMA方式的比較

    (3)關于總線

    總線=控制總線+地址總線+控制總線,各個中心的功能顧名思義,很好理解,這部分內容已經夾雜在存儲器和I/O設備的接口電路中進行介紹。

    ?

    二、對CPU部分進行細化(自頂向下):

    (1)關于ALU

    說明:這部分主要結合二進制數的無符號數、有符號數、原碼、補碼、反碼、移碼、定點表示、浮點表示相關的知識,介紹ALU實現算術移位、加減法運算、乘除法運算的具體過程和數字邏輯硬件實現方法,篇幅較大,難度也不太高,這里不作展開。

    (2)關于寄存器

    (2.1)用戶可見的寄存器

    • 通用寄存器:存放操作數(如8086中的AX、BX)
    • 數據寄存器:存放操作數
    • 地址寄存器:存放地址
    • 條件碼寄存器:存放條件嗎,可作為程序分支的依據(如溢出、進位等)

    (2.2)用戶不可見的寄存器

    • 控制寄存器:控制CPU操作
    • 狀態寄存器:存放狀態字

    (3)關于指令

    (3.1)指令格式:操作碼 + 地址碼

    操作類型:

    • 數據傳送:MOVE STORE LOAD PUSH POP
    • 算術邏輯運算:ADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST
    • 移位操作
    • 轉移:JMP JZ JO JC SKP
    • 輸入輸出:IN OUT

    尋址方式:

    • 立即尋址:OP # A
    • 直接尋址:EA = A
    • 相對尋址:EA = (PC) + A
    • 間接尋址:EA = (A)
    • 寄存器尋址:EA = Ri
    • 寄存器間接尋址:EA = (Ri)
    • 基址尋址:EA = (BR) + A
    • 變址尋址:EA = (IX) + A
    • 堆棧尋址
    • 隱含尋址:ADD 尋址特征 A

    (3.2)指令周期

    四種情況:

    1、不需要訪存(如:NOP)

    2、需要訪存(如:ADD)

    執行周期長度根據執行內容決定(如:MUL)

    3、需要間址尋址

    4、帶有中斷指令

    (3.2.1)取指周期

    具體過程:

  • PC -> MAR -> 地址總線 -> 存儲器(內存地址)
  • CE -> 控制總線 -> 存儲器(讀命令)
  • 存儲器 -> 數據總線 -> MDR -> IR(指令內容)
  • CU + 1 -> PC(準備讀下一條指令)
  • (3.2.2)間址周期

    具體過程:

    • MDR -> MAR -> 地址總線 -> 存儲器(內存地址)
    • CU -> 控制總線 -> 存儲器(讀命令)
    • 存儲器 -> 數據總線 -> MDR(下一條指令的實際地址)

    (3.2.3)執行周期

    情況根據具體的執行內容決定。

    (3.2.4)中斷周期

    具體過程:

    • CU -> MAR -> 地址總線 -> 存儲器(欲保存斷點的內存地址)
    • CU -> 控制總線 -> 存儲器(寫命令)
    • PC -> MDR -> 數據總線 -> 存儲器(中斷之后要恢復的指令內容)
    • CU -> PC(中斷程序的入口地址)

    ?

    三、對CU部分的細化(自頂向下):

    說明:這部分講述加入了時鐘,重點理解操作執行的時序問題。

    (1)CU的功能

    輸入信號:

  • 時鐘:一個時鐘脈沖發一個操作命令或一組可并行的操作命令
  • 指令寄存器:控制信號(與指令的標志碼有關 OP(IR) -> CU)
  • 標志:CU受標志控制
  • 來自系統總線的信號:如中斷請求INTR、總線請求HRQ
  • 輸出信號:

  • CPU內部的各種控制信號:如Ri -> Rj、(PC) + 1 -> PC、ALU的算術運算
  • 傳送至控制總線的信號:如讀寫命令、中斷響應信號INTA、總線響應信號HLDA
  • 注:若干個時鐘周期組成一個機器周期(圖示4個時鐘周期組成一個機器周期),每個時鐘周期(也稱節拍)執行一條或一組可并行的指令。

    (2)CU設計方法一:組合邏輯設計

    完全使用硬件即可完成設計,運行速度快,不過結構較為龐雜,不易于調試和修改,適用于RISK(精簡指令集)。

    對前文提到的一些簡單指令,根據各個指令的特性,設計每一個指令在一個機器周期內的各個節拍(T0-T2)上的操作(這部分內容較多,而有了之前章的基礎也很容易理解,不在這里具體展開)。

    將各個指令在每個節拍下的操作內容,列出具體的時序關系表:

    寫出邏輯關系表達式(以M(MAR) -> MDR操作為例):

    根據邏輯表達式可以繪制出邏輯圖:

    (3)CU設計方法二:微程序設計

    核心思想和上述方法類似,實現方法利用軟件,用存儲邏輯替代數字電路邏輯,增加了譯碼等操作。這里僅附原理圖,不做展開。

    基本控制單元框圖:

    機器指令對應的微程序:

    最終形成的微程序碼點:

    總結

    以上是生活随笔為你收集整理的哈工大刘宏伟《计算机组成原理》课程框架总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。