인프런의 개발자를 위한 컴퓨터 공학1 : 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고, 학습 및 요약
CPU의 속도를 빠르게 만들어보기
1. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다. => 클럭 속도를 빠르게?
2. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.
클럭 속도
- 헤르츠(Hz) 단위로 측정
- 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수
- 클럭이 '똑-딱-' 하고 1초에 한 번 반복되면 1Hz
- 클럭이 1초에 100번 반복되면 100Hz
- 필요 이상으로 클럭을 높이면 발열이 심각해짐
클럭 속도를 늘리는 방법 이외에는?
- 코어 수를 늘리는 방법 "듀얼 코어" "멀티 코어"
- 스레드 수를 늘리는 방법 "멀티 스레드"
코어(Core)
CPU 내에서 명령어를 실행하는 부품으로 여러 개 있을 수 있다.
- 전통적으로 '명령어를 실행하는 부품'은 원칙적으로 하나만 존재하지만(CPU) 오늘날 CPU에는 '명령어를 실행하는 부품'이 여러 개 존재한다.
- 이 '명령어를 실행하는 부품'을 코어라는 용어로 사용한다.
멀티 코어 프로세서
여러 개의 코어를 포함하고 있는 CPU
- 멀티 코어 : 듀얼코어(2), 트리플코어(3), 쿼드코어(4), 헥사코어(6), 옥타코어(8), 데카코어(10), 도데카코어(12)
- 연산속도가 꼭 코어 수에 비례해 증가하지는 않는다.
스레드와 멀티 스레드
큰 범위에서 스레드는 실행 흐름의 단위
1. 하드웨어 스레드
하나의 코어가 동시에 처리하는 명령어 단위, 논리 프로세서라고도 부른다.
- 2코어 4스레드 CPU => 전체적으로는 2개의 코어가 움직이지만 그 안에 4개의 스레드가 실행된다.
- 하이퍼스레딩 : 인텔의 멀티스레드 기술
- 멀티스레드 프로세서를 실제로 설계하는 일은 매우 복잡하지만, 가장 큰 핵심은 레지스터!
- 하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들을 편의상 '레지스터 세트'라고 표기
- 하나의 명령어를 실행하기 위한 레지스터가 여러 개 있다면 멀티 스레드 프로세서를 설계할 수 있음!
2. 소프트웨어 스레드
하나의 프로그램에서 독립적으로 실행되는 단위
- 멀티스레드 : 여러개의 프로세서가 동시에 실행됨
- 즉 소프트웨어 스레드를 여러 개 만들면, 하나의 프로그램에서 독립적으로 실행되는 단위가 여러 개 만들어져, 하나의 프로그램을 동시에 여러군데를 실행할 수 있다..! => 운영체제에서 더 자세히 다룰것임!
1코어 1스레드 CPU도 여러 소프트웨어적 스레드를 만들 수 있다! => 즉, 하드웨어 스레드는 하나여도 소프트웨어 스레드는 여러 개 만들 수 있음!
- 스레드는 큰 범위로 보면 실행 흐름의 단위라고 볼 수 있는데, 구분하면 하드웨어적 스레드와 소프트웨어적 스레드로 나눌 수 있다. 하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어 단위이고, 소프트웨어적 스레드는 하나의 프로그램안에서 독립적으로 실행되는 단위이다!!
'cs' 카테고리의 다른 글
[혼공운영체제] CPU의 성능 향상 기법(3) : 명령어 집합 구조, CISC와 RISC (0) | 2023.04.17 |
---|---|
[혼공운영체제] 5.CPU의 성능 향상 기법(2) : 명령어 병렬 처리 기법 (0) | 2023.04.17 |
[혼공운영체제] 3. 명령어 사이클과 인터럽트 (0) | 2023.04.16 |
[혼공운영체제] 2. CPU의 작동원리(ALU와 제어장치, 레지스터) (0) | 2023.04.13 |
방화벽(Firewall)의 동작 원리 (0) | 2023.04.10 |