流水線技術對PC值的影響

        CPU的內部結構主要有三部分:指令寄存器、指令譯碼器、指令執行單元(包括ALU和通用寄存器)併發

        CPU在執行一條指令的時候,主要有三個步驟:取指(將指令從內存或者指令Cahe中取出,放到指令寄存器),譯碼(指令譯碼器對指令寄存器中的指令進行譯碼操做從而辨識出所具體什麼指令,從而產生各類時序信號),執行(指令執行單元根據譯碼的結果進行計算和存儲結果)內存

        根據電路的結構咱們發現:取指階段佔用的CPU硬件是指令通路和指令寄存器;譯碼階段佔用的是CPU硬件是指令譯碼器;執行階段佔用的是CPU硬件的執行單元和數據通路。三者佔用的CPU硬件徹底不一樣,這就造成列三級的流水線,以下:在對第一條指令譯碼的時候,能夠同時對第二條指令進行取指操做;在對第一條指令進行執行的時候,能夠同時對第二條進行譯碼,對第三條進行取指。可見:流水線技術的本質是利用指令運行時間不一樣階段使用不一樣的硬件相互不一樣,併發運行多條指令,從而提升了時間效率。it

        對PC值的具體影響。寄存器PC的值是即將被取指的指令的地址,正常狀況下,在該條指令被取入CPU後執行期間,PC的值保持不變,在該條指令完成的點上,硬件會自動的將PC的值加一個單位的大小,這樣PC就指向列下一條將被取指和執行的指令。而在引入流水線技術後,PC的值的變化發生了變化,假定第一條指令的內存地址爲X,則在時刻T,PC值變爲X,並在T到T+1時期內維持不變;在T+1時刻,PC的值變爲X+1個單位,並在T+1到T+2期間維持不變;在T+2時刻,PC的值變爲X+2個單位,並在T+2到T+3期間(第一條指令的執行階段)內維持不變;在T+3時刻,P的值將變爲X+3.因而可知,在第一條指令的執行階段,PC的值再也不是該指令在內存的位置了,而是該指令在內存中的位置+2個單元.對於ARM指令集而言,每條指令的長度爲32bit,佔4B,因此,一條指令在內存中須要4B存儲。效率

        指令執行時,PC值=當前正在運行的指令在內存的地址+8硬件

相關文章
相關標籤/搜索