Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 15:10

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 137 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Вт фев 22, 2011 14:27 
Не в сети
Аватара пользователя

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

Решает кто-программист, а переключает что, распределенный анализатор состояния программы в ходе решения задачи.
Исключить заодно и вычисление предиката тоже не проблема если это будет оправдано.
А вообще-то все это в теме разработки процессора находится.
lazy evaluation - это из ФП? Я к ФП отношусь как к чему-то 'странному'. Делать программы для реальной машины, которая одни сплошные состояния, на базе функций, которые состояний не имеют(отсюда и пресловутая рекурсия вылазит) как-то нелогично и неэффективно. Так что lazy evaluation это что-то другое.

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Мне как-то не вполне понятно, зачем с такими задачами подходить к проектированию процессоров? Ведь преобразования условных операторов дают очень маленький потенциальный выигрыш. Это все идет из мира x86, где программная архитектура процессора жестко прибита гвоздями к массовой рыночной реальности, и перелопатить ядро попросту нереально. Но тут-то? Да и все равно - вот, допустим, процессор развелся на 123 МГц. Мне трудно представить резоны, по которым он будет запускаться именно на 123, вероятнее всего на 120. В крайнем случае на 125, если немножко посидеть с настройками САПР. Теперь внимание, вопрос. Что проще сделать разработчику процессора с целью повышения его производительности на 1%:
1) Ужесточить проектные ограничения и пустить САПР в автоматическом режиме для поиска вариантов трассировки, удовлетворяющим новым требованиям.
2) Вылавливать блох в компиляторе, делая это руками, и постоянно находясь при этом в условиях неопределенности верификации проделанной работы - тестов-то нет, их надо разрабатывать отдельно под каждую сиюминутную придумку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Вт фев 22, 2011 16:01 
Не в сети
Аватара пользователя

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

1. 1% это из практики? А если глубокой вложенности структура из условных операторов, то сколько %?
2. Ну ужесточили требования, ну получили 1%. А если еще 1% потребовалось, а потом еще.
Под нововведения в архитектуре все равно компилятор надо тестировать.

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
1. 1% это из практики?

Все операции "мелких улучшений" давали единицы процентов прироста производительности в целом.
chess писал(а):
А если глубокой вложенности структура из условных операторов, то сколько %?

То программист видит эту структуру, понимает, что она ухудшает параметры в критическом месте, и начинает переписывать ее руками. А если не ухудшает, то какая разница? Но в такой ситуации будет ли этот программист запускать непонятно кем и как проверенные преобразователи кода, если потенциальный выигрыш мал, а риск непонятен?
chess писал(а):
2. Ну ужесточили требования, ну получили 1%. А если еще 1% потребовалось, а потом еще.

Еще ужесточили. Отдельные инструменты работы с ПЛИС без изменения схемы дают прирост производительности до 30%. Методы разработки, учитывающие архитектуру (например, конвейеризация, балансировка конвейеризующих регистров, реализация АЛУ в блоке XtremeDSP или самостоятельная укладка в LUT логических выражений) - в разы. Архитектурные методы (аппаратный и независимый от процессора контроллер ПДП, независимое ядро БПФ и т.п.) - в десятки и сотни раз.
chess писал(а):
Под нововведения в архитектуре все равно компилятор надо тестировать.

Да, надо. Дает он код, соответствующий новой команде, или нет :)


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

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

Если САПР так хороша, то что мешает запустить процесс компиляции процессора сразу на 'максимальный' вариант.
Хищник писал(а):
Да, надо. Дает он код, соответствующий новой команде, или нет

Я думаю идейно зафиксировать компилятор и не фиксировать архитектуру это однобокое решение.
Не будет синергии в результате.

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


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

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
chess писал(а):
Так что lazy evaluation это что-то другое.

Это как раз парадигма строго однократного вычисления того, что достаточно вычислять один раз.
И она могла бы иметь поддержку в процессоре, т.к. формализована.
А Ваша идея--не формализована, поэтому не годится для железа.
Иначе получится: "дывысь, Пэтро, яка смэшна фамылия!"
И дизайнера ЦПУ все программисты закидают шишками.


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

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


T.e. В данном примере надо считать, что код подменяется святым духом...

И получается не реконфигурация системы команд, а самомодифицирующийся код.
Такой можно сделать и без всяких изменений в железе процессора (святой дух в помощь!).

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Если САПР так хороша, то что мешает запустить процесс компиляции процессора сразу на 'максимальный' вариант.

Во-первых, время, а во-вторых - неоднозначное качество получаемого результата. В САПР ПЛИС нет галочки "сделать быстро", там набор взаимосвязанных настроек, из которых практически любая комбинация может дать максимально скоростной вариант. Поэтому приветствуется вмешательство грамотного разработчика, который сможет последовательно подобрать оптимальное сочетание настроек. В-третьих, есть приемы проектирования на уровне топологии. Тут уж как разработчик расставит компоненты на кристалле, так и будет. Вот, в качестве примера, тот вариант процессора, над которым я сейчас работаю - стартовал он с 75-80 МГц (САПР "по умолчанию"). Сейчас я его довел до 110-115.
chess писал(а):
Я думаю идейно зафиксировать компилятор и не фиксировать архитектуру это однобокое решение.

Почему вдруг? Если исходить из принципа "минимум затрат, максимум результата", то основная точка приложения сил - это как раз аппаратная архитектура, а вовсе не компилятор. Это раньше был компилятор, а еще раньше программа. Потому что когда-то и программу надо было сначала написать, а потом инициировать долгий и трудоемкий процесс набивки перфокарт ;) Позже - да, программу можно набрать, а компилятор - да вы что, смеетесь? Этим же специальные люди занимаются. Еще позже и этот барьер оказался пройден, но теперь камнем преткновения стали чипы - они же делаются Специальными Людьми на Специальных Заводах, куда простым смертным не пробраться. Поэтому можно только принять аппаратуру как данность, и кропотливо выбирать крохи производительности. И вот в том-то и дело, что с ПЛИС это совершенно не так!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 11:07 
Не в сети
Аватара пользователя

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

Ну я то о другом говорю-о реконфигурации структур управления в программе самой программой.
dynamic-wind писал(а):
А Ваша идея--не формализована, поэтому не годится для железа.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 11:21 
Не в сети
Аватара пользователя

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

Нет, командой, которая не приведена, о чем и сказано русским-по белому.
WingLion писал(а):
И получается не реконфигурация системы команд, а самомодифицирующийся код.Такой можно сделать и без всяких изменений в железе процессора (святой дух в помощь!).

Ну форт-команды в SPF это команды не железной машины, а виртуальной, поэтому да реконфигурация команд управления сводится к самомодификации кода реального процессора.
В железной ВМ можно, например, ввести команды перехода с двумя полями смещения адреса перехода и соответственно управлять состоянием команды (какое смещение действует) с помощью команд переключения этого состояния. Тут может быть масса разных вариантов.
Ну а самомодификация кода и в железной ВМ будет работать, если код программы в ОЗУ.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 11:28 
Не в сети
Аватара пользователя

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

Время компиляции проекта?
Неоднозначность вроде должна больше относится к определению алгоритмической направленности проекта. Мы же не тестируем ПЛИС вместе с конкретной программой.
Хищник писал(а):
Почему вдруг? Если исходить из принципа "минимум затрат, максимум результата", то основная точка приложения сил - это как раз аппаратная архитектура, а вовсе не компилятор.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 14:43 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Это-то зачем? :shock: Загрузить из памяти команд избыточные сведения, которые заведомо будут использованы только наполовину?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 14:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Время компиляции проекта?

Формально это не совсем компиляция, но если не вдаваться в тонкости - да. Суммарное время доводки проекта на ПЛИС возрастает практически экспоненциально. Условно - 50% от теоретического предела тактовой частоты можно получить сразу, на 75% выйти за десяток полуавтоматических итераций, до 100% идти долго и упорно.
chess писал(а):
Общая направленность действий понятна. Но все-таки архитектура должна коррелировать с алгоритмикой решаемых задач, а тут распределение усилий между программой-компилятором-архитектурой не такое однозначное.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 17:37 
Не в сети
Аватара пользователя

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

При компиляции долго загружаем 'изб. сведения', зато потом быстро
на ходу быстро переключаем конфигурацию структур управления.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: VHDL: процессор за час
СообщениеДобавлено: Чт фев 24, 2011 17:42 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Да при чем тут компиляция-то? Процессор в runtime будет из памяти читать два поля, из которых реально нужно только одно?


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

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


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

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


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

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