Arhitectura ARM

Logo ARM

Arhitectura ARM (Advanced RISC Machine) inițial cunoscută sub numele de Acorn RISC Machine, este o arhitectură de microprocesoare de tip RISC (Reduced Instruction Set Computer) 32-bit și 64-bit introduse în 1983 de Acorn Computers și dezvoltate de ARM Holdings începând cu 1990.

Arhitectura ARM a devenit una dintre cele mai utilizate arhitecturi de calculatoare datorită consumului redus de energie, performanței sale ridicate în rezolvarea sarcinilor mici și multiple simultan, a costurilor și a dimensiunilor reduse. Este utilizată în mare măsură în smartphone-uri, sisteme înglobate, servere, supercomputere etc.[1]

Procesor ARM1 într-un sistem Acorn

Istoric ARM

  • 1978 - este înființată în Cambridge, Marea Britanie compania Acorn Computers Ltd.
  • 1981 - Acorn produce BBC Micro, un calculator educațional foarte popular. Acorn BBC Micro a folosit microprocesorul MOS 6502 pe 8-bit, 2 MHz.
  • 1983 - Acorn a format Advanced Research and Development Group, și proiectul Acorn RISC Machine.
  • 1985 - ARMv1 prima versiune a arhitecturii ARM apare cu procesor ul ARM1 RISC, care permite unui sistem computerizat să utilizeze comenzi mai simple pentru a funcționa mai rapid. ARM1 a fost dezvoltat pe tehnologia VLSI Technology de 3 μm folosind doar 24.800 tranzistori și avea doar 808 de linii de cod.
  • 1987 - Acorn a introdus ARMv2 cu ARM2, un procesor pe 32-bit și 8 MHz, cu doar 30.000 de tranzistoare, performanțe superioare unui Intel 80286 și un consum mai redus de energie. ARM2 a fost primul microprocesor ce a devenit un succes comercial. A fost folosit în computerele Acorn Archimedes.
  • 1989 - Apare ARM3 (ARMv2) de asemenea un procesor RISC pe 32-bit cu îmbunătățiri ale performanței (cache 4 KB, frecvență de ceas de 25 MHz, și 12 MIPS). A fost utilizat în modelele Archimedes A540, A5000 și A4.
  • 1990 - Este fondată Advanced RISC Machines Ltd într-un parteneriat cu Apple, VLSI Technology și Acorn Computers. Noua companie a fost înființată cu scopul principal de a dezvolta în continuare microprocesoarele ARM ca parte a dezvoltării noului sistem informatic Apple Newton.
  • 1991 - Versiunea ARMv3 cu microprocesorul ARM6 RISC pe 32-bit, frecvența de 12-33 MHz și 17.96 MIPS dezvoltat de noua companie ARM (Advanced RISC Machine). S-au introdus modurile Abort și Undefined, variantele T (extensia Thumb) și M. A fost folosit în calculatoarele Apple Newton și Acorn Risc.
DEC StrongARM
  • 1993 - Versiunea ARMv4 cu modul privilegiat System și ARM7TDMI, model low-end al familiei ARM, unul din cele mai populare procesoare ARM. A fost utilizat în principal ca o componentă în SoC-urile pentru telefoane mobile (iPod) și alte dispozitive portabile sau dispozitive multimedia, inclusiv Game Boy Advance, Nintendo DS și Nintendo 3DS. StrongARM care implementa tot ARMv4 și îmbunătățiri substanțiale de vitezăși consum de energie (1W la 233MHz) dezvoltat împreună cu DEC, a fost primul spin-off al arhitecturii ARM. Alte procesoare în acestă versiune au fost ARM8, ARM9.
  • 1997 - Versiunea arhitecturală ARMv5TE introduce extensiile DSP și Jazelle DBX (pentru accelerarea execuției codului Java), a fost implementată de ARM în modelele procesoarelor ARM7EJ, ARM9E și ARM10E. ARM9 este o dezvoltare ulterioară a procesoarelor StrongARM și ARM8. Principala diferență dintre ARM9 și ARM7 este o magistrală separată de instrucțiuni și date (arhitectură Harvard).
  • 2002 - Arhitectura ARMv6 aduce câteva noutăți cum ar fi: îmbunătățirea sistemului de gestiune a memoriei, reducerea timpului de încărcare pentru instrucțiuni și date, creșterea performanțelor cu până la 30%, suport pentru sisteme multiprocesor, posibilitatea unor sisteme mai complexe de sincronizare pentru memoria partajată. Include familiile ARM11, ARM Cortex-M0, ARM Cortex-M0 + și ARM Cortex-M1.
  • 2004 - ARMv7 cu introducerea unei unități SIMD avansate de 128 de biți, în principal pentru procesare multimedia și implementarea mai eficientă a aplicațiilor audio, video, grafică 3D, extensia NEON, MPE (Media Processing Engine). Arhitectura ARMv7 este în principal împărțită în trei profiluri care acoperă diferite domenii de aplicare în domeniul sistemelor înglobate: ARM Cortex-A, ARM Cortex-R, ARM Cortex-M.
ARMCortexA57A53
  • 2011 - ARMv8 a fost primul ARM care a implementat o arhitectură pe 64-bit pentru prelucrarea datelor și adresarea memoriei. ARMv8 este compatibil cu ARMv5. Există două moduri de execuție independente: AArch32 pentru procesarea software-ului pe 32-bit șiAArch64 pentru procesarea software-ului pe 64-bit. Modul AArch64 folosește un set de instrucțiuni nou numit A64, în timp ce modul AArch32 acceptă setul standard de instrucțiuni ARM.
  • 2012 - ARM a introdus modelele Cortex-A53 și Cortex-A57, Cortex-A72 primele modele de procesoare care implementează ARMv8 ce livreză performanță superioară la aceeași putere și viteză de ceas, comparativ cu procesoarele bazate pe ARMv7. Primul dispozitiv mobil cu SoC bazat pe ARMv8 este iPhone 5 lansat în septembrie 2013. SoC-ul încorporat integrează două nuclee de procesor Apple A7 numite Cyclone.
  • 2014 - Allwinner Technology, MediaTek, Samsung Electronics au lansat procesoare licențiate folosind arhitectura ARM.
  • 2015 - Rockchip anunță primele sale modele de procesoare ARMv8. Phytium Technology dezvoltă Phytium Mars, procesor cu 64 de nuclee pentru supercomputere.
  • 2016 - ARM anunță lansarea Cortex-A73 pentru realitate virtuală, ce prezintă o creștere de 30% a puterii de calcul și a performanței energetice comparativ cu Cortex-A72.[2][3][4]
  • 2017 - ARM a lansat două procesoare noi pentru smartphone Cortex-A75 și Cortex-A55. [5]
  • 2018 - ARM anunță Cortex-A76, un procesor cu 40% mai eficient în privința consumului de energie și 35% mai rapid. Conceput pentru următoarele generații smartphone high-end, Cortex-A76 este proiectat pentru a folosi procesul de fabricație pe 7nm dezvoltat de TSMC și ar putea atinge frecvențe de până la 3GHz. [6]

Caracteristici

Set de instrucțiuni

Procesoarele moderne ARM au mai multe seturi de instrucțiuni:

  • ARM pe 32-bit
  • Thumb: set de instrucțiuni mai restricționat pe 16-bit care oferă o submulțime a instrucțiunilor clasice ARM pe 32-bit și permite obținerea unui câștig semnificativ de memorie. Primul procesor cu un decodor de instrucțiuni Thumb a fost ARM7TDMI.
  • DSP: au fost adăugate instrucțiunile DSP. Acestea sunt semnificate de un "E" în denumirea arhitecturilor (ARMv5TE, ARMv5TEJ) sau a procesorului (ARM9E). Variante implică de asemenea T, D, M și I. Aplicații includ procesarea semnalelor digitale și multimedia, echipamente de rețea, telefoane mobile și tablete, sisteme de control pentru automobile.
  • Jazelle DBX (Direct Bytecode eXecution): pentru codurile Java, în paralel cu modul ARM și Thumb. Este indicat prin litera "J" (ARMv5TEJ, ARM7EJ-S, ARM9EJ-S). Setul Jazelle adaugă suport pentru diferite mașini virtuale Java, sisteme de operare (WindowsCE, Linux, PalmOS), sisteme de operare în timp real.
  • Thumb-2 (16/32-bit): Performanța este îmbunătățită cu până la 38%, dimensiunea memoriei este redusă cu 30%. Începe cu nucleul ARM1156 anunțat în 2003. Toate cipurile ARMv7, seria Cortex și ARM11 acceptă setul de instrucțiuni Thumb-2.
  • ThumbEE: Thumb-2EE sau Jazelle RCT (Runtime Compilation Target), apare pentru prima dată în procesorul Cortex-A8 în 2005 și adaugă mici modificări setului de instrucțiuni Thumb-2. ThumbEE este orientat spre limbaje de programare cum ar fi Limbo, Java, C#, Perl, Python sau Ruby și permite compilatoarelor să genereze mai puține coduri fără a afecta performanța.
  • Vector Floating Point (VFP): set de instrucțiuni în virgulă mobilă. VFP oferă calcule în virgulă mobilă pentru un spectru larg de aplicații și cerințe pentru dispozitive mobile (smartphone, PDA, tablete), compresie și decompresie voce, grafică tridimensională, audio digitală, imprimante, multimedia și aplicații pentru automobile. Setul VFP a fost înlocuit cu modul NEON Advanced SIMD.
  • Advanced SIMD: (NEON), este un SIMD (Single Instruction, Multiple Data) ce combină seturi de instrucțiuni 64/128-bit și oferă accelerații computerizate standardizate pentru medii, aplicații 2D/3D și procesare de semnal. Suport pentru diferite standarde: MPEG-4, H.264, RealAudio, AVS, se poate utiliza pentru prelucrare vectorială. Performanță crescută cu 60..150% pentru codec-uri video și de 4..8 ori pentru algoritmi DSP simpli. NEON este inclus în toate nucleele Cortex-A8, opțional în Cortex-A910. [7]

Moduri de operare

Arhitectura ARM are șapte moduri de operare:

  • User: singurul mod neprivilegiat, cele mai multe task-uri rulează aici
  • FIQ: declanșat la producerea unei întreruperi de prioritate mare (fast interrupt)
  • IRQ: declanșat la producerea unei întreruperi de prioritate normală (low interrupt)
  • Supervisor: pornit la RESET și la întreruperi software
  • Abort: este introdus la acces nepermis la memorie (excepție automată de suprascriere sau suprascriere de date)
  • Undefined: pentru instrucțiuni nedefinite
  • System: singurul mod privilegiat care nu este introdus de o excepție; folosește aceleași registre ca User Mode.[8]

Procesoare ARM

Procesoarele ARM sunt produse de ARM Holdings și de companiile care dețin licențe ARM. Cele mai cunoscute serii de procesoare ARM dezvoltate de ARM Holdings sunt ARM7, ARM9, ARM11 și Cortex.

Procesor ARM fabricat de Conexant folosit în ruter

Dimensiunea redusă, complexitatea și consumul redus de energie, face ca procesoarele ARM să fie utilizate în majoritatea dispozitivelor portabile și sisteme înglobate. Aproape toate telefoanele mobile moderne conțin procesoare ARM, fiind cea mai utilizată familie de microprocesoare pe 32-bit. [9][10]

Architectură Familie de procesoare
ARMv1 ARM1
ARMv2 ARM2, ARM3
ARMv3 ARM6, ARM7
ARMv4 StrongARM, ARM7TDMI, ARM8, ARM9TDMI
ARMv5 ARM7EJ, ARM9E, ARM10E, XScale, FA626TE, Feroceon, PJ1/Mohawk
ARMv6 ARM11
ARMv6-M ARM Cortex-M (ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1)
ARMv7-A ARM Cortex-A (Gen1 : ARM Cortex-A8, Gen2 : ARM Cortex-A9 MPCore, ARM Cortex-A5 MPCore, Gen3 : ARM Cortex-A7 MPCore, ARM Cortex-A12 MPCore, ARM Cortex-A15 MPCore, Scorpion, Krait, PJ4/Sheeva, Swift
ARMv7-M ARM Cortex-M (ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7)
ARMv7-R ARM Cortex-R (ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7)
ARMv8-A ARM Cortex-A35, ARM Cortex-A50 (ARM Cortex-A53, ARM Cortex-A57), ARM Cortex-A72, ARM Cortex-A73, X-Gene, Denver, Cyclone, Exynos M1/M2
ARMv8.2-A ARM Cortex-A55, ARM Cortex-A75, ARM Cortex-A76
ARMv8-M ARM Cortex-M23, ARM Cortex-M33
ARMv8-R ARM Cortex-R53

Sisteme de operare

Numeroase sisteme de operare din sistemele înglobate și RTOS sunt compatibile cu arhitectura ARM:

Licențe ARM

Tehnologia ARM poate fi folosită sub licență și de alți producători hardware de la compania deținătoare, ARM Holdings. Compania furnizează părților interesate compilatoare, instrumente de depanare și kituri de dezvoltare software, împreună cu o descriere completă a hardware-ului nucleului ARM.

Printre companiile care au folosit sau folosesc această arhitectură se numărăr Alcatel-Lucent, AMD, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel (prin DEC), LG, Marvell Technology Group, Microsoft, NEC, Nuvoton, Nvidia, NXP (fost Philips), Oki, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha, ZiiLABS etc.

Multe companii licențiate își construiesc propriile versiuni ale kernel-urilor ARM: DEC StrongARM, Freescale i.MX, Intel XScale, NVIDIA Tegra, ST-Ericsson Nomadik, Krait și Kryo, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, LG H13, Huawei K3V2, Apple A6, HiSilicon K3.

Vezi și

Note

Legături Externe

Commons
Commons
Wikimedia Commons conține materiale multimedia legate de Arhitectură ARM

Bibliografie