[혼공단] '혼자 공부하는 컴퓨터 구조 + 운영체제' 2주차

YongHo Shin·2025년 1월 18일
0

혼공단-CS

목록 보기
2/6

Chap 04. CPU의 작동 원리

04-1. ALU와 제어장치

ALU

  • CPU 내부에서 계산 (연산) 을 담당하는 구성요소
  • 피연산자 (From 레지스터), 제어신호 (From 제어장치) 를 전달받아 적절한 연산 수행 후 결과를 레지스터에 저장*
  • 계산 결과와 더불어 플래그**도 함께 내보냄
  • 캐싱 : CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느리기 때문에 연산 결과를 메모리에 곧바로 저장할 경우 병목 발생. 이런 속도 차이를 해결하기 위해 레지스터에 임시 저장.

** 플래그 :

플래그 종류의미사용 예시
부호 플래그연산 결과의 부호1 : 음수 / 0 : 양수
제로 플래그연산 결과가 0인지1 : 연산 결과는 0
캐리 플래그연산 결과 올림수 빌림수가 발생했는지 여부1 : 발생
오버플로우 플래그오버플로우 발생 여부1 : 발생
인터럽트 플래그인터럽트 가능 여부1 : 가능 / 0 : 불가능
슈퍼바이저 플래그커널 모드 여부1 : 커널 모드 실행 중임 / 0 : 사용자 모드 실행 중임

제어장치

  • 제어 신호 송출 및 명령어 해석
  • 제어 장치가 수신하는 신호
  • 클럭 신호
  • 해석해야 할 명령어
  • 플래그 레지스터 속 플래그 값
  • 시스템 버스 (제어 버스) 제어 신호

04-2. 레지스터

반드시 알아야 할 레지스터

  • PC (프로그램 카운터)
  • IR (Instruction Register : 명령어 레지스터)
  • 메모리 주소 레지스터
  • 메모리 버퍼 레지스터
  • 플래그 레지스터
  • 범용 레지스터
  • 스택 포인터
  • 베이스 레지스터

특정 레지스터를 이용한 주소 지정 방식 (1) : 스택 주소 지정 방식

  • 메모리 내 스택 영역 활용

특정 레지스터를 이용한 주소 지정 방식 (2) : 변위 주소 지정 방식

  • 상대 주소 지정 방식 : 오퍼랜드 + 프로그램 카운터 = 유효 주소
  • 베이스 레지스터 주소 지정 방식 : 오퍼랜드 + 베이스 레지스터 = 유효 주소

상용화된 CPU 속 레지스터 및 주소 지정 방식

04-3. 명령어 사이클과 인터럽트

명령어 사이클

  • 인출 사이클
  • 실행 사이클
  • 간접 사이클

인터럽트

  • CPU 작업을 방해하는 신호

  • 종류 : 동기(synchronous; 예외exception 관련) / 비동기(asynchronous; Hardware IO 관련)

  • 하드웨어 인터럽트 : ex) 출력 명령 실행시 인터럽트를 활용하면 출력 대기 시간에 다른 작업을 효율적으로 처리 가능

    • 하드웨어 인터럽트 처리 순서
      (1) IO Device -> CPU 에 인터럽트 요청 신호 전송
      (2) CPU -> 실행 사이클 끝나고 명령어 인출하기 전 항상 인터럽트 여부 확인
      (3) CPU -> 인터럽트 요청 확인 후 인터럽트 플래그 통해 인터럽트 처리 가능 여부 확인
      (4) 인터럽트 처리 가능한 경우 지금까지 작업 백업
      (5) CPU -> 인터럽트 벡터 참조, 인터럽트 서비스 루틴 실행
      (6) 인터럽트 서비스 루틴 실행 후 (4)에서 백업한 작업 복구 및 재개
  • ISR (Interrupt Service Routine; Interrupt Handler)
    ** Interrupt Vector : ISR 식별 정보

예외의 종류

  • Fault
  • Trap
  • Abort
  • Software Interrupt

Chap 05. CPU 성능 향상 기법

05-1. 빠른 CPU를 위한 설계 기법

05-2. 명령어 병렬 처리 기법

05-3. CISC 와 RISC


2주차 숙제

(p. 125) 확인 문제 2번

  • 설명에 맞는 레지스터를 보기에서 찾아 빈칸을 채워 보세요.
[보기] 프로그램 카운터, 명령어 레지스터, 플래그 레지스터, 범용 레지스터
  • [래그 레지스터] : 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
  • [프로그램 카운터] : 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
  • [범용 레지스터] : 데이터와 주소를 모두 저장할 수 있는 레지스터
  • [명령어 레지스터] : 해석할 명령어를 저장하는 레지스터

(p. 155) 확인 문제 4번

  • 다음 그림은 멀티코어 CPU를 간략하게 도식화한 그림입니다. 빈칸에 알맞은 용어를 써 넣으세요.
  • 답 : 코어

추가 숙제 - Ch.05(05-1) 코어와 스레드, 멀티 코어와 멀티 스레드의 개념 정리

코어

스레드

멀티 코어

멀티 스레드

profile
Backend Software Engineer

0개의 댓글

관련 채용 정보