Arkitektura ARM

Nga Wikipedia, enciklopedia e lirë
Shko te: navigacion, kërko


ARM-ja është një arkitekture me instruksione (instruction set architecture (ISA)) RISC (reduced instruction set computer) 32-bit e krijuar nga ARM Holdings. Ishte e njohur si Makineria RISC e avancuar, dhe përpara kësaj si Acorn RISC Machine. Arkitektura ARM është ISA 32-bit me e përdorur sipas sasisë se prodhuar. [1][2] Fillimisht u konceptua si një procesor për kompjutera personal me desktop nga Acorn Computers, një treg tashme i zotëruar nga familja x86 e përdorur nga kompjutera te pajtueshëm me platformën IBM PC. Thjeshtësia relative e procesorëve ARM i beri ato te përshtatshëm për aplikacione me fuqi te vogël. Kjo i beri ato zotërues ne tregun e celulareve dhe elektronikes se ngulitur si mikroprocesore dhe microcontrollues relativisht te vegjël dhe me çmim te ulet.

Ne 2007, rreth 98 perqind e me shume se një bilion celulareve te shitur përdorin te paktën një procesor ARM.[3] Ne 2009, procesorët ARM japin llogari për afërsisht 90 % te te gjithë procesorëve te ngulitur RISC 32-bit. Procesorët ARM përdoren gjerësisht ne elektroniken e konsumit, duke përfshire PDA-te, celularet, median digjitale, konzolat e lojërave qe mbahen ne dore, makinave llogaritëse dhe për hard drive-t dhe router-et.

Arkitektura ARM është e licensueshme. Kompanitë qe kane ose kane patur licensen ARM përfshijnë Alcatel-Lucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel (permes DEC), LG, Marvell Technology Group, NEC, Nuvoton, NVIDIA, NXP (me pare e quajtur Philips), Oki, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha dhe ZiiLABS.

Procesorët ARM krijohen nga ARM dhe te licencuarit e ARM-se. Shembujt me te njohur te familjeve te procesorëve ARM te ARM Holdings përfshijnë ARM7, ARM9, ARM11 dhe Cortex. Shembuj te procesorëve ARM te krijuar nga te licencuarit e rëndësishëm përfshijnë DEC StrongARM, Freescale i.MX, Marvell (me pare e quajtur Intel) XScale, Nintendo, NVIDIA Tegra, ST-Ericsson Nomadik, Qualcomm Snapdragon, dhe linjës se produkteve Texas Instruments OMAP.


Historia[redakto | redakto tekstin burimor]

Pasi arritën ca sukses me kompjuterin BBC Micro, Acorn Computers Ltd konsideruan si te ecnin përpara nga procesori MOS Technology 6502 relativisht i thjështë për te adresuar tregjet e biznesit si ai qe se shpejti do zotërohej nga IBM PC, i filluar ne 1981. Plani Acorn Business Computer (ABC) kërkonte një numër procesorësh te dyte te bëhen te punojnë me platformën BBC Micro, por procesorët si Motorola 68000 dhe National Semiconductor 32016 ishin te papërshtatshëm, dhe 6502 nuk kishte fuqi te mjaftueshme për një shpërfaqje grafike për përdoruesit.

Acorn-it do t'i duhej një arkitekture e re, pasi testoi te gjithë procesorët e disponueshëm dhe vuri re qe i mungonin gjera. Acorn-i pastaj konsideroi seriozisht projektimin e një procesori te vetin, dhe inxhinieret e tyre gjeten ca letra mbi projektin Berkeley RISC. Ata ndjenë se neqoftese një klase studentesh te diplomuar mund te krijonin një procesor 32-bit konkurrues, atëherë Acorn nuk do e kishte fare problem. Një udhëtim tek Western Design Center ne Phoenix i tregoi inxhiniereve te Acorn-it Steve Furber dhe Sophie Wilson qe nuk kishin nevoje për burime masive.

Wilson vendosi te krijonte kompletin e instruksioneve, duke shkruar një simulim te procesorit ne BBC Basic qe përdorej ne BBC Micro me një procesor te dyte 6502. Kjo ia mbushi mendjen inxhiniereve te Acorn-it se ishin ne rrugën e duhur. Gjithsesi, para se te shkonin me larg, do kishin nevoje për me shume burime. Erdhi koha për Wilson-in t'i afrohej shefit ekzekutiv te Acorn-it, Hermann Hauser, dhe t'i shpjegonte çfarë ishte ne përgatitje e sipër. Pasi te merrte konfirmimin, një skuadër e vogël u krijua për te zbatuar modelin e Wilson-it ne hardware.

A Conexant ARM processor used mainly in routers

Makineria Acorn RISC: ARM2[redakto | redakto tekstin burimor]

Projekti zyrtar Makineria Acorn RISC filloi ne Tetor 1983. Projektimi drejtohej nga Wilson dhe Furber, me një qellim projektimi kryesor për te arritur trajtimin e hyrjes dhe daljes se te dhënave me sa me pak vonese si MOS Technology 6502 qe u përdor ne projektimet ekzistuese kompjuterike te Acorn. Arkitektura e hyrjes ne memorie e 6502 kishte lejuar krijuesit te prodhojnë makineri te shpejta pa përdorimin e hardware-ve te kushtueshme për hyrje direkte ne memorie. VLSI prodhoi silikonin e pare ARM me 26 Prill 1985 – u njoh si ARM1 ne Prill 1985.[4] Sistemet e para te "vërteta" te prodhimit te quajtur ARM2 ishin te disponueshëm vitin pasardhës.

Aplikacioni i tij i pare praktik ishte si një procesor i dyte për BBC Micro-n, ku u përdor për te krijuar software-t e simulimit për te përfunduar punën mbi çipet mbështetëse (VIDC, IOC, MEMC) dhe te shpejtonte operimin e software-it CAD te përdorur ne krijimin e ARM2. Me pas Wilson kodoi BBC Basic ne gjuhen assembly, dhe njohuritë e thella te përfituara nga projektimi i kompletit te instruksioneve lejoi kodin te behej shume i dendur, duke bere ARM BBC Basic një testim ekstremisht te mire për çfarëdo emulatori ARM. Qëllimi origjinal i një kompjuteri te bazuar kryesisht ne ARM u arrit ne 1987 me daljen e Acorn Archimedes.

