Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The...
Transcript of Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The...
![Page 1: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/1.jpg)
Module Introduction
! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the programming model and architecture of ColdFire. This module also provides a description of the tools available to help with the transition from 68K to ColdFire.
! OBJECTIVES:! Describe the differences in the ColdFire programming module.! Identify the transition tools for migration from 68K to ColdFire.
! CONTENT:! 12 pages! 2 questions
! LEARNING TIME:! 25 minutes
The intent of this module is to explain the changes to the programming model and architecture of ColdFire® . This module also provides a description of the tools available to help with the transition from 68K to ColdFire. You will better understand the specific ColdFiredevices as part of the upgrade path from 68K microprocessors.Once you have finished this module, you will be better prepared to describe the differences between the 68K and ColdFire programming modules. You will also be better prepared to identify the available transition tools that help simplify the migration process from 68K to ColdFire.
![Page 2: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/2.jpg)
ColdColdFire Programming Model
D0D1D2D3D4D5D6D7
A0A1A2A3A4A5A6
A7
PC
CCRSys Byte
VBR
Data Registers
Address Registers
Stack Pointer
Program Counter
Status Register
Vector Base Register
Let’s begin with a look at the ColdFire programming model. Does it look familiar? This may be because it is nearly identical to that of the M68K family.
There is one main difference between the stack pointer of this programming model and the M68K family. That difference is, there is only one stack pointer in the ColdFire architecture. Keep in mind that the M68K supported a user and a supervisor stack pointer. This provided operating system support not required on ColdFire. Note that all ColdFires except for the MCF5282 only implement[s] a single stack pointer (A7). Please refer to the ColdFire Programmer’s Reference Manual for more detail.
Next, let’s look at the ColdFire instruction set architecture.
![Page 3: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/3.jpg)
Instruction Set Architecture
• Deleted from M68000
• Included in ColdFire
• Added beyond M68000
68020
ColdFire
68000
Next, let’s look at the ColdFire instruction set architecture. Many instructions were eliminated from the M68K. Many of these instructions were rarely used or could be replaced by a sequence of simpler instructions, as in the reduced instruction set computing (RISC) tradition. The instructions that were deleted from M68000 include BCD instructions, rotate instructions, simplified fault model, double stack pointer, and eliminated support for read-modify-write (r-m-w) instructions. Also, reduced support for byte and word instructions means that only double word operands, such as 32-bit, are supported in memory. With the introduction of the Version 4 core, many of these operand size restrictions have been eliminated.
Included in ColdFire are full support for basic effective addressing modes; full support for move byte, word, and long operands; and supervisor and user privilege modes. Note that the full complement of byte, word, and long word instructions are supported in the internal register set.
Added beyond M68000 are longword multiplies; extend byte to long instruction; trapf, trapf.w and trapf.l; BDM instructions; and vector base register. Also note the inclusion of x2 and x4 scaling factors. This is helpful in the manipulation of data arrays. Additional background debug capability has also been added.
![Page 4: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/4.jpg)
Assembler TranslatorTranslator
! Migration from 68K to ColdFire
! Free MicroAPL PortASM/68K software
! Tool features
! Tool and support availability
68KCPU32
CPU32+
ColdFire Variable-Length RISC architecture is derived from the 680x0 family, but with a simplified set of instructions. It also addresses modes to provide high performance at low-cost and low-power consumption. This means that programs written for the 680x0 family will not run on ColdFire processors without modification or re-compilation.
The first solution is PortASM/68K Software for ColdFire. This free solution is a source-level translation tool that is designed to help you port 680x0 assembly-language programs to ColdFire. This automated tool will translate 680x0, CPU32, and CPU32+ assembly source code to ColdFire family source code. It can be used to target any member of the ColdFire family. It provides good performance and is the recommended solution for porting a large body of 680x0 assembler code where you have access to the original source-code files.
There are many features of the PortASM/68K tool. It can choose between optimization of code size or performance when doing translation. Also, it can choose between ColdFireColdFire core versions, with or without the media access controller (MAC), and divide unit. Another important feature of this tool is that the program flags, with recommended corrections, 68K code that PortASM/68K cannot readily convert. This tool also allows debug instructions to be inserted into code. This gives users the flexibility to use tools that take advantage of the ColdFireColdFire debug module.
PortAsm/68K Software can be downloaded free of charge from the web site (http://www.Freescale.com). Free installation support is available and full support is available from MicroAPL for less than $500.
Now, let’s look at the next free solution for migrating from 68K to ColdFire.
![Page 5: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/5.jpg)
68K 68K Emulation LibraryLibrary
UnimplementedInstruction
Executing 68K Code
Unimplemented instructionin ColdColdFireFire ISAcauses an exceptiontrap which invokes the emulation library.
Trap
Memory
CF68KLib Emulation Library
Summary of Events:1. Execute 68K code on ColdFireColdFire processor2. Trap on illegal instruction3. Emulate instruction4. Return to execute code
Executable Code
The next available solution is CF68KLib. This is an emulation library that provides exception handlers to implement 680x0 instructions. It also addresses modes that are missing in the ColdFire architecture. It allows 680x0 object-code, whether written in assembler or in a high-level language, to run on a ColdFire processor.This includes all ColdFire microprocessors, with the exception of the MCF5206 and MCF5206E. It is available to run either user-level code only, or user- and supervisor-level code. CF68KLib allows you to run 680x0 code with minimal modification under ColdFire. However, there is a performance penalty associated with the need to trap out and emulate missing instructions.
The CF68Lib emulation library supports the following 68K processors: 68000, 68020, 68030, 68EC040, 68EC060, CPU32, and CPU32+. However, it does not support floating point or memory management unit (MMU) instructions. Not only is this tool an excellent resource for protecting legacy 68K code developed by our customers, but it is offered free of charge. It is available for ColdFire processors with full instruction decode. CF68Lib is supported onWin95/98, SunOS, Solaris, and WinNT.
For additional information about the available solutions to ease the migration from 68K to ColdFire, visit the web site (http://www.freescale.com)
![Page 6: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/6.jpg)
Here are some frequently-asked questions that arise from the 68K to ColdFire transition.
All of our design expertise hinges on 68K devices. Would this expertise be lost when moving to ColdFire? The answer to this question is that the ColdFire instruction set is a subset of the 68K instruction set. Also, ColdFire code is compatible at both the binary and assembler level with original 68K instructions. Programming models are identical with the exception of the stack pointer implementation. The exception processing model in ColdFire is also similar to the original 68K instructions.
ColdFire will operate at a much higher frequency than 68K. Can I still use existing peripherals that are much slower? The answer to this question is that it is still possible to use slower peripherals by inserting wait states and glueless interface. Using existing peripherals may adversely affect performance. To increase performance, upgrade the peripherals.
A large amount of initialization code exists for 68K architecture. Will this code have to be re-written? The answer to this question is that initialization code is specific to a particular device. Normally new code would have to be written, but this initialization code is provided on the web site (www.freescale.com). Many of the peripheral functions found on 68K devices have been implemented on ColdFire devices. Much of the initialization code for a 68K device may be re-used on ColdFire devices with very little modification.
• All of our design expertise hinges on 68K devices. Would this expertise be lost when moving to ColdFire?
• ColdFire will operate at a much higher frequency than 68K. Can I still use existing peripherals that are much slower ?
• A large amount of initialization code exists for 68K architecture. Will this code have to be re-written?
Translation QuestionsQuestions
![Page 7: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/7.jpg)
Question
Which of the following does ColdFire include? Click on your choice and then click Done.
a) Full support for more byte, word, and long operands. b) BCD instructions.c) Rotate instructions.d) Divide instructions.
Here’s another question for you.
Answer:ColdFire includes full support for more byte, word, and long operands. BCD, rotate, and [divide] read-modify-write instructions have all been deleted.
![Page 8: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/8.jpg)
68K to 68K to 68K to 68K to 68K to 68K to 68K to 68K to ColdColdColdColdColdColdColdColdFireFireFireFireFireFireFireFire
680x0680x0 MCF5272MCF5272
MCF5307/MCF5407MCF5307/MCF5407MCF5249MCF5249
Data andInstruction
CacheExecutionUnit
2 to 110 MIPS8 to 75 MHz Bus
Controller
• 125 MIPS at 140 MHz
• 96K on-chip SRAM
• EMAC• SDRAM Controller
• Optimized for low power: 1.3 mW/MHz,183 mWtypical
• IDE Interface
• 63 MIPS at 66 MHz
• 10/100 Ethernet MAC
• 1.1 USB Device• SDRAM Controller
• 4 TDM’s• Standard ColdFire
Peripheral Set
680x0680x0 MCF5272MCF5272
MCF5307/MCF5407MCF5307/MCF5407MCF5249MCF5249
Data andInstruction
CacheExecutionUnit
2 to 110 MIPS8 to 75 MHz Bus
Controller
Integration
Performance & IntegrationPerformance & Integration
• 5307
- 75 MIPS at 90 MHz- Standard ColdFire
Peripheral Set
• 5407
- 316 MIPS at 220 MHz- Harvard Architecture
- Separate I&D Cache
Here are some recommendations showing which ColdFire devices best fit as a migration from 680x0 microprocessors. All of these migration paths offer more integration and performance typically at a lower price point.
![Page 9: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/9.jpg)
MCF5206eMCF5206e
MCF5307/MCF5407MCF5307/MCF5407MCF5249MCF5249
DMAController
CPU324.8 MIPS 25 MHz
2 Timers
• 125 MIPS at 140 MHz• 96K on-chip SRAM
• EMAC
• SDRAM Controller• Optimized for low power:
1.3cmW/MHz,183cmW typical
• IDE Interface
• 50 MIPS at 54 MHz
• 4k I-Cache• 8k on-chip SRAM
• DRAM Controller• DMA Controller
• Standard ColdFire Peripheral Set
• 5307- 75 MIPS at 90 MHz
- Standard ColdFire Peripheral Set
• 5407
- 316 MIPS at 220 MHz- Harvard Architecture
- Separate I&D Cache
Performance
Performance & Integration
Performance & Integration
SIMM Module
USARTChip Selects
6834068340
68K to 68K to 68K to 68K to 68K to 68K to 68K to 68K to ColdColdColdColdColdColdColdColdFireFireFireFireFireFireFireFire
These are the recommended ColdFire devices that best fit as a migration from the popular 68340 microprocessors. Once more, all of these migration paths offer more integration and performance.
![Page 10: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/10.jpg)
SystemBus
Controller16 or 32 bits
1KI-Cache
Interrupt Ctr
2 UARTs
JTAG
SDRAM Ctr &
Chip Selects
V2 ColdFire Core
63 MIPS
66 MHz
4K SRAM
4 TDMs
MACH/W Divide
DebugModule
10/100 Ethernet
Controller
DMA
USB 1.1Module
Software HDLC Module
3 PWMs QSPIDMA 4 Timers
SystemBus
Controller8 or 16-bits
Interrupt Ctr
General Purpose I/OJTAG
DRAM Ctr &
Chip Selects
68EC000 Core
5 MIPS
25 MHz
1K DPRAM
10 Base TEthernet
Controller
DMA
3 UARTs, or 3 HDLC Channels, or 1 TDM
SPIDMA 3 TimersComm
Controller
MC68EN302MC68EN302 MCF5272MCF5272
General Purpose I/O
5 MIPS @ 25 MHz5 MIPS @ 25 MHz
0.65u0.65u
$20$20
63 MIPS @ 66 MHz63 MIPS @ 66 MHz
0.35u0.35u
$10.95$10.95
68K to 68K to 68K to 68K to 68K to 68K to 68K to 68K to ColdColdColdColdColdColdColdColdFireFireFireFireFireFireFireFire
Some of our 68K microprocessors are application specific, as in the case of the 68302 family. This family, especially the MC68EN302, is well renowned for its networking peripheral set. In the case of the MC68EN302, there is an onboard 10-Base-T Ethernet controller. Therefore, the MCF5272 ColdFire is the best possible replacement due to the fact that the MCF5272 features a 10/100 Ethernet controller. To help understand this page, the two block diagrams are color-coded to represent the enhancements of the MCF5272 from the MC68EN302.
These highlighted boxes indicate a feature or peripheral that is enhanced on the MCF5272.
These highlighted boxes indicate features or peripherals that are brand new on the MCF5272.
These highlighted boxes indicate features and peripherals that are matched on the MCF5272. In addition, the MCF5272 has over 12x the performance for only half the price of an MC68EN302! Migrating from 68K to ColdFire offers higher performance, newer technology, and a lower price.
![Page 11: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/11.jpg)
Question
Which tools are available to assist in the migration from 68K toColdFire? Select all that apply and then click Done.
CF68KLib: an emulation library that provides exception handlers to implement 680x0 instructions.
PortASM/Lib: an emulation library that allows you to run 680x0 code with minimal modification.
CF68Port: a migration solution that can be downloaded free of charge.PortASM/68K Software: a source-level translation tool that is designed to
help you port 680x0 assembly-language programs to ColdFire.
Consider this question about the migration from 68K to ColdFire.
Answer:PortASM/68K Software is a free solution that can be used to target any member of the ColdFire family. CF68KLib is an emulation library that also addresses modes that are missing in the ColdFire architecture.
![Page 12: Module Introduction - NXP Semiconductors · 2016. 3. 12. · Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire® Transition, is to explain the changes to the](https://reader036.fdocuments.us/reader036/viewer/2022081411/60a59390f2d55b1f760ef243/html5/thumbnails/12.jpg)
Module Summary
• ColdFire programming model• Instruction set architecture• MicroAPL PortASM/68K software• 68K emulation library• Translation questions• Recommended ColdFire devices
Let’s review the 68K to ColdFire Transition module. First, we examined the ColdFire programming model. Then, we looked at the type of instructions that were removed, included, and added to ColdFire. Next, we looked at two solutions to help ease the migration from 68K to ColdFire. We answered some frequently-asked questions about the 68K to ColdFire transition. Finally, we presented recommendations showing which ColdFire devices best fit as a migration from 680x0 microprocessors.