Вредоносное ПО (malware) - это назойливые или опасные программы,...
Термин архитектура процессора не имеет устойчивого объяснения. По сути, архитектура включает в себя комбинацию из: микроархитектур, включающих в себя основные части процессора и методы их взаимодействиями между собой; набора команд, начиная от модели исполнения и заканчивая форматами данных и микрокода.
Если рассматривать архитектуру процессоров со стороны аппаратной части ПК, то мы увидим определенный набор характеристик, которому соответствует то или иное семейство процессоров, иными словами, внутренняя их конструкция. Со стороны программистов, архитектура представляет набор определенных команд, их структуру и метод использования.
Одной из самых популярных мобильных архитектур на данный момент является ARM, разработкой которой занимается ARM Limited. Остальные компании попросту лицензируют технологию ARM и на базе данной лицензии выпускают свои процессоры, сюда можно отнести Qualcomm, Nvidia с их чипами Tegra, всем известные Mediatek, чипы от Apple и, конечно же, Samsung с Exynos.
Второй по значимости можно считать архитектуру x86, за разработку которой отвечает не менее известная компания Intel. До недавнего времени, данная архитектура использовалась крайне редко и то на бюджетных устройствах, но со временем она начала набирать популярность и теперь занимает свою нишу на рынке мобильных процессоров.
По сути, обычный пользователь не заметит разницы от использования смартфонов/планшетов на разных архитектурах и это не удивительно, Android адаптируется под любые среды и отлично работает на всех архитектурах. Единственным минусом является несовместимость отдельно взятых приложений/игр, заточенных под те или иные архитектуры.
Чем отличаются процессоры на архитектурах ARM от X86?
В первую очередь стоит отметить уменьшенный набор команд в ARM, что приводит к значительному сокращению энергопотребления процессоров построенных на данной архитектуре. Это сказывается также на числе транзисторов, коих гораздо меньше в любом ARM чипе, нежели в процессорах с архитектурой X86. Чипы на ARM предназначены для вычисления только целых чисел, а X86 в свою очередь может похвастаться возможностью обработки чисел с плавающей запятой. Иными словами, ARM «знает» гораздо меньше команд, нежели X86, что в свою очередь относится как к плюсам, так и минусам данной архитектуры. Тенденция роста производительности и популярности ARM процессоров за последние годы невероятно высока, в скором времени они смогут перегнать стандартные X86. Немаловажным фактором является поддержка RISC-инструкций на обеих архитектурах, что позволяет использовать абсолютно все операционные системы, начиная от Android и заканчивая Windows Phone.Они подумали, что раз уж группе студентов удалось создать вполне конкурентоспособный процессор, то их инженерам это будет не сложно. Поездка в Western Design Center в Фениксе показала инженерам Стиву Ферберу и Софи Уилсон, что им не потребуются невероятные ресурсы для осуществления этого плана.
Уилсон приступила к разработке системы команд , создавая симулятор нового процессора на компьютере BBC Micro . Это убедило инженеров Acorn, что они на верном пути. Но все же перед тем, как идти дальше, им требовалось больше ресурсов. Настало время для Уилсон подойти к директору Acorn Герману Хаузеру и объяснить, в чем же дело. После того как он дал добро, собралась небольшая команда для реализации модели Уилсон на аппаратном уровне.
Acorn RISC Machine: ARM2
Официальный проект Acorn RISC Machine был начат в октябре 1983 года . VLSI Technology (англ. ) была выбрана в качестве поставщика кремниевых компонентов, так как она уже снабжала Acorn микросхемами ПЗУ и некоторыми нестандартными интегральными схемами. Разработку возглавили Уилсон и Фербер. Их основной целью было достижение низкой латентности обработки прерывания, как у MOS Technology 6502 . Архитектура доступа к памяти, взятая от 6502, позволила разработчикам достичь хорошей производительности без использования дорогостоящего в реализации модуля DMA . Первый процессор был произведен VLSI 26 апреля 1985 года - тогда он впервые заработал и был назван ARM1. Первые серийные процессоры под названием ARM2 стали доступны в следующем году.
Его первое применение было в качестве второго процессора в BBC Micro , где он был использован при разработке программного обеспечения для моделирования, что позволило завершить работу над вспомогательными микросхемами компьютера, а также ускорить работу программного обеспечения CAD , используемого при разработке ARM2. Уилсон оптимизировала набор инструкций ARM для исполнения BBC BASIC . Изначальная цель компьютера, полностью построенного на базе ARM, была достигнута в 1987 году с выходом Acorn Archimedes.
Атмосфера вокруг проекта ARM была настолько секретна, что когда компания Olivetti вела переговоры о покупке контрольного пакета акций Acorn в 1985 году, они не стали рассказывать о развитии проекта до конца переговоров. В 1992 году Acorn еще раз выиграл премию королевы за ARM.
В ARM2 была 32-разрядная шина данных, 26-битное адресное пространство и 16 32-разрядных регистров. Программный код должен был лежать в первых 64 мегабайтах памяти, а программный счётчик был ограничен 26 битами, так как верхние 4 и нижние 2 бита 32-битного регистра служили флагами. ARM2 стал, возможно, самым простым из популярных 32-битных процессоров в мире, имея всего лишь 30000 транзисторов (для сравнения, в сделанном на 6 лет раньше процессоре Motorola 68000 было около 70000 транзисторов). Многое из этой простоты обусловлено отсутствием микрокода (который в процессоре 68000 занимает от одной четверти до одной трети площади кристалла), и отсутствием кэша , как и в многих процессорах того времени. Эта простота привела к низким затратам энергии, в то время как ARM был гораздо более производителен, чем Intel 80286. У его преемника - процессора ARM3 - уже был кэш 4 кб, что еще больше увеличило производительность.
Apple, DEC, Intel: ARM6, StrongARM, XScale
Современные смартфоны, КПК и другие портативные устройства используют в основном версию ядра ARMv5. Процессоры XScale и ARM926 (ARMv5TE) сейчас более многочисленны в высокотехничных устройствах, чем, например, процессоры StrongARM и процессоры ARMv4 на базе ARM9TDMI и ARM7TDMI, но менее сложные приборы могут использовать старые версии с меньшей лицензионной стоимостью. Процессоры ARMv6 по своей производительности на голову выше, чем стандартные ARMv5. Cortex-A создан специально для смартфонов, которые раньше использовали ARM9 и ARM11. Cortex-R созданы для приложений, работающих в реальном времени, а Cortex-M - для микроконтроллеров.
Влияние ARM-технологии на рынок
К концу 2012 года новые модели ARM-процессоров Apple и Samsung достигли производительности бюджетных процессоров Intel для ноутбуков. В частности, планшет Samsung Nexus 10 показал рейтинг производительности 2348 баллов , в то время как бюджетный процессор Intel Core Duo в ноутбуке Apple MacAir показывает рейтинг только 1982 балла .
Отдельные компании заявляют о разработках эффективных серверов на базе кластеров ARM процессоров . Тем не менее, на 2012 год продажи серверов на ARM исчезающе малы (< 1% рынка серверов) .
Процессоры ARM
Семейство ядер | Версия архитектуры | Ядро | Функции | Кэш (I/D)/MMU | Типичная MIPS @ МГц | Использование |
---|---|---|---|---|---|---|
ARM1 | ARMv1 (устаревшая) | ARM1 | Нет | ARM Evaluation System процессор BBC Micro | ||
ARM2 | ARMv2 (устаревшая) | ARM2 | Добавлена команда MUL (умножение) | Нет | 4 MIPS @ 8 МГц 0.33 DMIPS/МГц |
Acorn Archimedes , Chessmachine |
ARMv2a (устаревшая) | ARM250 | Встроенный MEMC (MMU), графический процессор, добавлены команды SWP и SWPB (swap) | Нет, MEMC1a | 7 MIPS @ 12 МГц | Acorn Archimedes | |
ARM3 | ARMv2a (устаревшая) | ARM2a | Впервые использован кэш | 4 КБ общий | 12 MIPS @ 25 МГц 0.50 DMIPS/МГц |
Acorn Archimedes |
ARM6 | ARMv3 (устаревшая) | ARM60 | Впервые введено 32-битное (а не 26-битное) адресное пространство памяти | Нет | 10 MIPS @ 12 МГц | 3DO Interactive Multiplayer , Zarlink GPS Receiver |
ARM600 | Как ARM60, сопроцессор математики с плавающей запятой FPA10 | 4 КБ общий | 28 MIPS @ 33 МГц | |||
ARM610 | Как ARM60, кэш, без шины сопроцессора | 4 КБ общий | 17 MIPS @ 20 МГц 0.65 DMIPS/МГц |
Acorn Risc PC 600, Apple Newton 100 series | ||
ARM7 | ARMv3 (устаревшая) | ARM700 | 8 КБ общий | 40 МГц | ||
ARM710 | Как ARM700 | 8 КБ общий | 40 МГц | Acorn Risc PC 700 | ||
ARM710a | Как ARM700 | 8 КБ общий | 40 МГц 0.68 DMIPS/МГц |
Acorn Risc PC 700, Apple eMate 300 | ||
ARM7100 | Как ARM710a, интегрированная SoC | 8 КБ общий | 18 МГц | Psion Series 5 | ||
ARM7500 | Как ARM710a, интегрированная SoC. | 4 КБ общий | 40 МГц | Acorn A7000 | ||
ARM7500FE | Как ARM7500, «FE» добавлены FPA и EDO контроллеры памяти | 4 КБ общий | 56 МГц 0.73 DMIPS/МГц |
Acorn A7000+ Network Computer | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-ступенчатый конвейер, режим Thumb | Нет | 15 MIPS @ 16.8 МГц 63 DMIPS @ 70 МГц |
Game Boy Advance , Nintendo DS , Apple iPod , Lego NXT, Atmel AT91SAM7, Juice Box, NXP Semiconductors LPC2000 and LH754xx , Actel "s CoreMP7 |
ARM710T | Как ARM7TDMI, кэш | 8 КБ общий, MMU | 36 MIPS @ 40 МГц | Psion Series 5mx , Psion Revo /Revo Plus/Diamond Mako | ||
ARM720T | Как ARM7TDMI, кэш | 8 КБ общий, MMU с расширением быстрого переключения контекстов (англ. Fast Context Switch Extension ) | 60 MIPS @ 59.8 МГц | Zipit Wireless Messenger, NXP Semiconductors LH7952x | ||
ARM740T | Как ARM7TDMI, кэш | MPU | ||||
ARMv5TEJ | ARM7EJ-S | 5-ступенчатый конвейер, Thumb, Jazelle DBX, усовершенствованные команды DSP | none | |||
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 | 16 KB/8 KB, MMU | 203 MHz | Psion netBook | |||
SA-1110 | Как SA-110, интегрированная SoC | 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 | 5-ступенчатый конвейер, static branch prediction, double-bandwidth memory | 8 KB unified, MMU | 84 MIPS @ 72 MHz 1.16 DMIPS/MHz |
Acorn Risc PC прототип карты CPU |
ARM9TDMI | ARMv4T | ARM9TDMI | 5-ступенчатый конвейер, Thumb | none | ||
ARM920T | Как ARM9TDMI, кэш | 16 KB/16 KB, MMU with FCSE (Fast Context Switch Extension) | 200 MIPS @ 180 MHz | Armadillo, Atmel AT91SAM9, GP32 , GP2X (first core), Tapwave Zodiac (Motorola i. MX1), Hewlett Packard HP-49/50 Calculators, Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315, Samsung S3C2442 (HTC TyTN, FIC Neo FreeRunner ), Samsung S3C2410 (TomTom navigation devices) | ||
ARM922T | Как ARM9TDMI, кэш | 8 KB/8 KB, MMU | NXP Semiconductors LH7A40x | |||
ARM940T | Как ARM9TDMI, кэш | 4 KB/4 KB, MPU | GP2X (второе ядро), Meizu M6 Mini Player | |||
ARM9E | ARMv5TE | ARM946E-S | Thumb, Enhanced DSP instructions, caches | variable, tightly coupled memories, MPU | Nintendo DS , Nokia N-Gage , Canon PowerShot A470, Canon EOS 5D Mark II , Conexant 802.11 chips, Samsung S5L2010 | |
ARM966E-S | Thumb, Enhanced DSP instructions | no cache, TCMs | STM STR91xF, includes Ethernet | |||
ARM968E-S | Как ARM966E-S | no cache, TCMs | NXP Semiconductors LPC2900 | |||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, Enhanced DSP instructions | variable, TCMs, MMU | 220 MIPS @ 200 MHz, | Mobile phones: Sony Ericsson (K, W series); Siemens and Benq (x65 series and newer); LG Arena, LG Cookie Fresh ; TI OMAP1710... OMAP1612, OMAP-L137, OMAP-L138; Qualcomm MSM6100...MSM6800; Freescale i.MX21, i.MX27, Atmel AT91SAM9, NXP Semiconductors LPC3000 , GPH Wiz, NEC C10046F5-211-PN2-A SoC - undocumented core in the ATi Hollywood graphics chip used in the Wii, Samsung S3C2412 used in Squeezebox Duet"s Controller. Squeezebox Radio; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live (NAS); Telechips TCC7801, TCC7901;ZiiLABS" ZMS-05 system on a chip; Western Digital MyBook I World Edition | |
ARMv5TE | ARM996HS | Clockless processor, как ARM966E-S | no caches, TCMs, MPU | |||
ARM10E | ARMv5TE | ARM1020E | 6-ступенчатый конвейер, Thumb, улучшенные DSP-инструкции, (VFP) | 32 KB/32 KB, MMU | ||
ARM1022E | Как ARM1020E | 16 KB/16 KB, MMU | ||||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, Enhanced DSP instructions, (VFP) | variable, MMU or MPU | Western Digital MyBook II World Edition;Conexant so4610 and so4615 ADSL SoC | ||
XScale | ARMv5TE | 80200/IOP310/IOP315 | I/O Processor, Thumb, Enhanced DSP instructions | |||
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 | Applications processor, 7-ступенчатый конвейер | 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 | 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 | Applications processor | 32 KB/32 KB, MMU | 800 MIPS @ 624 MHz | Gumstix verdex, «Trizeps-Modules» PXA270 COM, HTC Universal, hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50, and x51 series, 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, Toshiba Portégé G900, Trēo 650-755p, Zipit Z2, HP iPaq 614c Business Navigator | ||
PXA800(E)F | ||||||
PXA3XX (codenamed «Monahans») | У PXA31x имеется аппаратный графический ускоритель | 32KB/32KB L1, TCM, MMU | 800 MIPS @ 624 MHz | Highscreen alex | ||
PXA900 | Blackberry 8700, Blackberry Pearl (8100) | |||||
IXC1100 | Control Plane Processor | |||||
IXP2400/IXP2800 | ||||||
IXP2850 | ||||||
IXP2325/IXP2350 | ||||||
IXP42x | NSLU2 IXP460/IXP465 | |||||
ARM11 | ARMv6 | ARM1136J(F)-S | 8-ступенчатый конвейер, SIMD , Thumb, Jazelle DBX, (VFP), улучшенные DSP-инструкции | variable, MMU | 740 @ 532-665 MHz (i.MX31 SoC), 400-528 MHz | TI OMAP2420 (Nokia E90 , Nokia N93 , Nokia N95 , Nokia N82), Zune , BUGbase , Nokia N800 , Nokia N810 , Qualcomm MSM7200 (with integrated ARM926EJ-S Coprocessor@274 MHz, used in 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 E72 , 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 as seen in the HTC Dream , HTC Magic , Motorola ZN5, Motorola E8, Motorola VE66, Motorola Z6, HTC Hero , & Samsung SGH-i627 (Propel Pro), Qualcomm MSM7227 used in ZTE Link, HTC Legend , HTC Wildfire S , LG P500, LG GT540, |
ARMv6T2 | ARM1156T2(F)-S | 9-ступенчатый конвейер, SIMD , Thumb-2, (VFP), улучшенные DSP-инструкции | variable, MPU | |||
ARMv6KZ | ARM1176JZ(F)-S | Как ARM1136EJ(F)-S | variable, 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 ; Mediatek MT6573 ; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60, Samsung S3C6410 (e.g. Samsung Moment), S3C6430 | ||
ARMv6K | ARM11 MPCore | Как ARM1136EJ(F)-S, 1-4 core SMP | variable, MMU | Nvidia APX 2500 | ||
Семейство ядер | Версия архитектуры | Ядро | Функции | Кэш (I/D)/MMU | Типичная MIPS @ MHz | Приложения |
Cortex | ARMv7-A | Cortex-A5 | VFP, NEON, Jazelle RCT and DBX, Thumb-2, 8-ступенчатый конвейер, In-order, 1-4 core SMP | variable (L1), MMU+TrustZone | up to 1500 (1.5 DMIPS/MHz) | «Sparrow» (ARM code name) |
Cortex-A8 | VFP, NEON, Jazelle RCT, Thumb-2; 13-ступенчатый конвейер, In-order, 2 декодера | variable (L1+L2), MMU+TrustZone | up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz) | TI 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, Archos 101, FreeScale i.MX51-SOC, BeagleBoard , Motorola Droid, Motorola Droid X, Palm Pre , Samsung Omnia HD , Samsung Wave S8500 , Nexus S , Sony Ericsson Satio, Touch Book , Nokia N900 , Meizu M9 , ZiiLABS ZMS-08 system on a chip, Boxchip A13 | ||
Cortex-A9 | Application profile, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, Out-of-order speculative issue superscalar (2 декодера); 9-12 стадий конвейера | MMU+TrustZone | 2.5 DMIPS/MHz | Apple iPhone 4S , Apple iPad 2 (Apple A5), MediaTek MT6575/6515M | ||
Cortex-A9 MPCore | Как Cortex-A9, 1-4 core SMP | MMU+TrustZone | 10,000 DMIPS @ 2 GHz on Performance Optimized TSMC 40G (quad core?) (2.5 DMIPS/MHz per core) | PlayStation® Vita , TI OMAP4430/4440, ST-Ericsson U8500, Nvidia Tegra2 , Samsung Exynos 4210, MediaTek MT6577/6517 | ||
Cortex-A15 MPCore | 1-32 core SMP; Out-of-order superscalar (3 декодера); 15+ ступеней конвейера ; VFPv4, NEON | MMU, LPAE | 3.5 DMIPS/MHz/Core; 1.0GHz - 2.5GHz (@ 28nm ) | |||
Cortex-A7 MPCore | FPU,NEON; In-order (1 декодер); 8 стадий конвейера. | MMU, LPAE | 1.9 DMIPS/MHz/CPU; 0.8-1.5 GHz (@28nm) | (Broadcom, Freescale, HiSilicon, LG, Samsung, STEricsson, TexasInstruments, MediaTek) | ||
ARMv7-R | Cortex-R4(F) | Embedded profile, Thumb-2, (FPU) | variable cache, MPU optional | 600 DMIPS @ 475 MHz | Broadcom is a user, TI TMS570 | |
ARMv7-ME | Cortex-M4 (codenamed «Merlin») | Microcontroller profile, both Thumb and Thumb-2, FPU. Hardware MAC, SIMD and divide instructions | MPU optional | 1.25 DMIPS/MHz | NXP Semiconductors | |
ARMv7-M | Cortex-M3 | Microcontroller profile, Thumb-2 only. Hardware divide instruction | no cache, MPU optional | 125 DMIPS @ 100 MHz | Stellaris , STM STM32 , NXP LPC1700 , Toshiba TMPM330FDFG , Ember"s EM3xx Series, Atmel AT91SAM3, Europe Technologies EasyBCU , Energy Micro"s EFM32, Actel "s SmartFusion , Миландр 1986ВЕ91Т | |
ARMv6-M | Cortex-M0 (codenamed «Swift») | 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 , Triad Semiconductor , Melfas , Chungbuk Technopark , Nuvoton , austriamicrosystems , Миландр К1986ВЕ2Т | |
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 (0.8 DMIPS/MHz, MHz achievable FPGA-dependent) | Actel ProASIC3, ProASIC3L, IGLOO and Fusion PSC devices , Altera Cyclone III , other FPGA products are also supported e.g. Synplicity | ||
Семейство ядер | Версия архитектуры | Ядро | Функции | Кэш (I/D)/MMU | Типичная MIPS @ MHz | Приложения |
Архитектура
Уже давно существует справочное руководство по архитектуре ARM, которое разграничивает все типы интерфейсов, которые поддерживает ARM, так как детали реализации каждого типа процессора могут отличаться. Архитектура развивалась с течением времени, и начиная с ARMv7 были определены 3 профиля: ‘A’(application) - приложения, ‘R’(real time) - в реальном времени,’M’(microcontroller) - микроконтроллер.
Профили могут поддерживать меньшее количество команд (команды определенного типа).
Режимы
Процессор может находиться в одном из следующих операционных режимов:
- User mode - обычный режим выполнения программ. В этом режиме выполняется большинство программ.
- Fast Interrupt (FIQ) - режим быстрого прерывания (меньшее время срабатывания)
- Interrupt (IRQ) - основной режим прерывания.
- System mode - защищённый режим для использования операционной системой.
- Abort mode - режим, в который процессор переходит при возникновении ошибки доступа к памяти (доступ к данным или к инструкции на этапе prefetch конвейера).
- Supervisor mode - привилегированный пользовательский режим.
- Undefined mode - режим, в который процессор входит при попытке выполнить неизвестную ему инструкцию.
Переключение режима процессора происходит при возникновении соответствующего исключения, или же модификацией регистра статуса.
Набор команд
Чтобы сохранить дизайн чистым, простым и быстрым, оригинальное изготовление ARM было исполнено без микрокода, как и более простой 8-разрядный процессор 6502, используемый в предыдущих микрокомпьютерах от Acorn Computers .
Набор команд ARM
Режим, в котором исполняется 32-битный набор команд.
Набор команд Thumb
Для улучшения плотности кода процессоры, начиная с ARM7TDMI, снабжены режимом «thumb». В этом режиме процессор выполняет альтернативный набор 16-битных команд. Большинство из этих 16-разрядных команд переводятся в нормальные команды ARM. Уменьшение длины команды достигается за счет сокрытия некоторых операндов и ограничения возможностей адресации по сравнению с режимом полного набора команд ARM.
В режиме Thumb меньшие коды операций обладают меньшей функциональностью. Например, только ветвления могут быть условными, и многие коды операций имеют ограничение на доступ только к половине главных регистров процессора. Более короткие коды операций в целом дают большую плотность кода, хотя некоторые операции требуют дополнительных команд. В ситуациях, когда порт памяти или ширина шины ограничены 16 битами, более короткие коды операций режима Thumb становятся гораздо производительнее по сравнению с обычным 32-битным ARM кодом, так как меньший программный код придется загружать в процессор при ограниченной пропускной способности памяти.
Аппаратные средства типа Game Boy Advance, как правило, имеют небольшой объем оперативной памяти доступной с полным 32-битным информационным каналом. Но большинство операций выполняется через 16-битный или более узкий информационный канал. В этом случае имеет смысл использовать тумбовый код и вручную оптимизировать некоторые тяжелые участки кода, используя переключение в режим полных 32-битных инструкций ARM.
Первым процессором с декодером тумбовых команд был ARM7TDMI. Все процессоры семейства ARM9, а также XScale, имели встроенный декодер тумбовых команд.
Набор команд Thumb-2
Thumb-2 - технология, стартовавшая с ARM1156 core, анонсированного в 2003 году. Он расширяет ограниченный 16-битный набор команд Thumb дополнительными 32-битными командами, чтобы задать набору команд дополнительную ширину. Цель Thumb-2 - достичь плотности кода как у Thumb, и производительности как у набора команд ARM на 32 битах. Можно сказать, что в ARMv7 эта цель была достигнута.
Thumb-2 расширяет как команды ARM, так и команды Thumb еще большим количеством команд, включая управление битовым полем, табличное ветвление, условное исполнение. Новый язык «Unified Assembly Language» (UAL) поддерживает создание команд как для ARM, так и для Thumb из одного и того же исходного кода. Версии Thumb на ARMv7 выглядят как код ARM. Это требует осторожности и использования новой команды if-then, которая поддерживает исполнение до 4 последовательных команд испытываемого состояния. Во время компиляции в ARM код она игнорируется, но во время компиляции в код Thumb-2 генерирует команды. Например:
; if (r0 == r1) CMP r0, r1 ITE EQ ; ARM: no code ... Thumb: IT instruction ; then r0 = r2; MOVEQ r0, r2 ; ARM: conditional; Thumb: condition via ITE "T" (then) ; else r0 = r3; MOVNE r0, r3 ; ARM: conditional; Thumb: condition via ITE "E" (else) ; recall that the Thumb MOV instruction has no bits to encode "EQ" or "NE"
Все чипы ARMv7 поддерживают набор команд Thumb-2, а некоторые чипы, вроде Cortex-m3, поддерживают только Thumb-2. Остальные чипы Cortex и ARM11 поддерживают наборы команд как Thumb-2, так и ARM.
Набор команд Jazelle
Расширения безопасности
Расширения безопасности, позиционируемые как TrustZone Technology, находятся в ARMv6KZ и других, более поздних, профилированных на приложениях архитектурах. Оно обеспечивает низкозатратную альтернативу добавлению специального ядра безопасности, обеспечивая 2 виртуальных процессора, поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения переключаться между двумя состояниями, называемыми «миры» (чтобы избежать путаницы с названиями возможных доменов), чтобы не допустить утечку информации из более важного мира в менее важный. Этот переключатель миров обычно ортогонален всем другим возможностям процессора. Таким образом, каждый мир может работать независимо от других миров, используя одно и то же ядро. Память и периферия соответственно изготавливаются с учетом особенностей мира ядра, и могут использовать это, чтобы получить контроль доступа к секретам и кодам ядра. Типичные приложения TrustZone Technology должны запускать полноценную операционную систему в менее важном мире, и компактный, специализированный на безопасности, код в более важном мире, позволяя Digital Rights Management’у намного точнее контролировать использование медиа на устройствах на базе ARM, и предотвращая несанкционированный доступ к устройству.
На практике же, так как конкретные детали реализации TrustZone остаются собственностью компании и не разглашаются, остается неясным, какой уровень безопасности гарантируется для данной модели угрозы.
Отладка
Все современные процессоры ARM включают аппаратные средства отладки, так как без них отладчики ПО не смогли бы выполнить самые базовые операции типа остановки, отступа, установка контрольных точек после перезагрузки.
Архитектура ARMv7 определяет базовые средства отладки на архитектурном уровне. К ним относятся точки останова, точки просмотра и выполнение команд в режиме отладки. Такие средства были также доступны с модулем отладки EmbeddedICE. Поддерживаются оба режима - остановки и обзора. Реальный транспортный механизм, который используется для доступа к средствам отладки, не специфицирован архитектурно, но реализация, как правило, включает поддержку JTAG .
Существует отдельная архитектура отладки «с обзором ядра», которая не требуется архитектурно процессорами ARMv7.
Регистры
ARM предоставляет 31 регистр общего назначения разрядностью 32 бит. В зависимости от режима и состояния процессора пользователь имеет доступ только к строго определённому набору регистров. В ARM state разработчику постоянно доступны 17 регистров:
- 13 регистров общего назначения (r0..r12).
- Stack Pointer (r13) - содержит указатель стека выполняемой программы.
- Link register (r14) - содержит адрес возврата в инструкциях ветвления.
- Program Counter (r15) - биты содержат адрес выполняемой инструкции.
- Current Program Status Register (CPSR) - содержит флаги, описывающие текущее состояние процессора. Модифицируется при выполнении многих инструкций: логических, арифметических, и др.
Во всех режимах, кроме User mode и System mode, доступен также Saved Program Status Register (SPSR). После возникновения исключения регистр CPSR сохраняется в SPSR. Тем самым фиксируется состояние процессора (режим, состояние; флаги арифметических, логических операций, разрешения прерываний) на момент непосредственно перед прерыванием.
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 |
Работа с памятью
Поддерживаемые системы ввода-вывода
В большинстве существующих моделей микропроцессоров реализована шина PCI и возможность работы с внешней динамической оперативной памятью (DRAM). В процессорах, предназначенных для потребительских устройств, также обычно интегрируются: контроллеры шин USB , IIC , AC’97-совместимое звуковое устройство, устройство для работы с флэш-носителями стандарта SD и MMC, контроллер последовательного порта.
Все процессоры имеют линии ввода-вывода общего назначения (GPIO). В потребительских устройствах к ним могут быть подключены кнопки «быстрого запуска», сигнальные светодиоды, колесо прокрутки (JogDial), клавиатура.
Процесс запуска ОС на ARM-машинах
Поддержка Unix-подобными системами
Архитектура ARM поддерживается Unix и Unix-подобными ОС GNU/Linux , BSD , QNX , Plan 9 , Inferno , Solaris , Mac OS X , iOS , WebOS и Android .
Linux
Следующие дистрибутивы поддерживают процессоры ARM:
BSD
Следующие производные от BSD поддерживают процессоры ARM:
Solaris
Поддержка других операционных систем
Операционные системы, которые работают на ARM: ReactOS , FreeRTOS , Nucleus , Symbian OS , Windows CE , RISC OS , Windows RT .
ARM лицензиаты и приблизительная стоимость лицензии
ARM не производит и не продает процессоры, сделанные по своим разработкам, но зато дает лицензии на процессоры заинтересованным партнерам. ARM предлагает широкий выбор условий лицензирования, различающихся по стоимости и деталям. Для всех владельцев лицензии ARM поставляет описание аппаратной части ядра, а также полный набор средств разработки программного обеспечения (компилятор, отладчик), а также право продавать произведенные процессоры ARM. Некоторые клиенты занимаются производством процессоров для сторонних компаний.
Годовой отчет ARM за 2006 год сообщает что в результате лицензирования 2,5 миллиардов единиц (процессоров) был выручен 161 миллион долларов. Это эквивалентно 0.067 доллара за единицу. Однако это очень усредненный показатель - ведь сюда входят и лицензии на очень дорогие новейшие процессоры, и старые дешевые процессоры.
Примечания
- "ARMed for the living room" .
- "An interview with Steve Furber"
- samsung Nexus 10 - Geekbench Browser
- MacBook Air - Geekbench Browser
- Apache Benchmarks for Calxeda’s 5-Watt Web Server – ARM Servers, Now!
- http://www.apm.com/global/x-gene/docs/2012_03_OPP%20Cloudy%20with%20a%20Chance%20of%20ARM.pdf
- «ARM810 - Dancing to the Beat of a Different Drum» ARM Holdings presentation at Hot Chips 1996-08-07.
- Register 13, FCSE PID register ARM920T Technical Reference Manual
- Neo1973: GTA01Bv4 versus GTA02 comparison . Архивировано из первоисточника 13 марта 2012. Проверено 15 ноября 2007.
- S3C2410 . Архивировано из первоисточника 13 марта 2012. Проверено 13 января 2010.
- Rockbox Samsung SA58xxx series . Архивировано
- Rockbox Meizu M6 Port – Hardware Information . Архивировано из первоисточника 13 марта 2012. Проверено 22 февраля 2008.
- Datasheets - Magic Lantern Firmware Wiki
- STR9 – STR912 – STR912FW44 microcontroller – documents and files download page . Mcu.st.com.(недоступная ссылка - история ) Проверено 18 апреля 2009.
- Starlet .
- Benchmarks – Albatross . Albatross-uav.org (18 июня 2005).(недоступная ссылка - история ) Проверено 18 апреля 2009.
- ARM1136J(F)-S – ARM Processor . Arm.com. Архивировано
- Qualcomm chips kernel ARM - from phones to laptops . xi0.info. Архивировано
- Qualcomm MSM7227 RISC Chipset . pdadb.net. Архивировано из первоисточника 13 марта 2012. Проверено 8 мая 2010.
- GoForce 6100 . Nvidia.com. Архивировано из первоисточника 13 марта 2012. Проверено 18 апреля 2009.
- Mediatek MT6573 . http://www.mediatek.com. ; Архивировано из первоисточника 6 июня 2012. Проверено 18 апреля 2009.
- Samsung S3C6410 and S3C6430 Series ARM Proccessors . Samsung. Проверено 8 октября 2009. , and the Qualcomm MSM7627 as seen in the Palm Pixi and Motorola Calgary/Devour
- Merrit, Rick "ARM stretches out with A5 core, graphics, FPGAs" . EE Times (21 октября 2009). Архивировано из первоисточника 13 марта 2012. Проверено 28 октября 2009.
- Clarke, Peter ARM tips plans for Swift and Sparrow processor cores . EE Times (3 февраля 2009). Архивировано из первоисточника 13 марта 2012. Проверено 18 апреля 2009.
- Segan, Sascha ARM"s Multicore Chips Aim for Netbooks . PC Magazine (9 апреля 2009). Архивировано из первоисточника 13 марта 2012. Проверено 18 апреля 2009.
- http://pc.watch.impress.co.jp/video/pcw/docs/423/409/p1.pdf
- Cortex-A15 Processor - ARM
- Cortex-A7 Processor - ARM
- Benz, Benjamin Cortex Nachwuchs bei ARM . Heise.de (2 февраля 2010). Архивировано из первоисточника 13 марта 2012. Проверено 3 мая 2010.
- Clarke, Peter ARM preps tiny core for low-power microcontrollers . EE Times (23 февраля 2009). Архивировано из первоисточника 13 марта 2012. Проверено 30 ноября 2009.
- Walko, John NXP first to demo ARM Cortex-M0 silicon . EE Times (23 марта 2009). Архивировано из первоисточника 13 марта 2012. Проверено 29 июня 2009.
- ARM Powered VCAs " Triad Semiconductor
- Cortex-M0 used in low power touch controller - 10/06/2009 - Electronics Weekly
- Chungbuk Technopark Chooses ARM Cortex-M0 Processor
- Google Translate
- Austriamicrosystems Chooses ARM Cortex-M0 Processor For Mixed Signal Applications
- «ARM Extends Cortex Family with First Processor Optimized for FPGA» , ARM press release, March 19, 2007. Retrieved April 11, 2007.
ARM процессор - мобильный процессор для смартфонов и планшетов.
В этой таблице представлены все известные на сегодняшний день ARM процессоры. Таблица ARM процессоров будет дополнятся и модернизироваться по мере появления новых моделей. В данной таблице используется условная система оценки производительности CPU и GPU. Данные о производительности ARM процессоров были взяты из самых разных источников, в основном исходя из результатов таких тестов, как: PassMark , Antutu , GFXBench .
Мы не претендуем на абсолютную точность. Абсолютно точно ранжировать и оценить производительность ARM процессоров невозможно, по той простой причине, что каждый из них, в чем-то имеет преимущества, а в чем-то отстает от других ARM процессоров. Таблица ARM процессоров позволяет увидеть, оценить и, главное, сравнить различные SoC (System-On-Chip) решения. Воспользовавшись нашей таблицей, Вы сможете сравнить мобильные процессора и достаточно точно узнать, как позиционируется ARM-сердце Вашего будущего (или настоящего) смартфона или планшета.
Вот мы провели сравнение ARM процессоров. Посмотрели и сравнили производительность CPU и GPU в различных SoC (System-оn-Chip). Но у читателя может возникнуть несколько вопросов: Где используются ARM процессора? Что такое ARM процессор? Чем отличается архитектура ARM от x86 процессоров? Попробуем разобраться во всем этом, не сильно углубляясь в подробности.
Для начала определимся с терминологией. ARM - это название архитектуры и одновременно название компании, ведущей ее разработку. Аббревиатура ARM расшифровывается как (Advanced RISC Machine или Acorn RISC Machine), что можно перевести как: усовершенствованная RISC-машина. ARM архитектура объединяет в себе семейство как 32, так и 64-разрядных микропроцессорных ядер, разработанных и лицензируемых компанией ARM Limited. Сразу хочется отметить, что компания ARM Limited занимается сугубо разработкой ядер и инструментария для них (средства отладки, компиляторы и т.д), но никак не производством самих процессоров. Компания ARM Limited продает лицензии на производство ARM процессоров сторонним фирмам. Вот неполный список компаний, получивших лицензию на производство ARM процессоров сегодня: AMD, Atmel, Altera, Cirrus Logic, Intel, Marvell, NXP, Samsung, LG, MediaTek, Qualcomm, Sony Ericsson, Texas Instruments, nVidia, Freescale ... и многие другие.
Некоторые компании, получившие лицензию на выпуск ARM процессоров, создают собственные варианты ядер на базе ARM архитектуры. Как пример можно назвать: DEC StrongARM, Freescale i.MX, Intel XScale, NVIDIA Tegra, ST-Ericsson Nomadik, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, LG H13, Apple A4/A5/A6 и HiSilicon K3.
На базе ARM процессоров сегодня работают
фактически любая электроника: КПК, мобильные телефоны и смартфоны
, цифровые плееры, портативные игровые консоли, калькуляторы, внешние жесткие диски и маршрутизаторы. Все они содержат в себе ARM-ядро, поэтому можно сказать, что ARM - мобильные процессоры для смартфонов
и планшетов.
ARM процессор представляет из себя SoC , или "систему на чипе". SoC система, или "система на чипе", может содержать в одном кристалле, помимо самого CPU, и остальные части полноценного компьютера. Это и контроллер памяти, и контроллер портов ввода-вывода, и графическое ядро, и система геопозиционирования (GPS). В нем может находится и 3G модуль, а также многое другое.
Если рассматривать отдельное семейство ARM процессоров, допустим Cortex-A9 (или любое другое), нельзя сказать, что все процессоры одного семейства имеют одинаковую производительность или все снабжены GPS модулем. Все эти параметры сильно зависят от производителя чипа и того, что и как он решил реализовать в своем продукте.
Чем же отличается ARM от X86 процессоров
? Сама по себе RISC (Reduced Instruction Set Computer) архитектура подразумевает под собой уменьшенный набор команд. Что соответственно ведет к очень умеренному энергопотреблению. Ведь внутри любого ARM чипа находится гораздо меньше транзисторов, чем у его собрата из х86 линейки. Не забываем, что в SoC-системе все периферийные устройства находится внутри одной микросхемы, что позволяет ARM процессору быть еще более экономным в плане энергопотребления. ARM архитектура изначально была предназначена для вычисления только целочисленных операций, в отличии от х86, которые умеют работать с вычислениями с плавающей запятой или FPU. Нельзя однозначно сравнивать эти две архитектуры. В чем-то преимущество будет за ARM. А где-то и наоборот. Если попробовать ответить одной фразой на вопрос: в чем разница между ARMи X86 процессорами, то ответ будет таким: ARM процессор незнает того количества команд, которые знает х86 процессор. А те, что знает, выглядят гораздо короче. В этом его как плюсы, так и минусы. Как бы там ни было, в последнее время все говорит о том, что ARM процессора начинают медленно, но уверенно догонять, а кое в чем и перегонять обычные х86. Многие открыто заявляют о том, что в скором времени ARM процессоры заменят х86 платформу в сегменте домашних ПК. Как мы уже , в 2013 году уже несколько компаний с мировым именем полностью отказались от дальнейшего выпуска нетбуков в пользу планшетных пк. Ну а что будет на самом деле, время покажет.
Мы же будем отслеживать уже имеющиеся на рынке ARM процессоры.
В 2011 году компания ARM Limited анонсировала новое семейство процессоров под названием ARMv8. А в 2013 году компания Apple выпустила первый ARMv8-процессор – однокристальную систему А7, которая применяется в iPhone 5S, iPad Air и iPad mini Retina. Архитектура ARMv8 получила 64-битный набор команд, но это далеко не единственное её преимущество над предшественницей ARMv7. Как устроены и какими бывают 64-битные процессоры ARMv8, читайте в статье.
Об истории архитектуры ARM, специфике деятельности компании ARM Limited и поколениях процессоров ARMv5, ARMv6 и ARMv7 вы можете прочитать в статье . А про популярные модели ARMv7-чипов производства Qualcomm, NVIDIA, Samsung, Apple, MediaTek и др. подробно рассказано в статьях и .
Нововведения ARMv8
Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила 64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4 Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch32). Другими важными нововведениями ARMv8 стали:
— 31 регистр общего назначения, каждый длиной 64 бита, тогда как SP и PC не являются регистрами общего назначения. Чем выше разрядность регистров, тем больше числа можно в них хранить. А чем больше количество регистров, тем больше данних в них помещается одновременно. Как результат, за одну инструкцию можно обработать больший объем данних и весь алгоритм выполнится быстрее;
— трансляция виртуальных адресов из 48-битного формата работает с помощью механизмов LPAE, позаимствованных у ARMv7;
— новый набор инструкций с фиксированной длинной. Инструкции имеют размер 32 бита и многие совпадают с командами AArch32, хотя условных инструкций стало меньше;
— увеличено с 16 до 32 количество 128-битных регистров (совместимы с 64-битными регистрами), доступных сопроцессорам SIMD NEON и VFP, а также добавлены новые криптографические инструкции AES и SHA. Набор инструкций SIMD NEON ускоряет работу приложений, отвечающих за обработку медиаданных и сигналов. В свою очередь VFP отвечает за малоэнергозатратные вычисления над числами с плавающей запятой;
— поддержка вычислений над числами с плавающей запятой двойной точности и стандарта IEEE 754, который является общепринятым форматом представления чисел с плавающей запятой, используемый в программных реализациях арифметических действий.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что находится примерно по середине между нынешними Cortex-A7 (1,9 DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент, ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).
Помимо лицензирования референсных процессорных ядер компания ARM Limited продает расширенные лицензии, позволяющие чипмейкерам по своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть, к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает производителям процессоров создавать собственные решения на базе ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.
Apple A7
Первым и пока единственным 64-битным ARM-процессором, который уже применяется в смартфонах и планшетах, является Apple A7. Построен он на фирменной архитектуре Apple Cyclone, совместимой с ARMv8. Это вторая разработанная внутри компании процессорная архитектура; первой же была Swift (чипы A6 и A6X, семейство ARMv7).
Процессорных ядер у однокристальной системы A7 только два (частота до 1,4 ГГц), но присутствует графический ускоритель PowerVR G6430 с четырьмя кластерами ядер. Быстродействие чипа A7 в процессорозависимых задачах выросло примерно в полтора раза по сравнению с А6, тогда как в различных графических тестах прирост составляет от двух до трех раз.
А вот теоретическую возможность работать с большим объемом оперативной памяти благодаря 64-битной архитектуре процессора A7 устройства под управлением iOS пока не ощущают. У iPhone 5s, iPad Air и iPad mini Retina всего лишь 1 Гбайт оперативки; и вряд ли в новом поколении мобильных устройств Apple объем ОЗУ вырастит больше чем вдвое.
Qualcomm Snapdragon 410, 610, 615, 808 и 810
Вслед за Apple свои 64-битные ARM-процессоры поспешила анонсировать компания Qualcomm, причем сразу пять моделей. Правда, пока ни одна из них в коммерческих смартфонах или планшетах не применяется. Скорее всего, расцвет эпохи 64-битных Android-устройств состоится в начале 2015 года на выставках CES и MWC.
Однокристальная система Snapdragon 410 (MSM8916) – младшая из анонсированной 64-битной линейки Qualcomm. Она включает в себя четыре ядра Cortex-A53 с частотой от 1,2 ГГц, графический ускоритель Adreno 306 и, что интереснее всего, навигационный модуль с поддержкой спутниковых сетей GPS, ГЛОНАСС и даже китайской . Применять Snapdragon 410 планируют в недорогих смартфонах на базе Android, Windows Phone и Firefox OS.
Те же четыре ядра Cortex-A53, что у 410-того, содержит чип Snapdragon 610 (MSM8936), вот только графика у него улучшенная Adreno 405. Тогда как Snapdragon 615 (MSM8939) схож с 610-тым графикой, но процессорных ядер Cortex-A53 у него вдвое больше – восемь Cortex-A53.
В отличие от 410, 610, 615 моделей, выполненных по 28-нм техпроцессу, чипы Snapdragon 808 (MSM8992) и 810 (MSM8994) будут производиться по передовым 20-нм технологическим нормам. Они оба строятся по схеме big.LITTLE: два (модель 808) или четыре (810) мощных ядра Cortex-A57 и четыре энергоэффективных Cortex-A53. Графика представлена Adreno 418 и Adreno 430 соответственно. Кроме того, старший Snapdragon 810 имеет встроенный контроллер оперативной памяти стандарта LPDDR4.
Но главный вопрос: когда именно компания Qualcomm представит собственную процессорную архитектуру на основе ARMv8, как это было со Scorpion и Krait (модифицированные ARMv7)?
MediaTek MT6732, MT6752, MT6795
Не могла долго оставаться в стороне 64-битной гонки и компания MediaTek, всего за несколько лет превратившаяся из мелкого производителя процессоров для китайских клонов iPhone в одного из крупнейших в мире чипмейкеров, пусть и безфабричного. Впрочем, Apple и Qualcomm собственных тоже не имеют.
Однокристальные системы MediaTek MT6732 и MT6752 должны составить конкуренцию чипам Snapdragon 610 и 615. У них четыре и восемь процессорных ядер Cortex-A53 (частота 1,5 и 2 ГГц соответственно) и одинаковая графика Mali-T760 (разработка ARM Limited). Старший же чип MT6795 стал ответом Snapdragon 810: архитектура big.LITTLE, по четыре ядра Cortex-A57 и A53 с частотой 2,2 ГГц, а также графический ускоритель PowerVR G6200.
NVIDIA Tegra K1 (Project Denver)
Компания NVIDIA решила перевести на 64-битную процессорную архитектуру свой уже существующий чип Tegra K1. Графическая составляющая у него и раньше была едва ли не лучшей среди конкурентов – GK20A с 192 ядрами Kepler, производительностью 365 GFLOPS и поддержкой ПК-стандартов графики DirectX 11.2 и OpenGL 4.4 (а не их мобильных аналогов).
Вместо же четырех 32-битных ядер Cortex-A15 (плюс пятое энергоэффективное ядро) обновленная однокристальная система Tegra K1 получит два ARMv8-совместимых ядра фирменной архитектуры NVIDIA Project Denver. Тактовая частота процессора вырастет до 2,5 ГГц, увеличится и объем кеша. Интересный факт: графика Tegra K1 примерно в пятьдесят раз мощнее Tegra 2.
Выводы
За один такт процессоры архитектуры ARMv8 способны обработать значительно больше данных. Это повышает как общую производительность процессора, так и производительность на ватт. Учитывая ограничения технологических норм (максимально допустимую тактовую частоту), переход на ARMv8 – это единственный возможный способ нарастить быстродействие мобильных процессоров, не выходя за разумные рамки энергопотребления и нагрева.
Естественно, пользу от архитектуры ARMv8 получат только те приложения для iOS и Android, которые способны задействовать все ресурсы новых процессоров. Оптимизация программ под новую архитектуру может быть как ручной, так и автоматической, на уровне компилятора.
Первое же Android-устройство с 64-битным ARM-процессором и 4 Гбайт ОЗУ – фаблет Samsung Galaxy Note 4 ( . А вторым, возможно, станет планшетный компьютер HTC серии .
Процессоры ARM – что это такое и «с чем их едят». Появление на рынке производительных мобильных процессоров во многом стало настоящим революционным прорывом. Можно сказать, впервые у x86-архитектуры появился весомый конкурент, который если на первых этапах и занимал только лишь соседствующую нишу, то уже сегодня начинает всерьез теснить позиции долгожителя компьютерной индустрии.
Но в чем же отличие? Что такое архитектура ARM и чем она отличается от x86? В последней, используемой в процессорах Intel и AMD, применяется набор CISC-команд. Обработка на их основе очень функциональна, открывает просторы для программистов и разработчиков железа, но требует немалого количества энергоресурсов. Суть CISC, грубо говоря, заключается в том, что каждая поступаемая команда декодируется в простейший элемент и только потом обрабатывается.
В ARM все иначе. Она действует на основе RISC-команд, которые уже содержат готовый набор простейших элементов. Это уменьшает процессорную гибкость, но в разы увеличивается скорость обработки данных, и соответственно, уменьшает энергозатраты такого процессора.
Отсюда и получается, что x86 – это универсальная архитектура, пригодная для решения многих задач, в то время как ARM требует более тонкой заточки железа и возможности такой архитектуры несколько более ограничены. Однако возможности ARM становятся все более масштабными. Уже сейчас такие процессоры пригодны для стандартной офисной работы, воспроизведения медиа-контента, работы в интернете.
ARM быстро развивается, чему способствует и тот факт, что над данной технологией по франчайзингу трудятся десятки конкурентных брендов, в то время как над x86-архитектурой трудятся всего две корпорации, представители которых едва ли не прямо говорят о том, что в сегменте застой… а про ARM такого не скажешь.
Говоря о том, что такое чипы ARM следует отметить такой момент, как комплексность предлагаемых современных мобильных систем. ARM – это не просто один процессор. Как правило, в него входят: контроллер оперативной памяти, графический ускоритель, видеодекодер, аудиоокодек и опционально модули беспроводной связи. Такая система называется однокристальной. Другими словами, ARM – это чип на чипе.
На сегодняшний день ARM насчитывают несколько процессорных поколений:
ARM9 . Чипы ARM9 могут достигать тактовой частоты 400 МГц. Эти чипы морально устарели, но по прежнему пользуются спросом. Например, в беспроводных маршрутизаторах и терминалах оплаты. Набор простых команд такого чипа позволяет с легкостью запускать многие Java-приложения.
ARM11 . Процессоры ARM11 могут похвастаться более полным набором простых команд, расширяющих их функционал и высокой тактовой частотой (вплоть до 1 ГГц). Благодаря невысокому энергопотреблению и низкой себестоимости чипы ARM11 до сих пор применяются в смартфонах начального уровня.
ARMv7. Современные чипы архитектуры ARM принадлежат к семейству ARMv7, флагманские представители которого уже достигли отметки в восемь ядер и тактовой частоты свыше 2 ГГц. Разработанные непосредственно ARM Limited процессорные ядра принадлежат к линейке Cortex и большинство производителей однокристальных систем используют их без существенных изменений.
ARM Cortex-A8. Исторически первым процессорным ядром семейства ARMv7 было Cortex-A8, которое легло в основу таких известных SoC своего времени как Apple A4 (iPhone 4 и iPad) и Samsung Hummingbird (Samsung Galaxy S и Galaxy Tab). Оно демонстрирует примерно вдвое более высокую производительность по сравнению с предшествующим ARM11, и увы, более высокое энергопотребление, что делает данный чип ныне крайне непопулярным.
ARM Cortex-A9. Вслед за Cortex-A8 компания ARM Limited представила новое поколение чипов – Cortex-A9, которое сейчас является самым распространенным и занимает среднюю ценовую нишу. Производительность ядер Cortex-A9 выросла примерно втрое по сравнению с Cortex-A8, да еще и появилась возможность объединять их по два или даже четыре на одном чипе.
ARM Cortex-A5 и Cortex-A7. При проектировании процессорных ядер Cortex-A5 и Cortex-A7 компания ARM Limited преследовала одно и ту же цель – добиться компромисса между минимальным энергопотреблением ARM11 и приемлемым быстродействием Cortex-A8. Не забыли и про возможность объединения ядер по два-четыре – многоядерные чипы Cortex-A5 и Cortex-A7 мало-помалу появляются в продаже (Qualcomm MSM8625 и MTK 6589).
ARM Cortex-A15. Процессорные ядра Cortex-A15 стали логическим продолжением Cortex-A9 – как результат, чипам архитектуры ARM впервые в истории удалось примерно сравниться по быстродействию с Intel Atom, а это уже большой успех. Не зря ведь компания Canonical в системных требования к версии ОС Ubuntu Touch с полноценной многозадачностью указала двухъядерный процессор ARM Cortex-A15 или аналогичный Intel Atom.
Чипы ARM ждет великое будущее. Количество команд, частота работы, количество ядер активно растут, а энергопотребление продолжает оставаться на низком уровне. В будущем чипы ARM станут пригодными для полноформатной многозадачности, ныне свойственной лишь x86-системам. Однако, даже с условиями нынешнего вектора развития, говорить о том, что сегмент потребительской электроники полностью перейдет на чипы ARM – пока рано. И дело здесь, прежде всего, в цене. Стоимость мобильных чипов растет с геометрической прогрессией, в то время, как x86 продолжает дешеветь. Именно фактор цены наряду с разницей в функциональности, которая несколько будет преодолена, и складывается вполне понятный прогноз того, что развитые ARM-системы не скоро одержат безоговорочную победу в гонке за своего потребителя…