Computer Evolution and Architecture: From ENIAC to Modern OS

Computer: Definition and Early Stages

A computer is a machine capable of processing data. It accepts a set of input data, processes it, and produces output data. The forerunners of current desk calculators were the machines of Pascal and Leibniz.

Concepts Incorporated in Babbage’s Analytical Engine

  • Input Device
  • Output Device
  • Memory
  • Control Unit
  • Arithmetic/Logic Unit

Punch cards were used to contain the information of people surveyed. This led to the creation of a tabulating machine capable of reading and processing this information.

The Dawn of the Electronic Age

Key computers in the electronic age include:

  • ENIAC – Used vacuum tubes.
  • EDVAC – First computer capable of storing a program.
  • UNIVAC I – Used magnetic tape as a storage device.
  • UNIVAC II – Included ferrite core memory.

Generations of Computers

  • First Generation: Computers based on vacuum tubes. They were very large, and their maintenance was difficult.
  • Second Generation: Replaced vacuum tubes with transistors. They used high-level languages such as COBOL, ALGOL, and FORTRAN.
  • Third Generation: Computers based on integrated circuits, leading to a reduction in size.
  • Fourth Generation: Computers with the entire CPU on a single chip, known as microprocessors. They also featured improved storage units and began using floppy disks.
  • Fifth Generation: Parallel processing architectures and designs using special high-speed circuits.

Machine Language vs. High-Level Language

  • Machine Language: Assembly-coded instructions that a computer can interpret and execute directly.
  • High-Level Language: A programming language that is independent of the computer it will run on and offers better facilities to the programmer.

CPU and Its Components

The CPU (Central Processing Unit) consists of an integrated circuit that interprets and executes instructions of programs stored in memory. It also takes data from input units, processes them, and sends them to the output and peripheral units.

CPU Components

  • Control Unit: Interprets and executes machine instructions stored in main memory and generates control signals to implement them.
  • Arithmetic-Logic Unit (ALU): Performs arithmetic operations and comparisons on data, then returns the result.
  • Registers: Store temporary information.

The size of the internal register indicates the number of bits that the processor can handle.

Categories of Registers Visible to the User

  • Address Register: Contains the memory address where data is located.
  • Data Register: Used to hold data that is frequently used.
  • Condition Register: Stores the output of the last operation performed.

Control and Status Registers Involved in Execution

  • Program Counter: Contains the address of the next instruction to execute.
  • Instruction Register: Contains the current instruction code.
  • Memory Address Register: Contains the address of the memory location.
  • Memory Buffer Register: Receives or sends information or data contained in the position targeted by the Memory Address Register.

Data Exchange and Address Transmission

The data bus facilitates data exchange between the CPU and other units. Data exchange is done through a set of power lines, one for each bit, and transmitted all at once in parallel.

Address transmission occurs between the CPU and memory to select the memory address or the input/output device for information exchange.

Components of the Control Unit (Besides CP and IR)

  • Instruction Decoder: Extracts and analyzes the code of ongoing operations instructions contained in the Instruction Register.
  • Clock: Provides a succession of electrical pulses at constant intervals.
  • Sequencer: Generates micro-orders or elemental orders, executing the charged statement step by step and in an orderly manner.

The most important part of the ALU is the floating-point unit, which manages all floating-point operations.

RAM (Random Access Memory)

RAM can store two types of information: the program or sequence of instructions to be executed and the data those instructions handle. Each box contains 8 bits. It is volatile.

Operating System (OS)

The Operating System is a program or set of programs that control the operation of hardware, offer the user an easy way to access the computer, coordinate and prioritize all processes that take place in a computer and its peripherals. It consists of the kernel, the command interpreter, and the file system.