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

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,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 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
    Регистрация
    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.

  9. #5
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

    По умолчанию

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

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

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

  11. #7
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  12. #8
    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 он трапается.

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

    anasana (08.12.2021), litwr (09.12.2021)

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

    По умолчанию

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

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

    По умолчанию

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

Страница 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

Ваши права

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