<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

      電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 基礎(chǔ)入門 >> 半導(dǎo)體技術(shù) >> 正文

      CPU執(zhí)行程序的原理(簡(jiǎn)化過程)

      作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018/10/27

      前言

      看了網(wǎng)上的一些描述CPU執(zhí)行程序的過程,發(fā)現(xiàn)他們涉及到的內(nèi)容太多了,恨不能把整個(gè)CPU的底層結(jié)構(gòu)都拿出來說,這對(duì)計(jì)算機(jī)理論知識(shí)匱乏的新人甚至是一些老人都是非常不友好的。這個(gè)問題也是當(dāng)初攔在我面前的一只大老虎,把這個(gè)原理寫出來也有助于我自己的深入理解。

      YouTube上的一個(gè)視頻How does CPU execute program,是一個(gè)很好的CPU執(zhí)行程序原理的總結(jié),英文水平還行的人建議看原視頻,就不用聽我瞎BB了。雖然沒有字幕,如果能看懂里面的PPT,就基本能理解了。

      以下內(nèi)容主要是將視頻內(nèi)容大致解釋一下,是寫給英文水平欠缺一點(diǎn)或者沒辦法看原視頻的人看的。如有錯(cuò)誤,歡迎指正。

      相關(guān)術(shù)語

      RAM:指內(nèi)存,斷電后內(nèi)容無法保存,因此叫做易失性存儲(chǔ);另一個(gè)相關(guān)的概念是ROM,一般指外存,例如硬盤。RAM的速度遠(yuǎn)快于ROM,CPU與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。

      CPU:計(jì)算機(jī)的所有計(jì)算操作都由它執(zhí)行,只要先記住它是一塊有輸入和輸出的集成電路就行了。

      Instruction:指令,是CPU進(jìn)行操作的基本單元,大致包含操作對(duì)象、操作對(duì)象的地址、對(duì)操作對(duì)象進(jìn)行何種操作。

      RAM相關(guān)結(jié)構(gòu)

      程序要想被CPU執(zhí)行,首先要被編譯成CPU可以執(zhí)行的指令操作,這里就不詳細(xì)介紹,本文就假設(shè)程序已經(jīng)被編譯好了,放在了內(nèi)存中。內(nèi)存中存放的數(shù)據(jù)分為兩類,一類是指令;另一類是數(shù)據(jù),不管是指令還是數(shù)據(jù)都有其對(duì)應(yīng)的地址。

      下圖就是接下來我們將會(huì)涉及的內(nèi)存結(jié)構(gòu),這是從視頻中直接截取下來的,大家將就著看。

      CPU程序執(zhí)行過程

      在上圖中,現(xiàn)在已經(jīng)存放了地址為100、104、108、112的一系列指令;地址為2000、2004、2008的一系列數(shù)據(jù)。

      CPU相關(guān)結(jié)構(gòu)

      這里只放出CPU的執(zhí)行指令時(shí)涉及的基本結(jié)構(gòu),真實(shí)的情況還會(huì)復(fù)雜很多。

      這里涉及到的結(jié)構(gòu)有Program Counter(程序計(jì)數(shù)器)、Instruction Register(指令寄存器)、Data Register(數(shù)據(jù)寄存器)、ALU(算數(shù)邏輯單元),可以將計(jì)數(shù)器、寄存器都可以簡(jiǎn)單理解為存放數(shù)據(jù)的器件。上述程序計(jì)數(shù)器用來存放指令的地址;指令寄存器用來存放指令(初學(xué)者可能會(huì)搞混數(shù)據(jù)和地址的區(qū)別,稍加區(qū)分就可以分辨);數(shù)據(jù)寄存器存放參與計(jì)算的數(shù)據(jù),下圖中的A、B、C都是數(shù)據(jù)寄存器;ALU就是用于計(jì)算的器件。

      cpu程序執(zhí)行過程

      執(zhí)行過程

      本文內(nèi)容為便于理解,僅涉及到CPU和內(nèi)存間的數(shù)據(jù)交換。

      在了解了RAM和CPU相關(guān)結(jié)構(gòu)之后,接下來就可以正式開始說明執(zhí)行的過程,其實(shí)就是對(duì)以上敘述內(nèi)容的一個(gè)組合。

      1. 程序計(jì)數(shù)器初始內(nèi)容為100,指向內(nèi)存中的某一項(xiàng)指令,注意100指的是地址;
      2. 指令寄存器根據(jù)程序計(jì)算器的指向地址,將內(nèi)存中地址為100的指令抓取到自身,此時(shí)存放LOAD A,2000;
      3. CPU按照指令內(nèi)容,將內(nèi)存地址為2000的數(shù)據(jù),上載到數(shù)據(jù)寄存器A中,此時(shí)CPU和RAM的狀態(tài)如下圖所示;cpu程序的執(zhí)行過程
      4. 以上3步已完成一個(gè)指令的基本操作步驟。接下來程序計(jì)數(shù)器依次指向104指令地址、108指令地址、112指令地址,分別完成將2004地址的數(shù)據(jù)賦值給B數(shù)據(jù)寄存器;ALU將A、B內(nèi)的數(shù)據(jù)相乘賦值給C數(shù)據(jù)寄存器;將C數(shù)據(jù)寄存器數(shù)據(jù)寫入內(nèi)容地址2008中。
      5. 這樣就完成了50×0.1這個(gè)簡(jiǎn)單程序的計(jì)算,最后CPU和RAM所處狀態(tài)如下圖所示。
      cpu程序的執(zhí)行過程
      Tags:cpu,執(zhí)行程序的原理  
      責(zé)任編輯:admin
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 亚洲国产精品综合福利专区| 亚洲精品欧美综合四区| 狠狠人妻久久久久久综合| 九色综合九色综合色鬼| 亚洲国产精品成人综合久久久 | 色天使久久综合给合久久97色| 欧洲亚洲综合一区二区三区| 久久88色综合色鬼| 九色综合狠狠综合久久| 亚洲综合国产成人丁香五月激情| 狠狠色丁香九九婷婷综合五月| 久久婷婷五月国产色综合| 一本色道久久88综合日韩精品| 91精品国产综合久久香蕉| 99久久国产综合精品女同图片| 国产成人综合日韩精品婷婷九月| 色与欲影视天天看综合网| 久久综合精品国产一区二区三区| 亚洲av综合av一区二区三区 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 久久狠狠一本精品综合网| 一本一道久久综合久久| 亚洲狠狠综合久久| 久久一本色系列综合色| 久久综合久久精品| 亚洲成色在线综合网站| 久久综合五月婷婷| 久久综合精品国产二区无码| 久久婷婷国产综合精品| 99久久综合狠狠综合久久aⅴ | 婷婷五月综合色视频| 久久综合综合久久| 亚洲国产成人综合| 色综合91久久精品中文字幕| 九九综合VA免费看| 狠狠色狠狠色综合日日不卡| 亚洲人成依人成综合网| 久久乐国产综合亚洲精品| 激情婷婷成人亚洲综合| 久久综合九色综合精品| 色综合天天综合网国产成人|