This commit is contained in:
Nicola Belluti 2025-01-22 16:37:33 +01:00
parent 0c749eff41
commit 0ae6028c18

@ -9,12 +9,12 @@ Patt](https://users.ece.utexas.edu/~patt/) and [Sanjay J.
Patel](https://sjp.ece.illinois.edu/) to teach their students about computer Patel](https://sjp.ece.illinois.edu/) to teach their students about computer
architecture. architecture.
The processors in this family are extremely simple and they all feature a The processors in this group are extremely simple and they all feature a
*very* [RISC](https://en.wikipedia.org/wiki/RISC) instruction set; they all *very* [RISC](https://en.wikipedia.org/wiki/RISC) instruction set; they all
have a 16-bit address bus and a 16-bit data bus, except for the latest have a 16-bit address bus and a 16-bit data bus, except for the latest
architecture of the group -- the LC-3b -- which has an 8-bit data bus. architecture of the series -- the LC-3b -- which has an 8-bit data bus.
The most famous ISA of this category is without a doubt the LC-3, the third The most famous ISA of this family is without a doubt the LC-3, the third
iteration of the architecture: on this specific ISA people made a iteration of the architecture: on this specific ISA people made a
[subreddit](https://reddit.com/r/lc3), a [Wikipedia [subreddit](https://reddit.com/r/lc3), a [Wikipedia
page](https://en.wikipedia.org/wiki/Little_Computer_3), an [online page](https://en.wikipedia.org/wiki/Little_Computer_3), an [online
@ -24,12 +24,12 @@ using a search engine.
## Why am I doing this? ## Why am I doing this?
The goal of this project is to make more people know about this family of ISAs, The goal of this project is to make more people know about this family of ISAs,
which I believe is ideal for teaching computer architecture, operating systems which I believe is ideal for learning about computer architecture, operating
and programming languages. systems and programming languages.
Naturally, the focus will be on the last two ISAs of the series, the LC-3 and Obviously, the focus will be on the last two iteration of the series, the LC-3
LC-3b, as they are the most recent, the most comprehensive, and, in my opinion, and LC-3b, as they are the most recent, the most comprehensive, and, in my
the most interesting. opinion, the most interesting.
## Roadmap ## Roadmap
@ -41,7 +41,7 @@ The first step is to create a comprehensive documentation with a lot of
sources. sources.
There isn't much information available about these architectures, so it is There isn't much information available about these architectures, so it is
necessary to refer to the original books and save what can be found online essential to refer to the original books and save what can be found online
using the [WayBack Machine](https://web.archive.org/). using the [WayBack Machine](https://web.archive.org/).
### ◻️ Creation of a Developement Suite ### ◻️ Creation of a Developement Suite
@ -51,26 +51,27 @@ tools, such as an emulator and an assembler.
### ◻️ Developement of a GUI Learning Environment ### ◻️ Developement of a GUI Learning Environment
After developing the basic developement tools, we can create a graphical tool After developing a basic developement suite, we can create a graphical learning
that can replace the outdated software created by the original authors. environment that can replace the outdated software created by the original
authors.
It would be great to create an environment where users can both write assembly It would be great to create an environment where users can both write assembly
and execute it, rather than having two separate apps. and execute it, rather than having two separate apps.
### 💪🏻 Physical CPU with an FPGA ### 💪🏻 Physical CPU with an FPGA
Inspired by [Ben Eater's series on the 6502](https://eater.net/6502), once the Inspired by [Ben Eater's series on the 6502](https://eater.net/6502), we could
GUI development environment is ready, we could take the program and load it take the program and load it into an EEPROM to be executed by a physical
into an EEPROM to be executed by a physical copy of our CPUs! version of our CPUs, maybe on a breadboard!
Also, it would be interesting to create a motherboard with some sort of I/O It would be interesting to create a small custom motherboard with some sort of
interface to enable our computer to communicate with the outside world. I/O interface to enable our computer to communicate with the outside world.
### 💪🏻 Development of an LLVM Backend ### 💪🏻 Development of an LLVM Backend
Let's access more modern programming languages such as C and Rust! Let's access more modern programming languages such as C and Rust!
### 💪🏻 Creation of a UNIX-like Operating System ### 💪🏻 Creation of a small UNIX-like Operating System
### 💪🏻 Software Porting ### 💪🏻 Software Porting