41
Introduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles → games and medical equipment Have difficulty identifying any products Not incorporating embedded processor FPGA or CPLD In one form or another Different kinds of computing We identify three basic kinds of component We embed into our systems Leaving FPGA and CPLD aside for moment Microprocessors microcomputers and microcontrollers What’s the difference First Most units CISC architecture Many now moving to RISC type of design Example is ARM processors Based upon fundamental von Neumann architecture Also known as Princeton architecture - 1 of 31-

Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

IntroductionEmbedded systems

Continue pervasive expansion intoVast variety of electronic systems and products

Aircraft and automobiles → games and medical equipment

Have difficulty identifying any productsNot incorporating embedded processor FPGA or CPLD

In one form or another

Different kinds of computingWe identify three basic kinds of component

We embed into our systems

Leaving FPGA and CPLD aside for momentMicroprocessors microcomputers and microcontrollers

What’s the differenceFirst

Most units CISC architectureMany now moving to RISC type of design

Example is ARM processorsBased upon fundamental von Neumann architecture

Also known as Princeton architecture

- 1 of 31-

Page 2: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

MicroprocessorIntegrated implementation of central processing unit – CPU

Given in above diagramThus often simply referred to as CPUMicroprocessors will differ in

ComplexityPowerCostOne may also find differences in

Number of registersOverall controlBus structure

Increasingly Aiken or Harvard architectureBecoming mixed in

In addition RISC features being utilized as wellMicroprocessors range from devices with

Few thousand transistorsCost of a dollar or less

Units with 5-10 million transistorsCost several thousand dollars

To implement complete computerMust still include

Input / output subsystemsMemory

Will examine each of these in detailIn context of embedded system

Such components connected via system bus

MicrocomputerComplete computer

Implemented using microprocessorTypically constructed utilizing

Numerous integrated circuitsOnce again complexity varies

- 2 of 31-

Page 3: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Simple microcomputersCan be implemented on single chipThese will have limited

Onboard memorySimple I/O system

MicrocontrollerIncludes

Microprocessor I/O subsystems

Typically these include such things asTimersSerial communications channelsAnalog to digital conversion Digital to analog conversionDMA

Memory subsystem May or may not be included

Embedded Systems an OverviewAn embedded system microcomputer system

Comprising hardware and softwareDesigned and optimized

To solve specific problem very efficientlyTypically continually

Interacts with environmentMonitor and control some process

Term embedded system refers to factMicrocomputer system

Enclosed or embeddedIn larger system

Typical person May interact with 10-20 embedded systems

Around home each daySingle contemporary automobile

- 3 of 31-

Page 4: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

May contain as many as 100 embedded microprocessors and microcontrollersEngine ignitionTransmission shiftingPower steeringAntilock brakingSecurityEntertainment

Typically consider two types of embedded systemReactive Time based

ReactiveReactive embedded system

Typically event driven Implies asynchronous behaviour

Continually interacting with its environmentComprises two sets of tasks

ForegroundBackground

Foreground componentInteract with userInitiated by

InterruptReal-time constraint

Background componentRemainder

Not interrupt drivenOnce started

Typically run to completionCan be interrupted by foreground task

Timebased Considered synchronousSystems whose behaviour controlled by timeTasks execute according to some schedule

- 4 of 31-

Page 5: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Time ConstraintsMany embedded systems

Considered to be real time systemsSystem with real-time constraint

Can be either ReactiveTime based

Real time systemMust respond within constrained time interval

To external or internal eventsResponse is execution of task associated with event

Such systems classed into two general categoriesSoft real time system

If time constraint not metPerformance degraded

Hard real time systemIf time constraint not met

System considered to have failedFailure may be considered to be catastrophic

When operating system used in embedded microcomputerTypically is real time operating system

Real time operating (RTOS)Designed and optimized

To handle strict time constraintsAssociated with events in real time context

- 5 of 31-

Page 6: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

ArchitectureAs noted earlier

Components of microcomputer Connected via system bus

System busProvides path for electrical signals

To flow amongst componentsSubdivided into three busses

Segregated by functionSystem may now look like following

At high level

Implementation of microprocessor embedded systemTakes the form in accompanying diagram

ObserveIndividual pieces segregated

Implementation of microcontroller embedded systemTakes the following form

ObserveIndividual pieces combined into whole

We now combine all pieces into complete system

- 6 of 31-

Page 7: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Microprocessor controls whole systemExecuting set of instructions – the application

Stored in memory subsystemGenerally stored in ROM type memory

