[МУЗЫКА] [МУЗЫКА] [МУЗЫКА] В заключение курса я хочу сделать несколько замечаний. Для меня архитектура ЭВМ практически неразрывна с курсом истории ЭВМ. Ну, вот так получилось, что на матмехе я историю ЭВМ читаю магистрам, а в магистратуру очень много приходит людей из других вузов, которые и не слышали курса «Архитектура ЭВМ», и поэтому очень многие вещи, которые я им рассказываю в рамках истории, совершенно непонятно что почему. И мне приходится тратить довольно большое время в курсе «История ЭВМ», чтобы рассказывать какие-то фрагменты курса «Архитектура ЭВМ». Ну и наоборот, в курсе «Архитектура ЭВМ», мне, как вы видели, приходится довольно часто отвлекаться на историю, потому что я твердо убежден, что если не понимать историю развития, то непонятно, почему были приняты такие или другие решения, что после чего, что родилось раньше, что позже, почему какие-то решения оказались живучими и живут, вот как архитектура IBM 360, полвека, а другие не выдерживают и года-двух. Например, я думаю, что одно время тут было ну все вопли были «Какая хорошая архитектура Intel Itanium!», где она сейчас? Никто и не знает и не помнит. А по-моему, это была хорошая архитектура. Поэтому надо всегда в таких случаях разбираться, почему так произошло. Кроме того, когда я рассказываю про конкретную ЭВМ, я довольно много времени уделяю критике этих архитектур. И, может быть, это даже нехорошо. Рассказал архитектуру — а уж дальше пусть слушатели сами оценят, что хорошо, а что плохо. Но для меня это просто какие-то большие куски моей собственной жизни, когда я говорю, что вот слишком много нулей в распечатках программных кодов IBM 360, но это же просто потеря памяти, и я должен был это учесть при проектировании своей машины. Когда я говорю, что в каких-то исключительных ситуациях, в той же IBM 360, нам сильно мешали реализовывать трансляторы... Понимаете, мой любимый анекдот: глупость — это сидеть и кричать: «Плохо мне, плохо!» А кому нынче хорошо? Надо быть конструктивным и уметь преодолевать эти недостатки. Поэтому когда я рассказываю о каких-то недостатках архитектур, это не для того чтобы уколоть или подколоть кого-нибудь, а чтобы показать, что есть еще, куда развиваться. Или вот такой пример. Я его не рассказал в основном курсе, а сейчас как раз вспомнил, что когда принимался «Эльбрус-2» государственной комиссией, а я был членом этой комиссии, прямо на сдачу пришел Леня Райков, это директор отделения в НИЦЭВТе, это организация, которая делала СЭВМ. Что значит делала? Копировала IBM 360, а потом 370. И по-простому поставил пример, программу на Фортране умножения матрицы, ну, правда, довольно большие, чтобы время было значительное. И представляете, оказалось, что ЕС ЭВМ 1060, которая имела паспортную скорость 6 миллионов операций в секунду, сделала умножение матрицы быстрее, чем «Эльбрус», у которого каждый процессор, а их было 10, имел скорость 12 миллионов операций в секунду. Как так? «Эльбрус» — такая хорошая неворованная машина, отечественная, с оригинальной разработкой, и вдруг на такой простой программе, как умножение матрицы, проигрывает. Я когда вернулся с этих госиспытаний, это было для меня каким-то просто тяжелым ударом, потому что мы ЕС откровенно не любили, а «Эльбрус» откровенно любили. И тут вот — раз, он проигрывает. Мы стали с ребятами в моей лаборатории разбираться. Конечно, разобрались, но после драки кулаками не машут. Госиспытания-то прошли. Все дело в том, что в «Эльбрусе» только 5 регистров было аппаратных верхушек стека, а у ЕС ЭВМ 16 целых регистров — ну IBM 360 и ЕС ЭВМ это одно и то же — и в результате оптимизирующий транслятор Fortran H сделал следующее: он брал на один регистр адрес строки, на другой регистр — адрес столбца, и вот так бежал. И вместо вырезок просто прибавлял тут 4, тут длину строки. И получалось, что вырезка AJ * BJK значительно быстрее, чем это может делать «Эльбрус». Потому что там было много регистров, а в «Эльбрусе» не было. Кстати, я в курсе не стал рассказывать про регистры. Мы учли этот опыт и ввели в «Самсоне» регистры и сумели совместить их со стеком, но это просто технический вопрос. Я не стал его в таком базовом начальном курсе рассказывать. Вот я рассказывал про архитектуру «Самсона». Ну, во-первых, я ее главный конструктор, это моя любимая машина, мы ее сами придумали. Но поверьте, «Самсон» состоит на вооружении российской армии с 1992 года. Я вовсе не думаю, что кто-то из слушателей будет программировать на «Самсоне». Более того, можно сказать, что я даже не хотел бы, чтобы вы попали в ракетные войска и программировали. Программируйте что-нибудь такое спокойное и мирное. Но мы же должны понимать, что просто так ничего не бывает. И когда я рассказываю про «Самсон», я пытаюсь вам рассказать, как придумывалась машина, почему были приняты такие, а не другие решения. Как мы оптимизировали глубину стека. Помните эти обратные операции? Как мы делали ортогональную систему команд, чтобы не было исключительных ситуаций, вот таких как отсутствие DH, или многорегистровых команд в IBM 360. То есть я не рассказывал вам о машине «Самсон». В международной программе, которой я следую, есть строчка HLL-компьютеры. Ну вот я решил, что раз уж я сделал одну HLL-машину, почему бы мне в строчке HLL-компьютеры не развить и не рассказать подробно архитектуру УВК «Самсон», а именно ее особенности. Там у нас есть три авторских свидетельства. И каждый мой студент знает, вопросы на экзамене, список вопросов, эти три вопроса помечены тремя восклицательными знаками. Если студент не отвечает на какой-то вопрос, я могу задать дополнительный вопрос, я вообще довольно демократичный преподаватель, я, по крайней мере, так думаю. Но вот если студенту попался вопрос с тремя восклицательными знаками, а он его не знает, то тогда разговор заканчивается немедленно, и он вылетает, как пробка из шампанского. То есть я предупреждаю честно, математики мало имеют патентов. Это инженеры могут патенты на каждый чих получать. А у математиков патенты редки. Вот у меня их всего три. Так будьте любезны, мои студенты, знать эти три вопроса лучше всего, потому что это было придумано в стенах матмеха, вашими предками, ну в каком-то в прямом и переносном смысле слова, и эти вопросы вы должны знать. И в этом смысле пример вот с регистрами и пример с «Эльбрусом» и с соотношением с ЕС, IBM 360, для меня это не история, это конкретный факт моей биографии, который отразился на решениях, которые мы потом применили. То есть в каком-то смысле мои студенты на матмехе — жертвы моей истории. Я говорю, что это было трудно обогнать американцев в такой области, как архитектура ЭВМ, но три раза ученым из ленинградского, а потом Санкт-Петербургского, университета это удалось. Так я настаиваю на том, чтобы студенты матмеха, с остальными — черт с ними! — но студенты матмеха, а если вы на отделении информатики, где я преподаю, обязаны знать эти три вопроса лучше всего, потому что не так часто бывает, когда нам удается обогнать американцев в каких-то областях, связанных с электроникой, с программированием, с ЭВМ. Ну и наконец, the last but not least, последний по порядку, но не последний по значению, я бы хотел, чтобы история ЭВМ, история архитектуры ЭВМ не закончилась. Ну вот совсем недавно я где-то вычитал, что американцы теперь применяют такие комплексы, дублированный комплекс, и каждая часть — это троированный комплекс. То есть мало того, что они троируют архитектуру, но после этого они ее сверху еще раз дублируют. На мой взгляд это совершенно избыточно. Опыт троированного «Самсона» показал, что за 25 лет он ни разу не отказал. Хотя он исключительно на советских микросхемах сделан, а у нас всегда бытовала шутка, что советские микросхемы — самые большие микросхемы мира. Так вот, машина, сделанная исключительно на советских микросхемах, на российских микросхемах, за 25 лет ни разу не отказала. По-моему, этого достаточно. Ну, тем не менее, американцы считают, что надо делать дубль из двух троированных комплексов. С одной стороны, для меня это удивительно, а с другой стороны, это показывает, что наука на этом не закончилась. И, может быть, вы потом придумаете какие-то совсем новые схемы, совсем новые архитектуры, которые мы будем старики изучать и говорить: «Господи, как же так, мы сами до этого не додумались!» Я желаю вам на этом пути всяческого успеха.