학교강의/컴퓨터구조
컴퓨터구조 8주차
Fel.Forest
2024. 5. 3. 12:30
클럭
- CPU 속도를 빠르게 하려면?
- 컴퓨터 부품들은 "클럭 신호"에 맞춰 일사분란하게 움직임
- CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.
- 클럭 속도가 높은 CPU는 일반적으로 성능이 좋음
- 클럭 속도
- 헤르츠(Hz) 단위로 측정
- 1초에 클럭이 반복되는 횟수
- 1Hz : 1초에 1번 반복 , 100Hz : 1초에 100번 반복
- CUP 속도를 높이려면
- 클럭 속도를 높인다
- 발열의 문제가 발생
클럭 속도만으로도 CPU의 성능을 올리는 것에는 한계가 있음
- 발열의 문제가 발생
- 그 외의 방법
- 코어의 수를 늘린다
- 스레드의 수를 늘린다
- 클럭 속도를 높인다
코어
- 현대적인 관점에서 CPU라는 용어를 재해석함
- CPU : 명령어를 실행하는 부품
- 전통적으로는 명령어를 실행하는 부품은 하나만 존재
- 오늘날 CPU는 많은 기술적 발전을 거듭하여 CPU내부에 '명령어를 실행하는 부품'을 여러개 만들수 있음
- 따라서 오늘날
- CPU : 명령어를 실행하는 부품을 여러 개 포함하는 부품
- 코어 : 명령어를 실행하는 부품
- 멀티코어 CPU (멀티코어 프로세서)
- 코어를 여러 개 포함하는 CPU
- 멀티 코어의 처리 속도는 단일 코어의 처리 속도보다는 빠르다
- 하니잔 CPU의 연산속도가 꼭 코어 수에 비례하여 증가하지는 않는다
- 처리하고자 하는 작업량보다 코어 수가 지나치게 많아도 성능에는 크게 영향 없음
100개의 일을 100명이 하면 빠르지만 10개의 일을 100명이 하면 10개의일을 10명이 하는것과 비슷 - 코어 마다 처리할 명령어들을 어마나 적절하게 분뱋느냐에 따라 연산 속도는 크게 달라짐
스레드
- 사전적 의미 : 실행 흐름의 단위
- 종류
- 하드웨어적 스레드 : CPU에서 사용
- 소프트웨어적 스레드 : 프로그램에서 사용
- 하드웨어적 스레드
- 정의 : 하나의 코어가 동시에 처리하는 명령어 단위
- 멀티스레드 프로세서
- 멀티스레드 CPU라 하기도 함
- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
- 하이퍼스레딩
- 인텔의 멀티스레드 기술을 의미
- 인텔이 자신들의 멀티스레드 기술에 붙인 명
1코어 1스레드 CPU -> 명령어를 실행하는 부품 1개가 한번에 하나씩 명령어를 실행하는 CPU 2코어 4스레드 CPU → 명령어를 실행하는 부품 2개가 한번에 네 개의 명령어를 처리 할 수 있는 CPU
- 멀티스레드 프로세서
- 정의 : 하나의 코어가 동시에 처리하는 명령어 단위
- 소프트웨어적 스레드
- 정의 : 하나의 프로그램에서 독립적으로 실행되는 단위
- 프로그래밍 언어나 운영체제를 학습할 때 말하는 스레드를 의미
- 하나의 프로그램은 실행되는 과정에서 한 부분만 실행될 수도 있지만 프로그램의 여러 부분이 동시에 실행 될 수도 있음
- 멀티스레드 프로세서
- 설계에 있어 가장 큰 핵심은 레지스터
- 레지스터 세트
하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들을 편의상 '레지스터 세트'라고 표기- 레지스터 세트가 1개인 CPU -> 한 개의 명령어를 처리하기 위한 정보들을 기억
- 레지스터 세트가 2개인 CPU -> 두개의 명령어를 처리하기 위한 정보들을 기억
- ALU 와 제어장치가 두 개의 레지스터 세트에 저장된 명령어를 해석하고 실행하면 하나의 코어에서 두개의 명령어가 동시에 실행
- 메모리 속 프로그램 입장에서 봤을 때 하드웨어 스레드는?
- 한 번에 하나의 명령어를 처리하는 CPU
- ex) 2코어 4스레드 CPU는?
- 한번에 4개의 명령어를 처리 할 수 있음
- 프로그램 입장에서는 :한번에 1개의 명령어를 처리할 수 있는 CPU가 4개 있음
- 논리 프로세서 라고 부르기도 함
빠른 CPU를 만들려면
- 높은 클럭 속도, 멀티코어, 멀티스레드를 지원하는 CPU를 만드는 것도 중요
- CPU가 놀지 않고 시간을 알뜰하게 쓰며 작동하게 만드는 것도 중요
- 명령어 병렬 처리 기법
- 명령어 병렬 처리 기법
- 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법
- 종류
- 명령어 파이프 라이닝
- 슈퍼스칼라
- 비순차적 명령어 처리
RISC는 곱셈 명령어가 없음
CISC는 곱셈 명령어가 있음
차이점 알아둬라