词条 | Bit Manipulation Instruction Sets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
释义 |
Bit Manipulation Instructions Sets (BMI sets) are extensions to the x86 instruction set architecture for microprocessors from Intel and AMD. The purpose of these instruction sets is to improve the speed of bit manipulation. All the instructions in these sets are non-SIMD and operate only on general-purpose registers. There are two sets published by Intel: BMI (here referred to as BMI1) and BMI2; they were both introduced with the Haswell microarchitecture. Another two sets were published by AMD: ABM (Advanced Bit Manipulation, which is also a subset of SSE4a implemented by Intel as part of SSE4.2 and BMI1), and TBM (Trailing Bit Manipulation, an extension introduced with Piledriver-based processors as an extension to BMI1, but dropped again in Zen-based processors).[1] {{anchor|ABM}}ABM (Advanced Bit Manipulation)ABM is only implemented as a single instruction set by AMD; all AMD processors support both instructions or neither. Intel considers
{{anchor|BMI1}}BMI1 (Bit Manipulation Instruction Set 1)The instructions below are those enabled by the
{{anchor|BMI2}}BMI2 (Bit Manipulation Instruction Set 2)Intel introduced BMI2 together with BMI1 in its line of Haswell processors. Only AMD has produced processors supporting only BMI1 without BMI2; BMI2 is supported by AMDs Excavator architecture and newer.[8]
Parallel bit deposit and extractThe Below are a few 16-bit examples of these operations:{{Citation needed|date=February 2014}}
{{anchor|TBM}}TBM (Trailing Bit Manipulation)TBM consists of instructions complementary to the instruction set started by BMI1; their complementary nature means they do not necessarily need to be used directly but can be generated by an optimizing compiler when supported.[11] AMD introduced TBM together with BMI1 in its Piledriver[4] line of processors; AMD Jaguar and Zen-based processors do not support TBM.[12]
Supporting CPUs
See also{{Portal|Computer programming|Computing}}{{Div col|colwidth=20em}}
References1. ^1 {{cite web|url=http://developer.amd.com/wordpress/media/2012/10/New-Bulldozer-and-Piledriver-Instructions.pdf|title=New "Bulldozer" and "Piledriver" Instructions|accessdate=2014-01-03}} 2. ^1 2 {{cite web |url=http://software.intel.com/file/36945 |title=Intel Advanced Vector Extensions Programming Reference |date=June 2011 |accessdate=2014-01-03 |publisher=Intel |work=intel.com |format=PDF}} 3. ^1 {{cite web|url=http://support.amd.com/TechDocs/24594.pdf|title=AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions|date=October 2013 |accessdate=2014-01-02 |publisher=AMD |work=amd.com|format=PDF}} 4. ^1 {{cite web|last1=Hollingsworth|first1=Brent|title=New "Bulldozer" and "Piledriver" instructions|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/New-Bulldozer-and-Piledriver-Instructions.pdf|publisher=Advanced Micro Devices, Inc.|accessdate=11 December 2014|format=pdf}} 5. ^1 {{cite web|last1=Locktyukhin|first1=Max|title=How to detect New Instruction support in the 4th generation Intel® Core™ processor family|url=https://software.intel.com/en-us/articles/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family|website=www.intel.com|publisher=Intel|accessdate=11 December 2014}} 6. ^{{cite web|url=https://gcc.gnu.org/viewcvs/gcc/branches/gcc-4_8-branch/gcc/config/i386/bmiintrin.h?revision=201047&view=markup|title=bmiintrin.h from GCC 4.8|accessdate=2014-03-17}} 7. ^{{cite web|url=http://chessprogramming.wikispaces.com/BMI1|title=Chess Programming BMI1|accessdate=2014-04-08}} 8. ^1 {{cite web |url=http://www.xbitlabs.com/news/cpu/display/20131018224745_AMD_Excavator_Core_May_Dramatic_Performance_Increases.html |title=AMD Excavator Core May Bring Dramatic Performance Increases |publisher=X-bit labs |date=October 18, 2013 |accessdate=November 24, 2013 |deadurl=yes |archiveurl=https://web.archive.org/web/20131023074809/http://www.xbitlabs.com/news/cpu/display/20131018224745_AMD_Excavator_Core_May_Dramatic_Performance_Increases.html |archivedate=October 23, 2013 |df= }} 9. ^{{cite web|url=http://chessprogramming.wikispaces.com/BMI2|title=chessprogramming - BMI2|accessdate=2014-02-09}} 10. ^{{Cite web | url = http://palms.princeton.edu/system/files/IEEE_TC09_NewBasisForShifters.pdf | title = A New Basis for Shifters in General-Purpose Processors for Existing and Advanced Bit Manipulations | date = August 2009 | accessdate = 2014-02-10 | author1 = Yedidya Hilewitz | author2 = Ruby B. Lee | publisher = IEEE Transactions on Computers | work = palms.princeton.edu | volume = 58 | number = 8 | pages = 1035–1048 | format = PDF}} 11. ^{{cite web|url=http://chessprogramming.wikispaces.com/TBM|title=chessprogramming - TBM|accessdate=2014-02-09}} 12. ^1 2 3 {{cite web |url=http://support.amd.com/TechDocs/52169_KB_A_Series_Mobile.pdf |title=Family 16h AMD A-Series Data Sheet |date=October 2013 |accessdate=2014-01-02 |publisher=AMD |work=amd.com |format=PDF}} 13. ^{{cite web|url=https://gcc.gnu.org/viewcvs/gcc/branches/gcc-4_8-branch/gcc/config/i386/tbmintrin.h?revision=196696&view=markup|title=tbmintrin.h from GCC 4.8|accessdate=2014-03-17}} 14. ^{{cite web|url=http://developer.amd.com/wordpress/media/2012/10/43170_14h_Mod_00h-0Fh_BKDG.pdf|title=BIOS and Kernel Developer's Guide for AMD Family 14h|accessdate=2014-01-03}} Further reading
External links
2 : X86 instructions|Advanced Micro Devices technologies |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。