컴퓨터는 매우 단순한 기계이다. 아는 것이라곤 0과 1과 할줄 아는 것은 단순한 계산뿐이다. 엘런 튜링은 컴퓨터라는 개념을 만든 최초의 논문을 발표했으며, 폰 노이만은 구체적인 아키텍처로 발전시켰다.
트랜지스터는 연산을 수행하는 가장 기본이 되는 소자다. 트랜지스터는 CPU, 메모리, 그래픽 카드 등에 사용된다. 트랜지스터는 성질이 다른 2가지 실리콘, N형과 P형을 겹쳐 만든다.
트랜지스터는 크게 증폭과 스위치 2 가지 기능을 제공한다. 주로 증폭보다는 스위치로 컴퓨터에선 사용된다. 트랜지스터의 베이스 영역인 P형 실리콘은 전하를 방해하는 성질을 가졌는데, 베이스 부분에 전압을 가하면 전류가 흐르지 않고, N형에 가하면 전류가 흐르는데 이 상태들로 0과 1로 표현할 수 있다.흔히 말하는 0과 1밖에 모른다는 것는 이것을 말하며, 0과 1 둘 중 하나의 숫자값을 나타내는 공간을 1비트라고 한다.
컴퓨터는 1과 0 두숫자를 사용해서 모든 수를 표현하며, 숫자 2개를 사용해서 수를 표현하는 것을 2진수라고 한다.트랜지스터 1개로 0,1을 표현할 수 있는데 2 진수로 한 자리를 차지한다. 즉 2진법 11011이라는 숫자를 표현하려면 트랜지스터가 5개 필요한 것이다. 여기서는 5비트가 되는 것이며 1비트가 8개일때 1바이트라고 하며1,024 일때 킬로바이트라고 한다. (같은 방식으로 증가)
트랜지스터로 전기 회로 논리소자로 계산을 할 수 있게 되는데 각각 AND, OR, XOR, NOT가 있다.(제사한 것은 따로 검색). 이 논리 소자에 1비트 입력 2개를 더하는 회로 소자를 만들면 사칙연산을 구현할 수 있게 된다. 이것을 1비트 가산기라고 한다.
폰노이만 구조로 인해 현대의 컴퓨터 장치와 구조가 완성되었고, 튜링머신에 넣었던 종이는 현대의 프로그램으로 진화되었다. 즉 프로그램이란 하나의 문서와도 같다.컴퓨터는 한줄의 명령을 읽고 수행하고 다음 줄을 읽는 것을 반복 수행하여 명령어가 끝날때까지 수행한다. 즉 프로그래머란 프래그래밍 언어를 사용하여 컴퓨터에게 어떤 연산과 순서로 실행할지 정의하는 사람인 것이다.
컴퓨터는 크게 중앙 처리장치인 cpu와 데이터를 보관하는 메모리, 입출력 장치로 구성되는데 메모리는 휘발성과 비휘발성으로 나뉘며, 램과 하드디스크로 나눌 수 있다.
프로그램을 실행하면 다음과 같은 일을 수행한다.
프로그램이 실행되면 운영체제는 프로그램 실행 파일을 메모리에 복사하고, 이것을 로드라고 한다. 모든 명령은 cpu에서 실행되는데 cpu 연산처리에 필요한 데이터를 메모리에서 내부의 캐시 라는 별도의 메모리 공간으로 불러와 처리한다. 그 다음 연산을 사용할 데이터를 레지스터로 복사하여 연산을 수행하데 레지스터는 연산을 수행하는 특수한 데이터 공간을 의미한다.
[캐시미스]