1. 클럭
더보기
클럭은 컴퓨터의 부품을 움직일 수 있게 하는 시간의 단위이다.
CPU가 1초에 100번 반복될 수 있다면 이 CPU의 클럭속도는 100Hz이다. 최근에는 CPU 클럭속도가 굉장히 빠르기때문에 Gz 단위(10^9 Hz)로 측정한다. 하지만, 클럭속도가 매우 높은 경우 발열이 심해질 수 있기때문에 클럭만으로 CPU 속도를 높이기에는 한계가 있다.
2. 멀티코어, 멀티스레드
더보기
코어란 CPU 내에서 명령어를 읽고, 해석하고, 실행하는 부품을 뜻한다.
멀티코어 CPU 혹은 멀티코어 프로세스는 CPU가 여러 개의 코어를 포함하고 있는 것을 의미한다.
하드웨어 스레드
하드웨어 스레드란 하나의 코어가 동시에 처리하는 명령어의 단위를 뜻한다.
여기서 말하는 스레드는 운영체제에서 사용하는 스레드(소프트웨어적인 스레드)가 아닌 CPU에서 사용하는 스레드(하드웨어적인 스레드)를 의미한다.
멀티스레드 CPU 혹은 멀티스레드 프로세서는 CPU 하나의 코어가 여러 명령어를 동시에 처리할 수 있음을 의미한다.
병렬성
: 작업을 물리적으로 동시에 처리하는 성질
소프트웨어 스레드
소프트웨어 스레드란 하나의 프로그램에서 독립적으로 실행되는 단위를 뜻한다.
어떤 프로그램이 여러 스레드를 통해 실행될 수 있다는 말은 메모리에 적재된 프로그램을 구성하는 여러 부분이 동시에 실행될 수 있다는 의미이다.
동시성
: 작업을 동시에 처리하는 것처럼 보이는 성질
3. 명령어 파이프라이닝
더보기
CPU 내부에서 하나의 명령어를 여러 단계로 나누어 각 단계를 병렬로 처리하는 기법이다.
명령어 처리 과정
1. 명령어 인출
2. 명령어 해석
3. 명령어 실행
4. 결과 저장
명령어를 동시에 처리할 때 같은 단계가 겹쳐서는 안 된다는 특징이 있다.
파이프라이닝의 성능 차이 예시
1. CISC
: 명령어가 복잡한 기능을 지원해주기때문에 적은 수의 명령어로 프로그램을 실행할 수 있다. 하지만, 하나의 명령어 실행에 여러 클럭주기가 필요하므로 파이프라이닝에 비효율적이다.
ex) 인텔 x86, x86-64
2. RISC
: 1클럭 내외로 실행되는 명령어를 지향하기때문에 같은 프로그램을 가정했을 때 CISC에 비해 많은 명령어가 필요하다. 하지만, 하나의 명령어가 빠른 속도로 실행되기때문에 파이프라이닝에 효율적이다.
ex) 애플 M1
파이프라인 위험
: 파이프라이닝이 실패하여 성능 향상이 이루어지지 않는 상황을 의미한다
1. 데이터 위험
: 명령어 간의 데이터 의존성에 의해 발생.
2. 제어 위험
: 프로그램 카운터의 갑작스러운 변화에 의해 발생.
3. 구조적(자원) 위험
: 서로 다른 명령어가 동시에 ALU, 레지스터 등의 CPU 부품을 사용할 때 발생.
멀티스레드 vs 명령어 파이프라이닝
더보기
특징 | 멀티스레드 | 명령어 파이프라이닝 |
작업 단위 | 프로세스 내 여러 작업 | 단일 명령어의 실행 단계 |
병렬 처리 범위 | 여러 작업을 병렬적으로 실행 | CPU 내부의 단일 작업 병렬화 |
목적 | 다중 작업 처리 | CPU 처리 속도 향상 |
수행 위치 | 소프트웨어, 운영체제 수준 | CPU 하드웨어 내부 |
병목 현상 | 스레드 동기화 | 파이프라인 위험 |
적용 대상 | 멀티 스레드 환경의 작업 분배 | 싱글 스레드 프로세싱 최적화 |
본 내용은 "이것이 취업을 위한 컴퓨터 과학이다 with CS 기술면접"을 토대로 작성된 내용입니다.
'컴퓨터 과학 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 빅 엔디안 vs 리틀 엔디안 (0) | 2025.01.08 |
---|---|
[컴퓨터구조] RAM의 종류에 대해서 (0) | 2025.01.08 |
[컴퓨터구조] 동기, 비동기 인터럽트 (0) | 2025.01.07 |
[컴퓨터구조] 레지스터의 정의와 종류 (0) | 2025.01.07 |
[컴퓨터구조] 다양한 인코딩 방식 (0) | 2025.01.06 |