web-dev-qa-db-ja.com

キャッシュメモリと密結合メモリの違いは何ですか

CPU内に組み込まれているため、TCMにはハーバードアーキテクチャがあり、ITCM(命令TCM)とDTCM(データTCM)があります。 DTCMには命令を含めることはできませんが、ITCMには実際にデータを含めることができます。 DTCMまたはITCMのサイズは最小4KiBであるため、通常の最小構成は4KiBITCMおよび4KiBDTCMです。

Tcmはキャッシュメモリと同じ目的を持っているようです。

いいえ。説明にWordキャッシュを使用していません。

8
mrigendra

キャッシュは、アクセスパターンを使用して、キャッシュ内にデータを入力します。バッキングアドレスを追跡するための追加のハードウェアがあり、キャッシュラインがダーティ(他の誰かがプライマリメモリに何かを書き込んだ)を追跡するために他のシステムエンティティ(SMP)と通信する場合があります。

「TCM」(密結合メモリ)は高速で、おそらくキャッシュのようなSRAMマルチトランジスタメモリです。どちらもCPUへの高速専用接続を備えています。ただし、TCMを実装するためのオーバーヘッドは、キャッシュよりはるかに少なくなります。通常、TCMはローエンド(おそらくCortex-Mに深く埋め込まれている)ARMデバイスにあります。

ほとんどのCPUキャッシュには、ロックダウン機能があり、TCMのように動作できます。ただし、TCMには、使用頻度の高いコードとデータをバッファリングするためのオンザフライ機能がありません。このため、TCM(およびロックされたキャッシュ)はおそらくより決定論的であり、ハードリアルタイムアプリケーションに役立つ可能性があります。

9
artless noise

これは、私がより簡潔で要点を感じていることです。

キャッシュメモリは、オンチップメモリ​​と制御ロジックで実装されています。密結合メモリは、オンチップメモリ​​と専用接続で実装されています。

密結合メモリのアドレスマップでは、スパンが固定されています。キャッシュはアドレスマップに存在しません(....まあそれはちょっとそうです....それを物理メモリとは考えないでください)代わりに、プロセッサとメモリの間の中間として機能し、(うまくいけば)提供しますより効率的なメモリアクセス。

密結合メモリには、決定論的なアクセス時間があります。データはキャッシュに存在する(ヒット)か、データをメインメモリからフェッチする必要がある(ミス)ため、キャッシュを介したアクセスは決定論的ではありません。

別の

どちらも非常に高速にアクセスされるメモリですが、キャッシュは、グローバルAvalonマトリックスに接続された標準メモリと比較して、アクセス速度を向上させるために最近使用されたデータ/コードを動的に格納します。メモリアクセスが必要になるたびに、プロセッサは必要なデータがすでにキャッシュに存在するかどうか、またはメモリから新たにフェッチする必要があるかどうかを確認します。その間、古い未使用のキャッシュデータは継続的に新しいデータに置き換えられています。密結合メモリは、専用ポートを利用するため、高速アクセスメモリでもありますが、静的なコンテンツがあります。必要なものを決定し、リンカースクリプトで指定します。

3
mrigendra

TCMはアドレス空間を割り当てているので、メモリマップで見つけることができます。リンク時にすでにそこに保存されるデータを制御できます。キャッシュと同様のアクセス時間を持つ通常のシステムメモリと考えてください。通常、TCMからのデータはキャッシュできません。

0
undercat

デュアル構成可能なcache-cum-TCMを無視する場合、外部メモリを接続するためにキャッシュメモリをバスインターフェイス(BIU)に接続する必要がありますが、TCMはそうではありません。理由は、TCMがそれ自体で元のデータを持っているからです。一方、キャッシュは外部メモリコンテンツの(速度のための)一時的なストレージです。

0
sniper