異なるアセンブリ言語では、MUL(x86)/ MULT(mips)は乗算を指します。それはプログラマーのためのブラックボックスです。私は、アーキテクチャに関係なく、実際にCPUが乗算をどのくらい達成するかに興味があります。私はレジスタに2つの16ビット値があり、私はCPUだと言います。私はMULを実装する必要があります。他のビットバイディング命令(xor、not、shl、shrなど)を使用します。何をすればよいでしょうか?CPUがMUL/MULTのような命令をどのように実装していますか?
7
A
答えて
7
http://en.wikipedia.org/wiki/Multiplication_ALUには、デジタル回路で乗算を行うさまざまな方法が記載されています。
大学でVerilogのDEC AlphaライクなプロセッサにSIMD命令を追加するプロジェクトに取り組んだとき、私たちはWallace tree multiplierを実装しました。主な理由は、一定のサイクル数で実行され、パイプラインが簡単でした。
編集:他のビットの手書き命令を使用して説明しましたが、最新のプロセッサでは乗算はこのようにマイクロコード化されません。それは遅くなるだろうし、プロセッサはベンチマークで虐殺されるだろう。
3
This pageは、4 * 4の組み合わせ乗算器の論理ゲートを示しています。あなたはそこから仕事をすることができます。
Here is somebody's labここでは、それぞれ4つの4ビット乗算器から16ビット乗算器を構築することを説明しており、それぞれがANDゲートと全加算器で構築されています。フルデザイン、チップレイアウト、シミュレーション波形
+1
両方のリンクは現在死んでいる:/ –
関連する問題
- 1. どのようにCPUの並べ替え命令
- 2. CPUがサポートしていない命令を実行するとどうなりますか?
- 3. x87 FPOP命令とFCOM命令 - どのように動作しますか?
- 4. `test`命令はどのように機能しますか?
- 5. MOVSXアセンブリ命令はどのように機能しますか?
- 6. x86 ROR命令はどのように機能しますか?
- 7. SSE命令はどのように使用できますか?
- 8. la命令はどのようにMIPSで翻訳されていますか?
- 9. MIPS命令のカウントは実装によって変更されますか?
- 10. 1つの命令と1つの命令を結合するにはどうすればよいですか?
- 11. Collection.sortがどのように実装されていますか?
- 12. 命令をノーオペレーションしようとする
- 13. I/Oのような命令はユーザーモードでどのように動作しますか?
- 14. netlogoでparamによる命令をどのように渡すのですか?
- 15. Redux Thunkはどのように実装していますか
- 16. はどのようにCAS命令を保証しアトミック
- 17. どのようにインターフェイスを実装している場合、このような
- 18. コンピュータはデータと命令をどのように区別しますか?
- 19. 'BL'アームの命令分解はどのように機能しますか?
- 20. Marklogic Rest Apiインスタンスのインストール - 命令はどのように失敗しますか?
- 21. CPUレジスタを含む命令をメモリ命令に変換する
- 22. ARMアセンブリTBB命令 - ジャンプはどのように機能しますか?
- 23. このようなイテレータを実装していますか?
- 24. SIGILLハンドラで、どのように問題の命令をスキップできますか?
- 25. NSNotificationCenterが存在しない場合、どのように実装しますか?
- 26. GOLD Parse、実際にコードをどのように実装していますか?
- 27. @privateはどのように実装されていますか?
- 28. BigDecimalはどのように実装されていますか?
- 29. HttpSessionはどのように実装されていますか?
- 30. removeEventListenerはどのように実装されていますか?
私はcpusが効率の理由から自分の命令を呼び出すわけではありませんが、私は自分自身を表現するために他の方法を持っていませんでした。なぜなら、私が今までに行ったことのない最低レベルは、asmだからです。助けてくれてありがとう! – George
時には彼らがします。 x86は複雑なISAであり、いくつかの非常に奇妙な命令があります。これらの命令は、内部のマイクロコードプログラムに変換されます。 http://en.wikipedia.org/wiki/File:Intel_Nehalem_arch.svgを見ると、複雑なデコードユニットとマイクロコードシーケンサが表示されます。これはこれを行います。 – Michael
現代のCPUよりもさらに悪い分岐予測、ハイパースレッディングなど、マイクロコードと並んで、x86 ISAはマイクロコードと回路で実装された仮想マシンで動作すると言っても過言ではありません。しかし、それについて心配する必要はほとんどありません... –