Categories
Pages
-

IT Center Blog

The Beginnings of Computer Technology – Part 2

January 13th, 2025 | by

In our last article, The beginnings of computer technology, we already took a look at the first calculating machines by Konrad Zuse. Now we want to discuss the individual components of the Z3, which is considered to be the world’s first fully programmable computer, and find out which of its concepts are still used in modern computer technology. In particular, this article will focus on the architecture of the Z3.

 

Control/Computing Unit

Konrad Zuse’s Z3 consisted of two central components: the control unit and the computing unit. Both components fulfilled essential functions that are typically combined in the CPU in modern computers.
The control unit was responsible for interpreting the commands, coordinating the various parts of the machine and managing the data flow between the memory and the arithmetic unit. It also interpreted the input from the mechanical keyboard and the punched tape reader.

The computing unit, on the other hand, was responsible for carrying out basic arithmetic operations. It performed addition and subtraction directly, while multiplication and division were carried out by repeated addition and subtraction respectively. In addition, the calculator also made it possible to take square roots using the Heron method, an iterative procedure that gradually approximates the square root of a given number and thus enables efficient calculation.

The numbers were entered in the scientific notation of the decimal system and then automatically converted by the computing unit. While many of the early computers worked internally with a fixed-point representation, the Z3 was characterized by the use of a normalized floating-point representation in the binary system. This representation is similar to the scientific notation used today, but in binary form and enabled both an extended number range and a more precise representation of values. The smallest number that could be stored was 1.08 × 10^-19, while the largest was 9.2 × 10^18; smaller or larger numbers resulted in -∞ and +∞ respectively.

Similar to modern CPUs, the Z3 already had so-called registers – small memories within the arithmetic unit or CPU. Intermediate results are stored in these during calculations. Due to the shorter access time to these registers, calculations can be significantly accelerated as frequently used values do not have to be loaded from the considerably slower random access memory(RAM) or mass storage.

 

Mass Memory

Even though the Z3 only had one memory and not separate mass memory and random access memory(RAM) like modern computers, the principle was similar: data was stored bit by bit. This was implemented using relays, as already explained in part 1 of this blog series. This meant that the bits could be changed relatively easily by activating the respective relays and, as a result, data could be stored, read and modified.

The progress of the technology can be seen by looking at the memory size: The Z3 could store 64 numbers with 22 bits each, which corresponds to a maximum memory size of 176 bytes. In contrast to modern systems, however, the block size of this memory could not be adjusted dynamically. By way of comparison, a standard solid-state drive (SSD) today has a capacity of at least 1 terabyte – i.e. 1 trillion bytes.

 

Clock Speed

Like modern CPUs, the Z3 was clock-based. Each of its cycles was divided into 5 phases. In the first phase, the instructions were read from the punched tape, in phases two and three the arithmetic operations took place and in phases four and five the argument for the next operation was prepared or the result was written back.

The possible instructions and their runtimes were
– Addition: 3 cycles
– Subtraction: 4 or 5 cycles, depending on the result
– Multiplication: 16 cycles
– Division: 18 cycles
– Square root: 20 cycles
– Read keyboard input: 9 – 41 cycles, depending on exponent
– Display output: 9 – 41 cycles, depending on exponent
– Read from memory: 1 cycle
– Write to memory: 0 or 1 cycle
According to Konrad Zuse, one multiplication took three seconds, so we can estimate the clock rate to be around 5.33 Hertz.

While other early computers had similar components, the Z3 was characterized by its clear separation between the control and computing units and the mass memory. In addition, the Z3 introduced the normalized floating point representation in the binary system, which set it apart from other systems. Its mass memory used relays to store data bit by bit, allowing more flexible handling of information.

In our next blog post, we will take a closer look at the programmability of the Z3, how inputs were processed and the challenges that arose.

 


Responsible for the content of this article is Marc Weerts.

Leave a Reply

Your email address will not be published. Required fields are marked *