No.3ベストアンサー
- 回答日時:
> mov命令は転送したいデータと0を加算することで、そのデータを転送すると聞いたことがあるのですが、mov命令は0を加算せずにそのままALUを素通りしてレジスタなどに書き込まれる、という考え方でいいのでしょうか。
これはデータパスをどのように設計するかによります。
一般的にはMOV命令の場合、ALUは何もしません。あなたがいうようにALUで転送データに0を加算して、その結果をALUからレジスタに転送をしてもMOV命令としての動作はするので、そういう設計をしていればそのようになります。ただ、そうするとALUが動作することになるので、電力を消費してしまいます。
電力を無駄に消費したくなければ、ALUで転送データに0を加算するのではなく、転送データはALU内に埋め込まれたバス(バスはALUの論理回路をバイパスしているが、物理的にはALU内に埋め込まれている)を通すようにしたほうが、余計な演算をALUで行うことがないので、消費電力を抑えられます。
実際にデータパスのカスタム設計をした経験がないと、ALU内に埋め込まれたバスっていわれてもピンとこないと思いますが、通常はALUに入ったバスは、ALUの論理回路に入力されるパスとそれをバイパスするパスに分岐します。MOV命令のような転送命令の場合、バイパスを使ったほうが電力消費の観点からは有利なので、そうするのが自然というだけのことです。0を加えてALU内の論理回路を通してもかまわないので、そこは設計によります。
No.2
- 回答日時:
ALUは単なる演算器の塊で、命令のデコードなどの制御は行いません。
ALUは、MOV命令がデコードされた結果、制御される側です。したがって、「ALUにmov命令(転送命令)をしたら」はおかしな表現だけど、あなたが聞きたいことを汲んで回答をすると、あなたの理解で正しいです。
転送データがALUを通るかどうかはデータパスがどう設計されているかによるので何とも言えないけど、ふつうはデータパスはバスのピッチをレジスタのポートに合わせて、なるべくまっすぐになるように設計するので、MOVによる転送データは物理的にはALU内のバスを通して転送されるのが自然です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) パイプラインに詳しい方 5 2022/07/04 16:47
- システム CPUの問題について 2 2022/07/09 12:04
- CPU・メモリ・マザーボード CPUがメモリ上に書かれている命令を実行した後の流れについての質問です。 1 2023/05/05 01:18
- その他(暮らし・生活・行事) ネットに嘘の書き込みをしたら罪になる ? 6 2022/12/15 10:24
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- その他(コンピューター・テクノロジー) 外付けSSDにスマホのデータを書き込むのではなく、外付けSSDをスマホに接続した状態でスマホを使って 4 2023/07/18 19:32
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- ドライブ・ストレージ USBメモリやSSDの処分方法 7 2023/05/02 12:19
- その他(コンピューター・テクノロジー) データの転送速度は何で決まるのでしょうか?読み込み3000MB/Sで書き込み2000MB/Sの外付け 3 2023/07/14 22:13
- ふるさと納税 給与所得等に係る市民税・県民税 特別徴収税の決定通知書について 2 2022/06/08 22:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
VBA 空白セルを削除ではない方...
-
配列でデータが入っている要素...
-
多量のSUMIF式を軽くしたい
-
[VBA] CountIfに変数を使いたい
-
GridViewの行の一部を複数行にする
-
モジュラス103の算出方法について
-
バーコードリーダーの読込デー...
-
【VBA】データを入力後に,同一...
-
ブレーカー落ちで壊れたりしな...
-
【エクセル】測定時間がバラバ...
-
C言語について
-
VBA 判定文で理解できない結果...
-
独自データ属性に日本語は利用...
-
ActiveReportについて
-
ユーザーフォームのテキストボ...
-
なぜ通りがけをすると昇順に整...
-
この行は既に別のテーブルに属...
-
リングバッファって何ですか
-
MySQLから取ってきた配列のデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
Excelのマクロでワードのテキス...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
VBAを使ってOutlookメール本文...
-
Accessで該当データにフラグを...
-
合計3TBのデータのハッシュ値を...
-
シーケンサにパソコンからアク...
-
S9タイプからXタイプにデータ...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
VBA 毎日取得するデータを順番...
-
ビットシフトについて
-
ユーザーフォームのテキストボ...
-
EXCELVBAでSQLserverからデータ...
-
特定のデータの抽出方法を教え...
おすすめ情報
書き方がおかしくて申し訳ございません。少し理解できました。
転送データがALUを通るように設計されているとします。
mov命令は転送したいデータと0を加算することで、そのデータを転送すると聞いたことがあるのですが、mov命令は0を加算せずにそのままALUを素通りしてレジスタなどに書き込まれる、という考え方でいいのでしょうか。
繰り返し申し訳ありませんがよろしくお願いいたします。