Компания
166,93
рейтинг
20 февраля 2014 в 11:42

Разное → Расщепляем Quark. Микроархитектура нового процессора Intel



Кварк — это фундаментальная, то есть бесструктурная элементарная частица, введенная в теорию в 1964 году, которую до настоящего времени не удалось описать как составную. Intel Quark — это процессор для Интернета Вещей, выпускаемый Intel с осени 2013, но до сих пор не имеющий публичного описания своей внутренней структуры и воспринимающийся вне Intel как «черный ящик». — Как вы яхту назовете, так она и поплывет? Но я в это не верю. Скорее уж, как вы яхту назовете, так она вас назовет (если в ней стоит бортовой компьютер). В общем, в этом посте я исправлю ситуацию и расскажу, как устроен Quark.


История современная — Quark.

Итак, в сентябре 2013 Intel анонсирует новый процессор Intel Quark, предназначенный для Интернета Вещей, а также для разнообразной носимой техники и бытовых устройств. Quark — это действительно микропроцессор (от греческого «микро» = маленький), с размером примерно в 1/5 часть Атома (то есть, Intel Atom, конечно), и в 10 раз меньшим энергопотреблением. На тот момент это — единственные известные технические детали про Quark — их немного, как это обычно и бывает при анонсах такого уровня. А вот интерес к этому процессору совсем немаленький. Вот, к примеру, независимый пост с анонсом и соответствующей реакцией читателей на habrahabr.ru.

Через месяц после объявления в продаже появляется первый представитель семейства Quark — Quark SoC X1000, являющийся основой первого Arduino-совместимого микрокомпьютера на платформе Intel — Galileo. Тогда же информации про Quark становится больше. Quark X1000 SoC — это одноядерный 32 битный процессор с частотой до 400 MHz, выполненный по 32 нм технологии и имеющий архитектуру, совместимую с набором инструкций Pentium (Pentium Instruction Set Architecture). Полные характеристики Quark X1000 SoC на Intel ARK добавляют к этому описанию несколько технических деталей: 16 Kb кэш, отсутствие Hyperthreading, максимальная скорость обмена данными с памятью 1.6 GB/s, ...., но главный вопрос внутреннего устройства Quark CPU остается открытым.

И, наконец, в январе 2014 Intel представляет компьютер под кодовым названием Edison — устройство размером с SD-карту, работающее под управлением Linux OS, со встроенным WiFi и Bluetooth. Нетрудно догадаться, что Edison также базируется на процессоре семейства Quark, но НЕ на Quark SoC X1000, а на другом, двухядерном, выпуск которого по технологии 22 нм начнется летом 2014. Журналисты, побывавшие на презентации Edison, упоминают прозвучавшие там слова «компьютер класса Pentium», но что же именно имеется в виду? — классы, сами понимаете, бывают разные.


История древних времен — Pentium

Pentium появился в 1993 году и был назван так потому, что представлял собой пятое поколение IA32. Это была первая суперскалярная, то есть, реализующая внутренний параллелизм на уровне инструкций, микроархитектура.
Как видно на схеме ниже, Pentium включает 2 конвейера (Pipeline) для обработки целочисленных данных — «U» и «V» и, соответственно, два ALU (арифметико-логическое исполнительное устройство для целых чисел), отдельные кэши для данных (Data Cache) и инструкций (Code Cache) и блок предсказания ветвлений (Branch Target Buffer):

Векторных инструкций в этой версии еще нет, они появятся позже, в Pentim MMX.

Но, по сравнению с 486, в Pentium было добавлено несколько новых инструкций, самые известные из которых — CPUID (CPU IDentification), позволяющая получить информацию о фичах данного CPU, и RDTSC (ReaD Time Stamp Counter), возвращающая количество тиков с момента включения процессора и использующаяся для измерения производительности. Согласитесь, что инструкции настолько полезные, что кажется, что они существовали всегда. Кстати, CPUID после дебюта в Pentium была добавлена в специальную модель i486 (SL-Enhanced 486), вышедшую сразу после Pentium. Правда, интересный поворот?

Quark. Что внутри?

