Lecture 1
Lecture 1
Spring 2024
Dr Jameel Malik
[email protected]
Office: A-311 SEECS
1
Outline
• Instructor
• Course Books
2
Instructor: Dr. Jameel Malik
• PhD from TU Kaiserslautern, Germany
– Area of expertise
• Computer Vision and Artificial Intelligence
3
Course Learning Outcomes (CLOs)
Understand the basic concepts of
micro-controller/microprocessor, memory interfacing and
interrupts. (C2 Level)
Use Assembly and C language for
micro-processor/microcontrollers. (C3 Level)
Conduct experiments as well as analyze and interpret
experimental data. (P4 Level)
Design and implement real time systems using 8051, AVR, ARM
Cortex or similar micro-controllers. (P4 Level)
Exhibit good professional and ethical behavior. Adhere to lab
safety rules. (A3 Level)
Function effectively both individually and as a member of a team.
(A4 Level) 4
Course Books
• Text Books
– The AVR Microcontroller and Embedded Systems: Using
Assembly and C by Mazidi et al., Prentice Hall
5
Course Books
• Reference Books
– Computer Organization & Architecture by William Stallings.
– 8051 Microcontroller by Machenzie.
– The 8051 Microcontroller and Embedded Systems using
Assembly and C by Mazidi.
– Assembly Language for x86 Processors by Kip R. Irvine,
6th edition.
– Some Assembly Required; Assembly language programming
with the AVR microcontroller by Margush, CRC
6
Where this course fits in
7
Computers Now
8
Microprocessor-based Computer System
Processor
Control unit Datapath
Control
ALU
/Status
Controller
Registers
PC IR
I/O
Memory
memory location
I/O
Memory
...
10
11
...
14
Control Unit
• Control unit: configures the datapath
operations Processor
– Sequence of desired operations Control unit Datapath
(“instructions”) stored in memory –
“program” ALU
Controller
• Instruction cycle – broken into Control
/Status
several sub-operations, each one
clock cycle, e.g.: Registers
– Fetch: Get next instruction into IR
– Decode: Determine what the
instruction means
– Fetch operands: Move data from PC IR R0 R1
memory to datapath register
– Execute: Move data through the
ALU I/O
– Store results: Write data from
100 load R0, M[500] Memory
...
register to memory 500 10
101 inc R1, R0
102 store M[501], R1
501
...
15
Control Unit Sub-Operations
• Fetch Processor
ALU
into IR Controller Control
– PC: program /Status
points to next
instruction
PC100 IR R0 R1
– IR: holds the load R0, M[500]
fetched instruction
I/O
• Decode Processor
ALU
instruction means Controller Control
/Status
Registers
PC100 IR R0 R1
load R0, M[500]
I/O
ALU
memory to datapath Controller Control
register /Status
Registers
10
PC100 IR R0 R1
load R0, M[500]
I/O
• Execute Processor
ALU
the ALU Controller Control
– This particular /Status
I/O
ALU
register to memory Controller Control
– This particular /Status
I/O
PC=100 Processor
Registers
10
PC 100 IR R0 R1
load R0, M[500]
I/O
PC=100 Processor
PC=101
Registers
FetchDecode Fetch Exec. Store
ops results
clk
10 11
PC 101 IR R0 R1
inc R1, R0
I/O
PC=100 Processor
PC=101
Registers
FetchDecode Fetch Exec. Store
ops results
clk
10 11
PC 102 IR R0 R1
store M[501], R1
PC=102
FetchDecode Fetch Exec. Store I/O
ops results ...
100 load R0, M[500] Memory
clk 500 10
101 inc R1, R0 501 11
102 store M[501], R1 ...
23
Intel’s Brief Historical Background
• The Microprocessor Age
– In 1971, the world’s 1st microprocessor, the Intel 4004
microprocessor was introduced
• 4-bit microprocessor (data bus)
• 45 instructions
• Addresses only 4096 x 4bit memory
• 50KIPs (kilo-instructions per second)
https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units 26
Microprocessor Chips
27
Microprocessor Chips
28
Brief Historical Background
• Programming Advancements
– Machine Language - binary codes (e.g., 0100 0111 for
addition) stored in computer memory.
https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units 30