html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Критический взгляд со стороны на процессоры Мультиклет / Multiclet

В последние пару недель на многих сайтах были заметки о начале производства (на азиатских заводах) отечественных процессоров Multiclet с «прорывной архитектурой и фантастической производительностью», в том числе и на Хабре: Первая опытно-промышленная партия отечественных мультиклеточных процессоров MCp. Все эти заметки в целом рассматривали разработку с позитивной стороны, основываясь на преимуществах в изложении разработчиков. Я всегда интересовался отечественными разработками, и попробую рассказать об этом процессоре чуть более критически, и описать в меру своих возможностей суть этой новой архитектуры.

Источники информации — ограниченная документация доступная на сайте разработчика, и ответы сотрудников компании на вопросы.

Архитектура


Если отбросить всю словесную шелуху (а её особенно много в данном случае), мультиклет — это в первом приближении любимый в России и СССР EPIC: архитектура с явным параллелизмом. В отличии от VLIW, где компилятор указывает какой блок что должен делать, тут указываются только зависимости инструкций, а по ядрам они растаскиваются уже в процессе выполнения (таких ядер в MCp0411100101 — 4 штуки).

За рубежем эта архитектура известна, и с 2006-года работает в кремнии (Explicit Data Graph Execution / TRIPS), но массового коммерческого успеха за прошедшие 6 лет не видно.

Преимуществ по сравнения с VLIW тут 2: гипотетическая возможность запускать код на процессоре c другим количеством «ядер» и возможность продолжить работу при выходе из строя одного из ядер. Оба преимущества, на мой взгляд, весьма сомнительны:

1) Запуск без перекомпиляции на процессоре бóльшего размера — для embedded применений обычно нет проблемы в перекомпиляции. Помимо этого, оптимальный код для 4 и 16 ядер разный — и запуск без перекомпиляции снижает эффективность (конечно если мы делаем что-то сложнее чем перемножение массивов).

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

Теперь посмотрим на картинку из описания процессора (ПП — память программ, ПД — память данных, ПБ — процессорный блок):


Сразу бросается в глаза — общий регистровый файл и коммутатор, совместный доступ к памяти (когда все ядра могут читать и писать практически что угодно). Обычно такого рода архитектуры работают медленно (из-за чисто физических ограничений), и возможно это причина, почему Мультиклет работает всего на 100Мгц при изготовлении на зарубежной фабрике (т.е. вряд ли там техпроцесс толще 130-180нмна 180нм).

Именно из-за проблем со скоростью все остальные существующие (коммерчески успешные) многоядерные архитектуры не пытаются организовать доступ «все имеют доступ везде» — обычно ядра имеют маленькую локальную память с возможностью редкого медленного доступа в общую память.

Производительность


Казалось бы, 2.4GFLOP декларируемые производителем — весьма существенная производительность. Однако, в компании-разработчике процессора отказались пояснить, каким образом была получена такая производительность при тактовой частоте 100МГц, и не подтвердили, что madd (multiply+add) выполняется за 1 такт. Тем не менее, похоже, мне удалось понять откуда взялась такая цифра.

Мультиклет работает с числами одинарной точности — «single» (32-бит) и есть возможность упаковать комплексное число single-точности в 64 бит (т.е. действительная и мнимая часть по 32 бит). Тогда и получается, что если умножение двух комплексных чисел выполняется за 1 такт, то это дает 6 FLOP за такт: (a + bi)(c + di) = (aс + bd) + (ad + bc)i., и соответственно, 6*4*100Mhz = 2.4GLOP.

Таким образом, сравнивать эту производительность с настольными Pentium-ами всякими конечно нельзя (это любят делать в обсуждении: «вот, почти достали Intel»): в настольных процессорах принято производительность измерять на 64-х битных вещественных числах, а тут озвученные цифры производительности получаются только на 32-бит и только в специфических условиях.

На обычных операциях с неупакованными данными производительность составляет 400 млн. операций в секунду, и нужно иметь ввиду что набор инструкций тут существенно более простой чем в том же арме, т.е. скорость на обычных задачах будет ниже, чем у 400Mhz арма (или Комдива-64).

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

Энергопотребление


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

Периферия и прочий фарш


Во первых, обращаем внимание на количество памяти — по 16кб памяти программ и данных.
Контроллера внешней памяти нет, соответственно все разговоры о портировании Linux — это дело далекого и туманного будущего, перед которым нужно еще сделать бакенд к GNUC для этого процессора.

Флеш-памяти для хранения программы нет, и загрузка производится с внешней флешки (в данный момент это Xilinx XCF04S). Естественно это вызвало подозрения, что процессор — перемаркированная FPGA, но на прямой мой вопрос об этом мне ответили:
Вместо Xilinx можно было бы поставить любую флэшку, а кристалл есть кристалл (внимательно посмотрите сайт), на FPGA мы сейчас ничего не делаем. Делали на этапе ОКР, для подтверждения расчётных параметров.
Кристалл сделан по 180нм.

Периферия — более-менее понятная для тех, кто работал с микроконтроллерами, за исключением Ethernet и USB — на кристалле нет «физической» части интерфейса, и их нужно ставить на плате отдельными микросхемами.

Софт для разработки — на данный момент только ассемблер. Компилятор С находится на стадии «пузырьковая сортировка работает» (Update: и факториалы). Подробное описание архитектуры, необходимое для разработчиков — не доступно на данный момент.

Резюме


Архитектура Мультиклета — да, действительно новая и действительно разработана в России на западе малоизвестна, но с 2006-го года работающая в кремнии (у буржуйского первого процессора производительность была 15.6 GFLOP). За бугром оно за 6 лет «не взлетело», и очевидно не спроста.

Достигнутая практическая производительность первого процессора в 400 млн операцией в секунду сравнима, а местами и меньше чем производительность серийных одноядерных процессоров классической архитектуры производимых в России (про зарубежные процессоры и DSP я конечно молчу) — за счет более высокой тактовой частоты и более «мясистого» набора инструкций последних.

Дальнейший рост производительности _на мой взгляд_ обещает быть сложным, т.к. чем больше ядер на кристалле мы размещаем, тем медленнее будет работать каждое ядро из-за того что накладные расходы на поддержание схемы «все ядра имеют доступ везде» быстро растут с ростом количества ядер.

Декларируемая «устойчивость» процессора к сбоям — вопрос туманного будущего, сейчас её нет. пока вызывает большие сомнения в силу сложности реализации в рамках этой архитектуры, и разработчики не предоставляют никакой информации о том как они её добились.

Исходя из всего этого, я не думаю что эта «принципиально новая (пост-неймановская) мультиклеточная архитектура» — прорыв в процессоростроении.
Работает — да. Лучше конкурентов (в том числе Российских) — едва ли.

Буду рад услышать ваши дополнения и корректировки — доступная информация по Мультиклету весьма ограничена, и я вполне могу где-то ошибаться.

Update: Обновлены данные по точности вещественных чисел, 24->32бит, 48бит убрано, переписал в свете этого резюме в более позитивном ключе.
Update: Более явно отделил свои домыслы от фактов.
Update: Благодаря beeruser обнаружили, что эта архитектура (Explicit Data Graph Execution / TRIPS) известна на западе достаточно давно, и назвать её новой нельзя. Т.к. у них она УЖЕ не взлетела, вероятность взлететь у нас — крайне мала.
Update: Получены дополнения от разработчиков — кристалл сделан на 180нм, отказоустойчивость — в текущем процессоре её нет, она может появится в будущем.
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

1

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • mshershnev
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции