Skip to content

Commit 9298f18

Browse files
committed
docs: 컴퓨터 구조론 13
- 병렬처리 개념, 병렬처리 단위, 병렬 컴퓨터 분류, MIMD 조직의 다중 프로세서 시스템 구조에 대한 개요
1 parent 31fc123 commit 9298f18

File tree

1 file changed

+134
-0
lines changed
  • docs/컴퓨터-구조론

1 file changed

+134
-0
lines changed

docs/컴퓨터-구조론/13.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
sidebar_position: 13
3+
title: 고성능 컴퓨터시스템 구조
4+
description: 병렬처리 개념, 병렬처리 단위, 병렬 컴퓨터 분류, MIMD 조직의 다중 프로세서 시스템 구조에 대한 개요
5+
---
6+
7+
## 1. 병렬처리의 개념 및 필요성
8+
9+
병렬처리(Parallel Processing)는 정보 처리 속도를 향상시키기 위해 다수의 프로세서들이 여러 개의 프로그램들이나 한 프로그램의 분할된 부분들을 동시에 처리하는 기술입니다. 슈퍼컴퓨터 및 고성능 서버 시스템의 설계 원리에서 핵심적인 부분입니다.
10+
11+
**병렬처리를 위한 선결 조건:**
12+
13+
- **작고 저렴하며 고속인 프로세서의 사용 가능성:**
14+
- 반도체 기술의 발전과 VLSI 집적도 향상으로 가능해졌습니다.
15+
- **프로그램 분할 및 결과 동일성:**
16+
- "한 프로그램을 여러 개의 작은 부분들로 분할하는 것이 가능해야 하며, 분할된 부분들을 병렬로 처리한 결과가 전체 프로그램을 순차적으로 처리한 경우와 동일한 결과를 얻을 수 있어야 함"
17+
18+
**병렬처리로 인해 야기되는 새로운 문제들:**
19+
20+
- 병렬 프로그램 언어와 컴파일러 개발
21+
- 상호 배타 메커니즘(mutual exclusion mechanism) 지원
22+
- 공유 자원에 대한 경합(contention)을 줄이고 이용률을 극대화할 수 있는 운영체제 개발
23+
24+
**필요한 관련 기술:**
25+
26+
- **문제 분할(Problem Partition):** 문제(혹은 프로그램)를 병렬처리를 위해 여러 개로 나누는 것.
27+
- **프로세서간 통신(Inter-processor Communication):** 분할된 부분을 처리하는 프로세서 간 데이터 교환 메커니즘.
28+
29+
---
30+
31+
## 2. 병렬처리의 단위
32+
33+
병렬처리는 다양한 수준에서 이루어질 수 있습니다.
34+
35+
- **작업-단위 병렬성(Job-level parallelism):**
36+
- 독립적인 작업 프로그램(job program) 단위의 병렬처리. (예: 성적관리 프로그램과 실험 데이터 처리 프로그램)
37+
- **태스크-단위 병렬성(Task-level parallelism):**
38+
- 하나의 큰 작업을 기능에 따라 분할한 작은 프로그램(태스크) 단위의 병렬처리. (예: 로봇 제어 프로그램)
39+
- **스레드-단위 병렬성(Thread-level parallelism):**
40+
- 동시에 처리될 수 있는 가장 작은 크기의 독립적인 단위 프로그램인 스레드 단위의 병렬처리.
41+
- **명령어-단위 병렬성(Instruction-level parallelism):**
42+
- 데이터 의존성이 존재하지 않는 여러 개의 명령어들을 동시에 수행하는 병렬처리.
43+
44+
---
45+
46+
## 3. 병렬 컴퓨터의 분류
47+
48+
### 3.1. Flynn의 분류 (구조적 특징에 따른 분류)
49+
50+
Flynn의 분류는 프로세서들이 처리하는 명령어 스트림(instruction stream)과 데이터 스트림(data stream)의 수에 따라 컴퓨터를 분류합니다.
51+
52+
| 분류 | 명령어 스트림 | 데이터 스트림 | 설명 |
53+
| ---- | ------------- | ------------- | ------------------------------------------------------------------------------------------------------------------- |
54+
| SISD | 단일 | 단일 | 한 번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일 프로세서 시스템. 파이프라이닝, 슈퍼스칼라 구조 이용 |
55+
| SIMD | 단일 | 복수 | 여러 개의 프로세싱 유니트(PU)들이 하나의 명령어 스트림을 실행, 여러 데이터 스트림을 동시에 처리 (예: 배열 프로세서) |
56+
| MISD | 복수 | 단일 | N개의 프로세서들이 서로 다른 명령어를 실행하지만 데이터 스트림은 한 개. 실제 구현 사례는 없음 |
57+
| MIMD | 복수 | 복수 | N개의 프로세서들이 서로 다른 명령어와 데이터를 처리. 밀결합/소결합 시스템으로 분류 |
58+
59+
- **밀결합 시스템:** 공유-기억장치 구조(shared-memory architecture), 다중프로세서 시스템(multiprocessor system)
60+
- **소결합 시스템:** 지역 기억장치(local memory)를 가진 독립적 컴퓨터 모듈, 메시지 전송(message-passing) 방식, 다중컴퓨터 시스템
61+
62+
### 3.2. 기억장치 액세스 모델에 따른 분류
63+
64+
- **균일 기억장치 액세스(UMA: Uniform Memory Access) 모델:**
65+
- 모든 프로세서가 상호연결망에 의해 접속된 주기억장치를 공유, 동일한 시간으로 액세스
66+
- 하드웨어가 간단, 프로그래밍 용이, 시스템 크기에 한계
67+
- **불균일 기억장치 액세스(NUMA: Non-uniform Memory Access) 모델:**
68+
- 다수의 UMA 모델이 상호연결망에 의해 접속, 분산 공유-기억장치 구조
69+
- 액세스 시간은 기억장치 위치(지역/전역/원격)에 따라 다름
70+
- **무-원격 기억장치 액세스(NORMA: No-Remote Memory Access) 모델:**
71+
- 프로세서가 원격 기억장치를 직접 액세스할 수 없음, 메시지-전송 상호연결망
72+
- 분산-기억장치 시스템, 매시/하이퍼큐브/토러스 등 상호연결망 사용
73+
74+
### 3.3. 시스템 구성방법에 따른 분류
75+
76+
- **대칭적 다중프로세서(SMP):**
77+
- 64개 이하 프로세서, 완전-공유 구조(shared-everything), 하나의 OS, 동등 권한
78+
- **대규모 병렬프로세서(MPP):**
79+
- 무공유 구조(shared-nothing), 수백~수천 개 노드, 메시지 전송 방식
80+
- **캐시-일관성 NUMA(CC-NUMA):**
81+
- 독립 노드(UMA/NUMA)가 상호연결망으로 연결, 캐시 및 주기억장치 일관성 유지, 전역 주소공간
82+
- **분산 시스템(Distributed System):**
83+
- 독립 노드가 네트워크로 연결, loosely-coupled system
84+
- **클러스터 컴퓨터(Cluster Computer):**
85+
- 고속 LAN/스위치로 연결된 PC/워크스테이션 집합, 단일 시스템 이미지(SSI), 저비용/고가용성
86+
87+
---
88+
89+
## 4. 다중 프로세서 시스템 구조 (MIMD 조직)
90+
91+
MIMD 조직의 다중 프로세서 시스템은 여러 개의 프로세서들이 비동기적으로 프로그램을 실행하는 시스템입니다. 기억장치 모듈을 사용하는 방식에 따라 공유-기억장치 시스템과 분산-기억장치 시스템으로 분류됩니다.
92+
93+
### 4.1. 공유-기억장치 시스템 구조 (Shared-Memory System)
94+
95+
- **특징:** 밀결합 구조, 주기억장치가 모든 프로세서에 의해 공유
96+
- **장점:** 프로그래밍 용이, 프로세서 이용률 극대화
97+
- **단점:** 통로(버스/상호연결망)상 통신량 증가로 경합 및 지연, 프로세서 수 증가 시 선형적 성능 향상 어려움
98+
99+
**상호연결 구조:**
100+
101+
- **버스(Bus):** 공유-버스(하드웨어 간단, 버스 경합), 다중-버스(경합 완화, 계층버스)
102+
- **크로스바 스위치(Crossbar Switch):** 완전 연결성, 비용/복잡도 높음
103+
- **다단계 상호연결망(MIN):** 크로스바와 버스 중간 복잡성 (예: 오메가 네트워크)
104+
105+
### 4.2. 분산-기억장치 시스템 구조 (Distributed-Memory System)
106+
107+
- **특징:** 소결합 구조, 각 프로세서가 자신의 지역 기억장치(local memory) 소유, 메시지 전송 이용
108+
- **장점:** 공유 자원 경합 감소
109+
- **단점:** 통신 프로토콜에 의한 지연 증가
110+
111+
**주요 상호연결망 (네트워크 지름 고려):**
112+
113+
- **선형 배열(Linear Array):** 네트워크 지름 N-1
114+
- **링(Ring):** 양방향 N/2, 단방향 N-1, 코달 원형 변형
115+
- **트리(Tree):** 층수 k, N=(2^k-1) 노드, 지름 2(k-1), 팻 트리(fat tree)로 병목 해결
116+
- **매시(Mesh Network):** Illiac IV, MPP, DAP, CM-2, Intel Paragon 등, 토러스 네트워크(torus network)로 확장 가능
117+
- **하이퍼큐브(Hypercube):** m=log2N 차원, E-큐브 라우팅으로 자동 경로설정
118+
119+
---
120+
121+
## 요약
122+
123+
- 병렬처리의 개념과 필요성
124+
- 여러 프로세서가 동시에 작업을 처리하여 정보 처리 속도 향상
125+
- 병렬처리의 단위
126+
- 작업 단위, 태스크 단위, 스레드 단위, 명령어 단위 병렬성
127+
- 병렬 컴퓨터의 분류
128+
- Flynn의 분류: SISD, SIMD, MISD, MIMD
129+
- 기억장치 액세스 모델: UMA, NUMA, NORMA
130+
- 시스템 구성 방식: SMP, MPP, CC-NUMA, 분산 시스템, 클러스터 컴퓨터
131+
- MIMD 기반 다중프로세서 시스템 구조
132+
- 공유-기억장치 구조: 프로그래밍 용이, 경합 발생 가능
133+
- 분산-기억장치 구조: 경합 감소, 통신 지연 발생 가능
134+
- 슈퍼컴퓨터 및 고성능 서버 설계의 기본 원리 이해에 중요

0 commit comments

Comments
 (0)