15
6/26/2014 1 Micro computer Organization I Base Basic Components CPU SYSTEM BUSES VDD CLK RESET MPU vs MCU Microprocessor Unit (MPU) CPU (called Microprocessor) is a die All components external to die Basically on one or several boards CPU is “optimized” Microcontroller Unit (MCU) All components in a die Less complex MCU: Generic structur

Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

1

Micro computer Organization

I Base

Basic Components

CPU

SYSTEM BUSES

VDD

CLK

RESET

MPU vs MCU

• Microprocessor Unit (MPU)

– CPU (called Microprocessor) is a die

– All components external to die

• Basically on one or several boards

– CPU is “optimized”

• Microcontroller Unit (MCU)

– All components in a die

– Less complex

MCU: Generic structur

Page 2: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

2

Practical examples: MSP430G2x01 MSP430G2x53 (Launchpad)

Practical Examples: MSP430F5437 Other characteristics

• RISC vs CISC architectures

• Hardware Model Vs Programmers Model

– Hardware model focuses on hardware characteristics that supports instructions, timing, etc.

– Programmer’s model focuses on • Instructions and addressing mode syntax

• Memory and IO map

• Transfers, etc.

• Program models of IO Registers

– In Embedded Systems, both models are needed at least at system level.

Page 3: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

3

RISC vs CISC (1/2)

• RISC Architecture

– (Reduced Instruction Set Computer)

– Small set of instructions (optimized)

– Emphasis on simpler hardware

– Many instructions take one system clock cycle

– More Lines of code

– More CUP registers to minimize interaction with memory

RISC vs CISC (2/2)

• CISC Architecture

– (Complex Instruction Set Computer)

– Larger set of instructions

– Instructions have different system clock cycles

– Emphasis on simpler software

– Less lines of codes

• RISC has become more popular, but final decision depends on needs and other considerations

Microcomputer Organization

II CPU

CPU Components

• Hardware components

– Control Unit (CU)

– Registers

– Arithmetic Logic Unit (ALU)

– Bus Interface Logic unit (BIL)

• Software Components

– Instruction Set

– Addressing modes

Page 4: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

4

CPU

Data Path and Control Path

• Data Path: HW components used to perform operations – ALU

– Registers and Internal Buses

– Specialized units

• Control Path: HW components controlling system operation

– CU

– BIL

– Timing and synchronization units

ALU

• ALU (Arithmetic Logic Unit):

• Combinatorial circuit which realizes the arithmetic and logic operations.

– The width of ALU operands gives name to the classification in bits of the MCU:

• 4-bit microcontrollers, 16-bit microcontrollers, etc.

– ALU controls several flags in Status Register

CU

• CU (Control Unit):

• Sequential circuit – finite state machine – that controls the activity of the system

– Controls to retrieve instructions from memory

– Coordinates the instruction cycle

– Coordinates transfers

– and so on.

CPU: Registers

• Special Purpose Registers used for specific operation. Common ones are

– Instruction Register (IR) –not available to programmer -

– Program Counter (PC)

– Stack Pointer (SP)

– Status Register (SR)

• General Purpose registers

• “Invisible registers” , for internal operation, not available to programmer

Page 5: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

5

Instruction Cycle or CPU Cycle: Fetch-Decode Execute

• Fetch: The CU brings a new instruction from memory through BIL

– Register PC provides the address of instruction to be fetched

– Instruction is stored in IR

• Decode: instruction meaning is deciphered

• Execute: CU commands the corresponding units to perform the actions.

• Reset: A defined state after power up or after a reset occurs

Important Note: Instruction Address in PC

A. Register PC always has the address of the following instruction after the execution phase.

B. If the execution phase does not change contents of PC, then the address of the following instruction is in PC after the decoding phase.

Example: Initial State

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

XXXX XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

C3D0

F804

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Just after a previous

cycle:

a) Contents of IR is

irrelevant.

b) PC points to next

instruction

Address Contents

FETCH

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5A06 XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

C3D0

F806

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

CU puts PC contents

in Address Bus

(using BIL unit)

and reads (using

Data Bus and Control

Bus) memory contents

and puts result into

Instruction Register

IR

PC increases its value

pointing to next address.

(Fetched word in this

first movement is the

Instruction Word)

Address Contents

Page 6: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

6

DECODE

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5A06 XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

C3D0

F806

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

CU decodes:

Add contents of R10 to

contents of R6

The information is complete.

so decoding is finished.

Address Contents

a) In Register Transfer Notation

(RTN):

R6 R6 + R10

b) Decoding is finished and

PC is pointing to address

following this instruction

EXECUTE

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5A06 XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

5E1F

F806

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents

The processor executes

what decoding indicated:

a) Old contents of destination

is lost and has been

replaced with new result

b) Flags have been affected

by this instruction

c) IR contents is the same, but

it is irrelevant

FETCH

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

403A XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

5E1F

F808

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents

CU fetches Instruction

word and increments PC

which is now pointing to

next address.

DECODE (1)

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

403A XXXX XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

5E1F

F808

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents

CU determines that the

instruction needs the data

in memory after the instruction

word, so it is necessary to

