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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 15, 2007 20:02 
Ну, многозадачности тут нет. И динамического выделения памяти кода тоже нет. При 18-битной команде адресуемое пространство 32 кслова. Этого более чем достаточно.


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

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


Перемещаемый код в "пико-ядре"????


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
У /me складывается сильное впечатление, что многие читают самый последний пост и отвечают что-то свое.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 00:28 
Не в сети
Moderator
Moderator
Аватара пользователя

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


по какой причине выбрана различная разрядность стеков? к тому же не кратная 8(

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

что такое nip ? или просто неудачно сгруппированы комманды?

зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?

какой смысл в inport outport? зачем добавлять еще одно адресное пространство?

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

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

ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 10:17 
mOleg писал(а):
по какой причине выбрана различная разрядность стеков? к тому же не кратная

По разрядности того, что там лежит.
Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит.
Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит.
Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита.

mOleg писал(а):
что такое nip ?

nip ( a b -- b )
Число "a" помещается в служебный регистр, из которого вытаскивается командой temp>.
Последовательность команд nip temp> эквивалентна команде swap. Swap не вписывается в общую концепцию, т.к. работает сразу с 2 ячейками стека, а в один момент можно переписать только одну ячейку. Поэтому команда swap и была разбита на последовательность nip temp>.

mOleg писал(а):
зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?

lshift, rshift - это которые на произвольное число бит сдвигает?
Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС.

mOleg писал(а):
какой смысл в inport outport?

Для общения с "периферией" на кристале.
В ядре есть ноги t_addr, t_dout, t_we, t_din.
Каждому модулю присвоен свой адресс.
"data addr outport" пишет по адрессу addr данные.
"addr inport" читает.

mOleg писал(а):
какие у процессора есть регистры?

Кроме регистра "temp" никаких. :)

mOleg писал(а):
опять же не понятно почему выбрана такая маленькая разрядность данных?

По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить.

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

Разрядность всех стеков разная.

mOleg писал(а):
ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?

Пока все в процесе разработки. Через пару недель, после того как все приведу в более-менее нормальный вид, возможно куда-нибудь и выложу.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 10:46 
Команды сгрупированы по тому, что делают со стеком.
Т.е. берут 2 числа, записывают 1.
Берут 2 числа, ничего не записывают и т.д...


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

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

По разрядности того, что там лежит.
Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит.
Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит.
Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита.

собственно, почему выбрана такая разрядность данных\адресов?

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

Разрядность всех стеков разная.

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

white_TigR писал(а):
mOleg писал(а):
зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?

lshift, rshift - это которые на произвольное число бит сдвигает?
Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС.

нуу, не так уж и сильно для 8-то бит, но ответ понятен.

white_TigR писал(а):
mOleg писал(а):
какой смысл в inport outport?

Для общения с "периферией" на кристале.
В ядре есть ноги t_addr, t_dout, t_we, t_din.
Каждому модулю присвоен свой адресс.
"data addr outport" пишет по адрессу addr данные.
"addr inport" читает.

я так понимаю, влияние архитектуры процессоров интеля наблюдается?
просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение.

white_TigR писал(а):
mOleg писал(а):
какие у процессора есть регистры?

Кроме регистра "temp" никаких. Smile

гм, ну TOP RTOP IP точно есть 8)

white_TigR писал(а):
mOleg писал(а):
опять же не понятно почему выбрана такая маленькая разрядность данных?

По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить.

не совсем понятно, что подразумевается под понятием "сопроцессор" и для чего он может быть предназначен.
white_TigR писал(а):
Команды сгрупированы по тому, что делают со стеком.
Т.е. берут 2 числа, записывают 1.
Берут 2 числа, ничего не записывают и т.д...

white_TigR писал(а):
Команды сгрупированы по тому, что делают со стеком.
Т.е. берут 2 числа, записывают 1.
Берут 2 числа, ничего не записывают и т.д...

это стоило указать, так как получилось, что + - and or xor nip - арифметика и логика что меня и удивило


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

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

Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего.
mOleg писал(а):
я так понимаю, влияние архитектуры процессоров интеля наблюдается?
просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение.

Это не интел, это обычная синхронная архитектура. От стробов народ давно отошел, асинхронность в маленьком скоростном чипе - залог нестабильности на электрическом уровне. Чем больше адресных пространств будет - тем лучше, эффективнее используется пропускная способность кристалла. Гарвардская архитектура имела тот недостаток, что требовала много выводов корпуса, что в эпоху DIP40 было нереально.


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

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

Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего.


ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift
а если какие и нужны сдвиги, так это циклические.
И еще не понятно, как быть с флагами?

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift

А сдвиг на один бит как раз очень просто делается.
mOleg писал(а):
а если какие и нужны сдвиги, так это циклические.
И еще не понятно, как быть с флагами?

В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.


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

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

ладно, просто было и есть интересно, как оно, что и почему 8)
насчет перефирийного контроллера не понял 8(
маленькая память - мне понятно, но слишком маленькое адресное пространство тоже не понятно 8(
в чем выигрыш при двух битах разницы разрядности?
проигрыш в отсутсвии возможности переноса данных между стеками меня пугает Ж8-О

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


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

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


В конкретных ПЛИС-ах имеются конкретные ресурсы.
Когда адрес 8 бит в данную ПЛИС не влазит, а 6 бит влазит - тогда и появляется разница.

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


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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт авг 17, 2007 22:29 
Угу, и уже есть слово "ГрузисьПоШнурку" в кварке. :)


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

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

Хищник писал(а):
В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.

Условных переходов не будет? :(

_________________
With best wishes, in4.


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

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


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

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


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

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