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

Первые компьютерные ускорители появились вместе с компьютером Apple II, а стимулом к их созданию была низкая тактовая частота (1 МГц) процессора MOS Technology 6502 — популярность Apple II привела к противоречию между возможностями написанного для него ПО (перечень которого к середине 80-х включал десятки названий) и производительностью компьютера. В образовавшуюся нишу ринулись многие, хотя ускорить работу процессора было непросто: стремясь сохранить аппаратную совместимость, компания Apple сознательно ограничивала пропускную способность системной шины. И все же создателям ускорителей удалось поднять производительность Apple II сначала в несколько раз, а потом и на порядок. На этом поприще работало не менее десятка компаний, наиболее известны продукты Zip Technologies, Applied Engineering, Saturn Systems и Microcomputer Technologies. В первых версиях все они следовали одной логике расширения собственных возможностей процессора Apple II и его памяти за счет дополнительных устройств. Но в последующем был выбран более радикальный путь установки на плате расширения альтернативного, более быстрого процессора со своей памятью. В конечном итоге сама Apple Computer пошла по этому пути, лицензировав технологию Zip, а новая плата стала в четыре раза быстрее оригинала.

Сегодня трудно представить, но и компания Microsoft тоже была в этом бизнесе, поставляя на рынок плату Microsoft SoftCard на процессоре Zilog Z80, которая позволяла Apple II работать под управлением популярной для 8-разрядных процессоров операционной системы CP/M компании Digital Research. Установка Microsoft SoftCard позволяла выполнять на Apple приложения, рассчитанные на процессор, совместимый с Intel 8080. В разработке платы принимал участие Билл Гейтс, для которого был важен тот факт, что плата комплектовалась MS BASIC.

 

Плата Microsoft SoftCard на процессоре Zilog Z80. Источник Apple.

 

Еще одним примером ускорителя можно считать Intel 8087, процессор с плавающей запятой (FPU), дополняющий Intel 8086, 8088, 80186 и 80188. У 8087 было восемь регистров общего назначения длиной 80 бит, собранных в стек. Операции выполнялись над данными из стека и памяти по адресам, полученным из CPU; решение о том, где выполнять ту или иную команду — в CPU или в FPU, принималось по значению первого бита. Помимо Intel, графические ускорители выпускали компании AMD, Cyrix, и была даже версия, произведенная в СССР, — "Арифметический сопроцессор КМ1810ВМ87". Аналогами Intel 8087 были FPU Motorola 68881 и National 32081, общим для них была тесная связь с CPU по системе команд. Математические сопроцессоры Intel 8231 и AMD 9511 отличались тем, что были выполнены как отдельные периферийные устройства с обменом данными по каналам ввода/вывода и путем прямого доступа в память.

Позже для работы с мультимедийными данными были выпущены и специализированные платы для компьютеров Atari и Commodore Amiga — в 1987 году IBM выпустила графическую плату 8514 IBM PC. А настоящий переворот совершила филиппинская компания S3 Graphics, выпустившая в 1991 году графическую карту 86C911, заслуженно за быстродействие названную Porsche 911, с нее и начался современный этап в развитии графических процессоров. Ускорителям передаются и криптографические функции (SSL Acceleration). Наибольшей нагрузкой для серверов оказывается требующий большого объема вычислений процесс "рукопожатия": когда используется ускоритель, то он берет эту нагрузку на себя, сервер работает так, как если бы обмен данными не был зашифрованным.

 

PhysX – специализированный физический процессор. Источник: ASUS.

 

Одна из самых интересных страниц в истории компьютеров связана с созданием ускорителей-транспьютеров, на которые возлагались большие надежды, примерно такие, как сегодня на графические процессоры (GPU), но, пробыв несколько лет в центре внимания, они ушли со сцены. Импульсом к созданию транспьютеров оказались соображения, возникшие в начале 80-х в среде британских проектировщиков, которые решили изменить сложившиеся нормы проектирования процессоров и отказались от статичных арифметических операций в пользу параллельной обработки больших объемов данных. По сути, они посягнули на схему фон Неймана, решив заменить обычные программы — последовательности операций — более общими спецификациями, образами, написанными на языке высокого уровня. Но когда авторы идеи дошли до ее реализации, то отдали предпочтение процессору со сверхкороткой системой команд, своего рода супер-RISC, который они и назвали транспьютером.

Чаще всего название "транспьютер" привязывают к словам transistor и computer, но на самом деле первая часть названия происходит от слова transmit ("передача"), чем подчеркивается отказ от статических вычислений в пользу динамических. Предполагалось, что можно создавать мощные параллельные системы, используя в качестве строительных блоков транспьютеры, связанные внутренними последовательными каналами связи. Способность транспьютеров вычислять быстро и дешево привела к тому, что на некоторое время они стали наиболее желаемыми компонентами для построения многопроцессорных систем на одном кристалле. Параллельно предпринимались попытки использовать транспьютер в качестве ускорителя для обычных ПК. Основной язык программирования транспьютеров — Occam, хотя были попытки реализации языков Cи, Фортран, Ада и Паскаль. Операционными системами были Unix-подобные Minix и Idris. Как вычислитель этот тип приборов остался в прошлом, но его следы можно обнаружить в некоторых современных встроенных системах.

 

Killer NIC - ускоритель для поддержки стека протоколов TCP/IP в среде Windows. Источник: Bigfoot Networks.

 

