3DNow!

3DNow!
AMD 3DNow!
3dnow-logo.svg
설계 회사고도의 마이크로 디바이스
소개했다1998
유형명령 집합 아키텍처

3DNow!Advanced Micro Devices(AMD)에서 개발한 x86 명령어세트의 권장되지 않는 확장입니다.기본 x86 명령 세트에 SIMD(Single Instruction Multiple Data) 명령을 추가하여 벡터 레지스터를 사용하여 부동소수점 벡터 연산의 벡터 처리를 수행할 수 있으므로 그래픽 집약적인 응용 프로그램의 성능이 향상됩니다.3DNow를 구현한 최초의 마이크로프로세서는 1998년에 도입된 AMD K6-2입니다.응용 프로그램이 적절하면 속도가 약 2-4배 [1]향상되었습니다.

그러나 명령어 세트는 큰 인기를 끌지 못했고, 2010년 8월 AMD는 2개의 명령어를 제외하고 향후 AMD 프로세서에서 3DNow 지원이 중단될 것이라고 발표했습니다.PREFETCH그리고.PREFETCHW설명)[2]을 참조해 주세요.2개의 순서는, Bay-Trail Intel [3]프로세서에서도 사용할 수 있습니다.

역사

3D노우는 PC멀티미디어와 게임에서 3D그래픽이 주류를 이루던 시기에 개발됐다.3D 그래픽스의 실시간 디스플레이는 부동소수점 계산을 수행하기 위해 호스트 CPU의 부동소수점 유닛(FPU)에 크게 의존했습니다.이 작업은 AMD의 K6 프로세서가 경쟁 제품인 인텔 Pentium II보다 쉽게 앞섰습니다.

MMX 명령 세트에 대한 확장으로, 3DNow 명령 집합은 MMX SIMD 레지스터를 증강하여 단정도(32비트) 부동소수점 데이터에 대한 공통 산술 연산(추가/감산/멀티)을 지원합니다.느린 x87 FPU 대신 AMD의 3DNow를 사용하도록 작성된 소프트웨어는 명령 혼합에 따라 최대 4배 더 빠르게 실행될 수 있습니다.

버전

3 DNow

3DNow 테크놀로지의 첫 번째 구현에는 SIMD 부동소수점 연산을 지원하는 21개의 새로운 명령이 포함되어 있습니다.3DNow 데이터 포맷은 고정밀 부동 소수점 패킹되어 있습니다.3DNow 명령 세트에는 SIMD 정수 연산, 데이터 프리페치 및 보다 빠른 MMX-to-Floating Point 스위칭 동작도 포함됩니다.나중에 인텔은 SSE(Streaming SIMD Extensions)로 알려진 Pentium III에 유사한 (호환성이 없는) 명령을 추가하게 됩니다.

3DNow 부동소수점 명령은 다음과 같습니다.

  • PI2FD– 32비트의 정수를 부동소수로 변환
  • PF2ID– 패킹된 부동 소수점에서 32비트 정수 변환
  • PFCMPGE– 부동소수점 비교(더 크거나 같음)
  • PFCMPGT– 부동 소수점 비교 (패킹)
  • PFCMPEQ– 패킹된 부동 소수점 비교, 동일
  • PFACC– 패킹된 부동 소수점 누적
  • PFADD– 부동 소수점 추가 패키지
  • PFSUB– 패킹된 부동 소수점 감산
  • PFSUBR– 패킹된 부동 소수점 역감산
  • PFMIN– 최소 부동 소수점 포장
  • PFMAX– 포장된 부동 소수점 최대값
  • PFMUL– 패킹된 부동 소수점 곱셈
  • PFRCP– 패킹된 부동 소수점 역근사
  • PFRSQRT– 패킹된 부동 소수점 역제곱근 근사치
  • PFRCPIT1– 패킹된 부동 소수점 역수, 첫 번째 반복 단계
  • PFRSQIT1– 패킹된 부동 소수점 역제곱근, 첫 번째 반복 단계
  • PFRCPIT2– 패킹된 부동 소수점 역수/호수 제곱근, 두 번째 반복 단계