Thus called firmwareAt power on

Microprocessor addressesPredefined location

Fetches, decodes and executes instructionWhen instruction execution complete

Fetch next oneProcess repeats forever

Unlike typical application programAt top-level of embedded program

Does not execute returnNo place to return to

Specific set of instructions for microprocessorCalled instruction setDesign first -> architecture

Called ISA or Instruction Set ArchitectureInstructions or control flow

SequentialBranchLoopFunction call

Embedded Systems Development As we’ve seen

Most embedded systemsShare a common structure

while(1) { embedded program}

- 7 of 31-

Page 8: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Also share a common development cycleThrough such a cycle

Develop the embedded designFollowing figure

Gives high level flowIdentifies major elements of such cycle

In subsequent lecturesWill examine each phase in detail

Specifically Hardware design

Involves design ofComponentsPrinted circuit boardsSystem

Software designMay entail design of

High level language codeAssembly

Work in assembly requires Detailed knowledge of

Microprocessor architectureIts register structure

Mixture of assembler and high level

For now let’s look at embedded systems From several different points of view

Firmware/Software view Instruction set– ISA view Register transfer level – RTL view The RTL architecture

- 8 of 31-

Page 9: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Embedded Systems – A Software - Firmware ViewLet’s walk through the software and hardware

Pieces and processes to see how an embedded system comes together

We’ll begin with the simple problemControl the brakes to prevent locking the wheels

Problem is stated in natural language

Today’s microprocessorsCannot accept problem in the form

1. Must translate into more compatible formWe will see that all our activities really involve

Translating problem from one form to anotherUntil we reach representation we can solve

In current caseWe translate into some new language

CThis translation is done by handNote at this point

We can have a variety of translationsThey are not unique

This translation is what we call software designResult is what we call a program

Let’s see where we are now

2. More translationThis still not enoughWe require addition levels of translationAt this stage

We can begin to use some additional tool to help in process

First such tool is called compiler

- 9 of 31-

Page 10: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

- 10 of 31-

Page 11: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

(Cross) CompilerCompiler is a tool for translating programs

Into variety of formsOne such form

Assembly language – the instruction set for the machine

Observe prior to this stageProgram did not depend upon machineNow program in form that will execute only on particular machine

In embedded caseWe work with a cross compiler

Compiles on one machine for a second or target machine

Preprocessor executes firstEvaluates and executed all preprocessor directives

All lines beginning with #Specifically manages include files

System files - <sysFilename.h>User files – “userFilename.h”

- 11 of 31-

Page 12: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Next each .c file compiled individuallyCalled translation unit

Each symbol name entered into symbol tableDeclaration – brings name into name space

No memory allocatedDefinition – brings name into name space

Sufficient memory allocated to hold variableIf definition appears in different translation unit

Identify as externWant only single definition – memory allocation

For each variable or function body in system

AssemblerAssembler is next tool we use for translatingConverts assembly language into machine language

Program expressed as collection of 0’s and 1’s machine understands

Linker and LoaderAlthough program now in machine languageNot ready to be executedProblem

All variables and data structures we useMust reside in computer memoryEach needs an address in memory

QuestionWhich address should we use

UnfortunatelyCannot always use the same addressWhat if someone else wants to use same address

To solve problem assembler generatesRelocatable code

Code that can be placed anywhere in memory

- 12 of 31-

Page 13: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Second question arises at this timeWe’d like to be able to use existing code

Our ownOther peoples

How do we get this into our program without typing in each time

Tool called linker loader can help with both problems

Does two jobs1. Links collection of program modules together2. Resolves address problems

Adding that step to flow we now have

3. Into MemoryNot quite there yet

Several more stages to goAt this point linker and loader have gotten program into memory

PC systems this means onto the hard drive

We will see shortlyMemory in embedded comprised of hierarchy of elementsSome of these include

ROM - FlashRAMCACHERegistersInstruction register

Adding these we come up with

We have now seen how to take problemExpressed in natural languageTurn into something that can be solved by computer

In embedded applicationSolution – executable typically stored in non-volatile memory

Rom / Flash

- 13 of 31-

Page 14: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Embedded Systems – An Instruction Set ViewSpecific set of instructions for microprocessor

Called instruction setIncludes instructions that

Bring data in from outside worldOutput signals to external worldProvide means to exchange data

With memory subsystemPerform arithmetic operations

Also known as assembly language for machine

For new processor designInstructions selected and designed firstThese lead to or dictate architecture

Such an architecture called Instruction Set Architecture - ISA

