Email or username:

Password:

Forgot your password?
Foone🏳️‍⚧️

That new pico is neat. A chip that can change architectures? And even, technically, run as two heterogeneous cores?

Neat! Can you add x86 to the pico3? Thanks.

51 comments
Foone🏳️‍⚧️

I do really like the idea of a chip that boots up, checks to see what CPU architecture its flash code is in, then reboots to support that architecture instead

Foone🏳️‍⚧️

Like I'm imagining sticking an 80486 in a Mac and it notices the firmware is powerpc so it reboots into being a powerpc chip

Foone🏳️‍⚧️

to explain something for anyone who hasn't read the RP2350 datasheet:

It doesn't do any code-morphing or translation or anything. The CPU is designed with 4 cores, but two slots for connecting to the rest of the CPU fabric.

So at boot it selects which two cores to power on. So it can be 2xARM or 2xRISCV or (technically!) 1xARM and 1xRISCV. There's no fancy stuff where there's a single CPU arch that can run multiple things: it's just multiple heterogynous cores.

Gaelan Steele

@foone Is there any reason this is useful? Like having RISCV is fun and cool, but surely this doesn't do anything practical that a pure-ARM device can't

Foone🏳️‍⚧️

@Gaelan I really don't know. I guess some people are looking to try risc-v? and this lets them do that without needing to buy a risc-v-only board.

Gaelan Steele

@foone and a low-risk way for the Pi Foundation to dip their toes in I guess

ROTOPE~1 :yell:

@Gaelan @foone yeah. If the Risc-v side didn't function, they would blow a fuse and never tell anybody about it. If it turns out to be too buggy, they'll put out an advisory to stick with the arm personality.

But if the risc-v side works and customers like it, then a future design could leave out the ARM license altogether.

Pete Keen

@foone not just at boot! Boot selects core 0 but you can pick what arch to start for core 1 at runtime. You have to ship two binaries of course, and it seems like the tooling isn't quite there yet. But it's possible.

LovesTha🥧

@zrail @foone can core 1 be rebooted into the other arch while keeping core 0 running? (not something I'd normally expect to work, but this sounds like a device that might want to be able to do that)

Foone🏳️‍⚧️

@LovesTha @zrail I don't think so. I think you set the arch bits to select which cores you want, and then reboot the whole CPU

Andrew

@foone oh darn. I was rooting for microcode shenanigans

Philip Heron

@foone Reminds me a little of the Commodore 128 with its selectable 8502 / Z80.

the Lobdegg

@foone Is there a reason why you're only allowed to activate 2 of the 4 cores? Is it like a timing thing?

jess

@thelobdegg @foone it's only built with the connections to go between the rest of the CPU and two cores, the only difference from a regular dual-core CPU is that it can choose which two cores

they could theoretically add extra of anything that's per-core and then connect all four up (and selectively disable them), but that'd be a further increase in complexity and cost (even just having the extra cores there is an increase, but presumably they think it's worth that increase)

John de Largentaye

@foone it’s weird that they include 2 cores in the die that *cannot be used* (i.e. you can only use ARM XOR RISC-V)

I’m so used to designs that maximize layout usage that wasting space on useless extra hardware seems heretical.

I guess whichever node they’re fabbing at is cheap enough, that the die space isn’t critical.

Григорий Клюшников

Foone🏳️‍⚧️, idk but that feels kinda wasteful? But then also looking at how comparatively little die area an actual CPU core usually occupies on modern chips... 🤔

Foone🏳️‍⚧️

@grishka yeah I think that's the real reason they did this: they had free die space so why not?

Orz

@grishka No, no, it’s easier to do setups like the Commodore 128 when you have to use only one chip!

So one of the architectures could maybe run CP/M!

(The C=128 had two processors, a MOS 8502 and a Z80, and could run in three modes, one of them being CP/M on the Z80. Not sure if that kind of setup would be useful now.)

Григорий Клюшников

Orz, interesting. I know that some consoles did a similar thing, they basically contained the entire previous-generation console either in the SoC or as a separate chip. PS2 and Game Boy Advance definitely did that. Sega Mega Drive as well, iirc.

Rainne

@foone When you inevitably construct firmware that reads as valid for any architecture the CPU supports, what will it do?

Thomas

@foone Pico3 "Transmeta Edition"? 🥺

Григорий Клюшников

Foone🏳️‍⚧️, so maybe an even more versatile chip. Like, a gate array. That can be programmed in the field.

CyberFrog

@foone@digipres.club woah now, no need to ruin a good thing by putting x86 on it like that ​:neofox_laugh:​

Ryan Finnie

@foone And yet Transmeta never added SPARC to the Crusoe like they said they would...

Fi, infosec-aspected

@foone

might be hard to add x86 to a bigender architecture

domi

@foone I think that pico3 should be highly inspired by the Transmeta Crusoe line of chips /hj

Joe's Computer Museum

@foone From what I've read, it can do ARM or RISC-V -- not both at the same time (or alternating). Am I wrong?

Foone🏳️‍⚧️

@MuseumJoe the datasheet, under 3.9.2. Mixed Architecture Combinations, says you can do mixed arch setups, just that they're not sure why you would want to

Nentuaby🏳️‍🌈

@foone @MuseumJoe Presumably because it's still not a capital crime for upstream vendors to ship opaque blobs.

HawkWolf (H. A. Kirsch)

@foone isn't this slightly kind of but not really like the Transmeta Crusoe?

Foone🏳️‍⚧️

@hakirsch nah! They're not doing code morphing or anything: the chip has four cores (two of each arch) and at boot it picks which two to turn on

Will 💜

@foone [User was banned for this post]

Jeremy List

@foone why add x86 when you can add 6502?

Go Up