User Tag List

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

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

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

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

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,964
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    313
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

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

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



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

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

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

  3. #2

    Регистрация
    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

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,964
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    313
    Поблагодарили
    237 сообщений
    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

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Lethargeek(27.12.2020)

  6. #5

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    386
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    Тов. снял по тактовые диаграммы для всех команд ардуинкой.
    пс: но сама реализация процессора не на 100% соответствует оригиналу.
    ну на сто процентов да жи у Соргелиг-а не соответствует.
    А эта реализАция тоже довольно неплохая, Спек на ней работает, тайминги конечно оставляют желать.
    Но я сейчас не об этом.
    У этого же товарища есть визуальный симулятор Z80. И даже спек на нем он запускал, вроде на 800 кГц, практически в реальном времени можно диаграммы смотреть. Все не дойдут руки попробовать
    Profi v3.2 -=- Speccy2010,r2

  7. #6

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zebest #18
    да. видел. но нет до сих пор транзисторной схемы.
    Последний раз редактировалось AlexG; 03.01.2021 в 23:29.

  8. #7

    Регистрация
    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 есть моменты из серии "ну, так получилось" На кристалле есть парочка явно лишних проводников, которые потом были порезаны. Не помню что этим исправили, по-моему лишние такты там тоже были.

  9. #8
    HardWareMan
    Гость

    По умолчанию

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

  10. #9

    Регистрация
    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

  11. #10

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,964
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    313
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

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

Эту тему просматривают: 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

Ваши права

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