Cpe ee 421 microcomputers motorola 68000 the cpu hardware model
Download
1 / 111

- PowerPoint PPT Presentation


  • 233 Views
  • Uploaded on

CPE/EE 421 Microcomputers: Motorola 68000 – The CPU Hardware Model. Instructor: Dr Aleksandar Milenkovic Lecture Notes. Outline. 68000 interface Timing diagram Minimal configuration using the 68000 Extensions Exception Processing. 68000 Interface. M68000: 64 pins, arranged in 9 groups:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - patch


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Cpe ee 421 microcomputers motorola 68000 the cpu hardware model l.jpg

CPE/EE 421 Microcomputers:Motorola 68000 – The CPU Hardware Model

Instructor: Dr Aleksandar MilenkovicLecture Notes


Outline l.jpg
Outline

  • 68000 interface

  • Timing diagram

  • Minimal configuration using the 68000

  • Extensions

  • Exception Processing

CPE/EE 421/521 Microcomputers


68000 interface l.jpg
68000 Interface

  • M68000: 64 pins, arranged in 9 groups:

    • Address Bus: A01 – A23

    • Data Bus: D00 – D15

    • Asynchronous bus control: AS*, R/W*, UDS*, LDS*,DTACK*, BERR*

    • Synchronous bus control: E,VPA*, VMA*

    • Bus arbitration control: BR*, BG*, BGACK*

    • Function code: FC0, FC1, FC2

    • System control: CLK, RESET*, HALT*

    • Interrupt control: IPL0*, IPL1*, IPL2*

    • Miscellaneous: Vcc(2), Gnd(2)

    • Legend: Type

      • XXInput

      • XXOutput

      • XX Input/Output

CPE/EE 421/521 Microcomputers


68000 interface cont d l.jpg
68000 Interface, cont’d

  • Classification of pins based on function

    • SYSTEM SUPPORT PINS

      • Essential in every 68000 system (power supply, clock, …)

    • MEMORY AND PERIPHERAL INTERFACE PINS

      • Connect the processor to an external memory subsystem

    • SPECIAL-PURPOSE PINS (not needed in a minimal application of the processor)

      • Provide functions beyond basic system functions

  • Terminology

    • Asterisk following a name: indicates the signal is active low

    • “Signal is asserted” means signal is placed in its active state

    • “Signal is negated” means signal is placed in its inactive state

CPE/EE 421/521 Microcomputers


System support pins l.jpg
System Support Pins

  • Power Supply

    • Single +5V power supply: 2 Vcc pins and 2 ground pins

  • Clock

    • Single-phase, TTL-compatible signal

    • Bus cycle: memory access, consists of a minimum 4 clock cycles

    • Instruction: consists of one or more bus cycles

  • RESET*

    • Forces the 68000 into a known state on the initial application of power:

      • supervisor’s A7 is loaded from memory location $00 0000

      • Program counter is loaded from address $00 0004

    • During power-up sequence must be asserted together with the HALT* input for at least 100 ms.

    • Acts also as an output, when processor executes the instruction RESET (used to reset peripherals w/out resetting the 68000)

CPE/EE 421/521 Microcomputers


System support pins cont d l.jpg
System Support Pins, cont’d

  • HALT*

    • In simple 68000 systems can be connected together with RESET*

    • Can be used:

      • by external devices to make the 68000 stop execution after current bus cycle (and to negate all control signals)

      • to single-step (bus cycle by bus cycle) through program

      • to rerun a failed bus cycle (if memory fails to respond correctly) in conjunction with the bus error pin, BERR*

    • It can be used as an output, to indicate that the 68000 found itself in situation from which it cannot recover (HALT* is asserted)

CPE/EE 421/521 Microcomputers


Memory and peripheral interface pins l.jpg
Memory and Peripheral Interface Pins

  • Address Bus

    • 23-bit address bus, permits 223 16-bit words to be addressed

    • Tri-state output pins (to permit devices other then the CPU to take a control over it)

    • Auxiliary function:

      • supports vectored interrupts

      • Address lines A01, A02, A03 indicate the level of the interrupt being serviced

      • All other address lines are set to a high level

  • Data Bus

    • Bi-directional 16-bit wide data bus

      • During a CPU read cycle acts as an input

      • During a CPU write cycle acts as an output

    • Byte operations: only D00-D07 or D08-D15 are active

    • Interrupting device identifies itself to the CPU by placing an interrupt vector number on D00-D07 during an interrupt acknowledge cycle

CPE/EE 421/521 Microcomputers


Memory and peripheral interface pins cont d l.jpg
Memory and Peripheral Interface Pins, cont’d

  • AS*

    • When asserted, indicates that the content of the address bus is valid.

  • R/W*

    • Determines the type of a memory access cycle

      • CPU is reading from memory: R/W* = 1

      • CPU is writing to memory: R/W* = 0

      • If CPU is performing internal operation, R/W* is always 1

      • When CPU relinquishes control of its busses, R/W* is undefined

  • UDS* and LDS*

    • Used to determine the size of the data being accessed

    • If both UDS* and LDS* are asserted, word is accessed

    • R/W* UDS* LDS*

      • 010: write lower byte (D00 – D07: data valid, replicated on D8-D15)

      • 000: write word (D00 – D15: data valid)

      • 101: read upper byte (D00 – D07: invalid, D8-D15 – data valid)

CPE/EE 421/521 Microcomputers


Memory and peripheral interface pins cont d9 l.jpg
Memory and Peripheral Interface Pins, cont’d

  • DTACK* (Data Transfer Acknowledge)

    • Handshake signal generated by the device being accessed

    • Indicates that the contents of the data bus is valid

    • If DTACK* is not asserted, CPU generates wait-states until DTACK goes low or until an error state is declared.

    • When DTACK* is asserted, CPU completes the current access and begins the next cycle

    • DTACK* has to be generated a certain time after the beginning of a valid memory access (timer supplied by the system designer).

CPE/EE 421/521 Microcomputers


Memory and peripheral interface pins cont d10 l.jpg
Memory and Peripheral Interface Pins, cont’d

Figure 4.3

CPE/EE 421/521 Microcomputers


Special function pins of the 68000 l.jpg
Special-Function Pins of the 68000

  • BERR* (Bus Error Control)

    • Enables the 68000 to recover from errors within the memory system

  • BR*, BG*, BGACK* (Bus Arbitration Control)

    • Used to implement multiprocessor systems based on M68000

  • FC0-FC2 (Function Code Output)

    • Indicate the type of cycle currently being executed

    • Becomes valid approximately half a clock cycle earlier than the contents of the address bus

  • IPL0*-IPL2* (Interrupt Control Interface)

    • Used by an external device to indicate that it requires service

    • 3-bit code specifies one of eight levels of interrupt request

CPE/EE 421/521 Microcomputers


Special function pins of the 68000 function code outputs l.jpg
Special-Function Pins of the 68000Function Code Outputs

CPE/EE 421/521 Microcomputers


Special function pins of the 68000 using fc outputs l.jpg
Special-Function Pins of the 68000Using FC Outputs

User data memory

User program memory

Supervisor program and data memory

Figure 4.8

CPE/EE 421/521 Microcomputers


Special function pins of the 68000 asynchronous bus control l.jpg
Special-Function Pins of the 68000 Asynchronous Bus Control

Figure 4.11

  • The 68000 is not fully asynchronous because its actions are synchronized with a clock input

    • It can prolong a memory access until an ACK is received, but it has to be in increments of one clock cycle

CPE/EE 421/521 Microcomputers


Outline15 l.jpg
Outline

  • 68000 interface

  • Timing diagram

  • Minimal configuration using the 68000

  • Extensions

  • Exception Processing

CPE/EE 421/521 Microcomputers


Timing diagram of a simple flip flop idealized form of the timing diagram l.jpg
Timing Diagram of a Simple Flip-FlopIdealized form of the timing diagram

Actual behavior of a D flip-flop

Data hold time

Data setup time

Max time for output to become valid after clock

CPE/EE 421/521 Microcomputers


General form of the timing diagram l.jpg
General form of the timing diagram

An alternative form of the timing diagram

CPE/EE 421/521 Microcomputers


The clock l.jpg
The Clock

  • A microprocessor requires a clock that provides a stream of timing pulses to control its internal operations

  • A 68000 memory access takes a minimum of eight clock states numbered from clock state S0 to clock state S7

CPE/EE 421/521 Microcomputers


Bus cycle l.jpg

A memory access begins in clock

state S0 and ends in state S7

Bus Cycle

CPE/EE 421/521 Microcomputers


Bus cycle20 l.jpg
Bus Cycle

The most important parameter

of the clock is the duration of a cycle,

tCYC.

CPE/EE 421/521 Microcomputers


Bus cycle21 l.jpg
Bus Cycle

At the start of a memory access

the CPU sends the address of the location

it wishes to read to the memory

CPE/EE 421/521 Microcomputers


Address timing l.jpg
Address Timing

  • We are interested in when the 68000 generates a new address for use in the current memory access

  • The next slide shows the relationship between the new address and the state of the 68000’s clock

CPE/EE 421/521 Microcomputers


Bus cycle23 l.jpg

In state S1 a new

address becomes

valid for the remainder

of the memory access

Initially, in state

S0 the address

bus contains the

old address

Bus Cycle

CPE/EE 421/521 Microcomputers


Bus cycle24 l.jpg
Bus Cycle

The time at which the contents

of the address bus change can be

related to the edges of the clock.

CPE/EE 421/521 Microcomputers


Address timing25 l.jpg

Let’s look at the sequence of events that govern the timing of the address bus

The “old” address is removed in state S0

The address bus is floated for a short time, and the CPU puts out a new address in state S1

Address Timing

CPE/EE 421/521 Microcomputers


Bus cycle26 l.jpg
Bus Cycle timing of the address bus

The old address is removed

in clock state S0 and the

address bus floated

CPE/EE 421/521 Microcomputers


Bus cycle27 l.jpg

t timing of the address busCLAV

Bus Cycle

The designer is interested in the point at

which the address first becomes valid. This

point is tCLAV seconds after the falling edge

of S0.

CPE/EE 421/521 Microcomputers


Bus cycle28 l.jpg
Bus Cycle timing of the address bus

The memory needs to know when

the address from the CPU is valid.

An address strobe, AS*, is asserted

to indicate that the address is valid.

CPE/EE 421/521 Microcomputers


Address and address strobe l.jpg
Address and Address Strobe timing of the address bus

  • We are interested in the relationship between the time at which the address is valid and the time at which the address strobe, AS*, is asserted

  • When AS* is active-low it indicates that the address is valid

  • We now look at the timing of the clock, the address, and the address strobe

CPE/EE 421/521 Microcomputers


Bus cycle30 l.jpg

AS* goes active low after timing of the address bus

the address has become valid

AS* goes inactive

high before the address

changes

Bus Cycle

CPE/EE 421/521 Microcomputers


Bus cycle31 l.jpg
Bus Cycle timing of the address bus

AS* goes low in clock

state S2

CPE/EE 421/521 Microcomputers


The data strobes l.jpg

The 68000 has two data strobes LDS* and UDS*. These select the lower byte or the upper byte of a word during a memory access

To keep things simple, we will use a single data strobe, DS*

The timing of DS* in a read cycle is the same as the address strobe, AS*

The Data Strobes

CPE/EE 421/521 Microcomputers


Bus cycle33 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

The data strobe, is asserted

at the same time as AS*

in a read cycle

CPE/EE 421/521 Microcomputers


The data bus l.jpg

During a read cycle the memory provides the CPU with data the lower byte or the upper byte of a word during a memory access

The next slide shows the data bus and the timing of the data signal

Note that valid data does not appear on the data bus until near the end of the read cycle

The Data Bus

CPE/EE 421/521 Microcomputers


Bus cycle35 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

Data from the memory

appears near the end of

the read cycle

CPE/EE 421/521 Microcomputers


Analyzing the timing diagram l.jpg

We are going to redraw the timing diagram to remove clutter the lower byte or the upper byte of a word during a memory access

We aren’t interested in the signal paths themselves, only in the relationship between the signals

Analyzing the Timing Diagram

CPE/EE 421/521 Microcomputers


Bus cycle37 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

We are interested in the relationship

between the clock, AS*/DS* and

the data in a read cycle

CPE/EE 421/521 Microcomputers


Bus cycle38 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

The earliest time at which the memory can

begin to access data is measured from the point

at which the address is first valid

CPE/EE 421/521 Microcomputers


Bus cycle39 l.jpg

Data the lower byte or the upper byte of a word during a memory access

becomes valid

Address

becomes valid

Bus Cycle

The time between address valid

and data valid is the memory’s

access time, tacc

CPE/EE 421/521 Microcomputers


Calculating the access time l.jpg

We need to calculate the memory’s access time the lower byte or the upper byte of a word during a memory access

By knowing the access time, we can use the appropriate memory component

Equally, if we select a given memory component, we can calculate whether its access time is adequate for a particular system

Calculating the Access Time

CPE/EE 421/521 Microcomputers


Bus cycle41 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

Data from the memory is latched into

the 68000 by the falling edge of the

clock in state S6.

CPE/EE 421/521 Microcomputers


Bus cycle42 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

Data must be valid

tDICL seconds before

the falling edge of S6

CPE/EE 421/521 Microcomputers


Bus cycle43 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

We know that the time between the

address valid and data valid is tacc

CPE/EE 421/521 Microcomputers


Bus cycle44 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

The address becomes

valid tCLAV seconds after

the falling edge of S0

CPE/EE 421/521 Microcomputers


Bus cycle45 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

From the falling

edge of S0 to the

falling edge of S6:

  • the address becomes valid

  • the data is accessed

  • the data is captured

CPE/EE 421/521 Microcomputers


Bus cycle46 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

The falling edge of S0 to the falling

edge of S6 is three clock cycles

CPE/EE 421/521 Microcomputers


Bus cycle47 l.jpg
Bus Cycle the lower byte or the upper byte of a word during a memory access

3 tcyc = tCLAV + tacc + tDICL

CPE/EE 421/521 Microcomputers


Timing example l.jpg

68000 clock 8 MHz t the lower byte or the upper byte of a word during a memory accessCYC = 125 ns

68000 CPU tCLAV = 70 ns

68000 CPU tDICL = 15 ns

What is the minimum tacc?

3 tCYC = tCLAV + tacc + tDICL

375 = 70 + tacc + 15

tacc = 290 ns

Timing Example

CPE/EE 421/521 Microcomputers


A 68000 read cycle l.jpg
A 68000 Read Cycle the lower byte or the upper byte of a word during a memory access

Figure 4.14

CPE/EE 421/521 Microcomputers


Extended read cycle l.jpg
Extended Read Cycle the lower byte or the upper byte of a word during a memory access

DTACK* did not go low at least 20ns before the falling edge of state S4

Figure 4.15

  • Designer has to provide logic to control DTACK*

CPE/EE 421/521 Microcomputers


Memory timing diagram l.jpg
Memory Timing Diagram the lower byte or the upper byte of a word during a memory access

  • The 6116 static memory component

    • 2K x 8bit memory – byte-oriented!

    • Two 6116’s configured in parallel to allow word accesses

    • Eleven address inputs

Figure 4.18

CPE/EE 421/521 Microcomputers


Memory timing diagram cont d l.jpg

Assumptions: the lower byte or the upper byte of a word during a memory access

R/W* is high for the duration of the read cycle

OE* is low

Memory Timing Diagram, cont’d

(min 200ns – address stable)

(max 200ns)

(usually derived from UDS*/LDS*)

Data is floating

Figure 4.17

(max 15ns)

(max 50ns)

CPE/EE 421/521 Microcomputers


Connecting the 6116 ram to a 68000 cpu l.jpg

D the lower byte or the upper byte of a word during a memory access00

A01

A01

D07

A11

A11

D08

A01

D15

A11

A12

A23

Connecting The 6116 RAM to a 68000 CPU

Figure 4.19

CPE/EE 421/521 Microcomputers


Slide54 l.jpg

70ns the lower byte or the upper byte of a word during a memory access

Turnoff time70+10+60 = 140ns

10ns

60ns

Connecting The 6116 RAM to a 68000 CPU Timing Diagram

CPE/EE 421/521 Microcomputers

Figure 4.20


Timing example55 l.jpg
Timing Example the lower byte or the upper byte of a word during a memory access

  • 68000 clock 8 MHz tCYC = 125 ns

    • 68000 CPU tCLAV = 70 ns

    • 68000 CPU tDICL = 15 ns

    • What is the minimum tacc?

    • 3 × tCYC > tCLAV + tacc + tDICL

    • 375 > 70 + tacc + 15

    • tacc < 290 ns (or tAA from the timing diagram, access time)

  • For the 12.5MHz version of 68000 tCYC = 80 ns

    • 68000 CPU tCLAV = 55 ns

    • 68000 CPU tDICL = 10 ns

    • 3×80 > 55 + tacc + 10

    • tacc < 175 ns

  • Remember, maximum tAA for the 6116 RAM was 200 ns

CPE/EE 421/521 Microcomputers


68000 write cycle l.jpg
68000 Write Cycle the lower byte or the upper byte of a word during a memory access

  • 68000 transmits a byte or a word to memory or a peripheral

  • Essential differences:

    • The CPU provides data at the beginning of a write cycle

    • One of the bus slaves (see later) reads the data

  • In a read cycle DS* and AS* were asserted concurrentlyThis will be not a case here!

  • Reason for that: 68000 asserts DS* only when the contents of data bus have stabilized

    • Therefore, memory can use UDS*/LDS* to latch data from the CPU

CPE/EE 421/521 Microcomputers


Simplified write cycle timing diagram l.jpg

In a write cycle the lower byte or the upper byte of a word during a memory access: UDS*/LDS* is asserted one cycle after AS*

Figure 4.22

Simplified write cycle timing diagram

CPE/EE 421/521 Microcomputers


Write cycle l.jpg
Write Cycle the lower byte or the upper byte of a word during a memory access

  • Follow this sequence of events in a write cycle:

    • Address stable

    • AS* asserted

    • R/W* brought low

    • Data valid

    • DS* asserted

CPE/EE 421/521 Microcomputers

Figure 4.23


Write cycle timing diagram of a 6116 ram l.jpg
Write Cycle Timing Diagram of a 6116 RAM the lower byte or the upper byte of a word during a memory access

Write recovery time

(min 10ns)

Address valid to end of write

(min 120ns)

Write pulse width

(min 90ns)

Address setup time

(min 20ns)

CPE/EE 421/521 Microcomputers

Figure 4.24


Write cycle timing diagram of a 6116 ram cont d l.jpg
Write Cycle Timing Diagram of a 6116 RAM, cont’d the lower byte or the upper byte of a word during a memory access

  • Write cycle ends with either CS* or WE* being negated (CS* and WE* internally combined)

  • An address must be valid for at least tAS nanoseconds before WE* is asserted

  • Must remain valid for at least tWR nanoseconds after WE* is negated

  • Data from the CPU must be valid for at least tDW nanoseconds before WE* is negated

  • Must remain valid for at least tDH nanoseconds after the end of the cycle

CPE/EE 421/521 Microcomputers


Designing a memory subsystem an example l.jpg
Designing a Memory Subsystem the lower byte or the upper byte of a word during a memory accessAn Example

  • Design a M68000 memory subsystem using

    • Two 32K × 8 RAM chips residing at address $00 8000

    • Two 8K × 8 RAM chips residing in the consecutive window

    • LS 138 (3 to 8 decoder) and basic logic gates

  • Solution

    • 32K is 4 × 8K => Let’s split the address space into 8K modules

    • In total, we have five (4+1) 8K windows

    • To address each line in 8K window => 13 bits (23*210 = 213 = 8K)

    • To address five modules we need 3 bits

    • Don’t forget that there is no A0, we will use LDS/UDS

CPE/EE 421/521 Microcomputers


Designing a memory subsystem an example62 l.jpg
Designing a Memory Subsystem the lower byte or the upper byte of a word during a memory accessAn Example

CPE/EE 421/521 Microcomputers


Designing a memory subsystem an example63 l.jpg
Designing a Memory Subsystem the lower byte or the upper byte of a word during a memory accessAn Example

CPE/EE 421/521 Microcomputers


Interrupt control interface details later l.jpg
Interrupt Control Interface the lower byte or the upper byte of a word during a memory access(details later)

low

priority

high

Figure 4.9

CPE/EE 421/521 Microcomputers


Bus arbitration control l.jpg

Address bus the lower byte or the upper byte of a word during a memory access

Data bus

Control bus

Arbitration bus

Slave module

Master module

Master module

CPU

CPU

Local memory

Local memory

Memory

I/O

I/O

Bus Arbitration Control

  • When 68000 controls the address and data buses, we call it the bus master

  • The 68000 may allow another 68000 or DMA controller to take control over buses

  • In the system with only one bus master, 68000 would have permanent control of the address and data buses

CPE/EE 421/521 Microcomputers


Bus arbitration control cont d l.jpg
Bus Arbitration Control, cont’d the lower byte or the upper byte of a word during a memory access

  • 68000 must respond to BR* request (it cannot be masked)

  • Assertion of BG* indicates that the bus will be given up at the end of present bus cycle

  • Requesting device waits until AS*, DTACK*, and BGACK* have been negated, and only then asserts its own BGACK* output

  • Old master negates its BG*, and BR* can be asserted by another potential master

CPE/EE 421/521 Microcomputers


Data bus contention in microcomputers l.jpg
Data Bus Contention in Microcomputers the lower byte or the upper byte of a word during a memory access

  • Situation where more than one device attempts to drive the bus simultaneously

  • Example: Two memory modules, M1 selected during read cycle 1, M2 selected during read cycle 2

  • Assumption:

    • M1 has data bus drivers with relatively long turn-off times

    • M2 has data bus drivers with relatively short turn-on times

Figure 4.27a

CPE/EE 421/521 Microcomputers


Data bus contention in microcomputers cont d l.jpg

Long turn-off time the lower byte or the upper byte of a word during a memory access

Short turn-on time

Data Bus Contention in Microcomputers, cont’d

CPE/EE 421/521 Microcomputers


Bus contention and data bus transceivers l.jpg
Bus Contention and Data Bus Transceivers the lower byte or the upper byte of a word during a memory access

  • Data bus transceiver – consists of a transmitter (driver) and a receiver

  • Driver – tristate output, can be driven high, low, or internally disconnected form the rest of the circuit

  • Two control inputs: Enable (active low) and DIR (direction)

  • Dynamic data bus contention

CPE/EE 421/521 Microcomputers


Outline70 l.jpg
Outline the lower byte or the upper byte of a word during a memory access

  • 68000 interface

  • Timing diagram

  • Minimal configuration using the 68000

  • Extensions

  • Exception Processing

CPE/EE 421/521 Microcomputers


Design constraints l.jpg
DESIGN CONSTRAINTS the lower byte or the upper byte of a word during a memory access

  • Used in stand-alone mode

  • Classroom teaching aid

  • 16 KB EPROM-based monitor

  • Speed is not important

  • At least 4 KB RAM

  • 1 serial and 1 parallel port

  • Memory expandable

  • No interrupts and multiple processors

CPE/EE 421/521 Microcomputers


Major components l.jpg
MAJOR COMPONENTS the lower byte or the upper byte of a word during a memory access

  • ROM – Two 8K × 8 components

  • RAM – Two 2K × 8 components

  • Parallel – 6821 Peripheral Interface Adapter (PIA)

  • Serial – 6850 Asynchronous Comm. Interface Adapter (ACIA)

CPE/EE 421/521 Microcomputers


Desigh choices l.jpg
DESIGH CHOICES the lower byte or the upper byte of a word during a memory access

  • Chose the location of ROM (16KB) and RAM (8 KB) within the address space (16 MB)

    • Unimportant, as long as the reset vectors are located at $00 0000

  • Chose the location of memory-mapped peripherals

  • Control of DTACK* (is delay applied or not?)

CPE/EE 421/521 Microcomputers


The 68000 s reset sequence l.jpg
The 68000’s Reset Sequence the lower byte or the upper byte of a word during a memory access

CPE/EE 421/521 Microcomputers


Remember l.jpg
REMEMBER the lower byte or the upper byte of a word during a memory access

  • When the RESET* pin is asserted for the appropriate duration:

    • SR = $2700

    • SSP is loaded with the longword @ $00 0000

    • PC is loaded with the longword @ $00 0004

CPE/EE 421/521 Microcomputers


Block diagram of a 68000 based microcomputer l.jpg
Block Diagram of a 68000-based microcomputer the lower byte or the upper byte of a word during a memory access

Figure 4.43

CPE/EE 421/521 Microcomputers


Memory and peripheral components l.jpg
Memory and Peripheral Components the lower byte or the upper byte of a word during a memory access

  • We assigned address lines to address pins, and data lines to data pins.

  • Before designing logic that will generate chip select signals, we have to decide about RAM/ROM location.

  • To assure that the reset vector location is at $00 0000, let’s situate 16 KB of ROM at $00 0000

CPE/EE 421/521 Microcomputers


Memory and peripheral components78 l.jpg
Memory and Peripheral Components the lower byte or the upper byte of a word during a memory access

Figure 4.44

CPE/EE 421/521 Microcomputers


Control section l.jpg
Control Section the lower byte or the upper byte of a word during a memory access

  • We will divide the memory space $00 0000 - $01 FFFF into eight blocks of 16 KB (IC1a,b, IC2a, IC3)

  • 16 KBytes of ROM are at $00 0000 to $00 3FFF

  • Where is the RAM situated? Peripherals?

  • Note: there is no delay applied to DTACK*.

  • What will happen if we access non-decoded memory?

CPE/EE 421/521 Microcomputers


Control section80 l.jpg
Control Section the lower byte or the upper byte of a word during a memory access

Figure 4.45

CPE/EE 421/521 Microcomputers


Different approaches to memory arrangement l.jpg

Largest memory window (16 KB) the lower byte or the upper byte of a word during a memory access[MEMORY GAPS]

A23 A17A16A15A14A13 A1

DECODER

SELECT DECODER

Different approaches to memory arrangement

CPE/EE 421/521 Microcomputers


Different approaches to memory arrangement cont d l.jpg

Smallest memory window (4 KB) the lower byte or the upper byte of a word during a memory access[NO MEMORY GAPS]

A23 A15A14A13A12A11 A1

DECODER

SELECT DECODER

Different approaches to memory arrangement, cont’d

CPE/EE 421/521 Microcomputers


Outline83 l.jpg
Outline the lower byte or the upper byte of a word during a memory access

  • 68000 interface

  • Timing diagram

  • Minimal configuration using the 68000

  • Extensions

  • Exception Processing

CPE/EE 421/521 Microcomputers


How can we make it better l.jpg

ROM is EPROM-based, and thus slower the lower byte or the upper byte of a word during a memory access

With EPROMs from the same generation, we’ll need wait states, maybe even with RAM components

Watchdog for non-decoded memory addresses

How can we make it better?

CPE/EE 421/521 Microcomputers


How can we make it better85 l.jpg
How can we make it better? the lower byte or the upper byte of a word during a memory access

Figure 4.46

CPE/EE 421/521 Microcomputers


How can we make it better cont d l.jpg
How can we make it better? Cont’d the lower byte or the upper byte of a word during a memory access

  • CONTROL OF INTERRUPTS

    • Use 74LS148 priority encoder to provide 7 levels of interrupt

  • EXTERNAL BUS INTERFACE

    • CPU can supply only the limited current to drive the bus

    • SOLUTION: Bus drivers (buffers)

CPE/EE 421/521 Microcomputers


Dtack generation l.jpg

DTACK* generator based on a shift register the lower byte or the upper byte of a word during a memory access

DTACK* Generation

Figure 4.72

CPE/EE 421/521 Microcomputers


Dtack generation88 l.jpg

Shift register and its timing diagram the lower byte or the upper byte of a word during a memory access

DTACK* Generation

CPE/EE 421/521 Microcomputers


Dtack generation89 l.jpg

Shift register and its timing diagram the lower byte or the upper byte of a word during a memory access

DTACK* Generation

CPE/EE 421/521 Microcomputers


Dtack generation90 l.jpg

DTACK* generator based on a counter the lower byte or the upper byte of a word during a memory access

DTACK* Generation

Figure 4.74

CPE/EE 421/521 Microcomputers


Outline91 l.jpg
Outline the lower byte or the upper byte of a word during a memory access

  • 68000 interface

  • Timing diagram

  • Minimal configuration using the 68000

  • Extensions

  • Exception Processing

CPE/EE 421/521 Microcomputers


Interrupt processing mechanism l.jpg

Interrupt is an the lower byte or the upper byte of a word during a memory accessasynchronous event

When an interrupt occur, the computer can:

Service it

Ignore it (for the time being)

Interrupt Processing Mechanism

CPE/EE 421/521 Microcomputers


Interrupt control interface l.jpg
Interrupt Control Interface the lower byte or the upper byte of a word during a memory access

low

priority

high

Figure 4.9

CPE/EE 421/521 Microcomputers


Interrupt processing mechanism cont d l.jpg
Interrupt processing mechanism, cont’d the lower byte or the upper byte of a word during a memory access

  • Sequence of actions when an interrupt is being serviced:

  • The computer completes its current machine-level instruction

  • The contents of PC is saved (on stack)

  • The state of the processor (status word) is saved on the stack

  • Jump to the location of the interrupt handling routine

CPE/EE 421/521 Microcomputers


Interrupt processing mechanism cont d95 l.jpg
Interrupt processing mechanism, cont’d the lower byte or the upper byte of a word during a memory access

  • The interrupt is transparent to the interrupted program

  • Interrupt request:

    • Can be deferred or denied

    • When it is deferred, it is said to be masked

    • Special one: nonmaskable interrupt request (NMI)

    • The 68000 NMI: IRQ7 (MSP430: RST*/NMI pin)

  • Prioritized interrupts

  • Vectored interrupts

    • Requesting peripheral identifies itself, CPU doesn’t have to poll the status of each device to discover the interrupter

CPE/EE 421/521 Microcomputers


