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