Main Content


データ コピー削減

モデル パラメーターの調整によるコードの実行速度の向上とメモリ使用量の削減

生成されたコードにおいてデータのコピーを除去することで、RAM と ROM の消費を削減し、コード実行速度を上げます。コード ジェネレーターは一部のデータ コピーを削減します。その他のデータ コピーは、特定のモデル パラメーターを調整するか MATLAB Function ブロックの入力引数および出力引数に同じ名前を指定することで削減するか、Simulink 信号を使って再利用を指定することで削減できます。


既定で削減されるデータ コピー

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.

Minimize Computations and Storage for Intermediate Results at Block Outputs

The code generator folds block computations into a single expression, instead of generating separate code statements and storage declarations for each block in a model.

生成コードでのグローバル ブロック出力の再利用

コード ジェネレーターはグローバル変数を再利用しようとします。

Enable and Reuse Local Block Outputs in Generated Code

Where possible, the code generator declares block outputs as local variables, so that it can potentially reuse these variables.

データ コピーからポインターの割り当てへの変換

コード ジェネレーターは、for ループ制御による要素割り当てと関数 memcpy の呼び出しをポインターの割り当てで置換することで、ベクトル信号割り当ての生成コードを最適化します。

Virtualized Output Ports Optimization

The code generator eliminates code and data storage associated with root output ports by storing the signal entering the root output port as a global variable.

Inline Invariant Signals

Use the numerical values of invariant signals instead of their symbolic names in the generated code.

Data Copy Reduction for Data Store Read and Data Store Write Blocks

The code generator attempts to eliminate data copies for Data Store Read and Data Store Write blocks.

Reduce Data Copies for Bus Assignment Blocks

For models containing a Bus Assignment block, if possible, the code generator uses the same variable for the block input and output. Reusing these variables reduces data copies, conserves RAM consumption and increases code execution speed.

指定で削減されるデータ コピー

Remove Data Copies by Reordering Block Operations in the Generated Code

Reorder block operations in the generated code to eliminate temporary variables and associated data copies.

Optimize Generated Code by Using Signal Labels to Guide Buffer Reuse

If your model has the optimal parameter settings for removing data copies, you might be able to remove additional data copies by using signal labels. After studying the generated code and the Static Code Metrics Report and identifying areas where you think buffer reuse is possible, you can add labels to signal lines. If possible, the code generator reorders block operations to implement the reuse specification.



Specify Buffer Reuse for MATLAB Function Blocks in a Path

Reuse buffers across MATLAB Function blocks.

Simulink.Signal オブジェクトを使用したバッファーの再利用の指定

Simulink 信号オブジェクトを使用して、ルート入力端子と出力端子、Delay ブロック、および Unit Delay ブロックが含まれる可能性があるパスにおいて、複数の信号に対してバッファーの再利用を指定する。

Generate Efficient Code for Bus Signals

Model buses to maximize efficiency of the generated code.