精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

萬字長文通關計算機與操作系統基礎知識

開發
二進制轉八進制時,每三位二進制數表示一個八進制數。因為在八進制中,總共有8個基數,分別是0~7,逢8進1。而如果要使用二進制來表示時,0的二進制為000,7的二進制為111,所以,每三位二進制數對應一位八進制數。反過來,每一位八進制數對應三位二進制數。

大家好,我是冰河~~

最近發現很多小伙伴工作很久了,大部分工作都是在重復的進行CRUD,對于一些基礎性的知識,比如:計算機基礎知識,操作系統,數據結構和算法等,卻了解的少之又少。

其實,很多時候,這些基礎性的知識往往是造成程序員職業生涯瓶頸的一個重要的因素。所以,冰河強烈建議這些基礎知識越早知道越好,越早掌握越好!最好是在大學時期就充分掌握這些計算機基礎知識。

好了,接下來,冰河為大家總結了一篇萬字長文系統介紹計算機中有關數據方面的基礎知識。

數據的表示形式

在計算機中,所有的數據都是以二進制的形式進行表示的,也就是說,在計算機中使用0和1來表示所有的數據。而我們日常生活中的數字都是10進制的,那我們平時使用的數字如果在計算機中表示時就需要進行進制的轉換。

進制轉換

R進制轉10進制

R進制轉10進制可以使用按權展開的方法,具體的操作就是:將R進制數的每一位數值使用R^k^表示,底數是R,指數是k。

其中,k與該位和小數點之間的位置有關。當這個位置位于小數據左邊時,k的值是從小數點向左依次數的個數,需要注意的是:緊鄰小數點的數字位置為0,接下來是1,2...依次類推。同樣的,如果這個位置在小數點的右邊,則緊鄰小數據點位置的數字從-1開始,依次向右數為-2,-3等等,依此類推。

例如,我們給出一個二進制數字,11010101.01,轉換為10進制數字為:1 x 2^7^ + 1 x 2^6^ + 0 x 2^5^ + 1 x 2^4^ + 0 x 2^3^ + 1 x 2^2^ + 0 x 2^1^ + 1 x 2^0^ + 0 x 2^-1^ + 1 x 2^-2^。

圖片圖片

再比如,我們給出一個八進制數,76128.01,轉換為10進制數字為:7 x 8^4^ +6 x 8^3^ + 1 x 8^2^ + 2 x 8^1^ + 8 x 8^0^ + 0 x 8^-1^ + 1 x 8^-2^

圖片圖片

十進制轉R進制

十進制轉R進制就比較簡單了,這里我們可以使用短除法。

例如,將十進制數字69轉換為二進制的過程如下所示。

圖片圖片

得出短除的結果后,我們需要將余數倒過來排列即為十進制69轉換為二進制的結果,所以結果數據為:1000101。

二進制與八進制互轉

二進制轉八進制時,每三位二進制數表示一個八進制數。因為在八進制中,總共有8個基數,分別是0~7,逢8進1。而如果要使用二進制來表示時,0的二進制為000,7的二進制為111,所以,每三位二進制數對應一位八進制數。反過來,每一位八進制數對應三位二進制數。

具體的劃分策略是,從二進制的低位開始,從低到高,也就是從右向左,每三位二進制數對應一個八進制數,不足三位的前面補0,例如,我們將二進制數:10001110轉化為八進制數的過程,具體如下所示。

圖片圖片

所以,二進制數10001110轉化為八進制數的結果為216。

同理,八進制轉二進制與二進制轉八進制正好相反,八進制的每一位對應三位的二進制數。也就是說,將八進制數的每一位轉化成三位的二進制數即可。

二進制與十六進制互轉

在十六進制表示的數字中,總共有15個基數,為0~15,逢16進1。如果要將二進制數轉化為十六進制數時,首先要弄清楚每位十六進制數需要多少為二進制數表示。

在十六進制中,最大的基數為15,15的二進制表示為:1111,最小的基數為0,0的二進制數為0000,也就是說,十六進制的基礎使用二進制表示為 0000~1111,所以,每位十六進制數需要四位二進制數表示。

從二進制數的低位開始,也就是從右側開始,每四位二進制數對應一位十六進制數。

例如,我們需要將二進制數10001110轉換為十六進制數,如下所示。

圖片圖片

注意:在十六進制中,分別使用A,B,C,D,E,F代表10,11,12,13,14,15。

所以,二進制10001110轉化為十六進制的結果為8E。

十六進制轉二進制與二進制轉十六進制正好相反,將十六進制的每一位轉換為四位二進制數即可。

數據的碼制

在計算機中,帶符號的機器數可以采用原碼、反碼、補碼和移碼表示,這些編碼稱為碼制。

原碼

在原碼表示中,最高位是符號位,0表示正號,1表示負號,其余的n-1位表示數值的絕對值,數值0的原碼有兩種表示形式:原 = 0 0000000,原  = 1 0000000。

反碼

在反碼中,最高位是符號位,0表示正號,1表示負號,正數的反碼與原碼相同,負數的反碼是其絕對值按位取反。數值0的反碼有兩種表示形式:反 = 0 0000000,反  = 1 1111111。

補碼

在補碼中,最高位是符號位,0表示正號,1表示負號,正數的補碼與原碼和反碼相同,負數的補碼等于其反碼的末位加1。在補碼的表示中,0有唯一的補碼:補  = 0 0000000,補  = 0 0000000。

移碼

移碼表示法是在數X上增加一個偏移量來定義的,常用于表示浮點數中的階碼。如果機器字長為n,規定偏移量為 2^n-1^。

實際上,在偏移 2^n-1^的情況下,只要將補碼的符號位取反就可以獲得相應的移碼。

碼制總結

我們來看下面的表格,這里,我直接使用八位的二進制數來表示相應的數值。

碼制

數值1

數值-1

1-1

原碼

0000 0001

1000 0001

1000 0010

反碼

0000 0001

1111 1110

1111 1111

補碼

0000 0001

1111 1111

0000 0000

移碼

1000 0001

0111 1111

1000 0000

