1

Тема: Научно-практическое применение АГАТика

Во, что сегодня всплыло...
Написал Валерию в личку, вот его ответ:

"Вряд ли кому то это будет интересно. Это был тестовый прототип для проверки возможностей создания вычислителя, ускоряющего моделирование СВЧ полей в волноводах и проч. узлах. Сам Агат использовался в виду того что не было других компов (а Лианозовский завод, где они производились был партнёром нашего "ящика" - мне передали домой сам комп и документацию о слотах расширения на "синьке"). Короче вычислитель представлял из себя буфер статической памяти на 1кБ и набор сумматоров/вычитателей, сдвиговых регистров и счетчиков. Он сидел на шине в сло
е и как бы расширял набор команд проца 6502. В частности основная операция была типа: Ram(i)=(Ram(i)+GlobalRam(k+i))/2, i=0...N. С разными вариациями. Инструкция была типа SIMD (Single instruction, multiple data), хотя тогда такого термина не было, мы использовали понятие векторный процессор. Плата захватывала шину в режиме DMA, выставляла на неё заранее загруженный адрес, потом с максимальной частотой шины (по моему клок 4мгц, а цикл 2мгц, но могу перепутать - это было 35 лет назад) выполняла эту операцию длиной до 1к байт. Итоговая производительность на задаче моделирования полей бы
ла даже выше чем у мейнфрейма EC-1045.
Но это были неприятные 90е, где всё катилось под откос. Создание реального мощного устройства на этом принципе было невозможным (ни денег, ни деталей). Я ушёл в СП, где разрабатывал фреймграбберы для ГДР и Венгрии.
На самом деле я на Агате мало работал, около года. Практически не играл. Помню только свой девайс ))."

"Во, даже фотку нашел (страшную). Плата была не PCB, а монтажная. Припаял разъем (дали на лианозовском заводе), а все остальное проводами распаивал (на обратной стороне)
Изображение: https://yadi.sk/i/Q6OogodbPxk-DA"

Обещал попозже присоединиться к нам на форум.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

2

Re: Научно-практическое применение АГАТика

Ну почему не будет интересно. Вот у меня сразу вопросы:
1) там была плавучка? В каком формате (мантисса, экспонента, сколько бит)?
2) эта плата умела сама выбирать инструкции? У нее счетчик команд был?
3) а ошибки она умела обрабатывать? Типа, если NaN получился?
4) плата использовала микрокод или жесткую логику для выполнения инструкций?
5) по фотке не опознал, что там вообще за микросхемы использовались?
6) на агатовской шине цикл вряд ли был 2 МГц - память половину времени принудительно переключается на дисплейный контроллер, так что больше миллиона обращений в секунду там не получится.

3

Re: Научно-практическое применение АГАТика

Жутко интересно, жалко что фоток хороших нет.

4 Отредактировано LeoN (28-09-2020 23:43)

Re: Научно-практическое применение АГАТика

Предполагаю:
1) Скорее всего фиксед поинт, плавучка аппаратно очень сложна.
2) В личке: "Насчет расширения набора команд - это в переносном смысле. В сам 6502 конечно ничего не добавлено, добавлено в сопроцессор, который берет шину на себя и делает целый блок по несколько операций за один такт".
3) Дык, это же табличное сложение с усреднением, разве НеЧисло может получиться? А вот насыщение возможно.
5) Вроде корпуса похожи на 533 и 133 серии. Он же указал: "буфер статической памяти на 1кБ и набор сумматоров/вычитателей, сдвиговых регистров и счетчиков". Счётчики, наверное, для автоинкремента индекса/адреса.
6) Ну это разумеется, он просто подзабыл.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

5

Re: Научно-практическое применение АГАТика

Всем, Добрый день. Зарегился на форуме (спасибо LeoN). Попробую ответить на вопросы (но 100% точность не обещаю - давно дело было, ничего не сохранилось)...

avivanov76 пишет:

Ну почему не будет интересно. Вот у меня сразу вопросы:
1) там была плавучка? В каком формате (мантисса, экспонента, сколько бит)?
2) эта плата умела сама выбирать инструкции? У нее счетчик команд был?
3) а ошибки она умела обрабатывать? Типа, если NaN получился?
4) плата использовала микрокод или жесткую логику для выполнения инструкций?
5) по фотке не опознал, что там вообще за микросхемы использовались?
6) на агатовской шине цикл вряд ли был 2 МГц - память половину времени принудительно переключается на дисплейный контроллер, так что больше миллиона обращений в секунду там не получится.

