作为AMD处理器历史上最古老的多媒体指令集,3DNow!正在和我们挥手告别,未来的特定AMD处理器将不再提供支持。
AMD通过官方博客宣布,这些新处理器中将不会再设置“3DNow! Instructions”的功能标志位,也就是CPUID扩展功能字的第31位不再为1。开发人员今后必须在使用之前首先检查当前处理器是否还支持3DNow!,避免导致程序运行失败,如需要相关指令可应用更新的SSE系列指令集。
不过例外的是,3DNow!版本的PREFETCH、PREFETCHW指令现在已经自成一体,AMD也计划今后继续提供支持。它们在CPUID规范中的功能标志位是3DNowPrefetch。
但是AMD并没有公布具体哪些处理器将会放弃支持3DNow!,估计会涉及即将推出的Fusion APU加速处理器和明年的“推土机”架构产品。
3DNow!指令集简史:
1996年,Intel Pentium处理器率先加入了MMX指令集,极大地提高了多媒体处理能力,但仅支持整数运算,浮点运算仍然要使用传统的x87协处理器指令。随后在1998年,AMD推出了包含21条新指令的3DNow!指令集(据说是3D No Waiting!的缩写),并用于其K6-2处理器,使之成为第一个能够执行浮点SIMD指令的x86处理器,实现了x86架构下最快的浮点单元,四倍于x87协处理器。
3DNow!指令集赢得了业界的广泛支持,包括微软DX7都对其进行了优化,AMD处理器的游戏性能得以第一次超越Intel,K6-2和随后的K6-III成为市场上的热门产品。
1999年,AMD Athlon处理器发布,3DNow!指令集也增加了5条新指令,成为扩展3DNow!,但是同年Intel又推出了SSE指令集,在提供3DNow!几乎所有功能的同时大大提高了单精度浮点处理速度,还完全支持IEEE754标准,3DNow!优势不再。
之后主流操作系统和软件都开始支持SSE指令集并为其优化,AMD 2000年的新款Athlon处理器(代号雷鸟)中也加入了SSE。之后的时间里,AMD开始致力于AMD64架构的开发,SIMD指令集方面则跟随Intel,连续添加了SSE2、SSE3,不再改进3DNow!。