Chapter 1

1.1 The von Neumann Architecture

Four basic hardware components:

  • CPU
  • Main memory
  • Input devices
  • Output devices

These components are all connected to each other by the bus, which is simply a group of wires connecting the components.

Screenshot-from-2017-05-18-19-49-54.png

1.4 CPU - controls and performs data processing

The CPU consists of an ALU (performing data processing) and a controller - controlling the program execution. The popular fetch-execute cycle used in computer to execute a program of a sequence of instructions stored in main memory:

  • fetch - an instruction from the memory.
  • execute - the instruction, with steps including
    • decode - the instruction (in binary form)
    • execute - the instruction by sending control signals to the ALU and other parts of the computer
    • send - the result back to memory and/or an output device

1.6 Bus

Provides for communication among CPU, main memory and IO devices. During the execution of a program, there are there sorts of data flowing along the bus:

  • address bus - for passing the addresses of instructions and data in memory
  • data bus - for transferring the instructions and data themselves
  • control bus - for issuing control signals such as reading or writing

2.x Computer generations

  1. Vacuum tubes 45-55
  2. Transistors 55-65
  3. ICs 65-80
  4. VLSI 80-present

3.0 Computer levels

Level Name  
7 Application  
6 High-level language Software  
5 Assembly language
4 Operating system
3 Machine language
2 Microprogram Firmware
1 Logic gates Hardware

Level 7 - Applications level

Computer viewed as a machine which performs a specific function. A user at this level shouldn't be concernted with any details of computer science or engineering.

Level 6 - High-level language level

User writing programs in high level languages such as C++, Java, C#, and a compiler is used to convert the high level language instructions into lower level machine chode or assembly code.

The computer at this level is also called a virtual machine as it appears to the user as if the computer directly executes programs written in high level langauge.

Level 5 - Assembly language level

Computer viewed as being run by a program of so called assembly level instructions. Instructions that explicitly move data around between physical memory addresses, registers, I/O ports, and instructions that transform or combine their contents.

To be effect at this level, the user must have a model of the machine. Its instruction set. Assembly language is translated into machine language using an assembler.

Level 4 - Operating system level

At this level, OS software is in charge of running assembly language as well as handly memory management, process scheduling and so on.

Level 3 - Machine language level

Same sort of instructions as level 5 except they are coded as numbers instead of letters. They are ready at this stage for execution in the processor. Human programmers have greater difficulty understanding the code written for this level

Level 2 - Microprogram level

This level is concerned with the underlying engine that implements individual level 3 instructions by appropriately directing the components and their interconnections at that level. 

Level 1 - Digital logic level

The level of gates and memory cells. The language is made up of 1s and 0s, or binary numbers