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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 11, 2009 18:47 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Ну например:

RegA
RegB
RegA + RegB
RegA - RegB
RegA AND RegB
RegA OR RegB
RegA XOR RegB
RegA shl 1
RegA shr 1
RegA shra 1

Умножение опционально, при наличии аппаратной умножалки. Для FPGA это существенно.
mOleg писал(а):
согласен. Может еще какой флаг упустил из виду?

zero, carry, sign, overflow (carry и overflow разные вещи), этот набор флагов стандартен для АЛУ, но что конкретно будет использовано, тем более для организации переходов - вопрос сильно философский.

mOleg писал(а):
а вот это контролировать должен компилятор. Формально можно и в несколько регистров писать одновременно( но это dst)
а src - всегда два источника имеется в произвольном порядке.

Хищник писал(а):
Аналогично с src, dest - получается one-hot кодирование, оно, конечно, очень быстро, но избыточно.

хочется обойтись без дешифратора команд. То есть по сути VLIW идеалогия.


В современных FPGA 4-битные поля можно декодировать достаточно смело, без заметной потери производительности. Даже немного не так - выигрыш от one-hot будет съеден другими факторами, например, лимитом будет АЛУ. А вот куча комбинаций флагов получаются недействительными, и тут уже получаются избыточные затраты памяти.
mOleg писал(а):
и еще вопрос. В принципе в такой архитектуре максимальный выигрыш от Гарварда, но Гарвард это лишние шины, что плохо (ну, если память не накристальная).

Так накристальную бы лучше, потому что внешняя все равно очень здорово уронит тактовую частоту. 10 нс - это довольно хорошая микросхема, с учетом платы частоты в 50 МГц и более будут сильно проблемными. А на кристалле те же 50 получаются довольно легко, даже при развесистых дешифраторах.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
eg писал(а):согласен. Может еще какой флаг упустил из виду?
zero, carry, sign, overflow (carry и overflow разные вещи), этот набор флагов стандартен для АЛУ, но что конкретно будет использовано, тем более для организации переходов - вопрос сильно философский.

carry\borrow - это одно и то же.
насчет overflow понятно, это следующий за carry бит, но, при сложении он может быть активирован только если carry = 1 при операциях сложения с переносом, так?
кстати, формально переходов нет, есть пропуски. То есть если флаг не установлен - выполняем команду.

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

ну, carry+sign может быть
а по сути в два бита можно поместить: нет активных флагов|нуль|отрицательное число|заем\переполнение
так нормально?

Хищник писал(а):
Так накристальную бы лучше, потому что внешняя все равно очень здорово уронит тактовую частоту. 10 нс - это довольно хорошая микросхема, с учетом платы частоты в 50 МГц и более будут сильно проблемными. А на кристалле те же 50 получаются довольно легко, даже при развесистых дешифраторах.

да это понятно. но не везде есть накристальная. К тому же не обязательно залазить так высоко по частотам.

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


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Хищник писал(а):
sign и zero одновременно проверяться не будут

Почему? Мы добиваемся минималистского решения? Ведь практически везде есть <= проверка... JLE


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

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

да, кстати да :) меньше или равно никто не отменял.
так что как бы не пришлось поле флагов расширять на один бит...

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


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

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

Overflow - это xor от последнего (который "общий carry") и предпоследнего битов переноса. Он устанавливается, когда результат пересекает границу между положительными и отрицательными числами в дополнительной двоичной арифметике. Например, для 8-битных чисел, 127+2 = 129, нет carry (результат поместился в 8 бит), но есть overflow (результат теперь будет трактоваться как отрицательное число).
mOleg писал(а):
ну, carry+sign может быть
а по сути в два бита можно поместить: нет активных флагов|нуль|отрицательное число|заем\переполнение
так нормально?

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

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


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

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

это понятно, но речь идет уже о экономии битов в команде, а тут стратегий может быть много :) и отсюда начнутся различия в архитектурах.
поэтому компрессией бит заморачиваться не хочется (только в АЛУ удобно перечисление сделать, понятно из 8 или 16 команд).

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


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

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

Тут отправная точка такая - в FPGA есть 4-входовая таблица истинности (у более современных 5 и 6-входовая, но это не принципиально). Любое комбинаторное выражение, использующее 4 входа и менее, будет реализовано на одной LUT. Поэтому есть смысл использовать эти 4 входа по максимуму, все равно выигрыша от уменьшения числа входов никакого. Это грубо, конечно, потому что бывают нюансы. А чтобы было не грубо, надо уже пробовать в САПР.


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

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

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


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

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


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

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


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

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


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

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