Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 34

Тема: Z80 временные диаграммы

  1. #1
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Z80 временные диаграммы

    Полагаю, многим спектрумистам знакомы подобные картинки:



    ...происхождением из фирменных мануалов и даташитов, которые кочуют с сайта на сайт.

    При этом везде подробно рассмотрены и описаны только трёхтактовые (не считая wait) машинные циклы чтения/записи, в том числе и в фирменных документах. Но циклы чтения бывают также четырёхтактовые, а циклы записи - пятитактовые (пример команды, в которой есть циклы всех размеров - "ex (sp),hl"). Причём дополнительные такты - явно не wait, а вычисления уже после чтения или записи. Что же точно происходит с шинными сигналами в это время? Смущает, что в отдельные одно-двухтактовые внутренние машциклы эти дополнительные такты в доках не выделяют.
    Прихожу без разрешения, сею смерть и разрушение...

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

  3. #2
    Member
    Регистрация
    01.09.2019
    Адрес
    г. Ижевск
    Сообщений
    105
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В https://forums.nesdev.com/viewtopic.php?t=14723 есть идея, что такие циклы чтения/записи/выборки из n тактов можно представить как 3 такта обычного цикла чтения/записи или 4 такта выборки + (n-3) или (n-4) такта внутренних операций после.

  4. #3
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dvarkin Посмотреть сообщение
    В https://forums.nesdev.com/viewtopic.php?t=14723 есть идея, что такие циклы чтения/записи/выборки из n тактов можно представить как 3 такта обычного цикла чтения/записи или 4 такта выборки + (n-3) или (n-4) такта внутренних операций после.
    да идей-то несколько может быть, но все без документального подтверждения
    кстати, и для внутренних операций в мануалах тоже нет диаграмм
    (состояние слишком очевидным считается?)
    Прихожу без разрешения, сею смерть и разрушение...

  5. #4
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    828
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://github.com/gdevic/A-Z80/blob...dongle/xx.html
    и так далее.
    Тов. снял по тактовые диаграммы для всех команд ардуинкой.
    пс: но сама реализация процессора не на 100% соответствует оригиналу.

  6. Этот пользователь поблагодарил AlexG за это полезное сообщение:

    Lethargeek (27.12.2020)

  7. #5
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Что же точно происходит с шинными сигналами в это время?
    Не совсем понятен вопрос. Что происходит в это время внутри процессора?

    АЛУ 4-битное, и 8-битные операции выполняются за 2 такта. Для 4-тактных инструкций 2 такта это refresh, 2 такта чтение опкода, а выполнение во время следующего refresh. 16-битное сложение выполняется за 4 такта, по 4 бита.
    Адрес при IX+смещение тоже считает АЛУ за 4 такта и сохраняет во временном 16-битном регистре. Названия у него нет, но он есть.
    16-битный inc/dec выполняется отдельным блоком, по-моему за 2 такта с записью во временный регистр. При push/pop выполняется два inc/dec, один из них и даёт лишний такт при push, потому что сначала надо сделать dec, а потом всё остальное.

    То есть база это 2 такта refresh плюс 2 такта чтение опкода, 3 такта на чтение-запись байта памяти, 4 такта на чтение-запись порта. Остальное это внутренние действия, которые распараллелить ну никак не получилось.

    - - - Добавлено - - -

    Ой, сначала же читается опкод, потом refresh. 8-битная арифметика выполняется во время чтения следующего опкода. Причём, по-моему, 2 такта вычисление, а флаги пишутся аж на 3-м такте, на refresh. Флаги передаются по той же внутренней шине. Отсюда же растут ноги флагов F3 и F5 - этими двумя проводами при записи флагов никто не управляет, что осталось на линиях от предыдущей внутренней операции, то и записали.

    - - - Добавлено - - -

    И ещё нюанс. В Z80 есть моменты из серии "ну, так получилось" На кристалле есть парочка явно лишних проводников, которые потом были порезаны. Не помню что этим исправили, по-моему лишние такты там тоже были.

  8. #6
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,405
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    16-битный inc/dec выполняется отдельным блоком, по-моему за 2 такта с записью во временный регистр. При push/pop выполняется два inc/dec, один из них и даёт лишний такт при push, потому что сначала надо сделать dec, а потом всё остальное.
    Интересно. А у ВМ80 16ти битный INC/DEC организован комбинаторикой с быстрым переносом, та самая, которая инкрементирует или декрементирует адрес PC или SP. Именно поэтому, эти INC/DEC регистровых пар не трогают флаги АЛУ. И оно за один такт идёт - эта схема приаттачена к регистровому файлу, а тот уже организован так, чтобы пары эти сразу к схеме и подключались. У Z80 по-другому?

  9. #7
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет, так же. Я может как-то не так выразился, назвав отдельным блоком? Только по-моему всё-таки за 2 такта, на одном туда, на другом обратно. А как иначе по одной шине? И "временный регистр" это, насколько помню, защёлка рядом с этой схемой быстрого переноса.

    - - - Добавлено - - -

    Ну, всё-таки ошибся. Есть latch, а есть "регистр" WZ
    http://www.righto.com/2014/10/how-z8...nted-down.html

  10. #8
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Не совсем понятен вопрос. Что происходит в это время внутри процессора?
    нет, что
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    с шинными сигналами
    что на ножках

    - - - Добавлено - - -

    Цитата Сообщение от AlexG Посмотреть сообщение
    https://github.com/gdevic/A-Z80/blob...dongle/xx.html
    и так далее.
    Тов. снял по тактовые диаграммы для всех команд ардуинкой.
    пс: но сама реализация процессора не на 100% соответствует оригиналу.
    хорошо, но оговорка не радует
    Прихожу без разрешения, сею смерть и разрушение...

  11. #9
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    что на ножках
    Ничего особенного, просто "лишние" такты между циклами. Для чего это так важно?

    Вот ещё таблица http://www.z80.info/z80ins.txt

  12. #10
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Ничего особенного, просто "лишние" такты между циклами. Для чего это так важно?
    для внешнего устройства на шине

    Цитата Сообщение от Bolt Посмотреть сообщение
    Вот ещё таблица http://www.z80.info/z80ins.txt
    мне она, конечно, известна и ответа на вопрос в ней, конечно, нет
    Прихожу без разрешения, сею смерть и разрушение...

Страница 1 из 4 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 24
    Последнее: 02.03.2023, 18:04
  2. Временные диаграммы Вектора
    от ivagor в разделе Вектор
    Ответов: 123
    Последнее: 16.07.2019, 16:51
  3. ВременнЫе диаграммы и другие вопросы по Z80
    от Bolt в разделе Для начинающих
    Ответов: 33
    Последнее: 09.04.2014, 15:53
  4. Временные "тормоза" при работе форума
    от [bETA]mEN в разделе Форум
    Ответов: 57
    Последнее: 24.11.2006, 17:53
  5. чертовы диаграммы -__-
    от boo_boo в разделе Несортированное железо
    Ответов: 0
    Последнее: 30.01.2006, 22:04

Ваши права

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