ARM custom instructions

By: Gabriele Svelto (, February 18, 2020 8:43 am
Room: Moderated Discussions
This flew under my radar but I feel it's quite important.

The super-short summary is that ARM is enabling external companies to integrate custom instructions in certain Cortex-M processors by using a part of the opcode space that has been reserved for it. I find the way this is done on what's effectively closed-source IP fairly neat which is probably why it's scheduled for 2021.

The way the opcodes have been reserved means that the toolchain won't need changes given that they will be used only via intrinsics or the like.

This is naturally a pretty big validation of the business model of various RISC-V vendors which have been building customized RISC-V cores plus the associated toolchains.

ARM's press release includes statements from the microcontroller division heads of both NXP (which is releasing a RISC-V-based i.MX SoC this year) and STMicroelectronics (which doesn't have RISC-V products of its own yet but has been fabbing a number of them for other companies). My guess is that there's been pressure from ARM customers for something like this.

On the technical level one big difference between the two approaches is that ARM's is limited to data-processing instructions while RISC-V custom extensions have been wild, including stuff that does multiple memory accesses, DSP-like zero-cost loops, etc... ARM's approach also relies on a generic toolchain and programmer intervention to adjust the relevant code to use the custom extension. For certain class of instructions RISC-V vendors generate both the core and a toolchain that leverages them automatically (based on LLVM). The latter naturally doesn't apply to all extensions but it's a pretty powerful tool.
 Next Post in Thread >
TopicPosted ByDate
ARM custom instructionsGabriele Svelto2020/02/18 08:43 AM
  ARM custom instructionsdmcq2020/02/18 09:03 AM
    ARM custom instructionsnone2020/02/18 09:21 AM
      ARM custom instructionsGabriele Svelto2020/02/18 10:31 AM
        ARM custom instructionsdmcq2020/02/18 11:06 AM
          ARM custom instructionsWilco2020/02/18 07:14 PM
Reply to this Topic
Body: No Text
How do you spell purple?