УК-НЦшкин !
А какой вскрывали - керамический или чёрный пластмассовый ВМ2 ?
И чей АНГСТРЕМовский или СЭМЗовский? )
Вид для печати
Керамический, Ангстрем, дата 9105, одна точка.
Как я понял, было две версии ВМ2, имеются в сети две разных фотографии кристалла, я их называю "ранняя" и "поздняя". Страничка на 155la3 утверждает что одна из них Ангстремовская, вторая СЭМЗ, но у меня в ангстремовском корпусе оказалась "поздняя" (типа СЭМЗ), из видимых отличий - в ней добавлен еще один генератор смещения подложки.
По ходу разработки адаптера шины ВМ1 для эмулятора ДВК - возникли некоторые вопросы.
1. Когда блок питания снимает DCLO - ВМ1 снимает INIT. Через сколько тактов это происходит ?
2. Когда блок питания выставляет DCLO - ВМ1 выставляет INIT. Через сколько тактов это происходит ?
3. Нога 34 ( INIT ) у ВМ1 обозначена как вход-выход. Когда ВМ1 читает этот вход и что делает, если этот вход активен ?
Есть два отдельных сброса - ядра (на схеме цепь RESET) и периферии (цепь INIT_IN)
Когда вход ~DCLO переходит в низкий (активный), то ~INIT переходит в низкий немедленно. Ядро процессора также сбрасывается (внутренний RESET высокий). При этом запускается внутренний счетчик на 2 такта, чтобы длительность внутреннего сброса была не менее 2 тактов. При этом если вход ~ACLO вдруг высокий (при низком ~DCLО это неверная комбинация), то этот счетчик в игноре.
Итого, при переходе ~DCLO в высокий уровень
а) если ~ACLO низкий, ~INIT перейдет в высокий сразу, если прошло 2 и более тактов CLC с момента ниспадающего фронта ~DCLO.
б) если ~ACLO высокий, ~INIT перейдет в высокий сразу
Реальный процессор - немедленно. Синхронная модель - по первому нарастающему фронту CLС.
Эта ножка с выходом типа открытый коллектор. Поэтому может формировать только низкий уровень, который будет восприниматься как этим же входом, так и другими устройствами. Цепь образует монтажное ИЛИ, позволяя формировать сигнал периферийного сброса другим устройствам.
Низкий уровень на выходе формируется при сбросе ядра процессора (DCLO/ACLO) и при выполнении команды RESET.
Низкий уровень на входе (подключен просто параллельно к выходу, к самой ножке), осуществляет периферийный сброс - сброс ВЕ-таймера, сброс запроса шины (временно маскирует DMR) и сброс детекторов ниспадающего фронта IRQ2 и IRQ3.
Насколько я понимаю - ВМ1 работает следующим образом.
Сброс ядра процессора ( и появление низкого уровня на выходе INIT ) происходит только при установке DCLO = ON ( низкий уровень ).
Когда происходит событие DCLO & ACLO == 0FF ( оба высокий уровень ) - тогда через 10 тактов происходит чтение SEL1 и переход на адрес старта, поэтому и при включении питания, и при отпускании кнопки "Сброс", закорачивающей DCLO - процессор действует одинаково.
Если при DCLO == OFF возникает ACLO = ON - немедленно происходит TRAP24. Если после этого сохраняется DCLO == OFF, то после ACLO = OFF - происходит новый старт, но сброс процессора при этом не происходит и состояние INIT всё время неактивное ( высокий уровень ).
Стандарт Q-Bus такую ситуацию прямо запрещает, требуя от систем питания, чтобы любая активация ACLO всегда завершалась активацией DCLO, но если такого не будет - вряд ли ВМ1 сбросит ядро без активации DCLO.
Отчасти (а то и вовсе) не в тему - сильно внимательно не вчитывался...
Строго говоря, на Q-Bus нет сигналов ACLO, DCLO - это UNIBUSные сигналы. Но в прицнипе с учетом обратной полярности по отношению к POK и DCOK которые стандартны для Q-Bus, можно считать, что это одно и то же... В описании KDJ11 помню также встречались какие-то отличия от чего-то там ранее привычного, сейчас лень искать, но кажется речь шла только о времени между сигналами которое должно быть не меньше чем что-то (а больше - хоть годы)... Также рассматривается случай (все еще про KDJ11) когда DCOK убирается и появляется вновь пока POK остается активным (с учетом... то же самое?) - используется для перезагрузки. А вообще поскольку разборки с POK/DCOK касаются исключительно процессора, то и ккие-либо стандарты Q-Bus здесь довольно условны (о чем и пишется скорее всего во всех доках по процессорам новее древних UNIBUSных) :)
Терминология:
*CLO = ON - низкий уровень на входе *CLO
*CLO = OFF - высокий уровень на входе *CLO
Активация *CLO - ниспадающий фронт на входе *CLO
Деактивация *CLO - нарастающий фронт на входе *CLO
Пока я считаю что работает так:
Вход DCLO = ON всегда безусловно переводит ядро в состояние сброса и оно там остается до деактивации DCLO. При этом сбрасывается матрица приоритетного шифратора прерываний, а также детекторы фронтов (ниспадающего и нарастающего) ACLO. После выхода из сброса (DCLO перешло в OFF) ядро безусловно переходит к ожиданию фронта деактивации ACLO = ON->OFF, независимо в каком состоянии находилось ACLO при деактивации DCLO. При обнаружении фронта деактивации ACLO ядро начинает выполнять микропрограмму начального пуска, детектор фронта деактивации ACLO отключается и больше не работает до следующего сброса ядра. Детектор фронта активации ACLO работает всегда и при обнаружении происходит прерывание 24. ACLO может активироваться и деактивироваться многократно, вызывая при активации прерывание 24 (этот факт многократности надо проверить моделированием). Также есть возможность при ACLO=ON выполнить сброс всего процессора командой RESET - при этом сбрасывается не только периферия но и ядро (этот вывод также надо проверить).
А также по команде RESET если ACLO = ON.
Тут важен именно переход ACLO -> 0FF при уже неактивном DCLO. Нельзя сделать ACLO=OFF, а потом DCLO=OFF, старта не будет.
Нет, не происходит ничего.
Update: Кстати, я там выложил схемы в формате пикада, можно загружать и смотреть цепи уже в электронном виде. Навигация делается так - выделяем цепь, ПКМ->Edit Nets - там будет окошко с подключенными транзисторами, можно вбрать и нажать Jump to Node - перейдет к указанному транзистору.
Update2: полноценный пикад можно не разворачивать - достаточно просмотровщика (можно взять тут), навигация в нем тоже работает.
Т.е. процессор просто зависнет, никак не реагируя на CLC ?
Получается, что для перезапуска ВМ1 просто коротить DCLO недостаточно - нужно обязательно закорачивать и DCLO, и ACLO ( в любой последовательности, если не важен TRAP24 ), а потом воспроизводить деактивацию сигналов DCLO и ACLO при включении питания.
Для ВМ2 минимальная стартовая задержка между DCLO = OFF и ACLO = OFF составляет 10 тактов ( если верить ТО ), а для ВМ1 эта величина известна ?