여기서는 병렬처리를 위한 최근의 architecture에 대해서 살펴보겠습니다.
Flynn 이라는 사람이 컴퓨터 아키텍쳐를 다음과 같이 네개로 나누었습니다.
PU(Process Unit) 으로 명령을 처리하고 데이터를 처리하는 유닛이라고 보면 됩니다.
CU 가 IS 를 PU에 주면 MU 에 데이터를 사용해서 처리를 합니다.
즉 프로세스가 하나인겁니다.
명령어는 하나인데(명령어가 하나라기 보단 목적이 하나) 여러 프로세서가 각각의 데이터를 처리합니다.
공유메모리를 가지는 MIMD 입니다.
각 PU 가 자기 나름의 Instruction stream을 다 가집니다.
즉 컴퓨터가 여러개라서 코어마다 따라 스트림을 가지는 겁니다.
여기서 중요한건 공유메모리를 가진다는 겁니다.
조금 더 타이트하게 연결이 되어 있는 느낌
여긴 공유 메모리를 안 가지고 로컬메모리를 가져서 이게 네트워크를 연결이 되는 겁니다.
여기서는 컴퓨터 몇대를 연결시켜서 복잡하는 걸 하는 느낌입니다. 조금 느슨하게 연결이 되어 있는 느낌입니다.
SISD 는 간단하게 Uni-Processor 입니다.
SIMD
MISD
MISD는 좀 독특합니다.
Sequence of data 가 있습니다.
이 Insturction Pool 에서 동일한 목적을 수행 하는 건 맞지만 명령어가 각각의 PU에서 다르게 동작이 되는 겁니다.
파이프라인은 MISD 아닙니다.
Fault-tolerant computers 가 이런 경우가 많습니다. 동일한 목적을 수행하지만 계산법을 조금씩 다릅니다. 잦은 오류를 대처하기 위한 방식입니다.
MIMD
요즘 제일 흔하게 쓰는 겁니다.
이 코어들이 연결되어 있습니다.
SMP(프로세스 칩),Clusters and NUMA(Non-uniformly memory access)
병렬 컴퓨터 아키텍처는 다음과 같이 분류되고 있습니다.
MIMD 에 대해서 더 자세히 살펴보도록 하겠습니다.
MIMD 중 SMP(Symmetric Multiprocessor) 에 대해 알아보겠습니다.
대칭형 멀티프로세서, 무슨뜻일가요? 프로세스가 서로 대칭, 즉 N개가 있으면 그게 다 똑같다는 의미입니다.
각 프로세서에서 메인메모리를 액세스하는 시간은 동일합니다.
Tightly coupled - NUMA
위 그림은 누마가 아닙니다. 프로세스의 위치가 달라도 동일한 동작 결과를 냅니다.
위 그림은 누마입니다.
이 처럼 두 프로세서가 같은 메모리의 접근할때 access time 은 다릅니다.
Loosely Coupled - Clusters(클러스털스)
로컬 메모리를 가진 CPU 끼리 상호연결이 되고 있습니다. 고속 버스로 연결이 되어 있습니다. 이 버스를 통해 CPU 가 자기의 로컬 메모릴 쓰든 다른 CPU 의 메모리를 쓰던지 하는 겁니다.
멀티 프로그램과 멀티 프로세싱 입니다.
SMP의 장점
Time Shared Bus 는
시간을 쪼개서 버스를 사용하는데 버스를 동시에 사용할 수 없습니다 .
'공부 > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터구조15 Control Unit Operation (0) | 2020.07.03 |
---|---|
컴퓨터구조14 Instruction Level Parallelism and Superscalar Processors (0) | 2020.07.03 |
컴퓨터구조13 Reduced Instruction Set Computers (0) | 2020.07.03 |
컴퓨터구조12 CPU Structure and Function (0) | 2020.06.30 |
컴퓨터구조11 Instruction Sets : Addressing Modes and Formats (0) | 2020.06.30 |