ARM cpu on various devices

Simon82

Newcomer
Hello,

I've got a N-Gage QD cellular and it's powered by an ARM9 processor running at 104 Mhz. In past month I've run on it various native games and other homebrew. All that are 3D texture mapped game obviously renderend entirely on the CPU. The maximun effort from this cellular I think we can see running a port of original Quake on Symbian OS and it run at 6/8fps in native lcd resolution (176x208 4096 colors) and 13fps in timedemo on half scaled up resolution. I was not thinking that this could be possible and I've talked a lot with the devealoper of this and about the CPU it tell me (as is) that ARM cpu don't have FPU inside that could easily help to get faster rendering.
How about this kind of CPU we find on lot of mobile handheld? How powerful is it? Can we compare to a 486 x86 capability to get an idea of what was possible when first 3D games get out?

Bye
 
ARMs are cheap, low-power, simple RISC cores. No intrinsic FP or SIMD functions. I've only seen them clock up to ~600 MHz, but I don't know if this is process-limited or architecture-limited. Their execution units are primitive relative to PowerPC, Pentium, etc. ARMs are equivalent to the MIPS cores in the PS1 and PS2. They are almost always found as part of a system-on-chip, surrounded by peripherals and accelerators.
 
Some do, some don't. It just depends on what the designers of a particular SOC want to include. <shrug>
Yeah. I've seen that ARM company has devealoped FPU cores to help ARM cpu not having one but there're not so many company that use this.

There are also some benchmark with a ported version of SuperPI. :LOL:
 
I've only seen them clock up to ~600 MHz, but I don't know if this is process-limited or architecture-limited.
Both. ARM designs the processors and semicos (TI, STMicro, etc...) buy and produce it there aren't cores which are carefully optimized to a certain process. On top of that most of the cores were designed for low power consumption so they usually sacrifice speed for it (if the tradeoff is possible). As a side note the architecture is also significantly convoluted so making a high-clocked version is tricky. The recent Cortex-A8 which should have exceeded 1 GHz is encountering quite a few problems and falling short of its intended frequency and power targets.
 
Both. ARM designs the processors and semicos (TI, STMicro, etc...) buy and produce it there aren't cores which are carefully optimized to a certain process. On top of that most of the cores were designed for low power consumption so they usually sacrifice speed for it (if the tradeoff is possible). As a side note the architecture is also significantly convoluted so making a high-clocked version is tricky. The recent Cortex-A8 which should have exceeded 1 GHz is encountering quite a few problems and falling short of its intended frequency and power targets.

