컴퓨터 시스템 병렬처리
과학시간에 배운 병렬처리 기법에 컴퓨터 시스템에도 쓰인다는 것을 알고 계셨나요? 오늘은 컴퓨터 시스템의 계산속도와 관련된 병렬처리 기법에 대해서 설명해드리겠습니다.
병렬 처리
병렬 처리 (parallel processing) 는 컴퓨터 시스템의 계산 속도 향상을 목적으로 하여 동시 데이타 처리 기능을 제공하는 광범위한 개념의 기술을 의미합니다. 예를 들어 ALU에서 어떤 명령어가 실행되고 있을 때 다음 명령어를 메모리에 서 읽어오거나, ALU를 두개 이상 두고서 동시에 두개 이상이 명령어를 실행하는 시스템이 있습니다. 더 나아가 한 시스템에 병행적으로 동작하는 두개 이상의 프로세서를 둘 수도 있습니다.
병렬 처리의 목적
병렬 처리의 목적은 이와 같이 컴퓨터의 처리 속도를 향상시키고, 이와 함께 처리율 (throughput) 도 증가시키는 것입니다. 병렬 처리를 구현하기 위해서는 추가의 하드웨어가 필요하고, 따라서 시스템의 비용이 증가합니다. 그러나 기술의 발달로 인해 병렬 처리가 경제적으로도 구현 가능한 기술이 되었습니다.
병렬처리의 단계
병렬 처리는 복잡도에 따라 여러 단계로 나누어 볼 수 있는데, 가장 낮은 단계에서는 사용되는 레지스터의 형태에 따라 병렬성을 구별합니다. 즉 시프트 레지스터는 한 번에 한 비트씩 직렬적으로 동작하는데 반해, 병렬 로드를 가진 레지스터는 한 워드의 전체 비트에 대해 동시에 동작합니다.
보다 복잡한 단계의 병렬 처리에서는 동일한 또는 서로 다른 동작을 동시에 수행하는 여러 개의 기능장치 (functional unit) 를 가지고서 데이타를 각각의 장치에 분산시켜 작업을 수행합니다. 예를 들어 산술, 논리, 시프트 동작을 세 개의 장치로 분리하고, 제어 장치의 관리에 따라 피연산자를 각 장치들 사이에서 전환되도록 할 수 있습니다.
병렬처리의 분류
병렬 처리는 프로세서의 내부 구조와 프로세서들 사이의 연결 구조, 그리고 시스템들 사이의 정보 흐름 등을 고려하여 다양한 방법으로 분류됩니다. M. J. Flynn 은 동시에 처리되는 명령어와 데이타 항목수에 의해 컴퓨터 시스템의 구조를 파악하려는 분류 방법을 제안했습니다. 메모리로부터 읽어온 명령어의 순서는 명령어 흐름 (instrucion stream)을 구성하고, 데이타에 대하여 수행되는 동작들은 데이타 흐름 (data stream)을 구성합니다. 병렬 처리는 명령어 흐름과 데이타 그룹으로 컴퓨터를 분류하였습니다.