About CPU
CPU : Central Processing Unit 중앙 처리 장치
컴퓨터가 사용되는 그 어떤 것(타블렛, TV, 노트북, 냉장고, 디지털 카메라 etc)이든 CPU를 가지고 있다. CPU는 컴퓨터의 정중앙(center)에서 기계어로 컴파일 된 명령어들을 해석하여 프로그램을 실행(processing)하는 장치(unit)이다. 명령어를 실행하기에 프로세서(processor)라고 부르기도 한다.
우선 CPU는 어떻게 이루어져 있는지 알아보도록 하자.
CPU Architecture
CPU는 ALU, Register and Control Unit, Bus 로 이루어져 있다.
ALU (Arithmetic and Logical Unit) : 산술논리 연산장치
연산의 종류- 산술 기본적인 산술 연산으로써 + , - , * , /, % 등이 있다.
- 논리 참 또는 거짓의 결과값을 리턴할 AND, OR , NOT, NAND, XOR 등이 있다.
- 데이터 데이터 전송에 관련된 연산을 의미한다.
- 입출력 CPU와 외부 장치들간의 데이터 이동을 위한 연산
- 프로그램 제어 명령어 실행 순서를 변경하는 연산
레지스터 ←→ 레지스터 | 레지스터 ←→ 기억장치 | 기억장치 ←→ 기억장치
분기(Branch) | 서브루틴(Subroutine call) 호출
연산 장치의 종류
- 누산기 ACC 연산 결과를 임시로 기억한다.
- 가산기 Adder 2진수들의 더하기를 수행한다.
- 보수기 Complement 2진수들의 더하기를 수행한다.
- 데이터 레지스터 Data Register 연산에 필요한 자료를 보관하는 레지스터이다.
- 프로그램 상태 레지스터 PSWR (Program Status Word Register) 플래그 레지스터 Flag Register, 상태 레지스터 Status Register 라고도 한다.
Register set: 레지스터 세트
* 레지스터에 관한 자세한 내용은 추후 업로드 될 "레지스터" 포스트에서 알아보도록 하자
CPU안에는 다양한 레지스터들로 이루어져 있다. 이를 레지스터 세트라고 한다. 레지스터는 타 메모리에 비해 속도가 제일 빠른데 그 이유는 다른 기억장치들보다 CPU와 가장 인접해 있기 때문이다. 레지스터는 CPU의 수행 능력을 올려준다. 레지스터의 종류는 PC, AR, IR, MAR, MBR이 있다.
- PC : Program Counter 다음턴에 어느 명령어를 가져와 실행해야 하는지에 관한 주소를 기억하고 있는 레지스터. CPU에게 실행해야 하는 시작점을 알려준다.
- AC : Accumulator 데이터를 일시적으로 저장하는 레지스터
- IR : Instruction Register 가장 최근에 인출된 명령어 코드가 무엇인지를 기억하고 있는 레지스터. 현재 실행 중인 명령을 기억한다.
- MAR : Memory Address Register PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터
- MBR : Memory Buffer Register 기억장치에 쓰일 데이터나 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 레지스터
CU (Control Unit) : 제어 장치
컴퓨터의 모든 장치들의 제어를 담당한다. 메모리에 올려진 프로그램의 명령을 꺼내 해석하여 각각의 장치에 지시를 내린다.
BUS : 버스
데이터들은 버스를 통해 전송된다. CPU나 메모리, 입출력 장치간의 필요한 정보들을 전송하기 위해 사용되는 전기적 통로이다.
종류
- 주소 버스 (Address Bus) 기기의 주소를 지정할 때 사용하는 버스이다. 한 가지 방향으로만 데이터를 전송하기에 단반향 버스(Unidirection Bus)라 불린다. 특정 메모리 주소를 찾을때 사용된다.
- 데이터 버스 (Data Bus) 기기에 데이터를 전달하는 버스이다. 양방향 버스로써 CPU가 메모리나 I/O 기기에 데이터를 전송한다.
- 제어 버스 (Control Bus) 현재 상태의 변경이나 데이터 전송 제어 신호를 전달하는 버스이다. CPU가 현재 상태나 상태 변경을 메모리 또는 I/O 기기에 제어 신호로 알릴때 사용된다.
CPU의 명령어 실행
CPU의 목적은 프로그램을 실행하기 위함이라 할 수 있다. 프로그램이 실행되기까지의 과정을 자세히 알아보도록 하자.
실행될 프로그램이 메인 메모리에 올려진다. 이 과정을 process라고 한다. CPU는 메인 메모리에 들어간 프로그램(프로그램은 결국 수 많은 명령어들의 덩어리)을 실행한다.
- Fetch 메모리에서 데이터를 가져와 CPU의 register에 적재하는 과정을 말한다.
- Indirect 메모리를 참조할 때 간접주소 방식을 사용하는 경우에 실행된다.
- Execution 불러온 데이터와 명령으로 중앙처리장치가 연산을 수행하는 단계를 말한다.
- Interrupt 만약 프로그램 실행 중에 예외적인 상황이 발생할 경우에 실행된다.
Reference
- Computer Hardware
- Computer Basics - Inside a Computer
- CPU 구조와 원리
- Reusable learning object on the CPU cycle
- Registers within the CPU
- 컴퓨터 구조 및 이해 1.CPU