23-03-2011, 04:24 PM
ARM Processor.ppt (Size: 146 KB / Downloads: 313)
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
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
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
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)
History
The following companies all licensed the basic ARM design for various uses
Motorola
IBM
Texas Instruments
Nintendo
Philips
VLSI
Sharp
Samsung
Uses
Hard-drives
Mobile phones
Routers
Calculators
Toys
Accounts for over 75% of embedded CPU’s
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
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
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.
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
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
Listing
00008FD8
00008FD8 E0810002 ADD R0,R1,R2
00008FDC 1A0F00E MOV PC,R14