Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб апр 20, 2024 01:58

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 71 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Аппаратная поддержка стеков Форта на IBM PC
СообщениеДобавлено: Вт июл 18, 2006 06:19 
Не в сети

Зарегистрирован: Пт июл 14, 2006 07:22
Сообщения: 14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пришла одна мыслишка, касающаяся экспериментов с ForthOS на писишном железе: спаять карточку для PC, аппаратно реализующую фортовские стеки. По-моему, это должно упростить реализацию слов, работающих со стеками и ускорить работу программ. Например, для стека данных выделяется регистр в адресном пространстве ввода-вывода и всё общение с упомянутым стеком сводится к чтению/записи этого единственного регистра с фиксированным адресом. Инкременты-декременты адресов на карточке происходят аппаратно.
Конечно, не исключено (и даже весьма вероятно), что я, как юниор Форта, просто "изобрёл велосипед". Тогда, я думаю, мне на это укажут :D
P.S. Моя экспериментальная машинка - 386DX40 и речь, соответсственно идёт пока об ISA'шной карточке, но важен и сам принцип :shuffle;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Аппаратная поддержка стеков Форта на IBM PC
СообщениеДобавлено: Вт июл 18, 2006 06:58 
Иван писал(а):
Конечно, не исключено (и даже весьма вероятно), что я, как юниор Форта, просто "изобрёл велосипед". Тогда, я думаю, мне на это укажут :D
P.S. Моя экспериментальная машинка - 386DX40 и речь, соответсственно идёт пока об ISA'шной карточке, но важен и сам принцип :shuffle;


Если бы все было так просто, тогда можно было заменить 386DX40 в панельке на какой
нибудь форт процессор в Плисе. Введение данного регистра не имеет смысла своих регистров
CPU хватает. Но обращение к регистру (косвенному с автодекрементом) с выполнением
арифметики возможно, например в PIC контроллере и использовать эту возможность
для реализации форта на PICе. Как вариант можно рассмотреть реализацию форта
на стеке математического сопроцессора в PC:)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Поддержка стека
СообщениеДобавлено: Вт июл 18, 2006 07:50 
Не в сети

Зарегистрирован: Пт июл 14, 2006 07:22
Сообщения: 14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
...386DX40 в панельке...

Похоже, что я ему про Фому, а он мне - про Ерёму...
Какая там ещё 386-я в панельке? Ни в какой не в панельке у меня 386-я машина!... Это - обыкновенный реальный комп, на котором я экспериментирую. А регистр (на доп. ISA-карточке) совсем не то, что регистр проца. Это - интерфейс между CPU и специальной стековой памятью, для того, чтобы быстро класть и брать со стека простыми ассемблерными командами OUT (ADDR) и IN (ADDR).
Ещё на той же карточке должны находиться (как минимум):
- микросхема памяти;
- реверсивный счётчик, хранящий адрес для обращения к этой памяти;
Счётчик - это что-то вроде указателя стека: должен автоматически изменяться при каждом обращении к стеку.
Что тут не так? Разве плохая идея? Ведь если стек организован программно, в общей памяти, то уж одной командой никак туда ничего не положишь и обратно не возьмёшь :roll: , а при аппаратной поддержке - для обращения к стеку достаточно всего лишь одной ассемблерной команды... Почти то же, что PUSH или POP...
Те, кому доводилось сажать Forth на голое железо, должны оценить такой прибамбас :D При старте FothOS будет проверять наличие карточки и, если её нет, работать со стеком обычным образом. А если есть - работает быстрее, т.е. таким образом появляется стимул для установки карточки...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Аппаратная поддержка стеков Форта на IBM PC
СообщениеДобавлено: Вт июл 18, 2006 13:27 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Иван писал(а):
Пришла одна мыслишка, касающаяся экспериментов с ForthOS на писишном железе: спаять карточку для PC, аппаратно реализующую фортовские стеки.


купи Xilinxовский кит на PCI-плате -- выйдет дешевле, на два порядка быстрее и на порядок надежнее, кроме того всегда сможешь ее продать

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Аппаратная поддержка стеков Форта на IBM PC
СообщениеДобавлено: Вт июл 18, 2006 13:31 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Иван писал(а):
Пришла одна мыслишка, касающаяся экспериментов с ForthOS на писишном железе: спаять карточку для PC, аппаратно реализующую фортовские стеки.


имхо еще лучше купить кит на Spartan-3, он дешевый, где-то до $150 вместе с доставкой из Москвы должен обойтись, зато получишь полноценный аппаратный супер-компьютер, не зависимый от ПК

зашьешь в него свой форт-процессор, а управление в т.ч. отладочное типа чтения/модификации стеков и памяти, сделаешь по LPT/COM/USB

PS: кто может достать такой кит ? как в Самару довезти ? с удовольствием бы сам купил в сентябре/октябре, как деньги накопятся, или прямо сейчас с кредитки

_________________
http://akps.ssau.ru/forth/


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Лучше ждать кит на Spartan-3e. Он гораздо приятнее, только будет доступен чуть попозже.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Иван писал(а):
Те, кому доводилось сажать Forth на голое железо, должны оценить такой прибамбас При старте FothOS будет проверять наличие карточки и, если её нет, работать со стеком обычным образом. А если есть - работает быстрее, т.е. таким образом появляется стимул для установки карточки...

1) Раздел "железо" на этом форуме :) На карточку можно посадить и форт-процессор.
2) Покупается ПЛИС, многие в корпусах, пригодных для пайки, паяется на ISA. Реально.


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

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

Цикл ИСА-шный порядка 0.5мкс (если уменьшить, останется один сплощной глюк) - а это 20 тактов 40мегагерцового 386-го процессора.

Если для ИСА делать карточку, то лучше сразу с форт-процессором и своей памятью и... (и т.д. и т.п.)

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


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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 18, 2006 16:26 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Аппаратный стек
СообщениеДобавлено: Вт июл 18, 2006 19:15 
Не в сети

Зарегистрирован: Пт июл 14, 2006 07:22
Сообщения: 14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
WingLion писал(а):
Имхается мне, что стек на карточке в ИСА будет тормозить больше, чем кусок программы, перекружающий SS,SP и переключающий таким образом стек процессора.

Цикл ИСА-шный порядка 0.5мкс (если уменьшить, останется один сплощной глюк) - а это 20 тактов 40мегагерцового 386-го процессора..)


А мне "имхается", что не всё так катастрофично с ISA'шной шиной. Откуда цифра 0,5 мкс? Это только 2 МГц, а шину считают вообще-то восьмимегагерцовой. А с ОЗУ DX40, по-моему, тоже не на сорока мегагерцах работает, там уже WAIT'ы участвуют, так что разница в скоростях обмена не столь уж и велика. А конкретно - лучше проверить, конечно.

WingLion писал(а):
Если для ИСА делать карточку, то лучше сразу с форт-процессором и своей памятью и... (и т.д. и т.п.)

Чем более грандиозная ставится задача, тем меньше вероятность, что она будет выполнена. Особенно касается начинающих, к коим отношусь и я...
А готовое купить можно всё, но это не так интересно.


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

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


Из опыта разработки ИСА-шных устройств.
8 мегагерц - тактовая частота, которую можно использовать для защелкивания адреса, данных и сигналов управления, но это не частота пересылки данных.

У PCI, например, частота 33MHz, а если работать с одиночными транзакциями на PCI, то потока в 33Mb/сек НИКОГДА не достичь.
А о заявленных 132Mb/сек можно и не мечтать в таком режиме.

Иван писал(а):
А с ОЗУ DX40, по-моему, тоже не на сорока мегагерцах работает, там уже WAIT'ы участвуют, так что разница в скоростях обмена не столь уж и велика. А конкретно - лучше проверить, конечно.


На "трешках" ОЗУ на симах, а значит, тактовая у него в районе 7MHz.
Однако, кроме симов там имеется еще и кэш, вот он то работает побыстрее. Во всяком случае, 40MHz для PC-шного кэша - это мелочь.

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


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

Зарегистрирован: Пт май 12, 2006 00:52
Сообщения: 88
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Да хоть бы и 8МГц. По восьмибитной шине гонять 16 или 32 битные данные, да ещё туда и обратно... Нет, если делать внешнюю плату - то со специализированным процессором. И лучше туда что-то типа Cell поставить. Будет вам 8 стеков по 2..4ГГц и 256Кб каждый и ещё один 64-х битный CPU для управления ими :)

_________________
... чтобы понять рекурсию, нужно сперва понять рекурсию ...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 18, 2006 22:20 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Угу. Тем более что IN/OUT сами задают времянки. Если генерировать меандр записью в порт 0 и 1, частота будет порядка 500 кГц.

WingLion писал(а):
У PCI, например, частота 33MHz, а если работать с одиночными транзакциями на PCI, то потока в 33Mb/сек НИКОГДА не достичь. А о заявленных 132Mb/сек можно и не мечтать в таком режиме.

Там где-то 2,5 млн. транзакций. Т.е. 10 Мбайт/сек в режиме программируемого ввода-вывода.


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

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


Да-да, я именно такую цифру опытным путем получил! :)

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


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

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


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

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


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

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