728x90

컴퓨터에서 인간의 두뇌 역할을 수행하는 부분으로

연산 장치, 제어 장치, 레지스터로 구성된다.

 

연산 장치 (산술 논리 연산 장치)

산술 및 논리 연산을 수행하는 장치로

레지스터에서 연산에 필요한 데이터를 가져오고, 결과를 레지스터에 보낸다.

 

제어 장치

명령어가 순서대로 실행되게 제어하는 장치로

주기억장치에서 명령어를 꺼내 해독한 후에, 결과에 따라 명령어 실행에 필요한

제어 신호를 기억 장치, 연산 장치, 입출력 장치로 보내며

해당 장치들이 보낸 신호를 받아 다음 동작을 결정한다.

 

레지스터

고속 기억 장치로 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을

임시로 저장하는 장치로 용도에 따라 범용/특수 목적 레지스터로 구분된다.

  • 범용 레지스터 : 연산에 필요한 데이터 혹은 결과를 임시 저장
  • 특수 목적 레지스터 : 특별한 용도로 사용하는 레지스터
    • MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치의 주소 저장
    • PC(프로그램 카운터) : 다음에 수행할 명령어 주소 저장
    • IR(명령어 레지스터) : 현재 실행 중인 명령어 저장
    • MBR(메모리 버퍼 레지스터) : 주기억장치에서 읽어온 데이터 혹은 저장할 데이터 임시 저장
    • AC(누산기) : 연산 결과 임시 저장

 

CPU의 동작 과정

  1. 입력장치(입력받은 데이터) OR 보조기억장치(저장된 프로그램)  >>  주기억장치
  2. 주기억장치(프로그램의 명령어와 데이터)  >>  CPU
  3. CPU가 프로그램 실행 후 처리 결과를 주기억장치에 저장
  4. 주기억장치가 처리 결과를 보조기억장치에 저장하거나 출력장치로 보냄
  5. 제어장치가 위의 과정에서의 명령어들을 순서대로 실행되게 제어

 

명령어 세트

연산 코드(실행할 연산)와 피연산자(필요한 데이터 혹은 저장 위치)로

이루어진 CPU가 실행할 명령어의 집합

 

연산 코드 : 연산, 제어, 데이터 전달, 입출력 기능을 가진 코드

피연산자 : 주소, 숫자, 문자, 논리 데이터 등을 저장

 

명령어 사이클

CPU는 프로그램을 실행하기 위해 주기억장치에 있는 명령어를

순차적으로 인출한 후에 해독하고 실행하는 과정을 반복하며

이렇게 명령어를 인출하여 실행하는 활동을 명령어 사이클이라 함

 

인출(fetch)/실행(execution)/간접/인터럽트(interrupt) 사이클로 나누어진다.

 

fetch : CPU에서 명령어를 읽는 단계

execution : CPU가 명령어를 실행하는 단계로 연산 코드 해독, 피연산자 해독(간접 사이클)을 수행

interrupt : 프로그램 실행 중 예외 상황이 발생해 처리가 필요한 경우 예외 발생을 알려 주는 단계

 

코드로 표현하면 아래와 비슷하다.

for (int i = 0; i < 주소수; i++) {
	MAR = PC[i];
    MBR = 주기억장치.명령어인출();
    try {
    	명령어 연산 코드 해독
        명령어 피연산자 해독
        실행
    } catch (실행 중 예외 발생) {
    	예외 발생 알림
    }
}

'CS' 카테고리의 다른 글

[디자인 패턴] 전략 패턴  (0) 2024.02.26
고정 소수점과 부동 소수점  (0) 2023.10.09
ARM 프로세서  (0) 2023.10.09

+ Recent posts