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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 107 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 23, 2009 04:06 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Opcode = Operation code = код операции = код команды.
Поэтому вряд ли:
mOleg писал(а):
Каждое новое определение (последовательность опкодов, составляющих аналог подпрограммы в других языках программирования) так же является опкодом.
Разве что в специальных архитектурах, где есть куча свободных команд (размером CELL) и они постепенно заполняются. Такого проца на Форуме пока не видел. У Понятова было 256 байтовых команд, что мало на программу, хотя можно и попробовать... ;)
mOleg писал(а):
Опкод занимает 1 cell адресного пространства
Кстати, есть процы (SeaForth, например), где в одной CELL (адресуемом элементе памяти) расположено до 4х опкодов ;)

_________________
With best wishes, in4.


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

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

тем не менее это реальность косвенного шитого кода, который является классическим для Форта.
Я понимаю, что это особенность реализации Виртуальной Машины, но это не значит, что процессор такой сделать нельзя, и одновременно не значит что такой процессор надо делать :)
Речь именно не о байт-коде, а о шитом коде.

in4 писал(а):
mOleg писал(а):Опкод занимает 1 cell адресного пространства
Кстати, есть процы (SeaForth, например), где в одной CELL (адресуемом элементе памяти) расположено до 4х опкодов

да хоть 20 ;) это уже особенности реализации конкретных процессоров.

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


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

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

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


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
В классическом случае любая команда выполняется за два такта (1 цикл = 2 такта ),


А что делать с "неклассическими" процами, у которых один такт на цикл?
(тот же Equinox, например)

mOleg писал(а):
Опкод занимает 1 cell адресного пространства

многовато, однако. Целый cell на один опкод. Лучше, все же не конкретизировать, сколько cell-ов на опкод, а то потом сами же и получим этими граблями по лбу. Скорее надо упомянуть, что в одном cell-е может быть несколько опкодов,
mOleg писал(а):
за которым может следовать литеральное поле, выбираемое на втором такте цикла

за cell-ом с опкодами могут следовать литеральные поля (принципиально возможно и не одно литеральное поле в команде, и несколько команд в cell-е, требующих литерала)

И еще, потактовое расписывание, как выполняется команда, совершенно излишне. мало того, что сегодня возможен однотактный цикл, уже в ближайшем будущем возможно получение DDR режимов работы, когда в одном внешнем такте исполняется несколько команд за счет внутреннего умножителя частоты в том же ПЛИСе.
И уже сейчас это так. Тактовая частота на процессор подается через PLL с умножением частоты.

Изображение

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


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

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

Существуют 3, 4, 5, 7 тактовые RISC, и даже больше.
WingLion писал(а):
Каждое новое определение (последовательность опкодов, составляющих аналог подпрограммы в других языках программирования) так же является опкодом. Таким образом, набор команд процессора как бы расширяется с каждым новым определением (то есть во время работы количество команд растет).

Являются ли опкодами команды call 1, call 2, call 3, call 4 и т.д.? Или это все-таки одна команда с разными операндами?


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Являются ли опкодами команды call 1, call 2, call 3, call 4 и т.д.? Или это все-таки одна команда с разными операндами?


Подобная последовательность в форте должна выполняться командой call 1,2,3,4 где call - вызов адресного интерпретатора, один на все четыре подпрограммы (и каждая из подпрограмм 1, 2, 3, 4, заканчивается командой NEXT вместо RET).
(У меня в процессоре так железно сделано, a команда NEXT - это один из опкодов как и RET)
Сейчас вот, мысль одна пришла, сделать переключаемый режим для команды RET, чтобы она выполнялась либо как RET, либо как NEXT в зависимости от того откуда вызвана подпрограмма, заканчивающаяся этим RЕT-ом.

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


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

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


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

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

Разный эффект однако.
RET в шитом коде оказывается равносилен команде исполнению CODE:

Вот такая схема:

Изображение

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
mOleg писал(а):В классическом случае любая команда выполняется за два такта (1 цикл = 2 такта ),
А что делать с "неклассическими" процами, у которых один такт на цикл?
(тот же Equinox, например)

ну, вот возьми классический RISC - у него 4 такта на цикл: загрузка/декодирование/исполнение/сохранение , при том существуют однотактные RISC (где выигрыш за счет конвеера) а бывают и многотактные. Короче, это уже особенности конкретной реализации, а я пишу про базовую модель, которая в железе может ни разу быть не реализованной, однако базовой быть не перестанет.

WingLion писал(а):
mOleg писал(а):Опкод занимает 1 cell адресного пространства
многовато, однако. Целый cell на один опкод. Лучше, все же не конкретизировать, сколько cell-ов на опкод, а то потом сами же и получим этими граблями по лбу. Скорее надо упомянуть, что в одном cell-е может быть несколько опкодов,

не согласен, и вот почему. То, что я описал является данностью для большинства Форт-систем (то есть для всех Фортов использующих ITC) и по сути наиболее точно отражает суть Форта - где каждое слово по сути - это некая команда процессора :D И тогда наиболее логичным получается как раз один CELL = один OPCODE. Все же остальное - это вариации, что есть нормально. Причем возможные варианты придется учесть, но это уже второй момент.

WingLion писал(а):
Подобная последовательность в форте должна выполняться командой call 1,2,3,4 где call - вызов адресного интерпретатора, один на все четыре подпрограммы (и каждая из подпрограмм 1, 2, 3, 4, заканчивается командой NEXT вместо RET).

Это, кстати, то, о чем я говорил Хищнику. В процессоре частично реализуется интерпретатор ШК на подобие того, который бывает внутри ФВМ.
То есть и такой вариант имеет право на жизнь 8)

вопрос писал(а):
Цитата:заканчивается командой NEXT вместо RETчто-то я сразу не пойму - для шитого кода какая разница - эффект ведь, кажется, один?

Нет, эффект несколько разный. В косвенном ШК команды CALL нет, точнее она стоит всегда в начале определения, и опкодов столько, сколько возможных адресных ссылок может быть в программе. То есть любое слово интерпретируется как команда процессора.

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


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

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

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

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


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

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

в таком случае, я боюсь, мы будем погребены в горе флуда 8(
собственно, вернуться и учесть неучтенное можно всегда, и сделать это проще, чем предусмотреть все-все-все заранее.

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


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

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

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

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


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

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

насчет грабель согласен.
что есть грабли?)

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


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

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


Грабли - 1 CELL на команду.
Да, это проще, но завтра придется проделанную работу делать во второй раз, когда выяснится,
что с группой опкодов на CELL компилятор не справляется, потому что сделан "как бы попроще".
А еще есть "почти классика" с байт-кодом, у которого 4 кода на 32-битный CELL - просто данность.
И есть совсем "не классика" с уже разработанными процессорами (не только моими).
Отмахнемся и будем делать "как бы попроще"?

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


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

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


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

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


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

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


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

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