컴퓨터 구매에서 가정 먼저 고려하는게 CPU다.
(게임에 중요하.. 가성비가.. i5 냐 i7 이냐.. 요즘은 AMD지..킹갓 리사 수)
보통은 컴퓨터의 뇌라고만 생각하던 CPU에 대해서 간단히 이해해보자.
컴퓨터의 핵심 구조로는 CPU, 기억장치, 입출력장치로 구성되어 있다.
위 3가지 핵심구조를 메인보드에 연결하여 시스템 버스라는 내부 통로를 통해서 정보를 주고 받는 형태가 컴퓨터의 구조가 된다.
- 그림출처 : 코드스쿼드
Central Processing Unit의 약자로 중앙처리장치라고 하며 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치로 프로그램이 수행되는 전반적인 과정을 제어하는 역할을 한다.
Register는 중앙처리장치(CPU) 내부에 있는 기억장치이다. 주로 산술 연산 논리장치에 의해 사용되는 범용 레지스터(General-Purpose Register)와 PC 등 특수 목적에 사용되는 전용 레지스터(Dedicated-Purpose Register)로 구분할 수 있다.
Program Counter로 다음에 인출(Fetch)될 명령어가 있는 주소를 가지고 있는 레지스터다.
Instruction Register로 가장 최근에 인출된 명령어가 저장되어 있는 레지스터다.
Memory Address Register로 PC에 저장된 명령어 주소가 사용되기 전에 일시적으로 저장되는 주소 레지스터를 뜻한다.
Memory Buffer Register로 기억장치로 쓰일 데이터 혹은 기억장치로부터 읽힐 데이터를 임시로 저장하는 레지스터를 뜻한다.
산술논리연산장치는 산술적인 연산과 논리적인 연산을 담당하는 장치로 캐시나 메모리로부터 읽어 온 데이터를 레지스터(Register)라는 CPU 전용의 기억장소에 저장되며, ALU는 레지스터에 저장된 데이터를 구성된 논리회로를 이용하여 덧셈, 곰셈 등과 같은 산술 연산을 수행한다.
중앙처리장치 내부에서 일어나는 모든 동작을 제어하고 관리하는 장치로 기억장치에서 명령을 읽고 해석한 다음 해석된 결과에 따라 명령을 수행하기 위한 제어 신호를 만든다.
CPU는 명령어를 인출하여 해독하고, 실행하는 3단계로 이루어진다. (실제로는 더욱 복잡한 방식으로 구성되나 기본적인 3단계만 이해해보고자 한다.)
파이프라인은 CPU 클럭마다 Fetch, Decode, Execute를 순차적으로 반복해서 실행하는 것을 의미한다.
- 자료출처 : 코드스쿼드
컴퓨터의 명령어는 CPU가 한번에 처리할 수 있는 비트 수의 크기(Word)로 정의 된며 필드(Field)라고 부르는 몇 개의 비트 그룹으로 나누어진다. 이는 연산 코드(Operation Code)와 오퍼랜드(Operand)필드로 구성된다.
앞에 설명한 Fetch, Decode, Execute는 명령어를 처리하기 위한 처리 단계일 뿐 CPU가 처리하는 명령어가 아니다
전체 bit는 16으로 정해져 있지만, 연산코드 및 오버랜드는 CPU에서 수행될 연산 종류의 수에 따라 비트의 수가 바뀔 수 있다.