3 ms·
Hey yeah, I remember my first ARM programming was on the NDS' two 66/33MHz processors. I think it basically dedicated one to each screen, fun stuff. Are the la
by leggomylibro 9y ago
Hey yeah, I remember my first ARM programming was on the NDS' two 66/33MHz processors. I think it basically dedicated one to each screen, fun stuff.
Are the laptop co-processors you're talking about the 'R' lines? I know 'M' is for low-power mobile stuff and 'A' is for "Real Computer" stuff, but I was never too clear on the 'Realtime' lines.
- monocasa 9y agoI've seen all three in that use case (and ARM11 cores and earlier where they didn't really make the distinction as overtly). Mainly R and M though. But the distinction is something like: M - Thumb2 only, simple two or three stage pipelines typically. Optional everything like selectable (at chip design time) multiply unit that's either 1 or 32 cycles of latency. MPU (if present) only adds protection information, but doesn't remap memory like a full MMU. An ascetic M has something like 12k gates which is insanely low for a 32 bit processor. It mainly competes with AVRs, 8051s, and maybe really low end MIPS if anyone is still using R3000s. In a laptop, I've seen them in power management controllers, bluetooth, and sometimes in WiFi. R - More powerful than M. Runs Thumb and A32. Clear, deterministic. In order pipeline, tightly coupled memory, and an MPU so that you can still run hard real time cycle counting kind of code twiddling GPIOs carefully, but then also running DSP on the results afterward. I've seen a lot of these in hard disk controllers. They're sort of spiritual successors to the ARM9/7 you know from the DS. Competes with most MIPS. A - Sort of all over the place. Some are 32bit, some are both 32 and 64. Has a real, page table MMU. Typically run real, big boy kernels like Linux. Competes with Atoms, higher end MIPS (see a trend?) and POWER at the very high end if you squint enough. Typically they're complex enough that you can't cycle count and get deterministic results (longer pipelines, TLB that'll refill 'randomly', cache refills, more complex branch predictor), but give higher overall performance. I think I've seen an A8 as a sound processor? Typically though they're not really a coprocessor, the gate count is too high to make sense.
- leggomylibro 9y agoHuh, cool. I've actually been playing with the STM32 Cortex-M processors, and I gotta say - some of those high-end M7 chips could easily run a game system and are way out of the range of 8-bit Arduino-y chips. 400MHz with a 24-bit parallel LCD peripheral? That could probably give the PSP a run for its money. And they're moving to a ~40nm process on those performance lines soon.
- civilitty 9y agoThey're a lot more powerful once you start utilizing their hardware peripherals like DMA. With a STM32F4 it's possible to saturate a 100mbit PHY that pushes out that data to 100+ GPIOs while using all of the CPU just for bit interleaving and control signals. If your use case allows it, these microcontrollers can punch far above their weight with dedicated hardware when compared to general purpose CPUs