1

(これはこの質問に適したサイトですか?)

私は最近、回路、特に加算、減算、乗算、除算などの数学関数を実行するために使用される回路を調べています。私は図書館から回路全般に関する本を手に入れ、主に数学に関する部分を読みましたが、割り算に関する部分はないようでした。足し算、引き算、掛け算のすべての論理ゲートとその使用法を完全に理解しましたが、その本には割り算については何もありませんでした。Google もあまり役に立たないことがわかりました。だから私の質問は

A) プロセッサは除算を行いますか? それとも、機械語や高水準のプログラミング言語のように、後で行われますか?

その始まりに対する答えがイエスなら、私は知りたい

B) 分割はどのように行うのですか? 彼らはどのバイナリ分割法を使用していますか? そして、それはどの論理ゲートの配置を使用しますか(できればゲートの図)?

4

1 に答える 1

4

A) はい、多くの場合 (x86 は一例です)。他の場合では、除算演算の一部を実行するオペコードが存在する場合があります。さらに、ソフトウェアですべてをエミュレートする必要がある場合もあります。

B)さまざまなテクニック. この本には、除算手法に関する章全体があります: Finite Precision Number Systems and Arithmetic .

バイナリ復元除算は、おそらく最も理解しやすいものです。これは、学校で行う 長い除算に相当します。バイナリ非復元除算は同じものですが、再配置されているため、必要な操作が少なくなります。 SRT部門はそれをさらに進めます。次に、非バイナリ除算 (つまり、より高い基数に基づく) に入ることができます。

基本的な除算アルゴリズムに加えて、負の数、特殊なケース、および浮動小数点 (そのようなことに興味がある場合) も処理する必要があります。繰り返しますが、多くのテクニックが存在します。

それぞれの方法にはトレードオフがあります。Intelなどの特定のバリアントがどのバリアントを使用するかは、一般的な知識ではないと思います。

于 2012-01-02T20:50:30.620 に答える