Title: CS1371 Introduction to Computing for Engineers
1CS1371Introduction to Computing for Engineers
2How Computers Work
Learning Objectives Understand the basic
organization of a computer
- Outline
- The early history of the computer
- What are the main components of a computer?
- How do they work?
- Software
- Why is this important to know?
This material was originally developed by Prof.
Chris Paredis, ME
3Early Computers
- Charles Babbage Difference engine and
analytical engine - Herman HollerithTabulating machines for 1890
census - Konrad Zuse First electronic computer
Replica of Babbages difference engine Science
Museum in London
4Colossus
5ENIAC Electronic Numerical Integrator And
Computer
- Built from1943-1945
- Ballistic trajectory computation
- All electronic, vacuum tubes
- Program was encoded by changing wiring
6John von Neumann (1903-1957)
John von Neumann with the IAS computer
7Two Major Breakthroughs
- Binary encoding
- More reliable than analog representations
- More efficient than decade counters
- von Neumann Architecture (1945)
- General purpose electronic computer
- CPU Memory I/O
8Modern Computing
- Today we use sub-micron technology.
- Microprocessors are composed of tiny transistors
(switches) that are microscopic. - When the switch is on a 1 is represented, when
it is off, a 0 is represented. - They form the basis for logic gates which compose
the architecture shown in slide 12. - The processor then interacts with I/O devices,
busses, memory, etc. to form the computer.
9Modern Computing
Chip Package
Card which connects processor to Printed Wiring
Board
7,500,000 Transistors
10The Machine Language
- What do the transistors process?
- Language depends on the type of processor
architecture. - Basic computer architectures include
- Registers
- Hold a binary value of 1s and 0s
- Can be 16 bit, 32 bit, 128 bit, etc in length
- ALU (Arithmetic Logical Unit)
- Processes the binary values in selected
registers, i.e. add, subtract, multiply, divide - Program Counter
- Keeps the current place in memory stored
- Control Unit (decodes instructions)
- Breaks down the 1s and 0s of an instruction and
tells the other blocks what to do - Address Register
- Stores the address where to read/write in memory
11Basic Computer Architecture
Control Unit
Registers0
Registers1
Registers2
Arithmetic LogicalUnit
Test
Registers3
Registers4
Registers5
Program Counter
AddressRegister
Memory and I/OInterface
Data Bus
Address Bus
12Machine Language
MIPS instruction set for RISC architecture --
(Reduced Instruction Set Computer)
Matlab program
Machine Language
- j 10
- i 5
- if ( ij )
- f g h
- else
- f g - h
- end
- 1 li s4, 10 loads 10 into s4
- 2 li s3, 5 loads 5 into s3
- 3 bne s3,s4,Else go to Else if ij
- 4 add s0,s1,s2 f g h (skipped if
ij) - 5 jmp Exit go to Exit
- 6 Else sub s0,s1,s2 f g - h (skipped
if i j) - 7 Exit
add s0,s1,s2 is translated to
000000 10001 10010 10000 00000 100000
op
s1
s0
s2
add
Shift amt
So 00000010001100101000000000100000 represents
the add instruction.
13Machine Language Commands
How they are used
What they mean
- li ? Load immediate
- bne ? branch if not equal
- add ? add two values
- jmp ? jump
- sub ? subtract
li register, numerical value bne register1,
register2, branch to add dest reg, register1,
register2 jmp program location sub dest reg,
register1, register2
There are many more instructions for this
architecture
14Program Execution
Phases
Control Unit
- Fetch
- Load instruction register with next instruction
- Decode
- Set up buses and ALU
- Execute
- execute and go back to fetch
Registers0
Registers1
Registers2
Arithmetic LogicalUnit
Test
Registers3
Registers4
Registers5
Program Counter
AddressRegister
When fetch gets data and not a valid instruction
CRASH
Memory and I/OInterface
Data Bus
Address Bus
15Questions?
16(No Transcript)