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

User Tag List

Страница 4 из 4 ПерваяПервая 1234
Показано с 31 по 40 из 40

Тема: Contended memory и прочие тормоза спектрумов

  1. #31

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Мне интересно, когда на шину попадают HL и SP в командах, которые не читают/пишут память косвенной адресацией?
    Какие-то внутренние циклы в процессоре происходят, при этом полная комбинация сигналов для доступа к памяти не возникает, но ula из-за неполной дешифрации считает что такое обращение идет и анализирует то что у процессора в этот момент на адресных линиях оказалось для формирования задержки.
    А на адресных линиях в этот момент оказывается содержимое этих регистров из-за особенностей реализации схемы внутри процессора

    ---------- Post added at 07:05 ---------- Previous post was at 06:57 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение

    Вот эти команды не должны выкидывать на ША значения SP, HL, rr и прочего, это все внутри проца деется.
    То есть, если я в быстрой памяти делаю ld sp,hl, sp и/или hl укзывают в медленную память, i указывает в быструю память, то тормозов быть не должно.
    А они будут, я об этом и говорю. Что по смыслу операции задержки быть не должно, но на риале она есть из-за упрощенной логики ula и особенностей процессора.
    Если IR указывает на медленную память, то NOP в быстрой памяти выполнится без задержки, а LD SP,HL с задержкой. Цикл регенерации и в той и в другой инструкции одинаковые. И к медленной памяти обе инструкции не обращаются. Но у одной задержки не будет, а у другой будет
    Последний раз редактировалось ZXMAK; 23.05.2015 в 07:20.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

  3. #32

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    А они будут, я об этом и говорю.
    А есть где почитать про это?

  4. #33

  5. #34

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    http://scratchpad.wikia.com/wiki/Contended_memory
    Ага, понял. Если инструкция выполняется дольше 4 тактов, то будет задержка по IR, но не по содержимому регистров.
    upd: Вернее, тоже не совсем так, дето не в длительности инсрукции.
    Последний раз редактировалось Alex Rider; 25.05.2015 в 16:24.

  6. #35

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ага, понял. Если инструкция выполняется дольше 4 тактов, то будет задержка по IR, но не по содержимому регистров.
    upd: Вернее, тоже не совсем так, дето не в длительности инсрукции.
    дело не в тактах, а в том как процессор инструкцию выполняет. На какихто инструкциях IR на шине болтается, на каких-то PC, на каких-то SP, на каких-то HL. Но чтобы это улу заффектило, нужно чтобы кроме адреса совпала еще комбинация сигналов. Большинство инструкций вообще улу не аффектят (кроме прямого влияния по смыслу операции).
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  7. #36

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ага, понял. Если инструкция выполняется дольше 4 тактов, то будет задержка по IR, но не по содержимому регистров.
    upd: Вернее, тоже не совсем так, дето не в длительности инсрукции.
    В таблице внизу (http://scratchpad.wikia.com/wiki/Contended_memory) каждая инструкция расписана по временным интервалам в тиках, в начале каждого интервала процессор может быть задержан в зависимости от значения регистра, указанного вместе с длительностью интервала.

    Например, pc:4 означает - на первом такте 4-тактового интервала процессор может быть задержан ULA, если значение PC в данный момент находится в адресах медленной памяти.
    Большинство команд могут тормозиться многократно:
    pc:4,pc+1:4,ir:1 x 7 => pc:4,pc+1:4,ir:1,ir:1,ir:1,ir:1,ir:1,ir:1,ir:1.

    В квадратных скобках указан вариант выполнения команды при выполнении условий команды..
    Последний раз редактировалось Spectramine; 25.05.2015 в 22:20.

  8. #37

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Например, pc:4 означает - на первом такте 4-тактового интервала процессор может быть задержан ULA, если значение PC в данный момент находится в адресах медленной памяти.
    Ага, сообразил. Вот для ld sp,hl указано: pc:4,ir:1 x 2. Это значит, что процессор тормозится по значениям pc и ir в медленной памяти, но не hl и sp. Потому что ни hl, ни sp на шину во время исполнения не попадают. А вот для ret sp в медленной памяти может вызвать тормоза, потому что происходит косвенное чтение по sp, и он попадает на ША.

    ---------- Post added at 23:15 ---------- Previous post was at 23:13 ----------

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    На какихто инструкциях IR на шине болтается, на каких-то PC, на каких-то SP, на каких-то HL.
    pc на всех, ir - если во время выполнения инструкции предусмотренна регенерация, другие регистры - если их значение выставляется на ША для косвенной адресации памяти или портов.

  9. #38

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    pc на всех, ir - если во время выполнения инструкции предусмотренна регенерация, другие регистры - если их значение выставляется на ША для косвенной адресации памяти или портов.
    еще раз повторюсь - регенерация на всех инструкциях есть, но на улу она не влияет. задержки по IR возникают НЕ во время регенерации. Какие инструкции другие регистры выставляют, можно по коду в zxmak2 посмотреть
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #39

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за табличку. Любопытно, contended memory оказалась не такой плохой, какой я ее себе представлял. Где-то раньше слышал, что любая попытка чтения из медленной памяти приводит к задержке процессора до самого конца строки экрана (т.е. задержка до 128 тактов), а оказывается - максимум на 6 тактов, после чего открывается окно в 2 такта для свободного обращения к памяти. Вероятно, в ULA для этого установлено несколько буферных регистров. 2 такта - это, наверное, чтобы один полный цикл доступа к памяти Z80 в них уложился.

  11. #40

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Написал простенький тест для замера скорости памяти в тактах на INT на 128К машинах. Можно жать TURBO, смотреть на циферки

    speedtest.zip

    Эти 2 пользователя(ей) поблагодарили drbars за это полезное сообщение:

    Bedazzle(12.06.2022), creator(12.06.2022)

Страница 4 из 4 ПерваяПервая 1234

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

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

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

Похожие темы

  1. Atari 130XE/65XE memory upgrade 1MB (4bit memory chips)
    от dkamenski в разделе Atari
    Ответов: 15
    Последнее: 12.01.2016, 16:20
  2. Дикие тормоза...
    от scl^mc в разделе Форум
    Ответов: 16
    Последнее: 02.11.2015, 13:11
  3. Времянки Contended Memory Spectrum 128
    от ZXMAK в разделе Программирование
    Ответов: 28
    Последнее: 28.09.2011, 23:32
  4. Contended memory /Медленная память/ на Original Speccy
    от MadCat! в разделе Программирование
    Ответов: 15
    Последнее: 05.03.2005, 11:18

Ваши права

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