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