在cpu中,對於指令的處理一般分為:
取指令(instruction fetch,if)階段是將一條指令從主存中取到指令暫存器的過程。
程式計數器pc中的數值,用來指示當前指令在主存中的位置。
當一條指令被取出後,pc中的數值將根據指令字長度而自動遞增:
若為單字長指令,則(pc)+1àpc;
若為雙字長指令,則(pc)+2àpc,依此類推。
取出指令後,計算機立即進入指令解碼(instruction decode,id)階段。
在指令解碼階段,指令解碼器按照預定的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類別以及各種獲取運算元的方法。
在組合邏輯控制的計算機中,指令解碼器對不同的指令操作碼產生不同的控制電位,以形成不同的微操作序列;
在微程式控制的計算機中,指令解碼器用指令操作碼來找到執行該指令的微程式的入口,並從此入口開始執行。
在傳統的設計裡,cpu中負責指令解碼的部分是無法改變的。
不過,在眾多運用微程式控制技術的新型cpu中,微程式有時是可重寫的,可以通過修改成品cpu來改變cpu的解碼方式。
在取指令和指令解碼階段之後,接著進入執行指令(execute,ex)階段。
此階段的任務是完成指令所規定的各種操作,具體實現指令的功能。為此,cpu的不同部分被連線起來,以執行所需的操作。
例如,如果要求完成乙個加法運算,算術邏輯單元alu將被連線到一組輸入和一組輸出,輸入端提供需要相加的數值,輸出端將含有最後的運算結果。
根據指令需要,有可能要訪問主存,讀取運算元,這樣就進入了訪訪問數(memory,mem)階段。
作為最後乙個階段,結果寫回(writeback,wb)階段把執行指令階段的執行結果資料「寫回」到某種儲存形式:
結果資料經常被寫到cpu的內部暫存器中,以便被後續的指令快速地訪問;
在有些情況下,結果資料也可被寫入相對較慢、但較廉價且容量較大的主存。
許多指令還會改變程式狀態字暫存器中標誌位的狀態,這些標誌位標識著不同的操作結果,可被用來影響程式的動作。
在cpu中,指令流水線(instruction pipeline)是指在程式執行時多條指令重疊進行操作的一種準並行處理實現技術。
各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度。
流水線對於單條指令的處理速度並沒有增加,
Linux學習筆記0 0 2
刪除目錄或檔案的方法,我學習了兩個乙個是使用rmdir命令另乙個是使用rm命令。下面對這兩個命令進行簡要講解。1.1 rmdir 命令 rmdir 命令的作用就是從乙個目錄中刪除乙個或者多個空的子目錄。簡單粗暴的說,你只能刪除你包含的乙個或者多個空資料夾。看下面例項 1rmdir test 刪除 t...
Linux學習筆記002 更改網絡卡名稱
centos 7安裝後,預設的網絡卡en33或en32,不是習慣的eth0,下面就修改一下它的名稱將它變成大家習慣的模式。1.修改檔案 etc sysconfig grub 在倒數第二行quiet 後新增net.ifnames 0 biosdevname 0 2.執行命令grub2 mkconfig...
Python學習筆記002
002講2020 7 7 第乙個遊戲程式 print 我愛魚c工作室 temp input 不妨猜一下小甲魚現在心裡想的是哪個數字 guess int temp if guess 8 print 恭喜你,猜對了 print 猜中了也沒有獎勵哦 else print 猜錯啦,我現在小甲魚現在心裡想的是...