SIMD(Single Instruction Multiple Data)는 병렬 컴퓨팅의 한 종류로, 하나의 명령어로 여러 개의 값을 동시에 계산하는 방식이다.

SIMD의 동작 구조. 하나의 명령어와 여러 개의 값을 다룰 수 있다.
플린의 분류학
  단일
명령어
복수
명령어
단일
자료
SISD MISD
복수
자료
SIMD MIMD
v  d  e  h

벡터 프로세서에서 많이 사용되는 방식으로, 비디오 게임 콘솔이나 그래픽 카드와 같은 멀티미디어 분야에 자주 사용된다. CPU에서는 인텔MMX, 스트리밍 SIMD 확장(SSE)과 AMD3D나우! 등의 기술에서 이를 적용했다.

역사 편집

SIMD 명령을 처음 사용한 것은 하나의 명령어를 가지고 데이터의 벡터 위에 동작한 CDC Star-100, 텍사스 인스트루먼츠 ASC 등 1970년대 초 벡터 슈퍼컴퓨터에서 였다.

Intel SIMD 아키텍처인 MMX, SSE, AVX 등은 실시간 그래픽 지원을 위해서 만들어졌기 때문에 데이터 타입과 아키텍처에 따라 벡터 길이가 2에서 16 워드 정도인 2,3,4 차원 처리를 위해 고안되었다. 이 새 SIMD 아키텍처를 "short-vector" 아키텍처라고 부르는 데 반해 초기 SIMD와 벡터 슈퍼 컴퓨터는 64에서 64,000 정도의 벡터 길이를 가졌다.

외부 링크 편집