Chapter%203%20%20General-Purpose%20Processors:%20Software - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter%203%20%20General-Purpose%20Processors:%20Software

Description:

... read to three special registers to accomplish this table ... register file holds each of the variables. functional units to carry out the FSMD operations ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 20
Provided by: vah
Learn more at: http://esd.cs.ucr.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter%203%20%20General-Purpose%20Processors:%20Software


1
Chapter 3 General-Purpose Processors Software
2
Introduction
  • Processor designed for a variety of computation
    tasks
  • Low unit cost, in part because manufacturer
    spreads NRE over large numbers of units
  • Motorola sold half a billion 68HC05
    microcontrollers in 1996 alone
  • Carefully designed since higher NRE is acceptable
  • Can yield good performance, size and power
  • Low NRE cost, short time-to-market/prototype,
    high flexibility
  • User just writes software no processor design

3
Basic Architecture
  • Control unit and datapath
  • N-bit processor
  • N-bit ALU, registers, buses, memory data
    interface
  • 8-bit, 16-bit, 32-bit common
  • PC size determines address space
  • Clock cycle impacts processing speed

4
Two Memory Architectures
  • Princeton
  • Fewer memory wires
  • Harvard
  • Simultaneous program and data memory access

5
Cache Memory
  • Memory access may be slow
  • Cache is small but fast memory close to processor
  • Holds copy of part of memory
  • Hits and misses

6
Pipelining
7
Instructions Stored In Memory
8
Addressing Modes
9
A Simple (Trivial) Instruction Set
Assembly instruct.
First byte
Second byte
Operation
MOV Rn, direct
0000
Rn
direct
Rn M(direct)
MOV direct, Rn
0001
Rn
direct
M(direct) Rn
Rm
MOV _at_Rn, Rm
0010
Rn
M(Rn) Rm
MOV Rn, immed.
0011
Rn
immediate
Rn immediate
ADD Rn, Rm
0100
Rm
Rn
Rn Rn Rm
SUB Rn, Rm
0101
Rm
Rn Rn - Rm
Rn
JZ Rn, relative
0110
Rn
relative
PC PC relative (only if Rn is 0)
opcode operands
10
Sample Programs
11
Example parallel port driver
  • Using assembly language programming we can
    configure the parallel port to perform digital
    I/O
  • write and read to three special registers to
    accomplish this table provides list of parallel
    port connector pins and corresponding register
    location
  • Example parallel port monitors the input switch
    and turns the LED on/off accordingly

12
Parallel Port Example
This program consists of a sub-routine that
reads the state of the input pin, determining
the on/off state of our switch and asserts the
output pin, turning the LED on/off
accordingly .386 CheckPort proc push ax
save the content push dx save the
content mov dx, 3BCh 1 base 1 for register
1 in al, dx read register 1 and al, 10h
mask out all but bit 4 cmp al, 0 is it
0? jne SwitchOn if not, we need to turn the
LED on SwitchOff mov dx, 3BCh 0 base 0
for register 0 in al, dx read the current
state of the port and al, f7h clear first bit
(masking) out dx, al write it out to the
port jmp Done we are
done SwitchOn mov dx, 3BCh 0 base 0 for
register 0 in al, dx read the current state
of the port or al, 01h set first bit
(masking) out dx, al write it out to the
port Done pop dx restore the
content pop ax restore the content CheckPort e
ndp
extern C CheckPort(void) // defined in
// assembly void main(void) while( 1 )
CheckPort()
13
System Call Invocation
  • system call is a mechanism for an application to
    invoke the operation system
  • operating system
  • provides software required for servicing hardware
    interrupts
  • provides device drivers for driving peripheral
    devices present on the system

DB file_name out.txt -- store file name MOV
R0, 1324 -- system call open id MOV
R1, file_name -- address of file-name INT 34
-- cause a system call JZ R0, L1
-- if zero -gt error . . . read
the file JMP L2 -- bypass error
cond. L1 . . . handle the error L2
14
Software Development Process
15
Software Design Process
16
Instruction Set Simulator For A Simple Processor
include ltstdio.hgt typedef struct unsigned
char first_byte, second_byte
instruction instruction program1024
//instruction memory unsigned char memory256
//data memory void run_program(int num_bytes)
int pc -1 unsigned char reg16, fb,
sb while( pc lt (num_bytes / 2) )
fb programpc.first_byte sb
programpc.second_byte switch( fb gtgt 4 )
case 0 regfb 0x0f memorysb
break case 1 memorysb regfb
0x0f break case 2 memoryregfb
0x0f regsb gtgt 4 break
case 3 regfb 0x0f sb break

case 4 regfb 0x0f regsb gtgt 4
break case 5 regfb 0x0f - regsb
gtgt 4 break case 6
pc sb break default return 1
return 0 int main(int argc, char
argv) FILE ifs If( argc ! 2
(ifs fopen(argv1, rb) NULL )
return 1 if (run_program(fread(pr
ogram, sizeof(program) 0)
print_memory_contents() return(0)
else return(-1)
17
General Purpose Processors
Sources Intel, Motorola, MIPS, ARM, TI, and IBM
Website/Datasheet Embedded Systems Programming,
Nov. 1998
18
A Simple Microprocessor
FSMD
FSM operations that replace the FSMD operations
after a datapath is created
Reset
PCclr1
PC0
Declarations bit PC16, IR16 bit
M64k16, RF1616
IRMPC PCPC1
Fetch
MS10 Irld1 Mre1 PCinc1
Decode
from states below
Mov1
RFrn Mdir
RFwarn RFwe1 RFs01 Ms01 Mre1
to Fetch
op 0000
RFr1arn RFr1e1 Ms01 Mwe1
Mov2
Mdir RFrn
0001
to Fetch
RFr1arn RFr1e1 Ms10 Mwe1
Mov3
Mrn RFrm
0010
to Fetch
Mov4
RFrn imm
RFwarn RFwe1 RFs10
0011
to Fetch
RFwarn RFwe1 RFs00 RFr1arn
RFr1e1 RFr2arm RFr2e1 ALUs00
Add
RFrn RFrnRFrm
0100
to Fetch
RFwarn RFwe1 RFs00 RFr1arn
RFr1e1 RFr2arm RFr2e1 ALUs01
Sub
RFrn RFrn-RFrm
0101
to Fetch
PCld ALUz RFrlarn RFrle1
Jz
PC(RFrn0) ?rel PC
0110
to Fetch
19
Architecture Of A Simple Microprocessor
  • storage devices for each declared variable
  • register file holds each of the variables
  • functional units to carry out the FSMD operations
  • an ALU is used to carry out the required
    operations
  • connections added among the components ports
    corresponding to the operations required by the
    FSM
  • unique identifiers created for every control
    signal
Write a Comment
User Comments (0)
About PowerShow.com