Кнопка Turbo никогда не ускоряла ПК: главный маркетинговый миф 90-х

Прокомментировать Просмотры: 0

Признайтесь, сколько раз в детстве вы яростно щелкали заветной клавишей Turbo на громоздком бежевом системном блоке в надежде запустить любимую игрушку побыстрее? Меня долгое время терзал банальный вопрос: каким именно образом эта кнопка влияла на электронные компоненты? Погрузившись в архивы технической документации, схемы и старые руководства материнских плат, я пришел к выводу, что целое поколение пользователей стало жертвой величайшей маркетинговой мистификации в истории персональных компьютеров. На практике кнопка Turbo выполняла ровно одно действие — намеренно тормозила систему. Броское наименование, сияющий светодиод и солидная цифра 66 на лицевой панели были призваны лишь стимулировать продажи. Давайте разберем этот феномен детально.

Истоки сакральных 4,77 МГц

Все началось с кварцевого резонатора в легендарной IBM PC 1981 года выпуска. Инженеры IBM задействовали чип Intel 8088 с тактовой частотой 4,77 МГц. Происхождение столь нетривиального значения объясняется простой математикой: базовый кварц на 14,31818 МГц в точности кратен частоте цветного телевещания NTSC (3,579545 × 4). Этот номинал требовался видеокарте CGA для трансляции цвета на обычный телевизионный приемник. Таймерный модуль 8284A делил данный показатель на три, выдавая процессору 4,77 МГц, а системный таймер получал частоту 1,19 МГц. Универсальный кристалл на всю систему обходился дешево и сердито, обеспечивая производительность, близкую к паспортному пределу тогдашнего 8088.

Проблема заключалась в том, что в ту эпоху IBM PC существовала в единственной модификации с фиксированной скоростью обработки данных. Разработчики ПО привязывали тайминги игр к конкретным тактам процессора. Самым простым методом организации пауз между кадрами было банальное прокручивание пустого цикла с эмпирически подогнанным числом повторов. Таймер функционировал исправно (около 18,2 срабатывания в секунду), но для плавной анимации 55 миллисекунд — слишком грубый интервал. Перенастраивать прерывания умели не все, поэтому код выглядел примерно так:

; пауза между кадрами, подобрано на IBM PC 4,77 МГц
wait_frame:
    mov  cx, 3000        ; магическое число, найдено методом тыка
.spin:
    loop .spin           ; крутимся и ничего не делаем
    ret                  ; на 8 МГц кадр пролетит почти вдвое быстрее

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

Экспансия клонов

К середине восьмидесятых на рынок вышли производители аппаратных клонов, оперативно сообразившие, что кристалл 8088 способен работать на повышенных оборотах. Компания Intel выпустила модификацию 8088-2 с базовыми 8 МГц, а NEC предложила аналог V20, поддерживавший до 10 МГц и выполнявший ряд инструкций быстрее оригинала. Так появились системы формата Turbo XT — с прежней архитектурой, но значительно более шустрым «камнем».

В результате производители столкнулись с жестким требованием обратной совместимости. Оценку работоспособности компьютера проводили по запуску Microsoft Flight Simulator и Lotus 1-2-3; нестабильное поведение софта отпугивало покупателей. Игры с примитивными циклами задержки на 8 МГц работали, однако персонажи в них двигались с безумной скоростью. Требовался надежный метод принудительного снижения частоты до стандартных 4,77 МГц. Инженеры реализовали его незамысловатым способом: на системную плату интегрировали второй тактовый генератор либо делитель частоты, выведя тумблер на лицевую часть корпуса.

Пытаясь реабилитировать разработчиков, я сначала подумал: вдруг турборежим действительно разгонял процессор выше штатных спецификаций? Увы, изучение документации на 8088-2 и V20 разрушило эту иллюзию. В так называемом «турборежиме» процессор функционировал на своей номинальной, заложенной производителем частоте, а вовсе не в форсированном состоянии. Настоящая скорость системы и именовалась «турбо», тогда как при деактивации кнопки производительность искусственно занижалась до уровня компьютеров начала десятилетия.

Искусство правильного нейминга

Здесь кроется самый интересный нюанс: расчетная скорость материнской платы получила гордое звание Turbo, в то время как основной режим работы остался безымянным сиротой. Логично было бы назвать кнопку Slow, Compat или просто 4.77, но маркетологи рассудили иначе. Штатная производительность вдруг стала эксклюзивной фишкой, а пользователь, переплативший за 10 МГц, должен был чувствовать себя пилотом реактивного истребителя.

Ответ очевиден: терминологию диктовали продажи. В середине 80-х приставка Turbo обладала магической притягательностью. Автоконцерн Porsche успешно продавал спорткары 911 Turbo, компания Saab строила на турбонаддуве имидж бренда. Корпорация Borland выпустила культовые линейки Turbo Pascal и Turbo C. Надпись Turbo на корпусе ПК гарантировала коммерческий успех эффективнее любых гигагерцев и мегагерцев.

