MAX
Подпишись
стань автором. присоединяйся к сообществу!
Есть метка на карте 09 июля 21
70

«Мультиклет»: завершены внутренние тесты первой партии мультиклеточных процессоров

Компания «Мультиклет» объявляет о завершении внутренних тестов первой опытно-промышленной партии мультиклеточных процессоров, выпущенной в июне.

Приводятся следующие параметры процессора:

кристалл с топологической нормой 180нм размером 10х10 мм в корпусе QFP-208, что обусловлено периферией: 2 интерфейса SPI с селектором “ведомых” устройств (в режиме “ведущий”), 4 универсальных асинхронных приёмопередатчика UART c FIFO на прием/передачу, 2 интерфейса I2C (один “master” и один “slave”), интерфейс I2S, Ethernet контроллер 10/100Мб/с, USB 1.1 FS (device) контроллер с последовательным внешним интерфейсом для подключения приемо-передатчика, часы реального времени с календарем, 7 таймеров общего назначения, 4 порта ввода-вывода, общее количество вводов-выводов – 104, 4-х канальный контроллер ШИМ, сторожевой таймер.

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

Подробная информация о мультиклеточной архитектуре, на основе которой создан микропроцессор MCp0411100101 находится на сайте компании www.multiclet.com в разделе поддержка, общетехническая информация. В тексте документа «Концепция мультиклеточного процессора» содержится подробная информация об описании и принципах построения процессора, а так же о его архитектурных особенностях.

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

[читать статью полностью...]

Кстати, а вы знали, что на «Сделано у нас» статьи публикуют посетители, такие же как и вы? И никакой премодерации, согласований и разрешений! Любой может добавить новость. А лучшие попадут в наш Телеграм @sdelanounas_ru. Подробнее о том как работает наш сайт здесь👈

Источник: www.multiclet.com

Комментарии 0

Для комментирования необходимо войти на сайт

  • 0
    Нет аватара Keeperovod10.07.12 11:17:13
    Solncevorot, конечно, палку перегнул, но во многом прав, т.к. многие просто не понимают в данной теме. Попробую объяснить на пальцах. Сам не "железячник", а "софтописатель", поэтому если где-то ошибусь в терминах или каких-то нюансах, то прошу не пинать сильно тех, кто действительно разбирается. Во-первых, нужно понимать, как выполняются программы. Вначале CPU (процессор), получает инструкцию. Например, сложить два числа из ячеек памяти по адресам А и Б, а потом записать результат по адресу В. В CPU все операции выполняются поочередно, т.е. тактами. Таким образом, чтобы выполнить сложение, CPU вначале тратит 1 такт на то, чтобы понять, что ему надо сделать, потом 2 такта на чтение данных, 1 такт на операцию сложения и 1 такт на запись результата. В сумме 1 + 2 + 1 + 1 = 5 тактов. Но это происходит только, если операции простые. На самом деле современные CPU могут осуществлять сотни операций разного назначения с огромным количеством параметров. Иногда "дешифровка" самой команды, т.е. понимание того, что нужно сделать, занимает до 10-15 тактов в современных x86 процессорах. Т.е. эти 10-15 тактов работает только 1 блок процессора, который отвечает за дешифровку, а все остальные, которые отвечают за вычисления, простаивают, что страшно неэффективно. Естественно, не все так плохо, т.к. простой составляет не 10-15 тактов, а существенно меньше, т.к. параллельно с дешифровкой происходит вычисление предыдущей операции. Еще больше это усугубляется тем, что доступ к памяти далеко не мгновенен и чтение данных из нее может занимать десятки тактов, что намного больше, чем дешифровка и вычисление сами по себе. Для того, чтобы с этим бороться была придумана такая вещь, как кэш инструкций, т.е. некоторая часть памяти процессора, в которой находятся расшифрованные команды в разной стадии исполнения. Для того, чтобы эффективно его использовать, был создан такой механизм, как "внеочередное исполнение" (OoO - out of order execution), который позволяет исполнять независимые команды не по очереди, а тогда, когда они уже расшифрованы и для них есть свободные вычислительные блоки. Обычно, в каждом ядре современного х86 процессора, есть не менее чем по одному вычислителю для каждого типа операций (с целыми числами, дробными, векторами и т.п.). Тех же целочисленных вычислителей в современных Intel Core по 4 штуки на ядро. OoO механизм раскидывает нагрузку на них параллельно, чтобы максимизировать загрузку этих блоков. Вообще ядра проектируются так, чтобы все вычислительные блоки ядра были более-менее равномерно загружены все время. Это приведет к тому, что на операцию сложения уйдет не 5 тактов, а 4, т.к. чтение из памяти будет распараллелено. Кстати, в Atom и Arm OoO не реализовано, из-за чего они крайне неэффективны на высоких частотах по сравнению с "полноценными" x86. Теперь вернемся к Мультиклету. Сразу скажу, что не претендую на объективность, т.к. глубоко не вникал. Да и материалов мало. Насколько я понимаю, клетка это совокупность из нескольких вычислителей. Грубо говоря, по одному вычислителю на клетку. Т.е. суммарно 4 клетки дают те же 4 целочисленных блока, но клетки независимы за счет того, что в каждой клетке есть все вычислители. Это создает избыточность, но повышает надежность за счет дублирования. Так же это дает возможность использовать другую реализацию OoO не на уровне инструкций, а на уровне вычислительных блоков. Т.е. независимые инструкции посылаются независимым блокам. Грубо говоря, сложение займет те же 5 тактов, но таких операций можно выполнять 4 штуки одновременно. Получается, что это хуже чем классическая реализация х86, на которой так же возможны 4 операции одновременно, причем быстрее? А вот здесь уже начинаются нюансы, связанные с тем, что Мультиклет на порядок, а то и 2 проще. Т.е. сам механизм OoO работает намного эффективнее за счет того, что ему не надо помнить, сколько у него и каких вычислителей свободно. Достаточно просто знать, что клетка свободна и способна считать. А если она сломалась и не работает, то планировщик, который выдает инструкции, просто ее игнорирует и продолжает вычисления на других клетках, что в принципе невозможно в классических процессорах, т.к. в них все модули взаимосвязаны. В этом и есть главное новшество. Что получаем в итоге? А получаем процессор, эффективный из-за своей простоты, но хорошо масштабируемый путем экстенсивного наращивания клеток. Кроме того, он способен обеспечить действительно высокую надежность. Есть ли в нем что-то прорывное? В целом нет. Но он идеально ложится в нишу промышленных и военных процессоров, которым действительно нужна надежность и эффективность именно в вычислениях. В телефонах/компьютерах/серверах мы его, скорее всего, никогда не увидим, т.к. нюансы реализации текущих средств разработки, рассчитанных на классический подход распараллеливания потока команд, не позволят создавать действительно эффективный код для Мультиклета. Более того, классический код будет работать едва ли не хуже. Из-за этого перенос существующего ПО просто слишком дорог да и не нужен. А вот в ракетах ПВО Мультиклету самое место    
    • 0
      RadiantConfessor RadiantConfessor10.07.12 11:36:56
      Только вот Мультиклет способен расспараллеливать выполнение одной команды. Кроме того, данные предыдущих вычислений одни клетки получают от других не обращаясь к кешу инструкций или данных. За счет отсутствия работы с памятью ускоряется работа.
      Отредактировано: Zveruga~11:41 10.07.12
      • 0
        Нет аватара Keeperovod10.07.12 12:01:43
        Если честно, то не представляю как можно распараллелить выполнение команды сложения, например, кроме одновременного чтения из памяти. Я так и не смог понять RISC он или CISC. Если CISC, то команда это сама по себе маленькая программа, которую можно понять как распараллелить. Если RISC, то тогда просто не понятно зачем "козе баян" и как все это синхронизируется и работает в рамках 1-й команды. Один механизм отката вычислений при сбое одной из клеток чего стоит. Кэша инструкций у Мультиклета нет, т.к. нет конвейера. Поэтому частотой в текущем виде производительность можно поднять сильно ограниченно. Сейча ARM в это же уперлись. Кэш данных нужен только, если память медленней регистров процессора. На 100 мегагерцах это не шибко актуально. "За счет отсутствия работы с памятью ускоряется работа." - а вот это уже интересно. Чем это отличается от обычных регистров в х86?
        • 0
          Нет аватара Keeperovod10.07.12 12:04:22
          Имел ввиду CISC аналогичный современным х86 с микрокодом.
        • 0
          RadiantConfessor RadiantConfessor10.07.12 12:15:04
          A=B+C Тут уже две операции, хотя команда одна. Результат посылается от клетки вычислившей ко всем клеткам со специальным флагом. Та клетка, которой этот результат нужен его возьмет, остальные проигнарируют.
          Отредактировано: Zveruga~12:17 10.07.12
          • 0
            Нет аватара Keeperovod10.07.12 12:30:39
            Увы, не способен понять, чем это отличается от того, что было в моем начальном комментарии. Имеем 5 действий: 1) Расшифровка командного кода 2) Чтение B 3) Чтение C 4) Сложение 5) Запись результата в A 1 - вынесен за пределы клетки. 2 и 3 теоретически могут быть параллельны, но реализация одновременного чтения тоже требует затрат времени, поэтому далеко не факт, что тут выиграть вообще можно. 4 и 5 теоретически могут быть выполнены другой клеткой, нежели 2 и 3, но в чем здесь преимущество, если все клетки равнозначны? В общем, я просто логически не понимаю в чем тут можно выиграть. Можно сформулировать так - Мультиклет реализует аппаратный VLIW. В классическом загрузка блоков регулируется компилятором на стадии сборки программы. В Мультиклете аппаратно, на стадии выполнения. В х86 такого просто нет, процессор работает "от потока". Но ни в одном из 3-х случаев не идет речи об распараллеливании выполнения команд. Только об распараллеливании разных команд. Если говорить про A = B*(C+D) = B*C+B*D, то тут можно распараллеливать, но это уже известно как суперскалярность лет этак 15 с Pentium 3. Т.е. это очень сложно назвать прорывом. Думаю и в Эльбрусах такой подход используется. Аппаратный VLIW это здорово, но никто ни в одно документе и/или статье, которые я видел, так и не смог внятно это объяснить.