1 |
|
Introduction |
1.1 Brief History of the computing
Since the days of ENIAC (Electronic Numerical Integrator and Calculator), engineers have been striving to make more powerful and faster computers. This process has seen ideas come into fashion, only to see them disappear a few years later. The first major landmark was when John von Neumann had the idea of storing programs in the same memory as the numbers, which the program would manipulate. The University of Manchester first put this in a real computer in 1948 with the Mark-I.
The advent of the Transistor computing changed dramatically, computers occupied a fraction of the space they had previously and were orders of magnitude faster. The breakthrough in user computing came from Digital Equipment Corporation (DEC), when in 1965 they announced the PDP-8. Costing only $20,000 it was the first "affordable" computer. During its lifetime nearly 300,000 were built, between 1965 and 1984, the longest production run of any for any computer.
By the mid-1970s the PDP-8 was looking slow and dated. Several versions of the PDP-8 were developed, speed was increased along with memory size. The age of the true microprocessor came when Intel launched the 4004 microprocessor in 1971. It contained 2300 transistors and could out-perform any non-silicon processor. The growth of computers continued through the Altar, Apple II and IBM PC. Around this time computing split into three categories, the microcomputer, minicomputer, and the supercomputer. As in the early days, universities, governments and large corporations used supercomputers. Companies and individuals used microcomputer.
The following table shows show how size and performance grew over 50 years.
Year |
Name |
Size (cu.ft.) |
Performance |
Memory (KB) |
Adjusted Value (1996 $) |
1951 |
UNIVAC 1 |
1000 |
1,900 |
48 |
4,996,749 |
1964 |
IBM S/360 |
60 |
500,000 |
64 |
4,140,257 |
1965 |
PDP-8 |
8 |
330,000 |
4 |
66,071 |
1976 |
Cray - 1 |
58 |
166,000,000 |
32,768 |
8,459,712 |
1981 |
IBM PC |
1 |
240,000 |
256 |
4,081 |
1996 |
Intel Pentium Pro |
2 |
400,000,000 |
16,384 |
4,400 |
Fig 1.1: Computer Size/Performance comparison. Source: The Computer Museum, Boston web site.
1.2 Technological Developments
Early computers were unreliable and consumed large amounts of power. The advent of the transistor solved most of these problems. As the computers got faster they needed faster access to the data they were processing. To make matters worse the amount of data was growing. Computers expanded from 4 bits up to 8,12 and then 16. Early computers used slow wire loom memories, which couldn’t supply data at the required speed. Silicon based memory was gradually introduced but only in small volumes as it was very expensive.
Processors were developing at an enormous rate; with the move from transistors to integrated circuits the number of transistors in computer systems was doubling every 18 months, as predicted by Moores Law (see fig 1.2). This meant that computer designers could make designs more complicated and have more functionality. The increasing numbers of transistors allowed designers to change from a single register (accumulator) computers to multiple registers. This was driven by the need to keep more information on the chip and reduce the time of going to memory. Of course, the same developments in transistor technology were being used in memory. Memory itself was increasing in capacity and speed.
Fig 1.2: Moores Law. Source Intel Processor Hall of Fame
1.3 FPGA Technology
FPGA (Field Programmable Gate Array) – is one of the new wave of technologies, which allows rapid development of small microprocessors and micro-controllers. They consist of a configurable array of logic cells, which can be configured into any logic function and then reset and configured into another logic function. This property makes them suitable for prototyping and testing of processors.
Fig 1.3: FPGA – Architecture. Source: Xilinx Product Datasheet
FPGAs are now sufficiently large to contain an entire (early) processor. The FPGA device onto which this project will be targeted has 4 to 12 thousand gates (depending on configuration). The size of this technology means that a larger transistor budget is available in which the processor can be designed. There are now more transistors available to designers and those who were developing processors 20 years ago. With clock speeds up to 5MHz on the FPGA, the processor will also be able to run considerably faster.
1.4 Choice of processor
The aim of the project was to build a "real" processor, which had already been designed and put into a commercial application. The idea wasn’t to copy the original implementation, but to make use of modern technology and tools, to design a faster alternative. The processor should be functionally identical to the original. The speed of processor development means that the re-implemented processor will have been developed some time ago. A modern processor was too complex and unfeasible in the time available.
The initial set of processor to re-implement included Intel 8080, Motorola 6800, 6809, 6502, PDP-8, Z80 and PDP-11. In order to decide which processor to choose I analysed the instruction set of each.
After consideration the PDP-11 was excluded, as they would not be possible inside the time frame of a 3rd Year Project. The Z80 would have been an ideal processor to redesign. There are still many companies producing Z80 instruction set compatible processors for embedded application. They have already looked at the Z80 and enhanced it to optimal performance, leaving little improvement possible.
The Intel 8080 was also a suitable processor, but there was a lack of support material readily available. A full processor specification was posted on the Internet, but very little external support, such as assemblers or programs.
From the remaining selection the PDP-8 came out as the most favourable, for its heritage (the first low cost machine) and its unusual instruction set. The machine is made up of a number of modules, which allow the core of the processor to be built and then modules to be added if time would have been available. Being a 12-bit processor there was large array of sophisticated software written, which is still available today.