3

それはいくつかのプリフェッチ技術に関連していますか? それともDDRアクセスのタイミング特性?

4

3 に答える 3

7

ARMv5TE 以降の IIRC は、LDRD/STRD 命令に対応するために、書き込みバッファと L1 キャッシュへのパスが 64 ビット幅です。これにより、STM はサイクルごとに 2 つのレジスタを書き込むことができます。

また、L1 命令キャッシュを少し節約し、デュアル発行コアでパイプラインを 1 つだけ使用することもできます。これも追加のメリットです。

于 2013-03-19T13:31:38.337 に答える
4

より多くの命令、より多くのフェッチ サイクル、より多くの命令を実行すると、時間がかかります。バスは 64 ビット幅であるか、または 64 ビット幅である可能性があります。1 つのレジスタ stm の場合、ゲインはありませんが、複数のレジスタを使用すると、データを移動するためのバス サイクル数が減少し、メモリ システムによっては、 64ビット幅では、読み取り-変更-書き込みも低速です。通常はライトスルーであるはずのキャッシュに読み取り、変更、書き込みを行う必要がある場合、読み取りのコストだけでなく、キャッシュ領域も失います。キャッシュでヒットした場合でも、読み取り-変更書き込みによりコストがかかる可能性があります。

arm サイトにアクセスして amba/axi 仕様をダウンロードし、バス トランザクションがどのように機能するかを確認できます。オーバーヘッドを乗り越えたら、トランザクションごとに多数のクロック サイクルが関係します (一度に複数のトランザクションを実行できます)。これは 64 ビット分のデータあたりのクロックであるため、128 ビットは転送に 64 ビットよりも 1 クロック多くかかります。32 ビットと 64 ビットでは、転送に同じ量のクロックが必要です (アライメントされている場合)。

すべてのアーキテクチャについて話すことはできませんが、少なくとも 1 つのアーキテクチャでは、読み取りのみが実際には 1 回の転送で 64 ビット以上を実行すると信じています。書き込みは、個別の 64 ビット転送に分割されました。私はそれを間違って覚えている可能性があります。

4 ワード相当のデータを読み取りまたは書き込み、アライメントなしで移動すると、奇数ワードごとに 1 つと、中央のアライメントされた 64 ビットに 1 つずつ、合計 4 つの個別の転送になると思います。したがって、アライメントが重要になる可能性があります。

于 2013-03-19T13:54:55.093 に答える
2

それはいつですか?

この便利な表によると、STM命令は 1 つのレジスタを格納するのに 2 サイクル、またはn > 1の場合、 nのレジスタを格納するのに n サイクルかかります。

一方、 はSTR常に 1 サイクルかかります。

STMよりも速いのはSTRいつですか?

  • 1 つのレジスタの場合、STM速度が遅くなります。
  • nのレジスタ ( n > 1) の場合、それらは同じです。

一方、上記のリファレンスは ARM9TDMI アーキテクチャ用であり、多くの ARM があります。

于 2013-03-19T13:16:45.287 に答える