병렬처리 : 다수의 프로세서들을 이용하여 여러 프로그램들을 분담하여 동시에 처리하는 기술
병렬처리를 구현하기 위한 조건
• 많은 수의 프로세서들로 하나의 시스템을 구성할 수 있도록, 작고 저렴하며 고속인 프로세서들의 사용이 가능해야 함
• 한 프로그램을 여러 개의 작은 부분들로 분할하는 것이 가능해야 하며, 분할된 부분들을 병렬로 처리한 결과가 전체 프로그램을 순차적으로 처리한 경우와 동일한 결과를 얻을 수 있어야 함
두 번째 조건을 만족시키기 위해서는 다음과 같은 문제들을 해결해야 함
• 문제 분할
• 프로세서간 통신
문제 분할 : 병렬처리를 위하여 하나의 문제를 여러 개로 나누는 작업
프로세서간 통신 : 프로세서들이 서로 필요한 데이터를 교환하기 위한 통신
• 작업-단위 병렬성 : 독립적인 작업 프로그램 단위로 병렬처리 ex) 성적관리 프로그램, 실험 데이터 처리 프로그램
• 태스크-단위 병렬성 : 하나의 큰 작업 을 기능에 따라 분할한 작은 프로그램 단위로 병렬 처리 ex) 로봇 제어 프로그램 -> 두뇌, 팔과 다리들의 동작을 제어하는 다수의 태스크들로 분할한 후, 병렬 처리
-> 프로세서들간의 교환 필요
• 스레드-단위 병렬성 : 동시에 처리될 수 있는 가장 작은 크기의 독립적인 단위 프로그램인 스레드 단위의 병렬처리
• 명령어-단위 병렬성 : 데이터 의존성이 존재하지 않는 여러 개의 명령어들을 동시에 수행하는 병렬처리
명령어 : 실행되기 위하여 순서대로 프로세서로 들어오는 명령어 코드들의 흐름
데이터 스트림 : 명령어 실행에 사용되기 위하여 순서대로 프로세서로 들어오는 데이터들의 흐름
Flynn의 분류
• 단일 명령어 스트림 - 단일 데이터 스트림(SISD) 조직
• 단일 명령어 스트림 - 복수 데이터 스트림(SIMD) 조직
• 복수 명령어 스트림 - 단일 데이터 스트림(MISD) 조직
• 복수 명령어 스트림 - 복수 데이터 스트림(MIMD) 조직
SISD 조직 : 이 조직은 그림 (a)에서 보는 바와 같이 한 번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일프로세서시스템에 해당됨. 이러한 시스템에서는 명령어가 한 개씩 순서대로 실행되지만, 실행 과정은 파이프라이닝 되어 있음.
SIMD 조직 : 이 분류의 시스템은 배열 프로세서라고도 부르는데, 구성도는 그림 (b)와 같은. 이러한 시스템은 여러 개의 프로세싱 유니트들로 구성되고, PU들의 동작은 모두 하나으 ㅣ제어 유니트에 의해 통제됨. 제어 유니트는 명령어를 해독하고, 그 실행을 위한 제어 신호를 모든 PU들로 동시에 보냄. 그에 따라 PU들은 동일한 연산을 수행하게 되지만, 각 연산에서 처리하는 데이터는 서로 다름. 결과적으로 모든 PU들은 하나의 명령어 스트림을 실행하지만, 여러 개의 데이터 스트림들을 동시에 처리하게 되는 것임. 이 조직은 고속 계산을 전담하는 보조프로세서 역할을 수행하던 과거의 슈퍼컴퓨터에서 많이 사용되었으며, 최근에는 CPU 내부에서 하나의 명령어에 의해 여러 개의 데이터들을 동시에 처리하는 SIMD 확장 명령어들로도 구현되고 있음.
배열 프로세서 : 다수의 PU들을 이용하여 여러 개의 데이터들에 대한 연산을 동시에 처리하는 프로세서
MISD 조직 : 이 조직의 개념은 (c)와 같음. 즉, 한 시스템 내에 N개의 프로세서들이 있고, 각 프로세서들은 서로 다른 명령어들을 실행하지만, 처리하는 데이터들은 하나의 스트림임. 다시 표현하면, 프로세서들이 배열 형태로 연결되고, 한 프로세서가 처리한 결과가 다음 프로세서로 보내져 다른 연산이 수행되는 방식임. 그러나 이 조직은 실제 구현된 경우가 거의 없으며, 분류상으로 존재할 뿐임.
MIMD 조직 : 대부분의 다중프로세서시스템들과 다중컴퓨터시스템들이 이 분류에 속함(그림 (d)). 이 조직에서는 N개의 프로세서들이 서로 다른 명령어들과 데이터들을 처리함. MIMD 시스템은 프로세서들 간의 상호작용 정도에 따라 두 가지로 나누어지는데, 그 정도가 높은 구조를 밀결합 시스템이라고 부르며, 그 정도가 낮은 구조를 소결합 시스템이라 함. 밀결합 시스템의 전형적인 구조는 기억장치가 모든 프로세서들에 의해 공통으로 사용되는 공유-기억장치 구조임. 다중컴퓨터 시스템이라고도 불리는 소결합 시스템은 각 프로세서들이 자신의 지역 기억장치를 가진 독립적인 컴퓨터 모듈로 구성되고, 프로세서들 간의 통신은 메시지 전송 방식에 의해 이루어지는 구조를 가지고 있음.
• 균일 기억장치 액세스(UMA) 모델
• 불균일 기억장치 액세스(NUMA) 모델
• 무-원격 기억장치 액세스(NORMA) 모델
UMA 모델
■ 모든 프로세서들이 상호연결망에 의해 접속된 주기억장치를 공유
■ 프로세서들은 주기억장치의 어느 영역이든 액세스할 수 있으며, 그에 걸리는 시간이 동일
장점 : 하드웨어가 간단하고, 프로그래밍이 용이
단점 : 공유 자원에 대한 경합이 높아지기 때문에 시스템 크기에 한계가 있음
NUMA 모델
■ UMA 모델의 한계를 극복하고 더 큰 규모의 시스템을 구성하기 위한 모델
■ 다수의 UMA 모델들이 상호연결망에 의해 접속
■ 분산 공유-기억장치 구조
■ 기억장치 액세스 시간은 기억장치의 위치에 따라 달라짐
프로세서에 의한 기억장치 액세스들은 세 가지 패턴으로 분류됨
• 지역 기억장치 액세스 : 자신이 속한 UMA 모듈 내의 기억장치에 대한 액세스로서, 가장 짧은 시간이 소요됨
• 전역 기억장치 액세스 : 프로세서가 원하는 데이터가 전역 공유-기억장치에 있는 경우에 이루어지는 액세스
• 원격 기억장치 액세스 : 다른 UMA 모듈에 위치한 기억장치로부터 데이터를 액세스하는 경우로서, 가장 긴 시간이 소요됨
NORMA 모델
■ 프로세서가 원격 기억장치는 직접 액세스할 수 없는 시스템 구조
■ 프로세서들과 기억장치들은 메시지-전송을 지원하는 상호연결망으로 접속
■ 분산-기억장치 시스템으로도 부름
■ 주요 상호연결망: 매시, 하이퍼큐브, 링, 토러스 등
• 대칭적 다중프로세서(SMP)
• 대규모 병렬프로세서(MPP)
• 캐시-일관성(CC-NUMA) 시스템
• 분산 시스템
• 클러스터 컴퓨터
SMP : 프로세서들이 모든 시스템 자원들을 공유하며 동등한 권한을 가지는 시스템 구조
특징
• 능력이 비슷한 프로세서들로 구성
• 프로세서들은 주기억장치와 I/O 장치들을 공유하고, 버스 혹은 간단한 연결 방식에 의해 상호연결
• 모든 프로세서들은 동등한 권한을 가지며, 같은 수준의 기능들을 수행할 수 있음
• 프로세서들 간의 통신은 공유-기억장치를 통하여 이루어짐
• 작업 스케줄링 및 파일/데이터 수준에서의 프로그램들 간 상호 작용은 하나의 OS에 의해 통합적으로 지원
• 상호연결망의 병목 현상으로 인하여 시스템 규모에 한계가 있음
그림은 하나의 시스템 버스에 모든 자원들이 접속된 공유-기억장치 다중프로세서시스템의 개념적인 구성도를 보여주고 있음.
MPP : 프로세서와 기억장치로 이루어지는 많은 수의 노드들로 구성되며 자원 공유가 없는 시스템 구조 -> NORMA 모델과 유사
CC-NUMA : 노드들에 포함된 모든 캐시들과 기억장치들 간에 데이터 일관성이 유지되는 분산-기억장치시스템 구조
그림은 독립적인 노드들이 상호연결망에 의해 접속된 전형적인 CC-NUMA 조직을 보여주고 있음. 이 경우에는 각 노드가 사실상 하나의 SMP에 해당함. 즉, 각 노드는 주기억장치를 공유하는 여러 개의 프로세서들을 포함하고 있으며, 각 프로세서는 캐시를 가지고 있음. 시스템 전체적으로 보면 각 노드가 별도의 기억장치를 가지고 있지만, 프로세서의 관점에서 보면 시스템 내 모든 기억장치들이 직접 액세스할 수 있는 하나의 거대한 기억장치임. 따라서 각 기억 장소는 시스템 전체적으로 유일한 주소를 가지고 있음.
프로세서가 어떤 데이터를 액세스 할 때, 만약 원하는 데이터가 그 프로세서의 캐시에 있지 않다면, 주기억장치 액세스 동작이 시작됨. 만약 그 데이터를 포함하는 블록이 그 노드 내의 기억장치에 있다면, 그 블록은 지역 버스를 통하여 즉시 인출됨. 그러나 만약 그 블록이 다른 노드의 기억장치에 저장되어 있다면, 그 블록을 인출하기 위한 요구가 자동적으로 상호연결망을 통해 해당 노드로 보내져서 인출 동작이 진행됨. 이러한 모든 동작들은 하드웨어에 의해 자동적으로 발생하며, 프로세서에게는 보이지 않음. 이와 같은 시스템에서 데이터 일관성은 디렉토리를 이용하여 유지됨.
디렉토리 : 캐시에 적재된 주기억장치 블록들에 대한 상태 정보 및 포인터를 포함하는 데이터 구조
CC-NUMA의 주요 장점은 소프트웨어를 거의 변경하지 않고도 SMP 수준의 병렬성을 이용할 수 있는 대규모 병렬컴퓨터시스템을 구성할 수 있다는 점임. 그러나 만약 기억장치 액세스의 많은 부분이 원격 노드에 대한 것이라면, 성능은 떨어질 것임. 그러한 성능 저하는 캐시를 사용함으로써 어느 정도 방지될 수 있음. 그리고 프로그램 코드와 데이터들의 지역성이 높다면, 원격 기억장치 액세스의 빈도는 낮아지게 됨.
분산시스템 : 독립적인 컴퓨터시스템들이 전통적인 네트워크에 의해 연결되어 있는 컴퓨팅 환경
■ 노드 수만큼의 시스템 이미지들을 가짐
■ 각 노드는 별도의 OS를 가지고 독립적인 컴퓨터로서 기능을 수행하며, 다른 노드들과 정보를 교환하거나 병렬처리를 수행할 때만 네트워크를 통하여 서로 통신함
■ 노드는 PC, 워크스테이션, SMP, MPP 혹은 그들의 조합을 이루어짐
클러스터 컴퓨터 : 고속 네트워크로 접속된 컴퓨터들의 집합체로서 단일 시스템 이미지(SSI)를 가짐
MIMD 조직으로서, 여러 개의 프로세서들이 비동기적으로 프로그램을 실행하는 시스템
기억장치 모듈을 사용하는 방식에 따른 분류
• 공유-기억장치 시스템
• 분산-기억장치 시스템
밀결합 구조로서, 주기억장치가 어느 한 프로세서에 속하지 않고 모든 프로레서들에 의해 공유. 각 프로세서는 특수 프로그램을 저장하고 있는 적은 용량의 지역 기억장치를 별도로 가질 수는 있으나, 운영체제와 사용자 프로그램 및 데이터들은 모두 공유 기억장치에 저장됨.
장점
■ 모든 프로세서들이 공통으로 사용하는 데이터들이 공유 기억장치에 저장되므로, 별도의 프로세서 간 통신 메커니즘이 필요하지 않음
■ 프로그램 실행시간 동안에 각 프로세서들이 처리할 작업들을 동적으로 균등하게 할당할 수 있기 때문에, 프로세서 이용률을 극대화할 수 있어서 시스템 효율이 높아짐
단점
■ 프로세서들과 기억장치들 간의 통로 상에 통신량이 많아지기 때문에 경합으로 인한 지연 시간이 길어질 수 있음
■ 두 개 이상의 프로세서들이 공유자원을 동시에 사용하려는 경우에는 한 개 이외의 프로세서들은 기다려야 함
-> 이 구조를 가진 시스템에서는 프로세서 수가 증가하더라도 성능 향상이 선형적으로 이루어지지 못하게 됨. 이러한 단점을 보완하기 위하여 여러 가지 방법들이 사용되고 있는데, 대표적인 것으로는 고속 상호연결망과 캐시의 사용을 들 수 있음.
상호연결 구조
• 버스
• 크로스바 스위치
• 다단계 상호연결망(MIN)
버스
버스 구조는 가장 간단한 연결 방식으로서, 모든 시스템 요소들이 하나의 시스템 버스에 접속됨. 이 구조는 하드웨어가 매우 간단하다는 장점이 있으나, 모든 요소들 간의 통신이 하나의 버스를 통하여 이루어지기 때문에 버스 경합이 높아져서 지연 시간이 길어지는 것이 가장 큰 단점임. 이에 따른 성능 저하를 보완하기 위하여 버스의 전송 속도를 높이거나, 아래의 그림과 같이 각 프로세서가 캐시를 가지도록 하는 방법이 사용되고 있음. 현재 공유-버스 구조는 프로세서의 수가 20개 정도인 중형급 컴퓨터시스템에서 주로 채택되고 있음.
버스 경합을 줄이기 위하여 버스의 수를 증가시킨 다중-버스 구조도 사용될 수 있음. 아래의 그림은 그러한 구조의 한 예로서, 각 프로세서가 자신의 지역 기억장치 및 I/O 프로세서와 연결되는 지역 버스를 가지고 있고, 공유 기억장치를 사용할 때만 시스템 버스를 사용하는 계층적-버스를 보여주고 있음. 이러한 시스템에서는 각 프로세서가 실행할 프로그램 코드와 그에 필요한 데이터는 지역 기억장치에 저장하고, 모든 프로세서들이 공통으로 사용하는 프로그램과 데이터만 공유 기억장치에 저장하게 됨.
프로세서의 수가 많은 시스템에서는 버스 병목 현상을 줄이기 위하여 높은 연결성을 제공하는 상호연결망 구조가 사용됨. 한 예로서 크로스바 스위치의 구조는 아래의 그림과 같음. 이 시스템 구조에서 각 프로세서가 서로 다른 기억장치 모듈을 액세스하는 경우에는 최대 N 개의 기억장치 액세스들이 동시에 수행될 수 있음. 그러나 만약 두 개 혹은 그 이상의 프로세서들이 동일한 기억장치 모듈을 동시에 액세스하고자 할 때는 충돌이 발생하게 되며, 이런 경우에는 중재를 받아서 순서대로 액세스해야 함.
이 구조는 프로세서들과 기억장치들 사이에 완전 연결성을 제공해 주지만, 비용이 많이 들고 하드웨어가 복잡해지는 단점이 있음. 즉, 프로세서의 수가 N 개이면, N의 제곱개의 크로스바 스위치들이 필요하고 연결선들도 그만큼 많이 필요하게 됨.
크로스바 스위치의 기본 개념을 이용하면서도 하드웨어 복잡성을 줄여주는 다단계 상호연결망도 여러 가지 유형들이 제안되어 있음. 여기서는 한 예로서, 오메가 네트워크를 분석해보면, 아래의 그림은 8개의 근원지 노드들과 8개의 목적지 노드들이 오메가 네트워크에 의해 연결되어 있는 구조를 보여주고 있음.
MIN 구조에서 입력단과 출력단이 각각 N개인 경우에 필요한 단계의 수(s)와 각 단계의 스위칭 소자들의 수(m)를 구하는 일반식은 다음과 같음.
따라서 8 x 8 시스템은 세 개의 단계들로 구성되며, 각 단계는 네 개씩의 스위칭 소자들로 이루어짐.
각 스위칭 소자는 두 개의 입력단과 두 개의 출력단을 가지는 논리 회로로 구성되며, 각 입력과 출력을 연결해주는 연결 모드에는 다음과 같은 네 가지가 있음.
• 직진 : 같은 위치의 입출력 단자들이 서로 접속되는 모드
• 교차 : 서로 다른 위치의 입출력 단자들이 접속되는 모드
• 하위 방송 : 하단의 입력 단자가 모든 출력단자들로 접속되는 모드
• 상위 방송 : 상단의 입력 단자가 모든 출력단자들로 접속되는 모드
그림에는 1번 노드와 7번 노드가 스위칭 소자들의 직진 혹은 교차 접속을 통하여 서로 연결된 예를 보여주고 있음. 이와 같은 연결이 서로 충돌되지 않는다면, 최대 8개의 근원지-목적지 노드들 간의 동시 연결도 가능해짐.
소결합 형태의 분삭-기억장치 시스템에서는 프로세서들이 기억장치를 공유하지 않고, 각 프로세서가 자신의 기억장치를 별도로 가지고 있음. 이와 같은 시스템에서는 각 프로세서가 실행할 프로그램이 컴파일 단계에서부터 별도로 작성되어 각 프로세서의 실행할 프로그램이 컴파일 단계에서부터 별도로 작성되어 각 프로세서의 기억장치로 적재되며, 프로세서들에 의해 공유되는 데이터들만 서로 교환됨. 따라서 프로세서간 통신량은 공유-기억장치 시스템에 비하여 크게 줄어듦. 그러나 프로세서간 통신은 일반적으로 메시지-패싱 방식으로 이루어지기 때문에 통신 시간이 증가함. 통신 채널은 캐비닛 내의 백 프레인을 통하여 구성되기도 하고, 이더넷과 같은 통신 네트워크를 이용하여 독립적인 컴퓨터시스템들을 접속한 분산 시스템으로 구성하는 경우도 있음.
1) 선형 배열 구조
이 연결 구조는 그림과 같이, N개의 노드들이 (N-1)개의 링크들에 의하여 차례대로 연결되며, 선형 배열이라고 부름. 이 구조의 네트워크 지름은 (N-1)로서 다른 구조들에 비하여 평균 통신 시간이 매우 김. 여기서 네트워크 지름이란 네트워크 내에서 가장 멀리 떨어져 있는 노드들 간의 거리를 말함. 이 구조에서 가장 멀리 떨어진 노드들은 배열의 양쪽 끝에 위치한 것들이며, 그들 간의 통신은 (N-1)개의 링크들을 통해야 이루어질 수 있음.
선형 배열 구조는 연결 토폴로지가 간단함. 또한, 이 구조에서는 각 링크에서 동시에 전송 동작이 일어날 수 있으므로, 버스 구조보다 동시성이 더 높다는 장점이 있음. 그러나 통신에 소요되는 시간이 노드들 간의 거리에 따라 서로 다르며, 노드의 수가 많아지면 통신 시간이 그에 비례하여 길어진다는 단점을 가지고 있음.
2) 링 구조
앞에서 설명한 그림의 선형 배열 구조에서 0번 노드와 (N-1)번 노드를 서로 연결해주는 링크를 하나 추가하면, 그림 (a)와 같은 링 구조가 됨.
이 구조의 네트워크 지름은 각 링크가 양방향성이라면 [N/2]이 되고, 단방향성이라면 (N-1)이 됨.
링 구조에서 링크의 수를 추가시킴으로써 그림 (b) 및 (c)와 같은 새로운 구조를 구성할 수 있음. 이러한 변형된 구조를 코달 링 구조라고 부르며, 링크의 수가 증가될수록 네트워크 지름은 감소됨. 그림에서 d는 각 노드가 가지는 링크의 수를 의미함.
3) 트리 구조
그림은 31개의 노드들이 다섯 층의 2진 트리 구조로 연결된 모습을 보여주고 있음. 이러한 트리 구조가 완전히 안정된 모습을 가지기 위해서는 층의 수를 k 라고 할 때 N = (2의 k승 - 1)개의 노드들이 필요함. 이 구조의 네트워크 지름은 2(k-1)임. 이 구조는 시스템 요소들의 수가 증가함에 따라 성능이 선형적으로 향상되는 구조로 알려져 있으나, 네트워크 지름은 비교적 큰 편임.
이와 같은 2진 트리 구조는 그림과 같은 팻 트리 구조로 변형될 수 있음. 이 변형된 구조는 상위 층으로 올라갈수록 노드간의 통신 채널 수가 증가하는 특징을 가지고 있음. 따라서 이 구조는 트리 구조에서 상위 층으로 올라갈수록 통신량이 많아져서 채널이 병목이 되는 문제점을 해결할 수 있으며, Thinking Machine사가 개발한 슈퍼컴퓨터인 CM-5시스템에서 실제 사용됨.
4) 매시 구조
노드들을 2차원 배열로 연결하여 각 노드가 네 개의 주변 노드들과 직접 연결되는 구조를 매시 네트워크라고 부름.
그림은 4 x 4 매시 네트워크의 기본 구조를 보여주고 있음. 이 구조는 Illiac IV, MPP, DAP, CM-2 및 Intel Paragon같은 병렬컴퓨터들에서 실제로 사용되는데, 이 시스템들에서는 연결성을 높이기 위하여 기본 구조에 약간씩의 링크들을 추가함.
매시 네트워크의 변형된 구조로서 그림과 같은 토러스 네트워크가 있음. 토러스 구조는 앞에서 설명한 매시 구조와 링 구조가 결합된 것임. 즉, 행과 열의 노드들은 기본적으로 매시 구조로 연결되며, 같은 행과 열의 노드들은 별도의 링으로 한 번 더 접속됨. 이 구조는 시스템 확장이 용이하다는 특징을 가지고 있음. 네트워크 지름은 k x k 토러스의 경우에 2[k/2]로서, 다른 구조에 비하여 짧은 편임.
매시 및 토러스는 3차원 혹은 그 이상의 입체형 네트워크로 확장될 수도 있음. 그 경우에 전체 노드 수는 k의 n승으로 표현할 수 있음. 여기서 k는 각 방향에 접속되는 노드의 수를 가리키며, n은 차원의 수임. 그림의 구조는 k = 4, n = 2인 경우에 해당하므로, 전체 노드 수는 N = 4의 제곱 = 16임. 그리고 만약 3차원 토러스로 구성한다면, N = 4의 3승 = 64개가 됨. 3차원 토러스는 Cray T3E 슈퍼컴퓨터에서 사용됨.
5) 하이퍼큐브 구조
하이퍼큐브는 k = 2인 n-차원 네트워크를 말함. 이 네트워크는 2 x 2 노드 구조들을 3차원 혹은 그 이상으로 접속하여 구성할 수 있음. 하이퍼큐브에서는 노드들이 아래의 식과 같은 상호연결 함수에 의해 서로 연결됨
여기서, b는 노드 번호에 대한 2진수 표현의 각 비트를 나타냄. 그리고 i는 시스템의 차원을 가리킴. 예를 들어, n = 3인 3차원 하이퍼큐브의 경우에는 전체 노드 수가 8개이므로, 노드 번호는 3비트로 구성됨. 따라서 식의 함수에서 i = 0, 1, 2에 대한 상호연결 함수들을 각각 구하고, 그에 따라 노드들을 접속하여 구성하면 됨. 결과적으로, 1차원, 2차원 및 3차원 방향으로 서로 접속될 노드들의 번호를 가리키는 상호연결 함수들은 아래와 같아짐.
C0함수는 1차원(x) 방향으로 노드 번호의 최하위 비트(b0)의 값이 서로 보수인 노드들 간에 접속하면 된다는 것을 가리키고 이씅ㅁ. 그에 따라 x 방향으로 서로 접속되는 노드들의 번호를 나열하면, 000 <-> 001, 010 <-> 011 및 110 <-> 111이 됨. 그리고 2차원(y) 방향으로는 두 번째 비트(b1), 3차원(z) 방향으로는 최상위 비트(b2)가 서로 다른 노드들 간을 접속하면 됨. 결과적으로, 3차원 하이퍼큐브는 아래의 그림과 같이 구성될 수 있음.
4차원 하이퍼큐브는 두 개의 3차원 구조를 이용하여 구성할 수 있음. 이 경우에는 전체 노드의 수가 2의 4승 = 16이므로, 노드 번호는 4비트로 이루어짐. 따라서 식의 함수로부터 C3(b3b2b1b0) = b3b3b2b1b0를 구할 수 있으며, 노드 번호의 최상위 비트인 b3의 값이 서로 다른 노드들을 서로 접속하면 된다는 것을 알 수 있음. 결과적으로, 그림에서와 같이 두 개의 3차원 구조에서 같은 위치에 있는 노드들을 네 번째 링크를 이용하여 서로 접속하면 4차원 하이퍼큐브가 구성됨.
이와 같이 구성된 하이퍼큐브에서는 노드들이 서로 간에 통신을 위하여 매시지-전송 방식을 이용함. 즉, 전송할 노드가 데이터와 목적지 노드를 포함하는 패킷을 생성하여 수신할 노드로 보냄. 그런데 패킷 전송을 위해서는 패킷이 두 노드 간의 경로를 스스로 찾아갈 수 있게 해주는 자동 경로설정 방법이 필요함. 그 방법들 중의 한 예로서, E-큐브 라우팅이라고 불리는 경로설정 방식은 다음과 같음.
① 두 노드의 번호를 나타내는2진수 비트들 간에 exclusive-OR 연산을 수행하여 방향 단어를 구함
② 방향 단어의 LSB부터 검사하여, 비트값이 1이면 x 방향으로 이동하고, 0이면 이동하지 않음
③ MSB까지의 모든 비트들에 대하여 ②번을 차례대로 반복하면서, 대응되는 차원의 방향으로 이동할 지를 결정
예를 들어, 6번 노드가 13번 노드로 패킷을 보내려한다면, 그 두 노드 번호들 간의 exclusive-OR 연산 결과로 얻게 되는 방향 단어는 0110 XOR 1101 = 1011이 됨. 따라서 방향 단어의 비트들에 따라 아래와 같은 경로 이동이 수행되며, 그에 따른 패킷 이동 경로는 그림에서 청색 화살표로 표시되어 있음.
하이퍼큐브에서는 각 노드에 링크를 한 개씩만 추가하면, 전체 노드의 수를 두 배씩 증가시킬 수 있음. 즉, 그림과 같은 구조 전체를 그 아래에 하나 더 위치시키고 같은 위치의 노드들을 서로 연결한다면, 노드의 수가 32개인 5차원 하이퍼큐브가 구성됨. 또한 그보다 더 큰 시스템도 같은 방법을 이용하여 쉽게 구성할 수 있음. 즉, 차원을 하나씩 증가시킬 때마다 각 노드에 링크를 한 개씩만 추가하면 되며, 그때마다 노드의 수는 두 배가 됨. 이와 같이 하이퍼 큐브 구조는 약간의 하드웨어 추가를 통하여 시스템을 쉽게 확장시킬 수 있다든 장점을 가지고 있음. 이 구조는 Intel iPSC 및 NCUBE/10과 같은 미니슈퍼급 컴퓨터시스템에서 사용됨.