Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Бывший СССР »   Концепт 1801ВМ1
RSS

Концепт 1801ВМ1

Неторопливая вольная фантазия в рамках приличий

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 * 7 8 9 10 11 12 13 14 15
Печать
 
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Встал перед выбором. Какой из двух лучше? Винницкий или п-посадский? "Октябрь" вроде более в тему, 100-летие на носу. Или ТВ1А лучше, чем просто ТВ1?


Ой-ёё.. В книжке у него клок спадом :thumbdown: , а на самом деле подъемом .. Блин, узел переделывать, а ведь ничего лишнего не осталось. Один инвертор с ОК нужен теперь, наверное, просто транзистором обойдусь.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Mixa написал:
[q]
Какой из двух лучше?
[/q]
Критерий истины - практика. Берем микросхему, впаиваем, берем осциллограф, смотрим. Сачала КР561ТВ1А.
КПДП программируется на пересылку блока из 3 слов.
SACK, SYNC, RPLY и DMA_Active. (У 588ВТ2 он называется EM, похоже на Enable Memory, но со смысловой привязкой беда, какая Memory и почему Enable). КПДП переводится в активное состояние по команде от процессора, это вызывает установку DMA_Active. Окончание пересылки блока индицируется снятием DMA_Active.

Циклы DMA не начинаются, пока не появится запрос DMA_RQ. Эти запросы и их снятие формируются синхронно с установкой SYNC, запрашиваются в цикле ЦП, снимаются в цикле ПДП. Такой алгоритм обеспечивает чередование циклов ПДП и процессора. Формируются они как раз этим самым ТВ1.


На первый взгляд все хорошо, но если посмотреть на окончание ПДП с увеличением, то будет видно вот что. Это снятие DMA_Active:


А это снятие DMA_RQ. Оно задержано относительно синхронизирующего спада SYNC почти на 300 нс и находится в опасной близости от снятия DMA_Active. Опасной потому, что если еще немного повременить со снятием DMA_RQ, то это будет воспринято как запрос на пересылку следующего блока. DMA_Active при этом останется активным и начнется пересылка блока длиной 65536 слов. Заряд такой мощности способен дважды уничтожить весь мир и прощай Hello, world!


Играть со спичками рядом с ядерным детонатором не хочется, поэтому пришлось раздобыть КР1561ТВ1. И сразу обозначилась разрядка международной напряженности, задержка уменьшилась раза в три и отошла от опасной черты:


К тому же наклон фронтов ТВ1 перестал контрастировать с сигналами от ВМ1, поэтому правильный ответ - КР1561ТВ1. Ставим галочку.

Хотя, казалось бы, при взгляде с высоты птичьего полета, картина как бы и не поменялась:


Семафор открыт, продолжение будет.
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Mixa написал:
[q]
1561
[/q]
Лучше этого тихохода оставить в покое. Выбор профессионала - 1564 :)
andyTh
Гость

Ссылка

Mixa написал:
[q]
Ой-ёё.. В книжке у него клок спадом :thumbdown: , а на самом деле подъемом .. Блин, узел переделывать, а ведь ничего лишнего не осталось. Один инвертор с ОК нужен теперь, наверное, просто транзистором обойдусь.
[/q]
В последнее время я перестал пользоваться книжками для этого дела. С одной стороны конечно из за того, что приделали ноги
двум моим Шило, а с другой держать в голове все опечатки? Гуглим "аналог" нужной микрушки и читаем даташит от первоисточника.
Понятное дело, что попадаются микросхемы и без аналога (исчезающе редко) или с корёженной цоколёвкой, но как бы в 99.9%
способ работает.
Сейчас на форуме
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MM написал:
[q]
1564 :)
[/q]
1564 я бы с удовольствием, только мне позарез ресет нужен в положительной логике.

andyTh написал:
[q]
приделали ноги
двум моим Шило
[/q]
В Шило, кстати, все правильно. Но у меня очень давно бумажный Шило тоже куда-то пропал, я даже и не помню, какой именно из Шил.
Я этот с полки взял и посмотрел в нем:
(сорри за полосы, освещение люминесцентная лампа)

Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Блин, засада ... Заранее не обратил внимание на SACK, решил, что это некий аналог BSY, только от другого ведущего, и заложился на то, что они не перекрываются.. А вот и нет. BSY еще не снят, а SACK уже появился. И SYNC еще активен! Перекрытие 300 нс. И кто, спрашивается, управляет шиной ??? У меня встречные буфера на SYNC, WTBT, DIN, DOUT. В одном направлении включается при помощи BSY, в другом при помощи SACK. В результате 300 нс какого-то идиотизма на шине, с конфликтами уровней и прочей "прелестью". Ушел думать.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Mixa написал:
[q]
Заранее не обратил внимание на SACK, решил, что это некий аналог BSY, только от другого ведущего, и заложился на то, что они не перекрываются.. А вот и нет. BSY еще не снят, а SACK уже появился. И SYNC еще активен! Перекрытие 300 нс. И кто, спрашивается, управляет шиной ???
[/q]
В стандарте Q-Bus описана следующая последовательность запроса ДМА.

1. Устройство начинает запрос ДМА выставлением DMR.
2. Процессор подтверждает запрос ДМА выставлением DMG ( сразу после выставления DMR / снятия SACK, смотря что позже ).
3. Устройство, приняв DMG, активирует режим ДМА выставив SACK ( сразу после снятия SYNC / снятия RPLY, смотря что позже ) и сняв DMR.
4. Процессор снимает подтверждение DMG сразу после выставления SACK устройством.
5. Процессор также снимает DMG в случае снятия устройством DMR до выставления SACK или отсутствия SACK в течение 10 мкс после выставления DMR.
6. После снятия DMG при активном SACK процессор останавливается до снятия SACK устройством.
7. При рефреше памяти через шину - устройство не должно выполнять больше 4 циклов DATI / DATO или 2 циклов DATIO за один раунд ДМА.
8. После снятия устройством SACK - процессор ожидает снятия устройствами SYNC и RPLY, после чего возвращается к работе с шиной.
9. Устройства должны снять с шины сигналы DATA, BS7 и WTBT не позже, чем через 100 нс после снятия SYNC.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
_Patron_ написал:
[q]
3. Устройство, приняв DMG, активирует режим ДМА выставив SACK ( сразу после снятия SYNC / снятия RPLY, смотря что позже ) и сняв DMR.
[/q]
У 588ВТ2 есть сигнал, по смыслу похожий на SACK. Он везде называется по-разному, минскую терминологию специально приводить не буду, она какая-то странноватая. Поэтому пусть будет SACK. Но на самом деле это не чистый SACK, потому что вышеприведенный п. 3 не выполняется, этот сигнал ставится сразу по приходу DMG без ожидания снятия SYNC. Я его использовал как SACK и ничего хорошего из этого не получилось. Хорошо, пусть это будет Early SACK, ESACK его назовем.
Patron, спасибо большое за разъяснения, у меня какая-никакая а шина, поэтому буду подгонять обмен сигналами в направлении этого протокола. А то уж всякие совсем грязные хаки в голову полезли, и от этого стало грустно.

Дальше становится интереснее. Как определить момент для выставления настоящего SACK? Отслеживать шинные SYNC и RPLY внешними схемами не хочется, нафига тогда эта большая ИС ВТ2, большая - подразумевается умная, а как иначе? Посмотрел повнмательнее на поведение ВТ2. Она все-таки следит за шиной, дожидается окончания SYNC и только после этого начинает свой цикл. Начинает она его с формирования интервала времени при помощи внешней RC цепочки. И если бы не эта внешняя хрень, узнать, когда эта БИСина задумывает сделать свой цикл, невозможно в принципе. Только угадывать внешними схемами, но это ж фу-у-у.. Единственная зацепка, единственный шанс для ВТ2 остаться контроллером ПДП в этом изделии.
Значит, так тому и быть, будем формировать цифровой сигнал из аналогового. Процесс - быстрый разряд C через открытый ключ до нуля и закрывание ключа с последующим медленным зарядом через R до напряжения питания, соответственно, сигнал это короткий отрицательный импульс вниз от питания и обратно.
Напрашивается следующее решение. RS триггер, ESACK в своем пассивном состоянии держит его в одном положении. ESACK активируется, отпускает удержание триггера, а импульс на C перекидывает триггер. В конце цикла пассивный ESACK перекидывает его обратно. Как раз правильный SACK на этом триггере и сформируется. Пошел думать дальше, из чего этот триггер сделать :)

Я как-то где-то делал несимметричный RS триггер (внутри ХЛ8 емнип, одна макроячейка всего), логически - закольцованные И и ИЛИ, оба без инверсии. Оба выхода прямые (или оба инверсные). Второй вход И это /R, второй вход ИЛИ это S (если считать, что выходы прямые). Как раз своей разнополярностью R и S для этого триггера SACK подходят. Но для превращения в шинный SACK его нужно пропустить через повторитель с ОК. В любом случае ресурсы нужно изыскивать.

Ну что, не все уж так и плохо, только неожиданными фишечками схемка обрастает.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
SACK триггером RS укоротил. Получилось как было задумано, SACK и BSY не перекрываются, буфера не конфликтуют, сигналы как конфетки. Теперь озадачен другим. Квитирование все равно не стало таким, как по протоколу Q-bus. Сейчас так:
1. Устройство выставляет DMR
2. Процессор отвечает DMG, устройство тут же снимает DMR, ЦП следом снимает DMG.
3. Устройство ждет снятия SYNC, после снятия выставляет SACK.
4. Устройство выполняет цикл ПДП, снимает SACK
5. Управление шиной возвращается ЦП.

Смущает наличие промежутка времени, хотя и короткого, но во время которого все квитирующие сигналы пассивны, шина как бы ничья. Между концом SYNC и началом SACK она ничья. Реально она может быть ничьейй только в отсутствии памяти состояний у процессора. Есть подозрение, что это не так, нужно будет проверить, не подавать SACK и посмотреть, начнет процессор свой новый цикл или нет.

Также проверил вариант с SACK не задержанным, но с задержанным управлением буферами. Все отлично работает, но наложение SACK на еще активный цикл шины ЦП протоколу не соответствует.

С окончательным вариантом реализации определюсь после того, как станет понятно, отпускает или нет процессор шину после квитанции DMR - DMG - /DMR - /DMG и без SACK, если да, то сделаю задержанный SACK, если нет, то оставлю SACK в исполнении ВТ2, а задержу только управление буферами.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Как оказалось, квитанции DMR - DMG это не более, чем обмен любезностями. Если SACK после этого обмена не подать, процессор продолжит свои циклы, как обычно. Стало быть, делаем по плану Б, то есть налезаем ранним SACK на хвост цикла ЦП. С другой стороны, ЦП сам напрашивается налезть ему на хвост, просигналив DMG.
DMR: дай поиграть
DMG: бери
/DMR, SACK: беру
/DMG: отдашь, как наиграешься
(активный SACK не мешает закончить текущий цикл, но препятствует началу нового цикла ЦП)
/SYNC: вижу, ты свое закончил, переключаю буфера.
/SACK: отдаю, надоело

Если делать более приближенно к протоколу:
DMR: дай поиграть
DMG: бери
/DMR: понял
/DMG: ну да
(непонятная пауза, нужно спешить выставить SACK, пока не началось... SYNC закончился, ставим SACK!)
SACK: ну этта, я типа взял, ага? (нет ответа)
/SACK: отдаю, надоело

Первый вариант выглядит более осмысленным. Так и делаем.

В узле индекс-регистра-счетчика ИЕ7 поменял на ИЕ13. Не углядел, что у ИЕ7 вход -1 может работать как запрет счета только для триггера младшего разряда. С ИЕ13 все правильно получается, с той разницей, что автоинкремент разрешен нулем. Индекс загружается значением адреса и битом запрета инкремента адреса, т.е., чтоб поработать только с регистром 3, к примеру, нужно загрузить ^B1011, а не 3. Ну или 100003, смотря куда этот бит прикрутить. Слегка противоестественно, но машине пофиг. А если вдруг свободный инвертор нарисуется после всего, то в этом узле его можно будет утилизировать в первую очередь.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 * 7 8 9 10 11 12 13 14 15
Печать
Полигон-2 »   Бывший СССР »   Концепт 1801ВМ1
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS