You are on page 1of 22

MOTOROLA MC68000

MICROPROCESSOR
PRESENTED BY:
ARCHISHA SRIVASTAVA

Reg no:229311282
ADYA CHAUHAN

Reg no:229310078
INTRODUCTION:
The MC68000 family is a series of microprocessors developed
by Motorola that Motorola 68000,68010,68020,68030,68040
and 68060 processors. These processors were widely used in a
variety of computer systems and embedded applications.
The programmer’s reference manual for MC68000 family
typically includes information on the following topics:

 Introduction
 Architecture
 Instruction set
 Addressing modes
 Data types
 Memory management
 Interrupts and Exceptions
 Input/Output
 Assembly language programming
 Debugging and Testing
 Performance Optimization
A few of these have been discussed briefly in our report

PAGE 1
1)ARCHITECTURE OVERVIEW:
a)Key Features and Design Principles:
1) CISC Architecture: The MC68000 family employs a
Complex Instruction Set Computer (CISC)
architecture. This means that it has a rich set of
instructions that can perform complex operations in a
single instruction. This design choice aimed to
simplify programming and reduce the number of
instructions needed for many common tasks.
2) 16/32-Bit Data Bus: The processors in the family have
a 16-bit data bus, but they are designed to work with
32-bit data in a more efficient manner. This
combination of a 16/32-bit architecture provides
flexibility in data handling.
3) General-Purpose Registers: The family features a
set of 8 or 16 general-purpose data registers (D0-D7
and A0-A7). These registers can be used for various
data manipulation tasks, enhancing their flexibility in
programming.
4) Memory-Mapped I/O: The architecture allows for
memory-mapped I/O, simplifying interaction with
peripheral devices and memory-mapped registers.
5) User and Supervisor Modes: The processors support
user and supervisor modes, allowing for a
differentiation between normal application code and
critical system-level operations. This feature is

PAGE 2
important for embedded systems and operating
system implementations.
6) Multiple Addressing Modes: The MC68000 family
supports various addressing modes, providing
flexibility for memory access. These addressing modes
include direct, immediate, indirect, and indexed
modes, among others.
7) Interrupt Handling: The architecture provides a
mechanism for handling interrupts and exceptions,
which is crucial for real-time and embedded systems.
8) Instruction Set: The instruction set is extensive and
includes operations for arithmetic, logic, and data
movement. This enables the efficient implementation
of various algorithms.

b)Target Application Domains and Rationale:


1) Embedded Systems: The MC68000 family was widely
used in embedded systems, such as industrial
controllers, automotive systems, and early gaming
consoles. The rich instruction set and addressing modes
made it well-suited for real-time control tasks.
2) Workstations and Personal Computers: Some
members of the family, like the 68020 and 68030, found
applications in workstations and personal computers
due to their performance and compatibility with UNIX-
based operating systems.

PAGE 3
3) Military and Aerospace: The MC68000 family was used
in military and aerospace applications, where reliability
and real-time performance were essential. Its support for
memory-mapped I/O and user/supervisor modes made
it suitable for these domains.
4) Networking Equipment: The architecture's flexibility
and robust interrupt handling made it suitable for
networking equipment, including routers and switches.
5) Scientific and Measurement Instruments: The
MC68000 family was used in scientific instruments and
measurement equipment due to its precise arithmetic
operations and extensive addressing modes.

2)INSTRUCTION SET ARCHITECTURE(ISA):


a)Instruction Formats: The MC68000 family ISA primarily
consists of two instruction formats: the standard format and
the extended format.
1) Standard Format (16 bits): This format is used for most
instructions. It includes fields for the operation code
(opcode), addressing mode, and the source and
destination operands.
2) Extended Format (32 bits): Certain complex
instructions and addressing modes use this format. It
allows for more extensive information to be encoded,
including additional addressing modes and operands

PAGE 4
b)Addressing Nodes
The MC68000 family supports a wide range of addressing
modes, providing flexibility in memory access and data
manipulation. Some of the notable addressing modes
include:
1) Register Direct: Operate on data stored in one of the
8 or 16 general-purpose registers (D0-D7 and A0-A7)
2) Immediate: Data is specified as part of the
instruction itself.
3) Absolute: Addressing a specific memory location
directly, typically used for global variables.
4) Register Indirect: Use the contents of a register as a
memory address. For example, (A1) refers to the value
in register A1 as an address.
5) Indexed: Allows displacement and an index register
to access memory. For example, (A2, A3) means add
the contents of A3 to the address in A2.
6) PC Relative: Uses the Program Counter (PC) to
calculate an address, helpful for branching or jumps.
7) Memory Indirect: Allows a double-indirection
through two memory locations. This is especially
useful for data structures.

PAGE 5
c)Supported Operations and Notable
Features:
The MC68000 family ISA supports a wide range of operations,
including but not limited to:
1) Data Transfer: Instructions for moving data between
registers and memory, such as MOVE and MOVEA
instructions.
2) Arithmetic and Logical Operations: Instructions for
addition (ADD), subtraction (SUB), multiplication
(MULS), division (DIVU), and various logical operations
(AND, OR, XOR).
3) Control Transfer: Instructions for program control, like
branch instructions (BRA, BCC, BSR), subroutine calls
(JSR), and return from subroutine (RTS).
4) Bit Manipulation: Instructions for setting, clearing, and
testing individual bits in registers and memory.
5) String Operations: Repetitive operations on strings of
data, including instructions like MOVB, MOVEP, and
MOVEQ.
6) Floating-Point: Some members of the family, such as
the 68040, introduced a Floating-Point

Notable Features:
1) MOVE Instruction: The MOVE instruction is versatile
and can transfer data between a wide range of sources
and destinations. It is a fundamental instruction for data
manipulation.

PAGE 6
2) Exception Handling: The architecture includes
dedicated instructions and features for handling
exceptions and interrupts. This is crucial for real-time
and embedded systems.
3) Condition Codes: The condition code registers (CCR)
track the result of operations, enabling conditional
branching based on the result. This is a critical feature
for controlling program flow.
4) Privilege Levels: The ISA supports two privilege levels
(user and supervisor modes), allowing for security and
resource access control.
5) Memory-Mapped I/O: The architecture's support for
memory-mapped I/O simplifies interaction with
peripheral devices through specific memory addresses.
6) Multithreading Support: Some members of the family,
like the 68030, introduced instructions and features to
support multithreading, making it suitable for
applications requiring concurrency.
7) 32-Bit Addressing: The family supports a 32-bit address
space, providing access to large amounts of memory,
which was an advantage for certain applications.

3)Data Path and Control Unit:


a)Datapath Components:

PAGE 7
1. Registers: The MC68000 family features 8 or 16
general-purpose registers, which are divided into two
groups: Data Registers (D0-D7) and Address Registers
(A0-A7). These registers are used for temporary
storage and addressing.
2. ALU (Arithmetic Logic Unit): The ALU is
responsible for performing arithmetic and logical
operations. It can execute instructions that involve
addition, subtraction, multiplication, division, and
logical operations like AND, OR, and XOR.
3. Multiplexers: Multiplexers are used to select
between different data sources and destinations, as
well as to choose between various addressing modes.
They help route data within the processor.

b)Control signal and Control Logic:


1. Program Counter (PC) management for instruction
fetching.
2. Opcode and addressing mode decoding for instruction
identification.
3. Register selection for source and destination operands.
4. ALU control for arithmetic and logical operations.
5. Condition code flag updates based on ALU results.
6. Data movement to and from registers.
7. Memory access control for loading from and storing to
memory.
8. Branch and control transfer handling for program flow
control.
9. Clock signal generation for synchronization.

PAGE 8
10.Privilege level management for supervisor mode
instructions
11. Data size selection for instructions working with
different data sizes.
12.Execution sequencing to manage instruction
dependencies and hazards
13. Exception handling for interrupt and error
management.

4)Memory Hierarchy:
1. Registers: At the top of the hierarchy, the architecture
provides a small number of general-purpose registers.
These registers are used for fast, low-latency storage for
frequently accessed data.
2. Level 1 (L1) Cache: Many processors in the family,
such as the 68020, introduced an on-chip L1 cache.
This cache stores frequently accessed data and
instructions, reducing the need to access slower main
memory.
3. Main Memory (RAM): The main memory, typically
DRAM, serves as the primary storage for the system. It
is larger but slower than the caches.
4. Disk Storage (if applicable): In some systems,
especially those running operating systems, disk
storage is used for secondary storage of data and
programs.

PAGE 9
The MC68000 family's memory hierarchy and memory
management techniques were designed to balance
performance and efficiency in various application domains,
from real-time embedded systems to general-purpose
computing. The introduction of caches, memory protection,
and support for virtual memory enhanced the architecture's
versatility. Specialized cache structures and optimization
techniques aimed to improve memory access latency and
overall system performance, making the architecture
competitive and relevant in its time.

5)Performance:
1. Clock Speed: MC68000 processors had variable clock
speeds, from a few to tens of megahertz, depending on
the model and generation.
2. CPI (Cycles Per Instruction): CPI values varied based
on instruction mix and microarchitecture, typically
higher for complex instructions.
3. Benchmark Results: Performance benchmarks differed
by model, clock speed, and application, spanning
various use cases.

Comparison with other architecture:


 In the 1980s and 1990s, MC68000 competed with
Intel's x86 family in the personal computer market.

PAGE 10
MC68000 was appreciated for its elegant
programming, but Intel's processors dominated due
to higher clock speeds and market adoption.
 RISC architectures like MIPS and SPARC posed a
challenge to MC68000 with their simple, efficient
instruction sets, lower CPI, and higher clock speeds.
 MC68000 excelled in embedded systems and real-
time control due to predictable execution and
memory-mapped I/O. In general-purpose computing,
it faced competition from x86 and later RISC
architectures.
 Successive MC68000 generations improved
performance, with the 68060 outperforming
predecessors. However, it eventually yielded to x86
and high-performance RISC processors.

6)Pipelining:
1. Instruction Fetch (IF): In this stage, the instruction
is fetched from memory using the Program Counter
(PC). The instruction is then decoded to identify the
opcode and addressing modes.
2. Open Fetch (OF):.In this stage, the operands are
fetched from memory or registers based on the
addressing modes. The instruction's addressing mode
is decoded, and data may be loaded into registers.

PAGE 11
3. Execution (EX): This stage performs the actual
execution of the instruction, including arithmetic or
logical operations, data manipulation, and addressing
calculations.
4. Write-Back (WB): The result of the execution is
written back to registers or memory, depending on
the instruction's destination.
5. Interrupts and Exceptions: There may be
additional stages or mechanisms to handle interrupts
and exceptions, which can suspend or modify the
normal pipeline flow.

The possible hazards are as follows:

 Data Hazards: Instructions depending on the prior


results may cause stalls.
 Branch hazards: Brach outcomes delay instruction
fetching.
 Load-use Hazards: Loading and using values in
sequence can create issues.

Advanced Pipeline Techniques:


1. Out-of-Order Execution: Some processors in the
family, such as the 68040, introduced out-of-order
execution. This allowed the processor to execute
instructions that were not dependent on the results
of prior instructions, potentially improving
performance by reducing pipeline stalls.

PAGE 12
2. Superscalar Execution: The 68040 and 68060
processors introduced superscalar execution,
enabling the execution of multiple instructions in
parallel. This involved multiple execution units in the
pipeline and advanced instruction scheduling.
3. Branch Prediction: To address branch hazards,
some models introduced branch prediction
mechanisms. These techniques attempted to predict
the outcome of branches and speculatively execute
instructions based on those predictions.
4. Cache Design: The presence of an on-chip cache,
such as the Level 1 (L1) cache, can help mitigate
memory access latency and improve instruction fetch
performance. Cache design and management play a
role in pipeline efficiency

7)Multicore and Parallelism:


1. Coprocessors: Some members of the MC68000
family featured support for coprocessors, such as the
68040's Floating-Point Unit (FPU). While not
traditional CPU cores, these coprocessors could
offload specific types of computation, like floating-
point operations, from the main CPU, enabling
parallel execution of certain tasks.
2. Multithreading Support: The 68030 processor
introduced a form of multithreading. It allowed for
interleaved execution of two instruction streams,

PAGE 13
known as "instruction pipelining" and "data
pipelining." This interleaved execution could be
viewed as a form of simultaneous multithreading,
although it's not as advanced as modern SMT
implementations.
3. Memory Management Unit (MMU): The MC68000
family's MMU can be used to provide memory
protection and isolation, which is important when
multiple threads or processes run in parallel.
4. Memory-Mapped I/O: The architecture's support for
memory-mapped I/O can facilitate communication
between different processor units or cores and
external devices, enabling parallel processing in
certain applications.
5. Parallelization in Software: Efficient parallel
execution on MC68000 processors is highly
dependent on software design. Programmers could
utilize low-level threading libraries or explicitly
design their applications to take advantage of the
architecture's features, such as multiple registers and
the ability to execute instructions concurrently.
6. Off-Chip Multiprocessing: In some systems,
especially those using processors like the 68040 and
68060, external multiprocessing mechanisms could
be employed to run multiple MC68000-based
processors in parallel, albeit not on a single chip.

PAGE 14
8)Specialized Features:
1. Branch Instructions: The family features a range of
branch instructions that enable control flow within
programs. The BSR (Branch to Subroutine)
instruction, in particular, is useful for function calls
and managing program control flow. The
architecture's branch instructions are important for
application domains where conditional branching
and looping are essential, such as real-time control
systems.
2. Memory-Mapped I/O: The architecture's support for
memory-mapped I/O is a unique feature that
simplifies interaction with peripheral devices and
hardware registers. This feature is particularly useful
in embedded systems, where efficient access to I/O
devices is a common requirement.
3. User and Supervisor Modes: The MC68000 family's
support for user and supervisor modes enables the
differentiation between normal application code and
critical system-level operations. In embedded systems
and real-time applications, this feature is essential for
maintaining system integrity and security.
4. Exception Handling Instructions: The family
includes specialized instructions for handling
exceptions and interrupts, such as TRAP and RTE
(Return from Exception). These instructions are vital
in real-time systems and safety-critical applications,
where precise error handling and recovery are crucial.

