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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5.中央处理器

發(fā)布時(shí)間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.中央处理器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

考綱內(nèi)容

  • CPU的功能和基本結(jié)構(gòu)
  • 指令執(zhí)行過程
  • 數(shù)據(jù)通路的功能和基本結(jié)構(gòu)
  • 控制器的功能和工作原理
    • 硬布線控制器
    • 微程序控制器
      • 微程序、微指令和微命令、微指令格式
      • 微命令的編碼方式
      • 微地址的形成方式
  • 指令流水線
    • 指令流水線的概念
    • 指令流水線的基本實(shí)現(xiàn)
    • 超標(biāo)量和動(dòng)態(tài)流水線的基本概念

1. CPU的功能和基本結(jié)構(gòu)

1. CPU的功能

  • CPU由運(yùn)算器和控制器組成
    • 控制器:負(fù)責(zé)協(xié)調(diào)并控制計(jì)算機(jī)各部件執(zhí)行程序的指令序列,包括取指令、分析指令和執(zhí)行指令
    • 運(yùn)算器對(duì)數(shù)據(jù)進(jìn)行加工
  • CPU具體功能
    • 指令控制:完成取指令、分析指令和執(zhí)行指令的操作,即程序的順序控制
    • 操作控制:CPU管理并產(chǎn)生由內(nèi)存取出的每條指令的操作信號(hào),把各種操作信號(hào)送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作
    • 時(shí)間控制:為每條指令按時(shí)間順序提供應(yīng)有的控制信號(hào)
    • 數(shù)據(jù)加工:對(duì)數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算
    • 中斷處理:對(duì)計(jì)算機(jī)運(yùn)行過程中出現(xiàn)的異常情況和特殊請(qǐng)求進(jìn)行處理

2. CPU的基本結(jié)構(gòu)

1. 運(yùn)算器
  • 任務(wù):接收從控制器送來的命令并執(zhí)行相應(yīng)的動(dòng)作,對(duì)數(shù)據(jù)進(jìn)行加工和處理
  • 組成
    • 算術(shù)邏輯單元(ALU):進(jìn)行算術(shù)/邏輯運(yùn)算
    • 暫存寄存器:暫存從主存讀來的數(shù)據(jù)(不能放在通用寄存器中,否則會(huì)破壞其原有內(nèi)容),對(duì)應(yīng)用程序員透明
    • 累加寄存器(ACC):暫存ALU運(yùn)算的結(jié)果信息,可以作為加法運(yùn)算的 一個(gè)輸入端
    • 通用寄存器組:存放操作數(shù)(源操作數(shù)、目的操作數(shù)及中間結(jié)果)和各種地址信息等。如AX、BX、SP(堆棧指針,指示棧頂?shù)牡刂?#xff09;等,其位數(shù)等于機(jī)器字長(zhǎng)
    • 程序狀態(tài)字寄存器(PSW):保留由算術(shù)邏輯運(yùn)算指令或測(cè)試指令的結(jié)果而建立的各種狀態(tài)信息。如溢出標(biāo)志(CF)、符號(hào)標(biāo)志(SF)、零標(biāo)志(ZF)、進(jìn)位標(biāo)志(CF)等
    • 移位器:對(duì)操作數(shù)或運(yùn)算結(jié)果進(jìn)行移位運(yùn)算
    • 計(jì)數(shù)器:控制乘除運(yùn)算的操作步數(shù)
2. 控制器
  • 任務(wù):執(zhí)行指令,每條指令的執(zhí)行是由控制器發(fā)出的一組微操作實(shí)現(xiàn)的
  • 組成
    • 程序計(jì)數(shù)器(PC):指出下一條指令在主存中的存放地址,有自增功能,其位數(shù)取決于存儲(chǔ)器的容量(指令條數(shù))
    • 指令寄存器(IR):保存當(dāng)前正在執(zhí)行的指令,其位數(shù)等于指令字長(zhǎng)
    • 指令譯碼器(ID):對(duì)操作碼字段進(jìn)行譯碼,向控制器提供特定的操作信號(hào)
    • 存儲(chǔ)器地址寄存器(MAR):存放要訪問的主存單元的地址,其位數(shù)取決于存儲(chǔ)器容量
    • 存儲(chǔ)器數(shù)據(jù)寄存器(MDR):存放向主存寫入的信息或從主存讀出的信息,其位數(shù)等于存儲(chǔ)字長(zhǎng)
    • 時(shí)序系統(tǒng):產(chǎn)生各種時(shí)序信號(hào),由統(tǒng)一時(shí)鐘(CLOCK)分頻得到
    • 微操作信號(hào)發(fā)生器:根據(jù)IR的內(nèi)容(指令)、PSW的內(nèi)容(狀態(tài)信息)及時(shí)序信號(hào),產(chǎn)生當(dāng)前計(jì)算機(jī)各部件要用到的控制信號(hào)。分為組合邏輯型和存儲(chǔ)邏輯型兩種
