ARM1/ARM2 Alternative? (20/20 Hindsight)

By: Paul A. Clayton (, June 28, 2019 10:44 am
Room: Moderated Discussions
jv ( on June 28, 2019 7:20 am wrote:
> I've had a lot of experience with the early ARM ISA, and in hindsight there is nothing needing change at the
> time it was designed. The ISA was splendidly simple yet very powerful, including 3 register instruction (2 source,
> 1 destination) and even 4 register instructions (like multiply add, shift register by other register)
> The main limitation for writing even more efficient code, I see as the number
> of register (which was ample compared to x86). The ARM 64 ISA improved on that
> with 32 registers, and sacrificing the 4 bit conditional execution.

From an assembly coder's perspective (perhaps especially coming from the 6502), ARM2 might have been very nice, but some of the design decisions (I think) sacrificed significant performance. I think matching the processor frequency with the memory frequency was suboptimal. Doubling the processor frequency would have increased power and added more stall cycles, but with 16-bit instructions and reduced work per instruction I think the benefits would justify the cost. Such a design would still consume less than a watt.

Even with 4-bit register encoding fields, by removing the PC as a GPR and special casing the stack pointer two general purpose registers could be added. (Some embedded processors also special case the global pointer.)

< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
ARM1/ARM2 Alternative? (20/20 Hindsight)Paul A. Clayton2019/06/27 04:47 PM
  ARM1/ARM2 Alternative? (20/20 Hindsight)Maxwell2019/06/27 07:10 PM
    ARM1/ARM2 Alternative? (20/20 Hindsight)Paul A. Clayton2019/06/28 10:44 AM
      ARM1/ARM2 Alternative? (20/20 Hindsight)RichardC2019/07/03 06:56 PM
        ARM1/ARM2 Alternative? (20/20 Hindsight)Simon Farnsworth2019/07/04 03:09 AM
          DMARichardC2019/07/04 04:52 AM
            DMASimon Farnsworth2019/07/04 08:46 AM
              DMARichardC2019/07/04 09:54 AM
                DMAanon2019/07/04 04:53 PM
                  DMASimon Farnsworth2019/07/05 12:51 AM
                  DMARichardC2019/07/05 07:24 PM
            DMAMaxwell2019/07/04 08:49 AM
              DMAHoward Chu2019/07/04 09:55 AM
              DMARichardC2019/07/04 10:00 AM
          ARM1/ARM2 Alternative? (20/20 Hindsight)Etienne2019/07/04 07:06 AM
            ok once you have MMURichardC2019/07/04 07:46 AM
  ARM1/ARM2 Alternative? (20/20 Hindsight)Etienne2019/06/28 12:52 AM
  ARM1/ARM2 Alternative? (20/20 Hindsight)jv2019/06/28 06:20 AM
    ARM1/ARM2 Alternative? (20/20 Hindsight)Paul A. Clayton2019/06/28 10:44 AM
      ARM1/ARM2 Alternative? (20/20 Hindsight)jv2019/06/29 02:54 AM
        Freeing the stack pointerPaul A. Clayton2019/06/29 05:32 AM
          PC-relative LD/ST (NT)vvid2019/06/30 09:03 AM
          Freeing the stack pointerjv2019/06/30 10:45 PM
  ARM1/ARM2 Alternative? (20/20 Hindsight)Ronald Maas2019/06/28 08:06 AM
    ARM1/ARM2 Alternative? (20/20 Hindsight)Paul A. Clayton2019/06/28 11:56 AM
      ARM1/ARM2 Alternative? (20/20 Hindsight)Ronald Maas2019/06/28 09:17 PM
        ARM1/ARM2 Alternative? (20/20 Hindsight)Brett2019/06/28 11:39 PM
          ARM1/ARM2 Alternative? (20/20 Hindsight)Brett2019/06/29 12:13 AM
          32-bit Win10 exists (NT)nobody in particular2019/06/29 04:17 PM
            32-bit Win10 existsBrett2019/06/29 05:45 PM
              32-bit Win10 existsMichael S2019/06/30 12:34 AM
                32-bit Win10 existsAnon32019/06/30 02:07 AM
        AArch64 is a new ISAPaul A. Clayton2019/06/29 06:23 AM
          AArch64 is a new ISArwessel2019/06/29 03:00 PM
            AArch64 is a new ISAMichael S2019/06/30 12:40 AM
              Hardware x87?Gionatan Danti2019/06/30 01:22 AM
                Hardware x87?Michael S2019/06/30 02:52 AM
                  Hardware x87?Gionatan Danti2019/06/30 05:04 AM
                    Hardware x87?Michael S2019/06/30 07:47 AM
                  Hardware x87?Kevin G2019/07/01 11:11 AM
                    Hardware x87?anonymou52019/07/01 06:30 PM
                      Hardware x87?Michael S2019/07/01 11:44 PM
                      Hardware x87?Gionatan Danti2019/07/02 08:25 AM
              AArch64 is a new ISArwessel2019/06/30 12:52 PM
            AArch64 is a new ISAMichael S2019/06/30 12:42 AM
        ARM1/ARM2 Alternative? (20/20 Hindsight)Maynard Handley2019/06/29 08:50 AM
        ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/06/30 12:29 AM
          ARM1/ARM2 Alternative? (20/20 Hindsight)Wilco2019/06/30 02:51 AM
            ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/06/30 03:22 AM
              ARM1/ARM2 Alternative? (20/20 Hindsight)Wilco2019/06/30 04:27 AM
                ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/06/30 04:53 AM
                  ARM1/ARM2 Alternative? (20/20 Hindsight)Wilco2019/07/02 12:49 AM
                    ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/07/02 03:24 AM
                      ARM1/ARM2 Alternative? (20/20 Hindsight)Wilco2019/07/02 04:28 PM
                        ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/07/03 12:37 AM
                          ARM1/ARM2 Alternative? (20/20 Hindsight)Adrian2019/07/03 01:45 AM
                            ARM1/ARM2 Alternative? (20/20 Hindsight)Michael S2019/07/03 02:01 AM
                            ARM1/ARM2 Alternative? (20/20 Hindsight)Montaray Jack2019/07/03 11:18 AM
                              ARM1/ARM2 Alternative? (20/20 Hindsight)Montaray Jack2019/07/03 12:46 PM
                        ARM1/ARM2 Alternative? (20/20 Hindsight)Montaray Jack2019/07/03 01:32 PM
Reply to this Topic
Body: No Text
How do you spell purple?