POV-Ray : Newsgroups : povray.off-topic : Today's WTF : Re: Today's WTF Server Time
8 Jul 2024 08:04:05 EDT (-0400)
  Re: Today's WTF  
From: scott
Date: 2 Nov 2015 09:54:08
Message: <56377910$1@news.povray.org>
>>> I gather ARM is quite a popular architecture. I don't know whether
>>> that's because there's readily available chips and IP-cores, because
>>> it's low-power, or because it's really easy to program...
>>
>> Low power.
>
> Why is that? It is because there's something particular about this
> instruction set which makes it especially suitable for low power? Or is
> it merely that a lot of people have spent R&D on making low-power
> implementations of it?

The former I would guess, as even the first versions used in the Acorn 
desktop machines were very low power when they probably didn't have any 
budget, time or real incentive to reduce it. I'm sure since then though 
there has been huge pressure and R&D expenditure to reduce it further.

This list is quite interesting:

https://en.wikipedia.org/wiki/Transistor_count

At each point in time the ARM CPU seems to have about 10x fewer 
transistors than its x86 equivalent. As a very rough I guess I'd say 
that means it used 10x less power. In thermal terms that is probably 
enough to make the difference between needing a heatsink and fan and 
working with just the bare chip.

What's also interesting is that the ARM2 had 25k transistors, yet 
further down the page it claims 21k transistors are needed for a 32-bit 
multiplier. Figure that one out. I think the answer is that on the ARM2 
the MUL instruction was the only one (apart from the load/store multiple 
register instruction) that took more than one clock cycle. As such it 
probably used a much smaller circuit to do it in chunks.

It also interesting to note that even on the earliest cores you could do 
an arbitrary bit-shift for free with every instruction on one of the 
source registers. So if you wanted to multiply by 320 (commonly needed 
in graphics algorithms of the day) you could do it with a single move 
and add instruction:

result = y << 8
result = result + y << 6


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.