MMX(명령어 세트)
MMX (instruction set)MMX는 인텔이 설계한 싱글 명령어 멀티 데이터(SIMD) 명령어 세트 아키텍처로 1997년[1][2] 1월 8일 Pentium P5(마이크로 아키텍처) 기반의 마이크로프로세서 제품군과 함께 도입되었습니다.이 제품명은 "MMX 테크놀로지 탑재 펜티엄"[3]입니다.인텔 i860 [4]및 인텔 i750 비디오 픽셀 프로세서에 도입된 것과 같은 유닛에서 개발되었습니다.MMX는 인텔 및 기타 벤더가 1997년 현재[update] IA-32 프로세서에서 지원하는 프로세서 보조 기능입니다.
뉴욕타임스는 슈퍼볼 광고를 포함한 초기 홍보가 "비디오폰과 3-D 비디오 [5]게임을 포함한 화려한 멀티미디어 제품의 신세대"에 초점을 맞추고 있다고 설명했다.
MMX는 이후 인텔과 기타 프로그램에 의해 확장되었습니다.예를 들어 3DNow!, 스트리밍 SIMD 확장(SSE), Advanced Vector Extensions(AVX)의 계속적인 리비전입니다.
개요
명명
MMX는 공식적으로 [7]인텔에 의해 상표화된 무의미한[6] 이니셜리즘입니다.비공식적으로 이니셜은 다양한 의미로 설명되고 있습니다.
- 멀티미디어 eXtension,[1]
- 다중 산술 eXtension 또는
- 매트릭스 산술 eXtension.
Advanced Micro Devices (AMD)는 인텔과의 수많은 법정 다툼 중 하나로 MMX가 "Matrix Math Extensions"의 약자라는 것을 나타내는 마케팅 자료를 인텔로부터 제작했습니다.이니셜리즘은 상표권이 없기 때문에 인텔의 상표를 무효화하려는 시도입니다.1995년 인텔은 자사의 상표 MMX를 남용한 혐의로 AMD와 Cyrix Corp.를 제소했습니다.AMD와 인텔은 MMX를 인텔이 소유한 상표로 인정하고 인텔은 AMD에게 MMX 상표를 프로세서 [8]이름이 아닌 테크놀로지 이름으로 사용할 권리를 부여했습니다.
기술적 세부사항
MMX는 MM0 ~ MM7이라는 이름의 8개의 프로세서레지스터와 그 위에서 동작하는 연산을 정의합니다.각 레지스터의 폭은 64비트이며 64비트 정수 또는 여러 개의 작은 정수를 "팩" 형식으로 저장할 수 있습니다.그러면 32비트 정수 2개, 16비트 정수 4개 또는 8비트 정수에 한 [9]번에 명령을 적용할 수 있습니다.
MMX는 정수 연산만 제공합니다.인텔 i860에서는 처음 개발되었을 때 정수연산을 사용하는 것이 타당했지만(2D와 3D의 양쪽 계산에서 모두 필요) 그래픽카드가 보급됨에 따라 CPU의 정수 SIMD는 그래픽 [citation needed]어플리케이션에서 다소 장황하게 되었습니다.또는 MMX의[vague] 포화 산술 연산을 통해 일부 디지털 신호 처리 애플리케이션의 [citation needed]속도를 크게 높일 수 있습니다.
기존 운영체제에서의 컨텍스트스위치 메커니즘과의 호환성 문제를 피하기 위해 MMX 레지스터는 기존 x87 부동소수점 유닛(FPU) 레지스터의 에일리어스이며 컨텍스트스위치는 이미 저장 및 복원을 실시하고 있습니다.스택처럼 동작하는 x87 레지스터와 달리 MMX 레지스터는 각각 직접 주소를 지정할 수 있습니다(랜덤 액세스).
부동소수점 스택과 관련된 동작은 MMX 레지스터에도 영향을 줄 수 있으며 그 반대도 마찬가지입니다.따라서 이 에일리어싱으로 같은 프로그램에서 [10]부동소수점 동작과 SIMD 동작을 조작하는 것이 어려워집니다.퍼포먼스를 최대화하기 위해 소프트웨어에서는 프로세서를 한쪽 모드 또는 다른 한쪽 모드에서만 사용하는 경우가 많았으며, 이들 모드 간의 비교적 느린 전환은 가능한 한 지연되었습니다.
각 64비트 MMX 레지스터는 80비트 x87 레지스터의 가수부에 대응한다.따라서 x87 레지스터의 상위 16비트는 MMX에서 사용되지 않으며 이러한 비트는 모두 1로 설정되므로 부동소수점 표현에서 NaN(Number) 데이터 유형 또는 무한이 됩니다.소프트웨어는 이를 사용하여 특정 레지스터의 내용이 부동소수점 또는 SIMD 데이터로 사용되는지 여부를 결정할 수 있습니다.
소프트웨어 지원
MMX에 대한 소프트웨어 지원은 [5]천천히 발전했습니다.인텔의 C 컴파일러 및 관련 개발 툴은 MMX 명령어를 호출하기 위한 내장 함수를 취득하고 인텔은 MMX를 사용하여 공통 벡터화 알고리즘 라이브러리를 공개했습니다.인텔과 메트로웍스는 컴파일러에서 자동 벡터화를 시도했지만 C프로그래밍 언어의 연산은 MMX 명령어와 cu 명령어에 제대로 매핑되지 않았습니다.2000년 현재 stom 알고리즘은 일반적으로 어셈블리 [10]언어로 작성되어야 합니다.
후계자
경쟁사의 x86 마이크로프로세서 벤더인 AMD는 자체 3DNow! 명령 세트를 사용하여 인텔의 MMX를 확장했습니다.3DNow는 SIMD 명령 세트에 단정도(32비트) 부동소수점 지원을 추가한 것으로 가장 잘 알려져 있습니다.정수 및 일반적인 확장 기능 중 하나입니다.
MMX에 이어 인텔의 다음 주요 x86 확장 기능은 AMD의 3DNow!가 도입된 지 약 1년 후인 [12]1999년에 Pentium III[11] 패밀리와 함께 도입된 스트리밍 SIMD 확장 기능(SSE)입니다.
SSE는 새로운 128비트 와이드 레지스터 파일(XM0–XMM7)과 새로운 SIMD 명령어를 생성하여 MMX의 핵심 단점(정수 SIMD ops와 부동소수점 ops를 혼재시킬 수 없음)에 대처했습니다.3DNow!와 마찬가지로 SSE는 단정도 부동소수점 연산(32비트)에만 초점을 맞췄습니다.정수 SIMD 연산은 MMX 레지스터와 명령 세트를 사용하여 계속 수행되었습니다.그러나 새로운 XMM 레지스터 파일을 사용하면 SSE SIMD 연산을 MMX 또는 x87 FPU 연산과 자유롭게 혼재시킬 수 있습니다.
Pentium 4에서 도입된 스트리밍 SIMD 확장 2(SSE2)는 XMM 레지스터 파일에 대한 정수(8/16/32비트)와 배정도 부동소수점 데이터 지원을 통해 x86 SIMD 명령 세트를 더욱 확장했습니다.SSE2는 또한 MMX 연산 코드(opcode)가 XMM 레지스터 피연산자를 사용할 수 있도록 했으며, 이후 SSE 리비전에 의해 더 넓은 YMM 및 ZMM 레지스터로 확장되었습니다.
임베디드 어플리케이션의 MMX
인텔과 Marvell Technology Group의 XScale 마이크로프로세서 코어는 PXA270부터 인텔 무선 MMX 테크놀로지(iwMMXt)라는 이름의 ARM 아키텍처 코어로 확장되어 있으며 IA-32 MMX [13][14][15]확장과 같은 기능을 합니다.64비트 정수에서의 산술 연산과 논리 연산을 제공하며, 대신 32비트 연산 2개, 16비트 연산 4개 또는 8비트 연산을 1개의 명령으로 실행할 수 있습니다.확장에는 64비트의 데이터 레지스터 16개와 32비트의 제어 레지스터 8개가 포함됩니다.모든 레지스터는 표준 ARM 아키텍처 코프로세서 매핑메커니즘을 통해 액세스 됩니다.iwMMXt는 코프로세서0 및 1의 공간을 점유하고 있으며, 그 일부 opcode는 이전의 부동소수점 확장자 FPA의 [citation needed]opcode와 충돌합니다.
Marvell의 ARM 프로세서의 최신 버전은 Wireless MMX(WMMX)와 Wireless MMX2(WMMX2) opcode를 모두 지원합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b "Makers Unveil PCs With Intel's MMX Chip". The New York Times. January 9, 1997. Archived from the original on January 13, 2019. Retrieved January 13, 2019.
Intel's new multimedia extension technology, called MMX, ...
- ^ Ch, Rajiv; rasekaran (January 8, 1997). "Intel to unveil faster Pentium chip". The Washington Post. Archived from the original on January 14, 2019. Retrieved January 13, 2019.
- ^ "Embedded Pentium Processors with MMX Technology". Intel. Archived from the original on August 11, 2010. Retrieved July 28, 2007.
- ^ Mittal, Millind; Peleg, Alex; Weiser, Uri (1997). "MMX Technology Architecture Overview" (PDF). Intel Technology Journal. 1 (3). Archived (PDF) from the original on March 4, 2016. Retrieved October 29, 2015.
- ^ a b Calem, Robert E. (January 24, 1997). "Intel's MMX: The Technology Behind the Hoopla". The New York Times. Archived from the original on January 13, 2019. Retrieved January 13, 2019.
- ^ Tanaka, Jennifer (February 16, 1997). "A new chip off the block". Newsweek. Archived from the original on August 31, 2019. Retrieved August 31, 2019.
the name, which doesn't stand for anything
- ^ "Intel Data Center Solutions, IoT, and PC Innovation". Archived from the original on December 17, 2013. Retrieved December 17, 2013.
- ^ "Intel and Advance Micro agree on chip trademark". The New York Times. April 22, 1997. Archived from the original on January 13, 2019. Retrieved January 13, 2019.
- ^ Pfeiffer, Joseph J., Jr. (1997). "MMX Microarchitecture of Pentium Processors With MMX Technology and Pentium II Microprocessors" (PDF). Intel Technology Journal. Archived from the original (PDF) on January 12, 2011. Retrieved September 1, 2017.
- ^ a b Conte, G.; Tommesani, S.; Zanichelli, F. (2000). The long and winding road to high-performance image processing with MMX/SSE (PDF). Proceedings of IEEE International Workshop on Computer Architectures for Machine Perception. Archived from the original (PDF) on January 28, 2016.
- ^ Kay, Alan S. (February 26, 1999). "Pentium III: Buy the Numbers?". The Washington Post. Archived from the original on April 15, 2019. Retrieved January 13, 2019.
- ^ "Microprocessor Hall of Fame". Intel Museum. Archived from the original on April 6, 2008.
- ^ "Intel Brings MMX™ Technology To Intel® Personal Internet Client Architecture-Based Wireless Devices". Retrieved July 28, 2022.
{{cite web}}
: CS1 maint :url-status (링크) - ^ "Intel Delivers Next-Generation Processors Specifically Designed For Cell Phones And Wireless PDAs". Archived from the original on January 2, 2012. Retrieved July 28, 2022.
- ^ "World's smallest PXA270 embedded CPU card?". EE Times. September 15, 2004. Retrieved July 28, 2022.
{{cite web}}
: CS1 maint :url-status (링크)
외부 링크
- 인텔 인테센틱스 가이드
- MMX 테크놀로지인텔 Pentium 프로세서 문서
- IA 소프트웨어 개발자 설명서, Vol 1(PDF), MMX 프로그래밍은 8장 참조