Article count:25239 Read by:103424336

Account Entry

AMD's instruction set is heading for extinction

Latest update time:2024-07-19
    Reads:

????If you hope to meet more often, please mark the star ?????? and add it to your collection~


Source: The content is compiled from tomshardware by Semiconductor Industry Observer (ID: i cba nk), thank you.


AMD's nearly ancient 3DNow! instructions have been fading from view. The open source compiler LLVM has finally removed support for an instruction set that has not been supported on AMD CPUs since 2011.


The 3DNow! instruction set was introduced in 1998 to compete with Intel's MMX. It added single instruction, multiple data (SIMD) instructions to AMD's base x86 instruction set, enabling the CPU to vectorize floating-point operations using vector registers.


AMD replaced 3DNow! with the newer SSE equivalent in 2011, and stopped including the feature flag starting with the K10 Bulldozer CPUs. However, since the CPUs were still in use for quite some time, it did take some time for compilers to start dropping support for the instruction set.


In 2021, Linux phased out the instruction set from its kernel, but LLVM continued to support it long after everyone else had given up on it. The developers behind the LLVM compiler also worked on removing MMX types and instructions from the tool.


A commit for LLVM 19, expected in September or October, confirms the impending removal.


"This set of instructions is supported only by AMD chips prior to the K6-2 (introduced in 1998) and the "Bulldozer" series (2011). They were never widely used, as they were effectively superseded by the more widely implemented SSE (first implemented in AMD's Athlon XP in 2001).


This was a move towards removing the use of MMX registers altogether. Since the 3DNow! intrinsics serve little purpose and modern hardware doesn't even implement them, simple removal seemed the best option."


AMD 3DNow! instructions were very popular in the late 1990s and early 2000s for improving gaming, video playback, and Adobe Photoshop workflows. Later, Intel released SSE instructions, which dominated overall. When Intel released SSE2, AMD adopted it and abandoned its older SIMD instruction set.


Developers who need to write code for older AMD processors can still use 3DNow! instructions in assembly language, including inline assembly code using LLVM. Otherwise, everything related to 3DNow! should be considered deprecated and no longer used.


In fact, as early as 2010, there were reports that AMD bid farewell to the 3DNow! instruction set.


3DNow! was introduced in 1998 as a response to the growing multimedia needs of AMD's K6-2 chip at the time, but around 2010, AMD announced that the instruction set would be deprecated.


AMD introduced the 3DNow! ™ instruction set back in the K6-2 era to execute Single Instruction Multiple Data (SIMD) instructions, also known as vectorized instructions. These instructions are primarily used for graphics-intensive applications and even audio processing. Since then, we have added many SIMD instruction sets to processors, such as the widely used Streaming SIMD Extensions (SSE) instruction set and its successors.


The 3DNow! instructions have been deprecated and will no longer be supported on some upcoming AMD processors. In these processors, the 3DNow! instruction feature flag bit will not be set. This is indicated by EDX bit 31 of the CPUID function 8000_0001h. Now is a good time to remind developers how important it is to check for runtime support for features before using them. We have always recommended checking for this feature at runtime as a best practice, but now it is important to check for this feature to help prevent program failures if the program attempts to execute this instruction without first checking if the feature is supported. While the 3DNow! instructions were being developed, programmers were used to using a "try and catch" model to check if the processor supports an instruction or instruction set. This is when an application "tries" to execute an instruction to see if it is available. If the application receives an undefined exception (#UD) from the processor, it assumes that the instruction set is not available. These types of applications may not run very well under newer virtual machines. But that is a topic for another blog.


Although 3DNow! was revolutionary at the time, it was not very popular and has been superseded by numerous iterations of the SSE instruction set. However, this news is very important for any developers using it and for those managing virtualized environments that use it.


Reference Links

https://www.tomshardware.com/pc-components/cpus/amd-3dnow-instructions-finally-extinct-as-llvm-compiler-drops-support


Click here???? to follow us and lock in more original content

END


*Disclaimer: This article is originally written by the author. The content of the article is the author's personal opinion. Semiconductor Industry Observer reprints it only to convey a different point of view. It does not mean that Semiconductor Industry Observer agrees or supports this point of view. If you have any objections, please contact Semiconductor Industry Observer.



Today is the 3831st content shared by "Semiconductor Industry Observer" for you, welcome to follow.


Recommended Reading


"The first vertical media in semiconductor industry"

Real-time professional original depth

Public account ID: icbank


If you like our content, please click "Reading" to share it with your friends.

 
EEWorld WeChat Subscription

 
EEWorld WeChat Service Number

 
AutoDevelopers

About Us Customer Service Contact Information Datasheet Sitemap LatestNews

Room 1530, Zhongguancun MOOC Times Building,Block B, 18 Zhongguancun Street, Haidian District,Beijing, China Tel:(010)82350740 Postcode:100190

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号