Придут ли процессоры ARM на смену x86?
Точного ответа на этот вопрос пока не знает никто. Но уже сейчас очевидно, что в ближайшие годы основная борьба x86 в лице Intel и ARM в лице Apple развернется на рынке компактных ноутбуков. Они, в отличие от неттопов (Mac Mini) и моноблоков (iMac), значительно более востребованы. Также очевидно и то, что пользователи от такого противостояния только выиграют.
Конечно, техника (особенно у Apple) от этого не подешевеет, но зато мы прямо сейчас получили ультрапортативные лэптопы без активного охлаждения с долгожданным ощутимым приростом мощности и времени работы от батареи. Здорово и то, что разработчики Intel наконец-то взбодрятся. Из-за отсутствия конкуренции они слишком долго почивали на лаврах: самое время доставать из рукавов все припрятанные козыри. Собственно, именно так технологии и развиваются. Новый виток эволюции процессоров происходит прямо у нас на глазах, и ситуация выглядит так, что все вполне может обернуться революцией, которая полностью изменит как рынок процессоров, так и рынок компьютеров.
x86 – главный соперник
х86 – представитель CISC-архитектур. В них используется полный набор команд. Одна инструкция в данном случае выполняет несколько низкоуровневых операций. Программный код, в отличие от ARM, компактнее, но выполняется не столь быстро и требует больших ресурсов. Кроме того, с самого начала х86 оснащались всеми необходимыми блоками, что предполагало как их универсальность, так и прожорливость. Дополнительная энергия тратилась на безусловное, параллельное выполнение команд. Это позволяет достичь преимущества в скорости, но некоторые операции при этом выполняются вхолостую, так как не удовлетворяют предыдущим условиям.
Такими были классические х86, но, уже начиная с 80486, Intel де-факто создала внутреннее RISC-ядро, которое выполняло CISC-инструкции, предварительно разложенные на более простые команды. Такую же конструкцию имеют современные процессоры Intel и AMD.
Создание зависимой от платформы программы с помощью filepath.Join()
Прежде чем приступить к созданию бинарных файлов для других платформ, давайте создадим простую тестовую программу. Для этого можно использовать функцию Join, которая доступна в пакете path/filepath стандартной библиотеки Go. Эта функция принимает несколько строк и возвращает одну строку, которая соединяется правильным разделителем пути к файлу.
Это хорошая тестовая программа, потому что ее работа зависит от того, на какой ОС она запускается. В Windows в качестве разделителя пути используется обратный слеш, \, а в Unix-системах используется обычный слеш /.
Начнем с создания приложения, которое использует filepath.Join(). Позже вы напишете собственную реализацию функции Join(), которая настраивает код для двоичных файлов платформы.
Сначала в каталоге src создайте папку и назовите ее именем вашего приложения:
Перейдите в нее:
Затем создайте в текстовом редакторе новый файл по имени main.go.
Когда файл откроется, добавьте следующий код:
Функция main() в этом файле использует filepath.Join() для объединения трех строк с помощью правильного, зависимого от платформы разделителя пути.
Сохраните и закройте файл, затем запустите программу:
При запуске этой программы вы получите уникальный вывод – он зависит от используемой вами платформы. В Windows вы увидите строки, разделенные обратным слешем, \:
В системах Unix, таких как macOS и Linux, вы получите следующее:
Как видите, из-за разных протоколов файловой системы, используемых в этих операционных системах, программе придется создавать разный код для разных платформ. Но поскольку программа уже использует разные разделители файлов в зависимости от ОС, мы знаем, что filepath.Join() уже учитывает разницу в платформах. Это связано с тем, что цепочка инструментов Go автоматически обнаруживает GOOS и GOARCH вашего компьютера и использует эту информацию для выбора фрагмента кода с правильными тегами сборки и разделителем файлов.
Давайте посмотрим, где функция filepath.Join() находит разделитель. Запустите следующую команду, чтобы проверить соответствующий фрагмент из стандартной библиотеки Go:
Эта команда вернет содержимое path_unix.go. Найдите в нем эту часть:
В этом разделе определяется PathSeparator для всех разновидностей Unix-подобных систем, которые поддерживает Go
Обратите внимание на все теги сборки в верхней части, которые отображают все доступные платформы Unix GOOS,. Когда GOOS соответствует этим условиям, ваша программа выдает разделитель пути к файлу в стиле Unix
Нажмите q, чтобы вернуться в командную строку.
Затем откройте файл, который определяет поведение filepath.Join() в Windows:
Вы увидите следующее:
Хотя значение PathSeparator здесь \\, код будет отображать один обратный слеш (\), необходимый для файловых путей Windows, а первый слеш здесь используется только в качестве escape-символа.
Обратите внимание: в отличие от файла Unix, в верхней части этого файла нет тегов сборки. Это связано с тем, что GOOS и GOARCH можно также передать в сборку, добавив подчеркивание (_) и значение переменной среды в качестве суффикса к имени файла (о чем мы поговорим подробнее в следующих разделах мануала)
Здесь часть _windows в path_windows.go заставляет файл действовать так, как если бы он имел тег сборки // +build windows в верхней части файла. Поэтому когда программа запускается в Windows, она будет использовать константы PathSeparator и PathListSeparator из фрагмента кода path_windows.go.
Чтобы вернуться в командную строку, нажмите q.
Итак, вы создали программу, которая показала, как Go автоматически преобразует GOOS и GOARCH в теги сборки. Имея это в виду, вы теперь можете обновить свою программу и написать собственную реализацию функции filepath.Join(), используя теги сборки, чтобы вручную установить правильный PathSeparator для платформ Windows и Unix.
Windows 8 и ARM
ARM и х86 сегодня различаются меньше, чем 30 лет назад, но все-таки базируются на разных принципах, что и разводит их по разным нишам процессорного рынка. Архитектуры могли бы никогда не пересечься, если бы не стал видоизменяться сам компьютер.
Windows 8
На первое место вышла мобильность и экономичность, больше внимания стало уделяться смартфонам и планшетам. Apple делает огромные деньги на мобильных гаджетах и привязанной к ним инфраструктуре. Microsoft не желает отставать и уже второй год пытается закрепиться на рынке планшетов. Достаточно успешно действует Google.
Настольный ПК становится в первую очередь рабочим инструментом, нишу бытового компьютера занимают планшеты и специализированные устройства. В этих условиях Microsoft собирается пойти на беспрецедентный шаг. Компания объявила о поддержке ARM в Windows 8. Пока не совсем ясно, к чему это приведет. Мы получим две версии операционной системы, или одну, которая будет работать с обеими архитектурами. Похоронит ли поддержка ARM со стороны Microsoft x86, или нет?
Windows 8, запущенная на ARM-процессоре
Информации пока немного. Microsoft продемонстрировала работу Windows 8 на устройстве с ARM-процессором во время выставки CES 2011. Стив Балмер показал, что на платформе ARM с помощью Windows можно смотреть видео, работать с изображениями, пользоваться Интернетом – Internet Explorer даже работал с аппаратным ускорением – подключать USB-устройства, печатать документы. Наиболее важным в этой демонстрации было наличие Microsoft Office, работающего на ARM без участия виртуальной машины. На презентации были показаны три гаджета на базе процессоров Qualcomm, Texas Instruments и NVIDIA. Windows имела стандартную оболочку «семерки», но представители Microsoft заявил о новом, переработанном ядре системы.
Однако, Windows — это не только ОС, сделанная инженерами Microsoft, это еще и миллионы программ. Некоторое ПО является критичным для людей многих профессий. Например, пакет Adobe CS. Будет ли компания поддерживать версию ПО для ARM-Windows, или новое ядро позволит Photoshop и другим популярным приложениям работать на компьютерах с NVIDIA Tegra или другим похожим чипам без дополнительных модификаций кода?
Кроме того встает вопрос с видеокартами. Сейчас видеокарты для ноутбуков делаются путем оптимизации энергопотребления настольных графических чипов – архитектурно они совпадают. В то же время сейчас видеокарта представляет собой что-то вроде «компьютера в компьютере» — у нее есть собственная сверхскоростная оперативная память и собственный вычислительный чип, который в специфических задачах существенно превосходит обычные процессоры. Само собой, что под них сделана соответствующая оптимизация приложений, работающих с 3D-графикой. Да и различные программы видеомонтажа и графические редакторы (в частности Photoshop с версии CS4), а с недавних пор еще и браузеры используют аппаратное ускорение средствами GPU.
Конечно, в Android, MeeGo, BlackBerry OS, iOS и других мобильных системах сделана необходимая оптимизация под различные присутствующие на рынке мобильные (точнее сверхмобильные) ускорители. Однако их поддержки нет в Windows. Драйверы, само собой, написаны будут (да и уже написаны – процессоры Intel Atom серии Z500 поставляются вкупе с чипсетом, куда интегрировано «смартфонное» графическое ядро PowerVR SGX 535), но вот оптимизация под них приложений может запоздать, если вообще случится.
Очевидно, что «ARM на десктопе» особо не приживется. Разве что в маломощных системах, на которых будут выходить в Интернет, да фильмы смотреть. На неттопах в общем. Так что ARM пока лишь пытается замахнуться на ту нишу, что занял Intel Atom и куда сейчас активно щемится AMD со своей платформой Brazos. И у нее это, видимо, отчасти получится. Если только обе процессорные компании не «выстрелят» чем-нибудь весьма конкурентоспособным.
Местами Intel Atom и ARM уже конкурируют. Они используются для создания сетевых хранилищ данных и маломощных серверов, которые могут обслуживать малый офис или квартиру. Также есть несколько коммерческих проектов кластеров на базе экономичных чипов Intel. Характеристики новых процессоров на базе ARM Cortex-A9 позволяют использовать их для поддержания инфраструктуры. Таким образом, через пару лет мы можем получить ARM-серверы или ARM-NAS для небольших локальных сетей, нельзя исключать и появление маломощных веб-серверов.
Инструкции
x86-64 относится к типу CISC (complex instruction set computing). Является чуть ли не единственной современной CISC-архитектурой. Другие популярные архитектуры строятся по принципу RISC (reduced instruction set computer).
При этом современные х86-процессоры, хотя и CISC-совместимы, но являются процессорами с RISC-ядром, и в формальном смысле считаются гибридными. В таких гибридных CISC-процессорах CISC-инструкции преобразовываются в набор внутренних RISC-команд, при этом одна команда x86 может порождать несколько RISC-команд, исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук. Небольшие инструкции легко выполнять одновременно.
Инструкции кодируются последовательностью байт переменной длины, на практике от 1 до 15 байт.
Ликвидированные возможности
В x86-64 по сравнению с x86 удалили некоторые устаревшие инструкции. Это двоично-десятичная арифметика BCD и инструкции типа aam (ASCII adjust for multiplication). Большая часть устаревших инструкций, тем не менее, оставлена.
8 ответов
Вы пытаетесь запустить исполняемый файл, скомпилированный для архитектуры ARM на архитектуре x86-64, что очень похоже на просьбу вашего процессора, который говорит только по-английски, указать указания на китайском языке.
Если вам нужно запустить этот исполняемый файл, у вас есть два варианта:
-
Получить версию исполняемого файла x86-64 (в любом случае; если вы не можете получить версию исполняемого файла x86-64, но можете получить его исходный код, вы можете попробовать перекомпилировать его на виртуальной машине);
-
Установите Ubuntu Server для ARM вместо Ubuntu 14.04.2 (amd64). Для этого требуется либо физическая машина, работающая на архитектуре ARM, либо программное обеспечение виртуализации, которое может ее эмулировать.
ответ дан
22 November 2019 в 23:07
Часто можно запустить исполняемый образ ARM в системе amd64, если вы установите binfmt-support , qemu и пакеты qemu-user-static :
затем выполнит эмуляцию системных вызовов, когда вы запустить исполняемый файл. Это работает для большинства двоичных файлов ARM, но некоторые могут работать некорректно.
ответ дан
22 November 2019 в 23:07
Это также может произойти, если вы попытаетесь запустить исполняемый файл x86-64 на 32-битной платформе.
В одном конкретном случае я загрузил код Visual Studio и попытался запустить его в своей установке Ubuntu, но Я не осознавал, что установил 32-битный Ubuntu на этой виртуальной машине. Я получил эту ошибку, но после загрузки 32-разрядной версии все прошло без проблем.
ответ дан
22 November 2019 в 23:07
Такая ошибка может возникнуть, если все следующие данные верны:
- Executable — это не файл, а ссылка
- Вы запускаете его внутри VM
- File находится в общей папке
- Вашим хостом является Windows.
Если у вас есть этот файл, скажем, в архиве — попробуйте распаковать его внутри VM, в какой-нибудь директории внутри виртуального диска, а не в папке, привязанной к жесткому диску вашей хост-машины, например
ответ дан
22 November 2019 в 23:07
Вы должны скомпилировать файл, используя соответствующая архитектура ЦП (x86 например) и скопируйте файл .exe на свой компьютер с Linux. Затем вы можете установить mono на свой Linux-компьютер и ввести следующую команду:
ответ дан
22 November 2019 в 23:07
Если в системе установлено более одного , это может произойти и не установлен по умолчанию. В Ubuntu14.04 LTS я мог решить эту проблему, выполнив следующие действия и выбрав , который мне нужен.
Я выбираю 2 и устанавливаю по умолчанию. Что не отображало .
ответ дан
22 November 2019 в 23:07
Это также может произойти, если двоичный файл использует реализацию libc, которая не является libc, например musl. В наши дни эта конкретная проблема чаще всего встречается при попытке запустить двоичный файл с libc в контейнере Docker с образом, основанным на alpine. Нет ничего, что можно было бы сделать с самим двоичным файлом для поддержки обеих сред, потому что реализация libc всегда должна быть связана статически, то есть встроена непосредственно в двоичный файл по определенным причинам.
ответ дан
22 November 2019 в 23:07
Я получил эту ошибку, пытаясь запустить zip-файл, содержащий исполняемый файл, а не извлекать его и запускать сам исполняемый файл xD
В дополнение к другим предлагаемым здесь ответам, я полагаю, будет Многие типы файлов, которые не предназначены для исполнения, могут вызывать эту ошибку.
ответ дан
5 January 2021 в 22:51
перед началом
Прежде чем начать, вам нужно знать lib, libs и т. Д.1. lib и libs Ссылки на те, что помещены в lib, включены в библиотеки. Файлы, помещенные в библиотеки, будут автоматически включены редактором. Так что не ставьте API в библиотеках. Содержимое библиотеки lib не будет упаковано в APK, содержимое библиотеки li будет упаковано в APK
Два … так библиотека Библиотека динамических ссылок, скомпилированная из NDK. Некоторые важные алгоритмы шифрования или базовые протоколы обычно пишутся на языке c, а затем вызываются в java. Это позволяет избежать просмотра исходного кода приложения после декомпиляции.
Три … как хранить так библиотеки Правильная позиция для размещения файла .so — это два предложения: • Чтобы уменьшить размер apk, оставьте только две папки armeabi и armeabi-v7a и убедитесь, что число .so в этих двух папках одинаково • Для стороннего .so, который предоставляет только версию armeabi, сделайте копию в папку armeabi-v7a Правила хранения так:Вы должны предоставить .so файлы, оптимизированные для каждого ABI, насколько это возможно, но поддерживаются все или все: вы не должны смешивать их. Вы должны предоставить соответствующий файл .so для каждого каталога ABI. По вопросам хранения вы можете посмотретьЭта4. Какова роль armeabi и т. Д. Под libs хранит библиотеку .so, которая в основном совместима с различными устройствами, а также, как можно сказать, особенно совместима с архитектурой ЦП различных телефонов Android. Давайте потянем процессор Android Тип процессора устройства Android (часто называемый «ABI»)
Отличия ARM и x86
А теперь, когда мы рассмотрели историю развития этих архитектур и их принципиальные отличия, давайте сделаем подробное сравнение ARM и x86, по различным их характеристикам, чтобы определить что лучше и более точно понять в чем их разница.
Производство
Производство x86 vs arm отличается. Процессоры x86 производят только две компании Intel и AMD. Изначально эта была одна компания, но это совсем другая история. Право на выпуск таких процессоров есть только у этих компаний, а это значит, что и направлением развития инфраструктуры будут управлять только они.
ARM работает совсем по-другому. Компания, разрабатывающая ARM, не выпускает ничего. Они просто выдают разрешение на разработку процессоров этой архитектуры, а уже производители могут делать все, что им нужно, например, выпускать специфические чипы с нужными им модулями.
Количество инструкций
Это главные различия архитектуры arm и x86. Процессоры x86 развивались стремительно, как более мощные и производительные. Разработчики добавили большое количество инструкций процессора, причем здесь есть не просто базовый набор, а достаточно много команд, без которых можно было бы обойтись. Изначально это делалось чтобы уменьшить объем памяти занимаемый программами на диске. Также было разработано много вариантов защит и виртуализаций, оптимизаций и многое другое. Все это требует дополнительных транзисторов и энергии.
ARM более прост. Здесь намного меньше инструкций процессора, только те, которые нужны операционной системе и реально используются. Если сравнивать x86, то там используется только 30% от всех возможных инструкций. Их проще выучить, если вы решили писать программы вручную, а также для их реализации нужно меньше транзисторов.
Потребление энергии
Из предыдущего пункта выплывает еще один вывод. Чем больше транзисторов на плате, тем больше ее площадь и потребление энергии, правильно и обратное.
Процессоры x86 потребляют намного больше энергии, чем ARM. Но на потребление энергии также влияет размер самого транзистора. Например, процессор Intel i7 потребляет 47 Ватт, а любой процессор ARM для смартфонов — не более 3 Ватт. Раньше выпускались платы с размером одного элемента 80 нм, затем Intel добилась уменьшения до 22 нм, а в этом году ученые получили возможность создать плату с размером элемента 1 нанометр. Это очень сильно уменьшит энергопотребление без потерь производительности.
За последние годы потребление энергии процессорами x86 очень сильно уменьшилось, например, новые процессоры Intel Haswell могут работать дольше от батареи. Сейчас разница arm vs x86 постепенно стирается.
Тепловыделение
Количество транзисторов влияет еще на один параметр — это выделение тепла. Современные устройства не могут преобразовывать всю энергию в эффективное действие, часть ее рассеивается в виде тепла. КПД плат одинаковый, а значит чем меньше транзисторов и чем меньше их размер — тем меньше тепла будет выделять процессор. Тут уже не возникает вопрос ARM или x86 будет выделять меньше теплоты.
Производительность процессоров
ARM изначально не были заточены для максимальной производительности, это область преуспевания x86. Отчасти этому причина меньше количество транзисторов. Но в последнее время производительность ARM процессоров растет, и они уже могут полноценно использоваться в ноутбуках или на серверах.
Виртуальное адресное пространство
Хотя виртуальные адреса имеют разрядность в 64 бита, текущие реализации (и все чипы, которые находятся на стадии проектирования) не позволяют использовать всё виртуальное адресное пространство из 264 байт (16 экзабайт). Это будет примерно в четыре миллиарда раз больше виртуального адресного пространства на 32-битных машинах. В обозримом будущем большинству операционных систем и приложений не потребуется такое большое адресное пространство, поэтому внедрение таких широких виртуальных адресов просто увеличит сложность и расходы на трансляцию адреса без реальной выгоды. Поэтому AMD решила, что в первых реализациях архитектуры фактически при трансляции адресов будут использоваться только младшие 48 бит виртуального адреса.
Кроме того, спецификация AMD требует, что старшие 16 бит любого виртуального адреса, биты с 48-го по 63-й, должны быть копиями бита 47 (по принципу sign extension). Если это требование не выполняется, процессор будет вызывать исключение. Адреса, соответствующие этому правилу, называются «канонической формой». Канонические адреса в общей сложности составляют 256 терабайт полезного виртуального адресного пространства. Это по-прежнему в 65536 раз больше, чем 4 ГБ виртуального адресного пространства 32-битных машин.
Это соглашение допускает при необходимости масштабируемость до истинной 64-разрядной адресации. Многие операционные системы (включая семейство Windows NT и GNU/Linux) берут себе старшую половину адресного пространства (пространство ядра) и оставляют младшую половину (пользовательское пространство) для кода приложения, стека пользовательского режима, кучи и других областей данных. Конструкция «канонического адреса» гарантирует, что каждая совместимая с AMD64 реализация имеет, по сути, две половины памяти: нижняя половина «растет вверх» по мере того, как становится доступнее больше виртуальных битов адреса, а верхняя половина — наоборот, вверху адресного пространства и растет вниз.
Первые версии Windows для x64 даже не использовали все 256 ТБ; они были ограничены только 8 ТБ пользовательского пространства и 8 ТБ пространства ядра. Всё 48-битное адресное пространство стало поддерживаться в Windows 8.1, которая была выпущена в октябре 2013 года.
Структура таблицы страниц
Вместо двухуровневой системы таблиц страниц, используемой системами с 32-битной архитектурой x86, системы, работающие в длинном режиме, используют четыре уровня таблицы страниц.
Возможные размеры страниц:
- 4 KB (212 байт) — наиболее часто используется (как и в x86)
- 2 MB (221 байт)
- 1 GB (230 байт)
Полная иерархия сопоставления страниц размером 4 КБ для всего 48-битного пространства займет немногим больше 512 ГБ ОЗУ (около 0.195% от виртуального пространства 256 ТБ).
Особенности процессоров NVIDIA, TI, Qualcomm, Marvell
Лицензируя ARM направо и налево, разработчики усиливали позиции своей архитектуры за счет компетенций партнеров. Классическим примером в данном случае можно считать NVIDIA Tegra. Эта линейка систем-на-чипе имеет в основе архитектуру ARM, но у NVIDIA уже были свои весьма серьезные наработки в области трехмерной графики и системной логики.
NVIDIA Tegra
ARM дает своим лицензиарам широкие полномочия по переработке архитектуры. Соответственно инженеры NVIDIA получили возможность совместить в Tegra сильные стороны ARM (вычисления CPU) и собственной продукции – работа с трехмерной графикой и т.д. В результате Tegra обладают высочайшей для своего класса процессоров производительностью в 3D. Они на 25-30% быстрее PowerVR, используемых Samsung и Texas Instruments, а также почти в два раза превосходят Adreno, разработку Qualcomm.
Другие производители процессоров на базе архитектуры ARM усиливают те или иные дополнительные блоки, совершенствуют чипы, чтобы добиться более высоких частот и производительности.
Qualcomm Snapdragon
Например, Qualcomm не использует референсный дизайн ARM. Инженеры компании серьезно переработали его и назвали Scorpio – именно он лежит в основе чипов Snapdragon. Отчасти дизайн был переработан с целью освоения более тонких техпроцессов, чем предусмотрено стандартным IP ARM. В результате первые Snapdragon выпускались по нормам 45 нм, что обеспечило им более высокие частоты. А новое поколение этих процессоров с заявленными 2.5 ГГц и вовсе может стать самым быстрым среди аналогов на базе ARM Cortex-A9. Также Qualcomm применяет собственное графическое ядро Adreno, созданное на базе разработок, приобретенных у AMD. Так что в некотором роде Snapdragon и Tegra – враги на генетическом уровне.
Samsung Hummingbird
Samsung при создании Hummingbird также пошла по пути оптимизации архитектуры. Корейцы совместно с компанией Intrinsity изменили логику, благодаря чему сократилось количество инструкций необходимых для выполнения некоторых операций. Таким образом удалось выиграть 5-10% производительности. Кроме того, был добавлен динамический кэш второго уровня и мультимедийное расширение ARM NEON. В качестве графического модуля корейцы использовали PowerVR SGX540.
Процессор OMAP 4 производства Texas Instruments
Texas Instruments в новых сериях OMAP на базе архитектуры ARM Cortex-A добавила специальный модуль IVA, ответственный за ускорение обработки изображений. Он позволяет быстрее обрабатывать данные, поступающие с сенсора встроенной камере. Кроме того, он подключен к ISP и содействует ускорению видео. В OMAP также применяется графика PowerVR.
Apple A4
Apple A4 обладает большим кэшем в 512 Кбайт, в нем используется графика PowerVR, а само ARM-ядро построено на базе варианта архитектуры, переработанного Samsung.
Apple A5
Двухъядерный Apple A5, дебютировавший в iPad 2 в начале 2011 года, базируется на архитектуре ARM Cortex-A9, также, как и в предыдущий раз оптимизированной Samsung. По сравнению с А4 новый чип обладает удвоенным объемом кэш-памяти второго уровня — его увеличили до 1 Мбайт. Процессор содержит двухканальный контроллер оперативной памяти, обладает улучшенным видеоблоком. В результате его производительность в некоторых задачах вдвое выше, чем у Apple A4.
Marvell предлагает чипы на базе собственной архитектуры Sheeva, которая при ближайшем рассмотрении оказывается гибридом XScale, некогда купленной у Intel, и ARM. Данные чипы обладают большим по сравнению с аналогами объемом кэш-памяти, снабжены специальным мультимедийным модулем.
Сейчас лицензиаты ARM производят только чипы на базе архитектуры ARM Cortex-A9. При этом, хотя она и позволяет создавать четырехъядерные варианты, NVIDIA, Apple, Texas Instruments и другие пока ограничиваются моделями с одним или двумя ядрами. Кроме того, чипы работают на частоте до 1.5 ГГц. Cortex-A9 позволяет делать двухгигагерцовые процессоры, но опять же производители не стремятся быстро наращивать частоты — ведь пока рынку хватит и двухъядерников на 1.5 ГГц.
По-настоящему многоядерными должны стать процессоры на базе Cortex-A15, но они если и анонсированы, то на бумаге. Их появления в кремнии стоит ожидать в следующем году.
Современные процессоры лицензиатов ARM на базе Cortex-A9: