Регистрация / Вход
мобильная версия
ВОЙНА и МИР

 Сюжет дня

Российские миротворцы покидают Нагорный Карабах
Памфилова вручила Путину удостоверение президента РФ
Владимир Путин ответил на вопросы Дмитрия Киселёва
Восьмое Марта!!!
Главная страница » Новости » Просмотр
Версия для печати
Первый в мире мультиклеточный процессор поступил в продажу
27.06.12 23:17 Наука, техника, образование
photos/articles/art_70637.jpgомпания "Мультиклет" выпустила первую опытно-промышленную партию микропроцессоров, созданных на основе собственной мультиклеточной архитектуры, и начала их поставку на предприятия электронной промышленности.

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

"Мы получили с фабрики первую партию разработанных нами мультиклеточных процессоров – это поистине знаменательное событие не только для нашей компании, но и для всех электронной промышленности страны, - отметил генеральный директор ОАО "Мультиклет" Борис Зырянов. -  Первый в мире мультиклеточный микропроцессор MCp0411100101 состоит из четырех клеток и имеет в своем составе процессорное ядро с принципиально новой (пост-неймановской) мультиклеточной архитектурой.

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


Сейчас разработчики мультиклеточных процессоров завершают этап тестирования продукта, как только все тесты будут пройдены, специалисты компании начнут отгрузку процессоров и отладочных комплектов на предприятия страны, предварительная дата – 1 июля 2012 года. Промышленным концернам, сотрудничающим с компанией "Мультиклет", еще предстоит большая, серьезная работа по апробации полученных образцов.


 

Aijy28.06.12 10:11
Особенно радуют "дробные" числа. Это же, блин, почти что старый добрый аналоговый компьютер! Ацкая вещь по эффективности для некоторых узких областей (при нормальном тестировании и отладке софта и т.п.)!
mcf28.06.12 10:46
"Процессоры с мультиклеточной архитектурой – единственный на сегодня тип процессоров, в которых принципиально возможна динамическая реконфигурация процессора в ходе выполнения алгоритма решения потока задач и получение высокой отказоустойчивости в результате реализации методологии постепенной деградации процессора, что обеспечивает исключительную надежность аппаратуры, - отмечает создатель мультиклеточного процессора, технический директор ОАО "Мультиклет" Николай Стрельцов.
TNTIII28.06.12 11:03
Ну что за козлы МультиКлет надо было написать по русски а внизу более мелким шрифтом по английски.
Mofack28.06.12 11:15
вдвойне порадуюсь, когда увижу его в нашей технике. кстати, на фотографии процика нарисована дата выпуска? типа 23 неделя 2012?
Moriturus28.06.12 12:11

На сайте МультиКлета есть описание процессора:

ссылка

"Преимущества процессора:

• увеличение производительности в 4-5 раз при одновременном снижении энергопотребления (при одинаковых тактовых частотах и топологических нормах исполнения):

— в 2-4 раза по сравнению с аудиопроцессорами;

— в 10-15 раз по сравнению с процессорными ядрами со сверхнизкими энергопотреблением;"

Кто-нибудь может прокомментировать за счет достигается увеличение производительности и по сравнению с чем?

P.S. нашел в FAQ интересный вопрос:

Засчёт чего увеличивается быстродействие процессора?

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

Но понятнее как-то не стало.

Mofack28.06.12 12:19
наверное надо вместе с этой новостью читать
ссылка
Амиго28.06.12 12:24
Там, вроде, написано, что вместе с инструкцией идет и описание как ее выполнять. Возможно, по этой причине и не нужно обращаться к памяти.
Молодцы.
ДнК28.06.12 12:25
Радует то, что предлагается к продаже отладочный комплект с ПО - очень правильное решение.
worker28.06.12 12:27
Интересно конечно. Но всё что до сих пор выходило из отечественных заводов так и не стало комерческим продуктом. Всё что делали, - делали малыми партиями для военных. Но, как говорится, дай бог что это только начало.
Moriturus
Много системного времени в компьютерах уходит на извлечение данных из памяти самим процессором, сохранении после вычислений промежуточных результатов в память. Может регистров ядра сделали много и большими...
ДнК28.06.12 12:36
> Moriturus