Generally when we write embedded system programDone in high level language

C, C++ Rather than assembly language

For the machine on which we’re working

On occasion we will write combinationDone when portions of programs

Optimized forSpeed Size

When working with assembly languageWe work directly with microprocessor’s

Various registersConsequently

Must have knowledge of machine’s hardware architecture

- 14 of 31-

Page 15: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Assembly language instructionsTranslated into machine code

By assemblerMachine code reflects binary encoding

Machine’s instructions

Anatomy of a Machine InstructionLet’s now look at basic structure of assembly instruction

At highest level machine instruction Machine instruction contains following information

Operation the instruction is to performReferred to as operation code

Shortened to op-code

Operand informationOperands are pieces of data the

Microprocessor is operating onTypical machines support instructions

Involve One, two, or three operandsKnown as

One, two, or three operand (or address) instructionsEach such operand has an address

Consequently also known asOne, two, or three address instructions

From register’s point of viewInstructions known as

StoreTransferOperate

We depict these graphically as shownObserve that we have one instruction

With no apparent address

- 15 of 31-

Page 16: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Such instructions support actions such asNOP – no operationHALT – stop executing

May also have an implied addressAccumulator stack

Referred to as zero address instructionsRemaining instructions interpret addresses as

Source of operandDestination of result

To support full address of operandAddress fields of instruction must necessarily

Be very largeFor 16 bit machine

Support for 3 address instruction would necessitate48 bits for addressop-code bits

While certainly feasibleAlternate schemes possible

Driven by need for speedFlexibility

Interpretation of address atCompile time vs. runtime

Code Fragment Operand 1 (Source 1)

Operand 2 (Source 2)

Result (Destination)

Type

int a = 10;int b = 20; a b c 3 addressint c;c = a + b;

int a = 10;int b = 20; a b a 2 addressb = a + b;

a = ~a a 1 address

- 16 of 31-

Page 17: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Alternate interpretation for bits in address fieldsProvides for speed and flexibility

Designate subset of bits as address modeLet remainder specify address

Addressing ModesCommonly implemented addressing modes include

ImmediateOperand is part of instruction

Register directNamed registers contain operand

Register indirectNamed register contains address of operand

IndexedAddress computed as sum of

Base addressContents of indexing register

LOADI R1, #FACEh; // put hex constant FACE into register R1

ADD R1, R2; // add contents of R1 to contents of R2 and put result// into R!

ADD R1, *R2; // add contents of R1 to contents of what R2 is // pointing at and put result into R!

ADD R1, 1800(R2); // add contents of R1 to contents of memory location// 1800 + contents of R2 and put result into R!

- 17 of 31-

Page 18: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

PC relativeSigned offset added to PCBecomes address of next instruction

Different vendors implementAddressing modes in different waysMay have variations on fundamental scheme

Flow of ControlWe can now use various addressing schemes

To alter the flow of control through programOften use information stored in flag register

Holds condition codes Values set following execution of each instruction

Zero, overflow, carry…Let’s look at alternatives at high level first

High Level ViewWe have 4 basic ways we can proceed through program

Sequential

Each instruction executed in sequence

Branch

Select one of several branches based upon conditionGraphicallyType of construct seen in

if elseswitch or case

Loop

Repeatedly execute set of instructionsForeverUntil some condition met

BR -10; // add –10 to contents of PC go to that location

- 18 of 31-

Page 19: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Can make decision Before

Code may not be executedAfter loop

Code executed at least onceType of construct seen in

do or repeatwhilefor

Procedure or Function Call

Leave current contextExecute set of instructionsReturn to contextType of construct seen for

Procedure or subroutine callInterrupt handlerCo-routine

ImplementationLet’s now look at the assembly language level

Sequential

a = 10;b = 20;c = a + b;

LD R1, 10 // puts 10 into R1LD R2, 20 // puts 20 into R2add R3, R1, R2 // computes R1 + R2 and puts result into R3

- 19 of 31-

Page 20: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Branch

if - else construct

if (a == b)c = d + e;

elsec = d - e;

Assume a .. e in registers R1..R5

CMP R2, R1 // test if contents of R1 and R2 equalJE $1 // if equal branch to $1

// $1 is a label created by compilerSUB R3, R4, R5 // compute d - e and put results in cBR $2 // $2 is label created by compiler

$1: ADD R3, R4, R5 // compute d - e and put results in c$2: ...

Loop

while (a < 10){

i = i + 2;a++;

}

Assume a in R2 and i in R3

