亲爱的MBA智库百科用户:


过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。


MBA智库百科VIP会员,您的权益将包括: 1、无广告阅读; 2、免验证复制。


当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!



MBA智库百科项目组
2023年8月10日
百科VIP
未登录
无广告阅读
免验证复制
1年VIP
¥ 9.9
支付方式:
微信支付
支付宝
PayPal
购买数量:
1
应付金额:
9.9
汇率换算:
1.32
美元(USD)
  • 美元(USD)
  • 加元(CAD)
  • 日元(JPY)
  • 英镑(GBP)
  • 欧元(EUR)
  • 澳元(AUD)
  • 新台币(TWD)
  • 港元(HKD)
  • 新加坡(SGD)
  • 菲律宾(PHP)
  • 泰铢(THB)

按当月汇率换算,

包含手续费

打开手机微信 扫一扫继续付款
立即开通
PayPal支付后,可能会遇到VIP权益未及时开通的情况,请您耐心等待,或者联系百科微信客服:mbalib888。
温馨提示:当无法进去支付页面时,可刷新后重试或更换浏览器
开通百科会员即视为同意《MBA智库·百科会员服务规则》

支付成功

全球专业中文经管百科,由121,994位网友共同编写而成,共计436,064个条目

指令周期

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

指令周期(Instruction Cycle)

目錄

[隱藏]

什麼是指令周期

  指令周期是執行一條指令所需要的時間,一般由若幹個機器周期組成,是從取指令、分析指令到執行完所需的全部時間。

指令周期的類別

非訪內指令的指令周期

  CLA是一條非訪內指令,它需要兩個CPU 周期,其中取指令階段需要一個CPU周期,執行指令階段需要一個CPU周期。

  1、取指令階段

  (1)程式計數器PC的內容20(八進位)被裝入地址寄存器AR

  (2)程式計數器內容加1,變成21,為取下一條指令做好準備;

  (3)地址寄存器的內容被放到地址匯流排上;

  (4)所選存儲器單元20的內容經過數據匯流排,傳送到數據緩衝寄存器DR

  (5)緩衝寄存器的內容傳送到指令寄存器IR;

  (6)指令寄存器中的操作碼被解碼測試

  (7)CPU識別出是指令CLA,至此,取指令階段即告結束。

  2、執行指令階段

  (1)操作控制器送一控制信號給算術邏輯運算單元ALU;

  (2)ALU響應該控制信號,將累加寄存器AC的內容全部清零,從而執行了CLA指令。

取數指令的指令周期

  1.送操作數地址

  第二個CPU周期主要完成送操作數地址。在此階段,CPU的動作只有一個,那就是把指令寄存器中的地址碼部分(30)裝入地址寄存器,其中30為記憶體中存放操作數的地址。

  2.兩操作數相加

  第三個CPU周期主要完成取操作數並執行加法操作中。在此階段,CPU完成如下動作:

  (1)把地址寄存器中的操作數的地址發送到地址匯流排上。

  (2)由存儲器單元30中讀出操作數,並經過數據匯流排傳送到緩衝寄存器。

  (3)執行加操作:由數據緩衝寄存器來的操作數可送往ALU 的一個輸入端,已等候在累加器內的另一個操作數(因為CLA指令執行結束後累加器內容為零)送往ALU的另一輸入端,於是ALU將兩數相加,產生運算結果為0+6=6。這個結果放回累加器,替換了累加器中原先的數0 。

存數指令的指令周期

  STA指令的指令周期由三個CPU周期組成。

  1.送操作數地址

  在執行階段的第一個CPU周期中,CPU完成的動作是把指令寄存器中地址碼部分的形式地址40裝到地址寄存器。其中數字40是操作數地址。

  2.存儲和數

  執行階段的第二個CPU周期中,累加寄存器的內容傳送到緩衝寄存器,然後再存入到所選定的存儲單元(40)中。CPU完成如下動作:

  (1)累加器的內容被傳送到數據緩衝寄存器DR

  (2)把地址寄存器的內容發送到地址匯流排上,即為將要存入的數據6的內存單元號;

  (3)把緩衝寄存器的內容發送到數據匯流排上;

  (4)數據匯流排上的數寫入到所選中的存儲器單元中,即將數6寫入到存儲器40號單元中。註意 在這個操作之後,累加器中仍然保留和數6,而存儲器40號單元中原先的內容被衝掉 。

空操作指令和轉移指令的指令周期

  第四條指令即“NOP”指令,這是一條空操作指令。其中第一個CPU周期中取指令,CPU把23號單元的“NOP”指令取出放到指令寄存器,第二個CPU周期中執行該指令。因解碼器譯出是“NOP”指令,第二個CPU周期中操作控制器不發出任何控制信號。NOP指令可用來調機之用。

  1.第一個CPU周期(取指令階段)

  CPU把24號單元的“JMP 21”指令取出放至指令寄存器,同時程式計數器內容加1,變為25,從而取下一條指令做好準備。

  2.第二個CPU周期(執行階段)

  CPU把指令寄存器中地址碼部分21送到程式計數器,從而用新內容21代替PC原先的內容25。這樣,下一條指令將不從25單元讀出,而是從記憶體21單元開始讀出並執行,從而改變了程式原先的執行順序。

  註意 執行“JMP 21”指令時,我們此處所給的四條指令組成的程式進入了死迴圈,除非人為停機,否則這個程式將無休止地運行下去,因而記憶體單元40中的和數將一直不斷地發生變化。當然,我們此處所舉的轉移地址21是隨意的,僅僅用來說明轉移指令能夠改變程式的執行順序而已

指令周期特點

  指令不同,所需的機器周期數也不同。對於一些簡單的的單位元組指令,在取指令周期中,指令取出到指令寄存器後,立即解碼執行,不再需要其它的機器周期。對於一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器周期。

  從指令的執行速度看,單位元組和雙位元組指令一般為單機器周期和雙機器周期,三位元組指令都是雙機器周期,只有乘、除指令占用4個機器周期。

  因此在進行編程時,在完成相同工作的情況下,選用占用機器周期少的命令會提高程式的執行速率,尤其是在編寫大型程式程式的時候,其效果更加明顯。

本條目對我有幫助6
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"指令周期"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP
告MBA智库百科用户的一封信
亲爱的MBA智库百科用户: 过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。 MBA智库百科VIP会员(9.9元 / 年,点击开通),您的权益将包括: 1、无广告阅读; 2、免验证复制。 当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!
MBA智库百科项目组
2023年8月10日

闽公网安备 35020302032707号

添加收藏

    新建收藏夹

    编辑收藏夹

    20