tft每日頭條

 > 生活

 > 計算機cpu原理

計算機cpu原理

生活 更新时间:2025-02-13 22:13:47
  • 計算機結構組成

内外存儲器: 實現記憶功能的部件⽤來存放計算程序及參與運算的各種數據

CPU運算器: 負責數據的算術運算和邏輯運算即數據的加⼯處理

CPU控制器:負責對程序規定的控制信息進⾏分析,控制并協調輸⼊,輸出操作或内存訪問

輸⼊設備: 實現計算程序和原始數據的輸⼊

輸出設備: 實現計算結果輸出1、2、2 計算機系統組成1、2、3 程序和指令

指令是對計算機進⾏程序控制的最⼩單位。

計算機cpu原理(計算機原理)1

計算機系統組成

計算機cpu原理(計算機原理)2

1、2、3 程序和指令

指令是對計算機進⾏程序控制的最⼩單位。

所有的指令的集合稱為計算機的指令系統。

程序是為完成⼀項特定任務⽽⽤某種語⾔編寫的⼀組指令序列。

  • CPU結構

中央處理器(CPU,central processing unit)作為計算機系統的運算和控制核⼼,是信息處理、程序運⾏的最終執⾏單元。

計算機cpu原理(計算機原理)3

cpu

該圖表現了在指令執⾏周期中相互交互部件之間的關系。在從内存讀取程序指令之前,将其地址放到地址總線上。然後,内存控制器将所需代碼送到數據總線上,存⼊代碼⾼速緩存 (code cache)。指令指針的值決定下⼀條将要執⾏的指令。指令由指令譯碼器分析,并産⽣相應的數值信号送往控制單元,其協調 ALU 和浮點單元。雖然圖中沒有畫出控制總線,但是其上傳輸的信号⽤系統時鐘協調不同 CPU 部件之間的數據傳輸。

  • CPU構成

CPU主要由運算器控制器寄存器組内部總線構成。

運算器:由算術邏輯單元ALU、通⽤寄存器、數據暫存器等組成。程序狀态字寄存器接受從控制器送來的命令并執⾏相應的動作,主要負責對數據的加工和處理。

控制器:由程序計數器PC、指令寄存器IR、地址寄存器AR、數據寄存器DR、指令譯碼器等。負責對程序規定的控制信息進⾏分析,控制并協調輸⼊,輸出操作或内存訪問

寄存器:寄存器的功能是存儲⼆進制代碼,它是由具有存儲功能的觸發器組合起來構成的。

總線:總線是⼀種内部結構,它是cpu、内存、輸⼊、輸出設備傳遞信息的公⽤通道,主機的各個部件通過總線相連接,外部設備通過相應的接⼝電路再與總線相連接。

  • 寄存器

CPU 本身隻負責運算,不負責儲存數據。數據⼀般都儲存在内存之中,CPU 要⽤的時候就去内存讀寫數據。但是,CPU 的運算速度遠⾼于内存的讀寫速度,為了避免被拖慢,CPU 都⾃帶⼀級緩存和⼆級緩存。基本上,CPU 緩存可以看作是讀寫速度較快的内存。但是,CPU 緩存還是不夠快,另外數據在緩存⾥⾯的地址是不固定的,CPU 每次讀寫都要尋址也會拖慢速度。因此,除了緩存之外,CPU 還⾃帶了寄存器(register),⽤來儲存最常⽤的數據。也就是說,那些最頻繁讀寫的數據(⽐如循環變量),都會放在寄存器⾥⾯,CPU 優先讀寫寄存器,再由寄存器跟内存交換數據。

計算機cpu原理(計算機原理)4

寄存器名字

寄存器、緩存、内存三者關系

按與CPU遠近來分,離得最近的是寄存器,然後緩存(CPU緩存),最後内存。

CPU計算時,先預先把要⽤的數據從硬盤讀到内存,然後再把即将要⽤的數據讀到寄存器。于是

CPU〈---〉寄存器〈---〉内存,這就是它們之間的信息交換。

那為什麼有緩存呢?因為如果經常操作内存中的同⼀址地的數據,就會影響速度。于是就在寄存器與内存之間設置⼀個緩存。因為從緩存提取的速度遠⾼于内存。當然緩存的價格肯定遠遠⾼于内存,不然的話,機器⾥就沒有内存的存在。

由此可以看出,從遠近來看:CPU〈---〉寄存器〈---〉緩存 〈---〉内存。

  • 進制

進制也就是進位制,是⼈們規定的⼀種進位⽅法。 對于任何⼀種進制—X進制,就表示某⼀位置上的數運算時是逢X進⼀位。 ⼗進制是逢⼗進⼀,⼗六進制是逢⼗六進⼀,⼆進制就是逢⼆進⼀,以此類推,x進制就是逢x進位。

計算機cpu原理(計算機原理)5

  • ⼆進制

⼆進制是計算技術中⼴泛采⽤的⼀種數制。⼆進制數據是⽤0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢⼆進⼀”,借位規則是“借⼀當⼆”。

當前的計算機系統使⽤的基本上是⼆進制系統,數據在計算機中主要是以補碼的形式存儲的。

計算機cpu原理(計算機原理)6

⼗進制轉化⼆進制的⽅法:⽤⼗進制數除以2,分别取餘數和商數,商數為0的時候,将餘數倒着

計算機cpu原理(計算機原理)7

數就是轉化後的結果。⼗進制的⼩數轉換成⼆進制:⼩數部分和2相乘,取整數,不⾜1取0,每次相乘都是⼩數部分,順序看取整後的數就是轉化後的結果。

計算機cpu原理(計算機原理)8

  • ⼋進制

⼋進制,Octal,縮寫OCT或O,⼀種以8為基數的計數法,采⽤0,1,2,3,4,5,6,7⼋個數字,逢⼋進1。⼀些編程語⾔中常常以數字0開始表明該數字是⼋進制。⼋進制的數和⼆進制數可以按位對應(⼋進制⼀位對應⼆進制三位),因此常應⽤在計算機語⾔中。⼗進制轉化⼋進制的⽅法:

計算機cpu原理(計算機原理)9

⽤⼗進制數除以8,分别取餘數和商數,商數為0的時候,将餘數倒着數就是轉化後的結果。

  • ⼗六進制

⼗六進制(英⽂名稱:Hexadecimal),同我們⽇常⽣活中的表示法不⼀樣,它由0-9,A-F組成,字⺟不區分⼤⼩寫。與10進制的對應關系是:0-9對應0-9,A-F對應10-15。

⼗六進制的數和⼆進制數可以按位對(⼗六進制⼀位對應⼆進制四位),因此常應⽤在計算機語⾔中。

計算機cpu原理(計算機原理)10

⼗進制轉化⼗六進制的⽅法:

⽤⼗進制數除以16,分别取餘數和商數,商數為0的時候,将餘數倒着數就是轉化後的結果。

計算機cpu原理(計算機原理)11

十進制轉十六進制

  • 進制在代碼中表現形式

計算機cpu原理(計算機原理)12

