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

User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 40

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

  1. #21
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Вот *****еды =) Неужели в ULA места не осталось...
    Думается мне, не места, а выводов. Еще +8 отдельно для процессора.

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

    По умолчанию

    А какой эмулятор поддерживает лучше всевозможные тормоза и глюки?
    Потестил свою поделку на EmuZWin - FPS на 128м, как и ожидалось, упал с 25 до 17(как он их считает кстати?), даже на скорпионе не падает, а тут - без шансов =(

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

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    А какой эмулятор поддерживает лучше всевозможные тормоза и глюки?
    Потестил свою поделку на EmuZWin - FPS на 128м, как и ожидалось, упал с 25 до 17(как он их считает кстати?), даже на скорпионе не падает, а тут - без шансов =(
    в emuzwin contentended memory некорректно работает.

    Для 128К и 48K early модели поддерживают хорошо ZXMAK2, Spectaculator, Fuse, SpecEmu.

    А вот для 48К late модели сами тайминги в этих эмуляторах работают вроде везде корректно, но вот c эмуляцией таймингов INT есть разница - у каждого эмулятора по своему. Как правильно неизвестно - никто так и не смог проверить на реальном железе
    Не исключено что во всех эмуляторах тайминги INT или сама эмуляция INT для 48K late неправильные

    Чтобы код работал быстрее на contended памяти, нужно чтобы как минимум:
    - код исполнялся в быстрой памяти;
    - стек находился в быстрой памяти;
    - не было обращений к медленной памяти
    - не было обращений к медленным портам
    - значение IR, SP или HL не попадало на медленную область памяти - это актуально при использовании некоторых инструкций, которые хотя явно и не обращаются к медленной памяти, но могут выставлять значение этих регистров на шину в сочетании сигналов управления, которые ULA детектит как обращение к медленной памяти
    - все обращения к медленной памяти/портам производить пока луч находится за пределами экрана
    Последний раз редактировалось ZXMAK; 22.05.2015 в 13:25.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #24
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    - значение IR, SP или HL не попадало на медленную область памяти - это актуально при использовании некоторых инструкций, которые хотя явно и не обращаются к медленной памяти, но могут выставлять значение этих регистров на шину в сочетании сигналов управления, которые ULA детектит как обращение к медленной памяти
    А можно поподробнее, что это за инструкции такие?

  5. #25
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,053
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Спектрум вообщето на ПЛМ был сделан,
    ULA - это не ПЛМ, это БМК. Полузаказная микросхема. А другие игровые компьютеры тех времен (Commodore-64, Atari 800) использовали полностью заказные БИС (всякие там CTIA/GTIA, Pokey, ANTIC и др). На полностью заказной БИС можно реализовать еще более сложные функции, поэтому эти компьютеры так и не были клонированы в СССР. Или слишком сложно было их реверсить, или потребовалось бы слишком много "рассыпухи", чтобы их повторить.
    Цитата Сообщение от ZXMAK Посмотреть сообщение
    это у нас даже в 90-е электронику еще на рассыпной комлектухе из мелкой логики в виде счетчиков, триггеров и регистров собирали
    Ну, не всю. Были школьные компьютеры типа УК-НЦ, там были и ПЛМ, и заказные БИС. Всякие "средние" ЭВМ, типа клонов PDP/11 - СМ-4, или клонов VAX, тоже широко использовали ПЛМ (в первую очередь - 1556ХЛ8/ХП8).
    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Думается мне, не места, а выводов. Еще +8 отдельно для процессора.
    Ну да, я тоже думаю, что скорее выводов не хватило. Вероятно, можно было поставить БМК с большим числом выводов, но это удорожало бы конструкцию. Но могло не хватить и места. БМК тех времен имели число базовых ячеек, измеряемое десятками. Не чета современным ПЛИС. Соответственно, 8 триггеров - это не такой ресурс, которым можно было разбрасываться.

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    А можно поподробнее, что это за инструкции такие?
    например LD SP,HL; ADD HL,rr; INC/DEC rr и т.п. детектятся ULA как обращение по адресу IR.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  7. #27
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    например LD SP,HL; ADD HL,rr; INC/DEC rr и т.п. детектятся ULA как обращение по адресу IR.
    С какого это перепуга так сделали?

  8. #28
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько я понимаю, сама ULA во время выполнения этих команд кладет на шину IR для регенерации памяти.

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

    По умолчанию

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

  10. #30
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    например LD SP,HL; ADD HL,rr; INC/DEC rr и т.п. детектятся ULA как обращение по адресу IR.
    IR с записью попадают на шину каждый цикл M1, ибо регенерация, отсюда берется снег. Мне интересно, когда на шину попадают HL и SP в командах, которые не читают/пишут память косвенной адресацией?
    Цитата Сообщение от ZXMAK Посмотреть сообщение
    например LD SP,HL; ADD HL,rr; INC/DEC rr и т.п. детектятся ULA как обращение по адресу IR.
    Вот эти команды не должны выкидывать на ША значения SP, HL, rr и прочего, это все внутри проца деется.
    То есть, если я в быстрой памяти делаю ld sp,hl, sp и/или hl укзывают в медленную память, i указывает в быструю память, то тормозов быть не должно.
    Если я делаю ld (#4000),hl или ld (hl),n при #40 <= h <= 7f, то тормоза могут наступить только в цикле записи в память (если i в быстрой памяти).

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

Ваши права

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