Kaq e madhe ishte fshehtësia rreth projektit ARM CPU saqe kur Olivetti po diskutonin për te kontrolluar një pjese te Acorn-it ne 1985, atyre nuk i treguan për skuadrën e krijimit derisa bisedimet u kryen. Ne 1992 Acorn fitoi përsëri çmimin Queen's Award for Technology për ARM.

ARM2 paraqiti një transportues te dhënash me 32-bit, një hapësire adresash me 26-bit dhe 16 regjistra me 32-bit. Kodi i programit duhet te ishte brenda 64 Mb memorie, sepse program counter-i ishte i limituar deri ne 26-bit sepse 4 bit-at e pare dhe 2 te fundit te regjistrit 32-bit shërbejnë si flamuj për status. ARM2 ishte mikroprocesori me i thjështë i dobishëm 32-bit ne te gjithë boten, me vetëm 30,000 tranzistore (krahaso numrin e transistoreve me modelin 6 vjet me te vjetër te Motorola-s, Motorola 68000 me rreth 70,000 transistore). Shume prej kësaj thjeshtësie vjen ngaqë nuk ka mikrokod (qe përfshin rreth një-te-katerten deri ne një-te-treten e 68000) dhe, si shumica e CPU-ve te sotshëm, nuk përmban cache. Kjo thjeshtësi coi ne harxhimin e vogël te energjisë, duke performuar me mire se Intel 80286.[5] Nje pasardhës, ARM3, u prodhua me cache 40 Kb, qe e përmirësoi edhe me tepër performancën.

Apple, DEC, Intel: ARM6, StrongARM, XScale[redakto | redakto tekstin burimor]

Rreth fundit te viteve 80, Apple Computer dhe VLSI Technology filluan te punonin me Acorn ne versione me te reja te ARM. Puna ishte aq e rëndësishme saqe Acorn krijoi një kompani te re me skuadrën e krijimit ne 1990, dhe e quajti Advanced RISC Machines Ltd. Për këtë arsye, fjala ARM nganjëherë zgjerohet si Advanced RISC Machine ne vend te Acorn RISC Machine. Advanced RISC Machine u be ARM Ltd kur kompania prind, ARM Holdings plc, u hodh ne London Stock Exchange dhe NASDAQ ne 1998.[6]

Puna e re Apple-ARM përfundimisht do kthehej ne ARM6, fillimisht i dale ne treg ne fillim te 1992. Apple përdorte ARM 610 te bazuar ne ARM6, si baze për PDA-ne Apple Newton. Ne 1994, Acorn përdori ARM 610 si CPU kryesore ne kompjuterët e tyre Risc PC. DEC licencoi arkitekturen ARM6 (gjë qe shkaktoi konfusion sepse ato gjithashtu prodhonin mikroprocesore Alpha)Stampa:Citation needed dhe prodhoi StrongARM. Ne 233 MHz kjo CPU harxhonte vetëm 1 Watt energji (versionet e mëvonshme harxhonin shume me pak).

Rritje e Licencës[redakto | redakto tekstin burimor]

Bërthama e ARM-se ka qëndruar pothuajse e njëjta ne madhësi gjate këtyre ndryshimeve. ARM2 kishte 30.000 transistore, ndërsa ARM6 shkoi vetëm deri ne 35.000. Biznesi i ARM-se gjithmonë ka qene te shesë IP cores, qe te licencuarit i përdorin për te krijuar mikrokontrolluesit dhe CPU-te e bazuara ne këtë bërthame. Implementimi me i suksesshëm është ARM7TDMI me qindra miliona shitje. Idea është qe Original Design Manufacturer te kombinoje bërthamën ARM me një numër pjesësh jo te detyrueshme për te prodhuar një CPU te plote, një qe te mund te ndërtohet ne semiconductor fabs te vjetra dhe prape te ketë performance te konsiderueshme me çmim te ulet. Atmel ka qene një qendër projektimi pararendëse ne Sistemin e Ngulitur te bazuar ne ARM7TDMI.

ARM licencoi rreth 1,6 bilion bërthama ne 2005. Ne 2005, rreth 1 bilion bërthama ARM u futen ne celulare.[7] Stampa:Ne, me shume se 10 bilion bërthama ARM janë ndërtuar, dhe iSuppli parashikon qe 5 bilion ne vit do te transportohen ne 2011.[8]

Arkitektura e smartphones, personal digital assistants dhe aparaturave te tjera qe mbahen ne dore është ARMv5. Procesorët XScale dhe ARM926 janë ARMv5TE, dhe tashme jane me te shumte ne aparatura high-end sesa StrongARM, ARM9TDMI dhe ARM7TDMI te bazuar ne procesorë ARMv4, por aparaturat lower-end mund te përdorin bërthama me te vjetra me çmime me te ulëta licencimi. Procesorët ARMv6 paraqiten një hap me lart ne performance sesa nga bërthamat standarde ARMv5, dhe janë përdorur ne disa raste, por procesorët Cortex (ARMv7) tashme sigurojnë opsione me te shpejta se te gjithë brezat e mëparshëm. Cortex-A ka objektiv procesorët e aplikacioneve, siç i nevojiten smartphone-ve qe me përpara përdornin ARM9 ose ARM11. Cortex-R ka objektiv aplikacionet ne kohe reale, dhe Cortex-M ka objektiv mikrokontrolluesit.

Ne 2009, disa prodhues prezantuan netbook-et bazuar ne CPU me arkitekture ARM, ne konkurencë direkte me netbook-et e bazuar ne Intel Atom.[9]

Bërthamat ARM[redakto | redakto tekstin burimor]

ARM siguron një përmbledhje te shitësve te shumte te cilët implementojnë bërthamat ARM ne projektimet e tyre (shiko 2003 Line Card). KEIL gjithashtu siguron një përmbledhje pak me te re për shitësit e procesorëve te bazuar ne ARM.

Familja Versioni i Arkitekturës Bërthama Tipar Cache (I/D)/MMU MIPS @ MHz tipike Ne aplikacion
ARM1 ARMv1 (jashtë përdorimi) ARM1 Asnjë ARM Evaluation System procesor i dyte për BBC Micro
ARM2 ARMv2 (jashtë përdorimi) ARM2 Arkitektura 2 shtoi instruksionin MUL (shumëzim) Asnje 4 MIPS @ 8 MHz
0.33 DMIPS/MHz
Acorn Archimedes, Chessmachine
ARMv2a (jashte perdorimi) ARM250 MEMC e integruar (MMU), Procesor grafik dhe IO. Arkitektura 2a shtoi instruksionet SWP dhe SWPB. Asnje, MEMC1a 7 MIPS @ 12 MHz Acorn Archimedes
ARM3 ARMv2a (jashtë përdorimi) ARM2a Përdorimi i pare i një cache procesori ne ARM. 4K i unifikuar 12 MIPS @ 25 MHz
0.50 DMIPS/MHz
Acorn Archimedes
ARM6 ARMv3 (jashtë përdorimi) ARM60 arkitektura v3 e para që mbështeti adresimin e 32-bit memorie (ndryshe nga 26 bit) Asnjë 10 MIPS @ 12 MHz 3DO Interactive Multiplayer, Marres GPS Zarlink
ARM600 Si ARM60, cache dhe coprocessor bus (për njësite FPA10 floating-point). 4K i unifikuar 28 MIPS @ 33 MHz
ARM610 Si ARM60, cache, pa coprocessor bus. 4K i unifikuar 17 MIPS @ 20 MHz
0.65 DMIPS/MHz
Acorn Risc PC 600, Apple Newton 100 series
ARM7 ARMv3 (jashtë përdorimi) ARM700 8 KB i unifikuar 40 MHz Acorn Risc PC karte CPU-je prototip
ARM710 Si ARM700 8 KB i unifikuar 40 MHz Acorn Risc PC 700
ARM710a Si ARM700 8 KB i unifikuar 40 MHz
0.68 DMIPS/MHz
Acorn Risc PC 700, Apple eMate 300
ARM7100 Si ARM710a, SoC i integruar. 8 KB i unifikuar 18 MHz Psion Series 5
ARM7500 Si ARM710a, SoC i integruar. 4 KB i unifikuar 40 MHz Acorn A7000
ARM7500FE Si ARM7500, "FE" Shtoi kontrolluesin e memories FPA and EDO. 4 KB i unifikuar. 56 MHz
0.73 DMIPS/MHz
Acorn A7000+ Network Computer
ARM7TDMI ARMv4T ARM7TDMI(-S) 3-stage pipeline, Thumb asnje 15 MIPS @ 16.8 MHz
63 DMIPS @ 70 MHz
Game Boy Advance, Nintendo DS, Apple iPod, Lego NXT, Atmel AT91SAM7, Juice Box, NXP Semiconductors LPC2000 dhe LH754xx, Actel's CoreMP7
ARM710T Si ARM7TDMI, cache 8 KB i unifikuar, MMU 36 MIPS @ 40 MHz Psion Series 5mx, Psion Revo/Revo Plus/Diamond Mako
ARM720T Si ARM7TDMI, cache 8 KB i unifikuar, MMU me Fast Context Switch Extension 60 MIPS @ 59.8 MHz Zipit Wireless Messenger, NXP Semiconductors LH7952x
ARM740T Si ARM7TDMI, cache MPU
ARMv5TEJ ARM7EJ-S 5-stage pipeline, Thumb, Jazelle DBX, intruksione te avancuara DSP asnje
StrongARM ARMv4 SA-110 16 KB/16 KB, MMU 203 MHz
1.0 DMIPS/MHz
Apple Newton 2x00 series, Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS
SA-1100 Si SA-110, SoC i integruar 16 KB/8 KB, MMU 203 MHz Psion netBook
SA-1110 Si SA-110, SoC i integruar 16 KB/8 KB, MMU 206 MHz LART (computer), Intel Assabet, Ipaq H36x0, Balloon2, Zaurus SL-5x00, HP Jornada 7xx, Jornada 560 series, Palm Zire 31
ARM8 ARMv4 ARM810[10] 5-stage pipeline, static branch prediction, double-bandwidth memory 8 KB i unifikuar, MMU 84 MIPS @ 72 MHz
1.16 DMIPS/MHz
Acorn Risc PC karte CPU prototip
ARM9TDMI ARMv4T ARM9TDMI 5-stage pipeline, Thumb asnje
ARM920T Si ARM9TDMI, cache 16 KB/16 KB, MMU me FCSE (Fast Context Switch Extension)[11] 200 MIPS @ 180 MHz Armadillo, Atmel AT91SAM9, GP32, GP2X (first core), Tapwave Zodiac (Motorola i. MX1), Hewlet Packard HP-49/50 Calculators, Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315, Samsung S3C2442 (HTC TyTN, FIC Neo FreeRunner[12]), Samsung S3C2410 (TomTom navigation devices)[13]
ARM922T Si ARM9TDMI, cache 8 KB/8 KB, MMU NXP Semiconductors LH7A40x
ARM940T Si ARM9TDMI, cache 4 KB/4 KB, MPU GP2X (berthama e dyte), Meizu M6 Mini Player[14][15]
ARM9E ARMv5TE ARM946E-S Thumb, Enhanced DSP instructions, caches ndryshore, memorje te ciftuara ngusht, MPU Nintendo DS, Nokia N-Gage, Canon PowerShot A470, Canon EOS 5D Mark II[16], Conexant 802.11 chips, Samsung S5L2010
ARM966E-S Thumb, Enhanced DSP instructions no cache, TCMs ST Micro STR91xF, includes Ethernet[17]
ARM968E-S Si ARM966E-S pa cache, TCMs NXP Semiconductors LPC2900
ARMv5TEJ ARM926EJ-S Thumb, Jazelle DBX, Enhanced DSP instructions ndryshore, TCMs, MMU 220 MIPS @ 200 MHz, Celularet: Sony Ericsson (K, W series); Siemens dhe Benq (serite x65 dhe me te reja); LG Arena; Texas Instruments OMAP1710, OMAP1610, OMAP1611, OMAP1612, OMAP-L137, OMAP-L138; Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescale i.MX21, i.MX27, Atmel AT91SAM9, NXP Semiconductors LPC3000, GPH Wiz, NEC C10046F5-211-PN2-A SoC – berthame e padokumentuar ne ATi Hollywood çipin e grafikes te perdorur ne Wii,[18] Samsung S3C2412 perdorur ne kontrolluesin e Squeezebox Duet. Squeezebox Radio; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live (NAS); Telechips TCC7801, TCC7901;ZiiLABS' ZMS-05 sistem ne nje çip; Western Digital MyBook I World Edition.
ARMv5TE ARM996HS Procesor pa ore, si ARM966E-S pa caches, TCMs, MPU
ARM10E ARMv5TE ARM1020E 6-stage pipeline, Thumb, Enhanced DSP instructions, (VFP) 32 KB/32 KB, MMU
ARM1022E Si ARM1020E 16 KB/16 KB, MMU
ARMv5TEJ ARM1026EJ-S Thumb, Jazelle DBX, intruksione te avancuara DSP, (VFP) ndryshore, MMU ose MPU Western Digital MyBook II World Edition;Conexant so4610 dhe so4615 ADSL SoC
XScale ARMv5TE 80200/IOP310/IOP315 I/O Processor, Thumb, intruksione te avancuara DSP
80219 400/600 MHz Thecus N2100
IOP321 600 BogoMips @ 600 MHz Iyonix
IOP33x
IOP34x 1–2 core, RAID Acceleration 32K/32K L1, 512K L2, MMU
PXA210/PXA250 Procesor aplikacionesh, 7-stage pipeline PXA210: 133 and 200 MHz, PXA250: 200, 300, and 400 MHz Zaurus SL-5600, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90
PXA255 32KB/32KB, MMU 400 BogoMips @ 400 MHz; 371–533 MIPS @ 400 MHz[19] Gumstix basix & connex, Palm Tungsten E2, Zaurus SL-C860, Mentor Ranger & Stryder, iRex ILiad
PXA263 200, 300 and 400 MHz Sony CLIÉ NX73V, NX80V
PXA26x default 400 MHz, up to 624 MHz Palm Tungsten T3
PXA27x Procesor aplikacionesh 32 KB/32 KB, MMU 800 MIPS @ 624 MHz Gumstix verdex,"Trizeps-Modules" PXA270 COM, HTC Universal, HP hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim serite x30, x50, dhe x51, Motorola Q, Balloon3, Trolltech Greenphone, Palm TX, Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Siemens LOOX N560, Toshiba Portégé G500, Trēo 650-755p, Zipit Z2, HP iPaq 614c Business Navigator.
PXA800(E)F
PXA3XX (emri i koduar "Monahans") 32KB/32KB L1, TCM, MMU 1000 MIPS @ 1.25 GHz Samsung Omnia
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Control Plane Processor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2 IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S[20] 8-stage pipeline, SIMD, Thumb, Jazelle DBX, (VFP), instruksione te avancuara DSP ndryshore, MMU 740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz Texas Instruments OMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune, BUGbase[1], Nokia N800, Nokia N810, Qualcomm MSM7200 (with integrated ARM926EJ-S Coprocessor@274 MHz, perdorur ne Eten Glofiish, HTC TyTN II, HTC Nike), Freescale i.MX31 (used in the original Zune 30gb and Toshiba Gigabeat S), Freescale MXC300-30 (Nokia E63, Nokia E71, Nokia 5800, Nokia E51, Nokia 6700 Classic, Nokia 6120 Classic, Nokia 6210 Navigator, Nokia 6220 Classic, Nokia 6290, Nokia 6710 Navigator, Nokia 6720 Classic, Nokia E75, Nokia N97, Nokia N81), Qualcomm MSM7201A sic u pa tek HTC Dream, HTC Magic, Motorola Z6, HTC Hero, & Samsung SGH-i627 (Propel Pro), Qualcomm MSM7227 used in ZTE Link, [21] [22]
ARMv6T2 ARM1156T2(F)-S 9-stage pipeline, SIMD, Thumb-2, (VFP), instruksione te avancuara DSP ndryshore, MPU
ARMv6KZ ARM1176JZ(F)-S Si ARM1136EJ(F)-S ndryshore, MMU+TrustZone Apple iPhone (original and 3G), Apple iPod touch (1st and 2nd Generation), Conexant CX2427X, Motorola RIZR Z8, Motorola RIZR Z10, NVIDIA GoForce 6100[23]; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60, Samsung S3C6410 (e.g. Samsung Moment, SmartQ 5), S3C6430[24]
ARMv6K ARM11 MPCore As ARM1136EJ(F)-S, 1–4 core SMP variable, MMU Nvidia APX 2500
Family Architecture Version Core Feature Cache (I/D)/MMU Typical MIPS @ MHz In application
Cortex ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT and DBX, Thumb-2, 8-stage pipeline, 1–4 core SMP variable (L1), MMU+TrustZone up to 1500 (1.5 DMIPS/MHz) "Sparrow" (ARM code name)[25][26][27]
Cortex-A8 VFP, NEON, Jazelle RCT, Thumb-2, 13-stage superscalar pipeline variable (L1+L2), MMU+TrustZone up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz) Texas Instruments OMAP3xxx series, SBM7000, Oregon State University OSWALD, Gumstix Overo Earth, Pandora, Apple iPhone 3GS, Apple iPod touch (3rd Generation), Apple iPad (Apple A4 processor), Apple iPhone 4 (Apple A4 processor), Archos 5, FreeScale i.MX51-SOC, BeagleBoard, Motorola Droid, Palm Pre, Rockchip RK2806 and RK2808, Samsung i8910, Sony Ericsson Satio, Touch Book, Nokia N900, Meizu M9, ZiiLABS ZMS-08 system on a chip.
Cortex-A9 Application profile, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, Out-of-order speculative issue superscalar MMU+TrustZone 2.5 DMIPS/MHz
Cortex-A9 MPCore As Cortex-A9, 1–4 core SMP MMU+TrustZone 10,000 DMIPS @ 2GHz on Performance Optimized TSMC 40G (dual core) (2.5 DMIPS/MHz per core) Texas Instruments OMAP4430/4440, ST-Ericsson U8500, Nvidia Tegra2
ARMv7-R Cortex-R4(F) Embedded profile, Thumb-2, (FPU) variable cache, MPU optional 600 DMIPS @ 475 MHz Broadcom is a user, TMS570 from Texas Instruments
ARMv7-ME Cortex-M4 (codenamed "Merlin")[28] Microcontroller profile, both Thumb and Thumb-2, FPU. Hardware MAC, SIMD and divide instructions. MPU optional. 1.25 DMIPS/MHz
ARMv7-M Cortex-M3 Microcontroller profile, Thumb-2 only. Hardware divide instruction. no cache, MPU optional. 125 DMIPS @ 100 MHz Texas Instruments Stellaris microcontroller family, ST Microelectronics STM32, NXP Semiconductors LPC1700, Toshiba TMPM330FDFG, Ember's EM3xx Series, Atmel AT91SAM3, Europe Technologies EasyBCU, Energy Micro's EFM32, Actel's SmartFusion
ARMv6-M Cortex-M0 (codenamed "Swift")[29] Microcontroller profile, Thumb-2 subset (16-bit Thumb instructions & BL, MRS, MSR, ISB, DSB, and DMB). No cache. 0.9 DMIPS/MHz NXP Semiconductors NXP LPC1100[30], Triad Semiconductor [31], Melfas[32], Chungbuk Technopark [33], Nuvoton [34], austriamicrosystems [35], Rhom [36]
Cortex-M1 FPGA targeted, Microcontroller profile, Thumb-2 subset (16-bit Thumb instructions & BL, MRS, MSR, ISB, DSB, and DMB). None, tightly coupled memory optional. Up to 136 DMIPS @ 170 MHz[37] (0.8 DMIPS/MHz,[38] MHz achievable FPGA-dependent) Actel ProASIC3, ProASIC3L, IGLOO and Fusion PSC devices, Altera Cyclone III, other FPGA products are also supported e.g. Synplicity

[39]

Family Architecture Version Core Feature Cache (I/D)/MMU Typical MIPS @ MHz In application

Arkitektura[redakto | redakto tekstin burimor]

Për një kohe te gjate ka qene një "Manual referimi për arkitekturën ARM", duke dalluar ndërfaqet qe te gjithë procesorët ARM duhet te mbajnë (si psh semantikat e udhëzimit) nga detajet e implementimit qe mund te ndryshojnë. Arkitektura ka evoluar me kalimin e kohës, dhe duke filluar me arkitekturën v7, janë përcaktuar tre "profile": "A"-ja (aplikacion), "R"-ja (ne kohe reale), dhe "M"-ja (mikrokontrollues).

Profilet lejohen te ndajnë arkitekturën. Për shembull profili ARMv7-M është i dalluar sepse mban vetëm modën Thumb processor dhe prandaj ekzekuton instruksione Thumb2, dhe profili ARMv6-M është një nënndarje e profilit ARMv7-M (duke mbajtur me pak instruksione).

Kompleti i instruksioneve[redakto | redakto tekstin burimor]

Për t'a mbajtur projektimin te pastër, te thjështë dhe te shpejte, implementimi origjinal i ARM-se u vendos pa mikrokod, si procesori shume me i thjështë 8-bit 6502 i përdorur ne mikrokompjuterat e mëparshëm Acorn.

