ZX Format
#02
30 ноября 1995 |
|
Железо - Производители: KAY - Турбирование Spectrum - машин
Турбирование Spectrum - машин. Цель: устранение неведения. (C) Nemo ________________________________ "... Это стремление может сказываться в разных формах и с разной силою - в зависимости от того, насколько просветлена и обуздана эта знойная жажда чело- веческого самоуничижения, проры- вающаяся из подсознательных и темных глубин..." Свящ. Г.В. Флоровский, "Ви- зантийские отцы V-VIII" из чтений в православном бого- словском институте в Париже. Париж, 1993, стр.35. Средство: магия слова. "... Слова путались и двои- лись и увлекали за собой мысль - у слов есть своя магия и власть..." Там же, стр.7. "... Здесь важны не столько отдельные слова и речения, - ха- рактерен самый стиль и внутрен- няя тенденция мысли..." Там же, стр.9. Права: перепечатка и цитиро- вание разрешены только в ав- торской редакции со ссылкой на фирму (с) Nemo. _______________ Терминология. Для начала следует определить гамму смежных понятий, необходи- мых для однозначного, без пута- ниц, восприятия дальнейшего из- ложения. Def. 1: Вычислительная мощ- ность ПК - интегральный (комплексный) критерий, конста- тирующий практическую скорость (производительность труда) рабо- ты пользователя на этом ПК. Это понятие удобно рассматри- вать на примере ПК IBM, обладаю- щего наиболее развитой, гибкой и разнообразной конфигурацией, так как вычислительная мощность за- висит прежде всего от конфигура- ции и производительности. Гиб- кость процессора и наращивае- мость конфигурации придает встроенное ПО. Прежде всего, это DOS, а в ней BIOS (Base Input / Output System). Переделывая BI- OS, можно получать разнообразные аппаратные конфигурации, имеющие адекватную программную под- держку. Spectrum в этом отноше- нии исключительно консервативен, так как TR-DOS DOS'ом, как кста- ти, и OS'ом, в буквальном смысле этого слова не является. Истори- чески система задумывалась и ре- ализовывалась как устройство для быстрой загрузки программ под аппаратный довесок к "резинке" сэра Клайва Синклера, что и пре- допределило дальнейшие трудности с аппаратным развитием Spectrum- 'а. IS-DOS в этом отношении вы- годно отличается и сравнима с TR-DOS, как божий дар с яични- цей. Не забудем и о соразмерности мощностей примененных в ПК под- систем. Значительное, несораз- мерное наращивание мощностей от- дельных подсистем если и приво- дит, то лишь к незначительному росту вычислительной мощности. Конкретные оптимальные соотноше- ния мощностей зависят прежде всего от круга решаемых пользо- вателем задач и будут разными для, например, баз данных и гра- фических станций. Представим себе, что мы уста- новили 32Мб памяти ОЗУ на Spectrum (Спокойно, дорогие чи- татели, эта мысль пришла не в голову автора, см. "Радиолюби- тель" N4 за 94г., "Персональный компьютер "Эрик", стр 9.). Представили? Автор себе это представляет в виде двигателя от "Боинга", установленного на "За- порожец". Весело, не правда ли? Почему же получилась такая хох- ма? Z80 имеет восьмиразрядную шину данных, 4 МГц тактирования и 64к непосредственно доступной памяти; механизмы сегментирова- ния окажутся сложны, непроизво- дительны и нестандартны. Объем информации в 32Мб, буде таковой найдется, превратится, как и "Запорожец", в кучу хлама, если отсутствует DOS для доступа и работы с такими объемами. К со- жалению, все вышесказанное можно отнести и к винчестеру - даже если Вы и согласны работать под системой IS-DOS, все равно целе- сообразность его установки оста- ется под вопросом. Чтобы закрыть Def. 1, сле- дует, пожалуй, разъяснить, что служит мерилом вычислительной мощности. Это программа - тест, которая показывает, с какой час- тотой необходимо было бы такти- ровать процессор некоей базовой машины, чтобы та по вычисли- тельной мощности сравнялась с тестируемым образцом. Именно так и делается в компьютерах IBM, которые выдают красивое число в МГц, которое ошибочно путают с физической частотой реально имеющегося тактового сигнала. Если предположить, что архи- тектура неизменна, а для Spectrum'а это весьма близко к истине, то вычислительная мощ- ность зависит только от произво- дительности процессора и ей пря- мо пропорциональна. Поэтому - Def. 2: Def. 2: Произвоительность процессора (компьютера) - это количество выполняемых процессо- ром коротких команд (например, регистр - регистр) в единицу времени. Размерность, таким об- разом, выглядит как [опер./сек]. Этот параметр важен не только для решения ирреальных академи- ческих задач в нереальном време- ни. Пример такой задачи - подсчет числа счастливых билетов в рулоне существовавших когда - то автобусных касс. Эта задача уникальна по трем причинам. Не существует иного способа реше- ния, нежели перебор; программа исключительно компактна; для ре- шения необходимо машинное время в лошадиных дозах. Гораздо более важны для Spectrum'а, как для преиму- щественно игрового компьютера, возрастающие потенциальные воз- можности по усложнению графики, увеличению числа графических об- ъектов (спрайтов) на экране без уменьшения их динамики, утонче- ние антуража (игрового фона, второго плана) и, несомненно, игр уже существующих. В играх, использующих итерационные вычис- ления (имитаторах) объекты со- вершают более плавные эволюции и менее судорожны. Отступая несколько в сторону, можно привести и другие (архи- тектурные) способы повышения ка- чества графики. В Dendy, напри- мер, при относительно немощном процессоре и малом объеме ОЗУ за счет техники ПДП (прямого досту- па к памяти) достигается высокое качество антуража, однако общая статичность картинки и бедность игровой ситуации с головой выда- ют методы их технической реали- зации. Вообще Motorol'овские прибам- басы упирают в технику ПДП. Один из последних компьютеров Amiga имеет 27 каналов ПДП, и поэтому очень удобен, например, для соз- дания TV - рекламных роликов. Итак, полезность увеличения производительности нами осозна- на. Засим Def. 3: Def. 3: Коэффициент турбиро- вания - это относительная вели- чина, показывающая, во сколько раз (на сколько процентов) изме- нилась производительность по сравнению с эталоном. Def. 4: Эталон - базовый об- разец ПК, производительность ко- торого принята за единицу. Обыч- но в качестве эталона выбирают тот же самый ПК до турбирования. Недостаток такого выбора состоит в том, что производительность разных марок машин в нормальном (обычном) режиме уже различна. В результате появляется неопреде- ленность при сравнении турбиро- ванных машин по быстродействию (производительности). Комментарий: определения вы- несенные в пролог статьи, пока- жутся кому - то тягомотиной, по- этому приведу примеры непра- вильных трактовок, встречающихся сплошь и рядом. Турбированный контроллер дис- ков - контроллер дисков, в кото- ром период сигналов позициониро- вания головок снижен в 1.75 : 2 раза. Никакого отношения к про- изводительности собственно ПК не имеет; вычислительная мощность же, хоть и незначительно, но по- вышается, так как уменьшается время доступа к диску. Коэффициент турбирования час- то путают с отношением тактовых частот компьютера до и после турбирования. Как правило, отно- шение тактовых частот во всех Spectrum'ах равно двум; коэффи- циент же турбирования может ле- жать в диапазоне 1.25 : 2 (25 : 100%). Коэффициент турбирования обычно различен для ПЗУ и ОЗУ: в ПЗУ он больше и примерно равен двум. Расчетные соотношения. Коэффициент турбирования не является абсолютной величиной, как это следует из определения, поэтому исследуем, отчего он за- висит. ┌───────────────────┐ │ F Nту + Nwб│ │Kт = ── * ─────────│ (1), │ Fб Nту + Nw │ └───────────────────┘ где: Kт - коэффициент турбирова- ния; F - тактовая частота процес- сора в турбо - режиме (обычно 7 МГц); Fб - тактовая частота про- цессора базового варианта; Nту - общее число тактов процессора на основе технических условий (ТУ) на Z80, необходимое для выполнения тестового фраг- мента программы; Nw и Nwб - число тактов ожи- дания, образовавшихся при прого- не тестового фрагмента в тести- руемом и базовом образцах соот- ветственно. Анализ формулы. В формуле нет точного равенства. Это объясня- ется тем, что F в процессе рабо- ты может меняться. Например, F обычно снижается при работе с портами ввода - вывода; реализо- вать требуемую задержку, ис- пользуя WAIT, оказывается нак- ладно схемотехнически. Nw может зависеть от фазы видеопроцессо- ра. Коэффициент турбирования Kт действительно зависит от отноше- ния тактовых частот. Однако же- лание безмерно увеличить F явля- ется не более, чем соблазном. Увеличение F, начиная с некото- рого момента, приводит к резкому росту Nw. Физически это объясня- ется следующим образом. Каждый машинный цикл содержит в себе обращение к памяти, а память имеет вполне определенное коли- чество промежутков времени (цик- лов обращения к ОЗУ; подразуме- вается, что машина с непрозрач- ным видеопроцессором), в которых возможен доступ процессора к ОЗУ (возможен обмен данными между процессором и ОЗУ). Если процес- сор "созрел" и захотел поиметь данные раньше, чем подошло оче- редное окно, то он получает от арбитра WAIT и тем обламывается. Домножив Kт на Fб, получим эффективную частоту тактирования Fэфф, которая в отличие от F, действительно характеризует быстродействие (производи- тельность) по отношению к базо- вому образцу или базовому режи- му. ┌──────────────┐ │Fэфф = Fб * Kт│ (2) └──────────────┘ В заключение необходимо отме- тить, что формула (1), имея не- сомненные достоинства в нагляд- ности, не функциональна. Форму- лы, вообще - то, пишутся для умозрительного анализа и синте- за, то есть предполагают какую - то полезную работу с ними. Опре- делить же Nw без специальных ухищрений невозможно. Это либо титанический процесс анализа временных диаграмм, либо кропот- ливая работа по созданию спе- циальной аппаратной "мышеловки" (ловушки) для "левых" активных WAIT'ов со счетчиком на Nw. За- дача определения Kт (либо Fэфф) решается при помощи программ - тестов. ... ... Способы турбирования. Все способы турбирования, по существу, сводятся к более раци- ональному и экономному использо- ванию того ограниченного числа окон, которые образуются при ра- боте с ОЗУ. Умело работая такто- вой частотой (CLC) и WAIT'ом, нужно заставить процессор хва- тать не что попадя, а именно то, что лежит в ОЗУ, то есть совмес- тить во времени момент защелки- вания (либо истинности данных при выдаче) процессора и готов- ность ОЗУ. Обычно эту функцию выполняет арбитр. На него стека- ется разнообразная информация о том, что делает или собирается делать процессор, и фаза, в ко- торой находятся временное окно ОЗУ и видеопроцессор. В функции арбитра входит анализ поступаю- щей информации и управление ли- нией WAIT'а. Вовремя обламывая процессор, арбитр не дает ему хватать всякую гадость с шины. Обычно арбитр выполняется в виде дерева (многоярусная логика) запретов, например, на базе ИМС PALR8, которая по совмести- тельству обеспечивает и необхо- димую степень синхронности сиг- налов, то есть синхронным цифро- вым автоматом, на что указывает индекс R (Register). Дерево получается раскидис- тым, так как требуется предус- мотреть все ситуации, когда про- цессор необходимо притормозить. Это пример апофатического турби- рования, то есть когда истин- ность WAIT'а определяется как поштучное отрицание ряда непод- ходящих для этого ситуаций. Существует и другой метод, примененный в компьютере KAY-256 TURBO фирмы (с) Nemo, основанный на фазовой автоподстройке циклов процессора под окна ОЗУ. Этот метод можно назвать динамическим модифицированием машинных циклов (ДММЦ). Любопытно, что для реа- лизации ДММЦ не требуются допол- нительные аппаратные затраты, а только незначительное пере- распределение функций в уже име- ющихся цепях. Нет арбитра - при ДММЦ арбитр вырождается в прос- тейший нуль - датчик - синхрони- затор системы ФАП и существует только виртуально. Нет арбитра, нет дерева, нет затрат. Метод ДММЦ более простой, и в то же время наиболее эффективный метод турбирования Spectrum - машин. Однако эта святая простота весьма обманчива, так как для практической реализации ДММЦ не- обходима высокая культура схемо- техники и, прежде всего, высокая степень синхронизации подсистем Spectrum'а. Поэтому переделка имеющихся Spectrum'ов если и возможна, то неоправданно трудо- емка. Проще заново воссоздать четверть схемы компьютера на ба- зе PAL16-R8. Именно Заново, гос- пода, Заново. Простота ДММЦ выливается не только в красивую схемотехнику, но и в удобство временного ана- лиза, и в нечто более существен- ное, о чем будет сказано ниже. Действительно, при ДММЦ время выполнения различных циклов весьма отличается от предписыва- емого спецификацией Z80, но чис- ло тактов в цикле оказывается кратным 4, и его легко пересчи- тывать. Пересчет числа тактов из паспортного (по ТУ на Z80) в ДММЦ осуществляется по следующе- му алгоритму: ТУ ----> ДММЦ ┌─ │ 3 ----> 4 │ 4 ----> 4 (3) │=>5 ----> 8 └─ Однажды составив табличку но- вых тактовых длин команд, можно вернуться к традиционному поко- мандному подсчету времени выпол- нения. Алгоритм достаточен для опи- сания ДММЦ, поэтому ссылка на такой алгоритм указывает на ис- пользование метода ДММЦ, незави- симо от марки компьютера. Такой подход к временному анализу де- лает ненужным счисление WAIT'ов (Nw). Можно заметить, что произ- водительность процессора макси- мальна и достигает своего теоре- тического предела для коротких (простейших однобайтных) команд (что весьма импонирует Def. 2) - например, типа LD r,r', ADD A,r, NOP и так далее. Это чем - то напоминает RISC - технологию компьютеров IBM. Метод ДММЦ практически полностью реализует потенциально имеющиеся ресурсы времени по доступу в ОЗУ, про- дуктивно используя почти все предоставляемые им окна и дает близкие к предельным Kт и Fэфф для компьютеров с непрозрачным видеопроцессором. Можно увели- чить Kт до теоретического преде- ла, дополнительно разогнав про- цессор на BORDER'е, при этом преобразование (3) будет выгля- деть следующим образом: ТУ ----> ДММЦ ┌── │ 3 ----> 4 │┌─ 4 ----> 4 (4) ││=>5 ----> 8 BORDER ││ 5.6----> 6 /BORDER │└─ └── Самым ценным, однако, в мето- де ДММЦ является линейность по времени в адресном пространстве и в фазе видеопроцессора. При преобразовании (4) свойство ли- нейности по времени в фазе виде- опроцессора окажется утерянным, что, по мнению автора, превра- щает незначительный выигрыш по Kт (5 - 7%) в проигрыш по ком- плексным характеристикам системы. В качестве примера уместно рассмотреть следующий пассаж из руководства пользователя фирмен- ного Spectrum+3 (стр.189). "RAM - банки бывают двух ти- пов: совмещенные, это RAM - страницы с 4 по 7 (делящие время с видеопроцессором) и эксклюзив- ные с 0 по 3 (которые использу- ются процессором единолично). Любые машинные коды программ, имеющие критичное время выполне- ния (такие, как музыка или связ- ные - "communications" програм- мы), следует размещать в эксклю- зивных банках. Например, после- довательность NOP'ов (это не что иное, как ссылка на тест - прог- рамму - автор), расположенная в совмещенных банках, дает эффек- тивную частоту (Fэфф - автор) 2.66 МГц против нормальной 3.55 МГц (Fб - автор). Это дает уменьшение в скорости (dKт, в данном случае он отрицателен - автор) около 25%." Для компьюте- ра KAY-256 этого ограничения не существует. Любопытно, что апофатическое турбирование, в пределе, дает аналогичное (3) либо (4) преоб- разование при несопоставимо больших аппаратных затратах и сложности реализации. Объясняет- ся это порядком следования и очередностью появления окон дос- тупности ОЗУ, которые в любых машинах с непрозрачным видеопро- цессором сходны. В заключение о турбировании следует упомянуть о том, что ме- ханизмы турбирования могут отключаться при обращении к TR-DOS. В KAY-256 на это приш- лось пойти для сохранения сов- местимости по шине базового контроллера дисков. Управление турбо - режимом может осуществляться как прог- раммно (OUT в порт), системно (OK (открытый коллектор) в логи- ческом "0" на системной шине (линия *TURBO)), так и переклю- чателем на передней панели. Для отключения турбо - режима доста- точно хотя бы одного запрета, для активации - необходимы все три разрешения (to pass). По RE- SET'у материнская плата перехо- дит в турбо - режим. Пример пересчета числа циклов. Команда Циклы ТУ ДММЦ NOP Ц1(OCR)4 ---> 4 LD(nn),HL Ц1(OCR)4 ---> 4 Ц2(ORL)3 ---> 4 Ц3(ORH)3 ---> 4 Ц4(MWL)3 ---> 4 Ц5(MWH)3 ---> 4 ─────────────── Итого:20 --->24 Способы тестирования (измерения) Kт. Как следует из определения (Def. 3; формула (1)), Kт зави- сит от Nwб и Nw, которые, в свою очередь, зависят от параметров тестового фрагмента программы. Для ДММЦ, в частности, от соот- ношения числа коротких команд и длинных. Для апофатического тур- бирования связь не столь проз- рачна, но она также существует. Можно пойти еще дальше и зая- вить, что для каждой модели тур- бо - Spectrum'а существует свой оригинальный тест, дающий макси- мальную, по сравнению с другими тестами, величину Kт. Специальные программы - тесты обычно используют для отсчета времени аппаратный таймер - сиг- нал INT, период которого доста- точно точно задается видеопро- цессором. Тестовый фрагмент при этом помещается в виде цикла со счетчиком между двумя (или бо- лее) последовательными INT'ами. Значение счетчика после прогона тестового фрагмента затем норми- руется в духе формулы (1). Нор- мировка проводится в соот- ветствии с выбранным базовым об- разцом. Далее следует выдача ре- зультата на экран. Нужно хорошо отдавать себе отчет в том, что Kт зависит от конкретной реализации тестового фрагмента и образца, выбранного для нормировки, то есть тест и образец задают, по существу, ме- ру Kт. Коэффициент Kт без ссылки на тест и базовый образец указы- вает цены на дрова в Австралии. Тест по INT'ам усредняет зна- чение Kт по циклу видеопроцессо- ра, поэтому он не дает реальной информации по нелинейности ("де- тонации" скорости процессора). Ниже приведены результаты тести- рования турбо - Spectrum'ов тес- том "ZX-BENCHMARK TEST", который Вы можете найти в разделе "При- ложение" нашего журнала. (Эта программа впервые была опублико- вана в "Радиолюбителе", N7 за 94г.) и тестом по бордеру. ┌──────╥───────────────╥───────┐ │ ║ Kт в % по ║тест по│ │ Ком- ║ ZX-BENCHMARK ║бордеру│ │пьютер╟───┬───╥───┬───╫───────┤ │ ║ОЗУ│ПЗУ║ОЗУ│ПЗУ║ ОЗУ │ ├──────╫───┼───╫───┼───╫───────┤ │KAY256║ 93│ 95║100│100║ 100 │ │ ║ │ ║ │ ║ │ │KAY256║170│195║182│205║ 174 │ │turbo ║ │ ║ │ ║ │ ├──────╫───┼───╫───┼───╫───────┤ │Penta-║ │ ║ │ ║ │ │gon128║100│100║108│105║ данные│ │Penta-║ │ ║ │ ║ │ │gon128║160│д/о║172│д/о║ от-ют │ │ turbo║ │ ║ │ ║ │ ├──────╫───┼───╫───┼───╫───────┤ │Scorp.║ 93│ 95║100│100║ 100 │ │ ║ │ ║ │ ║ │ │Scorp.║145│195║156│205║ 178 │ │ turbo║ │ ║ │ ║ │ └──────╨───┴───╨───┴───╨───────┘ В данной таблице под базовым образцом, относительно которого меряется Kт, может приниматься любая машина, имеющая 100% быстродействия в ОЗУ. Анализируя таблицу, можно за- метить, что точность тестирова- ния примерно 5% (не совсем по- нятно, как при двухкратном уве- личении тактовой частоты ско- рость работы в ПЗУ увеличилась на 105%. Также, как и следовало ожидать, величина Kт зависит от теста, причем различные тесты могут давать разницу в скорости машин разного знака. Влияние турбирования на программную совместимость. Программная совместимость ма- шин семейства Spectrum, похоже, воспринимается пользователями как комплекс неполноценности. Чего только не делают, гоняясь за призрачными долями процента этой самой программной совмести- мости: и порт #FF устанавливают, и адрес порта A12 заводят на процессор звука, и делают точ- нейшие дешифраторы адреса; всего мракобесия не перечесть. Так вот, господа, вынужден Вас расстроить, производи- тельность компьютера также влияет, хотя и весьма слабо, на программную совместимость. Автора, в данном случае, откровенно забавляет пикантность создавшейся ситуации. При турби- ровании потери программной сов- местимости оказываются даже больше этих несчастных долей процента и поэтому они теряют смысл, уравнивая турбо - машины с оными прибамбасами и без оных. Пользователь же оказывается пе- ред задачей выбора между ре- альными характеристиками системы и идеей - фикс о 100% прог- раммной совместимости. Можно, конечно, усидеть и на двух сту- льях, имея весьма близкую к 100% совместимость при нормальной скорости и возможность включе- ния турбо - режима. По существу же, такое решение в корне ничего не меняет. Например, Pentagon, как мы уже установили, является слабо- турбированной машиной по отноше- нию к фирменному Spectrum'у. Ес- ли написать на Pentagon'е кри- тичный по времени выполнения участок программы и впихнуть его без зазора между INT'ами, то по- лучим программную несовмести- мость со всем сообществом ос- тальных Spectrum'ов. Кстати, плохая связь по моде- му типа "VICOMM" Pentagon'а с другими Spectrum'ами объясняется именно нестандартной скоростью работы (производительностью) первого. Возможно, выход состоит в создании юстировочных подпрог- рамм, компенсирующих разницу в производительности различных ма- рок машин, и в первую очередь, турбированных. Несколько отступая в сторону. Автор хочет заявить, что счи- тает порочным удалять ноги мик- росхем в компьютерах, в которых почему - то не идут Pentagon' овские программы. Таких прог- рамм может оказаться больше, чем ножек в компьютере. Конечно, создание несовместимых программ на Pentagon'е не вина их вла- дельцев. Так уж получилось, что Pentagon оказался первой массо- вой версией Spectrum'а с контроллером дисковода, и его владельцы накопили наибольший опыт программирования. Однако учитывать, что Pentagon вовсе не эталон и не самая массовая маши- на на данный момент, все - таки стоит. Деятельность программис- тов сейчас напоминает стрельбу полупьяного расчета установки "ГРАД", который свою неспособ- ность хорошо прицелиться компен- сирует массированностью залпа, а точным пересылкам предпочитает ковровое бомбометание. Нелинейность по времени в фа- зе видеопроцессора весьма су- щественна для программ, работаю- щих в реальном масштабе времени. Это, например, синтез голоса, музыки; преобразования Фурье; генераторы функциональных после- довательностей, связные програм- мы для обмена данными. Для таких программ требование линейности является необходимым, попросту говоря, их создание невозможно при нелинейном турбировании. В качестве упражнения (умозри- тельного) попробуйте представить себе голос, синтезированный ме- тодом прямого кодирования на компьютере, процессор которого разгоняется на BORDER'е и тормо- зит при сканировании видеопамя- ти. По мнению автора, это будет дребезжащий дуэт напару с гармо- никами кадровой развертки. Возможность создания программ для Spectrum'а, работающих в ре- альном времени, пока что не бо- лее, чем потенция, так как ранее такой возможности не существова- ло. Наименьшим, дальше не кван- туемым, отрезком времени был пе- риод системного таймера INT (примерно 20 мс), теперь время в Spectrum'е может устанавливаться с точностью до машинного цикла (единицы мкс). ________________________________
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября