All streams
Search
Write a publication
Pull to refresh
0
0
Send message

Я думаю Вам известно, что большое количество смартфонов построено на базе гетерогенных многоядерных чипов, которые безусловно являются «мультипрограммным агрегатом», но никак не являются микроконтроллерами и никак не являются процессорами общего назначения. И, не надо обижать микроконтроллеры. С этой рыночной ниши начинали свой путь не только х86 и ARM, но и многие другие.

Если проводить аналогии с существующими процессорами, то:

  1. Клетка — это полноценное скалярное ядро с внеочередным исполнением команд.

  2. Мультиклетка — это суперскалярное ядро. Мультиклетка из 4-х клеток обеспечивает одновременную выборку и обработку 4-х команд. Мультиклетка из 8-ми клеток обеспечивает одновременную обработку 8-ми команд. И, соответственно, из 16 клеток — 16 команд.

    Принципиальное отличие мультиклетки от суперскаляра то, что в любой момент она может быть реконфигурирована в исходные 4,8 или 16 ядер. При этом, например, одно ядро будет продолжать выполнение текущей программы, а остальным ОС поручит решение других задач. Реконфигурирование м.б. более сложным. Например, 16 клеток могут быть собраны в две 8-ми клеточные мультиклетки, или в 4 четырехклеточные, или в 8 двухклеточных. Это к вопросу использования ресурсов и это не теория. Все это было реализовано в процессоре R 1(см. сайт компании).

    В классическом суперскаляре, таких возможностей нет. Во-первых они не могут одновременно обрабатывать 16 команд, максимум 8 (и то не все). Во-вторых суперскаляр, что у х86, что у ARM это единое целое, а не система простейших скалярных процессов. Следовательно, если у нас в программе есть блок с линейной последовательностью команд, то при выполнении этого блока 8-ми командный суперскаляр будет загружен на 12,5%, а мультиклет на 100%, оставив одну клетку на решение этого блока и загрузив другие клетки другими блоками.


Ну, во-первых, «мультипрограммным агрегатом» являются не только компьютеры общего назначения. Им являются все процессоры, которые способны поддерживать ОС с мультипрограммным режимом. Причем их архитектуры весьма различны. Другими словами, архитектура процессора и возможность использовать его в мультипрограммном режиме — это разные стороны одной медали — процессора. И не надо их смешивать. Как говорится: «мухи отдельно, котлеты отдельно»

Во-вторых, по поводу «плюсов». Я не буду говорить о производительности, энергопотреблении и т. п. Это все изложено выше в статье. Отмечу только один момент. Только у мультиклеточной архитектуры программный код может быть исполнен на любом количестве клеток и с полной реализацией параллелизма, который присутствует в коде. При этом задача распараллеливания, по сравнению с другими архитектурами, ни программно (VLIW), ни аппаратно (суперскаляры) не решается. Распараллеливание обеспечивается автоматически, за счет изменения способа описания алгоритма. Об этом тоже сказано в статье. Понятно, что на практике количество клеток ограничивается. Аппаратные ресурсы должны быть задействованы с максимальной эффективностью. В реальных условиях — это 4,8 или 16 клеток. Количество клеток диктуется средним количеством команд в линейных фрагментах кода. Конечно, есть задачи, которые распараллеливаются и на сотни, тысячи веток, но это уже специфические алгоритмы. Для их решения используются SIMD процессоры. Есть подобные решения и для мультиклета, но мы пока говорим о процессорах общего назначения.


  1. Если мы начали говорить о распараллеливании, то давайте начнем с определений. Слишком многогранная тема. В качестве основы предлагаю взять https://habr.com/ru/companies/intel/articles/243385/ .

  2. Мультипрограммность и многопоточность это разные понятия (см. википедию).

  3. В мультипрограммном режиме могут исполняться как программы, которые ничего не знают друг о друге, так и информационно-связанные программы, которые являются частью программного комплекса. В многопоточном режиме , все потоки — это части одной программы. Формирует эти потоки программист. Цель одна — оптимизировать использование ресурсов ядра, чтобы АЛУ не простаивали, а непрерывно работали.

  4. Пример с 4-мя функциями не понял. Если можно, то, пожалуйста, изложите его поподробнее с учетом п.1..

  5. Планы АО «Мультиклет» пропустим. Это не тема настоящей статьи. А вот по полной беспомощности можно поговорить. 256 клеток, как я понимаю — это 64 мультиклетки, каждая из которых некоторый аналог суперскалярного процессора с одновременной обработкой 4-х команд. Т.е., с точки зрения ОС, имеется 64 ядра или, если будет так угодно, 64 потока в одном ядре. Все они, естественно, связаны. Поскольку они связаны в единое целое, то для передачи данных между ними их должны идентифицировать. Присвоить каждой номер. А чтобы трафик между ними был в разумных пределах и на кристалле он не занимал много места, они собраны в кластеры по 16 шт. Всего 4 кластера. Время передачи данных внутри кластера t, между кластерами 2t. И не надо здесь искать то, чего нет в принципе.

  6. Рассуждения насчет миграции настолько далеко от истины, что их невозможно комментировать. И вот это действительно печалька..:(

Вся центральная часть статьи - это описание симбиоза. Насчет грусти, да, очень грустно. особенно, когда внимательно почитаешь сайт компании SiFive и задашь себе пару вопросов (технический и маркетинговый).

Во-первых, во что декодируют команды в процессорах этой компании, если сама по себе архитектура RISC имеет предельно простые команды. Понятна логика например декодирования CISC команд в команды типа RISC в суперскалярах х86. Но RISC во что? Ответа на этот вопрос нет. Пишут, как и в настоящей статье, что все фишки обеспечиваются микроархитектурой. На этом все.

Во - вторых, компания выпускает хорошие процессоры, может быть даже лучшие из RISC-V. Но, почему-то не слышно ни о смартфонах с этими процессорами,ни о планшетах и т.д.. Первый суперскаляр они сделали в 2019. Прошло 4-года. Вопрос - чего не хватает в продвижении этих продуктов?

Не ограниченный, а реалистичный. Классификация - это протокол о намерениях, а не реальные сегменты, где уже используется RISC-V.

Буду благодарен за ссылку, где можно поискать и купить мамину плату на традиционную замену в мой старенький PC компьютер . Искал, но не нашел.

ESC - это инструмент для программиста, а не для процессора. От него ничего не остается пока он пройдет все этапы трансляции в машинный код. Хотя, ход мыслей правильный. На любом уровне описания алгоритма, представление его в виде зависимости между данными более эффективно, чем в виде последовательности выполняемых операций.

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
Project management
Development management
Startup management
Presentations