Может кто-то простым языком для даунов объяснить в чём фишка архитектуры ARM и чем это отличается от x86?
Я не понимаю как можно выделять какую-то там архитектуру ARM.
Архитектура, если просто, — это набор и отношения разных блоков внутри ЦП: число алу, связи между ними, конвееры, предсказатели, переупорядочиватели, регистры и др. Число этих разных сущностей может быть конским, половину из них нормальный человек вообще не отнесёт ни к чему ранее известному.
Вот есть «архитектура» Sandy Bridge или Ice Lake или древние итаниумы. Что там внутри нам особо не скажут, но вариация может быть огромна. Ну то есть нет, немножко скажут в сопроводительных доках к intel vtune, но не до транзисторов. Чего там воткнут в новом поколении нового или сильно всё переделают — пёс его знает. Это могут быть принципиально разные ядра, запиленные разными разрабами с нуля в разных странах мира. Единственное, что нам гарантируют — что новое ядро поймёт ту же систему команд и прежние контракты, вроде с какого адреса жрать код после включения. А как всё исполняется внутри — нет гарантий. Внутри будет RISC-ядро или 32 VLIW-модуля каких-то диких, координируемые вашим x86 кодом — воля разрабов. Вам вообще не должно быть понятно что там внутри камня, кроме контракта о том, что оно сожрёт ваш старый код с тем же результатом.
Т.е. в моём ламерском понимании, «x86» уже давно ничего не означает, кроме может быть системы команд. «x86» ничего не говорит о том, какое там внутри ядро и какая у него архитектура. В моём понимании, если, скажем, выразить некое расстояние между разными архитектурами семейства x86 неким числом, то это число будет сильно больше, чем некая абстрактная разница «между ARM и x86».
То есть, когда нам говорят, что японский суперкомпьютер построен на ARM-процессорах или что Apple запилила свой ARM-процессор для десктопных маков, то что это говорит об архитектуре? Ничего? В моём понимании это некий маркетинговый базар о том, что «у нас не intel и не ADM», но никакой технической составляющей в этих словах нет.
Можете простым языком для даунов объяснить где я не прав?
А ещё вопрос: а чё там лицензировать-то? Ну вот ARM какие-то там лицензии выдаёт за деньги. На что лицензии? На исполнение их набора команд? А кому оно надо? Почему свой набор команд авторы любого нового камня не могут напилить?
Процессоры ARM против x86: будет ли схватка
Совсем недавно сама постановка вопроса казалась немыслимой: можно ли вообще сравнивать «телефонный» процессор с чипами, применяющимися в «персоналках», серверах и даже суперкомпьютерах? Между тем, развитие технологий и причуды рынка привели к ситуации, когда специалисты всерьёз обсуждают возможность даже не просто конкуренции между процессорами ARM и чипами x86, а яростной схватки между ними.
Прежде всего, определимся с понятиями и познакомимся с потенциальными соперниками.
Центральные процессоры x86 – это микропроцессоры, поддерживающие одноимённый набор инструкций и обладающие микроархитектурой, производной от IA-32, то есть Intel Architecture 32-бит. Чипы построены на основе архитектуры CISC (Complex Instruction Set Computing, то есть «с полным набором инструкций»), в которой каждая инструкция может выполнять сразу несколько низкоуровневых операций.
Исторически семейство x86 восходит к 16-разрядной модели Intel 8086, выпущенной в 1978 году. 32-битными эти процессоры стали лишь в 1985 году, когда был представлен первый «триста восемьдесят шестой». В 1989 году Intel выпустила первый скалярный (то есть выполняющий одну операцию за один такт) чип i486 (80486), в котором впервые появились встроенная кэш-память и блок вычислений с плавающей запятой FPU. Процессоры Pentium, представленные в 1993 году, стали первыми суперскалярными (то есть выполняющими несколько операций за такт) и суперконвейерными (в этих чипах было два конвейера).
Итак, современные x86-совместимые чипы – это суперскалярные суперконвейерные микропроцессоры, построенные на основе CISC-архитектуры.
ARM-процессоры – 32-битные чипы на базе архитектуры RISC (Reduced Instruction Set Computer), то есть с сокращённым набором команд. В основу этой архитектуры положена идея повышения быстродействия за счёт максимального упрощения инструкций и ограничения их длины.
История ARM-процессоров началась в том же 1978 году, когда была создана британская компания Acorn Computers. Под маркой Acorn выпускались несколько чрезвычайно популярных на местном рынке моделей персональных компьютеров на основе восьмибитных чипов MOS Tech 6502. Этот же ЦП, кстати, стоял в Apple I и II и Commodore PET.
Однако с появлением более совершенной модели 6510, которая в 1982 году стала устанавливаться в Commodore 64, линейка компьютеров Acorn, включая популярнейший образовательный BBC Micro, потеряла актуальность. Это подтолкнуло владельцев Acorn к созданию собственного процессора на базе архитектуры 6502, который позволил бы на равных конкурировать с машинами класса IBM PC.
Первая серийная модель ARM2, разработанная в рамках проекта Acorn RISC Machine, была выпущена в 1986 году и стала самым конструктивно простым и недорогим 32-битным процессором на тот момент: в нём отсутствовала не только кэш-память, что было нормой для чипов того времени, но и микропрограммы: в отличие от CISC-процессоров, микрокод исполнялся как и любой другой машинный код, путём преобразования в простые инструкции. Кристалл ARM2 состоял из 30000 транзисторов, и эта компактность конструкции осталась характерным признаком этого семейства: в ARM6 всего на 5000 транзисторов больше.
В отличие от Intel или AMD, ARM сама не занимается выпуском процессоров, предпочитая продавать лицензии другим. Среди компаний, располагающих такими лицензиями, есть те же Intel и AMD, а также VIA Technologies, IBM, NVIDIA, Nintendo, Texas Instruments, Freescale, Qualcomm и Samsung. Показательный факт: если AMD, вторая компания на рынке x86-процессоров, в 2009 году отметила выпуск своего 500-миллионного ЦП, то в одном только 2009 году на рынок было поставлено почти три миллиарда ARM-процессоров!
Современные ARM-процессоры – это суперскалярные суперконвейерные микросхемы, построенные на основе RISC-архитектуры.
Судя по этим двум определением, чуть ли не единственное формальное отличие семейств ARM и x86 – микроархитектуры RISC и CISC. Однако и это уже нельзя считать принципиальным отличием: начиная с модификации i486DX, x86-чипы стали больше напоминать RISC-процессоры. Начиная с этого поколения, микросхемы, сохраняя совместимость со всеми предыдущими наборами команд, демонстрируют максимальную производительность только с ограниченным набором простых инструкций, который подозрительно похож на набор RISC-команд. Поэтому сегодняшние x86 можно смело считать CISC-процессорами с RISC-ядрами: встроенный в микросхему аппаратный транслятор декодирует сложные CISC-инструкции в набор простых внутренних RISC-команд. Даже несмотря на то, что каждая CISC-инструкция может «раскладываться» на несколько RISC-команд, быстрота выполнения последних обеспечивает значительный прирост производительности. К тому же, не следует забывать о суперскалярности и суперконвейерности современных чипов.
Куда важнее другое отличие: львиная доля x86 – это универсальные процессоры, «обвешанные» множеством разнообразных блоков и модулей, которые призваны успешно справляться практически с любыми задачами – от веб-сёрфинга и обработки текстовых файлов до кодирования видео высокого разрешения и работы с трёхмерной графикой. У ARM-чипов, ориентированных на использование в смартфонах и прочих портативных устройствах, совершенно иные цели и возможности.
Тогда что же делить столь разным продуктам? Конечно, нелепо сравнивать четырёхъядерный Core i5 и «телефонный» Qualcomm MSM7201A, стоящий в коммуникаторах HTC Dream и Hero, но есть масштабы, где рынки ARM и i86 перекрываются уже сегодня. Это, с одной стороны, такие новейшие чипы ARM, как Cortex-A8 (архитектура ARMv7-A), а с другой – низковольтные x86-процессоры класса Intel Atom. На основе Cortex-A8 построен модный планшет Apple iPad, а Intel Atom работают в подавляющем большинстве нетбуков.
У этих чипов есть ещё одна важная общая особенность: оба этих процессора работают по принципу последовательного исполнения инструкций, в то время как большая часть x86 – процессоры с внеочередным выполнением команд. Эта схема призвана добиться максимальной производительности на ватт потребляемой энергии за счёт отказа от модулей, отвечающих за внеочередное выполнение инструкций.
Есть у Atom и несколько принципиальных отличий от Cortex-A8. Прежде всего, практически все микросхемы этого семейства поддерживают технологию параллельных вычислений Hyper-Threading, которая позволяет представить одно физическое ядро как два виртуальных. Это весьма существенное преимущество, заметно повышающее производительность, причём не только в относительно редких до сих пор многопоточных приложениях, но и при выполнении команд с интенсивным использованием систем ввода-вывода. К примеру, Atom с Hyper-Threading заметно быстрее загружает Windows, чем сравнимый с ним по возможностям одноядерный VIA Nano без поддержки такого режима.
Практическое сравнение производительности Atom и Cortex-A8 провёл Вэн Смит, автор тестовых пакетов OpenSourceMark, miniBench и один из соавторов SiSoftware Sandra. Тестировались машины на базе процессоров Atom N450, Freescale i.MX515 (Cortex-A8), VIA Nano L3050 и, для сравнения, на основе мобильного Athlon XP-M на ядре Barton. Поскольку за точку отсчёта были приняты характеристики Cortex-A8 с тактовой частотой 800 МГц, рабочие частоты VIA Nano и Athon были снижены до того же значения, а Atom – до 1000 МГц (дальнейшее снижение оказалось невозможным). При этом у Cortex-A8 осталось несколько заведомо слабых мест: поддержка медленной 32-битной памяти DDR2-200 и более чем скромная встроенная графика с максимальным разрешением 1024 на 768 при шестнадцатибитной глубине цвета. Все тесты проводились на системах под управлением операционной системы Ubuntu 9.04 Linux.
Результаты тестирования оказались более чем любопытными: Cortex-A8 продемонстрировал вполне конкурентоспособную производительность в целочисленных вычислениях при значительно более низком энергопотреблении по сравнению с соперниками. Ожидаемо провальными оказались лишь тесты на пропускную способность памяти и на вычисления с плавающей запятой – традиционной «ахиллесовой пятой» ARM-чипов. В течение продолжительного времени в ARM-процессорах вообще отсутствовали модули FPU и хотя в Cortex-A8 есть два таких модуля (Neon 32-бит SP и VFP), их мощности явно недостаточно. Вычисления с плавающей запятой – это и трёхмерные игры, и научное моделирование, и некоторые виды обработки и кодирования видео и звука. Так что если производители процессоров ARM действительно нацелились на нишу нетбуков, неттопов и планшетников, им нужно существенно улучшить производительность FPU. С подробными результатами всех тестов можно ознакомиться здесь (http://www.brightsideofnews.com/news/2010/4/7/the-coming-war-arm-versus-x86.aspx).
Стоит ли нам ожидать схватки между столь разными и столь похожими семействами процессоров ARM и x86? Пока по производительности в массовых развлекательных приложениях «армы» существенно уступают даже «атомам». Однако перспективы внушают оптимизм: новейшая архитектура Cortex-A9 рассчитана на создание процессоров с одним-четырьмя ядрами и, как утверждают в ARM Limited, в них значительно улучшена производительность вычислений с плавающей запятой. Первые чипы на базе Cortex-A9 – NVIDIA Tegra 2 – это двухъядерные микросхемы с графическим ядром, поддерживающим видео формата Full HD 1080p и трёхмерную графику с программным интерфейсом OpenGL ES 2.0. Планшет или нетбук с такими характеристиками запросто поспорит с любым устройством на основе Atom. Добавим сюда исключительную экономичность, а значит, и длительное время автономной работы. Так что Apple iPad вполне может стать символом начала борьбы чипов ARM с x86-процессорами на их же собственном поле.
Что лучше — x86 или ARM?
Приоритет процессоров x86 — максимальная производительность, а у ARM — высокая энергоэффективность. Совместить оба этих свойства в одном виде процессоров пока не получается. Поэтому первые чаще всего используют в настольных ПК, а вторые — в мобильных устройствах. На этот счет есть разные мнения, но в целом, эксперты сходятся во мнении, что разница в энергоэффективности все-таки есть.
Также важно помнить, что эти два типа процессоров сильно отличаются, поэтому одно и то же ПО не сможет работать с обоими одновременно. Каждая программа должна быть разработана под конкретный тип процессора. А теперь рассмотрим каждый тип подробнее.
Этот тип архитектуры был создан в 1978 году и относится к разновидности CISC (Complex Instruction Set Computing). Если упрощенно, он предполагает, что в процессоре есть инструкции для большинства задач. Он применяется в настольных ПК, ноутбуках и других устройствах, которым нужна максимальная производительность без экономии на питании.
Так как история развития этих процессоров дольше, чем у ARM, они имеют больший набор команд. Это делает их очень сложными и продвинутыми, позволяющими выполнять множество сложных вычислений за короткое время. Здесь лучше виртуализация, предусмотрены разнообразные защитные методики. В случае с ARM-процессором, командный ассортимент пока более скудный, но разрыв постепенно сокращается. Причина — уменьшение техпроцесса и развитие производственных технологий.
ARM был создан в 1985 году британской компанией Acorn и принадлежит к типу RISC (Reduced Instruction Set Computing). Здесь другой подход — процессор содержит минимальное количество необходимых для работы команд. За счет этого инструкции здесь проще и меньше.
Перед разработчиками ARM стояла цель создать архитектуру, свободную от недостатков x86. Можно точно сказать, что им удалось сделать крайне эффективную и недорогую архитектуру. Популярности ARM-процессоров на рынке мобильных устройств способствовало не только это. Вот ряд дополнительных преимуществ :
- они дешевле в производстве и развертывании;
- архитектура ARM позволяет крупным поставщикам создать свои собственные решения на ARM-архитектуре для разных ниш;
- гибкие возможности настройки.
Кроме того, эффективное потребление энергии и отсутствие перегрева делают такие процессоры оптимальным выбором для серверных задач, а также для использования в маршрутизаторах и высокопроизводительных решениях хранения данных.
Если же говорить о недостатках, то они заключаются в следующем — из-за минимизации размеров и фокуса на автономности, данные обрабатываются медленнее и менее производительно, чем x86. Кроме того, если какая-то существующая часть ИТ-инфраструктуры построена на решениях от x86, следует учитывать это при выборе ARM. Одно и то же ПО на обоих решениях не запустится, для одного из них его точно придется адаптировать.
Чем x86 отличается от ARM? Сравнение архитектур
На текущий момент у производителей компьютерного и мобильного «железа» котируются лишь две архитектуры. Чем ARM отличается от x86 и почему один стандарт до сих пор не сумел вытеснить конкурента?
Кратко рассмотрим данный вопрос. Стандартизация x86-архитектуры появилась более 30 лет назад, больше подходит для громоздких систем, но встречается и на лэптопах.
С другой стороны, для смартфонов и планшетов оптимальным выбором остаются ARM-процессоры, поскольку они меньше выделяют и потребляют энергию, характеризуются уменьшенным техпроцессом и в ряде ситуаций проще в производстве.
Какие недостатки есть у x86-процессоров:
- Сложные команды и инструкции;
- Повышенное потребление энергии ради достижения максимальной производительности.
Минусы ARM-чипов:
- Меньшая скорость обработки данных за счёт минимизации размеров и упора на обеспечение достаточной автономности.
Чем x86 отличается от ARM – основные параметры:
- ИнструкцииCPU. Поскольку x86-чипы развивались очень долго, в них есть не только стандартный набор, но и дополнительные команды. Улучшена виртуализация, предусмотрены разнообразные защитные методики. В случае с ARM-процессором, командный ассортимент скудней;
- Изготовление. В случае с x86-микропроцессорами рынок делят Intel и AMD, причём первая начала терять долю в последние годы (сейчас у неё
Как считаете, появится ли в ближайшем будущем некая объединяющая стандартизация, которая окончательно смоет границы между ПК и портативными гаджетами? Напишите об этом в комментариях.