" Как объясняет технический ссылка УАЛНиколай Стрельцов, отличие новой мультиклеточной архитектуры от традиционной ядерной состоит в том, что она работает не с отдельными командами, а с "предложениями", состоящими из команд. При этом операции внутри предложений проводятся без привлечения памяти. Разработчики утверждают, что это обеспечивает в 4-5 раз более высокую производительность наряду с десятикратным снижением энергопотребления."

Т.е. вместо простейших инструкций, которые оперируют данными из регистров процессора (в лучшем случае), создаётся предложение из таких инструкций и судя по комментарию включает в себя и данные переменных и запускается на исполнение в одно из ядер. Параллельно подобное предложение соотв. будет исполнятся на всех существующих ядрах. Чем то мне напоминает Эльбруса.
Alkid28.06.12 12:59
Интересно, получается, что эти процессоры уже разрабатываются с прицелом на конкретных заказчиков.
Или нет?
Если да, то кто уже намерен внедрять их?
iDesperado28.06.12 13:05
полистал их брошюру ссылка
тоже пока не понял, чего там революционного. ничего аналогового не увидел судя по ссылке ДнК какой-то вариант vliw но заточенный на обработку сигналов.
судя по 2.4 гфлопсах пока у мультикор с 4 Гфлопс обгоняет ( ссылка но конкуренция это хорошо
Moriturus28.06.12 13:37
> ДнК

Т.е. вместо простейших инструкций, которые оперируют данными из регистров процессора (в лучшем случае), создаётся предложение из таких инструкций и судя по комментарию включает в себя и данные переменных и запускается на исполнение в одно из ядер. Параллельно подобное предложение соотв. будет исполнятся на всех существующих ядрах. Чем то мне напоминает Эльбруса.
Мне непонятно как это позволяет избавиться от обмена с памятью. Ну выполнится целое предложение, потом всё равно все результаты надо вернуть в память и взять оттуда новую порцю данных. Если задача состоит в, допустим, выполнении одной и той же операции, но над огромным массивом данных.
труляля28.06.12 14:03

>iDesperado 28.06.12 13:05 полистал их брошюру Ссылка

Оттуда: "области применения: ... видеотехника 3D"

???

Mad Alex28.06.12 17:09

Судя по описанию, нормальная контрошка для систем управления. Откуда они на 100 мгцах вытянули 2,4 гфлопса, не вкурил.

ЗЫ Вспоминается eZ80, в котором, судя по рекламе, большинство операций выполнялось за 1 такт. При более серьезном рассмотрении выяснилось, что такая операция - nop)))

ЗЫ2 ОАО "Мультиклет" представляет собой полностью сформированный дизайн-центр, состоящий из пяти департаментов, способных решать все задачи по созданию чипов. Компания организована по принципу "fabless company" с головным офисом в Екатеринбурге. То есть производить в России опять никто ничего не будет. А чего от Скольково можно было еще ожидать?

vpv28.06.12 20:15

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

Память и узкая шина (в ЦП - медленный кэш) часто являются ограничителями максимальной производительности. Частота не единственный показатель производительности - ещё есть кол-во операций за такт и инструкции. При заточке под определённую специфику ( инструкции), он может быть не хуже мир. аналогов.

Tumi28.06.12 21:17
. Кто может пояснить что значит "постНеймановская" архитектура? Читаю краткое описание - типовая Гарвардская. К примеру, как на TMS320, только несколько ядер с обвязкой (ака "клеток").
. Память программм не может быть записана... немного напрягает. А как туда подгружать код? Или не может быть записана только при определённых привилегиях? У того же TI есть специальные команды чтоб таки можно было перекинуть кусок между ПП и ПД (памятью данных). А тут?
. Ага, регистры внешних устройств отображены на память. Отдельной шины нет. Пойду дальше мануал читать...

