OR1200中資料Cache的使用情景分析

來源:互聯網
上載者:User

標籤:or1200 軟核處理器   or1200 openrisc 軟核處理   處理器   軟核   cache   

以下內容摘自《步步驚芯——軟核處理器內部設計分析》一書

 

13.7 DCache使用情景之一——儲存指令執行階段DCache失靶

      儲存指令執行階段DCache失靶這種情景在通寫法、回寫法策略下有不同的執行過程,在通寫法策略下直接寫儲存空間中對應的地址,不操作DCache。在回寫法策略下,首先判斷目的地址對應的DCache中目錄表的line是否被修改,如果是(Dirty為1),則將該line寫回到記憶體,然後將目的地址所在的記憶體塊讀入DCache,填充到對應line,然後再修改DCache中對應目的地址的資料;如果目的地址對應的line沒有被修改(Dirty為0),那麼直接將目的地址所在的記憶體塊讀入DCache,填充到對應line,然後再修改DCache中對應目的地址的資料。13.7所示。

 

(具體分析過程參考書中本文)

13.8 DCache使用情景之二——儲存指令執行階段DCache命中

      儲存指令執行階段DCache命中這種情景在通寫法、回寫法策略下也有不同的執行過程,在通寫法策略下,既要寫DCache中目錄表對應的line,還要寫記憶體中對應的地址,在回寫法策略下,只是寫DCache中目錄表對應的line。13.11所示。

(具體分析過程參考書中本文)

 

13.9 DCache使用情景之三——l.mtspr指令寫DCache中特殊寄存器

      DCache中有三個特殊寄存器:DCBIR、DCBFR、DCBWR,其作用在13.3節已說明。從程式碼分析中可以發現,在通寫法策略下,只能使用DCBIR、DCBFR,在回寫法策略下,可以使用全部三個特殊寄存器。這也是很好理解的,在通寫法策略下,DCache目錄表中line的標誌位Dirty始終為0,所以DCBIR、DCBFR的作用是一樣,並且沒必要存在DCBWR寄存器,所以本章將指令l.mtspr寫DCache中特殊寄存器這一情景又分為如下四種情景:

      (1)通寫法策略下,指令l.mtspr寫DCBIR、DCBFR

      (2)回寫法策略下,指令l.mtspr寫DCBIR

      (3)回寫法策略下,指令l.mtspr寫DCBWR

      (4)回寫法策略下,指令l.mtspr寫DCBFR

(具體分析過程參考書中本文)

 

13.10 DCache分析小結

      DCache有多種使用情景,本章只是分析了其中的三種,但這已經足夠我們瞭解DCache的工作過程了,其餘情景的處理過程與此是類似的。筆者個人感覺DCache模組是OR1200中最複雜的模組,因為要考慮到載入、儲存指令,還要考慮採用的寫策略是通寫法、回寫法,還要考慮DCache中對應目錄項的標誌位V、Dirty的情況,所以很複雜。為此,在本章最後分別給出在通寫法、回寫法情況下,DCache的工作流程圖,13.18、13.19所示,其中也給出了DC_FSM模組中有限狀態機器各個狀態之間的轉換情況。

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.