1

組み込みシステム (PowerPC プロセッサを使用) では、プロセッサ キャッシュを無効にしたいと考えています。どのような手順を踏む必要がありますか?

少し明確にするために、問題のアプリケーションは、可能な限り一定の実行速度を備えている必要があります。同じコード パスを実行する際の可変性は許容されません。これがキャッシュをオフにする理由です。

4

5 に答える 5

4

私は質問に少し遅れており、PPC ですべての低レベルのプロセッサ初期化コードを実行してからしばらく経ちましたが、キャッシュと MMU がかなり緊密に結合されていたことを覚えているようです (1 つを有効にする必要がありました)。他を有効にする) MMU ページ テーブルで、キャッシュ可能な属性を定義できると思います。

つまり、私の要点は次のとおりです。決定論的な時間内に実行する必要があるコードの特定のサブセットがある場合、ページ テーブルでキャッシュ不可として定義されているメモリ領域に (リンカー コマンド ファイルを介して) そのコードを配置する可能性があります。そうすれば、キャッシュの恩恵を受けることができる/すべきであるすべてのコードが恩恵を受け、(願わくば) すべきでないコードのサブセットは恩恵を受けません。

とにかくこの方法で処理するので、後でシステムの一部のキャッシングを有効にしたい場合は、init コードを (再) 書き込む代わりに、MMU ページ テーブルのいくつかのビットを反転するだけで済みます。すべてのページ テーブルとキャッシュを設定します。

于 2008-11-03T13:55:10.897 に答える
2

E600 リファレンス マニュアルから:
HID0 専用レジスタには、命令キャッシュとデータ キャッシュを無効化、無効化、およびロックするいくつかのビットが含まれています。

データ キャッシュを無効にするには、HID0[DCE] = 0 を使用する必要があります。
命令キャッシュを無効にするには、HID0[ICE] = 0 を使用する必要があります。

電源投入時には、両方のキャッシュが無効になっていることに注意してください。これをアセンブリ コードで記述する必要があります。

于 2008-09-16T15:02:46.263 に答える
1

キャッシュをオフにすると、まったく役に立ちません。実行速度が桁違いに低下します。このようなシステムを出荷することは決してないため、これらの条件下でのパフォーマンスは重要ではありません。

安定した実行速度を実現するには、次のいずれかの方法を検討してください。

1) キャッシュの一部またはすべてをロックします。Freescale、IBM、および AMCC の現在の PowerPC チップはすべて、この機能を提供します。

2) L2 キャッシュを備えた Freescale チップの場合は、そのキャッシュの一部をオンチップ メモリとしてマッピングすることを検討してください。

于 2009-09-28T02:47:27.957 に答える
1

おそらく、キャッシュをグローバルに無効にするのではなく、特定のアドレス範囲に対してのみ無効にしたいですか?

一部のプロセッサでは、アドレス範囲の TLB (変換ルックアサイド バッファー) エントリを構成して、各範囲でキャッシュを有効または無効にすることができます。このようにして、メモリ マップド I/O のキャッシュを無効にしても、RAM のメイン ブロックのキャッシュをオンのままにしておくことができます。

私がこれを実行した唯一の PowerPC は PowerPC 440EP (IBM、その後 AMCC 製) だったので、すべての PowerPC が同じように動作するかどうかはわかりません。

于 2008-10-02T20:40:56.280 に答える
1

どのような PPC コアですか? キャッシュ制御は、さまざまなベンダーのさまざまなコア間で非常に異なります...また、キャッシュを無効にすることは、一般的に、マシンにとって非常に悪いことだと考えられています。古い 8 ビット プロセッサを使用しても同じように動作するほどパフォーマンスが非常に遅くなります (少し誇張されています)。一部の ARM バリアントには、キャッシュの代わりに機能する密結合メモリである TCM がありますが、その機能を備えた PPC バリアントは認識していません。

おそらくより良い解決策は、レベル 1 キャッシュをアクティブに保ち、代わりにオンチップ L2 キャッシュを静的にマップされた RAM として使用することでしょうか? これは、少なくとも最新の PowerQUICC デバイスでは一般的です。

于 2008-10-02T20:49:17.430 に答える