[개미의 걸음 1과목 컴퓨터 일반] 중앙처리장치[CPU, Central Processing Unit]
중앙처리장치[CPU, Central Processing Unit]
중앙처리장치는 컴퓨터의 기억*해석*연산*제어라는 4대 기능을 수행하며 컴퓨터의 두뇌에 해당
중앙처리장치[CPU]의 구성
제어장치, 연산장치, 레지스터로 구성
① 레지스터[Register]
CPU 내부에서 처리할 명령어나 연산의 중간값 등을 일시적으로 수행하는 소규모의 임시기억장치
레지스터는 일반적으로 Flip-Flop이나 Latch 등을 직렬 또는 병렬 연결해 구성
메모리 중에서 액세스 속도가 가장 빠름
레지스터 크기는 컴퓨터가 한번에 처리할 수 있는 데이터의 크기를 나타냄
# Flip-Flop
두 개의 안정 상태를 각각 0 또는 1에 대응시켜 1비트의 정보를 저장하는 회로
한쪽 안정 상태를 정하는 입력이 인가될 때, 다른 쪽 안정상태를 정하는 입력이 인가되기까지 그 상태를 유지하는 회로
# Latch
하나 이상의 비트들을 저장하기 위한 디지털 논리회로
Latch는 하나의 데이터 입력, 하나의 클럭 입력, 하나의 출력을 갖는다.
② 연산장치[ALU, Arithmetic Logic Unit]
제어장치의 명령에 따라 실제로 연산을 수행하는 장치
연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동 등이 있다.
# 연산장치에서 사용되는 레지스터
가산기 [Adder] |
2진수의 덧셈을 수행 누산기와 데이터베이스에 보관된 자료를 더해 누산기에 보관 |
보수기 [Complementor] |
뺄셈을 위해 입력된 갑을 보수로 변환하는 회로 ex> 10-9 = 10+(-9) |
누산기 [AC. Accumulator] |
연산 결과를 일시적으로 저장하는 레지스터 |
데이터 레지스터 [Data Registor] |
연산에 사용될 데이터를 기억하는 레지스터 |
상태 레지스터 [Status Registor] |
PSW라고도 하며 연산 수행시 발생되는 여러가지 상태정보를 기억하는 레지스터 |
인덱스 레지스터 [Index Registor] |
주소 계산에 사용되는 레지스터 |
③ 제어장치[Control Unit]
기억장치에 있는 명령을 차례로 해독하고 그 결과에 따른 제어신호를 각 장치들에게 전달하는 장치
입력, 출력, 기억, 연산의 장치들을 효율적으로 관리하고 감독하는 역할 수행
# 제어장치에서 사용되는 레지스터
프로그램 카운터 [PC, Program Counter] |
다음번에 실행할 명령어의 번지(주소)를 기억하는 레지스터 |
명령어 레지스터 [IR, Instruction Resistor] |
현재 실행중인 명령의 내용을 기억하는 레지스터 |
명령 해독기 [Decoder] |
명령 레지스터에 있는 명령어를 해독하는 회로 제어 신호를 발생시키는 장치 |
부호기 [Encoder] |
해독된 명령에 따라 각 장치로 보낼 제어신호를 생성하는 회로 명령어를 부호화시켜준다. |
메모리 주소 레지스터 [MAR, Memory Address Registor] |
기억 장치의 주소를 기억하는 레지스터 |
메모리 버퍼 레지스터 [MBR, Memory Buffer Registor] |
기억 장소의 내용을 기억하는 레지스터 |
마이크로프로세서[Microprocessor]
CPU와 비슷한 개념으로 CPU에 해당하는 부분을 반도체에 내장시킨 장치
크기가 작아 일반적으로 개인용 컴퓨터에서 중앙처리장치[CPU]로 사용
설계 방식에 따라 RISC와 CISC로 구분
구 분 | RISC | CISC |
명 령 어 | 적음 | 많음 |
주 소 지 정 | 간단 | 복잡 |
레 지 스 터 | 많음[16~24개] | 적음 |
전 력 소 모 | 적음 | 많음 |
처 리 속 도 | 빠름 | 느림 |
가 격 | 저가 | 고가 |
프로그래밍 | 복잡함[명령어가 적으므로] | 간단함 |
용 도 | 서버, 워크스테이션 | 개인용 컴퓨터 |
중앙처리장치[CPU]의 성능을 나타내는 단위
MIPS[Million Instructions Per Second] | 1초당 100만개 단위의 명령어를 실행하는 프로세서의 처리 속도 1초당 명령 실행 수 ÷ 100만 |
FLOPS[Floating-Point Operations Per Second] | 1초당 실행할 수 있는 부동 소수점 연산 명령의 수 컴퓨터의 연산 속도를 나타내는 단위 |
CLOCK Rate[클럭속도] | CPU 동작 클럭 주파수 1Hz는 1초에 1번 주기가 반복됨을 의미 |
# 클럭 주파수
컴퓨터는 전류가 흐르는 상태와 흐르지 않는 상태가 반복되어 작동
PC클럭속도 단위는 보통 GHz [1,000,000,000Hz]를 사용
컴퓨터 메인보드에 공급되는 클럭은 CPU의 속도에 맞춰 적절히 작동되어야 컴퓨터가 안정적으로 구동
클럭 값이 클수록 연산속도가 빠르다.
클럭 Pulse가 일어날 때 명령이 실행되므로 클럭 Pulse가 높아야 한다.

# 명령어
명령어의 구성
연산자[Operation Code]부분과 주소[Operand]부분으로 구성
명령어의 형식
0주소 형식 | 주소가 없고 연산자만 존재 Stack[스택]을 이용 |
1주소 형식 | 연산자와 1개의 주소 부분으로 구성 누산기[AC, Accumulator]을 이용 |
2주소 형식 | 연산자와 2개의 주소 부분으로 구성 가장 일반적인 주소 형식으로 여러 개의 범용 레지스터에서 사용 |
3주소 형식 | 연산자와 3개의 주소 부분으로 구성 연산 후에 자료가 보존되며 여러 개의 범용 레지스터에서 사용 |
명령어 처리과정[인출 → 해독 → 실행]
프로그램 계수기[PC]에 저자오딘 명령어의 주소를 읽는다.
명령어를 기억장치로부터 가져온다.
명령어의 해독과 실행을 위해 명령어 레지스터로 보낸다.
제어장치에 의해 해독 과정을 거친 후 실행한다.