There's one thing I've to note: considering the dimension of this kind of cpu (we're talking about 5-10mm x 5-10mm) they has got good potential running Quake and other 3D game... ;)
Maybe in lot of cellular they are underused seeing this kind of game being rendered also with low performance (always of complete 3D texture mapped with particle explosion, light and other stuff).
 
There's one thing I've to note: considering the dimension of this kind of cpu (we're talking about 5-10mm x 5-10mm) they has got good potential running Quake and other 3D game... ;)

You've way overestimated the core sizes. Even the Cortex is just 4mm sq (4mm X 1mm) with cache - and that's big compared to some of them!

Maybe in lot of cellular they are underused seeing this kind of game being rendered also with low performance (always of complete 3D texture mapped with particle explosion, light and other stuff).

Why would you want the CPU to do this? There's plenty of 3D hardware for phones these days.
 
You've way overestimated the core sizes. Even the Cortex is just 4mm sq (4mm X 1mm) with cache - and that's big compared to some of them!



Why would you want the CPU to do this? There's plenty of 3D hardware for phones these days.

Yeah but not on mine.. :D I'm curious when a so small cpu can do so hard computing. The technical capabilities let me so amazed.
 
AFAIK the basic ARM core is still around 40.000 transistors. Incredibly small by todays standards. It is up to the licensee to put other building blocks on like cache and FPU.
It's also one of the two architectures ever to have been adopted for asynchronous (clockless) execution.

ARM CPUs are as close as we can get to a direct modern descendant of the venerable MOS tech 6502 line. Sharing many of the same characteristics such as some instructions and being hardwired instead of microcoded.
 
Last edited by a moderator:
ARM was the last ISA I ever wrote machine code for. It was a thing of elegance and beauty, despite the lack of an FPU. It was a joy to write. Granted this was fifteen years ago, but I doubt there have been very many ISAs developed since which can match its simplicity and orthogonality.
 
ARMs are cheap, low-power, simple RISC cores. No intrinsic FP or SIMD functions. I've only seen them clock up to ~600 MHz, but I don't know if this is process-limited or architecture-limited. Their execution units are primitive relative to PowerPC, Pentium, etc. ARMs are equivalent to the MIPS cores in the PS1 and PS2. They are almost always found as part of a system-on-chip, surrounded by peripherals and accelerators.

I believe I've seen ARM cores up to 1ghz. If not a native device using one at that speed, than an xscale (which I think offers lower performance per clock than most other arm9 based chips) overclocked with no additional cooling. In general though, the ARM architecture somewhat focuses on high IPC (within its limited abilities) and a low clock speed. Pure RISC design.

BTW, why can't a 3d engine be designed without FP ability? Did N64, PSX, and Saturn have FP ability? And the original quake definitely ran on hardware without FP coprocessors, though performance on a 33mhz 486 was far from stellar but it was playable at 320x240..

It's also one of the two architectures ever to have been adopted for asynchronous (clockless) execution.

Link, I wanna see!
 
I believe I've seen ARM cores up to 1ghz. If not a native device using one at that speed, than an xscale (which I think offers lower performance per clock than most other arm9 based chips) overclocked with no additional cooling. In general though, the ARM architecture somewhat focuses on high IPC (within its limited abilities) and a low clock speed. Pure RISC design.
I would'nt call ARM pure RISC, as the original ARM architecture manual said in its introduction it's a RISC specifically tailored to get the most out of a processor with a single ALU and barrel shifter and that shows quite a lot in the ISA.
BTW, why can't a 3d engine be designed without FP ability? Did N64, PSX, and Saturn have FP ability?
Not sure about N64 but the PSX and the Saturn certainly didn't have an FPU, most people have forgot the times of fixed-point math in 3D applications. Funny thing is that only recently GPUs have moved more and more stuff to FP, up to a few years back a lot of stuff was still being done in fixed-point format.
 
I would'nt call ARM pure RISC, as the original ARM architecture manual said in its introduction it's a RISC specifically tailored to get the most out of a processor with a single ALU and barrel shifter and that shows quite a lot in the ISA.Not sure about N64 but the PSX and the Saturn certainly didn't have an FPU, most people have forgot the times of fixed-point math in 3D applications. Funny thing is that only recently GPUs have moved more and more stuff to FP, up to a few years back a lot of stuff was still being done in fixed-point format.

Well, Quake S60 has been converted from floating point calc to fixed point one but the result is the same watching the tiny screen of the mobile phone. Where floating point could have been improved 3D engine?
 
What was the task that the chip was doing that allowed that kind of variability? Was it just cycling some repetitive string of operations?

I would imagine there would be some limits because the rest of the system components, including the IO pads of the chip, aren't riding the thermal rollercoaster.
 
Well, Quake S60 has been converted from floating point calc to fixed point one but the result is the same watching the tiny screen of the mobile phone. Where floating point could have been improved 3D engine?
I doubt that floating-point was really necessary for the original Quake engine, the engine used it of course but it was for convenience since at the time (Pentium) FPUs were getting fast enough. With proper coding a full fixed-point version shouldn't show much difference (if at all).
 
I doubt that floating-point was really necessary for the original Quake engine, the engine used it of course but it was for convenience since at the time (Pentium) FPUs were getting fast enough. With proper coding a full fixed-point version shouldn't show much difference (if at all).

Yeah, this maybe is the reason that fixed point conversion done by devealoper don't seem to change a lot (also if rendering is really confusing on an half 176x208 scaled up version). ;)

quake1.gif
 
I doubt that floating-point was really necessary for the original Quake engine, the engine used it of course but it was for convenience since at the time (Pentium) FPUs were getting fast enough. With proper coding a full fixed-point version shouldn't show much difference (if at all).

I think Quake was built entirely around P5. P5 had a much better FPU than its peers. So, peers got screwed over but P5 was maximized. id decided to push P5 to its limits instead of make a more generic engine. Floating point was the way to go I guess. P5's peers sure would've appreciated an integer engine, though.
 
Last edited by a moderator:
Back
Top