Forth
http://fforum.winglion.ru/

Вздрогнули: Описание soft-процессоров серии EQUINOX
http://fforum.winglion.ru/viewtopic.php?f=56&t=2182
Страница 6 из 6

Автор:  WingLion [ Сб дек 05, 2009 14:13 ]
Заголовок сообщения: 

вопрос писал(а):
а какие 16 условий Question


три бита модификатора для IF (все для TOP) - коды (ориентировочно):
0. - IF Z
1. - IF NZ
2. - IF больше 0
3. - IF меньше 0
4. - IF не больше 0 (меньше или равно)
5. - IF не меньше 0 (больше или равно)
6. - IF старший бит TOP = 1
7. - IF младший бит TOP = 1

Четвертый бит модификатора IF - использовать следующий ниббл из потока команд, как смещение для условного перехода (от -7 до +7).
код смещения 0 - означает условное исполнение следующего ниббла (получатся условный RET, условный NEXT и т.п.)

п.с. Это пока проект. Возможно все будет по другому.

Автор:  вопрос [ Сб дек 05, 2009 16:45 ]
Заголовок сообщения: 

Цитата:
Это пока проект.
Увлекательно ... Большая "куча" возможностей. Какая-нибудь оценка прироста производительности вследствие такой оптимизации как NEXT и вызов за 1 такт производилась?
0. - IF Z
1. - IF NZ
2. - IF больше 0
3. - IF меньше 0
это, я понимаю, тоже несколько быстрее, чем просто IF

Автор:  WingLion [ Сб дек 05, 2009 17:27 ]
Заголовок сообщения: 

вопрос писал(а):
Какая-нибудь оценка прироста производительности вследствие такой оптимизации как NEXT и вызов за 1 такт производилась?


вот такой текст:

WingLion писал(а):
В форте каждое высокоуровневое слово требует исполнения NEXT, если и само NEXT будет высокоуровневым, то задержка окажется существенной.

: NEXT R> DUP 1+ >R EXECUTE ; - грубо - 5 тактов, а в железе NEXT исполняется за 2 такта,
Если в каждом высокоуровневом слове в среднем 5-7 слов, то получается 15-25 тактов выигрыша на каждое слово. Мелочь, конечно, но душу греет. Wink
Кроме того, железный NEXT позволяет делать очень коротенькие слова вплоть до 1 CELL на слово, т.е. в одном слове три команды + NEXT, а в потоке адресной интерпретации только ссылка на адрес, где это слово с командами лежит. Т.е. хороший выигрыш не только по тактам, но и по занимаемому объему, что довольно важно для ограниченной внутренней памяти ПЛИС.


за "какую-нибудь оценку" сойдет?

вопрос писал(а):
это, я понимаю, тоже несколько быстрее, чем просто IF


голый IF выполняется быстрее чем префиксный IF. Вот только для "голого" вершину стека придется специально "готовить" (варить, солить или жарить), а это уже будет медленнее, чем IF с прямым указанием условия для перехода

Автор:  вопрос [ Сб дек 05, 2009 17:45 ]
Заголовок сообщения: 

Цитата:
вот такой текст:
WingLion писал(а):
В форте каждое высокоуровневое слово требует исполнения NEXT, если и само NEXT будет высокоуровневым, то задержка окажется существенной.
за "какую-нибудь оценку" сойдет?

Угу, как это я пропустил ...

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

ну да

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