SISD : 하나의 데이터 스트림에 하나의 명령 체계 처리
SIMD : 여러 개의 데이터 스트림을 처리하지만 똑같은 명령 체계 처리(GPU, Vector Processors와 같은 병렬처리)
MISD : 여러 개의 명령체계를 하나의 데이터 스트림으로 처리(Systolic.. 이런 게 있다 정도!)
MIMD : 여러 개의 프로세스로 여러 개의 데이터 스트림 처리(분산 처리에 가깝다.. 웹서버같은 독립적인 프로세스?)
데이터를 나눠서 병렬 처리(여러 개의 프로세서 적용)
Data Parallelism으로 불린다.
만약 데이터에 비해 ALU가 많지 않다면? (ex : 4 ALUs, n = 15 data items)
이런 식으로 데이터를 나눌 수 있다(나누는 기준은 사용자 기준이다).
빈칸은 데이터가 없으므로 IDLE상태에 빠진다.
장점 : 여러 데이터에 같은 명령 체계를 적용하여 간편하게 처리할 수 있음.
단점 :
Array나 Vector와 같은 대량의 데이터를 CPU에서 처리한다.
벡터를 저장하거나 동시에 계산하는데 효율적이다.
벡터 내부의 요소에 같은 계산이 적용되도록 한다
스칼라가 아닌 벡터로 작동된다.
독립적으로 접근이 가능한 여러 개의 Memory Bank.
여러 개의 Bank에 벡터 요소들을 분배하고 연속된 요소들을 줄이거나 지운다.
장점
단점