The 68000 interrupt interface l.jpg
The 68000 Interrupt Interface the lower byte or the upper byte of a word during a memory access

CPE/EE 421/521 Microcomputers


The 68000 interrupt interface97 l.jpg
The 68000 Interrupt Interface the lower byte or the upper byte of a word during a memory access

CPE/EE 421/521 Microcomputers


The 68000 interrupt interface98 l.jpg

Reset, bus error, address error, and trace exceptions take precedence over an interrupt

A level 7 interrupt CAN interrupt level 7 interrupt

The 68000 Interrupt Interface

CPE/EE 421/521 Microcomputers


Processing the interrupt l.jpg
Processing the Interrupt precedence over an interrupt

CPE/EE 421/521 Microcomputers


Interrupt timing diagram l.jpg
Interrupt Timing Diagram precedence over an interrupt

CPE/EE 421/521 Microcomputers


Vectored interrupts l.jpg
Vectored Interrupts precedence over an interrupt

CPE/EE 421/521 Microcomputers


Exception vectors l.jpg
Exception Vectors precedence over an interrupt

  • A vector is associated with each type of exception

    • Vector is the 32-bit absolute address of the appropriate exception handling routine

  • 256 exception vectors, 32 bits (4 bytes) each, extending from address $00 0000 to $00 03FF

  • Vectors 0-63 : EXCEPTIONS

  • Vectors 64-255 : INTERRUPT HANDLING ROUTINES

  • Difference between the reset vector and all other exceptions:

    • It requires 2 longwords

    • Located in SP space (FC = 110); others are in SD space (FC = 101)

CPE/EE 421/521 Microcomputers


Privileged states and the 68000 l.jpg
Privileged States and the 68000 precedence over an interrupt

User programs operate only

CPE/EE 421/521 Microcomputers


Privileged states and the 68000 cont d l.jpg
Privileged States and the 68000, cont’d precedence over an interrupt

An exception always forces the 68000 into the supervisor state

CPE/EE 421/521 Microcomputers


The 68000 exceptions l.jpg
The 68000 Exceptions precedence over an interrupt

CPE/EE 421/521 Microcomputers


Interrupts and real time processing l.jpg
Interrupts and Real-time Processing precedence over an interrupt

  • Multitasking (multiprogramming)

    • concurrent execution

    • multiple tasks (processes)

    • resource sharing (multiple users using the same printer)

  • Multiprocessing

    • parallel execution

    • multiple PROCESSORS!

CPE/EE 421/521 Microcomputers


Multitasking l.jpg
Multitasking precedence over an interrupt

  • Operating system (to schedule activities)

  • Interrupt mechanism (to switch between tasks)

CPE/EE 421/521 Microcomputers


Real time operating system l.jpg
Real-Time Operating System precedence over an interrupt

  • Real time - meaningful time

    • fast enough to influence the system at that moment

      • space shuttle / chemical plant

  • Real-time system

    • Optimizes the response time to events

    • Tries to use resources efficiently

  • Multitasking system

    • Optimizes resource utilization

    • Tries to provide a reasonable response time

CPE/EE 421/521 Microcomputers


Real time kernel l.jpg

READY precedence over an interrupt

BLOCKED

RUNNING

Real-Time Kernel

  • Scheduler is the kernel, nucleus, of a real-time OS

  • Functions

    • a first-level interrupt handler

    • scheduler - the sequence in which tasks are executed

    • interprocess communication

  • Task States

    • Ready

    • Running

    • Blocked (dormant)

CPE/EE 421/521 Microcomputers


Tasks l.jpg

Volatile portion (PC, status, registers) precedence over an interrupt

Task control block (TCB)

Task ID

Task block pointer

PC

SP

status register

other registers

Task status

run / ready / blckd

Task priority

Task time allocation

how many slots

Tasks

Figure 6.25

CPE/EE 421/521 Microcomputers


Exception handling and tasks l.jpg

Vectored precedence over an interrupt interrupt

Real-time clockinterrupt

Exception

RTE

Turn on readyto run flag of appropriate task

Turn on readyto run flag of appropriate task

Call RT taskscheduler and switch tasks

Exception Handling and Tasks

  • Preemptive real-time OS:

    • RTC generates periodic interrupts

    • used by the kernel to locate and run the next task

  • How to deal with other interrupts?

    • Service them independently, subject to priority

    • Integrate them into the real-time task structure

CPE/EE 421/521 Microcomputers


ad