. Новость радует.

P.S. Вопрос о подгрузке кода снимается: ответ на странице 15-38. Код загружается бутлодером по сигналу сброса автоматом в СОЗУ памяти программ. Другого метода его туда вгрузить нет. Память данных тоже полностью реинициализируется по сбросу. Причём, вся сразу.
Tumi28.06.12 21:29
> Moriturus
Мне непонятно как это позволяет избавиться от обмена с памятью.
. Я нашёл! Они просто всю программу в СОЗУ (сверх-оперативное ОЗУ) помещают. Оно находиться прямо в процессоре, следовательно, у неё не такое большое ограничение на ширину шины. Если память на внешней шине, то ширина шины (кол-во проводков, грубо говоря) сильно ограничивается кол-вом ног процессора.

. Вот это место, из мануала. Страницы 1-38: Память программ (ПП) представляет собой независимые блоки СОЗУ (PM0 – PM3), число

которых равняется числу ПБ (процессорных блоков). Соответственно, каждый ПБ имеет свою собственную ПП.
Указанные блоки памяти не связаны между собой и функционируют независимо

. Вот ещё на ту же тему: "Особенностью организации ПД (памяти данных) является то, что ячейки со смежны-
ми адресами находятся в разных блоках ПД. Для сокращения времени доступа к памяти
рекомендуется данные выравнивать на 8 байт."
. Если перевести на технический - они в памяти данных (где результаты хранятся) создали интерливинг банков. Т.е. пока мы выставили адреса для получения 1-ых восьми байта (из первого банка), то в 2-ые восемь байт (если их адрес выставляли ранее) можно уже забирать, не мешая получению 1-ых восьми байта.

Tumi28.06.12 21:54
. Пробежал мануал. Вывод - это гарвардская архитектура: память команд и данных жёстко разделена. Плюс из общепонятных - к примеру, злобный "хаЦкер" не сможет вызвать переполнение стека, как на фон-неймане, что можно использовать в тех же IBM PC для несанкционированного перехода на другой код (тело вируса, к примеру).

. Ускорение достигается за счёт помещения всей программы в сверх-оперативное ОЗУ. Плюс - скорость. Минус - размер выполняемой программы не более 128 Кбайт. Кажется, это по 128 Кбайт для каждого из 4-ёх ядер ("клеток").
. Второй резерв оперативности - все 128 Кбайт данных так же размещают в сверх-оперативном ОЗУ (только этот блок не пересекается с памятью программ). Память данных сделана с интерливом в 8 байт. Т.е. пока мы заканчиваем работы с предыдущими 8-ю байтами, мы уже можем начинать работать со следующими 8 байтами.
. Вся программная память разбита на кусочки - параграфы. Каждый параграф выполняется МЕЖДУ прерываниями. Т.е. если во время выполнения подряд xxx инструкций, составляющих параграф, пришло прерывание то оно будет ждать окончания выполнения этого блока инструкций. Исключение только для немаскируемого прерывания (это когда совсем ахтунг настал).

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

. Вывод: хорошая штука для встроенных устройств для управления в реальном времени. Сыровата, но лиха беда начало! Разработчикам огромное спасибо!
Well28.06.12 22:31

Moriturus, ну тут уже ответили за счет чего. Добавлю, согласен, микроконтроллер неплох, весьма и весьма. Только вот руки я бы оторвал тому, кто спеки писал полуграммотные.

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

P.S. Написание программ будет весьма специфичным для данного экземпляра.

P.S.P.S. что еще не понравилось, это вовлечение периферии в адресное пространство ОЗУ. Но это так, мелочи.

timosha28.06.12 22:47
Пока не появится работодатель, желающий заплатить за разработку изделия на основе этого процессора, спеки читать не буду. И вам не советую. Мало ли процессоров настрогали по миру.

"Нельзя объять необъятное" - К. Прутков.
Tumi28.06.12 23:23
> Moriturus

P.S. нашел в FAQ интересный вопрос:

