산술논리연산장치(ALU: Arithmetic Logic Unit)는 산술적인 연산과 논리적인 연산을 담당하는 장치로 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성된다.
캐시나 메모리로부터 읽어 온 데이터는 레지스터(Register)라는 CPU 전용의 기억장소에 저장되며, ALU는 레지스터에 저장된 데이터를 이용하여 덧셈, 곰셈 등과 같은 산술 연산을 수행한다. 부동소숫연산장치(FPU)와 정수연산장치, 논리연산(AND, OR 등)장치 등이 있다.
레지스터(Register)는 중앙처리장치(CPU) 내부에 있는 기억장치다. 주로 산술 연산 논리장치에 의해 사용되는 범용 레지스터(General-Purpose Register)와 PC 등 특수 목적에 사용되는 전용 레지스터(Dedicated-Purpose Register)로 구분할 수 있다.
레지스터의 종류는 IR(Instruction Register), PC(Program Counter), AC(Accumulator)가 있다.
제어장치는 CPU가 자신 및 주변기기들을 컨트롤하는 장치로, 프로그램의 수행 순서를 제어하는 프로그램 계수기(program counter), 현재 수행중인 명령어의 내용을 임시 기억하는 명령 레지스터(instruction register), 명령 레지스터에 수록된 명령을 해독하여 수행될 장치에 제어신호를 보내는 명령해독기(instruction decoder)로 이루어져 있다.
제어 장치 구현의 방식은 고정 배선 제어(Hardwired) 방식과 Micro Program 방식이 있다.
명령어는 시스템이 특정 동작을 수행시키는 작은 단위다. 명령어는 코드로 되어 있으며, 동작코드(Op-code : Operational Code)와 오퍼랜드(Operand)로 구성되어 있다.
읽기(Fetch Instruction, FI): 메모리에서 명령을 가져온다.
해석(Decode Instruction, DI): 명령을 해석한다.
실행(Execute Instruction, EI): 명령을 수행한다.
기록(Write Back, WB): 수행한 결과를 기록한다.
하나의 사이클로 명령어를 처리한다.
메모리 Load / Store 명령만 처리하는 방식이다.
파이프라이닝, 슈퍼스칼라의 사용이 가능하다.
복잡한 컴파일러 구조를 갖고 있다.
여러 사이클로 명령어를 처리한다.
많은 명령어가 메모리를 참조하는 처리 방식이다.
파이프라이닝의 사용이 어렵다.
복잡한 마이크로 프로그램 구조를 갖고 있다.