PAGE 15
5. Privilege Levels: The architecture's support for two
privilege levels (user and supervisor) is essential for
controlling access to system resources and managing
security in multi-user or multi-process environments.
6. Vector Table: The architecture provides a vector
table that stores the addresses of exception and
interrupt handlers. This feature is critical for
handling various exceptions and interrupts efficiently,
such as division by zero, illegal instruction, and
hardware faults

9)Historical Perspective:
a)Development:
1. 1979: Introduction of the 32-bit Motorola 68000
processor.
2. 1982: Enhanced 68010 with virtual memory and
multitasking support.
3. 1984: 68020 introduced 32-bit address bus and
external MMU support.
4. 1987: 68030 with on-chip cache for embedded and
high-performance computing.
5. 1990: 68040 added FPU, dual on-chip caches, and
dynamic branch prediction.
6. 1994: The 68060, the last major member, maintained
relevance with enhancements.

b)Significance:
PAGE 16
The MC68000 family's historical significance lies in its
adaptability and its wide range of applications, from personal
computing to embedded systems, where it was known for its
reliability and versatility. While it has been largely replaced
by more modern architectures in general-purpose computing,
it left an enduring impact on the evolution of microprocessors
and continues to find use in embedded and legacy systems.

10)Comparisons:
The comparison here is done between the
MC68000 Family and x86 Architecture.
MC68000 Family:
Performance: The MC68000 family's performance is
moderate, with clock speeds ranging from a few megahertz to
tens of megahertz in later models. Its complex instruction set
architecture (CISC) allows for versatile and rich instruction
sets but can lead to higher CPI and challenges in pipelining.
Performance is generally lower than more modern
architectures in single-threaded tasks.
Power Efficiency: The power efficiency of the MC68000
family is relatively lower compared to modern architectures,
as it was not designed with power efficiency as a primary
focus. Later models, like the 68040 and 68060, improved

PAGE 17
power management, but it still lags behind modern low-
power architectures.
Application Domains: The MC68000 family is historically
significant in a wide range of application domains, including
early personal computers, embedded systems, and real-time
control systems. Its memory-mapped I/O, predictable
execution, and versatile instruction set make it suitable for
these domains.

X86 Architecture:
Performance: The x86 architecture, as exemplified by Intel
and AMD processors, offers high performance, especially in
terms of single-threaded tasks. Modern x86 processors can
reach very high clock speeds and feature advanced execution
units and pipelines. They are well-suited for general-purpose
computing and high-performance applications.
Power Efficiency: Power efficiency has been a focus for x86
processors in recent years. Advanced power management
features, low-power states, and architectural optimizations
have improved the power efficiency of x86 processors. They
are commonly used in laptops, servers, and data centres.
Application Domains: The x86 architecture is dominant in
general-purpose computing, including desktops, laptops,
workstations, and servers. It is used in various applications,
from gaming to scientific simulations, where high

PAGE 18
performance is required. It is less common in embedded and
real-time systems.

Comparison:
Performance:
MC68000 Family: The MC68000 family offers moderate
performance for its time, with clock speeds ranging from a
few to tens of megahertz. It can handle a variety of tasks but
may not match the performance of modern architectures in
single-threaded applications.
x86 Architecture: x86 processors, such as those from Intel
and AMD, offer high performance, especially in single-
threaded tasks. Modern x86 processors can achieve very high
clock speeds and are commonly used in high-performance
computing applications.
Power Efficiency:
MC68000 Family: The MC68000 family was not originally
designed with power efficiency as a primary focus. It is
relatively less power-efficient compared to modern
architectures and may consume more power for a given level
of performance.
x86 Architecture: x86 processors have made significant
strides in power efficiency, with advanced power management
features, low-power states, and architectural optimizations.

PAGE 19
They are commonly used in laptops, servers, and data centres
where power efficiency is essential.
Application Domain:
MC68000 Family: The MC68000 family found success in
embedded systems, real-time control applications, early
personal computers, and scientific instruments. It is known
for predictable execution and memory-mapped I/O, making it
suitable for these domains.
x86 Architecture: x86 architecture is dominant in general-
purpose computing, including desktops, laptops,
workstations, and servers. It is used in various applications,
from gaming to scientific simulations, where high
performance is required. It is less common in embedded and
real-time systems.

In summary, the MC68000 family and x86 architecture have


different strengths and weaknesses. The MC68000 family is
historically significant and versatile, especially in embedded
and real-time systems, but may not match the performance
and power efficiency of modern x86 processors, which excel
in general-purpose computing and high-performance
applications.

PAGE 20
PAGE 21

You might also like