Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 32

Тема: Нечетные адреса

  1. #1
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Нечетные адреса

    Наверное этот вопрос уже поднимался, но, к сожалению, мне не удалось этого нигде найти. В фирменной документации есть только информация про трап, если хотим инструкцию по нечетному адресу. А что если берём слово данных по нечетному? Тут какое-то "белое пятно на карте" - пишут разное:

    в https://stackoverflow.com/questions/...t-does-it-mean какой-то "грамотей" написал, что просто нельзя совсем;

    в https://gunkies.org/wiki/PDP-11_stacks написано уже что-то разумное, что на некоторых моделях при обращении к нечётному адресу на стеке получаем исключение, а на некоторых машина просто игнорирует младший бит. Однако регистр для стека особый, он всегда при автоинкременте или декременте сдвигается на 2, поэтому вопрос, что случится, если использовать регистры R0-R5 остаётся;

    в документации на T11 написано, что младший бит всегда игнорируется.

    В К1801ВМ1 с нечётными адресами данных вроде всё работает, младший бит игнорируется. Так ли это с ВМ2, ВМ3? Можно ли считать, что нечетные адреса данных работают всегда, с исключением для стека по нескольким случаям?

  2. Этот пользователь поблагодарил litwr за это полезное сообщение:

    anasana (08.12.2021)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что процессор на шину выдаст - вопрос интересный....
    Но если он работает через стандартную шину от DEC, то и смотреть надо именно на описание шины. Как, к примеру, QBUS с адресами работает, вполне ясно описано. Бит младший адресации игнорируется. Есть специальный сигнал байта. При обмене процессор генерит единичную транзакцию(чтение, запись или чтение-модификация-запись). Значит более одного байта при нечётном адресе за одну пересылку никак. Вот если бы на обмен шло более одного цикла шины(два чтения или две записи, либо две чтение-модификация-запись), то тогда... Однако так не бывает... PDP-11 на один операнд в команде генерит один цикл шины. PDP-11 - двухадресная, то есть число операндов максимум 2 для CPU(но вопрос был только про работу с одним операндом, как я понял).
    Для этого случая нескольких циклов обмена в PDP-11 есть FPU или CIS. Как FPU или CIS будет генерить, вопрос интересный, если подсунуть нечётный адрес... Или прерывание, или игнор бита для FPU??? А вот CIS вопрос интересный...
    Но у меня никогда не было машины с FPU или CIS
    И что будет, если шина нестандартная???
    На этот вопрос могут ответить те, кто занимался реверсом процессоров...
    И что позволит мост между нестандартной шиной и процессором...???
    Ой, ещё забыл рассмотреть конфигурацию с кэш-памятью, но по идее кэш должен быть "прозрачен" и процессор должен с ней работать как с обычной, только быстрой, памятью.
    Последний раз редактировалось Alex; 08.12.2021 в 11:46.

  5. Эти 2 пользователя(ей) поблагодарили Alex за это полезное сообщение:

    anasana (08.12.2021), litwr (09.12.2021)

  6. #3
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,964
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    626
    Поблагодарили
    527 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Что процессор на шину выдаст - вопрос интересный
    На тех процах, которые нервно реагируют на нечётный адрес в словном обращении, не факт, что вообще дело до обращения дойдет.
    На тех, которые не реагирую - подозреваю, что тупо выдают полный адрес, включая нулевой бит. Насколько я помню, где то в машинках типа БК-УКНЦ-СОЮЗ-Неон это используется для обращения к устройствам с байтовыми регистрами

    Цитата Сообщение от Alex Посмотреть сообщение
    PDP-11 на один операнд в команде генерит один цикл шины
    Не всегда. Но это не байтов касается.

    Цитата Сообщение от Alex Посмотреть сообщение
    Значит более одного байта при нечётном адресе за одну пересылку никак.
    И да и нет. Со стороны проца - никак. Со стороны устройства (при условии, что проц не реагирует на нечётный адрес в словном обращении) - технически, можно сделать. Но я про такое не слышал. Хотя сделать, скажем, на своём устройстве - могу.

    Цитата Сообщение от Alex Посмотреть сообщение
    Как FPU или CIS будет генерить
    Насколько я знаю - трапают (судя по тестам)

    Цитата Сообщение от Alex Посмотреть сообщение
    И что будет, если шина нестандартная???
    Шина здесь вообще не причём. По крайне мере классическая, которая не вмешивается в обмен. Весь вопрос к внешним устройствам, так со стороны существующих процов (или новоделов, но которые ведут себя как мамка велела) - всё предопределено.


    Цитата Сообщение от litwr Посмотреть сообщение
    Однако регистр для стека особый
    Не только регистр стека, ещё PC, однако с PC есть нюансы на некоторых процессорах.

    - - - Добавлено - - -

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

  7. Этот пользователь поблагодарил Hunta за это полезное сообщение:

    anasana (08.12.2021)

  8. #4
    Master Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    590
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    115 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    В К1801ВМ1 с нечётными адресами данных вроде всё работает, младший бит игнорируется. Так ли это с ВМ2, ВМ3? Можно ли считать, что нечетные адреса данных работают всегда, с исключением для стека по нескольким случаям?
    1801ВМ1 всегда выдаёт адрес, как есть. По стандарту шины младший бит используется только в транзакциях записи байта и только для указания, какой из двух байтов замаскировать. По нестандарту -- можно размещать слова понечётным адресам, и кое-кто этим пользуется. Кроме того, на тех PDP-11, где r0-r7 доступны по шине, они занимают адреса через единичку. 177770--177777.
    Возвращаясь к ВМ1, он допускает нечётные PC и SP, но, в соответствии со стандартом, всегда производит автодекремент/инкремент на 2 вне зависимости от разрядности операнда. ВМ2, насколько я помню, тоже допускает нечётный PC. ВМ3 -- это, насколько я понимаю, 11/34, и в соответствии с оригиналом на нечётном PC он трапается.

  9. Эти 2 пользователя(ей) поблагодарили Sandro за это полезное сообщение:

    anasana (08.12.2021), litwr (09.12.2021)

  10. #5
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,964
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    626
    Поблагодарили
    527 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    ВМ3 -- это, насколько я понимаю, 11/34
    Похож, но не он (хотя бы из того, что PDP-11/34 18-ти битный и Unibus), но на нечётном адресе он да, трапает

  11. #6
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    На тех процах, которые нервно реагируют на нечётный адрес в словном обращении, не факт, что вообще дело до обращения дойдет.
    На тех, которые не реагирую - подозреваю, что тупо выдают полный адрес, включая нулевой бит. Насколько я помню, где то в машинках типа БК-УКНЦ-СОЮЗ-Неон это используется для обращения к устройствам с байтовыми регистрами


    Не всегда. Но это не байтов касается.
    Ну да, есть процессоры, кои вместо чтения-модификации-записи делают чтение с последующей записью. Но всё равно в следующее слово по шине не влезут. Например T-11, и дай бог памяти в каких-то случаях 1801ВМ1

    Цитата Сообщение от Hunta Посмотреть сообщение
    И да и нет. Со стороны проца - никак. Со стороны устройства (при условии, что проц не реагирует на нечётный адрес в словном обращении) - технически, можно сделать. Но я про такое не слышал. Хотя сделать, скажем, на своём устройстве - могу.
    Это устройство будет вынужденно генерить второй цикл шины... Ну шины от DEC QBUS, UNIBUS, да и CTI словные... байт там читается специальным сигналами. Впечатление, что работу с байтами допиливали опосля того как ...

    Цитата Сообщение от Hunta Посмотреть сообщение
    Насколько я знаю - трапают (судя по тестам)
    По поводу FPU минимально сомневался... В случае CIS могли быть варианты...

    Цитата Сообщение от Hunta Посмотреть сообщение
    Шина здесь вообще не причём. По крайне мере классическая, которая не вмешивается в обмен. Весь вопрос к внешним устройствам, так со стороны существующих процов (или новоделов, но которые ведут себя как мамка велела) - всё предопределено.
    Процессоры ведь строятся под шину... Это сейчас на FPGA можно шо хош прилепить вложив энное количество усилий Однако тогда с сим было сильно сложнее...


    Цитата Сообщение от Hunta Посмотреть сообщение
    Не только регистр стека, ещё PC, однако с PC есть нюансы на некоторых процессорах.

    - - - Добавлено - - -

    Вдогонку. Если я правильно помню и правильно понял, то T11 может при словном обращении давать две операции на шине - как при чтении, так и при записе. Но из DEC-оских процов - только он.
    Есть конечно... Но эти ньюансы упираются в шину. Про T11 и 1801ВМ1 писал...

    - - - Добавлено - - -

    Цитата Сообщение от Sandro Посмотреть сообщение
    1801ВМ1 всегда выдаёт адрес, как есть. По стандарту шины младший бит используется только в транзакциях записи байта и только для указания, какой из двух байтов замаскировать. По нестандарту -- можно размещать слова понечётным адресам, и кое-кто этим пользуется. Кроме того, на тех PDP-11, где r0-r7 доступны по шине, они занимают адреса через единичку. 177770--177777.
    Возвращаясь к ВМ1, он допускает нечётные PC и SP, но, в соответствии со стандартом, всегда производит автодекремент/инкремент на 2 вне зависимости от разрядности операнда. ВМ2, насколько я помню, тоже допускает нечётный PC. ВМ3 -- это, насколько я понимаю, 11/34, и в соответствии с оригиналом на нечётном PC он трапается.
    Ну регистры по этим адресам были сделаны микропрограммно, чисто для удобства пультового режима, чтобы быстро посмотреть с пульта, что в регистрах. Сталкивался с этим на СМ-4. Это потом уже ODT в пульт впихнули, и смысл в этом потерялся и регистры убрали. Так сказать сэкономили
    1801ВМ3 - трапается Некоторые программы, криво писаные вылетали. Остался пережиток в виде адресуемого PSW.
    Последний раз редактировалось Alex; 08.12.2021 в 19:25.

  12. #7
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,964
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    626
    Поблагодарили
    527 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Это устройство будет вынужденно генерить второй цикл шины...
    Для начала - смотря что считать циклом. Если от Sync до Sync, то, например, есть блочный ПДП
    И для завершения - у меня лежат две платы с 1801ВМ3, на которых стоит одна (1) микросхема ПЗУ с характеристикой 64кб x 8. Каждое слово проц читает за один цикл

    - - - Добавлено - - -

    Цитата Сообщение от Alex Посмотреть сообщение
    Процессоры ведь строятся под шину...
    Не надо путать шину (набор проводков) и протокол обмена по шине

  13. #8
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо посмотреть на схемотехнику платы, как там сделано.
    У меня есть некое подозрение, что всё это сделано посредством FPGA

    Блочный режим - вещь классная
    Есть подозрение что и процессор так может, через кэш-память .
    - - - Добавлено - - -

    Протокол и шина они сделаны одно под другое. И я не слышал, что бы кто-то на конструктиве одной шины - запускал протокол другой ...
    Просто овчинка выделки не стоит. Но вполне реально.
    Последний раз редактировалось Alex; 08.12.2021 в 19:35.

  14. #9
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,964
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    626
    Поблагодарили
    527 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    У меня есть некое подозрение, что всё это сделано посредством FPGA
    Сделано на FPGA, но даже я это могу повторить на мелкологике В данном случае FPGA заменяет э... несколько простых микросхем Так что повторить такой фокус можно на чём угодно, но всё упрётся в быстродействие микросхем памяти

    - - - Добавлено - - -

    Цитата Сообщение от Alex Посмотреть сообщение
    И я не слышал, что бы кто-то на конструктиве одной шины - запускал другую ...
    Ещё раз - и шина и конструктив - это просто набор соединений. И если количество устраивает - можно сделать всё, что угодно. Но понятно, что речь не идёт о сценариях, когда начинают использовать протокол обмена. Типа - 580ый ВМ прикрутить к ПРОТОКОЛУ QBus. Тут уже нужна трансляция протоколов.

  15. #10
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде что-то было из контроллеров с ПДП на QBUS c 8080... Но деталей не помню

    - - - Добавлено - - -

    Были ещё средства крос-работы. Второй процессор ставили и DEC, 8080 и Z80... Даже платы с 8086. Варианты с 8080 и 8086 наши творчески скопировали.
    Это только те, что я знаю... Вполне возможно, что было много, про что я не ведаю.

    И доступ похоже по DMA был ... Ну во всяком случае 8086, так как эмулировалась XT с CGA. Отображался экран.
    Но увы, я с таковым не сталкивался Что да как там сделано не ведаю... У меня только мои гнусные домыслы

    Что касается шины - как набора проводов, то не всякий протокол запустишь. Упрёшься в электрические параметры проводов.
    Типа PCI-E 4.0 по проводке UNIBUS да ещё с расширителями шины каждые 17 метров(если не ошибаюсь конечно, мог и запамятовать) ...
    Хотя обратная задача вполне решаема

    Из экзотики: видел к СМ-4 подключенный канал ввода-вывода ЕС.... Аж целая стойка была забита но не плотнячком
    Последний раз редактировалось Alex; 08.12.2021 в 20:15.

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Изменение адреса 1801ВП1-128
    от MM в разделе БК-0010/0011
    Ответов: 0
    Последнее: 15.03.2019, 15:45
  2. Расчет адреса точки на экране
    от Ares в разделе Программирование
    Ответов: 10
    Последнее: 26.07.2012, 17:46
  3. Определение текущего адреса
    от Alex Rider в разделе Программирование
    Ответов: 52
    Последнее: 26.07.2012, 13:38
  4. Адреса 00H-100H
    от Helloween в разделе Оси
    Ответов: 14
    Последнее: 10.05.2011, 14:26
  5. FDD - адреса
    от AlexBel в разделе MSX
    Ответов: 1
    Последнее: 11.05.2009, 10:45

Ваши права

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