1.
Computer Architecture
1.2
What is a Computer?
It is an electronic device, composed of any digital circuits
Stores and processes data according to instructions given to it by a
program stored in memory
1.3
Alan Turing
Father of Computer Science, Mathematician, Logician,
Wartime Codebreaker, Victim of Prejudice
Criptography Artificial Intelligence
Turing's Bombe an electro-mechanical special purpose The Turing test
computing device used in the World War II effort
1.4
The Universal Computing Machine
The Turing Machine is an imaginary computer invented in this paper
(1936) to help solve a question in mathematical logic.
The idea of controlling the machine's operations by means of a program of coded instructions stored in memory
was born.
1.5
Electromechanical Computers
In the earliest computers, switches were opened and closed
by magnetic fields produced by relays
The IBM ASCC was a general purpose electromechanical computer used in the World War II effort and built by a
team representing Harvard, the U.S. Navy and IBM
Instructions and Data were provided via two separate punched paper tapes
One of the first programs to run on the Mark I was initiated on 29 March 1944 by John von Neumann
1.6
Modern Computers
How does the modern computer work?
The Von Neumann architecture
All computers based on the same basic design
Flexibility to execute different types of programs like the Turing machine
Program and Data both stored in the same memory
1.7
The Von Neumann architecture
Stored-Program computer system
Memory holds both the program data and the instructions processing it
Control Unit manages moving data and program instructions into and out of memory
Control Unit executes program instructions sequentially
ALU is responsible for calculation tasks on the data
Input/Output makes program interactive
All these units are linked to each other via a computer bus
What is a computer bus?
1.8
Computer Bus
A bus, in computing, is a set of physical connections (cables, printed
circuits, etc.) which can be shared by multiple hardware components
in order to communicate with one another
Each wire in a computer bus will carry a single bit of information
1.9
Memory Subsystem
1 . 10
Flip-Flops
In digital electronics, a flip-flop or latch is a circuit that
has two stable states and can be used to store one bit of
information
1 . 11
{ Board Exercise }
Draw the truth table for an SR Flip-Flop
1 . 12
Memory Organisation
Main Memory is organised as a matrix of bits, where each row
represents a memory location and is capable of storing a number of
a specific width, typically multi-byte in length (8, 16, 32 or 64 bits)
Assume that data within memory can only be read or written a single row (memory location) at a time
1 . 13
Memory Architecture
Address Bus - carries the address of a memory cell
Data Bus - used to transfer data to and from a memory cell
Control Bus - selects read or write operations between memory
and cpu or I/O devices
1 . 14
Random Access Memory
Many memory cells of fixed size
Each cell has an address associated with it
The time it takes to fetch/store is the same for all cells
Contents are lost if power fails
1 . 15
Read Only Memory
Contents written during production
Supports read operations only
Contents are NOT lost if power fails
Later evolved into PROMs, EPROMs and EEPROMs
1 . 16
Memory stores numbers, but what about
letters?
Data in our programs can consist of both Numbers and Characters
But how can a computer represent Characters?
Using a character encoding scheme
1 . 17
ASCII
American Standard Code for
Information Interchange
Most common character-encoding scheme on the Web until 2008
Surpassed by UTF-8, which includes ASCII as a subset
Based on the English alphabet, uses 7 bits and is capable of
encoding:
1. numbers 0 to 9
2. lowercase letters a to z
3. uppercase letters A to Z
4. basic punctuation symbols
5. control codes that were originated with Teletype machines
1 . 18
{ Exercise }
Consult ASCII Man Page
1 . 19
The Memory Subsystem
Storing Data in Memory
Cannot GET /interactive/intro/Memory_Diagram.html
1 . 20
What about more complex things?
Anything can be represented in memory using numbers, we just
need some structure and/or encoding mechanism
.gif | .mp3 | .wav | .avi | .psd | .jpeg
1 . 21
The Central Processing Unit
Executes a program of instruction cycles
Each instruction cycle has a number of steps
1. Fetch an instruction from memory
2. Decode it, determine what has to be done
3. Execute the instruction
4. Go back to step 1
1 . 22
ALU
4 bit Cascadable ALU with 16 different
Operations, implemented using 75 Logic Gates.
1 . 23
CPU Registers
Used to store and transfer data and instructions, they are the fastest
type of memory available.
Some registers are general purpose, others have specific functions. The accumulator register, for example, is
located inside the ALU and used during arithmetical & logical operations
1 . 24
Machine Code and Assembly
Machine code or machine language is a set of instructions executed directly by a computer's CPU. Each instruction
performs a very specific task, such as a load, a jump, or an ALU operation on a unit of data in a CPU register or
memory.
Because strings of 0s and 1s are so hard for people to read, assembly languages were invented. An assembly
language is essentially a human readable direct translation of machine language.
1 . 25
Program Execution
Data flows inside the CPU using an internal bus
IR holds the next instruction to be decoded and executed
PC holds the address of the next instruction to be fetched
1 . 26
{ Board Exercise }
Simulate the machine code execution in the Von Neumann
architecture
1 . 27
I/O
There are different types of I/O
Input Devices
Keyboard
Mouse
Microphone
Output Devices
Monitor
Printer
Speakers
Secondary Memory
Hard Drive
Floppy Disk Drive
CD/DVD
1 . 28
Terminal Evolution
teletype old terminal modern terminal
1 . 29
Storage Memory
Also called Secondary memory, can be Removable or Persistent
Much slower than RAM/ROM
Much bigger than RAM/ROM
Much cheaper than RAM/ROM
Used by the OS through filesystems
Can be used by the OS as virtual memory
1 . 30
Hard Disk Structure
MBR is used in the computer boot process
Drives can be split into logical volumes called partitions
Sectors for a disk partition are marked during low level formatting
An empty file system is installed on a disk partition during the high
level formatting
1 . 31
Computer Boot
Sequence
1 . 32
Power On
The PC is set to an address 16 bytes below the processor’s
uppermost physical address. Eg: 0xFFFF0 for a 1M of address space
ROM containing the software initialization code must be located at
this address
1 . 33
Basic Input/Output System
BIOS is a Boot Firmware built into PCs and the first
software to be run at power on
Performs hardware initialization (POST) and loads a Bootloader from
a mass memory device
Unified Extensible Firmware Interface (UEFI) was designed as a successor to BIOS, aiming to address its technical
shortcomings. New PC hardware predominantly ships with UEFI firmware
1 . 34
The Boot Process