En Wikipedia Org Wiki ARM Architecture
En Wikipedia Org Wiki ARM Architecture
En Wikipedia Org Wiki ARM Architecture
Article Talk
ARM architecture
From Wikipedia, the free encyclopedia
Main page
ARM is a family of instruction set architectures for computer processors based on a reduced
Contents
instruction set computing (RISC) architecture developed by British company ARM Holdings.
Featured content
ARM architectures
Current events
A RISC-based computer design approach means ARM processors require significantly fewer
Random article
transistors than typical CISC x86 processors in most personal computers. This approach reduces
Donate to Wikipedia
costs, heat and power use. These are desirable traits for light, portable, battery-powered devices
Wikimedia Shop
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
ARM Holdings
simpler design facilitates more efficient multi-core CPUs and higher core counts at lower cost,
Bits
32-bit, 64-bit
Introduced
1985
Design
RISC
Type
Register-Register
Branching
Condition code
Open
Proprietary
including smartphones, laptops, tablet and notepad computers, and other embedded systems. A
ARM Holdings develops the instruction set and architecture for ARM-based products, but does not
manufacture products. The company periodically releases updates to its cores. Current cores from
ARM Holdings support a 32-bit address space and 32-bit arithmetic; the ARMv8-A architecture,
announced in October
Tools
What links here
2011,[6]
Instructions for ARM Holdings' cores have 32 bits wide fixed-length instructions, but later versions of
Related changes
the architecture also support a variable-length instruction set that provides both 32 and 16 bits wide
Upload file
instructions for improved code density. Some cores can also provide hardware execution of Java
Special pages
bytecodes.
Permanent link
Page information
who design their own products that implement one of those architecturesincluding systems-on-
chips (SoC) that incorporate memory, interfaces, radios, etc. Currently, the widely used Cortex cores,
older "classic" cores, and specialized SecurCore cores variants are available for each of these to
Create a book
include or exclude optional capabilities. Companies that make chips that implement an ARM
Download as PDF
architecture include Apple, AppliedMicro, Atmel, Broadcom, Freescale Semiconductor, Nvidia, NXP,
Printable version
Languages
core.[7]
()
Catal
2013[13]
over 50 billion ARM processors have been produced as of 2014, thereof 10 billion in
"ARM-based chips are found in nearly 60 percent of the worlds mobile devices". In 2008, 10 billion
Deutsch
chips had been produced.[14] The ARM architecture (32-bit) is the most widely used architecture in
Eesti
mobile devices, and most popular 32-bit one in embedded systems.[15] In 2005, about 98% of all
and
mobile phones sold used at least one ARM processor.[16] According to ARM Holdings, in 2010 alone,
producers of chips based on ARM architectures reported shipments of 6.1 billion ARM-based
processors, representing 95% of smartphones, 35% of digital televisions and set-top boxes and 10%
Franais
ARMv8-A
Encoding
purpose
produced.[8][9][10][11][12] The low power consumption of ARM processors has made them very popular:
Dansk
Espaol
Version
Globally ARM is the most widely used instruction set architecture in terms of quantity
etina
64/32-bit architecture
Introduced 2011
ARM Holdings licenses the chip designs and the ARM instruction set architectures to third parties,
Wikidata item
Print/export
Floating
point
Encoding
of mobile computers.
Bahasa Indonesia
Italiano
Registers
Latvieu
Magyar
General
purpose
Nederlands
Floating
point
Up to 32 64-bit registers,[2]
Norsk bokml
Polski
Portugus
Encoding
Shqip
Simple English
Slovenina
/ srpski
Srpskohrvatski /
Suomi
SIMD/floating-point (optional)
Svenska
Trke
General
purpose
Ting Vit
Edit links
Contents [hide]
1 History
1.1 Acorn RISC Machine: ARM2
1.2 Apple, DEC, Intel, Marvell: ARM6, StrongARM, XScale
2 Licensing
2.1 Core licence
2.2 Architectural licence
3 Cores
3.1 Example applications of ARM cores
4 32-bit architecture
4.1 CPU modes
4.2 Instruction set
4.2.1 Arithmetic instructions
4.2.2 Registers
4.2.3 Conditional execution
4.2.4 Other features
4.2.5 Pipelines and other implementation issues
4.2.6 Coprocessors
4.3 Debugging
4.4 DSP enhancement instructions
4.5 SIMD extensions for multimedia
4.6 Jazelle
4.7 Thumb
4.8 Thumb-2
4.9 Thumb Execution Environment (ThumbEE)
4.10 Floating-point (VFP)
4.11 Advanced SIMD (NEON)
4.12 Security extensions (TrustZone)
4.13 No-execute page protection
4.14 ARMv8-R
5 64/32-bit architecture
5.1 ARMv8-A
5.1.1 AArch64 features
6 Operating system support
6.1 32-bit operating systems
6.2 64-bit operating systems
7 See also
8 References
9 Further reading
10 External links
History
[edit]
The British computer manufacturer Acorn Computers first developed ARM in the 1980s to use
in its personal computers. Its first ARM-based products were coprocessor modules for the
BBC Micro series of computers. After the successful BBC Micro computer, Acorn Computers
considered how to move on from the relatively simple MOS Technology 6502 processor to
address business markets like the one that was soon dominated by the IBM PC, launched in
1981. The Acorn Business Computer (ABC) plan required that a number of second processors
be made to work with the BBC Micro platform, but processors such as the Motorola 68000 and
National Semiconductor 32016 were considered unsuitable, and the 6502 was not powerful
enough for a graphics based user interface.[17]
After testing all available processors and finding them lacking, Acorn decided it needed a new
architecture. Inspired by white papers on the Berkeley RISC project, Acorn considered
designing its own processor.[18] A visit to the Western Design Center in Phoenix, where the
6502 was being updated by what was effectively a single-person company, showed Acorn
engineers Steve Furber and Sophie Wilson they did not need massive resources and state-ofthe-art research and development facilities.[19]
Wilson developed the instruction set, writing a simulation of the processor in BBC BASIC that
ran on a BBC Micro with a second 6502 processor. This convinced Acorn engineers they were
on the right track. Wilson approached Acorn's CEO, Hermann Hauser, and requested more
resources. Once he had approval, he assembled a small team to implement Wilson's model in
hardware.
VLSI produced the first ARM silicon on 26 April 1985. It worked the first time, and was known as ARM1 by
April 1985.[3] The first production systems named ARM2 were available the following year.
The first ARM application was as a second processor for the BBC Micro, where it helped in developing simulation software to finish development of
the support chips (VIDC, IOC, MEMC), and sped up the CAD software used in ARM2 development. Wilson subsequently rewrote BBC BASIC in
ARM assembly language. The in-depth knowledge gained from designing the instruction set enabled the code to be very dense, making ARM BBC
BASIC an extremely good test for any ARM emulator. The original aim of a principally ARM-based computer was achieved in 1987 with the release
of the Acorn Archimedes.[21] In 1992, Acorn once more won the Queen's Award for Technology for the ARM.
The ARM2 featured a 32-bit data bus, 26-bit address space and 27 32-bit registers. Eight bits from the program counter register were available for
other purposes; the top six bits (available because of the 26-bit address space), served as status flags, and the bottom two bits (available because
the program counter was always word-aligned), were used for setting modes. The address bus was extended to 32 bits in the ARM6, but program
code still had to lie within the first 64 MB of memory in 26-bit compatibility mode, due to the reserved bits for the status flags.[22] The ARM2 had a
transistor count of just 30,000, compared to Motorola's six-year-older 68000 model with around 40,000.[23] Much of this simplicity came from the
lack of microcode (which represents about one-quarter to one-third of the 68000) and from (like most CPUs of the day) not including any cache.
This simplicity enabled low power consumption, yet better performance than the Intel 80286. A successor, ARM3, was produced with a 4 KB
cache, which further improved performance.[24]
remained essentially the same size throughout these changes; ARM2 had 30,000 transistors, while ARM6
grew only to 35,000.[citation needed]
Licensing
[edit]
Cores
[edit]
Bit
width
ARMv1
32/26 ARM1
ARMv2
ARMv3
32
ARM6, ARM7
ARMv4
32
ARM8
ARMv4T
32
ARM7TDMI, ARM9TDMI
ARMv5
32
ARMv6
32
ARM11
ARMv6-M
32
ARMv7-M
32
ARM Cortex-M3
Microcontroller
ARMv7E-M
32
ARM Cortex-M4
Microcontroller
ARMv7-R
32
ARMv7-A
32
StrongARM, FA526
Microcontroller
Cortex-M1
Real-time
Cortex-R7
ARM Cortex-A5, ARM Cortex-A7, ARM
Cortex-A8, ARM Cortex-A9, ARM Cortex-
Application
No announcements yet
Application
[30][31]
Real-time
[32][33]
A list of vendors who implement ARM cores in their design (application specific standard products (ASSP), microprocessor and microcontrollers) is
provided by ARM Holdings.[34]
32-bit architecture
[edit]
The 32-bit ARM architecture, such as ARMv7-A, is the most widely used architecture in mobile devices.[15]
From 1995, the ARM Architecture Reference Manual
has been the primary source of documentation on the ARM processor architecture and
instruction set, distinguishing interfaces that all ARM processors are required to support (such as instruction semantics) from implementation
details that may vary. The architecture has evolved over time, and version seven of the architecture, ARMv7, that defines the architecture for the
first of the Cortex series of cores, defines three architecture "profiles":
A-profile, the "Application" profile: Cortex-A series
R-profile, the "Real-time" profile: Cortex-R series
M-profile, the "Microcontroller" profile: Cortex-M series
Although the architecture profiles were first defined for ARMv7, ARM subsequently defined the ARMv6-M architecture (used by the Cortex
M0/M0+/M1) as a subset of the ARMv7-M profile with fewer instructions.
The original (and subsequent) ARM implementation was hardwired without microcode, like the much simpler 8-bit 6502 processor used in prior
Acorn microcomputers.
The 32-bit ARM architecture (and the 64-bit architecture for the most part) includes the following RISC features:
Load/store architecture.
No support for unaligned memory accesses in the original version of the architecture. ARMv6 and later, except some microcontroller versions,
support unaligned accesses for half-word and single-word load/store instructions with some limitations, such as no guaranteed atomicity.[39][40]
Uniform 16 32-bit register file (including the Program Counter, Stack Pointer and the Link Register).
Fixed instruction width of 32 bits to ease decoding and pipelining, at the cost of decreased code density. Later, the Thumb instruction set
added 16-bit instructions and increased code density.
Mostly single clock-cycle execution.
To compensate for the simpler design, compared with processors like the Intel 80286 and Motorola 68020, some additional design features were
used:
Conditional execution of most instructions reduces branch overhead and compensates for the lack of a branch predictor.
Arithmetic instructions alter condition codes only when desired.
32-bit barrel shifter can be used without performance penalty with most arithmetic instructions and address calculations.
Has powerful indexed addressing modes.
A link register supports fast leaf function calls.
A simple, but fast, 2-priority-level interrupt subsystem has switched register banks.
Arithmetic instructions [edit]
The ARM supports add, subtract, and multiply instructions. The integer divide instructions are only implemented by ARM cores based on the
following ARM architectures:
ARMv7-M and ARMv7E-M architectures always include divide instructions.[41]
ARMv7-R architecture always includes divide instructions in the Thumb instruction set, but optionally in its 32-bit instruction set.[42]
ARMv7-A architecture optionally includes the divide instructions. The instructions might not be implemented, or implemented only in the Thumb
instruction set, or implemented in both the Thumb and ARM instructions sets, or implemented if the Virtualization Extensions are included.[42]
Registers [edit]
Registers R0 through R7 are the same across all CPU modes; they are never
banked.
svc
abt
und
R13 and R14 are banked across all privileged CPU modes except system
R0
mode. That is, each mode that can be entered because of an exception has its
R1
own R13 and R14. These registers generally contain the stack pointer and the
R2
irq
fiq
R3
Aliases:
R4
R5
R6
R7
R8
R8_fiq
R9
R9_fiq
R10
R10_fiq
R11
R11_fiq
R12
R12_fiq
R13
R13_svc
R13_abt
R13_und
R13_irq
R13_fiq
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
R15
CPSR
Debugging [edit]
This section needs additional citations for verification. Please help improve this article by adding
citations to reliable sources. Unsourced material may be challenged and removed. (March 2011)
All modern ARM processors include hardware debugging facilities, allowing software debuggers to perform operations such as halting, stepping,
and breakpointing of code starting from reset. These facilities are built using JTAG support, though some newer cores optionally support ARM's
own two-wire "SWD" protocol. In ARM7TDMI cores, the "D" represented JTAG debug support, and the "I" represented presence of an
"EmbeddedICE" debug module. For ARM7 and ARM9 core generations, EmbeddedICE over JTAG was a de facto debug standard, though not
architecturally guaranteed.
The ARMv7 architecture defines basic debug facilities at an architectural level. These include breakpoints, watchpoints and instruction execution in
a "Debug Mode"; similar facilities were also available with EmbeddedICE. Both "halt mode" and "monitor" mode debugging are supported. The
actual transport mechanism used to access the debug facilities is not architecturally specified, but implementations generally include JTAG
support.
There is a separate ARM "CoreSight" debug architecture, which is not architecturally required by ARMv7 processors.
Jazelle [edit]
Main article: Jazelle
Jazelle DBX (Direct Bytecode eXecution) is a technique that allows Java Bytecode to be executed directly in the ARM architecture as a third
execution state (and instruction set) alongside the existing ARM and Thumb-mode. Support for this state is signified by the "J" in the ARMv5TEJ
architecture, and in ARM9EJ-S and ARM7EJ-S core names. Support for this state is required starting in ARMv6 (except for the ARMv7-M profile),
though newer cores only include a trivial implementation that provides no hardware acceleration.
Thumb [edit]
To improve compiled code-density, processors since the ARM7TDMI (released in 1994[47]) have featured Thumb instruction set, which have their
own state. (The "T" in "TDMI" indicates the Thumb feature.) When in this state, the processor executes the Thumb instruction set, a compact 16bit encoding for a subset of the ARM instruction set.[48] Most of the Thumb instructions are directly mapped to normal ARM instructions. The
space-saving comes from making some of the instruction operands implicit and limiting the number of possibilities compared to the ARM
instructions executed in the ARM instruction set state.
In Thumb, the 16-bit opcodes have less functionality. For example, only branches can be conditional, and many opcodes are restricted to
accessing only half of all of the CPU's general-purpose registers. The shorter opcodes give improved code density overall, even though some
operations require extra instructions. In situations where the memory port or bus width is constrained to less than 32 bits, the shorter Thumb
opcodes allow increased performance compared with 32-bit ARM code, as less program code may need to be loaded into the processor over the
constrained memory bandwidth.
Embedded hardware, such as the Game Boy Advance, typically have a small amount of RAM accessible with a full 32-bit datapath; the majority is
accessed via a 16-bit or narrower secondary datapath. In this situation, it usually makes sense to compile Thumb code and hand-optimise a few of
the most CPU-intensive sections using full 32-bit ARM instructions, placing these wider instructions into the 32-bit bus accessible memory.
The first processor with a Thumb instruction decoder was the ARM7TDMI. All ARM9 and later families, including XScale, have included a Thumb
instruction decoder.
Thumb-2 [edit]
Thumb-2 technology was introduced in the ARM1156 core, announced in 2003. Thumb-2 extends the limited 16-bit instruction set of Thumb with
additional 32-bit instructions to give the instruction set more breadth, thus producing a variable-length instruction set. A stated aim for Thumb-2
was to achieve code density similar to Thumb with performance similar to the ARM instruction set on 32-bit memory. In ARMv7 this goal can be
said to have been met.[citation needed]
Thumb-2 extends the Thumb instruction set with bit-field manipulation, table branches and conditional execution. At the same time, the ARM
instruction set was extended to maintain equivalent functionality in both instruction sets. A new "Unified Assembly Language" (UAL) supports
generation of either Thumb or ARM instructions from the same source code; versions of Thumb seen on ARMv7 processors are essentially as
capable as ARM code (including the ability to write interrupt handlers). This requires a bit of care, and use of a new "IT" (if-then) instruction, which
permits up to four successive instructions to execute based on a tested condition, or on its inverse. When compiling into ARM code this is ignored,
but when compiling into Thumb it generates an actual instruction. For example:
; if (r0 == r1)
CMP r0, r1
ITE EQ
; ARM: no code ... Thumb: IT instruction
; then r0 = r2;
MOVEQ r0, r2 ; ARM: conditional; Thumb: condition via ITE 'T' (then)
; else r0 = r3;
MOVNE r0, r3 ; ARM: conditional; Thumb: condition via ITE 'E' (else)
; recall that the Thumb MOV instruction has no bits to encode "EQ" or "NE"
All ARMv7 chips support the Thumb instruction set. All chips in the Cortex-A series, Cortex-R series, and ARM11 series support both "ARM
instruction set state" and "Thumb instruction set state", while chips in the Cortex-M series support only the Thumb instruction set.[49][50][51]
announced in 2005, first appearing in the Cortex-A8 processor. ThumbEE is a fourth Instruction set state, making small changes to the Thumb-2
extended Thumb instruction set. These changes make the instruction set particularly suited to code generated at runtime (e.g. by JIT compilation)
in managed Execution Environments. ThumbEE is a target for languages such as Java, C#, Perl, and Python, and allows JIT compilers to output
smaller compiled code without impacting performance.
New features provided by ThumbEE include automatic null pointer checks on every load and store instruction, an instruction to perform an array
bounds check, and special instructions that call a handler. In addition, because it utilises Thumb-2 technology, ThumbEE provides access to
registers r8-r15 (where the Jazelle/DBX Java VM state is held).[52] Handlers are small sections of frequently called code, commonly used to
implement high level languages, such as allocating memory for a new object. These changes come from repurposing a handful of opcodes, and
knowing the core is in the new ThumbEE Instruction set state.
On 23 November 2011, ARM Holdings deprecated any use of the ThumbEE instruction set,[53] and ARMv8 removes support for ThumbEE.
Some devices such as the ARM Cortex-A8 have a cut-down VFPLite module instead of a full VFP module, and require roughly ten times more
clock cycles per float operation.[56] Pre-ARMv8 architecture implemented floating-point/SIMD with the coprocessor interface. Other floating-point
and/or SIMD units found in ARM-based processors using the coprocessor interface include FPA, FPE, iwMMXt, some of which where implemented
in software by trapping but could have been implemented in hardware. They provide some of the same functionality as VFP but are not opcodecompatible with it.
VFPv1
Obsolete
VFPv2
An optional extension to the ARM instruction set in the ARMv5TE, ARMv5TEJ and ARMv6 architectures. VFPv2 has 16 64-bit FPU registers.
VFPv3 or VFPv3-D32
Implemented on the Cortex-A8 and A9 ARMv7 processors. It is backwards compatible with VFPv2, except that it cannot trap floating-point
exceptions. VFPv3 has 32 64-bit FPU registers as standard, adds VCVT instructions to convert between scalar, float and double, adds
immediate mode to VMOV such that constants can be loaded into FPU registers.
VFPv3-D16
As above, but with only 16 64-bit FPU registers. Implemented on Cortex-R4 and R5 processors.
VFPv3-F16
Uncommon; it supports IEEE754-2008 half-precision (16-bit) floating point.
VFPv4 or VFPv4-D32
Implemented on the Cortex-A12 and A15 ARMv7 processors, Cortex-A7 optionally has VFPv4-D32 in the case of an FPU with NEON.[57]
VFPv4 has 32 64-bit FPU registers as standard, adds both half-precision extensions and fused multiply-accumulate instructions to the features
of VFPv3.
VFPv4-D16
As above, but it has only 16 64-bit FPU registers. Implemented on Cortex-A5 and A7 processors (in case of an FPU without NEON[57]).
In Debian Linux and derivatives armhf (ARM hard float) refers to the ARMv7 architecture including the additional VFP3-D16 floating-point
hardware extension (and Thumb-2) above.
Software packages and cross-compiler tools use the armhf vs. arm/armel suffixes to differentiate.[58]
is ARM's first open source project (from its inception). The Ne10 library is a set of common, useful functions written in both NEON
and C (for compatibility). The library was created to allow developers to use NEON optimizations without learning NEON but it also serves as a set
of highly optimized NEON intrinsic and assembly code examples for common DSP, arithmetic and image processing routines. The code is
available on GitHub .
ARMv8-R [edit]
The ARMv8-R sub-architecture, announced after the ARMv8-A, shares some features except that it is not 64-bit.
64/32-bit architecture
[edit]
ARMv8-A [edit]
Announced in October 2011,[6] ARMv8-A (often called ARMv8 although not all variants are 64-bit such as ARMv8-R) represents a fundamental
change to the ARM architecture. It adds a 64-bit architecture, named "AArch64", and a new "A64" instruction set. AArch64 provides user-space
compatibility with ARMv7-A ISA, the 32-bit architecture, therein referred to as "AArch32" and the old 32-bit instruction set, now named "A32". The
Thumb instruction sets are referred to as "T32" and have no 64-bit counterpart. ARMv8-A allows 32-bit applications to be executed in a 64-bit OS,
and a 32-bit OS to be under the control of a 64-bit hypervisor.[1] ARM announced their Cortex-A53 and Cortex-A57 cores on 30 October 2012.[29]
Apple was the first to release an ARMv8-A compatible core (Apple A7) in a consumer product (iPhone 5S). AppliedMicro, using an FPGA, was the
first to demo ARMv8-A.[68] The first ARMv8-A SoC from Samsung is the Exynos 5433 in the Galaxy Note 4, which features two clusters of four
Cortex-A57 and Cortex-A53 cores in a big.LITTLE configuration; but it will run only in AArch32 mode.[69]
To both AArch32 and AArch64, ARMv8-A makes VFPv3/v4 and advanced SIMD (NEON) standard. It also adds cryptography instructions
supporting AES and SHA-1/SHA-256.
AArch64 features [edit]
New instruction set, A64
Has 31 general-purpose 64-bit registers.
Has dedicated SP or zero register.
The program counter (PC) is no longer accessible as a register
Instructions are still 32 bits long and mostly the same as A32 (with LDM/STM instructions and most conditional execution dropped).
Has paired loads/stores (in place of LDM/STM).
No predication for most instructions (except branches).
Most instructions can take 32-bit or 64-bit arguments.
Addresses assumed to be 64-bit.
Advanced SIMD (NEON) enhanced
Has 32 128-bit registers (up from 16), also accessible via VFPv4.
Supports double-precision floating point.
Fully IEEE 754 compliant.
AES encrypt/decrypt and SHA-1/SHA-2 hashing instructions also use these registers.
A new exception system
Fewer banked registers and modes.
Memory translation from 48-bit virtual addresses based on the existing Large Physical Address Extensions (LPAE), which was designed to be
easily extended to 64-bit.
[edit]
Android, a popular
operating system running on
the ARM architecture.
See also
[edit]
Electronics portal
References
1. ^
a bc de
[edit]
a b
a b
"ARM Discloses Technical Details Of The Next Version Of The ARM Architecture"
20 September 2013.
7. ^ Mick, Jason (20 August 2014). "Leaked Qualcomm Roadmap: 20 nm 64-bit Octacore Smartphone SoCs Cometh"
2014.
8. ^ "MCU Market on Migration Path to 32-bit and ARM-based Devices: 32-bit tops in sales; 16-bit leads in unit shipments"
. ExtremeTech.
. www.embedded.com.
11. ^ ARM Holdings eager for PC and server expansion , 1 February 2011
12. ^ Kerry McGuire Balanza (11 May 2010), ARM from zero to billions in 25 short years
13. ^ "ARM 50 Billion Chips"
14. ^ Grabham, Dan (19 July 2013). "From a small Acorn to 37 billion chips: ARM's ascent to tech superpower"
15. ^
a b
Fitzpatrick, J. (2011). "An interview with Steve Furber". Communications of the ACM 54 (5): 34. doi:10.1145/1941487.1941501 . edit
16. ^ Krazit, Tom (3 April 2006). "ARMed for the living room"
17. ^ Manners, David (29 April 1998). "ARM's way"
. CNet.com.
19. ^ Furber, Stephen B. (2000). ARM system-on-chip architecture. Boston: Addison-Wesley. ISBN 0-201-67519-6.
20. ^ Goodwins, Rupert (4 December 2010). "Intel's victims: Eight would-be giant killers"
21. ^ Acorn Archimedes Promotion from 1987
22. ^ Richard Murray. "32 bit operation"
on YouTube
23. ^ Levy, Markus. "The History of The ARM Architecture: From Inception to IPO"
24. ^ Santanu Chattopadhyay (1 January 2010). Embedded System Design . PHI Learning Pvt. Ltd. p. 9. ISBN 978-81-203-4024-4. Retrieved 15 March
2013.
25. ^ "ARM Corporate Backgrounder"
, ARM Technology.
26. ^ Brown, Eric (2009). "ARM netbook ships with detachable tablet"
27. ^ McGrath, Dylan (18 July 2011). "IHS: ARM ICs to be in 23% of laptops in 2015"
28. ^ Nolting, Stephan. "STORM CORE Processor System"
29. ^
a b
"ARM Launches Cortex-A50 Series, the Worlds Most Energy-Efficient 64-bit Processors"
2012.
30. ^ ARMv8-A Architecture Webpage; ARM Holdings.
31. ^ ARMv8 Architecture Technology Preview (Slides); ARM Holdings.
32. ^ ARMv8-R Architecture Webpage; ARM Holdings.
33. ^ "ARM Cortex-R Architecture"
34. ^ "Line Card"
35. ^ Parrish, Kevin (14 July 2011). "One Million ARM Cores Linked to Simulate Brain"
36. ^ "Processor mode"
37. ^ "KVM/ARM"
43. ^ 2.14. The program status registers - Cortex-A8 Technical Reference Manual
44. ^ "9.1.2. Instruction cycle counts"
. Arm.com. Archived
page ii
48. ^ Jaggar, Dave (1996). ARM Architecture Reference Manual. Prentice Hall. pp. 61. ISBN 978-0-13-736299-8.
49. ^ "ARM Processor Instruction Set Architecture"
. Arm.com. Archived
52. ^ "Arm strengthens Java compilers: New 16-Bit Thumb-2EE Instructions Conserve System Memory"
53. ^ ARM Architecture Reference Manual, ARMv7-A and ARMv7-R edition, issue C.b, Section A2.10, 24 July 2012.
54. ^ "ARM Compiler toolchain Using the Assembler VFP coprocessor"
55. ^ "VFP directives and vector notation"
56. ^
a b
57. ^
a b
64. ^ "ARM, Gemalto and Giesecke & Devrient Form Joint Venture To"
65. ^ "ARM TrustZone and ARM Hypervisor Open Source Software"
66. ^ T6: TrustZone Based Trusted Kernel
67. ^ "APX and XN (execute never) bits have been added in VMSAv6 [Virtual Memory System Architecture]", ARM Architecture Reference Manual
Retrieved 2009/12/01.
68. ^ "AppliedMicro Showcases Worlds First 64-bit ARM v8 Core"
69. ^ "Samsung's Exynos 5433 is an A57/A53 ARM SoC"
70. ^ "PikeOS Safe and Secure Virtualization"
71. ^ "OS-9 Specifications"
72. ^ ARM Platform Port
. Microware.
73. ^ Linus Torvalds (1 October 2012). "Re: [GIT PULL] arm64: Linux kernel port"
Further reading
[edit]
Assembly Language Programming : ARM Cortex-M3; 1st Edition; Vincent Mahout; Wiley-ISTE; 256 pages; 2012; ISBN 978-1848213296.
The Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors; 3rd Edition; Joseph Yiu; Newnes; 600 pages; 2013; ISBN 978-
0124080829.
The Definitive Guide to the ARM Cortex-M3; 2nd Edition; Joseph Yiu; Newnes; 480 pages; 2009; ISBN 978-1-85617-963-8. (Online Sample)
The Definitive Guide to the ARM Cortex-M0; 1st Edition; Joseph Yiu; Newnes; 552 pages; 2011; ISBN 978-0-12-385477-3. (Online Sample)
An Introduction To Reverse Engineering for Beginners" including ARM assembly; Dennis Yurichev; online book
External links
Official website
[edit]
, ARM Ltd.
, ARM
, ARM
V T E
[show]
V T E
[show]
V T E
[show]
V T E
[show]
V T E
Microcontrollers
[show]
1983 introductions
Acorn Computers
Mobile view