CPU 병렬 처리 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;CPU Parallel Processing | ;CPU Parallel Processing | ||
;CPU에서 명령을 처리 할 때 여러 명령을 동시에 처리하는 방식 | ;CPU에서 명령을 처리 할 때 여러 명령을 동시에 처리하는 방식 | ||
9번째 줄: | 8번째 줄: | ||
|- | |- | ||
| 파이프라인 || | | 파이프라인 || | ||
[[파일:파이프라인.png | [[파일:슈퍼 파이프라인.png]] | ||
* 명령어 사이클 각 단계를 중첩하여 실행 | * 명령어 사이클 각 단계를 중첩하여 실행 | ||
|- | |- | ||
| 슈퍼 파이프라인 || | | 슈퍼 파이프라인 || | ||
[[파일:슈퍼 파이프라인.png | [[파일:슈퍼 파이프라인.png]] | ||
* 파이프라인 단계를 더 세분화하여 병렬성 강화 | * 파이프라인 단계를 더 세분화하여 병렬성 강화 | ||
|- | |- | ||
| 슈퍼 스칼라 || | | 슈퍼 스칼라 || | ||
[[파일:슈퍼 스칼라.png | [[파일:슈퍼 스칼라.png]] | ||
* 한 사이클당 여러 명령어 처리 | * 한 사이클당 여러 명령어 처리 | ||
|- | |- | ||
| 슈퍼 파이프라인<br>슈퍼 스칼라 || | | 슈퍼 파이프라인<br>슈퍼 스칼라 || | ||
[[파일:슈퍼 파이프라인 슈퍼 스칼라.png | [[파일:슈퍼 파이프라인 슈퍼 스칼라.png]] | ||
* 파이프라인 단계를 세분화하며 한 사이클당 여러 명령어 처리 | * 파이프라인 단계를 세분화하며 한 사이클당 여러 명령어 처리 | ||
|- | |- | ||
33번째 줄: | 32번째 줄: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! 종류 !! 세부 설명 !! 해소 방안 | ! 종류 !! 세부 설명 !! 해소 방안 | ||
|- | |- | ||
| 구조적 해저드 | | 구조적 해저드 | ||
(Structural Hazards) | (Structural Hazards) || 하드웨어가 병행 수행을 지원하지 않는 경우 자원 충돌(Resource Conflicts) 발생 || 데이터 전방 전달 | ||
|| 하드웨어가 병행 수행을 지원하지 않는 경우 자원 충돌(Resource Conflicts) 발생 || 데이터 전방 전달 | |||
(Data Forwarding) | (Data Forwarding) | ||
|- | |- | ||
| 데이터 해저드 | | 데이터 해저드 | ||
(Data Hazards) | (Data Hazards) || 명령 값이 이전 명령 값에 종속되어 대기함 || 부족한 차원 추가 | ||
|| 명령 값이 이전 | |||
|- | |- | ||
| 제어 해저드 | | 제어 해저드 | ||
(Control Hazards) | (Control Hazards) || 분기(jump, branch 등) 명령어에 의해 처리 꼬임 || 분기 예측 | ||
|| 분기(jump, branch 등) 명령어에 의해 처리 꼬임 || 분기 예측 | |||
(Branch Prediction) | (Branch Prediction) | ||
|} | |} |