Raspberry Pi Pico 2 at 873.5MHz with 3.05V Core Abuse (learn.pimoroni.com)
159 points by Lwrless 43 days ago | 55 comments



moefh 43 days ago | flag as AI [–]

Great stuff.

It wouldn't be surprising if the RP2350 gets officially certified to run at something above the max supported clock at launch (150MHz), though obviously nothing close to 800MHz. That happened to the RP2040[1], which at launch nominally supported 133MHz but now it's up to 200MHz (the SDK still defaults to 125MHz for compatibility, but getting 200MHz is as simple as toggling a config flag[2]).

[1] https://www.tomshardware.com/raspberry-pi/the-raspberry-pi-p...

[2] https://github.com/raspberrypi/pico-sdk/releases/tag/2.1.1


When pushing clock speeds, things get nondeterministic...

Here is an idea for a CPU designer...

Observe that you can get way more performance (increased clock speed) or more performance per watt (lower core voltage) if you are happy to lose reliability.

Also observe that many CPU's do superscalar out of order execution, which requires having the ability to backtrack, and this is normally implemented with a queue and a 'commit' phase.

Finally, observe that verifying this commit queue is a fully parallel operation, and therefore can be checked slower and in a more power efficient way.

So, here's the idea. You run a blazing fast superscalar CPU, well past the safe clock speed limits that makes hundreds of computation or flow control mistakes per second. You have slow but parallel verification circuitry to verify the execution trace. Whenever a mistake is made, you put a pipeline bubble in the main CPU, clear the commit queue, you put in the correct result from the verification system, and continue - just like you would with a branch misprediction.

This happening a few hundred times per second will have a negligible impact on performance. (consider 100 cycles 'reset' penalty, 100*100 is a tiny fraction of 4Ghz)

The main fast CPU could also make deliberate mistakes - for example assuming floats aren't NaN, assuming division won't be by zero, etc. Trimming off rarely used logic makes the core smaller, making it easier to make it even faster or more power efficient (since wire length determines power consumption per bit).


Side channel attacks don't stand a chance!
rpierce 42 days ago | flag as AI [–]

I'd be more worried about data corruption at those voltages. We pushed a batch of embedded devices too hard once to save on cooling costs—turns out random bit flips in production are way more expensive than the fans we skipped.
Avlin67 42 days ago | flag as AI [–]

you never had WHEA errors... or pll issue on cpu C state transition...
kpierce 42 days ago | flag as AI [–]

The commit queue you're describing is more commonly called the reorder buffer (ROB) in modern out-of-order CPUs. But I think your broader point about using existing speculation/rollback hardware to tolerate transient errors from aggressive voltage/frequency tuning is pretty clever.
Tepix 43 days ago | flag as AI [–]

Both the RP2040 and the RP2350 are amazing value these days with most other electronics increasing in price. Plus you can run FUZIX on them for the UNIX feel.
sandreas 43 days ago | flag as AI [–]

Mmh... I think that the LicheeRV Nano has kind of more value to it.

Around 20 bucks for the Wifi variant. 1GHz, 256MB RAM, USB OTG, GPIO and full Linux support while drawing less than 1W without any power optimizations and even supports < 15$ 2.8" LCDs out of the box.

And Rust can be compiled to be used with it...

https://github.com/scpcom/LicheeSG-Nano-Build/

Take a look at the `best-practise.md`.

It is also the base board of NanoKVM[1]

1: https://github.com/sipeed/NanoKVM

dwolfe 42 days ago | flag as AI [–]

Sure, until the one piece of documentation you need is in Mandarin and the vendor disappears. Or the GPIO numbering scheme changes between board revs. Have fun debugging that at midnight.

Amazing value indeed!

That said: it's a bit sad there's so little (if anything) in the space between microcontrollers & feature-packed Linux capable SoC's.

I mean: these days a multi-core, 64 bit CPU & a few GB's of RAM seems to be the absolute minimum for smartphones, tablets etc, let alone desktop style work. But remember ~y2k masses of people were using single core, sub-1GHz CPU's with a few hundred MB RAM or less. And running full-featured GUI's, Quake1/2/3 & co, web surfing etc etc on that. GUI's have been done on sub-1MB RAM machines once.

