このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
メモリ使用量
生成コードによる RAM、ROM およびスタック領域の使用の最適化
コード ジェネレーターが変数をローカルとグローバルのどちらで定義するのかおよびサブシステム関数へのデータの受け渡し方法を指定することにより、メモリ消費量を制御します。コンフィギュレーション設定を変更してデータを保存するメモリの量を削減します。
コード ジェネレーターでは、制御フロー構造を結合し、デッド コード パスおよび計算結果に影響しないブロックのコードを削除して ROM の消費を低減します。初期化コード、関数 reset と関数 disable、防御的なコードなど、必要のないコードを削除して ROM の消費をさらに低減できます。
トピック
ローカルまたはグローバルでの変数の定義
- スタック領域の割り当てのカスタマイズ
スタックの最大許容サイズを制御し、生成されたコードでデータをローカルとグローバルのどちらで定義するのかに関する一部の制御を提供します。 - Reduce Memory Usage for Signals
Enable parameters that provide the capability to reuse memory allocated for signals. - 生成されたコードにおけるローカル ブロック出力の有効化と再利用
可能な場合、コード ジェネレーターは、ブロック出力をローカル変数として宣言し、これらの変数を再利用できるようにします。 - 生成コードでのグローバル ブロック出力の再利用
コード ジェネレーターはグローバル変数を再利用しようとします。 - グローバル変数の使用の最適化
メモリ使用量および実行速度の要件を満たすためのグローバル変数参照の最適化を選択する。 - Optimize Generated Code by Passing Reusable Subsystem Outputs as Individual Arguments
The code generator eliminates data copies from local variables back to global block I/O structures by passing reusable subsystem outputs as individual arguments instead of as a pointer to a structure stored in global memory. - Reduce Global Variables in Nonreusable Subsystem Functions
To reduce global RAM for a nonreusable subsystem, generate a function interface that passes data through arguments instead of global variables. - Reduce Memory Usage for Models Containing Referenced Models
Reduce RAM usage for a referenced model by generating optimized code that reuses buffers or generates reusable temporary buffers to hold referenced model outputs.
コード サイズの削減
- ゼロ初期化コードの削除
内部データ (ブロック状態とブロック出力) と外部データ (値がゼロであるルートの Inport と Outport) を生成コードで初期化するかどうかを制御する。 - 生成コードからの reset 関数と disable 関数の削除
モデル参照階層を含む ERT ベースのシステムの生成コードから reset 関数と disable 関数の到達不能 (デッドコード) インスタンスを削除する。 - インライン不変信号
生成されたコード内でシンボリック名ではなく不変信号の数値を使用します。 - ブロック パラメーターの数値のインライン化
ブロック パラメーターのリテラル数値をインライン化し、グローバル RAM 使用量を軽減します。 - Optimize Generated Code by Consolidating Redundant If-Else Statements
The code generator optimizes the generated code by combiningif-else
statements that share the same condition. - 生成されたコードからのデッド コード パスの除去
コード ジェネレーターはデッド (つまり、未使用) コード パスを生成されたコードから除去します。 - 複数の for 構造の組み合わせによる生成コードの最適化
コード ジェネレーターはデータの依存関係の分析を使用して、for
構造を組み合わせて静的なコード サイズとランタイム分岐を削減します。 - ゼロに設定されたローカル変数の初期化コードの生成を制御
既定では、コード ジェネレーターはローカル変数を明示的にゼロに初期化しません。
データを保存するメモリ量の削減
- サイズと次元が異なるバッファーの再利用
サイズと形状が異なる行列にバッファーを再利用する。 - boolean 変数およびステート構成変数に関するメモリ使用量の削減
ステート構成変数とBoolean
変数を保存するメモリ量を削減します。 - 時間カウンターのメモリ使用量の最適化
コード ジェネレーターが経過時間カウンターに割り当てるメモリを最適化します。 - 論理信号の boolean データを使用した生成コードの最適化
コード ジェネレーターは、論理信号をBoolean
データ型として保存し、生成されたコードを最適化します。 - boolean データをビットフィールドにパッキングすることによる生成コードの最適化
コード ジェネレーターでは、boolean データを 1 ビット ビットフィールドにパッキングして RAM の消費を低減します。 - ベクトル演算の最適化
コード ジェネレーターは、一時ローカル配列をローカル変数に置き換えることで、スタック メモリを削減します。 - 組み込みアプリケーションの単精度データ型の指定
たとえば、単精度プロセッサをターゲットとするなど、浮動小数点データ型が単精度のみのコードを生成します。 - ブロック パラメーターのデータ型を指定した効率的なコードの生成
さらに効率的なコードを生成するには、パラメーターのデータ型と信号のデータ型を一致させるか、パラメーターをさらにサイズが小さいデータ型で格納します。 - Control Operator Type in Generated Code
Generate code with Logical or Bitwise Operators or a combination of both operators. - Generate Efficient Code Using Unified Analysis
Reduce RAM usage and data copies performing unified analysis at model-level.