MIMD 조직의 다중프로세서 구조에 대해서 알아보자.
MIMD의 밀결합 방식이란?
주기억장치가 어느 한 프로세서에 속하지 않고, 모든 프로세서들에 의해 공유되는 방식을 의미한다.
프로세서는 분산되어있지만 기억장치를 공유하기 때문에 각각의 프로세서가 기억장치라는 매개체를 통해서 밀접하게 연관되어 있다는 뜻의 밀결합 방식이라고 생각된다.
밀결합 방식을 사용하는 다중 프로세서 시스템을 공유-기억장치 시스템 구조라고 부르겠다.
공유-기억장치 시스템
이 시스템의 장점은 다음과 같다.
- 프로세서들이 공통으로 사용하는 데이터들이 공유 기억장치에 저장되므로, 별도의 프로세서 간 통신 메커니즘이 필요하지 않다.
- 프로그램 실행시간 동안에 각 프로세서들이 처리할 작업들을 동적으로 균등하게 할당할 수 있기 때문에, 프로세서 이용률을 극대화할 수 있어서 시스템 효율이 높아진다.
단점은 다음과 같다.
- 프로세서들과 기억장치들 간의 통로(버스 또는 상호연결망) 상에 통신량이 많아지기 때문에 경합으로 인한 지연 시간이 길어질 수 있다.
- 두 개 이상의 프로세서들이 공유자원(기억장치 모듈 또는 I/O 장치)을 동시에 사용하려는 경우에는 한 개 이외의 프로세서들은 기다려야 한다.
시스템 버스에서의 경합(1)과 자원 요청의 동시성 문제(2) 때문에 프로세서 수가 증가하더라도 성능 향상이 선형적으로 이루어지지 못한다. 이러한 단점을 보완하기 위해서 대표적으로 고속 상호 연결망과 캐시를 사용할 수 있다.
지금까지 공유-기억장치 시스템 구조의 기본적인 특징에 대해서 알아봤다.
이제 이러한 구조에서 사용하는 상호연결 구조에 대해서 알아보자
목차
- 버스(bus)
- 크로스바 스위치(crossbar switch)
- 다단계 상호연결망(Multistage Interconnection Network: MIN)
버스(BUS)
1. 단일 버스 구조
버스 구조는 가장 간단한 연결 방식으로서 위 그림과 같이 모든 시스템 요소들이 하나의 시스템 버스에 접속된다.
이 구조는 하드웨어가 매우 간단하다는 장점이 있다.
하지만 모든 요소들 간의 통신이 하나의 버스를 통하여 이루어지기 때문에 버스 경합이 높아져서 지연 시간이 길어지는 것이 가장 큰 단점이다.
이러한 단점을 줄이기 위해 버스의 전송 속도를 높이거나 위 그림처럼 각각의 프로세서가 캐시를 가지도록 하는 방법을 사용한다.
2. 계층적-버스 구조
위 그림은 단일 시스템 버스에서의 경합을 줄이기 위해서, 각 프로세서가 자신의 지역 기억장치 및 I/O 프로세서(IOP)와 연결되는 지역 버스를 가지고 있다. 그리고 공유 기억장치를 사용할 때만 시스템 버스를 사용하는 계층적-버스 구조를 보여준다.
이러한 시스템에서는 각 프로세서가 실행할 프로그램 코드와 그에 필요한 데이터는 지역 기억장치에 저장하고, 모든 프로세서들이 공통으로 사용하는 프로그램과 데이터만 시스템 버스를 통해 공유 기억장치에 저장된다.
프로세서(Processor) 와 프로세스(Process)의 차이 (간단 ver)
프로세서는 프로그램을 수행하는 하드웨어의 단위이다. 주로 CPU 같은 하드웨어를 의미한다.
프로세스는 프로세서가 수행하는 프로그램을 의미한다. 프로그램은 CPU가 기억장치에서 가져온 순서가 있는 코드들의 집합이다. 따라서 프로세스는 특정한 목적을 수행하기 위한 절차들의 집합이라고 볼 수 있다.
크로스바 스위치
프로세서의 수가 많은 시스템에서는 버스 병목 현상을 줄이기 위해서 높은 연결성을 제공하는 상호연결망 구조가 사용된다. 한 예로서 크로스바 스위치의 구조는 위 그림과 같다.
이 구조에서 각 프로세서가 서로 다른 기억장치 모듈을 엑세스하는 경우에는 최대 N개의 기억장치 액세스들이 동시에 수행될 수 있다.
하지만 만약 두 개 이상의 프로세서들이 동일한 기억장치 모듈에 액세스하려고 한다면 충돌이 발생하게 되며, 이런 경우에는 `중재`를 받아서 순서대로 액세스해야 한다.
크로스바 스위치 구조는 기억장치들 사이에 완전 연결성을 제공해 준다는 장점을 가진다.
하지만 비용이 많이 들고, 하드웨어가 복잡해지는 단점이 있다. 즉, 프로세서의 수가 N개이면 N^2개의 크로스바 스위치들이 필요하고, 연결선들도 그만큼 많이 필요하다.
다단계 상호연결망
1. 오메가 네트워크
크로스바 스위치의 기본 개념을 이용하면서도 하드웨어 복잡성을 줄여준다.
위 구조에서 입력단을 프로세서, 출력단을 기억장치 모듈이라고 생각할 수 있다.
그림에서는 (1번 노드) -> (7번 노드)의 연결을 보여준다. 이처럼 모든 프로세서에서 기억장치로의 접속이 가능해진다.
크로스바 스위치를 그대로 사용했다면 8^2개의 스위칭 소자가 필요했지만, 오메가 네트워크 구조에서는 단 12개만 필요하다.
프로세서와 기억장치 모듈이 각각 N개인 경우에 필요한 단계의 수 : log_2 (N)
각 단계의 스위칭 소자의 개수 : N/2
각 스위칭 소자는 4가지의 연결 모드를 가진다.
- 직진 : 같은 위치의 이출력 단자들이 서로 접속되는 모드
- 교차 : 서로 다른 위치의 입출력 단자들이 접속되는 모드
- 하위 방송 : 하단의 입력 단자가 모든 출력 단자들로 접속되는 모드
- 상위 방송 : 상단의 입력 단자가 모든 출력 단자들로 접속되는 모드
위 그림은 모든 연결이 서로 충돌을 일으키지 않고 최대 8개의 프로세서-기억소자 간의 연결을 이룬 상태를 볼 수 있다.
'CS > Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 다중 프로세서 시스템 #2 (0) | 2022.01.21 |
---|---|
[컴퓨터 구조] 인터럽트와 DMA를 이용한 I/O (0) | 2022.01.13 |
[컴퓨터 구조] 캐시 메모리 (0) | 2022.01.06 |
[컴퓨터 구조] 기억장치 모듈 설계 (0) | 2022.01.05 |
[컴퓨터 구조] RAM & ROM (0) | 2021.12.30 |