3. 寄存器的透明度
  • 用戶可見
    • 移位器
    • 通用寄存器組
    • 程序狀態(tài)字寄存器(PSW)
    • 程序計(jì)數(shù)器(PC)
  • 用戶不可見
    • 存儲(chǔ)器地址寄存器(MAR)
    • 存儲(chǔ)器數(shù)據(jù)寄存器(MDR)
    • 指令寄存器(IR)
    • 暫存寄存器

2. 指令執(zhí)行過程

1. 指令周期

  • 定義:CPU從主存中取出并執(zhí)行一條指令的時(shí)間
  • 組成
    • 取指周期:取指令,一次訪存
      • 取出的是指令,以此區(qū)分指令和數(shù)據(jù)
    • 間址周期:取有效地址,一次訪存
    • 執(zhí)行周期:取操作數(shù),一次訪存
      • 取出的是操作數(shù),以此區(qū)分指令和數(shù)據(jù)
    • 中斷周期:保存程序斷點(diǎn),一次訪存
      • 進(jìn)棧操作是將SP-1(計(jì)算機(jī)的堆棧中向低地址增加)
      • 有中斷請(qǐng)求,才會(huì)進(jìn)入中斷周期

  • 實(shí)現(xiàn)
    • CPU內(nèi)設(shè)置4個(gè)標(biāo)志觸發(fā)器“1”表示有效
    • FE——取指周期
    • IND——間址周期
    • EX——執(zhí)行周期
    • INT——中斷周期
  • 特點(diǎn)
    • 機(jī)器周期:完成一個(gè)基本操作所需的時(shí)間
    • 時(shí)鐘周期(節(jié)拍脈沖、T周期):完成一個(gè)最基本的動(dòng)作所需的時(shí)間
    • 1個(gè)指令周期 = n個(gè)機(jī)器周期,1個(gè)機(jī)器周期 = n個(gè)時(shí)鐘周期
    • 每個(gè)指令周期內(nèi)的機(jī)器周期數(shù)可以不等,每個(gè)機(jī)器周期內(nèi)的節(jié)拍數(shù)也可以不等

2. 指令周期的數(shù)據(jù)流

  • 數(shù)據(jù)流:根據(jù)指令要求依次訪問的數(shù)據(jù)序列
1. 取指周期
  • 任務(wù):根據(jù)PC中的內(nèi)容從主存中取出指令代碼(控制器自動(dòng)進(jìn)行)并存放在IR中
  • 數(shù)據(jù)流向
2. 間址周期
  • 任務(wù):取操作數(shù)有效地址。以一次間址為例,將指令中的地址碼送到MAR并送至地址總線,此后CU向存儲(chǔ)器發(fā)讀命令,以獲取有效地址并存至MDR
  • 數(shù)據(jù)流向
3. 執(zhí)行周期
  • 任務(wù):根據(jù)IR中的指令字的操作碼和操作數(shù)通過ALU操作產(chǎn)生執(zhí)行結(jié)果
  • 數(shù)據(jù)流向:不同指令的執(zhí)行周期操作不同,沒有統(tǒng)一的數(shù)據(jù)流向
4. 中斷周期
  • 任務(wù):處理中斷請(qǐng)求
  • 數(shù)據(jù)流向
  • 進(jìn)棧操作:先修改棧頂指針,后存入數(shù)據(jù)

3. 數(shù)據(jù)通路的功能和基本結(jié)構(gòu)

1. 數(shù)據(jù)通路的功能

  • 數(shù)據(jù)通路:數(shù)據(jù)在功能部件之間傳送的路徑
  • 數(shù)據(jù)通路部件:路徑上的部件
  • 功能(執(zhí)行)部件:數(shù)據(jù)通路中專門進(jìn)行數(shù)據(jù)運(yùn)算的部件
  • 功能:實(shí)現(xiàn)CPU內(nèi)部的運(yùn)算器與寄存器之間的數(shù)據(jù)交換

2. 基本結(jié)構(gòu)

