컴퓨터는 어떻게 덧셈, 뺄셈을 할까?

Download Report

Transcript 컴퓨터는 어떻게 덧셈, 뺄셈을 할까?

컴퓨터는 어떻게
덧셈, 뺄셈을 할까?
2011년 10월 5일
정동욱
불 대수(Boolean algebra)
논리학 체계를 흉내 낼 수 있는
0과 1로 이루어진 연산 체계
불 연산자(Boolean operator)
0 또는 1의 입력들을 받아
0 또는 1의 결과를 내보내는 2진 연산자
(예) Y = A and B, Y = A or B, Y = not A
논리회로(Logical circuit)
불 대수 체계를 구현하는 전기회로
입력과 출력 값은 전기신호로
불 연산자는 논리 게이트로 구현
AND 게이트(논리곱)
OR 게이트(논리합)
NOT 게이트(논리적 부정)
기타 논리 게이트
한 자리 수 덧셈기
A
+)_____
B
CS
C는 어떻게 구현할까?
C=A·B
S는 어떻게 구현할까?
S=A⊕B
한 자리 수 덧셈기 완성
Half Adder S=A⊕B / C=A·B
여러 자리 수 덧셈기는?
• 위의 한 자리 수 덧셈기를 이어 붙이면
여러 자리 수 덧셈기가 될까?
• 네 자리 수 P와 Q를 더한다면?
여러 자리 수 덧셈기의 아이디어
완전덧셈기(Full Adder) 모듈
세 개의 입력 Ci, P, Q로부터 두 개의 출력 Co, S가 나오는 회로
Ci
P
Q
Co
S
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
완전덧셈기 모듈을 어떻게 만들까?
Basic 1-bit full adder
S = (P⊕Q)⊕Ci
Co = (P·Q)+((P⊕Q)·Ci)
뺄셈은 어떻게 할 수 있을까?
A-B = A + (-B)
음수를 어떻게 표현할 것인가?
• 음수를 보수로 표현하면
덧셈 뺄셈을 정확히 구현할 수 있음
• B의 보수 = 100...00 - B
• 0011의 보수 = 10000 – 0011 = 1101
= 1 + (1111 – 0011)
= 1 + 1100 = 1101
A+ (-B)의 계산
• A = 5 = 0101(2)
• B = 3 = 0011(2)
-B = -3 = 1101(2)
A - B=
=
=
=
A + (-B)
0101(2) + 1101(2)
10010(2)
2
보수를 논리 게이트로 구현하기
논리회로를 어떻게
실제 회로로 구현할 것인가?
계전기
계전기를 이용한 논리게이트 구현
‘슈퍼 계전기’ 트랜지스터
전자석 계전기 vs. 트랜지스터
• 전자석 계전기 : 전자석에 전기를 흘려주면
스위치를 끌어당겨 스위치를 닫아(열어)주는
장치
• 트랜지스터 : 반도체 표면에 약간의 전압을
가하면 양쪽 사이에 전기를 잘 통과시키는 성
질을 이용한 계전기
• 트랜지스터의 장점은? 스위치 전환 빠름. 스
위치를 아주 작게 만들 수 있음. 전력 소모 적
음. 안정성 뛰어남. 제조 원료 풍부!