1

私は、Javaを使用して単純化されたmipsコンピューターに基づくシミュレーターを完成させようとしています。割り当てに必要なパイプラインロジックは完了したと思いますが、命令キャッシュとデータキャッシュの機能を理解するのに苦労しています。

命令キャッシュは4ブロックで直接マッピングする必要があり、ブロックサイズは4ワードです。

だから私はキャッシュが何をしているのか本当に混乱しています。それはメモリに行き、メモリから命令を引き出しますか?たとえば、1つのブロックには、addコマンドだけが含まれます。

2次元配列として実装するのは理にかなっていますか?

4

1 に答える 1

0

まず、キャッシュの基本を知っておく必要があります。キャッシュは、DRAMまたはメインメモリとプロセッサの間にある中間メモリとして想像できますが、サイズは非常に限られています。これで、メモリ内の場所にアクセスしようとすると、最初にキャッシュ内でその場所を検索します。見つかった場合(キャッシュヒット)、プロセッサはこのデータを取得して実行を再開します。一般に、キャッシュヒットは、たとえば1または2のように、非常に少数のクロックサイクルであると想定されます。データがキャッシュに見つからない場合(キャッシュミス)、データはメインメモリからフェッチされ、キャッシュに入力されて、プロセッサ。プロセッサは、データがフェッチされるまでブロックします。使用しているDRAMによっては、通常、これには数百クロックサイクルかかります。DRAMからフェッチされるデータの量は、キャッシュラインのサイズと同じです。

これで始められると思います。

于 2012-12-04T15:23:40.090 に答える