func main() { a := 10 //⼗進制 b := 010 //⼋進制 c := 0x10 //⼗六進制 //%d 占位符 表示輸出⼀個⼗進制整型數據 fmt.Printf("%d\n",a) //%o 占位符 表示輸出⼀個⼗進制整型數 fmt.Printf("%o\n",b) //%x %X 占位符 表示輸出⼀個⼗進制整型數據 fmt.Printf("%x\n",c) }

  • 原碼

⼀個數的原碼(原始的⼆進制碼)有如下特點:

  • 最⾼位做為符号位,0表示正,為1表示負
  • 其它數值部分就是數值本身絕對值的⼆進制數
  • 負數的原碼是在其絕對值的基礎上,最⾼位變為1

計算機cpu原理(計算機原理)13

原碼表示法簡單易懂,與帶符号數本身轉換⽅便,隻要符号還原即可,但當兩個正數相減或不同符号數相加時,必須⽐較兩個數哪個絕對值⼤,才能決定誰減誰,才能确定結果是正還是負,所以原碼不便于加減運算。

  • 反碼

計算機cpu原理(計算機原理)14

對于正數,反碼與原碼相同

對于負數,符号位不變,其它部分取反(1變0,0變1)

反碼運算也不⽅便,通常⽤來作為求補碼的中間過渡。

  • 補碼

在計算機系統中,數值⼀律⽤補碼來存儲。

補碼特點:

  • 對于正數,原碼、反碼、補碼相同
  • 對于負數,其補碼為它的反碼加1
  • 補碼符号位不動,其他位求反,最後整個數加1,得到原碼

計算機cpu原理(計算機原理)15

  • 補碼的意義

⽤8位⼆進制數分别表示 0和-0⼗進制數

計算機cpu原理(計算機原理)16

不管以原碼⽅式存儲,還是以反碼⽅式存儲,0也有兩種表示形式。為什麼同樣⼀個0有兩種不同的表示⽅法呢?

但是如果以補碼⽅式存儲,補碼統⼀了零的編碼:

計算9-6的結果

計算機cpu原理(計算機原理)17

以原碼⽅式相加:

最⾼位的1溢出,剩餘8位⼆進制表示的是3,正确。

計算機cpu原理(計算機原理)18

在計算機系統中,數值⼀律⽤補碼來存儲,主要原因是:

  • 統⼀了零的編碼
  • 将符号位和其它位統⼀處理
  • 将減法運算轉變為加法運算
  • 兩個⽤補碼表示的數相加時,如果最⾼位(符号位)有進位,則進位被舍棄
  • 指針和内存

内存

内存含義:

存儲器:計算機的組成中,⽤來存儲程序和數據,輔助CPU進⾏運算處理的重要部分。

内存:内部存貯器,暫存程序/數據——掉電丢失 SRAM、DRAM、DDR、DDR2、DDR3。

外存:外部存儲器,⻓時間保存程序/數據—掉電不丢ROM、ERRROM、FLASH(NAND、

NOR)、硬盤、光盤。

内存是溝通CPU與硬盤的橋梁:暫存放CPU中的運算數據

暫存與硬盤等外部存儲器交換的數據

  • 物理存儲器和存儲地址空間

有關内存的兩個概念:物理存儲器和存儲地址空間。

物理存儲器:實際存在的具體存儲器芯⽚。

主闆上裝插的内存條

顯示卡上的顯示RAM芯⽚

各種适配卡上的RAM芯⽚和ROM芯⽚

存儲地址空間:對存儲器編碼的範圍。我們在軟件上常說的内存是指這⼀層含義。

編碼:對每個物理存儲單元(⼀個字節)分配⼀個号碼

尋址:可以根據分配的号碼找到相應的存儲單元,完成數據的讀寫

  • 内存地址

将内存抽象成⼀個很⼤的⼀維字符數組。

編碼就是對内存的每⼀個字節分配⼀個32位或64位的編号(與32位或者64位處理器相關)。

這個内存編号我們稱之為内存地址。

内存中的每⼀個數據都會分配相應的地址:

char:占⼀個字節分配⼀個地址

int: 占四個字節分配四個地址

flfloat、struct、函數、數組等

  • 指針

隻要将數據存儲在内存中都會為其分配内存地址。内存地址使⽤⼗六進數據表示。

内存為每⼀個字節分配⼀個32位或64位的編号(與32位或者64位處理器相關)。

  • 内存區的每⼀個字節都有⼀個編号,這就是“地址”。
  • 如果在程序中定義了⼀個變量,在對程序進⾏編譯或運⾏時,系統就會給這個變量分配内存單元,并确定它的内存地址(編号)
  • 指針的實質就是内存“地址”。指針就是地址,地址就是指針。
  • 指針是内存單元的編号,指針變量是存放地址的變量。
  • 通常叙述時會把指針變量簡稱為指針,實際他們含義并不⼀樣。

計算機cpu原理(計算機原理)19

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved