Modern CPUs have a backstage cast
by Hugo Landau, 2023-05-30
- https://www.devever.net/~hl/backstage-cast
"If you take someone with intermediate knowledge of computing in the
right areas, and ask them how an x86 machine boots, they'll
probably start telling you about how the CPU first comes up in real
mode and starts executing code from the 8086 reset vector of
FFFF:FFF0. This understanding of how an x86 machine boots has
remained remarkably persistent, as far as I can tell because this
basic narrative about the boot process has been handed down from
website to website, generation to generation, largely unchanged.
It's also a pack of lies and hasn't reflected the true nature of
the boot process for some time. It's true the 8086 reset vector is
still used, but only because it's a standard "ABI" for the CPU to
transfer control to the BIOS (whether legacy PC BIOS or UEFI BIOS).
In reality an awful lot happens before this reset vector starts
executing.1 Aside from people having vaguely heard about the Intel
Management Engine, this modern reality of the boot process remains
largely unknown. It doesn't help that neither Intel nor AMD have
really gone out of their way to actually document what the modern
boot process looks like, and large parts of this process are
handled by vendor-supplied mystery firmware blobs, which may as
well be boxes with "???" written in them. Mainly we have the
substantial assistance of assorted reverse engineers and security
researchers to thank for the fact that we even have a decent
picture of what the modoern x86 boot process actually looks like
for both Intel and AMD. I could write a whole article about that
process -- but instead, I'd like to focus on something else.
Basically any multiprocessor CPU chip of reasonable sophistication
produced today -- i.e., desktop and server CPUs, and probably
smartphone SoCs for that matter, also has an entire "backstage
cast" of ancillary support cores keeping things running correctly.
Some of these mainly handle the boot process, and we're more likely
to know about these (e.g. Intel ME/AMD PSP), but even less known
are "backstage" cores which don't participate in the boot process
but which are instead involved in things like power and thermal
regulation." ...
On 9/24/23 17:37, Computer Nerd Kev wrote:
Basically any multiprocessor CPU chip of reasonable sophistication
produced today -- i.e., desktop and server CPUs, and probably
smartphone SoCs for that matter, also has an entire "backstage
cast" of ancillary support cores keeping things running correctly.
Some of these mainly handle the boot process, and we're more
likely to know about these (e.g. Intel ME/AMD PSP), but even less
known are "backstage" cores which don't participate in the boot
process but which are instead involved in things like power and
thermal regulation." ...
Company secrecy is so frustrating sometimes.
Will such things end in the RISC-V era?
Probably not.
ISA extensions to the open RISC-V definitions and the helpers around the
CPU still may be kept closed. Only systems where we get each gate of
the whole system documented can prove not to do such things.
So I hope that this project still lives and continues:
Self-Hosting (Almost) All The Way Down
A FPGA-based Fedora-capable computer that can rebuild its own bitstream <https://archive.fosdem.org/2023/schedule/event/rv_selfhosting_all_the_way_down/>
But then we still have to trust the FPGA chip's contents. *sigh*
Hopefully someone has ideas how to verify them to be free of backdoors.
Interesting. But going from the benchmarks in the linked research
paper, it's a long way behind the standards of "modern CPUs" at
65MHz clock speed. I haven't watched the video yet, but it looks
like 100MHz is their current maximum clock speed with "proprietary
non-FOSS HDL toolchain (Vivado)".
Still interesting, but so long as software like web browsers
continue to bloat up to the limits of current hardware, I don't see
the FPGA CPU approach being more than an extremely obscure niche.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 388 |
Nodes: | 16 (2 / 14) |
Uptime: | 05:35:54 |
Calls: | 8,220 |
Calls today: | 18 |
Files: | 13,122 |
Messages: | 5,872,261 |
Posted today: | 1 |