-
병렬 처리의 개념Computer Engineering/운영체제 2022. 10. 31. 00:19
병렬 연산 ( Parallel Processing ) / 병렬 컴퓨팅 ( Parallel Computing )
- 병렬 형태로 여러 명령을 수행하며 작업의 능률을 올리는 작업 처리 방식
병렬 연산의 다양한 기법
- 파이프 라인 기법 : 하나의 코어에 여러개의 스레드를 이용하는 방식
IF ( Instruction Fetch ) : 명령어 인출, 패치
ID ( Instruction Decode ) : 명령어 해석 및 레지스터 파일 읽기
EX ( Execution ) : 실행
WB ( Write Back ) : 실행된 결과를 메모리에 저장
- 파이프라인의 위험
- 데이터 위험 ( Data Hazard ) : 데이터의 의존성 때문에 발생하는 문제
데이터 A를 필요로 하는 두번째 명령어는 실행되어서는 안됨.
- 제어 위험 ( Control Hazard ) : 프로그램 카운터 값을 갑자기 변화시켜 발생하는 위험
첫 명령어를 실행하고 보니 goto문이어서 다른 문장으로 이동하게 되어 처리되고 있는 명령어들이 쓸모 없어짐 - 구조 위험 ( Structural Hazard ) : 다른 명령어가 같은 자원에 접근하려 할 때 발생하는 문제
명령어 A가 레지스터 RX를 사용하고 있는데, 명령어 B도 레지스터 RX를 사용해야 하는 충돌
- 데이터 위험 ( Data Hazard ) : 데이터의 의존성 때문에 발생하는 문제
- 슈퍼 스칼라 기법 : 듀얼 코어 CPU를 이용해 2개의 작업 / 명령어 을 동시에 처리하는 방식
- 슈퍼 파이프 라인 기법 : 강화된 파이프 라인 기법으로, 파이프 라인의 각 단계를 세분화하여 한 클록 내에 여러 명령어를 처리
- 슈퍼 파이프 라인 슈퍼 스칼라 기법 : 듀얼 코어를 이용하는 슈퍼스칼라 기법 + 여러 스레드를 이용하는 슈퍼 파이프라인 기법
- VLIW ( Very Long Instruction Word ) 기법 : CPU가 아닌 소프트웨어적으로 병렬처리를 하는 기법
동시에 수행할 수 있는 명령어들을 컴파일러가 추출하고 하나의 명령어로 압축하여 실행
더보기참고문헌
조성호 저, 「쉽게 배우는 운영체제」, 한빛아카데미, 2018, 616p
https://ko.wikipedia.org/wiki/%EB%B3%91%EB%A0%AC_%EC%BB%B4%ED%93%A8%ED%8C%85
https://math-coding.tistory.com/88
https://chayan-memorias.tistory.com/179
⊙ 이 글은 개인 공부를 목적으로 작성된 글입니다.
⊙ 내용에 대한 오류나 피드백 감사히 받고 있습니다 !
반응형'Computer Engineering > 운영체제' 카테고리의 다른 글
하드 디스크의 구성 및 스케줄링 (0) 2022.11.14 프로세스와 스레드 (0) 2022.10.31 CPU의 메모리 접근 구조 (0) 2022.10.28 컴퓨터 메모리, 버퍼, 스풀, 캐시 (0) 2022.10.28 컴퓨터의 기본 구성과 폰노이만 구조 (0) 2022.10.28