중앙처리장치란?
CPU는 명령어의 해석,연산,비교등의 처리를 제어해서 프로그램 실행과 데이터처리를 하고, 컴퓨터의 모든 시스템을 제어, 처리하는 사람의 뇌 같은 핵심 장치이다.
CPU 구성요소
CPU는 크게 제어장치, 연산장치,레지스터로 이루어져 있으며, 내부 버스로 연결되어 있다.
시스템 버스( ex 내부버스)
CPU를 포함한 각 하드웨어 간의 통로. :
→ 각 하드웨어 장치를 물리적으로 연결한 전선을 의미
종류 :
데이터 버스 : 하드웨어 간에 데이터 전달 통로
주소 버스 : 데이터가 어디에 도착해야 하는지에 대한 정보를 전달 통로
제어 버스 : CPU의 제어 장치가 생성한 제어 신호를 다른 장치로 전달 통로
제어 장치
- 컴퓨터 시스템의 작동을 통제하고 지시하는 장치
- Memory device(기억 장치)에서 명령어를 순차적으로 꺼내 해독하고, 명령어 실행에 필요한 제어 신호를 각종 장치에 보낸다.
- 장치들이 신호들을 받아 다음 수행할 동작을 결정함
연산 장치(ALU)
- 코드를 실질적으로 실행시키는 장치
- 명령어 실행을 위해 마이크로 연산을 수행
- 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄
레지스터(Resister)
- CPU 내에 존재하는 작고 빠른 기억 장치
- 코드,데이터,결과,주소 등등 임시로 저장한다.
- 용도에 따라 범용 레지스터,특수 목적 레지스터로 구분된다.
특수 목적 레지스터
MAR (메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치 주소를 저장
PC (프로그램 카운터) : 다음에 실행될 명령어의 주소를 저장
IR (명령어 레지스터) : 명령어를 호출해서 해독하기 위해 현재 명령어를 임시로 저장
MBR (메모리 버퍼 레지스터) : 주기억장치의 내용을 임시로 저장하는 역할
AC (누산기) : 산술 논리 장치의 연산 결과를 임시로 저장
PSR (프로그램 상태 레지스터) : CPU의 현재 상태 정보를 저장
CPU 작동 과정
- 주기억장치가 입력장치에서 입력받은 데이터 혹은 보조기억장치에 저장된 프로그램 읽어온다.
- CPU가 프로그램 실행을 위해 주기억 장치에 저장된 명령어,데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장한다.
- 주기억장치는 연산된 데이터를 출력장치에 보내거나 보조기억장치에 저장한다.
- 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어.
CPU 연산
연산 순서는 Fetch ->Decode -> Execute -> Writeback 이다.
- Fetch(인출) : 메모리상의 PC가 가리키는 명령어를 CPU로 인출하여 적재
- Decode(해석) : 명령어의 해석. -> 명령어의 종류와 타겟 등을 판단
- Execute(실행) : 해석된 명령어에 따라 데이터에 대한 연산 수행
- Writeback(쓰기) : 명령어대로 처리 완료된 데이터를 메모미에 기록
참고
https://hongcoding.tistory.com/139?category=981717#recentEntries
https://gyoogle.dev/blog/computer-science/computer-architecture/%EC%A4%91%EC%95%99%EC%B2%98%EB%A6%AC%EC%9E%A5%EC%B9%98%20%EC%9E%91%EB%8F%99%20%EC%9B%90%EB%A6%AC.html