2 분 소요

이 글은 패스트캠퍼스의 현실 세상의 컴퓨터공학 지식 with 30가지 실무 시나리오 초격차 패키지 Online.를 보고 공부한 내용을 정리한 글입니다.

CPU

CPU는 컴퓨터 부품에 있어서 핵심적인 요소이다.
이러한 CPU내부는 복잡하게 이루어져 있지만 핵심 구성요소를 세 가지 말할 수 있다.

image

  • ALU (산술 논리 연산장치) : 연산을 수행하는 장치(계산을 담당하는 회로)
  • 제어 장치 : 명령어를 해석하고 제어신호를 내보내는 장치
  • 레지스터 : 명령어 처리 전후로 값을 임시 저장하는 장치

ALU

ALU는 연산을 수행하는데 그 과정은 다음과 같다.

  • 레지스터로부터 피연산자(연산의 대상)을 받아들이고
    제어장치로부터 제어신호(연산할 작업)를 받아들인다
  • 연산의 결과를 레지스터, 플래그 레지스터(결과의 부가정보를 저장)에 저장한다

image

플래그 레지스터

플레그 레지스터에 담기는 대표적인 부가 정보들은 다음과 같다.

  • 부호 플래그 : 연산의 결과의 부호를 나타냄
  • 제로 플래그 : 연산 결과가 0인지 아닌지 나타냄
  • 캐리 플래그 : 올림수나 빌림수가 발생했는지 여부를 나타냄
  • 오버플로우 플래그 : 오버플로우가 발생했는지 여부를 나타냄
  • 인터럽트 플래그 : 인터럽트가 가능한지 여부를 나타냄
  • 슈퍼바이저 플래그 : 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지 나타냄

제어장치

플래그 레지스터를 참고하며 명령어를 해석하고 제어신호를 여러 장치에 보냄

image

클럭 신호

부품을 일사분란하게 움직일 수 있게 하는 시간 단위
CPU는 클럭 신호에 따라 명령어 사이클에 맞춰 명령어들을 실행함.

image

레지스터

프로그램의 실행 전후로 값을 임시 저장하는 작은 저장장치

대표적인 8가지 레지스터 종류

  • 프로그램 카운터 : 메모리에서 다음으로 가져올 명령어 주소를 저장( 메모리에서 읽어들일 주소)
  • 명령어 레지스터 : 해석할 명령어를 저장 (메모리에서 읽어들인 주소)
  • 메모리 주소 레지스터 : 메모리의 주소를 저장 (읽어들일 주소 값)
  • 메모리 버퍼 레지스터 : 메모리와 주고 받을 명령어와 데이터
  • 플래그 레지스터 : 연산 결과에 대한 부가 정보 저장
  • 범용 레지스터 : 범용적으로 사용 가능한 레지스터(다양한 용도로 쓰임)
  • 스택 포인터 : 스택 주조 지정 방식에서 사용되는, 스택의 꼭대기를 가리키는 레지스터
    즉 스택에서 가장 먼저 쓰일 값(맨 꼭대기)을 저장함
  • 베이스 레지스터 : 변위 주소 지정 방식에서 사용되는, 떨어진 거리를 가리키는 레지스터

프로그램 카운터

특별한 경우를 제외하고 1씩 증가되며 메모리의 프로그램이 순차적으로 실행됨.

특별한 경우는 점프 또는 인터럽트 등이 있음

image

CPU가 명령어를 순차적으로 처리하는 양상

가장 기본적인 단계로 CPU는 메모리에서 명령어를 가져오는 인출명령어를 실행하는 실행 이 두가지 사이클이 반복된다.

하지만 이 두 사이클 외에도 간접 주소 지정과 같은 방식처럼 메모리 접근이 추가로 필요한 경우도 있으므로 간접 사이클

또는 CPU가 도중에 다른 일을 처리하고자 할 때 사용하는 인터럽트사이클이 있다.

image

인터럽트

동기 인터럽트(예외) 주로 CPU에 의해 발생 명령어 처리 도중 비정상적인 상황에 마주했을 경우 발생

비동기 인터럽트(하드웨어 인터럽트) 주로 입출력장치에 의해 발생 세탁기 완료 알림, 전자레인지 조리 완료 알림과 같은 알림 역할 수행

인터럽트 처리 순서

  1. 입출력 장치는 CPU에게 인터럽트 요청 신호를 보냄
  2. CPU는 실행 사이클 이후 다음 명령어 인출 전에 인터럽트 여부 확인
  3. CPU는 인터럽트 요청을 확인 후, 인터럽트 플래그를 통해 인터럽트 수용 여부 확인
  4. 인터럽트가 가능하다면 지금까지 작업을 잠시 저장(스택에 저장, 프로그램 카운터 등이 저장됨)
  5. 인터럽트 벡터를 참고하여 인터럽트 서비스 루틴(인터럽트 핸들러 실행) (인터럽트 발생시 어떻게 처리해야할지 명시되어있는 메뉴얼)
  6. 인터럽트 서비스 루틴 실행 후 백업한 작업 복구, 실행 재개

인터럽트 벡터 : 인터럽트가 발생했을 때, 그에 맞는 인터럽트 서비스 루틴의 시작주소를 포함한 식별 정보

댓글남기기