현대적 컴퓨터는 크게 메모리(기억 장치), 입력과 출력, CPU라는 세가지 부분으로 나뉘어 진다.
메모리
- 컴퓨터에는 조작할 비트들을 저장할 장소가 필요하다. 이런 장소를 메모리라고 함
- 메모리는 집이 빈틈없이 늘어선 거리와 같고 각 메모리의 위치에는 해당하는 주소가 부여됨
입력과 출력
- 컴퓨터에 정보를 전달하거나 컴퓨터에서 정보를 가져올 방법이 필요함. 이러한 방법이 I/O
- 32비트나 64비트 컴퓨터가 흔해진 요즘, 메모리거리의 주소수가 엄청 많기에 빈 주소가 있음. 그 빈주소에 i/o장치를 위치시킴
중앙처리장치
- 실제 계산을 처리하는 컴퓨터 부품
산술 논리 장치

- ALU는 산술계산, 불리언 대수 및 기타 연산을 수행하는 방법을 알고 있는 장치
- 연산 코드, 즉 명령코드는 피연산자에 대해 ALU가 어떤 연산자를 적용할지 지정.
- 조건코드에는 결과에 대한 추가 정보가 들어감
실행 장치
- 컴퓨터의 실행 장치는 제어장치라고도 알려져 있으며 컴퓨터의 대장역할을함
- 실행 장치는 메모리의 정해진 장소에서 명령코드와 피연산자들을 가져와서 ALU에게 어떤 연산을 수행할지 알려주고, 결과를 메모리에 돌려줌
- 실행 장치에게 명령어 목록을 제공함으로써 실행장치가 이런 일을 할 수 있음
- 실행 장치가 메모리에서 명령어를 가져와야 하는 위치를 담고 있는 곳이 프로그램 카운터(PC - 레지스터의 일종. 메모리와 별도의 특별한 곳에 위치함)
- CPU마다 정해진 초기 프로그램 카운터 값이 있으며 CPU 전원이 들어오면 PC는 이 값으로 설정된다.
- 작동 원리 : 컴퓨터는 메모리의 정해진 위치에서 명령어를 찾고 그 일을 수행하고 난 뒤 그로그램 카운터가 증가되어서 그다음 명령어를 찾고 실행하고 이런식으로 반복하면서 수행하게됨

명령어 레지스터

- 처음에 컴퓨터가 해야 하는 일은 메모리에서 명령어를 가져오는 페치. 명령어를 가져오고 나면 이 명령어를 어떻게 실행할지 고민해야함
- 명령어 실행하려면 메모리에 접근해야 하는데 즉 다른 목적으로 메모리를 사용할 때 페치한 명령어에 편하게 접근할 수 있도록 저장할 다른 위치가 필요하다는 말임.→ CPU에 명령어 레지스터를 추가.
- 프로그램 카운터에 있는 값이 주소 버스에 들어감. 약간의 시간이 지나면 주소 버스에 들어있는 주소에 해당하는 메모리에 저장된 값이 데이터 버스에 전달. 이 값은 데이터 버스에 연결된 장치 중 활성화된 명령어 레지스터에 연결

GPU
- 컴퓨터를 사용한 그래픽은 마치 번호에 맞춰 색을 칠하는 아주 커다란 컬러링 책과 같음. 칠해야 할 지점이 800만 개가 넘는 경우도 드물지 않고, 비디오를 매끄럽게 처리하려면 이런 그림을 초당 60회 이상 새로 그려야함 → 이로 인해 매초 수억 번 이상 메모리에 접근해야 하는 경우도 많다
- 여러 점을 동시에 찍으면 성능이 향상 될 수 있기에 그래픽은 병렬화 하기 아주 좋은 작업
- 특징짓는 기능
- gpu에는 간단한 처리 장치가 아주 많이 들어있음
- GPU는 CPU보다 메모리 버스의 폭이 더 넓어, 메모리에 더 빠르게 접근할 수 있음