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/ |