最近、組み込み系やリアルタイム制御の話をしていると、「TCM(Tightly Coupled Memory)」という言葉をまたよく見るようになってきました。特にAIエッジ機器やロボティクス、産業機器系では、「CPU性能だけじゃなくて、レイテンシの安定性が重要」という流れがかなり強くなっています。
実際、最近のSoCって普通に高速です。キャッシュも大きいし、DDRも速い。でも、それだけで全部解決するかというと、そうでもないんですよね。
例えばモーター制御、リアルタイム音声処理、産業機器、センサー同期、ロボット制御みたいな用途だと、「平均速度」より「毎回ちゃんと同じ速度で動く」ほうが重要だったりします。
そこで出てくるのがTCMです。
もっと詳しい技術的な仕組みについては、こちらの 低レイテンシメモリ構造の解説 がかなり分かりやすいです。
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みたいな昔ながらの仕組みが、今また再評価されているのは結構面白い流れだと思います。
