트랜지스터 - 논리 소자 - 컴퓨터
트랜지스터는 컴퓨터의 가장 기본적인 요소
트랜지스터의 주요 기능은
1. 스위치의 기능
2. 증폭 기능
인데 특히 컴퓨터에서는 1번의 기능이 중요하게 생각됨
우리가 일반적으로 알고 있는 스위치와 트랜지스터의 차이는
전자는 물리적 힘을 가해야 하는 것이고 후자는 전기적 신호로 작동을 조절할 수 있는것이다.
수억 개의 스위치를 전기적 신호로 껐다 켰다 할 수 있다는 것은 굉장한 것!
트랜지스터는 1과 0을 표현할 수 있다.
1: 전기가 있
0: 전기가 없
흔히 말하는 이진법을 이용한다.
0과 1이 올 수 있는 자리 하나, 1bit를 하나의 트랜지스터라고도 볼 수 있다.
트랜지스터로 논리소자를 만들 수 있다
BOOL 대수 : 두 입력값이 있을 때 참이냐 거짓이냐에 따라서 결과가 달라지는 것을 뜻함
AND, OR, NOT, XOR
AND는 전부 참이어야만 참의 결과를 얻음
OR은 둘 중 하나라도 참이면 참의 결과를 얻음
XOR은 서로 다를 때 참의 결과를 얻음
NOT은 입력값의 반대의 결과를 얻음
옴의 법칙 V = IR
I = V/R
I는 전류 R은 저항 V는 전압
전류는 저항에 반비례한다
도체 - 전기가 흐르는 물질 ex구리, 철, 금, 물, 몸
부도체 - 전기 안 흐르는 물질 ex 그릇, 세라믹, 돌
부도체는 저항이 무한대에 가까움
도체는 저항이 0에 수렴
반도체는 도체가 됐다가 부도체가 됐다가 하는 물체
트랜지스터가 반도체임.
베이스의 전압이 안 걸렸을 때는 전기가 안 흐르고, 전압이 가해지면 길이 열려서 전기가 흐름
만약 NOT 게이트를 트랜지스터로 만든다면
베이스로 입력값을 받으니까, 즉 인풋이 1이 되면 트랜지스터는 도체가 됨, 도체의 저항은 0에 수렴하는데
그라운드 쪽은 0v라서 전류가 그라운드쪽으로 빠져버림. 이때는 출력이 0이 됨
입력이0일 때는 5v쪽으로 가서 출력이 1이 됨
AND 게이트는 입력값이 2개니까 트랜지스터 2개로 만들어짐
트랜지스터로 논리소자를 만들 수 있고 또 이것을 계산기로 만들 수 있다.
논리소자
AND, OR, XOR, NOT
1 비트 ADD(가산기)
(비트 하나씩 더하는 애
0 + 0 = 00
1 + 0 = 01
0 + 1 = 01
1 + 1 = 10
결과값을 2^0자리와 2^1자리로 나눠서 볼 수 있는데 2^1자리는 뒤에서 더한 값의 올림을 처리하는 자리다. 이부분을 C라고 하고 뒷부분은 S라고 부른다.
이때 S출력은 XOR. C출력은 AND 방식이다.
2비트 가산기의 경우, C로 올라온 올림과 그 자리에 있던 기존의 수를 다시 더하는 것이니까 S출력을 한번 더 하는 것이라고 볼 수 있다.
이러한 원리로 트랜지스터는 논리소자가 되고 이것으로 계산기를 만들 수 있다
논리소자가 컴퓨터가 되기까지
(모래의 주성분인 규소 -> 실리콘 -> 트랜지스터 -> CPU)
컴퓨터를 오늘날의 형태로 만드는 데 큰 기여를 한 과학자 2명 : 튜링, 폰 노이만
1. 튜링
채팅 AI에게 당신이 채팅하는 대상이 사람인지 컴퓨터인지 확인하는 테스트가 있다. 이를 튜링 테스트라고 부른다고 한다. 튜링 테스트는 튜링이라는 사람이 컴퓨터가 발명되기 전에 컴퓨터를 상상 속의 기계로서 설정하고서 만든 테스트라고 한다.
이 사람이 만든 튜링 기계는 현재 컴퓨터 CPU의 기능을 설명하는데 유용하기 때문에 트랜지스터와 논리소자를 알게 된 다음 순서로 알면 좋은 기계이다.
튜링 기계는 명령들을 기다란 종이에 적어두고 한 줄씩 수행해 나가는 기계이다. 이때 수행하는 한 줄을 IP(Instruction Point)라고 부른다. (TCP/IP의 IP가 아님)
2. 폰 노이만
수행해야 할 프로그램하고 데이터를 적는 메모리를 따로 보지 말고 같이 만들어야겠다고 생각했다.
(다른 프로그램을 실행할 때마다 통으로 바꿔줘야 했기 때문)
그래서 기계를 바꿀 필요 없이 IP 어드레스만 바꾸면 다른 프로그램을 돌릴 수 있게 만든 것이 폰 노이만 기계.
참고: Tucker Programming님의 기초 프로그래밍 강좌를 보며 정리했습니다