跳到主要内容

お茶の水女子大学 人間文化創成科学研究科 理学専攻 情報科学コース 2018年8月実施 情報基礎 問題2

Author

祭音Myyura (co-authored with GPT 5.6 SOL)

Description

CPU 内部の 32 ビット加算回路を次の手順で設計する。

  1. 入力を X,YX,Y、和を SS、桁上げを CC とする 1 ビット半加算器 HAHA の真理値表を示し、S,CS,C を論理式で表せ。
  2. 論理演算子の記号を用いて HAHA の論理回路図を示せ。
  3. 入力 Xi,Yi,Ci1X_i,Y_i,C_{i-1}、出力 Si,CiS_i,C_i をもつ 1 ビット全加算器 FAiFA_i の真理値表を示し、Si,CiS_i,C_i を論理式で表せ。
  4. 式を簡単化し、FAiFA_i の論理回路図を示せ。回路内に HAHA を含めてもよい。
  5. 32 個の全加算器 FA1FA_1 から FA32FA_{32} を接続した 32 ビット加算回路の概略を描け。
  6. この加算回路を含む CPU の部分の英語名と略称を答えよ。

题目描述

从半加器的真值表与逻辑电路出发,构造全加器,再把 32 个全加器连接成 32 位串行进位加法器,并写出该电路所属 CPU 部件的英文名称与缩写。

Kai

(1)

XXYYSSCC
0000
0110
1010
1101

したがって

S=XY,C=XY.\boxed{S=X\oplus Y,\qquad C=X\land Y}.

(2)

         ┌─────┐                  ┌─────┐
X ──────►│ │ X ──────►│ │
│ ⊕ │────► S │ ∧ │────► C
Y ──────►│ │ Y ──────►│ │
└─────┘ └─────┘
XOR AND

(3)

Ci1C_{i-1} を下位ビットからの桁上げとする。

XiX_iYiY_iCi1C_{i-1}SiS_iCiC_i
00000
00110
01010
01101
10010
10101
11001
11111

よって

Si=XiYiCi1,Ci=(XiYi)(YiCi1)(Ci1Xi).\boxed{ S_i=X_i\oplus Y_i\oplus C_{i-1}, \qquad C_i=(X_i\land Y_i)\lor(Y_i\land C_{i-1})\lor(C_{i-1}\land X_i)}.

(4)

二つの半加算器を用いる。まず

p=XiYi,c1=XiYi,p=X_i\oplus Y_i,\qquad c_1=X_i\land Y_i,

次に

Si=pCi1,c2=pCi1S_i=p\oplus C_{i-1},\qquad c_2=p\land C_{i-1}

とし、Ci=c1c2C_i=c_1\lor c_2 とすればよい。

Xi ───────►┌─────┐ p ───────►┌─────┐──────► Si
Yi ───────►│ HA1 │ │ HA2 │
└──┬──┘ Ci-1 ►└──┬──┘
│ c1 │ c2
└──────►[ OR ]◄────┘

└──────────────► Ci

(5)

最下位ビットから最上位ビットへ桁上げを順に接続する。

          X1,Y1          X2,Y2                         X32,Y32
││ ││ ││
C0=0 ───► [FA1] ──C1──► [FA2] ──C2──► ... ──C31──► [FA32] ──► C32
│ │ │
S1 S2 S32

これは 32 ビットのリップルキャリー加算器である。

(6)

CPU の Arithmetic Logic Unit(ALU、算術論理演算装置) に含まれる。