在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

計算機最核心的CPU 12大知識點

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2020-09-27 10:10 ? 次閱讀

作為一名程序員,與計算機打交道的日子不計其數,不管你玩硬件還是做軟件,你的世界自然都少不了計算機最核心的 —— CPU

01 CPU是什么? CPU與計算機的關系就相當于大腦和人的關系,它是一種小型的計算機芯片,通常嵌入在電腦的主板上。 CPU的構建是通過在單個計算機芯片上放置數十億個微型晶體管來實現。 這些晶體管使它能夠執行運行存儲在系統內存中的程序所需的計算,所以,也可以說CPU決定了你電腦的計算能力。 02 CPU實際做什么? CPU的工作核心是從程序或應用程序中獲取指令并且執行計算。 這個過程一共有三個關鍵階段:提取,解碼和執行。 CPU先從系統的RAM中提取指令,隨后解碼該指令的實際內容,最后再由CPU的相關部分執行該指令。 03 CPU的內部結構 剛才提到了很多CPU的重要性,那么CPU的內部結構是什么呢?又是由什么組成的呢? 下圖展示了一般程序的運行流程(以C語言為例),一般來說,了解程序的運行流程是掌握程序運行機制的基礎和前提。

在這個流程中,CPU負責解釋和運行最終轉換成機器語言的內容,CPU主要由兩部分構成:控制單元和算數邏輯單元(ALU)。

控制單元:從內存中提取指令并解碼執行;

算數邏輯單元(ALU):處理算數和邏輯運算。

CPU和內存都是由許多晶體管組成的電子部件,可以把它比作計算機的心臟和大腦。 它能夠接收數據輸入、執行指令并且處理相關信息,它與輸入/輸出(I/O)設備進行通信,這些設備向 CPU 發送數據和從 CPU 接收數據。 從功能上來看,CPU的內容是由寄存器控制器、運算器和時鐘四部分組成的,各個部分之間通電信號來連通。 接下來簡單介紹一下內存,為什么說到CPU需要講一下內存呢? 因為內存是與CPU進行溝通的橋梁,計算機中所有程序的運行都在內存中得到運行的。 內存一般又被稱為主存,它的作用是存放CPU中的運算數據,以及與硬盤等外部存儲設備交換的數據。 CPU會在計算機運轉時,把需要運算的數據調到主存中進行運算。 在運算完成之后,CPU將結果傳送出來,主存的運行也決定了計算機的穩定運行。 主存一般通過控制芯片與CPU相連,由可讀寫的元素構成,每個字節都有一個地址編號。 CPU通過地址從主存中讀取數據和指令,也可以根據地址寫入數據,注意一點:當計算機關機時,內存中的指令和數據也會被清除。 04 CPU是寄存器的集合體 在CPU的四個結構中,寄存器的重要性遠遠高于其余三個,為什么這么說?因為程序通常是把寄存器作為對象來進行描述的。 而說到寄存器,就不得不說到匯編語言,說到匯編語言,就不得不說到高級語言,說起高級語言也就不得不提及語言的概念。 05 計算機語言 人和人之間最古老和直接的溝通媒介是語言,但是和計算機溝通,就必須按照計算機指令來交換,其中就涉及到語言的問題。 最早,為了解決計算機和人類的交流的問題,出現了匯編語言。 但是匯編語言晦澀難懂,所以又出現了像是C、C++Java的這種高級語言,因此計算機語言一般分為低級語言和高級語言。 使用高級語言編寫的程序,經過編譯轉換成機器語言后才能運行,而匯編語言經過匯編器才能轉換為機器語言。 06 匯編語言 我們先來看一段采用匯編語言表示的代碼清單:

這是采用匯編語言編寫程序的一部分,匯編語言采用助記符來編寫程序,每個原本是電信號的機器語言指令會有一個與其對應的助記符。 比如,mov,add分別是數據的存儲(move)和相加(addition)的簡寫。 匯編語言和機器語言一一對應,這點和高級語言不同,我們通常把匯編語言編寫的程序轉換為機器語言的這個過程,稱之為匯編。 與之相反,將機器語言轉化為匯編語言的過程稱之為反匯編。 匯編語言可以幫助你理解計算機做了什么工作,機器語言級別的程序通過寄存器來處理,上面代碼中的eax,ebp都是表示的寄存器,它們是CPU內部寄存器的名稱。 因此,可以說 CPU 是一系列寄存器的集合體。 一般,在內存中的存儲通過地址編號來表示,寄存器的種類是通過名字來區分。 那些不同類型的CPU,其內部寄存器的種類、數量以及寄存器存儲的數值范圍也都是不同的。 不過,根據功能的不同,我們可以將寄存器劃分為下面幾類:

其中,程序計數器、標志寄存器、累加寄存器、指令寄存器和棧寄存器只有一個,其他寄存器一般有好幾個。

07

程序計數器 程序計數器是用來存儲下一條指令所在單元的地址。 程序在執行時,PC的初值作為程序第一條指令的地址,在順序執行程序時,控制器先按照程序計數器所指出的指令地址,從內存中取出一條指令,隨后分析和執行該指令,并同時將PC的值加1指向下一條要執行的指令。 我們可以通過一個事例來仔細看一下程序計數器的執行過程:

這是一段進行相加的操作,程序啟動,在經過編譯解析后,會經由操作系統把硬盤中的程序復制到內存中。 以上示例程序,就是將123和456執行相加的操作,隨后將結果輸出到顯示器上,因為使用機器語言很難描述,所以這些都是經過翻譯后的結果。 事實上,每個指令和數據都有可能分布在不同的地址上,但是為了更好的說明,就把組成一條指令的內存和數據放在了一個內存地址上。 地址0100是程序運行的起始位置,Windows等操作系統把程序從硬盤復制到內存以后,就會將程序計數器作為設定為起始位置0100,然后再執行程序,每次執行一條指令后,程序計數器的數值就會增加1,或者是直接指向下一條指令的地址。 隨后,CPU會根據程序計數器的數值,從內存中讀取命令并且執行,換言之,程序計數器控制著程序的流程。

08

條件分支和循環機制 小伙伴們都學過高級語言,高級語言匯總的條件控制流程主要分為順序執行、條件分支、循環判斷三種。

順序執行是按照地址的內容順序的執行命令。

條件分支是根據條件執行任意地址的指令。

循環是重復執行同一地址的指令。

一般情況下,順序執行的情況較簡單,每次執行一條指令程序計數器的值就是+1。 條件和循環分支會使得程序計數器的值指向任意的地址,這樣一來,程序就可以返回到上一個地址來重復執行同一個指令,或者跳轉到其它任意指令。 下面,我們就以條件分支舉例來說明程序的執行過程:

程序的開始過程和順序流程是一樣的,程序的順序流程和開始過程相同。 CPU從0100處就開始執行命令,在0100和0101中都是順序執行,PC的值順序+1,執行到0102地址的指令時,判斷0106寄存器的數值大于0,跳轉到0104地址的指令,再將數值輸到顯示器中,隨后結束程序,0103的指令就被跳過了。 這和我們程序中的if()判斷相同,在不滿足條件的情況下,指令一般會直接跳過。 因此,PC的執行過程沒有直接+1,而是下一條指令的地址。

09

標志寄存器 條件和循環分支會使用到 jump(跳轉指令),會根據當前的指令來判斷是否跳轉,上面我們提到了標志寄存器,無論當前累加寄存器的運算結果是正數、負數還是零,標志寄存器都會將其保存。 CPU在進行運算時,標志寄存器的數值會根據當前運算的結果自動設定,運算結果的正、負和零三種狀態由標志寄存器的三個位表示。 標志寄存器的第一個字節位、第二個字節位、第三個字節位各自的結果都為1時,分別代表著正數、零和負數。

CPU的執行機制比較有意思,假設累加寄存器中存儲的XXX和通用寄存器中存儲的YYY做比較,執行比較的背后,CPU的運算機制就會做減法運算。 而無論減法運算的結果是正數、零還是負數,都會保存到標志寄存器中。 結果為正表示 XXX 比 YYY 大,結果為零表示 XXX 和 YYY 相等,結果為負表示 XXX 比 YYY 小,程序比較的指令,實際上是在 CPU 內部做減法運算。

10

函數調用機制 函數的調用和條件分支,循環機制有所不同,單純的跳轉指令無法實現函數的調用。 函數的調用需要在函數內部處理后,處理流程在返回到函數調用點(函數調用指令的下一個地址)。 函數的調用處理是通過把程序計數器的值設定成函數的存儲地址來實現的。

11

通過地址和索引實現數組 接下來是基址寄存器和變址寄存器,通過這兩個寄存器,可以對主存上的特定區域進行劃分,以此實現類似數組的操作。 首先,可以用十六進制數將計算機內存上的 00000000 - FFFFFFFF 的地址劃分出來。 這樣,凡是該范圍的內存地址,只要有一個 32 位的寄存器,就可以查看全部地址。 但是,要是想像數組那樣,分割特定的內存區域以達到連續查看的目的的話,使用兩個寄存器會更方便一些,比如,我們用兩個寄存器來表示內存的值。

這種表示方式很像數組的構造,數組是指同樣長度的數據,在內存中進行連續排列的數據構造。 用數組名表示數組全部的值,通過索引來區分數組的各個數據元素,例如: a[0] - a[4],[]內的 0 - 4 就是數組的下標。

12

CPU指令執行過程 那說了這么多,CPU到底是怎么一條條的執行指令的呢?幾乎全部的馮·諾伊曼型計算機的CPU,工作都可以分為5個階段:取指令、指令譯碼、執行指令、訪存取數、結果寫回。 取指令階段就是將內存中的指令讀取到CPU中寄存器的過程,程序寄存器用于存儲下一條指令所在的地址;

在取指令完成后,立馬進入指令譯碼階段,在指令譯碼階段,指令編碼器按照預先的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類別和各種獲取操作數的方法;

執行指令階段的任務是完成指令所規定的各種操作,具體實現指令的功能;

訪問取數階段的任務是:根據指令地址碼,得到操作數在主存中的地址,并從主存中讀取該操作數用于運算;

結果寫回階段作為最后一個階段,把執行指令階段的運行結果數據“寫回”到某種存儲形式:結果數據經常被寫到CPU的內部寄存器中,以便被后續的指令快速地存取。

責任編輯:xj

原文標題:關于CPU的12個硬核干貨!

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211786
  • ALU
    ALU
    +關注

    關注

    0

    文章

    33

    瀏覽量

    13101

原文標題:關于CPU的12個硬核干貨!

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    接口測試理論、疑問收錄與擴展相關知識點

    本文章使用王者榮耀游戲接口、企業微信接口的展示結合理論知識,講解什么是接口測試、接口測試理論、疑問收錄與擴展相關知識點知識學院,快來一起看看吧~
    的頭像 發表于 11-15 09:12 ?316次閱讀
    接口測試理論、疑問收錄與擴展相關<b class='flag-5'>知識點</b>

    計算機接口位于什么之間

    地傳輸。計算機接口可以分為內部接口和外部接口兩大類。 內部接口位于計算機內部各個部件之間,如CPU、內存、主板、硬盤、顯卡等。外部接口則位于計算機與外部設備之間,如鍵盤、鼠標、顯示器、
    的頭像 發表于 10-14 14:02 ?414次閱讀

    計算機控制器的結構和功能

    隨著信息技術的迅猛發展,計算機已經深入我們生活的方方面面。而計算機控制器,作為計算機系統的核心部件之一,承擔著協調各部件工作、指揮整個計算機
    的頭像 發表于 06-17 15:47 ?1655次閱讀

    工業控制計算機的體系結構是什么

    。 硬件結構 工業控制計算機的硬件結構主要包括以下幾個部分: 1.1 中央處理單元(CPUCPU是工業控制計算機核心部件,負責執行程序
    的頭像 發表于 06-16 11:38 ?1018次閱讀

    工業計算機與普通計算機的區別

    在信息化和自動化日益發展的今天,計算機已經成為了我們日常生活和工作中不可或缺的工具。然而,在計算機領域中,工業計算機和普通計算機雖然都具備基本的計算
    的頭像 發表于 06-06 16:45 ?1400次閱讀

    模擬電子技術知識點問題總結概覽

    給大家分享模擬電子技術知識點問題總結。
    的頭像 發表于 05-08 15:16 ?1169次閱讀
    模擬電子技術<b class='flag-5'>知識點</b>問題總結概覽

    【RTC程序設計:實時音視頻權威指南】計算機知識基礎篇

    的出現,再到無線電的普及,讓我們的交流變得更加的便捷,尤其是計算機和互聯網的普及使人類社會發生了翻天覆地的變化。目前,計算機的主流平臺有linux、WINDOWS、Mac OS、安卓等等的主流操作系統
    發表于 04-23 09:02

    【量子計算機重構未來 | 閱讀體驗】+ 了解量子疊加原理

    如何生產制造。。。。。。 近來通過閱讀《量子計算機—重構未來》一書,結合網絡資料,了解了一點點量子疊加知識,分享給大家。 先提一下電子計算機,電子
    發表于 03-13 17:19

    計算機核心的——CPU

    CPU的四個結構中,寄存器的重要性遠遠高于其余三個,為什么這么說?因為程序通常是把寄存器作為對象來進行描述的。而說到寄存器,就不得不說到匯編語言,說到匯編語言,就不得不說到高級語言,說起高級語言也就不得不提及語言的概念。
    發表于 03-13 14:04 ?1935次閱讀
    <b class='flag-5'>計算機</b>最<b class='flag-5'>核心</b>的——<b class='flag-5'>CPU</b>

    【量子計算機重構未來 | 閱讀體驗】第二章關鍵知識點

    質量的不足 作者著重講解了目前離商用落地最近的量子計算機---量子退火計算機,此類計算機在組合最優化問題上,能高效地提供較高質量的輸出結果,讓人在解決組合最優化的過程中少走彎路。 量子退火最關鍵的
    發表于 03-06 23:17

    【量子計算機重構未來 | 閱讀體驗】+ 初識量子計算機

    分介紹了量子計算機的工作原理、計算能力、研發現狀等專業知識點;第二部分介紹了量子計算機的應用場景,比如工廠、物流、智慧交通、自動駕駛等等;正好適合我這樣的量子小白閱讀。 開始第一部分
    發表于 03-05 17:37

    計算機系統由什么兩部分組成 計算機系統的層次結構

    計算機系統是由硬件和軟件兩部分組成的。 硬件部分包括計算機的實體組件,如中央處理器(CPU)、內存、存儲設備、輸入輸出設備、顯示器等。CPU計算機
    的頭像 發表于 02-01 14:13 ?3681次閱讀

    量子計算機 未來希望

    自己從事語音識別產品設計開發,而量子技術和量子計算機必將在自然語言處理方面實現重大突破,想通過此書學習量子計算技術,儲備知識,謝謝!
    發表于 02-01 12:51

    微機原理和計算機組成原理的區別

    來看微機原理和計算機組成原理的區別。微機原理是指微型計算機的工作原理,主要包括計算機的基本組成和運行原理,如中央處理器(CPU)、存儲器、輸入輸出設備等,以及它們之間的連接方式和控制方
    的頭像 發表于 01-14 14:56 ?3421次閱讀

    量子計算機的作用有哪些

    認為是未來計算機技術的重要發展方向。 一、量子計算機的基本概念 量子計算機核心是量子比特,與經典計算機中的比特不同,量子比特可以同時處于0
    的頭像 發表于 12-30 14:32 ?1966次閱讀
    主站蜘蛛池模板: www.黄视频| 美女喷白浆| 中文字幕在线观看亚洲| 国产美女叼嘿视频免费看 | aa视频免费看| 91九色porny蝌蚪| 巨尻在线观看| 米奇精品一区二区三区| 男女交性高清视频无遮挡 | 又黑又长黑人欧美三级| 网站四虎1515hhcom| 亚洲国产欧美精品一区二区三区 | 国产在线观看福利| 中文字幕一区二区三区乱码aⅴ| 欧美成人69| 人人玩人人干| 日本68xxxxxxxxx59| 午夜免费r级伦理片| 丁香六月在线观看| 天天摸天天澡天天碰天天弄| 777黄色片| 欧美在线精品一区二区三区| 天天天综合| 国产精品自线在线播放| 久久国产综合| 国产高清a| h网站亚洲| 国产精品视频一区二区三区| 女bbbbxxxx毛片视频丶| 99热久久精品最新| 国产嫩草影院在线观看| 欧美激情伊人| 欧美婷婷| 午夜久久久久久久| 免费观看黄视频网站| 韩国三级视频网站| 国产亚洲精品美女久久久| 亚洲高清国产一线久久| 一本久草| 中文字幕亚洲天堂| 最近高清在线视频观看免费|