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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Системные регистры форт-процессора
Автор Сообщение
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
WingLion писал(а):
одной командой? Это формально то же самое, что команда с префиксом... только префикс получается - короткий литерал

Именно. А регистры-то ведь такие, что особо часто их читать и не надо.
Сообщение Добавлено: Сб дек 17, 2011 21:07
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Хищник писал(а):
А у меня сейчас 0-31 кладутся на стек одним тактом.


одной командой? Это формально то же самое, что команда с префиксом... только префикс получается - короткий литерал ;)
Сообщение Добавлено: Сб дек 17, 2011 20:08
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
А у меня сейчас 0-31 кладутся на стек одним тактом. :)
Сообщение Добавлено: Сб дек 17, 2011 19:45
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Хищник писал(а):
Нет, не реализовывать их в памяти, а просто отобразить на адресное пространство. Тогда при выполнении @ мультиплексор подсунет вместо выхода памяти выход регистра.


да, но для этого @ надо будет на стек целый адрес положить, а это некузяво...
Лучше в команде адресовать нужный регистр, дополнительным полем / параметром / префиксным кодом и т.п. Он ведь всяко короче полного адреса. А тогда в память отражать - лишнее.
Сообщение Добавлено: Сб дек 17, 2011 19:33
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
WingLion писал(а):
Вряд ли это вариант. Ведь регистры еще в процессе работы команд модифицируются, а значит, это дополнительные два цикла с памятью
в нагрузку а на команду...

Разве что изначально полагать, что командный цикл - это 3-4 обращения к памяти...

Нет, не реализовывать их в памяти, а просто отобразить на адресное пространство. Тогда при выполнении @ мультиплексор подсунет вместо выхода памяти выход регистра.
Сообщение Добавлено: Сб дек 17, 2011 19:25
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Хищник писал(а):
Но это тоже вариант.


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

Разве что изначально полагать, что командный цикл - это 3-4 обращения к памяти...
Сообщение Добавлено: Сб дек 17, 2011 19:16
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
dynamic-wind писал(а):
Отобразим регистры на память, сэкономим опкод


"Экономика должна быть экономной" (с)...
Если работа с регистрами не будет отличаться от работы с памятью, зачем такие регистры? Проще сразу с памятью работать.
Сообщение Добавлено: Сб дек 17, 2011 19:15
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
dynamic-wind писал(а):
Отобразим регистры на память, сэкономим опкод

Мультиплексор сложнее получается, надо еще диапазон адресов проверять. Сейчас критичная по времени цепь проходит как раз от стека к стеку - т.е. через АЛУ, декодер команд, мультиплексор и т.д. Но это тоже вариант. Я вообще сейчас объединил адресные пространства памяти и IO.
Сообщение Добавлено: Сб дек 17, 2011 17:18
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Отобразим регистры на память, сэкономим опкод 8)
Сообщение Добавлено: Сб дек 17, 2011 17:05
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
chess писал(а):
в обоих случаях на стеке лежит сверху номер регистра( N ),


Нет-нет-нет... номер регистра берется из командного потока, и на стек его незачем класть - лишняя потеря времени...
Сообщение Добавлено: Пт дек 16, 2011 18:43
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Хищник писал(а):
Тогда получается, что после префикса нужна команда, у которой будет неодинаковое воздействие на стек. Потому что в одном случае она должна вместо номера регистра положить его содержимое, а в другом - снять два числа.


В одном случае, она должна положить на стек содержимое регистра, в другом отправить одно данное со стека в регистр. И ничего лишнего... номер регистра в опкоде зашит и его "адрес" незачем на стек записывать.

По тактам - это ровнехонько один такт в любом случае.
Сообщение Добавлено: Пт дек 16, 2011 18:33
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Хищник писал(а):
Тогда получается, что после префикса нужна команда, у которой будет неодинаковое воздействие на стек. Потому что в одном случае она должна вместо номера регистра положить его содержимое, а в другом - снять два числа.

Ну правильно в обоих случаях на стеке лежит сверху номер регистра( N ), который берется в качестве префикса, но не весь, а только три младших разряда, а старший разряд надо использовать в качестве недостающего для формирования опкодов 2-х команд
SYSTEM@ и SYSTEM! для положить на стек из сист рег. вместо N или взять два значения со стека для положить в сист. регистр.
В один такт при этом не влезть.
Сообщение Добавлено: Пт дек 16, 2011 15:56
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Тогда получается, что после префикса нужна команда, у которой будет неодинаковое воздействие на стек. Потому что в одном случае она должна вместо номера регистра положить его содержимое, а в другом - снять два числа.
Сообщение Добавлено: Пт дек 16, 2011 15:10
  Заголовок сообщения:  Re: Системные регистры форт-процессора  Ответить с цитатой
Кстати, еще один моментик, который может помочь сократить набор.

Пусть "системных регистров" у нас 8 штук, не важно, как они называются, просто 8 регистров, которые надо уметь адресовать, читать и писать.

Если система команд 4-хбитная (к примеру), то любое обращение к такому регистру требует два кода - код команды и адрес. 4-хбитный адрес позволяет задавать одновременно и один из 8 регистров и операцию с ним (чтение/запись).

В таком случае, на системные регистры нужен всего один опкод-префикс -
SYSTEM*. И к нему опкод-адрес 0..7 - чтение одного из 8 регистров, 8..15 запись в один из регистров.
Сообщение Добавлено: Пт дек 16, 2011 04:20
  Заголовок сообщения:  Системные регистры форт-процессора  Ответить с цитатой
В раздумьях над тем, как бы выкроить пару опкодов для компактной системы команд, пришла в голову мысль о дополнительном адресном пространстве для системных регистров форт-процессора. С одной стороны, стековая машина сама по себе не подразумевает каких-то системных регистров. С другой, при технической реализации они так или иначе образуются. Приведенные ниже слова могут быть представлены в виде связки N SYSTEM@, где N - номер регистра, а SYSTEM@ (название условное) - слово, кладущее на стек содержимое соответствующего аппаратного регистра, отвечающего за данное состояние.

PC
DEPTH
RDEPTH
R@
I
J

Пара >R R> может быть заменена на >R RDROP, но работу со стеком возвратов не удается свести к одной команде с помощью такого приема. Выход, впрочем есть, но он немного "хакерский" - чтение регистра по R@ одновременно снимает число со стека возвратов. Вернуть его туда можно через DUP >R.
Сообщение Добавлено: Пт дек 16, 2011 01:25

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


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