RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Апрель 2024
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930     

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Турбирование Специалиста

Перейти вниз

Турбирование Специалиста Empty Турбирование Специалиста

Сообщение  barsik Пт Май 22 2020, 13:33

1
Кто-нибудь, ещё не сталкивающийся с ограничениями из-за медленности процессора (например, при подключении дисковода или адаптации ZX-игр) может наивно спросить, а на кой хрен нам увеличивать быстродействие Специалиста, если все имеющиеся программы Специалиста рассчитаны на КР580 на такте 2 МГЦ? Естественно, если у Вас задача только посмотреть пару-тройку ретро-игр Специалиста и убрать его под стекло, то ни заменять процессор на Z80, ни турбировать не требуется.

Но, если пользователю нужна хотя бы минимально-приемлемая текстообработка, использование ЯВУ, скоростной обмен с винчестером, дисковод в формате DD, написать графический интерфейс (GUI) или в десятки раз увеличить число программ для Специалиста путём аппаратно-программной эмуляции, то без турбирования не обойтись. Опыты на ОРИОНЕ показали, что для аппаратно-программной эмуляции ZX-игр минимально достаточно иметь эффективный такт порядка 4 МГЦ (и это ещё без эмуляции FLASH и в монохроме). Предположительно для такой же аппаратно-программной эмуляции игр РК86 хватит эффективного такта всего лишь в 2.5 МГЦ.

Процессор КР580 неплох и его системы команд для программирования вполне достаточно. Объём инструментального ПО для разработок под КР580 - один из самых больших в мире среди 8-ми разрядок. Но увы, этот процессор имеет большой недостаток, - он слишком древний, рано утратил популярность и потому не производятся его скоростные варианты. Из-за того, что увеличивать клок в синхронной машине можно только кратно, то, к сожалению, КР580 в Специалисте не турбируется, т.к не тянет клок 4 МГЦ. Это ставит жирный крест на его использовании в моём Специалисте.

По счастью Федерико Фаджин и Масатоши Шима в 1976 году изобрели процессор Z80, который не вымер в конце 70-тых годов XX-века, как несчастный Intel 8080, а имел намного более удачную судьбу и широко использовался несколько десятков лет. С 1980 года выпускался Z80B (6 МГЦ), с 1982 года - Z80H (8 МГЦ). А после появления скоростной памяти (15 НСЕК) в начале 90-тых появились ещё более скоростные и экономичные КМОП-варианты Z80, которые теперь доступны из Китая.

Хотя обычно под видом Z84C0020 китайцы подсовывают перемаркёр сделанный из Z84C0010 или даже Z84C0008. Иногда продавцы наглеют до того, что под видом Z84C0020 подсовывают древние н-МОП Z80H (которые легко идентифицировать по разогреву), а иногда даже - ещё более медленные Z84C0006,  которые и 10 МГЦ не тянут. Шанс купить Z84C0020 невелик, потому лучше сразу покупать Z84C0010.

Также выяснилось, что все процессоры имеют некоторый запас и позволяют так называемый "оверклокинг". Мне в 90-тые годы удавалось в ОРИОНЕ разгонять Z80B до 9 МГЦ, а Z80H работал на 12 МГЦ. Кстати, КР580 у меня надёжно работал с тактом 3.55 МГЦ. Из этих цифр можно предположить, что большинство процессоров в любительских конструкциях можно разгонять до 1.5 раз от максимально допустимой частоты по даташиту.

Варианты турбирования Z80 применялись на ОРИОНЕ, но принцип работы Специалиста тот же. Есть несколько вариантов турбирования Z80. Основное отличие вариантов в том, повышается ли только клок Z80 при сохранении исходного периода доступа к ОЗУ (тогда для удлинения цикла доступа используется WAIT или переключается на пониженный клок Z80) или синхронно увеличивается и клок процессора и частота работы ОЗУ (т.е сокращается период доступа к ОЗУ).

Схемы турбирования без удвоения RAS-CAS ОЗУ дают ускорение в 1.42 раза. Кстати, разновидностей схем Турбо-142% - две. В одной используется WAIT, а в другой по /MREQ переключается клок на вдвое пониженный. Ускорение 1.42 - это при двойном повышении клока Z80. При четверном повышении клока, когда RAS-CAS ОЗУ по прежнему 2 МГЦ, а CLK Z80 - 8 МГЦ достигаемое ускорение относительно схемы с двойным клоком, - заметно меньше, чем 1.42. Дополнительное ускорение при переходе от двойного к четверному клоку - менее 20% и общее ускорение тогда будет менее, чем в 1.7 раза (т.е при кварце в 8 МГЦ составит ~3.4 МГЦ).

В схемах с WAIT ОЗУ остаётся на низкой скорости, отчего надёжность работы не меняется. А в схемах турбирования без WAIT период доступа к ОЗУ также сокращается, частота RAS-CAS удваивается. От этого резко увеличивается разогрев ОЗУ. При 565 РУ5 разогрев легко сократить, если запрещать /CAS на время бордюра (для регенерации DRAM достаточно /RAS). Схема запрета лишних импульсов /RAS (в т.ч. и для лишних тактов видео) - довольно громоздкая (6 корпусов), но сокращает число обращений к ОЗУ на 40%, соответственно уменьшая нагрев.

В Специалисте исходная частота RAS-CAS ниже, чем в ОРИОНЕ, потому при её удвоении не происходит столь резкого роста потребления тока и разогрева ОЗУ. Даже не требуется применять вентилятор или наклеивать на ОЗУ медные радиаторы. Частоту RAS-CAS в 4 МГЦ микросхемы 565 РУ5 и РУ7 тянут ещё без фатального перегрева. А вот 565 РУ3 не тянут столь высокие частоты. Потому при 565 РУ3 лучше схемы с WAIT, при которых скорость работы ОЗУ не меняется.

Я сейчас использую Специалисты с кварцем не 8 МГЦ и не 10 МГЦ, а 9 МГЦ. Это мне уплющивает экран (чтобы растр влезал в экран телевизора целиком), и как оказалось, это может дать существенный выигрыш при турбировании Специалиста на статических ОЗУ (если удастся придумать как это сделать максимально просто).

Статические ОЗУ 6264 и 62256 стали доступны с 1990 года. Я купил тогда их полтора десятка разных и применил две 62256 спаянные вместе (чтобы нужна была всего одна панелька) в ОРИОНЕ в качестве 3-й страницы ОЗУ, а две 6264 спаянные вместе долго использовались у меня в РК86 совместимо включённые в окне 8400...BFFF. У меня до сих пор есть эти двойники, т.е двухэтажные ОЗУ. Что интересно, ни одна из статических ОЗУ не сдохла за 30 лет (даже 537РУ10), а динамических ОЗУ за это же время у меня сдохло до 100 штук (причём большинство не от запредельных режимов эксплуатации, а просто от времени).

Турбирование на 200% достигается и при динамическом ОЗУ, но ПОЛНАЯ замена всего динамического ОЗУ в Специалисте на статическое (сделанное из двух корпусов 62256) позволяет увеличить быстродействие не только на 200%, но и больше. Тактировать процессор кратной частотой необходимо из-за работы видео схемы (т.к к ОЗУ попеременно обращаются, то процессор, то видеочасть).

В отличие от динамических ОЗУ, статические ОЗУ не нуждаются в обращениях во время бордюра (что нужны для регенерации всех ячеек DRAM). Во время бордюра синхронизация с видеочастью не требуется, т.к и сами обращения к ОЗУ от видео схемы во время бордюра не требуются. Потому при статике на время бордюра можно полностью запретить обращения к ОЗУ от видеосхемы и на время бордюра поднять такт процессора до максимально возможного. Причём, что самое ценное в этой идее, тут уже не требуется кратность частот. Естественно, при некратных частотах переключения клока разумно стробировать фронтом сигнала /MREQ.

Таким образом при применении КМОП процессора Z84C0020 (который якобы тянет аж 20 МГЦ) и скоростного ОЗУ w24257 с циклом доступа в 15 НСЕК можно подать на Z80 во время бордюра клок в 16 МГЦ. Процент времени, которое в Специалисте с пиксель-клоком 8 МГЦ занимает бордюр составляет (256*25 + 56*100)/312= 38.5% (25 процентов длительности строчного периода длится строчный бордюр). Обычным способом турбируем Z80 вдвое (клок Z80 4 МГЦ), но на время бордюра будем переключать его на 16 МГЦ. Хотя можно применить и несинхронный клок, например 14 МГЦ (с синхронным клоком чуть проще, т.к не нужно стробирование при переключениях).

В итоге средний эффективный клок процессора Z80 в таком Специалисте достигнет 0.62*4.0 + 0.38*16.0 = ~8.56 МГЦ чистого эффективного такта. Выигрыш можно увеличить, если увеличить длительность бордюра немного подняв пиксель клок (это в любом случае полезно, чтобы растр целиком влезал в телевизор). При пиксель клоке 9 МГЦ и клоке Z80 во время бордюра в 13.5 МГЦ (полученным из кварца 27 МГЦ) получается эффективный клок 9.45 МГЦ. А если во время бордюра на Z80 подавать несинхронный клок в 15 МГЦ, то эффективный такт составит уже 10.3 МГЦ. Если серия 1533 не позволит столь высокие частоты, то может помочь замена нескольких ИМС 1533 на более скоростные современные.

Даже если скоростной Z84C0020 поиметь не удастся, то и на обычном Z80B (коих у меня есть в наличии аж 5 штук, не считая 5 штук запаянных в платы ОРИОНА) можно достичь большого успеха в турбировании. Z80B у меня надёжно тянули клок в 9 МГЦ. Кстати, некоторые люди рапортовали, что у них Z80B работали в ОРИОН-ПРО при клоке 10 МГЦ, но это совсем не показатель, т.к в ОРИОН-ПРО ОЗУ вэйтовано (так что реально там только внутренние процессы в Z80 идут на 10 МГЦ, доступ к памяти и В/У идёт на 5 МГЦ).

При Z80B оптимально применить кварц 9 МГЦ, тогда исходный клок Z80B будет 4.5 МГЦ. При таком повышении пиксель клока процент времени отводимый на бордюр также увеличивается. При пиксель клоке 9 МГЦ коээфф-т строчного счётчика увеличивается с 64 до 72, а процент времени строчного гашения с 25% до 33.3%. Общий процент времени, которое занимают строчный плюс кадровый бордюр в Специалисте с кварцем 9 МГЦ составит: (33.3*256 + 100*56)/312= 45%. Считаем эффективный такт при периодическом переключении клока Z80B с 4.5 на 9 МГЦ:  0.45*4.5 + 0.55*9.0 = 6.975 МГЦ. Т.е ~7 МГЦ, что в 3.5 раза быстрее базового варианта Специалиста. Это весьма неплохо для любой 8-ми разрядки (ОРИОН-ПРО даёт примерно такую же скорость).

Интересно прикинуть какой выигрыш даст коммутация клока на ещё нетурбированном Специалисте на Z80, но с кварцем не 8, а 9 МГЦ и с статическим ОЗУ. Тогда при выводе растра Z80B тактируется клоком 9/4= 2.25 МГЦ, а во время бордюра тактируется уже клоком в 9 МГЦ. Итого имеем: 0.45*2.25 + 0.55*9.0 = 5,96 МГЦ, что тоже очень неплохо. А вот при пиксель клоке 8 МГЦ выигрыш аж на 1.7 МГЦ меньше: 0.62*2.0 + 0.38*8.0 = 4.28 МГЦ.

Таким образом переключение клока во время бордюра даже эффективнее схемы двойного Турбо. Эффект тем выше, чем меньшую часть экрана занимает растр. Например, в ОРИОНЕ, где экранчик сильно уплющенный, бордюр длится 51 % времени, при задирании клока во время бордюра до 10 МГЦ эффективный такт получается 0.49*2.5 + 0.51*10.0= 6.325 МГЦ. Но ОРИОН для переделки на статику гораздо менее удобен, т.к в нём слишком много ОЗУ. Из отечествнных клонов ZX-Spectrum только в "Хоббите" (фирмы Intercompex) ОЗУ было сделано на статике 62256. Там переключение во время бордюра клока до 7 МГЦ дало бы выигрыш до более 5 МГЦ.

Это идея пригодна для любого ретро-компьютера с встроенным видео и ОЗУ выполненным на статике. Но к сожалению, для DRAM эта идея не годится. И даже не потому, что нельзя останавливать строчный счётчик на 48 (он должен досчитывать до 64, иначе не будет полной регенерации столбцов матрицы DRAM). А потому что динамическое ОЗУ не потянет короткий период /MREQ Z80 на высокой частоте, да и переключать временнУю базу формирующую RAS-CAS получилось бы очень громоздко.

Кроме того существенным недостатком такого метода турбирования является постоянно прыгающий такт процессора, что затрудняет обслуживание коротких процессов в реальном времени.

И всё же было бы интересно попробовать переделать Специалист полностью на статическое ОЗУ. У меня  как раз есть подходящая плата, чтобы выпилить из неё фрагмент с DRAM и поставить 62256 на все 64К (надеюсь, что этим займусь, но намного позднее, сейчас имеет смысл реализовывать лишь самое простое). Внеэкранное ОЗУ Специалиста 0...7FFF на статику переделывается предельно просто, - достаточно сформировать чип селект (из сигнала /MREQ и адреса A15) и поставить 62256 в панельку 28 ног.

А вот чтобы заменить экранное ОЗУ в области 8000...BFFF на 565РУ5, стоящее после буфера данных, из-за того, что адрес на этом ОЗУ мультиплексируется половинками, придётся делать существенные доработки на плате, - или менять все 155 КП2 на 555 КП11 (т.к для статики не надо разбивать адрес на половинки) или защёлкивать RAS-овую половину адресов в регистре 555 ИР23, тогда по /CAS=0 на 62256 будет готовый полноценный адрес.

Без такой сложной переделки всего ОЗУ на статику переключать клок на время бордюра на максимальный нельзя. Потому пока остаётся лишь поставить статику ниже 8000 и попробовать применить лобовой вариант - поднять клок Z80 до 8 МГЦ и сделать так, чтобы обращения процессора в память по адресам выше 8000 происходили с WAIT-ом удлиняющим цикл до стандартного для DRAM (т.е 500 НС без Турбо-200% и 250 НС при Турбо-200%), а обращения процессора в адреса ниже 8000 происходили без WAIT на полной скорости 8 МГЦ (или даже 9 МГЦ).

- - - Добавлено - - -

Вышеупомянутый метод переключения клока на максимальный на время бордюра имеет смысл лишь для статического ОЗУ установленного вместо динамического, т.е после буфера шины данных. Но т.к доступна статика 62256 с объёмом 32 кб, то нет необходимости обе половинки ОЗУ ставить после буфера, тем более, что есть панелька на 28 ног. На которую адреса приходят немультиплексированными, т.е ещё не разбитыми на половинки. Потому установка статики 62256 в ОЗУ ниже 8000 это вообще не проблема.

К этой скоростной 62256 стоящей в панельке на плате Z80 может обращаться при такте 8 МГЦ без WAIT (к сожалению не все 62256 тянут 8 МГЦ без WAIT). А для доступа к медленным 565 РУ5 стоящим в адресах 8000...BFFF при клоке 8 МГЦ нужно применять схему четверного Турбо с нетурбированным ОЗУ. В такой схеме цикл доступа к ОЗУ с помощью введения WAIT удлиняется в те же 4 раза до требуемых для медленных ОЗУ 500 НСЕК, что существенно тормозит прогон программы.

Вэйтование обращений к ОЗУ при двойном соотношении частот CLK и RAS-CAS сокращает ускорение с 2 раз до 1.42 раза. А при соотношении частот CLK и RAS-CAS в 4 раза ускорение относительно двойного соотношения часто уже намного меньше, чем 1.42. Переход от двойного к четверному клоку при сохранении исходной скорости ОЗУ даёт дополнительное ускорение не более, чем в 1.2 раза. Т.е, если ОЗУ медленное, а CLK в 4 раза быстрее, то достигается ускорение, максимум, в 1.7 раза.

Таким образом, если частоту RAS-CAS РУ5 не менять, а CLK учетверить, то при кварце 8 МГЦ программа в ОЗУ выше 8000 будет прогоняться на скорости 2.0*1.7= 3.4 МГЦ, зато в ОЗУ ниже 8000 - уже на полной скорости 8 МГЦ. Как вариант, можно не использовать сигнал WAIT, а использовать коммутацию клока Z80. Если при сигнале /MREQ стоит адрес больше 8000, то клок переключается на 2 МГЦ. Если же /MREQ нет, то очередным импульсом CLK 8 МГЦ клок Z80 снова переключается на 8 МГЦ. Интересно какой из вариантов даст большую скорость прогона.

Если сделать полноценное Турбо-200% при кварце 8 МГЦ (при 9 МГЦ всё-же надёжнее Турбо-142%, иначе  без спец.мер жарким летом возможна сбойность при перегреве ОЗУ), а затем клок Z80 ещё раз удвоить (ОЗУ оставляя на 4 МГЦ), то эффективный такт будет 4*1.42= 5.68 МГЦ. А если это удастся при кварце 8.5 МГЦ (потому, что у меня есть кварц 17 МГЦ), то эффективный такт будет уже 6 МГЦ. При кварце 9 МГЦ - эффективный такт будет 6.39 МГЦ. Это тоже конечно впечатляет, но чистые 8 или даже 9 МГЦ при работе программы из статики в адресах ниже 8000 впечатляют гораздо больше.

Как видите, Специалист это не только самый простой и целесообразный компьютер для любителя, но он идеально подходит для аппаратных экспериментов, в том числе и для  турбирования. И вариантов такого турбирования можно придумать килограмм.

Но мне важно, чтобы доработка была минимально простой и вроде бы один корпус статики 62256 в окне 0...7FFF, с оставлением экрана на DRAM 565 РУ5 это неплохой в этом плане вариант. У меня мало сомнений в том, что небуферизованный Z80 в Специалисте и пара скоростных 62256 потянут клок в 8, а вероятно даже и 9 МГЦ. Я так уже делал на такой же плате Экспресс, правда там за ненадобностью не стояли адресные мультиплексоры (для 62256 они не нужны, а видеодаптер был внешний). Адресные мультиплексоры это всего один вход 1533 на каждый адрес, да и в ОРИОНЕ, где шина более перегружена 9 МГЦ Z80 работал. Если же Z80 потянет только 4.25 МГЦ, то от применения статики пользы не будет, т.к двойное Турбо-200% (с удвоением и RAS-CAS ОЗУ) даёт то же самое, но проще.

При работе МП-ядра в Специалисте на Z80 на такте 8...12 МГЦ возможен еще один вариант схемы. А именно несинхронный. Тогда динамическое ОЗУ остаётся на такте 2 МГЦ (или 4 МГЦ в схеме Турбо-200%), а Z80 тактируется максимально возможным, причём произвольным и несинхронным с видеосхемой высоким клоком. Синхронизация с видеочастью достигается за счёт доступа процессора к ОЗУ во время разрешённого окна. Т.к видеочасти достаточно за 1000 НСЕК иметь только один доступ к ОЗУ длительностью 500 НСЕК (или 250 НСЕК при Турбо-200%), то каждый нечётный период 500 НСЕК отдаётся для доступа к ОЗУ видеочасти, а каждый чётный образует окно доступа для процессора. По обращению к ОЗУ процессор останавливается по WAIT и этот сигнал поступает на D-вход триггера. Затем по ближайшему следующему переднему фронту "окна" этот триггер взводится, WAIT-сбрасывается, буфера открываются и процессор производит доступ к ОЗУ.

В такой схеме ускорение зависит от соотношения частот CLK Z80 и частоты временнОй базы видеочасти, т.е частоты RAS-CAS. Если ОЗУ на базовых 2 МГЦ, а CLK Z80 от 7 до 12 МГЦ, то ускорение (считая от 2 МГЦ) относительно невелико, вероятно не более 1.5 раз (т.к тогда процессор вэйтится при каждом обращенни на 3...4 маш.такта). Если же частота RAS-CAS ОЗУ удвоена до 4 МГЦ, отчего при доступе в ОЗУ процессор вэйтится в среднем чуть более одного маш.такта (в худшем случае вводится два маш.такта), то ускорение вероятно превысит 2 раза.

Такой алгоритм синхронизации мной уже использовался. На таком принципе стыковались с компьютером платы моих текстовых адаптеров, т.к в плате текстового адаптера свой кварц и в МП-ядре тоже свой кварц. При этом медленное статическое ОЗУ 565РУ2 (1К*1) или 6514 (1К*4) в плате текстового адаптера имело период доступа не менее 700 НСЕК, а Z80 тактировался максимально возможным клоком (с периодом маш.такта ~200 НСЕК). Обнаружилось, что несинхронная схема невыгодна, - выигрыш по ускорению в несинхронной схеме намного ниже, чем в синхронной схеме. Несинхронная схема всегда будет как минимум в 1.5 раза менее скоростной при сравнимых частотах. Несинхронность не особо вредит, если она лишь для крошечного экранного ОЗУ, а основное ОЗУ в котором программы и стек - скоростное с доступом без WAIT.

Еще можно подумать о применении метода расслоения памяти (interleaved memory). Такой метод применяли в Супер ЭВМ для ускорения. В Океане-240 видеосхема читает сразу 16 битов, т.е обе банки ОЗУ. Благодаря этому сокращается число обращений от видеосхемы к ОЗУ за единицу времени, оставляя больше времени процессору.
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

Турбирование Специалиста Empty .

Сообщение  barsik Пт Фев 05 2021, 17:42

2
Хотя для Специалиста я и не планирую использовать процессор КР580, а с Z80 нет проблемы работать и на 6 МГЦ и более (пока у меня на Специалисте лишь 4 МГЦ на Z80, что было сделано ещё в 1993 г, когда мне стала известной схема двойного 200% турбирования ОРИОНА на Z80). Эта схема на Специалисте даже лучше пришлась к месту, ибо на ОРИОНЕ из-за его исходно неудачного клока CPU, ОЗУ 565 РУ5 перегревались и сбоили, а в Специалисте этого не было и при замене на Z80 даже никаких подгонок фронтов емкостями и последовательными вентилями не требовалось.

А вот для РК86 я бы хотел поиметь КР580, т.к РК я не собираюсь использовать как CP/M-компьютер, где (чтобы работал Турбо-Пасквиль) непременно требуется процессор Z80. Т.о на РК86 желательно разогнать именно КР580 до предела. Это не сделать на DRAM, т.е при ОЗУ на 565 РУ3 или РУ5 (если только 565 РУ7И, которые легко тянут 5 МГЦ и не греются), а можно сделать только на скоростной статике. Древние 62256 (они из конца 80-тых) имеют время доступа в 150 нс, а более свежие w24257/512 ещё более скоростные (по даташиту всего 15-20 нс).

Я уже решил, что КР580 никогда не потянет даже 4 МГЦ, но вот сегодня узнал любопытную новость. Кому-то вот здесь удалось разогнать избранные процессоры КР580 ВМ80 до клока аж 5 МГЦ, а импортный аналог P8080A аж до 6.7 МГЦ, что очень впечатляет, если это конечно реально (м.быть процессор воспринимает лишь каждый второй фронт клоков, так что без результатов бенчмарка это ещё сомнительно).

