Information Security Study
[컴퓨터과학][CPU] 병렬성과 동시성 본문
하드웨어 스레드와 소프트웨어 스레드의 차이
- 동시성과 병렬성으로 구분한다.
병렬성
: 작업을 물리적으로 동시에 처리하는 성질
- ex) 하드웨어 스레드가 4개인 CPU가 4개의 명령어를 동시에 실행하는 경우
동시성
: 동시에 작업을 처리하는 것처럼 보이는 성질
- ex) CPU가 빠르게 작업을 번갈아서 처리하면 사용자 눈에는 동시에 처리되는 것처럼 보인다.
- 소프트웨어 스레드는 동시성을 위해 명령어 파이프라이닝 기법을 사용한다.
명령어 파이프라이닝
: 같은 단계가 겹치지 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.
- 명령어 인출
- 명령어 해석
- 명령어 실행
- 결과 저장
+) 여러 명령어 파이프라인을 포함하는 CPU == 슈퍼스칼라 프로세서 or 슈퍼스칼라 CPU
파이프라인 위험
- 데이터 위험
- 제어 위험
- 구조적 위험(자원 위험)
데이터 위험
: 명령어 사이에 데이터 간 의존성이 존재하는 경우 파이프라인이 제대로 작동하지 않을 수 있다.
제어 위험
: JMP, CJMP, 인터럽트 등으로 프로그램 실행 흐름이 바뀌면 프로그램 카운터 값이 1씩 증가하지 않고 변화가 생기게 된다. 이때 인출, 해석 중인 명령어는 쓸모가 없어지게 된다.
구조적 위험(자원 위험)
: 명령어들을 겹쳐서 실행하는 중에 서로 다른 명령어가 동시에 ALU, 레지스터 등 동일한 CPU 부품을 사용하려고 할 때 발생한다.
'Computer Science' 카테고리의 다른 글
[컴퓨터과학][메모리] RAM, 빅 엔디안과 리틀 엔디안, 캐시 메모리 (0) | 2025.07.03 |
---|---|
[컴퓨터과학][CPU] CPU, 멀티코어, 멀티스레드 (0) | 2025.06.26 |
시간 복잡도, 공간 복잡도 (0) | 2025.03.30 |