There's no reason that couldn't be a half-truth - it could be a PowerVR with certain components replaced, or even the entire GPU replaced but with PowerVR-like commands and structure for compatibility reasons. Kind of like how AMD designed their own x86 chip despite it being x86 (Intel's architecture).
Also, if you read Hector Martin's tweets (he's doing the reverse-engineering), Apple replacing the actual logic while maintaining the "API" of sorts is not unheard of. It's what they do with ARM themselves - using their own ARM designs instead of the stock Cortex ones while maintaining ARM compatibility.*
*Thus, Apple has a right to the name "Apple Silicon" because the chip is designed by Apple, and just happens to be ARM-compatible. Other chips from almost everyone else use stock ARM designs from ARM themselves. Otherwise, we might as well call AMD an "Intel design" because its x86 by the same logic.
> Apple replacing the actual logic while maintaining the "API" of sorts is not unheard of.
They did this with ADB, early PowerPC systems contained a controller chip that has the same API that was implemented in software in the 6502 IOP coprocessor in the IIfx/Q900/Q950.
Didn't Apple have a large or even dominant role in the design of the ARM64/AArch64 architecture? I remember reading somewhere that they developed ARM64 and essentially "gave it" to ARM who accepted but nobody could understand at the time why a 64 bit extension to ARM was needed so urgently, and why some of the details of the architecture had been designed the way they had. Years later with Apple Silicon it all became clear.
> arm64 is the Apple ISA, it was designed to enable Apple’s microarchitecture plans. There’s a reason Apple’s first 64 bit core (Cyclone) was years ahead of everyone else, and it isn’t just caches
> Arm64 didn’t appear out of nowhere, Apple contracted ARM to design a new ISA for its purposes. When Apple began selling iPhones containing arm64 chips, ARM hadn’t even finished their own core design to license to others.
> ARM designed a standard that serves its clients and gets feedback from them on ISA evolution. In 2010 few cared about a 64-bit ARM core. Samsung & Qualcomm, the biggest mobile vendors, were certainly caught unaware by it when Apple shipped in 2013.
> > Samsung was the fab, but at that point they were already completely out of the design part. They likely found out that it was a 64 bit core from the diagnostics output. SEC and QCOM were aware of arm64 by then, but they hadn’t anticipated it entering the mobile market that soon.
> Apple planned to go super-wide with low clocks, highly OoO, highly speculative. They needed an ISA to enable that, which ARM provided.
> M1 performance is not so because of the ARM ISA, the ARM ISA is so because of Apple core performance plans a decade ago.
> > ARMv8 is not arm64 (AArch64). The advantages over arm (AArch32) are huge. Arm is a nightmare of dependencies, almost every instruction can affect flow control, and must be executed and then dumped if its precondition is not met. Arm64 is made for reordering.
> > M1 performance is not so because of the ARM ISA, the ARM ISA is so because of Apple core performance plans a decade ago.
This is such an interesting counterpoint to the occasional “Just ship it” screed (just one yesterday I think?) we see on HN.
I have to say, I find this long form delivery of tech to be enlightening. That kind of foresight has to mean some level of technical saaviness at high decision making levels. Whereas many of us are caught at companies with short sighted/tech naive leadership who clamor to just ship it so we can start making money and recoup the money we’re losing on these expensive tech type developers.
I think the "just ship it" method is necessary when you're small and starting out. Unless you are well funded, you couldn't afford to do what Apple did.
AArch64 does not resemble MIPS at all (beyond the fact that both use fixed-length instructions and separate register-register and load-store instruction groups; these RISC principles had already been used in IBM 801 about 5 years before MIPS, and then they have been used in more than a dozen of other CPU architectures, many of which are more similar to AArch64 than MIPS is).
Therefore, there is no basis for saying that AArch64 is a cleaned-up MIPS-like ISA. Only RISC-V is a MIPS-like ISA.
One of the few features of AArch64 that can be said to be similar to MIPS was its main mistake.
In the initial ARMv8.0 version, the only means provided for implementing atomic operations was a load-and-reserve/store-conditional instruction pair.
This kind of instruction has been popularized by MIPS II, but it had not been invented by MIPS, but by Jensen et al. (November 1987), for the S-1 AAP multiprocessor.
While this instruction pair allows the implementation of lock-free/wait-free data structures, it can be extremely inefficient for implementing locks in systems with many cores (because progress is not guaranteed), so in the ARMv8.1 version the initial mistake has been corrected, by adding atomic instructions of the type fetch-and-op, besides the MIPS-like LL/SC pair.
The complex features of ARM64 were not newly designed by and large, they were mostly carried over from ARM32 - mostly to take advantage of shared ARM32/ARM64 implementation. Much of the actual design work involved in ARM64 was simplification and things like adding a zero register to the ISA, which is pretty comparable to MIPS.
A zero register already existed in some computers with vacuum tubes, almost 70 years ago, this is not a new idea that can be attributed to MIPS or RISC.
It is a good feature, which can reduce substantially the number of instructions that must be implemented, because many single-operand operations are just special cases of double-operand operations with one null operand.
This is why it was used in many early computers, which had to be simple due to the limitations of their technology, and then it was used again in most RISC CPUs, which have been simplified intentionally (and not only in MIPS; among the more successful RISC ISAs also IBM POWER has it; only 32-bit ARM does not have it, due to its unusually low number of general-purpose registers, in comparison with the other RISC ISAs).
Apple, Acorn Computers and VLSI were founding partners of ARM, if I remember correctly.
My StrongArm powered RiscPC was amazing for the time. It was strange that the contemporaneous Newton was powered by the same (and in some ways better) processor.
The connection between ARM processors being used in desktop and mobile devices is in its early DNA.
They do, and their microarchitecture is unambiguously, hugely different to anything else (some details in 1). The last Apple Silicon chip to use a standard Arm design was the A5X, whereas they were using customised PowerVR GPUs until I think the A11.
They are one of a handful of companies that hold a license allowing them to both customize the reference core and to implement the Arm ISA through their own silicon design. Everyone else's SoCs all use the same Arm reference mask. Qualcomm also holds such a license, which owes to their Snapdragon SoC, just like Apple's A- and M-series, occupying a performance hierarchy above everything else Arm.
According to Hector Martin (the project lead of Asahi) in previous threads of the subject[0], Apple actually has an "architecture+" license which is completely exclusive to them, thanks to having literally been at the origins of ARM: not only can Apple implement the ISA on completely custom silicon rather than license ARM cores, they can customise the ISA (as in add instructions, as well as opt out of mandatory ISA features).
The only Qualcomm designed 64-bit mobile core so far was the Kyro core in the 820. They then assigned that team to server chips (Centriq) then sacked the whole team when they felt they needed to cut cash flow to stave off Avago/Broadcom. The "Kyro" cores from 835 on are rebadged/adjusted ARM cores.
IMO the Kyro/820 wasn't a major failure, it turned out a lot better than the 810 which had A53/A57 cores.
And then they decided they needed a mobile CPU team again and bought Nuvia for ~US$1 Billion.
Qualcomm did use their own design called Kyro for a little while, but is now focusing on cores designed by Nuvia which they just bought for the future.
As for Apple, they've designed their own cores since the Apple A6 which used the Swift core. If you go to the Wikipedia page, you can actually see the names of their core designs, which they improve every year. For the M1 and A14, they use Firestorm High-Performance Cores and Icestorm Efficiency Cores. The A15 uses Avalanche and Blizzard. If you visit AnandTech, they have deep-dives on the technical details of many of Apple's core designs and how they differ from other core designs including stock ARM.
The Apple A5 and earlier were stock ARM cores, the last one they used being Cortex A9.
For this reason, Apple is about as much an ARM chip as AMD is an Intel chip. Technically compatible, implementation almost completely different. It's also why Apple calls it "Apple Silicon" and it is not just marketing, but actually justified just as much as AMD not calling their chips Intel derivatives.
Kyro started as custom but flopped in the Snapdragon 820 so they moved to a "semi-custom" design, it's unclear how different it really is from the stock Cortex designs.
> Qualcomm did use their own design called Kyro for a little while
Before that, they had Scorpion and Krait, which were both quite successful 32 bit ARM compatible cores at the time.
Kryo started as an attempt to quickly launch a custom 64 bit ARM core and the attempt failed badly enough that Qualcomm abandoned designing their own cores and turned to licensing semi-custom cores from ARM instead.
To be blunt, you're asking about questions that could be solved with a quick google and you are coming off as a bit of a jerk asking for very specific citations with exact specific wording for basic facts like this that, again, could be solved by looking through the wikipedia for "apple silicon" and then bouncing to a specific source. People have answered your question and you're brushing them off because you want it answered in an exact specific way.
> NVIDIA and Samsung, up to this point, have gone the processor license route. They take ARM designed cores (e.g. Cortex A9, Cortex A15, Cortex A7) and integrate them into custom SoCs. In NVIDIA’s case the CPU cores are paired with NVIDIA’s own GPU, while Samsung licenses GPU designs from ARM and Imagination Technologies. Apple previously leveraged its ARM processor license as well. Until last year’s A6 SoC, all Apple SoCs leveraged CPU cores designed by and licensed from ARM.
> With the A6 SoC however, Apple joined the ranks of Qualcomm with leveraging an ARM architecture license. At the heart of the A6 were a pair of Apple designed CPU cores that implemented the ARMv7-A ISA. I came to know these cores by their leaked codename: Swift.
Yes, Apple has been designing and using non-reference cores since the A6 era, and were one of the first to the table with ARMv8 (apple engineers claim it was designed for them under contract to their specifications, but this part is difficult to verify with anything more than citations from individual engineers).
I expect that Apple has said as much in their presentations somewhere, but if you're that keen on finding such an incredibly specific attribution, then knock yourself out. It'll be in an apple conference somewhere, like WWDC. They probably have said "apple-designed silicon" or "custom core" at some point, and that would be your citation - but they also sell products, not hardware, and they don't extensively talk about their architectures since they're not really the product, so you probably won't find a deep-dive like Anandtech from Apple directly where they say "we have 8-wide decode, 16-deep pipeline... etc" sorts of things.
Also, if you read Hector Martin's tweets (he's doing the reverse-engineering), Apple replacing the actual logic while maintaining the "API" of sorts is not unheard of. It's what they do with ARM themselves - using their own ARM designs instead of the stock Cortex ones while maintaining ARM compatibility.*
*Thus, Apple has a right to the name "Apple Silicon" because the chip is designed by Apple, and just happens to be ARM-compatible. Other chips from almost everyone else use stock ARM designs from ARM themselves. Otherwise, we might as well call AMD an "Intel design" because its x86 by the same logic.