偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

吃透計算機硬件核心!指令系統(tǒng) + 存儲體系超全解析,附公式計算與真題案例

存儲 存儲架構(gòu)
計算機指令的組成:一條指令由操作碼和操作數(shù)兩部分組成,操作碼決定要完成的操作,操作數(shù)是指參與運算的數(shù)據(jù)及其所在的單元地址。

計算機硬件相關(guān)基礎(chǔ)知識--校驗碼

指令系統(tǒng)

計算機指令的組成:一條指令由操作碼操作數(shù)兩部分組成,操作碼決定要完成的操作,操作數(shù)是指參與運算的數(shù)據(jù)及其所在的單元地址

在計算機中,操作要求(操作碼)和操作數(shù)地址(操作數(shù))都由二進制數(shù)碼表示,分別稱作操作碼和地址碼,整條指令以二進制編碼的形式存放在存儲器中

計算機指令執(zhí)行過程取指令--分析指令--執(zhí)行指令三個步驟.

  1. 首先將程序計數(shù)器PC中的指令地址取出,送入地址總線,CPU依據(jù)指令地址去內(nèi)存中取出指令內(nèi)容存入指令寄存器IR;
  2. 然后由指令譯碼器進行分析,分析指令操作碼;
  3. 最后執(zhí)行指令,取出指令執(zhí)行所需的源操作數(shù)。

計算機指令執(zhí)行過程計算機指令執(zhí)行過程

如果是涉及到運算,可能還要包含運算器的介入,最簡單的取指令→分析指令→執(zhí)行指令流程即如上圖所示。

指令尋址方式

指令尋址是指通過指令地址找到實際指令內(nèi)容的過程

順序?qū)ぶ贩绞?/span>:當(dāng)執(zhí)行一段程序時,是一條指令接著一條指令順序執(zhí)行

跳躍尋址方式:指下一條指令的地址碼不是由程序計數(shù)器給出,而是由本條指令直接給出。

注意:程序跳躍后,按新的指令地址開始順序執(zhí)行。因此程序計數(shù)器的內(nèi)容也必須相應(yīng)改變,以便及時追蹤新的指令地址。

指令操作數(shù)的尋址方式

指令操作數(shù)的尋址方式是指通過指令操作數(shù)地址找到實際操作數(shù)的過程

立即尋址方式:指令的地址碼字段指出的不是地址,而是操作數(shù)本身。

直接尋址方式:在指令的地址字段中直接指出操作數(shù)在主存中的地址。

間接尋址方式:指令地址碼字段所指向的存儲單元中存儲的操作數(shù)的地址,需要再根據(jù)主存中操作數(shù)地址找到對應(yīng)的操作數(shù)。

寄存器尋址方式:指令中的地址碼是寄存器的編號。

基址尋址方式:將基址寄存器的內(nèi)容加上指令中的形式地址而形成的操作數(shù)的有效地址,其優(yōu)點是可以擴大尋址能力。

變址尋址方式:變址尋址方式計算有效地址的方式與基址尋址方式相似,它是將變址寄存器的內(nèi)容加上指令中的形式地址而形成操作數(shù)的有效地址。

指令系統(tǒng)的分類

經(jīng)典處理器的指令系統(tǒng)分為兩類:CISC(Complex Instruction Set Computers)和RISC(Reduced Instruction Set Computers)

CISC是復(fù)雜指令系統(tǒng),兼容性強、指令繁多、長度可變,由微程序?qū)崿F(xiàn);

RISC是簡單指令系統(tǒng),指令少,使用頻率接近,主要依靠硬件實現(xiàn)(通用寄存器、硬布線邏輯控制)。

兩者的區(qū)別如下表:

指令系統(tǒng)類型

指令

尋址方式

實現(xiàn)方式

其他

CISC

數(shù)量多,使用頻率差別大,可變長格式

支持多種

微程序控制技術(shù)(微碼)

研制周期長

RISC

數(shù)量少,使用頻率接近,定長格式,大部分為單周期指令,操作寄存器,只有Load/Store操作內(nèi)存

支持方式少

增加了通用寄存器;硬布線邏輯控制為主;適合采用流水線

優(yōu)化編譯,有效支持高級語言

CISC以Intel、AMD的x86 CPU為代表;RISC以ARM和Power為代表。其中國產(chǎn)處理器目前有龍芯、飛騰、申威等品牌常用的都是RISC-V、MIPS、ARM等精簡指令集架構(gòu)

Flynn分類法 (重點)

Flynn根據(jù)系統(tǒng)內(nèi)同時執(zhí)行的指令流和處理的數(shù)據(jù)流為標(biāo)準(zhǔn),對計算機系統(tǒng)進行了分類,共分為4類:

  1. 單指令流單數(shù)據(jù)流計算機(SISD):屬于傳統(tǒng)的順序處理計算機,其指令部件一次僅對一條指令進行譯碼,并且僅對一個操作部件分配數(shù)據(jù)
  2. 單指令流多數(shù)據(jù)流計算機(SIMD):這種計算機系統(tǒng)包含多個重復(fù)的運算處理單元,但僅存在唯一的指令部件;運行過程中由該指令部件從存儲器中取出指令,然后譯碼并發(fā)往運算處理單元,各運算處理單元按照統(tǒng)一指令流要求處理各自不同的數(shù)據(jù)
  3. 多指令流單數(shù)據(jù)流計算機(MISD):這種計算機系統(tǒng)究竟代表哪種計算機類型,存在著不同的看法,有的文獻上將指令流水線看成是多指令部件,故將流水線體系結(jié)構(gòu)歸并到了這類計算機中,有的文獻也將容錯系統(tǒng)歸并到這一類。
  4. 多指令流多數(shù)據(jù)流計算機(MIMD):是指實現(xiàn)作業(yè)、任務(wù)、指令、數(shù)據(jù)各個級別全面并行執(zhí)行的計算機系統(tǒng)。這樣的系統(tǒng)擁有多個處理器,每個處理器具有獨立的程序,每個程序為相應(yīng)的處理器生成一個指令流,并處理各自不同的數(shù)據(jù),顯然分布式計算機系統(tǒng)基本都屬于多指令流多數(shù)據(jù)流系統(tǒng)

指令流水線

串行技術(shù)是CISC中的指令執(zhí)行技術(shù)

流水線技術(shù)是RISC中的指令執(zhí)行技術(shù)

串行技術(shù):即一個指令執(zhí)行過程(取值→分析→執(zhí)行)完成之后才能執(zhí)行下一個指令

流水線技術(shù):即一個指令執(zhí)行完某一階段A后,開始下一階段B時,另一個指令可以開始階段A的執(zhí)行

RISC中流水線技術(shù)分類:

  • 超流水線技術(shù)(Super Pipe Line) :通過細化流水、增加級數(shù)和提高主頻,使得在每個機器周期內(nèi)完成一個甚至兩個浮點操作(典型的以時間換空間)
  • 超標(biāo)量技術(shù)(Super Scalar) :通過內(nèi)裝多條流水線來同時執(zhí)行多個處理,其時鐘頻率雖然與一般流水接近,卻有更小的CPI(以空間換取時間)
  • 超長指令字技術(shù)(Very Long Instruction Word,VLIW) :VLIW和超標(biāo)量都是同時執(zhí)行多條指令,其不同在于超標(biāo)量依靠硬件來實現(xiàn)并行處理的調(diào)度,VLIW則充分發(fā)揮軟件的作用,使硬件簡化,性能提高。(也是屬于以空間換取時間)

流水線的時間計算(重點)

流水線周期:指令分成不同執(zhí)行階段,其中執(zhí)行時間最長的段為流水線周期

流水線執(zhí)行時間:1條指令總執(zhí)行時間+(總指令條數(shù)-1)*流水線周期

流水線吞吐量計算:吞吐率即單位時間內(nèi)執(zhí)行的指令條數(shù)。公式:指令條數(shù)/流水線執(zhí)行時間

流水線的加速比計算:加速比即使用流水線后的效率提升度,即比不使用流水線快了多少倍,越高表明流水線效率越高。公式:不使用流水線執(zhí)行時間/使用流水線執(zhí)行時間

例1:對于一個k段流水線,假設(shè)其各段的執(zhí)行時間均相等(設(shè)為t),輸入到流水線中的任務(wù)是連續(xù)的理想情況下,完成n個連續(xù)任務(wù)需要的總時間是多少?

存儲系統(tǒng)

計算機采用分級存儲體系的主要目的是為了解決存儲容量、成本和速度之間的矛盾問題

存儲器的定義:存儲器是利用半導(dǎo)體、磁、光等介質(zhì)制成的用于存儲數(shù)據(jù)的電子設(shè)備

根據(jù)存儲器的硬件結(jié)構(gòu)分為:SRAM、DRAm、NVRAM、Flash、EPROM、Disk等

