User Tag List

Страница 51 из 273 ПерваяПервая ... 474849505152535455 ... ПоследняяПоследняя
Показано с 501 по 510 из 2727

Тема: Цифровая археология: 1801 и все-все-все

  1. #501

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Весь день мучала мысль - неужели 1801ВМ1 анализирует возникающие прерывания и исключения дожидаясь окончания чтения кода инструкции. Никак не мог поверить в это. Сейчас уточнил - таки да, сначала стартует чтение инструкции, потом опрос матрицы приоритетного шифратора прерываний, потом ожидается окончание чтения, а потом, если внезапно! есть прерывание, то код свежепрочитанной инструкции широким барским жестом выкидывается и начинается работа микропрограммы обработки прерывания. С чем такое расточительство связано - непонятно, ведь обработка прерываний от свежесчитанной и еще невыполненной инструкции зависеть не может. Да еще сохраняемый в стеке PC надо откатить назад на 2, чтобы было верное значение адреса возврата. В-общем, богато люди жили, богато.

  2. #502

    Регистрация
    11.11.2014
    Адрес
    г. Москва
    Сообщений
    334
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    28
    Поблагодарили
    23 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    С чем такое расточительство связано - непонятно, ведь обработка прерываний от свежесчитанной и еще невыполненной инструкции зависеть не может.
    Может быть это как-то связано с обработкой прерываний по ЕМТ, TRAP, BPT или ложной инструкции?
    Не волнуйтесь, моя бабушка водила трактор и пожарную машину (С)

  3. #503

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TheGWBV Посмотреть сообщение
    Может быть это как-то связано с обработкой прерываний по ЕМТ, TRAP, BPT или ложной инструкции?
    Для EMT, TRAP, BPT, IOT своя отдельная микропрограмма, вероятно она не запускает чтение следующей инструкции потому что известно что она в данный момент выполняться не будет. Речь идет об асинхронных прерываниях (IRQ1-3, VIRQ) и исключениях (тайм-аут ответа, нечетный адрес (нереализована)). В-общем, реалтайм в виде времени реакции на прерывание принесли в жертву скорости потокового исполнения. Прерывания в те времена были явлениями нечастыми - 50/100 Гц системного таймера, или ~960 от системного терминала, поэтому со временем реакции никто не парился.

  4. #504

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    148
    Поблагодарили
    79 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    реалтайм в виде времени реакции на прерывание принесли в жертву скорости потокового исполнения
    Если бы все команды ВМ1 выполнялись за одно обращение к шине - это была бы жертва. Но у ВМ1 есть команды, которые откладывают обработку прерывания на 7 циклов шины ( например - ADD @TAB1(R0),@TAB2(R1) ), поэтому плюс-минус один цикл - не так уж и принципиально.

  5. #505

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Если бы все команды ВМ1 выполнялись за одно обращение к шине - это была бы жертва. Но у ВМ1 есть команды, которые откладывают обработку прерывания на 7 циклов шины ( например - ADD @TAB1(R0),@TAB2(R1) ), поэтому плюс-минус один цикл - не так уж и принципиально.
    Угу, это ужас-ужас как долго, но терять целый цикл в случае возникновения прерывания все равно жалко.

    Нарисовал диаграммку первичного декодирования инструкции - состояние 7E - это самая начальная фаза выполнения всех команд, на входе имеет уже опрошенный контроллер прерываний и полученную от него 3-х битную маску PLI/P1X, а в некоторых случаях и загруженный регистр кода инструкции. Эта маска хитрая - она может получаться как от контроллера прерываний, так и в результате декодирования команды. В итоге программные исключения типа IOT/BPT/TRAP/EMT искусственно ставят эту маску и перезапускают декодирование, получается типа прерывание.

    Исключение по недопустимой команде или таймауту шины безусловно приводит к сбросу микроавтомата и принудительному переходу на состояние 7E с активным запросом на исключением с последующей его обработкой.

    На флаги TNZVC при первичном декодировании никто не смотрит, не влияют на работу в этой фазе.

    Интересно что начальное декодирование достаточно сложное, но оно пропускает некоторые MUL на следующий адрес и только там уже умирает по исключению недопустимой инструкции.

    Диаграмма в приложении, полную для всех состояний будет сложно и долго нарисовать, поэтому ограничусь самыми интересными кусками - вход в прерывание, возврат RTI/RTT, MARK.
    Вложения Вложения
    • Тип файла: zip mcflow.zip (5.9 Кб, Просмотров: 248)

  6. #506

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    148
    Поблагодарили
    79 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    терять целый цикл в случае возникновения прерывания все равно жалко
    Тест VM1C8 проверяет, сколько тактов занимает приём вектора прерывания.

    На тестировавшейся ДВК-1 результат был такой:

    Код:
    .ru my1:vm1c8
    
    1801VM1 Timings Test #8a
    
    Scale: 1024
    Retry: 100
    
    Return                :  35:100
    RtI                   :  46:100
    IOT + RtI             : 126:100
    Handler cycles : 1024
    Handler clocks        : 405:100
    IOT + Handler         : 483:10  484:90
    Interrupts     : 1024
    Interrupt + Handler   : 501:100
    Если вычислить разницу между [IOT + Handler] и [Interrupt + Handler], а потом добавить время выборки кода команды IOT ( 12 тактов ), то получается, что адрес вектора прерывания принимался за 30 тактов, а сохранение РС и PSW с последующей загрузкой новых значений из вектора - занимало у IOT и Interrupt по 68 тактов.

    По сравнению с такими расходами, один цикл шины длиной 12 тактов ( при задержке RPLY = 6 тактов ) - не очень шокирует.

  7. #507

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Если вычислить разницу между [IOT + Handler] и [Interrupt + Handler], а потом добавить время выборки кода команды IOT ( 12 тактов ), то получается, что адрес вектора прерывания принимался за 30 тактов
    30 тактов это очень большая разница, я думаю что 12 тактов как раз уже не надо добавлять, потому что они и тратятся на выборку выбрасываемой при прерывании инструкции.

    Ну понятно что погоды это выбрасывание не делает, но оно везде все такое же медленное в первом поколении этих процессоров - что LSI-11, что ВМ1. Посмотрел бенчмарки, так уже F11, который незначительно сложнее и тактовая у него почти такая же, уже дал прирост в 4 раза по скорости.

    Цитата Сообщение от Patron Посмотреть сообщение
    По сравнению с такими расходами, один цикл шины длиной 12 тактов ( при задержке RPLY = 6 тактов ) - не очень шокирует.
    Да не шокирует, просто неоптимальность есть определенная и ее также хватает и в других местах. Видимо при разработке в те годы было много других проблем, требовавших решения, поэтому было не до оптимизации. Сделали что смогли на имеющихся средствах разработки.

    Помоделировал аппаратные прерывания, при этом матрица шифратора выдает PLI=100b, и, внезапно (sic!), в состоянии 68 перед сохранением в стеке значение PC откатывается назад на 2. То есть, часть исключений сохраняет адрес следующей инструкции, а часть - адрес текущей, откатывая его назад на слово.

    Цитата Сообщение от Titus Посмотреть сообщение
    ВМ2 в такой же коробочке с бантиком хачу)
    ВМ2 у меня есть, и солнечногорский и ангстремовский, я даже его открыл уже. Но пока не фотографировал и руки реверсить его не скоро дойдут. Но могу сфотографировать и отдать желающим на векторизацию

  8. #508

    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    ВМ2 у меня есть, и солнечногорский и ангстремовский, я даже его открыл уже.
    ого! вот это качество снимка! это 4 мкм?

  9. #509

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    ого! вот это качество снимка! это 4 мкм?
    Ниже снимок микрометра на этом же объективе.

    Цена самого мелкого деления 10 микрон, ширина всего поля снимка примерно 100 делений, всего 1мм. Также ширина всего снимка 3488 пикселей, ширина дорожки на снимке 14 пикселей, получается что ширина дорожки примерно 14/3488 * 1мм = ~0.004 мм. Итого - 4 микрона, бинго!

  10. #510

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос знатокам истории. Фото фрагмента 1801ВМ2 двумя постами выше сделано с процессора с маркировкой Ангстрема (серпасто-молоткастый) 91.05. На фотографии хорошо видно сигнатуру ТР4. С другой стороны, на форуме радиокартинки такой же кристалл с сигнатурой ТР4 находится в корпусе с маркировкой СЭМЗ, дата 93.05. Уже понятно, что были разные наборы фотошаблонов, поскольку существуют фотографии кристаллов 1801ВМ2 с незначительно отличающейся топологией. Но, получается, что оба завода работали с разными наборами фотошаблонов в разное время, то есть, "старая" и "свежая" топологии могли выпускаться на обоих заводах?
    Хотелось бы, конечно, быть уверенным, что кристаллы у меня ангстремовские. В-общем-то, у меня этих А91.05 четыре штуки из одной партии, поэтому фотографировать придется именно их, остальные мои ВМ2 - разнобой, а нужно минимум два одинаковых процессора для снимков металла (остается целым как эталон для непоняток) и диффузии (этот шлифуется).

Страница 51 из 273 ПерваяПервая ... 474849505152535455 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 17:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 22:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 23:13

Метки этой темы

Ваши права

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