I'm not sure why you believe so strongly that A14 will be ARMv9. AFAIK ARM hasn't officially announced v9 yet, so it is unlikely to be finalized yet. Apple can't ship chips with a spec that ARM could still decide to change.
It takes around three months from start to finish to fab a wafer, then you do testing/packaging of the dies, deliver them to where products are being assembled, and assemble/test them to get them ready to ship. That means the first A14 iPhone wafers have already left TSMC. The first A14 Mac wafers for Macs that will be sold in December pretty much have to start fabrication any day now and more likely are already partway through that process.
While Apple obviously has people heavily involved in defining v9 they don't get the final say on it nor do they have the power to veto last minute changes to the spec. They couldn't have put it in the A14 design that's been finalized for a while now without taking on the considerable risk that they have to disable the whole thing if ANYTHING changes. It can really only go in an 'in progress' chip design where they still have time to make any necessary changes before it is fabbed. If the spec is pretty close to release they could be putting it in A15, and so long as that spec is made final (internally at least if not publicly announced yet) before A15 tapes out (which must happen no later than the end of the year, preferably several months sooner) they'd be OK.
Just look at the timeline for ARMv8, it was announced by ARM in October 2011, Apple shipped the first ARMv8 chip almost two years later in September 2013 - and everyone was shocked at how quickly they'd done that. Now you expect Apple to ship a chip before its architecture is announced??
Not sure why ARMv9 even matters, what do you believe it will bring that you are so hot and bothered about? SVE is already in ARMv8. SVE2 adds some new (mostly non FP related, and probably not all that important to Apple's customers versus what they'd get with SVE alone) capabilities on top of SVE and one would assume it will be marked optional in a future point release of ARMv8.
Andrei F has said on a few occasions that (not exactly officially, but strongly hinted behind the scenes) ARM will ship v9 silicon in 2022.
Now starting with that what can you say about Apple?
On the one hand, Apple has (so far) been a lot more aggressive than ARM about rolling out any new feature of the ARM ISA.
On the second hand 2021 is still before 2022; maybe it's the A15 that will ARMv9?
On the third hand, it seems sub-optimal to release a year, and only a year, of transition ARM Mac's.
On the fourth hand, Apple has done this before. The first year of Intel Macs were on 32-bit only silicon, the next year brought x86-64 silicon, and, yes, of course in time that first year of Intel Macs were left behind.
Much of how much this matters hinges on how different v9 is from v8. Is it
- essentially a legal change, an opportunity to establish a new baseline of minimum capabiliies OR
- essentially v8++, so exactly the same as v8, plus the new stuff (SVE2, 8.6) PLUS perhaps a few more instructions (so kinda like ARMv8.7) OR
- is it an opportunity to reset a bunch of stuff that, after ~12 years of experience, clearly could be done better? Maybe some re-encoding of the instruction set? Some changes to details of the memory model? A way to pack the various high bits that are now used as tags by everyone (Swift/Objective C; PAC; MTE; santitizers; ...) differently given that servers will want to use large physical memories and OS's will want higher entropies for their security tagging.
My guesses are
- A14 will be ARMv8, A15 will be ARMv9
- A15 will run both v8 and v9 code, just like we had a few years of simultaneous ARMv7 and v8 code on iOS
My hope is that
- v9 will do something to provide for both larger tags and the same large (or larger) address space -- but I have no idea quite how this could be done well. One can imagine suboptimal (though likely practicable solutions, like PAE [short term, not my choice] or IBM style segments [slightly better, slightly more extensible, still not great]) but I'd hope for something better than those. The obvious choice of going to 128-bit pointers seems too heavyweight? (Thought not ABSOLUTELY crazy! The more your language has abstracted pointers, and can mostly use offset indices [at a variety of lengths from 8 to 64+ bits] rather than pure pointers, the less expensive it is. Safari did this with JS, for a big memory savings. LLVM has done it for a fair bit of their internal data structures. Swift (and Java?) could probably do more of it if they had a good reason to.
All the ALU side of things [adding offsets to pointers] could be done on the lower 64 bits, so you don't really even need to widen ALU; you just need a few data paths where what's propagated as an "address register" is in fact a register pair, even value is the address, odd value is the tags?...)
I agree with you on timelines. However we don't know the extent to which Apple gets to work with ARM REALLY early in the Apple SoC design process. The big possible example here is AMX. Is it independent Apple? Or is it ARMv8.6 matrix extensions (which were announced the same month as A13 and AMX were announced)?