CPU는 트랜지스터
라고 하는 반도체로 만들어져 있다.
전자가 한 개 적은 원소를 첨가한 반도체 P(positive)형 반도체와
전자가 한 개 많은 원소를 첨가한 반도체 N(negative)형 반도체를 접합해
PNP반도체 또는 NPN반도체를 만들수 있다.
이 반도체에 전압의 세기와 방향을 어떻게 주느냐의 따라
전류를 흐르게 할 수도, 흐르지 않게 할 수도 있다.
이런 방식으로 스위치 역할을 해주는 반도체를 트랜지스터
라고한다.
트랜지스터
를 이용하면 Logic Gate라고 불리는 논리회로
를 만들 수 있다.
컴퓨터는 1과 0으로 이루어진 디지털 신호를 인식하는데
전류가 통하면 1, 통하지 않으면 0이 된다.
1과 0은 참과 거짓으로 표현하기도 한다.
두 개의 트랜지스터가 모두 참일때 결과 값도 참이 되는 논리게이트를
AND 게이트라고 하고 이런 모양으로 추상화해서 사용한다.
두 개의 트랜지스터중 하나라도 참일 때 결과 값도 참이 되는 논리게이트를 OR게이트 라고 하고 이런 모양으로 추상화해서 사용한다.
입출력 값을 서로 바꿔주는 논리게이트를 NOT게이트 라고 하고 이런 모양으로 추상화해서 사용한다.
OR게이트와 같지만 모든 입력이 참일 때 출력은 거짓이 되는 차이가 있다.
아래와 같이 추상화해서 사용한다.
1과 0을 사용하는 컴퓨터는 2진수로 계산을 하게 된다.
1100+1010
출력 값은 합
과 올림수
두 가지로 나눌 수 있다.
두 개의 출력값이 생겼을때 회로를 어떻게 구성해야 할까?
먼저 입 출력 값을 논리표로 만들면 아래와 같다.
합
에 해당하는 값은 S
올림수
는 C이다.
이렇게 만들어진 표를 회로로 구축해보자.
합
의 논리표를 보면 입력된 값에서 둘 중 하나만 참이면 참이고,
입력값 두개가 참일때 거짓이 되는 게이트는 XOR게이트
와 같다.
올림수
의 논리표는 입력 값이 모두 참일 때 참이 되는 AND게이트
와 같다.
위와 같은 회로로 입력 값을 XOR게이트
에 연결하여 합의 값을 도출하고
올림수는 AND게이트
를 연결하여 계산하면 된다.
실제로 모든 수를 계산하는 데에는 훨씬 더 복잡하지만
이런 식으로 트랜지스터를 이용해서 논리회로를 구축한다는 것을 알수 있다.
CPU에는 ALU
라는 산술 논리 장치
가 있다.
산술은 +와 -와 같은 산수를 계산하고
논리장치는 AND나 OR같은 논리를 연산하는 역할을 한다.
이러한 구조로 CPU는
Mosfet
이라는 트랜지스터가 모여 논리게이트를 이루고 연산을 수행하고 있다.