Difference between revisions of "Main Page"

From CPUdev wiki
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 4: Line 4:
<p style="font-size: xx-large; margin: 0;">Homebrew CPU Wiki</p>
<p style="font-size: xx-large; margin: 0;">Homebrew CPU Wiki</p>
This main page is mostly a placeholder for now.<br>
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
To get editing permission, create an account and send a private message to immibis on IRC - irc.oftc.net
|}
|}


{| 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>
* [[FPGA]]
* [[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 41: 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 14:09, 21 June 2025

Homebrew CPU Wiki

This main page is mostly a placeholder for now.
To get editing permission, create an account and send a private message to immibis on IRC - irc.oftc.net


Basic CPU design

Important design considerations:

Hardware design:



External interfaces