3

我想從DTS文件中瞭解以下內容。 OS/Kernel很新。什麼是緩存大小和緩存行大小?

cpus { 
    #address-cells = <1>; 
    #size-cells = <0>; 

    PowerPC,[email protected] { 
     device_type = "cpu"; 
     reg = <0x0>; 
     d-cache-line-size = <32>; 
     i-cache-line-size = <32>; 
     d-cache-size = <16384>; 
     i-cache-size = <16384>; 
     timebase-frequency = <0>; 
     bus-frequency = <0>;   
     clock-frequency = <0>;  
    }; 
}; 

任何人都可以提供上面的簡要說明嗎?

我瞭解以下。 緩存塊大小或緩存行大小:在緩存未命中時傳輸的數據量。指令緩存(I-cache):只能保存指令的緩存。數據緩存(D-cache):只能保存數據的緩存。

而且什麼我緩存行大小是什麼意思?

d-cache-line-size = <32>; 
i-cache-line-size = <32>; 
d-cache-size = <16384>; 
i-cache-size = <16384>; 

在某些dts文件中有如下引導加載程序的註釋,如下所示。

cpus { 
#address-cells = <1>; 
#size-cells = <0>; 

    PowerPC,[email protected] { 
     device_type = "cpu"; 
     reg = <0x0>; 
     d-cache-line-size = <32>; 
     i-cache-line-size = <32>; 
     d-cache-size = <16384>; 
     i-cache-size = <16384>; 
     timebase-frequency = <0>; // from bootloader 
     bus-frequency = <0>;  // from bootloader 
     clock-frequency = <0>;  // from bootloader 
    }; 
}; 

如何從bootloader的哪個文件中找出? 使用的引導程序是U-boot。

謝謝。

回答

2

的DTS片段描述了PowerPC CPU 8313。

Datasheet of PowerPC 8313

7.1.5.2高速緩存單元的e300c3提供16K字節,四路組關聯指令和數據高速緩存。高速緩存塊是32個 字節長...

更進一步,

7.1.6總線接口單元(BIU)由於緩存是片上,回寫高速緩存,最常見的交易是突發讀取內存 操作,突發寫入內存操作,...
...存儲器訪問可以發生在單BEA t(1-8字節)和四拍脈衝(32字節)在64位數據總線上的數據傳輸。

本質上,DTS片斷提供配置:

  • 緩存大小(以16KB)
    做出完整的使用板載緩存

  • 線 - 的大小(32字節)
    有效地使用BIU用於CPU和片上高速緩存之間最快的可能傳輸。


更新:關於你在哪裏開始查詢...

  1. 的最好的書下手總是有問題的處理器的技術參考手冊。它將充滿大量專用於您的硬件的行話,您需要耐心地通讀和理解。

  2. 在並行開始刷牙,你的Linux Kernel with books像「Linux設備驅動程序3E」的理解,「深入理解Linux內核」和「專業的Linux內核架構」。

  3. 的引導加載程序通常被寫在頭腦裏的硬件,並使用類似語義的Linux內核,即從它大舉借貸來實現。在互聯網上的隨機博客中提供了大量的東西。在Stackoverflowkernelnewbies這樣的郵寄名單上進行活動是定期查找它們的好方法。

+0

謝謝你這麼多TheCodeArtist。現在我明白他們在哪裏填充。非常感謝。但是,這些行話是非常新的。我是嵌入式系統的新手。我的職責是啓動,操作系統,驅動程序。很明顯,需要了解上述內容的知識庫。你可以推薦一些書籍來開始嵌入式(硬件,操作系統(內核),啓動,驅動程序)? –

+0

非常感謝TheCodeArtist。我剛剛瞭解了以下內容 「爲了充分利用板載高速緩存和行大小(至32字節)」,「有效使用BIU以實現CPU與片上高速緩存之間最快的可能傳輸。」 精美的解釋。你是我的上師。起初,我只是認爲這些數字取自參考手冊。現在我明白爲什麼這些價值。 –

+0

很高興得到了幫助。 :-) – TheCodeArtist