4 ms·
> However due to pressure from customers ARM relented and announced in 2019 that they would allow extensions. The cited announcement here was for ARMv8-M only,
by rrss 6y ago
> However due to pressure from customers ARM relented and announced in 2019 that they would allow extensions.
The cited announcement here was for ARMv8-M only, the microcontroller variant of ARMv8 for embedded systems.
From the linked EETimes article:
>> Arm is opening up its instruction set to customers’ customized instructions for Cortex M cores
>> For Cortex-A cores, Arm is still a long way from offering any customizable instructions
From https://www.arm.com/why-arm/technologies/custom-instructions https://www.arm.com/why-arm/technologies/custom-instructions:
> Arm Custom Instructions are a standard feature of the Armv8-M architecture
Apple M1 is not an ARMv8-M core, it's an ARMv8-A core.
I'd very much like to understand the contractual terms under which Apple put custom instructions into their ARMv8-A core, but I don't think it is as simple as "ARM is totally fine with all licensees doing this now." AFAIK, the latest revisions of ARMv8-A still do not permit custom instructions.
Other reasons I don't think AMX is in the category of the publicly announced "custom instructions" part of the ISA:
- arm custom instruction are prohibited from accessing memory, but AMXLD* and AMXST* exist.
- arm custom instructions are prohibited from having their own register states, but AMX has amx0, amx1, amx2 registers.
https://developer.arm.com/architectures/instruction-sets/custom-instructions https://developer.arm.com/architectures/instruction-sets/cus...
- Asmod4n 6y agoThis only applies if Apple would sell their chips as ARM Cpus to other companies etc.
- rrss 6y agoDo you know this, or is this a guess? This would be surprising to me. Suppose Amazon acquires an architecture license, designs a custom core for Graviton3, and deploys it in AWS. Could they add custom instructions at will? I would think ARM would be very unhappy when there are applications that run on amazon's arm64 CPU that don't run on ARM's arm64 CPUs, and I would imagine that that would be reflected in the license terms.
- aneutron 6y agoIt should also be noted that ARM has multiple types of licences. Most manufacturers only license cores and adjacent IPs, with no possible "tweaks" or the license with minimal "tweaks". However, my understanding is that apple has an "ISA" architecture, where they basically can do whatever they want, since they can build a custom CPU that uses the ARM ISA, whereas Samsung for example, can only "tweak" the cores. Basically, Apple doesn't use core IP and "only" licenses the ISA (which is far more expensive if my memory is not lying) and so they can do whatever they want.
- bombcar 6y agoI would think that Apple is quite in a position to strongARM them and get what they want; even with Jobs gone I doubt they want to repeat the PowerPC fiasco.
- robert_foss 6y agoApple does indeed have an architcture license, which grants them the rights to modify&ship ARM IP.
- rrss 6y agoStandard architecture licenses require the custom microarchitecture to comply with ARMs architectural specifications, but M1 apparently does not. An architecture license is not usually a free pass to modify the architecture and fragment ARM's ecosystem at will.
- evgen 6y agoApple is effectively a co-founder of ARM. I am absolutely certain they have a 'do whatever the hell you want with it, and have most-favoured on licensing' agreement in a drawer somewhere in Cupertino.
- barkingcat 6y agoApple was one of the codevelopers of the arm6 and at that time Acorn spun out ARM holdings to create the ARM of today - so while architectural licences might come with restrictions, Apple most very likely have even deeper rights into the ARM ecosystem, up and including - "if you don't let us make the M1, we will deep 6 the entire arm ecosystem and use our "cocreator" patents offensively" It's easy to forget that Apple is/was one of the original computer companies, and had a founding hand in two ISA/architectures: PowerPC and ARM. They also used the Motorola 68000 and x86 (32+64), but in those cases they were relying on the manufacturer for the chips and architectural direction.
- joseph_grobbles 6y agoYou got 'em! Phone in a tip to ARM and get those Apple scoundrels rounded up! Or, you know, you're some random guy on HN pretending that Apple, a $2T technology company and a founder of ARM, with the most liberal ARM licenses possible, just doesn't know what it's doing. Humorously, if I do a search for evidence that Apple can't add extensions, I keep finding comments by you, on here, going back months, claiming this. No one else. What a weird hill to die on. Tough to know which horse to back here. Further, you seem to be misunderstanding ARM compliance. If Apple has 100% coverage of the ARM test suite, it is 100% in compliance despite having a superset. Having additional instructions -- you know, being an architectural licensee -- is completely irrelevant to the test suite. My car is road legal even if I have a leather cupholder and a disco ball hanging from the roof. And the thing about the embedded processors is for low level subscribers, with a built-in mechanism for decoding the extension and delegating it to the custom block. e.g. stock cores, low license. Apple is using neither stock cores or a low license.
- rrss 6y agoI think you've misunderstood my comment. Obviously I am not arguing that apple doesn't know what they are doing. The article suggested that ARM announced that architecture licensees can add instructions to ARMv8-A, which isn't true, so I posted a comment saying that. The point isn't that Apple can't do this, it's that this situation seems to be out of the ordinary, and therefore even more interesting than the article indicated. Clearly Apple can do this because they did, and I'd like to know what kind of terms Apple has, but I doubt that info will ever be public. Since you're interested in going through my comment history, you can see that I made a (incorrect) comment in which I said AMX was probably an out of core accelerator, and then I had an interesting exchange with 'my123 in which I learned that I was wrong and AMX really is a set of CPU instructions. > Further, you seem to be misunderstanding ARM compliance. If Apple has 100% coverage of the ARM test suite You're assuming the ARM architecture has undefined behavior or entirely implementation defined behavior for unused opcodes, which is not generally true. The behavior of raising illegal instruction exceptions or whatever is mandated by the architecture. > And the thing about the embedded processors is for low level subscribers, with a built-in mechanism for decoding the extension and delegating it to the custom block. e.g. stock cores, low license. Apple is using neither stock cores or a low license. This was my point, yes. The announcement of arm custom instructions is irrelevant to AMX, but the article said otherwise. Yeah, you really got me here. I'm interested in watching Apple extend the architecture after ARM has aggressively defended their ownership and controlled fragmentation for decades, and I'm curious if it really is "ARM, shut up and look at our market cap, Love Apple" and Apple can take this as far as they want, or, if not, what kind of rules ARM has made for Apple (e.g. don't document the instructions or include them in public toolchains). When people say things that suggest Apple is not doing anything out of the ordinary (stuff like "lol any architecture licensee can add instructions", or "Having additional instructions -- you know, being an architectural licensee"), I point out that has not been true.