最近、組み込み系やリアルタイム制御の話をしていると、「TCM(Tightly Coupled Memory)」という言葉をまたよく見るようになってきました。特にAIエッジ機器やロボティクス、産業機器系では、「CPU性能だけじゃなくて、レイテンシの安定性が重要」という流れがかなり強くなっています。

実際、最近のSoCって普通に高速です。キャッシュも大きいし、DDRも速い。でも、それだけで全部解決するかというと、そうでもないんですよね。

例えばモーター制御、リアルタイム音声処理、産業機器、センサー同期、ロボット制御みたいな用途だと、「平均速度」より「毎回ちゃんと同じ速度で動く」ほうが重要だったりします。

そこで出てくるのがTCMです。

もっと詳しい技術的な仕組みについては、こちらの 低レイテンシメモリ構造の解説 がかなり分かりやすいです。

TCM(Tightly Coupled Memory)

TCMは「速いメモリ」ではなく「予測しやすいメモリ」

ここ、結構勘違いされやすいポイントです。

普通のキャッシュ付きメモリって、ヒットすれば速いです。でもミスすると急に遅くなる。しかもSoC内部ではGPU、NPU、DMA、USB、ストレージ、全部がメモリ帯域を取り合っています。

つまり「たまに遅れる」。

ゲームやブラウザならそこまで問題になりません。でも制御系では、その“たまに”が危険です。

TCMはCPUコアにかなり近い位置に置かれた専用RAMで、一般的なシステムバスを経由せずにアクセスできます。だからレイテンシが安定しやすい。

要するに、

  • 平均性能より安定性重視
  • キャッシュ依存を減らせる
  • リアルタイム処理向き

という感じです。

ITCMとDTCMって何が違う?

TCMにはよく2種類あります。

ITCM

Instruction TCMの略です。名前の通り、命令実行用。

CPUがコードを読む時に使います。割り込み処理とか、超短周期ループとか、そういう「絶対遅れたくないコード」を置くことが多いです。

DTCM

こっちはData TCM。

データアクセス専用で、バッファや制御データを置いたりします。

組み込み開発やDSP系だと、ITCMとDTCMを分けて使う設計はかなり一般的ですね。

なぜ最近またTCMが注目されてる?

これ、エッジAIの影響がかなり大きいです。

最近のSoCって、CPUだけじゃなく、

  • GPU
  • NPU
  • ISP
  • VPU
  • DMA

みたいに内部ブロックが大量にあります。

つまり内部バスが昔よりずっと混雑する。

すると、「普通のDDRに全部置けばOK」という設計がだんだん厳しくなってきます。

特にロボティクスやAIカメラ系は、

  • AI推論
  • センサー処理
  • モーター制御
  • ネットワーク通信

を同時に回すので、メモリ競合が起きやすい。

だから最近は「どこをTCMに置くか」がまた重要になってきています。

Rockchip系でもリアルタイム性はかなり重要になっている

Rockchip系SoCでも、この流れはかなり見えます。

特にRK3588系はAI・映像・I/O全部盛りみたいな構成なので、単純なCPU性能だけじゃなく、「どうメモリを扱うか」が結構重要です。

RK3588と次世代系の違いについては、こちらの 次世代Rockchipアーキテクチャ比較 も面白いです。

最近のRockchip系って、単なるSBC用途より、

  • エッジAI
  • 産業制御
  • ロボティクス
  • マシンビジョン
  • AI Box

みたいな方向にかなり寄ってきています。

その結果、「レイテンシ安定性」が昔よりずっと重要になってきてる感じですね。

キャッシュだけではダメなの?

もちろん普通のLinux用途なら、キャッシュだけでも十分速いです。

でも問題は「最悪ケース」。

例えばキャッシュミスが起きると、

  • DDRアクセス待ち
  • バス競合
  • DMA割り込み
  • GPUアクセス

みたいなものが重なる場合があります。

これがリアルタイム制御だと嫌なんですよね。

だから、

「ここだけは絶対安定して動かしたい」

というコードやデータをTCMに置く。

これは昔からある手法ですが、AIエッジ時代になってまた重要性が上がっています。

TCMは万能ではない

ただし、TCMにも弱点があります。

一番大きいのは容量。

普通かなり小さいです。

なので全部をTCMに入れることはできません。

実際の開発では、

  • ISR
  • 制御ループ
  • 小さいDSP処理
  • タイミングクリティカルな部分

だけを置くケースが多いです。

つまり「超重要エリア専用メモリ」みたいな感じ。

最近のAIエッジ開発でかなり重要な考え方

面白いのは、最近のAI開発って「TOPS競争」ばかり注目されますよね。

でも実際の現場だと、

  • レイテンシ
  • 安定性
  • 帯域競合
  • 消費電力

のほうが問題になるケースもかなり多いです。

特にロボットや産業系だと、「平均FPS」より「絶対止まらない」が重要。

その意味で、TCMみたいな昔ながらの仕組みが、今また再評価されているのは結構面白い流れだと思います。