計算機組成原理期末復習


一些重點

第二章
定點數的表示與乘除運算、浮點數的表示與加減運算

第三章
刷新時間的計算、存儲容量的擴展、各種帶寬、Cache相關(命中率,訪問時間)
主存與Catch的地址映射

第四章
指令和數據的尋址方式、指令格式尋址方式的特點

第五章

指令周期流程圖與微周期操作序列、數據相關、微指令三個字段的計算、流水線

第六章
總線帶寬、波特率

第七章
磁盤相關的計算、刷新存儲器的容量與帶寬

第八章
中斷屏蔽

各章知識點的部分整理

第一章 計算機系統概述

數字計算機的基本組成:控制器,運算器,存儲器,輸入設備,輸出設備

馮諾依曼計算機的基本思想:存儲程序的思想,將程序和數據放在同一存儲器中

指令在存儲器中順序存放

軟件分為系統軟件(包括服務性程序,語言程序,操作系統,數據庫管理系統)和應用軟件。

計算機系統的層次結構:高級語言級、匯編語言級、操作系統級、一般機器級、微程序設計級

一般機器級也稱為機器語言級,微程序級和機器級都屬於硬件級,操作系統是混合級

任何操作可以由軟件來實現,也可以由硬件來實現

任何指令的執行可以由硬件完成,也可由軟件完成

固件是一種介於傳統的軟件和硬件之間的實體,功能類似軟件,形態類似硬件

將子程序返回地址放在堆棧時,子程序允許嵌套

運行時間=指令數*CPI/主頻

只有外部可屏蔽中斷才需要進入中斷響應周期,以獲取相應的中斷類型號

馮氏機是以運算器為中心的,I/O設備於存儲器件的數據傳送通過運算器來完成

連接程序是系統軟件,編譯器和匯編程序都經常依賴於連接程序

馮諾依曼計算機是控制流驅動方式

電子管---晶體管---中小規模集成電路---大規模集成電路

一個完整的計算機系統應包括硬件系統和軟件系統

普林斯頓結構也就是馮諾依曼結構

數據庫管理系統DBMS是系統軟件,數據庫系統DBS是引入數據庫后的系統

軟件和硬件在邏輯上是等效的,但不是等價的

寄存器由觸發器構成

第二章 運算方法和運算器

n位二進制補碼的表示范圍:- 2的(n-1)次方 到 2的(n-1)次方 -1

第三章 存儲系統

一個0或1是一個存儲位元,存儲位元<存儲單元<存儲器

速度:寄存器>cache>主存

RAM是非永久記憶的存儲器,斷電后信息即消失

字存儲單元:存放一個機器字的存儲單元

機器字:一個機器字可以包含數個字節,機器字有字長

  • 所以一個存儲單元也可以包含數個能夠單獨編址的字節地址

按字尋址的計算機:計算機中可編址的最小單位是字存儲單元

大端、小端模式

存儲器帶寬:【只要是帶寬,就是數據/時間】,是衡量數據傳輸速率的指標

存取時間(存儲器訪問時間):一次讀操作命令發出,到數據讀出到數據總線上

  • 通常讀時間等於寫時間

存儲周期:連續啟動兩次讀操作所需間隔的最小時間

SRAM //常用於cache緩存

SRAM中,用一個鎖存器(觸發器)作為存儲元,掉電即丟失

地址譯碼器是主存的構成部分,不屬於CPU

有三組信號線:

  • 地址線:指定能有多少個存儲單元,是地址譯碼器的輸入,輸出2的n次方條

    • 地址譯碼器輸出的選擇線為行線,作用是打開該行每個存儲位元的與非門
  • 數據線:指定存儲器的字長,用來傳數據

  • 控制線:控制讀、寫操作 R/W非

SRAM采用二級譯碼,行、列單獨譯碼,然后交叉編碼

當R/W線加負脈沖時,地址線和數據線的電平必須是穩定的

DRAM //常用於做主存儲器

DRAM的存儲元是一個MOS晶體管+電容器,電容器充滿電為1,沒有電荷為0

分時傳送地址碼,增加了行、列地址鎖存器(用來存行、列地址,地址線寬度沒有變)

  • 注意地址傳了兩次,所以做題的時候,地址線是算出來的一半

DRAM讀寫后都可以不刷新,未讀寫的要定期、按行刷新,刷新計數器長度=行地址鎖存器

刷新操作和讀寫操作交替進行,要通過2選1開關來提供刷新的行地址或讀寫的行地址

通常用ROM(read-only memory)存放系統程序,用RAM(random-access memory)組成用戶區

存儲器地址寄存器MAR應保證能訪問到整個主存地址空間,MAR的位數和實際的主存容量無關,MAR的位數決定了主存地址空間的大小

MAR有n位,則存儲器有2的n次方個存儲單元

//在提到存儲器有x MB這種格式時,M=2的20次方

CDRAM中,SRAM讀出期間可同時對DRAM進行刷新;數據輸出路徑和數據輸入路徑是分開的,允許在寫操作完成的同時啟動同一行的讀操作

閃存中,浮空柵帶許多電子--0,帶很少或不帶電子--1;寫比讀慢

SSD固態硬盤,就是由FLASH芯片組成的

並行存儲器

雙端口存儲器:同一個存儲器具有兩組相互獨立的讀寫控制電路,進行並行的獨立操作;每個端口有自己的片選控制CE和輸出驅動控制OE;BUSY標志

順序方式:高位選模塊,低位選塊內地址;各模塊串行工作

交叉方式:高位選塊內地址,低位選模塊;連續地址分布在相鄰的模塊內

多模塊交叉存儲器:是一種並行存儲器結構

  • 假設模塊字長=數據總線寬度,存儲周期T,總線傳送周期τ,交叉模塊數m
  • 為了實現流水線方式存取,應滿足T=mτ
  • 連續讀取m個字所需的時間為 T+(m-1)τ
  • 當題目問的是可提供的最大帶寬時,就不考慮第一個任務了

低位交叉多體並行存儲器的特點:各模塊都有獨立的讀寫控制電路,地址寄存器,數據寄存器;低位地址為體號,高位地址為體內地址;程序連續存放在相鄰體中

cache的透明性:當CPU訪問存儲器時,給出的一個字的內存地址會自動變換成cache的地址

cache與主存的數據交換是以塊為單位的,無論用哪種映射方式,都要把主存和cache划分為同樣大小的塊

替換策略:LFU:最不經常使用(不能嚴格反映近期訪問情況),LRU:近期最少使用(每次命中的cache清零,其他都加一,換出最大值的一行),隨機替換

寫操作策略:

  • 寫回法:命中,只修改cache,此行被換出時才寫回主存,每行必須有個修改位,反映此行是否被修改過;未命中,將要寫的塊復制到cache中再修改(先只改cache)
  • 全寫法:命中,cache和主存同時寫;未命中,直接向主存寫(也叫寫直通)
  • 寫一次法:除了第一次寫命中要寫入主存外,其他都和寫回法一樣

多級cache

軟磁盤上內存儲器應該采用ROM和RAM

第四章 指令系統

機器指令:簡稱指令,每條指令可完成一個獨立的算術運算或邏輯運算操作

符號語言用指令助記符來編寫程序;機器語言用指令代碼編寫程序

指令字:簡稱指令,表示一條指令的機器字

指令格式:指令字的結構形式,由操作碼字段和地址碼字段組成

操作碼OP:表示該指令應進行什么性質的操作,有固定和不固定長度的,位數一般取決於指令系統的規模

單地址指令的被操作數通常是累加寄存器AC,操作結果又放回AC中

S為存儲器,R為寄存器,有SS型,RR型,RS型指令,分別訪存3,0,1或2次

機器字長:計算機能直接處理的二進制數據的位數,決定了計算機的運算精度

  • 機器字長通常與主存單元的位數一致
  • 通用寄存器的字長默認為機器字長
  • pc的字長通常和mar的字長一樣,按照存儲器的容量定

指令字長度:指令字的位數;與機器字長相比,有單、半、雙字長指令

  • 如何區分:只有一行的指令格式就是單字長

數據通常分為四類:地址數據、數值數據、字符數據、邏輯數據

地址數據一般被看作是無符號整數(只有一種特殊情況)

存儲器既可以用來存放數據,又可以用來存放指令

某操作數/某指令放在存儲單元時,存儲單元的編號,就是它在存儲器中的地址

CISC中大約有20%的指令占據了80%的處理機時間

  • RISC的指令字長是定長的,只有Load/Store指令才能訪存,采用指令流水線技術,多數指令在一個時鍾周期內完成,有較多的通用寄存器,控制方式絕大多數為組合邏輯控制
  • CISC的指令字長是不定長的,指令都能訪存,通用寄存器較少,控制方式絕大多數為微程序控制

第五章 中央處理器

程序是一個指令序列,這個序列明確告訴計算機應該執行什么操作,在什么地方找到用來操作的數據

CPU:中央處理器,專門用來完成取出指令和執行指令工作的計算機部件

CPU的基本功能:指令控制(程序的順序控制)、數據加工(對數據進行算數和邏輯運算)、操作控制(管理並產生每條指令的操作信號,送往相應的部件,從而控制部件)、時間控制(對各種操作實施時間上的定時)

CPU=運算器+控制器+cache

  • 控制器:取出指令,對指令進行譯碼,產生操作控制信號,指揮並控制數據流動方向
  • 控制器=PC+IR+指令譯碼器+時序產生器+操作控制器OC
  • 運算器:=算術邏輯單元ALU+累加寄存器+數據緩沖寄存器+狀態條件寄存器,是數據加工處理部件,是執行部件,受控制器的命令,執行所有的算術運算和邏輯運算

CPU中的主要寄存器:DR、IR、PC、AR、R0-R3、PSW

CPU中的寄存器分為用戶可見和用戶不可見兩大類:

  • 用戶可見:通用寄存器組、程序狀態字寄存器PSWR、程序計數器PC、累加寄存器ACC
  • 不可見:指令寄存器IR、暫存寄存器DR、存儲器地址寄存器MAR、存儲器數據寄存器MDR

通用寄存器的功能:當算術邏輯單元ALU執行算術或邏輯運算時,為ALU提供一個工作區。還可用作地址指示器、變址寄存器、堆棧指示器

數據通路:許多寄存器之間傳送信息的通路

操作控制器OC的功能:根據指令操作碼和時序信號,產生各種操作控制信號,正確地選擇數據通路(在各寄存器之間建立數據通路)。操作控制器可分兩種:

  • 硬連線控制器,采用時序邏輯技術實現
  • 微程序控制器,采用存儲邏輯實現

時序產生器的作用:對各種操作信號實施時間上的控制

指令和數據都放在內存里,CPU如何識別是數據還是指令?:根據時間來判斷,取指令階段取出的是指令,執行指令階段取的是數據

時序信號的基本體制是電位-脈沖制

微程序控制器,采用節拍電位-節拍脈沖二級體制,即只有一個節拍電位(表示一個CPU周期的時間),在節拍電位中又包含若干個節拍脈沖(T周期)

節拍脈沖把一個CPU周期划分成幾個較小的時間間隔

微程序控制器的時序電路比較簡單

常見的控制方式:(反映了時序信號的定時方式

  • 同步控制方式:已定的指令在執行時所需的機器周期數和時鍾周期數都固定不變
  • 異步控制方式:需要多少時間就占用多少時間,沒有固定的CPU周期數或嚴格的時鍾周期
  • 聯合控制方式:
    • 法一:大部分指令在固定的機器周期內完成,少數用異步
    • 法二:機器周期的節拍脈沖數固定,但各指令的機器周期數不固定【微程序控制器采用這種方法】

微程序控制原理的基本思想:把操作控制信號編制成微指令,存放到控制存儲器里,運行時取出微指令,產生指令運行所需的操作控制信號

數字計算機基本上分為兩部分:控制部件和執行部件

微程序設計技術是用軟件方法來設計硬件的技術

微命令是微操作的控制信號,微操作是微命令的操作過程

微操作是執行部件中最基本的操作,可分為相容的(能同時或在同一個CPU周期內並行執行的)和互斥的

微指令存儲在控制器的控制存儲器中

一段微程序對應一條機器指令

一條微指令包括兩大部分:

  • 操作控制字段,(微操作碼字段),產生微操作控制信號
    • 某位為1,表示發微命令
    • 微指令發的控制信號是節拍電位信號,持續時間一個CPU周期
    • 微命令信號還要引入時間控制(如T脈沖)
  • 順序控制字段,(即微地址碼字段),控制產生下一條要實行的微指令地址

操作控制:操作控制字段,每一位表示一個微命令,該位為1,表示發出微命令

順序控制:指出下一條微指令的地址;4位直接給出下一條微指令的地址,2位作為判別測試標志,均為0時,表示不進行測試,某位為1時,表示要進行p1或p2的判別測試,根據測試結果對下一條微指令地址進行修改

微程序控制器=控制存儲器CM+微指令寄存器(分微命令寄存器和微地址寄存器兩部分)+地址轉移邏輯

在串行方式的微程序控制器中,微指令周期就是只讀存儲器的工作周期

控制存儲器的字長=微指令字的長度,存儲容量取決於微程序的數量

微地址寄存器決定下一條微指令的地址

微命令寄存器,保存一條微命令的操作控制字段和判別測試字段P的信息

地址轉移邏輯,通過判別測試字段P和執行部件的“狀態條件”反饋信息,修改微地址寄存器的內容,自動修改微地址

微程序控制器的工作過程:

1.取指令的公共操作(機器指令)
	通常由一段取值微程序完成,機器開始運行時,自動將取指微程序的入口微地址送到微地址寄存器,並從控制存儲器中讀出相應的微指令送到微指令寄存器
	取指微程序的入口地址一般為控制存儲器的0號單元
	取指微程序執行完后,主存中取出的機器指令就存入指令寄存器IR中
2.機器指令的操作碼字段,通過微地址形成部件,產生該機器指令對應的微程序入口地址,送入微地址寄存器
3.從控制存儲器中逐條取出對用的微指令並執行
4.一條機器指令的最后一條微指令執行完后,下一條微指令地址又回到取值微程序的入口地址

取機器指令的微指令,任務有:1.從內存取出一條機器指令並放到IR;2.對PC+1;3.對機器指令的操作碼用P1進行判別測試,然后修改微地址寄存器內容,給出下一道微指令的地址

數據通路是CPU中ALU、控制單元CU、寄存器之間的連接線路

微命令編碼:對微指令中的操作控制字段采用的表示方法

  • 直接表示法:操作控制字段的每一位可以直接控制計算機,不需要譯碼,指令字太長
  • 編碼表示法:把一組相斥的微命令組成一個小組(字段),然后用字段譯碼,譯碼輸出操作控制信號。n位二進制譯碼后可表示2的n次方-1個微命令,因為要預留全0狀態,表示不操作,不發出任何微命令
  • 混合編碼法

入口地址:公用的取指微程序從主存中取出機器指令之后,由機器指令的操作碼字段指出各段微程序的入口地址,這是多路轉移的情況

微地址的形成方法:

  • 計數器方式:順序執行時,后繼微地址=現行微地址+一個增量;遇到轉移時,微指令的轉移地址段形成轉移微地址。由於轉移地址寫在微指令中,所以只能有一個轉移分支
  • 多路轉移方式:不產生分支時,后繼微地址由微指令的順序控制字段給出;出現分支時,根據順序控制字段的“判別測試”標志和“狀態條件”信息選擇一個微地址,可實現2的n次方個路的轉移

水平型微指令:一次能定義且能並行執行多個微命令

垂直型微指令:微指令中設置微操作碼字段,采用微操作碼編譯法,由微操作碼規定微指令的功能

動態微程序設計:可通過改變微指令和微程序來改變機器的指令系統

微程序的節拍脈沖寬度相同;微程序的時序產生器只需要產生節拍脈沖

時間並行:采用流水處理部件,讓多個處理過程在時間上相互錯開,重疊地使用同一套硬件設備的各個部分

空間並行:指資源重復,引入空間因素

時間並行+空間並行:例如超標量流水線技術,在一個機器周期中同時執行兩條指令

指令流水線:指令步驟的並行,將指令流的處理過程划分

算術流水線:運算操作步驟的並行

處理機流水線:宏流水線,指程序步驟的並行

資源相關:多條指令進入流水線后在同一機器時鍾周期,爭用同一個功能部件

控制相關:轉移指令引起的;延遲轉移法或轉移預測法

第六章 總線

三總線結構包括:

  • 內部總線:CPU內部,連接各寄存器和運算器
  • 系統總線:外部總線,CPU和其他高速功能部件
  • I/O總線:中低速I/O設備相互連接的總線

地址總線寬度,指明總線能夠直接訪問的存儲器的地址空間范圍

數據總線寬度,指明訪問一次存儲器或外設時,能同時交換數據的位數

控制總線,包括各種控制命令,請求/仲裁信號,時序同步信號,中斷,DMA控制信號等

//系統總線可分為數據、地址、控制總線

總線帶寬=傳輸的數據量/需要的時間;總線帶寬=總線傳輸速率=吞吐率

單總線(總線分時工作)、多總線(CPU總線、系統總線、高速總線、擴充總線)結構

地址線是單向的,數據線是雙向的,控制線對每根線來說是單向的,總體看是雙向的

當代總線結構:數據傳送總線(地址線+數據線+控制線)、仲裁總線(總線請求+總線授權)、中斷和同步總線(中斷請求+中斷認可)、公用線

CPU和它私有的cache一起,當成一個模塊接到總線上

系統總線上傳送的信息必須采用並行傳送方式

並行方式傳送時,每個數據位都需要單獨一條傳輸線

分時傳送有兩種:總線復用(某傳輸線上既傳送地址信息,又傳送數據信息,須划分時間片)、部件分時

利用串行方式傳送字符,每秒鍾傳送的bit位數常稱為波特率

在各種異步通信方式中,不互鎖速度最快

同步通信是一種比特同步通信技術,一個總線周期的傳輸過程是先傳送地址,再傳送數據

並行總線傳輸並不一定比串行總線傳輸速度快

分離事務通信方式可以提高總線利用率

握手(應答)信號在通信總線上傳輸,數據線上可以傳輸中斷類型號

缺頁處理完成后,回到發生缺頁的指令繼續執行

第七章 I/O

載磁體相對於磁頭運動時,就可以連續寫入一串二進制信息

當磁頭對載磁體做相對運動時,讀出相應的信息

磁盤=磁記錄介質+磁盤控制器+磁盤驅動器

磁盤控制器=控制邏輯與時序+數據並-串轉換電路+串-並轉換電路

平均找道時間=找道時間(題目給出)+磁盤轉半圈的時間+數據傳送時間

名詞解釋

摩爾定律:每18個月,集成電路的性能將提高一倍,而其價格將降低一半

吞吐量:表征一台計算機在某一時間間隔內能夠處理的信息量,單位是字節/秒(B/s)

響應時間:從輸入有效到系統產生相應之間的時間度量

處理機字長:處理機運算器中一次能夠完成二進制數運算的位數。

總線寬度:一般指CPU中運算器與存儲器之間進行互連的內部總線二進制位數

存儲器帶寬:存儲器的速度指標,單位時間內從存儲器讀出的二進制數信息量,字節數/秒

主頻:主時鍾不斷產生固定頻率的時鍾,主時鍾的頻率f叫CPU的主頻

CPU=central processing unit

CPU時鍾周期:主頻的倒數,T=1/f

CPU執行時間:CPU執行一段程序所占用的CPU時間,=CPU時鍾周期數*CPU時鍾周期長

CPI:每條指令周期數,即執行一條指令所需的平均時鍾周期數

MIPS:表示每秒百萬條指令數;MIPS值越高說明機器速度越快

Te:程序執行時間

MFLOPS:表示每秒百萬次浮點操作次數;只能用來衡量機器浮點操作的性能

數據字:如果某字代表要處理的數據,稱為數據字

指令字:如果某字為一條指令,稱為指令字

指令:計算機硬件可直接執行的每一個基本的算術運算或邏輯運算操作稱為一條指令

MSB: most significant bit 最高有效位

LSB: last significant bit 最低有效位

RAM:隨機讀寫存儲器,既能讀出又能寫入的半導體存儲器

ROM:只讀存儲器,存儲的內容是固定不變的,只能讀出,不能寫入的半導體存儲器

SRAM:靜態讀寫存儲器,存取速度快,但存儲容量不如DRAM大

DRAM:動態讀寫存儲器

局部性原理:處理器訪問存儲器時,所訪問的存儲單元在一段時間內都趨向於一個較小的連續區域中

  • 空間局部:緊鄰被訪問單元的地方也將被訪問
  • 時間局部:剛被訪問的單元很快將再次被訪問

存儲容量:指一個存儲器中可以容納的存儲單元總數

CDRAM:帶高速緩沖存儲器(cache)的動態存儲器,是在通常的DRAM芯片內又集成了一個小容量的SRAM

SDRAM:同步型動態存儲器,SDRAM的操作要求與系統時鍾相同步

DDR SDRAM:雙倍數據率SDRAM,在時鍾的上升沿和下降沿都能傳數據

EPROM:光擦除可編程只讀存儲器

E2PROM:電擦除可編程只讀存儲器

CDROM:只讀型光盤存儲器,不屬於ROM(即光盤,且采用串行存儲,不采用隨機存取方式

FLASH存儲器:閃存,本質上屬於E2PROM,非易失

  • NAND閃存:非線性閃存,適用於大容量存儲設備;NOR閃存:線性閃存

CAM:相聯存儲器,用來存CPU要訪問的字的地址,即可按地址尋址又可按內容尋址

指令系統:一台計算機中所有機器指令的集合

系列機:基本指令系統相同、基本體系結構相同的一系列計算機,解決了各機種的軟件兼容問題,新機種一定包含所有舊的全部指令

CISC:復雜指令系統計算機

RISC:精簡指令系統計算機

尋址方式:采用地址指定方式時,形成操作數或指令地址的方式

SF(NF):符號標志位,記錄結果是否為負

CF:進位標志位,記錄了無符號數的進位/借位(只對無符號數運算有意義

OF:溢出標志位,記錄有符號數運算結果是否發生溢出(只對有符號數運算有意義

MAR:存儲器地址寄存器

MDR:存儲器數據寄存器

DR:數據緩沖寄存器,Data Register,用來暫時存放ALU運算結果、主存讀出的一條指令或一個數據字,向內存存入時同理。作用:作為CPU和內存、外設之間信息傳送的中轉站;補償它們之間速度上的差別

IR:指令寄存器,instruction register,用來保存正在執行的一條指令。當執行一條指令時,先把指令從內存取到緩沖寄存器中,再傳送給IR

  • 指令譯碼器:對操作碼進行測試
  • 指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入
  • 操作碼譯碼之后,即可向操作控制器發出具體操作的特定信號

PC: program counter,程序計數器,也稱指令計數器,確定下一條指令的地址。通常情況下自動加一,轉移指令時,下一條指令由轉移指令規定,所以PC要有寄存信息和計數兩種結構

AR: address register,地址寄存器,保存當前CPU所訪問的內存單元地址。由於CPU和內存間存在操作速度上的差別,必須用AR保持地址信息,直到內存的讀/寫操作完成為止

  • 當CPU向內存存數據/從內存讀出指令時,都要用到AR和DR(一個存地址,一個存數據),如果把外設地址看作內存地址,也同理使用AR和DR

PSW: program status word,狀態字寄存器,保存由算術指令和邏輯指令運算或測試結果建立的各種條件代碼。如進位標志C,溢出標志V,為零標志Z,為負標志N等,通常分別由1位觸發器保存;還保存了中斷和系統工作狀態等信息。是一個由各種條件狀態標志拼湊而成的寄存器

指令周期:取指令、分析指令到執行完該指令所需的全部時間

機器周期=CPU周期:每個機器周期完成一個基本操作。用主存的存取周期為基礎來規定CPU周期。一個指令周期包含若干個機器周期

時鍾周期=T周期=節拍脈沖:機器主頻的倒數

OC: operation controller 操作控制器

公操作:一條指令執行完畢后,CPU所開始進行的一些操作。這些操作主要是CPU對外圍設備請求的處理,如中斷處理,通道處理等

CU:控制單元,負責程序的流程管理,CU=IR+ID(指令譯碼器)+OC

CP: clock pulse,脈沖輸入端

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

狀態測試:執行部件通過反饋線向控制部件反映操作情況,以便控制部件根據執行部件的狀態來下達新的微命令

微命令:控制部件通過控制線向執行部件發出的各種控制命令。是構成控制序列的最小單位

微操作:微命令的操作過程,微命令和微操作一一對應

微指令:在同一CPU周期內並行執行的微操作控制信息

CM:控制存儲器,用來存放實現全部指令系統的微程序,是只讀型存儲器

微程序:一系列微指令的有序集合

微地址:存放微指令的控制存儲器的單元地址

微指令周期:讀出一條微指令並執行微指令的時間

並行性:在同一時刻或同一時間間隔內完成兩種或兩種以上性質相同或不相同的工作

  • 同時性:同一時刻發生的並行性
  • 並發性:同一個時間間隔發生的並行性

IF: instruction fetch,取指

ID: instruction decode,指令譯碼

EX: execution,執行

WB: write back,寫回

超標量:超標量流水,是指它具有兩條以上的指令流水線

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

總線帶寬:總線本身所能達到的最高傳輸速率,單位MB/s

接口:I/O設備適配器,接口是指CPU和主存、外圍設備之間通過總線進行連接的邏輯部件

總線時鍾周期:就是機器的時鍾周期

總線時鍾頻率:1/總線時鍾周期

總線傳輸周期:一次總線操作所需的時間,包含若干個總線時鍾周期

總線工作頻率:總線傳輸周期的倒數

總線寬度:總線上能夠同時傳輸的數據位數

波特率:每秒傳送的比特位數

存儲元:是記錄一個二進制信息位的最小單位

RAID:廉價冗余磁盤陣列,是用多台磁盤存儲器組成的大容量外存系統

PCI總線:是一個與處理器時鍾頻率無關的高速外圍總線

大題內容

第二章

原碼一位乘法:先算結果的符號位,數值部分直接手動乘起來

m×n位不帶符號位的陣列乘法器

求補電路:E=0(正數)時,輸入和輸出一樣;E=1(負數)時,從數最右端往左邊掃描,直到第一個1,該位和右邊各位保持不變,左邊各數值位按位取反

在原碼乘法中,算前求補和算后求補都不需要,正負數原碼與真值的差別只有符號位;間接的補碼陣列乘法卻需要使用三個求補器

  • 算前求補:為了獲得絕對值(所以原碼輸入的話直接去除符號位即可),補碼輸入要先求一次補再去掉符號位

  • 算后求補:如果要的是原碼的結果,直接加上符號位后輸出即可,要的是補碼的結果,需要加上結果的符號位后,對計算結果求補。

不恢復余數法:

法1:(用雙符號位,用補碼下去計算

​ 余數>0,商1,余數左移,下次做減法;余數<0,商0,余數左移,下次做加法

  • 左移,是連符號位一起左移一位;做減法,就是加上[-y]的補碼

  • 算到n位商(n是除數的位)即可得商,最后在加上余數(余數就是最后一次的結果

法2(老師ppt上的,也是用補碼算

CAS:可控加法/減法單元,P=0,做加法運算,P=1,做減法運算

被除數是除數的雙倍長(例如除數有3位,被除數就是6位,商也就是3位

​ (例如被除數:0.101001,除數:0.111,商:0.101;余數:0.000110)

  • 目的:控制商的位數,假如被除數和除數位數相同,沒有約束條件,只能除一次

余數為正,商1,[-y]補右移n位(當前獲得的是有幾位商就右移幾位),做加法

余數為負,商0,[y]補右移n位(當前獲得的是有幾位商就右移幾位),做加法

  • 若最后余數為負數,則將該結果加上右移n位的除數

    算數移位,負數補碼左0右1

浮點數加減:

階碼是定點整數,尾數是定點純小數

加減法運算的步驟:

1.0操作數檢查 //寫解答題時這行要先寫
2.對階,將兩個數的階碼相減,階碼小的那個數,尾數右移1位,階碼+1,直到與大階碼相等 
//右移出來的那些位,可以括號在后面
3.尾數求和,直接算加法 //題目一般要用補碼,記得先寫出補碼,還要看是不是雙符號位表示
4.結果規格化:如果尾數相加結果出現01.xxx或10.xxx則說明溢出,要向右規格化(尾數右移1位,階碼+1);尾數太小時,向左規格化,考慮符號位時,即符號位與最高數值位相同時需要向左規格化,即0.0xxx或1.1xxx時;不考慮符號位,當尾數不是1.M時向左規格化
5.舍入:0舍1入(被丟掉的最高位為0則舍去,為1則尾數末位+1)、四舍五入(中間值是100...0,與具體多少位有關,多余位的值,如果超過中間值的一半,則+1,小於,則舍去,等於時,若最低有效位,也就是被保留下的最后一位,為0,則舍去,為1,則+1)
6.溢出處理:階碼上溢,認為是無窮,階碼下溢,認為是0;尾數上溢,則尾數右移,階碼+1,尾數下溢,要進行舍入處理

第三章

刷新時間的計算

刷新周期:上次整個存儲器刷完,到本次整個存儲器刷完的時間間隔

三種刷新方式:集中刷新、分散刷新、異步刷新

  • 集中刷新,前段時間正常讀寫,需要刷新是集中刷新整個存儲器;會有'死時間'
  • 分散刷新:每行的刷新插入到正常的每個讀寫周期中;刷新過於頻繁
  • 異步刷新:刷新操作平均分散到整個刷新周期;刷新周期/需要刷的行數=時間間隔

// 1M如果沒有特殊說明的話,是1024行*1024列

存儲器容量的擴充

  • 字長位數擴展(位擴展

芯片字長位數較短時,用多片芯片擴展位數。

地址線和控制線公用,數據線單獨分開連接

  • 字存儲容量擴展(字擴展

存儲容量較小(也就是字數少)時,用多片芯片擴展字數

地址總線和數據總線公用,控制線中R/W公用,使能端EN不能公用

這些芯片不會同時工作

地址總線的高n位要拿來一起做使能信號

  • 字位擴展:字和位同時擴展

所有的擴充類型 所需芯片數量=要求的存儲器容量/給定芯片的容量

主存與cpu的連接

地址線的連接:CPU地址線的低位與芯片地址線相連(字選),CPU地址線的高位在擴充存儲芯片時用(片選)
CPU數據線數應等於存儲芯片的數據線數
CPU讀/寫命令線一般可直接與存儲芯片的讀/寫控制端相連

各種帶寬(順序/交叉存儲器的帶寬

順序存儲器,連續讀取m個字所需的時間為m*T

交叉存儲器,連續讀取m個字所需的時間為 T+(m-1)τ

1ns=10的-9次方s;1Mbps=1*10的6次方bit/s

Cache相關(命中率,訪問時間)

  • 命中率h=Nc/(Nc+Nm)

    • Nc為cache的存取次數,Nm為主存的存取次數
  • 訪問效率e=tc/ta=1/[r+(1-r)*h]

    • tc為命中時cache訪問時間,tm為未命中時的主存訪問時間
    • ta為平均訪問時間,ta=h*tc+(1-h)·tm
    • r=tm/tc 表示主存慢於cache的倍率

主存與Catch的地址映射

  • 全相聯:

主存地址的長度=標記的位數s+字的長度w位

主存的塊數=2的s次方 (用來求s

塊大小=行大小=2的w次方 個字/字節

內存中任一塊可以映射到cache的任意一行中

將地址分為兩部分:塊號和字,內存塊寫入cache時,同時寫入塊號標記

cpu給出訪問地址后也分成塊號和字,塊號與cache中所有行的標記比較,確定某行是否在cache中,若存在,則拿地址中的字來選字(一行當中有若干個字)

適用於小容量cache,大型的話比較器會很復雜

  • 直接映射:

一個主存塊只能拷貝到cache的一個特定行

cache行號i,主存塊號j,i=j mod m ,m為cache總行數

將s位的塊地址分成兩部分,r位做行地址,s-r位做標記

每個內存地址,都對應於某個特定的cache行地址

cpu給出內存地址后,用r位行號確定cache中的某一行,再用地址中s-r位標記與該行標記進行比較,若一樣則命中,再用w位的字確定字(全程只需要比較一次

cache的行數=2的r次方

tag有s-r位,主存中有2的s-r次方 行會放到cache中的同一行

適合大容量cache,更多的行數可以減小沖突

  • 組相聯:

將cache分組,組間采用直接映射,組內采用全相聯

主存當中的某一行固定放在某個組內,但放在組內的哪一行不確定

內存地址=tag+組號+字,組號用來定位組,tag和組里的每行tag比較,若有相同的,則命中

每組行數為v,則稱為v路組相聯

第四章

指令格式&尋址方式的特點

指令格式如果只有一行,就是單字長的,兩行就是雙字長的

操作碼字段OP的位數n,可以指定2的n次方條指令

根據地址碼字段,看有多少個地址,是RR/SS/RS型指令

RR型指令結構常用於算數邏輯運算類指令

指令和數據的尋址方式

  • 指令尋址方式:順序尋址和跳躍尋址

順序尋址:指令地址在內存中按順序安排,程序計數器PC指向的永遠是下一條指令的地址

PC取出的值送到指令寄存器IR,PC隨即+1,IR對程序員不可見

跳躍尋址:下條指令的地址碼不是由PC給出,而是由本條指令給出

程序跳躍時,是先將要跳躍的地址傳給PC

  • 操作數的尋址方式:

地址碼是由形式地址和尋址方式特征位等組合形成的

形式地址(A):也稱偏移量;尋址方式特征位=間址位(I)+變址位(X)

操作數的尋址:把操作數的形式地址,通過間址和變址等組合變換為操作數有效地址的過程

  • 隱含尋址:操作數的地址是隱含的,例如AC對單地址指令來說是隱含地址

  • 立即尋址:OP字段后面的部分是操作數本身,這樣的操作數被稱為立即數

  • 直接尋址:地址碼給出的字段A就是操作數有效地址EA,操作數地址無法更改,用D表示操作數,則D=(A)

  • 間接尋址:地址A是操作數地址的地址,有效地址EA=(A),至少需要兩次訪問主存 //尋址特征位I=0為直接尋址,I=1為間接尋址

  • 寄存器尋址:地址碼給出某通用寄存器的編號,操作數存放在寄存器里,即EA=Ri

  • 寄存器間接尋址:操作數的地址放在某一通用寄存器中,操作數放在主存中,即EA=(Ri)

  • 偏移尋址:有效地址EA=A+(R),要求有兩個地址字段,至少一個是顯示的,包括相對尋址、基址尋址、變址尋址

    • 相對尋址:隱含引用的是PC,即EA=A+(PC),此時形式地址A常稱為偏移量(D),值可正可負(唯一地址可能為負的情況),相對尋址,就是相對當前的指令地址而言
    • 基址尋址:地址碼給出偏移量A(D),基准地址放在基址寄存器Rb中,EA=(Rb)+A
    • 變址尋址:變址寄存器Rx,EA=A+(Rx),適用於數組運算、字符串操作等成批數據處理,目的在於實現程序塊的規律變化
  • 段尋址:實質還是基址尋址

  • 堆棧尋址:堆棧有寄存器堆棧和存儲器堆棧,數據都是先進后出

[ppt上的題目]

第五章

指令周期流程圖與微周期操作序列

取值周期:

  • PC中裝有指令的地址(八進制)
  • PC的內容被放到指令地址總線ABUS(I)上,用地址譯碼器對地址進行譯碼,並啟動讀命令
  • 從該地址讀出的指令,通過指令總線IBUS裝入IR
  • PC+1
  • IR中的操作碼OP被譯碼,CPU識別出是哪個指令。取值周期結束

mov指令的執行周期(mov R0,R1)

  • OC送出控制信號到通用寄存器,選擇源寄存器和目標寄存器
  • OC送出控制信號到ALU,指定ALU做傳送操作
  • OC送出控制信號,打開ALU輸出三態門,將ALU的輸出送到數據總線DBUS
  • OC送出控制信號,將DBUS上的數據打入DR
  • OC送出控制信號,將DR中的數據打入到目標寄存器

LAD指令的執行周期(LAD R1,6)

  • OC發出控制命令,將指令中的直接地址碼6放到數據總線DBUS上
  • OC發出操作命令,將地址碼裝入地址寄存器AR
  • OC發出讀命令,將數存中6號單元對應的數讀出放到DBUS上
  • OC發出命令,將DBUS上的數據裝入DR
  • OC發出命令,將DR中的數裝入目標寄存器R1
  • DBUS數據總線分時進行了地址傳送和數據傳送,所以執行周期需要兩個CPU周期

STO指令的執行周期(STO R2,(R3))

  • OC送出操作命令到通用寄存器,選擇(R3)作為地址單元
  • OC發出操作命令,打開通用寄存器輸出三態門,將該地址放到DBUS上
  • OC發出操作命令,將地址打入AR,進行數存地址譯碼
  • OC發出操作命令,到通用寄存器,選擇(R2),作為寫入數據
  • OC發出操作命令,打開通用寄存器輸出三態門,將數據放到DBUS上
  • OC發出操作命令,將數據寫入對應地址單元

例題:畫出其指令周期流程圖並列出相應的微操作控制信號序列

方框圖表示指令周期中,一個方框表示一個CPU周期,方框內的內容是數據通路操作或控制操作,菱形表示判別或測試,波浪號表示公操作

所以這個題是要畫圖的,而且要根據給定的數據通路來寫流程

在給出CPU的結構和數據通路框圖后,再寫出對應指令的微操作序列

微指令三個字段的計算

水平型微指令的一般結構:控制字段 判別測試字段 下地址字段

流水CPU

流水CPU的結構:指令部件(本身構成指令流水線,取指令、指令譯碼、計算操作數地址、去操作數等幾個過程)+指令隊列(一個先進先出的寄存器棧,用來放經過譯碼的指令和取來的操作數)+執行部件(可有多個ALU)

一般用多體交叉存儲器;執行部件分為定點和浮點執行部件,可並行執行

把輸入的任務分成一系列子任務,並使各子任務能在流水線各個階段並發執行

每個子過程稱為過程段,一個指令流水線的過程段:IF--ID--EX--WB

各個過程段之間設有高速緩沖寄存器,暫時存上一過程的結果

時空圖:橫坐標表示時間,縱坐標表示空間,即流水線的各個子過程,也成為流水線深度(stage)

當流水線滿載時,每個時鍾周期就可以輸出一個結果

流水線各個功能段所需時間應盡量相等,時間長的功能段將成為瓶頸

流水線有助於提高整個程序的吞吐率,但沒有減少每個指令的執行時間

CPU時鍾周期的最短時間是指令流水線的各功能段需要的最長執行時間(有時需要考慮緩存時間)

數據相關

必須等前一條指令執行完畢后,才能執行后一條指令,那么這兩條指令就是數據相關的

當后繼指令需要的操作數,剛好是前一指令的運算結果,就發生數據相關沖突

解決方法:定向傳送技術,在運算器中設置若干運算結果緩沖寄存器,暫時保留運算結果

寫后讀WAR:后面的讀指令用到前面指令所寫的數據

寫后寫WAW:兩條指令寫同一個單元

讀后寫RAW:后面的寫指令覆蓋前面指令讀的單元

解決方法:推遲后繼指令的操作;數據旁路技術,設置相關的直接通路forwarding

第六章

總線帶寬

總線帶寬=傳輸的數據量/需要的時間

總線帶寬=總線寬度*總線工作頻率

設總線帶寬用Dr表示,總線時鍾周期=T=1/f,一個總線周期傳送的數據量為D,則Dr=D*f=D/T


免責聲明!

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



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