Difference between revisions of "Main Page"

From CPUdev wiki
Jump to navigation Jump to search
(add contact info)
(added external interfaces to try and balance it more)
 
(6 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]]
<div style="background-color: #fff7f2; border: solid 1px #ffddc6; padding: 0.5em; margin-bottom: 13px;">
* [[Assembly 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>
* [[C language]]
* [[Prefetching]]
* [[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]]
* [[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>
<!-- Right side: various reference information, try to order by put most-widely-applicable stuff at the top -->
* [[FPGA]]
 
* [[7400 series logic]]
{{Box|title=Logic references|
* [[Discrete transistor logic]]
** [[CMOS]]
** [[TTL]]
* [[Relay logic]]
* [[Relay logic]]
* [[Exotic logic families]]
* [[Logic level reference]]
</div>
* [[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.
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