通過表格我們發現:

  • 正數的原碼、反碼和補碼是相同的。
  • 負數的反碼是原碼除符號位外,其他位分別取反;
  • 負數的補碼是其反碼的末位加1。
  • 移碼是在補碼的基礎上符號位取反得到。

在負數的原碼和補碼的轉換中,我們可以得出如下結論:

  • 負數的原碼轉補碼是在原碼的基礎上除符號位外,其他位取反,然后末位加1。
  • 負數的補碼轉原碼是在補碼的基礎上除符號位外,其他位取反,然后末位加1。

也就是說,負數的原碼轉補碼和補碼轉原碼的規則是一樣的。小伙伴們可以根據表格自行驗證

計算機使用補碼進行加減法運算

我們再來看表格的最后一列 1-1,在計算機中,表示為1+(-1),其正確的結果應該為0。接下來,我們分別分析下使用原碼、反碼、補碼和移碼進行加減法運算的結果的正確性。

  • 表格的第一行中,使用原碼計算的結果為1000 0010,轉換為10進制數為-2,1-1不等于-2,所以,使用原碼進行加減法運算的結果是錯誤的。
  • 在反碼中,計算1-1的結果為1111 1111,顯然結果不為0,所以,使用反碼進行加減法運算的結果是錯誤的。
  • 在補碼中,計算1-1的結果為0000 0000,結果為0,所以,使用補碼進行加減法運算的結果是正確的。
  • 在移碼中,計算1-1的結果為1000 0000,結果為-0,雖然-0也等于0,但是嚴格意義來講,這個結果是不正確的。

在計算機中,不會使用移碼進行加減法運算,移碼用于浮點數的階碼。

數值的表示范圍

在計算機中,碼制所表示的范圍,可以分為定點整數和定點小數。在定點數中,小數點是固定的。定點整數就是說小數點在最低位的后面,也就是在最右面,此時的小數點可以忽略不寫。定點小數就是小數點在最高位的前面,也就是在最左邊。

值得注意的是:在定點整數和定點小數中,小數點都不占位數。所以,小數點在定點整數和定點小數中不會影響數值的范圍。

我們可以將定點整數和定點小數的取值范圍總結成下表所示。

碼制

定點整數

定點小數

原碼

-(2^n-1^ -1) ~ +(2^n-1^ -1)

-(1-2^-(n-1)^) ~ +(1-2^-(n-1)^)

反碼

-(2^n-1^ -1) ~ +(2^n-1^ -1)

-(1-2^-(n-1)^) ~ +(1-2^-(n-1)^)

補碼

-2^n-1^ ~ +(2^n-1^ -1)

-1~ +(1-2^-(n-1)^)

移碼

-2^n-1^ ~ +(2^n-1^ -1)

-1~ +(1-2^-(n-1)^)

表格中的n表示機器的字長,也就是用多少位二進制數表示。

這張表小伙伴們不用死記硬背,說白了,這張表,冰河也記不住,那我們怎么辦呢?不慌,這里,我給大家舉一個例子。

例如,我們這里使用4位機器字長來表示,為了理解方便,這里我用四個方框來表示4位二進制數。

圖片圖片

默認最高位為符號位,如下所示。

圖片圖片

這里我們先用4位二進制數表示定點整數,則最小值為1111,最大值為0111。

最小值1111表示如下。

圖片圖片

其轉換成10進制數為-7。

最大值0111表示如下。

圖片圖片

其轉換為10進制數為7。

這樣,我們使用4位二進制數表示的范圍,則可以計算出結果為:-7 ~ 7。也就是 -(2^4-1^ - 1)  ~ +(2^4-1^ -1),所以,當使用n位二進制數表示數值的范圍時,我們可以得出數據的表示范圍為:-(2^n-1^ - 1)  ~ +(2^n-1^ -1)

所以,我們根本就不需要記住定點整數和定點小數的取值范圍表,只需要簡單的使用一個實際的二進制位進行驗算即可得出正確的結果數據。比如,我這里以4位二進制位進行驗算舉例。

還有一點需要注意的是:補碼和移碼比原碼和反碼少一個數,就是-0。另外,驗證定點小數和驗證定點整數的方式相同,小伙伴們可自行驗證定點小數的值,這里,我就不再贅述。

如果我們使用8位二進制數表示,則定點整數的取值范圍為:

1111 1111 ~ 0111 1111 轉換為十進制數就是:-127 ~ 127,將二進制數轉換為補碼為:1000 0000 ~ 0111 1111。

其中,-128的補碼為1000 0000是人為規定的。

如果使用8位二進制數表示,則定點小數的取值范圍為:

-0.1111 1111 ~ +0.11111111,補碼的范圍為:-1~ + +0.11111111。

其中,-1的補碼為1000 0000是人為規定的。

浮點數的運算

浮點數的表示

首先,我們先來看下浮點數的表示形式,浮點數的表示形式如下,

N = 尾數 * 基數^指數^

對于浮點數來說,我們最常說的就是圓周率 π,數學上常使用3.14來表示π的值,如果使用科學計算法的話,我們可以使用形如3.14 * 10^3^ 這樣的數來表示。其中,在3.14 * 10^3^中,3.14表示尾數,10表示基數,3表示指數。

另外,3.14 * 10^3^ 可以寫成多種形式,比如可以寫成 0.314 *  10^4^,也可以寫成0.0314 *  10^5^。

浮點數的存儲格式

浮點數在計算機中的表示中,階碼是帶符號的純整數,尾數為帶符號的純小數。浮點數的表示格式如下所示。

一個數的浮點數表示不是唯一的。當小數點的位置發生改變時,階碼也會相應的改變。可以使用多個浮點形式表示同一個浮點數。浮點數的數值范圍主要由階碼決定,數值的精度則是由尾數決定的。

浮點數的運算過程

運算的過程要依次經歷對階、尾數計算和結果格式化三個階段。

例如計算:3.14 * 10^3^ + 1.5 * 10^5^的結果數據。

