1 / 15

ARM Processor

ARM Processor. History. Started in 1983 as a project for Acorn Computers Ltd The original processor was an advanced MOS Technology 6502 (an 8-bit microprocessor designed by MOS Technology in 1975 considered the least expensive at the time. History. ARM1 Completed in 1985 ARM2

sdoris
Download Presentation

ARM Processor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM Processor

  2. History • Started in 1983 as a project for Acorn Computers Ltd • The original processor was an advanced MOS Technology 6502 (an 8-bit microprocessor designed by MOS Technology in 1975 considered the least expensive at the time

  3. History • ARM1 • Completed in 1985 • ARM2 • First “real” production systems • 32-bit data bus • 26-bit address space • 16 32-bit registers (one of these served as the program counter • Only 30000 transistors • Did not have microcode • No cache • Performed better than the 286 • 4 million instructions per second • ARM3 • Consisted of a 4kb cache

  4. History • In the late 1980’s Apple Computer started working with Acorn and the company became Advanced RISC Machines • ARM6 • Apple used the ARM6-based ARM 610 as the basis for the Apple Newton PDA

  5. History • ARM6 • 35000 transistors • ARM7TDMI • Most successful implementation • DEC licensed this design and produced the StrongARM • StrongARM • 233MHz • Drew only 1 watt of power • Took over by Intel in a lawsuit and since then Intel developed the XScale (found in products such as the Dell Axim)

  6. History • The following companies all licensed the basic ARM design for various uses • Motorola • IBM • Texas Instruments • Nintendo • Philips • VLSI • Sharp • Samsung

  7. Uses • Hard-drives • Mobile phones • Routers • Calculators • Toys • Accounts for over 75% of embedded CPU’s

  8. Introduction to ARM • RISC design • Most of the instructions can be executed in one clock cycle • Low power consumption (no heat sinks or fans required) • Easy to program • Allows for pipelining • Thumb • NEON • Jazelle

  9. Registers • 16 registers (R0 to R15 • R13 – used for stack operations • R14 – used for the link register (used for storing return addresses in the construction of sub routines • R15 – the program counter

  10. ARM Assembly MODE 28 :REM If you have an A310 etc. try MODE 15 DIM mcode% 1024 :REM This line reserves 1024 bytes of memory REM which start at position mcode% P%=mcode% :REM P% is a reserved variable which acts as a pointer REM while assembling the code REM we wish the code to start at mcode% [ :REM Note this is the square bracket (to the right REM of the P key). REM This tells BASIC to enter the ARM assembler, all REM commands from now are in ARM assembler. ADD R0,R1,R2 :REM Our ARM code instruction MOV PC,R14 :REM This instruction copies the value in R14 (link REM register contains the return address to return to REM BASIC) into the program counter hence REM jumping to the next BASIC line after running REM our ARM code program. ] :REM Leave the ARM code assembler and return to BASIC.

  11. ARM Assembly INPUT"Enter an integer value "B% INPUT"Enter another integer value"C% REM These two lines therefore will give their values to R1 and R2. A%=USR(mcode%) :REM This line runs the ARM code starting REM at mcode% REM (our assembled code) returning the REM value in R0 to BASIC. PRINT"The answer is ";A% :REM Print the answer. END

  12. ARM Assembly MODE28 DIM mcode% 1024 P%=mcode% [ ADD R0,R1,R2 MOV PC,R14 ] INPUT"Enter an integer value "B% INPUT"Enter another integer value"C% A%=USR(mcode%) PRINT"The answer is ";A% END

  13. Listing • 00008FD8 • 00008FD8 E0810002 ADD R0,R1,R2 • 00008FDC 1A0F00E MOV PC,R14

  14. Another Example Code in C int gcd(int i, int j) { while (i != j) if (i > j) i -= j; else j -= i; return i; }

  15. Another Example • Assembly Code b test loop subgt Ri,Ri,Rj suble Rj,Rj,Ri test cmp Ri,Rj bne loop

More Related