Вероятно секрет работы КР580 на 4 МГЦ заключается в максимальной разгрузке шин (маловходово-жрущими буферами), использованию скоростной статической памяти и мощного радиатора. Мне в "Специалисте" удалось добиться стабильной работы КР580 только на 3.5 МГЦ (кварц 28 МГЦ). А на 4 МГЦ удавалось добиться его работы в течение лишь нескольких секунд после сброса. Похоже причиной был местный перегрев кристалла, ибо процессор без радиатора, вообще сбивался спустя секунду. Может быть свою лепту вносило медленное ОЗУ и ПЗУ и если заменить их на более скоростные будет результат получше.

В любом случае чужие успехи всегда добавляют энтузиазма и подталкивают к собственному творчеству. Хотелось бы поставить в плату Специалист-Экспресс в его 28-ми ногую панельку статику 62256 в область 0...7FFF, временно вытащив из панелек буфера 589АП16 стоящие для 565 РУ5. Тогда на экране ничего не будет, но тестом можно оттестировать правильность работы кода из ПЗУ и чтение/запись ОЗУ. Главное, что это даст сигнал о том, что сам процессор тянет 4 МГЦ. Вот если это получится, то можно рассматривать варианты:

- пытаться заставить работать с 565РУ5 двигая фронты /RAS /CAS и клоки Ф1 и A2
- заменить 565 РУ5 полностью в адресах 0...BFFF на статику
- заменить 565 РУ5 на статику в адресах 8000...BFFF, имея 62256 стоящую без буфера ШД в области 0...7FFF.
- заменить 565 РУ5 на статику в адресах 0...8FFF без буфера ШД, оставив 565РУ5 только на экранное ОЗУ 9000...BFFF

Если сам процессор устойчиво заработает на 4 МГЦ, то код из ПЗУ, даже при обычных РФ2/РФ5 без сомнения будет работать (т.к у меня РФ2 работали на 6 МГЦ, но выше нет). Хотя всё-равно для разгрузки шины лучше поставить не несколько РФ2, а одну 27256. А вот ОЗУ 565 РУ5 останется слабым звеном. Но если сам КР580 будет тянуть 4 МГЦ, то далее всё намного проще, экспериментально удастся получить Специалист на КР580 с двойным Турбо (неважно будет это на статике или всё-же удастся использовать DRAM).

Специалист на 4 МГЦ это намного веселее, учитывая, что советские клоны ZX-Spectrum имеют реальное быстродействие лишь ~2.75 МГЦ (а по другим источникам даже ~2.5 МГЦ).
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

Турбирование Специалиста Empty Re: Турбирование Специалиста

Сообщение  SpaceEngineer Вт Окт 12 2021, 15:18

3
Приветствую!

barsik пишет:Вероятно секрет работы КР580 на 4 МГЦ заключается в максимальной разгрузке шин (маловходово-жрущими буферами), использованию скоростной статической памяти и мощного радиатора. Мне в "Специалисте" удалось добиться стабильной работы КР580 только на 3.5 МГЦ (кварц 28 МГЦ). А на 4 МГЦ удавалось добиться его работы в течение лишь нескольких секунд после сброса. Похоже причиной был местный перегрев кристалла, ибо процессор без радиатора, вообще сбивался спустя секунду. Может быть свою лепту вносило медленное ОЗУ и ПЗУ и если заменить их на более скоростные будет результат получше.
Я где-то читал, что буферы, наоборот, могут стать препятствием, т.к. добавляют задержки.
Возможно, для стабильной работы потребуется поднять напряжение +12В. Ведь есть эксперименты по запуску ВМ80 от одного источника питания (+5В вместо +12В, и 0В вместо -5В), но на пониженном до 1,5-1,7 МГц клоке. Значит, при повышенном клоке, и питание должно быть повышено.

barsik пишет:При работе МП-ядра в Специалисте на Z80 на такте 8...12 МГЦ возможен еще один вариант схемы. А именно несинхронный. Тогда динамическое ОЗУ остаётся на такте 2 МГЦ (или 4 МГЦ в схеме Турбо-200%), а Z80 тактируется максимально возможным, причём произвольным и несинхронным с видеосхемой высоким клоком. Синхронизация с видеочастью достигается за счёт доступа процессора к ОЗУ во время разрешённого окна. Т.к видеочасти достаточно за 1000 НСЕК иметь только один доступ к ОЗУ длительностью 500 НСЕК (или 250 НСЕК при Турбо-200%), то каждый нечётный период 500 НСЕК отдаётся для доступа к ОЗУ видеочасти, а каждый чётный образует окно доступа для процессора. По обращению к ОЗУ процессор останавливается по WAIT и этот сигнал поступает на D-вход триггера. Затем по ближайшему следующему переднему фронту "окна" этот триггер взводится, WAIT-сбрасывается, буфера открываются и процессор производит доступ к ОЗУ.
Почему вы непременно хотите обращаться к видеопамяти в течение 500 нс? Если предположить, что мы делаем новый "Специалист-Турбо" на Z80 и статическом ОЗУ, и что у нас все прочие микросхемы заменены на быстрые, то что мешает просто кратно увеличить число чтений байта видеоконтроллером? Поясню. Буду пользоваться обозначениями из оригинальной схемы Волкова. Видеоконтроллер работает на пиксель-клоке 8 МГц, и на, назовём его "байт-клоком", 1 МГц. Т.е. с такой частотой байт из видеопамяти записывается в регистры сдвига ИР1 (DD47, DD48), которые тактируются 8 МГц. Байт в них попадает из ИР12 (DD46), который в свою очередь работает на том же клоке, что и процессор (2МГц). Т.е. за один "байт-клок" он дважды принимает байт из видеопамяти по одному и тому же адресу, если процессор не занимает шину. Если занимает - то один раз, но гарантированно (или в первый период, или во второй), т.к. процессор никогда не занимает шину два такта подряд. В этом заключается гениальность схемы Волкова - видеоадаптер вклинивается в моменты, когда шина свободна, не мешает процессору, а процессор не мешает видеоадаптеру. Ну это все знают.
Теперь, допустим, мы хотим разогнать процессор до 4 МГц, сохранив тайминги видео (т.е. пиксель-клок и байт-клок). Ну так это ведь просто - ИР12 тоже должен тактироваться частотой 4 МГц, а счётчики сканирования видеопамяти надо переделать так, чтобы они за один байт-клок 4 раза обращались по одному и тому же адресу. Получится ровно то же самое - за один байт-клок (1 МГц) и процессор, и ИР12 могут обратиться к памяти 4 раза (точнее, процессор может максимум только два раза), но байт (один и тот же) из ИР12 перепишется в ИР1 только в конце этого цикла длиной 4. Аналогичным образом можно поднимать клок процессора в любое целое число раз - в 2, 3, 4 ... 10 (это уже будет 20 МГц), но схема видео остаётся синхронной, и без всяких wait и понижений клока.
На самом деле, пиксель клок надо поднять до 20 МГц, а "базовый" (не турбо) клок процессора до 2,5 МГц, чтобы получить экран 800*600 @ 60Гц с удвоением строк и пикселей, как в схеме "Специалиста-MX2". Но суть не меняется - процессор можно турбировать кратно, не теряя синхронности с видеоадаптером, конечно при условии, что память быстрая. Из изменений схемотехники - нужно после кварца на 40 МГц добавить счётчик с программируемым через регистр коэффициентом пересчёта (2, 3, 4, 5, ... 20), и добавить мультиплексор, который будет переключать байт-клок на соответствующую частоту (хотя, может быть, можно и без него - надо думать). Ещё полезно было бы сделать две панельки - для Z80 и ВМ80, а для последнего - добавить программируемый DC-DC на 12В (а регистр управления напряжением для безопасности сделать труднодоступным, например поставить его за ВВ55). И получим эдакую "оверклокерскую" плату Специалиста.

SpaceEngineer
Новичок

Сообщения : 3
Дата регистрации : 2021-10-12

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения