Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Другие архитектуры » Инопланетные скрижали |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 .. 25 26 27 28 29 30 | Печать |
MC68k |
Anonymous написал: Это типа монитора РКшного? А периферия еще выше сидит 177ххх? Пультовое ПЗУ желательно спрятать по биту признака пультового режима процессора, т.к. пультовые вектора фиксированы по адресам 0160002..0160014 |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Это только три вектора аварийных ситуаций, само ПЗУ может быть где угодно. Вектора пользователя расположены в нижних адресах, 4/6 - таймаут шины, 010/012 - ошибочная/резервная инструкция, 014/016 - отладочное прерывание для пошагового исполнения программы и по команде BPT, 020/022 - прерывание по команде IOT, 024/026 - прерывание по ножке ACLO процессора, 030/032 - прерывание по команде EMT, 034/036 - прерывание по команде TRAP, 0100/0102 - прерывание по ножке IRQ2/EVNT, 0270/0272 - прерывание по ножке IRQ3. При этом счётчик команд и регистр состояния процессора сохраняются в стеке. А вот аварийные прерывания имеют вектора 0160002/0160004 - зависание шины в пультовом режиме, выполнение команды HALT или прерывание по ножке IRQ1/HALT процессора, 0160006/0160010 - прерывание по двойному зависанию шины, когда попытка сохранить регистр состояния и счётчик команд в стеке после таймаута шины приводит к повторному прерыванию по таймауту шины, т.е. если указатель стека смотрит на несуществующую память (регистры) или ПЗУ, 0160012/0160014 - прерывание при таймауте передачи вектора прерывания. При прерываниях по аварийным, пультовым векторам, регистр состояния сохраняется в ячейке 0177676, а счётчик команд - в ячейке 0177674, эти же две ячейки служат стартовым вектором прерывания по командам START и STEP. Ещё у процессора имеется блок регистров длиной 16 байт и его адрес зависит от номера процессора в системе. Номер задаётся двумя ножками, PA0 и PA1, при этом изменяется не только адресация блока системных регистров, но и выполнение процессором циклов на шине. Если процессор стоит "главным", то он имеет адреса блока регистров 0177700..0177717 и сам инициирует обмен на шине. А если номер процессора другой, то блок регистров размещается в области 0177720..0177777, в зависимости от номера, а на шине процессор выполняет циклы только после запроса и предоставления ему шины от главного процессора или устройства DMA. |
MC68k |
Anonymous написал: Я правильно понимаю, что там должна быть некая память, в том числе ОЗУ, с осмысленными адресами перехода? Это только три вектора аварийных ситуаций, само ПЗУ может быть где угодно. Anonymous написал: Это хорошая новость. Вектора пользователя расположены в нижних адресах, Anonymous написал: Возможно ли в учебных целях поставить на них заглушку? А вот аварийные прерывания имеют вектора Anonymous написал: Это лишнее, но за раскрытие темы доходчивыми словами большое спасибо. Ещё у процессора имеется блок регистров длиной 16 байт и его адрес зависит от номера процессора в системе. А железки-то где? В смысле ИРПС, ИРПР, КНГМД. Я что-то никак не въеду, как сообразить дешифратор на рассыпухе. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
MC68k написал: Тогда их смысл теряется - не допускать зависания системы в случае ошибок в программе и отлаживать программу из фантомного, невидимого для системы, и не занимающего адресного пространства отладчика. Но даже если ставить заглушку - её придётся ставить. Возможно ли в учебных целях поставить на них заглушку? Архитектурой процессора подразумеваются два режима работы - программ пользователя и пультовой, в первый из них процессор переходит по командам START и STEP, во второй - по критической ошибке, команде останова, либо сигналу останова. При переходе в тот или другой режим, процессор считывает свой регистр SEL1 и записывает обратно модифицированное его значение. Для пультового режима в "1" устанавливается 3 разряд, а для режима пользователя - снимается. Как раз этим разрядом включается/отключается ПЗУ по нужным адресам, а в режиме пользователя на его месте может быть ОЗУ или какие-либо устройства. Железки можно по удобным адресам расположить, ВМ1 не требователен к этому. Строго фиксированные адреса ИРПС требуются процессорам 581, 1811 и 1831 серий, т.к. у них общение с ними в микропрограмму процессора зашито. В сериях 1801, 1806, 1807, 1836 - всё зависит от программы в ПЗУ. |
svinka
Advanced Member
Сеньор Откуда: Совчина Всего сообщений: 1585 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 июня 2016 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 24 сентября 2017 23:52 Сообщение отредактировано: 24 сентября 2017 23:53
Anonymous написал: Но Архитектура PDP-11 (по документу DEC) обязывает иметь терминальный порт на 177560 (если я все правильно в детстве прочитал) Так что с точки зрения DEC - БК не PDP-11 совместимый компьютер, хотя с совместимой системой команд, Ну и страница ввода-вывода не того размера (не совместимая с архитектурой PDP-11) |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 25 сентября 2017 0:15 Сообщение отредактировано: 25 сентября 2017 0:15
svinka написал: Ну так в 1985 г.ГК БК так и сказали ТРЕЗВЫЕ Товарищи из Кремля - "гавняшку спроектировал, исправляйся !". БК не PDP-11 совместимый компьютер, В результате в 1987 г . родилась УКНЦ, с 177560 терминалом, аппаратным делением/умноженем, 80 к0тами в строке... Но это был фальстарт. Настоящая УКНЦ родилась в 1990 г.( которая не висела спустя полчасика после включения ). |
MC68k |
Anonymous написал: ok. Тогда их смысл теряется - не допускать зависания системы в случае ошибок в программе и отлаживать программу из фантомного, невидимого для системы, и не занимающего адресного пространства отладчика. Но даже если ставить заглушку - её придётся ставить. Anonymous написал: То есть "ячейка", которая выбирается по SEL1 доступна на чтение и запись? При переходе в тот или другой режим, процессор считывает свой регистр SEL1 и записывает обратно модифицированное его значение. Для пультового режима в "1" устанавливается 3 разряд, а для режима пользователя - снимается. Как раз этим разрядом включается/отключается ПЗУ по нужным адресам, а в режиме пользователя на его месте может быть ОЗУ или какие-либо устройства. Anonymous написал: Это хорошая новость. Железки можно по удобным адресам расположить, ВМ1 не требователен к этому. svinka написал: Как будто чтото плохое. Так что с точки зрения DEC - БК не PDP-11 совместимый компьютер, хотя с совместимой системой команд, MM написал: Лучше поздно, чем никогда, ага Настоящая УКНЦ родилась в 1990 г. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
MC68k написал: SEL1 отвечает на DOUT, но изменить состояние там могут только биты 2 и 3 ( маска ^b0000000000001100 ). Эти биты управляют отображением кода ПЗУ пульта в адресах 160000..172777. Если в этом диапазоне не планируются регистры устройств ( или если там вообще нет кода ПЗУ ) - отображение кода ПЗУ можно не делать и состояние битов не менять. Но запись в SEL1 всё равно должна докладывать процессору об успехе ( выставлением RPLY в ответ на DOUT ) иначе процессор не сможет работать. То есть "ячейка", которая выбирается по SEL1 доступна на чтение и запись? |
svinka
Advanced Member
Сеньор Откуда: Совчина Всего сообщений: 1585 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 июня 2016 |
_Patron_ написал: смотрим схему бк и делаем вывод что почти все что здесь написано - заблуждение автора SEL1 отвечает на DOUT, но изменить состояние там могут только биты 2 и 3 ( маска ^b0000000000001100 ). Эти биты управляют отображением кода ПЗУ пульта в адресах 160000..172777. Если в этом диапазоне не планируются регистры устройств ( или если там вообще нет кода ПЗУ ) - отображение кода ПЗУ можно не делать и состояние битов не менять. Но запись в SEL1 всё равно должна докладывать процессору об успехе ( выставлением RPLY в ответ на DOUT ) иначе процессор не сможет работать. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Не заблуждение, а _Patron_ описал частный случай, реализованный в микросхеме чипсета ДВК 1801ВП1-030. К процессору относится там только 3 бит, которым он управляет микропрограммно, остальные манипуляции осуществляет уже пультовая программа в пзу 1801РЕ1-000. Блок, ответственный за выборку SEL1, находится внутри процессора и процессор отвечает сам себе, производя и обращение по адресу, и выставляя RPLY. Использовать регистр можно как угодно, главное, чтоб старший его байт всегда указывал на стартовый адрес пзу для возможности перезапуска по сбросу процессора. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 .. 25 26 27 28 29 30 | Печать |
Полигон-2 » Другие архитектуры » Инопланетные скрижали |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |