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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 184 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13  След.
Автор Сообщение
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 19:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
`Kopa писал(а):
Читая этот комментарий Обзор отладочной платы DE0-Nano не понятно как они по такой цене продают, если данная FPGA стоит $55, а студентам ещё и со скидкой:)

В действительности FPGA обходятся производителю существенно дешевле. Другое дело, что пересылка чего бы то ни было тоже стоит денег. Продавая готовую отладочную плату, производители стимулируют покупателей не тратить время на выполнение рутинных инженерных операций, в процессе чего можно в десятке мест запороть плату/чип и потерять интерес к микросхеме как таковой. Гораздо выгоднее продать недорогое средство разработки, чтобы появлялись интересные изделия, которые уже можно будет выпускать крупными тиражами. Бывают и совсем интересные варианты - там плата+софт стоят дешевле, чем установленная ПЛИС.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 19:43 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
Но если на одной и той же платформе одна архитектура исполняет команды Форта за N тактов, а другая - за N*10, и при этом прочие параметры сопоставимы, то первая будет более форт-процессором, чем вторая.

А если на одной и той же FPGA разные разработчики сделали разные форт-схемы, у которых скорости различаются на порядок?

Кстати вот посчитал: в моем ARM-форте около 40 CODE-слов, из них 14 выполняются за один такт, 17 за два.

Цитата:
ARM - это тоже не процессор, если смотреть с этой точки зрения. Это какой-то техпроцесс, с каким-то числом слоев металлизации. Я могу заявить, что у него слоев металлизации маловато, поэтому он "ненастоящий процессор".

Правильно. Когда писал инициализаторы модулей контроллера и настраивал pinout'ы, то мне тоже эта аналогия приходила в голову. ARM - это разновидность FPGA с более крупными и более функциональными блоками (и по этой причине менее гибкими, чем простой FPGA). Т.е. как языки низкого и высокого уровня.

Цитата:
Можно из упрямства пользоваться на ARM только Фортом. Однако это не отменит того факта, что программист на С окажется способным выжать из ARM больше, чем программист на Форте. Как бы фортер ни старался. А вот для форт-процессора должно быть справедливым утверждение, что максимальной эффективности на нем можно добиться, программируя на Форте.

Программа на асме вероятно будет быстрее чем на Си. А программа на SPF с оптимизатором имени ~mak быстрее, чем на TCC (можно сравнить прямо из форта - ~ac/lib/lin/lang/tcc/tcc.f ). И я думаю, что даже на Форт-процессоре (любом) сишный "длиннофункциональный" стиль программирования будет давать более быстрый код, чем фортовый стиль. Так что всё относительно. Тем более если под "выжать" понимать производительность, а не объем функционала. Т.к. Си не сможет тягаться с (неоптимизированным) Фортом по плотности кода.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 19:58 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Значит, мы говорим о более или менее эффективном форт-процессоре.
ac писал(а):
Правильно. Когда писал инициализаторы модулей контроллера и настраивал pinout'ы, то мне тоже эта аналогия приходила в голову. ARM - это разновидность FPGA с более крупными и более функциональными блоками (и по этой причине менее гибкими, чем простой FPGA). Т.е. как языки низкого и высокого уровня.

Что такое FPGA - записано в патенте на FPGA. Исходя из этого патента, ARM - это не разновидность FPGA. С точки зрения разработчика это тоже не FPGA, потому что я могу написать поведенческий или RTL-код, и FPGA сможет его реализовать, а ARM - нет (процессоры вообще не могут реализовать HDL-описания произвольных схем, они сами описываются вполне определенными языковыми структурами *HDL).
ac писал(а):
Программа на асме вероятно будет быстрее чем на Си. А программа на SPF с оптимизатором имени ~mak быстрее, чем на TCC

Наиболее быстрой будет не "программа на языке <languagename>", а та программа, которая наиболее эффективно использует типы транзакций данных, реализуемых процессором. Именно транзакций, а не команд, если учитывать, что команды могут выполняться за разное число тактов. Откуда получить такой код - второй вопрос. Соревнование тут идет не между входными языками, а между внутренними представлениями кода. Регистровому ARM удобнее работать с регистровыми представлениями, стековому процессору - со стековыми. Раз Форт без проблем генерирует именно стековые представления, то ему удобнее работать на процессоре с аппаратной поддержкой стека. Оптимизатор генерирует шаблоны кода для регистров ARM? Замечательно, вот и объяснение эффекта. А вот если ARM будет по-честному эмулировать стек данных (в ядре его нет, так что придется в памяти), то тут он и проиграет процессору с аппаратным стеком.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 20:10 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
Значит, мы говорим о более или менее эффективном форт-процессоре.

А если тот разработчик, у которого наименее эффективный форт-процессор получился, делал его так: сначала сделал ARM-процессор, а потом в его кодах сделал форт? ;)

Цитата:
А вот если ARM будет по-честному эмулировать стек данных (в ядре его нет, так что придется в памяти), то тут он и проиграет процессору с аппаратным стеком.

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

Цитата:
Раз Форт без проблем генерирует именно стековые представления, то ему удобнее работать на процессоре с аппаратной поддержкой стека.

Так ведь и на Си, и вообще почти на любом языке, проще генерировать именно стековые представления. На регистры все перешли не от хорошей жизни, а потому что еще в 60-70х народу показали, что регистровые машины быстрее. А до этого выпускали и стековые машины, в т.ч. ту, из которой Мур почерпнул часть своих идей (была ссылка на f.o.r).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 20:13 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
(процессоры вообще не могут реализовать HDL-описания произвольных схем, они сами описываются вполне определенными языковыми структурами *HDL).

Процессоры могут всё. Тебе ведь не обязательно все HDL-схемы в железе проверять, можно и в эмуляторе на PC.
Другое дело, что это будет медленнее (при условии равной базовой частоты).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 21:00 
Не знал, да ещё и забыл:) i.MX51 - "Forth" CPU (вроде стековый)
Freescale i.MX51 Android Tablet prototype develop
На плате FORTH обозначен.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 21:19 
Не в сети
Administrator
Administrator
Аватара пользователя

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

То этот разработчик сделал ARM. Можно ведь и томик Пушкина использовать в качестве гнета для закваски капусты. Теперь гнет для закваски надо делать так же, как печатается Пушкин?
ac писал(а):
А у него (контроллера) память в ядре, на независимой шине.

Так на шине, или в ядре? Ядро процессора - это достаточно плотная и компактная часть, если есть еще память, то она не является частью ядра процессора.
ac писал(а):
И стековые команды (часть стековых команд; ты не ответил, сколько их надо для форт-процессора) реализуются однотактно.

Чем больше, тем лучше. Вопрос тут не в количестве команд, а в том, насколько то, что делает процессор, соответствует тому, что требуется команде Форта.
ac писал(а):
Так ведь и на Си, и вообще почти на любом языке, проще генерировать именно стековые представления. На регистры все перешли не от хорошей жизни, а потому что еще в 60-70х народу показали, что регистровые машины быстрее. А до этого выпускали и стековые машины, в т.ч. ту, из которой Мур почерпнул часть своих идей (была ссылка на f.o.r).

Да, быстрее, если брать в среднем. Стек действительно имеет "бутылочное горлышко" в виде своей вершины, поэтому добиваться экстремально высокой производительности на стековой машине сложнее, чем на машине с регистровым файлом. Но мы о чем говорим-то? Ты хочешь под термином "форт-что-то" понимать просто самое быстрое, выразительное, эффективное и т.п.? :)
Вот к примеру, есть понятие адресности процессора. Например, add r3, r4, r7 - трехадресная команда. А add eax, ebx - двухадресная. Несмотря на то, что я могу написать add r3, r3, r7, первый процессор от этого двухадресным не станет. Точно так же ARM не становится стековым процессором.
ac писал(а):
Процессоры могут всё. Тебе ведь не обязательно все HDL-схемы в железе проверять, можно и в эмуляторе на PC.
Другое дело, что это будет медленнее (при условии равной базовой частоты).

Это не реализация, а моделирование. Реализация - когда я пишу c <= a nand b; и получаю 1 (один) вентиль в сколько-то квадратных микрон площадью. А не когда я для этой операции раскочегариваю ARM.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 21:57 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
`Kopa писал(а):
Не знал, да ещё и забыл:) i.MX51 - "Forth" CPU (вроде стековый)
Freescale i.MX51 Android Tablet prototype develop
На плате FORTH обозначен.

Слишком толстый. Я такой не куплю. Даже если внутри форт. Вот когда он будет потоньше, да со всякими плюшками внутрях - тогда можно и подумать будет.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 22:04 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
Так на шине, или в ядре?

На шине в ядре. В отличие от внешней шины к другим чипам.

Цитата:
Не знал, да ещё и забыл:) i.MX51 - "Forth" CPU (вроде стековый)
Freescale i.MX51 Android Tablet prototype develop
На плате FORTH обозначен.

А где конкретно там форт? Если девайс разработан конторой с названием FORTH, то этого недостаточно для превращения ARM Cortex A8 в форт-процессор...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 22:10 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
Точно так же ARM не становится стековым процессором.

Т.е. сишный стек - это не стек вовсе?

А если в форт-процессоре с правильным стеком вдруг добавят регистры (для реализации локальных переменных, допустим), то он перестанет быть форт-процессором?


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
`Kopa писал(а):
Какое мнение по данной плате?
DE0-Nano Development Board


Хорошая штучка, чтобы побаловаться, но есть и пара ложек дегтя...
VGA-выхода нет, PS/2 входа нет... т.е. придется внешнюю платку
с этими делами приделывать самому. 79$ - это у производителя цена,
сколько накрутят, пока в Россию привезут - совсем не ясно.

ПЛИС по объему всего на 22К LCELL, и по характеристикам Cyclone-IV
мало отличается от Cyclone-III.

Короче, я бы такую, если бы и взял, то только в подарок.
А свои кровные 2.5тыр потратил бы на изготовление платы
с Cyclone-III с тем, что мне нужно в комплекте.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 22:26 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
То этот разработчик сделал ARM. Можно ведь и томик Пушкина использовать в качестве гнета для закваски капусты.

А если до этого никто такого не делал, ARM'ом не называл, а разработчик назвал это "вот такая у меня система форт-команд"? И команда LDR называется у него "@", а PUSH {R0} называется "DUP".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Вс мар 25, 2012 23:51 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Память не входит в ядро процессора. Внешняя шина памяти отличается от внутренней прежде всего характеристиками производительности. Сколько и чего за такт сможет сделать эта память на внутренней шине? У нее один адрес?
ac писал(а):
Т.е. сишный стек - это не стек вовсе?

Стек - он не сишный, он стек процессора с определенным типом поддержки системой команд. Там есть PUSH и POP? Этого недостаточно для Форта, придется дорабатывать.
ac писал(а):
А если в форт-процессоре с правильным стеком вдруг добавят регистры (для реализации локальных переменных, допустим), то он перестанет быть форт-процессором?

Да, он будет процессором общего назначения с поддержкой стекового режима.
ac писал(а):
А если до этого никто такого не делал, ARM'ом не называл, а разработчик назвал это "вот такая у меня система форт-команд"? И команда LDR называется у него "@", а PUSH {R0} называется "DUP".

Это будет процессором, на котором удобно и эффективно сделать Форт. А вот на кой там PUSH {R0} -то? Вообще-то, с точки зрения архитектуры, Форт-процессор должен быть 0-адресным, то есть никаких R0 у него в команде быть не должно. Потому что, если PUSH можно сделать с регистрами от R0 до R15, то это лишние 4 бита в команде. Команда растет, уменьшается плотность кода, увеличивается площадь кристалла (хотя на нее-то как раз можно обращать меньше внимания, а вот размер команды - это серьезнее).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Пн мар 26, 2012 00:28 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
Цитата:
Вообще-то, с точки зрения архитектуры, Форт-процессор должен быть 0-адресным, то есть никаких R0 у него в команде быть не должно.

А как же фортовая команда PICK (94 CORE EXT)? Для её эффективной реализации желателен индексный доступ к стеку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вне игры?
СообщениеДобавлено: Пн мар 26, 2012 00:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ac писал(а):
А как же фортовая команда PICK (94 CORE EXT)? Для её эффективной реализации желателен индексный доступ к стеку.

Это вопрос оптимизации архитектуры. Имеет ли смысл увеличивать размер всех команд, чтобы иногда использовать команду из расширенного набора? Можно и ROLL вспомнить, это еще интереснее с точки зрения реализации. К '94 вообще много вопросов... риторических.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 184 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13  След.

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


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

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


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

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