Applications
B-44
MPC801 USER’S MANUAL
MOTOROLA
B
B.4 USING THE POWERPC CORE
The core of the PowerQUICC is now based on the PowerPC architecture rather than the
MC68000. The processor architecture of the PowerPC is very different from that of the
MC68000. It is recommended that a designer enroll in a course about PowerPC architecture
before starting a PowerQUICC design.
B.5 BIT LABELING
It is important to note that the bit labeling of the PowerPC programming environment is the
opposite of the MC68000’s programming environment. The actual arrangement of the bits
is the same, but the high bit is referred to as Bit 0 and the low bit as Bit 31.
B.5.1 Code Portability
The PowerPC core is not binary compatible with the CPU32+ core on the MC68360.
Therefore, any code written will have to be ported to the new processor. If code was written
in a high-level language such as ‘C’, a cross complier can provide the simplest code
migration path. Any MC68000 assembly code will have to be rewritten in C or PowerPC
assembly language.
B.6 CACHE
The PowerQUICC has both an address and data cache. This is different from the CPU32+
core of the MC68360, which had no cache at all. The cache allows the processor to run code
much faster, but can create pitfalls for both overall system performance and debugging
capability.
B.6.1 Cache Performance Impact
A cache can improve core performance dramatically if it is used effectively. However, turning
on the cache does not guarantee higher performance. The degree to which a cache will help
is directly related to the memory access pattern of the program running on the core. Actually,
the performance of a core can sometimes decrease. A document of this size and breadth
cannot effectively address the ways that a program can be optimized to achieve better
cache performance.
Some documented methods that can yield a significant improvement in access speed
include locking cache blocks, making areas of memory uncacheable, optimizing program
flow, and optimizing data access patterns. These techniques are complex and their
effectiveness can be altered by a simple program recompilation. Caches can also
complicate a benchmarking process. A benchmark, such as Dhrystone, will fit entirely in a
cache and can give misleading indications of processor and application performance.
Because of this, it is recommended that segments of code are run on an evaluation board
to determine the performance that can be expected from a specific application.