Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 14:41

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 14:37 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
Проверим в нем несколько программ, мы выяснили, что обычные команды (т.е. не переходы и не литералы) составляют 25-30% от общего количества команд, компилируемых в программу.

очень хотелось бы увидеть результирующую статистику (в смысле, по примитивам)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
(т.е. не переходы и не литералы)

Непонятно почему переходы и литералы тут объединили.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 15:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
очень хотелось бы увидеть результирующую статистику (в смысле, по примитивам)

:< "Тиграаааааааааа!".....


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 15:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Непонятно почему переходы и литералы тут объединили.

Потому что переход тоже требует литерала - загрузки адреса, на который переходить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 15:39 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
Потому что переход тоже требует литерала - загрузки адреса, на который переходить.

Понятно. Только переходы не обязательно требуют полноразрядного литерала(если они, например, относительные).

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 15:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Понятно. Только переходы не обязательно требуют полноразрядного литерала(если они, например, относительные).

Но в приведенной системе команд нет отдельной команды для загрузки неполного литерала. Кстати, результаты профилирования - повод ее ввести. Тогда будут команды "положить на стек данные" и "положить на стек число сокращенной разрядности, достаточное для представления адреса".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 09, 2010 15:53 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
Тогда будут команды "положить на стек данные" и "положить на стек число сокращенной разрядности, достаточное для представления адреса".

Я к тому же. После введения доп. команды быстродействие кода увеличится при сокращении разрядности шины по сравнению с вариантом без
доп. команд.

_________________
С уважением, chess


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
При этом число тактов растет, потому что загнать 32-битный литерал по 16-разрядной шине можно за 2 такта,

За то, по 16(32)-хбитной шине можно хапнуть сразу 4(8 ) команд и исполнять их на повышенной тактовой частоте по сравнению с частотой выборки из памяти, не забывая при этом, что литералы можно читать наперед, а тогда скорость скорее повысится, чем понизится. (Задача экономии памяти-то как бы и не стоит.)

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


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Но в приведенной системе команд нет отдельной команды для загрузки неполного литерала. Кстати, результаты профилирования - повод ее ввести. Тогда будут команды "положить на стек данные" и "положить на стек число сокращенной разрядности, достаточное для представления адреса".


Кстати, интересная мысль, ввести инструкцию BLOAD подгрузки короткого литерала из потока команд, т.е. из потока 4-битных полубайтов выдирать, например по два элемента (ровно байт), следующие сразу за этой командой, и использовать его в первой встреченной команде LIT, CALL или ?BRANCH. Тогда, загрузка короткого литерала будет выглядеть так:

BLOAD immediate-byte LIT - короткий литерал загрузка байта со знаком, т.е. byte=-1 превратится в cell=-1

BLOAD immediate-byte CALL - короткий CALL \ переход по addr=byte*16 для реализации кучи маленьких подпрограмм

BLOAD immediate-byte ?BRANCH - короткий относительный переход

Но, это еще вопрос, надо ли так делать?.. И даст ли оно реальный выигрыш?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 00:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Но, это еще вопрос, надо ли так делать?.. И даст ли оно реальный выигрыш?

Я тут на днях именно так и сделал. То есть JMP по сути есть EXECUTE, и все команды перехода (jmp/if/call) берут адрес со стека. Хотя можно адрес и после команды тянуть, тоже вариант.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 10:34 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
mOleg писал(а): очень хотелось бы увидеть результирующую статистику (в смысле, по примитивам)
"Тиграаааааааааа!".....

вот статистика по частоте использования слов в ядре форка, т.е. речь не о примитивах, а вообще о любом слове, которое искалось и компилировалось во время сборки ядра:

117 DUP
073 0
072 DROP
067 SWAP
067 A@
066 @
065 +
064 OVER
055 A!
054 -
054 L>
052 >L
044 THROW
038 NOOP
035 !
035 DDROP
034 HERE
034 L@
034 COMPILE,
032 COUNT
032 =
024 FALSE
023 TYPE
020 R>
020 DDUP
019 TRUE
019 NIP
019 TUCK
019 >STDERR
018 GET-CURRENT
017 LDROP
017 CATCH
017 +!
016 >R

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 11:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
вот статистика по частоте использования слов в ядре форка, т.е. речь не о примитивах, а вообще о любом слове, которое искалось и компилировалось во время сборки ядра:

Где форк и где ПЛИС?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 11:43 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
Где форк и где ПЛИС?

всеравно картина по частоте использования есть.
видно, что чаще всего литералы встречаются, потом DUP DROP SWAP @ + OVER ! и удивительно часто NOOP

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 12:45 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
rupor "Тиграаааааааааа!".....


хм, а он сюда заглядывает? :shuffle;

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 13:23 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
Хищник писал(а):
Где форк и где ПЛИС?

всеравно картина по частоте использования есть.
видно, что чаще всего литералы встречаются

это плохо для призводительности, если не сделать какую-либо более хитрую оптимизацию


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

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


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

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


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

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