3

ライト バック モードを使用する場合、PowerPC750 のデータ キャッシュをオフにする前にフラッシュするルーチンを作成しています。

フラッシュ ルーチンを含むキャッシュのプログラミングに関するIBM アプリケーション ノートを見つけましたが、サンプル コードに混乱しています。例の間違いかもしれませんが、確認してみようと思いました。リスト 2 には、「次のブロックに移動する」という命令を含む 2 つのループがあります。次のブロックへの移動は、現在のアドレスに 0x10 を追加することによって実現されます。キャッシュ ラインは 32 バイト幅だと思うので、これは 0x20 (32) の追加であると予想していました。誰かが私の考えを肯定または否定できますか?!

4

2 に答える 2

4

あなたは正しいようです。リストの上部に数学が記載されています。

! CTR - the number of data blocks needed to fill the cache - save it in r3
!       32K (size of cache) / 32 (bytes per block) = 0x400

彼らは常にカウント レジスタを 0x400 に設定し、そのドキュメントのいくつかの場所でブロックあたり 32 バイトがあると述べています。したがって、その計算に従って、0x10 ではなく 0x20 をインクリメントする必要があります。他のアセンブリと同様に、何らかの奇妙なシリコン エラッタがある場合に備えて、必ず両方の方法でテストする必要があります。

于 2009-08-24T15:30:59.777 に答える
4

他の SO ユーザーからの確認に続いて、アプリケーション ノートの作成者に電子メールを送信しました。彼は、0x10 は 0x20 であるべきであり、将来的にメモを更新する可能性があることに同意しました。

于 2009-08-25T08:19:33.890 に答える