Module 2
Module 2
ARCHITECTURE
MODULE 2
INTRODUCTION
• Basic operations that take place inside the processor when instructions are executed.
2
GENERAL CONCEPTS
Basic Microcomputer Design
• The CPU contains a limited number of storage locations (registers), a high-frequency clock, a control
unit (CU) and an arithmetic logic unit (ALU).
• The clock synchronizes the internal operations of the CPU with other system components.
• The control unit (CU) coordinates the sequencing of steps involved in executing machine
instructions.
• The arithmetic logic unit (ALU) performs arithmetic operations such as addition and subtraction
and logical operations such as AND, OR, and NOT.
GENERAL CONCEPTS (CONTD.)
Basic Microcomputer Design (Contd.)
• The memory storage unit is where instructions and data are held while a computer program is running.
• The data bus transfers instructions and data between the CPU and memory.
• The I/O bus transfers data between the CPU and the system input/output devices.
• The control bus uses binary signals to synchronize actions of all devices attached to the system bus.
• The address bus holds the addresses of instructions and data when the currently executing instruction
transfers data between the CPU and memory.
4
Block diagram of a microcomputer
5
• Clock
• The basic unit of time for machine
instructions is a machine cycle (or clock
cycle).
• The length of a clock cycle is the time
required for one complete clock pulse.
• The duration of a clock cycle is calculated
as the reciprocal of the clock’s speed,
which in turn is measured in oscillations
per second.
• A clock that oscillates 1 billion times per second
(1 GHz), for example, produces a clock cycle
with a duration of one billionth of a second (1
nanosecond).
• A machine instruction requires at least one
clock cycle to execute.
6
Instruction Execution Cycle
7
GENERAL CONCEPTS (CONTD.)
Reading from Memory
• Place the address of the value to be read on the address bus.
• Copy the data from the data bus into the destination operand.
8
Reading from Memory (Contd.)
• A speed of 1.2 GHz, for example, means the clock ticks or oscillates, 1.2 billion times per second.
• So, 4 clock cycles go by fairly fast, considering each one lasts for only 1/1,200,000,000th of a
second.
9
Cache Memory
• To reduce the amount of time required to read from and write to memory, the CPU was designed
to store the most recently used instructions and data in high-speed memory called cache.
• When the processor finds its data in cache memory, we call that a cache hit. On the other hand, if
the CPU tries to find something in the cache and it’s not there, it is called a cache miss.
• There are two types of cache memory for the x86 processor:
• Level-1 cache (or primary cache) is stored right on the CPU.
• Level-2 cache (or secondary cache) is a little bit slower and attached to the CPU by a high-
speed data bus.
10
How a Program Runs
• The operating system (OS) searches for the
• When the process ends, it is removed from
program’s filename in the current disk directory or
memory.
predetermined list of directories (called paths).
• If the program file is found, the OS retrieves basic
information about the program’s file from the disk
directory, including the file size and its physical
location on the disk drive.
• The OS determines the next available location in
memory and loads the program file into memory.
• The OS begins execution of the program’s first
machine instruction (its entry point). As soon as the
program begins running, it is called a process.
11
32-BIT X86 PROCESSORS
Modes of Operation
• Virtual-8086 Mode
• Real-Address Mode
12
32-BIT X86 PROCESSORS (CONTD.)
Modes of Operation (Contd.)
• Protected Mode
• native state of the processor
13
32-BIT X86 PROCESSORS (CONTD.)
Modes of Operation (Contd.)
• Virtual-8086 Mode
• It is a hybrid of the protected mode.
• Real-Address Mode
• implements the programming environment of an early Intel processor
(MS-DOS).
15
32-BIT X86 PROCESSORS (CONTD.)
Modes of Operation (Contd.)
16
32-BIT X86 PROCESSORS (CONTD.)
Basic Execution Environment
• Addressable Memory
• In protected mode, a task or program can address a linear address space of
up to 4 GB
18
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
General-Purpose Registers
• primarily used for arithmetic and data movement.
• Some registers can be accessed with 8-bit, 16-bit or
32-bit names
19
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
Specialized Uses of Some General-Purpose Registers
• EAX • ESI and EDI
• used by multiplication and division • used by high-speed memory transfer
instructions. instructions.
• called the extended accumulator register. • called the extended source index and
extended destination index registers.
• ECX ➔ loop counter. • EBP
• ESP • used by high-level languages to reference
• addresses data on the stack (a system function parameters and local variables
on the stack.
memory structure).
• called the extended frame pointer
• called the extended stack pointer register. register.
20
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
Segment Registers
22
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
EFLAGS Register
• The EFLAGS (or just Flags) register consists of individual binary bits
that control the operation of the CPU or reflect the outcome of some
CPU operation.
23
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
Status Flags
• The status flags reflect the outcomes of arithmetic and logical operations
performed by the CPU.
• The Carry flag (CF) is set when the result of an unsigned arithmetic
operation is too large to fit into the destination.
• The Overflow flag (OF) is set when the result of a signed arithmetic
operation is too large or too small to fit into the destination.
• The Sign flag (SF) is set when an arithmetic or logical operation generates
a negative result.
• The Zero flag (ZF) is set when an arithmetic or logical operation generates
a result of zero.
24
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
Status Flags
• The Auxiliary Carry flag (AC) is set when an arithmetic operation
causes a carry from bit 3 to bit 4 in an 8-bit operand.
• The Parity flag (PF) is set if the least-significant byte in the result
contains an even number of 1 bits.
• In general, it is used for error checking when there is a possibility that
data might be altered or corrupted.
25
BASIC PROGRAM EXECUTION REGISTERS (CONTD.)
• MMX Registers
• MMX technology improves the performance of Intel
processors when implementing advanced multimedia and
communications applications.
• The eight 64-bit MMX registers support special
instructions called SIMD (Single-Instruction,
Multiple-Data).
• XMM Registers
• The eight 128-bit registers are used by streaming
SIMD extensions (SSE) to the instruction set.
• Floating-Point Unit (FPU)
• It performs high-speed floating-point arithmetic.
• There are eight floating-point data registers in the
FPU, named ST(0), ST(1), ST(2), ST(3), ST(4), ST(5),
ST(6), and ST(7).
26
32-BIT X86 PROCESSORS (CONTD.)
x86 Memory Management
• The x86 processor’s memory is managed according to its basic
operation modes.
27
X86 MEMORY MANAGEMENT
Real-Address Mode
• only 1 MB of memory can be addressed, from hexadecimal 00000
to FFFFF.
• The processor can run only one program at a time, but it can
momentarily interrupt that program to process requests (called
interrupts) from peripherals.
• Application programs are permitted to access any memory location,
including addresses that are linked directly to system hardware.
• The MS-DOS operating system runs in real-address mode, and
Windows 95 and 98 can be booted into this mode.
28
X86 MEMORY MANAGEMENT
Protected Mode
• the processor can run multiple programs at the same time.
• It assigns each process (running program) a total of 4 GB of memory.
• Each program can be assigned its own reserved memory area, and
programs are prevented from accidentally accessing each other’s
code and data.
• Windows and Linux run in protected mode.
29
X86 MEMORY MANAGEMENT
Virtual-8086 Mode
• the computer runs in protected mode and creates a virtual-8086
machine with its own 1-MByte address space that simulates an 80x86
computer running in real-address mode.
30
64-BIT X86-64 PROCESSORS
• Basic architectural details of all 64-bit processors that use the x86-64
instruction set.
• The x86-64 instruction set is a 64-bit extension of the x86 instruction set.
• It is backwards-compatible with the x86 instruction set.
• Addresses are 64 bits long, allowing for a virtual address space of size
2^64 bytes.
• It can use 64-bit general-purpose registers, allowing instructions to have
64-bit integer operands.
• It uses eight more general-purpose registers than the x86.
• It uses a 48-bit physical address space, which supports up to 256
terabytes of RAM.
• Core i5 and Core i7 processors are examples of processors that use the
x86-64 instruction set.
31
64-BIT X86-64 PROCESSORS
64-Bit Operation Modes
• Compatibility Mode
• existing 16-bit and 32-bit applications can run without being recompiled.
• 16-bit Windows (Win16) and DOS applications will not run in 64-bit Microsoft
Windows.
• 64-Bit Mode
• This is the native mode for 64-bit Microsoft Windows.
• This mode enables 64-bit instruction operands.
32
BASIC 64-BIT EXECUTION ENVIRONMENT
• Theoretically, addresses can be as large as 64-bits but processors only support 48 bits for
addresses.
• Sixteen 64-bit general-purpose registers
• Eight 80-bit floating-point registers
• A 64-bit status flags register named RFLAGS (only the lower 32 bits are used)
• A 64-bit instruction pointer named RIP
• Eight 64-bit MMX registers
• Sixteen 128-bit XMM registers
33
READ
• Components of a Typical x86 Computer
• Input–Output System
34