👩🏻‍💻기초지식/CS

[CS] CPU 간단 총정리

공대 컴린이 2023. 7. 31. 21:25
728x90

CPU

구성요소

  • 제어기능
    • IR: 현재 수행중인 명령어의 저장소
    • Decorder: IR에 들어간 명령어를 해석하는 것
    • CU: 컨트롤 유닛, 해석한 명령에 따라 신호를 보내준다. 제어 유닛
  • 연산기능
    • ALU: 산술 논리 연산 장치
    • AC: 연산 결과를 일시적으로 저장
  • 기억기능
    • PC: 프로그램 카운터, 다음 수행할 명령의 번지 저장
    • MAR: 메모리 어드레스 레지스터, 현재 수행될 명령의 주소
    • MBR: 메모리 버퍼 레지스터, 기억장치로부터 주고 받을 데이터
  • 전달기능
    • 주소, 데이터, 제어 버스

명령 사이클

  • 1. 명령 인출
  • 2. 명령 해석
  • 3. 데이터 획득
  • 4. 명령 실행 - 인터럽트

병행성과 병렬성

  • 병행성(Concurrency) : 1 Processor -> n Program
    • 하나의 프로세스가 두 개 이상의 프로그램을 다루는 것
    • 다수의 프로그램이 마치 동시에 실행되는 것처럼 보이는 것
    • 프로세스 단위로 실행 (멀티 프로세싱)
  • 병렬성(Parallelism) : n Processor -> 1 Program
    • 두 개 이상의 프로세스가 하나(이상)의 프로그램을 다루는 것
    • 실제로 여러 프로세스가 동시에 작업을 처리하는 것
    • 함수 단위로 실행 (멀티 스레드)
  • 발생 가능한 문제점
    • 레이스 컨디션
    • 레이스 컨디션 해결 방안
      • Mutex 안에 Critical Section을 이용하여 해결할 수 있다.
      • 세마포어

Flynn의 분류

  • SISD : 하나의 명령어가 하나의 데이터 (CPU) - 폰노이만의 프로그램 내장 방식
  • SIMD : 하나의 명령어가 여러 데이터 (GPU)
  • MISD : 여러개의 명령어가 하나의 데이터 (개념만 존재)
  • MIMD: 여러개의 명령어가 여러 데이터

멀티코어

  • CUDA : 엠비디아에서 만든 병렬처리 컴퓨터 시스템
  • GPGPU: GPU에서 CUDA를 다룰 수 있도록 하는 것, 병렬 처리 기술
  • Direct Compute: DX에 있는 라이브러리는 다 병렬 컴퓨터 쉐이더 -> C++ AMP
  • OpenCL : 컴퓨터 쉐이더

CPU와 GPU의 차이

  • CPU
    • 컨트롤러, 캐시, ALU가 하나의 코어인데, 큰 코어가 하나 있다.
    • 복잡한 계산에 용이하다
  • GPU
    • 하나의 코어가 매우 여러개로 나누어져 있다.
    • 단순하고 많은 계산에 용이하다

멀티 스레딩 vs 하이퍼 스레딩

  • 멀티 스레딩 : 1 Process -> n Thread
    • 하나의 프로세스가 여러개의 작업을 쪼개서 처리한다.
  • 하이퍼 스레딩 : 1 Process -> n Process
    • 하나의 프로세스가 여러개의 프로세스인것처럼 처리

기억장치

지역성

  • 지역성 종류
    • 시간적 : 최근 액세스 된 데이터가 가까운 미래에 다시 액세스 될 확률이 높다 (Loop, Subroutine)
    • 공간적 : (Array, Table, 순차코드실행)
    • 순차적 : (구조적 프로그래밍)
  • 소프트웨어 관점
    • 선인출
    • 예상 페이징(Pasing)
    • 워킹셋 (스레싱 방지)
    • LRU 설계
    • LFU 설계
  • 하드웨어 관점
    • 기억 장치 계층 구조 
    • 캐시 기억 장치
    • CDN 서버 : 용량이 큰 사운드나 리소스같은것을 다른 서버에 분산시켜 저장하는 것

계층구조 (위로 올라갈수록 비싸다)

  • 레지스터 : CPU 내부에 존재하는 초고속 기억장치이다. 가장 빠르고 작아서 비용이 비싸다
    ↑↓ Word
  • 캐시 (L1, L2) - 교체 : 무작위, FIFO, Optimal, LFU, LRU / 인터리빙
    ↑↓ Block
  • M/M (Main Memory)
  • I/O
    • AR(주소기억)
    • BR(데이터 저장)
  • S/B
    • RAID: 0~6, 0 + 1, 1 + 0
      처리속도의 보호를 목적으로 사용한다
    • DAS, NAS
728x90