$1: CMP R2, 10 // test if R2 < 10JGE $2 // if R2 greater than or equal 10 branch to $2ADD R3, 2 // compute i + 2 put result in iADD R2, 1 // auto increment a note an int is 4 bytesj $1 // continue looping

$2: ....

- 20 of 31-

Page 21: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Procedure Call

Most complex of flow of control constructsNot more difficult

More involvedWill include

ProceduresSubroutinesCo-routines

Process

We’ll consider from high level

Program loaded at address 3000Code executed until address 3053

Procedure encountered1. Save return address

Several important things to noteAddress saved is 3057Stack gets

Return addressParameters

2. Address of procedure 5000 put into PC3. Instruction at 5000 begins executing4. Execution continues until 50535. Return encountered

Action similar to callStack gets

Return valuesStack looses

Return address6. Return Address put into PC7. Execution continues at 3057

Had procedure call been encountered in procedure F1

3000 Code

3053 Procedure Call F1

3054 More Code

5000 F1

Procedure Code

5053 Return

- 21 of 31-

Page 22: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Identical process repeatedCan be repeated multiple times

Must be aware that stack can overflowIf too much pushed on

Begin to loose informationParticularly return address

Stack

Stack data structureOccupies an area in memoryHas finite size and several operations

PushPuts something onto top of stack

Top of stack is special value Saved for ongoing operations

Push operation Writes something to memoryIncrements address of top of stack

Ready for next push

For ease of implementationStack typically implemented from

Lower memory addresses to higher memory addresses

PopTakes something off the top of stack

Pop operationRemoves something from top of stack by

Decrementing top of stackReturning previous top of stack

PeekLooks at something on the top of stackPeek operation

- 22 of 31-

Page 23: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Returns something from top of stack byDoes not decrement top of stack

Stack Frame

Item being pushed onto or popped from stackData structure called stack frameSpecial area set aside in memory for such purpose

Will not go into details at moment of ImplementationHandling

Sufficient to say Contains

Return address From calling context

Register valuesLocal variablesPassed parameters

From return contextValues to be returned

ManagementCreated when procedure calledPointer

To stack frame returnedPointer placed on stack

Expanding Op-CodesIn discussion above

We’ve assumed op-code field fixedNo reason for this to be the case

Consider high level strategySimilar to encoding data for transmission

Make most frequently sent the simplest Analogous to Hoffman encoding

- 23 of 31-

Page 24: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

- 24 of 31-

Page 25: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

At outset of designDesigners examine necessary capabilities for systemEntails identifying

What kinds of instructions to supportHow many of each kind

Recall our earlier discussionHow many of each operand type

May need only few 1 address instructionsMany 2 address versionsSomewhat fewer 3 address implementations

Forcing all op-code fields to be same widthWasteful

Consider logically subdividing op-code field Into subfields

Devote portion to encoding intended operationLet remainder distinguish amongst types

Now consider how we might interpret such a fieldOne possibility

Assume we need a large number of 2 address instructionsLet MSB distinguish between

Two address (operand) instruction Not two address instruction

Second MSB or two MSBsDistinguish amongst remaining types

Now we can specifyIf two address instruction

Most significant m bits express op-codeIf not two address instruction

Most significant k bits express op-code

- 25 of 31-

Page 26: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

As designersWe have perfect knowledge

What bits representHow to interpret them

Embedded Systems – A Register ViewLet’s now continue moving down to the register level

Know as RTL – Register Transfer LevelTo see how instructions are executed

Registers one of fundamental elements of microprocessor systemWe define 3 basic operations on data in system

All involve registersOperations

Store data Transfer data Operate on data

Instructions are implementedBy movement of data through registers

Using register view of systemSimplifies and aides understanding

Basic Register OperationsWe express basic register operations

According to following timing diagramReflected are

Read Write

All other operations built on these

On write operationData changed on inputs to registerFollowing delay

To allow data to settle on bus

- 26 of 31-

Page 27: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Write signal assertedIn drawing signal asserted low

This is typical

Read follows similarlyThe read signal is asserted

In drawing Asserted low

Following some delayData appears on output of register

This will be copy of contents of register

Based upon the level of detail we needWe take several views of a register

Simplest view shows simple boxWith bits numbered

More complex shows Inputs and outputsSome control signals

Register View of Microprocessor – The RTL ArchitectureCan now express architecture of simple microprocessor

From register point of viewSee this in following figure

- 27 of 31-

Page 28: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

System OperationWe can now view system operation

From register’s point of view

