Henu
개발냥발
Henu
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • DevOps (52)
      • Kubernetes (19)
      • Docker (14)
      • AWS (3)
      • Nginx (4)
      • Linux (4)
      • ArgoCD (1)
      • CN (2)
      • NATS (0)
      • Git (5)
    • Back-End (30)
      • Django (18)
      • Spring (5)
      • JPA (1)
      • MSA (5)
    • CS (87)
      • SystemSoftware (20)
      • OS (25)
      • Computer Architecture (16)
      • Network (23)
      • Database (2)
    • Lang (21)
      • Java (9)
      • Python (4)
      • C# (8)
    • Life (12)
    • 블록체인 (2)
    • Algorithm (204)
      • BOJ (160)
      • 프로그래머스 (19)
      • LeetCode (4)
      • SWEA (1)
      • 알고리즘 문제 해결 전략 (8)
      • DS, algorithms (7)
      • Checkio (5)
    • IT (2)

블로그 메뉴

  • GitHub
  • 글쓰기
  • 관리자

공지사항

  • Free!

인기 글

태그

  • 백트래킹
  • Network
  • 다이나믹 프로그래밍
  • docker
  • BFS
  • boj
  • 프로그래머스
  • Kubernetes
  • DFS
  • django

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Henu

개발냥발

[컴퓨터 구조] 다중 프로세서 시스템 #2
CS/Computer Architecture

[컴퓨터 구조] 다중 프로세서 시스템 #2

2022. 1. 21. 04:08
 

[컴퓨터 구조] 다중 프로세서 시스템 #1

MIMD 조직의 다중프로세서 구조에 대해서 알아보자. MIMD의 밀결합 방식이란? 주기억장치가 어느 한 프로세서에 속하지 않고, 모든 프로세서들에 의해 공유되는 방식을 의미한다. 프로세서는 분

hyeo-noo.tistory.com

 

 

MIMD의 소결합 방식이란?

프로세서들이 기억장치를 공유하지 않고, 각 프로세서가 자신의 기억장치를 별도로 가지고 있는 방식이다.

 

소결합 방식을 사용하는 다중 프로세서 시스템을 분산-기억장치 시스템 구조라고 부르겠다.


분산-기억장치 시스템

분산-기억장치 시스템의 특징은 다음과 같다.

각 프로세서가 자신의 기억장치를 별도로 가지고 있기 때문에, 프로세서가 실행할 프로그램이 컴파일 단계에서부터 별도로 작성되어 각 프로세서의 기억장치로 적재된다.

그래서 프로세서들에 의해 공유되는 데이터들만 서로 교환된다.

 

이러한 특징 때문에 프로세서간 통신량은 공유-기억장치 시스템에 비해 크게 줄어든다.

하지만 프로세서간 통신은 일반적으로 메시지-패싱 방식으로 이루어지기 때문에

통신 횟수가 줄어든 반면, 하나의 통신 자체에 걸리는 시간이 증가한다.

이때 통신 채널은 캐비닛 내의 백 플레인(backplane)을 통하여 구성되기도 하고, 이더넷(Ethernet)과 같은 통신 네트워크를 이용하여 독립적인 컴퓨터 시스템을 접속한 분산 시스템으로 구성하는 경우도 있다.

 

 

백 플레인이란?

스위치, 라우터 등 다중 보드 형태의 장비에서 : 데이터 버스 구조를 형성하는 중심적인 전자회로 보드
컴퓨터(PC) 등 단일 보드 형태의 장치에서 : 메인보드/시스템 보드/주회로 기판 그 자체

이 시스템에서 사용하는 상호연결 구조를 알아보자

 

목차
  1. 선형 배열 구조
  2. 링 구조
  3. 트리 구조
  4. 매시 구조(Mesh)
  5. 하이퍼큐브 구조

선형 배열 구조

 

N개의 노드들이 N-1개의 링크들에 의해 차례대로 연결되며, 선형 배열이라고 부른다.

이 구조의 네트워크 지름(노드 간의 거리 중 최대 거리)은 N-1로서 다른 구조들에 비하여 평균 통신 시간이 매우 길다.

 

각 링크에서 동시에 전송 동작이 일어날 수 있기 때문에 버스 구조보다 동시성은 높다.

하지만 통신에 소요되는 시간이 노드간의 거리에 따라 서로 다르고, 노드의 수가 많아지면 통신 시간은 그에 비례하여 길어진다.

 


링 구조

 

