整数と浮動小数点演算の両方で、加算(+)演算は比較演算(>)よりも複雑ですか?マイクロプロセッサベースのシステムとFPGAベースのシステムの両方のコンテキストで回答をいただければ幸いです。
私の考え:マイクロプロセッサベースのシステムについて話すとき、比較と加算は同じことだと思います。比較a> bは、(ab)の符号ビット、つまり加算演算をチェックすることで解決できるからです。しかし、FPGAベースのシステムのコンテキストでは、比較演算子の複雑さを軽減できると思いますか?
整数と浮動小数点演算の両方で、加算(+)演算は比較演算(>)よりも複雑ですか?マイクロプロセッサベースのシステムとFPGAベースのシステムの両方のコンテキストで回答をいただければ幸いです。
私の考え:マイクロプロセッサベースのシステムについて話すとき、比較と加算は同じことだと思います。比較a> bは、(ab)の符号ビット、つまり加算演算をチェックすることで解決できるからです。しかし、FPGAベースのシステムのコンテキストでは、比較演算子の複雑さを軽減できると思いますか?
理論的には、各ビットを比較するだけで並列に実行できるため、比較はより高速になる可能性があります。この比較は 2 段階で行われます。1 つはすべてのビットを比較し、もう 1 つは 1 つのビットがオンかどうかをチェックします。(技術的には (a0^b0)|(a1^b1)|...(an^bn) です。すべての ai^bi は同時に実行できます。それは O(log(n)) のはずです)
ただし、追加するには、キャリーを各ビットから他のビットに伝播する必要があるため、O(n) になります。
整数の比較は、msb から lsb までの各ビットを比較するだけでよいため (加算に必要なキャリー ビットを使用せずに)、少し「単純」になります。ただし、複雑さに関しては、どちらも O(log n) です。
しかし、リソース使用量 (ロジック スライスまたは消費電力) に関して、この小さな違いを実際に測定できるとは思えません。