Difference between revisions of "Main Page"

From CPUdev wiki
Jump to navigation Jump to search
(added external interfaces to try and balance it more)
 
(3 intermediate revisions by the same user not shown)
Line 9: Line 9:
{| style="width: 100%;" |
{| style="width: 100%;" |
| style="vertical-align: top;" |
| style="vertical-align: top;" |
<div style="background-color: #fff7f2; border: solid 1px #ffddc6; padding: 0.5em; margin-bottom: 13px;">
 
<div style="font-weight: bold; background-color: #ffe7d6; margin: 0; border: solid 1px #ffddc6; padding: 0 0.5em 0 0.5em;">Major components and concepts</div>
<!-- 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 -->
 
{{Box|title=Getting started|
Essential knowledge:
* [[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]]
* [[Control unit]]
* [[ALU]]
}}
* [[Memory bus]]
{{Box|title=Software|
</div>
* [[Emulator]]
 
* [[Assembly language]]
<div style="background-color: #fff7f2; border: solid 1px #ffddc6; padding: 0.5em; margin-bottom: 13px;">
* [[C language]]
<div style="font-weight: bold; background-color: #ffe7d6; margin: 0; border: solid 1px #ffddc6; padding: 0 0.5em 0 0.5em;">Performance optimizations</div>
* [[Forth language]]
* [[Prefetching]]
}}
{{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]]
* [[Out-of-order execution]]
</div>
* [[Register renaming]]
}}


| style="vertical-align: top; padding-left: 10px;" |
| style="vertical-align: top; padding-left: 10px;" |
<div style="background-color: #fff7f2; border: solid 1px #ffddc6; padding: 0.5em; margin-bottom: 13px;">
<div style="font-weight: bold; background-color: #ffe7d6; margin: 0; border: solid 1px #ffddc6; padding: 0 0.5em 0 0.5em;">Implementation technology</div>
* [[Writing an emulator]]
* [[Intro to binary logic]]
** [[Logic simulators]]
* [[FPGA development]]
* [[Intro to electronics]]
** [[Logic chips]]
** [[Transistor logic]]
** [[Relay logic]]
* [[Exotic logic families]]
</div>


<div style="background-color: #fff7f2; border: solid 1px #ffddc6; padding: 0.5em; margin-bottom: 13px;">
<!-- Right side: various reference information, try to order by put most-widely-applicable stuff at the top -->
<div style="font-weight: bold; background-color: #ffe7d6; margin: 0; border: solid 1px #ffddc6; padding: 0 0.5em 0 0.5em;">CPU projects</div>
 
{{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]
* [https://www.bigmessowires.com/bmow1/ Big Mess of Wires]
* [http://www.homebrewcpu.com/ Magic-1]
* [http://www.homebrewcpu.com/ Magic-1]
Line 44: Line 82:
* [https://relaycomputer.co.uk/pages/overview.html Paul Law's relay computer]
* [https://relaycomputer.co.uk/pages/overview.html Paul Law's relay computer]
* [http://zipcpu.com/about/zipcpu.html ZipCPU]
* [http://zipcpu.com/about/zipcpu.html ZipCPU]
</div>
}}


|}
|}

Latest revision as of 17:43, 6 July 2021

Homebrew CPU Wiki

This main page is mostly a placeholder for now.
To get editing permission, create an account and ping immibis on IRC. irc.libera.chat #cpudev


Basic CPU design

Important design considerations:

Hardware design:



External interfaces