Если бы дело ограничилось лишь сменой вывесок, это можно было бы простить. Однако вскоре к кнопке добавили светодиодную индикацию и двух- или трехзначные семисегментные дисплеи, якобы отображающие тактовую частоту. Покупатель видел сменяющиеся значения (скажем, скачок с 8 на 16 или с 33 на 66 мегагерц) и искренне верил в честность измерений.

На деле этот импровизированный частотомер не измерял абсолютно ничего. Внутри корпуса находилась простая плата с перемычками (джамперами), где сборщик вручную выставлял нужные сегменты для каждого режима. Никакой связи с тактовым генератором не существовало. Ленивые сборщики часто оставляли заводские настройки, из-за чего скромный процессор 386 гордо демонстрировал на панели заветные 66 мегагерц, а то и все 99.

Со светодиодами творилась не меньшая путаница: из-за специфики разводки контактов на некоторых платах индикатор горел в замедленном режиме и гас при активации «турбо». Учитывая неудачное расположение кнопки под столом, ее легко было задеть коленкой, из-за чего техника месяцами работала на половинной мощности, пока владелец тщетно ругал зависающую ОС.

Эволюция бесполезной функции

На архитектуре XT кнопка хотя бы выполняла утилитарную роль, возвращая старый софт к нормальной скорости. Однако по инерции этот рудимент перекочевал в эру процессоров 286, 386 и 486, где его изначальный смысл окончательно стерся.

В системах 286 замедление сбрасывало частоту до уровня IBM PC/AT (6–8 МГц), что уже никак не помогало древним приложениям. На более поздних 386 и 486 каждый чипсет тормозил процессор по собственному усмотрению: где-то отключался кэш, где-то внедрялись такты ожидания (wait states) или искусственно занижалась шина. Никаких единых стандартов производительности в режиме «без турбо» уже не существовало.

Поколение

С Turbo

Без Turbo

Метод замедления

XT-клоны

8–10 МГц

4,77 МГц

переключение частоты кварца

286

10–20 МГц

около 6–8 МГц

изменение тактовой частоты

386 и 486

16–100 МГц

непредсказуемо

частота, кэш, такты ожидания

Pentium

60–233 МГц

в основном никак

кнопка зачастую отключена

Для игр, жестко привязанных к 4,77 МГц, даже урезанный 486-й оставался слишком быстрым. Геймерам пришлось осваивать программные замедлители вроде Moslo. А декоративная кнопка продолжала украшать системные блоки исключительно по инерции и соображениям престижа.

Эпоха имитации

К моменту массового распространения процессоров Pentium разъемы TURBO SW на материнских платах исчезли как класс. Тем не менее корпуса с заветной кнопкой и цифровым табло выпускались еще долго — без нее товар казался покупателям устаревшим. Внутри болтались смотанные в кольцо провода, светодиоды светились непрерывно, а индикатор бессменно показывал 133 или 166 мегагерц. Практичные пользователи часто перепаивали провода на контакты Reset или приспосабливали клавишу под иные нужды, и это было лучшее применение рудимента за всю его историю.

Ироничный финал от Borland

Самое забавное, что техническая проблема, породившая необходимость в кнопке, спустя годы настигла программистов с неожиданной стороны. Компания Borland задействовала в процедуре Delay модуля CRT тот самый пустой цикл для калибровки таймера под конкретное железо:

{ код условный, по мотивам инициализации модуля CRT }
WaitTick;                    { ждем начала нового тика таймера }
Count := 0;
repeat
  Inc(Count);                { крутим цикл и считаем обороты }
until TickChanged;           { тик сменился, прошло ~55 мс }
DelayCnt := Count div 55;    { оборотов на одну миллисекунду }
                             { вот тут все и падает }

В ассемблерной инструкции деления результат должен помещаться в 16-битный регистр. При превышении порога в примерно 3,6 миллиона оборотов за системный тик происходило переполнение, порождающее печально известную ошибку Runtime error 200 (Division by zero). На быстрых процессорах класса Pentium II старые программы падали еще на этапе инициализации.

Владельцы мощных машин массово сталкивались с этим сбоем в ретро-играх, исправить который помогали специальные патчи для модуля CRT. А вот настоящий и честный турборежим появился лишь в 2008 году, когда корпорация Intel внедрила технологию Turbo Boost в процессоры Core i7, динамически повышающую частоту при наличии запаса по тепловыделению. Ирония судьбы заключается в том, что для реализации этой полезной функции инженерам больше не потребовалось выводить на корпус ни единой дополнительной кнопки.

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов