M68000 Family Addressing Compatibility; Other Data Structures; System Stack; Format - Motorola MC68030 User Manual

Enhanced 32-bit microprocessor
Hide thumbs Also See for MC68030:
Table of Contents

Advertisement

Data Organization and Addressing Capabilities

2.7 M68000 FAMILY ADDRESSING COMPATIBILITY

Programs can be easily transported from one member of the M68000 Family to another in
an upward compatible fashion. The user object code of each early member of the family is
upward compatible with newer members and can be executed on the newer microprocessor
without change. The address extension word(s) are encoded with the information that allows
the MC68020/MC68030 to distinguish the new address extension words for the early
MC68000/MC68008/MC68010 microprocessors and for the newer 32-bit MC68020/
MC68030 microprocessors are shown in Figure 2–15. Notice the encoding for SCALE used
by the MC68020/MC68030 is a compatible extension of the M68000 architecture. A value
of zero for SCALE is the same encoding for both extension words; hence, software that uses
this encoding is both upward and downward compatible across all processors in the product
line. However, the other values of SCALE are not found in both extension formats; thus,
while software can be easily migrated in an upward compatible direction, only nonscaled
addressing is supported in a downward fashion. If the MC68000 were to execute an
instruction that encoded a scaling factor, the scaling factor would be ignored and not access
the desired memory address. The earlier microprocessors have no knowledge of the
extension word formats implemented by newer processors; while they do detect illegal
instructions, they do not decode invalid encodings of the extension words as exceptions.

2.8 OTHER DATA STRUCTURES

Stacks and queues are widely used data structures. The MC68030 implements a system
stack and also provides instructions that support the use of user stacks and queues.

2.8.1 System Stack

Address register seven (A7) is used as the system stack pointer (SP). Any of the three
system stack registers is active at any one time. The M and S bits of the status register
determine which stack pointer is used. When S = 0 indicating user mode (user privilege
level), the user stack pointer (USP) is the active system stack pointer, and the master and
interrupt stack pointers cannot be referenced. When S = 1 indicating supervisor mode (at
supervisor privilege level) and M = 1, the master stack pointer (MSP) is the active system
stack pointer. When S = 1 and M = 0, the interrupt stack pointer (ISP) is the active system
stack pointer. This mode is the MC68030 default mode after reset and corresponds to the
MC68000, MC68008, and MC68010 supervisor mode. The term supervisor stack pointer
(SSP) refers to the master or interrupt stack pointers, depending on the state of the M bit.
When M = 1, the term SSP (or A7) refers to the MSP address register. When M = 0, the term
is implicitly referenced by all instructions that use the system stack. Each system stack fills
from high to low memory.
2-36
MC68030 USER'S MANUAL
MOTOROLA

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents