ARM Architecture from Wikipedia, the Free Encyclopedia
Total Page:16
File Type:pdf, Size:1020Kb
ARM architecture From Wikipedia, the free encyclopedia ARM is a family of instruction set architectures for computer ARM architectures processors based on a reduced instruction set computing (RISC) architecture developed by British company ARM Holdings. A RISC-based computer design approach means ARM The ARM logo processors require significantly fewer transistors than typical Designer ARM Holdings CISC x86 processors in most personal computers. This approach reduces costs, heat and power use. These are Bits 32-bit, 64-bit desirable traits for light, portable, battery-powered devices— Introduced 1985 including smartphones, laptops, tablet and notepad computers, and other embedded systems. A simpler design Design RISC facilitates more efficient multi-core CPUs and higher core Type Register-Register counts at lower cost, providing improved energy efficiency Branching Condition code for servers.[3][4][5] Open Proprietary ARM Holdings develops the instruction set and architecture for ARM-based products, but does not manufacture 64/32-bit architecture products. The company periodically releases updates to its Introduced 2011 cores. Current cores from ARM Holdings support a 32-bit address space and 32-bit arithmetic; the ARMv8-A Version ARMv8-A architecture, announced in October 2011,[6] adds support Encoding AArch64/A64 and AArch32/A32 use for a 64-bit address space and 64-bit arithmetic. Instructions 32-bit instructions, T32 (Thumb2) for ARM Holdings' cores have 32-bit-wide fixed-length uses mixed 16- and 32-bit instructions. instructions, but later versions of the architecture also support ARMv7 user-space compatibility[1] a variable-length instruction set that provides both 32-bit and 16-bit-wide instructions for improved code density. Some Endianness Bi (Little as default) cores can also provide hardware execution of Java Extensions All mandatory: Thumb-2, NEON, bytecodes. Jazelle, VFPv4-D16, VFPv4 ARM Holdings licenses the chip designs and the ARM Registers instruction set architectures to third-parties, who design their General 31x 64-bit integer registers[1] plus PC own products that implement one of those architectures— purpose including systems-on-chips (SoC) that incorporate memory, and SP, ELR, SPSR for exception interfaces, radios, etc. Currently, the widely used Cortex levels cores, older "classic" cores, and specialized SecurCore cores Floating 32× 128-bit registers,[1] scalar 32- and variants are available for each of these to include or exclude point 64-bit FP, SIMD 64- and 128-bit FP optional capabilities. Companies that produce ARM and integer products include Apple, Nvidia, Qualcomm, Rockchip, Samsung Electronics, and Texas Instruments. Apple first implemented the ARMv8-A architecture in the Apple A7 32-bit architectures (Cortex) chip in the iPhone 5S. Version ARMv8-R, ARMv7-A, ARMv7-R, ARMv7E-M, ARMv7-M, ARMv6-M In 2005, about 98% of all mobile phones sold used at least Encoding 32-bit except Thumb2 extensions use one ARM processor.[7] The low power consumption of mixed 16- and 32-bit instructions. ARM processors has made them very popular: 37 billion Endianness Bi (Little as default) ARM processors have been produced as of 2013, up from Extensions Thumb-2 (mandatory since ARMv7), 10 billion in 2008.[8] The ARM architecture (32-bit) is the most widely used architecture in mobile devices, and most NEON, Jazelle, FPv4-SP popular 32-bit one in embedded systems.[9] Registers General 16x 32-bit integer registers including According to ARM Holdings, in 2010 alone, producers of purpose PC and SP chips based on ARM architectures reported shipments of 6.1 billion ARM-based processors, representing 95% of Floating Up to 32× 64-bit registers,[2] smartphones, 35% of digital televisions and set-top boxes point SIMD/floating-point (optional) and 10% of mobile computers. It is the most widely used 32- bit instruction set architecture in terms of quantity 32-bit architectures (legacy) produced.[10][11] Version ARMv6, ARMv5, ARMv4T, ARMv3, ARMv2 Contents Encoding 32-bit except Thumb extension uses mixed 16- and 32-bit instructions. 1 History Endianness Bi (Little as default) in ARMv3 and 1.1 Acorn RISC Machine: ARM2 above 1.2 Apple, DEC, Intel, Marvell: ARM6, Extensions Thumb, Jazelle StrongARM, XScale Registers 2 Licensing 2.1 Core license General 16x 32-bit integer registers including 2.2 Architectural licence purpose PC (26-bit addressing in older) and SP 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) (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 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.[12] 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.[13] A visit to Microprocessor-based system on a chip 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-of-the-art research and development facilities.[14] 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. Acorn RISC Machine: ARM2 The official Acorn RISC Machine project started in October 1983. They chose VLSI Technology as the silicon partner, as they were a source of ROMs and custom chips for Acorn. Wilson and Furber led the design. They implemented it with a similar efficiency ethos as the 6502.[15] A key design goal was achieving low-latency input/output (interrupt) handling like the 6502. The 6502's memory access architecture had let developers produce fast machines without costly direct memory access hardware. The ARM1 second processor for the BBC Micro 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.[16] 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. 8 bits from the program counter register were available for other purposes; the top 6 bits (available because of the 26-bit address space), served as status flags, and the bottom 2 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.[17] The ARM2 had a transistor count of just 30,000, compared to Motorola's six-year-older 68000 model with 68,000.[18] 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.[19] Apple, DEC, Intel, Marvell: ARM6, StrongARM, XScale In the late 1980s Apple Computer and VLSI Technology started working with Acorn on newer versions of the ARM core. In 1990, Acorn spun off the design team into a new company named Acorn RISC Machines Ltd., which became ARM Ltd when its parent company, ARM Holdings plc, floated on the London Stock Exchange and NASDAQ in 1998.[20] The new Apple-ARM work would eventually evolve into the ARM6, first released in early 1992.