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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: white_TigR и Intel Summer School - 2007
СообщениеДобавлено: Сб авг 11, 2007 16:45 
С 1 по 28 августа в Нижнем Новгороде в ННГУ проходит обучение в "Летней школе".
Основное направление обучения - беспроводные технологии.

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

Меня записали в проект "Разработка цифрового анализатора спектра".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб авг 11, 2007 17:27 
Нам читают кучу лекций. Хищник читал лекции по проектированию процессоров в ПЛИС. :)
После фразы "а теперь придумываем, что мы будем делать и зачем" родилась идея PicoForthCPU.

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

Итак, PicoForthCPU. В текущем варианте имеет характеристкики:
Тактовая частота - 50 MHz.
Разрядность кода - 9 бит.
Разрядность данных - 8 бит.
Стек данных - 4 ячейки.
Стек возвратов - 4 ячейки.
Стек циклов - 4 ячейки.

Занимает около 200 логических ячеек в ПЛИС Spartan3.


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
white_TigR писал(а):
чтобы получить маленький процессор, который можно будет поставить следить за переферийными устройствами.
Например, для общения с пользователем можно поставить именно маленький процессор, в то время как основной будет заниматься своей работой.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 13:59 
Гарвардская архитектура памяти: память кода и память данных разнесены.
Также необходимы 2 стека: данных и возвратов.
Возможен еще и стек циклов, для реализации команд "do" и "loop" прямо в процессоре.

Если идти еще дальше, то можно сделать и защиту в процессоре, которая будет следить за переполнениями стеков.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 16:57 
Не в сети

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

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 17:05 
А зачем настраиваемая?
Вручную раскидываем процессоры: один - с пользователем общаться, другой на vga контроллер, третий за клавиатурой следит. :)

Под "настраиваемую многопроцессорность" нужно и задачу соответствующую. Где получается распараллелить вычисления.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 17:19 
Не в сети

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

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 20:35 
Итак, текущее состояние PicoForthCPU:
Стек данных - 16x8 bit
Стек возвратов - 16x6 bit
Стек циклов - 16x22 bit

Система команд:
+ - and or xor nip
not /2 *2
inport dup i j temp>
do outport
drop
loop ret

Загрузка констант:
старший бит команды = 1
следующие 8 бит - константа

Переходы:
старший бит = 0
следующие 2 бита - тип перехода ( 01 - jmp; 10 - call; 11 - if)
следующие 6 бит - адрес перехода

Проблемы:
адресуемая память - всего 64 ячейки.
Решение видится во введении переходов по адресу со стека, но 256 ячеек тоже может нехватить.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 14, 2007 00:19 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
white_TigR писал(а):
адресуемая память - всего 64 ячейки.

а почему нельзя хотя бы 256 ячеек?
И такое (малое адресуемое пространство команд) пригодно только для сопроцессора или для процессоров, выполняющих простые программы управления.
9 разрядов - это из-за возможностей ПЛИС? ;)
white_TigR писал(а):
следующие 6 бит - адрес перехода

А почему не смещение? Тогда можно будет расширить адресное пространство по передаче управления почти до бесконечности (используя связки переходов... ) ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 14, 2007 10:49 
in4 писал(а):
И такое (малое адресуемое пространство команд) пригодно только для сопроцессора или для процессоров, выполняющих простые программы управления.

white_TigR писал(а):
Идея в том, чтобы получить маленький процессор, который можно будет поставить следить за переферийными устройствами.

Именно как сопроцессор. :)

in4 писал(а):
9 разрядов - это из-за возможностей ПЛИС?

Если брать блочную память, то у нее размер 18х1024 бит. Но блоков такой памяти мало на кристале и для сопроцессора ее использовать не хочется. Поэтому сейчас используется распределенная память.

in4 писал(а):
white_TigR писал(а):
следующие 6 бит - адрес перехода

А почему не смещение? Тогда можно будет расширить адресное пространство по передаче управления почти до бесконечности (используя связки переходов... )


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


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 14, 2007 17:37 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
По абсолютному адресу лучше вызовы п/п (ну или слов ;) ).
А вообще все можно сделать относительным. И переход(jmp), и переход с возвратом(call).
Можно сделать арифметику с адресом возврата.
А связки - это просто возможность... Никто не заставляет ими пользоваться. Но м. и пригодится... ;)
А на связках можно делать перемещаемые куски кода. В начале кода - таблица переходов на его функции. И смещения в этой таблице остаются постоянными, даже при изменении реализации. VMT получается... ;)
Хотя теперь, при наличии мощных кросс-средств это не актуально. Имеет смысл только в 16 разрядных проектах. В более мелких места жалко, а в крупных можно и не экономить... ;)

_________________
With best wishes, in4.


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

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


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

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Хищник писал(а):
Относительный call не экономит место на стеке возвратов

Зато экономит исполняемый код. Для процов с малым адресуемым пространством позволит разместить чуть больше кода. ;)
Я не настаиваю на такой реализации... ;) но она мне кажется удобнее ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 15, 2007 13:41 
Я против связок jmp'ов по относительному адресу. Вместо 2 команд прыжков по относительному адресу (что позволит расширить адресное пространство до 128 ячеек), лучше использовать модифицированную команду прыжка по абсолютному (что расширяет адресное пространство до 32*32 = 1024 ячеек). В таком случае лучше уже будет использоваеть блочную память для размещения памяти команд. А у нее размер 18*1024. Тогда уже нет смысла оставлять команду 9-битной, т.к. блок памяти все равно весь откусится. А при 18-битной команде об относительных переходах можно забыть.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 15, 2007 19:52 
white_TigR писал(а):
об относительных переходах можно забыть.


относительные переходы могут понадобиться, если делать перемещаемый код.


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

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


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

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


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

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