![]() |
![]() история и перспективы
Здесь, в Санкт - Петербурге разрабатывается очень важная - фундаментальная часть компьютеров, а то, что я хотел бы рассказать - это дополняющая часть. Технологию компьютеров можно представить состоящей из двух частей: 1) Сама технология - изготовление кристалла, оптимизация технических характеристик. 2) Использование возможностей кристалла. Попросту, как сделать так, чтобы этот кристалл "полезно" считал - это как раз та тематика, которой занимается наш институт. Сейчас, я хотел бы взглянуть назад, чтобы показать, что было в этих двух областях некоторое время (двадцать лет) назад, что происходит сейчас, и чем предстоит заниматься разработчикам в будущем.
Мне посчастливилось быть первым студентом в Советском Союзе по вычислительной технике. Московский Физико-Технический Институт в 1951 году набирал группу по вычислительной технике (машинной математике). Какие драматические изменения произошли за это время. Я начинал еще с ламповых машин. Единица хранения информации - триггер занимал огромный объём (куб 10*10*10 см). Теперь же технологии позволяют разместить на одном кристалле сотни миллионов транзисторов - это много-много десятичных порядков разницы. Растет и интеграция, надёжность, скорость работы. Теперь Я хотел бы перейти к теме связной с логическим построением, с архитектурой микропроцессоров и компьютеров вообще. Технология очень сильно влияет на архитектуру. Посмотрите на этот график
Вспоминая историю, хотелось бы отметить некоторые важные вехи.
С развитием технологий появились машины, которые называются сейчас RISC-ами (reduced instruction set computer). Люди научились делать такие быстрые арифметические операции, что каждый такт можно было, по крайней мере, начать одну операцию, но не более. В то время шла борьба за быстрое выполнение арифметических операций. Здесь уже работы нашего коллектива, в работе которого принимал участие и я, представляли собой существенные результаты. У нас были разработаны быстрые методы арифметических операций: умножения, деления и извлечения квадратного корня. Сейчас все машины используют эти операции. Но первая открытая публикация появилась именно в нашей стране. Идея была простая. Вы знаете, чтобы умножить два числа нужно много раз сложить числа. При операции умножения работает цепочка переноса. Наша идея заключалась в том, чтобы при многих последовательных сложениях не доводить переносы до конца, а запомнить их в каждом разряде и использовать в следующих операциях. Эта работа была сделана в 1954 году. Первая западная публикация была в 1956 году. Здесь был достигнут некоторый теоретический предел скорости логических операций. По крайней мере, уже в течение 30 лет не было ни одной публикации. С использованием современных технологий появилась возможность выполнять несколько операций за один такт.
Ситуация существенно изменилась, когда в машине появилось много физических устройств, которые могут работать параллельно, тогда последовательное планирование, которое производится в центре стало неудовлетворительным для всех моделей. Был придуман способ, при котором в каждой машине находилось оборудование, которое на месте перепланирует программу под себя.
Если вернутся к первому рисунку, то видно, что пологая область - это область последовательных машин. Существенный рост начался после появления суперскалярных машин. 1985 году мы первые завершили работу над вторым поколением суперскаляров - это Эльбрус-2. Но на сегодня все понимают, что суперскаляр себя изжил. Почему же он изжил себя. Есть два ограничения: 1) нужно иметь очень мощные параллельные арифметические устройства, которые будут выполнять вычисления; 2) В суперскаляре есть управляющее устройство, которое занимается планированием в реальном режиме времени. Когда в машине не очень много исполнительных устройств (4-5) планировщик справляется с задачей. Как только число устройств стало больше 6-8, то в реальном режиме времени планирование не осуществимо. Какой же выход из этого положения. Выход
Современная архитектура заморожена проблемой совместимости. Сейчас я вспоминаю известную шутку компьютерщиков: "Почему Бог создал мир за семь дней - да потому, что у него не было проблемы совместимости". У нас же сложная проблема совместимости и поэтому мы не можем создавать наш мир так быстро. Наши работы полностью снимают проблему совместимости. Сейчас такая машина уже создана и тестируется. наша машина, если отбросить все технологические особенности (преимущества которых мы легко берём на вооружение), даёт ускорение на целочисленных задачах как минимум в три раза. На вещественных задачах - значительно больше - в 5 - 6 раз. Так мы научились побеждать скорость. Теперь о том, как наши работы влияют на мировое развитие компьютеров. Раньше наши работы, конечно, мало влияли на западные - кто бы много подумать, что там - в России могут быть какие-то достижения. Та машина, о которой я говорю, была построена в 1991 году в Москве. Это 1991 год - на западе ещё суперскаляр не появился. Про эту машину, конечно, узнали на Западе и, конечно, к нам приехали представители двух ведущих фирм: SUN и Hewlett - Packard. 1991 год. Один из них приехал 19 августа - в день Путча. На улицах танки грохотали. Он сидел у нас в институте и досконально знакомился с Эльбрусом-3. Мы выбрали сотрудничество с SUN с представителем этой фирмы Дэйвом Дитцелом (это довольно известный человек).
Он впервые ввел в обиход понятие RISC и стал призывать компьютерные компании перейти на эту технологию.
До 1994 HP вела автономные разработки. в 1994 году она подписала контракт с Intel и сейчас эта работа превратилась в Itanium IA-64 (все ждут когда они появятся). Но у нас есть существенное отличие от Itaniumа. Если мы переходим к статической компиляции [это полностью завершенный код скомпилированный до исполнения команд - прим.ред.], то мы должны отдать все ресурсы. Мы должны создать такую систему команд, которая экспонирует (см. http://km.ru) компилятору все ресурсы. Так как ресурсы параллельные, то и архитектура должна быть параллельной. В нашей команде 16 силлаблов [непереводимая игра слов с использованием профессиональных идиоматических выражений, в Рунете не встречается - прим. ред.] и мы за один такт запускать около 25 операций (это так называемая широкая команда). Intel перенял идею широкой команды, но не взял идею двоичной компиляции. Таким образом, они не решают проблему совместимости. Значит, все программы x86 нужно выбросить. Конечно, Они не могут себе такого позволить и поэтому на одном кристалле помещают две машины: одна из них работает по-новому, другая по-старому. Это даже смешно. Что же в третьем поколении помещать три машины на кристалл. Второй минус - они выкинули анализ и планирование и ничего взамен туда ничего не поставили. То есть масштабирования, приспосабливаемости нет.
Это одна сторона. Еще одна идея, которую Запад еще не начал - Это технология защищённого программирования (Эльбрус-1 и -2). Сейчас в эпоху Интернета без защищённого программирования не обойтись. Чтобы сделать защищенное программирование, чтобы никакие вирусы
Мы реализовали аппаратно динамический контроль типов... Заканчивая мой рассказ, я хочу сказать, что иллюстрацией новых свойств при таком подходе к программированию является то, что пропуская очень хорошо отлаженные Си-шные программы в защищенном режиме на моделях нашей машины мы находим колоссальное количество ошибок. Есть такие программы-SPEC*, на которых соревнуются все современные микропроцессоры. Они транслируются всеми трансляторами, и работали на всех машинах в мире, мы нашли в них более тридцати ошибок. Вы можете себе представить, как это помогает отлаживать программы, но самое главное это очень сильно помогает при защите от вирусов. Надеюсь, я довольно ярко показал, что наши работы никогда не отставали от западных. Более того, у нас есть технологии, о которых на Западе еще не дошли. Благодаря открытости последнего десятилетия мы очень сильно повлияли на развитие компьютеров. Единственные две разработки, которые отрываются от супескаляров - это прямые производные от наших разработок. Вот такие результаты. ![]() |
![]() |