Tiparet RISC[redakto | redakto tekstin burimor]

Arkitektura ARM ka këto tipare RISC:

  • Ngarkon/ruan arkitekturën.
  • Nuk mbështet akses te padrejtuar ne memorie (qe tani mbështetet ne bërthamat ARMv6, me disa përjashtime te lidhur me ngarkimin/ruajtjen e instruksioneve me shume fjale).
  • File regjistri uniforme 16 × 32-bit.
  • Është rregulluar gjerësia 32 bit e instruksionit per te lehtësuar deshifrimin dhe pipelining, duke ulur dendësinë e kodit. Me vone, "Thumb mode" rriti dendësinë e kodit.
  • Me se shumti ekzekutim një-ciklik.

Për te kompensuar për projektimin e thjështë, krahasuar me procesorët bashkëkohor si Intel 80286 dhe Motorola 68020, disa tipare te tjera projektimi u përdoren:

  • Ekzekutim i kushtezuar i shumicës se instruksioneve, duke kompensuar për mungesën e një parashikues degëzimi.
  • Instruksionet aritmetike ndryshojnë kodet e kushtëzimit vetëm kur dëshirohen.
  • Barrel shifter 32-bit qe mund te përdoret pa ç'avantazh ne performance me shumicën e instruksioneve aritmetike dhe llogaritjeve te adresave.
  • Mënyra adresimi te fuqishme me indekse.
  • Një rregjister lidhjesh për thirrje te shpejte te funksioneve.
  • Nënsistem ndërprerjeje i thjështë por i shpejte i nivelit te dyte te përparësisë me banka regjistri te ndryshuara.

Ekzekutimi i kushtezuar[redakto | redakto tekstin burimor]

Tipari i ekzekutimit te kushtezuar (i quajtur predication) është implementuar me një selektorë kodi kushtëzimi 4-bit (i quajtur predicate) për çdo instruksion; një nga kodet 4-bit rezervohet si "kod daljeje" për te specifikuar disa instruksione te pakushtëzuara, por pothuajse te gjithë instruksionet e zakonshme janë te kushtëzuara. Shumica e arkitekturave te CPU-ve kane vetëm kode te kushtëzuara ne instruksionet e degëzuara.

Kjo pakëson ne mënyre te konsiderueshme bit-et e kodimit te disponueshme për zhvendosje ne instruksionet e aksesit ne memorie, por nga ana tjetër shmang instruksionet e degëzuara gjate gjenerimit te kodit për statement-et e vegjël "if". Shembulli standard për këtë është algoritmi Euklidian i bazuar ne zbritje:

Ne gjuhen e programimit C, cikli është:

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

Ne assembly-n e ARM-se, cikli është:

 loop   CMP    Ri, Rj       ; vendos kushtin "NE" nëse (i != j),
                            ;               "GT" nëse (i > j),
                            ;            ose "LT" nëse (i < j)
        SUBGT  Ri, Ri, Rj   ; nëse "GT" (me e madhe se), i = i-j;
        SUBLT  Rj, Rj, Ri   ; nëse "LT" (me e vogle se), j = j-i;
        BNE    loop         ; nëse "NE" (jo e barabarte), atëherë cikli

i cili shmang degëzimet rreth pjesëzave then dhe else. Vini re se nëse Ri dhe Rj janë te barabarta atëherë asnjë prej instruksioneve SUB nuk do ekzekutohet, duke optimizuar nevojën për një degëzim te kushtezuar për te implementuar kontrollin me while ne fillim te ciklit, për shembull nëse do ishte përdorur SUBLE (me e vogël ose e barabarte).

Një nga mënyrat qe kodi Thumb përdor për te siguruar nje kodim me te dendur është te heqë selektorin 4-bit nga instruksionet e padegëzuara.

Tiparet e tjera[redakto | redakto tekstin burimor]

Procesori ARM ka gjithashtu disa tipare qe shihen shume rralle ne arkitektura te tjera RISC, siç është adresimi PC-relativ (ne te vërtete, tek ARM-ja PC është një nga 16 regjistrat e saj) dhe mënyrat e adresimit pre- dhe post-increment.

Një tjetër gjë për t'u vërejtur është se ARM ka ekzistuar për një fare kohe, me kompletin e instruksioneve duke u rritur me kalimin e kohës. Disa procesore me te hershem ARM (para ARM7TDMI), për shembu ll, nuk kane instruksion për te ruajtur një sasi 2-byte, pra, për to nuk është e mundur te krijojnë kod efikas qe sillet ne mënyre te njëjte me objektet e C te tipit "volatile int16_t".

Bashkëprocesorët[redakto | redakto tekstin burimor]

Arkitektura siguron një mënyre jo-intrusive për te zgjeruar kompletin e instruksioneve duke përdorur "bashkëprocesoret" qe mund te adresohen duke përdorur MCR, MRC, MRRC, MCRR, dhe instruksione te tjera te ngjashme. Hapësira e bashkëprocesorit ndahet logjikisht ne 16 bashkëprocesore me numra 0 deri ne 15, ku bashkëprocesori 15 (cp15) është i rezervuar per disa funksione kontrolli tipike si menaxhimi i cache-ve dhe operimin e MMU (te procesorët qe e kane një te tille).

Ne aparaturat e bazuara ne ARM, pajisjet periferike janë zakonisht te lidhura me procesorin duke hartuar regjistrat e tyre fizike ne hapësirën e memories ARM ose ne hapësirën e bashkëprocesorit ose duke lidhur një tjetër pajisje e cila pastaj lidhet me procesorin. Hyrjet ne bashkëprocesor kane vonese me te vogël keshtuqe disa periferike (për shembull kontrolluesi i nderprerjeve XScale) janë projektuar qe te jene te arritshem ne te dy mënyrat (përmes memories dhe përmes bashkëprocesoreve). Ne raste te tjera, projektuesit e çipeve integrojnë hardware vetëm duke përdorur mekanizmin e bashkëprocesorit. Per shembull, një motor për përpunim imazhesh mund te jete një bërthame e vogël ARM7TDMI e kombinuar me një bashkëprocesor qe ka veprime te specializuara për te mbajtur një komplet specifik primitivesh transkodimi HDTV.

Thumb[redakto | redakto tekstin burimor]

Për te përmirësuar dendësinë e kodit te kompiluar, procesorët nga ARM7TDMI e me pas kane paraqitur modën Thumb. ("T"-ja ne "TDMI" tregon tiparin Thumb.) Ne këtë mode, procesori ekzekuton instruksione 16-bit. Shumica e këtyre instruksioneve Thumb 16 bit hartohen direkt me instruksionet ARM. Kursimi i hapësirës vjen duke bere te nënkuptueshme disa madhësi te instruksioneve dhe duke limituar numrin e mundësive krahasuar me instruksionet e plota ne modën ARM.

Ne Thumb, kodet me te vogla te operimit kane me pak funksionalitet. Për shembull, vetëm degëzimet mund te jene te kushtëzuara, she shume kode operimi kane akses te kufizuar vetëm ne gjysmën e regjistrave te CPU-se. Kodet e shkurtra te operimit japin përmirësim te përgjithshëm te dendësisë se kodit, edhe pse disa veprime kërkojnë instruksione ekstra. Ne situata ku gjerësia e portës se memories është me pak se 32-bit, kodet e shkurtra Thumb te operimit japin performance ne rritje ne krahasim me kodin 32-bit te ARM, meqë me pak kod programi ka nevoje te ngarkohet ne procesor përmes gjerësisë se vogël te memories.

Hardware-t e ngulitur, si Game Boy Advance, zakonisht kane një sasi te vogël te RAM-it te arritshëm me një datapath te plote 32-bit; shumica arrihet me një datapath dytesor 16-bit ose me te ngushte. Ne këtë situate, zakonisht kodi Thumb kompilohet dhe optimizohen manualisht disa nga sektorët me me shume pune intensive te CPU, duke përdorur instruksione ARM te plota 32-bit, duke vendosur këto instruksione me te gjera ne memorie 32-bit te arritshme nga cdo bus.

Procesori i pare me një ckodues instruksionesh Thumb ishte ARM7TDMI. Te gjithë ARM9 dhe familjet e mëvonshme, duke përfshire XScale, kane përmbajtur një ckodues instruksionesh Thumb.

Instruksionet e përmirësimit te DSP[redakto | redakto tekstin burimor]

Për te përmirësuar arkitekturën ARM për perpunim sinjalesh digjitale dhe aplikacioneve te multimedias, disa instruksione te reja iu shtuan kompletit.[40] Keto tregohen me nje "E" ne emrat e arkitekturave ARMv5TE dhe ARMv5TEJ. Variantet E perfshijne gjithashtu T, D, M, dhe I.

Jazelle[redakto | redakto tekstin burimor]

Red right arrow.svg
 Artikulli kryesor: Jazelle.

Jazelle është nje teknike qe lejon Java Bytecode te ekzekutohet direkt ne arkitekturen ARM si nje gjendje (dhe komplet instruksionesh) e trete ekzekutimi sebashku me ARM dhe Thumb-mode. Kjo gjendje tregohet me "J" ne arkitekturen, dhe ne emrat e berthamave ARM9EJ-S dhe ARM7EJ-S. Mbështëtja per kete gjendje është e nevojshme duke filluar nga ARMv6 (pervec profilit ARMv7-M), edhe pse berthamat me te reja perfshijne vetem nje implementim te thjështë qe nuk siguron pershpejtim hardware.

Thumb-2[redakto | redakto tekstin burimor]

Teknologjia Thumb-2 u shfaq ne berthamen ARM1156, e shpallur ne 2003. Thumb-2 zgjeron kompletin e intruksioneve Thumb te limituar ne 16-bit me me teper intruksione 32-bit per t'i dhene kompletit te instruksioneve nje shkalle me te larte. Nje qellim i caktuar per Thumb-2 është te arrije dendesi kodi te ngjashme me ate te Thumb-it me performance te ngjashme me ate te kompletit te instruksioneve te ARM-se ne memorje 32-bit. Mund te themi se ne ARMv7, ky qellim u arrit.

Thumb-2 zgjeron kompletin e instruksioneve ARM dhe Thumb me edhe me shume instruksione, duke perfshire manipulimin e bit-field, degezimeve te tabelave, dhe ekzekutimit te kushtezuar. Nje "Gjuhe Assemblu e Unifikuar" (UAL) mbështët edhe brezin e instruksioneve te ARM, edhe te Thumb-2 nga i njejti kod burim; versionet e Thumb te pare ne procesoret ARMv7 jane aq te afta sa kodi ARM (duke perfshire aftesine per te shkruar manovruesa nderpresish). Kjo kerkon pak kujdes, she perdorim te nje instruksioni te re "IT" (if-then), qe lejon deri ne 4 instruksione te njepasnjeshme te ekzekutohen bazuar ne nje kusht te testuar. Gjate kompilimit ne kod ARM, kjo ghe injorohet, por gjate kompilimit ne Thumb-2 kjo krijon nje intruksion. Per shembull:

; nqs (r0 == r1)
CMP r0, r1
ITE EQ        ; ARM: nuk është kod ... Thumb: instruksion IT
; atehere r0 = r2;
MOVEQ r0, r2  ; ARM: e kushtezuar; Thumb: kusht nepermjet ITE 'T' (atehere)
; perndryshe r0 = r3;
MOVNE r0, r3  ; ARM: e kushtezuar; Thumb: kusht nepermjet ITE 'e' (perndryshe)
; kujtoni se instruksioni MOV ne Thumb nuk ka asnje bit per te koduar "EQ" ose "NE"

Te gjithe çipet ARMv7 mbështësin kompletin e instruksioneve Thumb-2. Disa çipe, si Cortex-M3, mbështësin vetem kompletin e instruksioneve Thumb-2. Çipe te tjere ne serite Cortex dhe ARM11 mbështësin edhe "moden me komplet instruksionesh ARM" dhe "moden me komplet instruksionesh Thumb-2".[41][42][43]

Mjedisi i ekzekutimit te Thumb-it (ThumbEE)[redakto | redakto tekstin burimor]

ThumbEE, i njohur gjithashtu si Thumb-2EE, dhe i tregtuar si Jazelle RCT (Runtime Compilation Target), u shpall ne 2005, dhe u shfaq per here te pare ne procesorin Cortex-A8. ThumbEE është nje mode e katert procesori, duke bere ndryshime te vogla ne kompletin e instruksioneve Thumb te zgjeruar nga Thumb-2. Keto ndryshime e bejne kompletin e instruksioneve vecanerisht te pershtatshem per kod te krijuar gjate ekzekutimit te programit (p.sh. nga kompilimi JIT) ne Mjediset e menaxhuara te ekzekutimit. ThumbEE është nje objektiv per gjuhet si Limbo, Java, C#, Perl dhe Python, dhe lejon kompajlerat JIT te nxjerre kod te kompiluar me te vogel pa ndikuar ne performance.

Tiparet e reja te ThumbEE perfshijne kontrolle automatike te pointer-ave null ne cdo instruksion ngarkimi dhe ruajtjeje, nje instruksion per te kontrolluar kufijte e array, akses ne regjistrat r8-r15 (ku mbahet gjendja Jazelle/DBX Java VM), dhe instruksione speciale qe therrasin nje manovrues(handler).[44] Manovruesit jane sektore te vegjel kodi qe therritet shpesh, zakonisht i perdorur per te implementuar nje tipar te nje gjuhe programimi te nivelit te larte, si psh rezervimi i memorjes per nje objekt te ri.

Advanced SIMD (NEON)[redakto | redakto tekstin burimor]

Shtojca Advanced SIMD, e tregtuar si teknologjia NEON, është nje komplet instruksionesh SIMD i kombinuar 64- dhe 128-bit, qe siguron pershpejtim te standartizuar per aplikacionet e perpunimit te medias dhe te sinjaleve. NEON mund te ekzekutoje ckodim audio-je MP3 ne CPU me 10 MHz dhe mund te ekzekutoje codec-un e te folurit GSM AMR me me pak se 13 MHz. Ka nje komplet instruksionesh te hollesishem, file regjistrash te ndara dhe hardware ekzekutimi te pavarura. NEON mban numra te plote 8-, 16-, 32- dhe 64-bit dhe punon ne operime SIMD per te manovruar perpunimin e audios dhe videos si dhe perpunimin e grafikes dhe te lojerave. Ne NEON, SIMD mban deri ne 16 pune ne te njejten kohe.

VFP[redakto | redakto tekstin burimor]

Teknologjia VFP (Vector Floating Point) është nje shtojce bashkeprocesori ne arkitekturen ARM. Siguron perpunim numrash me presje me nje-precision dhe dopjo-precision me pak shpenzim. VFP siguron perpunim numrash me presje te pershtatshem per nje spektrum te gjere aplikacionesh si PDA, smartphone, kompresim dhe decompresim zeri, grafika tre-dimensionale dhe audio digjitale, printera, dhe aplikacione automotive. Arkitektura VFP gjithashtu mund te ekzekutoje instruksione te shkurtra vektore por keto punojne ne cdo element vektor njeri pas tjetrit dhe nuk ofrojne performancen e vertete te paralelizmit SIMD. Kjo mode mund te jete akoma e dobishme ne aplikacione per procesim grafikash dhe sinjalesh meqe lejon nje reduktim ne madhesine e kodit.


See also[redakto | redakto tekstin burimor]

References[redakto | redakto tekstin burimor]

  1. ^ "ARM Cores Climb Into 3G Territory" by Mark Hachman, 2002.
  2. ^ "The Two Percent Solution" by Jim Turley 2002.
  3. ^ "ARMed for the living room".
  4. ^ "Some facts about the Acorn RISC Machine" Roger Wilson posting to comp.arch, Nov 2 1988, Accessed 25 May 2007.
  5. ^ Patterson, Jason. The Acorn Archimedes", The History Of Computers During My Lifetime – The 1980's by (accessed 12 March 2008)].
  6. ^ "ARM Corporate Backgrounder", ARM Technology.
  7. ^ "ARMed for the living room" by Tom Krazit 2006.
  8. ^ "ARM Achieves 10 Billion Processor Milestone", ARM Technology, 22 January 2008.
  9. ^ "ARM netbook ships with detachable tablet". Arkivuar nga Origjinali në 3. Janar 2013. by Eric Brown 2009
  10. ^ "ARM810 – Dancing to the Beat of a Different Drum" ARM Holdings presentation at Hot Chips 1996-08-07.
  11. ^ Register 13, FCSE PID register ARM920T Technical Reference Manual
  12. ^ Neo1973: GTA01Bv4 versus GTA02 comparison. Vizituar në 15. Nëntor 2007.
  13. ^ S3C2410. Vizituar në 13. Janar 2010.
  14. ^ Rockbox Samsung SA58xxx series. Vizituar në 22. Shkurt 2008.
  15. ^ Rockbox Meizu M6 Port – Hardware Information. Vizituar në 22. Shkurt 2008.
  16. ^ Datasheets - Magic Lantern Firmware Wiki
  17. ^ STR9 – STR912 – STR912FW44 microcontroller – documents and files download page. Mcu.st.com. Vizituar në 18. Prill 2009.
  18. ^ Starlet.
  19. ^ Benchmarks – Albatross. Albatross-uav.org (18. Qershor 2005). Vizituar në 18. Prill 2009.
  20. ^ ARM1136J(F)-S – ARM Processor. Arm.com. Vizituar në 18. Prill 2009.
  21. ^ Qualcomm chips kernel ARM - from phones to laptops. xi0.info. Vizituar në 8. Maj 2010.
  22. ^ Qualcomm MSM7227 RISC Chipset. pdadb.net. Vizituar në 8. Maj 2010.
  23. ^ GoForce 6100. Nvidia.com. Vizituar në 18. Prill 2009.
  24. ^ Samsung S3C6410 and S3C6430 Series ARM Proccessors. Samsung. Vizituar në 8. Tetor 2009., and the Qualcomm MSM7627 as seen in the Palm Pixi and Motorola Calgary/Devour
  25. ^ Rick Merrit (21. Tetor 2009): "ARM stretches out with A5 core, graphics, FPGAs". EE Times. Vizituar në 28. Tetor 2009.
  26. ^ Peter Clarke (3. Shkurt 2009): ARM tips plans for Swift and Sparrow processor cores. EE Times. Vizituar në 18. Prill 2009.
  27. ^ Sascha Segan (9. Prill 2009): ARM's Multicore Chips Aim for Netbooks. PC Magazine. Vizituar në 18. Prill 2009.
  28. ^ Benjamin Benz (2. Shkurt 2010): Cortex Nachwuchs bei ARM. Heise.de. Vizituar në 3. Maj 2010.
  29. ^ Peter Clarke (23. Shkurt 2009): ARM preps tiny core for low-power microcontrollers. EE Times. Vizituar në 30. Nëntor 2009.
  30. ^ John Walko (23. Mars 2009): NXP first to demo ARM Cortex-M0 silicon. EE Times. Vizituar në 29. Qershor 2009.
  31. ^ ARM Powered VCAs
  32. ^ Cortex-M0 used in low power touch controller - 6/10/2009 - Electronics Weekly
  33. ^ Chungbuk Technopark Chooses ARM Cortex-M0 Processor
  34. ^ http://translate.google.co.uk/translate?hl=en&sl=zh-TW&u=http://www.nuvoton.com/hq/enu/NewsAndEvents/News/MediaCoverage/20091005.htm
  35. ^ Austriamicrosystems Chooses ARM Cortex-M0 Processor For Mixed Signal Applications
  36. ^ Rohm Licenses ARM Cortex-M0 Processor - ARM
  37. ^ "ARM Extends Cortex Family with First Processor Optimized for FPGA", ARM press release, March 19, 2007. Retrieved April 11, 2007.
  38. ^ "ARM Cortex-M1", ARM product website. Retrieved April 11, 2007.
  39. ^ ARM Extends Cortex Family with First Processor Optimized for FPGA.
  40. ^ ARM DSP Instruction Set Extensions. Arm.com. Vizituar në 18. Prill 2009.
  41. ^ ARM Processor Instruction Set Architecture. Arm.com. Vizituar në 18. Prill 2009.
  42. ^ ARM aims son of Thumb at uCs, ASSPs, SoCs. Linuxdevices.com. Arkivuar nga Origjinali në 9. Dhjetor 2012. Vizituar në 18. Prill 2009.
  43. ^ ARM Information Center. Infocenter.arm.com. Vizituar në 18. Prill 2009.
  44. ^ "Arm strengthens Java compilers: New 16-Bit Thumb-2EE Instructions Conserve System Memory" by Tom R. Halfhill 2005.

External links[redakto | redakto tekstin burimor]

 Commons: ARM Microprocessors – Album me fotografi dhe/apo video dhe material multimediale

Stampa:Linkfarm

Stampa:RISC-based processor architectures