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

User Tag List

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

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

  1. #1
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Contended memory и прочие тормоза спектрумов

    Советский гений создал Пентагон, на остальных машинах всё оказывается не так радужно =\
    Вот тут http://www.worldofspectrum.org/faq/r...htm#Contention пишут "so programs which run in the contended memory (from 0x4000 to 0x7fff) or try to read from Port 0xfe ... will be slowed".
    На тормоза с портом, как я понимаю, можно наплевать, всё равно его читать обычно надо на прерывании, когда у нас рисуется бордюр.
    В 128х всё ещё хуже - тормозит не одна область памяти, а половина банков, у разных моделей разные наборы. Не тормозят только 0 и 2.
    Эти тормоза происходят только при исполнении кода из тормозного диапазона или даже когда идёт обращение к данным в эту область?

    Что произойдёт, если я выставлю I=#FE? (ну нету места в нижней памяти на табличку =\) "to crash the machine shortly after I is set to point to contended memory" будет зависеть от банка, торчащего в окне? А если надо банками щёлкать, то когда нужно подтыкать банк№0 с табличкой и обслуживанием инта?

    Какие ещё тормоза можно встретить на спектрумах? Что за "even M1"? Это из-за него Скорп называют тормозом?

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

  3. #2
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    even M1 - это WAIT на 1 такт, если команда начинается на нечетном такте. Зачем так сделано было - слабо понимаю. Скорее всего из-за схемы всобачивания турбы.
    В фирменных ZX тормозят нечетные банки (схема 128К) или банки 4..7 (схема +3) - это чтобы замедлить банки 5 и 7, где располагаются экраны.
    Медленными портами, кажется, болеют только некоторые варианты 48К.
    "Снег" возникает, если I находится в медленой памяти, включенные в #C000 медленные банки тоже считаются, если I там
    Последний раз редактировалось SAM style; 17.05.2015 в 12:18.
    Все любят гипножабу

  4. #3
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,405
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Эти тормоза происходят только при исполнении кода из тормозного диапазона или даже когда идёт обращение к данным в эту область?
    при любом доступе к медленной памяти, но и не только. Задержки идут также на промежуточных циклах процессора, когда по факту доступа к памяти или портам нет, но на шину процессор выставляет адрес медленной области памяти и неполную комбинацию сигналов для чтения/записи. Т.е. процессор по сути не обращается ни к памяти, ни к портам, но из-за упрощенной логики ULA, возникает комбинация сигналов приводящих к задержкам процессора. В зависимости от инструкции на шину при этом может попадать содержимое регистровых пар IR, PC, SP или HL...

    ---------- Post added at 17:54 ---------- Previous post was at 17:35 ----------

    Цитата Сообщение от SAM style Посмотреть сообщение
    even M1 - это WAIT на 1 такт, если команда начинается на нечетном такте. Зачем так сделано было - слабо понимаю. Скорее всего из-за схемы всобачивания турбы.
    гдето читал объяснение, насколько помню, такты в скорпионе выравниваются, чтобы избежать конфликта по доступу к памяти между видео генератором и процессором.
    В обычном спектруме для этого тормозится процессор при доступе к видеопамяти.
    В пентагоне для устранения конфликта используется хитрая замена порядка операций при конфликте, из-за чего мультиколор пентагона полноценно проэмулировать проблематично. Отсюда и неточная эмуляция таймингов видео пентагона практически во всех эмуляторах (ктото пробовал эмулировать эту логику в одном из эмуляторов, но не факт что точно).
    Последний раз редактировалось ZXMAK; 18.05.2015 в 17:41.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #4
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо!

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    при любом доступе к медленной памяти, но и не только
    Печаль, однако... Тормозищи выходят катастрофические.

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    хитрая замена порядка операций
    Я конечно не электронщик, но, насколько понимаю, вроде там довольно просто всё было - видео контроллеру каждые 4 такта надо прочитать два байта на точки и цвет, и ему по барабану в какой такт М1 это делать. Если шина занята, он ждёт. И в какой-нибудь такт шина обязательно становится ему доступна.

    А насчёт I можно прояснить, когда там снежить начинает? Тоже _сразу_ при его попадании на медленную память(когда медленную страничку например в банк втыкаем)?

    У отечественных машин такого ужаса ведь ни кого нету?
    Последний раз редактировалось NovaStorm; 18.05.2015 в 20:15.

  6. #5
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,767
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    1,173
    Поблагодарили
    770 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    У отечественных машин такого ужаса ведь ни кого нету?
    у первых достаточно точных клонов (львовский,москва) всё это есть.

  7. #6
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,405
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Я конечно не электронщик, но, насколько понимаю, вроде там довольно просто всё было - видео контроллеру каждые 4 такта надо прочитать два байта на точки и цвет, и ему по барабану в какой такт М1 это делать. Если шина занята, он ждёт. И в какой-нибудь такт шина обязательно становится ему доступна.
    на словах это конечно проще выглядит, правда насколько помню, кроме ожидания шины, у пентагона еще и порядок выборки attr/pixel меняется на pixel/attr. А вот точно проэмулировать такое поведение непростая задачка, для этого нужно четко разобрать как этот процесс на риале происходит, а детального описания и исследований этого вопроса нет
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  8. #7
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,692
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    У отечественных машин такого ужаса ведь ни кого нету?
    С чего вы решили? У бресткого горячо любимого Байта, как раз-таки двухполевая схема. И в своё время приходилоь править кучу софта из-за того что пейсатели под пятногон кидали I в медленную память.

  9. #8
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,405
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    А насчёт I можно прояснить, когда там снежить начинает? Тоже _сразу_ при его попадании на медленную память(когда медленную страничку например в банк втыкаем)?
    насчет снега, я подробного описания не нашел, общий смысл в том, что при значениях IR попадающих в замедленный диапазон, в какие-то моменты происходит необычный конфликт и ULA некорректно читает значение из видеопамяти. Вот как именно некорректно уже не помню, толи ULA читает значение по неправильному адресу, толи байт вообще не читается. Это гдето в книжке про реверс ULA было вкратце описано
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #9
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,557
    Спасибо Благодарностей отдано 
    1,220
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    у пентагона еще и порядок выборки attr/pixel меняется на pixel/attr. А вот точно проэмулировать такое поведение непростая задачка, для этого нужно четко разобрать как этот процесс на риале происходит, а детального описания и исследований этого вопроса нет
    А схемы посмотреть? )

  11. #10
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    У бресткого горячо любимого Байта, как раз-таки двухполевая схема
    И тоже тормоза до шести дополнительных тактов на команду?

Страница 1 из 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

Ваши права

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