User Tag List

Показано с 1 по 10 из 22

Тема: вопросы по таймингу Z80/ZX

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexfreed
    2.
    Не все так ясно. Каждая команда выполняется за несколько элементарных операций - M cycles. А каждый M cycle состоит из от 3 до 6 T cycles (клоков 3.5 МГц). Или больше если вставить WAIT. В справочнике по z80 все расписано. Например PUSH BC
    занимает 3 M cycles: вытащить 1 байт кода операции из памяти и записать 2 байта. В данном случае 11 T cycles. Поэтому все всегда считается в Т.
    ага, нашел такой справочник
    там, правда, не всегда ясно, какой М-стейт какой элементарной операции соответствует -- с PUSH и EX понятно, а с CALL как-то странно: если два М-стейта сразу после М1 соответствуют сохранению PC на стеке, то почему у них длина в тактах разная?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    12.10.2005
    Адрес
    San Francisco
    Сообщений
    146
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от boo_boo
    ага, нашел такой справочник
    а с CALL как-то странно: если два М-стейта сразу после М1 соответствуют сохранению PC на стеке, то почему у них длина в тактах разная?
    Один из самых подробных документов (z80_user_manual.pdf) говорит нам:

    CALL M cycles = 5 T states=17 (4, 3, 4, 3, 3)

    А дальше мои домыслы.

    Которые по 4 - циклы М1 с регенерацией памяти. Которые по 3 - нормальные
    циклы обращения к памяти.

  4. #3

    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexfreed
    Один из самых подробных документов (z80_user_manual.pdf) говорит нам:

    CALL M cycles = 5 T states=17 (4, 3, 4, 3, 3)

    А дальше мои домыслы.

    Которые по 4 - циклы М1 с регенерацией памяти. Которые по 3 - нормальные
    циклы обращения к памяти.
    Нет. CALL - один опкод, соотв-но и M1 один - вначале. А 3 и 4 сдедующие - чтение байтов адреса и декремент стека после последнего чтения. Последние 2 по 3 - пуши байтов на стек. Сравни, например, с PUSH - 5,3,3. Тоже стек декрементится вначале.
    --- Кто съел всю уху?

  5. #4

    Регистрация
    12.10.2005
    Адрес
    San Francisco
    Сообщений
    146
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lvd
    Нет. CALL - один опкод, соотв-но и M1 один - вначале. А 3 и 4 сдедующие - чтение байтов адреса и декремент стека после последнего чтения. Последние 2 по 3 - пуши байтов на стек. Сравни, например, с PUSH - 5,3,3. Тоже стек декрементится вначале.
    Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
    В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю* что
    PUSH - 5,3,3. Не знаю только как именно. А мне это важно для правильной
    отработки экрана без WAIT в турбо режиме. Можно источник?

  6. #5

    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexfreed
    Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
    В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю* что
    PUSH - 5,3,3. Не знаю только как именно. А мне это важно для правильной
    отработки экрана без WAIT в турбо режиме. Можно источник?
    Ну вот сам подумай. M1 цикл - он 4 такта. Не может же он удлиниться сам по себе например в фазе регенерации на 1 такт? Не может. Значит, 5 такт просто добавляется, когда проц с шиной ничего не делает. В это время декрементится SP, чтоб пуш первого байта сделать в следующий цикл. Или вот например add hl,de - вообще 11 тактов? Думаешь, 7 тактов после M1 проц шаманит что-то там с шиной?...
    --- Кто съел всю уху?

  7. #6

    Регистрация
    12.10.2005
    Адрес
    San Francisco
    Сообщений
    146
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lvd
    M1 цикл - он 4 такта. Не может же он удлиниться сам по себе например в фазе регенерации на 1 такт? Не может.
    Я точно не знаю может или не может. Поэтому и спрашиваю. Мне представляется возможным 2 механизма.

    1. Вставляется 1 Wait state. Прецидент есть - IN/OUT всегда добавляют
    1 Wait. Почему нет?

    2. Первые 4 такта как всегда, но между М1 и след. циклом один такт вообще ничего снаружи не происходит.


    Раз на самом деле (2), очень хорошо. А то лениво логический анализатор подключать

  8. #7

    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    2,250
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    109 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexfreed
    В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю* что PUSH - 5,3,3. Не знаю только как именно. А мне это важно для правильной отработки экрана без WAIT в турбо режиме. Можно источник?
    В свое время вопрос о времянках шин Z80 во время PUSH qq так же возникал и у меня. Как ни странно все доступные мне на то время фирменные описания хранили гордое молчание.

    Информация нашлась в брошюре: «Микропроцессор Z80 Справочное пособие» Минск 1992 МП «Электроник-сервис». Там на стр. 26 приведены диаграммы цикла подтверждения NMI. Поскольку это аналог PUSH PC, то и времянки аналогичные. Но указанная брошюра содержала неточности, например, на стр. 66 диаграмма цикла подтверждения NMI содержала только 4 такта.

    Для меня в то время (разрабатывался код для видеопроцессора в ZX-Next) нужна была выверенная информация (и по тактам и по состоянию шин). Поэтому пришлось зашить несколько ПЗУ и посмотреть реальные сигналы осциллографом. Так появились заметки на полях. Впрочем, они практически совпали с диаграммой на стр. 26 (см. присоединенный рисунок).



    P.S. Думаю, авторы брошюры «Микропроцессор Z80 Справочное пособие» не сидели с осциллографами, а всего лишь переработали информацию из добытой ими документации по Z80. Список литературы в брошюре содержит 16 ссылок, скорее всего первоисточник где-то в них.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	M1(5).jpg 
Просмотров:	350 
Размер:	15.2 Кб 
ID:	2435  

  9. #8

    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Conan
    P.S. Думаю, авторы брошюры «Микропроцессор Z80 Справочное пособие» не сидели с осциллографами, а всего лишь переработали информацию из добытой ими документации по Z80. Список литературы в брошюре содержит 16 ссылок, скорее всего первоисточник где-то в них.
    Z80 в начале 80-х хорошо разобрали немцы (как западные, так и восточные). Только не понимаю, почему у нас был такой дефицит инфы, если с восточными мы дружили и покупали их Роботроны.

  10. #9

    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    2,250
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    109 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от icebear
    Z80 в начале 80-х хорошо разобрали немцы (как западные, так и восточные).
    В списке литературы указанного справочника, есть книга(и) на немецком языке.
    Цитата Сообщение от icebear
    Только не понимаю, почему у нас был такой дефицит инфы, если с восточными мы дружили и покупали их Роботроны.
    Кроме того, что дефицит информации (как и много другого) был ужасный, в СССР не производились Z80. Да и в СНГ (в Зеленограде и Воронеже) скорее всего только закупленные за границей кристаллы разваривали в корпуса. По крайней мере я не получил ни одного подтверждения того, что кристаллы для процессоров Z80 производились где то в СНГ.

  11. #10

    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alexfreed
    Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
    В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю* что
    PUSH - 5,3,3. Не знаю только как именно. А мне это важно для правильной
    отработки экрана без WAIT в турбо режиме. Можно источник?
    кстати, нашел вот в нете кой-чего (не помню уже, где). правда с официальным мануалом нашел уже одно расхождение по длительности М-циклов, правда официальный мануал по любому не без глюков...
    Вложения Вложения

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

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

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

Похожие темы

  1. Вектор-06Ц: Общие вопросы
    от CityAceE в разделе Вектор
    Ответов: 867
    Последнее: 17.10.2025, 18:38
  2. Вопросы Викерсу и Альтвассеру.
    от Conan в разделе Люди
    Ответов: 20
    Последнее: 07.04.2006, 12:24
  3. Вопросы по Турбо-ВГ
    от Jukov в разделе Внешние накопители
    Ответов: 11
    Последнее: 13.01.2006, 12:18
  4. Система прерываний - есть вопросы.
    от TomCaT в разделе Программирование
    Ответов: 6
    Последнее: 14.10.2005, 16:35
  5. Мониторы: подключение к ним. Вопросы.
    от Dut_Norshi в разделе Изображение
    Ответов: 12
    Последнее: 25.06.2005, 04:54

Ваши права

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