Lec 1 - Introduction
Lec 1 - Introduction
Course Objective
To understand organization of a computer system To gain an insight knowledge about the internal architecture and working of microprocessors. To understand working of memory devices, interrupt controllers and I/O devices.
Course Contents
Introduction to Microprocessors History & Evolution of Intel Microprocessors Organization of Intel 8086 Processor Fetch-Execution Cycle Microprocessor Bus Structure Internal Memory, External Memory, Input Output Devices Instruction Representation Memory Organization & Structure Memory Addressing Cache Interrupts, DMA Pipelining
Contd..
Data Declaration Loop and Jump Using Arithmetic and Logical Instructions Using Shift and rotate instructions Input / Output and display text Stack and operations on stack Subroutine and Procedures Interfacing with High level languages
Overview of Debugger and practice of writing and debugging programs Using EMU8086 to write and test assembly language programs Introduction to Microcontroller Programming
Text Books
Assembly Language programming and Organization of the IBM PC by Ytha Yu and Charles Marut. Computer Organization and Architecture, William Stallings Kip Irvine, Assembly Language for Intel-Based Computers, Third Edition,, Prentice Hall Incorporated
Outline
Introduction to Computer Organization An Introduction to Microprocessors History of Intel 8086 Microprocessors An Introduction to Assembly Language
Introduction
Organization is how features are implemented. How does a Computer Work? For Example: Is there a special hardware multiply unit for multiplication operation or is it done by repeated addition?
Structure is the way in which components relate to each other Function is the operation of individual components as part of the structure.
Main functions performed by a computer system are: Data processing Data storage Data movement Control
Contd..
When data is received from or delivered by a device that is directly connected to the computer, process is called Input-Output (I/O). When data are moved over longer distance, to or from a remote device, the process is known as Data Communication.
10
Peripherals
Computer
Central Processing Unit Main Memory
Computer
Systems Interconnection
Input Output
Communication lines
11
CPU
Computer
I/O System Bus Memory CPU
Registers
Control Unit
12
Control Unit
CPU
ALU Internal Bus Registers Control Unit
Control Memory
13
Microprocessors
14
Microprocessor
Microprocessor is an electronic circuit that functions as the central processing unit (CPU) of a computer, providing computational control. Microprocessors are also used in other advanced electronic systems, such as computer printers, automobiles, and jet airliners.
15
Processor Integration
Early computers had many separate chips for the different portions of a computer system Registers ALU
Control
Memory
16
Microprocessors
Data Bus
Address Bus
Memory
I/O Devices
Control Bus
First microprocessors placed control, registers, arithmetic logic unit in one integrated circuit (one chip).
17
Modern Processors
Modern microprocessors (general purpose Processors) also integrate memory onchip for faster access. External memory and I/O components still required. Memory integrated on the microprocessor is called cache memory.
Data Bus
CPU
Registers, ALU, Fetch, Exe Logic, Bus logic, Cache Memory
Address Bus
Memory
I/O Devices
Control Bus
18
Microcontrollers
Microcontrollers integrate all of the components (control, memory, I/O) of a computer system into one integrated circuit. Microcontrollers are intended to be single chip solutions for systems requiring low to moderate processing power.
Microcontroller
19
20
1971 - 4004
1974 - 8080
21
8080
first general purpose microprocessor 8 bit data path Used in first personal computer Altair much more powerful 16 bit instruction cache, prefetch few instructions 8088 (8 bit external bus) used in first IBM PC 16 Mbyte memory addressable up from 1Mb 32 bit Support for multitasking
8086
80286
80386
22
80486
sophisticated powerful cache and instruction pipelining built in maths co-processor Superscalar Multiple instructions executed in parallel Increased superscalar organization Aggressive register renaming branch prediction data flow analysis speculative execution
Pentium
Pentium Pro
23
Pentium II
MMX technology graphics, video & audio processing Additional floating point instructions for 3D graphics Note Arabic rather than Roman numerals Further floating point and multimedia enhancements
Pentium III
Pentium 4
Itanium
64 bit
24
Assembly Language
25
Programming Languages
26
High-Level Language
Allow programmers to write programs that look more like natural language. Examples: C++, Java, C#.NET etc A program called Compiler is needed to translate a highlevel language program into machine code. Each statement usually translates into multiple machine language instructions.
27
Machine Language
The "native" language of the computer Numeric instructions and operands that can be stored in memory and are directly executed by computer system. Each ML instruction contains an op code (operation code) and zero or more operands. Examples:
Opcode Operand Meaning ------------------------------------------------40 increment the AX register 05 0005 add 0005 to AX
28
Assembly Language
Use instruction mnemonics that have one-to-one correspondence with machine language. An instruction is a symbolic representation of a single machine instruction Consists of: label always optional mnemonic always required operand(s) required by some instructions comment always optional
29
ax ax ax ax
05 15
35 35
30
ASM
ML
ML ML ML ML
HLL
31
Learn how a processor works Explore the internal representation of data and instructions Allows creation of small and efficient programs Provides a convenient way to directly access the computers hardware Programmers write subroutine also known as Interface Subroutine / device drivers in assembly language and call them from high-level language programs.
32
Essential Tools
Assembler is a program that converts source-code programs into a machine language (object file).
Linker joins together two or more object files and produces a single executable file.
Debugger loads an executable program, displays the source code, and lets the programmer step through the program one instruction at a time, and display and modify memory. Emulator allows you to load and run assembly language programs, examine and change contents of registers. Example: EMU8086
33
References
Chapter 1 & 3, Ytha Yu and Charles Marut, Assembly Language Programming and Organization of IBM PC, Chapter 3, William Stallings, Computer Organization & Architecture Chapter 1, Kip Irvine, Assembly Language for Intel-Based Computers, Third Edition,, Prentice Hall Incorporated
34