1. 三種類型
  • CPU內(nèi)部單總線方式:將所有寄存器的輸入端和輸出端都連接到一條公共通路上
    • 特點(diǎn)
      • 簡(jiǎn)單,但存在較多的沖突現(xiàn)象,性能較低(一個(gè)時(shí)鐘周期只能傳送一個(gè)數(shù)據(jù))
      • ALU要配合暫存寄存器使用
  • CPU內(nèi)部三總線方式:將所有寄存器的輸入端都連接到多條公共通路上
    • 特點(diǎn):多個(gè)總線上傳送不同的數(shù)據(jù),提高效率
  • 專用數(shù)據(jù)通路方式:根據(jù)指令執(zhí)行過程中的數(shù)據(jù)和地址的流動(dòng)方向安排連接線路,避免使用共享總線
    • 特點(diǎn):性能較高,但硬件量大(多路選擇與三態(tài)門實(shí)現(xiàn))

  • 注意
    • 內(nèi)部總線同一部件內(nèi)的總線
    • 系統(tǒng)總線:同一臺(tái)計(jì)算機(jī)系統(tǒng)的各部件間的總線

4. 控制器的功能和工作原理

1. 控制器的結(jié)構(gòu)和功能

  • 連接關(guān)系
    • 運(yùn)算器部件通過數(shù)據(jù)總線與內(nèi)存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備傳送數(shù)據(jù)
    • 輸入設(shè)備和輸出設(shè)備通過接口電路與總線相連接
    • 內(nèi)存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備從地址總線接收地址信息,從控制總線得到控制信號(hào),通過數(shù)據(jù)總線與其他部件傳送數(shù)據(jù)
    • 控制器部件從數(shù)據(jù)總線接收指令信息,從運(yùn)算器部件接收指令轉(zhuǎn)移地址,送出指令地址到地址總線,還要向系統(tǒng)中的部件提供它們運(yùn)行所需要的控制信號(hào)
  • 控制器的主要功能
    • 從主存中取出一條指令,并指出下一條指令在主存中的位置
    • 對(duì)指令進(jìn)行譯碼或測(cè)試,產(chǎn)生相應(yīng)的操作控制信號(hào),以便啟動(dòng)規(guī)定的動(dòng)作
    • 指揮并控制CPU、主存、輸入和輸出設(shè)備之間的數(shù)據(jù)流動(dòng)方向

2. 硬布線控制器

  • 基本原理:根據(jù)指令的要求、當(dāng)前的時(shí)序及外部和內(nèi)部的狀態(tài),按時(shí)間的順序發(fā)送一系列微操作控制信號(hào)
  • 實(shí)現(xiàn):由復(fù)雜的組合邏輯門電路和一些觸發(fā)器構(gòu)成
  • 特點(diǎn)
    • 指令越多,設(shè)計(jì)和實(shí)現(xiàn)就越復(fù)雜,一般用于RISC
    • 擴(kuò)充一條新的指令,控制器的設(shè)計(jì)就要大改,擴(kuò)充指令困難
    • 執(zhí)行速度很快,微操作信號(hào)由組合邏輯電路即時(shí)產(chǎn)生
1. 硬布線控制單元圖
  • 指令的操作碼是決定控制單元發(fā)出不同操作命令(控制信號(hào))的關(guān)鍵
  • CU輸入:操作碼譯碼電路ID、節(jié)拍發(fā)生器、狀態(tài)標(biāo)志、系統(tǒng)(控制)總線
  • CU輸出:CPU內(nèi)部或外部控制總線
2. 時(shí)序系統(tǒng)及微操作
  • 取指周期
    (PC)→\rightarrow MAR
    1→\rightarrowR
    M(MAR)→\rightarrowMDR
    MDR→\rightarrowIR
    OP(IR)→\rightarrowID
    (PC)+1→\rightarrowPC
  • 間址周期
    Ad(IR)→\rightarrowMAR
    1→\rightarrowR
    M(MAR)→\rightarrowMDR
  • 執(zhí)行周期
    • CLA——清ACC
      0→\rightarrowACC
    • COM——取反
      ACC ̄→ACC\overline{ACC}\rightarrow ACCACCACC
    • LDA X——取數(shù)指令
      Ad(IR)→\rightarrowMAR
      1→\rightarrowR
      M(MAR)→\rightarrowMDR
      MDR→\rightarrowACC
    • JMP X——無條件轉(zhuǎn)移
      Ad(IR)→\rightarrowPC
    • BAN X——條件轉(zhuǎn)移,ACC為負(fù)時(shí)轉(zhuǎn)移
      A0?Ad(IR)+A0 ̄?(PC)→PCA_0·Ad(IR)+\overline{A_0}·(PC)\rightarrow PCA0??Ad(IR)+A0???(PC)PC
3. 硬布線控制單元設(shè)計(jì)步驟
  • 設(shè)計(jì)原則
    • 微操作的先后順序不得隨意更改
    • 被控對(duì)象不同的微操作,盡量安排在一個(gè)節(jié)拍內(nèi)完成
    • 占用時(shí)間較短的微操作,盡量安排在一個(gè)節(jié)拍內(nèi)完成,并允許有先后順序
1. 分析每個(gè)階段的微操作序列(取指、間址、執(zhí)行、中斷四個(gè)階段)

2. 選擇CPU的控制方式
  • 控制單元控制一條指令執(zhí)行的過程,實(shí)質(zhì)上是依次執(zhí)行一個(gè)確定的微操作序列的過程
  • 每條指令和每個(gè)微操作所需的執(zhí)行時(shí)間不同
  • 分類
    • 同步控制方式:采取完全統(tǒng)一的、具有相同時(shí)間間隔和相同數(shù)目的節(jié)拍作為機(jī)器周期來運(yùn)行不同的指令
    • 異步控制方式:各部件按自身固有的速度工作,通過應(yīng)答方式進(jìn)行聯(lián)絡(luò)
    • 聯(lián)合控制方式大部分采用同步控制,小部分采用異步控制
3. 安排微操作時(shí)序
  • 取指周期
  • 間址周期
  • 執(zhí)行周期
  • 中斷周期
4. 電路設(shè)計(jì)
  • 列出操作時(shí)間表
  • 寫出微操作命令的最簡(jiǎn)表達(dá)式
  • 畫出邏輯圖
  • 3. 微程序控制器

    • 實(shí)現(xiàn):采用存儲(chǔ)邏輯實(shí)現(xiàn),把微操作信號(hào)代碼化,使每條機(jī)器指令轉(zhuǎn)化為一段微程序并存入一個(gè)專門的存儲(chǔ)器(控制存儲(chǔ)器)中,微操作控制信號(hào)由微指令產(chǎn)生
    1. 微程序控制的基本概念
    • 設(shè)計(jì)思想:將每條機(jī)器指令編寫成一個(gè)微程序,每個(gè)微程序包含若干微指令,每條微指令對(duì)應(yīng)一個(gè)或幾個(gè)微操作命令
    • 微操作:計(jì)算機(jī)中最基本的、不可再分解的操作
    • 微命令:微程序控制的計(jì)算機(jī)中,控制部件向執(zhí)行部件發(fā)出的各種控制命令(構(gòu)成控制序列的最小單位)
    • 相容性微命令:可以同時(shí)產(chǎn)生、共同完成某一些微操作的微命令
    • 互斥性微命令:在機(jī)器中不允許同時(shí)出現(xiàn)的微命令
    • 微指令若干微命令的集合
      • 操作控制字段(微操作碼字段):產(chǎn)生某一步操作所需的各種操作控制信號(hào)
      • 順序控制字段(微地址碼字段):控制產(chǎn)生下一條要執(zhí)行的微指令地址
    • 微周期:從控制存儲(chǔ)器中讀取一條微指令并執(zhí)行相應(yīng)的微操作所需的時(shí)間
    • 控制存儲(chǔ)器(CM):用于存放微程序,在CPU內(nèi)部,用ROM實(shí)現(xiàn)
    • 主存儲(chǔ)器存放程序和數(shù)據(jù),在CPU外部,用RAM實(shí)現(xiàn)
    • 微程序微指令的有序集合,一條指令的功能由一段微程序?qū)崿F(xiàn)(1條指令 = 多個(gè)微程序
    • 程序指令的有序集合,用于完成特定的功能
    • 特點(diǎn)
      • 微命令和微操作一一對(duì)應(yīng)
      • 微命令是微操作的控制信號(hào),微操作是微命令的執(zhí)行過程
    • 注意
      • 地址寄存器(MAR):存放主存的讀/寫地址
      • 微地址寄存器(CMAR或μ\muμPC):存放控制存儲(chǔ)器的讀/寫微指令的地址

      • 指令寄存器(IR):存放從主存中讀出的指令
      • 微指令寄存器(CMDR或μ\muμIR):存放從控制存儲(chǔ)器中讀出的微指令
    2. 微程序控制器的組成和工作過程
    1. 基本組成
    • 控制存儲(chǔ)器(CM):核心部件,存放各指令對(duì)應(yīng)的微程序
    • 微指令寄存器(CMDR):存放從CM中取出的微指令,位數(shù) = 微指令字長(zhǎng)
    • 微地址形成部件:產(chǎn)生初始微地址和后繼微地址,保證微指令的連續(xù)執(zhí)行
    • 微地址寄存器(CMAR):接收微地址形成部件送來的微地址
    2. 工作過程

    • 執(zhí)行取微指令公共操作
      • 機(jī)器開始運(yùn)行時(shí),自動(dòng)將取指微程序的入口地址送入CMAR,并從CM中讀出相應(yīng)的微指令送入CMDR
      • 取指微程序的入口地址一般為CM的0號(hào)單元,當(dāng)取指微程序執(zhí)行完后,從主存中取出的機(jī)器指令就已存入指令寄存器中
    • 機(jī)器指令的操作碼字段通過微地址形成部件產(chǎn)生該機(jī)器指令所對(duì)應(yīng)的微程序的入口地址,并送入CMAR
    • 從CM中逐條取出對(duì)應(yīng)的微指令并執(zhí)行
    • 執(zhí)行完對(duì)應(yīng)于一條機(jī)器指令的一個(gè)微程序后,又回到取指微程序的入口地址,再完成取下一條機(jī)器指令的公共操作
    3. 微程序和機(jī)器指令
    • 一條機(jī)器指令對(duì)應(yīng)一個(gè)微程序
    • 任何一條機(jī)器指令的取指令操作都是相同的
    • 控制存儲(chǔ)器中的微程序個(gè)數(shù)應(yīng)為機(jī)器指令數(shù)再加上對(duì)應(yīng)取指、間址和中斷周期等公用的微程序數(shù)
      • 指令系統(tǒng)中具有n種機(jī)器指令,則控制存儲(chǔ)器中的微程序數(shù)至少是n+1(1為公共的取指微程序)
      • 可以不提供間址周期和中斷周期
    3. 微指令的編碼方式
    • 編碼目標(biāo):保證速度的情況下,盡量縮短微指令字長(zhǎng)
    • 直接編碼(直接控制)方式
      • 定義:操作控制字段中,每一位代表一個(gè)微操作命令(“1”表示控制信號(hào)有效)
      • 優(yōu)點(diǎn):簡(jiǎn)單、直觀,執(zhí)行速度快,操作并行性好
      • 缺點(diǎn):微指令字長(zhǎng)過長(zhǎng),n個(gè)微命令要求微指令的操作字段有n位,造成空存容量極大
    • 字段直接編碼方式
      • 定義:將微指令的控制字段分為若干段,每段經(jīng)譯碼后發(fā)出控制信號(hào)

      • 優(yōu)點(diǎn):可以縮短微指令字長(zhǎng)
      • 缺點(diǎn):要通過譯碼電路后再發(fā)出微命令,速度較慢
      • 微命令字段分段原則
        • 互斥性微命令分在同一段內(nèi)相容性微命令分在不同段內(nèi)
        • 每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜性和譯碼時(shí)間
        • 一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令,通常全0表示不操作
    • 字段間接編碼方式
      • 定義:一個(gè)字段的某些微命令需由另一個(gè)字段中的某些微命令來解釋
      • 優(yōu)點(diǎn):可進(jìn)一步縮短微指令字長(zhǎng)
      • 缺點(diǎn):削弱了微指令的并行控制能力,故通常作為字段直接編碼方式的一種輔助手段
    4. 微指令的地址形成方式
    • 直接由微指令的下地址字段指出(斷定方式):設(shè)置一個(gè)下地址字段,由微指令的下地址字段直接指出后繼微指令的地址
    • 根據(jù)機(jī)器指令的操作碼形成:微指令的地址由操作碼經(jīng)微地址形成部件形成
    • 增量計(jì)數(shù)法:(CMAR) + 1 →\rightarrow CMAR(適用于后繼微指令地址連續(xù)的情況)
    • 通過測(cè)試網(wǎng)絡(luò)形成
    • 分支轉(zhuǎn)移
      • 轉(zhuǎn)移方式:指明判別條件
      • 轉(zhuǎn)移地址:指明轉(zhuǎn)移成功后的去向
    • 由硬件直接產(chǎn)生微程序入口地址第一條微指令地址由專門硬件產(chǎn)生(由專門的硬件記錄取指周期微程序的首地址);中斷周期硬件產(chǎn)生中斷周期微程序首地址(用專門的硬件記錄)
    5. 微指令的格式
    1. 水平型微指令(短、肥)
    • 定義:指令字中的一位對(duì)應(yīng)一個(gè)控制信號(hào),有輸出時(shí)為1,否則為0(一條指令定義并執(zhí)行幾種并行的基本操作
    • 優(yōu)點(diǎn):微程序短,執(zhí)行速度快
    • 缺點(diǎn):微指令長(zhǎng),編寫微程序較麻煩
    2. 垂直型微指令(長(zhǎng)、瘦)
    • 定義:在微指令中設(shè)置微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能一條指令只能定義并執(zhí)行一種基本操作
    • 優(yōu)點(diǎn):微指令短,簡(jiǎn)單,規(guī)整,便于編寫微程序
    • 缺點(diǎn):微程序長(zhǎng),執(zhí)行速度慢,工作效率低
    3. 混合型微指令
    • 定義:在垂直型的基礎(chǔ)上增加一些不太復(fù)雜的并行操作
    • 優(yōu)點(diǎn):微指令較短,便于編寫;微程序不長(zhǎng),執(zhí)行速度加快
    6. 微程序控制單元的設(shè)計(jì)步驟
    • 寫出對(duì)應(yīng)機(jī)器指令的微操作命令及節(jié)拍安排
    • 確定微指令格式
      • 根據(jù)微操作個(gè)數(shù)決定采用何種編碼方式,以確定微指令的操作控制字段的位數(shù)
      • 根據(jù)CM中存儲(chǔ)的微指令總數(shù),確定微指令的順序控制字段的位數(shù)
      • 最后按操作控制字段位數(shù)和順序控制字段位數(shù)就可確定微指令字長(zhǎng)
    • 編寫微指令碼點(diǎn)
      • 根據(jù)操作控制字段每一位代表的微操作命令,編寫每一條微指令的碼點(diǎn)
    7. 動(dòng)態(tài)微程序設(shè)計(jì)和毫微程序設(shè)計(jì)
    • 動(dòng)態(tài)微程序設(shè)計(jì):能根據(jù)用戶的要求改變微程序,采用可擦除可編程只讀存儲(chǔ)器(EPROM)實(shí)現(xiàn)
    • 毫微程序設(shè)計(jì):硬件不由微程序直接控制,而是通過存放在第二級(jí)控制存儲(chǔ)器(毫微存儲(chǔ)器)中的毫微程序來解釋的

    5. 指令流水線

    1. 指令流水線的基本概念

    1. 定義
    • 一條指令的執(zhí)行過程可以分為多個(gè)階段(不同階段用到的硬件不同)
      • 取指:根據(jù)PC內(nèi)容訪問主存儲(chǔ)器,取出一條指令送到IR中
      • 分析:對(duì)指令操作碼進(jìn)行譯碼,按照給定的尋址方式和地址字段中的內(nèi)容形成操作數(shù)的有效地址EA,并從EA中取出操作數(shù)
      • 執(zhí)行:根據(jù)操作碼字段,完成指令規(guī)定的功能,即把運(yùn)算結(jié)果寫到通用寄存器或主存中
    • 三種執(zhí)行方式
      • 順序執(zhí)行方式:指令按順序執(zhí)行,前一條指令執(zhí)行完后,才啟動(dòng)下一條指令(傳統(tǒng)馮·諾依曼采用此方式)
        • 執(zhí)行n條指令所用時(shí)間:T = 3nt(取指、分析、執(zhí)行三個(gè)階段的時(shí)間都為t)
        • 優(yōu)點(diǎn):控制簡(jiǎn)單,硬件代價(jià)小
        • 缺點(diǎn):執(zhí)行指令的速度較慢,各功能部件的利用率很低
      • 一次重疊執(zhí)行方式:同時(shí)進(jìn)行第k條指令的執(zhí)行階段和第k+1條指令的取指階段
        • 執(zhí)行n條指令的時(shí)間:T = (1 + 2n)·t
        • 優(yōu)點(diǎn):程序的執(zhí)行時(shí)間縮短了1/3,功能部件利用率提高
        • 缺點(diǎn):硬件開銷較大,控制過程更復(fù)雜
      • 二次重疊執(zhí)行方式:同時(shí)進(jìn)行取第k+1條指令和分析第k條指令,同時(shí)進(jìn)行分析第k+1條指令和執(zhí)行第k條指令
        • 執(zhí)行n條指令的時(shí)間:T = (2 + n)·t
        • 優(yōu)點(diǎn):程序的執(zhí)行時(shí)間縮短了2/3 (正常情況下,處理機(jī)同時(shí)有3條指令在執(zhí)行
        • 若沒條指令需要通過4個(gè)或5個(gè)執(zhí)行步驟完成,則可以采取3次或4次重疊執(zhí)行方式
    2. 表示方法——時(shí)空?qǐng)D

    • 時(shí)空?qǐng)D:主要用于分析流水線的性能
      • 橫坐標(biāo)時(shí)間(輸入流水線中的各個(gè)任務(wù)在流水線中所經(jīng)過的時(shí)間)
      • 縱坐標(biāo)空間(流水線的每個(gè)流水段(對(duì)應(yīng)各個(gè)執(zhí)行部件))
    3. 特點(diǎn)
    • 把一個(gè)任務(wù)分解為幾個(gè)有聯(lián)系的子任務(wù),每個(gè)子任務(wù)由一個(gè)專門的功能部件來執(zhí)行
    • 每個(gè)功能段后都要有一個(gè)緩沖寄存器(保存本流水段的執(zhí)行結(jié)果,供給下一流水段使用)
    • 各功能段的時(shí)間應(yīng)盡量相等
    • 只有連續(xù)不斷地提供同一種任務(wù)時(shí)才能發(fā)揮流水線的效率
    • 流水線需要裝入時(shí)間和排空時(shí)間
      • 裝入時(shí)間:第一個(gè)任務(wù)進(jìn)入流水線到輸出流水線的時(shí)間
      • 排空時(shí)間:最后一個(gè)任務(wù)進(jìn)入流水線到輸出流水線的時(shí)間
    • 并不是流水段越多,指令執(zhí)行越快
      • 流水段緩沖之間的額外開銷增大:每個(gè)流水段有一些額外開銷用于緩沖間傳送數(shù)據(jù)、進(jìn)行各種準(zhǔn)備和發(fā)送等功能
      • 流水線間控制邏輯變多、變復(fù)雜:用于流水線優(yōu)化和存儲(chǔ)器(或寄存器)沖突處理的控制邏輯將隨流水段的增加而大增

    2. 流水線的分類

    1. 部件功能級(jí)、處理機(jī)級(jí)和處理機(jī)間級(jí)流水線
    • 部件功能級(jí)流水:將復(fù)雜的算術(shù)邏輯運(yùn)算組成流水線工作方式。如:可將浮點(diǎn)加法操作分成求階差、對(duì)階、尾數(shù)相加及結(jié)果規(guī)格化等4個(gè)子過程
    • 處理機(jī)級(jí)流水:把一條指令解釋過程分成多個(gè)子過程。如:取指、譯碼、執(zhí)行、訪存和寫回5個(gè)字過程
    • 處理機(jī)間流水:一種宏流水,其中每個(gè)處理機(jī)完成某一專門任務(wù),各個(gè)處理機(jī)得到的結(jié)果需存放在與下一個(gè)處理機(jī)共享的存儲(chǔ)器中
    2. 單功能流水線和多功能流水線
    • 單功能流水:只能實(shí)現(xiàn)一種固定的專門功能的流水線
    • 多功能流水:通過各段間的不同連接方式可以同時(shí)或不同時(shí)地實(shí)現(xiàn)多種功能的流水線
    3. 動(dòng)態(tài)流水線和靜態(tài)流水線
    • 靜態(tài)流水線:在同一時(shí)間內(nèi),流水線的各段只能按同一種功能的連接方式工作
    • 動(dòng)態(tài)流水線:在同一時(shí)間內(nèi),當(dāng)某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻正在進(jìn)行另一種運(yùn)算
    4. 線性流水線和非線性流水線
    • 線性流水線:從輸入到輸出,每個(gè)功能段只允許經(jīng)過一次,不存在反饋回路
    • 非線性流水線:存在反饋回路,從輸入到輸出,某些功能段將數(shù)次通過流水線(適合進(jìn)行線性遞歸的運(yùn)算)

    3. 影響流水線的因素

    • 機(jī)器周期的設(shè)置
    1. 數(shù)據(jù)沖突(數(shù)據(jù)冒險(xiǎn))——同步
    • 定義:在一個(gè)程序中,下一條指令會(huì)用到這一條指令計(jì)算出的結(jié)果

    • 解決辦法

      • 把遇到數(shù)據(jù)相關(guān)的指令及其后續(xù)指令都暫停一至幾個(gè)時(shí)鐘周期,直到數(shù)據(jù)相關(guān)問題消失后再繼續(xù)執(zhí)行

        • 硬件阻塞(stall)

        • 軟件插入“NOP”(空操作)

      • 設(shè)置相關(guān)專用通路(數(shù)據(jù)旁路技術(shù)),即直接把前一條指令的ALU的計(jì)算結(jié)果作為自己的輸入數(shù)據(jù)開始計(jì)算過程

      • 通過編譯器對(duì)數(shù)據(jù)相關(guān)的指令編譯優(yōu)化,調(diào)整指令順序來解決數(shù)據(jù)相關(guān)

    • 相關(guān)概念——讀寫順序顛倒

      • 讀后讀(RAR)相關(guān):兩條連續(xù)的指令讀取相同的寄存器時(shí)會(huì)產(chǎn)生RAR相關(guān),不會(huì)影響流水線
      • 寫后讀(RAW)相關(guān):某條指令要讀取上一條指令所寫入的寄存器時(shí),會(huì)產(chǎn)生RAW相關(guān),稱為數(shù)據(jù)相關(guān)或真相關(guān),影響流水線
      • 讀后寫(WAR)相關(guān)和寫后寫(WAW)相關(guān):某條指令的上條指令要讀/寫該指令的輸出寄存器時(shí),會(huì)產(chǎn)生WAR相關(guān)和WAW相關(guān)
      • 按序流動(dòng)的流水線只可能出現(xiàn)RAW相關(guān)非按序流動(dòng)的流水線中,可能發(fā)生RAW、WAR和WAW相關(guān)
    2. 控制沖突(控制冒險(xiǎn))
    • 定義:一條指令要確定下一條指令的位置,例如在執(zhí)行轉(zhuǎn)移、調(diào)用或返回等指令時(shí)會(huì)改變PC值,而造成斷流

    • 解決辦法

      • 對(duì)轉(zhuǎn)移指令進(jìn)行分支預(yù)測(cè),盡早生成轉(zhuǎn)移目標(biāo)地址
        • 靜態(tài)預(yù)測(cè):預(yù)測(cè)條件不滿足,即繼續(xù)執(zhí)行分支指令的后續(xù)指令
        • 動(dòng)態(tài)預(yù)測(cè):根據(jù)程序執(zhí)行的歷史情況,進(jìn)行動(dòng)態(tài)預(yù)測(cè)調(diào)整,有較高的預(yù)測(cè)準(zhǔn)確率
      • 預(yù)取轉(zhuǎn)移成功和不成功兩個(gè)控制流方向上的目標(biāo)指令
      • 加快和提前形成條件碼
      • 提高轉(zhuǎn)移方向的猜準(zhǔn)率

    Cache缺失的處理過程也會(huì)引起流水線阻塞

    3. 結(jié)構(gòu)相關(guān)(資源沖突)——互斥
    • 定義:多條指令在同一時(shí)刻爭(zhēng)用同一資源而形成的沖突
    • 解決辦法
      • 前一指令訪存時(shí),使后一條相關(guān)指令(以及其后續(xù)指令)暫停一個(gè)時(shí)鐘周期
      • 單獨(dú)設(shè)置數(shù)據(jù)存儲(chǔ)器和指令存儲(chǔ)器。使兩項(xiàng)操作各自在不同的存儲(chǔ)器中進(jìn)行

    4. 流水線的性能指標(biāo)

    1. 吞吐率
    • 定義:單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量,或輸出結(jié)果的數(shù)量
    • 公式:n為任務(wù)數(shù),TkT_kTk?是處理完n個(gè)任務(wù)所用時(shí)間TP=nTkTP=\frac{n}{T_k}TP=Tk?n?
    2. 加速比
    • 定義:完成同樣一批任務(wù),不使用流水線所用的時(shí)間和使用流水線所用的時(shí)間之比
    • 公式T0T_0T0?表示不使用流水線時(shí)的執(zhí)行時(shí)間,TkT_kTk?表示使用流水線時(shí)的執(zhí)行時(shí)間S=T0TkS=\frac{T_0}{T_k}S=Tk?T0??
    3. 效率
    • 定義:流水線的設(shè)備利用率。時(shí)空?qǐng)D上,流水線的效率定義為完成n個(gè)任務(wù)占用的時(shí)空區(qū)有效面積,與n個(gè)任務(wù)所用的時(shí)間及k個(gè)流水段所圍成的時(shí)空區(qū)總面積之比。流水線的效率包含了時(shí)間空間兩個(gè)因素

    5. 超標(biāo)量流水線的基本概念

    1. 超標(biāo)量流水線技術(shù)——空分復(fù)用
    • 定義:每個(gè)時(shí)鐘周期可并發(fā)多條獨(dú)立指令(以并行操作方式將兩條或多條指令編譯并執(zhí)行),需配置多個(gè)功能部件
    • 特點(diǎn)不能調(diào)整指令的執(zhí)行順序,只能通過編譯優(yōu)化技術(shù)
    2. 超流水線技術(shù)——時(shí)分復(fù)用
    • 定義:在一個(gè)時(shí)鐘周期內(nèi)再分段,在一個(gè)時(shí)鐘周期內(nèi)一個(gè)功能部件使用多次
    • 特點(diǎn)不能調(diào)整指令的執(zhí)行順序,靠編譯程序解決優(yōu)化問題
    3. 超長(zhǎng)指令字
    • 定義:由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條具有多個(gè)操作碼字段的超長(zhǎng)指令字

    6. 五段式指令流水線

    1. 運(yùn)算類指令

    2. LOAD指令

    3. STORE指令

    4. 條件轉(zhuǎn)移指令

    5. 無條件轉(zhuǎn)移指令


    總結(jié)

    以上是生活随笔為你收集整理的5.中央处理器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。