Засчёт чего увеличивается быстродействие процессора?

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

Но понятнее как-то не стало.

. Я нашёл более-менее нормальное описание "мультиклеточности" - файлик MCP_concept_rus.doc. Судя по стилю - писал сам Стрельцов, или кто-то из других инженеров-разработчиков. Воды мало. :-)
. Там он поясняет как это делается. Попытаюсь на пальцах расписать:
Есть задача посчитать ((x+y) * (x-y)) - z (специально ставлю излишние скобки, чтоб подчеркнуть последовательность исполнения).
В обычном микропроцессоре это будет выполнено примерно так:
1) mov R1,x ; положить x в регистр общего назначения (РОН) R1
2) mov R2,y ; положить y в РОН R2
3) mov R3,z ; положить z в РОН R3
4) add R4,R2,R1 ; cложить y и x (лежащие в РОН R1 и R2), а результат запихать в РОН R4

5) sub R5, R1,R2 ;получить разность x-y (лежащих в РОН R1 и R2), а результат запихать в РОН R5

6) mul R6, R4,R5 ; получить произведение (x+y) * (x-y), где x+y лежит в РОН R4, а (x-y) лежит в R5

7) sub R1, R6, R3 ; получить разность ((x+y) * (x-y)) - z, где (x+y) * (x-y) лежит в R6, а z загружен в РОН R3, результат положить в R1

На выходе в регистре общего назначения R1 мы имеем результат.
. Что можно тут изменить, или распараллелить? Ну, ясно что операции 4) и 5) друг от друга не зависят и могут выполняться на разных процессорных ядрах.
. При написании программы программисту придётся подумать - "А сколько РОН надо задействовать?", "А в какие РОН лучше положить результаты?". Если программист опытный, то он быстро раскидает регистры. А если нет - он напишет программу, которую будет выполняться медленнее. Вот пример той же самой программы с неудачным выбором регистров:
1) mov R1,x ; положить x в регистр общего назначения (РОН) R1
2) mov R2,y ; положить y в РОН R2
3) mov R3,z ; положить z в РОН R3
4) add R1,R2,R1 ; cложить y и x (лежащие в РОН R1 и R2), а результат запихать в РОН R1, т.е. выкинуть оттуда x!
4a) mov R4, x ; опять подгрузить из памяти x, но уже в РОН R4

5) sub R5, R4,R2 ;получить разность x-y (лежащих в РОН R4 и R2), а результат запихать в РОН R5

6) mul R6, R1,R5 ; получить произведение (x+y) * (x-y), где x+y лежит в РОН R1, а (x-y) лежит в R5

7) sub R1, R6, R3 ; получить разность ((x+y) * (x-y)) - z, где (x+y) * (x-y) лежит в R6, а z загружен в РОН R3, результат положить в R1

Как видно - неверный выбор регистра-приёмника результата в пункте 4 (положили в R1) приводит к необходимости ещё одной команды - 4a)

. Ясно, что пример утрирован, но он показывает важность распределения регистров программистом на этапе разработки программы!

. Мультиклетка, если я правильно понял, сразу в инструкции содержит указание не на номер РОН, а на номер предыдущей команды, результат которой надо использовать! У меня это - номерки типа 1), 2), 3) и т.д.
. В ассемблере мультиклетки задача будет выглядеть так:
a) mov x ; положить x в некий РОН, выбор которого - на совести процессора! Пометить этот РОН как результат работы команды a)
b) mov y ; положить y в некий РОН. Пометить этот РОН как результат работы команды b)
c) mov z ; положить z в некий РОН. Пометить этот РОН как результат работы команды c)
d) add a), b) ; cложить y и x, при этом поискать их в РОН, которые выбирал сам микропроцессор, помеченные как результат работы команд a) и b). Полученный результат микропроцессор сам пихает в некий РОН, который помечает как результат работы команды d)
e) sub a),b) ;получить разность x-y, где загруженные x и y - это результаты работы команды a) и b) - при этом знать где именно их хранит микропроцессор - нам не надо. Это у ЦПУ голова болеть должна! Полученную разность сам микропроцессор кладёт в некий РОН, который помечает как результат работы команды e)
f) mul d),e) ; получить произведение (x+y) * (x-y), где x+y это результат команды d), а (x-y) это результат команды e). А результат кладётся самим ЦПУ в некий РОН, который помечается как "результат команды f"
g) sub f), c) ; получить разность ((x+y) * (x-y)) - z, где (x+y) * (x-y) это результат команды f), а z - результат команды с)
Результат команды g) уже и будет нужными нам данными.
. Посмотрим что изменилось. Попробуем переставить инструкции:
1. f) mul d),e)
2. a) mov x
3. e) sub a),b)
4. b) mov y
5. d) add a), b)
6. c) mov z
7. g) sub f),c)
Итак, в 1-ой строке нам предлагают взять результаты работы команды d) и e) и их перемножить. Но команды d) и e) ещё не выполнялись! Значит, эту инструкцию пока надо пропустить.
Идём дальше. В 2-ой строке предложили загрузить из памяти x и пометить РОН, в который загрузили, как результат команды a). Заметьте, что номер РОН нам не важен - это делает микропроцессор, он же и запоминает что там результат команды a)!
В 3-ей строке попросили отнять результат команды b) от результата команды a). Но команда b) ещё не выполнялась - пропускаем инструкцию.
В 4-ой строке грузим y, помечаем регистр в который его вгрузили как результат команды b).
И вот тут вспоминаем, что у нас была команда которая использовала a) и b)! Это строка 3, выполним её! Результат пометим как "результат команды e)".
Далее идём к строке 5-ой, там надо сложить a) и b). Такие команды у нас уже выполнялись! - сложим их и результат пометим как "результат команды d)".
И вот тут ЦПУ вспоминает, что в 1-ой строке ему предлагали перемножить результаты работы команд d) и e). Эти команды уже выполнились, значит можно исполнить и строку 1, а результат положить в некий РОН и пометить как "результат команды f)"
Идём к строке 6-ой, там надо загрузить z в некий РОН и пометить его как "результат команды c)".

Строка 7 просит нас вычесть из результата команды f) данные результата команды c). Что и делаем.

Что тут изменилось? РОНы, в которые надо загрузить данные, рассчитывает уже не человек-программист, а ЦПУ! Второе - программа самоорганизовалась. Даже если перемешать все команды, то выполнятся они всё равно в нужной последовательности. А те команды, которые друг от друга не зависят, САМИ исполнятся в любой последовательности и при наличие нескольких ядер - сами распараллелятся!

. Очень интересное решение с использованием ассоциативной памяти (тегов результатов команд) для РОН!
. Минус - чем больше у нас команд, тем больше надо РОН. Потому как неизвестно заранее где нам результат какой-то команды понадобится. Т.е. если бы моя программа была бы не в 7 строк, а в 1000000, то мне понадобился бы и 1000000 РОНов!
. Чтоб уйти от этого кошмара, разработчики ограничили любую такую программу 38 инструкциями - они назвали это "предложение", "параграф". За пределами этих 38 байт результат должен отчуждаться в конкретную ячейку памяти, откуда опять подгружаться при выполнении следующего параграфа.
. Очень интересное и оригинальное решение! Молодцы!
Well28.06.12 23:51

Tumi, при всей напряжности вашего примера, классические программисты при сложении трех чисел (и не только) проводили всегда следующую процедуру, с участием не только регистров, но и памяти:

Mov ax, x

Mov bx, y

Add ax, bx

Add ax, z

Но про ассоциативную память это интересно. В любом случае, это будет интересно почитать в полной спецификации. Тогда будет все понятно.

Tumi28.06.12 23:56
> Well

Tumi, при всей напряжности вашего примера, классические программисты при сложении трех чисел (и не только) проводили всегда следующую процедуру, с участием не только регистров, но и памяти:

. Спасибо за пример для x86, но я специально ушёл от работы с памятью, так как в статье на это делается упор. К тому же, это не принципиально для иллюстрации ошибок, вызванных неверным выбором регистра. Вы же сами эту ошибку ввели в свой код, аналогичную моей из 2-го примера. Вот она:

1) Mov ax, x ; РОН AX=x

2) Mov bx, y ; РОН BX=y

3) Add ax, bx ; AX=AX+BX=x+y, при этом результат кладут в AX и выпихивают оттуда ранее загруженный x!

4) Add ax, z ;
4a) Mov cx, x ; нам опять надо загрузить x, для получения разности x-y. Выполняется лишний цикл шины. И лишняя инструкция.


. Ну и процессоры есть не только x86. ;-)
весёлый29.06.12 09:47
специалисты компании начнут отгрузку процессоров и отладочных комплектов на предприятия страны,
У них завод что ли? какие мощности ГРУЗИТЬ будут вагонами?

Ну что за козлы МультиКлет надо было написать по русски а внизу более мелким шрифтом по английски.

Согласен, только писать надо "Многоклеточный"
English
Архив
Форум

 Наши публикациивсе статьи rss

» Памяти Фывы
» Судьба марксизма и капитализма в обозримом будущем
» Восьмое Марта!!!
» Почему "Вызываю Волгу" не работает?
» С днем защитника отечества!
» Идеология местного разлива
» С Новым Годом!
» Как (не) проспать очередную революцию.
» Об «агрегатных состояниях» информационного поля

 Новостивсе статьи rss

» Шольц сделал заявление о поставках ракет Taurus Украине
» Россия предлагает Африке услуги в области высоких технологий — МИД
» В РАН предложили не заканчивать исследования Луны после 2035 года
» Сенатор: Военная помощь США Киеву уже в Европе, мы ее отправили заранее
» Перед визитом Си Цзиньпина Европа наносит удар по поставкам медоборудования
» «Вояджер-1» возобновил передачу данных после пятимесячного молчания
» Японский аппарат SLIM "пережил" третью лунную ночь
» «В особо крупном размере»: заместителя Шойгу отправили в СИЗО на два месяца

 Репортаживсе статьи rss

» Центр Хруничева выходит на серийный выпуск ракет «Ангара» — интервью с гендиректором
» Стройка в мерзлоте и горном рельефе: уникальные инженерные решения БАМа
» Дмитрий Ливанов: «Около 94–95% наших выпускников остаются и работают в России»
» Все при деле
» Полная стенограмма интервью главы МИД России Сергея Лаврова российским радиостанциям 19 апреля 2024 года
» Андрей Николаев: Люди, прошедшие суровые испытания, стали наиболее востребованными, когда наступило мирное время
» Дроны набирают высоту
» Money: крупные зарубежные компании покидают Польшу и направляются в Индию

 Комментариивсе статьи rss

» Бездарность власти стала проклятием Британии
» Эрдоган ошибся в прогнозе действий России
» Breitbart: Предательство Джонсона ставит США на путь столкновения с ядерной державой
» Белая оборона: попытки Канады милитаризовать Арктику терпят крах
» Нет пороха в европейских пороховницах? Вы знаете, кто виноват
» Индия сыта мифами Запада про Россию и Украину, пора знать правду — The Print
» Величайший враг Америки — не Китай и не Россия, а долг в 35 триллионов долларов
» Россия – ЕАЭС – Африка: факторы ускоренного сближения

 Аналитикавсе статьи rss

» Защита обернулась поражением
» Тупики безумия
» США хотят контролировать логистику в Центральной Азии
» Игра в правду
» Гудбай, Америка!
» Василий Кашин: «На Украине война не кончится. Дальше – долгое вооруженное противостояние в Европе»
» Почему российские нефтяники бурят больше, но добывают сколько и раньше
» Борьба за воду в Центральной Азии не должна приобретать нецивилизованные формы
 
мобильная версия Сайт основан Натальей Лаваль в 2006 году © 2006-2024 Inca Group "War and Peace"