Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт авг 16, 2018 17:31

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 14:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
а какие 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 и т.п.)

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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 16:45 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Это пока проект.
Увлекательно ... Большая "куча" возможностей. Какая-нибудь оценка прироста производительности вследствие такой оптимизации как NEXT и вызов за 1 такт производилась?
0. - IF Z
1. - IF NZ
2. - IF больше 0
3. - IF меньше 0
это, я понимаю, тоже несколько быстрее, чем просто IF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 17:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
Какая-нибудь оценка прироста производительности вследствие такой оптимизации как 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 с прямым указанием условия для перехода

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 05, 2009 17:45 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
вот такой текст:
WingLion писал(а):
В форте каждое высокоуровневое слово требует исполнения NEXT, если и само NEXT будет высокоуровневым, то задержка окажется существенной.
за "какую-нибудь оценку" сойдет?

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

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

ну да


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB