cortex ядра что такое

ARM-ы для самых маленьких

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Пару дней назад я опубликовал и потом внезапно убрал в черновики статью о плане написать про создание своей ОС для архитектуры ARM. Я сделал это, потому что получил много интересных отзывов как на Хабре, так и в G+.

Сегодня я попробую подойти к вопросу с другой стороны, я буду рассказывать о том, как программировать микроконтроллеры ARM на нарастающих по сложности примерах, пока мы не напишем свою ОС или пока мне не надоест. А может, мы перепрыгнем на ковыряние в Contiki, TinyOS, ChibiOS или FreeRTOS, кто знает, их там столько много разных и интересных (а у TinyOS еще и свой язык программирования!).

Итак, почему ARM? Возиться с 8-битными микроконтроллерами хотя и интересно, но скоро надоедает. Кроме того, средства разработки под ARM обкатаны долгим опытом и намного приятнее в работе. При этом, начать мигать светодиодами на каком-то «evaluation board» так же просто, как и на Arduino.

Небольшой экскурс в архитектуру

ARM продвигает замечательную архитектуру, которую успешно лицензирует, мне на самом деле сложно представить, в каком устройстве нет никакого присутствия продуктов этой компании. В вашем смартфоне гарантированно есть несколько ядер на базе архитектуры ARM. Еще парочка найдется в современном ноутбуке (и это даже не CPU, а так, сопутствующий контроллер какой-либо периферии), еще несколько – в автомобиле. Есть они и в других бытовых вещах: микроволновках и телевизорах.

Такая гибкость достигается тем, что в самом базовом варианте ядро ARM очень простое. Сейчас существуют три разновидности этой архитектуры. Application применяется в устройствах «общего назначения» – как основной процессор в смартфоне или нетбуке. Этот профиль самый навороченный функционально, тут есть и полноценный MMU (модуль управления памятью), возможность аппаратно выполнять инструкции Java bytecode и даже поддержка DRM-схем. Microcontroller – это полная противоположность профилю application, применяемая (внезапно!) для использования в микроконтроллерах. Тут актуально минимальное энергопотребление и детерминистическое поведение. И, наконец, real-time используется как эволюция профиля microcontroller для задач, где критично иметь гарантированное время отклика. Все эти профили получили реализацию в одном или нескольких ядрах Cortex, так, например, Cortex-A9 основан на профиле application и является частью процессора в iPhone 4S, а Cortex-M0 основан на профиле microcontroller.

Железки!

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое
В качестве целевой платформы мы будем рассматривать работу с Cortex-M, так как она самая простая, соответственно, надо вникать в меньшее количество вопросов. В качестве тестовых устройств я предлагаю вам LPC1114 – MCU производства NXP, схему на котором можно собрать буквально на коленке (нет, правда, вам нужен только сам MCU, FTDI-кабель на 3,3 В, несколько светодиодов и резисторов). LPC1114 построен на базе Cortex-M0, так что это будет самый урезанный вариант платформы.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое
В качестве альтернативного варианта мы будем работать с платформой mbed, а конкретно, с моделью на базе LPC1768 (а значит, внутри там Cortex-M3, несколько более навороченный). Вариант уже не настолько бюджетный, но процесс заливки бинарников на чип и отладки упрощен максимально. Да и можно поиграться с самой платформой mbed (вкратце: это онлайн-IDE и библиотека, с помощью которой можно программить на уровне ардуины).

Приступим

Интересной особенностью современных ARM-ов является то, что их вполне реально программировать целиком на С, без применения ассемблерных вставок (хотя ассемблер не так уж и сложен, у Cortex-M0 всего 56 команд). Хотя некоторые команды в принципе не доступны из С, эту проблему решает CMSIS – Cortex Microcontroller Software Interface Standard. Это драйвер для процессора, который решает все основные задачи управления им.

Как же загружается процессор? Типична ситуация, когда он просто начинает выполнять команды с адреса 0x00000000. В нашем случае процессор несколько более умный, и рассчитывает на специально определенный формат данных в начале памяти, а именно – таблицу векторов прерываний:

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое
Старт выполнения программы происходит следующим образом: процессор читает значение по адресу 0x00000000 и записывает его в SP (SP – регистр, который указывает на вершину стека), после чего читает значение по адресу 0x00000004 и записывает его в PC (PC – регистр, который указывает на текущую инструкцию + 4 байта). Таким образом начинает выполняться какой-то код пользователя, при этом у нас уже есть стек, указывающий куда-то в память (т.е., все условия для выполнения программы на С).

В качестве тестового упражнения мы будем мигать светодиодом. На mbed у нас их целых четыре, в схему с LPC1114 (далее — «доска») мы устанавливаем светодиод вручную.

Перед тем как непосредственно писать код, нам надо выяснить еще одну вещь, а именно – что где должно располагаться в памяти. Поскольку мы не работаем с какой-то «стандартной» ОС, то компилятор (вернее, компоновщик) не может узнать, где у него должен быть стек, где сам код, а где — куча. К счастью для нас, у семейства ядер Cortex стандартизированная карта памяти, что позволяет относительно просто портировать приложения между разными процессорами этой архитектуры. Работа с периферией, конечно, остается процессорозависимой.

Карта памяти для Cortex-M0 выглядит вот так:

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

У Cortex-M3 она, по сути, такая же, но несколько более детальна. Проблема тут в том, что у NXP есть свой, отдельный взгляд на этот вопрос, так что проверяем карту памяти в документации на процессор:

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

На самом деле, SRAM у нас начинается с 0x10000000! Вот так, одни стандарты, другие стандарты, а все равно надо тома документации листать.

Вооружившись этими знаниями, идем писать код. Для начала – таблица прерываний:

Сама таблица должна бы быть длиннее, но на самом деле мы могли бы закончить ее еще после вектора Reset, остальные у нас не сработали бы в этом примере. Но, на всякий случай, мы заполнили таблицу почти целиком (кроме пользовательских прерываний).

Теперь напишем реализацию функции main:

У mbed первый светодиод подключен к порту GPIO 1.18, на доске мы подключили светодиод к GPIO 1.8. Одни и те же пины могут выполнять разные функции, эти по умолчанию работают именно как GPIO (General Purpose I/O – линии ввода/вывода общего назначения).

Код относительно прямолинеен, если держать под рукой LPC-шный User manual (один и второй). Для начала мы указываем режим работы GPIO через регистр GPIO_DIR_REG (у наших процессоров они в разных местах, да и вообще LPC1768 может работать с GPIO более эффективно), где 1 – вывод, 0 – ввод. Потом мы запускаем бесконечный цикл, в котором пишем в порт попеременно значения 0 и 1 (0 В и 3,3 В соответственно).

Функция для «паузы» у нас работает наугад, просто прокручивая относительно долгий цикл ( volatile int не дает компилятору выоптимизировать этот цикл целиком).

Наконец, все это нужно правильно скомпоновать:

Теперь у нас есть три файла: boot.s, main.c, mem.ld, пора это все скомпилировать и, наконец, запустить. В качестве тулчейна мы будем использовать GCC, позже, возможно, я покажу как делать то же с LLVM. Пользователям OS X я советую взять тулчейн у Linaro – в самом конце списка: Bare-Metal GCC ARM Embedded. Пользователям других ОС я советую взять тулчейн там же 🙂 (разве что гентушникам будет проще сэмержить crossdev и скомпилить GCC).

Интересный момент тут — это отключение использования всех стандартных библиотек у GCC. Действительно, весь код, который попадет в итоговый бинарник – это код, который написали мы сами.

Вопрос: как компоновщик знает, куда надо засунуть таблицу прерываний? А он и не знает, там не написано :-). Он просто линкует подряд, начиная с нулевого адреса, так что порядок файлов (boot.o, потом main-c0.o) очень важен! Попробуйте слинковать наоборот или слинковать boot.o два раза и сравните вывод в lst-файле.

Хорошая идея – посмотреть на итоговый листинг (файл lst) или закинуть бинарник в дизассемблер. Даже если вы не говорите на ARM UAL, то чисто визуально можно проверить, что хотя бы таблица прерываний находится на своем месте:

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое
cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Еще можно обратить внимание на забавный момент – GCC при компиляции под Cortex-M3 генерирует функцию wait() больше, чем в варианте под Cortex-M0. Правда, если включить оптимизацию то она вправит ему мозги.

Мигаем!

Все что нам осталось – залить бинарники на наши тестовые платформы. С mbed тут все максимально просто, просто скопируйте blink-c3.bin на виртуальную флешку и нажмите reset (на mbed). С доской все немного сложнее. Во-первых, для того, чтобы попасть в загрузчик, нам нужен резистор между GND и GPIO 0.1. Во-вторых, необходима программа для непосредственно прошивки. Можно использовать Flash Magic (Win, OS X), можно использовать консольную утилиту – lpc21isp:

Если у вас есть возможность запустить примеры на разных устройствах, вы заметите, что скорость мигания на них не идентична. Это связанно с тем, что у разных устройств разная частота ядра, соответственно, wait() они выполняют за разное время. В следующей части мы изучим вопросы осцилляции детальнее и сделаем четкий отсчет времени.

Источник

ARMv9

О тихой эволюции чипсетов ARM Cortex, которая назревала 10 лет с момента появления ARMv8.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такоеИзображение ARM

Тема Cortex не слишком популярна среди обычных пользователей смартфонов. Все, на что они обращают внимание – это личные ощущения, а максимум, что они позволяют себе узнать из дополнительного материала – это просмотр результатов популярных бенчмарков. Все эти действия, как правило, связаны с принятием решения о приобретении нового смартфона или планшета. Но мы-то с вами не такие, товарищи, мы интересуемся начинкой и ПО наших электронных питомцев. Да, именно питомцев, так как современный человек все больше времени проводит, эмоционально теребя своего маленького дружка, гладя его по экрану и получая в ответ выплеск эмоций, сопровождающий процесс потребления контента. Действительно, во времена завернутой в газету колбасы другом человека была газета, а теперь это смартфон. Поэтому чего уж удивляться тому, что смартфоны с каждым годом становятся все лучше, растут их производительность и количество пикселей в экранах, емкость аккумуляторов и цена. В основе всего по-прежнему лежит производительность центрального процессора и видеочипа, модемы и прочие аппаратные устройства. Каждый год все производители чипсетов представляют новые, еще лучшие, чем раньше, чипсеты, и каждый раз мы слышим, что это очередная «революция». Производитель как-то забывает рассказать, что изменение количества и размера лопастей (ядер) водяной мельницы (чипсета) никакой революцией не является, хотя и дает большую производительность. Так что же можно считать настоящей революцией, когда мы говорим об ARM-чипах? И первое, что приходит на ум – это перенос типовых и самых востребованных функций из программного кода на аппаратный уровень, когда программист вместо полного описания операции вводит только данные для встроенной инструкции процессора. Трудозатраты для создания нового приложения сокращаются, а само оно выполняет задачи гораздо быстрее. Количество и актуальность инструкций, поддерживаемых процессором, является той красной чертой, которая отделяет старое поколение от нового и которую с оговорками можно назвать некоей «революцией» или знаковым переходом на новый качественный уровень.

Для примера, после выхода игры Mafia III владельцы ПК на базе процессоров AMD серии Phenom с ужасом наблюдали на своих мониторах черный экран, а затем и вылет игры, несмотря на мощные видеокарты и избыточный объем оперативной памяти. Камнем преткновения стала процессорная инструкция SSE4.2, которая отсутствовала в процессорах прошлого поколения. Со временем производитель игры добавил необходимый код, но ситуацию это исправило не сильно (видео выше). Из этой ситуации легко делается простой вывод: даже если программист реализует некий программный эмулятор новых аппаратных инструкций для старых чипсетов в софте, то быстро выполнять задачи приложение все равно не сможет. И подобная ситуация может повториться с нашими смартфонами в 2022 году. Может так случиться, что новые приложения будут работать очень медленно либо вообще откажутся запускаться на вполне еще бодрых бывших флагманах. Об очередном изменении набора инструкций в мобильных процессорах и поговорим в дальнейшем материале, а поводом, как и всегда, послужили новости от компании ARM.

Источник

Мобильные процессоры ARM

Подавляющее большинство современных гаджетов используют процессоры на архитектуре ARM, разработкой которой занимается одноимённая компания ARM Limited. Что интересно, компания сама не производит процессоры, а только лицензирует свои технологии для сторонних производителей чипов. Помимо этого, компания также разрабатывает процессорные ядра Cortex и графические ускорители Mali, которых мы обязательно коснёмся в этом материале. Прежде чем приступить к нему, рекомендуем ознакомиться с нашими предыдущими статьями по этой теме: “Я знаю: мобильные процессоры. Вводная часть”, “Я знаю: мобильные процессоры. Компания Qualcomm” и “Я знаю: мобильные процессоры. Компания Intel”.

ARM Limited

Компания ARM, фактически, является монополистом в своей области, и подавляющее большинство современных смартфонов и планшетов на различных мобильных операционных системах используют процессоры именно на архитектуре ARM. Производители чипов лицензируют у ARM отдельные ядра, наборы инструкций и сопутствующие технологии, причём стоимость лицензий значительно разнится в зависимости от типа процессорных ядер (это могут быть как маломощные бюджетные решения, так и ультрасовременные четырёхъядерные и даже восьмиядерные чипы) и дополнительных компонентов. Годовой отчёт о прибыли ARM Limited за 2006 год показал выручку в 161 миллион долларов за лицензирование около 2,5 миллиардов процессоров (в 2011 году этот показатель составил уже 7,9 млрд), что означает примерно 0,067 долларов за один чип. Впрочем, по озвученной выше причине, это очень усреднённый показатель из-за разницы в ценах на различные лицензии, и с тех пор прибыль компании должна была вырасти многократно.

Ядра Cortex

Крупные производители смартфонов и планшетов обычно используют процессоры известных чипмейкеров вроде Qualcomm или собственные решения, которые уже успели стать довольно популярными (к примеру, Samsung и её семейство чипсетов Exynos), но среди технических характеристик гаджетов большинства небольших компаний зачастую можно встретить описание вроде “процессор на Cortex-A7 с тактовой частотой 1 ГГц” или “двухъядерный Cortex-A7 с частотой 1 ГГц”, которое обычному пользователю ничего не скажет. Для того, чтобы разобраться, в чём заключаются отличия таких ядер между собой, остановимся на основных.

Cortex-A5

Ядро Cortex-A5 используются в недорогих процессорах для наиболее бюджетных устройств. Такие устройства предназначены только для выполнения ограниченного круга задач и запуска простых приложений, но совершенно не рассчитаны на ресурсоёмкие программы и, тем более, игры. В качестве примера гаджета с процессором на Cortex-A5 можно назвать Highscreen Blast, который получил чип Qualcomm Snapdragon S4 Play MSM8225, содержащий два ядра Cortex-A5 с тактовой частотой 1,2 ГГц.

Cortex-A7

Cortex-A8

Ядро Cortex-A8 не так распространено, как его “соседи”, Cortex-A7 и Cortex-A9, но всё же используется в различных гаджетах начального уровня. Рабочая тактовая частота чипов на Cortex-A8 может составлять от 600 МГц до 1 ГГц, но иногда производители разгоняют процессоры и до более высоких частот. Особенностью ядра Cortex-A8 является отсутствие поддержки многоядерных конфигураций (то есть, процессоры на этих ядрах могут быть только одноядерными), а выполняются они по 65-нанометровому техпроцессу, который уже считается устаревшим.

Сortex-A9

Ещё пару лет назад ядра Cortex-A9 считались топовым решением и использовались как в традиционных одноядерных, так и более мощных двухъядерных чипах, например Nvidia Tegra 2 и Texas Instruments OMAP4. В настоящее время процессоры на Cortex-A9, выполненные по 40-нанометровому техпроцессу не теряют популярность и используются во многих смартфонах среднего сегмента. Рабочая частота таких процессоров может составлять от 1 до 2 и более гигагерц, но обычно она ограничивается 1,2-1,5 ГГц.

Cortex-A12

В июне 2013 года компания ARM официально представила ядро Cortex-A12, которое выполняется по новому 28-нанометровому техпроцессу и призвано заменить ядра Cortex-A9 в смартфонах среднего сегмента. Разработчик обещает увеличение производительности на 40% по сравнению с Cortex-A9, а кроме того, ядра Cortex-A12 смогут участвовать в архитектуре ARM big.LITTLE в качестве производительных вместе с энергосберегающими Cortex-A7, что позволит производителям создавать недорогие восьмиядерные чипы. Правда,на момент написания статьи всё это только в планах, и массовое производство чипов на Cortex-A12 ещё не налажено, хотя компания RockChip уже объявила о своём намерении выпустить четырёхъядерный процессор на Cortex-A12 с частотой 1,8 ГГц.

Cortex-A15

Cortex-A50 series

Cortex-A53

Открывает серию ядро Cortex-A53, которое будет прямым “наследником” Cortex-A9. Процессоры на Cortex-A53 заметно превосходят чипы на Cortex-A9 в производительности, но, при этом, сохраняется низкое энергопотребление. Такие процессоры могут быть использованы как по одиночке, так и в конфигурации ARM big.LITTLE, будучи объединенными на одном чипсете с процессором на Cortex-A57

Cortex-A57

Процессоры на Cortex-A57, которые будут выполнены по 20-нанометровому техпроцессу, должны стать самыми мощными ARM-процессорами в ближайшем будущем. Новое ядро значительно превосходит своего предшественника, Cortex-A15 по различным параметрам производительности (сравнение вы можете видеть выше), и, по словам ARM, которая всерьёз нацелена на рынок ПК, станет выгодным решением для обычных компьютеров (включая лэптопы), а не только мобильных устройств.

ARM big.LITTLE

В качестве высокотехнологичного решения проблемы энергопотребления современных процессоров ARM предлагает технологию big.LITTLE, суть которой заключается в объединении на одном чипе ядер различных типов, как правило, одинакового количества энергосберегающих и высокопроизводительных.

Существует три схемы работы ядер различного типа на одном чипе: big.LITTLE (миграция между кластерами), big.LITTLE IKS (миграция между ядрами) и big.LITTLE MP (гетерогенный мультипроцессинг).

big.LITTLE (миграция между кластерами)

Первым чипсетом на архитектуре ARM big.LITTLE стал процесссор Samsung Exynos 5 Octa. В нём используется оригинальная схема big.LITTLE “4+4”, что означает объединение в два кластера (отсюда и название схемы) на одном кристалле четырёх высокопроизводительных ядер Cortex-A15 для ресурсоёмких приложений и игр и четырёх энергосберегающих ядер Cortex-A7 для повседневной работы с большинством программ, причём в один момент времени могут работать ядра только одного типа. Переключение между группами ядер происходит практически мгновенно и незаметно для пользователя в полностью автоматическом режиме.

big.LITTLE IKS (миграция между ядрами)

big.LITTLE MP (гетерогенный мультипроцессинг)

Будущее

По имеющейся на данный момент информации, в ближайшее время ARM совместно с другими компаниями планирует наладить выпуск big.LITTLE чипов следующего поколения, которые будут использовать новые ядра Cortex-A53 и Cortex-A57. Кроме того, бюджетные процессоры на ARM big.LITTLE собирается выпускать китайский производитель MediaTek, которые будут работать по схеме “2+2”, то есть, использовать две группы по два ядра.

Графические ускорители Mali

Помимо процессоров, ARM также разрабатывает и графические ускорители семейства Mali. Подобно процессорам, графические ускорители характеризуются множеством параметров, например, уровнем сглаживания, интерфейсом шины, кэшем (сверхбыстрая память, используемая для повышения скорости работы) и количеством “графических ядер” (хотя, как мы писали в прошлой статье, этот показатель, несмотря на похожесть с термином, использующимся при описании CPU, практически не влияет на производительность при сравнении двух GPU).

С тех пор прогресс шагнул далеко вперёд, и сейчас немалое значение имеют поддерживаемые API и игровые стандарты. К примеру, поддержка OpenGL ES 3.0 сейчас заявлена только в самых мощных процессорах вроде Qualcomm Snapdragon 600 и 800, а, если говорить о продукции ARM, то стандарт поддерживают такие ускорители, как Mali-T604 (именно он стал первым графическим процессором ARM, выполненным на новой микроархитектуре Midgard), Mali-T624, Mali-T628, Mali-T678 и некоторые другие близкие к ним по характеристикам чипы. Тот или иной GPU, как правило, тесно связан с ядром, но, тем не менее, указывается отдельно, а, значит, если вам важно качество графики в играх, то имеет смысл посмотреть на название ускорителя в спецификациях смартфона или планшета.

Есть у ARM в линейке и графические ускорители для смартфонов среднего сегмента, наиболее распространёнными среди которых являются Mali-400 MP и Mali-450 MP, которые отличаются от своих старших братьев сравнительно небольшой производительностью и ограниченным набором API и поддерживаемых стандартов. Несмотря на это, указанные GPU продолжают использоваться в новых смартфонах, к примеру, Zopo ZP998, который получил графический ускоритель Mali-450 MP4 (улучшенную модификацию Mali-450 MP) вдобавок к восьмиядерному процессору MTK6592.

Предположительно, в конце 2014 года должны появиться смартфоны с новейшими графическими ускорителями ARM: Mali-T720, Mali-T760 и Mali-T760 MP, которые были представлены в октябре 2013 года. Mali-T720 должен стать новым GPU для недорогих смартфонов и первым графическим процессором этого сегмента с поддержкой Open GL ES 3.0. Mali-T760, в свою очередь, станет одним из наиболее мощных мобильных графических ускорителей: по заявленным характеристикам, GPU имеет 16 вычислительных ядер и обладает поистине огромной вычислительной мощностью, 326 Гфлопс, но, в то же время, в четыре раза меньшим энергопотреблением, чем упомянутый выше Mali-T604.

Роль CPU и GPU от ARM на рынке

Несмотря на то, что компания ARM является автором и разработчиком одноимённой архитектуры, которая, повторимся, сейчас используется в подавляющем большинстве мобильных процессоров, её решения в виде ядер и графических ускорителей не пользуются популярностью у крупных производителей смартфонов. К примеру, справедливо считается, что флагманские коммуникаторы на Android OS должны иметь процессор Snapdragon с ядрами Krait и графический ускоритель Adreno от Qualcomm, чипсеты этой же компании используются в смартфонах на Windows Phone, а некоторые производители гаджетов, к примеру, Apple, разрабатывают собственные ядра. Почему же в настоящее время сложилась именно такая ситуация?

Вышесказанное совершенно не значит, что разработки ARM значительно хуже процессоров и ядер сторонних компаний, но конкуренция на рынке в конечном итоге идет покупателям смартфонов только на пользу. Можно сказать, что ARM предлагает некие заготовки, приобретая лицензию на которые, производители могут уже самостоятельно их доработать.

Заключение

А как вы думаете, сможет ли кто-нибудь потеснить ARM, и как дальше сложится судьба этой компании и её архитектуры?

Источник

ARM как будущая архитектура для настольных ПК

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Содержание

Содержание

Большинство привыкло к полярному рынку в мире процессоров — поле битвы делят Intel и AMD. Однако вполне вероятно, что ситуация изменится в ближайшем будущем, ведь компания Nvidia покупает фирму ARM — разработчика процессорных архитектур. Что же такое ARM и чем все это может обернуться для IT-индустрии?

Желудь из Кембриджа

Для начала стоит объяснить, что ARM обозначает одновременно и архитектуру процессоров (в данном случае Advanced RISC Machine) и название компании (ARM Limited). История берет свое начало с сотрудничества бывшего сотрудника крупной британской компании Sinclair Research Криса Карри и инвестора Германа Хаузера. В 1978 они основали компанию Cambridge Processor Unit (CPU), которая уже в 1979 была переименована в Acorn (Желудь). Такое названия было выбрано по одной простой причине — находиться в телефонном справочнике перед Apple.

Первым продуктом был карманный компьютер за 80 фунтов Acorn System 1, который стоил дешевле своего аналога ZX80, чем и запомнился многим пользователям.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Через два года Acorn получила крупный тендер от британской BBC (та самая радиовещательная компания) на создание компьютера для школ. Так появился BBC Micro, тираж которого превысил 1,5 миллионов устройств. Поступало даже предложение от Билла Гейтса с портированием MS-DOS на BBC Micro, но в Acorn от этого отказались.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Команда разработчиков увеличивалась и постепенно появилась идея перейти к более сложным технологиям, а именно работать с 16-разрядными процессорами. Сначала решили «прощупать» почву и отправились на экскурсию в компанию National Semiconductor. Ситуация крайне разочаровала разработчиков Acorn: над процессорами трудились сотни человек, но многочисленных ошибок и «проволочек» в разработке избегать не удавалось.

Совсем другая история была в Western Design Center, которую также посетили учредители. Там процессоры разрабатывали буквально несколько человек в «домашней» обстановке. Ведущий разработчик Acorn Роджер Уилсон был настолько впечатлен, что сам загорелся идеей разработки собственных процессоров, а не покупки как это предполагалось ранее.

В 1985 году появился первый процессор ARM на тогда популярной RISC-архитектуре. Вот только он был всего-лишь подключаемым дополнением для BBC Master (продвинутой версии ранее упомянутой BBC Micro).

Своеобразным прорывом стал ARM 2: до 64 Мб оперативной памяти, тактовая частота 8 МГц — для тех времен весьма впечатляющие показатели. Конкурентом был небезызвестный Intel 80368 с частотой 16 МГц. Разница в частоте была двукратная, но не в производительности. ARM 2 выполнял 4 миллиона операций против 5 миллионов у Intel 80368!

Перенасыщение рынка компьютеров в 1984 привело к сложному экономическому положению, и Acorn была куплена итальянским брендом Olivetti. Однако последующее заполнение рынка IBM PC и аналогами привело к тому, что вкладывать средства в архитектуру на базе RISC итальянцы не стали.

Новые союзники

Герман Хаузер искал способы сохранить процессорный бизнес и нашел союзника — Apple. Они же в 1990 проектировали инновационный карманный компьютер Newton, для которого энергоэффективные ARM подходили просто идеально. Третьим союзником стала компания VLSI Technologies, которая имела непосредственное отношение к производству интегральных схем.

В итоге появилась компания ARM, которая специализировалась исключительно на проектировании. Свою интеллектуальную собственность разработчики уже продавали по лицензиям другим компаниям.

Несмотря на то, что на рынке ПК главенствовала архитектура x86, ARM по-прежнему обеспечивала рабочие станции IBM и Sun Microsystems, а также огромный рынок микроэлектроники.

В чем главная особенность ARM

Во многом именно благодаря Apple после появления первого iPhone и iPad стала понятна значимость RISC-архитектуры. Потребление энергии процессоров было столь низким, что позволяло использовать их практически в любых портативных устройствах. Как не старалась Intel, добиться таких же показателей на х86 не получалось.

Итог — процессоры на ARM можно найти практически в любых портативных устройствах — смартфоны, GPS-навигаторы, игровые приставки, фото- и видеокамеры, телевизоры и не только. Как же так получилось, что принципиального в ARM? Ответом на этот вопрос является RISC-архитектура.

В существующей классификации можно выделить CISC (Complex Instruction Set Computing — комплексный набор инструкций) и RISC (Reduced Instruction Set Computing — сокращенный набор команд). Усовершенствование процессоров приводило к увеличению размера команды. В какой-то момент усложнения стали такими, что некоторые команды потребовали двух и больше тактов на исполнение.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Тогда в рамках проекта VSLI был предложен новый принцип — использовать команды заданной длины с заранее предопределенным расположением полей, а также дополнительно увеличить число общих регистров, благодаря которому процессору придется реже обращаться к ОЗУ. Проще говоря, сложные вычисления должны разбиваться на идентичные простые, обработка которых выполняется с большей эффективностью.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Так появилась RISC с сокращенным набором команд. С одной стороны, такой подход не позволял тягаться с устройствами на базе CISC, но уровень вычислительной мощности был достаточным для микроэлектроники, не говоря о мизерном тепловыделении.

ARM против x86/x64 — есть ли перспективы

Могут ли процессоры ARM тягаться с десктопными решениями от Intel или AMD. В одном из материалов был проведен крупный тест процессоров на архитектуре E2K (отечественные Эльбрусы), ARM (v6-v8) и x86 (i386) х86-64 (amd64). Использовались насколько тестов, в том числе LINPACK, который применяется для оценки производительности суперкомпьютеров.

Процессоры ARM были представлены следующими моделями: Amlogic S922X, Samsung Exynos 4412, Allwinner H5, Allwinner A64 и Broadcom BCM2837B0 (последний используется в миникомпьютере Raspberry PI 3).

Весь список результатов вы сможете изучить на этой странице, а мы приведем график для теста liNPACK:

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Некоторые модели ARM-процессоров дотягиваются до уровня производительности Intel Atom. Аналогичную ситуацию можно видеть и на примере мобильного процессора Snapdragon 835. Исходя из тестов, он более чем в два раза проигрывает мобильным версиям Intel Core i5, не говоря уже про десктопные решения.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

С другой стороны такие тесты нельзя назвать максимально объективными. Во-первых, большинство подборных программ ориентированы под x86/x64, поэтому для ARM часто приходится использовать эмуляторы, которые сказываются на результатах. Во-вторых, все рассматриваемые решения изначально ориентированы на мобильную электронику с минимальным тепловыделением и «жором» аккумулятора.

Однако можно ли использовать ARM для десктопных решений? Вполне вероятно, и первые звоночки уже есть. Каждые 6 месяцев выходит рейтинг ТОП-500 — список самых мощных суперкомпьютеров в мире. Ранее первые места занимали решения c Intel Xeon или Nvidia Volta, однако в рейтинге от сентября 2020 года самым мощным компьютером стал японский Fugaku. Беспрецедентный случай, ведь построен он именно на процессорах ARM (A64FX 48C). Замеры производительности показали 513,8 петафлопс. Много это или мало? Бывший лидер IBM Power Systems AC922 имеет всего 200,7 петафлопс — более чем в два раза меньше!

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Конечно, в Fugaku целых 158 976 процессоров на 52 (48+4) ядра, но сам факт того, что на ARM можно строить столь производительные системы уже заслуживает внимания.

Второй звоночек — покупка ARM компанией Nvidia (подписание договора ожидается только к 2022 году), которая является крупнейшим игроком рынка с огромным опытом. Учитывая, что в сфере графических ускорителей они занимают главенствующие позиции, есть вероятность, что «зеленые» попробуют свои силы в сфере ЦП.

Возможно, Nvidia хочет выйти на мобильный игровой рынок. У компании уже существует платформа Tegra, которая объединяет в себе графическое ядро и ARM процессор. C новой покупкой Tegra вполне способна выйти за пределы смартфонов, смартбуков и КПК.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Также Apple объявила о переходе на процессоры ARM собственной разработки и отказ от продукции Intel. Это позволит сделать совместимыми приложения между MacOS и iOS. Как известно, линейка процессоров «A» всегда показывала выдающиеся результаты, благодаря чему iPhone находились в ТОПе самых производительных смартфонов. Однако достаточно ли таких наработок, чтобы заменить хотя бы Intel Core i5 — остается вопросом.

Сейчас у Apple есть только «демонстрационная технология» на базе процессора A12Z Bionic. Разработчики могут получить «девкит» за 779 долларов, но потом его придется вернуть (Apple во всей красе). Новинка A12Z будет установлена в iPad Pro 2020 и, судя по презентации, планшет прекрасно справляется с любыми пользовательскими задачами.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Более того, на процессоре получилось даже запустить Shadow of the Tomb Raider через эмулятор на средне-низких настройках, поэтому потенциал есть.

Если верить тестам за 2017–2018 гг., то iPad и iPhone уже практически дотягиваются до уровня i7 и даже i9, установленных в MacBook Pro.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Есть еще один игрок на рынке — фирма Ampere. Как заявляют представители, их 80-ядерный ARM-процесор превосходит AMD Epyc 7742 и Intel Xeon 8280, однако в тесте для AMD использовался понижающий коэффициент, который компенсировал недоработки пакета компиляторов.

cortex ядра что такое. Смотреть фото cortex ядра что такое. Смотреть картинку cortex ядра что такое. Картинка про cortex ядра что такое. Фото cortex ядра что такое

Что ждет x86/x64

Стоит ли хоронить процессоры на x86/x64 — пока об этом рано говорить. Уже достаточно давно процессоры Intel и AMD разбивают входные инструкции на более мелкие микроинструкции (micro-ops), которые в дальнейшем, не удивляйтесь, исполняются RISC-ядром.

Те самые 4–8 ядер вашего процессора, это именно RISC-ядра. Проще говоря, ARM-технология является частью архитектуры x86/x64. Именно поэтому будущим может стать не тотальное вымирание, а именно более совершенная гибридная архитектура. С другой стороны, за счет уменьшения техпроцесса ARM может добиться производительности десктопных процессоров Intel и AMD, но с сохранением приемлемого энергопотребления.

Серверные решения на ARM уже реальность и даже весьма перспективная, а значит, не за горами и массовые процессоры для персональных компьютеров.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *