Coldfire MCF54455 (CANCELED) Project
Coldfire integration into existing 68k System environment

in category Operating Systems
proposed by gunnar on 29th March 2008
Project Proposal
Goal of the project is the detailed performance evaluation of the Coldfire CPU if used an existing 68k legacy software environment.

This first phase of the project is:

  • Profiling the performance of various 68k workloads on the Coldfire. As basis for the profiling a comprehensive selecting of existing 68k binaries will be used.
  • There are various options of executing legacy 68k code on Coldfire. Ranging from "interpreting", Just in time compilation, using the existing 68K library, adapting 68k Library for usage in V4 SRAM, combining the exception library with code replacement strategies.

    We will compare the various options and evaluate the performance differences.

    Our goal is to be able to give a performance recommendation and/or to come up with a performance improved way of running 68k legacy software.

    As a second phase we want to use the found optimized way for executing 68k binaries.

    Our second goal is to connect the Coldfire CPU by means of a PCI2PCI bridge into an existing 68k environment, the Natami development board.

    We want to showcase that the Coldfire CPU is able to execute legacy 68k Operating system including a range of existing the 68k application with satisfying performance.

    The project will be fully documented. The used applications, the gained test results, and the performance optimized execution routines will be published for the benefit of other Coldfire users.
  • Project Blog Entries

      Coldfire integration into existing 68k System environment
    posted by gunnar on 10th April 2008


    Benchmark results:

    We did some general benchmarking of the system to get a feeling for the performance of the V4m system:

    Result

    -------------------------------------------
    Processor & Memory Performance Bench v4.20
    -------------------------------------------
    Stop all program before the test.
    Do not use the computer during the test.
    The test will run some minutes, please be patient.
    Total memory required = 4.2 MB.
    Calibration loops: 8
    -------------------------------------------
    Comparing different CPU functions:
    Results are in million instructions per sec.
    Higher value is faster.
    CPU-Benchmark 2MB 16KB 4KB 1KB
    -------------------------------------------
    addi 251.3 251.3 251.3 251.3
    shift 293.2 293.2 251.3 251.3
    mix 439.8 439.8 439.8 439.8
    mul 67.7 67.7 67.7 65.2
    bra-un 41.9 42.9 40.9 41.9
    bra-pre 117.3 117.3 117.3 109.9
    bsr 13.3 13.4 13.3 13.2
    nop 45.1 44.0 44.0 44.0
    -------------------------------------------
    Measuring memory latency:
    Result is Million random accesses per sec.
    Higher value is faster.
    Memory Latency 2MB 16KB 4KB 1KB
    -------------------------------------------
    random read 1.0
    -------------------------------------------
    Measuring memory throughput:
    Results are in MB/sec. Higher value is faster.
    Memory 2 Memory
    Alignment 0-0 2MB 16KB 4KB 1KB
    -------------------------------------------
    glibc memcpy 67.7 67.7 66.4 56.7
    read 8 81.8 74.9 74.9 69.0
    read 16 95.1 95.1 95.1 88.0
    read 32 121.3 121.3 117.3 109.9
    read 32x4 121.3 121.3 121.3 106.6
    read 32x4B 121.3 121.3 117.3 106.6
    write 8 13.1 13.2 13.2 13.0
    write 16 26.1 26.1 26.1 25.5
    write 32 51.0 51.0 51.0 48.9
    write 32x4 51.7 51.0 51.0 48.9
    write 32x4B 185.2 185.2 175.9 153.0
    copy 8 23.3 23.3 23.3 22.0
    copy 32 67.7 67.7 67.7 57.7
    copy 32x4 65.2 65.2 65.2 55.8
    copy 32x4B 117.3 121.3 117.3 90.2
    -------------------------------------------
    Cache 2 Cache
    Alignment 0-0 2MB 16KB 4KB 1KB
    -------------------------------------------
    glibc memcpy 67.7 106.6 106.6 103.5
    read 8 74.9 92.6 140.7 135.3
    read 16 92.6 125.7 219.9 219.9
    read 32 121.3 175.9 586.4 502.6
    read 32x4 121.3 185.2 703.7 703.7
    read 32x4B 121.3 185.2 879.6 879.6
    write 8 13.2 13.3 13.3 13.3
    write 16 26.1 26.7 26.7 26.7
    write 32 51.0 53.3 53.3 52.5
    write 32x4 51.0 53.3 53.3 53.3
    write 32x4B 185.2 207.0 207.0 207.0
    copy 8 23.1 23.8 26.7 26.7
    copy 32 67.7 100.5 106.6 103.5
    copy 32x4 65.2 103.5 106.6 103.5
    copy 32x4B 117.3 439.8 390.9 390.9
    -------------------------------------------


    Here is the source of the used benchmark routine:
    bench.c
    bench68K_test.s
    Genesi Network: Genesi - Main Site Power2People PowerDeveloper