fetch this word (Not an

instruction word) to complete

decoding.

Therefore, it will fetch the

word and place it on the IR

before completing decoding.

PC is incremented accordingly

Page 7: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

7

DECODE (2)

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

403A 45AF XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

9A4F

5E1F

F80A

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents

DECODED instruction:

Copy (move) the word

45AF into R10

a) In RTN:

R10 45AF

Also

R10 #45AF

b) Decoding is finished and

PC is pointing to address

following this instruction

Execute

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

403A 45AF XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F80A

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents

The processor executes

what decoding indicated:

a) Old contents of destination

is lost and has been

replaced with new result

b) Flags are not affected

by this instruction

c) IR contents is the same, but

it is irrelevant

Fetch

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5292 45AF XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F80C

C = 1 Z = 0 N = 0 V = 0

R6

R10

IR

PC

Address Contents

CU fetches Instruction

word and increments PC

which is now pointing to

next address.

Decode (1)

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5292 45AF XXXX

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F80C

C = 1 Z = 0 N = 0 V = 0

R6

R10

IR

PC

Address Contents

CU determines that the

instruction needs data

in memory after the instruction

word. This time, two words,

to complete decoding.

Therefore, it will fetch the

words and place them on the IR

PC is incremented accordingly

Page 8: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

8

Decode (2,3)

4809

2C07

2038

2034

5292

45AF

403A

5A06

D54A

6D45

5FA8

5292 2034 2038

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F810

C = 1 Z = 0 N = 0 V = 1

R6

R10

IR

PC

Address Contents DECODED instruction:

Add the word in memory

with address 2034 to the

word in memory with

address 2038

a) In RTN:

(2038) (2034) + (2038)

Also

&2038 &2034 + &2038

b) Decoding is finished and

PC is pointing to address

following this instruction

Execute

4809

2C07

2038

2034

5292

45AF

403A

5A06

34F2

6D45

5FA8

5292 2034 2038

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F810

C = 1 Z = 0 N = 0 V = 0

R6

R10

IR

PC

Address Contents

The processor executes

what decoding indicated:

a) Old contents of destination

is lost and has been

replaced with new result

b) Flags are affected

by this instruction

c) IR contents is the same, but

it is irrelevant

Fetch

4809

2C07

2038

2034

5292

45AF

403A

5A06

34F2

6D45

5FA8

2C07 2034 2038

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F812

C = 1 Z = 0 N = 0 V = 0

R6

R10

IR

PC

Address Contents

CU fetches Instruction

word and increments PC

which is now pointing to

next address.

Decode

4809

2C07

2038

2034

5292

45AF

403A

5A06

34F2

6D45

5FA8

2C07 2034 2038

0F804

0F806

0F808

0F80A

0F80C

0F80E

0F810

0F812

2034

2036

2038

45AF

5E1F

F812

C = 1 Z = 0 N = 0 V = 0

R6

R10

IR

PC

Address Contents

CU decodes:

IF flag C is set (C=1)

THEN go to instruction at

address F820h

Technically, if C is set then

PC PC + 2 (0007h)

a) In RTN, express objective;

If C=1, GOTO to F820h or

IF C=1, PC F820h

b) Decoding is finished and

PC is pointing to address

following this instruction

Page 9: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

9

Execute

4303

2C07

8A0B

4004

F249

AF24

269F

4809

34F2

6D45

5FA8

2C07 2034 2038

0F812

0F814

0F816

0F818

0F81A

0F81C

0F81E

0F820

2034

2036

2038

F820

C = 1 Z = 0 N = 0 V = 0

IR

PC

Address Contents

The execution in this case

changes the contents of

the PC.

This will cause a JUMP in

the sequence of instructions.

The next instruction to be

fetched is not the one after

the current one.

The instruction does not

affect flags.

Normal flow

Jump …

Important facts to remember

• Instruction can have one or more words

– Instruction word: First word in the set.

– Instruction word: Op Code and Addressing modes

• After the decode state, the PC holds the memory address after the current instruction

– Execution of Program flow instructions may alter PC

– For other instructions, this is the address of next instruction

• After the execution state, the PC has the address of the next instruction

Status Register

• Contains flags related to result of execution for some instructions involving ALU and a control Interrupt Flag. All systems include

– Carry Flag (C) Zero Flag (Z)

– Negative Flag (N) Overflow Flag (V)

– Interrupt flag (IF) or General Interrupt flag (GIE)

• Interrupts blocked with IF are called maskable

• Contains group of bits related to system control

Page 10: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

10

Carry flag: Special remarks

• In arithmetic operations, the Carry Flag may have dual function: Carry and Borrow

– Some MCU’s have a separate borrow flag

• Depending on the MCU model (see user guide):

– C=1 if a borrow is not needed in subtraction … or

– C=0 if a borrow is needed in subtraction

• MSP430 adheres to this convention

Flags and Number comparison (Using A-B)

Note: This table assumes that C=0 indicates need of borrow in

subtraction

Stack Pointer (SP)

• Manages a particular memory segment called STACK

• STACK operations are “PUSH” (Store) and “POP” (Retrieve)

– The SP register contents indicates where data is stored in a push operation, and where data is retrieved from in a pop operation

• SP contents is usually named “Top of Stack”

– Details later.

Stack features

• The Stack may be

– Defined by user (usual case) by initializing SP, or

– hardware defined (some MCU models)

• The stack serves the user to temporary store data, and temporary free a register for some use.

• The stack and the SP register also support in the background special activities that require saving data temporarily. Example:

– Program flow transfers to and from subroutines (function)

– Management of Interrupt service.

Page 11: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

11

Microcomputer Organization

III Hardware Characteristics of MSP430 CPU - CPUX

Highlights

• MSP430 offers two architectures:

– Original MSP430 64K memory, with CPU

– Extended MSP430X with 1M memory capacity, CPUX

• MSP430X is 100% downward compatible with MSP430

• ALU

– CPU: 16 bits

– CPUX: 20 bits

CPU CPUX

Page 12: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

12

CPU and CPUX registers

• 16 registers. – CPU has 16-bit registers – CPUX has 20-bit registers that operate as CPU registers for all

CPU instructions . – Status Register has 16-bits in both cases.

• Register R0: Program Counter (PC) with bit0=0, hardwired • Register R1: Stack Pointer (SP) with Bit0 = 0, hardwired • Register R2: Status Register (SR), 16-bits only

– Also works as constant generator (CG1)

• Register R3: Constant Generator (CG2) (actually not a register)

• Registers R4 to R15: General Purpose generators.

MSP430 Status Register (1/2)

• C: Carry Flag

• Z: Zero Flag

• N: Sign Flag

• GIE: Global Interrupt enable Flag

• V: Overflow Flag

MSP430 Status Register (2/2)

• CPU Off: Turns on and off the CPU – CPU Off if CPUOFF=1

• OSCOFF: Turns on and off the Crystal Oscillator – Oscillator Off when OSCOFF=1

• SCG1 and SCG0 are combined with CPUOFF and OSCOFF to define the modes of operation

Modes of operation

LPM: Low power mode

Page 13: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

13

SYSTEM BUSES Micro Computer Organization:

General Concepts (1/2)

• A bus: a group of lines (conductors) that perform a similar function.

– Each line carries a bit

– The lines of the bus may be interpreted as a word or bitwise, depending on use

• System buses are used by CPU to communicate with memory and IO devices.

General Concepts (2/2)

• Basically, the CPU communicates with registers

• The contents of the register constitute the data to be processed

• Each register is identified by an address

• We need signals to control the protocols to be followed with the transactions

• The System buses are: DATA BUS, ADDRESS BUS and CONTROL BUS

Hardware considerations (1/3)

• Buses have direccionality

– Data bus is bidirectional

– Address bus is normally unidirectional

– Control bus lines are normally unidirectional but some may be bidirectional

• Bus states

– Some buses may have high impedance state (Z) in addition to high and low value states

• In some systems, bus lines may share CPU terminals

Page 14: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

14

Hardware considerations (2/3): Unidirectionality

CPU BUS

CPU BUS

CPU

(control bus bit)

D Q

En

BUS CPU

CPU

(control

bus bit)

1. Buffered

2. Buffered Tri-state

3. Latched

Hardware considerations (3/3): bidirectionality – example -

BE (bus enable) and

Dir (direction) are

control bus signals

BE DIR Bus direction

0 X High state

1 0 CPU BUS

1 1 CPU BUS

Example: A fully buffered 8086 microprocessor.

Source: Intel Microprocessors

8088/8086 ……..

Barry Brey, eigth edition

Notes:

1 ‘244: Octal three state

buffers, used as buffers

because OE grounded

2 ‘373 Octal latches

3 ‘245 Octal transceivers

(hex version available)

‘245 and ‘373 examples

NXP75ABT2245

NXP74AHC373

Page 15: Basic Components Micro computer Organizationece.uprm.edu/~ahchinaei/courses/2014jun/inel4206/...Fetch-Decode Execute • Fetch: The CU brings a new instruction from memory through

6/26/2014

15

Data Bus (1/2)

• For carrying data and instructions to or from the CPU

• Read Operation: information is being transferred into the CPU

– Input: when an input device is read

• Write operation: information is being transferred out from the CPU

– Output: when writing is upon an output device

Data Bus (2/2)

• Data bus bits are interpreted as a word, a data word

– Data bus bits: D(m-1) D(m-2) …. D1 D0

• Data bus transaction: When a transfer of information using data bus occurs.

• Width of Data bus m: It determines the maximum data size that can be transferred in one transaction

– If m=8, 2 transactions are needed for a word size datum, 4 transactions for a double word datum

Address Bus (1/2)

• CPU interacts with one memory register or peripheral device register at a time.

• Each register is uniquely identified with an identifier called address

• The Address Bus has the address. Read as word

– Address bits A(n-1)A(n-2) … A1 A0

• Bus unidirectional

• The width of the Add. Bus determines the maximum addressable memory space.

Control Bus

• Groups all the lines carrying the signals that regulate the system activity.

• Basically unidirectional

• Control bus bits are identified by function, separately

– We do not speak of Control Bus bits.