728x90
연산 장치 (ALU)
산술 연산과 논리 연산 수행하는 장치
→ 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보낸다.
제어 장치 (CU)
명령어를 순서대로 실행할 수 있도록 제어하는 장치
- 주기억장치(RAM)에서 프로그램 명령어를 꺼내 해독
- 그 결과에 따라 명령어 실행에 필요한 제어 신호를 메모리, ALU, 입출력장치로 송신
- 장치들이 보낸 신호를 받아, 다음에 수행할 동작 결정
레지스터 (Register)
명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장하는 고속 기억 장치
- 범용 레지스터: 연산에 필요한 데이터나 연산결과를 임시로 저장
- 특수목적 레지스터: 특별한 용도로 사용하는 레지스터
🍒 대표적인 레지스터
- PC(Program Counter): 다음 인출(Fetch)될 명령어 주소 저장
- IR(Instruction Register): 가장 최근에 인출된 명령어(현재 실행 중인 명령어) 저장
- AC(Accumulator): 연산 결과 데이터 임시 저장
- MAR(Memory Address Register): PC에 저장된 명령어 주소가 사용되기 전, 주기억장치 주소 저장
- MBR(Memory Buffer Register): RAM에서 읽어온 데이터 또는 저장할 데이터 임시 저장
- SR(Status Register): 현재 CPU 상태 저장
CPU 동작 과정
- CPU는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램 읽어온다.
- CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장
- 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.
- 제어 장치는 1~3과정에서 명령어가 순서대로 진행되도록 각 장치 제어한다.
명령어 세트
연산 코드 (Operation Code) + 피연산자(Operand)
- 연산 코드 : 연산, 제어, 데이터 전달, 입출력 기능
- 피연산자 : 주소, 숫자/문자, 논리 데이터
CPU는 프로그램 실행을 위해 메모리에서 명령어를 순차적으로 인출해 해독하고 실행하는 과정을 반복
CPU가 메모리에서 한번에 하나의 명령어를 인출해 실행하는데 필요한 일련의 활동을 "명령어 사이클" 이라고 한다.
메모리의 지정된 주소에서 하나의 명령어를 가져오고, 실행 사이클에서는 명령어를 실행.
하나의 명령어 실행이 완료되면 그 다음 명령어에 대한 인출 사이클 시작.
명령어 인출
- MAR ← PC : 실행할 명령어 주소값을 PC에서 읽어 MAR에 넣는다
- MBR ← M[MAR], PC ← PC + 1 : MAR을 기반으로 메모리에서 명령어를 읽어 MBR에 넣고 PC값 증가시킨다.
- IR ← MBR : 인출한 명령어를 IR에 넣는다.
명령어 실행 (ADD 연산)
- MAR ← IR(Addr) : 명령어의 주소를 MAR에 넣는다.
- MBR ← M[MAR] : 명령어 주소에 있는 값을 MBR에 넣는다.
- AC ← AC + MBR : AC에 MBR를 더해준다.
참고: https://gyoogle.dev/blog/computer-science/computer-architecture/중앙처리장치%20작동%20원리.html
728x90
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
패리티 비트 & 해밍 코드 (0) | 2022.02.09 |
---|---|
고정 소수점과 부동 소수점 (0) | 2022.02.07 |
캐시 메모리(Cache Memory) (0) | 2022.01.13 |
컴퓨터 구성 (1) | 2022.01.13 |