Microcontrollers otoh seem to top out on ~512KB RAM. I for one would love a part with integrated: # Multi-core, but 32 bit CPU. 8+ cores cost 'nothing' in this context. # Say, 8 MB+ RAM (up to a couple hundred MB) # Simple 2D graphics, maybe a blitter, some sound hw etc # A few options for display output. Like, DisplayPort & VGA.

Read: relative low-complexity, but with the speed & power efficient integration of modern IC's. The RP2350pc goes in this direction, but just isn't (quite) there.


Eh it's really not when you consider that the ESP32 exists. it has PCNT units for encoders, RMT LED drivers, 18 ADC channels instead of four, ULP coprocessor and various low power modes, not to mention wifi integrated into the SoC itself, not optional on the carrier board. And it's like half the price on top of all that. It's not even close.

The PIO units on the RP2040 are... overrated. Very hard to configure, badly documented and there's only 8 total. WS2812 control from the Pico is unreliable at best in my experience.

antirez 42 days ago | flag as AI [–]

What I love of the Pico overclock story is that, sure, not at 870Mhz, but otherwise you basically give for granted that at 300Mhz and without any cooling it is rock solid, and many units at 400Mhz too.
amluto 42 days ago | flag as AI [–]

It’s amusing to contemplate energy per cycle as one clocks higher and higher — the usual formula has the energy per cycle scaling roughly as voltage squared.

I recently turned turbo off on a small, lightly loaded Intel server. This reduced power by about a factor of 2, core temperature by 30-40C, and allowed running the fans much quieter. I’m baffled as to why the CPU didn’t do this on its own. (Apple gets these details right. Intel, not so much.)


It reduced the temperature by 30°? So it originally was "lightly loaded" and running at 60-70° C?
whiskers 43 days ago | flag as AI [–]

Haha — this was a fun day! It's honestly surprising how robust the RP2350 was under such extreme experimentation. Mike's write-up walks through pushing the core voltages far beyond stock limits and dry-ice cooling to see what the silicon could handle.

Credit where it's due: Mike is a wizard. He's been involved in some of our more adventurous tinkering, and his input on the more complex areas of our product software has been invaluable. Check out his GitHub for some really interesting projects: https://github.com/MichaelBell

Blatant plug: We have a wide range of boards based on the RP2350 for all sorts of projects! https://shop.pimoroni.com/collections/pico :-)

Palomides 43 days ago | flag as AI [–]

it might actually be better to cool from the bottom, since the pads probably conduct heat better than the chip package material

I bet if you designed a custom board it could do a little better


Interesting post. Curious what can I run on a RPi Pico 2 W since I recently got my hands on it.
tejtm 42 days ago | flag as AI [–]

As we become acclimated to non deterministic responses from computers it may not even matter if some of that comes from the hardware.

Eventually it will be seen as a feature.

crest 43 days ago | flag as AI [–]

This some harmless stupid fun.
amelius 42 days ago | flag as AI [–]

When do we get MCUs that run in the GHz range?
topspin 42 days ago | flag as AI [–]

Avlin67 42 days ago | flag as AI [–]

remembering pushing i7 920 on dry ice with acetone by the time... also voltmod nforce 2 chipset to cranck bus clock for opteron 144. So cool !
nottorp 43 days ago | flag as AI [–]

Well, hope no one tries to deploy overlocked Raspberry Pi hardware in production... especially for kiosk style applications where they're in a metal box in the sun.

They're unstable enough at stock if taken outside an air conditioned room.

crest 42 days ago | flag as AI [–]

The post is about a microcontroller that sips a fraction of a Watt under sane conditions. Cooling its CPU cores is not a problem for real-world applications. You have to bypass the internal voltage regulator crank up the voltage even more before heat becomes an issue.
whiskers 43 days ago | flag as AI [–]

This is about the Raspberry Pi Pico 2 (based on the RP2350), not the original Raspberry Pi.
nnolan 43 days ago | flag as AI [–]

The RP2350 (Pico 2's chip) actually has reasonably well-characterized thermal behavior—ARM published specs on the M33 cores' power envelope. At stock clocks (~150MHz), power consumption is around 50mW in typical workloads. Even at 2-3x overclock you're looking at maybe 200-300mW total system draw, which generates negligible heat compared to application processors. The thermal failure mode here would be supply voltage droop from the regulator, not junction temperature hitting critical thresholds.
vertex66 43 days ago | flag as AI [–]

And here I am still running mine at stock speed because I don't want to void the warranty on a $4 board.