AI エンジン コンパイラでは、ウィンドウ、ルックアップ テーブル、およびランタイム パラメーターに、バッファーが可能な限り効率的な方法で自動的に割り当てられます。ただし、メモリでのその配置を明示的に制御する必要があることもあります。このセクションで先ほど示したカーネルと同様に、カーネル ポートに推論されるバッファーを、ロケーション制約を使用して特定のタイル、バンク、またはアドレス オフセットに制約できます。
![](data:image/png;base64,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6mPp0qWUlZVRWVnJwoULiYmJaVLdIiLimmZfeQcHB7N48WLefPNNJk+ejJubGwEBAXzwwQfcddddfP/993Tu3Jm9e/eSmZmJyWTi/fffB66/r3rs2DHuv/9+HA4HXbp0cZ5bsGABGRkZTJ8+na5du/LRRx81WMvIkSN5/fXXnbsAtSkoKMDX1xeAm266iV69evH5558DEB8fz5IlS4iOjqZdu3ZERUU5P4Fdl/rG0JCffvrpT9vqhYWFvPzyy0ydOpXQ0FDc3NwYN24ckZGRQO3z4u/vz6BBgwgNDaVt27ZMnz6dXbt2MXjwYJYtW4bVaqVbt24cP37c2c+QIUM4duwYUVFRVFVVERYWxuTJk12qW0REmsZkt9trLKny8vIICgpyqbFXlidV6Y3scF7jfh71+++/JzU11fk+899p1apVZGdns2jRor+9LxEREVfUlsvNvm3+b3Hp0iXeffddMjIymrsUERGRejV529w0768oo3l98cUXTJkyhbS0NMLDw5u7HBERkXo1adtcRERE/l7aNhcREfkvoPAWERExGIW3iIiIwSi8RUREDEbhLSIiYjAKbxEREYNReIuIiBiMwltERMRgFN4iIiIGo/AWERExGIW3iIiIwSi8RUREDEbhLSIiYjAKbxEREYNReIuIiBiMwltERMRgFN4iIiIGo/AWERExGIW3iIiIwSi8RUREDEbhLSIiYjAKbxEREYNReIuIiBiMwltERMRgFN4iIiIGo/AWERExGIW3iIiIwSi8RUREDEbhLSIiYjAKbxEREYNReIuIiBiMwltERMRgzLW9mJeX90/XISIiIi4y2e32quYuQkRERFynbXMRERGDUXiLiIgYjMJbRETEYBTeIiIiBvN/IIOcrtaduV8AAAAASUVORK5CYII=)
- デフォルトでは、Specify Buffer Location はオフになっています。このオプションをイネーブルにすると、制約可能なカーネル ポートが表示されます。バッファーのロケーションは、ウィンドウ カーネル ポートにのみ設定可能です。
- 次の図に示すように、各ポートをクリックして制約をイネーブルにできます。
- Allocation オプションを使用すると、ウィンドウ ポートにシングルまたはダブル バッファー制約を指定できます。デフォルトでは、ウィンドウ ポートはダブル バッファリングされます。
- シングル バッファー割り当てでは、次のものを指定することによりバッファー ロケーションを制約できます。
- AI エンジン タイルの特定のデータ メモリ バンク。バンク ID はそのタイルに相対的に指定し、有効な値は 0、1、2、3 です。
- AI エンジン タイルの特定のデータ メモリ アドレス。オフセット アドレスはそのタイルに相対的に指定し、0 ~ 32768 (32K) の値を使用できます。
- 特定のデータ メモリ アドレス オフセット。オフセット アドレスは 0 ~ 32768 (32K) の範囲で、コンパイラで割り当てられたタイルに相対的です。
- 1 つまたは複数のほかのポート バッファーと同じバンク上にある特定のバッファー ロケーション。これにより、DMA を使用しなくても、ほかのカーネルでバッファーにアクセスできます。
- 特定のアドレスまたはバンク ID に配置されるポートに接続されているダブル バッファーのロケーションを制約できます。
重要: 非コロケーション制約 (バッファーをマップできない場所を指定) は、シングル バッファーにのみ設定可能です。