Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Бывший СССР » Концепт 1801ВМ1 |
<<Назад Вперед>> | Страницы: 1 2 3 * 4 5 6 7 .. 10 11 12 13 14 15 | Печать |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Пытаюсь встроить в концепцию 588-ю серию, в частности, КПДП 588ВТ2. Несколько озадачен логикой его работы. Сеанс ПДП запрашивается извне, сигналом /RQ. В ответ на шину устанавливается /DMR, ожидается /DMGO, потом /SACK, происходит цикл обмена, /SACK снимается. Вроде все последовательно и логично. Сигнал /RQ может быть снят, как только появился /DMR, этот запрос запоминается. Но может быть снят и по приходу /DMGO или /SACK. Все бы хорошо, если бы не одно но. Цепочка этих событий рушится пролетающими по шине /RPLY. Они на шине есть, они не могут не пролетать. Сценарий 1. Пришел /RQ, выставился /DMR, /RQ за ненадобностью снят, ждем /DMGO. До прихода /DMGO пролетает какой-то /RPLY. Этот /RPLY сбрасывает /DMR и запрос ПДП отменяется. На этом все заканчивается, запрос нужно выставлять заново. Какой-то осмысленности в таком поведении нет. Дальше даже и думать не хочется. Сценарий 2. Пришел /RQ, выставился /DMR, /RQ не снимаем до прихода /DMGO или /SACK. Ждем /DMGO. До прихода /DMGO появляется /RPLY. Этот /RPLY сбрасывает /DMR, но по снятии /RPLY /DMR появляется снова (потому что /RQ все еще активен). Такие снятие-активизации /DMR по пролетающим /RPLY продолжаются до тех пор, пока не придет /DMGO. В целом в этом случае сеанс ПДП происходит как нужно, все циклы ПДП получаются в необходимом количестве, сбоев и записи мусора не замечено, но также непонятна логика за этим поведением. Человеческими словами это описывается так: -> Есть запрос (выставим DMR) (Так, у меня RPLY, DMR снимаю, все равно во время RPLY ты ничего не сделать не сможешь) (RPLY кончился, ты еще запрос не снял, что ж, выставим DMR снова) (А, не, еще один RPLY, запрос снимаю, потерпи) (Все, кончился, снова выставляю) ... >- Во, пришел ответ, шину занял, снимай запрос (а что DMR дергался, ты и не заметил, гы) -> Запрос снял Ну бред какой-то и скрытое издевательство. Не вяжутся эти все метания с концепцией мы медленно, медленно спустимся. Выходит, ВТ2 нужно будет изолировать от чужих RPLY. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Вообще-то ориентация буфера управляющих сигналов меняется по SACK и ВТ2 в любом случае изолирован от внешних RPLY, пока не захватит шину. T.к. до тех пор, пока не появится SACK, как реакция на DMGO, SYNC/DIN/DOUT/WTBT являются входными сигналами для платы, а RPLY - выходным. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Электрически RPLY у меня сейчас одна общая цепь, и двунаправленных буферов нет. МПИ между микросхемами напрямую, без развязок. В концепции поначалу и межплатных буферов не было, потому что все компактное и не развесистое. Но интеграловцы побуждают всю их 588-ю увести за буфера. Хотя бы из-за того, что у них шина АД не инверсная. |
andyTh |
NEW! Сообщение отправлено: 18 октября 2017 18:35 Сообщение отредактировано: 18 октября 2017 18:36
Так оно ж идеологически так должно быть. Пассивное устройство от принимает сигналы от активного. Как вы планировали рулить направлением SYNC, DIN, DOUT? Вот так же надо завязать и RPLY. |
Сейчас на форуме |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
andyTh написал: Пока никак не планировал, не было нужды. И если идеологически так, то и замечательно, у меня концепт как раз идеологический. Правда, не всякая идеология вписывается, но эта - то, что надо. Как вы планировали рулить направлением SYNC, DIN, DOUT? andyTh написал: Угу. Вот так же надо завязать и RPLY. А кстати, как "взрослые" КПДП реагируют на неприход RPLY? И на попытку обратиться к области, которая выбирается по BS? |
andyTh |
NEW! Сообщение отправлено: 18 октября 2017 19:02
Mixa написал: Во все моменты времени, пока некая плата не хочет ПДП, сигналы SYNC, DIN, DOUT являются для неё входными, а RPLY выходным. Пока никак не планировал, не было нужды. Таким образом плата не видит чужих RPLY. А во время захвата шины направление сигналов меняется на противополоное. Т.е. какое то разделение должно быть. Не может вход микросхемы резко стать выходом |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Mixa написал: Точно так, как и процессор - ждут какое-то время ответа, затем выставляют флаг ошибки шины в регистре состояния, при этом замораживается счётчик адреса и переданных слов, чтоб можно было понять, на чём мы остановились, шина возвращается процессору и дёргается прерывание от устройства. А кстати, как "взрослые" КПДП реагируют на неприход RPLY? И на попытку обратиться к области, которая выбирается по BS? |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 октября 2017 20:54 Сообщение отредактировано: 18 октября 2017 23:23
andyTh написал: Здесь ключевое слово "плата" Во все моменты времени, пока некая плата не хочет ПДП, сигналы SYNC, DIN, DOUT являются для неё входными, а RPLY выходным. Поначалу концепция представлялась как набор маленьких-маленьких плат, которые вставляются в маленькую-маленькую корзину, на разъемах разведена МПИ, платы функционально разделены, а специального умощнения не делается, потому что все маленькое и несерьезное. Заложился на нагрузочную способность самих микросхем. То есть, плата процессора, плата памяти, плата ИРПС, плата с КПДП и IDE, плата еще чего-нибудь. ИРПС в такой концепции это ВП1-035/065, с незначительной обвязкой. 588ВТ2 тоже более-менее в концепцию ложился (только АД нужно инвертировать), и направлением своих сигналов сам управляет. По мере реализации оказалось, что процессор, контроллер ПЗУ и ОЗУ неразделимы, в связке, кроме МПИ, много других сигналов, которые на разъеме не нужны. Поэтому возникла этажерка. Сейчас вот вырисовывается, что ВТ2 и всю 588-ю компанию нужно за забор поместить. И это даже хорошо, потому что глядя на пологость некоторых фронтов (которые ОК или ОС), хочется сказать стоп, шина почти на пределе. Anonymous написал: Я вот еще хочу запретить КПДП обращаться по шине к пространству УВВ. То есть всякий select УВВ разрешить, если активен BSY процессора (или неактивен SACK). Точно так, как и процессор - ждут какое-то время ответа, затем выставляют флаг ошибки шины в регистре состояния, при этом замораживается счётчик адреса и переданных слов, чтоб можно было понять, на чём мы остановились, шина возвращается процессору и дёргается прерывание от устройства. У 588ВТ2 есть вход ошибки. Импульс на нем завершает текущую пересылку, вырабатывается аппаратное прерывание и взводится триггер ошибки, его значение читается битом 14 в регистре состояния. Вот туда можно завести ошибку таймаута на шине. Еще один вход есть, RQINT называется, "Запрос прерывания". Низкий активный уровень на нем завершает текущую пересылку, вырабатывается аппаратное прерывание. Пока уровень низкий, он читается единицей в бите 13 регистра состояния. Причем еще есть бит 15, который читается как ИЛИ битов 13 и 14. Интересно, какое прерывание имели в виду разработчики этой микросхемы? P.S. ВТ2 вырабатывает аппаратное прерывание по окончании пересылки блока, но между этим настоящим прерыванием и тем RQINT никакой связи не обнаружилось. P.P.S. Постскриптум не читать, это была старая, древняя инфа, сейчас провел эксперимент и был приятно удивлен тем, что на ER и на RQINT есть вполне симпатичная и полезная реакция. Текст выше — исправил. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 октября 2017 22:51 Сообщение отредактировано: 18 октября 2017 23:03
Бит 15 служит для облегчения проверки в драйвере, была ли ошибка или успешно завершённая операция вызвала прерывание, делается TST @#CSR и затем BMI на обработку ошибки. А вот биты 13 и 14 показывают тип ошибки, один показывает, что ошибка случилась в контроллере ПДП - т.е. ошибка шины, а другой бит - что ошибка возникла в устройстве, которое использовало ПДП. Как вариант, ошибкой может считаться переход через определённый адрес, можно и на это флаг сделать, т.е. переход с 0177777 в 0 или, как у вас, с 0157777 на 0160000. p.s. например, у меня в "гайке" контроллера scsi для двк, бит 15 взводится либо по ошибке шины, либо при возникновении резета со стороны scsi-шины, а ситуацию поясняют два других бита. Один указывает на попадание в несуществующий адрес, а другой взводится сигналом RST на шине scsi и основременно транслирует его текущее значение. Если мы успели отреагировать на возникновение сброса от какого-то устройства и сигнал всё ещё не снят, мы вычищаем очередь запросов драйвера, формируя по всем заданиям ошибку, т.к. устройства, reconnect от которых мы ожидали, сбросились, и выдаём запрос таймаута по таймеру, после ввода драйвера по которому проверяем, "ушёл" ли сигнал, если да - начинаем далее выполнять запросы обмена, если нет, то ещё можно подождать (но обычно это короткая транзакция). |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 октября 2017 23:22 Сообщение отредактировано: 19 октября 2017 1:11
Постом выше описывал поведение ВТ2 по памяти, по прошлым экспериментам. Но тогда стенд менее совершенен был, видимо, что-то упустил. Сейчас оно оно куда лучше оказалось. Сообщение исправил. Думал, пришел к заключению, что RQINT ВТ2 это требование прекратить передачу блока, исходящее от внешнего устройства, которое обнаружило, что что-то пошло не так. Другими словами, это сигнал от устройства, возникший во время передачи блока и служащий для аварийного завершения передачи блока. В логику IDE это не укладывается, поэтому оставлю незадействованной эту полезную фичу. ПДП для IDE обслуживает не устройство, а буфер. При обмене с буфером прерываний не возникает. Ошибок тоже. В смысле, никаких флагов, индикаторов и т.п. во время обмена с буфером нету. А прерывание от устройства, ошибки устройства у IDE обслуживаются по другим каналам, не связанным с ПДП. Пока как-то так. |
<<Назад Вперед>> | Страницы: 1 2 3 * 4 5 6 7 .. 10 11 12 13 14 15 | Печать |
Полигон-2 » Бывший СССР » Концепт 1801ВМ1 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |