3D나우!
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
3DNow!는 AMD가 MMX 명령어 집합을 개선하기 위해 개발한 기술로, 3차원 그래픽 처리 성능 향상을 목표로 설계되었다. 1990년대 3D 그래픽이 대중화되면서 부동 소수점 연산의 중요성이 커지자, AMD K6 프로세서의 부동 소수점 연산 성능을 보완하기 위해 개발되었다. 3DNow!는 MMX 레지스터를 확장하여 단정밀도 부동 소수점 데이터에 대한 연산을 지원하며, 이후 Enhanced 3DNow!, 3DNow! Professional로 발전했다. 2010년 이후에는 일부 프로세서에서 지원이 중단되었다.
더 읽어볼만한 페이지
- AMD 기술 - AMD 크로스파이어X
AMD 크로스파이어X는 AMD의 멀티 GPU 기술로, 여러 개의 그래픽 카드를 함께 사용하여 그래픽 성능을 향상시키며, 엔비디아의 SLI와 경쟁하고 다양한 렌더링 방식을 지원하지만, 전체 화면 모드에서만 작동하는 단점도 존재한다. - AMD 기술 - 고대역 메모리
고대역 메모리(HBM)는 실리콘 관통 전극을 사용하여 DRAM 다이를 수직으로 적층, 전력 소비를 줄이면서 높은 대역폭을 제공하는 적층형 메모리 기술로, GPU와 고성능 컴퓨팅 분야에서 활용되며 지속적인 발전을 거듭하고 있다. - SIMD 컴퓨팅 - SSE2
SSE2는 인텔이 개발한 x86 아키텍처의 SIMD 명령어 집합 확장으로, MMX 명령어의 정수 벡터 연산을 확장하고 XMM 레지스터를 사용하여 부동 소수점 연산 성능을 향상시키며, AMD64 아키텍처에서도 지원된다. - SIMD 컴퓨팅 - SSE3
SSE3는 인텔에서 개발한 스트리밍 SIMD 확장 3 명령어 세트로, 부동 소수점 연산, 디지털 신호 처리, 3차원 컴퓨터 그래픽 처리 성능 향상을 위해 기존 SSE2 명령어 세트에 몇 가지 새로운 명령어를 추가한 것이다. - X86 명령어 - 스트리밍 SIMD 확장
스트리밍 SIMD 확장(SSE)은 x86 아키텍처의 SIMD 명령어 집합으로, 128비트 XMM 레지스터를 사용하여 데이터 병렬 처리를 통해 성능을 향상시키며, 인텔 펜티엄 III 프로세서에 처음 도입되어 여러 후속 버전으로 발전했다. - X86 명령어 - SSE2
SSE2는 인텔이 개발한 x86 아키텍처의 SIMD 명령어 집합 확장으로, MMX 명령어의 정수 벡터 연산을 확장하고 XMM 레지스터를 사용하여 부동 소수점 연산 성능을 향상시키며, AMD64 아키텍처에서도 지원된다.
3D나우! | |
---|---|
3DNow! 기술 개요 | |
![]() | |
개발사 | AMD |
출시일 | 1998년 |
중단일 | 알 수 없음 |
종류 | 명령어 집합 아키텍처 |
상세 내용 | |
특징 | x86 명령어 집합 확장 |
비고 | 3DNow! 명령어는 더 이상 사용되지 않음 |
2. 역사
3D나우!는 MMX 명령어 집합을 확장하여 개발되었다. 이는 정수 처리뿐만 아니라 부동소수점 연산까지 지원하는 것을 의미했다.
1990년대는 3차원 그래픽스가 PC 멀티미디어와 게임에서 주류로 떠오르던 시기였다. 3D 게임에서 부동소수점 연산이 많이 사용됨에 따라, AMD는 3D 계산 기능을 갖추는 것이 전략적으로 중요했다. 당시 K6 프로세서는 경쟁사인 인텔 펜티엄 II에 비해 부동소수점 연산 성능이 부족했다.
인텔의 MMX는 정수 연산만 지원하고 부동소수점수 연산은 지원하지 않았다. 3DNow!는 MMX에 21개의 명령어를 추가하여 부동소수점 연산을 가속화했다.[11][12]
3DNow!는 K6-2[13], IDT의 WinChip 2[14]부터 탑재되기 시작했다. 개발 초기에는 AMD, 사이릭스, IDT가 각기 다른 사양을 발표했지만, AMD의 노력으로 세 회사 모두 3DNow!를 채택했다.
경쟁 제품인 인텔 CPU의 SSE에 비해 출시가 약 1년 빨랐지만, 3DNow!는 보급에 뒤처졌다. 이에 따라 Enhanced 3DNow!, 3DNow! Professional과 같이 세대가 거듭될수록 SSE와 호환되는 명령어가 추가되었다.
2010년 8월, AMD는 Bobcat 이후 세대의 프로세서에서는 "3DNow!"와 "3DNow!+"의 두 명령어 (PREFETCH, PREFETCHW)를 제외하고는 지원을 중단한다고 발표했다.[15] 2011년, 3DNow!의 전개는 종료되었다.
2. 1. 3DNow! 개발 배경
1990년대 초와 달리, 3차원 게임과 고급 멀티미디어 응용 프로그램이 빠르게 발전하면서 부동소수점 연산 성능의 중요성이 커졌다. K6 프로세서는 정수 연산 성능은 우수했지만, 부동소수점 연산 성능은 상대적으로 부족했다.[11][12] 3DNow!는 K6 프로세서의 부동소수점 연산 성능을 향상시켜 3D 그래픽 처리 능력을 강화하기 위해 개발되었다.3D 그래픽의 실시간 표시는 호스트 CPU의 부동 소수점 장치(FPU)에 크게 의존했는데, 이 작업에서 AMD의 K6 프로세서는 경쟁사인 인텔 펜티엄 II에 비해 성능이 떨어졌다. MMX 명령어 집합을 개선한 3DNow! 명령어 집합은 MMX SIMD 레지스터를 확장하여 단정밀도(32비트) 부동 소수점 데이터에 대한 일반적인 산술 연산(덧셈/뺄셈/곱셈)을 지원했다. AMD의 3DNow!를 느린 x87 FPU 대신 사용하도록 작성된 소프트웨어는 명령어 조합에 따라 최대 4배까지 빠르게 실행될 수 있었다.
구체적으로 64비트 MMX 레지스터에 32비트 부동소수점 연산 데이터를 2개 저장하여, 각각을 독립적으로 연산할 수 있도록 했다. 3DNow!에서는 더 나아가 2개의 MMX 유닛이 병렬 동작 가능하므로 최대 4개의 부동소수점 연산이 가능했다.
3DNow!는 AMD의 CPU인 K6-2[13], IDT의 WinChip 2[14]부터 탑재되기 시작했다.
2. 2. 초기 3DNow! (1998)
3D나우!는 1998년 K6-2 프로세서와 함께 처음으로 출시되었으며,[13] 21개의 새로운 명령어를 추가하여 SIMD 부동소수점 연산을 지원했다.[11][12] 이는 MMX 명령어 집합을 확장하여, 정수 처리뿐만 아니라 부동소수점 연산까지 지원하도록 한 것이다.3D나우!는 팩형 단정밀도(32비트) 부동소수점 데이터 형식을 사용했다. 즉, 64비트 MMX 레지스터에 32비트 부동소수점 데이터 2개를 저장하여 각각 독립적으로 연산할 수 있도록 했다. 또한, 2개의 MMX 유닛이 병렬 동작 가능하므로 최대 4개의 부동소수점 연산을 수행할 수 있었다.
3D나우! 명령어 집합에는 SIMD 정수 연산, 데이터 프리페치, 그리고 MMX-부동소수점 간 전환 속도 향상을 위한 명령어들도 포함되었다.
3DNow! 명령어는 다음과 같다:
구분 | 명령어 | 설명 |
---|---|---|
부동소수점 명령어 | PI2FD | 팩 32비트 정수에서 부동 소수점 변환 |
PF2ID | 팩 부동 소수점에서 32비트 정수 변환 | |
PFCMPGE | 팩 부동 소수점 비교, 크거나 같음 | |
PFCMPGT | 팩 부동 소수점 비교, 큼 | |
PFCMPEQ | 팩 부동 소수점 비교, 같음 | |
PFACC | 팩 부동 소수점 누산 | |
PFADD | 팩 부동 소수점 덧셈 | |
PFSUB | 팩 부동 소수점 뺄셈 | |
PFSUBR | 팩 부동 소수점 역 뺄셈 | |
PFMIN | 팩 부동 소수점 최소값 | |
PFMAX | 팩 부동 소수점 최대값 | |
PFMUL | 팩 부동 소수점 곱셈 | |
PFRCP | 팩 부동 소수점 역수 근사 | |
PFRSQRT | 팩 부동 소수점 역 제곱근 근사 | |
PFRCPIT1 | 팩 부동 소수점 역수, 첫 번째 반복 단계 | |
PFRSQIT1 | 팩 부동 소수점 역 제곱근, 첫 번째 반복 단계 | |
PFRCPIT2 | 팩 부동 소수점 역수/역 제곱근, 두 번째 반복 단계 | |
정수 명령어 | PAVGUSB | 팩 8비트 부호 없는 정수 평균 |
PMULHRW | 팩 16비트 정수 곱셈, 반올림 포함 | |
성능 향상 명령어 | FEMMS | MMX 또는 부동 소수점 상태의 더 빠른 진입/종료 |
PREFETCH/PREFETCHW | 최소 32바이트 라인을 L1 데이터 캐시로 프리페치(이것이 유일하게 더 이상 사용되지 않는 명령어가 아님) |
이후 인텔은 펜티엄 III에서 유사하지만 호환되지 않는 SSE 명령어를 추가하였다.
2. 3. Enhanced 3DNow! (1999)
Enhanced 3DNow! (또는 3DNow!+)는 1999년 1세대 애슬론 프로세서와 함께 도입되었다.[4] 5개의 새로운 3DNow! 명령어 (DSP 기능 향상)와 19개의 새로운 MMX 명령어 (스트리밍 미디어 기능 향상)를 추가했다.[4] 19개의 새로운 MMX 명령어는 인텔 SSE 명령어 집합의 하위 집합이었다. (ISSE, SSEMMX, MMX2 등으로 불리기도 함)[7] 일부 모바일 K6-2+ 및 K6-III+ 프로세서에도 5개의 새로운 3DNow! 명령어가 포함되었다.[4]3DNow! 확장 DSP 명령어는 다음과 같다:[4]
- `PF2IW`: 부호 확장과 함께 팩된 부동 소수점에서 정수 워드 변환
- `PI2FW`: 팩된 정수 워드에서 부동 소수점 변환
- `PFNACC`: 팩된 부동 소수점 음수 누산
- `PFPNACC`: 팩된 부동 소수점 혼합 양수-음수 누산
- `PSWAPD`: 팩된 더블워드 스왑
MMX 확장 명령어 (정수 SSE)는 다음과 같다:[4]
명령어 | 설명 |
---|---|
`MASKMOVQ` | 바이트 마스크를 사용한 스트리밍 (캐시 바이패스) 저장 |
`MOVNTQ` | 스트리밍 (캐시 바이패스) 저장 |
`PAVGB` | 부호 없는 바이트의 팩된 평균 |
`PAVGW` | 부호 없는 워드의 팩된 평균 |
`PMAXSW` | 팩된 최대 부호 있는 워드 |
`PMAXUB` | 팩된 최대 부호 없는 바이트 |
`PMINSW` | 팩된 최소 부호 있는 워드 |
`PMINUB` | 팩된 최소 부호 없는 바이트 |
`PMULHUW` | 팩된 곱셈 높은 부호 없는 워드 |
`PSADBW` | 팩된 절대 바이트 차이의 합 |
`PSHUFW` | 팩된 셔플 워드 |
`PEXTRW` | 정수 레지스터로 워드 추출 |
`PINSRW` | 정수 레지스터에서 워드 삽입 |
`PMOVMSKB` | 바이트 마스크를 정수 레지스터로 이동 |
`PREFETCHNTA` | NTA 참조를 사용한 프리페치 |
`PREFETCHT0` | T0 참조를 사용한 프리페치 |
`PREFETCHT1` | T1 참조를 사용한 프리페치 |
`PREFETCHT2` | T2 참조를 사용한 프리페치 |
`SFENCE` | 저장 펜스 |
Enhanced 3DNow! 기술은 3DNow!에 24개의 명령어를 추가한 것이다.[16][17] Athlon (K7)부터 탑재되기 시작했다. 일부 K6-2 및 K6-III에도 탑재되어 있다.
Enhanced 3DNow!는 "3DNow!+"와 "MMX+"의 두 가지로 구성된다.
2. 4. 3DNow! Professional (2001)
'''3DNow! 프로페셔널 기술'''(3DNow! Professional Technology영어)은 향상된 3DNow!에 52개의 명령을 추가하고 인텔의 SSE와 호환성을 갖게 한 것이다.[19] 이 기술은 AMD사의 애슬론 XP, 모바일 애슬론 4, 듀론(Morgan 코어)부터 탑재되기 시작했다.''3DNow! Professional''은 3DNow! 기술과 완전한 SSE 명령어 집합(SSE, SSE2 또는 SSE3 등)을 결합한 프로세서를 나타내기 위해 사용되는 상표명이다.[8] 애슬론 XP는 3DNow! Professional 상표명을 처음 사용한 프로세서였으며, 완전한 SSE 명령어 집합을 지원하는 애슬론 제품군 최초의 제품이었다. 애슬론 XP는 총 21개의 기존 3DNow! 명령어, 5개의 3DNow! 확장 DSP 명령어, 19개의 MMX 확장 명령어, 완전한 SSE 호환성을 위한 52개의 추가 SSE 명령어를 지원했다.[9]
SSE와 마찬가지로 구형 운영 체제에서는 사용할 수 없으며, 운영 체제에 따라 CR4 레지스터의 OSFXSR 비트를 1로 설정하여 사용할 수 있다.
2. 5. Geode GX/LX의 3DNow!
Geode GX 및 Geode LX는 다른 모든 프로세서에는 없는 두 개의 새로운 3DNow! 명령을 추가했다.[1]Geode GX/LX 고유의 3DNow! "전문" 명령은 다음과 같다.[1]
2. 6. 3DNow! 지원 중단 (2011)
2010년 8월, AMD는 밥캣(Bobcat) 마이크로아키텍처 이후 세대의 프로세서에서는 3DNow! 명령어 집합을 지원하지 않을 것이라고 발표했다(PREFETCH, PREFETCHW 두 명령어는 예외).[1] 2011년에 출시된 불도저 아키텍처부터 3DNow! 지원이 중단되었다.[1] 3DNow!를 지원하는 마지막 AMD APU 프로세서는 Llano 아키텍처 기반의 A8-3870K이다.[1]3. 3DNow! 명령어
3DNow! 명령어는 크게 부동소수점 연산, 정수 연산, 성능 향상 명령어로 분류할 수 있다.
인텔의 MMX는 정수 연산만 지원하고 부동소수점수 연산은 지원하지 않았다. 3DNow!는 MMX에 21개의 명령어를 추가하여 부동소수점 연산을 고속화했다.[11][12] 구체적으로는 64비트 MMX 레지스터에 32비트 부동소수점 연산 데이터 2개를 저장하여 각각 독립적으로 연산할 수 있도록 했다. 3DNow!에서는 더 나아가 2개의 MMX 유닛이 병렬 동작 가능하므로 최대 4개의 부동소수점 연산이 가능하다.
3DNow!는 K6-2[13], IDT의 WinChip 2[14]부터 탑재되기 시작했다. 개발 초기에는 AMD, 사이릭스, IDT 모두 각사별로 다른 사양을 발표했지만, AMD의 노력으로 세 회사 모두 3DNow!를 채택하게 되었다.
하지만 경쟁 제품인 인텔 CPU가 지원하는 SSE 명령에 비해 출시가 약 1년 빨랐음에도 불구하고 보급에 뒤처졌다. 그래서 Enhanced 3DNow!, 3DNow! Professional로 세대가 거듭될수록 SSE와 호환되는 명령이 추가되었다.
2010년 8월, AMD는 Bobcat 이후 세대의 프로세서에서는 "3DNow!"와 "3DNow!+"는 두 개의 명령어 (PREFETCH, PREFETCHW)를 제외하고 지원하지 않는다고 발표[15]했다. 이로써 3DNow!의 전개는 종료되었다.
3. 1. 부동소수점 명령어 (3DNow!)
3DNow! 기술의 첫 번째 구현은 SIMD 부동 소수점 연산을 지원하는 21개의 새로운 명령어를 포함하고 있다. 3DNow! 데이터 형식은 팩 단정밀도 부동 소수점이다. 3DNow! 명령어 집합에는 SIMD 정수 연산, 데이터 프리페치 및 더 빠른 MMX-부동 소수점 전환을 위한 연산도 포함되어 있다. 나중에 인텔(Intel)은 펜티엄 III에 SSE(스트리밍 SIMD 확장)로 알려진 유사하지만 호환되지 않는 명령어를 추가했다.3DNow! 부동 소수점 명령어는 다음과 같다.
명령어 | 설명 |
---|---|
`PI2FD` | 팩 32비트 정수에서 부동 소수점 변환 |
`PF2ID` | 팩 부동 소수점에서 32비트 정수 변환 |
`PFCMPGE` | 팩 부동 소수점 비교, 크거나 같음 |
`PFCMPGT` | 팩 부동 소수점 비교, 큼 |
`PFCMPEQ` | 팩 부동 소수점 비교, 같음 |
`PFACC` | 팩 부동 소수점 누산 |
`PFADD` | 팩 부동 소수점 덧셈 |
`PFSUB` | 팩 부동 소수점 뺄셈 |
`PFSUBR` | 팩 부동 소수점 역 뺄셈 |
`PFMIN` | 팩 부동 소수점 최소값 |
`PFMAX` | 팩 부동 소수점 최대값 |
`PFMUL` | 팩 부동 소수점 곱셈 |
`PFRCP` | 팩 부동 소수점 역수 근사 |
`PFRSQRT` | 팩 부동 소수점 역 제곱근 근사 |
`PFRCPIT1` | 팩 부동 소수점 역수, 첫 번째 반복 단계 |
`PFRSQIT1` | 팩 부동 소수점 역 제곱근, 첫 번째 반복 단계 |
`PFRCPIT2` | 팩 부동 소수점 역수/역 제곱근, 두 번째 반복 단계 |
3. 2. 정수 명령어 (3DNow!)
- `PAVGUSB` 팩 8비트 부호 없는 정수 평균
- `PMULHRW` 팩 16비트 정수 곱셈 (반올림 포함)
3. 3. 성능 향상 명령어 (3DNow!)
3DNow! 성능 향상 명령어는 다음과 같다.- `FEMMS` MMX 또는 부동 소수점 상태의 더 빠른 진입/종료
- `PREFETCH/PREFETCHW` 최소 32바이트 라인을 L1 데이터 캐시로 프리페치 (이것이 유일하게 더 이상 사용되지 않는 명령어가 아님)[15]
3. 4. DSP 명령어 (Enhanced 3DNow!)
3DNow! 명령어 집합에 대한 확장은 1세대 애슬론 프로세서와 함께 도입되었다. 애슬론은 5개의 새로운 3DNow! 명령어와 19개의 새로운 MMX 명령어를 추가했다. 이후 K6-2+ 및 K6-III+ (둘 다 모바일 시장을 타겟팅)는 5개의 새로운 3DNow! 명령어를 포함했지만 19개의 새로운 MMX 명령어는 제외했다. 새로운 3DNow! 명령어는 DSP를 향상시키기 위해 추가되었다.[4]3DNow! 확장 DSP 명령어는 다음과 같다.[4]
- `PF2IW` 부호 확장과 함께 팩된 부동 소수점에서 정수 워드 변환
- `PI2FW` 팩된 정수 워드에서 부동 소수점 변환
- `PFNACC` 팩된 부동 소수점 음수 누산
- `PFPNACC` 팩된 부동 소수점 혼합 양수-음수 누산
- `PSWAPD` 팩된 더블워드 스왑
Enhanced 3DNow!는 사운드·모뎀 제어용 DSP 명령 5개로 구성된 "3DNow!+"와, SSE(초대)에서 추가된 MMX 명령 19개로 구성된 "MMX+"로 구성된다.[16][17][18]
3. 5. MMX 확장 명령어 (Enhanced 3DNow!, Integer SSE)
3DNow! 명령어 집합에 대한 확장은 1세대 애슬론 프로세서와 함께 도입되었다. 애슬론은 5개의 새로운 3DNow! 명령어와 19개의 새로운 MMX 명령어를 추가했다.[4] 이후 K6-2+ 및 K6-III+ (둘 다 모바일 시장을 타겟팅)는 5개의 새로운 3DNow! 명령어를 포함했지만 19개의 새로운 MMX 명령어는 제외했다. 새로운 3DNow! 명령어는 DSP를 향상시키기 위해 추가되었고, 새로운 MMX 명령어는 스트리밍 미디어를 향상시키기 위해 추가되었다.[4]19개의 새로운 MMX 명령어는 인텔의 SSE 명령어 집합의 하위 집합이다. AMD 기술 매뉴얼에서 AMD는 이러한 명령어를 3DNow! 확장 기능과 분리한다.[4] 그러나 AMD 고객 제품 문헌에서는 이러한 분리가 덜 명확하며, 24개의 모든 새로운 명령어의 이점이 향상된 3DNow! 기술로 간주된다.[6] 이로 인해 프로그래머들은 19개의 새로운 MMX 명령어에 대한 자체 이름을 고안하게 되었는데, 가장 일반적인 이름은 ''정수 SSE''(''ISSE'')이다.[7] ''SSEMMX''와 ''MMX2''는 공개 도메인 부문의 비디오 필터 문서에서도 발견된다. ISSE는 SSE의 초기 이름인 인터넷 SSE를 나타낼 수도 있다.
MMX 확장 명령어 (정수 SSE)는 다음과 같다.
명령어 | 설명 |
---|---|
MASKMOVQ | 바이트 마스크를 사용한 스트리밍 (캐시 바이패스) 저장 |
MOVNTQ | 스트리밍 (캐시 바이패스) 저장 |
PAVGB | 부호 없는 바이트의 팩된 평균 |
PAVGW | 부호 없는 워드의 팩된 평균 |
PMAXSW | 팩된 최대 부호 있는 워드 |
PMAXUB | 팩된 최대 부호 없는 바이트 |
PMINSW | 팩된 최소 부호 있는 워드 |
PMINUB | 팩된 최소 부호 없는 바이트 |
PMULHUW | 팩된 곱셈 높은 부호 없는 워드 |
PSADBW | 팩된 절대 바이트 차이의 합 |
PSHUFW | 팩된 셔플 워드 |
PEXTRW | 정수 레지스터로 워드 추출 |
PINSRW | 정수 레지스터에서 워드 삽입 |
PMOVMSKB | 바이트 마스크를 정수 레지스터로 이동 |
PREFETCHNTA | NTA 참조를 사용한 프리페치 |
PREFETCHT0 | T0 참조를 사용한 프리페치 |
PREFETCHT1 | T1 참조를 사용한 프리페치 |
PREFETCHT2 | T2 참조를 사용한 프리페치 |
SFENCE | 저장 펜스 |
3. 6. Geode GX/LX 전용 명령어
4. 3DNow!의 장단점
3DNow!는 인텔의 MMX가 지원하지 않던 부동소수점 연산을 지원하기 위해 개발되었다.[11][12] MMX에 21개의 명령어를 추가하여 부동소수점 연산을 가속화했으며, 64비트 MMX 레지스터에 32비트 부동소수점 데이터 2개를 저장하여 각각 독립적으로 연산할 수 있도록 했다. 또한 2개의 MMX 유닛을 병렬 동작시켜 최대 4개의 부동소수점 연산을 가능하게 했다.
3DNow!는 K6-2[13], IDT의 WinChip 2[14]부터 탑재되기 시작했다. 개발 초기에는 AMD, 사이릭스, IDT가 각기 다른 사양을 발표했지만, AMD의 노력으로 세 회사 모두 3DNow!를 채택하게 되었다.
경쟁 제품인 인텔 CPU의 SSE 명령어보다 약 1년 먼저 출시되었음에도 불구하고 보급에 뒤처졌다. 이 때문에 Enhanced 3DNow!, 3DNow! Professional과 같이 세대가 거듭될수록 SSE와 호환되는 명령이 추가되었다.
2010년 8월, AMD는 Bobcat 이후 세대의 프로세서에서는 "3DNow!"와 "3DNow!+"의 두 명령어 (PREFETCH, PREFETCHW)를 제외하고는 지원하지 않는다고 발표[15]하면서, 3DNow!는 사실상 종료되었다.
4. 1. 장점
3DNow!의 장점은 동일한 레지스터에 저장된 두 숫자를 더하거나 곱할 수 있다는 것이다. SSE를 사용하면 각 숫자는 다른 레지스터의 동일한 위치에 있는 숫자와만 결합할 수 있는데, 인텔에서는 이 기능을 '수평' 연산이라고 불렀으며, SSE3 명령어 집합에 추가된 주요 기능이었다.[10]4. 2. 단점
3DNow! 명령어와 MMX 명령어는 동일한 레지스터 파일을 공유하는 반면, SSE는 8개의 새로운 독립적인 레지스터(XMM0
–XMM7
)를 추가한다는 단점이 있다.[10]MMX/3DNow! 레지스터는 표준 x87 FPU와 공유되기 때문에 3DNow! 명령어와 x87 명령어를 동시에 실행할 수 없다. 그러나 x87 FPU에 별칭이 지정되어 있어 3DNow! 및 MMX 레지스터 상태는 기존의 x87 `F(N)SAVE` 및 `F(N)RSTOR` 명령어로 저장하고 복원할 수 있었다. 이 덕분에 운영 체제는 명시적인 수정 없이 3DNow!를 지원할 수 있었지만, SSE 레지스터는 새로운 XMM 레지스터를 제대로 저장하고 복원하기 위해 명시적인 운영 체제 지원이 필요했다(추가된 `FXSAVE` 및 `FXRSTOR` 명령어를 통해).[10]
SSE의 FX* 명령어는 이전 x87 저장 및 복원 명령보다 더 많은 기능을 제공한다. SSE 레지스터 상태뿐만 아니라 x87 레지스터 상태도 저장할 수 있으므로, MMX 및 3DNow! 작업에도 적용 가능하다.[10]
AMD 애슬론 XP 및 K8 기반 코어(애슬론 64)에서 어셈블리 프로그래머들은 3DNow!와 SSE 명령어를 결합하여 레지스터 압력을 줄일 수 있다고 보았지만, 실제로는 공유 기능 유닛에서 명령어가 실행되기 때문에 성능 향상은 어려웠다.[10]
5. 3DNow! 지원 프로세서
참조
[1]
웹사이트
Effectively Utilizing 3DNow in Linux
http://www.linuxjour[...]
Linux Journal
2010-10-03
[2]
웹사이트
3DNow Instructions are Being Deprecated | AMD Developer Central
https://web.archive.[...]
Blogs.amd.com
2010-10-03
[3]
웹사이트
IntelE38xx - MinnowBoard Wiki
https://web.archive.[...]
2017-02-13
[4]
웹사이트
AMD Extensions to the 3DNow and MMX Instruction Sets Manual
https://www.amd.com/[...]
Advanced Micro Devices, Inc.
2008-06-07
[5]
웹사이트
Mobile AMD-K6-III-P Processor-Based Notebook: Ziff-Davis CPUmark 99
https://www.amd.com/[...]
2008-06-07
[6]
웹사이트
AMD Athlon Processor Product Brief
https://www.amd.com/[...]
Advanced Micro Devices, Inc.
2008-06-08
[7]
웹사이트
ISSE
http://avisynth.nl/i[...]
2017-07-19
[8]
웹사이트
Explaining the new 3DNow! Professional Technology
https://web.archive.[...]
Advanced Micro Devices, Inc.
2008-06-08
[9]
웹사이트
AMD Athlon XP Architectural Features
https://www.amd.com/[...]
Advanced Micro Devices, Inc.
2008-06-08
[10]
뉴스그룹
3DNow+ vs SSE on Athlon XP
https://groups.googl[...]
2023-01-04
[11]
간행물
AMD社、AMD-3D技術を"3DNOW!(TM)"と命名
http://www.amd.com/j[...]
日本AMD株式会社
2019-12-22
[12]
웹사이트
3DNow!テクノロジの詳細
http://www3pub.amd.c[...]
AMD
2019-12-23
[13]
웹사이트
AMD、3DNow!対応のK6-2発売
https://pc.watch.imp[...]
2019-12-22
[14]
웹사이트
IDTのWinChip 2販売開始、価格にバラつきあり
https://pc.watch.imp[...]
2019-12-22
[15]
웹사이트
3DNow! Instructions are Being Deprecated
http://www.cpu-world[...]
2017-02-12
[16]
웹사이트
AMD Athlonプロセッサ エンハンスト3DNow!テクノロジ
http://www3pub.amd.c[...]
AMD
2019-12-23
[17]
웹사이트
第109回:2月14日~2月18日
https://pc.watch.imp[...]
2019-12-22
[18]
문서
SSE에서는, XMM레지스터를 조작하는 명령에 더하여, MMX레지스터를 조작하는 정수 연산 명령도 추가하고 있다.
[19]
웹사이트
第179回:8月20日~8月24日
https://pc.watch.imp[...]
2019-12-22
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com