Mathematik  |  Informatik

 

Yuri Honegger, 2005 | Rütihof, AG

 

Modern computer systems are too complex to serve as effective tools for learning the fundamentals of computer architecture. This creates the need for simplified systems for learning. This paper presents such a system based on a transport-triggered architecture and implements it using TTL logic ICs, combining the more theoretical parts with hands-on engineering to achieve a simple, but Turing-complete system. The use of a transport-triggered architecture enables the construction of a highly modular architecture that can be tested early on, leading to a fast feedback loop. To program the system, an assembler has been developed. The computer can successfully run simple programs like a prime search algorithm.

Introduction

The goal was to build a simple, easily understandable computer from electronic components. This included designing the computer’s architecture, implementing it using electronic components, and writing software that runs on the computer, as well as the tools to program the computer.

Throughout the whole process, I’ve been trying to design the system in a way that minimizes the risk of not achieving a working computer.

Methods

The architectural design was primarily done with pen and paper, and a computer for some rudimentary simulations. The choice of architecture fell on a transport-triggered architecture (TTA). It works by memory-mapping all functionalities. The core of the computer only moves data between memory-mapped devices. Since the interface to the transport system is well-defined, additional function units can be easily added at any time.
The actual construction of the computer was done on breadboards using CMOS logic integrated circuits from the 74-series implementing functions like logic gates, registers or adders. Alongside building the computer, I’ve also drawn schematics of the circuits in an EDA software.
To program the system, I’ve written an assembler. This is a program that converts human-readable machine instructions into binary-encoded instructions, which the computer can directly execute. The assembler runs on a modern host computer and communicates with the system via USB to execute the program.

Results

The computer works. For example, it can execute a program to search for prime numbers.

The computer features a 16-bit memory interface and also operates on 16-bit words. It has 64 kilobytes of memory and runs at a clock speed of up to 4 MHz. Most internal busses have LEDs connected that show the internal state, helping to explain how the system works, and for debugging.

It has function units to perform subtraction, various branch types, and input/output via a serial connection. These operations are sufficient to synthesize the remaining arithmetic and binary operations.

Discussion

I chose to use a transport-triggered architecture due to its flexibility and modularity. This proved to be a good choice, for example, when building on breadboards has taken significantly more time than anticipated. By using the modularity of TTAs, I could easily reduce the scope of functionality the computer supports and still achieve a working system.

Architecturally, there are a few things that could be improved. Initially, I settled on an instruction width of 32 bits, thinking it was similar to architectures like RISC-V or ARM. However, I didn’t consider that transport-triggered architectures need more instructions per operation compared to RISC CPUs, so the effective instruction density is much lower.

Throughout the project, I was under a lot of time pressure. This meant that I unfortunately didn’t always spend enough time validating the design, leading to quirks like branch targets having to be off by one or the serial communication interface, originally planned to use the SPI protocol, being unable to interface with normal SPI devices.

Conclusions

I’ve successfully achieved the main objective of building a working computer.

Transport-triggered architectures have remained a good choice. Their modularity and flexibility proved beneficial.

I’d reconsider if breadboards are really the best way to build such a project or at least analyze their impact on the implementation process more thoroughly.

Lastly, the value of testing cannot be understated. Due to time pressure, I didn’t spend enough time on it, leading to many small issues.

While I consider the computer complete in the sense that continuing development will not yield many new insights, it is still possible to enhance its capabilities by connecting more TTA function units.

 

 

Würdigung durch den Experten

Dr. Peter Heinrich

Die Arbeit behandelt ein zentrales Thema der Informatikausbildung – das vertiefte Verständnis komplexer Abstraktionen. Herr Honegger demonstriert, dass ein komplexes System wie ein Computer auch heute noch – in vereinfachter Form – aus einzelnen Logikgattern und Speicherbausteinen aufgebaut werden kann und dadurch vollständig begreifbar bleibt. Durch die geschickte Wahl einer geeigneten Rechnerarchitektur (TTA) werden Flexibilität und Erweiterbarkeit erzielt, was ein schrittweises Erforschen von CPU-Komponenten ermöglicht. Ein eigens für diese CPU entwickelter Assembler rundet das Projekt ab.

Prädikat:

sehr gut

 

 

 

Kantonsschule Baden
Lehrer: Christophe Bersier