병렬 처리
목차
01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템
병렬 처리
병렬 처리의 개념
병쳘처리란 동시에 여러 개의 명령을 처리하여 작업 능률을 올리는 방식이다. ex) 듀얼 코어, 쿼드 코어
하나의 코어를 여러개의 스레드로 나누어 병렬적으로 처리하는 방식을 CPU멀티 스레드라고 한다.
예시로는 파이프 라인 기법이 있다.
병렬 처리 기법 중에 파이프 라인 기법과 슈퍼 스칼라 기법이 있다.
파이프라인 기법은 한 개의 코어에서 여러 스레드가 작업하는 기법이다.
슈퍼 스칼라 기법은 여러개의 코어에서 여러 스레드가 작업하는 기법이다.
조리(10분) 세척(10분) 요리(10분) 마무리(10분) 순으로 작업을 2번 수행해야 한다고 예시를 들어보자.
파이프 라인 기법은 볶음밥을 2개 만들기 위해서는 조리1→세척1→요리1→마무리1→조리2→세척2→요리2→마무리2 과정을 거쳐야 한다.
슈퍼 스칼라 기법은 볶음밥을 2개 만들기 위해서는 주방을 2개 사용하여 모든 일련의 과정을 파이프 라인 기법보다 2배 빨리 처리할 수 있다. 조리1,조리2→세척1,세척2→요리1,요리2→마무리1,마무리2 이렇게 하면 된다.
병렬 처리시 고려 사항
- 상호 의존성이 없어야 병렬 처리가 가능하다.
- 각 단계의 작업시간이 동일해야 병목 현상이 적어서 병렬처리에 유리하다.
- 전체 작업시간을 몇 단계로 나눌지 잘 생각해야 한다.
→ 병렬 처리에서 작업을 N개로 쪼갰을 때 N을 병렬처리 깊이라고 한다.
N이 너무 커도 좋지않고 작아도 좋지 않다. 그래서 10~20으로 설정한다.
병렬 처리 기법
CPU에서 명령어가 처리되는 과정
1. 명령어 패치
다음에 실행될 명령어를 명령어 레지스터에 저장한다.
2. 명령어 해석
명령어 해석한다.
3. 명령어 실행
해석한 결과를 토대로 실행한다.
4. 쓰기
실행된 결과를 메모리에 저장한다.
병렬 처리 기법의 종류
파이프라인 기법
하나의 코어에 여러 개의 스레드를 병렬로 처리하는 기법이다.
그런데, 파이프라인 기법에는 3가지 위험이 존재한다.
파이프라인 기법에는 여러 문제가 있는데 이를 Hazard라고 하며 파이프라인의 위험은 크게 구조적 위험, 데이터 위험, 제어 위험으로 구분됩니다.
(1) 구조적 해저드 : 같은 레지스터에 동시에 Write x
- 해결방안 : 해당 레지스터를 사용할 수 있을 때까지 Stall(지연)
(2) 데이터 해저드 : 아직 수행이 안된 명령의 결과값을 참조할 때 발생
ADD R1, R2, R3
MUL R4, R1, R2
ADD 명령어가 아직 WB이 안되었는데 이미 명령어를 읽어와 다음과 같이 R4에 저장시키게 되는 오류가 발생된다.
이 오류는 쓰기 후 읽기(RAW)으로 구분되며 유형은 세 가지 RAW, WAR, WAW가 존재한다.
- 해결방안 : 복잡한 방법도 존재하지만 Stall(지연) 을 통해 해결할 수 있다.
(3) 제어 해저드 : Jump나 Branch 등 분기 명령에 의해 발생
- 해결방안 : 분기가 끝날때까지 Stall(지연)
슈퍼 스칼라 기법
여러개의 코어로 파이프라인 기법을 수행하는 것이다.
따라서 파이프라인 기법과 마찬가지로 처리되는 명령어가 상호 의존 없이 독립적이어야 한다.
슈퍼 파이프 라인 기법
파이프라인 기법을 강화 한 것이다.
기존에 파이프라인 기법은 한 클록에 하나의 명령어를 실행하지만
슈퍼파이프라인 기법에서는 한 클록에 여러가지 명령어를 실행할 수 있다.
보통 슈퍼컴퓨터 CPU에 사용된다.
슈퍼 파이프 라인 - 슈퍼 스칼라 라인 기법
슈퍼파이프라인 + 슈퍼스칼라라인
VLIW 기법
CPU가 병렬처리를 지원해 주지않을 때 사용하는 기법이다.
컴파일 시 병렬 처리가 이루어진다.
'Operating System' 카테고리의 다른 글
프로세스의 개요 (0) | 2022.04.03 |
---|---|
무어의 법칙과 암달의 법칙 (@황의 법칙) (0) | 2022.04.01 |
컴퓨터 성능 향상 기술 (0) | 2022.03.30 |
CPU와 메모리 (0) | 2022.03.29 |
컴퓨터의 기본 구성 (0) | 2022.03.28 |
댓글
이 글 공유하기
다른 글
-
프로세스의 개요
프로세스의 개요
2022.04.03 -
무어의 법칙과 암달의 법칙 (@황의 법칙)
무어의 법칙과 암달의 법칙 (@황의 법칙)
2022.04.01 -
컴퓨터 성능 향상 기술
컴퓨터 성능 향상 기술
2022.03.30 -
CPU와 메모리
CPU와 메모리
2022.03.29