선형 구조에서 0번 노드와 N번 노드를 이어주면 위와 같은 링 구조가 된다.

이 구조의 네트워크 지름은 각 링크가 양방향성이면 N/2이 되고, 단 방향성이라면 선형과 똑같이 N-1이 된다.

 

 

코달 링(d=3)                                      코달 링(d=4)

링 구조에서 링크의 수를 추가시키면 위와 같은 새로운 구조를 구성할 수 있다.

변형된 구조를 코달 링 구조라고 하며, 링크의 수가 증가될수록 네트워크 지름은 감소한다.

 


트리 구조

위 그림은 5층짜리 2진 트리 구조이다. 2^5-1개의 노드를 가질 수 있다.

 

노드의 수가 증가함에 따라 성능이 선형적으로 향상되는 구조이다.

하지만 네트워크 지름은 비교적 큰 편이다.

 

 

2진 트리 구조가 위와 같은 팻 트리 구조로 변형될 수 있다.

이 구조는 상위 계층으로 올라갈수록 연결된 통신 채널이 많아진다는 특징을 가진다. 

따라서 트리의 상위 계층일수록 통신의 병목이 발생할 가능성이 높은데 이를 해결할 수 있다.

 

이 구조는 1995년 '씽킹 머신' 사 에서 개발한 CM-5 슈퍼컴퓨터의 구조로 사용되었다.


매시 구조

매시 네트워크

노드들을 2차원 배열로 연결하여 각 노드가 4개의 주변 노드들과 직접 연결되는 구조이다.

위 그림은 4 X 4 매시 네트워크의 기본 구조이다.

실제로 사용할 때는 주로 위 구조에서 약간의 링크를 추가해서 쓰인다.

 

 

토러스 네트워크

매시 구조와 링 구조가 결합된 구조이다.

시스템 확장이 용이하다.

네트워크 지름은 k X k 구조인 경우 2(k/2)로 비교적 짧은 편이다.

 

매시 및 토러스 구조는 3차원 이상의 입체형 네트워크로 확장될 수 있다.

그 경우에 전체 노드의 수는 K^n으로 표현할 수 있다.

-> K는 프로세서의 수, n은 차원의 수

 


하이퍼큐브

k=2인 n차원 네트워크를 의미한다.

이 네트워크는 2 X 2 노드 구조들을 3차원 혹은 그 이상으로 접속하여 구성할 수 있다.

 

 

4차원 하이퍼큐브 구조는 어떻게 만들까?

 

4차원을 우리가 상상할 수는 없다. 1차원인 점을 늘려서 2차원, 2차원인 선을 늘려서 3차원, 3차원인 공간(육면체)을 늘려서 3차원의 공간을 수학적으로 그려볼 수 있다.

 

3차원에서 4차원으로 가는 움직임을 보여준다.

 

위 그림을 보면 바로 이해가 될 것이다.

3차원 하이퍼큐브에 있던 총 8개의 노드가 그대로 이동하여 반대편으로 복사됨을 볼 수 있다.

 

 

 

따라서 4차원 하이퍼 큐브는 위 그림처럼 생기게 됨을 이해할 수 있다.

이제 4차원에서 각 노드가 상대 노드를 찾는 과정을 알아보자.

 

시작노드

a3 a2 a1 a0
0 1 1 0

도착노드

b3 b2 b1 b0
1 1 0 1

 

0110 -> 1101 노드로 가는 과정은 다음과 같다.

 

  1. 0110과 1101을 XOR연산을 수행한다.
    수행을 하면 아래와 같은 새로운 비트를 얻을 수 있다.

    c3 c2 c1 c0
    1 0 1 1
  2. c0부터 c3비트 순으로 확인한다.
    1. c0 == 1이면 x방향으로 이동한다.
    2. c1 == 1이면 y방향으로 이동한다.
    3. c2 == 1이면 z방향으로 이동한다.
      하지만 c2 == 0이므로 z 방향으로의 이동은 없다.
    4. c4 == 1이면 4차원 방향으로 이동한다.

 

 

'CS > Computer Architecture' 카테고리의 다른 글

[컴퓨터 구조] 다중 프로세서 시스템 #1  (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
    'CS/Computer Architecture' 카테고리의 다른 글
    • [컴퓨터 구조] 다중 프로세서 시스템 #1
    • [컴퓨터 구조] 인터럽트와 DMA를 이용한 I/O
    • [컴퓨터 구조] 캐시 메모리
    • [컴퓨터 구조] 기억장치 모듈 설계

    티스토리툴바