1.плавающей точки не было. Она в подобном моделировании не особо нужна, а ресурсов берет (точнее брала) намного больше - их лучше на увеличение кол-ва блоков направить. В данной тестовой плате я использовал всего 8бит - как ни странно оказалось достаточно правдоподобно на выходе. В "боевом" варианте планировалось использовать 16 бит (знак и 15бит амплитуда)
2.нет, я вначале неточно выразился, это конечно не сопроцессор, она не работала с инструкциями. В нее 6502 загружал адреса, длину цепочки, тип операции и запускал исполнение. Плата захватывала шину и выполняла операции, сохраняя результат в локальной памяти (SRAM 1kB)  по типу чтение(локальной и глобальной памяти)-модификация-запись (в локалку).
3.едиственный возможный тип ошибки - это переполнение. Я его просто не допускал - когда максимальное значение поля в любой точке превышало 0xBF (или 0x7F), то производилось масштабирование всей памяти. Но это происходило нечасто, так как я сам задавал возбуждающие параметры (накачка волны) и контролировал их. Для 16бит это было бы совсем неактуально, так как можно работать с достаточной точностью не  приближаясь к зоне переполнения.
4.жесткая логика. По моему было около 16 видов операций (загрузка, выгрузка, обнуление локалки и главный блок типа Ram(i)=(Ram(i)+/-GlobalRam(k+i)):1(2,4).
5.фотка сделана в прошлом веке на Панасоник с матрицей 640х480 - лучше ничего не было (. Итак, детали... локалка: пара 541РУ2 (на фотке верхний ряд, 5-6й чип слева), ALU: пара 531ИП3 (второй ряд, 2а чипа слева), большой чип в верхнем ряду 580ви53 -3 канальный счетчик событий (довольно бестолковый чип для моей задачи - просто был в наличие). Остальное - регистры, мультиплексоры, мелкая логика 531/533 серии.
6. значит полный цикл 1мкс

Как я сейчас вижу - данное решение довольно похоже на принцип работы видеокарт. Моя задача (как и формирование видеокадра) тоже хорошо параллелиться, поэтому сотни/тысячи простых ALU с небольшой локальной памятью и связью между собой - пропорционально количеству ускоряют моделирование. При том что даже 1 юнит работал с весьма достойной скоростью. Я выводил на экран цветную картинку полей после каждого цикла (что занимало время чуть ли не большее самого обсчета) - выглядело впечатляюще - красивый техномультик ). По жизни это было не особо нужно - главное получить на выходе КСВ и подобные параметры узлов, но и картинка полей иногда была полезной.
Но все это затухло (как и многое другое в то время). Деталей было практически не достать.  В Агате у меня стояла всего одна карта расширения памяти (на Ру3 кажется). Конечное устройство планировалось автономным (не внутри компа), лишь с внешней связью с компьютером для загрузки задачи и контролем исполнения. Нужно много памяти для такого проекта - заказывал РУ7, но в наличии было лишь мизерное количество 565Ру5, причем треть была битой - требовалось тестирование.
Мне бы в то время FPGA и прочую современную базу...

6

Re: Научно-практическое применение АГАТика

> Мне бы в то время FPGA и прочую современную базу...

Мне кажется, мы тут все и собрались поэтому: каждому чего-то в те годы не хватило,
теперь навёрстываем :)
Мне нехватало надёжности дисководов-140ок, аппаратного отладчика (watchpointы ставить) и иногда, чуть-чуть, производительности ЦП.

7

Re: Научно-практическое применение АГАТика

Между прочим, TI 74181, которая у нас известна как ИП3, была разработана и выпущена еще в 1970 году. Так что создавать на ней что-то в 90-е это уже был ретрокомпьютинг :)

8 Отредактировано garnizon (09-10-2020 21:47)

Re: Научно-практическое применение АГАТика

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

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=773&download=1

Post's attachments

Attachment icon DSC0005.JPG 106.04 kb, 267 downloads since 2020-10-09