久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11888|回復: 2
收起左側

ARM處理器三級流水線與PC,LR的關系

[復制鏈接]
ID:60266 發表于 2014-8-18 02:43 | 顯示全部樓層 |閱讀模式
ARM處理器使用流水線來增加處理器指令流的速度,這樣可使幾個操作同時進行,并使處理與存儲器系統之間的操作更加流暢,連續,能提供0.9MIPS/MHZ的指令執行速度。
    PC代表程序計數器,流水線使用三個階段,因此指令分為三個階段執行:1.取指(從存儲器裝載一條指令);2.譯碼(識別將要被執行的指令);3.執行(處理指令并將結果寫回寄存器)。而R15(PC)總是指向“正在取指”的指令,而不是指向“正在執行”的指令或正在“譯碼”的指令。一般來說,人們習慣性約定將“正在執行的指令作為參考點”,稱之為當前第一條指令,因此PC總是指向第三條指令。當ARM狀態時,每條指令為4字節長,所以PC始終指向該指令地址加8字節的地址,即:PC值=當前程序執行位置+8;
   ARM指令是三級流水線,取指,譯指,執行時同時執行的,現在PC指向的是正在取指的地址,那么cpu正在譯指的指令地址是PC-4(假設在ARM狀態下,一個指令占4個字節),cpu正在執行的指令地址是PC-8,也就是說PC所指向的地址和現在所執行的指令地址相差8。
   當突然發生中斷的時候,保存的是PC的地址
   這樣你就知道了,如果返回的時候返回PC,那么中間就有一個指令沒有執行,所以用SUB pc lr-irq #4。


   但是在ADS中PC確實是指向即將執行的指令處,這個是軟件處理后的結果,主要是為了用戶調試程序方便.
  需要注意的是,當前使用指令STM/STR保存R15時候,保存的可能是當前指令地址值+8字節,也可能保存的是當前的指令地址+12字節.到底是哪種,取決于芯片的具體的設計方式。無論如何,在同一芯片中,要么采用當前的指令地址+8,要么采用當前的指令地址+12。因此對于用戶來講,盡量避免使用STM/STR指令來保存R15的值。但是可以在開始的時候用一段程序對芯片的offset進行測試!

代碼如下:
SUB R1, PC, #4  ;獲得下面的存放下面存放STR指令的地址
STR PC,[R0]
LDR R0,[RO]
SUB R0, R0, R1

ARM7中斷與PC、LR的問題:
1,假設當前是PC,PC-4,PC-8(三級流水)
2,發生IRQ異常,執行保護操作,LR中保存由于FIQ或IRQ占先而沒有被執行的指令的地址(即有些資料上把這個地址寫成PC或者當前地址,很費解甚至誤解)的下一條地址
3,清空流水線
4,進入中斷服務程序
5,待流水線填滿,執行操作才被重新掛起(解釋了ARM7為什么是0.9MIPS)
6,中斷返回前,對LR處理,LR=LR-4,指向之前被清空的已譯碼但沒被執行的指令的地址
7,清空流水線,返回
8,重新對丟棄的前一次已譯碼指令取指
9,待流水線滿,開始繼續執行


回復

使用道具 舉報

ID:44262 發表于 2014-8-21 22:53 來自觸屏版 | 顯示全部樓層
能有高人繼續解釋一下  流水線  嗎
回復

使用道具 舉報

ID:636830 發表于 2021-2-28 19:21 | 顯示全部樓層
感謝!加深了我對中斷的具體行為和流水線進一步的理解
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品国产成人 | 日韩av在线播 | 精品一区二区三区av | 国产精品毛片 | 国产精品一二三区 | 国产视频亚洲视频 | 精品欧美一区二区三区免费观看 | 欧美精品v | 国产精品九九九 | 国产成人精品久久 | 欧美激情在线精品一区二区三区 | 日一区二区 | 亚洲一区 中文字幕 | 亚洲免费视频一区二区 | 自拍偷拍第一页 | 色精品视频 | 国产精品久久久久久久久久免费 | 华丽的挑战在线观看 | 日韩91 | 天天操天天干天天曰 | 97国产精品视频人人做人人爱 | 高清成人免费视频 | 国产成人免费视频 | 亚洲天堂一区 | 国产精品国产成人国产三级 | 色综合久久久久 | 久久久久久黄 | 九九亚洲 | 国产三级 | 国产精品久久久久久238 | 国产99久久精品一区二区永久免费 | 中文字幕国产 | 国产日产精品一区二区三区四区 | 91成人在线 | 欧美一级片在线观看 | 日韩电影在线 | 久久久久久国产精品免费免费 | 国产一区二区三区免费观看视频 | 免费在线h视频 | 午夜久久久| 理伦毛片|