コンピュータアーキテクチャ 第7回 1 演算回路(算術論理演算ユニットとシフタ) 算術論理演算ユニットの構成モジュール – 加算器 足し算をつかさどる組み合せ回路 減算器にも拡張可 フリップフロップ を付け加えることでカウンタを構成 – 論理演算器(AND, OR, XOR) – 論理加減算器(16 ビットの符号なし 2 進数の加減算) シフタ – シフト演算を実現する組合せ回路 今回の内容 ~以下の各要素と全体構成の例~ – – – – – * 半加算器と全加算器: * 並列加算器: * 加減算器: カウンタ: 書き換え機能つきカウンタ,ダウンカウンタ シフタ: 1 ビットシフタに限定 2 ハードウェアモデルにおける位置付け * * * 3 半加算器 (HA: Half Adder) 演算データ a, b (1 ビット)を入力 演算結果 f, c を出力 c : 桁上げ出力 * * 4 全加算器 (FA: Full Adder) 演算データ a, b, cin (1 ビット)を入力 演算結果 f, cout を出力 cin : 桁上げ入力, cout : 桁上げ出力 * * 5 論理演算の性質 6 演習問題 7.1 7 並列加算器(parallel adders) リップルキャリー方式: * 8 * * ルックアヘッドキャリー (look-ahead carry) * * 10 演習問題 7.2 1 11 減算をどうやって実現するか? 4 ビットの例 A–B =7–5 = (0111)2 – (0101)2 = (0111)2 + (0101)2 の2の補数 = (0111)2 + (0101)2 の1の補数 + 1 A ・・・ Bの1の補数 ・・・ キャリー(桁上り) ・・・ * +1 12 加減算器 (adder-subtractor) s0 : * * のとき加算器, * のとき減算器 13 4 ビット加減算器の真理値表 * 14 演習問題 7.3 前記の 4 ビット加減算器において,A 入力または B 入力をすべて 1 としたとき,どのような演算が おこなわれるか?それぞれ s0, c0 の組み合せごと に示せ.また,それらを確かめる具体的な数値例を 示せ. 15 カウンタ (counter) (1) (a) * 16 カウンタ (counter) (2) (b) * 17 カウンタ (counter) (3) (c) インクリメンタ (incrementer) とも呼ばれる clock 信号がハイレベルに変わるごとに2進数 f3 f2 f1 f0 の値が 1 増加 * 18 演習問題 7.4 前述のように, 4 ビット 2 進数に 1 を加える加算器 を,半加算器と基本ゲートによって置き換えられる ことを示せ. 19 書き換え機能つきカウンタ sinc がハイレベルのときは プログラムカウンタに使用される * * ,ローレベルのときは 20 書き換え機能つきダウンカウンタ sdcr がハイレベルで 本講義ではスタックポインタに使用 * ,ローレベルでは * 21 4 ビット書き換え機能つきカウンタのタイムチャート例 演習問題 7.5 右の 4 ビット ダウンカウンタの タイムチャート例を 完成せよ. 23 算術論理演算ユニット (ALU: Arithmetic Logic Unit) * 算術論理演算ユニットの真理値表 演習問題 7.6 4 ビットの符号なし 2 進数の減算は,5 ビットの符号つき 2 進 数の減算として実行できる.これが実際には, 4 ビットの符号 つき 2 進数用加減算器で実行可能であることを示せ. シフタ (Shifter) データ幅 4 ビットの 1 ビットシフタ構成例 * * データ幅 4 ビットの 1 ビットシフタの真理値表 シフト命令の実行概念 1ビットシフタ: バレルシフタ(barrel shifter): • 1 クロックで • ハードウェア量大 * * 算術左シフト命令実行例 演算回路の構成
© Copyright 2025 ExpyDoc