Однородные вычислительные системы

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

alone
Writer
Posts: 19
Joined: 06 Sep 2007 07:05
Location: 212.26.238.228

Однородные вычислительные системы

Post by alone »

Технология дошла до последнего витка - 14 нм. Дальше пути "влоб" нет. Предлагаю сосредоточиться на давно забытом направлении - однородных вычислительных системах, которые могут дать и больше скорость, и меньше потребление.

По сути надо выделять задачам не время процессора, а площадь. Сейчас новые ПЛИС могут дать до 2 млн ЛЕ и уже прошиваются по частям (у Altera). Программы надо писать на верилоге.

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

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

Кто-то должен этим заняться. Как я понял, большим фирмам пофиг. С чего начать? Для начала разбираться, как работать с этой перепрошивкой по частям.

Жаль, что из меня плохой железячник. Только идей лопата^Wпалата.
vinxru
Retired
Posts: 587
Joined: 27 Mar 2013 04:55
Location: 62.192.229.16

Post by vinxru »

C# или Java должны проще переводится на ПЛИС, так как код там гораздо проще. То есть нет неожиданных зависимостей, адресной арифметики и т.п.

И насколько я знаю, ПЛИС давно уже ставят в суперкомпьютеры. Как раз, что бы быстрее считать простые вещи.
alone
Writer
Posts: 19
Joined: 06 Sep 2007 07:05
Location: 212.26.238.228

Post by alone »

Конверторы даже уже написаны: http://en.wikipedia.org/wiki/C_to_HDL

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

На самом деле: зачем вообще поток команд? Вся схема решения задачи вместе со статическими переменными и массивами (за исключением динамических) должна лежать в самом процессоре. Обращения к внешней памяти и системные вызовы должны проходить через арбитр.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

у соседей забанили, да? :3
alone
Writer
Posts: 19
Joined: 06 Sep 2007 07:05
Location: 212.26.238.228

Post by alone »

У соседей другие темы и другие люди.

http://en.wikipedia.org/wiki/High-perfo ... _computing - там один сайт сдох, другой пустой. Интересно узнать наработки...
alone
Writer
Posts: 19
Joined: 06 Sep 2007 07:05
Location: 212.26.238.228

Post by alone »

Самая дешёвая плисина с частичной реконфигурацией стоит $37.76 - 5CEBA2F23C8N (IC CYCLONE V E FPGA 484FBGA). Реконфигурируемые области можно задавать: http://www.altera.com/devices/fpga/stra ... onfig.html
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

реконфигурируемые области это типа частично подливать прошивки?
у xilinx это тоже появилось недавно
это не интересно т.к. требует конкретного чипа и конкретной версии софта от производителя чипов

на FPGA ведь есть распределённое ОЗУ (причём двухпортовое), есть мультиплексоры-демультиплексоры - поверх этого хозяйства можно построить свою высокоуровневую конфигурируемость, независящую от прозводителя чипов...

P.S. См. Open Architecture FPGA
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

У нас тут кто-то даже делал имитацию сего на дискретах. Помните синхрогенератор для компьютера с дешифратором на основе ОЗУ? Процессор сам мог программировать его. С другой стороны, обычное SRAM-based FPGA + навесной проц (или внутренний, как у некоторых моделей Cyclone V) = дают реконфигурируемую систему. У нас такая в дендекартридже.
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Post by b2m »

HardWareMan wrote:обычное SRAM-based FPGA + навесной проц
Речь о том, чтобы отказаться от процессора, а программы реализовывать в виде частичной конфигурации FPGA. Нужен стандарт на конфигурирование произвольных частей FPGA, иначе опять будет "кто в лес, кто по дрова".
Shaos wrote:на FPGA ведь есть распределённое ОЗУ
В том-то и проблема, что ОЗУ для конфигурирования - это такое-же узкое место, как и процессор. Вся мощь параллельной работы убьётся таким вот узким местом.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

b2m wrote:
Shaos wrote:на FPGA ведь есть распределённое ОЗУ
В том-то и проблема, что ОЗУ для конфигурирования - это такое-же узкое место, как и процессор. Вся мощь параллельной работы убьётся таким вот узким местом.
ну оно ведь распределённое :)

т.е. это много маленьких озушек раскиданных по камню...
Я тут за главного - если что шлите мыло на me собака shaos точка net
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Post by b2m »

Тут скорее подошёл бы некий симбиоз ОЗУ и процессора. Т.е. чтобы мы для каждой ячейки могли бы задавать некую функцию, зависящую от байтов/слов по соседству. Сколько ячеек, столько и простейших процессоров.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

b2m wrote:
HardWareMan wrote:обычное SRAM-based FPGA + навесной проц
Речь о том, чтобы отказаться от процессора, а программы реализовывать в виде частичной конфигурации FPGA. Нужен стандарт на конфигурирование произвольных частей FPGA, иначе опять будет "кто в лес, кто по дрова".
Навесной процессор имелся в виду именно для конфигурирования FPGA, а не для исполнения задач. Там в теории можно навесить CPLD с единственной функцией: брать конфу из ПЗУ (если старт холодный) или ОЗУ (если старт теплый или реконфиг). Само ОЗУ заполняет задача, которой требуется изменение конфигурации. Разве это сложно реализовать?
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Post by b2m »

Несложно, но хочется чтобы FPGA могла сама себя частично переконфигурировать, т.е. загрузить программу. Можно, конечно, сделать пару десятков FPGA, а одной из них дать возможность конфигурировать другие, так сказать отвести ей роль ядра ОС. Но всё равно, заливать конфу надо будет полностью, одна программа - одна микросхема.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

а что же топикстартер? а то получается - вбросил и затаился.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
b2m wrote:
HardWareMan wrote:обычное SRAM-based FPGA + навесной проц
Речь о том, чтобы отказаться от процессора, а программы реализовывать в виде частичной конфигурации FPGA. Нужен стандарт на конфигурирование произвольных частей FPGA, иначе опять будет "кто в лес, кто по дрова".
Навесной процессор имелся в виду именно для конфигурирования FPGA, а не для исполнения задач. Там в теории можно навесить CPLD с единственной функцией: брать конфу из ПЗУ (если старт холодный) или ОЗУ (если старт теплый или реконфиг). Само ОЗУ заполняет задача, которой требуется изменение конфигурации. Разве это сложно реализовать?
а зачем заливать через процессор, если FPGA из внешней памяти без всяких процов умеет заливаться? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net