The MC68EC030 is a 32-bit embedded controller that streamlines the functionality of an MC68030 for
the requirements of embedded control applications. The MC68EC030 is optimized to maintain
performance while using cost-effective memory subsystems. The rich instruction set and addressing
mode capabilities of the MC68020, MC68030, and MC68040 have been maintained, allowing a clear
migration path for M68000 systems. The main features of the MC68EC030 are as follows:
nc...
I
• Object-Code Compatible with the MC68020, MC68030, and Earlier M68000 Microprocessors
• Burst-Mode Bus Interface for Efficient DRAM Access
• On-Chip Data Cache (256 Bytes) and On-Chip Instruction Cache (256 Byte)
• Dynamic Bus Sizing for Direct Interface to 8-, 16-, and 32-Bit Devices
• 25- and 40-MHz Operating Frequency (up to 9.2 MIPS)
• Advanced Plastic Pin Grid Array Packaging for Through-Hole Applications
Order this document
by MC68EC030/D
cale Semiconductor,
Frees
Additional features of the MC68EC030 include:
• Complete 32-Bit Nonmultiplexed Address and Data Buses
• Sixteen 32-Bit General-Purpose Data and Address Registers
• Two 32-Bit Supervisor Stack Pointers and Eight Special-Purpose Control Registers
• Two Access Control Registers Allow Blocks To Be Defined for Cacheability Protection
• Pipelined Architecture with Increased Parallelism Allows:
– Internal Caches Accesses in Parallel with Bus Transfers
– Overlapped Instruction Execution
• Enhanced Bus Controller Supports Asynchronous Bus Cycles (three clocks minimum),
Synchronous Bus Cycle (two clocks minimum), and Burst Data Transfers (one clock)
• Complete Support for Coprocessors with the M68000 Coprocessor Interface
• Internal Status Indication for Hardware Emulation Support
• 4-Gbyte Direct Addressing Range
• Implemented in Motorola's HCMOS Technology That Allows CMOS and HMOS (High-Density
NMOS) Gates To Be Combined for Maximum Speed, Low Power, and Small Die Size
This document contains information on a product under development. Motorola reserves the right to change or discontinue this product without notice.
The MC68EC030 is an integrated controller that incorporates the capabilities of the MC68030 integer
unit, a data cache, an instruction cache, an access control unit (ACU), and an improved bus controller on
one VLSI device. It maintains the 32-bit registers available with the entire M68000 Family as well as t he
32-bit address and data paths, rich instruction set, versatile addressing modes, and flexible coprocessor
interface provided with the MC68020 and MC68030. In addition, the internal operations of this integrated
controller are designed to operate in parallel, allowing instruction execution to proceed in parallel with
accesses to the internal caches and the bus controller.
The MC68EC030 fully supports the nonmultiplexed asynchronous bus of the MC68020 and MC68030
as well as the dynamic bus sizing mechanism that allows the controller to transfer operands to or from
external devices while automatically determining device port size on a cycle-by-cycle basis. In addition to
the asynchronous bus, the MC68EC030 also supports the fast synchronous bus of the MC68030 for off-
nc...
I
chip caches and fast memories. Like the MC68030, the MC68EC030 bus is capable of fetching up to four
long words of data in a burst mode compatible with DRAM chips that have burst capability. Burst mode can
reduce (up to 50 percent) the time necessary to fetch the four long words. The four long words are used
to prefill the on-chip instruction and data caches so that the hit ratio of the caches is improved and the
average access time for operand fetches is minimized.
cale Semiconductor,
Frees
The MC68EC030 is specifically designed to sustain high performance while using low-cost (DRAM)
memory subsystems. Coupled with the MC88916 clock generation and distribution circuit, the
MC68EC030 provides simple interface to lower speed memory subsystems. The MC88916 (see Figure
1) provides the precise clock signals required to efficiently control memory subsystems, eliminating
system design constraints due to clock generation and distribution.
CONTROLLER
CLOCK (40 MHz)
20 MHz
OSC.
MC88916
3
MC68EC030
(40 MHz)
BUS CLOCK
(20 MHz)
BUS CLOCK
Figure 1. MC68EC030 Clock Circuitry
The block diagram shown in Figure 2 depicts the major sections of the MC68EC030 and illustrates t he
autonomous nature of these blocks. The bus controller consists of the address and data pads, the
multiplexers required to support dynamic bus sizing, and a microbus controller that schedules the bus
cycles on the basis of priority. The micromachine contains the execution unit and all related control logic.
Microcode control is provided by a modified two-level store of microROM and nanoROM contained in the
micromachine. Programmed logic arrays (PLAs) are used to provide instruction decode and sequencing
BUS CLOCK
(40 MHz)
(80 MHz)
2MC68EC030 TECHNICAL DATAMOTOROLA
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
information. The instruction pipe and other individual control sections provide the secondary decode of
instructions and generate the actual control signals that result in the decoding and interpretation of
nanoROM and microROM information.
The instruction and data cache blocks operate independently from the rest of the machine, storing
information read by the bus controller for future use with very fast access time. Each cache resides on its
own address bus and data bus, allowing simultaneous access to both. The data and instruction caches
are organized as a total of 64 long-word entries (256 bytes) with a line size of four long words. The data
cache uses a write-through policy with programmable write allocation for cache misses.
nc...
I
cale Semiconductor,
Frees
MOTOROLAMC68EC030 TECHNICAL DATA3
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
INTERNAL
DATA
BUS
(CAHR)
CACHE
HOLDING
REGISTER
B
nc...
I
STAGE
C
STAGE
INSTRUCTION PIPE
D
STAGE
STORE
CONTROL
CONTROL
MICROSEQUENCER AND
CONTROL
CACHE
INSTRUCTION
LOGIC
cale Semiconductor,
EXECUTION UNIT
BUS
ADDRESS
INSTRUCTION
BUS
DATA
DATA
PADS
SIZE
MULTIPLEXER
DATA
SECTION
SECTION
ADDRESS
SECTION
COUNTER
PROGRAM
ADDRESS
ADDRESS
UNIT
ACCESS
CONTROL
MULTIPLEXER
MISALIGNMENT
BUS
BUS CONTROLLER
DATA
CACHE
BUS
DATA
ADDRESS
BUFFER
PREFETCH PENDING
MICROBUS
CONTROLLER
SIGNALS
BUS CONTROL
Figure 2. Block Diagram
Frees
PADS
ADDRESS
BUS
ADDRESS
4MC68EC030 TECHNICAL DATAMOTOROLA
For More Information On This Product,
BUFFER
WRITE PENDING
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The ACU contains two access control registers that are used to define memory segments ranging in size
from 16 Mbytes to 2 Gbytes each. Each segment is definable in terms of address, read/write access, and
function code. Each segment can be marked as cacheable or non cacheable to control cache accesses
to that memory space.
PROGRAMMING MODEL
As shown in the programming models (see Figures 3 and 4), the MC68EC030 has 16 32-bit generalpurpose registers, a 32-bit program counter, two 32-bit supervisor stack pointers, a 16-bit status register,
a 32-bit vector base register, two 3-bit alternate function code registers, two 32-bit cache handling
(address and control) registers, and two 32-bit transparent translation registers. Registers D0–D7 are
used as data registers for bit and bit field (1 to 32 bit), byte (8 bit), word (16 bit), long-word (32 bit), and
quad-word (64 bit) operations. Registers A0–A6 and the user, interrupt, and master stack pointers are
address registers that may be used as software stack pointers or base address registers. In addition, th e
nc...
I
address registers may be used for word and long-word operations. All 16 general-purpose registers (D0–
D7, A0–A7) can be used as index registers.
cale Semiconductor,
Frees
3115160
3115160
3115160
310
78
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
(USP)
PC
DATA
REGISTERS
ADDRESS
REGISTERS
USER STACK
POINTER
PROGRAM
COUNTER
15
Figure 3. User Programming Model
MOTOROLAMC68EC030 TECHNICAL DATA5
For More Information On This Product,
Go to: www.freescale.com
8
7
0
0
CCR
CONDITION CODE
REGISTER
nc...
I
cale Semiconductor,
Frees
Freescale Semiconductor, Inc.
3115160
3115160
310
310
310
310
310
310
15
78150
(CCR)
2
0
A7'
(ISP)
A7"
(MSP)
SR
VBR
SFC
DFC
CACR
CAAR
AC0
AC1
ACUSR
INTERRUPT
STACK POINTER
MASTER
STACK POINTER
STATUS
REGISTER
VECTOR
BASE REGISTER
ALTERNATE FUNCTION
CODE REGISTERS
CACHE CONTROL
REGISTER
CACHE ADDRESS
REGISTER
ACCESS CONTROL
REGISTER 0
ACCESS CONTROL
REGISTER 1
ACU STATUS
REGISTER
Figure 4. Supervisor Programming Model Supplement
The status register (see Figure 5) contains the interrupt priority mask (three bits) as well as the following
condition codes: extend (X), negate (N), zero (Z), overflow (V), and carry (C). Additional control bits
indicate that the controller is in the trace mode (T1 or T0), supervisor/user state (S), and master/interrupt
state (M).
TRACE ENABLE
SYSTEM BYTE
14
151310840
T
T
S
0
1
IIIXNZVC
0
M
2
INTERRUPT
PRIORITY MASK
1
000
0
USER BYTE
11211976532
SUPERVISOR/USER STATE
MASTER/INTERRUPT STATE
CONDITION
CODES
EXTEND
NEGATIVE
ZERO
OVERFLOW
CARRY
Figure 5. Status Register
6MC68EC030 TECHNICAL DATAMOTOROLA
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
All microprocessors of the M68000 Family support instruction tracing (via the T0 status bit in the
MC68EC030) where each instruction executed is followed by a trap to a user-defined trace routine. The
MC68EC030, like the MC68030 and MC68040, also has the capability to trace only on change-of-flow
instructions (branch, jump, subroutine call and return, etc.) using the T1 status bit. These features are
important for software program development and debug.
The vector base register (VBR) is used to determine the run-time location of the exception vector table in
memory; thus, each separate vector table for each process or task can properly manage exceptions
independent of each other.
The M68000 Family processors distinguish address spaces as supervisor/user, program/data, and CPU
space. These five combinations are specified by the function code pins (FC0/FC1/FC2) during bus
cycles, indicating the particular address space. Using the function codes, the memory subsystem
(hardware) can distinguish between supervisor accesses and user accesses as well as program accesses,
data accesses, and CPU space accesses. To support the full privileges of the supervisor, the alternate
function code registers allow the supervisor to specify the function code for an access by appropriately
nc...
I
preloading the SFC/DFC registers.
The cache registers allow supervisor software manipulation of the on-chip instruction and data caches.
Control and status accesses to the caches are provided by the cache control register (CACR); the cache
address register (CAAR) specifies the address for those cache control functions that require an address.
cale Semiconductor,
Frees
The access control registers are accessible by the supervisor only. The access control registers are used
to define two memory spaces with caching restrictions. The ACU status register (ACUSR) is used to show
the result of PTEST operations on the ACU.
DATA TYPES AND ADDRESSING MODES
Seven basic data types are supported by the MC68EC030:
• Bits
• Bit Fields (String of consecutive bits, 1–32 bits long)
In addition, operations on other data types, such as memory addresses, status word data, etc., are
provided in the instruction set. The coprocessor mechanism allows direct support of floating-point data
types with the MC68881/MC68882 floating-point coprocessors as well as specialized user-defined data
types and functions. The 18 addressing modes, listed in Table 1, include nine basic types:
• Register Direct
• Register Indirect
• Register Indirect with Index
• Memory Indirect
• Program Counter Indirect with Displacement
• Program Counter Indirect with Index
• Program Counter Memory Indirect
• Absolute
• Immediate
The register indirect addressing modes support postincrement, predecrement, offset, and indexing.
These capabilities are particularly useful for handling advanced data structures common to sophisticated
applications and high-level languages. The program counter relative mode also has index and offset
I
capabilities; this addressing mode is generally required to support position- independent software. In
addition to these addressing modes, the MC68EC030 provides data operand sizing and scaling; these
features provide performance enhancements to the programmer.
cale Semiconductor,
Frees
8MC68EC030 TECHNICAL DATAMOTOROLA
For More Information On This Product,
Go to: www.freesca
nc...
I
cale Semiconductor,
Frees
Freescale Semiconductor, Inc.
Table 1. MC68EC030 Addressing Modes
Addressing ModesSyntax
Register Direct Addressing
Data Register Direct
Address Register Direct
Register Indirect
Address Register Indirect
Address Register Indirect with Postincrement
Address Register Indirect with Predecrement
Address Register Indirect with Displacement
Register Indirect with Index
Address Register Indirect with Index (8-Bit Displacement)
Address Register Indirect with Index (Base Displacement)
Program Counter Indirect with Displacement(d16,PC)
Program Counter Indirect with Index
PC Indirect with Index (8-Bit Displacement)
PC Indirect with Index (Base Displacement)
Program Counter Memory Indirect
PC Memory Indirect Postindexed
PC Memory Indirect Preindexed
Absolute Data Addressing
Absolute Short
Absolute Long
Immediate #<data>
NOTES:
Dn=Data Register, D0–D7
An=Address Register, A0–A7
d8, d16=A twos-complement or sign-extended displacement; added as part of
the effective address calculation; size is 8 (d8) or 16 (d16) bits;
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
[ ]=Used as indirect address to long-word address.
when omitted, assemblers use a value of zero.
Xn.SIZE*SCALE, where SIZE is .W or .L (indicates index register
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.
Dn
An
(An)
(An);pl
-(An)
(d16,An)
(d8,An,Xn)
(bd,An,Xn)
([bd,An],Xn,od)
([bd,An,Xn],od)
(d8,PC,Xn)
(bd,PC,Xn)
([bd,PC],Xn,od)
([bd,PC,Xn],od)
xxx.W
xxx.L
MOTOROLAMC68EC030 TECHNICAL DATA9
For More Information On This Product,
Go to: www.freescale.com
nc...
I
cale Semiconductor,
Frees
Freescale Semiconductor, Inc.
INSTRUCTION SET OVERVIEW
The MC68EC030 instruction set is listed in Table 2. Each instruction, with few exceptions, operates on
bytes, words, and long words, and most instructions can use any of the 18 addressing modes. The
MC68EC030 is upward source- and object-level code compatible with the M68000 Family because it
supports all instructions of previous family members.
Table 2. Instruction Set
MnemonicDescriptionMnemonicDescription
ABCDAdd Decimal with ExtendMOVEMove
AD DAddMOVEAMove Address
ADDAAdd AddressMOVE CCRMove Condition Code Register
ADDIAdd ImmediateMOVE SRMove Status Register
ADDQAdd QuickMOVE USPMove User Stack Pointer
ADDXAdd with ExtendMOVECMove Control Register
ANDLogical ANDMOVEMMove Multiple Registers
ANDILogical AND ImmediateMOVEPMove Peripheral
ASL,ASRArithmetic Shift Left and RightMOVEQMove Quick
BccBranch ConditionallyMOVESMove Alternate Address Space
BCHGTest Bit and ChangeMULSSigned Multiply
BCLRTest Bit and ClearMULUUnsigned Multiply
BFCHGTest Bit Field and ChangeNBCDNegate Decimal with Extend
BFCLRTest Bit Field and ClearNEGNegate
BFEXTSSigned Bit Field ExtractNEGXNegate with Extend
BEFXTUUnsigned Bit Field ExtractNOPNo Operation
BFFFOBit Field Find First OneNOTLogical Complement
BFINSBit Field InsertORLogical Inclusive OR
BFSETTest Bit Field and SetORILogical Inclusive OR Immediate
BFTSTTest Bit FieldPACKPack BCD
BKPTBreakpointPEAPush Effective Address
BRABranchPFLUSHNo Effect
BSETTest Bit and SetPLOADNo Effect
BSRBranch to SubroutinePMOVEMove to/from ACx Registers
BTSTTest BitPTESTTest Address in ACx Registers
CASCompare and Swap OperandsRESETReset External Devices
CAS2Compare and Swap Dual OperandsROL, RORRotate Left and Right
CHKCheck Register Against BoundROXL, ROXRRotate with Extend Left and Right
CHK2Check Register Against Upper and LowerRTDReturn and Deallocate
BoundsRTEReturn from Exception
CLRClearR TRReturn and Restore Codes
CMPCompareRTSReturn from Subroutine
CMPACompare AddressSBCDSubtract Decimal with Extend
CMPICompare ImmediateSccSet Conditionally
CMPMCompare Memory to MemorySTOPStop
CMP2Compare Register Against Upper andSUBSubtract
Lower BoundsSUBASubtract Address
DBccTest Condition, Decrement and BranchSUBISubtract Immediate
DIVS,DIVSLSigned DivideSUBQSubtract Quick
DIVU, DIVULUnsigned DivideSUBXSubtract with Extend
EORLogical Exclusive ORSWAPSwap Register Words
EORILogical Exclusive OR ImmediateTASTest Operand and Set
ILLEGALTake Illegal Instruction TrapTRAPVTrap on Overflow
JMPJumpTSTTest Operand
JSRJump to SubroutineUNLKUnlink
LEALoad Effective AddressUNPKUnpack BCD
LINKLink and Allocate
LSL, LSRLogical Shift Left and Right
10MC68EC030 TECHNICAL DATAMOTOROLA
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
cpBCCBranch ConditionallycpRESTORERestore Internal State of Coprocessor
cpDBccTest Coprocessor Condition,cpSAVESave Internal State of Coprocessor
Decrement and BranchcpSccSet Conditionally
cpGENCoprocessor General InstructioncpTRAPccTrap Conditionally
Included in the MC68EC030 set are the bit field operations, binary-coded decimal support, bounds
checking, additional trap conditions, and additional multiprocessing support (CAS and CAS2 instructions)
offered by the MC68020, MC68030, and MC68040. In addition, object code written for the MC68EC030
can be used on the MC68040 for even more performance. The memory management unit (MMU)
instructions of the MC68030, and MC68040 are not supported by the MC68EC030.
Coprocessor Instructions
INSTRUCTION AND DATA CACHES
Studies have shown that typical programs spend most of their execution time in a few main routines or
tight loops. This phenomenon, known as locality of reference, has an impact on program performance.
nc...
I
The MC68010 takes limited advantage of this phenomenon with the loop mode of operation that can b e
used with the DBcc instruction. The MC68EC030 takes further advantage of cache technology to
provide the system with two on-chip caches, one for instructions and one for data.
MC68EC030 CACHE GOALS
Similar to the MC68020 and MC68030, there were two primary design goals for the MC68EC030
embedded controller caches. The first design goal was t o reduce the external bus activity of the CPU
even more than was accomplished with the MC68020. The second design goal was to increase effective
CPU throughput as larger memory sizes or slower memories increased average access time. By placing a
high-speed cache between the controller and the rest of the memory system, the effective memory
access time becomes:
cale Semiconductor,
Frees
where t
the rest of the system, and Rh is the hit ratio or the percentage of time that the data is found in the cache.
Thus, for a given system design, the two MC68EC030 on-chip caches provide an even more substantial
CPU performance increase over that obtainable with the MC68020 instruction cache. Alternately, slower
and less expensive memories can be used for the same controller performance.
The throughput increase in the MC68EC030 is gained in three ways. First, the MC68EC030 caches are
accessed in less time than is required for external accesses, providing improvement in the access time for
items residing in the cache. Second, the burst filling of the caches allows instruction and data words to be
found in the on-chip caches the first time they are accessed by the micromachine, minimizing the time
required to bring those items into the cache. Utilizing burst fill capabilities lowers the average access time
for items found in the caches even further. Third, the autonomous nature of the caches allows instruction
stream fetches, data fetches, and external bus activity to occur simultaneously with instruction execution.
The parallelism designed into the MC68EC030 also allows multiple instructions to execute concurrently
so that several internal instructions (those that do not require any external accesses) can execute while
the controller is performing an external access for a previous instruction.
is the effective system access time, t
acc
t
acc
=Rh*t
+ (1-Rh)*t
cache
is the cache access time, t
cache
ext
is the access time o f
ext
INSTRUCTION CACHE
MOTOROLAMC68EC030 TECHNICAL DATA11
For More Information On This Product,
Go to: www.freescale.com
Loading...
+ 25 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.