[운영체제] CPU의 구조/원리

728x90

CPU의 구조 / 원리

CPU

중앙처리장치(Centrol Processing Unit)

명령어 해석, 자료의 연산 / 비교 등 처리를 제어하는 핵심장치

다양한 입력 장치로 정보를 받아 처리한 후, 결과를 출력 장치로 보내는 모든 과정을 제어, 조정

 

CPU의 구성 요소

Control Unit(제어 장치), ALU(연산 장치), Register(레지스터)

각 요소들은 Data Bus를 통해 데이터를 주고받음

 

Control Unit(CU, 제어장치)

CPU 제어하는 장치

PC(프로그램 카운터), 명령 해독기, 부호기, 명령 레지스터 등 구성

   1. ROM(기억 장치)으로부터 프로그램 명령어를 순차적으로 꺼내 해석

   2. 어떤 작업을 수행해야 하는지 결정

   3. 실행에 필요한 제어 신호를 전달하여 명령 수행

 

PC

  -Program Counter

  - 현재 실행 중인 프로그램의 다음 명령어 위치를 가리키는 레지스터

  - CPU는 PC가 가리키는 명령어를 실행하고, PC를 증가시켜 다음 명령어의 위치를 가리키며 순차적으로 실행 가능

    : 이전 값을 기반으로 다음 값이 카운트되므로, Loadable Counter로 설계돼야 함

MAR

  - 메모리 주소 레지스터

  - CPU가 메모리에 접근할 주소를 MAR에 저장하고, 이를 통해 메모리와 상호작용 가능

MDR

  - 메모리 데이터 레지스터

  - 메모리에서 읽어온 데이터, 메모리에 쓸 데이터 임시로 저장

  - CPU와 메모리 간 데이터 교환 가능

IR

  - 명령어 레지스터

  - 현재 실행 중인 명령어를 저장

  - CPU는 IR에 저장된 명령어를 디코딩하고 실행

Control Block

  - 제어 블록

  - CPU 동작을 제어하는 데 사용되는 논리 회로나 레지스터의 집합

  - 명령어 실행, 레지스터 간 데이터 이동, 연산 수행 등 CPU 기능 조절, 동기화 가능

  - 데이터 버스로 입력되는 데이터들의 전송 신호를 충돌하지 않도록 관리

 

ALU(Arithmetic and Logical Unit, 연산 장치)

명령어 실행을 위한 산술 / 논리 연산 수행

결과는 레지스터에 저장되거나 다음 단계로 전달

가산기, 누산기, 데이터 레지스터 등 구성

 

ACC

  - 누산기

  - CPU 내부에 위치한 레지스터 중 하나

  - CPU 명령어에 따라 데이터 읽어오고, 연산의 중간 결과를 저장

BREG

  - 버퍼 레지스터

  - 데이터를 임시로 저장하고 전송하는 레지스터

  - 데이터의 안정적인 전송과 처리를 도움

    

Register(레지스터)

CPU 내부에 위치한 소규모 고속 기억 장치

명령어 주소, 코드 연산에 필요한 데이터 / 연산 결과 등 임시로 저장

메모리 계층 최상위에 위치, 가장 빠른 속도

범용 레지스터, 특수 목적 레지스터로 구분

 

TMPREG

  - Temporary Register

  - 일시적으로 데이터 저장하고 처리하는 레지스터

  - CPU 연산 동안 임시 데이터 스토리지로 사용

CREG

  - Control Register

  - 시스템 제어, 설정을 관리하는 레지스터

  - 시스템 설정, 모드 전환, 예외 처리 / 중요한 제어 동작 수행

  - 프로세서 모드 변경, 인터럽트 활성화 / 비활성화, 보안 관리

RREG

  - General-Purpose Register

  - 일반 목적 레지스터

  - 다양한 연산 / 데이터 저장

  - 프로그램 카운터, 스택 포인터, 범용 데이터 저장

  - 주로 직접 접근하여 데이터 조작

OUTREG

  - Output Register

  - 데이터 출력과 관련된 작업 수행하는 레지스터

  - 입출력 연산, 데이터 전송, 디스플레이 제어 / 통신

  - 외부장치와 데이터 주고받음

 

CPU의 동작 원리

1.Fetch(인출) : 메모리상 프로그램 카운터가 가리키는 명령어를 CPU로 인출하여 레지스터에 적제

2.Decode(해석) : 명령어 해석하여 명령어의 종류, 타깃 등 판단

3.Execute(실행) : 해석된 명령어에 따라 데이터 연산 수행

4.Writeback(쓰기) : 명령어대로 처리 완료된 데이터를 메모리에 기록

 

명령어 사이클

1. 인출 사이클 : 항상 수행

2. 실행 사이클 : 항상 수행

3. 간접 사이클 : 주소 지정방식 필요 시

4. 인터럽트 사이클 : 인터럽트 요구 발생 시

 

Fetch Cycle(인출 과정)

 

1. 프로그램 카운터에 저장된 주소를 MAR(주소)로 전달

2. MAR(주소)에 저장된 내용으로 주기억장치의 해당 주소에서 명령어를 인출

3. 인출한 명령어를 MBR(버퍼)에 저장

4. 다음 명령어를 인출하기 위해 PC 값 증가

 

 Execute cycle(실행 과정)

1. IR(명령어) 내용을 MAR(주소)로 전달

2. 메모리에 저장된 데이터를 MBR(버퍼)에 저장

3. 명령어 종류에 따라 ALU, 데이터 이동, 입출력 등 명령한 연산 수행

 

 

 

 

728x90