티스토리 뷰

728x90

CPU

Central Processing Unit

  • 명령어의 실행 주체
  • 정보를 읽어들이고 해석하고 실행하는 부품

구성요소

  • 산술논리연산장치 ALU: 사칙연산, 논리연산 등의 연산 수행. 일종의 계산기.
  • 제어장치 CU: 명령어를 해속해 제어 신호라는 전기 신호를 내보내는 장치
  • 레지스터: CPU 내부의 작은 임시 저장장치. 여러개 존재. 각기 다른 이름과 역할 가지고있음.


 

레지스터

CPU 안에 있는 작은 임시 저장장치

대표적인 레지스터 종류

  • 프로그램 카운터 : 메모리에서 다음으로 읽어들일 명령어의 주소를 저장 (= 명령어 포인터)
  • 명령어 레지스터: 메모리에서 방금 읽어 들인 명령어를 저장
  • 범용 레지스터: 다양하고 일반적인 상황에서 자유롭게 사용
  • 플래그 레지스터: 연산의 결과 혹은 CPU 상태에 대한 부가정보인 플래그 값을 저장
  • 스택 포인터: 메모리 내 스택 영역의 최상단 스택 데이터 위치를 가리키는 특별한 레지스터. 마지막으로 스택에 저장된 데이터의 위치를 가리킴

인터럽트

CPU의 작업을 방해하는 신호

💡 interrupt: 방해하다, 중단시키다

 

동기 인터럽트: CPU에 의해 발생. 프로그래밍 오류 등 예외적인 상황 (=예외)

  • 폴트 fault: 예외 처리 직후 예외가 발생한 명령어부터 실행을 재개하는 예외
  • 트랩 trap: 예외가 발생한 명령어의 다음 명령어부터 실행을 재개하는 예외
  • 중단 abort: CPU가 실행 중인 프로그램을 강제로 중단시킬 수 밖에 없는 심각한 오류 발견 시 발생하는 예외
  • 소프트웨어 인터럽트: 시스템 콜이 발생했을 때 발생하는 예외

비동기 인터럽트: 주로 입출력장치에 의해 발생. ‘알림’의 역할

 

 

주요 용어

  • 인터럽트 요청 신호: 인터럽트 하기 전 CPU에게 인터럽트 가능 여부를 확인하기 위해 입출력장치에서 보내는 신호
  • 인터럽트 플래그
    • 비동기 인터럽트를 받을지 무시할지 결정하는 플래그
    • CPU의 플래그 레지스터에 있음. false인 경우 CPU는 인터럽트 요청이 와도 무시
    • 막을 수 없는 인터럽트: 정전, 하드웨어 고장으로 인한 인터럽트 등
  • 인터럽트 서비스 루틴
    • 인터럽트를 처리하기 위한 프로그램 (=인터럽트 핸들러)
    • 어떤 인터럽트가 발생했을 때 해당 인터럽트를 어떻게 처리하고 작동해야 할지에 대한 정보로 이루어진 프로그램
  • 인터럽트 벡터
    • 인터럽트 서비스 루틴을 식별하기 위한 정보
    • 인터럽트 서비스 루틴의 시작 주소를 포함하고 있어 CPU가 해당 위치에서 인터럽트 처리 가능
  • 백업: CPU가 인터럽트 서비스 루틴을 실행하기 전 현재 프로그램을 재개하기 위해 필요한 모든 내용을 메모리 내 스택에 저장하는 것

CPU 성능 향상을 위한 설계

CPU 클럭(clock)

  • 컴퓨터의 부품을 일사분란하게 움직일 수 있게 하는 시간의 단위
  • 클럭 속도: 클록이 1초에 몇번 반복되는지 나타냄. 헤르츠(Hz) 단위
  • 클럭 속도를 필요 이상으로 높이면 컴퓨터 발열이 심해질 수 있음

멀티코어 멀티스레드

  • 코어: CPU 내에서 명령어를 읽어들이고, 해석하고, 실행하는 부품
  • 멀티 코어 CPU: 여러 개의 코어를 포함하고 있는 CPU (=멀티코어 프로세서)
  • 스레드: 실행 흐름의 단위
    • 하드웨어 스레드
      • 하나의 코어가 동시에 처리하는 명령어의 단위
      • 멀티 스레드 CPU: 하나의 코어로 여러 명령어를 동시에 처리하는 CPU (=멀티 스레드 프로세서)
    • 소프트웨어 스레드
      • 하나의 프로그램에서 독립적으로 실행되는 단위
      • 운영체제에서 관리
      • 1코어 1 하드웨어 스레드 환경에서도 소프트웨어 스레드는 N개 스레드로 실행 가능
      • ‘동시성’ 구현을 위한 논리적인 실행 단위에 가까움
    • 하드웨어 스레드와 소프트웨어 스레드의 차이: 동시성과 병렬성
      • 병렬성 parallelism: 물리적으로 동시에 처리하는 성질
      • 동시성 concurrency: 동시에 작업을 처리하는 것처럼 보이는 성질


명령어 파이프라이닝

  • 명령어 병렬 처리 기법 중 하나
  • 명령어는 명령어 인출, 해석, 실행, 결과 저장의 단계가 있음. 여러 명령어를 단계별로 동시에 처리할 수 있음
  • 공장의 생산 파이프라인처럼 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 기법
  • CPU마다 명령어 집합 유형이 달라짐. CISC (인텔칩), RISC (애플 실리콘칩)
  • 파이프라인 위험 pipeline hazard: 파이프라이닝에 실패하여 성능이 향상되지 않는 상황
    • 데이터 위험: 명령어 간의 데이터 의존성에 의해 발생
    • 제어 위험: 프로그램 카운터의 갑작스러운 변화에 의해 발생
    • 구조적 위험: 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등 같은 CPU 부품을 사용하려고 할 때 발생 (= 자원 위험)


GPU

  • 최근 GPU는 그래픽 연산 외에도 딥러닝 연산, 가상화폐 채굴 등 다양한 분야의 연산이 가능해짐
  • 개별 코어의 성능은 CPU보다 떨어지지만, 수백~수천 개의 코어가 포함되어있어 병렬 처리에 용이함
    • 개별 코어 성능은 낮기 때문에 CPU를 GPU로 완전 대체는 불가
  • 병렬 처리: 문제를 여러 문제로 쪼개서 각 코어에서 처리하는 방식
  • GPU 자체적으로 캐시 메모리와 메모리도 가지고 있음

 


 

참고: 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 (https://product.kyobobook.co.kr/detail/S000214014967)

728x90
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함