計算機系統(tǒng)中的存儲器通常采用分層的體系結(jié)構(gòu),按照與處理器的物理距離分類:

  • 片上緩存:在處理器核心中直接集成的緩存,一般為SRAM結(jié)構(gòu),實現(xiàn)數(shù)據(jù)的快速讀取。容量較小【16KB~512KB】,按照不同的設(shè)計可能劃分為一級或二級
  • 片外緩存:在處理器核心外的緩存,需要經(jīng)過交換互聯(lián)開關(guān)訪問,一般也是由SRAM構(gòu)成,容量比片上緩存略大【256KB~4MB】,按照層級被稱為L2Cache或L3Cache,或稱為平臺Cache
  • 主存(內(nèi)存):通常采用DRAM結(jié)構(gòu),以獨立的部件/芯片存在,通過總線與處理器連接。DRAM依賴不斷充電維持其中的數(shù)據(jù),容量在數(shù)百MB至數(shù)10GB之間
  • 外存:可以是磁帶、磁盤、光盤和各類Flash等介質(zhì)器件,這類設(shè)備訪問速度慢,但容量大,并且在掉電后能夠保持其數(shù)據(jù)。
    不同介質(zhì)類型容量不同,如Nor Flash容量一般在MB級別,磁盤容量則在GB和TB級別。并非所有介質(zhì)都能夠永久性保存數(shù)據(jù),每種介質(zhì)都有一定的年限,比如Flash外存的維持數(shù)據(jù)年限在10年左右,光盤年限在數(shù)年至數(shù)十年,磁盤年限在十年以上,磁帶年限為30年以上。

存儲系統(tǒng)層級

image.pngimage.png

兩級存儲:Cache-主存、主存-輔存(虛擬存儲體系)

Cache是高速緩沖寄存器,CPU和主存的交互速度影響了CPU的計算效率,因此采用了Cache這個設(shè)計,將常用的數(shù)據(jù)暫時存儲到Cache中

如何確定數(shù)據(jù)是否常用,即如何保證cache中的數(shù)據(jù)在短暫的時間內(nèi)CPU用得到?,就需要涉及到局部性原理!

局部性原理:在CPU運行時,所訪問的數(shù)據(jù)會趨向一個較小的局部空間地址內(nèi),包括以下兩個方面:

  • 時間局部性原理:如果一個數(shù)據(jù)項正在被訪問,那么在近期它很可能會被再次訪問,即在相鄰的時間里會訪問同一個數(shù)據(jù)項
  • 空間局部性原理:在最近的將來會用到的數(shù)據(jù)的地址和現(xiàn)在正在訪問的數(shù)據(jù)地址很可能是相近的,即相鄰空間地址會被連續(xù)訪問

高速緩存Cache

高速緩存Cache用于存儲當(dāng)前最活躍的程序和數(shù)據(jù),直接與CPU交互,位于CPU和主存之間,容量小,速度為內(nèi)存的5-10倍,由半導(dǎo)體材料構(gòu)成。其內(nèi)容是主存內(nèi)存的副本拷貝,對于程序員來說是透明的

Cache由控制部分和存儲器組成,存儲器存儲數(shù)據(jù),控制部分判斷CPU要訪問的數(shù)據(jù)是否在Cache,在則命中,不在則依據(jù)一定的算法從主存中替換(這就涉及到一個概念:命中率)

地址映射:在CPU工作時,送出的是主存單元的地址,而應(yīng)從Cache存儲器中讀/寫信息,這就需要將主存地址轉(zhuǎn)換為Cache存儲器地址,這種地址的轉(zhuǎn)換稱為地址映像,由硬件自動完成映射(考點)

地址映像的三種方法:

  • 直接映像:將Cache存儲器等分成塊,主存也等分成塊,并且對塊進行編號。主存中的塊與Cache中的塊的對應(yīng)關(guān)系是固定的,兩者塊號相同才能命中。特點:地址變化簡單,不靈活,容易造成資源浪費

直接映像.png直接映像.png

  • 全相聯(lián)映像:同樣都等分成塊,并且編號。主存中任意一塊都與Cache中任意一塊對應(yīng)。特點:可隨意調(diào)入Cache任意位置,但是地址變化復(fù)雜,速度較慢。因為主存可以隨意調(diào)用任意Cache塊,因此只有當(dāng)Cache塊滿了之后,才會發(fā)生塊沖突。因此全相聯(lián)映像是最不容易發(fā)生沖突的映像方式。

