Technology and Computer Evolution

Brian Bramer, DeMontfort University, UK (bb@dmu.ac.uk)

Goto Computer Systems Notes main page

Contents


1 Computer generations

2 Integrated circuits and performance enhancement

3 System configurations

4 Changes in user requirements

References
 

1 Computer generations

Within modern computer systems the basic element of storage is the binary digit (or bit) which can represent a 0 or a 1. The reason for this is that it is very easy to build electronic switches where an off/on condition is used to represent a 0/1 binary value. Although a single bit can only have two states, 0 or 1, a sequence of bits can be used to represent a larger range of values. Such a sequence is called a word of storage and is usually 8, 16, 32, 64 or 128 bits in length. An 8-bit word, for example, can represent an unsigned positive number in the range 0 to 11111111 binary (0 to 255 decimal) thus:
 
    bit       7         6        5        4        3        2         1          0
   bit value       2         2       2       2        2        2         2          2

In the diagram above the least significant or rightmost bit, bit 0, represents 20 or 1 and the most significant or leftmost bit, bit 7, represents 27 or 128 decimal (the convention for identifying the bits within a word is that the rightmost or least significant bit is numbered 0). The combinations of 1s and 0s of the 8-bit word thus represent an unsigned value in the range 0 to 11111111 binary (0 to 255 decimal). The general term given to an 8-bit storage word is a byte which is used by the majority of modern computer systems as their fundamental unit of storage. To represent values that are too large to store in 8-bits a number of bytes may be used. For example, a 16-bit number (made up from two bytes) can represent an unsigned value in the range 0 to 65535 decimal. In this way all data, i.e. numeric (integer or real), characters, user defined types, etc. and instructions are encoded.

The reason for using the binary number system is that it is very easy to build electronic switches to represent an off/on or 0/1 binary value. It would be much more difficult, although possible, to build electronic circuits that could take ten states to represent decimal numbers. Programs convert between external information representation (decimal numbers, text characters, programs written in Modula 2, Pascal, Cobol, etc.) and the internal binary form. End-users, therefore have no need to use the binary systems, or even be aware of its use.

The power of a computer system is directly related to the number of these 'electronic switches'. The electronic switches are used to build the:

  1. Data storage. As more data storage is added the size of programs and information held will increase.
  2. Processing circuits. As the processing circuits become more complex the power of individual instructions increases and the mechanisms of accessing and manipulating data become more powerful and flexible.
As computer systems developed over the years the technology used to build the electronic binary 'switches' gave rise to 'generations' of systems.

First generation (1940's) The electronic switches were built using thermionic valves. Valves operated on the principal of controlling the electron flow between a heated cathode and a positively charged anode. The electron flow could be 'switched' on and off by varying a negative voltage applied to a grid positioned between the cathode and anode. Using values as the basic circuit element of a computer systems posed problems:

1    valves by their nature were large, typically 2 or 3cm high.

2    by relying on a heated cathode to generate the electrons their life time was limited (typically several
       thousand hours).

Even the small computer systems used in the 1940's required at least ten thousand electronic 'switches', therefore, first generation systems were large, generated vast amounts of heat, and, tended to break down every few minutes (as a valve died).

Such systems were very expensive, programmed in machine or assembly code and used in applications where even the limited computing power was essential. For example, in code breaking and physics.

Second generation (1950's) The electronic switches were built using transistors. A transistor is fabricated using a semiconductor material (e.g. silicon) where the flow of electrons (or holes) between an 'emitter' and a 'collector' is controlled by a voltage applied to a 'base'. Transistors are much smaller than valves, typically less than half a cm high, required no heat, and had lifetimes measured in ten or hundreds of thousands of hours.

By using transistors it was therefore possible to build computer systems much more powerful than the earlier valve systems, i.e. larger information storage and more powerful processing elements. In addition, the cost of the computer systems decreased to the point where medium sized organisations could afford them, e.g. large commercial or industrial firms and universities. During this period it was realised that using machine or assembly languages to implement commercial quality software was not practical and machine independent problem oriented languages were developed, e.g. Fortran for scientific and Cobol for commercial applications.

Third generation (1960's) The electronic switches were built using small scale integrated circuits. During the 1950's and 1960's the size of the semiconductor wafers or chips used to fabricate transistors increased markedly (see below) to the point where several transistors could be built onto a single chip. It was therefore possible to fabricate a small electronic circuit onto a single chip, e.g. a basic computer 'gate'. These devices with a small circuit on a chip were called 'integrated circuits' or ICs.

Using integrated circuits, computer systems became much smaller and more powerful. Prices reduced and applications increased markedly. Sequences of jobs were organised into batches gaining the title of a 'batch processing environment'.

Fourth generation (1970's to date) The size of the silicon semiconductor chips continued to increase and therefore the complexity of the circuits which could be fabricated:

As the integrated circuits became more complex system size and costs reduced and power increased. System storage became sufficiently large for several programs to be held in memory at any time with the operating systems scheduling which job could use the processor at any instant, i.e. a multitasking or multiprocessing environment. Although batch processing continued, users could access computer systems 'on-line' from terminals thus reducing the 'turn around' time associated with batch processing.

By the late 1970's a simple processor could be fabricated on a single integrated circuit chip; called a microprocessor. This allowed more and more power to be placed in the user terminal to the point where for simple applications, the terminal became independent and the microcomputer was created.

Fifth generation (?) The computer systems we use today are fourth generation, i.e. more powerful and faster versions of those used over the past ten to twenty years. It is envisaged that fifth generation computer systems will use the same or extended hardware technology but that the operating environment will be totally different. Systems will display 'intelligence' and be able to communicate with humans on more equal terms, e.g. using speech instead of keyboards.

Summary of computer generations

The following table summarises the effect of technology on the main components of a computer system (Baer 1984). The size values present an order of magnitude figure (followed by typical values in bytes of storage).
 
     generation
  Technology        FIRST     SECOND       THIRD        FOURTH
  Processor
 technology 
       Vacuum tube     Transistor         SSI 
    LSI
     LSI, VLSI,
    ULSI
 Processor
 structure
   Uniprocessor   Multifunction
    units 
 Microcomputers
Minicomputers
  Workstations
    on LANs
 Mainframe
  speed
            1            100          2000         1000
  Microprocessor speed             -           -                1              10
    Control         hardwired     hardwired hardwired drum
microprogram
   hardwired &   microprogram
   Primary 
 memory 
  Vacuum tube      Core    Semiconductor   Semiconductor
  64K to 256K
   size bytes              1
            200
         10
        4000
       200
       64-1M
      2000
      1M - 40M
  Secondary memory & I/O paths   drum tape  channels & asynchronous
    I/O
fixed-head &movable-arm
   disks
extended I/O
optical disk
 size bytes              1
           1K-5K
           10
        100K-64K
        500
       10M-500M 
      5000
     500M-5000M
    Memory
 hierarchy
             -      experimental
 paging systems 
 segmentation & paging,   caches segmentation & paging, caches

'Faster and larger' are terms that come to mind when looking at the above table. The transition from vacuum tube to VLSI technology has produced an increase in processor speed of four orders of magnitude. This speed up is partly due to the reduction in gate switching time and wire length, and partly due to the miniaturisation of circuits (which allowed caches and extended sets of registers close to the processor). The result is fewer primary memory accesses and better matching of processor and memory speeds. Also with primary memory size that is three or four orders of magnitude larger, more programs and data can reside simultaneously in main memory, this increasing the multiprogramming level of timeshared machines. This has allowed single user microcomputers and workstations to run sophisticated programming environments (in a memory similar in size to the mainframes of the 1960's and early 1970's).

In the context of processors, size reduction has been the most important phenomenon. Microprocessors and workstations have evolved, and in mainframes and minicomputers the numbers of registers have expanded and special ALUs can coexist (floating point, decimal). Special purpose processors called multifunction units, such as I/O controllers, graphics display, array processors for matrix manipulation, etc. can be attached. This extends the concept of 'multi functional' units first implemented on the CDC 6600 mainframe and its successors in the 1960's.

Cache memories are now 'standard' on mainframe and minicomputers and becoming common on the more powerful microprocessors. A cache is a high-speed memory which sits between the processor and primary memory. The goal is to keep copies of the most frequently used words in the cache. Program execution is mainly sequential so when the processor requests a byte from primary memory the byte is fetched plus several bytes following, which are placed in the high-speed cache (during the period when the processor is decoding or executing). When the processor requests the next byte it is likely to be in the cache (the 'hit' rate is typically 80 to 90%). This technique makes the primary memory appear faster than it really is.

Until the third generation the control unit was hardwired (physical circuits wired into the computer). When compact ROMs appeared, these allowed practical microprogramming (the instruction decode and control circuits of the processor are in a 'microprogram' in ROM, thus allowing 'easy' modification of the instruction set). In addition some modern processors have control units that can be microprogrammed by user programs (using RAM instead of ROM), allowing optimisation for certain high-level languages.

The virtual memory techniques developed on the third generation mainframes (to allow programs larger than physical memory) are now being applied to professional single-user workstations. At any instant the vast majority of programs are using very little of the overall code and data. In a virtual memory system the program and data is broken down into 'pages' (typical size 4Kbytes) which are held on disk. Pages are then brought into primary memory as required. This technique allows program size to be much larger than the physical primary memory size (typically a modern microcomputer may have 1 to 4Mbytes of primary memory but a virtual memory size of 16Mbytes).

Although very high density disks have increased the size of secondary memory, there is still a gap of four orders of magnitude between the speed of primary and secondary memory (primary memory speed is less than 0.000001 of a second and secondary memory speed greater than 0.001 of a second). 'Electronic disks' such as bubble memory and CCD devices have not made any significant impact.
 
 

2 Integrated circuits and performance enhancement

An integrated circuit chip is a small device a few centimetres square which contains a complex electronic circuit fabricated onto a wafer of semiconductor material. Over the years the techniques used to fabricate the wafers have improved (Hennessy & Jouppi 1991). For example, the maximum chip edge size increased from 2mm in 1960 to 13mm in 1990, see Fig. 1, and the minimum feature size decreased from 50 microns in 1960 to 0.8 microns in 1990 allowing more circuits per unit area, see Fig. 2. The result was that integrated circuits became larger and more complex, see Fig. 3, with the number of transistors per chip doubling every two years (a law originally handed down in 1975 and still going strong) (Myers 1991). Alongside the increase in complexity there has been a corresponding reduction in cost, see Fig. 4:

      Over the past 30 years, the performance/dollar ratio of computers has
                increased by a factor of over one million (Gelsinger et al 1989).

For example, in 1790 the cost of memory (magnetic core) was between 50 pence and L1 per byte, e.g. 4K of 12-bit PDP8 memory was approximately L4000. By the mid 1970's 16K of 32-bit PDP11 memory cost L4000. Today IBM PC compatible memory is between L35 and L50 per Mbyte (the faster workstation memory is L150 to L400 per Mbyte).

The generations of integrated circuit technology range from small scale integration (SSI), to medium scale integration (MSI), to large scale integration (LSI), very large scale integration (VLSI) and ultra large scale (ULSI) integration. These can be represented by ranges of complexity (numbers of components on the chip), see Table 4.

Until recently a sophisticated workstation would have contained a large number of complex integrated circuit chips, e.g. the microprocessor, floating point co-processor, memory management unit, instruction and data caches, graphics controller, etc. As chip complexity increased it became possible to build more and more powerful on-chip microprocessors with larger and larger address and data busses. The major problem, however, with increasing off-chip bus widths is that every extra bit requires a contact (pin or leg) on the chip edge to connect it to the outside world and an extra 'wire' and interface components on the external bus and associated circuits. Thus every extra bus lines makes the overall system more complex and expensive, i.e. mini and mainframe computer systems (which have large data buses) can be an order of magnitude greater in cost than a personal workstation of equivalent CPU performance.

The ability to fabricate more components on a single chip (Fig. 3) has meant that a number of functions can be integrated onto a single integrated circuit, e.g. the Motorola 68040 (Edenfield et al 1990) contains the microprocessor, floating point co-processor, memory management unit and instruction and data caches on a single chip. The advantages of having the majority of the major components on-chip that very wide internal busses can be used decoupling cycle timing and bandwidth of on-chip operations from off-chip considerations (Hennessy & Jouppi 1991). Hence the processor can run at a very fast cycle time relative to the frequency of the external circuitry.
 
        complexity   typical circuit function
                 SSI

       MSI

       LSI
 

       VLSI

       ULSI

       2-64

     64-2000

    2000-64000
 

   64000-2000000

  2000000-64000000 

e.g. simple gates AND, OR, EXOR, NOT, etc.
e.g. counters, registers, adders, etc.
e.g. ALUs, small microprocessors, I/O interfaces.
e.g. microprocessors, DMA controllers, etc.
e.g. parallel processors, 1 Mbyte memory chips.

Table 4 Integrated circuit generations: complexity and typical circuit function


Fig. 1 Maximum chip edge size against time


Fig. 2 Minimum feature size in microns against time

Fig. 3 Number of components per chip against time


Fig. 4 Average main memory cost per byte
 

Memory

Early primary memory of any size was based on magnetic core. In the mid 1970's semiconductor memories started to replace these until today practically all primary memory is static or dynamic semiconductor.

Magnetic core memory used small ferrite cores which store the data in a magnetic field. This had the advantage that when power was removed the contents were not lost. However, there was a limitation to how small the cores could be made (wires had to be run through them). Core memories were therefore large (a 4Kbyte memory in 1970 would fill a 10" by 10" circuit board) and expensive (a 4Kbyte memory in 1970 cost about 2000 pounds).

Static semiconductor memory is based on an electronic switch or flip flop. Once the data is stored its value is maintained until changed or power is lost (can use battery backup in critical situations).

Dynamic semiconductor memory is based on using an electrostatic charge to store the information. The problem is that the charge leaks away over a period of time. Dynamic memories therefore need a refresh circuit that every now and then (every 0.001 of second or so) reads the memory contents and writes it back to restore the electrostatic charge. Dynamic memories are cheaper, smaller and take less power than static, so although they need the refresh circuit, are very common. If the power is removed the memory contents are lost (can use battery backup in critical situations).
 
 

3 System configurations

In the late 1970s computer systems could be classified into microcomputers, minicomputers and mainframe computers:

A microcomputer: a single user computer system (cost L2000 to L5000) based on an 8-bit microprocessor (Intel 8080, Zilog Z80, Motorola 6800). These were used for small industrial (e.g. small control systems), office (e.g. word-processing, spreadsheets) and program development (e.g. schools, colleges) applications.

A minicomputer: a medium sized multi-user system (cost L20000 to L200000) used within a department or a laboratory. Typically it would support 4 to 16 concurrent users depending upon its size and area of application, e.g. CAD in a design office.

A mainframe computer: a large multi-user computer system (cost L500000 upwards) used as the central computer service of a large organisation, e.g. Gas Board customer accounts. Large organisations could have several mainframe and minicomputer systems, possibly on different sites, linked by a communications network.

As technology advanced the classifications have become blurred and modern microcomputers are as powerful as the minicomputers of ten years ago or the mainframes of twenty years ago, i.e.:

           Over the past 30 years, the performance/dollar ratio of computers has
                    increased by a factor of over one million (Gelsinger et al 1989).
 


Fig. 5 Trends in CPU performance growth (Hennessy & Jouppi 1991)
Note: no account is taken of other factors such as I/O bandwidth, memory capacity, etc.

Fig. 5 shows the rate of CPU performance growth since the 1960's (Hennessy & Jouppi 1991) as measured by a general purpose benchmark such as SPEC (Weicker 1990, Bramer 1992). Microprocessor based systems have been increasing in performance by 1.5 to 2.5 times per year during the past six to seven years whereas mini and mainframe improvement is about 25% per year (Hennessy & Jouppi 1991). It must be emphasised that Fig. 5 only compares CPU performance and no account is taken of other factors such as the larger I/O bandwidth and memory capacity of mini and mainframe systems and the special applications which require supercomputers.

Today system configurations may be summarised as PCs (personal computers), professional workstations, multi-user mini/mainframe computers and distributed environments (Bramer 1992).
 
 

4 Changes in user requirements

As computer systems became more powerful the users working environment changed from single user, through batch processing, timesharing a multi user machine to personal networked workstations:
 
Mode of operation
  single-user  batch processing  timesharing    networking
  user needs   'an answer'   several runs
    per day
 response in
    seconds
  access to
  many systems
  Typical
 facilities
  stand-alone    mainframe    mainframe/
  minicomputer
 & communications
  workstations
   on a LAN

Initially computers (first and early second generation) were single user stand-alone machines programmed in assembly languages. The users (mainly mathematicians, scientists and engineers) used and operated the machines themselves, feeding in data and waiting for answers. Second generation computers were mainly operated in batch mode, with users punching programs and data onto punched cards and tapes, which were fed into the computer by operators. Commercial use became extensive and the majority of applications programming was in high-level languages. The main problem was that the turn around on jobs was such that only a few runs per day could be achieved. Although third generation computers ran batch streams, the faster processor and larger memories allowed users to access the machine directly from teletypes, running programs under a timesharing operating system (the operating system gave each user program a 'turn' with the processor). Users could type in their programs and data, compile and then execute. As user requirements grew, larger and larger programs became the norm, with expectations of a good response time (under 5 seconds). As processor power increased and size reduced it became possible to put simple processors in the users terminal. The advent of microprocessors allowed these 'terminals' to become stand-alone microcomputers equipped with disks and printers (they could be linked to a host mainframe over a normal terminal line). Today the microcomputer has grown into powerful personal workstations equipped with powerful processors, 1 to 4 Mbytes of memory, 100 Mbyte disk and a high-quality graphics display screen. Such workstations need to have access to information sources on other machines and therefore can be connected to a high speed LAN (Local Area Network). This allows the users to access remote databases, share programs and data, use mail facilities, etc.
 
 

References


Bramer, B,'Workstation benchmarks and configurations', Notes, De Montfort University, 1992.

Baer, J., 1984,'Computer Architecture', IEEE Computer, Vol. 17, No 10, Oct.

Burger, R. M., Cavin, R. K., Hoton, W. C. and Summey, L. W., 1984, 'The impact of ICs on computer technology', IEEE Computer, Vol. 17, No. 10, Oct.

Gelsinger, PP, Gargini, P A, Parker, G H, & YU A Y C, 1989, 'Microprocessors circa 2000', IEEE Spectrum, Vol. 26 No. 10, October, pp 43-47.

Hennessy, J L & Jouppi, N P, 1991,'Computer technology and architecture: an evolving interaction', IEEE Computer, Vol. 24, No. 9, September, pp 18-28.

Myers, W, 1991, 'The drive to the year 2000', IEEE Micro, Vol. 11 No. 4, February, pp 10-17 68-74,

Pohm, A. V., 1984, 'High-speed memory systems', IEEE Computer, Vol. 17, No. 10, Oct.

Stallings, W., 1987, 'Computer organisation and architecture', MacMillian.

Weicker, R P, 1990, 'An overview of common benchmarks', IEEE Computer, Vol. 23 No. 12, December, pp 65-75.

Wilson, R., 1989, 'Applications determine the choice of RISC or CISC' Computer Design, Vol. 28 No. 5, March 1.