👩🏻💻기초지식/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
- RAID: 0~6, 0 + 1, 1 + 0
728x90