Теперь вернемся в настоящее — к Intel Quark. Его связь с Pentium подчеркивает входящий в комплект поставки Galileo (возможно, не во всех магазинах) интеловский астронавт, похожий на своего коллегу, работавшего в рекламе Pentium в конце прошлого века. Причем, именно коллегу — это явно не тот же персонаж, отличия видны не только в современном логотипе Intel на его скафандре, но и во всей фигуре.

Также и Quark. Это — ни в коем случае не разогнанный и уменьшенный Pentium, произведенный по новейшей технологии.
А что же это? Для полного ответа на этот вопрос надо изучить два публично доступных документа, которые находятся простым поиском по ключевым словам "intel quark reference manual":
Intel Quark SoC X1000 Core Developer’s Manual, 311 страниц сведений по теме
Intel Quark SoC X1000 Core Hardware Reference Manual, 143 страницы полезной информации.

Но нас из всего этого богатства интересует главное — устройство ядра Quark. Вот оно, на схеме из второго мануала:



Как видите, это заметно отличается от вышеприведенной диаграммы устройства Pentium, и не только потому, что рисунок не цветной.
Главные отличия:
  • единственное ALU, соответственно, отсутствие двух конвейеров «U» и «V», то есть НЕ суперскалярность Quark.
  • полное отсутствие механизма предсказания ветвлений
  • общий кэш первого уровня для данных и кода.

В помощь кэшу блок интерфейса шины (bus interface unit) имеет временный буфер, способный хранить до 4 32-битных записей, позволяя многим внутренним операциям продолжаться, не дожидаясь окончания записи на процессорной шине…

При этом, заметим, что конвеерная обработка данных в Quark присутствует. Pipeline состоит из пяти стадий — выборка, две стадии декодирования, исполнение и запись данных в регистры. Каждая стадия занимает один цикл процессора. Но еще раз повторю — это не суперскаляр, хотя в комментариях к отличному посту про Quark моего коллеги vtsymbal можно найти жаркий спор на эту тему.

А теперь давайте посмотрим еще на одну старую схему — устройство процессора Intel 80486:

Правда, похоже на Quark? Как говорится, найдите 10 отличий. Или, хотя бы, два.

Хотя, на самом деле, их минимум, на порядок больше, и искать их надо не на этой схеме. Quark — не i486! Как уже было сказано выше, Quark совместим с Pentium ISA, то есть, поддерживает все новые инструкции Pentium, и, более того, ряд новых инструкций, появившихся в процессорах менее пяти лет назад и связанных с обеспечением безопасности системы — архиважной штуки в современных условиях и поддержки современных ОС. Это Supervisor Mode Execution Protection (SMEP), а также PAE (Physical Address Extension), дающий 32 битным процессорам возможность использовать более 4 GB физической памяти и являющийся условием работы NX (No-Execute) функциональности, также поддерживаемой Quark.
Кроме этого, Quark поддерживает отладку JTAG и является синтезируемым (synthesizable) CPU, то есть, позволяет сторонним производителям добавлять к ядру Quark свои блоки.

Так почему же за основу Quark не взята более сложная и продвинутая микроархитектура Pentium? Самое разумное предположение — из соображений уменьшения энергопотребления и достаточной для предполагаемых применений производительности архитектуры более простого CPU.

Но даже при достаточной теоретической скорости работы, как показывает опыт, на практике нередко требуется оптимизация. Кстати, она может потребоваться и лично вам — Intel планирует в ближайшее время запустить конкурс разработчиков приложений под системы на базе Quark с призовым фондом более миллиона долларов! И понимание внутреннего устройства Quark может помочь в повышении производительности приложений — при компиляции под Quark стОит использовать набор опций вроде такого -march=pentium -mtune=i486, то есть, набор инструкций Pentium, а их выполнение — для i486.
Воистину, новое — это хорошо забытое старое. Или, как в данном случае, даже не забытое, а просто хорошее старое.
Автор: @vikky13
Intel
рейтинг 166,93

Комментарии (39)

  • +5
    Как все же интел скакнули. От атомов сразу к кваркам. Нет бы «протоном» или «нейтроном» называли :-)
    А то выпустят года через 3 еще меньше процессор, и не будет проходящего имени уже. Придется уходить в сторону и каким нибудь «нейтрино» называть.
    • 0
      • 0
        Вроде как пока это чисто гипотетическая частица, википедия собственно говорит — «and no direct experimental evidence for lepton and quark compositeness has been found.»
        • +7
          Дык и следующий процессор тоже пока вещь чисто гипотетическая.
    • 0
      Ну там же струны вроде где-то в 11-мерном пространстве колеблются. А вообще вам наверное за свой ник обидно :)?
      • 0
        Да нет, этому нику уже лет 14, и я давно пережил возраст когда за ник бывает обидно :-). Для меня это не больше чем последовательность символов, по которой меня друзья могут узнать.
  • +2
    А производительность-то у него на каком уровне?
    • +5
      Точно выше i486 и Pentium. А если серьезно, то пока недостаточно данных для объективной оценки. Когда они появятся — попробую сделать отдельный пост, тема интересная.
      • +3
        Было-бы очень интересно увидеть данные по производительности в сравнении с:
        * теми-же атомами — понятно что кварки будут слабее, но насколько — интересно
        * Cortex-M серией, которые сверх-экономные, но медленные
        * Cortex-A серией, они конечно уже скорее в другой весовой категории, но сравнить интересно, т.к. мне кажется что Quark будет мощнее чем Cortex-M, но слабее Cortex-A (с последнием Atom соревнуется).

        P.S. Мой ник я выбрал себе еще году так в 1999-ом, и он специально с опечаткой для «большей уникальности».
        • 0
          Эмм… Скорее тут интереснее привести замеры производительности с MIPS, и ARM процессорами, хотя при размерах сопоставимых с микроконтроллером (тем же MegaD64) возможности и быстродействие должны быть колоссальны.
          • +1
            Так ведь Cortex и есть ARM.
  • +8
    Мы в KolibriOS Project Team уже потираем ручки в предвкушении изучения новой железки.
  • +3
    Понятное дело, что Интелу не даёт покоя успех Raspberry, кварк явно задуман конкурентом. Нет ли планов написать сравнительную статью? Понимаю, что сравнивать процессоры разных архитектур не сильно правильно, но хотелось бы понять, насколько на этой платформе хорошо будут решаться типичные для Raspberry задачи — поднять медиацентр, контроллер умного дома, домашнее файлохранилище и т.д.
    • +1
      Идея подобного поста интересная, спасибо. Может, и получится.
      • 0
        Первый вопрос на сравнение, какие способы вывода видео есть у Galileo? если я не чего не пропустил — то я не нашел способа.
        • 0
          Там есть выход mini PCI Express. Соответственно, нужна карта. Еще есть некие внешние решения с экраном через usb.
          • 0
            Можете привести ссылки на mini PCI Express видеокарты? решение через USB более чем нелепой шуткой к сожалению не назовешь)
            • 0
              Есть несколько вариантов на SiliconMotion SM750, но они дороже, чем сама Galileo (цена до $100): Commell MPX-750 и Advantech PCA-5650-00A1E. Более дешёвый вариант — купить переходник Mini PCIe -> PCIe x1, и вставить обычную PCIe x1 видеокарту.
    • 0
      Понимаю, что сравнивать процессоры разных архитектур не сильно правильно

      Всё же вполне правильная — наличие/отсутствие интерфейсов, фич, производительность на Вт, в общем есть что сравнивать :)
  • 0
    Кроме этого, Quark поддерживает отладку JTAG и является синтезируемым (synthesizable) CPU, то есть, позволяет сторонним производителям добавлять к ядру Quark свои блоки.

    Т.е. это по сути это ПЛИС? Какие у неё характеристики? Своя разработка или одного из крупных производителей ПЛИС? И какой объем в ней занимает этот самый кварк — и сколько же ресурсов остается для сторонних производителей? Можно ли будет полностью заменить кварк на какой-то свой софт-процессор стандартными средствами? Или эта возможность будет предоставлена только для крупных производителей на заказ, а в домашних условиях так нельзя будет делать?
    • 0
      Насколько я понял, это не плис, а скорее IP core. Запихнуть его в плиску конечно можно, только плиску нужно взять большую. Ну и роялити наверное не хилое.
    • 0
      Нет, это не ПЛИС, это IP Core, выше правильно пишет valpo И заменить его на софт, увы, не выйдет.
  • +1
    Сколько уже можно дразнить и по капле публиковать TTX, когда в голове только два вопроса: «сколько стоит» и «где купить».
    • +2
      У вас — правильная голова :) или, хотя бы, правильные вопросы в ней. Но не все же такие, как Вы. Да и покупать кота в мешке хотят не все, так что лучше покупать с полным пониманием предмета. Купить пока можно только вне России, но зато в куче мест. Список — www.intel.com/content/www/us/en/do-it-yourself/where-to-buy.html стоимость — менее $70.
      • 0
        Спасибо. Информация очень вовремя, сегодня только на работе обсуждали, что нигде толком не написано, где купить, сколько стоит…
  • +1
    Intel планирует в ближайшее время запустить конкурс разработчиков приложений под системы на базе Quark с призовым фондом более миллиона долларов!
    Как обычно, опять только обязательно используя Intel SDK? Операционные системы, работающие на «голом железе» на базе Quark от Intel (без использования Вашего SDK) участвовать не смогут, естественно?
    • 0
      Я не согласна с «как обычно». Бывает и так и этак. Осенью здесь на хабре Intel проводил масштабный конкурс ПО для планшетов и моноблоков, там вообще никакой софт для написания не специфицировался, главное — чтобы идея была хорошая. И это только один из примеров.
      А про грядущий конкурс публичной информации пока нет, но можно предположить, что это тоже будет конкурс идей и концепций, а не продвижение Intel SDK
      • +1
        Если Вы про это, то очень даже специфицировался: операционная система Windows 8. Для нашего проекта, это условие равноценно требованию использования Intel SDK. Я бы хотел увидеть хоть один конкурс от Вас, где вообще никакой софт (ни ОС, ни SDK) не предписаны заранее.

        Если Вы имели в виду другой конкурс, то заранее прошу прощения: я его профукал — ткните носом в соответствующий пост.
        • 0
          Да, про этот. Но ОС != SDK, это две большие разницы. Вам ничто не мешает написать свой SDK при необходимости :). ОС нужна постольку поскольку конкурсы обычно бывают для конкретного класса устройств, на котором стоит определенный класс ОС, в данном случае это была обычная десктопная Windows, существующая уже не первое десятилетие — софта под нее просто масса.

          А конкурсы без указания ОС — это что-то совсем отвлеченное, типа конкурса идей.
          • +2
            Ну Вы же, в первую очередь, производитель железа — кому как не Вам устраивать конкурсы на «голом» железе? image Задайте чёткие требования, что должна уметь делать программа, но в выборе софта (OS, SDK) не ограничивайте.

            Впрочем, это было лишь моё пожелание — Вы имеете полное право его игнорировать image
  • +3
    А что такое Linux OS?
    • 0
      www.google.com/search?q=Linux+OS

      Там сверху KolibriOS отметились, просите у них, когда они заведут их «Linux OS» на Intel Galileo.
      • 0
        olegkrasnov хотел, вероятно, знать, какой именно дистрибутив Linux будет там работать.
        А KolibriOS таки ни разу не Линукс :-)
        • +1
          сори, ступил, думал, что в KolibriOS линуксовое ядро.

          вот здесь загрузки для Intel Galileo downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23171. Там свой линукс какой-то.
          ROS уже завели там.
          Debian тоже завели.

          так что могу поправить ссылку из моего предыдущего поста на
          www.google.com/search?q=Linux+OS+galileo
          • +1
            Меня смутило название Linux OS. Привык видеть GNU/Linux, либо имя конкретного дистрибутива.
            • +1
              Понятно, есть разные точки зрения на это название. Это больше относится к 20-ти летнему холивару и мало относится к теме блога.
              Так что не думаю, что мы сможем решить эту проблему в наших коментах:).
  • 0
    > бесструктурная элементарная частица

    Извините, вспомнился анекдот:

    «Долгое время считалось, что атом неделим. Однако советские ученые...»

    Что же, посмотрим, что дальше в линейку Quark-ов появится. Atom-ы тоже поначалу были слабые, а на иных уж и виртуалки разводят, и что только не запускают.
  • 0
    Здравствуйте Виктория,

    Скажите, пожалуйста, когда можно будет купить Intel Quark по Intel EPP? На данный момент он там не доступен.
    • 0
      Николай, вы явно знаете больше меня. Я даже была не в курсе, что такое Intel EPP (посмотрела только после вашего вопроса) :) Так что ответить, увы, не могу.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное