①ゼロオーバーヘッド・シングルショットモード(図6(a))
単一の演算を実行する最速の方法です。操作手順は次のようになります。
②ゼロオーバーヘッド・パイプラインモード(図6(b))
いくつかの連続した演算を実行する最速の方法です。操作手順は次のようになります。
③ポーリングモード
RRDYフラグをポーリングし、結果を読み取る方法。ポーリングと読み取るまでの間に時間がかかり、オーバーヘッドが発生する。
④割り込みモード
RRDYフラグをポーリングする代わりに、結果が得られるとCPUに割り込みが発生する。割り込みの処理はオーバーヘッドになるが、他のタスクに関してCORDICの優先順位を設定することができる。
②のパイプライン処理は割り込みモードでも使用可能ですが、書き込みと読み取りの順序を維持するように注意が必要です。
⑤DMAモード
DMAモードは、同じ設定を使用した複数の演算をきわめて効率的に実行できます。ソフトウェアで実行するよりも高速化するだけでなく、他のタスクのためにCPUを解放できます。
DMAを使用して、CORDICに引数を書き込むことができ、そして新しい演算が開始されるたびに、DMA書き込みチャンネル要求が生成され、次の引数がメモリからフェッチされます。
同様に、DMAを使用して結果を読み取ることもできます。演算が完了する(RRDYフラグがアクティブになる)ごとにDMA 読み取りチャンネル要求が生成され、結果がメモリに転送されます。
DMAでCORDIC_CSRレジスタを変更できません。したがって、設定を変更する必要がある場合は、まずDMAを停止し、新しい設定をプログラムした後に再起動する必要があります。DMAモードは、常にパイプライン処理です。
DMA書き込み要求は、CORDIC_CSRレジスタでDMAWENビットを設定することによって有効になります。DMA読み取り要求は、CORDIC_CSRレジスタでDMARENビットを設定することによって有効になります。
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.