이진수의 덧셈 (가산기)
간단한 논리연산을 가지고 계산기를 만들 수 있다.
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0, 하지만 다음 자릿수를 1 더해야함 (carry 라고함)
1 + 1 = 10
carry (가산기)
- 0 + 0 = 0, carry 는 0
- 0 + 1 = 1, carry 는 0
- 1 + 0 = 1, carry 는 0
- 1 + 1 = 0, carry 는 1
- carry bit는 둘 다 1일때만 1이고 나머지는 0으로 동작하는 논리 Gate
- sum bit는 둘 중 하나만 1일 때 1이고 나머지는 0으로 동작하는 논리 Gate
- sum bit와 같은 결과를 내기 위해서는 위와 같은 A와 B가 있다면, OR Output과 NAND Output 결과물을 가지고 AND Output을 통해 sum bit와 같은 결과는 낼 수 있다.
XOR 게이트
OR와 NAND 게이트에서 AND 게이트를 연결할 경우, XOR 게이트와 동일한 값을 만들 수 있음
반가산기 (half adder)
두 bit를 덧셈하는 가산기를 의미
- 전가산기 : 두 bit의, carry까지 계산할 수 있는 가산기를 의미
각각 하나의 bit인 A와 B를 더해서, 합 S와 자리 올림(Carry) C를 출력하는 조합논리회로
전가산기 (full adder)
반가산기를 조합해서 전가산기 만들기
전가산기는 A bit, B bit, carry bit값을 입력 받아서, sum과 carry값을 출력
- 전가산기(full adder) 8개를 연결해서 조합하면 8비트 전가산기(8 bits full adder)가 된다.
- 총 8자리로 2진수가 표현할 수 있는 숫자는 2의 8승으로 256까지 덧셈이 가능하다.
- 8비트 전가산기 2개를 연결해서 조합하면 16비트 전가산기(16 bits full adder)가 된다.
- 여기서 2진수가 표현할 수 있는 숫자는 2의 16승으로 65536까지 덧셈이 가능하다.
- 전체적으로 뎃셈을 사용해서 곱셈이 가능하고, 덧셈의 회로를 바꾸어 뺄셈이 가능하다. 이처럼 계산하는 산술연산이 다 가능하다.
Oscillator
Not Gate
- input이 0이면 output은 1이다.
- 반대로 input이 1이면 output은 0이다.
- output값이 0과 1을 반복하는 회로
- CPU 전체에 일정하게 명령을 실행할 수 있도록 전원을 주었다가 일정 시간 지난 후 다시 전원을 주면서 반복.
- 전원을 받을 때마다 CPU가 모든 동작을 실행
- 일종의 클럭(Clock)이라고 하며 클럭을 만들 수 있다.
클럭 (Clock)
- 0으로 잠깐 있다가 1로 잠깐 올라가는 0과 1로 한 번씩 왔다갔다하는 시간이 일정하고 이것을 바로 1 cycle(주기)라고 한다.
- 주기: 한 사이클에 필요한 시간
- frequency(단위-hertz): 주기 / 1(cycle/sec)
EX)
1 cycle이 걸리는 시간이 0.05초라면 1초에 결과적으로 20 cycle이 필요하며, 20 cycle을 20hertz(Hz)라고 하며 frequency라고 한다.