최근 수정 시각 : 2026-05-03 12:34:33

3DNow!


<bgcolor=#96834a> 명령어 집합
CISC AMD64x86 · M68K · 68xx · MOS 65xx · Z80 · 8080 · z/Architecture · VAX
RISC Arm (A64 · A32 · T32) · RISC-V · MIPS · DEC Alpha · POWER PowerPC · CELL-BE
LoongArch · OpenRISC · PA-RISC · SPARC · Blackfin · SuperH · AVR32 AVR
VLIW
EPIC
E2K · IA-64 · Crusoe

<rowcolor=#fff> x86 · AMD64 확장 명령어 집합
인텔 주도 확장 명령어
범용 x87[SSE2] · APX
SIMD MMX[SSE2] · SSE SSE2 · SSE3 · SSSE3 · SSE4.1 · SSE4.2 · AVX AVX2 · AVX-512 · AMX
AVX-512: F · CD · DQ · BW · VL · IFMA · VBMI · VBMI2 · VNNI · VAES · GFNI · BITALG
AVX[3]: AVX-VNNI · AVX-IFMA
비트 조작 BMI1 · BMI2 · ADX
보안 및 암호 AES-NI · CLMUL · RDRAND · RDSEED · SHA · MPX · SGX · TME · MKTME
가상화 및 기타 VT-x(VMX) · SMX · TSX
AMD 주도 확장 명령어
SIMD 및 비트 연산 3DNow! PREFETCHW · F16C · XOP · FMA FMA4 · FMA3
비트 조작 ABM
보안 및 암호 SME
가상화 및 기타 AMD-V
공동 표준 (x86 Ecosystem Advisory Group)
SIMD AVX10 · ACE
AVX10: AVX10.1 · AVX10.2
보안 및 암호 ChkTag
시스템 및 기타 FRED

[SSE2] SSE2로 대체 권장[SSE2] [3] 512-bit EVEX 인코딩된 AVX-512 명령어의 256-bit VEX 인코딩 버전

1. 개요2. 역사
2.1. 개발 배경2.2. 출시2.3. SSE와의 경쟁2.4. 지원 중단
3. 상세4. 관련 항목

1. 개요

3DNow!AMDx86 아키텍처용으로 설계한 부동소수점 SIMD 연산 확장 명령어 세트다.

1998년 AMD K6-2와 함께 출시되었으며, MMX가 지원하지 않는 부동소수점 SIMD 연산을 보완하는 것을 목표로 하였다.

기존 MMX의 64비트 MM 레지스터를 재활용하여 단정밀도(32비트) 부동소수점 2개를 패킹한 형태로 처리하며, 21개의 신규 명령어를 도입하였다. 이후 Athlon에서 24개가 추가된 Enhanced 3DNow!로 확장되었고, Athlon XP에서는 SSE 명령어 집합과 함께 3DNow! Professional로 통합되었다.

인텔이 1999년 인텔 펜티엄 III와 함께 출시한 스트리밍 SIMD 확장(SSE)이 전용 128비트 XMM 레지스터와 4개 폭의 단정밀도 SIMD를 제공하면서 3DNow!는 경쟁에서 밀리기 시작하였다. AMD는 2010년 3DNow!의 공식 지원 중단을 선언하였고, 2011년 출시된 불도저 마이크로아키텍처부터 PREFETCH 계열 명령어를 제외한 3DNow! 명령어가 제거되었다.

2. 역사

2.1. 개발 배경

1990년대 중반 3D 게임 시장이 급격히 성장하면서 실시간 기하 변환, 조명 연산, 텍스처 매핑 등 단정밀도 부동소수점 연산 수요가 폭증하였다. 그러나 1997년 도입된 MMX는 정수 SIMD만 지원하고 부동소수점 연산을 포함하지 않아 이러한 작업 부하에 직접 대응할 수 없었다. x87 FPU는 스칼라 80비트 연산을 수행하지만 SIMD 병렬 처리를 지원하지 않아 처리량 면에서 한계가 있었다.

AMD는 이 공백을 메우기 위해 기존 MMX 레지스터 파일을 그대로 재활용하는 방식으로 부동소수점 SIMD를 구현하는 방안을 설계하였다. 새로운 레지스터를 도입하지 않으므로 운영체제 수정 없이 기존 MMX의 컨텍스트 저장·복원 메커니즘을 공유할 수 있었다.

2.2. 출시

1998년 5월, AMD는 K6-2 프로세서와 함께 3DNow!를 출시하였다. K6-2는 MMX와 3DNow!를 동시에 지원하는 최초의 x86 프로세서였으며, 인텔의 동급 제품인 펜티엄 II와의 경쟁 구도에서 부동소수점 SIMD라는 차별점을 내세웠다.

초기 소프트웨어 지원은 제한적이었으나, 이드 소프트웨어(id Software)의 Quake II, 에픽게임즈(Epic Games)의 Unreal 등 당시 주요 3D 게임 엔진들이 3DNow! 최적화 코드 경로를 추가하였다. AMD는 소프트웨어 개발사에 최적화 도구를 제공하며 생태계 구축을 지원하였다.

2.3. SSE와의 경쟁

1999년 2월 인텔이 인텔 펜티엄 III와 함께 출시한 스트리밍 SIMD 확장(SSE)은 3DNow!에 비해 구조적으로 유리한 위치에 있었다. SSE는 전용 128비트 XMM 레지스터를 도입하여 단정밀도 부동소수점 4개를 동시에 처리할 수 있었던 반면, 3DNow!는 64비트 MM 레지스터를 통해 2개만 처리하였다. 또한 SSE는 기존 MMX·x87 레지스터와 충돌 문제가 없어 x87과 병행 사용 시 제약이 없었다.

인텔의 시장 점유율 우위와 DirectX의 SSE 최적화 지원, Microsoft의 Visual C++ 컴파일러 등 주요 도구 체인의 SSE 우선 지원이 맞물리면서 3DNow!는 AMD 플랫폼에 국한된 확장으로 남게 되었다. AMD는 Athlon XP(2001)에 SSE를 탑재하고 Enhanced 3DNow!와 SSE를 통합한 3DNow! Professional이라는 명칭을 사용하였으나, 이는 사실상 AMD가 SSE 표준을 수용한 것을 의미하였다.

2.4. 지원 중단

AMD는 2010년 새로운 프로세서에서 3DNow!의 공식 지원을 중단한다고 발표하였다. 이후 2011년 10월 출시된 Bulldozer 마이크로아키텍처부터 PREFETCH와 PREFETCHW를 제외한 3DNow! 명령어 전체가 제거되었다. PREFETCH 계열은 캐시 프리페치 용도로 범용성이 있어 이후 아키텍처에서도 계속 지원된다.

3. 상세


4. 관련 항목