3DNow 정수 명령어는 다음과 같습니다.

  • PAVGUSB– 8비트 부호 없는 정수의 평균화 (패킹
  • PMULHRW– 16비트 정수를 반올림으로 곱한 팩

3DNow 퍼포먼스 향상 순서는 다음과 같습니다.

  • FEMMS– MMX 또는 부동소수점 상태의 신속한 입출구
  • PREFETCH/PREFETCHW– 최소 32바이트의 행을 L1 데이터 캐시에 프리페치합니다(이는 권장되지 않는 명령입니다).

3DNow 확장

3DNow의 두 번째 버전이 공식적으로 자체 상호를 부여받았다는 증거는 거의 또는 전혀 없습니다.이로 인해 이 새로운 명령어세트를 언급하는 매뉴얼에 혼동이 발생하고 있습니다.가장 일반적인 용어는 확장 3DNow, 확장 3DNow3DNow+입니다.확장 3DNow라는 문구는 AMD 웹사이트의 몇 군데에서 찾을 수 있습니다.단, 확장자는 문법적으로만 사용되거나 확장자가 없는 프로세서를 강조하기 위해 사용됩니다(이 중 가장 주목할 만한 것은 확장자가 [4][5]없는 K6-II-P 벤치마크 페이지 참조).

이 3DNow 명령어세트에 대한 확장은 1세대 Athlon 프로세서에서 도입되었습니다.Athlon은 5개의 새로운 3DNow 명령과 19개의 새로운 MMX 명령을 추가했다.이후 K6-2+K6-III+(모두 모바일 시장을 대상으로 함)에는 5개의 새로운 3DNow 명령이 포함되었으며 19개의 새로운 MMX 명령은 제외되었습니다.DSP를 활성화하기 위해 새로운 3DNow 명령이 추가되었습니다.스트리밍 미디어를 활성화하기 위해 새로운 MMX 명령이 추가되었습니다.

19개의 새로운 MMX 명령어는 인텔 SSE1 명령 세트의 서브셋입니다.AMD 테크니컬 매뉴얼에서는,[4] 3 DNow 확장과는 별도로, 이러한 순서를 구분하고 있습니다.다만, AMD의 고객 제품 자료에서는, 24개의 새로운 명령의 메리트가 모두, 고도의 3 DNow [6]테크놀로지에 기인하고 있는 것은, 이러한 구별이 명확하지 않습니다.이로 인해 프로그래머들은 19개의 새로운 MMX 명령어에 대해 그들만의 이름을 생각해냈다.가장 일반적인 은 Integer SSE(ISSE)[7]입니다.SSEMMXMMX2는 퍼블릭도메인 섹터의 비디오필터 문서에도 기재되어 있습니다.ISSE는 SSE의 초기 이름인 인터넷 SSE를 참조할 수도 있습니다.

3DNow 확장 DSP의 순서는 다음과 같습니다.

  • PF2IW– 부호 확장을 포함한 부동 소수점-정수 단어 변환 팩
  • PI2FW– 정수 워드에서 부동소수점 변환 팩
  • PFNACC– 패킹된 부동 소수점 음의 누적
  • PFPNACC– 패킹된 부동소수점 혼합양수-음수 누적
  • PSWAPD– 스와프 이중어 패키지

MMX 확장 지침(Integer SSE)은 다음과 같습니다.

  • MASKMOVQ– 바이트 마스크를 사용한 스트리밍(캐시 바이패스) 저장소
  • MOVNTQ– 스트리밍(캐시 바이패스) 스토어
  • PAVGB– 부호 없는 바이트의 패킹 평균
  • PAVGW– 서명되지 않은 단어의 포장 평균
  • PMAXSW– 최대 서명이 들어간 단어 수
  • PMAXUB– 포장된 최대 부호 없는 바이트 수
  • PMINSW– 최소 서명 단어 포장
  • PMINUB– 패킹된 최소 부호 없는 바이트
  • PMULHUW– 높은 부호 없는 단어를 여러 개 조합하여 포장
  • PSADBW– 절대 바이트 차이의 팩합
  • PSHUFW– 포장된 셔플 워드
  • PEXTRW– 정수 레지스터에 단어 추출
  • PINSRW– 정수 레지스터에서 단어 삽입
  • PMOVMSKB– 바이트 마스크를 정수 레지스터로 이동합니다.
  • PREFETCHNTA– NTA 참조를 사용하여 프리페치
  • PREFETCHT0– T0 참조를 사용하여 프리페치
  • PREFETCHT1– T1 참조를 사용하여 프리페치
  • PREFETCHT2– T2 참조를 사용하여 프리페치
  • SFENCE– 스토어 펜스

3DNow 프로페셔널

3DNow Professional은 3DNow 테크놀로지와 완전한 SSE 명령어 세트(SSE1, SSE2, SSE3)[8]를 조합한 프로세서를 나타내기 위해 사용되는 상호입니다.Athlon XP는 3DNow Professional 상표명을 가진 최초의 프로세서이며, Athlon 패밀리에서 완전한 SSE1 명령 세트를 지원하는 최초의 제품입니다(총 21개의 원본 3DNow 명령어, 5개의 3DNow 확장 DSP 명령어, 19개의 MMX 확장 명령어, 52개의 SSE 명령어).대응성).[9]

3DNow 및 Geode GX/LX

Geode GX와 Geode LX는 현재 다른 모든 프로세서에는 없는 새로운 3DNow 명령을 2개 추가했습니다.

Geode GX/LX에 고유한 3DNow "전문" 명령은 다음과 같습니다.

  • PFRSQRTV– 32비트 플로트 쌍에 대한 역제곱근 근사치
  • PFRCPV– 32비트 플로트 쌍에 대한 역근사

