Ускорители используются в разных системах; например в авиации в начале 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.