5 ms·
> Apple is not designing its own CPUs (but ARM does) Apple IS designing its own CPUs. They have been designing their own CPUs since their A4 processor. Apple
by kuhsaft 5y ago
> Apple is not designing its own CPUs (but ARM does)
Apple IS designing its own CPUs. They have been designing their own CPUs since their A4 processor.
Apple has an Architecture License with ARM [1]. Other companies with the same license include Qualcomm, Samsung, Nvidia, and Broadcom.
These licensees have full architectural freedom with the cores as long as they are ARM ISA compatible. For example, Apple has added custom instructions in their M1 processor [2].
So, an Apple ARM processor core is different from a Samsung ARM core is different from a Qualcomm ARM core.
[1] https://www.anandtech.com/show/7112/the-arm-diaries-part-1-how-arms-business-model-works/3 https://www.anandtech.com/show/7112/the-arm-diaries-part-1-h...
[2] https://news.ycombinator.com/item?id=25559145 https://news.ycombinator.com/item?id=25559145
- marcan_42 5y ago> as long as they are ARM ISA compatible. And apparently in Apple's case, they get to be a little bit incompatible (no nVHE mode, crazy custom ISA extensions, ...) Which is also obvious proof that they're their own designs, because literally nobody else could or would implement the same Apple-proprietary ISA extensions. Here, we use some of the custom instructions in m1n1: https://github.com/AsahiLinux/m1n1/blob/main/src/gxf_asm.S#L7 https://github.com/AsahiLinux/m1n1/blob/main/src/gxf_asm.S#L... That won't work on any non-Apple core.
- masklinn 5y ago> literally nobody else could or would implement the same Apple-proprietary ISA extensions. That is maybe a little excessive, technically they could probably pay an other architecture license holder to do it for them.
- marcan_42 5y agoNo, because the architecture license doesn't allow it. Apple got special treatment here.
- masklinn 5y agoOh, the architecture license doesn't allow bespoke ISA extension?
- marcan_42 5y agoNope, you need to be compatible with the architecture specification, and it lays out exactly what can be implementation defined and what can't. E.g. you're allowed some freedom in what features to implement (Apple doesn't implement EL3 and this is fine), and you can add implementation defined system registers (Apple has a huge number of them, e.g. to implement TSO for Rosetta). But you can't decide not to support mandatory features (Apple forces on VHE mode, which is not legal - VHE is optional, non-VHE mode isn't), nor can you add extensions to the core ISA. Apple added AMX, memory compression/decompression, a variant of the AT instructions that outputs to a GPR, and the whole Guarded Execution feature (two new parallel exception levels and machinery to call to/from them and lock down things to them), and possibly more, all of them in reserved instruction encoding space.
- masklinn 5y ago> Apple IS designing its own CPUs. They have been designing their own CPUs since their A4 processor. That is not quite true, the A4 is an internal SoC design but commonly "CPU" in an SoC context will designate the cores (the µarch). A4 used a standard and pedestrian Cortex-A8 there. The A6 is where they started designing the cores in-house (to very impressive and pretty universally praised results, especially for a first iteration), following which they straight nuked the entire field by releasing the first AArch64 core in A7.
- kuhsaft 5y ago> A4 used a standard and pedestrian Cortex-A8 there. My understanding was that the A4 Cortex-A8 was a modified version by Intrinsity which apple bought out, but, you’re right. Apple didn’t start actually designing their own cores until the A6 [1]. [1] https://seekingalpha.com/amp/article/4293287-setting-record-straight-on-apples-custom-arm-processors https://seekingalpha.com/amp/article/4293287-setting-record-...