Download presentation
Presentation is loading. Please wait.
1
コンピュータアーキテクチャ 第 7 回
2
演算回路(算術論理演算ユニットとシフタ)
算術論理演算ユニットの構成モジュール 加算器 足し算をつかさどる組み合せ回路 減算器にも拡張可 フリップフロップ を付け加えることでカウンタを構成 論理演算器(AND, OR, XOR) 論理加減算器(16 ビットの符号なし 2 進数の加減算) シフタ シフト演算を実現する組合せ回路 今回の内容 ~以下の各要素と全体構成の例~ 半加算器と全加算器: 並列加算器: 加減算器: カウンタ: 書き換え機能つきカウンタ,ダウンカウンタ シフタ: 1 ビットシフタに限定 1 ビットの加算 * N ビットの加算 * 2の補数による負数の加算 *
3
ハードウェアモデルにおける位置付け 書き換え機能付きダウンカウンタ * * 並列加減算器 書き換え機能付きカウンタ *
4
半加算器 (HA: Half Adder) 演算データ a, b (1 ビット)を入力 演算結果 f, c を出力 c : 桁上げ出力 *
5
全加算器 (FA: Full Adder) 演算データ a, b, cin (1 ビット)を入力 演算結果 f, cout を出力
cin : 桁上げ入力, cout : 桁上げ出力 * *
6
論理演算の性質
7
演習問題 7.1
8
2進数の加算はどのように実行されるか? A + B = 3 + 2 = (0011)2 + (0010)2
4 ビットの例 (1) A + B = = (0011)2 + (0010)2 * A ・・・ B ・・・ キャリー(桁上り) ・・・ 1 オーバフローなし ( -8 < 5 < 7 ) 1 1 4 ビットの例 (2) A + B = = (0111)2 + (0011)2 * A ・・・ B ・・・ キャリー(桁上り) ・・・ 1 1 1 オーバフローあり ( 7 < 10 ) 1 1
9
並列加算器(parallel adders)
* リップルキャリー方式: 下位ビットから上位ビットへ 順次桁上げを伝える方式
10
結果的にキャリー c1~c4 は, a0~a3 , b0~b3 で決定できる * *
11
ルックアヘッドキャリー (look-ahead carry)
リップルキャリー方式 より高速 * リップルキャリー方式 よりハードウェア量大 *
12
演習問題 7.2
13
減算をどうやって実現するか? A – B = 7 – 5 = (0111)2 – (0101)2
4 ビットの例 A – B = 7 – 5 = (0111)2 – (0101)2 = (0111)2 + (0101)2 の2の補数 = (0111)2 + (0101)2 の1の補数 + 1 A ・・・ Bの1の補数 ・・・ キャリー(桁上り) ・・・ * 1 1 1 1 1 +1 1
14
加減算器 (adder-subtractor)
のとき加算器, のとき減算器 * 制御入力 * * s0 = 0, c0 = 0 s0 = 1, c0 = 1
15
4 ビット加減算器の真理値表 *
16
演習問題 7.3 前記の 4 ビット加減算器において,A 入力または B 入力をすべて 1 としたとき,どのような演算が
おこなわれるか?それぞれ s0, c0 の組み合せごと に示せ.また,それらを確かめる具体的な数値例を 示せ.
17
カウンタ (counter) (1) * (a) 4 ビット 2 進数に 1 を加える加算器
18
カウンタ (counter) (2) * (b) 半加算器と基本ゲートによる置き換え
19
カウンタ (counter) (3) (c) フリップフロップを追加してできた 4 ビットカウンタ
* インクリメンタ (incrementer) とも呼ばれる clock 信号がハイレベルに変わるごとに2進数 f3 f2 f1 f0 の値が 1 増加
20
演習問題 7.4 前述のように, 4 ビット 2 進数に 1 を加える加算器を,半加算器と基本ゲートによって置き換えられることを示せ.
21
書き換え機能つきカウンタ s がハイレベルのときは ,ローレベルのときは プログラムカウンタに使用される カウンタ データ取り込み inc
* * カウンタ データ取り込み inc
22
書き換え機能つきダウンカウンタ s がハイレベルで ,ローレベルでは 本講義ではスタックポインタに使用 ダウンカウンタ データ取り込み
* * ダウンカウンタ データ取り込み dcr
23
4 ビット書き換え機能つきカウンタのタイムチャート例
24
演習問題 7.5 右の 4 ビット ダウンカウンタの タイムチャート例を 完成せよ.
25
算術論理演算ユニット (ALU: Arithmetic Logic Unit)
* COMET II の ALU構成例
26
算術論理演算ユニットの真理値表
27
演習問題 7.6 4 ビットの符号なし 2 進数の減算は,5 ビットの符号つき 2 進
数の減算として実行できる.これが実際には, 4 ビットの符号 つき 2 進数用加減算器で実行可能であることを示せ.
28
シフタ (Shifter) データ幅 4 ビットの 1 ビットシフタ構成例 sari がハイレベルで算術シフト sL がハイレベルで左シフト
* sL がハイレベルで左シフト *
29
データ幅 4 ビットの 1 ビットシフタの真理値表
30
シフト命令の実行概念 1ビットシフタ: 1 クロックで 1 ビットシフトする バレルシフタ(barrel shifter): 1 クロックで
* バレルシフタ(barrel shifter): 1 クロックで ハードウェア量大 * 任意の ビット数シフトする
31
算術左シフト命令実行例
32
演算回路の構成
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.