全相聯(lián)映像.png全相聯(lián)映像.png

  • 組組相連映像:組組相連映像是前面兩種方式的結(jié)合,將Cache存儲器先分塊再分組,主存也同樣先分塊再分組組間采用直接映像,即主存中組號與Cache中組號相同的組才能命中,但是組內(nèi)全相聯(lián)映像,也即組號相同的兩個組內(nèi)的所有塊可以任意調(diào)換

Cache的替換算法

替換算法的目的:使Cache獲得盡可能高的命中率。常用的算法有如下幾種:

  1. 隨機替換算法:就是使用隨機數(shù)發(fā)生器產(chǎn)生一個要替換的塊號,將該塊替換出去。
  2. 先進先出算法:就是將最先進入Cache中的信息塊替換出去
  3. 近期最少使用算法:這種方法是將近期使用最少的Cache中的信息塊替換出去(最常用的算法)
  4. 優(yōu)化替換算法:這種方法必須先執(zhí)行一次程序,統(tǒng)計Cache的替換情況。通過統(tǒng)計信息在第二次執(zhí)行程序時便于用最有效的方式來替換。

命中率與平均時間的計算

Cache命中率:即當(dāng)CPU所訪問的數(shù)據(jù)在Cache中時,命中則直接從Cache中讀取數(shù)據(jù),未命中則表示不在Cache中,需要從內(nèi)存中讀取。那么CPU在多次讀取數(shù)據(jù)時,從Cache中讀取數(shù)據(jù)的次數(shù)/總次數(shù)就是命中率。

平均時間:即CPU多次讀取數(shù)據(jù)時,命中和未命中時讀取數(shù)據(jù)的時間。

例1:設(shè)讀取一次Cache時間為1ns,讀取一次主存時間為1000ns,如果在CPU多次讀取數(shù)據(jù)過程中,有90%命中Cache,10%未命中,則CPU讀取一次的平均時間為:

磁盤

磁盤有正反兩個盤面,每個盤面有多個同心圓,每個同心圓是一個磁道,每個同心圓又被劃分為多個扇區(qū),數(shù)據(jù)就被存放在一個個扇區(qū)中

磁盤示意圖磁盤示意圖

磁頭首先要尋找對應(yīng)的磁道,然后等待磁盤進行周期旋轉(zhuǎn),旋轉(zhuǎn)到指定的扇區(qū),才能讀到對應(yīng)的數(shù)據(jù),因此,會產(chǎn)生尋道時間和等待時間。公式為:存取時間=尋道時間+等待時間

尋道時間:指磁頭移動到磁道所需的時間

等待時間:指等待讀寫的扇區(qū)轉(zhuǎn)到磁頭下方所用的時間

磁盤調(diào)度算法

尋道時間耗時最長,旋轉(zhuǎn)時間無法優(yōu)化

尋道時間的優(yōu)化算法

  • 先來先服務(wù)FCFS:根據(jù)進程請求訪問磁盤的先后順序進行調(diào)度
  • 最短尋道時間優(yōu)先SSTF:請求訪問的磁道與當(dāng)前磁道最近的進程優(yōu)先調(diào)度,使得每次的尋道時間最短。這個算法會產(chǎn)生饑餓現(xiàn)象,即遠處進程可能永遠無法訪問
  • 掃描算法SCAN:又稱電梯算法,磁頭在磁盤上雙向移動,其會選擇離磁頭當(dāng)前所在磁道最近的請求訪問的磁道,并且與磁頭移動方向一致,磁頭永遠都是從里向外或者從外向里一致移動完才掉頭。
  • 單向掃描調(diào)度算法CSCAN:與SCAN不同的是,CSCAN只做單向移動,即只能從里向外或者從外向里。

例1:假設(shè)某磁盤的每個磁道劃分成11個物理塊,每個塊存放1個邏輯記錄。邏輯記錄R0,R1,...,R9,R10存放在同一個磁道上,記錄的存放順序如下表所示:

物理塊

1

2

3


4

5

6

7

8

9

10

11

邏輯記錄

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

如果磁盤的旋轉(zhuǎn)周期為33ms,磁頭當(dāng)前處在R0的開始處。若系統(tǒng)使用單緩沖區(qū)順序處理這些記錄,每個記錄處理時間為3ms,則處理這11個記錄的最長時間為多少?若對信息存儲進行優(yōu)化分布后,處理11個記錄的最少時間是多少?

解:處理這11個記錄的最長時間為多少?

根據(jù)題述:一個磁道劃分位11個物理塊,每個塊存放1個邏輯記錄,則如下圖所示:

image.pngimage.png