장점과 단점

3DNow의 장점 중 하나는 동일한 레지스터에 저장된 두 숫자를 추가하거나 곱할 수 있다는 것입니다.SSE에서는, 각 번호를 다른 레지스터의 같은 위치에 있는 번호와 조합할 수 있습니다.인텔 용어로는 수평이라고 불리는 이 기능은 SSE3 명령 세트에 추가된 주요 기능입니다.

3DNow의 단점은 3DNow 명령과 MMX 명령이 동일한 레지스터 파일을 공유하는 반면 SSE는 8개의 새로운 독립 레지스터를 추가한다는 것입니다.XMM0XMM7).

MMX/3DNow 레지스터는 표준 x87 FPU에 의해 공유되므로 3DNow 명령과 x87 명령을 동시에 실행할 수 없습니다.단, x87 FPU에 앨리어스 되어 있기 때문에 3DNow 및 MMX 레지스터 상태는 기존 x87에서 저장 및 복원할 수 있습니다.F(N)SAVE그리고.F(N)RSTOR지침들.이 어레인지에서는, operating system은 명시적으로 변경하지 않고 3 DNow 를 서포트할 수 있었습니다.SSE 레지스터에서는, 새로운 XMM 레지스터를 적절히 보존해 복원하기 위해서(추가한 XM 레지스터를 경유해) 명시적인 operating system의 서포트가 필요했습니다.FXSAVE그리고.FXRSTOR를 참조해 주세요).

FX* 명령어는 SSE 레지스터 상태뿐만 아니라 x87 레지스터 상태(MMX 및 3DNow 레지스터도 저장할 수 있음)도 저장할 수 있기 때문에 이전 x87 저장 및 복원 명령을 업그레이드한 것입니다.

AMD Athlon XP 및 K8 기반 코어(Athlon 64)에서는 어셈블리 프로그래머가 3DNow 명령과 SSE 명령을 조합하여 레지스터 압력을 줄일 수 있지만 실제로는 공유 기능 [10]유닛에서 실행되는 명령으로 인해 성능을 향상시키는 것은 어렵습니다.

3DNow를 지원하는 프로세서

  • K6-2 이후의 모든 AMD 프로세서는 K6, Athlon, Athlon 64 및 Phenom 아키텍처 패밀리를 기반으로 합니다.불도저, Bobcat 및 Zen 아키텍처 프로세서 및 그 파생 제품에서는 지원되지 않습니다.
  • 3DNow를 지원하는 마지막 AMD APU 프로세서는 A8-3870K입니다.
  • National Semiconductor Geode, 이후 AMD Geode.
  • VIA C3(Cyrix III라고도 함) "Samuel", "Samuel 2" "Ezra" 및 "Eden ESP" 코어.
  • IDT Winchip 2

레퍼런스

  1. ^ "Effectively Utilizing 3DNow in Linux". Linux Journal. Dec 1, 1999. Archived from the original on 2011-06-07. Retrieved 2010-10-03.
  2. ^ "3DNow Instructions are Being Deprecated AMD Developer Central". Blogs.amd.com. 2010-08-18. Archived from the original on 2010-10-24. Retrieved 2010-10-03.
  3. ^ "IntelE38xx - MinnowBoard Wiki". Archived from the original on 11 February 2017. Retrieved 13 February 2017.
  4. ^ a b "AMD Extensions to the 3DNow and MMX Instruction Sets Manual" (PDF). Advanced Micro Devices, Inc. March 2000. Archived (PDF) from the original on 2008-05-17. Retrieved 2008-06-07.
  5. ^ "Mobile AMD-K6-III-P Processor-Based Notebook: Ziff-Davis CPUmark 99". Archived from the original on 2008-07-24. Retrieved 2008-06-07. Incorrect title on page: Mobile AMD-K6-III+ and Mobile AMD-K6-2+ Processors with Enchanced [sic] 3DNow! Technology
  6. ^ "AMD Athlon Processor Product Brief". Advanced Micro Devices, Inc. Archived from the original on 2008-02-25. Retrieved 2008-06-08.
  7. ^ "ISSE". AviSynth. Archived from the original on 2017-07-02. Retrieved 2017-07-19.
  8. ^ "Explaining the new 3DNow Professional Technology". Advanced Micro Devices, Inc. Archived from the original on 2009-01-21. Retrieved 2008-06-08.
  9. ^ "AMD Athlon XP Architectural Features". Advanced Micro Devices, Inc. Archived from the original on 2008-02-25. Retrieved 2008-06-08.
  10. ^ "3DNow+ vs SSE on Athlon XP - comp.sys.ibm.pc.hardware.chips Google Groups". Archived from the original on 2012-10-03. Retrieved 2010-10-03.

추가 정보

외부 링크