출처: https://velog.io/@front/패캠-컴퓨터-구조-47강-55강-정리, https://amy-ming.tistory.com/151,
(출처는 위 링크! 형광펜은 개인적으로 공부하면서 체크한 부분입니다)
병렬로 처리한다, 즉 이전 작업을 반드시 끝내지 않아도 다음 작업을 시작할 수 있는 시스템
컴퓨터에서는 여러 개의 프로세서들이 여러 프로세스 혹은 한 프로세스의 분할된 부분을 분담해 동시에 처리하는 기술을 의미함
병렬운영체제, 컴파일러, 메모리 공유 등 관련 소프트웨어 및 여러 기술들이 발전함에 따라, 직렬처리 시스템 구조에서 병렬처리 시스템 구조로 그 양상이 변화하게 됨
병렬처리 시스템은 크게 다중장치 구조, 파이프라인 구조로 분류
다중장치구조
: 공간을 병렬화하는 방식으로, 다수의 CPU로 여러개의 작업을 병렬로 처리할 수 있는 시스템
파이프라인구조
: 시간을 병렬화하는 방식으로, 하나의 CPU에서 작업을 계층적으로 구분(segment)하여 병렬로 처리할 수 있는 시스템
멀티프로세서는 위 병렬처리 시스템 중 2개 이상의 CPU를 갖는 시스템(= 다중 장치 구조)으로, MIMD의 흐름을 가지고 있음
멀티컴퓨터와는 별개의 개념으로, 하나의 운영체제에 의해 프로세서들의 상호동작이 제어되고 이슈 발생 시 프로세서간 cowork를 통해 문제를 해결
즉 다수의 독립적인 작업들이 병렬적으로 처리되며, 이러한 작업들은 여러 부분으로 나뉘게 됨
멀티프로세서는 사용자가 작업명령(=API, 프로그램 언어)을 명시적으로 기재해주거나, 컴파일러가 자동적으로 프로그램 병렬성을 감지하여 처리를 함
멀티프로세서는 연관성 있는 작업을 처리하기 위해 공유메모리 및 밀착결합 멀티프로세서 구조를 활용하며, 연관성이 크지 않은 작업을 처리할 경우엔 분산메모리 및 loosely coupled 구조를 활용함(Round Robin처럼 Rotational 처리).
단일 공통 버스 시스템이라고도 하며, 여러 CPU가 1개의 공통버스라인(common bus line)을 통해 1개의 공유메모리에 접근하는 구조
동일 시점에서 하나의 프로세서만이 전송을 수행하며, 충돌가능성이 있을 경우 버스 제어기에 의해 해결이 가능
단일경로 속도가 시스템 성능에 많은 영향을 주는 구조
CPU, I/O Processor, 메모리 모듈 등 각 처리 주체들이 독립적인 Bus line을 따로 가지고 있는 시스템
Memory에 접근하는 입구, 즉 포트가 여러 개 존재하여 다중 포트 메모리라고 명명함
각 모듈은 특정 시점에 어떤 포트가 메모리에 접근할 지 결정하기 위한 내부적인 논리회로를 보유하고 있으며, 보통은 메모리와 가까운 곳에 위치한 순서대로 포트를 지정
프로세서와 메모리 사이의 높은 전송률을 보이지만, 메모리 제어 논리회로 등으로 가격이 비싸다는 단점이 있음
다중 포트 메모리 구조가 각 처리주체(CPU 등)별 독립적인 Bus line이 따로 존재하였다면, 크로스바 스위치는 프로세서와 메모리 간의 완전 연결성이 구현된 구조
프로세서의 Bus line에서 메모리 모듈과의 교차점이 존재하며, 이 교차점을 크로스 포인트로 구성하여 모든 프로세서와 메모리간 경로가 이어질 수 있도록 구성
이때 크로스포인트는 경로 역할도 하면서, 주어진 순위에 따른 중재 역할을 수행하기도 함
하드웨어 구성이 그만큼 복잡해져 구현이 상당히 어려운 단점이 있음
이 밖에도 다단 교환망, 하이퍼큐브 상호 연결 등이 있음