3

DTS ファイルから次のことを理解しようとしています。OS/カーネルに非常に慣れていません。

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

    PowerPC,8313@0 {
        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-キャッシュ): 命令のみを保持できるキャッシュ。データ キャッシュ (D キャッシュ): データのみを保持できるキャッシュ。

また、i-cache-line-size とはどういう意味ですか?

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

特定の dts ファイルには、次のように from boot loader のようなコメントがあります。

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

    PowerPC,8313@0 {
        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
    };
};

ブートローダーのどのファイルから見つけるのですか? 使用するブートローダは U-Boot です。

ありがとう。

4

1 に答える 1

2

DTS スニペットは、PowerPC 8313 CPU について説明しています。

PowerPC 8313のデータシートから、

7.1.5.2 キャッシュユニット e300c3 は、 16K バイトの 4 ウェイ セットアソシアティブ命令およびデータ キャッシュを提供します。キャッシュブロックの長さは32バイトです...

さらに、

7.1.6 バス インターフェイス ユニット (BIU)キャッシュはオンチップのライトバック キャッシュであるため、最も一般的なトランザクションはバースト読み取りメモリ操作、バースト書き込みメモリ操作などです
64 ビット データ バスでのシングル ビート (1 ~ 8 バイト) および4 ビート バースト (32 バイト)データ転送。

基本的に、DTS スニペットは以下を構成します。

  • オンボードキャッシュを完全に利用するためのキャッシュサイズ(16KB まで)

  • CPU とオンチップ キャッシュ間の可能な限り高速な転送のためにBIU を効果的に使用するためのライン サイズ(32 バイトまで) 。


更新:どこから始めればよいかについての質問について...

  1. 始めるのに最適な本は、常に問題のプロセッサのテクニカル リファレンス マニュアルです。ハードウェアに固有の専門用語がたくさん含まれているので、根気よく調べて理解する必要があります。

  2. 並行して、「Linux Device Drivers 3e」、「Understanding the Linux Kernel」、「Professional Linux Kernel Architecture」などの本を読んで、Linux カーネルの理解を深めてください。

  3. ブートローダーは通常、ハードウェアを念頭に置いて作成され、Linux カーネルと同様のセマンティクスを使用して実装されます。つまり、Linux カーネルから大量に借用します。インターネット中のランダムなブログで、大量のものが入手可能です。Stackoverflowやkernelnewbiesなどのメーリング リストに積極的に参加することは、定期的にそれらを見つける良い方法です。

于 2013-07-11T02:31:38.267 に答える