組原5 指令週期資料流

2021-10-23 12:18:55 字數 2449 閱讀 7173

目錄

1. 指令週期

2. 指令週期流程

2.1 取指週期資料流 

2.2 間址週期資料流

2.3 執行週期資料流

2.4 中斷週期

3. 指令的執行方案

取指週期包括取指和分析。

中斷是被安排在指令的最後乙個階段的,中斷的意思就是暫停現在的任務去完成其它的任務,但即使是要暫停現在的任務,也應該把現在這條指令執行完成。所以中斷週期是安排在這條指令執行結束的,

但是中斷的響應是要在這條指令結束前安排好的。如果不這樣,則這條指令執行結束就會自動取下一條指令,又進入乙個新的指令週期。

通過這個流程就可以使具有不同長度的指令系統執行起來。

整個機器可以處於不同的週期階段,如何判斷現在處於哪個週期?

===>  提供乙個硬體結構,叫做觸發器。

下面進入每個週期內需要完成的一些工作。

在取指令開始的時候,pc 存放的是當前指令的位址;取指完成後,pc 中存放的是下一條指令的位址。

區別在於 是取指令開始的階段還是取指令結束的階段。

間址週期的任務就是取有效位址,有效位址是由 形式位址和定址特徵決定的。

為什麼有個或? 因為在取指週期階段是先把指令放在 mdr 裡面,再傳到 ir;進入到間址週期, mdr 中內容是暫時還沒有改的,裡面存的也還是之前的內容。所以 "有個或" 。

第三步結束後,就取到了運算元的有效位址。這是為指令的執行,也就是下乙個階段做準備的,這個時候 mdr 中還是乙個位址。接下來,不同的教材有區別:一種做法是將這個位址放到指令的位址碼字段,即 有效位址還是放在 ir 中,下一階段,只需將 ir 中的位址作為有效位址取定址即可。  另一種做法是,既然已經放到了 mdr,下一步直接到 mdr 中取有效位址即可。

只是先暫停任務,去完成其它任務。為了恢復當前任務,需要儲存斷點。

調整指標是通過減1實現,和平時的方向是相反的,因為在主存中選一片區域做堆疊的時候,是從高位址碼向低位址去擴增的。所以進棧用減法,出棧用加法。

到第3步,將 pc 的內容送到 mdr 之後,配合之前寫的命令,pc 的內容就會通過資料匯流排放到儲存器中。

(mdr)——> m(mar)

第3步完成後,

就完成了中斷操作的第乙個任務:儲存斷點(即暫停當前任務);下一步是要去完成其它任務,怎麼開始完成其它任務?

把任務要執行的第一條指令位址(即中斷服務程式的入口位址)放到 pc 中。這個位址是由向量形成部件產生的(中斷章節具體介紹),故該位址又被稱為 向量位址。 這樣下一步, cpu 還是根據 pc 中的內容去尋找下一條指令,所以就切入到了乙個新的程式的執行。

單指令週期:具體來說,就是不分取指階段、執行階段等,而是將指令週期作為乙個階段,就相當於每個指令週期都是乙個機器週期。這種模式下,指令和指令之間是序列執行的。因為所有的指令需要統一 乙個時間,所以指令週期 取決於執行時間最長的指令的執行時間。

流水線方案基本思路:間隔一定時間啟動就啟動一條指令,原理是:在不同的機器週期(不同的小步驟下),一條指令所需要的硬體資源是不同的,所以這樣的安排相當於多條指令在並行執行,只不過在不同的階段在使用不同的硬體。

ARM7指令時鐘週期數

arm7具有3級流水線結構 取指 解碼 執行 對大多數指令來說每條流水線的處理都是單週期的,不過某些情況下,取指和執行的週期數會延長,導致流水線進入stall狀態,指令執行時間超過1個週期。經過在lpc213x 214x nxp arm7tdmi s 上的試驗,得出各類指令的執行週期數如下 1 大部...

4 3指令週期

d觸發器 c1是脈衝控制訊號,d是資料輸入端,q是資料輸出端上公升沿有效,如果有小圓圈就是下降沿有效。當cp為上公升沿時,d與q輸出相同電平。暫存器就是由多個d觸發器組成。指令週期 其實有三個階段 取指令,解碼,執行指令。解碼包括在取指令內,所以沒有標識出來。mov取指令 先從指令cahe中查詢,沒...

Angular複習筆記5 指令

在angular中,指令是乙個重要的概念,它作用在特定的dom元素上,可以擴充套件這個元素的功能,為元素增加新的行為。本質上,元件可以被理解為一種帶有檢視的指令。元件繼承自指令,是指令的乙個子類,通常被用來構造ui控制項。指令的使用並不複雜,它與html元素屬性的使用方式相似。不同的是,html語法...