병렬처리란?
병렬 처리 (parallel processing)는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말한다.
note CPU멀티스레드
스레드는 CPU의 작업 단위로, 한 번에 여러 개의 스레드를 처리하는 방식을 멀티스레드라고 한다.
병렬 처리 시 고려 사항
- 상호 의존성이 없어야 병렬 처리가 가능하다.
- 각 단계의 시간을 거의 일정하게 맞춰야 병렬 처리가 원만하게 이루어진다→ 각 처리시간이 들쑥날쑥하다면 앞의 작업이 먼저 끝나더라도 가장 긴 시간이 걸리는 단계에서 병목 현상이 발생한다. (시간이 오래 걸림)
- 전체 작업 시간을 몇 단계로 나눌지 잘 따져보아야 한다. → 병렬 처리에서 작업을 N개로 쪼갰을 때 N을 병렬 처리의 깊이라고 한다.
병렬 처리 기법
CPU내에서 명령어는 제어장치가 처리한다. 제어장치는 명령어를 가져와 해석한 후 실행하고 결과를 저장하는 과정을 계속 반복한다. 이러한 과정 전체를 하나의 스레드라고 하며, 스레드를 이루는 각 단계는 CPU의 클록과 연동되어 한 클록에 한 번씩 이루어진다.
CPU명령어 실행 과정
- 명령어 패치 : 다음에 실행할 명령어를 명령어 레지스터에 저장한다.
- 명령어 해석 : 명령어를 해석한다.
- 실행 : 해석한 결과를 토대로 명령어를 실행한다.
- 쓰기 : 실행된 결과를 메모리에 저장한다.