Транспьютеры не появились бы на свет, если бы не странная цепочка событий, начало которой было положено 1 мая 1960 года, когда под Свердловском был сбит самолет-разведчик U-2. После этого инцидента Тони Хоар (сэр Чарльз Энтони Ричард Хоар!) потерял возможность продолжить свои исследования по машинному переводу, которые он проводил в Московском государственном университете под руководством академика Андрея Колмогорова: власти решили избавиться от лишних иностранцев, тем более от таких необычных, как Хоар, который хорошо знал русский и прошел службу в ВМС Великобритании. Возвратившись на родину, он изменил лингвистике и занялся компьютерной наукой. И немало в ней преуспел. Большую часть своих исследований Хоар посвятил созданию концепции взаимодействующих последовательных процессов (Communicating Sequential Processes, CSP), позволяющей разработать средства для описания различных моделей, в том числе процессов, протекающих параллельно, обменивающихся данными по типу "рандеву", то есть между парой (и только парой) процессов. Его книга "Взаимодействующие последовательные процессы" была опубликована на русском в 1989 году издательством "Мир".

Созданная Хоаром концепция CSP позволила группе ученых из Оксфорда под руководством Дэвида Мэя разработать процедурный язык параллельного программирования высокого уровня Occam, названный в честь английского философа XIV века Уильма Оккамского и его знаменитой сентенции, известной как "бритва Оккама": "Не следует множить сущее без необходимости". Occam — типичный язык высокого уровня, синтаксически похожий на Паскаль или Си, но его набор операторов и синтаксис доведены до минимума — ничего лишнего. До этого Мэй разрабатывал системы управления роботами, собираемые из одноплатных компьютеров в то, что мы сегодня называем кластерами, и естественно, что это занятие привело его к необходимости создания технологии параллельного программирования. Вполне логично, что судьба свела его с Хоаром и совместно они породили идею укорителя вычислений, реализующего Occam своей системой команд — транспьютер является реализацией языка в кристалле.

Микропроцессоры: все только начинается

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

И снова "если". Теоретические наработки двух университетских профессоров не вышли бы за стены лабораторий, если бы не политический курс возглавляемого Джеймсом Каллаганом лейбористского правительства Великобритании. Прийдя к власти, лейбористы обеспокоились потерей Британией ее роли и места в компьютерной индустрии, ведь в 50-60-е годы страна почти на равных конкурировала с США, но потом Великобритания, как и Япония, Франция, Германия, стала нишевым производителем. Следствием этой политики было подключение в 1978 году к Хоару и Мэю третьего сотрудника — Яна Баррона, инженера — разработчика полупроводниковых приборов. Последний был активным участником стимулированных правительством процессов и успел стать основателем располагавшейся в Бристоле компании Inmos, основным инвестором которой было правительство в лице агентства National Enterprise Board. В задачу созданного в 1974 году учреждения входило проведение программы модернизации, причем показательно название одного из документов — The Regeneration of British Industry. Жизнь показала, что модернизация сверху не самое лучшее, что может быть, и в последующем, с приходом к власти консерваторов, деятельность NCE была постепенно свернута, поскольку почти все его начинания, например обновление автомобильной индустрии, были неудачными. И все же Баррон успел получить 50 млн фунтов на производство чипов памяти, однако оказался неконкурентоспособным, а тут возникли Хоар с Мэем. Удача явно шла в руки — в последующем Inmos получила еще 150 млн фунтов, но, к сожалению, прибыльной так никогда и не стала.

Баррон понял, что без сотрудничества с американцами ему производство не наладить, поэтому он нашел союзников в лице Дика Петрица и Пола Шредера, успевших поработать в Texas Instruments и решивших избрать карьеру венчурных капиталистов. Так сложился причудливый альянс государственного и частного капитала. Планы были грандиозными и включали открытие собственного производства в Колорадо, где в 1982 году и был произведен первый экспериментальный транспьютер Simple 4, а затем выпускались серийные модели T212 и T414. О значимости, которую придавали этим разработкам, можно судить по тому, что авторы T414 получили специальный приз за дизайн от принца Филиппа (мужа королевы Елизаветы II) и были удостоены всяческих почетных званий. Затем были следующие модели Т800 (1985 год), пакетный коммутатор С104 и транспьютер для выполнения вещественных операций (1087) и еще целый ряд моделей. Вершиной стала модель SOC Т9000, которую можно отнести к категории "система на чипе", она имела встроенную кэш-память, поддержку суперскалярности и многое другое. В последующим она была продана компании SGS-Thomson, ныне STMicroelectronics, а ее прямыми наследниками стали нынешние микросхемы, используемые в GPS.

Эволюция микропроцессорных архитектур

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

Несколько известных в 80-е годы компаний (Meiko, Floating Point Systems, Parsytec и Parsys) пытались строить системы с массовым параллелизмом, которые использовались чаще всего в академических приложениях. Выпускались платы-ускорители для персональных компьютеров (IBM PC, Amiga), транспьютеры использовались и в лазерных принтерах.

Кто знает, как бы сложилась судьба транспьютеров, если бы не неудачная бизнес-модель. У разработчиков был неплохой потенциал, но подвела схема финансирования — частно-государственный альянс и передача управления из рук в руки в конечном итоге привели к тому, что Inmos прекратила самостоятельное существование. Компания оказалась на пути гигантов процессорного бизнеса, и найти свое место ей было чрезвычайно сложно. После Inmos осталось неплохое наследие в виде группы небольших экспериментирующих компаний, своего рода локальный кластер в окрестностях Бристоля.

Из современных ускорителей наибольшее распространение получили графические процессоры, служащие для обработки графических данных, и их производное GPGPU — графический процессор, адаптированный для расчетов. В игровых приставках используется PhysX — специализированный физический процессор (Physics Processing Unit, PPU), разработанный компанией Ageia для снятия обработки физических вычислений c CPU. Широко используются также различные звуковые платы, которые комплектуются такими процессорами, как EMU20K1 компании Creative. Существуют ускорители для поддержки стека протоколов TCP/IP в среде Windows, например Killer Network Interface Card компании Bigfoot Networks.