Microprocessor’s instruction setSpecifies how we execute the basic operations

On the registersOnce again these are

Store data Transfer data Operate on data

Corresponding to such operationsClassify instructions into following groups

Data Transfer Logic Execution Flow Arithmetic Processor Control

We express instructionsAssembly level – ISA levelRegister transfer level – RTL level

Following table gives representative examplesEach kind of instruction

- 28 of 31-

Page 29: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

One Bus ArchitectureLet’s explore how this may look inside the computer From name we see design has single bus

Made up of Data Address Control

Only one device can be driving the bus at any timeMultiple devices can be simultaneously listening

At topInstruction Register - IR

Holds instructions fetched from memory

Type Instruction Assembler - ISA Register Transfer - RTL

Data Transfer

move register MOV R1,R2 R1 R2

move from memory MOV R1,memadx R1 (memadx)

move to memory MOV memadx, R1 (memadx) R1

move immediate MVI R1,#DEAD R1 #DEAD

Logic complement accumulator

CMA A !A

AND register AND R1 A A R1

OR register OR R1 A A R1

Execution Flow

unconditional jump JMP $1 PC $1

conditional jump J<cond> if<cond> == 1 PC $1

Arithmetic ADD register with carry

ADD R1 A A + R1 + C

Clear carry CLC C 0

Program Control

Don’t execute an instruction

NOP

Stop executing instructions

HALT

- 29 of 31-

Page 30: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Program CounterIdentifies the next instruction

To be fetched from memoryRegisters R0 - R31

Hold informationY, Z

Temporary registersALU

Arithmetic and Logical UnitDoes computation

MemoryStores instructions and data

Memory Address Register - MARHolds address or instruction or data in memory

Memory Data Register - MDRHolds data to be read from or written to memory

Instruction Execution CycleInstruction execution cycle comprised of 4 basic steps

Fetch Fetch instructionNext Compute address of next instructionDecode Decode current instructionExecute Execute current instruction

Can describe according to following state diagramOperation

FetchPlace address of instruction from PC onto BusStore contents of BUS into MARIssue a READ commandPlace contents of memory location into MDRPlace MDR onto BUSStore contents of Bus into IR

NextPlace contents of PC onto BusPlace 1 into Y register

- 30 of 31-

Page 31: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Add contents of Y and Bus in ALUPlace output of ALU into Z registerPlace contents of Z register onto BusStore contents of Bus into PC

DecodeDecode OP Code field

ExecuteDo the sequence of steps to perform the instruction

Let’s look at the sequence of operations necessary to execute a simple instructionIn assembler

ST *R1, R2

This is a move indirect instructionUse the contents of register R1 as an address in memoryRead what’s at that location in memoryPlace the value in R2

Recall the instruction cycleFetch, Next, Decode, Execute

Let’s assume we’ve done the fetch part and the instruction is in the IR

We now first walk through the sequence of operationsNote the control signals that are active at each stepWe read / write from/to a register by

Selecting it Issuing the Read / Write control signal

We assume all such actions are synchronized to the system clock

NextPlace 1 on input to Y registerWrite to Y register

- 31 of 31-

Page 32: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

Read to PC registerCommand ADD to ALU to Add contents of Y and Bus in ALUPlace output of ALU on input to Z registerWrite to Z registerRead from Z registerWrite to PC

DecodeDecode the opcode STRouted to collection of control logic called microprogram

Knows how to execute each assembler instruction

ExecuteRead from R1 onto the Bus // Instruction contains adx of R1

// and info for indirect addressingWrite to MAR // Specified in microcode for STREAD to memoryWait Write to MDRRead from MDRWrite to R2 // Instruction contains adx of R2

// and info for direct addressing

Observe that we’ve indicated all actions happen in strict sequential orderIn fact number of operations can be combined to happen at same time

Provided actions don’t require same resource Cannot

Read from two different sources at same timeBoth require bus

Can Write to two different destinationsRead from one and write to another

- 32 of 31-

Page 33: Introduction - University of Washington · Web viewIntroduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles

SummaryWe’ve looked at

High level view of computing elementsDistinguished

Microprocessors Microcomputers Microcontrollers

Introduced the concept of embedded systemsTaken an overview of such systemsSeen how time plays role in

Behaviour of such systemsNotions of

Soft real timeHard real time

Explored system architectureDistinguished

HardwareSoftwareFirmware

Seen the embedded systems development cycle

Examined various views of embedded systemsRegister viewFirmware view

Instruction formatsAddressing modes

- 33 of 31-