1. 트렌지스터를 알아보자
트렌지스터는 컴퓨터의 가장 기본적인 요소이다.
생물의 가장 기본적인 요소가 탄소인 것 처럼
컴퓨터는 수천 수억개의 트렌지스터로 이루어져있다.
전류가 흐르면 도체로 변하는 성질을 이용하여 스위치로 쓰일수 있다.
트렌지스터는 1과 0으로 표현 할 수 있다.
1: 전류가 흐른다.
0: 전류가 흐르지 않는다.
컴퓨터 역시 0과 1의 2진수로 이루어져있고
1bit 는 트렌지스터 1개와 똑같다.
2. 트렌지스터로 계산기를 만드는법
전기는 저항이 낮은 쪽으로 흐르는 성질이 있다.
도체는 저항이 0이라고 치면 부도체는 저항이 무한대이다.
input이 0일 때(전류가 흐르지 않을때) 트렌지스터는 부도체가 된다. 이 상황에서 전류는 output으로 흐르게 된다. 출력은 1이 된다.
A | X |
---|---|
0 | 1 |
input이 1일 때(전류가 흐를 때) 트렌지스터는 도체가 되어
전류는 트렌지스터를 따라 그라운드로 흐르게 된다. 출력은 0이 된다.
A | X |
---|---|
1 | 0 |
전류가 흐르는 상황에서 input1은 1, input2는 0일 때 출력은 0이 된다.
A | B | X |
---|---|---|
1 | 0 | 0 |
반대로 input2가 1, input1이 0일 때 출력은 역시나 0이 된다.
A | B | X |
---|---|---|
0 | 1 | 0 |
input1과 inpu2가 둘 다 1일 때 비로소 출력은 1이된다.
A | B | X |
---|---|---|
1 | 1 | 1 |
A | B | ADD |
---|---|---|
0 | 0 | 00 |
1 | 0 | 01 |
0 | 1 | 01 |
1 | 1 | 10 |
ADD 부분의 결과를 반으로 나누어 보았을때
왼쪽을 c , 오른쪾을 s 라고 쳤을때
A | B | ADD |
---|---|---|
0 | 0 | c 0 / 0 s |
1 | 0 | 0 / 1 |
0 | 1 | 0 / 1 |
1 | 1 | 1 / 0 |
s는 합의 결과가 되고
c는 올림수가 된다.
s와 c를 따로 보았을때
A | B | s |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
s는 논리 게이트로 보았을 때 XOR가 된다.
A | B | c |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
c는 논리 게이트로 보았을 때 AND가 된다.
이것이 1bit 가산기의 원리이다.
논리 회로로 보면
input1과 input2의 출력이 XOR 게이트를 통과 하면서 합의 결과가 나오고, AND 게이트를 통과 하면서 올림수가 나오게 된다.
2bit 가산기의 원리도 같은 원리이다.
올림수를 다음 가산기에 집어넣으면 2bit 가산기가 된다. 이러한 원리로 계속 추가 할 수 있다.
논리 소자를 이용하여 가산기 뿐만 아니라 감산기, 곱셈기, 나눗셈기를 만들어 최종적으로 계산기를 만들어 낼 수 있다.
3. 논리소자가 컴퓨터가 되기까지
튜링이라는 사람이 컴퓨터가 존재하기 이전에 상상을 한 기계
튜링 기계에 긴 종이가 들어가있고 그종이에는 명령어 들이 적혀있다.
맨윗 줄의 명령어를 수행하고 나면 종이를 밀어 그 밑에 줄의 명령어를 수행한다.
jump라는 명령도 있어서 해당 줄까지 한번에 앞 뒤로 이동 할 수 도있다.
기계에는 팔이 달려있다.
이 팔은 책장에 있는 종이카드를 뽑아서 원래있던 값을 지운 후 결과 값을 적고 정해진 위치로 되돌리는 역활을 한다.
예를 들어 ADD [2][3] =[7] 라는 명령어가 있다고 하면 [2] 카드에 적힌 값을 읽고 [3] 카드에 적희 카드의 값을 읽어서 [7] 카드에 적힌 값을 지우고 그 결과 값을 다시 써서 제위치로 집어넣는다.
이러한 원리가 현재 컴퓨터의 원리와 상당히 닮아 있다.
현재 명령을 수행하는 지점 IP (Instrution Pointer)를 한 줄 씩 증가하면서 명령을 수행하게 된다.
최초의 컴퓨터라 불리는 애니악은 튜링 기계와 매우 흡사한 형태였다.
명령어 들이 적힌 프로그램 부분(종이)과 계산된결과를 저장하는 저장소(책장)이 있었는데
프로그램을 바꾸기 위해선 기계 전체를 바꿔야 하는 문제점이 있었다. 이러한 문제점을 해결한 것이 폰노이만 기계이다.
폰노이만 이란 사람이 프로그램과 메모리부분이 따로 있으면 안되고 같이 있어야 된다고 하여
프로그램을 메모리에 적게 되었다. 이렇게 되면 IP 어드레스만 바꾼다면 기계를 바꿀 필요 없이 해당 프로그램을 불러 올수 있게 된다.
현재의 컴퓨터의 원리는 다 폰노이만 기계라고 볼 수 있다.
4. 컴퓨터의 원리
컴퓨터란 명령을 하나씩 순서대로 수행하는 기계이다.
그림, 음악, 문자 컴퓨터는 이 이것들을 구분하지 못한다. 그러므로 이 것들을 2진수로 표현하여 명령을 수행하게 된다.
ASCII 코드를 예로 들면 1byte 즉 8bit로 표현 가능한 0 ~255 까지의 기호와 문자에 2진수 코드를 부여했다.
컴퓨터의 모니터는 픽셀 단위로 나뉘어진다. 픽셀은 빛의 3원소인 R(빨강),G(초록),B(파랑)의 3개의 LED가 하나의 점에 묶여있다. 각 각의 LED의 밝기를 0~255로 조절하여 다양한 색을 만들어 낼 수 있다. 이 작은 픽셀들이 모셔서 모니터에 표현된다.
소리 즉 주파수의 세기를 파장과 진폭에 이진수를 부여하여 소리의 높낮이와 음색을 나타낼 수 있다.
하드웨어의 동작 원리는 요리?
프로그램 -> 레시피 : 요리할때 필요한 방법과 지침들이 적혀있다.
HHD -> 마트 : 필요한 재료를 버스(실제 연결된 전선을 버스라고 한다)를 타고 사온다.
*요리사와 마트는 상당히 멀리 떨어져 있음
Memory -> 냉장고 : 마트에서 사온 재료를 냉장고에 넣어서 보관한다.
CACHE -> 필요한 재료: 냉장고를 자주 열었다 닫았다 하지않게끔 요리에 필요한 재료들을 꺼내 놓는다.
*CACHE의 용량은 4kb 정도 된다.
REGISTER -> 도마 : 꺼내놓은 재료를 도마에 올려 손질할 준비를 한다.
CPU -> 요리사 : 준비된 재료를 레시피에 따라 요리한다.