磁盤旋轉(zhuǎn)周期為33ms,則每個邏輯記錄的讀取時間為33/11=3ms

從R0開始,每個記錄處理時間為3ms,則R0的讀取時間+處理時間,一共是6ms

由于R0讀取時間為3ms,而處理時,R1讀取完成后,緩沖區(qū)并沒有釋放,此時磁頭已經(jīng)移動到R2的開始處(即每次讀取時間+等待時間就會跳過一個邏輯記錄Rx),但是按照條件必須按照順序執(zhí)行,即R0執(zhí)行完成后,需要等待一個周期才能執(zhí)行R1

此時得出:等待時間為:

R0的等待時間 = 3+3 = 6ms

R1的等待時間 = 33(讀取時間)+3(處理時間)=36ms

R2的等待時間 = 33(讀取時間)+3(處理時間)=36ms

......

依此類推:11個記錄的最長時間為:36*10+6 = 366ms

解:若對信息存儲進行優(yōu)化分布后,處理11個記錄的最少時間是多少?

根據(jù)問題,是想表達,既然每次讀取時間+處理時間剛好跳過那個順序執(zhí)行的塊,我們需要如何存儲能達到最優(yōu)效果?

那么我們應(yīng)該跳格存儲,即如下圖所示:

image.pngimage.png

那么此時處理R0為6ms,剛好磁頭到達R1,處理R1為6ms,剛好到達R2......

依此類推,則處理11個記錄為6*11=66ms

例2:在磁盤調(diào)度管理中,應(yīng)先進行移臂操作,再進行旋轉(zhuǎn)調(diào)度。假設(shè)磁盤移動臂位于21號柱面上,進程的請求序列如下表所示。如果采用最短移臂調(diào)度算法,那么系統(tǒng)的響應(yīng)序列應(yīng)為:

image.pngimage.png

A.②⑧③④⑤①⑦⑥⑨

B.②③⑧④⑥⑨①⑤⑦

C.①②③④⑤⑥⑦⑧⑨

D.②⑧③⑤⑦①④⑥⑨

解:移臂操作=尋道操作、旋轉(zhuǎn)調(diào)度=磁道旋轉(zhuǎn)

此時采用最短移臂算法,即最短尋道時間優(yōu)先SSTF

21號柱面的下一個響應(yīng)序列應(yīng)該是23號柱面(離得最近),表中23號柱面共有三個②③⑧【排除選項C】

為什么會有三個23號柱面,按照題述,23號柱面其實就是磁道,那么很明顯,這三個23號是同一個磁道,只是扇區(qū)不同

23號的下一個響應(yīng)序列則為17號,表中17號柱面共有三個①⑤⑦【排除選項AB】

因為238肯定是在同一個磁道上,需要全部執(zhí)行完后才會找下一個磁道,下一個磁道157也會全部執(zhí)行完之后才會找下一個磁道

17號的下一個響應(yīng)序列應(yīng)該是32號,表中32號柱面共有兩個④⑥

32號的下一個響應(yīng)序列應(yīng)該是38號,表中38號柱面共有一個⑨

答案:D

責(zé)任編輯:武曉燕 來源: 愛編程的杰尼龜
相關(guān)推薦

2022-11-30 07:47:36

硬件速度差異讀寫

2022-12-26 00:18:05

硬件讀寫速度

2021-03-12 18:26:27

云計算邊緣計算硬件

2010-12-28 11:05:17

PC技術(shù)

2018-07-05 09:25:07

系統(tǒng)存儲層次

2012-02-29 10:02:59

IBM量子計算機超級計算機

2014-04-10 09:40:51

System 360計算機計算機系統(tǒng)

2009-01-10 23:54:10

軟考英語

2014-11-12 09:48:07

云計算云計算模式

2019-09-10 12:58:03

電腦編程語言硬件

2017-07-14 15:40:28

2023-12-04 10:49:37

網(wǎng)絡(luò)通信

2017-11-24 08:49:31

存儲解決RAID

2022-01-26 09:53:23

計算機體系結(jié)構(gòu)

2011-08-29 15:37:32

A10網(wǎng)絡(luò)

2021-05-20 11:43:57

操作系統(tǒng)硬件軟件

2013-04-03 10:28:24

超算量子計算機

2012-10-30 13:18:16

CrayAMD泰坦

2022-03-30 15:25:28

鏈接過程計算機系統(tǒng)程序

2021-01-27 14:18:17

量子計算傳統(tǒng)計算量子機器
點贊
收藏

51CTO技術(shù)棧公眾號