8.174 --split_ldm

一部の ARM システムでの割り込みレイテンシを短縮するため、複数の LDM 命令または STM 命令への多数のレジスタ転送を実行する LDM 命令と STM 命令を分割します。

--split_ldm が指定されると、LDM 命令または STM 命令のレジスタ転送の最大数が以下の数に制限されます。
  • すべての STM 命令の場合は最大 5 本まで。
  • PC をロードしない LDM 命令の場合は最大 5 本まで。
  • PC をロードする LDM 命令の場合は最大 4 本まで。
これらの制限を超えたレジスタ転送が要求されると、複数の LDM 命令または STM 命令が使用されます。

使用法

--split_ldm オプションを使用すると、以下の ARM システムで割り込みレイテンシを減少させることができます。
  • キャッシュレス ARM7TDMI などのキャッシュや書き込みバッファのない ARM システム。
  • ゼロウェイト状態モード、32 ビットメモリを使用する ARM システム。

--split_ldm を使用すると、コードサイズが増加し、パフォーマンスが若干低下します。

制約条件

  • --split_ldm が指定されている場合は、インラインアセンブラの LDM 命令と STM 命令はデフォルトで分割されます。ただし、後で個々の命令が LDM 命令または STM 命令に再連結されることがあります。
  • --split_ldm が指定されている場合は、LDM 命令および STM 命令のみ 分割されます。
  • 一部のターゲットハードウェアでは、 --split_ldm を指定してコードをビルドしても効果がありません。以下に例を示します。
    • キャッシュ付きシステムや書き込みバッファ付きプロセッサ。
    • ゼロウェイト状態メモリを使用していないシステムや、低速なペリフェラルデバイスのあるシステム。このようなシステムの割り込みレイテンシは、最も速度の遅いメモリまたはペリフェラルデバイスへのアクセスに必要なサイクル数によって決まります。この割り込みレイテンシは、通常、複数レジスタの転送によって誘発されるレイテンシよりも大きくなります。
関連する概念
7.16 C および C++ コードのインラインアセンブラおよび命令の展開
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.