Forth
http://fforum.winglion.ru/

Архитектура стековой ЭВМ
http://fforum.winglion.ru/viewtopic.php?f=56&t=3022
Страница 1 из 2

Автор:  victosha [ Пт ноя 21, 2014 18:37 ]
Заголовок сообщения:  Архитектура стековой ЭВМ

Для энтузиастов предлагаю для рассмотрения, критики и замечаний патент на архитектуру стековой ЭВМ.
Результат моей многолетней работы. Особенностью патента является использование в системе команд и аппаратуре стековой ЭВМ префиксных команд операнда и константы. Результат получился впечатляющий. Ссылку привожу
https://cloud.mail.ru/public/4c2b0a2d18 ... %D0%9C.pdf
Заявка в ФИПС уже проплачена, но решил с подачей немного погодить, решил посоветоваться со специалистами.
Есть также описание системы команд предлагаемой стековой ЭВМ на 17 листах убористого текста, и описание ассемблера для нее. часть 1. 16 листов. Могу их выложить тоже, если кому интересно.
Патент вещь серьезная, поэтому прошу отнестись к теме также серьезно.

Автор:  VoidVolker [ Пт ноя 21, 2014 22:28 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

А для чего она?

Автор:  gudleifr [ Пт ноя 21, 2014 23:26 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

VoidVolker писал(а):
А для чего она?
Для патента.

Автор:  Hishnik [ Пт ноя 21, 2014 23:28 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

По сути, все сводится вот к этому
Цитата:
дешифратор команд дополнительно де-кодирует и исполняет две байтовые префиксные команды - операнда и константы


Существует два дидактических примера патентов - патент на швейную машинку Зингер (отверстие находится на острие иглы - обойти патент технически невозможно), и патент Эдисона (угольная нить накала лампы, медные проводники, обходится заменой материалов, что и было сделано мгновенно по историческим меркам). Кроме процитированного, остальное все известно, и именно так процессоры и делаются. Вопрос в том, насколько это критично для практических применений, и почему выбрана именно такая форма защиты авторских прав. Описание программы (RTL-уровень описания процессора с точки зрения ФИПС является программой) депонируется в ФИПС после формальной проверки комплектности документов, экспертиза по существу не проводится.

Отсюда второй вопрос - куда это все? Если ради "импортозамещения", то лучше сразу забыть. Не настолько у нас микроэлектронная отрасль отсталая, чтобы совсем не было специалистов по архитектуре.

И уже отсюда - третий вопрос. Это проверялось на RTL-уровне? Существует ли потактовая модель, оценки ресурсов и быстродействия? Многие "изящные" решения на деле оказываются неэффективными по соображениям схемотехники. Здесь я вижу по крайней мере усложнение управляющего автомата, поскольку префиксы в системе команд даром не даются, и той же регулярности схемы, которая бывает у простейшего RISC-процессора, уже не будет.

Автор:  gudleifr [ Сб ноя 22, 2014 13:13 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

С точки зрения фортера...
Хищник писал(а):
По сути, все сводится вот к этому
Цитата:
дешифратор команд дополнительно де-кодирует и исполняет две байтовые префиксные команды - операнда и константы

Да, остальные решения кажутся вынужденными. Меня еще, правда, поразило количество мультиплексоров, но об этом позже...

Глядя на "команду данных", сразу вспоминаешь шитый код машины Дейкстры (1962), где ячейка кода хранила либо константу, либо команду. В "реальной" FORTH-системе такие вещи делаются при помощи, как я их называю, оборотов: когда первая команда последовательности читает несколько последующих за ним в обход дешифратора команд.
Но, ведь, такие обороты в "настоящем" FORTH это не только LITERAL - всякие BRANCH, например... Более того, оптимизируя шитый код под требуемую задачу, их можно напридумывать еще больше, например, пары "условие-действие" для реализации машины Дейкстры из "Дисциплины программирования" (ср. язык ОККАМ).
Предусмотреть префиксы для всех случаев "самого правильного языка"? Или на всякий универсальный случай?
Вот тут и вспомнишь про мультиплексоры, точнее про славные премена Intel 4004 и 8008, когда львиная доля полей команды занималась мультиплексированием остальных полей.

Автор:  gudleifr [ Сб ноя 22, 2014 13:42 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

P.S. А еще команда DAT была в "машине" CORE WARS...

Автор:  mOleg [ Сб ноя 22, 2014 15:41 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

Патенты пишутся достаточно специфическим языком.
Есть ли обсуждаемое содержимое в более удобоваримом виде?
Читали ли вы книгу Stack Computers: the new wave?
в частности WISC

Автор:  KPG [ Сб ноя 22, 2014 17:55 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

Ссылка с http://tunes.org/~nef//logs/forth
Charles Eric LaForest
A thesis presented to the Independent Studies Program of the University of Waterloo in fulfilment of the thesis requirements for the degree Bachelor of Independent Studies (BIS)
Independent Studies University of Waterloo, Canada April 2007
[url=http://www.eecg.toronto.edu/~laforest/Second-Generation_Stack_Computer_Architecture.pdf]Second-Generation Stack Computer
Architecture[/url]

Автор:  victosha [ Вс ноя 23, 2014 13:29 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

Откровенно говоря, я не ожидал, что найдутся увлеченные энтузиазмом люди.
Поэтому попытаюсь ответить на вопросы.
1. Для чего оно нужно.
Ответ уже прозвучал - для патента да и сама идея красивая. Я таких реализаций не видел, а она снимает ограничения на разрядность полей байтовой команды, а к стековым командам добавляет возможность прямой обработки данных в памяти минуя выгрузку результата операции из стека в память.
2. Мультиплексоры.
За основу патента взят прототип патент US 2007/0061551. Там стоят мультиплексоры и остальные блоки ЭВМ. По правилам написания патентов в прототипе можно чего-то убавить бесполезное или добавить полезное. Приведенные примеры в заявке показывают полезность технических предложений.
3. Книжки я читал разные. В том числе "Second-Generation Stack Computer". Библиография к патенту подтверждает это.
Кстати патент US 4980821 написан J.Koopman. В вашей книжке дб ссылка на него.
4. Есть еще более неудобноваримый вид - описание процессора М16, реализованного на основе патента, но там более 16 страниц беглого текста. Ссылка на него приведена ниже
https://cloud.mail.ru/public/24c7d12f6f ... %D0%A5.pdf

Автор:  Hishnik [ Вс ноя 23, 2014 18:36 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

victosha писал(а):
Откровенно говоря, я не ожидал, что найдутся увлеченные энтузиазмом люди.

Ну а чем плох энтузиазм? Не все же мне заниматься проектированием процессоров строго на профессиональной основе, можно иногда поддаться энтузиазму и проконсультировать людей на форуме на общественных началах...
victosha писал(а):
Я таких реализаций не видел, а она снимает ограничения на разрядность полей байтовой команды, а к стековым командам добавляет возможность прямой обработки данных в памяти минуя выгрузку результата операции из стека в память.

Я потому и спрашивал про RTL-представление. А оно может оказаться:
1. Терминологической разновидностью существующих решений - у многих процессоров имеются префиксные команды. По реализации это может быть просто двухуровневый конечный автомат.
2. Неэффективным по схемотехнике. Что значит "прямой обработки данных в памяти"? Где память и как она технически реализована? Для нее можно эффективно реализовать интерфейс с соответствующей пропускной способностью. Offchip-трафик для стековых процессоров представляет собой одну из ключевых проблем. Он и для регистровых не сахар, но там можно дольше пользоваться регистрами, а в стековом почти каждая команда что-то делает именно с вершиной стека.

А вообще, желание непременно быть автором патента плохо соотносится с получением практических результатов впоследствии. Обычно сначала результаты, а потом оказывается, что есть что патентовать...

Автор:  KPG [ Вс ноя 23, 2014 23:04 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

Хищник писал(а):
Offchip-трафик для стековых процессоров представляет собой одну из ключевых проблем. ..

А если дополнить механизмами локального кеширования текущих результатов вычислительного стекового контекста?
и насколько это ресурсоёмко в реализации.

Автор:  Hishnik [ Пн ноя 24, 2014 01:31 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

KPG писал(а):
А если дополнить механизмами локального кеширования текущих результатов вычислительного стекового контекста?

И тогда это называется "накристальный стек".
KPG писал(а):
и насколько это ресурсоёмко в реализации.

Давно не ресурсоемко. Уже в TF-16 можно было такое пробовать (а там всего два числа на кристалле). У меня вся линейка процессоров с накристальным стеком.

Автор:  VoidVolker [ Вт ноя 25, 2014 07:19 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

victosha писал(а):
Ответ уже прозвучал - для патента да и сама идея красивая. Я таких реализаций не видел, а она снимает ограничения на разрядность полей байтовой команды, а к стековым командам добавляет возможность прямой обработки данных в памяти минуя выгрузку результата операции из стека в память.

Т.е., вот вся эта разработка лишь патента ради? И что потом? Патент в рамочку, в шкафчик на полочку и любоваться? Имелось ввиду практическое применение данной разработки.

Автор:  diver [ Вт ноя 25, 2014 11:33 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

VoidVolker писал(а):
Т.е., вот вся эта разработка лишь патента ради? И что потом? Патент в рамочку, в шкафчик на полочку и любоваться? Имелось ввиду практическое применение данной разработки.

рассуждая цинично - да, а что такого-то? :shuffle; каждый развлекается как может

Автор:  victosha [ Вт ноя 25, 2014 16:18 ]
Заголовок сообщения:  Re: Архитектура стековой ЭВМ

Я, как посторонний человек на форуме, наблюдаю за дискуссом.
Никто не заметил, что предложенное техническое решение относится к архитектуре ЭВМ, а именно к системе команд. Использование префиксных команд константы и операнда в корне меняют систему байт-кода стековой ЭВМ, например такой, что принята в виртуальной машине JAVA. Про ФОРТ-процессоры с их 16-разрядной системой команд я вообще молчу.
У меня есть несколько примеров программ, реализованных по предлагаемому техническому решению. Все они обеспечивают сокращение числа команд и объема кода.
Пример 1. Вычисление квадратного корня для аргумента, лежащего в диапазоне 0...1. Вычисление производится по формуле Герона с двумя итерациями
procedure ISQR
in-var X;
out-var Y;
exitp =0? // выход если X = 0
null // счетчик нормировки
do // цикл нормировки
X / # C000h and // выделение разрядов 15,14
exit =0? // в разрядах 15,14 единица
X 2 <<0 1+ // счет сдвигов
next
endo
1С\ X / C>> // Y0=(X+1)/2
X 16. u<<% + 0>> // Y1=(Y0+X/Y0)/2
X 16. u<<% + 0>> // Y2=(Y1+X/Y1)/2
do // цикл нормировки
exit 1-=0?
Y 0>>
next
endo drop C+ // округление
endp ret
0025 01 ret
Программа занимает всего 37 байт
Пример 2.
procedure min // (S1 S0 -- S0), S0=min(S0,S1)
if S1 / >=? then swap endi
endp drop\ret
0004 00 drop\ret
Программа занимает всего 4 байта
Вопрос? Можно ли на типовом стековом процессоре получить такие результаты.
Ответ. нет.

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/