Hacker News new | past | comments | ask | show | jobs | submit login

The page table walking hardware on x86 is pretty distinct from the main core, and is Turing complete.

https://github.com/jbangert/trapcc




That's a bit of a disingenuous exaggeration. It's not the page table walking hardware itself which is Turing complete -- it's the page fault handling mechanism as a whole, and trapcc involves playing around with trap gates and TSS from what I recall, which almost certainly involves executing microcode that goes through the main core execution units even if not a single x86 instruction is being executed.

So no, it's really not fair to say that the page table walker is its own computer. It's just a simple state machine. One tuned for high performance etc., but far from a fully-fledged computer.


Exactly: can we have the MMU continue to execute the steps of its Turing computation (that having been configured via the trapcc program), if we clock the CPU to zero Hz?

All independently identifiable and enumerable computers in a system should be capable of continuing with their computations if their clock remains running while other computers are clocked down.


The cores in each core complex in my phone can't be clocked separately. Are they not cores?


They can, they just aren't. Big difference.

They have other ways to independently halt. Obviously any core can carry out a calculation, like calculating some arbitrarily chosen recursive primitive function, while the other cores do something completely independent, or execute a halting instruction.


What about a Niagra T1? All eight cores share a single floating point execution unit. They literally can't be clocked separately. And it's not like they're eight "cores" that are really eight SMT threads that are veneers of the same core. They are completely separate cores except the floating point unit.


Can you run this software if the core is removed or disabled?


Can you start or run your computer if the BIOS is removed or disabled? Or the power cord? No? Then does that mean the BIOS or power cord are the computer and the CPU is not a computer? Being necessary does not establish sufficiency, much less identity...


To remain within the scope, content and intent of my argument, I would say that the pieces identified as "BIOS", "power cord" and "CPU" do not constitute three separate computers.

I believe there is only one, but "at most one" is a compromise that works for me.


Can you run code on a GPU if the cores that can touch it's configuration registers are disabled? Or the imaging DSPs in an SoC? Does that make them any less of processors?


> Can you run code on a GPU if the cores that can touch it's configuration registers are disabled?

I suspect yes, if they are disabled after the configuration is settled.

That is to say, the GPU require their continuous presence and support in order to perform a complex calculation. We could set up a GPU to calculate, say, 100 digits of pi, and then clock down the other processors until it's done. Maybe it could indicate by an interrupt or something when that happens so then things can be resumed.

It seems fair that anything that can calculate while other parts are suspended is countable as a separate computer, even some of those other parts are required to prepare its initial configuration and inputs, or to announce the result.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: