en wikipedia org wiki arm architecture

Upload: siphosethusidloyi

Post on 02-Jun-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    1/11

    ARM architecture

    ARM architectures

    The ARM logo

    Designer ARM Holdings

    Bits 32-bit, 64-bit

    Introduced 1985

    Design RISC

    Type Register-Register

    Branching Condition code

    Open Proprietary

    64/32-bit architecture

    Introduced 2011

    Version ARMv8-A

    Encoding AArch64/A64 and AArch32/A32

    use 32-bit instructions, T32(Thumb-2) uses mixed 16- and

    32-bit instructions. ARMv7 user-

    spacecompatibility[1]

    Endianness Bi(little as default)

    Extensions All mandatory: Thumb-2, NEON,

    Jazelle, VFPv4-D16, VFPv4

    Registers

    General

    purpose

    31x 64-bit integer registers[1]plus

    PC and SP, ELR, SPSR for

    exception levels

    Floating

    point

    32 128-bitregisters[1]for scalar

    32- and 64-bit FPor SIMDFP or

    integer; or cryptography

    32-bit architectures (Cortex)Version ARMv8-R, ARMv7-A, ARMv7-R,

    ARMv7E-M, ARMv7-M, ARMv6-M

    Encoding 32-bit except Thumb-2 extensions

    use mixed 16- and 32-bit

    instructions.

    Endianness Bi(little as default)

    Extensions Thumb-2(mandatory since

    ARMv7), NEON, Jazelle, FPv4-SP

    Registers

    General

    purpose

    16x 32-bit integer registers

    including PC and SP

    Floating

    point

    Up to 32 64-bit registers,[2]

    SIMD/floating-point (optional)

    32-bit architectures (legacy)Version ARMv6, ARMv5, ARMv4T,

    ARMv3, ARMv2

    Encoding 32-bit except Thumb extension

    uses mixed 16- and 32-bit

    instructions.

    Endianness Bi(little as default) in ARMv3 and

    above

    Extensions Thumb, Jazelle

    Registers

    General

    purpose

    16x 32-bit integer registers

    including PC (26-bit addressing in

    older) and SP

    From Wikipedia, the free encyclopedia

    ARMis a family of instruction set architecturesfor computer processorsbased on a reduced

    instruction set computing(RISC) architecturedeveloped by British company ARM Holdings.

    A RISC-based computer design approach means ARM processors require significantly fewer

    transistors than typical CISCx86processors in most personal computers. This approach reduces

    costs, heat and power use. These are desirable traits for light, portable, battery-powered devices

    including smartphones, laptops, tabletand notepad computers, and other embedded systems. A

    simpler design facilitates more efficient multi-coreCPUs and higher core counts at lower cost,

    providing improved energyefficiency for servers.[3][4][5]

    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-bitaddress spaceand32-bit arithmetic; the ARMv8-A architecture,

    announced in October 2011,[6]adds support for a 64-bitaddress space and 64-bit arithmetic.

    Instructions for ARM Holdings' cores have 32 bits wide fixed-length instructions, but later versions of

    the architecture also support a variable-length instruction set that provides both 32 and 16 bits wide

    instructions for improved code density. Some cores can also provide hardware execution of Java

    bytecodes.

    ARM Holdings licensesthe chip designs and the ARM instruction set architectures to third parties,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 SecurCorecores variants are available for each of these to

    include or exclude optional capabilities. Companiesthat make chips that implement an ARM

    architecture include Apple, AppliedMicro, Atmel, Broadcom, Freescale Semiconductor, Nvidia, NXP,

    Qualcomm, Samsung Electronics, ST Microelectronicsand Texas Instruments. Qualcomm introduces

    new three-layer 3D chip stacking in their 2014-15 ARM SoCs such as in their first 20 nm64-bit octa-

    core.[7]

    Globally ARM is the most widely used instruction set architecture in terms of quantity

    produced.[8][9][10][11][12] The low power consumption of ARM processors has made them very popular:

    over 50 billion ARM processors have been produced as of 2014, thereof 10 billion in 2013[13]and

    "ARM-based chips are found in nearly 60 percent of the worlds mobile devices". In 2008, 10 billion

    chips had been produced.[14]The ARM architecture (32-bit) is the most widely used architecture in

    mobile devices, and most popular 32-bit one in embedded systems.[15]In 2005, about 98% of all

    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 televisionsand set-top boxesand 10%

    of mobile computers.

    Article Talk Read Edit Vie More Search

    Edit links

    Main page

    Contents

    Featuredcontent

    CurrenteventsRandom article

    Donate to Wikipedia

    Wikimedia Shop

    Interaction

    Help

    AboutWikipedia

    Community portal

    Recent changes

    Contact page

    Tools

    What linkshere

    Related changes

    Upload file

    Special pages

    Permanent linkPage information

    Wikidata item

    Cite this page

    Print/export

    Create a book

    Download as PDF

    Printable version

    Languages

    ()

    Catal

    etina

    Dansk

    Deutsch

    Eesti

    Espaol

    Franais

    Bahasa Indonesia

    Italiano

    Latvieu

    Magyar

    Nederlands

    Norsk bokml

    PolskiPortugus

    Shqip

    Simple English

    Slovenina

    / srpski

    Srpskohrvatski /

    Suomi

    Svenska

    Trke

    Ting Vit

    Create account Log in

    http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Instruction_sethttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Floating_pointhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/General_purpose_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Endiannesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Smartphonehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Integrated_digital_televisionhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Set-top_boxeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Floating_pointhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/128-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/General_purpose_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Thumb-2http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NEON_(instruction_set)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/System_on_a_chiphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/User_spacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Semiconductor_intellectual_property_corehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Java_bytecodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Java_bytecodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Java_bytecodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/32-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Address_spacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Branch_(computer_science)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Computer_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Reduced_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Multi-core_processorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/32-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/64-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:ARM_logo.svghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:ARM_logo.svghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Reduced_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2//sr.wikipedia.org/wiki/ARM_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0http://localhost/var/www/apps/conversion/tmp/scratch_2//simple.wikipedia.org/wiki/ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2//ru.wikipedia.org/wiki/ARM_(%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0)http://localhost/var/www/apps/conversion/tmp/scratch_2//pl.wikipedia.org/wiki/Architektura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//ja.wikipedia.org/wiki/ARM%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3http://localhost/var/www/apps/conversion/tmp/scratch_2//kn.wikipedia.org/wiki/ARM_%E0%B2%86%E0%B2%B0%E0%B3%8D%E0%B2%95%E0%B2%BF%E0%B2%9F%E0%B3%86%E0%B2%95%E0%B3%8D%E0%B2%9A%E0%B2%B0%E0%B3%8D_(%E0%B2%B5%E0%B2%BF%E0%B2%A8%E0%B3%8D%E0%B2%AF%E0%B2%BE%E0%B2%B8)http://localhost/var/www/apps/conversion/tmp/scratch_2//id.wikipedia.org/wiki/Arsitektur_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//fr.wikipedia.org/wiki/Architecture_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//es.wikipedia.org/wiki/Arquitectura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//et.wikipedia.org/wiki/ARM_(arvutiarhitektuur)http://localhost/var/www/apps/conversion/tmp/scratch_2//da.wikipedia.org/wiki/ARM_(processorarkitektur)http://localhost/var/www/apps/conversion/tmp/scratch_2//ca.wikipedia.org/wiki/Advanced_RISC_Machineshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&printable=yeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:Cite&page=ARM_architecture&id=628422383http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=infohttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:SpecialPageshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:RecentChangesLinked/ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:RecentChangeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Help:Contentshttp://localhost/var/www/apps/conversion/tmp/scratch_2//shop.wikimedia.orghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:Randomhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Portal:Featured_contenthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2//www.wikidata.org/wiki/Q16980#sitelinks-wikipediahttp://localhost/var/www/apps/conversion/tmp/scratch_2//zh.wikipedia.org/wiki/ARM%E6%9E%B6%E6%A7%8Bhttp://localhost/var/www/apps/conversion/tmp/scratch_2//vi.wikipedia.org/wiki/C%E1%BA%A5u_tr%C3%BAc_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//uk.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//tr.wikipedia.org/wiki/ARM_mimarisihttp://localhost/var/www/apps/conversion/tmp/scratch_2//sv.wikipedia.org/wiki/ARM_(processorarkitektur)http://localhost/var/www/apps/conversion/tmp/scratch_2//fi.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//sh.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//sr.wikipedia.org/wiki/ARM_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0http://localhost/var/www/apps/conversion/tmp/scratch_2//sl.wikipedia.org/wiki/Arhitektura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//simple.wikipedia.org/wiki/ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2//sq.wikipedia.org/wiki/Arkitektura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//ru.wikipedia.org/wiki/ARM_(%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0)http://localhost/var/www/apps/conversion/tmp/scratch_2//pt.wikipedia.org/wiki/Arquitetura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//pl.wikipedia.org/wiki/Architektura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//no.wikipedia.org/wiki/ARM_(prosessorarkitektur)http://localhost/var/www/apps/conversion/tmp/scratch_2//ja.wikipedia.org/wiki/ARM%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3http://localhost/var/www/apps/conversion/tmp/scratch_2//nl.wikipedia.org/wiki/ARM-architectuurhttp://localhost/var/www/apps/conversion/tmp/scratch_2//ml.wikipedia.org/wiki/%E0%B4%86%E0%B4%82_%E0%B4%86%E0%B5%BC%E0%B4%95%E0%B5%8D%E0%B4%95%E0%B4%BF%E0%B4%9F%E0%B5%86%E0%B4%95%E0%B5%8D%E0%B4%9A%E0%B5%BChttp://localhost/var/www/apps/conversion/tmp/scratch_2//hu.wikipedia.org/wiki/ARM_architekt%C3%BArahttp://localhost/var/www/apps/conversion/tmp/scratch_2//lv.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//kn.wikipedia.org/wiki/ARM_%E0%B2%86%E0%B2%B0%E0%B3%8D%E0%B2%95%E0%B2%BF%E0%B2%9F%E0%B3%86%E0%B2%95%E0%B3%8D%E0%B2%9A%E0%B2%B0%E0%B3%8D_(%E0%B2%B5%E0%B2%BF%E0%B2%A8%E0%B3%8D%E0%B2%AF%E0%B2%BE%E0%B2%B8)http://localhost/var/www/apps/conversion/tmp/scratch_2//he.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//it.wikipedia.org/wiki/Architettura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//id.wikipedia.org/wiki/Arsitektur_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//ko.wikipedia.org/wiki/ARM_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98http://localhost/var/www/apps/conversion/tmp/scratch_2//fr.wikipedia.org/wiki/Architecture_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//fa.wikipedia.org/wiki/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C_%D8%A2%D8%B1%D9%85http://localhost/var/www/apps/conversion/tmp/scratch_2//es.wikipedia.org/wiki/Arquitectura_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//el.wikipedia.org/wiki/%CE%91%CF%81%CF%87%CE%B9%CF%84%CE%B5%CE%BA%CF%84%CE%BF%CE%BD%CE%B9%CE%BA%CE%AE_ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//et.wikipedia.org/wiki/ARM_(arvutiarhitektuur)http://localhost/var/www/apps/conversion/tmp/scratch_2//de.wikipedia.org/wiki/ARM-Architekturhttp://localhost/var/www/apps/conversion/tmp/scratch_2//da.wikipedia.org/wiki/ARM_(processorarkitektur)http://localhost/var/www/apps/conversion/tmp/scratch_2//cs.wikipedia.org/wiki/ARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2//ca.wikipedia.org/wiki/Advanced_RISC_Machineshttp://localhost/var/www/apps/conversion/tmp/scratch_2//be-x-old.wikipedia.org/wiki/ARM_(%D0%BF%D1%80%D0%B0%D1%86%D1%8D%D1%81%D0%B0%D1%80)http://localhost/var/www/apps/conversion/tmp/scratch_2//ar.wikipedia.org/wiki/%D8%A5%D9%8A%D9%87.%D8%A2%D8%B1.%D8%A5%D9%85_(%D9%85%D8%B9%D8%A7%D9%84%D8%AC)http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&printable=yeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:Book&bookcmd=render_article&arttitle=ARM+architecture&oldid=628422383&writer=rdf2latexhttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:Book&bookcmd=book_creator&referer=ARM+architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:Cite&page=ARM_architecture&id=628422383http://localhost/var/www/apps/conversion/tmp/scratch_2//www.wikidata.org/wiki/Q16980http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=infohttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&oldid=628422383http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:SpecialPageshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:File_Upload_Wizardhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:RecentChangesLinked/ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:WhatLinksHere/ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/wiki/Wikipedia:Contact_ushttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:RecentChangeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Community_portalhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Abouthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Help:Contentshttp://localhost/var/www/apps/conversion/tmp/scratch_2//shop.wikimedia.orghttps://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=enhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:Randomhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Portal:Current_eventshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Portal:Featured_contenthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Portal:Contentshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Main_Pagehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=historyhttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Talk:ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:UserLogin&returnto=ARM+architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Special:UserLogin&returnto=ARM+architecture&type=signuphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Mobile_computerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Set-top_boxeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Integrated_digital_televisionhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Smartphonehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Multi-core_processorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/22_nanometerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Texas_Instrumentshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ST_Microelectronicshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Samsung_Electronicshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Qualcommhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NXPhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Nvidiahttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Freescale_Semiconductorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Broadcomhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Atmelhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/AppliedMicrohttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_Inc.http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_SecurCorehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/System_on_a_chiphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Semiconductor_intellectual_property_corehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Java_bytecodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/64-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Address_spacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/32-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Server_(computing)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Multi-core_processorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Embedded_systemhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Tablet_computerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Laptophttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Smartphonehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Personal_computershttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/X86http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Complex_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Computer_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Reduced_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Central_processing_unithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Instruction_set_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/General_purpose_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Jazellehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Thumbhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Bi-endianhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Endiannesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Instruction_sethttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Floating_pointhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/General_purpose_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Jazellehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NEON_(instruction_set)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Thumb-2http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Bi-endianhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Endiannesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Instruction_sethttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/SIMDhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/IEEE_754http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/128-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Floating_pointhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/General_purpose_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Jazellehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NEON_(instruction_set)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Thumb-2http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Bi-endianhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Endiannesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/User_spacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Instruction_sethttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Branch_(computer_science)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Reduced_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Computer_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/64-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/32-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:ARM_logo.svg
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    2/11

    Microprocessor-based system on a chip

    The ARM1 second processor for theBBC Micro

    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 set4.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 Computersfirst developed ARM in the 1980s to use

    in its personal computers. Its first ARM-based products were coprocessor modules for the

    BBC Microseries of computers. After the successful BBC Micro computer, Acorn Computers

    considered how to move on from the relatively simple MOS Technology 6502processor 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 68000and

    National Semiconductor 32016were 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 RISCproject, Acorn considered

    designing its own processor.[18]A visit to the Western Design Centerin Phoenix, where the6502 was being updated by what was effectively a single-person company, showed Acorn

    engineers Steve Furberand Sophie Wilsonthey did not need massive resources and state-of-

    the-art research and developmentfacilities.[19]

    Wilson developed the instruction set, writing a simulation of the processor in BBC BASICthat

    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 [edit]

    The official Acorn RISC Machineproject started in October 1983. They chose VLSI Technologyas 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.[20]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 accesshardware.

    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 softwareused in ARM2 development. Wilson subsequently rewrote BBC BASIC in

    http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/CAD_softwarehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Direct_memory_accesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/VLSI_Technologyhttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=2http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Hermann_Hauserhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/BBC_BASIChttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Research_and_developmenthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Sophie_Wilsonhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Steve_Furberhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Western_Design_Centerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Berkeley_RISChttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/National_Semiconductor_32016http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Motorola_68000http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Acorn_Business_Computerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/IBM_PChttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/MOS_Technology_6502http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/BBC_Microhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Acorn_Computershttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:Acorn-ARM-Evaluation-System.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:Acorn-ARM-Evaluation-System.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:ARMSoCBlockDiagram.svghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:ARMSoCBlockDiagram.svghttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=1
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    3/11

    Dieof an ARM610 microprocessor.

    Dieof a STM32F103VGT6 ARMCortex-M3microcontroller with1 megabyteflash memorybySTMicroelectronics .

    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 pr incipally 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 Technologyfor the ARM.

    The ARM2 featured a 32-bit data bus, 26-bitaddress space and 27 32-bit registers. Eight bits from the program counterregister 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 MBof memory in 26-bit compatibility mode, due to the reserved bits for the status flags.[22]The ARM2 had a

    transistor countof 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]

    Apple, DEC, Intel, Marvell: ARM6, StrongARM, XScale [edit]

    In the late 1980s Apple Computerand VLSI Technologystarted 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 Holdingsplc, floated on the London Stock

    Exchangeand NASDAQin 1998.[25]

    The new Apple-ARM work would eventually evolve into the ARM6, first released in early 1992. Apple used

    the ARM6-based ARM610 as the basis for their Apple Newton PDA. In 1994, Acorn used the ARM610 as

    the main central processing unit(CPU) in their RiscPCcomputers. DEClicensed the ARM6 architecture

    and produced the StrongARM. At 233 MHz, this CPU drew only one watt ( newer versions draw far less).

    This work was later passed to Intel as a par t of a lawsuit settlement, and Intel took the opportunity to

    supplement their i960line with the StrongARM. Intel later developed its own high performance

    implementation named XScale, which it has since sold to Marvell. Transistor count of the ARM core

    remained essentially the same size throughout these changes; ARM2 had 30,000 transistors, while ARM6grew only to 35,000.[citation needed]

    Licensing [edit]See also: ARM Holdings Licensees

    Core licence [edit]

    ARM Holdings' primary business is selling IP cores, which licensees use to create microcontrollers(MCUs)

    and CPUsbased on those cores. The original design manufacturercombines the ARM core with other

    parts to produce a complete CPU, typically one that can be built in existing semiconductor fabsat low cost

    and still deliver substantial performance. The most successful implementation has been the ARM7TDMI

    with hundreds of millions sold. Atmel has been a precursor design center in the ARM7TDMI-based

    embedded system.

    The ARM architectures used in smartphones, PDAs and other mobile devicesrange from ARMv5, used in

    low-end devices, through ARMv6, to ARMv7 in current high-end devices. ARMv7 includes a hardware

    floating-point unit(FPU), with improved speed compared to software-based floating-point.

    In 2009, some manufacturers introduced netbooks based on ARM architecture CPUs, in direct competition

    with netbooks based on Intel Atom.[26]According to analyst firm IHS iSuppli, by 2015, ARM ICs may be in

    23% of all laptops.[27]

    ARM Holdings offers a variety of licensing terms, varying in cost and deliverables. ARM Holdings provides to all licensees an integratable hardware

    description of the ARM core as well as complete software development toolset (compiler, debugger, software development kit) and the right to sell

    manufactured siliconcontaining the ARM CPU.

    SoC packages integrating ARM's core designs include Nvidia Tegra's first three generations, CSR plc's Quatro family, ST-Ericsson's Nova and

    NovaThor, Silicon Labs's Precision32 MCU, Texas Instruments's OMAP products, Samsung's Hummingbird and Exynosproducts, Apple's A4, A5,

    and A5X, and Freescale's i.MX.

    Fablesslicensees, who wish to integrate an ARM core into their own chip design, are usually only interested in acquiring a ready-to-manufacture

    verified IP core. For these customers, ARM Holdings delivers a gate netlistdescription of the chosen ARM core, along with an abstractedsimulation model and test programs to aid design integration and verification. More ambitious customers, including integrated device

    manufacturers (IDM) and foundry oper ators, choose to acquire the processor IP in synthesizableRTL(Verilog) form. With the synthesizable RTL,

    the customer has the ability to perform architectural level optimisations and extensions. This allows the designer to achieve exotic design goals not

    otherwise possible with an unmodified netlist (high clock speed, very low power consumption, instruction set extensions, etc.). While ARM Holdings

    does not grant the licensee the right to resell the ARM architecture itself, licensees may freely sell manufactured product such as chip devices,

    evaluation boards and complete systems. Merchant foundriescan be a special case; not only are they allowed to sell finished silicon containing

    ARM cores, they generally hold the right to re-manufacture ARM cores for other customers.

    ARM Holdings prices its IP based on perceived value. Lower performing ARM cores typically have lower licence costs than higher performing

    cores. In implementation terms, a synthesizable core costs more than a hard macro ( blackbox) core. Complicating price matters, a merchant

    foundry that holds an ARM licence, such as Samsung or Fujitsu, can offer fab customers reduced licensing costs. In exchange for acquiring the

    ARM core through the foundry's in-house design services, the customer can reduce or eliminate payment of ARM's upfront licence fee.

    Compared to dedicated semiconductor foundries (such as TSMCand UMC) without in-house design services, Fu jitsu/Samsung charge two- to

    three-times more per manufactured wafer.[citation needed]For low to mid volume applications, a design service foundry offers lower overall pricing

    (through subsidisation of the licence fee). For high volume mass-produced parts, the long term cost reduction achievable through lower wafer

    pricing reduces the impact of ARM's NRE (Non-Recurring Engineering) costs, making the dedicated foundry a better choice.

    Architectural licence [edit]

    Companies can also obtain an ARM architectural licencefor designing their own CPU cores using the ARM instruction sets. These cores must

    comply fully with the ARM architecture.

    http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=6http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Citation_neededhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wafer_(electronics)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/United_Microelectronics_Corporationhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/TSMChttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Merchant_foundryhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Clock_ratehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Veriloghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Register_transfer_levelhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Logic_synthesishttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Netlisthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/IP_corehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Fablesshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A5Xhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A5http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A4http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Exynoshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Semiconductor_devicehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Software_development_kithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Debuggerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Compilerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Intel_Atomhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Floating-point_unithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Mobile_devicehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM7http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Fab_(semiconductors)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Original_design_manufacturerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/CPUhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microcontrollerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/IP_corehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=5http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/STMicroelectronicshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Flash_memoryhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Megabytehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M3http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Die_(integrated_circuit)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:STM32F103VGT6-HD.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:STM32F103VGT6-HD.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdings#Licenseeshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=4http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Citation_neededhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Marvell_Technology_Grouphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Intel_i960http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Hertzhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Digital_Equipment_Corporationhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/RiscPChttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Central_processing_unithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NASDAQhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/London_Stock_Exchangehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/VLSI_Technologyhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_Computerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Die_(integrated_circuit)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:GPS_ARM610_die.JPGhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:GPS_ARM610_die.JPGhttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=3http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Kibibytehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Intel_80286http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/CPU_cachehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microcodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microprocessor_chronology#1980shttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Mebibytehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Data_structure_alignmenthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Program_counterhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Processor_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/26-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Bus_(computing)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Queen%27s_Award_for_Technologyhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Acorn_Archimedes
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    4/11

    Tronsmart MK908, a Rockchip-based quad-core Android "mini PC",with a microSD card next to it for a sizecomparison.

    Cores [edit]Main article: List of ARM cores

    ArchitectureBit

    widthCores designed by ARM Holdings Cores designed by third parties Cortex profile References

    ARMv1 32/26 ARM1

    ARMv2 32/26 ARM2, ARM3 Amber, STORM Open Soft Core[28]

    ARMv3 32 ARM6, ARM7

    ARMv4 32 ARM8 StrongARM, FA526

    ARMv4T 32 ARM7TDMI, ARM9TDMI

    ARMv5 32 ARM7EJ, ARM9E, ARM10E XScale, FA626TE, Feroceon, PJ1/Mohawk

    ARMv6 32 ARM11

    ARMv6-M 32ARM Cortex-M0, ARM Cortex-M0+, ARM

    Cortex-M1Microcontroller

    ARMv7-M 32 ARM Cortex-M3 Microcontroller

    ARMv7E-M 32 ARM Cortex-M4 Microcontroller

    ARMv7-R 32ARM Cortex-R4, ARM Cortex-R5, ARM

    Cortex-R7Real-time

    ARMv7-A 32

    ARM Cortex-A5, ARM Cortex-A7, ARM

    Cortex-A8, ARM Cortex-A9, ARM Cortex-

    A12, ARM Cortex-A15, ARM Cortex-A17

    Krait, Scorpion, PJ4/Sheeva, Apple A6/A6X(Swift ) Application

    ARMv8-A 64/32 ARM Cortex-A53, ARM Cortex-A57[29] X-Gene, Denver, Apple A7(Cyclone), AMD K12,

    Apple A8 Application[30][31]

    ARMv8-R 32 No announcements yet 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]

    Example applications of ARM cores [edit]

    Main article: List of applications of ARM cores

    ARM cores are used in a number of products, particularly PDAsand smartphones. Some computing

    examples are the Microsoft Surface, Apple's iPad and ASUS Eee Pad Transformer. Others include Apple's

    iPhone smartphone and iPod portable media player, Canon PowerShot A470digital camera, Nintendo DS

    handheld game console and TomTomturn-by-turn navigation system.

    In 2005, ARM Holdings took part in the development of Manchester University's computer, SpiNNaker,

    which used ARM cores to simulate the human brain.

    [35]

    ARM chips are also used in Raspberry Pi, BeagleBoard, BeagleBone, PandaBoardand other single-board

    computers, because they are very small, inexpensive and consume very little power.

    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" p rofile: Cortex-Aseries

    R-profile, the "Real-time" profile: Cortex-Rseries

    M-profile, the "Microcontroller" profile: Cortex-Mseries

    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.

    CPU modes [edit]

    Except in the M-profile, the 32-bit ARM architecture specifies several CPU modes, depending on the implemented architecture features. At any

    moment in time, the CPU can be in only one mode, but it can switch modes due to external events (interrupts) or programmatically.[36]

    User mode:The only non-privileged mode.

    FIQ mode:A privileged mode that is entered whenever the processor accepts an FIQ interrupt.

    IRQ mode:A privileged mode that is entered whenever the processor accepts an IRQ interrupt.

    Supervisor (svc) mode:A privileged mode entered whenever the CPU is reset or when an SVC instruction is executed.

    Abort mode:A privileged mode that is entered whenever a prefetch abort or data abort exception occurs.

    Undefined mode:A privileged mode that is entered whenever an undefined instruction exception occurs.

    System mode (ARMv4 and above):The only privileged mode that is not entered by an exception. It can only be entered by executing an

    instruction that explicitly writes to the mode bits of the CPSR.Monitor mode (ARMv6 and ARMv7 Security Extensions, ARMv8 EL3):A monitor mode is introduced to support TrustZone extension in ARM

    cores.

    Hyp mode (ARMv7 Virtualization Extensions, ARMv8 EL2):A hypervisor mode that supports Popek and Goldberg virtualization requirements

    for the non-secure operation of the CPU.[37][38]

    Instruction set [edit]

    http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=11http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Popek_and_Goldberg_virtualization_requirementshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=10http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M1http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M0%2Bhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M0http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-Mhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-Rhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-Ahttp://infocenter.arm.com/help/index.jsphttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=9http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Single-board_computerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/PandaBoardhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/BeagleBonehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/BeagleBoardhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Raspberry_Pihttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/SpiNNakerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/TomTomhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Nintendo_DShttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Canon_PowerShot_A470http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ASUS_Eee_Pad_Transformerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microsoft_Surfacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Smartphonehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/PDAhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Rockchiphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:Quad-core_Android_%22mini_PC%22,_with_a_microSD_card_next_to_it_for_a_size_comparison.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/File:Quad-core_Android_%22mini_PC%22,_with_a_microSD_card_next_to_it_for_a_size_comparison.jpghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_applications_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=8http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A8http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/AMD_K12http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A7http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Project_Denverhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Applied_Micro_Circuits_Corporation#Historyhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A57http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A53http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A6Xhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Apple_A6http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Scorpion_(CPU)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Krait_(CPU)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A17http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A15http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A12http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A9http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A8http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A7http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-A5http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Real-time_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-R7http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-R5http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-R4http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M4http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M3http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M1http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M0%2Bhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Cortex-M0http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM11http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/XScalehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM10Ehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM9Ehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM7EJhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM9TDMIhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM7TDMIhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/StrongARMhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_ARM_microprocessor_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM7http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM6http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Amber_(processor_core)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM3http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM2http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM1http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/List_of_ARM_coreshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=7
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    5/11

    Registers across CPU modes

    usr sys svc abt und irq fiq

    R0

    R1

    R2

    R3

    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

    SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

    The original (and subsequent) ARM implementation was hardwired without microcode, like the much simpler 8-bit6502processor 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 accessesin 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 wereused:

    Conditional execution of most instructions reduces branch overhead and compensates for the lack of a branch predictor.

    Arithmetic instructions alter condition codesonly when desired.

    32-bit barrel shiftercan be used without performance penalty with most arithmetic instructions and address calculations.

    Has powerful indexed addressing modes.

    A link registersupports fast leaf function calls.

    A simple, but fast, 2-priority-level interruptsubsystem 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 a ll CPU modes; they are never

    banked.

    R13 and R14 are banked across all privileged CPU modes except system

    mode. That is, each mode that can be entered because of an exception has its

    own R13 and R14. These registers generally contain the stack pointer and the

    return address from function calls, respectively.

    Aliases:

    R13 is also referred to as SP, the Stack Pointer.

    R14 is also referred to as LR, the Link Register.R15 is also referred to as PC, the Program Counter.

    CPSR has the following 32 bits. [43]

    M (bits 04) is the processor mode bits.

    T (bit 5) is the Thumb state bit.

    F (bit 6) is the FIQ disable bit.

    I (bit 7) is the IRQ disable bit.

    A (bit 8) is the imprecise data abort d isable bit.

    E (bit 9) is the data endianness bit.

    IT (bits 1015 and 2526) is the if-then state bits.

    GE (bits 1619) is the greater-than-or-equal-to bits.

    DNM (bits 2023) is the do not modify bits.

    J (bit 24) is the Java state bit.

    Q (bit 27) is the sticky overflow bit.V (bit 28) is the overflow bit.

    C (bit 29) is the carry/borrow/extend bit.

    Z (bit 30) is the zero bit.

    N (bit 31) is the negative/less than bit.

    Conditional execution [edit]

    Almost every ARM instruction has a conditional execution feature called predication, which is implemented with a 4-bit condition code selector (the

    predicate). To allow for unconditional execution, one of the four-bit codes causes the instruction to be always executed. Most other CPU

    architectures only have condition codes on branch instructions.

    Though the predicate takes up four of the 32 bits in an instruction code, and thus cuts down significantly on the encoding bits available for

    displacements in memory access instructions, it avoids branch instructions when generating code for small if statements. Apart from eliminating

    the branch instructions themselves, this preserves the fetch/decode/execute pipeline at the cost of only one cycle per skipped instruction.

    The standard example of conditional execution is the subtraction-based Euclidean algorithm:

    In the C programming language, the loop is:

    while(i !=j) { if(i >j) { i -=j; }

    http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/C_(programming_language)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Euclidean_algorithmhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Conditional_(programming)http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Branch_predicationhttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=14http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=13http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=12http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Interrupthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Link_registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Addressing_modehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Barrel_shifterhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Condition_Code_Registerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Branch_predictorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Motorola_68020http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Code_densityhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Pipelininghttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Register_filehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Linearizabilityhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Data_structure_alignmenthttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Load/store_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/MOS_Technology_6502http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/8-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microcode
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    6/11

    else/* i < j (since i != j in while condition) */ { j -=i; } }

    In ARM assembly, the loop is:

    loop: CMP Ri,Rj ; set condition "NE" if (i != j), ; "GT" if (i > j), ; or "LT" if (i < j) SUBGT Ri,Ri,Rj ; if "GT" (Greater Than), i = i-j; SUBLT Rj,Rj,Ri ; if "LT" (Less Than), j = j-i; BNE loop ; if "NE" (Not Equal), then loop

    which avoids the branches around the then and else clauses. If Ri and Rj are equal then neither of the SUB instructions will be executed,

    eliminating the need for a conditional branch to implement the while check at the top of the loop, for example had SUBLE (less than or equal)

    been used.

    One of the ways that Thumb code provides a more dense encoding is to remove the four bit selector from non-branch instructions.

    Other features [edit]

    Another feature of the instruction setis the ability to fold shifts and rotates into the "data processing" (arithmetic, logical, and register-register

    move) instructions, so that, for example, the C statement

    a +=(j

  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    7/11

  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    8/11

    Some devices such as the ARM Cortex-A8 have a cut-down VFPLitemodule 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 opcode-

    compatible 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-pointexceptions. 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-accumulateinstructions 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 DebianLinux 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]

    Advanced SIMD (NEON) [edit]

    The Advanced SIMDextension (aka NEONor "MPE" Media Processing Engine) is a combined 64- and 128-bitSIMD instruction set that provides

    standardized acceleration for media and signal processing applications. NEON is included in all Cortex-A8 devices but is optional in Cortex-A9

    devices.[59]NEON can execute MP3 audio decoding on CPUs running at 10 MHz and can run the GSMadaptive multi-rate(AMR) speech codecat

    no more than 13 MHz. It features a comprehensive instruction set, separate register files and independent execution hardware.[60]NEON supports

    8-, 16-, 32- and 64-bit integer and single-precision (32-bit) floating-point data and SIMD operations for handling audio and video processing as

    well as graphics and gaming processing. In NEON, the SIMD supports up to 16 operations at the same time. The NEON hardware shares the

    same floating-point registers as used in VFP. Devices such as the ARM Cortex-A8 and Cortex-A9 support 128-bit vectors but will execute with

    64 bits at a time,[56]whereas newer Cortex-A15 devices can execute 128 bits at a time.

    ProjectNe10 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 setof highly optimized NEON intrinsic and assembly code examples for common DSP, arithmetic and image pr ocessing routines. The code is

    available on GitHub .

    Security extensions (TrustZone) [edit]

    The Security Extensions, marketed as TrustZone Technology, is in ARMv6KZ and later application profile architectures. It provides a low-cost

    alternative to adding another dedicated security core to an SoC, by providing two virtual processors backed by hardware based access control.

    This lets the application core switch between two states, referred to as worlds (to reduce confusion with other names for capability domains), in

    order to prevent information from leaking from the more trusted world to the less trusted world. This world switch is generally orthogonal to all

    other capabilities of the processor, thus each world can operate independently of the other while using the same core. Memory and peripherals

    are then made aware of the operating world of the core and may use this to provide access control to secrets and code on the device.[61]

    Typical applications of TrustZone Technology are to run a rich operating system in the less trusted world, and smaller security-specialized code in

    the more trusted world (named TrustZone Software, a TrustZone optimised version of the Trusted Foundations Software developed by Trusted

    Logic Mobility ), allowing much tighter digital rights managementfor controlling the use of media on ARM-based devices,[62]and preventing any

    unapproved use of the device. Trusted Foundations Software was acquired by Gemalto. Giesecke & Devrient developed a rival implementationnamed Mobicore. In April 2012 ARM Gemalto and Giesecke & Devrient combined their TrustZone portfolios into a joint venture T rustonic.[63][64]

    Open Virtualization[65]and T6[66]are open source implementations of the trusted world architecture for TrustZone.

    In practice, since the specific implementation details of TrustZone are proprietary and have not been publicly disclosed for review, it is unclear

    what level of assurance is provided for a given threat model.[citation needed]

    No-execute page protection [edit]

    As of ARMv6, the ARM architecture supports no-execute page protection, which is referred to as XN, for eXecute Never.[67]

    ARMv8-R [edit]

    The ARMv8-Rsub-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]

    http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Hypervisorhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/User_spacehttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=31http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=30http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=29http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/NX_bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=28http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Citation_neededhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Threat_modelhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Digital_rights_managementhttp://www.tl-mobility.com/http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=27https://github.com/projectNe10/Ne10http://projectne10.org/http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Codechttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Adaptive_multi-rate_compressionhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/GSMhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/128-bithttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=26http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Debianhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Fused_multiply%E2%80%93addhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Half-precision_floating-point_formathttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Opcodehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/MMX_(instruction_set)http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=Floating_Point_Accelerator&action=edit&redlink=1
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    9/11

  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    10/11

    http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/9780124080829http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/9781848213296http://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=38http://thread.gmane.org/gmane.linux.kernel/1367774/focus=1367868http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Link_rothttp://opensolaris.org/os/project/osarm/http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microwarehttp://www.microware.com/index.php/specificationshttp://www.arm.com/community/partners/display_product/rw/ProductId/4201/http://www.anandtech.com/show/8537/samsungs-exynos-5433-is-an-a57a53-arm-sochttp://www.businesswire.com/news/home/20111027006673/en/AppliedMicro-Showcases-World?s-64-bit-ARM-v8-Corehttp://www.arm.com/miscPDFs/14128.pdfhttp://www.liwenhaosuper.com/projects/t6http://www.openvirtualization.org/http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://www.arm.com/about/newsroom/arm-gemalto-giesecke-devrient-form-joint-venture-deliver-next-generation-security.phphttp://www.trustonic.com/http://news.thomasnet.com/companystory/476887http://genode.org/documentation/articles/trustzonehttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0409f/Chdceejc.htmlhttp://www.arm.com/products/processors/cortex-a/cortex-a9.phphttp://wiki.debian.org/ArmHardFloatPorthttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/BABDAHCE.htmlhttp://www.shervinemami.info/armAssembly.html#cortex-a9http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Chdehgeh.htmlhttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473e/CHDHAGGE.htmlhttp://www.arm.com/miscPDFs/10069.pdfhttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0290g/I1005458.htmlhttp://www.linuxdevices.com/news/NS7814673959.htmlhttp://web.archive.org/web/20090415171228/http://arm.com/products/CPUs/architecture.htmlhttp://www.arm.com/products/CPUs/architecture.htmlhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/978-0-13-736299-8http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/International_Standard_Book_Numberhttp://www.atmel.com/Images/DDI0029G_7TDMI_R3_trm.pdfhttp://www.arm.com/products/processors/technologies/dsp-simd.phphttp://web.archive.org/web/20090414011837/http://www.arm.com/products/CPUs/cpu-arch-DSP.htmlhttp://www.arm.com/products/CPUs/cpu-arch-DSP.htmlhttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0214b/ch09s01s02.htmlhttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0290g/I27695.htmlhttps://silver.arm.com/download/download.tm?pv=1199569https://silver.arm.com/download/download.tm?pv=1111932http://www.heyrick.co.uk/armwiki/Unaligned_data_accesshttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.htmlhttp://www.hotchips.org/wp-content/uploads/hc_archives/hc22/HC22.23.220-1-Brash-ARMv7A.pdfhttp://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/2012-lpc-arm-zyngier.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Chdddhea.htmlhttp://www.eetimes.com/electronics-news/4217840/Million-ARM-cores-brain-simulatorhttp://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/6745/0141_5linecard.pdfhttp://arm.com/files/pdf/ARMv8R__Architecture_Oct13.pdfhttp://www.arm.com/products/processors/instruction-set-architectures/armv8-r-architecture.phphttp://www.arm.com/files/downloads/ARMv8_Architecture.pdfhttp://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.phphttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://www.arm.com/about/newsroom/arm-launches-cortex-a50-series-the-worlds-most-energy-efficient-64-bit-processors.phphttp://opencores.org/websvn,filedetails?repname=storm_core&path=%2Fstorm_core%2Ftrunk%2Fdoc%2FSTORM+CORE+datasheet.pdfhttp://eetimes.com/electronics-news/4217951/IHS--ARM-ICs-to-be-in-23--of-laptops-in-2015http://www.linuxfordevices.com/c/a/News/Always-Innovating-Touch-Book/http://www.arm.com/miscPDFs/3822.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/978-81-203-4024-4http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/International_Standard_Book_Numberhttp://books.google.com/books?id=4Bir9Kw059gC&pg=PA9http://www.reds.ch/share/cours/ReCo/documents/TheHistoryOfTheArmArchitecture.pdfhttp://www.heyrick.co.uk/assembler/32bit.htmlhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/YouTubehttps://www.youtube.com/watch?v=hrj-EEnsacQhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ZDNethttp://www.zdnet.co.uk/news/infrastructure/2010/12/04/intels-victims-eight-would-be-giant-killers-40091045/6/http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/0-201-67519-6http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/International_Standard_Book_Numberhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_system-on-chip_architecturehttp://www.informit.com/articles/article.aspx?p=1620207http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Electronics_Weeklyhttp://www.electronicsweekly.com/Articles/29/04/1998/7242/ARM39s-way.htmhttp://news.cnet.com/ARMed-for-the-living-room/2100-1006_3-6056729.htmlhttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:Cite_doi/10.1145.2F1941487.1941501&action=edit&editintro=Template:Cite_doi/editintro2http://dx.doi.org/10.1145%2F1941487.1941501http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Digital_object_identifierhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Communications_of_the_ACMhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Steve_Furberhttp://www.techradar.com/news/computing/from-a-small-acorn-to-37-billion-chips-arm-s-ascent-to-tech-superpower-1167034http://www.50billionchips.com/http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/ARM_Holdingshttp://blogs.arm.com/smart-connected-devices/204-arm-from-zero-to-billions-in-25-short-years/http://www.theregister.co.uk/2011/02/01/arm_holdings_q4_2010_numbers/http://www.embedded.com/electronics-blogs/significant-bits/4024488/The-Two-Percent-Solutionhttp://www.extremetech.com/extreme/52180-arm-cores-climb-into-3g-territoryhttp://www.icinsights.com/news/bulletins/MCU-Market-On-Migration-Path-To-32bit-And-ARMbased-Devices/http://www.dailytech.com/Leaked+Qualcomm+Roadmap+20+nm+64bit+Octacore+Smartphone+SoCs+Cometh/article36417.htm
  • 8/10/2019 En Wikipedia Org Wiki ARM Architecture

    11/11

    Privacy policy About Wikipedia Disclaimers Contact Wikipedia Developers Mobile view

    This page was last modified on 6 October 2014 at 02:53.

    Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Useand Privacy Policy. Wikipedia is aregistered trademark of the Wikimedia Foundation, Inc., a non-profit organization.

    [show]VTE

    [show]VTE

    [show]VTE

    [show]VTE

    [show]VTE

    Wikimedia Commons hasmedia related to ARMmicroprocessors.

    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 .

    ARM University Video introduction ; YouTube.

    External links [edit]Official website , ARM Ltd.

    ARM Virtualization Extensions

    Quick Reference Cards

    Instructions: Thumb , ARM and Thumb-2 , Vector Floating PointOpcodes: Thumb , Thumb , ARM , ARM , GNU Assembler Directives .

    Application ARM-based chips

    Embedded ARM-based chips

    Classic ARM-based chips

    RISC-based processor architectures

    Microcontrollers

    Categories: ARM architecture Instruction set architectures 1983 introductions Acorn Computers

    http://localhost/var/www/apps/conversion/tmp/scratch_2//www.mediawiki.org/http://localhost/var/www/apps/conversion/tmp/scratch_2//wikimediafoundation.org/http://localhost/var/www/apps/conversion/tmp/scratch_2//en.m.wikipedia.org/w/index.php?title=ARM_architecture&mobileaction=toggle_view_mobilehttps://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contributehttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/wiki/Wikipedia:Contact_ushttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:General_disclaimerhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Wikipedia:Abouthttp://localhost/var/www/apps/conversion/tmp/scratch_2//wikimediafoundation.org/wiki/Privacy_policyhttp://localhost/var/www/apps/conversion/tmp/scratch_2//www.wikimediafoundation.org/http://localhost/var/www/apps/conversion/tmp/scratch_2//wikimediafoundation.org/wiki/Privacy_policyhttp://localhost/var/www/apps/conversion/tmp/scratch_2//wikimediafoundation.org/wiki/Terms_of_Usehttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_Licensehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Category:Acorn_Computershttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Category:1983_introductionshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Category:Instruction_set_architectureshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Category:ARM_architecturehttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Help:Categoryhttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Microcontrollerhttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:Microcontrollers&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template_talk:Microcontrollershttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template:Microcontrollershttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Reduced_instruction_set_computinghttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:RISC-based_processor_architectures&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template_talk:RISC-based_processor_architectureshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template:RISC-based_processor_architectureshttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:Classic_ARM-based_chips&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template_talk:Classic_ARM-based_chipshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template:Classic_ARM-based_chipshttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:Embedded_ARM-based_chips&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template_talk:Embedded_ARM-based_chipshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template:Embedded_ARM-based_chipshttp://localhost/var/www/apps/conversion/tmp/scratch_2//en.wikipedia.org/w/index.php?title=Template:Application_ARM-based_chips&action=edithttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template_talk:Application_ARM-based_chipshttp://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Template:Application_ARM-based_chipshttp://re-eject.gbadev.org/files/GasARMRef.pdfhttp://www.mechcore.net/files/docs/armref.pdfhttp://re-eject.gbadev.org/files/armref.pdfhttp://www.mechcore.net/files/docs/ThumbRefV2-beta.pdfhttp://re-eject.gbadev.org/files/ThumbRefV2-beta.pdfhttp://infocenter.arm.com/help/topic/com.arm.doc.qrc0007e/QRC0007_VFP.pdfhttp://infocenter.arm.com/help/topic/com.arm.doc.qrc0001m/QRC0001_UAL.pdfhttp://infocenter.arm.com/help/topic/com.arm.doc.qrc0006e/QRC0006_UAL16.pdfhttp://www.futurechips.org/understanding-chips/arm-virtualization-extensions-introduction-part-1.htmlhttp://www.arm.com/http://localhost/var/www/apps/conversion/tmp/scratch_2//commons.wikimedia.org/wiki/Category:ARM_microprocessorshttp://localhost/var/www/apps/conversion/tmp/scratch_2/w/index.php?title=ARM_architecture&action=edit&section=39https://www.youtube.com/watch?v=7LqPJGnBPMMhttp://yurichev.com/writings/RE_for_beginners-en.pdfhttp://books.google.com/books?id=5OZblBzjsJ0C&printsec=frontcover&dq=isbn:9780123854773http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/9780123854773http://books.google.com/books?id=mb5d_xeINZEC&printsec=frontcover&dq=isbn:9781856179638http://localhost/var/www/apps/conversion/tmp/scratch_2/wiki/Special:BookSources/9781856179638