Difference between revisions of "Main Page"
Jump to navigation
Jump to search
(added external interfaces to try and balance it more) |
|||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
< | <!-- Box concept copied from osdev wiki, which probably copied it from Wikipedia --> | ||
{| style="width: 100%; text-align: center; background-color: #fff7f2; border: solid 1px #ffddc6; margin-bottom: 14px;" | | |||
| | |||
<p style="font-size: xx-large; margin: 0;">Homebrew CPU Wiki</p> | |||
This main page is mostly a placeholder for now.<br> | |||
To get editing permission, create an account and ping immibis on IRC. irc.libera.chat #cpudev | |||
|} | |||
{| style="width: 100%;" | | |||
| style="vertical-align: top;" | | |||
= | <!-- Left side: tutorials. Starting from the top (and skipping irrelevant ones) should get a new person going in a useful direction, kinda like a tutorial. More experienced people can go farther down the list. At some point it can split into branches --> | ||
* [https://www. | |||
* [ | {{Box|title=Getting started| | ||
* [https:// | Essential knowledge: | ||
* [https:// | * [[Introduction to digital logic]] | ||
* [ | * [[Binary arithmetic]] | ||
* [[How a computer works]] | |||
Designing and simulating a CPU: | |||
* [[Getting started - Logisim]] | |||
* [[Getting started - FPGAs]] | |||
Building a CPU in real life: | |||
* [[Electronics primer]] | |||
* [[Getting started - logic chips]] | |||
* [[Getting started - transistor circuits]] | |||
* [[Getting started - relay circuits]] | |||
}} | |||
{{Box|title=Basic CPU design| | |||
Important design considerations: | |||
* [[Programmer's model]] | |||
* [[Harvard vs Von Neumann]] | |||
* [[RISC vs CISC]] | |||
* [[Number of bits]] | |||
Hardware design: | |||
* [[Instruction encoding]] | |||
* [[Data path]] | |||
* [[ALU]] | |||
* [[Control unit]] | |||
}} | |||
{{Box|title=Software| | |||
* [[Emulator]] | |||
* [[Assembly language]] | |||
* [[C language]] | |||
* [[Forth language]] | |||
}} | |||
{{Box|title=Advanced topics| | |||
Instruction set extensions: | |||
* [[Exceptions and interrupts]] | |||
* [[Floating-point unit]] | |||
* [[Virtual memory]] | |||
Performance tricks: | |||
* [[Instruction prefetching]] | |||
* [[Pipelining]] | |||
* [[Branch prediction]] | |||
* [[Data cache]] | |||
* [[Out-of-order execution]] | |||
* [[Register renaming]] | |||
}} | |||
| style="vertical-align: top; padding-left: 10px;" | | |||
<!-- Right side: various reference information, try to order by put most-widely-applicable stuff at the top --> | |||
{{Box|title=Logic references| | |||
* [[Relay logic]] | |||
* [[Logic level reference]] | |||
* [[Logic chip reference]] | |||
}} | |||
{{Box|title=External interfaces| | |||
* [[UART]] | |||
* [[I2C]] / [[SPI]] | |||
* [[VGA]] | |||
* [[PS/2]] (mouse and keyboard) | |||
* [[Ethernet]] | |||
* [[USB]] | |||
}} <!-- looking pretty unbalanced! More stuff needed here --> | |||
{{Box|title=CPU projects| | |||
* [https://www.bigmessowires.com/bmow1/ Big Mess of Wires] | |||
* [http://www.homebrewcpu.com/ Magic-1] | |||
* [http://megaprocessor.com/ Megaprocessor] | |||
* [https://monster6502.com/ Monster 6502] | |||
* [https://relaycomputer.co.uk/pages/overview.html Paul Law's relay computer] | |||
* [http://zipcpu.com/about/zipcpu.html ZipCPU] | |||
}} | |||
|} |
Latest revision as of 17:43, 6 July 2021
Homebrew CPU Wiki This main page is mostly a placeholder for now. |
Getting started
Essential knowledge: Designing and simulating a CPU: Building a CPU in real life: Basic CPU design
Important design considerations: Hardware design: Advanced topics
Instruction set extensions: Performance tricks:
|
Logic references
|