본문 바로가기

Library/Computer System

병렬 처리(Parallel Processing)

병렬 처리(parallel processing)는 컴퓨터 시스템의 계산 속도 향상을 목적으로 하여 동시 데이터 처리 기능을 제공하는 광범위한 개념의 기술을 의미한다. 예를 들어 ALU에서 어떤 명령어가 실행되고 있을 때 다음 명령어를 메모리에서 읽어오거나, ALU에서 어떤 명령어가 실행되고 있을 때 다음 명령어를 메모리에서 읽어오거나, ALU를 두 개 이상 두고서 동시에 두 개 이상의 명령어를 실행하는 시스템이 있다. 더 나아가 한 시스템에 병행적으로 동작하는 두 개 이상의 프로세서를 둘 수도 있다. 병렬 처리의 목적은 이와 같이 컴퓨터의 처리 속도를 향상시키고, 이와 함께 처리율(throughput)도 증가시키는 것이다. 병렬 처리를 구현하기 위해서는 추가의 하드웨어가 필요하고, 따라서 시스템의 비용이 증가한다. 그러나 기술의 발달로 인해 병렬 처리가 경제적으로도 구현 가능한 기술이 되었다.

병렬 처리는 복잡도에 따라 여러 단계로 나누어 볼 수 있는데, 가장 낮은 단계에서는 사용되는 레지스터의 형태에 따라 병렬성을 구별한다. 즉, 시프트 레지스터는 한 번에 한 비트씩 직렬적으로 동작하는데 반해, 병렬 로드를 가진 레지스터는 한 워드의 전체 비트에 대해 동시에 동작한다. 보다 복잡한 단계의 병렬 처리에서는 동일한, 또는 서로 다른 동작을 동시에 수행하는 여러 개의 기능 장치(functional unit)를 가지고서 데이터를 각각의 장치에 분산시켜 작업을 수행한다. 예를 들어 산술, 논리, 시프트 동작을 세 개의 장치로 분리하고, 제어 장치의 관리에 따라 피연산자를 각 장치들 사이에서 전환되도록 할 수 있다.

병렬 처리는 프로세서 내부 구조와 프로세서들 사이의 연결 구조, 그리고 시스템들 사이의 정보 흐름 등을 고려하여 다양한 방법으로 분류된다. M. J. Flynn은 동시에 처리되는 명령어와 데이터 항목 수에 의해 컴퓨터 시스템의 구조를 파악하려는 분류 방법을 제안하였다. 메모리로부터 읽어 온 명령어의 순서는 명령어 흐름(instruction stream)을 구성하고, 데이터에 대하여 수행되는 동작들은 데이터 흐름(data stream)을 구성한다. 병렬 처리는 명령어 흐름과 데이터 흐름 모두에 대하여 적용될 수 있고, 이에 따라 Flynn은 다음과 같은 네 가지 그룹으로 컴퓨터를 분류하였다.

Single Instruction Stream, Single Data Stream : SISD
Single Instuction Stream, Multiple Data Stream : SIMD
Multipe Instruction Stream, Single Data Stream : MISD
Multiple Instruction Stream, Multiple Data Stream : MIMD

SISD는 제어 장치, 처리 장치, 메모리 장치를 가지는 단일 컴퓨터 구조로서 명령어들은 순차적으로 실행되고, 병렬 처리는 다중 기능 장치나 파이프라인(pipeline) 처리에 의하여 구현된다.

SIMD는 공통의 제어 장치 아래에 여러 개의 처리 장치를 두는 구조로서 모든 프로세서는 동일한 명령어를 서로 다른 데이터 항목에 대하여 실행시킨다. 이 구조에서는 모든 프로세서가 동시에 메모리를 접근할 수 있도록 다중 모듈을 가진 공유 메모리 장치가 필요하다. MISD 구조는 이론적으로만 연구가 되는 것이며, MIMD 구조는 여러 프로그램을 동시에 수행하는 능력을 가진 컴퓨터 시스템을 나타낸다. 대부분의 다중 프로세서와 다중 컴퓨터 시스템이 이 범주에 속한다.

Flynn의 분류는 제어 장치와 데이터 처리 장치의 성능적 차이에 따른 것으로 컴퓨터 시스템의 구조적인 연결보다 외양적 행동을 강조하는 분류 방식이다. 따라서 Flynn의 분류에 적합하지 않는 병렬 처리가 있는데 대표적인 것이 파이프라인이다.

파이프라인 처리는 산술 연산의 세부 동작이나 컴퓨터 명령어 사이클의 각 단계를 중첩시키기 위하여 사용하는 기술이고, 벡터 처리는 크기가 매우 큰 벡터나 행렬을 처리하기 위한 것이며, 배열 프로세서(array processor)는 데이터의 큰 배열에 대한 계산을 수행한다.


Copy from
M. Moris Mano, Computer System Architecture Third Edition, Prentice-Hall, 1992
김종상, 컴퓨터 시스템 구조, 사이텍미디어, 1994 (번역)