Information Security Study

[컴퓨터과학][CPU] 병렬성과 동시성 본문

Computer Science

[컴퓨터과학][CPU] 병렬성과 동시성

gayeon_ 2025. 7. 1. 13:12

 

하드웨어 스레드와 소프트웨어 스레드의 차이

  • 동시성과 병렬성으로 구분한다.

 

병렬성

: 작업을 물리적으로 동시에 처리하는 성질

  • ex) 하드웨어 스레드가 4개인 CPU가 4개의 명령어를 동시에 실행하는 경우

 

동시성

: 동시에 작업을 처리하는 것처럼 보이는 성질

  • ex) CPU가 빠르게 작업을 번갈아서 처리하면 사용자 눈에는 동시에 처리되는 것처럼 보인다.
  • 소프트웨어 스레드는 동시성을 위해 명령어 파이프라이닝 기법을 사용한다.

 

명령어 파이프라이닝

: 같은 단계가 겹치지 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.

  1. 명령어 인출
  2. 명령어 해석
  3. 명령어 실행
  4. 결과 저장
    +) 여러 명령어 파이프라인을 포함하는 CPU == 슈퍼스칼라 프로세서 or 슈퍼스칼라 CPU

 

파이프라인 위험

  1. 데이터 위험
  2. 제어 위험
  3. 구조적 위험(자원 위험)

 

데이터 위험
: 명령어 사이에 데이터 간 의존성이 존재하는 경우 파이프라인이 제대로 작동하지 않을 수 있다.

 

제어 위험
: JMP, CJMP, 인터럽트 등으로 프로그램 실행 흐름이 바뀌면 프로그램 카운터 값이 1씩 증가하지 않고 변화가 생기게 된다. 이때 인출, 해석 중인 명령어는 쓸모가 없어지게 된다.

 

구조적 위험(자원 위험)
: 명령어들을 겹쳐서 실행하는 중에 서로 다른 명령어가 동시에 ALU, 레지스터 등 동일한 CPU 부품을 사용하려고 할 때 발생한다.