Intel has just announced APX, “the next major step in the evolution of Intel® architecture”:
Intel®Advanced Performance Extensions (Intel® APX) expands the Intel® 64 instruction set architecture with access to more registers and adds various new features that improve general-purpose performance. The extensions are designed to provide efficient performance gains across a variety of workloads without significantly increasing silicon area or power consumption of the core.
The most significant changes are:
Doubles the number of general purpose registers from 16 to 32;
New three operand instructions (e.g. adding ability to subtract register1 from register2, and place the result in register3);
New instructions to PUSH / POP two general purpose registers at once;
New conditional load, store and compare instructions;
Adds the option to suppress status flag writes for common instructions;
New 64-bit absolute jump instruction.
The announcement describes some of the gains from increasing the number of registers:
Intel® APX doubles the number of general-purpose registers (GPRs) from 16 to 32. This allows the compiler to keep more values in registers; as a result, APX-compiled code contains 10% fewer loads and more than 20% fewer stores than the same code compiled for an Intel® 64 baseline. Register accesses are not only faster, but they also consume significantly less dynamic power than complex load and store operations.
The announcement includes links to very detailed architecture documentation (a 300+ page pdf) for those who want more detail.
On a brief historical note, APX was the marketing term - an abbreviation for ‘Advanced Performance arCHitecture’ (CH corresponding the Greek letter Chi Χ or in lower case χ) - that was used for the iAPX 432 and, briefly for x86 processors, for example the 80286 was known for a while as the iAPX 286.
Alongside APX, Intel also announced a new vector ISA, AVX10:
Intel® Advanced Vector Extensions 10 (Intel® AVX10) represents the first major new vector ISA since the introduction of Intel® Advanced Vector Extensions 512 (Intel® AVX-512) in 2013. This ISA will establish a common, converged vector instruction set across all Intel architectures, incorporating the modern vectorization aspects of Intel AVX-512.
AVX10 support across ‘performance’ and ‘efficiency’ cores is outlined:
A “converged” version of Intel AVX10 with maximum vector lengths of 256 bits and 32-bit opmask registers will be supported across all Intel processors, while 512-bit vector registers and 64-bit opmasks will continue to be supported on some P-core processors.
This should all be taken together with the proposed (actually a discussion paper, but the direction of travel is clear) removal of a number of legacy features and a possible move to a 64-bit only version of the architecture.
This seems to answer one question: what happens to the x86 architecture? The answer, it appears now, that it will be evolved and not replaced. That’s not surprising. x86 is just too big and important to sunset. It’ll be around for a long time.
It also raises lots of questions, most of which we will only know the answers to over the coming years:
When will we see the first hardware that includes APX?
Why did Intel announce APX without the corresponding hardware?
How will AMD respond to APX? AMD will be able to copy APX and AVX10 instructions, but when will it do so?
Is it enough to help x86 continue to (sorry Intel Architecture) compete?
Why didn't Intel / AMD do this a decade ago?
It’s remarkable that x86 can continue, over almost 50 years, to evolve out of the original 16-bit architecture of the 8086 and still remain competitive.
I couldn’t help but smile, though, at the final paragraph in the announcement. Talk about making a virtue out of a necessity.
Intel® APX demonstrates the advantage of the variable-length instruction encodings of x86 – new features enhancing the entire instruction set can be defined with only incremental changes to the instruction-decode hardware. This flexibility has allowed Intel® architecture to adapt and flourish over four decades of rapid advances in computing – and it enables the innovations that will keep it thriving into the future.
Please do share your thoughts on APX in the comments.
Would love a section or follow up to this piece with your specific thoughts!