2주차 - Chapter 04 - 05

bomeeyoon·2023년 7월 15일
0

혼공컴운

목록 보기
2/4

Chapter 04

CPU의 작동 원리

ALU 와 제어장치

  • ALU레지스터제어장치로부터 받아들인 피연산자와 제어 신호로 산술 연산, 논리 연산 등 다양한 연산을 수행한다.
  • 연산 수행 결과는 특정 숫자문자가 될 수 있고, 메모리 주소가 될 수 있다. 결괏값은 일시적으로 레지스터에 저장된다.
  • 오버플로우(overflow)ALU의 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황을 말한다.
  • 제어장치란 제어신호를 내보내고, 명령어를 해석하는 부품이다.
  • 컴퓨터의 모든 동작은 클럭이라는 컴퓨터 시간단위에 맞춰 동작한다.

레지스터의 종류와 역할

  • 프로그램 카운터(명령어 포인터): 메모리에서 읽어 들일 명령어의 주소 (다음으로 실행할 명령어의 주소를 저장)
  • 명령어 레지스터: 메모리에서 읽어 들인 명령어를 저장
  • 메모리 주소 레지스터: 메모리의 주소를 저장
  • 메모리 버퍼 레지스터(메모리 데이터 레지스터): 메모리와 주고받을 값(데이터와 명령어)를 저장
  • 플래그 레지스터: 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장
  • 범용 레지스터: 데이터와 주소를 모두 저장할 수 있음
  • 스택 포인터: 스택의 꼭대기를 가리키는 레지스터
  • 베이스 레지스터: 기준 주소를 저장

명령어 사이클

  • CPU가 명령어를 실행하는 흐름이다.
  • 인터럽트CPU의 작업을 방해하는 신호다.
    • 동기 인터럽트(예외) : CPU 에 의해 발생하는 인터럽트
    • 비동기 인터럽트(하드웨어 인터럽트) : 입출력 작업 도중 발생하는 인터럽트
  • 예외의 종류
    • 폴트: 예외 처리 후 예외가 발생한 명령어부터 실행 재개
    • 트랩: 예외 처리 후 예외가 발생한 명령어의 다음 명령어부터 실행 재개
    • 중단: 강제 중단
    • 소프트웨어 인터럽트: 시스템 호출 시 발생하는 예외

Chapter 05

CPU 성능 향상

빠른 CPU를 위한 설계 기법

  • 클럭속도 && 멀티코어
    기부니조으다 😎
    부끄러운데 여태 몰랐던 걸 알게됐다 ㅎㅎ
    2GHz -> 1Hz 에 2억번 반복하는 클럭속도
    my mac

  • 코어와 멀티코어
    - CPU는 명령어를 실행하는 부품으로 원칙적으로는 하나만 존재했음

    • 기술의 발전으로 명령어를 실행하는 부품을 얼마든지 만들 수 있게 되었고, 그 부품을 코어라고 칭함.
    • CPU는 명령어를 실행하는 부품을 여러 개 포함하는 부품으로 명칭의 범위가 확장됨.
  • 하드웨어적 스레드

    • 하나의 코어가 동시에 처리하는 명령어 단위
  • 소프트웨어적 스레드

    • 하나의 프로그램에서 독립적으로 실행되는 단위
  • 멀티스레드 프로세서

    • 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
    • 프로그램 카운터, 스택 포인터, 메모리 버퍼 레지스터와 같이 하나의 명령어를 처리하기 위해 꼭 필요한 레지스터를 여러개 가지고 있으면 됨.

명령어 병렬 처리 기법

  • 명령어 파이프라인이란, 명령어 처리 과정을 클럭 단위로 나눈 것
    • 인출 -> 해석 -> 실행 -> 결과 저장
    • 단계가 겹치지 않으면 CPU는 각 단계를 동시에 실행할 수 있음.
    • 명령어 파이프라이닝: 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 기법
  • 파이프라인 위험: 파이프라이징이 높은 성능을 가져오지만, 성능 향상에 실패하는 경우도 있음.
    • 데이터위험: 명령어 간 데이터 의존성에 의해 발생
    • 제어위험: 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생. 프로그램 카운터 값이 갑자기 다른 값으로 변화가 생기면 명령어 파이프라인에 미리 가지고 와서 처리 중이었던 명령어들은 아무 쓸모가 없어짐.
    • 구조적위험: 명령어들을 겹쳐 실행하면 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생.
  • 슈퍼스칼라: CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
  • 비순차적 명령어 처리 기법: 명령어를 순차적으로만 실행하지 않고 순서를 변경해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지

CISC와 RISC

  • 명령어집합: CPU가 이해할 수 있는 명령어들의 모음
  • CISC(Complex Instruction Set Computer): 다양한 명령어 집합을 활용하여 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용. 상대적으로 적은 수의 명령어로 프로그램 실행.
    • 명령어가 다양한 기능을 제공해 명령어의 규격화가 어려워 파이프라이징이 어려움.
  • RISC(Reduced Instruction Set Computer): 짧고 규격화된 명령어로 1클럭 내외로 실행되는 명령어를 지향.
    • load, store 명령어로만 메모리에 직접 접근
    • 레지스터 적극 활용

기본 미션

정답

  • 플래그 레지스터: 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
  • 프로그램 카운터: 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
  • 범용 레지스터: 데이터와 주소를 모두 저장할 수 있는 레지스터
  • 명령어 레지스터: 해석할 명령어를 저장하는 레지스터

정답: 코어!

0개의 댓글