Stuart Cunningham - Computer Platforms - 2003
COMPUTER PLATFORMS
Von Neumann Architecture
&
Terminology & Performance
Week 3
Stuart Cunningham - Computer Platforms - 2003
Week 3• CPU
– Buses– Registers
• Von-Neumann Architecture– Fetch Execute Cycle– Von Neumann Model
• Memory– Types of memory
• Representing Information– Analogue & digital– Decimal, binary, hexadecimal
• Terminology & Performance– MIPS & Hertz– Bits ‘n’ bytes
Stuart Cunningham - Computer Platforms - 2003
CPU Buses• Parallel connections between low-
level components of the computer– Size is measured by the number of
parallel connections on the bus• E.g.- 32-bit wide bus = 32 individual wires• These bursts are called words• A word is a set measure of bits (in this case we
have a 32-bit word)
• Signals on buses follow strict timing sequences
• Some buses are bi-directional– Allowing two way flow of information
Stuart Cunningham - Computer Platforms - 2003
CPU Registers• Used to temporarily store data
read from memory
• Registers are used to process instructions and data during the Fetch Execute Cycle– Two main types of register:
• Instruction Register (IR)– Commands to be performed
• Data Registers– Data upon which operations will be
performed
Stuart Cunningham - Computer Platforms - 2003
CPU Registers• Common registers in the CPU:
– Program Counter (PC)• Holds the memory address of the next instruction to
be executed
– Memory Buffer Register (MBR)• Briefly holds data and instructions that travel to and
from memory
• Sometimes called MDR (Memory Data Register)
– Memory Address Register (MAR)• Holds the memory address locations of data and/or
instructions to be read / written to memory
– Current Instruction Register (CIR)• Holds the instruction which is to be executed
– General Purpose Registers• ‘Working areas’ for data processed by the ALU
Stuart Cunningham - Computer Platforms - 2003
Fetch Execute Cycle• Defines how instructions
are retrieved and
carried out inside the
processor (CPU)
• Sometimes called the
Instruction Cycle or
Automatic Sequence
Control
START
Fetch next instruction from memory to CIR
Increment PC
Execute instruction in CIR
STOP?
END
no
yes
Stuart Cunningham - Computer Platforms - 2003
Fetch Execute Cycle• Fetch Stage
– Copy contents of PC
into MAR• Value of PC presented
via the address bus
– Increment PC
(point to next instruction)
– Copy instruction from
MBR into CIR via data bus
START
Fetch next instruction from memory to CIR
Increment PC
Execute instruction in CIR
STOP?
END
no
yes
Stuart Cunningham - Computer Platforms - 2003
Fetch Execute Cycle• Execute Stage
– Decode instruction
from CIR
– Run instruction in CIR
– Unless instruction is
STOP, repeat cycle
START
Fetch next instruction from memory to CIR
Increment PC
Execute instruction in CIR
STOP?
END
no
yes
Stuart Cunningham - Computer Platforms - 2003
Fetch Execute Cycle• Instruction Set
– The types of instruction that a particular machine can execute
– The instructions that are carried out during the Fetch Execute Cycle
– Types of instruction:• Arithmetic and logical calculations on data• Input and output of data• Changing the sequence of program execution• Transferring data between memory and CPU registers• Transferring data between CPU registers
– Instructions are split into two parts:• Opcode (Operation Code)- the operation to be carried out• Operand- The data upon which the operation should be
performed
Stuart Cunningham - Computer Platforms - 2003
Von Neumann Model• Logical structure of the computer
system
Stuart Cunningham - Computer Platforms - 2003
Von Neumann Model• Logically defines a complete computer
system• Centralised control of all processes of the
computer system• Defines main parts of the machine:
– Memory• Storage for instructions and data
– Processing unit• ALU functions
– Control unit• Interpreting instructions• Issuing commands
– Input and Output• For entering and retrieving data
Stuart Cunningham - Computer Platforms - 2003
Von Neumann Model• Problem?
– Von-Neumann Bottleneck– All instructions must be retrieved from memory
before they are processed• Memory (RAM) runs at slower speeds than the
processor is capable of
• The difference between the speed of the RAM and the speed of the processor is the ‘bottleneck’
• This is being remedied by faster RAM technologies– Such as SDRAM
Stuart Cunningham - Computer Platforms - 2003
Memory (RAM)• Many different types of RAM
– SDRAM• Synchronous DRAM• Synchronises with processor buses
– Max. approx 133 MHz
• Reasonably new
– DDR SDRAM• Double Data Rate SDRAM• Transfers data on both sides of the clock cycle• Effectively doubles transmission rate
– EDO DRAM• Extended Data Out DRAM
– Gets the next block of memory while current block is being sent to the processor
Stuart Cunningham - Computer Platforms - 2003
Memory (RAM)• BEDO DRAM
– Burst EDO RAM• Only synchronise with CPU for short time
– Processes four memory addresses in one go• Only supports max. 66MHz processor buses
• FPRAM– Fast Page RAM– “Page Mode Memory”– Dynamic RAM– Allows faster access to adjacent memory locations
• Does not always store complete addresses• NVRAM
– Non Volatile RAM– Retains it’s contents when power is switched off– Powered by a battery– Or uses an EEPROM chip
• Electrically Erasable Programmable ROM• Combination of SRAM and EEPROM chips
– SRAM is an NVRAM derivative
Stuart Cunningham - Computer Platforms - 2003
Video Memory (RAM)• WRAM
– Windows RAM• Windows are large blocks of memory
• Supports two paths to transport data– Sends data for display as new information is being
sent to the graphic adapter’s memory– Same principle as standard VRAM– Faster than VRAM because of Windowing
• SGRAM– Synchronous Graphic RAM
• Dynamic RAM
• Synchronise with processor buses up to 100 MHz
• Capable of opening two memory pages at once– Simulates dual data transmission of VRAM and WRAM
• Better than standard VRAM
Stuart Cunningham - Computer Platforms - 2003
Analogue• A continuously varying signal
– Varying in terms of frequency, amplitude, or both
• A signal that is constantly changing• Analogue can represent many values
Stuart Cunningham - Computer Platforms - 2003
Digital• A signal with discrete value changes• Signal levels are either on or off• Often thought of as either 1 or 0,
especially in computers, but digital can represent many different values using discrete levels
Stuart Cunningham - Computer Platforms - 2003
Decimal• Base 10• Numbers we use in everyday life• 10 values then increment to next digit
– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9– Each position represents a value of 10 to
the positions power
• ‘Ten fingers & ten toes’• Decimal numbers
– E.g.-• 5• 64281• -3564
Stuart Cunningham - Computer Platforms - 2003
Binary• Base 2• Commonly used in computers to represent
data• 2 values, then increment next digit
– 0 or 1– Each position represents a value of 2 to the
positions power– On or off (Digital)
• Binary numbers– E.g.-
• 01• 1010110• 00000000• 11111111
Stuart Cunningham - Computer Platforms - 2003
Converting Decimal & Binary• To convert decimal to binary:
– If the decimal number is ODD, write a ‘1’ on the far right hand side
– OR if the decimal number is EVEN, write a ‘0’ on the far right hand side
– Divide the decimal number by TWO• If there is a remainder then ignore it
– If the number you have is ODD, write a ‘1’ to the left of the previous digit
– OR if the number is EVEN, write a ‘0’ to the left of the previous digit
– Repeat until your decimal number is 0
Stuart Cunningham - Computer Platforms - 2003
Converting Decimal & Binary• E.g.-
– Decimal ’15’ = ODD = 1– 15/2 = 7.5 = 7 = ODD = 11– 7/2 = 3.5 = 3 = ODD = 111– 3/2 = 1.5 = 1 = ODD = 1111
• Binary ‘1111’ = Decimal ’15’ !!!!• We can ‘pad’ our binary number with 0’s
– Eg: 00001111
– Decimal ’32’ = EVEN = 0– 32/2 = 16 = EVEN = 00– 16/2 = 8 = EVEN = 000– 8/2 = 4 = EVEN = 0000– 4/2 = 2 = EVEN = 00000– 2/2 = 1 = ODD = 100000
• Binary ‘100000’ = Decimal ’32’ !!!!• We can ‘pad’ our binary number with 0’s
– Eg: 00100000
Stuart Cunningham - Computer Platforms - 2003
Converting Binary & Decimal• To convert binary to decimal:
– Write out the binary number– Add the positional values to each digit– Where there is a ‘1’ below the positional
value highlight that positional value– Once all 1’s in the binary number have
highlighted their positional values– Add all highlighted values together– Positional values:
• 512 256 128 64 32 16 8 4 2 1
– These values can of course increase to the power of 2
Stuart Cunningham - Computer Platforms - 2003
Converting Binary & Decimal• E.g.-
– Binary number: 00011011
– Add positional values:
– 128 64 32 16 8 4 2 1– 0 0 0 1 1 0 1 1
– Highlight the positional values
– Add the highlighted values together:• 16+8+2+1 = 27• So Binary 00011011 = Decimal 27 !!
Stuart Cunningham - Computer Platforms - 2003
Hexadecimal• Base 16• Another common format for data
representation– Easy to map against binary
• 16 values then increment next digit– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F– Each position represents a value of 16 to the
positions power• Hexadecimal numbers
– E.g- • 5• 10• FF• FB 19
– Commonly notated with “0x” in front of values• 0xFF or 0x53
Stuart Cunningham - Computer Platforms - 2003
Hexadecimal Values0123456789101112131415
0123456789ABCDEF
DECIMAL HEXADECIMAL
Stuart Cunningham - Computer Platforms - 2003
Converting Decimal & Hexadecimal• To convert decimal to hexadecimal:
– Write out the decimal number– Write out the hexadecimal positional
values– Find the largest hex positional value that your
decimal number will divide into– Divide your decimal number by that hex positional
value– Take the answer( ignore the remainder) and add it
to the left hand side of your hex answer multiply this number by it’s positional value and then subtract it from your decimal number
– Take what’s left of your decimal number and repeat the process until you have nothing left
Stuart Cunningham - Computer Platforms - 2003
Converting Decimal & Hexadecimal• E.g.-
– Decimal 280– Write Hex positional values
• 1048576 65536 4096 256 16 1– Divide 280 by 256 (=1)– Multiply 1 by 256 (=256)– Subtract 256 from 280 (280-256=24)
– Divide 24 by 16(=1)– Multiply 1 by 16 (=16)– Subtract 16 from 24 (24-16=8)– Divide 8 by 1 (=8)– Write in the 8
• 1048576 65536 4096 256 16 1• 0 0 0 1 1 8
– Hex number = 118
Stuart Cunningham - Computer Platforms - 2003
Converting Hexadecimal & Decimal• To convert hexadecimal to decimal:
– Write out the hexadecimal number– Add the positional values to each digit– Where there is a value greater than ‘0’ below the
positional value highlight that positional value– Once all positional values have been highlighted,
multiply the number below, by it’s positional value– Add all results of highlighted values together– Positional values:
• 1048576 65536 4096 256 16 1
– These values can of course increase to the power of 16
Stuart Cunningham - Computer Platforms - 2003
Converting Hexadecimal & Decimal• E.g.-
– Hex number 0x4C– Add positional values
– 1048576 65536 4096 256 16 1
– 0 0 0 0 4 C
– Highlight positional values– Multiply positional values by the number
below• 4*16 = 64• C*1 = 12*1 = 12
– Add these together• 64+12=76
Stuart Cunningham - Computer Platforms - 2003
MIPS & Hertz (Hz)• MIPS = Millions of Instructions per
Second– How many instructions a processor can
carry out each second– Old form of measurement
• Inaccurate• Some instructions take longer than others
• Hz = number of complete cycles per second
• MHz = Millions of cycles per second– In a processor a cycle is when the state of
the control lines are changed
Stuart Cunningham - Computer Platforms - 2003
Bits ‘n’ Bytes• A bit is a single binary digit (1 or 0)• A byte is eight bits
– Four bits are sometimes called a nibble
• A kilobit (KB) is 1024 bits• A kilobyte (Kb) is 1024 bytes• A megabyte (Mb) is 1024 kilobytes• A gigabyte (Gb) is 1024 megabytes• A terabyte (Tb) is 1024 gigabytes
Stuart Cunningham - Computer Platforms - 2003
What you know now (Week 3)…• Von Neumann Architecture
– Von Neumann Model– Buses– Registers– Fetch Execute Cycle– Memory
• Types of memory– SDRAM, EDO, FPRAM, EEPROM– WRAM, SGRAM
– Digital & Analogue– Binary– Hexadecimal– Terminology