This is an absolutely fantastic project. It's such a pity that fundamental basics such as "how does a CPU actually work, from first principles?" isn't taught in schools any more. I know that in Germany at quiete some middle schools, such things where taught in the 1970s in super modern computer science classes. This is quiete unbelievable nowadays.
Interesting site. Bookmarked. But the last part "Communication: SPI, I2C, CAN-bus, ethernet should be sufficient. A ZigBee like protocol would also be highly useful." made me think why?
Especially Ethernet. When you are bootstrapping, why emulate what became standard for arbitrary reasons which don't necessarily apply for the situation requiring a reboot?
Maybe something like https://en.wikipedia.org/wiki/ARCNET would be simpler to implement, while covering much of the needed/wanted functionality?
Otherwise thumbs up for going along with CollapseOS and FORTH :)
One last nag: Why no GUI? There was GEOS, for instance.
And I know of some others for 8-Bit machines, meanwhile created by retro-computing enthusiasts.
I'll teach such a course next year, based on the first half of "The Elements of Computing Systems" by Nisan and Schocken. Actually we'll start a bit earlier than the book, showing how to build logic gates from transistors. Then combinatorial circuits, from logic gates to an ALU, then sequential circuits, from logic gates to registers and addressable memory, then we'll put ALU + registers together to get a CPU and we'll design the instruction set, and finally we'll have students write a symbolic assembler for their CPU and write a few programs to run on them.
Due to time constraints, and the fact that it's likely the course will be taught online, students will use circuit simulators instead of breadboards. But I think they'll still enjoy the journey of building their computer from first principles.
This sounds like a great course and approach. Do you have your prospective syllabus anywhere online? Or even one you think is similarly well-thought out?
While that isn't from first principles, omitting much of the solid state physics and electronics, I think the abstraction layer is low enough to be comparable to schematic entry of logic for FPGAs.
12 comments
[ 0.26 ms ] story [ 33.0 ms ] threadEspecially Ethernet. When you are bootstrapping, why emulate what became standard for arbitrary reasons which don't necessarily apply for the situation requiring a reboot?
Maybe something like https://en.wikipedia.org/wiki/ARCNET would be simpler to implement, while covering much of the needed/wanted functionality?
Otherwise thumbs up for going along with CollapseOS and FORTH :)
One last nag: Why no GUI? There was GEOS, for instance. And I know of some others for 8-Bit machines, meanwhile created by retro-computing enthusiasts.
edit: couldn't stop thinking... because I don't get the obsession with VI-like/Emacsen on such systems when I remembered QEdit on MS-DOS ( https://en.wikipedia.org/wiki/The_SemWare_Editor )
Also, while I'm at it, and we are talking about low-end HW and FORTH, why not consider something like the https://en.wikipedia.org/wiki/Canon_Cat
I mean, when the road ends, why not take the other roads not taken? :)
Due to time constraints, and the fact that it's likely the course will be taught online, students will use circuit simulators instead of breadboards. But I think they'll still enjoy the journey of building their computer from first principles.
Have you seen these?
[1] https://www.youtube.com/results?search_query=minecraft+cpu
While that isn't from first principles, omitting much of the solid state physics and electronics, I think the abstraction layer is low enough to be comparable to schematic entry of logic for FPGAs.