Просмотр полной версии : Турбирование ZX
Интересно, а каков вообще принцип турбирования ZX?
Известно что память в ZX работает на частоте в 2 раза быстрее CPU. Обращения ВК (видеоконтроллера) и CPU чередуются (здесь я имею в виду схему с "прозрачным" ВК).
Насколько я понимаю задачу: увеличить количество обращений CPU, оставив неизменной частоту обращений ВК.
Частота памяти и CPU повышается еще в 2 раза, лишнее обращение ВК пропускается?
Интересно, а каков вообще принцип турбирования ZX?
Известно что память в ZX работает на частоте в 2 раза быстрее CPU. Обращения ВК (видеоконтроллера) и CPU чередуются (здесь я имею в виду схему с "прозрачным" ВК).
Насколько я понимаю задачу: увеличить количество обращений CPU, оставив неизменной частоту обращений ВК.
Частота памяти и CPU повышается еще в 2 раза, лишнее обращение ВК пропускается?
Насколько мне известно. Стандартное турбирование заключается только увеличением частоты процессора, циклы обращения к памяти по моему не изменялись. Поэтому турбирование достигает до процентов 80%...90%.
Я же изменил тактику, увеличив все, но пришлось расплачиваться более быстрой памятью. Но турбирование здесь 100%.
Если интересно, посмотри ветку ZX-777, начальные схемы. А там можешь додумать как тебе поступить.
Турба это вещь!!!!
Но ведь CPU и память синхронизированы? Или же во время обращения к памяти выдаем WAIT и работаем фактически на 3.5 мГц?
Мне показалось что тут есть некоторое непонимание. Обычные РУ5 имеют период обращения (не путать с термином времененем доступа обычно применяемым для скорости SIMM памяти, время доступа обычно на ~70% имеет меньшее значение) в 280нс (T=1/f=1/280нс=3,5Мгц). Но процессор Z80 обращается к памяти не каждый такт, а один раз в 3-4 такта (в зависимости от команды). Тоесть условно можно считать что память может иметь период обращения в 3 раза большее, или скорость проца при той же памяти может быть большей в 3 раза. Но память в Spectrum состязательная, тоесть разделяет "окна доступа" с видеоконтроллером. А видеоконтроллер за один машинный цикл проца (3-4 такта) на частоте 3,5Мгц обращается к памяти два раза (для получения значения пикселов и атрибутов). Поскольку проц Spectrum работает синхронно с видеоконтроллером, то реальное разделение времени выполняется так:
1 Z80
2 Video pixel
3 Z80
4 Video attribute.
Если бы проц всегда имел длину мацинного цикла в 4 такта то память бы (при частоте проца в 3,5Мгц) использовалась на 50% (на 7Мгц проца на 100%). Но у Z80 есть и машинные циклы в 3 такта. Вот поэтому получается что проц и на 3,5Мгц притормаживается по WAIT (дабы попасть в свое "окно") и таже ситуация наблюдается и про 7Мгц.
Безваитовая схемы бывают нескольких типов:
1. Если видеопамять находится физически в других микросхемах ОЗУ;
2. Если применяется быстрое ОЗУ которое за один такт процессора может успеть выдать данные и CPU и видеоконтроллеру;
3. Если применяется чтение видеопамяти на опережение, как в Пентагоне, он кстати тоже безваитовый. Похоже (не совсем уверен) что на этом же принципе построена и схема безваитового Ленинграда.
AlexCrush
28.04.2007, 20:15
2. Если применяется быстрое ОЗУ которое за один такт процессора может успеть выдать данные и CPU и видеоконтроллеру;
Или я не совсем понял, или не совсем верно. Надо читать "выдать данные или CPU или видеоконтроллеру".
Дело ведь в том, что процессору,как уже было верно замечено, данные из памяти нужны не чаще чем раз в 3 такта, причем каждое обращение длится 2 такта. Видеопроцессору при стандартном разрешении нужны данные раз в два такта (при частоте 3.5 Мгц).
Поэтому самый простой способ безвайтового обращения к памяти - чередование тактов. Четные такты - процессору, нечетные - видеоконтроллеру. В компьютерах Magic5,6 и Кворум этот метод отлично работает с микросхемами РУ5Б,Г и даже Д.
В 100% турборежиме ничего принципиально не меняется, разве что видеоконтроллер будет использовать лишь половину из выделенных ему тактов. Память нужно заменять на SIMM модули (что стандартно и привычно), или на любые микросхемы, имеющие время цикла чтения менее 140 нс. Данная техника турбирования опробована мной на Magic5 лет 5 назад, причем изменения в схеме именно для турбирования - минимальные - ни одной новой м/с. А вот чтобы сделать переключение 3.5/7 Мгц пришлось сделать побольше - по-моему, одна или две м/с.
........ Данная техника турбирования опробована мной на Magic5 лет 5 назад, причем изменения в схеме именно для турбирования - минимальные - ни одной новой м/с. А вот чтобы сделать переключение 3.5/7 Мгц пришлось сделать побольше - по-моему, одна или две м/с.
А есть какие нить нацарапаные схемки?
:v2_wink2:
Данная техника турбирования опробована мной на Magic5 лет 5 назад, причем изменения в схеме именно для турбирования - минимальные - ни одной новой м/с. А вот чтобы сделать переключение 3.5/7 Мгц пришлось сделать побольше - по-моему, одна или две м/с.
А магик у тебя собран на плм или на дискретных элементах?
AlexCrush
01.05.2007, 10:48
А есть какие нить нацарапаные схемки?
:v2_wink2:
Есть, поищу. Найду - выложу
Добавлено через 3 минуты
А магик у тебя собран на плм или на дискретных элементах?
На дискретах, магик-5.
На ПЛМ построен магик-6, но туды соваться с целью увеличения памяти или турбирования - бесполезно. Я пробовал расширять ему память (подменой уже готового мультиплексированного сигнала MA7) - но ничего толкового не вышло (нет возможности узнать, какой сейчас такт - видео или процессора). Зато магик 6 собран всего на 16 м/с, включая 8 РУ5 ;-)
Или я не совсем понял, или не совсем верно. Надо читать "выдать данные или CPU или видеоконтроллеру".
Именно "И", потому что тормозить проц приходится именно тогда, когда проц нуждается в пересылке данных, но в это же время идет выборка данных видеоконтроллером.
Есть, поищу. Найду - выложу
Добавлено через 3 минуты
На дискретах, магик-5.
Оч хорошо, что на дискретах. Схему, пжлста, в студию!
AlexCrush
04.05.2007, 15:19
Именно "И", потому что тормозить проц приходится именно тогда, когда проц нуждается в пересылке данных, но в это же время идет выборка данных видеоконтроллером.
Если память способна выдать данные за один такт процессора (РУ5 вполне это может на 3.5 мгц, на 7мгц - могут симмы) - то проблем возникнуть не может. Причина: когда процессор обращается к памяти, это обращение длится минимум два такта (чтение опкода). Один из этих тактов точно - видеопроцессорский, один - процессорский. Т.е. коллизий не бывает
Добавлено через 1 минуту
Оч хорошо, что на дискретах. Схему, пжлста, в студию!
Схему магик-5 я уже выкладывал в теме "список отечественного спекки-железа". Если надо - выложу снова.
Схему турбирования нашел, попытаюсь (если время будет) сегодня вечером слегка очеловечить и выложить.
Схему магик-5 я уже выкладывал в теме "список отечественного спекки-железа". Если надо - выложу снова.
Схему турбирования нашел, попытаюсь (если время будет) сегодня вечером слегка очеловечить и выложить.
Давай.
И магика и турбы....
Если память способна выдать данные за один такт процессора (РУ5 вполне это может на 3.5 мгц, на 7мгц - могут симмы) - то проблем возникнуть не может.
Что-то кто-то пытается все запутать...
2. Если применяется быстрое ОЗУ которое за один такт процессора может успеть выдать данные и CPU и видеоконтроллеру;
Надо читать "выдать данные или CPU или видеоконтроллеру".
Именно "И", потому что тормозить проц приходится именно тогда, когда проц нуждается в пересылке данных, но в это же время идет выборка данных видеоконтроллером.
Еще раз. Причина по которой нам приходится притормаживать процессор это разная длина машинного цикла для разных команд (3-4 такта). Следствие причины - проц не может работать синхронно с видеоконтроллером, переодически возникает ситуация при которой проц обращается к ОЗУ не в свое время. Притормаживать приходится только в системах в которых ОЗУ за такт процессора способно считать-записать только один байт (это классическая РУ5 с периодом обращения 280нс). Выход из ситуации применять память которая способна за такт процессора обрабатывать запрос и от процессора и от видеоконтроллера. Если считать схему видеоконтроллера неизменной, то при 3,5Мгц тактовой частоты процессора память должна работать на частоте 7Мгц, при 7Мгц частоты проца память должна работать на частоте 10,5Мгц.
AlexCrush
04.05.2007, 20:11
Что-то кто-то пытается все запутать...
Да, быть может объясняю я не совсем понятно, но всё же попробую еще раз.
Если считать схему видеоконтроллера неизменной, то при 3,5Мгц тактовой частоты процессора память должна работать на частоте 7Мгц, при 7Мгц частоты проца память должна работать на частоте 10,5Мгц.
Неверно. Можно достичь равенства частоты памяти и ЦП. Это доказано в схеме Magic5 - компьютер собран на РУ5, при этом не используется ни сигнал Wait, ни замораживание тактовой частоты, ни прочие приемы "торможения" процессора. За одно прерывание имеем РОВНО 69888 тактов (312 строк - т.е. нормальный видеостандарт).
============================================
Мои изначальные утверждения:
1. Для полностью безваитовой работы в режиме 3.5 Мгц достаточно памяти, работающей на частоте 3.5 Мгц. Доказано разработчиками Magic5
2. Для полностью безваитовой работы в режиме 7 Мгц достаточно памяти, работающей на частоте 7 Мгц. Следует из (1), доказано моими доработками Magic5 5-летней давности.
Объясняю утверждение №1 (тактовая частота процессора 3.5 Мгц).
Видеопроцессору за одну горизонтальную строчку экрана (не бордюра) (256 пикселов, 128 тактов ЦП) нужно 32 байта пикселов и 32 байта аттрибутов. Т.е. 64 байта. Т.е. один байт раз в два такта.
У процессора обращение к памяти занимает или 2 (чтение опкода) или 3 такта (чтение/запись данных) . Т.е. в худшем случае (которого, впрочем, не бывает), процессору нужно получать данные раз в два такта.
Теперь поделим все такты между ЦП и видео "по справедливости" через один, т.е. один такт процессору, а следующий - видео. Предположим, что видеоконтроллер полностью использует все свои такты (что на самом деле не так - есть бордюр), и в каждый свой такт обращается к памяти.
А сейчас для улучшения понимания рассмотрим все возможные варианты действий процессора с памятью в разные моменты времени (по тактам):
---------------------------------------------------------
http://pages.plotinka.ru/~crush/turbo/M1_1.PNG
---------------------------------------------------------
http://pages.plotinka.ru/~crush/turbo/M1_2.PNG
---------------------------------------------------------
http://pages.plotinka.ru/~crush/turbo/RD1_1.PNG
---------------------------------------------------------
http://pages.plotinka.ru/~crush/turbo/RD1_2.PNG
---------------------------------------------------------
(Картинки продублированы во вложении "TurboDescriptionsPictures.zip").
Т.е. в любом случае, процессор и видеоконтроллер друг другу не мешают. Каждый обращается к памяти исключительно в свой такт.
Бывает так, что процессор читает (или записывает) данные из памяти по два раза (см "чтение или запись данных, вариант 1"). Ничего страшного в этом нет.
Таким образом, частота сигналов RAS и CAS равняется 3.5 Mhz.
В турборежиме ничего принципиально не менеяется. Все частоты поднимаются в два раза за исключением частот видеосчетчиков (включая строчную и кадровую синхру). А видеоконтроллер читает данные из памяти не каждый второй такт, а лишь каждый 4-й.
Во вложениях:
TurboDescriptionsPictures.zip (11.3 Кб) - картинки из этого поста
Magic5_DJVU.zip (329.8 Кб) - схема Magic 5, оригинал, 3.5 Мгц
TurboScheme.zip (58.2 Кб) - схема турбирования.
Картинка Turbo.djvu - это скан моих "записей" (скудно, да ведь? :) ) о турбировании magic5. Это просто изменения, которые нужно внести в схему магика чтобы он полностью стал 7 Мгц (без wait). Здесь нет системы "выключения" турбы, так же не приведен генератор wait-ов при обращении к медленным портам (ВГ93) - пока что я не нашел схему :( .
Картинка TurboM5.djvu - это измененная схема Magic5 (изменяется только вторая страница схемы). Изменения касаются элементов D11,D12,D13 и D22.
P.S. Если я опять не смог кого-либо убедить в возможности существования безваитового обращения к памяти, которая работает на частоте процессора, то прошу обратить внимание, на то что это уже сделано 16-17 лет назад в Magic5.
В турборежиме ничего принципиально не менеяется. Все частоты поднимаются в два раза за исключением частот видеосчетчиков (включая строчную и кадровую синхру).
Хы, любопытно. Значит ли это, что если мы поднимем еще и строчную синхру, то без проблем получим VGA-совместимый Спек? Мультиколоры конечно работать не будут, но тем не менее?
AlexCrush
07.05.2007, 18:19
Хы, любопытно. Значит ли это, что если мы поднимем еще и строчную синхру, то без проблем получим VGA-совместимый Спек? Мультиколоры конечно работать не будут, но тем не менее?
Сделать-то что угодно можно ;-) Тока строк-то на экране станет 625 (ну или 640), откуда изображение для них брать? Бордюрчик чтоли расширить :)?
Сделать-то что угодно можно ;-) Тока строк-то на экране станет 625 (ну или 640), откуда изображение для них брать? Бордюрчик чтоли расширить :)?
Зачем.
Просто как в эмуле при режиме "Во весь экран".
великолепная картинка.
Я бы не задумываябь переехал бы на ВГА
....
AlexCrush
07.05.2007, 19:47
Зачем.
Просто как в эмуле при режиме "Во весь экран".
великолепная картинка.
Я бы не задумываябь переехал бы на ВГА
....
Хм... Как-то мне даже в голову не пришло ;-D Бывает же. А так-то да. Можно без проблем сделать. Каждую строчку два раза выводить и всё.
Хм... Как-то мне даже в голову не пришло ;-D Бывает же. А так-то да. Можно без проблем сделать. Каждую строчку два раза выводить и всё.
Ну неужели я первый,кого эта идея посетила?:v2_jawdr: :v2_jawdr:
все по два раза....
Я при своих убогих знаниях и то уже придумал схемку, как это реализовать....:v2_wink:
Тока все времени не хватает запарится....
AlexCrush
08.05.2007, 06:41
Ну неужели я первый,кого эта идея посетила?
Попытаюсь оправдаться - у меня всегда в качестве устр-ва отображения - обычный телевизор, поэтому подобных идей никогда не возникало :-)
Господа, посмотрите вот сюда http://zx.pk.ru/showthread.php?t=2410 :)
Господа, посмотрите вот сюда http://zx.pk.ru/showthread.php?t=2410 :)
Так а толку то....
Как год назад умер проект,так и все....
Так а толку то....
Как год назад умер проект,так и все....
Причём тут это? Если не понял - ты не первый, кто додумался до ВГА путём удвоения строк :) Рабочий прототип есть, код есть, покупай плис, ваяй борд, заливай код и будет счастье.
Причём тут это? Если не понял - ты не первый, кто додумался до ВГА путём удвоения строк :) Рабочий прототип есть, код есть, покупай плис, ваяй борд, заливай код и будет счастье.
Ага.. перепещи код,и сделай так,как тебе надо...:v2_smoke:
Я не хочу монстров никаких... Спринтер - и то "Синклероподобное чудовище".:v2_blink:
Я просто хочу TV-VGA кодер.
( правильнее сказать TVRGB-VGA ).
Хотя,судя по всему,если мне все надоест,я таки сделаю такой переходник...
Что-то я не догоняю, что изображено на листке схемы турбирования. Какие там микросхемы? ТМ2, ЛН2 ??? Что за счеткик? Это схема для турбирования намертво?
AlexCrush
11.05.2007, 19:58
Что-то я не догоняю, что изображено на листке схемы турбирования. Какие там микросхемы? ТМ2, ЛН2 ??? Что за счеткик? Это схема для турбирования намертво?
На схеме - Turbo.djvu - изменения в схеме Magic5 для турбирования "намертво" (реально сделанную позднее схему для переключения 3.5/7 пока так и не нашел). Эти изменения не добавляют микросхем в компьютер, лишь изменяются существующие связи. Листочек прикреплен лишь чтобы понятней было, какие участки схемы подверглись изменению. На листке изображены микросхемы: сверху (синхрогенератор) ЛН1 D11, далее триггер TM2 - D12, счетчик - D13, одиноко валяющийся элемент И - это D22.
Смотрите лучше TurboM5.djvu - это фрагмент схемы Magic5 с уже внесенными изменениями.
Смысл сделанных изменений в схеме: удвоена частота сигналов RAS, CAS,CLC, DC1 (выбор типа такта - CPU/Video), но при этом сохранена частота сигнала DC2 (выбор типа видеотакта - пикселы/аттрибуты),а так же всех видеосчетчиков (H0-H4, V0-V7). Модифицирован узел формирования сигнала SCR (по фронту - выбор пиксельных видеоданных из памяти) на элементе D22 для того, чтобы пиксельные данные выбирались не каждый второй видеотакт, а лишь каждый 4й. (С выбором аттрибутов ничего подобного делать не надо, т.к. их выборка осуществляется по фронту сигнала DC2, частота которого сохранилась).
P.S. аж снова захотелось вернуться к реалу и любимому раскалленному тупому предмету :)
ILoveSpeccy
22.09.2007, 18:54
3. Если применяется чтение видеопамяти на опережение, как в Пентагоне, он кстати тоже безваитовый. Похоже (не совсем уверен) что на этом же принципе построена и схема безваитового Ленинграда.
Можно поподорбнее пожалуйста... что это за метод такой?
KingOfEvil
22.09.2007, 19:41
Можно поподорбнее пожалуйста... что это за метод такой?Дык я уже рассказывал, что сие и как работает.
ILoveSpeccy
22.09.2007, 21:21
Дык я уже рассказывал, что сие и как работает.
Тогда ткните носом пожалуйста :)
KingOfEvil
23.09.2007, 00:20
Тогда ткните носом пожалуйста :)
http://www.zx.pk.ru/showpost.php?p=93288&postcount=46
doorsfan
14.05.2010, 12:14
сделал безвайтовую турбу (подняв в-2е частоту на RAS, CAS, CPU, CLK) на SIMM-4MB, но столкнулся с нестабильной работой, точнее, запись в память отрабатывается с глюками, поэтому периодически возникают артефакты как на приложенной фотке (а иногда тест проходит полностью без ошибок):
бордюр чёрный, т.к. зажал ресет, чтобы неспешно сфоткать.
В известных схемах расширения на SIMM есть рекомендация растянуть WE/ мотивируя проблемами с регенерацией у пентагона. У меня не пентагон (буфер для видеоконтроллера сделан на 2х ИР26: http://zxtracker.eximservice.com.ua/details.php?id=bff29fc748dcd1bf4ea5663745cf27caa0e c9cc8 ). И регенерация не причём. Регистр записи сделал на 1533АП5 (вместе с SIMM распаяна коротким МГТФом над местом для установки РУ5), все микросхемы 1533 серии, КП12 2 штуки (используются 1,5, чтобы адресовать 4МБ) сидят вторым этажом.
На 3,5МГц SIMM работал совершенно стабильно.
Уважаемые ГУРУ, посоветуйте, что можно подкрутить, чтобы сделать стабильной работу?
doorsfan
14.05.2010, 13:00
Кста, совет Caro использовать для чтения сигнал WR приводит к неработоспособности схемы. Все КП12 одинаковой даты производства.
14МГц для ZX-KIT1 пробросил через ЛН2, чтобы не сказывались провода на меандр, пробовал брать с разных выходов генератора (типа возможное влияние доп. нагрузки на генератор на задержку в формировании RAS...). Разницы в частоте появления сбоев не заметил (точки были и есть одинаковой ширины, значит, по-видимому, меандр нормальный)
AHTuXPuCT
14.05.2010, 15:07
попробуй поставить микрухи 531 серии.
вот тут рекомендуют ставить серию 531
сделал безвайтовую турбу (подняв в-2е частоту на RAS, CAS, CPU, CLK) на SIMM-4MB, но столкнулся с нестабильной работой, точнее, запись в память отрабатывается с глюками, поэтому периодически возникают артефакты как на приложенной фотке (а иногда тест проходит полностью без ошибок):
Когда турбируешь на рассыпухе по методу умножаем все на 2. То почему то все забывают просчитать все задержки тракта записи и чтения.
Когда я делал это на статике, то при рассыпухе на 1533 серии память работала стабильно только начиная с 55нс и меньше. А вот когда лобал свой ZXM-777 с применением ATF16V8(программируемая логика), то память больше 20нс запустить стабильно была проблема.
Так что сначала оцени сумму всех задержек, а потом и увидишь в каком тракте у тебя работает на пределе.
doorsfan
19.05.2010, 17:50
Помогите пожалуйста заставить обычную схему на половинке 1533ЛА3, 2 резисторах и кварце генерировать на удвоенной частоте (14->28MHz). Хочу с помощью 1533ТМ2 получить "красивые" 14MHz.
doorsfan
25.05.2010, 17:04
Взял у друга на денёк Rigol 1052. Народ, кто в курсе времянок:
Длительность /wram 176 нс - достаточна?
/WR формируется с задеркой в 80нс, относительно WRAM
Длительность /WR 160нс
Переход 1->0 /WRAM совпадает с переходом 0->1 /CAS и
переход 0->1 /WRAM на 20 нс позже чем переход 0->1 следущего /CAS
cas задержан относительно ras на 90гр.
Активирование сигнала CPU (подключающий Адр. памяти к Адр. процессора) совпадает с переходом /RAS в 0 на уровне 3В, переход CPU в 0 на 12 нс раньше, чем переход следущего /RAS в 0.
переход в 0 защёлки ИР22 (на чтение) через 68нс после перехода в 0 /CAS - я так понимаю, это и есть те самые 68нс времени доступа к памяти, когда говорят, скольки-нановая память.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot