본문 바로가기
기타

컴퓨터의 병렬처리 시스템

by oncerun 2020. 11. 4.
반응형

병렬 처리(parallel processing)이란 하나 이상의 연산을 동시에 수행하여 연산속도를 증가시키려는 처리방법이고,

병렬 처리기(parallel processor)이란 이러한 병렬 처리 기법을 구현한 컴퓨터 구조를 말한다.

 

병렬 처리기 구조를 분류하는 데에는 여러 가지 방법이 있다. 

그중 컴퓨터 구조를 명령어 스트림과 데이터 스트림이 컴퓨터 내에서 각각 하나뿐인가 혹은 여러 개인가를 기준으로 분류하는 플린의 분류가 있다.

여기서 스트림이란 하나의 처리기에 의하여 수행되거나 처리되는 연속적인 일련의 명령어나 데이터를 의미한다.

 

플린에 의하면 컴퓨터 구조는 다음과 같이 4가지로 분류된다.

 

1. 단일 명령어 스트림-단일 데이터 스트림 컴퓨터(SISD)

2. 단일 명령어 스트림-복수 데이터 스트림 컴퓨터(SIMD)

3. 복수 명령어 스트림-단일 데이터 스트림 컴퓨터(MISD)

4. 복수 명령어 스트림-복수 데이터 스트림 컴퓨터(MIMD)

 

 SISD 컴퓨터 구조

하나의 처리장치가 하나의 기억장치에 저장되어 있는 데이터를 처리하기 위해 하나의 명령어 흐름을 순차적으로 실행한다. 그러나 명령어를 수행할 때 여러 수행 단계로 나누어서 중첩 수행 혹은 파이프라인에 의한 수행을 할 수도 있다.

 SISD 구조는 하나의 명령을 수행할 때 제어장치는 지역 기억장치에서 명령어 스트림을 가져와 실행하기 위해 처리기에 보내고, 처리장치는 명령어가 수행되는 과정에서 지역 기억장치로부터 데이터 스트림을 읽어 처리한 후 그 결과를 다시 지역 기억장치에 저장한다.

 

 SIMD 컴퓨터 구조

SIMD 구조는 배열처리기 구조라고도 하는데, 여러 개의 처리기가 하나의 제어 처리기에 의해요 제어되는 구조이다.

모든 처리기는 제어처리기로 부터 같은 명령어를 수행하도록 제어되지만 각각 다른 데이터를 처리한다.

 

 MISD 컴퓨터 구조

SIMD 컴퓨터 구조와 반대로 여러 개의 제어 처리기에서 수행되는 명령어는 서로 다르지만 전체적으로 하나의 데이터 스트림을 가지고 있는 형태이다. 하나의 처리기에서 처리된 결과가 다른 처리기로 입력되어 결국 하나의 데이터 스트림을 기억장치에 다시 저장하는데 이러한 구조의 컴퓨터는 이용되기가 어렵다.

 

 MIMD 컴퓨터 구조

현재까지 개발된 대부분의 다중처리기 컴퓨터 시스템이나 다중 컴퓨터 시스템은 MIMD 컴퓨터 구조에 속하며, 여러 개의 처리기는 각각 다른 데이터 스트림에 대하여 다른 명령어 스트림을 수행한다.

 

구조에 의한 분류

MIMD 컴퓨터는 다중처리기 시스템이라 할 수 있는데 주어진 문제를 풀기 위해서 같이 협력하여 동작하는 독립적인 많은 처리기가 하나의 컴퓨터 시스템을 이루는 것이다. 

 여러 처리기가 결합하여 하나의 시스템을 이루는 경우로는 분산처리와 병렬 처리가 있다.

 

분산처리는 하드웨어 자원이 프로세스 작업에 대하여 상대적으로 약하게 결합되어 동작하는 것이다. 분산처리 시스템의 예를 들어 컴퓨터 네트워크나 일부의 다중 컴퓨터가 있다.

하드웨어 자원들이 프로세스 작업에 대하여 강하게 결합되어 동작할 때 이를 병렬 처리라고 한다.

 

병렬 처리 시스템은 다시 다중 처리기와 다중 컴퓨터로 구분할 수 있는데 이들의 사이에는 중요한 차이점이 있다.

다중 컴퓨터는 자신만의 처리기, 기억장치, 입출력, 운영체제를 가진 여러 개의 컴퓨터로 구성되는 반면

다중 처리기 시스템은 오직 하나의 운영체제를 가지면서 기억장치 공간의 입출력 자원을 공유한다.

 

 

병렬 처리기의 종류

 

 파이프라인 처리기

파이프라인 처리기는 보통 컴퓨터의 처리기인 중앙처리장치 내에 있는 하드웨어 요소의 일부가 파이프라인 형태로 구성되어 있는 것을 의미하므로 엄밀한 의미에서 병렬 컴퓨터에 속하지는 않는다.

그러나 파이프라인 컴퓨터 내에는 처리기가 하나밖에 없지만 한 순간에 처리기 내에서 수행되고 있는 명령어가 하나 이상이므로 넓은 의미에서 병렬 컴퓨터에 속한다고 보아도 된다.

 

파이프라인 처리기는 프로그램 내에 내재하고 있는 시간적 병렬성을 활용하기 위해여 프로그램 수행에 필요한 작업을 시간적으로 중첩하여 수행시키는 처리기를 의미한다.

그러나 명령어 파이프라인에서 문제가 되는 것은 프로그램의 실행 순서를 벗어나게 하는 프로그램 제어 명령어와 인터럽트가 발생하는 경우다.

 

배열 처리기는 한 컴퓨터 내에 여러 개의 처리장치를 배열 형태로 가지고 있을 때 이를 배열 처리기라고 한다.

배열 내의 처리기들은 한 클록주기로 동기화되어 병렬 처리를 하는데, 동시에 같은 기능을 수행하도록 되어 있다.

 

다중 처리기는 시스템상의 여러 처리기에게 여러 개의 독립적인 작업을 각 각 배정하여 2개 이상의 처리기를 동시에 수행할 수 있도록 기능을 갖춘 컴퓨터 시스템을 말한다.

다중 처리기의 목표는 다음과 같다.

1. 한 작업을 여러 개의 나누어서 서로 다른 처리기에 할당한 다음 동시에 수행함으로써 실행시간을 줄인다.

2. 여러 작업을 동시에 처리하여 시스템의 전반적인 효율성을 향상한다.

3. 같은 기능의 처리기를 중복시킴으로써 에러 허용과 동시처리로 인한 수행 속도를 향상한다.

 

상호연결망 구조

 

병렬처리 시스템은 한 가지 문제를 풀기 위해서 여러 개의 처리 요소가 동작하기 때문에 각각의 처리 요소 사이에 통신할 수 있는 경로가 필요하다. 이와 같이 여러 개의 처리 요소를 가진 병렬 처리 시스템에서 처리 요소와 기억장치 사이를 연결하여 주는 네트워크를 상호 연결망이라고 한다.

 

노드는 네트워크의 상호연결에 대한 접합점이라고 할 수 있다. 노드라는 단어는 상호 연결되는 구성요소를 지칭하며, 처리기, 기억장치 모듈, 연결장치 등등이 될 수 있다.

 

네트워크는 일반적으로 회선교환 네트워크와 패킷 교환 네트워크의 두 종류로 구분할 수 있다. 시스템이 반복해서 특정한 경로 형태를 요구할 때는 회선교환 네트워크를 이용하는 것이 좋다.

회선교환 네트워크는 근원 노드에서 목적지 노드에 이르는 전 연결 경로를 확보하여 통신기간 중 계속 유지한다.

패킷 교환 네트워크에서는 근원지와 목적지 사이의 전 연결 경로가 확보될 필요가 없다. 전송은 패킷 단위로 이루어지며, 각 패킷은 자신의 전송에 필요한 연결만 확보하면서 네트워크 속을 전진한다. 패킷은 비트 정보의 모임이며 이는 메시지라고 불린다. 

 

정적 상호 연결망

 1. 성형 구조

 성형 구조는 허브라고 하는 특별히 할당된 노드와 연결되는 연결도 1의 노드로 구성된다.

 2. 완전 상호연결 구조

 완전상호연결 구조는 각 처리기와 각 기억장치 모듈 사이에 가능한 연결이 모두 존재하는 것이다. 연결도가 노드수에 따라서 증가하기 때문에 노드를 추가하는 비용은 무척 크다.

 3. 선형 구조 또는 링 구조

 선형 구조는 가장 단순한 구조로 모든 노드는 연결도를 가지고 있기 때문에 추가 비용은 고정된다 그러나 통신 시간은 노드 사이의 거리에 관계되고 결함 노드가 발생하였을 때는 그 결함 노드에 의해 분리되는 모든 노드 사이의 통신을 마비시킨다.

 링 구조는 양 끝이 연결되어 있는 선형 네트워크이다. 통신시간은 노드수에 비례하여 증가하기 때문에 많은 노드가 있는 시스템에서는 적합하지 않다.

4. 트리 구조

트리 구조에서는 각 지역 그룹에서의 프로세서들이 하나의 기억장치로 강 결합되어 있는 형태를 가진다.

5. 메시 구조 또는 토러스 구조

메시나 토러스 구조는 처리기 배열에 접합하다. 메시 구조는 노드들이 2차 원망의 교차점에 배치되어 있어 2개의 이상 노드가 상하좌우로 근접하여 있으면서 서로 연결된다. 이에 대한 변형으로 상하 끝과 좌우 끝을 연결해서 대칭성을 부여하여 평균 통신거리를 줄인 것이 토러스이다.

6. 하이퍼큐브 구조

 하이퍼큐브 구조는 기하학적으로는 N차원 공간에서 정의되는 큐브의 ${2^N}$개의 꼭짓점에 노드를 가진 구조라고 정의할 수 있다. 

 

동적 상호 연결망

1. 버스 구조

단일 버스 구조는 일반적으로 미니컴퓨터나 마이크로컴퓨터에 이용되는데, 사용되는 처리기의 수가 적을 때 좋은 성능을 발휘한다.

다중 버스 구조는 여러 개의 버스를 가지고 있는 구조로서, 여러 개의 장치가 다른 여러 개의 장치와 동시에 통신할 수 있다.

2. 다단계 네트워크

 다단계 네트워크는 근원지와 목적지 사이에 여러 개의 스위치 요소가 있는 상호 연결망으로 많은 연결이 필요하고 처리기의 수가 많을 때 이용된다.

반응형

'기타' 카테고리의 다른 글

쓰레드  (0) 2021.03.16
Web의 발전과 상식  (0) 2021.02.10
프로그래밍 언어의 기본 공통 개념  (0) 2020.10.26
조합회로와 순차회로  (0) 2020.10.26
부동소수점 실수 표현  (0) 2020.10.11

댓글