首先,我們需要先進行對階操作,這里有個原則就是小數向大樹看齊,這里我們需要將3.14 * 10^3^進行對階操作,轉化成0.0314 * 10^5^,然后與1.5 * 10^5^進行相加操作,得出結果數據1.5314 * 10^5^。

接下來,我們再來看看浮點數的特點。

浮點數的特點

浮點數的主要特點如下所示。

  • 一般尾數使用補碼表示,階碼使用移碼表示。
  • 階碼的位數決定數的表示范圍,位數越多范圍越大。
  • 尾數的位數決定數的有效精度,位數越多精度越高。
  • 對階時,小數向大數看齊。
  • 對階是通過較小數的尾數右移實現的。

計算機結構

計算機結構主要由運算器、控制器、存儲器、輸入設備和輸出設備組成。簡化的結構圖如下圖所示。

圖片圖片

接下來,我們再看看看其詳細的結構圖如下所示。

圖片圖片

其中,主存儲器又叫做內存儲器,也就是內存;輔助存儲器又叫做輔存,也就是外存儲器,例如磁盤;CPU的核心部件為運算器和控制器。

CPU由運算器、控制器、寄存器組和內部總線組成。

運算器包含:算術邏輯單元、累加寄存器、數據緩沖寄存器、狀態條件寄存器。

  • 算術邏輯單元(ALU):數據的算術運算和邏輯運算。
  • 累加寄存器(AC):通用寄存器,為ALU提供一個工作區,用于暫存數據。
  • 數據緩沖寄存器(DR):寫內存時,暫存指令或數據。
  • 狀態條件寄存器(PSW):存儲狀態標志和控制標志,有時也可以將狀態條件寄存器歸為控制器部分。

控制器包含:程序計數器、指令寄存器、指令譯碼器、時序部件。

圖片圖片

  • 程序計數器(PC):存儲下一條要執行的指令的地址。
  • 指令寄存器(IR):存儲即將執行的指令。
  • 指令譯碼器(ID):對指令中的操作碼字段進行分析解釋。
  • 時序部件:提供時序控制信號。

計算機體系結構分類

首先,我們先來看一個在計算機領域中,對計算機的體系結構進行分類的一種經典方法,就是Flynn分類法,Flynn分類法將計算機分成單指令流單數據流、單指令流多數據流、多指令流單數據流、多指令流多數據流。

圖片圖片

具體信息如下表所示。

體系結構類型

結構

關鍵特性

代表

單指令流單數據流(SISD)

控制部分:一個  處理器:一個   主存模塊:一個


單處理器系統

單指令流多數據流(SIMD)

控制部分:一個  處理器:多個   主存模塊:多個

各處理機以異步的形式執行同一條機靈

并行處理機、陣列處理機、超級向量處理機

多指令流單數據流(MISD)

控制部分:多個  處理器:一個   主存模塊:多個

被證明是不可能的,至少是不實際的

目前沒有,有資料記載流水線處理機為此類

多指令流多數據流(MIMD)

控制部分:多個  處理器:多個   主存模塊:多個

能夠實現作業、任務、指令等各級全面并行

多處理機系統、多計算機

指令的基本概念

一條指令就是機器語言的一個語句,它是一組有意義的二進制代碼,指令的格式如下所示。

其中,操作碼部分指出了計算機要執行什么性質的操作,例如,加法、減法、取數、存數等。地址碼字段需要包含各操作數的地址及操作結果的存放地址等,從其地址結構的角度可以分為三地址指令、二地址指令、一地址指令和零地址指令。

三地址指令

例如,執行a+b=c操作時,就是使用的三地址指令。此時如下所示。

圖片圖片

二地址指令

圖片圖片

例如,執行a+=b操作時,執行的就是二地址指令,此時如下所示。

圖片圖片

一地址指令

圖片圖片

例如,執行a++操作時,執行的就是一地址指令,此時如下所示。

零地址指令

例如,宕機就是零地址指令。

尋址方式

總體來說,尋址方式可以分為:立即尋址、直接尋址、間接尋址、寄存器尋址、寄存器間接尋址。

圖片圖片

  • 立即尋址:操作數直接在指令中,速度快,靈活性差。
  • 直接尋址:指令中存放的是操作數的地址。
  • 間接尋址:指令中存放了一個地址,這個地址對應的內容是操作數的地址。
  • 寄存器尋址:寄存器存放操作數。
  • 寄存器內存放的是操作數的地址。

CISC與RISC

CISC和RISC分別表示復雜指令集系統和精簡指令集系統,具體信息如下表所示。

指令系統類型

指令

存執方式

實現方式

其他

CISC(復雜)

數量多、使用頻率差別大,可變長格式

支持多種

微程序控制技術(微碼)

研發周期長

SISC(精簡)

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

支持方式少

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

優化編譯,有效支持高級編程語言

如何比較CISC和RISC,分哪些維度?

指令數量、指令使用頻率、存執方式、寄存器、流水線支持、高級語言支持。

  • CISC:復雜、指令數量多,頻率差別大、多尋址。
  • RISC:精簡、指令數量少。操作寄存器,單周期,少尋址,多通用寄存器,流水線,

流水線概念

流水線是指在程序執行時,多條指令重疊進行操作的一種準并行處理的實現技術。各種部件同時處理是針對不同指令而言的,它們同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度。

流水線的相關參數計算包括:流水線執行時間計算、流水線吞吐率、流水線加速比、流水線效率。

圖片圖片

在計算機中,對于指令的操作主要分為三個部分:取指、分析和執行。如下所示。

圖片圖片

如果執行取值、分析和執行各需要1ms的話,則串行執行三條指令的時間總共需要9ms。這是因為一條執行的操作需要經過取指、分析和執行三個步驟,每個步驟需要1ms,執行一條指令的時間為3ms,則串行執行三條指令的時間為9ms。我們可以用下圖來表示這個過程。

圖片圖片

在上圖的表示中,貌似執行三條指令使用9ms是沒啥問題的。但是,如果我們把圖形改造一下,我們就會發現相應的問題。我們使用下面的圖形來表示執行三條指令的情況。

此時,我們發現,在上圖執行指令操作的過程中,有很多空白的格子,而空白的格子表示在執行執行的過程中有空余的時間片資源沒有利用起來。

很顯然,沒有必要等待指令1完全執行完畢后再執行指令2,同樣的,沒有必要等待指令2完全執行完畢后再執行指令3。而且,我們發現按照上圖執行完三條指令需要9ms時間。

此時,如果將空余的時間片利用起來,則可以使用下圖來表示。

圖片圖片

此時,在執行三條指令的過程中,取指操作對指令1執行完取指后,馬上對指令2進行取指,然后又馬上對指令3進行取指;分析操作同樣是對指令1執行完分析后,馬上對指令2進行分析,然后又馬上對指令3進行分析;執行操作也是對指令1執行完畢后,馬上對指令2進行執行操作,然后又馬上對指令3進行執行操作。期間,將空余的時間片資源充分的利用起來了。

而且,我們發現,充分利用空余的時間片后,執行三條指令的時間由原來的9ms變為現在的5ms。

從另一個角度,我們發現執行完第一條指令時,需要3ms,執行完第二條指令時,只需要在執行完第一條指令的基礎上增加1ms。同樣的,執行完第三條指令時,只需要在執行完第二條指令的基礎上增加1ms。以后每增加一條指令,只需要增加1ms的時間便可以執行完此條指令。

這就是計算機中的流水線技術。接下來,我們就說說流水線技術的相關計算問題。

流水線計算

關于流水線計算,我們先來看一個圖。

圖片圖片

在上圖中,我們可以看出,執行完第一條指令時,需要3ms時間,執行完第二條指令時,只需要在執行完第一條指令的基礎上增加1ms;執行完第三條指令時,只需要在執行完第二條指令的基礎上增加1ms。

以此類推,執行完第n條指令時,只需要在執行第n-1條指令的基礎上增加1ms。說到這里,不知道小伙伴們有沒有思考這樣一個問題,流水線技術的這種規律就涉及到一個非常重要的概念,叫作 流水線周期。

流水線周期為執行時間最長的一段,上圖中的流水線周期為1ms

流水線的計算公式為:

1條指令執行時間 + (指令條數 -1)*  流水線周期

流水線的理論公式如下所示。

(t1 + t2 + ... + tk) + (n-1) * △t

其中t1,t2...tk表示執行一條指令的每個步驟分別需要的時間,n為指令的條數,△t為流水線周期。

流水線的實踐公式如下所示。

k*△t + (n-1) * △t

其中,k為執行一條指令的步驟數,n為指令的條數,△t為流水線周期。

這里,給小伙伴們舉一個例子。

例如,一條執行的執行過程可以分解為取指,分析和執行三步,在取指時間t取指=3△t,分析時間分析=2△t,執行時間t執行=4△t的情況下,若按照串行方式執行,則10條指令全部執行完需要多少△t?若按照流水線方式執行,流水線周期為多少△t?使用流水線方式時,執行完10條指令需要多少△t?

(1)串行方式比較簡單,就是將每條指令的執行時間進行累加。

(3△t + 2△t + 4△t) * 10 = 90△t。

(2)在執行一條指令的過程中,取指為3△t,分析為2△t,執行為4△t。根據流水線中對于流水線周期的定義:流水線周期為執行時間最長的一段,所以,流水線周期為4△t。

(3)使用流水線方式時,執行完10條指令需要的時間可以使用如下方式進行計算。

這里,我們分別計算下理論時間和實踐時間。

  • 理論時間

(3△t + 2△t + 4△t) + (10-1) * 4△t = 45△t。

  • 實踐時間

3 * 4△t + (10-1) * 4△t = 48△t。

超標量流水線

關于超標量流水線,我們可以使用下圖來表示。

圖片圖片

在超標量流水線中,有一個概念叫作度。度表示在超標量流水線中,由幾條流水線組成。例如上面的圖中,超標量流水線由兩條流水線組成,所以,度為2。此時的超標量流水線可以同時進行2個操作。

也就是說,可以同時執行兩個取指操作,可以同時執行兩個分析操作,也可以同時執行兩個執行操作。

如果此時有10條指令需要執行,使用以上超標量流水線的話,只需要10 / 2 = 5 條指令的時間。

流水線吞吐率計算

流水線的吞吐率(TP)是指在單位時間內流水線所完成的任務數量或輸出的結果數量。計算流水線吞吐流程的最基本的公式如下所示。

圖片圖片

流水線最大吞吐率計算公式如下所示。

圖片圖片

流水線的吞吐率計算問題相對來說還是比較簡單的。

層次化存儲結構

首先,問小伙伴們一個問題:計算機的存儲結構為什么需要進行層次化的劃分呢?

說的直接一點:就是為了減少經濟成本。如果說,CPU的價格非常便宜的話,根本就不需要內存了。可以把所有的內存容量全部都做到CPU里面去,就可以了。

但是,事實上,CPU的內存是很精貴的,至今為止,CPU中基本上還是一級緩存和二級緩存。三級緩存比較少見。而且,CPU中的存儲容量是非常小的,基本都是KB級別的存儲,CPU的內存容量也就幾KB,MB級別的CPU內存也是比較少見的。所以,出于經濟成本的考慮,計算機中的存儲結構是按照層次進行劃分的。

為了能夠讓小伙伴們更加清晰的理解層次化存儲結構,我們先來看一張圖。

圖片圖片

由上圖,可以看出:

(1)層次化的存儲結構可以分為:CPU、Cache(高速緩存)、主存(內存)、外存(輔存)。

(2)從上往下,速度越來越慢,容量越來越大。

局部性原理是層次化存儲結構的支撐。

局部性原理

一個編寫良好的計算機程序常常具有良好的局部性。也就是說。它們傾向于引用臨近于其他最近引用過的數據項的數據項,或者最近引用過的數據項本身。這匯總傾向性,就被稱為局部性原理,這是一個持久的概念,對硬件和軟件系統的設計和性能都有著極大的影響。

之所以有這個規律,很多人認為原因是:程序的指令大部分時間是順序執行的」,而且程序的集合,如數組等各種數據結構是連續存放的。

局部性原理講的是:在一段時間內,整個程序的執行僅限于程序的某一部分,相應地,程序訪問的存儲空間也局限于某個內存區域。主要分為兩類:

圖片圖片

  • 時間局部性:如果程序中的某條指令一旦執行,則不久之后該指令可能再次被執行;如果某數據被訪問,則不久之后該數據可能再次被訪問。
  • 空間局部性:是指一旦程序訪問了某個存儲單元,則不久之后,其附近的存儲單元也將被訪問。

Cache

針對Cache相關的技術,我們主要來聊聊Cache的概念和映像相關的技術。

Cache-概念

這里的Cache表示的是高速緩沖,在計算機的存儲體系系統中,Cache是除寄存器外訪問速度最快的層次。使用Cache改善系統性能的依據是程序的局部性原理 。

如果以h代表對Cache的訪問命中率,t1表示Cache的周期時間,t2表示主存儲器的周期時間,以讀操作為例,使用“Cache+主存儲器”的系統的平均周期為t3,則可以得出如下運算公式。

t3 = h * t1 + (1 - h) * t2

其中。(1 - h)又稱為失效率,也就是未命中率。

Cache-映像

Cache的映像分為三種,分別是:直接相聯映像、全相聯映像、組相聯映像。

圖片圖片

  • 直接相聯映像:硬件電路比較簡單,但沖突率最高。
  • 全相連映像:電路難于設計和實現,只適用于小容量的Cache,沖突率比較低。
  • 組相聯映像:直接相聯與全相聯的折中。

地址映像是將主存與Cache的存儲空間劃分為若干大小相同的頁(或稱為塊)。

例如,一臺計算機的主存容量為1GB,劃分為2048頁,每頁512KB;Cache的容量為8MB,劃分為16頁,每頁512KB。接下來,我們由此來詳細圖解直接相聯映像、全相聯映像和組相聯映像。

直接相聯映像

我們可以畫一組圖來表示Cache的直接映像。首先,我們先來簡單畫一個主存標記、Cache頁號和頁內地址的示意圖。如下所示。

圖片圖片

如上圖所示,主存標記為7位,Cache頁號為4位,頁內地址為19位。

記錄主存區號的示意圖如下所示。

圖片圖片

有了上面兩張圖的基礎后,我們再來看直接相聯映像的示意圖如下所示。

圖片圖片

這里,我們將容量為1GB的主存劃分成2048頁,總共127個區,每頁的容量為512KB。將容量為8MB的Cache劃分為16頁,每頁容量為512KB。

所謂直接相聯映像是指Cache中的0頁只能存儲主存中0頁的內容,這里主存中0頁指的是每個區的0頁,比如上圖中的0區的0頁,1區的16頁,127區的2032頁等。

在直接相聯映像中,只需要記錄主存標記、Cache頁號和頁內地址就能夠快速的找到主存中的數據。

使用直接相聯映像有個缺點:那就是如果Cache中的0頁,存儲了主存中0區0頁的內容時,如果此時需要存儲主存1區中的16頁內容,就只能將主存0區中0頁的內容從Cache的0頁中清除,然后將主存1區中16頁的內容存儲到Cache中的0頁內。沖突率比較高。細心的小伙伴會發現:這其實是違背局部性原理的。

直接相聯映像訪問速度最快,但沖突率最高。

全相連映像

我們先來看下全相聯映像的主存頁標記和頁內地址的示意圖,如下所示。

圖片圖片

此時,使用11位來標識主存頁標記,使用19位來標識頁內地址。

使用全相連映像需要記錄主存與Cache的對應關系,如下圖所示。

圖片圖片

接下來,我們來看看全相連映像的示意圖,如下所示。

圖片圖片

從圖中可以看出,Cache中的任何一個也,都可以存儲主存中的任何一個頁。

使用全相連映像訪問速度最慢,沖突率最低。

組相聯映像

組相聯映像本質上是直接相聯映像和全相聯映像的折中。同樣的,我們先來看組相連映像的存儲示意圖。

圖片圖片

此時,在組相連映像中,Cache組號使用3位表示,組內頁號使用1位表示,頁內地址使用19位表示。其中,3位的Cache組號,1位的組內頁號和前面的7位構成了主存頁標記;3位的Cache組號,1位的組內頁號和19號的頁內地址構成了Cache地址。

接下來,我們再來看看主存與Cache的對應關系,如下圖所示。

圖片圖片

組相連的映像示意圖如下所示。

圖片圖片

由上圖可知,在組相連映像中,主存的組與Cache的組是組相聯映像關系,而在組內則是通過直接相聯映像來訪問和存儲數據。

主存編址與計算

這里,小伙伴們首先要區分兩個概念,一個是編址,一個是尋址。

編址: 存儲器是由一個個存儲單元構成的,為了對存儲器進行有效的管理,就需要對各個存儲單元編上號,即給每個單元賦予一個地址碼,這叫編址。經編址后,存儲器在邏輯上便形成一個線性地址空間。

尋址:存取數據時,必須先給出地址碼,再由硬件電路譯碼找到數據所在地址,這叫尋址。

編址可以分為兩種:按字編址和按字節編址。

圖片圖片

  • 按字編址:存儲體的存儲單元是字存儲單元,即最小尋址單位是一個字。
  • 按字節編址:存儲體的存儲單元是字節存儲單元,即最小尋址單位是一個字節。

對于主存編址中最常見的計算形式為:根據存儲器所要求的容量和選定的存儲芯片的容量,就可以計算出所需要的芯片的數量。公式如下所示。

總片數 = 總容量 / 每片的容量

這里,給小伙伴們舉一個例子:若內存地址區間為4000H ~ 43FFH,每個存儲單元可存儲16位二進制數,該內存區域使用4片存儲器芯片構成,則構成該內存所用的存儲器芯片的容量是多少?

解題思路也比較簡單,我們一起來看看如何解題:

(1)首先,我們來求解4000H ~ 43FFH地址空間的總容量,使用終止地址-起始地址+1即可得到總容量,也就是43FFH - 4000H + 1 = 43FFH + 1 - 4000H = 4400H - 4000H = 400H。

注意:在計算機中,以H結尾的數字是十六進制,逢16進1,而F在十六進制中表示15,所以,43FFH + 1 = 4400H。

所以,4000H ~ 43FFH地址空間的總容量為400H。

(2)接下來,我們要把400H轉換成二進制,對于十六進制數轉換成二進制數來說,每一位十六進制數對應著四位的二進制數,我們可以把400H拆分成4、0、0三部分,4轉換成二進制數就表示0100,十六進制的0轉換成二進制為0000。所以,400H轉換成二進制的結果為:0100 0000 0000。

0100 0000 0000也就是2的10次方,即為2^10^。

(3)題目中說的每個存儲單元可存儲16位二進制數,所有總共可以存儲的二進制數就是:2^10^ * 16。

(4)該區域使用4片存儲器芯片構成,所以,存儲芯片的容量為:2^10^ * 16 / 4 = 2^10^ * 4 = 2^12^,最終的結果單位為bit。

總線

一條總線同一時刻只允許一個設備發送數據,但允許多個設備接收數據。

總線的分類

總線可以分為數據總線、地址總線和控制總線。

圖片圖片

  • 數據總線(Data Bus):在CPU和RAM之間來回傳送需要處理或是需要存儲的數據。
  • 地址總線(Address Bus):用來指定在RAM(Random Access Memory)之中存儲的數據的地址。
  • 控制總線(Control Bus):將微處理器控制單元(Control Unit)的信號傳送到周邊設備,一般常見的為USB Bus和1394 Bus。

串聯系統與并聯系統

這里,先給小伙伴們簡單介紹下什么是串聯系統,什么是并聯系統。

串聯系統

串聯系統是組成系統的所有單元中任一單元失效就會導致整個系統失效的系統。把用電器各元件逐個順次連接起來,接入電路就組成了串聯電路。我們常見的裝飾用的"滿天星"小彩燈,常常就是串聯的。

串聯電路有以下一些特點:

⑴電路連接特點:串聯的整個電路是一個回路,各用電器依次相連,沒有"分支點"。

⑵用電器工作特點:各用電器相互影響,電路中一個用電器不工作,其余的用電器就無法工作。

⑶開關控制特點:串聯電路中的開關控制整個電路,開關位置變了,對電路的控制作用沒有影響。即串聯電路中開關的控制作用與其在電路中的位置無關。

注:以上對于串聯系統的描述來源于網絡。

接下來,我們來看一個關于串聯系統的圖形表示,這里我們假設串聯系統中每個部分的可靠度依次為R1,R2,...Rn,如下所示。

圖片圖片

則整個系統的可靠度為:R = R1 * R2 * ... * Rn。

并聯系統

并聯系統指的是組成系統的所有單元都失效時才失效的系統。把電路中的元件并列地接到電路中的兩點間,電路中的電流分為幾個分支,分別流經幾個元件的連接方式叫并聯。

并聯電路是使在構成并聯的電路元件間電流有一條以上的相互獨立通路,為電路組成二種基本的方式之一。例如,一個包含兩個電燈泡和一個9 V電池的簡單電路。若兩個電燈泡分別由兩組導線分開地連接到電池,則兩燈泡為并聯。

即若干二端電路元件共同跨接在一對節點之間的連接方式。這樣連成的總體稱為并聯組合。其特點是:

①組合中的元件具有相同的電壓;

②流入組合端點的電流等于流過幾個元件的電流之和;

③線性時不變電阻元件并聯時,并聯組合等效于一個電阻元件,其電導等于各并聯電阻的電導之和,稱為并聯組合的等效電導,其倒數稱為等效電阻

注:以上對于并聯系統的描述來源于網絡。

接下來,我們來看一個關于并聯系統的圖形表示,這里我們假設并聯系統中每個部分的可靠度依次為R1,R2,...Rn,如下所示。

圖片圖片

則整個并聯系統的可靠度R = 1 - (1 - R1)  *  (1 - R2) * ... * (1-Rn)。

混合型系統

混合型系統就是既有串聯系統,又有并聯系統的系統,這里,我們也使用一個圖形進行表示,如下所示。

圖片圖片

所以,上圖并聯系統的可靠度為:R * (1 - (1 - R) ^3^)  * (1 - (1 - R) ^2^)

責任編輯:武曉燕 來源: 冰河技術
相關推薦

2021-02-26 05:17:38

計算機網絡二進制

2020-11-16 10:47:14

FreeRTOS應用嵌入式

2021-10-18 11:58:56

負載均衡虛擬機

2022-09-06 08:02:40

死鎖順序鎖輪詢鎖

2024-05-10 12:59:58

PyTorch人工智能

2022-04-25 10:56:33

前端優化性能

2021-01-19 05:49:44

DNS協議

2020-09-25 10:50:56

C++語言代碼

2022-09-14 09:01:55

shell可視化

2022-09-08 10:14:29

人臉識別算法

2020-07-15 08:57:40

HTTPSTCP協議

2022-07-19 16:03:14

KubernetesLinux

2024-03-07 18:11:39

Golang采集鏈接

2022-10-10 08:35:17

kafka工作機制消息發送

2020-07-09 07:54:35

ThreadPoolE線程池

2022-09-27 14:01:25

知識圖譜人工智能網絡空間

2023-06-12 08:49:12

RocketMQ消費邏輯

2024-01-11 09:53:31

面試C++

2024-01-05 08:30:26

自動駕駛算法

2022-07-15 16:31:49

Postman測試
點贊
收藏

51CTO技術棧公眾號

欧美黄片一区二区三区| 可以免费观看av毛片| 国产日韩欧美一区二区东京热| 欧美日中文字幕| 欧美色综合影院| 91香蕉视频网址| 亚洲国产精品一| 国产精品最新自拍| 最近2019年日本中文免费字幕| 天天久久综合网| rebdb初裸写真在线观看| 99精品国产一区二区三区不卡| 日韩暖暖在线视频| 翔田千里88av中文字幕| 啪啪国产精品| 在线成人av网站| 奇米精品一区二区三区| 最新97超碰在线| jvid福利写真一区二区三区| 国产精品美乳在线观看| 男人天堂中文字幕| 亚洲h色精品| 日韩av在线不卡| 久久久九九九热| 日韩一区二区三区在线免费观看 | 制服丨自拍丨欧美丨动漫丨| 福利片一区二区| 欧美熟乱第一页| 久久久久久久久久久99| 18网站在线观看| 国产日产欧产精品推荐色| 成人女人免费毛片| 亚洲一区二区人妻| 久久精品三级| 97久久久久久| 婷婷久久综合网| 超碰成人久久| 亚洲精品在线看| 国产女主播在线播放| 成人在线免费av| 色天使色偷偷av一区二区| 91九色国产ts另类人妖| 婷婷成人激情| 欧美激情一区二区三区全黄 | 污污视频网站在线| 日韩欧美一区二区三区免费观看 | www久久精品| 国产精品中出一区二区三区| 国产三级伦理片| 久久99精品一区二区三区| 国产精品白嫩美女在线观看| 久久久久久久久久久影院| 在线免费观看欧美| 久久久久五月天| 天天看天天摸天天操| 日韩激情在线| 中文字幕日韩欧美精品在线观看| jizz欧美性20| 日韩在线黄色| 亚洲精品日韩在线| 国产麻豆天美果冻无码视频| 老汉色老汉首页av亚洲| 亚洲第一av在线| 国产亚洲色婷婷久久99精品91| 国产精品白浆| 日韩av在线高清| 国产精品无码久久久久一区二区| 天天躁日日躁成人字幕aⅴ| 亚洲黄色av网站| 国产制服丝袜在线| 国产精品亚洲二区| 亚洲一级黄色片| 久久久精品成人| 91久久电影| 久操成人在线视频| 一级aaa毛片| 视频一区欧美精品| 国产一区视频在线播放| av免费在线不卡| 丁香一区二区三区| 久久精品国产美女| 国产午夜在线观看| 综合自拍亚洲综合图不卡区| 色一情一乱一乱一区91| xxx性欧美| 日韩欧亚中文在线| 最新免费av网址| 人人爱人人干婷婷丁香亚洲| 亚洲二区在线播放视频| 久久精品国产亚洲AV熟女| 色综合天天综合网中文字幕| 欧美成人精品在线播放| 日韩欧美高清在线观看| 久久蜜桃资源一区二区老牛| 国产欧美一区二区三区四区| 成人av免费播放| 2020日本不卡一区二区视频| 伊人久久大香线蕉午夜av| 久草在线视频网站| 91福利视频久久久久| 国产精品久久久久久久99| 欧美高清视频看片在线观看| 中文字幕日韩在线观看| 久久久久99精品成人片毛片| 久久午夜激情| 成人片在线免费看| a√资源在线| 亚洲国产成人va在线观看天堂| 精品免费国产一区二区| 欧洲大片精品免费永久看nba| 日韩精品极品在线观看| 成人在线观看高清| 噜噜噜在线观看免费视频日韩| 成人日韩av在线| 你懂得在线网址| 亚洲综合视频网| www.天天射.com| 国产精品极品在线观看| 日韩一区视频在线| 日韩精品久久久久久免费| 国产精品亚洲一区二区三区妖精| 欧美伦理一区二区| www.综合网.com| 欧美电影影音先锋| 久久av无码精品人妻系列试探| 欧美精品激情| 国产综合视频在线观看| 国产在线播放av| 精品色蜜蜜精品视频在线观看| 国产高清av片| 日韩中文在线电影| 日韩av电影免费观看高清| 国产综合在线播放| 一区二区三区在线观看国产| 黄色三级视频在线| 免费av一区| 68精品国产免费久久久久久婷婷| 精品国产伦一区二区三区| 国产精品美女久久久久aⅴ国产馆| 亚洲熟女乱色一区二区三区| 在线一区二区三区视频| 欧美成人全部免费| 国产男女猛烈无遮挡| 国产精品每日更新在线播放网址 | 久久国产免费看| 日韩精品伦理第一区| 国产欧美一区二区三区精品酒店| 亚洲成人精品久久| 国产精品99无码一区二区| 国产成人精品在线看| 国内外成人激情免费视频| 成人国产综合| 日韩亚洲国产中文字幕| 亚洲一区中文字幕在线| 国产精品美女久久福利网站| 污片在线免费看| 日韩国产一区二区| 成人av色在线观看| 好了av在线| 欧美一区二区三区性视频| 国产天堂av在线| 国产自产v一区二区三区c| 异国色恋浪漫潭| 精品视频一二| 久久久久久久久久国产精品| 人妻中文字幕一区| 欧美日韩国产色| 泷泽萝拉在线播放| 日本视频在线一区| 一区二区三区国| 国产亚洲久久| 欧美国产日本高清在线 | 欧美 国产 精品| 在线精品视频一区| 热re99久久精品国产66热| 成人亚洲综合天堂| 欧美高清视频不卡网| 久久久久亚洲av无码专区体验| 国产盗摄精品一区二区三区在线| 国产乱子伦精品无码专区| 女同久久另类99精品国产| 全球成人中文在线| 麻豆影视在线观看_| 精品久久久久久久久久久久久久久久久 | www日韩欧美| www黄色网址| 黑人巨大精品欧美一区二区免费| 国产一级久久久久毛片精品| 九色porny丨国产精品| 欧美高清中文字幕| 欧美美乳视频| 亚洲一区二区三区777| 国产免费拔擦拔擦8x在线播放| 亚洲四色影视在线观看| av一级黄色片| 日韩欧美在线中文字幕| 国产尤物在线播放| 99久久精品一区| 美女在线视频一区二区| 国产精品www994| 日韩欧美99| 风间由美一区二区av101| 国产精品爽爽ⅴa在线观看| 国内在线视频| 社区色欧美激情 | 无码国产色欲xxxx视频| 欧美精三区欧美精三区| 国产精品久久久久久久久久久久久久久久久| 中文成人av在线| 尤物网站在线观看| 精彩视频一区二区三区| 亚洲成熟丰满熟妇高潮xxxxx| 午夜精品一区二区三区国产| 欧美xxxx黑人又粗又长密月| 日韩精品一区二区三区中文| 国产精品成人观看视频国产奇米| 性欧美1819sex性高清大胸| 一本色道久久88精品综合| 黄色一级大片在线免费看国产| 精品视频全国免费看| 99热只有这里有精品| 亚洲精品ww久久久久久p站| 最近中文字幕免费| av亚洲精华国产精华精华| 亚洲黄色片免费| 美女脱光内衣内裤视频久久网站| 国产成人无码a区在线观看视频| 亚洲精品小说| 亚洲日本japanese丝袜| 欧美日本成人| 久久久神马电影| 荡女精品导航| 99理论电影网| 韩国一区二区三区视频| 国产裸体写真av一区二区 | 成人黄色免费看| 蜜桃成人精品| 日韩av电影国产| 国产高清不卡| 51久久精品夜色国产麻豆| 超碰在线最新网址| 欧美福利视频在线| 91麻豆一二三四在线| www国产精品com| 二区三区在线观看| 久久久久北条麻妃免费看| 免费在线观看黄色网| 日韩中文字幕精品视频| 在线视频婷婷| 丝袜美腿亚洲一区二区| 97超碰人人在线| 中文字幕精品久久| av在线播放av| 深夜福利一区二区| 久草免费在线观看| 欧美成人h版在线观看| 超碰公开在线| 久久国产精品久久久久久久久久| 超碰在线caoporen| 欧美精品videosex性欧美| 国产91足控脚交在线观看| 欧美激情国内偷拍| free性m.freesex欧美| 欧美性受xxxx白人性爽| 不卡福利视频| 国产精品视频网| 国产精品一站二站| 国产精品三区www17con| 日本中文字幕在线一区| 日本不卡一区二区三区视频| 成人女性视频| 色婷婷777777仙踪林| 亚洲午夜激情在线| 国产精品免费观看久久| 日韩电影一二三区| 在线免费观看av网| 国产精品一区二区免费不卡| 2一3sex性hd| 国产欧美视频在线观看| 大地资源高清在线视频观看| 一区二区三区四区激情| 欧美一区二区激情视频| 欧美日韩一区 二区 三区 久久精品| 国产精品玖玖玖| 亚洲成人av在线| 国产黄在线观看| 久久97精品久久久久久久不卡| 成年人黄色大片在线| 国产精品久久av| 中文字幕一区二区三区四区久久 | 国产欧美日韩在线观看视频| 一本久久a久久精品vr综合 | 欧美韩国日本不卡| 91插插插插插插| 日韩欧美精品网站| 国产一区二区三区四区视频| 欧美变态tickle挠乳网站| 手机福利小视频在线播放| 精品国产一区二区三区久久狼黑人| 四虎影院观看视频在线观看| 日韩av手机在线看| 精品网站999| 日韩国产美国| 激情综合视频| 五月天婷婷亚洲| 99精品在线免费| 成人免费黄色小视频| 色欧美88888久久久久久影院| 国产按摩一区二区三区| 国产亚洲成精品久久| a毛片不卡免费看片| 国产精品自拍网| 九九亚洲视频| 妺妺窝人体色777777| 久久精品国产亚洲aⅴ| 大地资源二中文在线影视观看| 中文字幕在线视频一区| 欧美一二三区视频| 日韩欧美一二区| √天堂资源地址在线官网| 欧美在线欧美在线| 亚洲视频国产精品| 免费看av软件| 麻豆一区二区99久久久久| 18禁裸乳无遮挡啪啪无码免费| 一区二区三区欧美日韩| 亚洲天堂中文网| 亚洲日本欧美日韩高观看| www在线观看黄色| 国产高清一区二区三区| 亚洲区综合中文字幕日日| 人人爽人人av| 久久久91精品国产一区二区三区| 久久精品视频9| 日韩美女在线视频| 97影院秋霞午夜在线观看| 国产精品一二三在线| 九九亚洲精品| 欧美精品aaaa| 久久久精品国产免大香伊| 毛片在线免费视频| 精品91自产拍在线观看一区| 少女频道在线观看高清| 亚洲xxxxx电影| 亚洲视频在线免费| 日本网站在线看| 亚洲欧美另类久久久精品2019| 中文字幕自拍偷拍| 日韩在线视频网站| 日韩精品一页| 最新精品视频| 精品一区二区三区在线播放| 黄色录像免费观看| 9191国产精品| 中文字幕免费高清电视剧网站在线观看| 成人女保姆的销魂服务| 7777久久香蕉成人影院| 亚洲五月激情网| 一区二区三区久久| 免费a级片在线观看| 97精品一区二区三区| 亚洲制服一区| 另类小说色综合| 亚洲欧美日韩国产手机在线| 国产高清第一页| 午夜精品久久久99热福利| 亚洲大片精品免费| 麻豆一区二区三区视频| 亚洲色图丝袜美腿| 成人免费观看在线视频| 2018日韩中文字幕| 国内亚洲精品| 欧洲美女亚洲激情| 精品久久久久久国产91| 黄色毛片在线看| 91精品免费久久久久久久久| 国内自拍一区| 搡老熟女老女人一区二区| 色94色欧美sute亚洲13| 免费大片在线观看www| 俄罗斯精品一区二区| 久久狠狠一本精品综合网| 国产大屁股喷水视频在线观看| 日韩三级免费观看| 亚洲美女炮图| 国产精品无码乱伦| www.亚洲激情.com| 亚洲怡红院av| 国色天香2019中文字幕在线观看| 精品综合久久88少妇激情| 啊啊啊国产视频| 一区av在线播放| 国产视频二区在线观看| 97av自拍| 奇米色777欧美一区二区| 免费在线观看av网址| 国产亚洲欧美另类中文| 最新国产一区二区| 毛葺葺老太做受视频| 一区二区三区中文字幕|