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

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 22

Тема: Быстрая и медленная память 128к

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

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    а также некоторые промежуточные состояния проца, когда он активирует memrq, но rd и wr не активирует, т.е к памяти реально не обращается
    А что это за состояния такие? Мне на ум приходит только "регенерация памяти" во время цикла M1. Младшие биты шины адреса в этом случае берутся из регистра R, а старшие - кажется, из регистра I. В связи с этим, если регистр I указывает на медленную память - то тормоза будут постоянно, получается? Независимо от того, где выполняется код и откуда читаются/записываются данные?

    Далее, проц обращается к памяти также во время цикла подтверждения прерывания. Я слышал, что на оригинальных спеках есть проблемы еще и из-за этого, т.е. нельзя допускать чтобы регистр I указывал на медленную память. Поправьте, если я ошибаюсь.

    И еще. Продолжительность тормозов, в наихудшем случае, как я понимаю - это если проц обратился к памяти в начале отображения строки. Поскольку пиксельная частота 7МГц - то один такт 3.5МГц - это четверть знакоместа, а всего в строке 32 знакомест, т.е. максимальная задержка будет 128 тактов, а потом, до начала отображения следующей строки, задержек не будет? Есть ли реализации "умного" доступа к медленной памяти, когда проц обращается к ней только когда он "знает", что не столкнется с юлой?

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    И еще. Продолжительность тормозов, в наихудшем случае, как я понимаю - это если проц обратился к памяти в начале отображения строки. Поскольку пиксельная частота 7МГц - то один такт 3.5МГц - это четверть знакоместа, а всего в строке 32 знакомест, т.е. максимальная задержка будет 128 тактов, а потом, до начала отображения следующей строки, задержек не будет?
    Нет, проц затормаживается не на все 32 знакоместа, а только до того момента, как ULA отпустит память. Если не ошибаюсь, максимальная задержка - 6 тактов
    Последний раз редактировалось SAM style; 24.04.2013 в 17:40.
    Все любят гипножабу

  3. #13
    Master
    Регистрация
    16.09.2005
    Адрес
    Дзержинск (DustCity)
    Сообщений
    919
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Смысл задержек - простой, если в момент обращения к медленной памяти юла читает память, то проц тормозится до момента когда юла закончит свои дела, по сути, пока луч летит по экранной области, т.е юла занимает память и проц вынужден ждать. Прикол еще в том что под обращением проца к памяти понимается не только реальное обращение, но и обращение к портам, а также некоторые промежуточные состояния проца, когда он активирует memrq, но rd и wr не активирует, т.е к памяти реально не обращается
    oO!!!
    Примеры команд вызывающие промежуточное состояние плз? не особо осознал.
    Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder

  4. #14
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    В связи с этим, если регистр I указывает на медленную память - то тормоза будут постоянно, получается?
    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Я слышал, что на оригинальных спеках есть проблемы еще и из-за этого, т.е. нельзя допускать чтобы регистр I указывал на медленную память. Поправьте, если я ошибаюсь.
    Поэтому меня Pawel/RS постоянно по рукам бил, когда я I и обработчик прерываний помещал в адресах #4000-#7fff. У них на Байтах тогда программы глючили и не работали.
    Последний раз редактировалось Дмитрий; 25.04.2013 в 08:46.

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

    По умолчанию

    вот наглядный пример работы участка кода в быстрой и медленной странице памяти.
    http://zx.pk.ru/attachment.php?attac...1&d=1356084928

  6. #16
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TmK Посмотреть сообщение
    Примеры команд вызывающие промежуточное состояние плз? не особо осознал.
    Если я правильно понимаю, о чём идёт речь, halt будет наиболее очевидным примером такой команды: "Each cycle in the HALT state is a normal M1 (fetch) cycle except that the data received from the memory is ignored and a NOP instruction is forced internally to the CPU."

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

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

    По умолчанию

    Цитата Сообщение от introspec Посмотреть сообщение
    Если я правильно понимаю, о чём идёт речь, halt будет наиболее очевидным примером такой команды: "Each cycle in the HALT state is a normal M1 (fetch) cycle except that the data received from the memory is ignored and a NOP instruction is forced internally to the CPU."
    Судя по написаному, чтение с адреса PC происходит как обычно (mreq+rd), но PC не увеличивается (?), а считанный на шину данных код не выполняется.
    Все любят гипножабу

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

    По умолчанию

    Цитата Сообщение от TmK Посмотреть сообщение
    oO!!!
    Примеры команд вызывающие промежуточное состояние плз? не особо осознал.
    например:
    DJNZ disp - на 5 тактов выставляет значение PC на шину адреса
    RET c - на 1 такт выставляет значение IR (это как-раз то, о чем Barmaley_m выше спрашивал )
    DEC (HL) - на 1 такт выставляет значение HL
    и т.п.
    Последний раз редактировалось ZXMAK; 26.04.2013 в 00:33.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    DJNZ disp - на 5 тактов выставляет значение PC на шину адреса
    И при этом что, активируется MREQ?

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

    По умолчанию

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

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

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

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

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

Похожие темы

  1. Мега быстрая загрузка с кассеты???
    от ALEXEY.GORDEEV в разделе Софт
    Ответов: 48
    Последнее: 12.05.2021, 01:48
  2. Медленная память
    от Slider в разделе Для начинающих
    Ответов: 5
    Последнее: 28.02.2012, 12:46
  3. Быстрая тригонометрия...
    от ALKO в разделе Программирование
    Ответов: 8
    Последнее: 25.01.2011, 00:29
  4. Ответов: 4
    Последнее: 16.06.2010, 20:37
  5. Contended memory /Медленная память/ на Original Speccy
    от MadCat! в разделе Программирование
    Ответов: 15
    Последнее: 05.03.2005, 11:18

Ваши права

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