CLA タイプ 2 は、独立した、完全にプログラマブルな 32 ビット浮動小数点演算プロセッサであり、C28x ファミリで制御ループの同時実行を可能にします。CLA の割り込みレイテンシが短いため、ADC サンプルを「ジャスト・イン・タイム」で読み取ることができます。これにより、ADC サンプルから出力までの遅延が大幅に減少し、システム応答の高速化と高い周波数での制御ループを実現できます。CLA を使って時間に制約のある制御ループを処理することで、メイン CPU は、他のシステムタスク、たとえば通信や診断を自由に実行できます。
制御補償アクセラレータは、並列処理を追加することで C28x CPU の機能を拡張します。時間に制約のある制御ループを CLA で処理することにより、ADC のサンプリングから出力までの遅延を低減できます。したがって CLA を使用することで、より速いシステム応答とより高い周波数の制御ループを実現できます。時間に制約のあるタスクに CLA を利用すると、メイン CPU が解放され、その他のシステム機能と通信機能を同時に実行できます。
CLA の主な機能を以下に示します。
- CLA ソフトウェア開発には C コンパイラが利用可能
- メイン CPU と同じ速度のクロック (SYSCLKOUT) で動作
- 独立したアーキテクチャにより、メイン C28x CPU から独立して CLA アルゴリズムを実行
- 充実したバス・アーキテクチャ:
- プログラム・アドレス・バス (PAB) とプログラム・データ・バス (PDB)
- データ読み取りアドレス・バス (DRAB)、データ読み取りデータ・バス (DRDB)、データ書き込みアドレス・バス (DWAB)、データ書き込みデータ・バス (DWDB)
- 独立した 8 段パイプライン
- 16 ビット・プログラム・カウンタ (MPC)
- 4 つの 32 ビット結果レジスタ (MR0~MR3)
- 2 つの 16 ビット補助レジスタ (MAR0、MAR1)
- ステータス・レジスタ (MSTF)
- 命令セットの内容:
- IEEE 単精度 (32 ビット) 浮動小数点演算
- 並列ロードまたはストア付き浮動小数点演算
- 並列加減算付き浮動小数点乗算
- 1/X と 1/sqrt(X) の概算
- データ・タイプ変換
- 条件付き分岐および呼び出し
- データのロード / ストア操作
- CLA プログラム・コードは、最大 8 つのタスクもしくは割り込みサービス・ルーチン、または 7 つのタスクとメインのバックグラウンド・タスクで構成できます。
- 各タスクの開始アドレスは MVECT レジスタで指定されます。
- 設定可能な CLA プログラム・メモリ空間内にタスクが収まる限り、タスク・サイズに制限はありません。
- 一度に 1 つのタスクが最後まで処理されます。タスクのネスティングはありません。
- タスクが完了すると、PIE 内でタスク固有の割り込みが生成される。
- 1 つのタスクが完了すると、次に優先度が高い保留タスクが自動的に開始される。
- タイプ 2 CLA では、バックグラウンドでメイン・タスクを継続的に実行しながら、優先度の高い他のイベントによってフォアグラウンド・タスクをトリガすることも可能です。
- タスク・トリガ機構:
- C28x CPU から IACK 命令による
- タスク 1~タスク 8:CLA が第 2 位の所有権を持つ共有バスに接続されているペリフェラルから、最大 256 のトリガ・ソースを使用可能
- タスク 8 は、バックグラウンド・タスクに設定でき、タスク 1~7 はペリフェラル・トリガに設定できます。
- メモリおよび共有ペリフェラル:
- CLA とメイン CPU の間の通信のための 2 つの専用メッセージ RAM。
- CLA と DMA の間の通信のための 2 つの専用メッセージ RAM。
- C28x CPU は、CLA プログラムとデータ・メモリをメイン CPU 空間または CLA 空間に割り当てることが可能。
図 8-4 に、CLA のブロック図を示します。