2011-06-20 2 views

答えて

1

通常、すべてのバッファをSIMDベクタ境界(16バイトまたは32バイトの境界線)に整列させる必要があるSIMDコード(SSE、AltiVec、AVX、Neonなど)を使用する場合、 。

もう1つの一般的なアライメントの要件は、仮想メモリページのアライメント(通常4 KB)です。

0

mallocより厳密なメモリアラインメントが必要な場合は、

mallocは通常、プリミティブ型(通常は8バイト)のいずれかで使用できるような位置にポインタを戻します。

ただし、他の境界に合わせてメモリを調整する必要がある場合があります。この場合、memalignが必要です。

0

一部の特殊命令(SSE命令など)では、正常に動作するためにデータを正しく配置する必要があります。カーネルモードで開発している場合は、一部のDMAコントローラでも正しい位置合わせが必要です。

2

最近ポップアップした理由の1つは、データバッファの構造体/オブジェクトがキャッシュラインを共有しないようにすることです。これにより、キャッシュ・フラッシュの必要性が減ります。

ggds、 Martin

関連する問題