Motorola reserves the right to make changes without further notice to any products herein to improve reliability, function or design. Motorola does not assume any
liability arising out of the application or use of any product or circuit described herein; neither does it convey any license under its patent rights nor the rights of
others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other
applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal
injury or death may occur. Should Buyer purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold
Motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney
fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that
Motorola was negligent regarding the design or manufacture of the part. Motorola and the are registered trademarks of Motorola, Inc. Motorola, Inc. is an
Equal Opportunity/Affirmative Action Employer.
MC68020 32-bit, second-generation, enhanced microprocessor and the MC68EC020 32bit, second-generation, enhanced embedded microprocessor.
Throughout this manual, “MC68020/EC020” is used when information applies to both the
MC68020 and the MC68EC020. “MC68020” and “MC68EC020” are used when
information applies only to the MC68020 or MC68EC020, respectively.
For detailed information on the MC68020 and MC68EC020 instruction set, refer to
M68000PM/AD,
This manual consists of the following sections:
Section 1Introduction
Section 2Processing States
Section 3Signal Description
Section 4On-Chip Cache Memory
Section 5Bus Operation
Section 6Exception Processing
Section 7Coprocessor Interface Description
Section 8Instruction Execution Timing
Section 9Applications Information
Section 10Electrical Characteristics
Section 11Ordering Information and Mechanical Data
Appendix A Interfacing an MC68EC020 to a DMA Device That Supports a Three- Wire
M68000 Family Programmer’s Reference Manual
Bus Arbitration Protocol
describes the capabilities, operation, and programming of the
.
NOTE
In this manual,
signal to a particular state. In particular,
refer to a signal that is active or true;
indicate a signal that is inactive or false. These terms are used
independently of the voltage level (high or low) that they
represent.
9-1Data Bus Activity for Byte, Word, and Long-Word Ports.................................. 9-6
9-2V
9-3V
9-4Memory Access Time Equations at 16.67 and 25 MHz ................................... 9-13
9-5Calculated t
9-6Access Status Register Codes......................................................................... 9-18
and GND Pin Assignments—MC68EC020 PPGA (RP Suffix) ................. 9-10
CC
and GND Pin Assignments—MC68EC020 PQFP (FG Sufffix)................. 9-10
CC
Values for Operation at Frequencies
AVDV
Less Than or Equal to the CPU Maximum Frequency Rating........................ 9-14
10-1θ
vs. Airflow—MC68020 CQFP Package ................................................... 10-3
JA
10-2Power vs. Rated Frequency (at T
10-3Temperature Rise of Board vs. P
10-4θ
vs. Airflow—MC68EC020 PQFP Package .............................................. 10-4
JA
Maximum = 110°C) ................................. 10-3
J
—MC68020 CQFP Package ................... 10-3
D
MOTOROLAM68020 USER’S MANUALxix
MC68020/EC020 ACRONYM LIST
BCD — Binary-Coded Decimal
CAAR — Cache Address Register
CACR — Cache Control Register
CCR — Condition Code Register
CIR — Coprocessor Interface Register
CMO S — Complementary Metal Oxide Semiconductor
CPU — Central Processing Unit
CQFP — Ceramic Quad Flat Pack
DDMA — Dual-Channel Direct Memory Access
DFC — Destination Function Code Register
DMA — Direct Memory Access
DRAM — Dynamic Random Access Memory
FPCP — Floating-Point Coprocessor
HCMOS — High-Density Complementary Metal Oxide Semiconductor
IEEE — Institute of Electrical and Electronic Engineers
ISP — Interrupt Stack Pointer
LMB — Lower Middle Byte
LRAR — Limited Rate Auto Request
LS B — Least Significant Byte
MMU — Memory Management Unit
MPU — Microprocessor Unit
MS B — Most Significant Byte
MS P — Master Stack Pointer
NMO S — n-Type Metal Oxide Semiconductor
PAL — Programmable Array Logic
PC — Program Counter
PGA — Pin Grid Array
PMMU — Paged Memory Management Unit
PPGA — Plastic Pin Grid Array
PQFP — Plastic Quad Flat Pack
RAM — Random Access Memory
SF C — Source Function Code Register
S P — Stack Pointer
SR — Status Register
S S P — Supervisor Stack Pointer
S SW — Special Status Word
UMB — Upper Middle Byte
US P — User Stack Pointer
VBR — Vector Base Register
VLS I — Very Large Scale Integration
MOTOROLAM68020 USER’S MANUALv
SECTION 1
INTRODUCTION
The MC68020 is the first full 32-bit implementation of the M68000 family of
microprocessors from Motorola. Using VLSI technology, the MC68020 is implemented
with 32-bit registers and data paths, 32-bit addresses, a rich instruction set, and versatile
addressing modes.
The MC68020 is object-code compatible with earlier members of the M68000 family and
has the added features of new addressing modes in support of high-level languages, an
on-chip instruction cache, and a flexible coprocessor interface with full IEEE floating-point
support (the MC68881 and MC68882). The internal operations of this microprocessor
operate in parallel, allowing multiple instructions to be executed concurrently.
The asynchronous bus structure of the MC68020 uses a nonmultiplexed bus with 32 bits
of address and 32 bits of data. The processor supports a dynamic bus sizing mechanism
that allows the processor to transfer operands to or from external devices while
automatically determining device port size on a cycle-by-cycle basis. The dynamic bus
interface allows access to devices of differing data bus widths, in addition to eliminating all
data alignment restrictions.
The MC68EC020 is an economical high-performance embedded microprocessor based
on the MC68020 and has been designed specifically to suit the needs of the embedded
microprocessor market. The major differences in the MC68EC020 and the MC68020 are
that the MC68EC020 has a 24-bit address bus and does not implement the following
signals:
frequencies differ for the MC68020 and MC68EC020 (see Section 11 OrderingInformation and Mechanical Data .) Unless otherwise stated, information in this manual
applies to both the MC68020 and the MC68EC020.
ECS, OCS, DBEN, IPEND, and BGACK. Also, the available packages and
MOTOROLAM68020 USER’S MANUAL1-1
1.1 FEATURES
The main features of the MC68020/EC020 are as follows:
• Object-Code Compatible with Earlier M68000 Microprocessors
• Addressing Mode Extensions for Enhanced Support of High-Level Languages
• New Bit Field Data Type Accelerates Bit-Oriented Applications—e.g., Video Graphics
• An On-Chip Instruction Cache for Faster Instruction Execution
• Coprocessor Interface to Companion 32-Bit Peripherals—the MC68881 and
MC68882 Floating-Point Coprocessors and the MC68851 Paged Memory
Management Unit
• Pipelined Architecture with High Degree of Internal Parallelism Allowing Multiple
Instructions To Be Executed Concurrently
• High-Performance Asynchronous Bus Is Nonmultiplexed and Full 32 Bits
• Dynamic Bus Sizing Efficiently Supports 8-/16-/32-Bit Memories and Peripherals
• Full Support of Virtual Memory and Virtual Machine
• Sixteen 32-Bit General-Purpose Data and Address Registers
• Two 32-Bit Supervisor Stack Pointers and Five Special-Purpose Control Registers
• Eighteen Addressing Modes and Seven Data Types
• 4-Gbyte Direct Addressing Range for the MC68020
• 16-Mbyte Direct Addressing Range for the MC68EC020
• Selection of Processor Speeds for the MC68020: 16.67, 20, 25, and 33.33 MHz
• Selection of Processor Speeds for the MCEC68020: 16.67 and 25 MHz
A block diagram of the MC68020/EC020 is shown in Figure 1-1.
1-2M68020 USER’S MANUALMOTOROLA
SEQUENCER AND CONTROL
CONTROL
STORE
CONTROL
INSTRUCTION
STAGE
STAGE
STAGE
CACHE
R
R
INTERNAL
D
BUSINSTRUCTION PIPE
INSTRUCTION
S
S
ADDRESS
PROGRAM
R
DATA
S
N
EXECUTION UNIT
MISALIGNMENT
SIZE
M
R
WRITE PENDING
PREFETCH PENDING
MICROBUS
BUS CONTROLLER
BUS CONTROL
ADDRESS
S
ADDRESS
DATA
DATA
3
T
ADDRESS
3
T
*
*
LOGIC
D
C
B
HOLDING
EGISTE
(CAHR)
ATA
2-BI
BUS
PADS
BUFFER
CONTROL LOGIC
ADDRES
BU
BU
BUFFER
COUNTE
SECTION
SECTION
CACHE
ECTIO
MULTIPLEXER
2-BI
BUS
PADS
ULTIPLEXE
MOTOROLAM68020 USER’S MANUAL1-3
SIGNALS
24-Bit for MC68EC020
Figure 1-1. MC68020/EC020 Block Diagram
1.2 PROGRAMMING MODEL
The programming model of the MC68020/EC020 consists of two groups of registers, the
user model and the supervisor model, that correspond to the user and supervisor privilege
levels, respectively. User programs executing at the user privilege level use the registers
of the user model. System software executing at the supervisor level uses the control
registers of the supervisor level to perform supervisor functions.
As shown in the programming models (see Figures 1-2 and 1-3), the MC68020/EC020
has 16 32-bit general-purpose registers, a 32-bit PC two 32-bit SSPs, a 16-bit SR, a 32-bit
VBR, two 3-bit alternate function code registers, and two 32-bit cache handling (address
and control) registers.
The user programming model remains unchanged from earlier M68000 family
microprocessors. The supervisor programming model supplements the user programming
model and is used exclusively by MC68020/EC020 system programmers who utilize the
supervisor privilege level to implement sensitive operating system functions. The
supervisor programming model contains all the controls to access and enable the special
features of the MC68020/EC020. All application software, written to run at the
nonprivileged user level, migrates to the MC68020/EC020 from any M68000 platform
without modification.
Registers D7–D0 are data registers used for bit and bit field (1 to 32 bits), byte (8 bit),
word (16 bit), long-word (32 bit), and quad-word (64 bit) operations. Registers A6–A0 and
the USP, ISP, and MSP are address registers that may be used as software stack
pointers or base address registers. Register A7 (shown as A7 in Figure 1-2 and as A7 ′
and A7 ″ in Figure 1-3) is a register designation that applies to the USP in the user
privilege level and to either the ISP or MSP in the supervisor privilege level. In the
supervisor privilege level, the active stack pointer (interrupt or master) is called the SSP.
In addition, the address registers may be used for word and long-word operations. All of
the 16 general-purpose registers (D7–D0, A7–A0) may be used as index registers.
The PC contains the address of the next instruction to be executed by the
MC68020/EC020. During instruction execution and exception processing, the processor
automatically increments the contents of the PC or places a new value in the PC, as
appropriate.
1-4M68020 USER’S MANUALMOTOROLA
0
78151631D0D1D2D3D4D5D6D7
D
R
S
151631A0A1A2A3A4A5
A6
A
R
S
151631
A
)
PC
CCR
C
E
R
7
8031
15
P
C
U
P
ATA
EGISTER
0
DDRESS
EGISTER
0
7 (USP
0
0
SER STACK
OINTER
ROGRAM
OUNTER
ONDITION COD
EGISTER
Figure 1-2. User Programming Model
MOTOROLAM68020 USER’S MANUAL1-5
0
78151631SRVBR031
CACR
CAAR031
C
R
C
L
R
151615
31
(
)0233131SFC
A
)
A
)
I
P
M
P
S
R
V
R
DFC
A
F
R
7' (ISP
0
7'' (MSP
0
CCR
0
Figure 1-3. Supervisor Programming Model Supplement
NTERRUPT STACK
OINTER
ASTER STACK
OINTER
TATUS
EGISTER
ECTOR BASE
EGISTER
LTERNATE
UNCTION CODE
EGISTERS
ACHE CONTRO
EGISTER
ACHE ADDRESS
EGISTER
1-6M68020 USER’S MANUALMOTOROLA
The SR (see Figure 1-4) stores the processor status. It contains the condition codes that
I0
(
)
E
E
L
E
C
Y
O
ZERO
N
E
E
D
reflect the results of a previous operation and can be used for conditional instruction
execution in a program. The condition codes are extend (X), negative (N), zero (Z),
overflow (V), and carry (C). The user byte, which contains the condition codes, is the only
portion of the SR information available in the user privilege level, and it is referenced as
the CCR in user programs. In the supervisor privilege level, software can access the entire
SR, including the interrupt priority mask (three bits) and control bits that indicate whether
the processor is in:
1. One of two trace modes (T1, T0)
2. Supervisor or user privilege level (S)
3. Master or interrupt mode (M)
USER BYTE
TRACE
NABL
14
T0T1
SYSTEM BYTE
12
13
M
S
10
11
I2
0
INTERRUPT
PRIORITY MASK
8
9
I1
CONDITION CODE REGISTER
4
5
6
7
X
0
0
0
015
1
2
3
C
V
Z
N
ARR
VERFLOW
SUPERVISOR/USER LEVE
MASTER/INTERRUPT MOD
EGATIV
XTEN
Figure 1-4. Status Register (SR)
The VBR contains the base address of the exception vector table in memory. The
displacement of an exception vector is added to the value in this register to access the
vector table.
The alternate function code registers, SFC and DFC, contain 3-bit function codes. For the
MC68020, function codes can be considered extensions of the 32-bit linear address that
optionally provide as many as eight 4-Gbyte address spaces; for the MC68EC020,
function codes can be considered extensions of the 24-bit linear address that optionally
provide as many as eight 16-Mbyte address spaces. Function codes are automatically
generated by the processor to select address spaces for data and program at the user
and supervisor privilege levels and to select a CPU address space for processor functions
(e.g., coprocessor communications). Registers SFC and DFC are used by certain
instructions to explicitly specify the function codes for operations.
The CACR controls the on-chip instruction cache of the MC68020/EC020. The CAAR
stores an address for cache control functions.
MOTOROLAM68020 USER’S MANUAL1-7
1.3 DATA TYPES AND ADDRESSING MODES OVERVIEW
For detailed information on the data types and addressing modes supported by the
MC68020/EC020, refer to M68000PM/AD,
Manual
The MC68020/EC020 supports seven basic data types:
In addition, the MC68020/EC020 instruction set supports operations on other data types
such as memory addresses. The coprocessor mechanism allows direct support of floatingpoint operations with the MC68881 and MC68882 floating-point coprocessors as well as
specialized user-defined data types and functions.
.
1. Bits
2. Bit Fields (Fields of consecutive bits, 1–32 bits long)
The 18 addressing modes listed in Table 1-1 include nine basic types:
1. Register Direct
2. Register Indirect
3. Register Indirect with Index
4. Memory Indirect
5. PC Indirect with Displacement
6. PC Indirect with Index
7. PC Memory Indirect
8. Absolute
9. Immediate
The register indirect addressing modes have postincrement, predecrement, displacement,
and index capabilities. The PC modes have index and offset capabilities. Both modes are
extended to provide indirect reference through memory. In addition to these addressing
modes, many instructions implicitly specify the use of the CCR, stack pointer, and/or PC.
1-8M68020 USER’S MANUALMOTOROLA
Table 1-1. Addressing Modes
Addressing ModesSyntax
Register Direct
Data
Address
Register Indirect
Address
Address with Postincrement
Address with Predecrement
Address with Displacement
Address Register Indirect with Index
8-Bit Displacement
Base Displacement
Memory Indirect
Postindexed
Preindexed
PC Indirect with Displacement(d16, PC)
PC Indirect with Index
8-Bit Displacement
Base Displacement
PC Indirect
Postindexed
Preindexed
Absolute Data Addressing
Short
Long
Immediate#<data>
NOTE:
Dn = Data Register, D7–D0
An = Address Register, A7–A0
d
, d16= A twos complement or sign-extended displacement added as part
8
Xn = Address or data register used as an index register; form is
bd = A twos-complement base displacement; when present, size can be
od = Outer displacement added as part of effective address calculation
PC = Program Counter
<data> = Immediate value of 8, 16, or 32 bits
( ) = Effective Address
[ ] = Use as indirect access to long-word address.
of the effective address calculation; size is 8 (d
when omitted, assemblers use a value of zero.
Xn.SIZE
size) and SCALE is 1, 2, 4, or 8 (index register is multiplied by
SCALE); use of SIZE and/or SCALE is optional.
16 or 32 bits.
after any memory indirection; use is optional with a size of 16 or 32
bits.
SCALE, where SIZE is .W or .L (indicates index register
*
) or 16 (d16) bits;
8
Dn
An
(An)
(An)+
–(An)
(d
, An)
16
(d
, An, Xn)
8
(bd, An, Xn)
([bd, An], Xn, od)
([bd, An, Xn], od)
(d
, PC, Xn)
8
(bd, PC, Xn)
([bd, PC], Xn, od)
([bd, PC, Xn], od)
(xxx).W
(xxx).L
MOTOROLAM68020 USER’S MANUAL1-9
1.4 INSTRUCTION SET OVERVIEW
For detailed information on the MC68020/EC020 instruction set, refer to M68000PM/AD,
M68000 Family Programmer’s Reference Manual
The instructions in the MC68020/EC020 instruction set are listed in Table 1-2. The
instruction set has been tailored to support structured high-level languages and
sophisticated operating systems. Many instructions operate on bytes, words, or long
words, and most instructions can use any of the 18 addressing modes.
.
1.5 VIRTUAL MEMORY AND VIRTUAL MACHINE CONCEPTS
The full addressing range of the MC68020 is 4 Gbytes (4,294,967,296 bytes) in each of
eight address spaces; the full addressing range of the MC68EC020 is 16 Mbytes
(16,777,216 bytes) in each of the eight address spaces. Even though most systems
implement a smaller physical memory, the system can be made to appear to have a full 4
Gbytes (MC68020) or 16 Mbytes (MC68EC020) of memory available to each user
program by using virtual memory techniques.
In a virtual memory system, a user program can be written as if it has a large amount of
memory available, although the physical memory actually present is much smaller.
Similarly, a system can be designed to allow user programs to access devices that are not
physically present in the system, such as tape drives, disk drives, printers, terminals, and
so forth. With proper software emulation, a physical system can appear to be any other
M68000 computer system to a user program, and the program can be given full access to
all of the resources of that emulated system. Such an emulated system is called a virtual
machine.
1.5.1 Virtual Memory
A system that supports virtual memory has a limited amount of high-speed physical
memory that can be accessed directly by the processor and maintains an image of a
much larger virtual memory on a secondary storage device such as a large-capacity disk
drive. When the processor attempts to access a location in the virtual memory map that is
not resident in physical memory, a page fault occurs. The access to that location is
temporarily suspended while the necessary data is fetched from secondary storage and
placed in physical memory. The suspended access is then either restarted or continued.
The MC68020/EC020 uses instruction continuation to support virtual memory. When a
bus cycle is terminated with a bus error, the microprocessor suspends the current
instruction and executes the virtual memory bus error handler. When the bus error handler
has completed execution, it returns control to the program that was executing when the
error was detected, reruns the faulted bus cycle (when required), and continues the
suspended instruction.
1-10M68020 USER’S MANUALMOTOROLA
Table 1-2. Instruction Set
MnemonicDescriptionMnemonicDescription
ABCDAdd Decimal with ExtendMOVE USPMove User Stack Pointer
ADDAddMOVECMove Control Register
ADDAAdd AddressMOVEMMove Multiple Registers
ADDIAdd ImmediateMOVEPMove Peripheral
ADDQAdd QuickMOVEQMove Quick
ADDXAdd with ExtendMOVESMove Alternate Address Space
ANDLogical ANDMULSSigned Multiply
ANDILogical AND ImmediateMULUUnsigned Multiply
ASL, ASRArithmetic Shift Left and RightNBCDNegate Decimal with Extend
BccBranch ConditionallyNEGNegate
BCHGTest Bit and ChangeNEGXNegate with Extend
BCLRTest Bit and ClearNOPNo Operation
BFCHGTest Bit Field and ChangeNO TLogical Complement
BFCLRTest Bit Field and ClearORLogical Inclusive OR
BFEXTSSigned Bit Field ExtractORILogical Inclusive OR Immediate
BFEXTUUnsigned Bit Field ExtractORI CCRLogical Inclusive Or Immediate to Condition Codes
BFFFOBit Field Find First OneORI SRLogical Inclusive OR Immediate to Status Register
BFINSBit Field InsertPACKPack BCD
BFSETTest Bit Field and SetPEAPush Effective Address
BFTSTTest Bit FieldRESETReset External Devices
BKPTBreakpointROL, RORRotate Left and Right
BRABranch AlwaysROXL,ROXRRotate with Extend Left and Right
BSETTest Bit and SetRTDReturn and Deallocate
BSRBranch to SubroutineRTEReturn from Exception
BTSTTest BitRTMReturn from Module
CALLMCall ModuleRTRReturn and Restore Codes
CASCompare and Swap OperandsRTSReturn from Subroutine
CAS2Compare and Swap Dual OperandsSBCDSubtract Decimal with Extend
CHKCheck Register Against BoundSccSet Conditionally
CHK2Check Register Against Upper and Lower BoundSTOPStop
CLRClearSUBSubtract
CMPCompareSUBASubtract Address
CMPACompare AddressSUBISubtract Immediate
CMPICompare ImmediateSUBQSubtract Quick
CMPMCompare Memory to MemorySUBXSubtract with Extend
CMP2Compare Register Against Upper and Lower BoundsSWAPSwap Register Words
DBccTest Condition, Decrement and BranchTASTest and Set an Operand
DIVS, DIVSLSigned DivideTRAPTrap
DIVU, DIVULUnsigned DivideTRAPccTrap Conditionally
EORLogical Exclusive ORTRAPVTrap on Overflow
EORILogical Exclusive Or ImmediateTSTTest Operand
LINKLink and AllocatecpDBccTest Coprocessor Condition, Decrement and Branch
LSL, LSRLogical Shift Left and RightcpGENCoprocessor General Instruction
MOVEMovecpRESTORERestore Internal State of Coprocessor
MOVEAMove AddresscpSAVESave Internal State of Coprocessor
MOVE CCRMove Condition Code RegistercpSccSet Conditionally
MOVE SRMove Status RegistercpTRAPccTrap Conditionally
MOTOROLAM68020 USER’S MANUAL1-11
1.5.2 Virtual Machine
A typical use for a virtual machine system is the development of software, such as an
operating system, for a new machine also under development and not yet available for
programming use. In a virtual machine system, a governing operating system emulates
the hardware of the new machine and allows the new software to be executed and
debugged as though it were running on the new hardware. Since the new software is
controlled by the governing operating system, it is executed at a lower privilege level than
the governing operating system. Thus, any attempts by the new software to use virtual
resources that are not physically present (and should be emulated) are trapped to the
governing operating system and performed by its software.
In the MC68020/EC020 implementation of a virtual machine, the virtual application runs at
the user privilege level. The governing operating system executes at the supervisor
privilege level and any attempt by the new operating system to access supervisor
resources or execute privileged instructions causes a trap to the governing operating
system.
Instruction continuation is used to support virtual I/O devices in memory-mapped
input/output systems. Control and data registers for the virtual device are simulated in the
memory map. An access to a virtual register causes a fault, and the function of the
register is emulated by software.
1.6 PIPELINED ARCHITECTURE
The MC68020/EC020 contains a three-word instruction pipe where instruction opcodes
are decoded. As shown in Figure 1-5, instruction words (instruction operation words and
all extension words) enter the pipe at stage B and proceed to stages C and D. An
instruction word is completely decoded when it reaches stage D of the pipe. Each stage
has a status bit that reflects whether the word in the stage was loaded with data from a
bus cycle that was terminated abnormally. Stages of the pipe are only filled in response to
specific prefetch requests issued by the sequencer.
Words are loaded into the instruction pipe from the cache holding register. Although the
individual stages of the pipe are only 16 bits wide, the cache holding register is 32 bits
wide and contains the entire long word. This long word is obtained from the instruction
cache or the external bus in response to a prefetch request from the sequencer. When the
sequencer requests an even-word (long-word-aligned) prefetch, the entire long word is
accessed from the instruction cache or the external bus and loaded into the cache holding
register, and the high-order word is also loaded into stage B of the pipe. The instruction
word for the next sequential prefetch can then be accessed directly from the cache
holding register, and no external bus cycle or instruction cache access is required. The
cache holding register provides instruction words to the pipe regardless of whether the
instruction cache is enabled or disabled.
1-12M68020 USER’S MANUALMOTOROLA
INSTRUCTION PIPE
CACHE
HOLDING
REGISTER
INSTRUCTION
FLOW FROM
CACHE AND
MEMORY
SEQUENCER
CONTROL
UNIT
EXECUTION
UNIT
STAGE
D
STAGE
C
STAGE
B
Figure 1-5. Instruction Pipe
The sequencer is either executing microinstructions or awaiting completion of accesses
that are necessary to continue executing microcode. The bus controller is responsible for
all bus activity. The sequencer controls the bus controller, instruction execution, and
internal processor operations such as the calculation of effective addresses and the
setting of condition codes. The sequencer initiates instruction word prefetches and
controls the validation of instruction words in the instruction pipe.
Prefetch requests are simultaneously submitted to the cache holding register, the
instruction cache, and the bus controller. Thus, even if the instruction cache is disabled,
an instruction prefetch may hit in the cache holding register and cause an external bus
cycle to be aborted.
1.7 CACHE MEMORY
Due to locality of reference, instructions that are used in a program have a high probability
of being reused within a short time. Additionally, instructions that reside in proximity to the
instructions currently in use also have a high probability of being utilized within a short
period. To exploit these locality characteristics, the MC68020/EC020 contains an on-chip
instruction cache.
The cache improves the overall performance of the system by reducing the number of bus
cycles required by the processor to fetch information from memory and by increasing the
bus bandwidth available for other bus masters in the system.
MOTOROLAM68020 USER’S MANUAL1-13
SECTION 2
PROCESSING STATES
This section describes the processing states of the MC68020/EC020. It describes the
functions of the bits in the supervisor portion of the SR and the actions taken by the
processor in response to exception conditions.
Unless the processor has halted, it is always in either the normal or the exception
processing state. Whenever the processor is executing instructions or fetching instructions
or operands, it is in the normal processing state. The processor is also in the normal
processing state while it is storing instruction results or communicating with a
coprocessor.
NOTE
Exception processing refers specifically to the transition from
normal processing of a program to normal processing of
system routines, interrupt routines, and other exception
handlers. Exception processing includes all stacking
operations, the fetch of the exception vector, and the filling of
the instruction pipe caused by an exception. Exception
processing has completed when execution of the first
instruction of the exception handler routine begins.
The processor enters the exception processing state when an interrupt is acknowledged,
when an instruction is traced or results in a trap, or when some other exception condition
arises. Execution of certain instructions or unusual conditions occurring during the
execution of any instruction can cause exceptions. External conditions, such as interrupts,
bus errors, and some coprocessor responses, also cause exceptions. Exception
processing provides an efficient transfer of control to handlers and routines that process
the exceptions.
A catastrophic system failure occurs whenever the processor receives a bus error or
generates an address error while in the exception processing state. This type of failure
halts the processor. For example, if during the exception processing of one bus error
another bus error occurs, the MC68020/EC020 has not completed the transition to normal
processing and has not completed saving the internal state of the machine; therefore, the
processor assumes that the system is not operational and halts. Only an external reset
can restart a halted processor. (When the processor executes a STOP instruction, it is in a
special type of normal processing state—one without bus cycles. It is stopped, not halted.)
MOTOROLAM68020 USER’S MANUAL2-1
Loading...
+ 276 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.