Re: Migrating ARM9E codebase to ARM11



Vikash <vikashsaraogi@xxxxxxxxx> wrote:
> I'm using Codewarrior/ADS for the development and my code is highly
> optimized fix-point implementation with all the possible assembly
> optimizations done using hand-coding, only the control code is left to
> the compiler for optimizations. The code is on a bare metal and I feel
> that optimizing the code on bare metal will make more sense when
> migrating from ARM9E to ARM11 core. Any further assistance/advice from
> your side is welcome.

In order of time required...

As, John Penton said, you should make sure that the
processor is setup for maximum performance. This includes but is not
limited to:
- Determining if your application should be run in normal, or low
interrupt latency configuration.
- Enabling branch prediction.
- Enabling caches.

Technical reference manuals explaining the operations needed for an
ARM1136 and 76 can be downloaded from

http://www.arm.com/documentation/ARMProcessor_Cores/index.html

You should then consider upgrading to a newer compiler. ADS 1.2 only
explicitly supports upto ARMv5TEJ. The obvious upgrade path is RVCT 2.2
which is included in RVDS 2.2. This includes ARMv6 aware compilers and
assemblers and a newer version of CodeWarrior.

>From here on in it gets more complicated.

It may very well be that a carefully coded C implementation of your
assembler routines compiled by compiler which explictly knows about
ARMv6 and more importantly knows about scheduling for the ARM11 you
wish to target might be faster than the assembler optimised for the 9E.
This effect may become even more pronounced for future, more
complicated, processors.

Of course you may be able to get faster still by hand coding
specifically for the ARM11 you wish to target. The instruction timings
and interlock information needed to do so are contained in the TRM.

I do not believe that the ARM ARM for architecture version 6 has been
published so you would have to contact ARM for full instruction set
information. Alternatively much of the information you require is
contained in the documentation for the version of the ARM Assembler
shipped with RVCT 2.2 should you decide to upgrade toolchains.

-p
--
Paul Gotch
Software Engineer
Development Systems ARM Limited.

This message is intended for the addressee(s) only and may contain
information that is the property of, and/or subject to a confidentiality
agreement between the intended recipient(s), their organisation and/or the
ARM Group of Companies. If you are not an intended recipient of this
message, you should not read, copy, forward or otherwise distribute or
further disclose the information in it; misuse of the contents of this
message may violate various laws in your state, jurisdiction or
country. If you have received this message in error, please contact
the originator of this message via email and delete all copies of
this message from your computer or network, thank you.
---------------------------------------------------------------------
.



Relevant Pages

  • Re: code optimization in embedded systems
    ... Please give an example of such a bad compiler. ... outperform even a shite C compiler _in order of magnitude_. ... equivilent program written in assembler. ... embedded applications (ColdFire, MSP430, MIPS, ARM, ARM, ARM), ...
    (comp.arch.embedded)
  • Re: Interesting article by Randall Hyde
    ... > assembler is that the assembler should generate _exactly_ what I ... any assembler that did optimizations would have to offer you ... But advanced programmers should be able to take advantage of compiler ... As a RL programmer I expect no such thing. ...
    (comp.lang.asm.x86)
  • Re: Some clarification on "Pre-Parsers" and other bits
    ... which is then feed to a assembler. ... To do decent optimizations, the ... compiler will work on an abstract representation of the source program ... anyway for a decent amount of it's optimizations. ...
    (alt.lang.asm)
  • Re: Soft Processor IP core report
    ... compiler was/is able to produce better code then assembler. ... optimized, does the optimizations, checks the code if there are no ... I did optimize a SPI flash bootloader for ARM, ...
    (comp.arch.fpga)
  • Re: code optimization in embedded systems
    ... Please give an example of such a bad compiler. ... outperform even a shite C compiler _in order of magnitude_. ... equivilent program written in assembler. ... embedded applications (ColdFire, MSP430, MIPS, ARM, ARM, ARM), ...
    (comp.arch.embedded)