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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

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

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


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

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
PIC16 - почти и есть простейший. :roll:
там как раз гарвард. один аккумулятор PC и остальное память.
Ну коечно часть ее регистры спец функций.


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

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

не-не, вполне четким. Один и тот же код ляжет и туда и туда.
только в случае "самого простого процессора" никаких регистровых оптимизаций не получится. Каждая команда будет работать с памятью.
эффективность реализации тут как бы всегда роль играет, то есть для любого процессора, кто-бы его не делал.
если хочется, можно считать, что одна команда выполняется за 3 обращения к памяти (в самом простом процессоре).

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


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

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



только не за 3, а за 16 или 12...

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


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

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

а это еще почему?

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


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

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

Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, достать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан
открыть кошелек, достать деньги, закрыть кошелек
Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, убрать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан

отдать деньги в кассу

Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, достать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан
открыть кошелек, убрать лишние деньги, закрыть кошелек
Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, убрать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан

получить сдачу из кассы

Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, достать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан
открыть кошелек, убрать сдачу, закрыть кошелек
Открыть чемодан, достать сумочку, закрыть чемодан
открыть сумочку, убрать кошелек, закрыть сумочку
открыть чемодан, убрать сумочку, закрыть чемодан


Так же и с этим процессором
куча пересылок, чтобы ничего не потерять и не забыть по дороге

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


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

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

это уже слишком :)
в любом случае я на такой проц смотреть не захотел бы

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


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

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


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

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

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


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

Зарегистрирован: Пн окт 15, 2007 17:24
Сообщения: 164
Откуда: Бийск
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Цитата:
я говорил о адресуемых регистрах, то есть регистрах которые необходимы для работы как таковые.

Если речь идет о представлении архитектуры для программиста, то, пожалуй, достаточно и одного счетчика команд (указателя инструкций), а все операнды держать в памяти (что разумно - данные лежат в памяти), адресуя их прямой или косвенной адресацией через PC (2 и 3 тип адресации, помнится, в терминах PDP-11).

_________________
And so forth ...


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

Зарегистрирован: Вт апр 29, 2008 15:09
Сообщения: 114
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребят вы только посмотрите на это. Это ж каким исполином духа надо быть что бы полностью на транзистороно-диодной базе собрать процессор 16 разрядный? Это кроме того что там еще и 6502 на ТТЛ логике! Какие красавцы!
http://web.whosting.ch/dieter/


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

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

да нет же!
разговор о том, что у всех процессорных архитектур есть общее, с которым можно работать.
Наиболее близкое к общему такое процессорное устройство, которое может работать с одним кортежом: operation srcA srcB dst !
любой алгоритм ляжет в такой процессор. Все остальные особенности архитектур есть развитие данного минимального ядра.
Причем в основном стараются сократить количество обращений к памяти, потому что именно память в основном ограничивает скорость.
То есть речь даже не идет, в то, во сколько ячеек оно уляжется в ПЛИС - это не важно. Важно что с таким процессором можно сравнивать эффективность всех остальных.

Варнак писал(а):
Если речь идет о представлении архитектуры для программиста, то, пожалуй, достаточно и одного счетчика команд (указателя инструкций), а все операнды держать в памяти (что разумно - данные лежат в памяти), адресуя их прямой или косвенной адресацией через PC (2 и 3 тип адресации, помнится, в терминах PDP-11).

ну, я не говорил, что надо уж совсем не эффективно, а то действительно получится то ли 12 обращений на команду то ли 16 обращений к памяти, что уже ну совсем в ворота не пролазит.

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


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

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

регистры процессора:

RegA ─ один регистр
RegB ─ второй регистр
ip ─ указатель интерпретации (указывает на следующую команду)
data ─ регистр в который читается литеральное значение из команды (может и не читаться)

flags─ флаги: переполнение, равенство нулю, знак
─────────────────────────────────────────────────
каждая команда содержит литеральное поле, именуемое data
его данные могут трактоваться как адрес и как значение
разрядность данных и разрядность адресов совпадают

в зависимости от содержимого поля флагов любая команда может быть проигнорирована

каждая команда имеет двойную длину, во второй ячейке находятся данные для cmd
в первой - команда
─────────────────────────────────────────────────

операции с АЛУ:
1) ALU(RegA,RegB) ─ mem(data)
2) ALU(RegX,data) ─ RegY
3) ALU(RegX,mem(data)) ─ RegY

пересылки:
1) mem(cmd) ─ RegY
2) data ─ RegY
3) mem(RegX) ─ RegY
4) RegX ─ mem(RegY)
5) data ─ ip
6) mem(data) ─ ip
7) mem(RegX) ─ ip
8) RegX ─ RegY ??? нужно ли ???
9) ip ─ mem(data)
────────────────────────────────────────────
формат команды: [opcode|data]
opcode состоит из следующих полей:
type - 1 bit - alu/move - тип команды алу\пересылка
flag - 3 bit - zero,sign,over - реагирование на флаг - пропуск выполнения по условию
src - 5 bit - RegA,RegB,mem,data,ip
dst - 4 bit - RegA,RegB,mem,ip
alu - 3 bit - до 8 двухоперандных команд
таким образом разрядность оператора 16 бит.
если поля mem и data не установлены, поле data в команде отсутствует

таким образом декодер только на АЛУ

ip каждый раз инкрементируется самостоятельно
──────────────────────────────────────────────
с другой стороны операции MOV можно сделать через ALU, в том смысле, что сделать
две команды АЛУ для передачи без изменений информации от каждого из входов к выходу.

и рисуночек Изображение

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ну нормально, уже можно поведенческий код писать. Я бы еще откусил один бит от флагов, и сделал там не по биту на флаг, а двоичными комбинациями. Все равно, скажем, sign и zero одновременно проверяться не будут. Аналогично с src, dest - получается one-hot кодирование, оно, конечно, очень быстро, но избыточно. Что делать, если в поле src установлены два бита сразу? Alu/move, соответственно, действительно можно заменить на формирование на выходе АЛУ одного из операндов без изменений.


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

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

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

Хищник писал(а):
Я бы еще откусил один бит от флагов, и сделал там не по биту на флаг, а двоичными комбинациями. Все равно, скажем, sign и zero одновременно проверяться не будут.

согласен. Может еще какой флаг упустил из виду?

Хищник писал(а):
Что делать, если в поле src установлены два бита сразу?

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

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

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

Хищник писал(а):
Alu/move, соответственно, действительно можно заменить на формирование на выходе АЛУ одного из операндов без изменений.

ага, я про это уже сказал(в смысле спросил).

и еще вопрос. В принципе в такой архитектуре максимальный выигрыш от Гарварда, но Гарвард это лишние шины, что плохо (ну, если память не накристальная).

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


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

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


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

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


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

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