this post was submitted on 21 Jul 2023
2 points (100.0% liked)

Ask Burggit!

2 readers
2 users here now

Ask Burggit!

Ever had a question you wanted to ask? Get an opinion on something?

Well, here's the place to do it! Ask the community pretty much anything.

Rules:

founded 1 year ago
MODERATORS
 

Let's just say hypothetically this was possible and that the laws of silicon were not a thing, and that there was market demand for it for some asinine reason. As well as every OS process scheduler was made to optionally work with this. How would this work?

Personally, I'd say there would be a smol lower clocked CPU on the board that would kick on and take over if you were to pull the big boy CPU out and swap it while the system is running.

top 4 comments
sorted by: hot top controversial new old
[–] RA2lover@burggit.moe 2 points 1 year ago (1 children)

Linux already has support for this, but it still has multiple limitations such as requiring multiple CPUs or including a hard limit for how many CPUs can be installed.

Assuming a consumer use case (single CPU socket, no real-time requirements) the easiest approach would be including an additional soft-off power state (S2/S3, but also setting the CPU into G3 and isolating things such as RAM), a way to prevent wake-up while the CPU is not connected, and a restart vector that lets the OS tell applications a CPU has been changed to let them safely exit code dependent on feature flags that may not be present. TPMs stay on the removed CPU, so anything relying on their PCRs gets hosed.

[–] Burger@burggit.moe 2 points 1 year ago

The Linux kernel once again amazes me. It seems to have absolutely everything. I tried looking to see videos of this in action from a hands-on perspective to see how this would work, but I get nothing but LTT clickbait garbage.

[–] Nazrin@burggit.moe 2 points 1 year ago (1 children)

Computer engineer here. I think physically swappable CPUs could be physically doable. You would have something like an SD card slot and just be able to click it in and out.

The main problem is the speed of electricity. Electricity moves about as fast as light does, but there's a problem. Meet the light nanosecond. The distance light travels in a nanosecond:

It's 6mm less than a foot. If you have a processor running at 4GHz, the pulse of the clock is going to be low for an 8th of a foot and high for an 8th of a foot. You run into issues where the clock signal is low on one side of the chip and high on the other side of the chip if the chip is too big. And that's saying nothing of signals that need to get from one side of the chip and back again before the clock cycle is up.

When you increase the distance between the CPU and the things it is communicating with, you run into problems where maybe the whole wire isn't at the same voltage. This can be solved by running more wires in parallel, but then you get crosstalk problems.

Anyway, I'm rambling. Main problem with multiple CPUs not on the same chip: by far the fastest thing in a computer is the GPU and the CPU. Everything else is super slow and the CPU/GPU has to wait for it. having multiple CPUs try to talk to the same RAM/Harddrive would result in a lot of waiting for their turn.

It's cheaper and a better design to put 24 cores in one CPU rather than have 12 cores in two CPUs.

Most things are still programmed like they are single thread and most things we want computers to do are sequential and not very multi-threadable.

[–] Burger@burggit.moe 1 points 1 year ago* (last edited 1 year ago)

Very interesting take for what I'd consider to be a semi-shitpost. Yeah, more programs are multithreaded compared to years back, but thread safety poses a big challenge still since you don't want functions executing in parallel and one part gets done sooner than the other, causing a plethora of race conditions.

For multi CPU systems, there's NUMA which tries to take advantage of the memory closest to the processor first before going all the way out and fetching the data from a different set of memory all the way across a motherboard. That's why server boards have each set of DIMMs close to each processor. Though this is coming from a hardware layman, so I'm pretty sure I'm not being entirely accurate here. Low level stuff makes my brain hurt sometimes.

load more comments
view more: next ›