Adelie


Overview:

CPU Adelie
Data 16?/32 bits
Memory 32 bits
Registers 32
Architecture Not currently relevant
Technology FPGA
Status Retargeting GNU binutils
Successor None
Time period May 2019 - present

Problems:


Lessons:


My first semester at college, I started reading Computer Organization and Design by Patterson and Hennessy because I wanted to learn how to build more advanced CPUs. There were two concepts that the authors seemed to push: make the common case fast, and judge a computer by the speed of compiled code. Ever since then, I have wanted to try making a computer that adhered to this philosophy. That computer is Adelie. Unlike my other computers, making the ISA compatable with a C compiler is one of the most important goals. Currently I am trying to retarget GCC to Adelie and soldify the ISA as I go. That is not to say I don't have an architecture in mind. There is already an emulated version running on an ATmega328P.

Emulated Adelie running fibonacci
Emulated Adelie fibonacci (jpg)

I tried to keep the instructions in variable length 16 or 32 bit words to save memory and increase the speed of the instruction fetch. I also tried to make the instructions easy to decode, which makes the first instruction word look suspiciously similar to MIPS. Since the instruction length varies between 16 and 32 bits, I may try to make a smaller 16-bit version in addition to the 32-bit version.

Before I do any more work on Adelie, my current task is to retarget a compiler to it. I chose GCC since other people had retargeted it, and it is a good compiler. They may not be the best reasons, but I would like to try anyway. I found what seems like the only tutorial on how to retarget GCC, and it is not bad considering it is from 2008. I am currently working on getting the assembler working. It is having a bit of a problem managing labels, which is causing the linker to choke.

2/7/2020

The assembler is working! I am now working on updating Binutils to version 2.34.


Why did I name the computer Adelie? I like gentoo penguins, but that name was already taken. Adelie was the next on the list.

7/24/2019 - Oops. It looks like an Adelie does exist. Oh well.

1/8/2020 - Oops. An Adelie CPU exists. That could be a genuine problem. Its ISA is RISC-V though, while mine is a homebrew.


Links:

Adelie on GitHub


Files:

Adelie ATmega328P emulator sources (zip)

Updated 1/8/2020