автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.13, диссертация на тему:Архитектурная поддержка защищенных вычислений при реализации объектно-ориентированых языков

кандидата технических наук
Груздов, Федор Анатольевич
город
Москва
год
2000
специальность ВАК РФ
05.13.13
Диссертация по информатике, вычислительной технике и управлению на тему «Архитектурная поддержка защищенных вычислений при реализации объектно-ориентированых языков»

Оглавление автор диссертации — кандидата технических наук Груздов, Федор Анатольевич

Введение.

Глава 1. Защищенные вычисления.

1.1 Принципы защищенных вычислений.

1.2 Методы организации защищенных вычислений.

1.2.1 Ключевая защита.

1.2.2 Контекстная защита.

1.3 Выводы.

1.4 Описание базовой архитектуры.

1.4.1 Общие положения.

1.4.2 Программный модуль.

1.4.3 Размещение динамических данных.

1.4.3.1 Динамически выделяемая память.

1.4.3.2 Стеки.

1.4.4 Форматы данных.

1.4.5 Выводы.

Глава 2. Объектно-ориентированное (00) программирование.

2.1 Обзор 00 языков.

2.1.1 С++.

2.1.2 Java.

2.1.3 Simula.

2.1.4 Extended Pascal.

2.2 Базовые конструкции 00 языков.

2.3 Выводы.

Глава 3. Описание реализации.

3.1 Организация данных.

3.1.1 Статические данные.

3.1.1.1 Статические данные как глобалы модуля (СДГ).

3.1.1.2 Специализированное пространство статических данных (СДС).

3.1.2 Экземпляры класса (объекты).

3.1.3 Методы (процедуры) класса.

3.1.4 Именование типа (класса).

3.2 Адресные и специализированные типы.

3.3 Набор операций.

3.3.1 Обращение к статическим членам.

3.3.1.1 Статические данные как глобалы модуля (СДГ).

3.3.1.2 Специализированное пространство статических данных (СДС).

3.3.2 Обращение к нестатическим членам.

3.3.3 Преобразование типов.

3.3.4 Реализация конструкции friend.

3.3.5 Реализация конструкции switch.

3.3.6 Обращение к простому методу.

3.3.7 Обращение к виртуальному методу.

3.3.8 Сравнение указателей.

3.4 Результаты.

3.4.1 Сравнение и оценка вариантов реализации.

3.4.2 Накладные расходы.

3.4.2.1 Типизация данных.

3.4.2.2 Архитектурные ресурсы.

3.4.2.3 Операции.

3.4.3 Реализация функций защиты.

3.5 Выводы.

Введение 2000 год, диссертация по информатике, вычислительной технике и управлению, Груздов, Федор Анатольевич

Актуальность работы. Данная работа посвящена проектированию элементов процессорной архитектуры, обеспечивающих защищенное исполнение программ, имеющих объектно-ориентированную (00) семантику. Проблематика работы включает в себя два различные направления: защищенные вычисления и 00 технологии -, каждое из которых заслуживает отдельного рассмотрения.

Под "защищенными вычислениями" следует понимать обеспечение модульности на этапе исполнения (run-time), то есть такую организацию вычислений, при которой один программный модуль не может получить несанкционированный доступ к данным другого, размещенного в том же виртуальном пространстве. Модульное программирование является общепринятым технологическим приемом, способствующим решению нескольких задач.

Прежде всего, это - эффективная организация и реализация сложных проектов, предполагающих параллельную разработку различных компонент. Здесь модульность повышает производительность работ (а следовательно, снижает их стоимость) не только за счет распараллеливания, но и вследствии ускорения отладки, поскольку локализация ошибок упрощается.

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

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

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

К сожалению модуляризация продукта только на уровне программирования не гарантирует защищенности, ведь программа создается человеком, и, как уже упоминалось, здесь возможны и ошибки, и злой умысел. Строгая модульность может быть обеспечена только в специально предназначенной для этого среде программирования, способной выделять ограниченное рабочее пространство и контролировать его использование на этапе исполнения. Современные традиционные архитектуры если и предоставляют для этого какие-нибудь средства, то самые минимальные, поэтому для них защищенность реализуется интерпретационно. Ясно, что при таком подходе производительность системы существенно падает, что и ограничивает его применимость простыми приложениями. Типичным примером является исполнение программ, написанных на языке Java [1]. Повышение производительности дает так называемая компиляционная модель, то есть трансляция Java-приложений в родной (native) код используемой платформы. Однако, из-за отсутствия аппаратной поддержки получающийся код перегружен динамическими программными проверками, что, естественно, снижает его эффективность.

Представляется, что значительная часть накладного расхода, связанного с обеспечением модульности, может быть уменьшена введением адекватной архитектурной поддержки. Подтверждением тому служит успешный опыт эксплуатации, напрмер, системы Plessey System 250 [2] или комплексов Эльбрус-1 и Эльбрус-2 [3-5].

Второй гранью работы является 00 программирование. Парадигма объектной ориентации оказалась очень продуктивной, о чем свидетельствует широкое распространение и практическое использование этих идей. Достаточно посмотреть на список как "чистых" 00 языков, так и тех, которые расширяют стандартные средства 00 семантикой. Огромное количество программного обеспечения написано с использованием 00 технологии. Кажется очевидным, что поддержка 00 программирования должна быть широко востребована. К тому же, не умаляя достоинств прочих качеств 00 подхода, нужно заметить, что его популярность в значительной степени связана с дальнейшим движением в сторону модульности - черты, положительные свойства которой обсуждались выше.

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

Цель исследования. При определении средств, которые должны быть вынесены в архитектуру, перед разработчиком встает ряд вопросов, таких как: на каких принципах удобнее строить межмодульную защиту (например, будет ли она контекстная или ключевая), где проходит граница между аппаратными и программными средствами, какова эффективность и относительная стоимость принимаемых решений, насколько они универсальны и пр. Все эти проблемы подробно рассмотрены в следующих разделах.

Тем не менее, здесь уместно обратиться к одному из аспектов, определяющих техническую позицию, а именно, номенклатура языков, которые должна поддерживать разрабатываемая среда программирования. Данная работа выполнялась в рамках проектирования микропроцессора Эльбрус-2000, и ответы на многие вопросы определялись рыночными соображениями. Было решено ограничиться распространенными универсальными языками со статическим типизированием, такими, как С, С++, FORTRAN, Pascal, Turbo-Pascal, Visual-Basic, компиляционная модель Java и т.д. Вообще говоря, перечисленные выше языки по своей природе не предназначены для защищенного программирования: они содержат некоторые конструкции, несовместимые с защитой. Однако, набор их средств так широк, что введение ограничений на использование "ненадежных" конструкций в защищенном режиме часто выглядит как стилевые рекомендации, призывающие к отказу от ассемблерных свойств. Часто корректность таких конструкций с точки зрения защищенности может быть проконтролирована программно, вследствии чего "ограничения на использование" выражаются только в снижении производительности системы.

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

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

2. Предлагаемые средства должны обладать универсальностью, достаточной для реализации различных 00 языков, то есть они должны представлять собой набор базовых семантических элементов 00 программирования. В то же время автор должен учесть и возможные специфические свойства, присущие таким распространенным языкам, как С++ или Java. Для решения этой подзадачи работа включает анализ распрсраненных 00 языков и формулирование искомого семантического базиса.

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

Научная новизна. В отличие от предыдущих разработок, направленных на защищенное программирование, существенной особенностью проекта Эльбрус-2000 является поддержка защищенного исполнения ОО языков. Дело в том, что парадигма 00 программирования, рассмотренная в свете защищенной реализации, семантически шире, чем процедурный подход. Поддержка 00 семантики, безусловно, возможна и с помощью известных базовых средств, однако эффективность такой системы представляется невысокой, по крайней мере - с точки зрения производительности. В проекте же Эльбрус-2000 ставилась задача исполнения 00 программ с минимальными потерями производительности, связанными с run-time защитой. С другой стороны, аппаратная поддержка должна быть достаточно универсальной для эффективной реализации целого ряда 00 языков. Одной из главных задач, решаемых в данной работе, является анализ ОО технологии и распространенных 00 языков с целью выявления такого набора базовых черт, который было бы выгодно и удобно вынести в архитектуру.

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

Результаты работы, выносимые на защиту. На защиту выносится расширение архитектуры (микро)процессоров, предназначенное для runtime поддержки защищенных вычислений, изложенных на 00 языке. Следует подчеркнуть, что свойство run-time защищенности является одним из основополагающих в базовой архитектуре и должно быть распространено на 00 расширение. Предлагаемое архитектурное подмножество не ориентировано на какой-либо определенный язык, а представляет собой семантический базис, достаточный для эффективной реализации сред программирования для большинства из распространенных статических 00 языков.

Практическая ценность. Результаты работы вошли составной частью в архитектуры микропроцессоров Эльбрус-ЗМ и Эльбрус-2000. Результаты моделирования показывают пригодность предложенных средств для реализации упомянутых языков.

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

Апробация. Положения диссертационной работы докладывались и обсуждались на научно-технических конференциях и семинарах:

• Мельниковские чтения. Москва, 19 февраля 1999г.

• XXV Гагаринские чтения. Москва, 6-10 апреля 1999г.

• семинары МЦСТ, НИИВТ.

Помимо этого результаты работы вошли в определение архитектуры микропроцессора Эльбрус-2000 и были использованы при создании экспериментальной версии компилятора с языка С++.

Публикации. По теме диссертации опубликованы следующие работы:

Груздов Ф.А., Сахин Ю.Х. Архитектурная поддержка типизации данных. Информационные технологии и вычислительные системы, п/р Емельянова C.B., 1/1999, Москва, ИВВС РАН, 1999, с.3-13.

Груздов Ф.А. Архитектурная поддержка защищенных вычислений при реализации объектно-ориентированных языков в машине Эльбрус-2000. Мельниковские чтения. Тезисы докладов научной конференции. М., 19 февраля 1999.

Груздов Ф.А. Типизация данных как архитектурный подход. XXV Гагаринские чтения. Тезисы докладов Международной молодежной научной конференции. Москва, 6-10 апреля 1999г. М.: "ЛАТМЭС", 1999, том 1.-510С., ISBN 5-230-21205-5.

Груздов Ф.А. Метод оптимизации передачи управления в конвейерных процессорах. Компьютерная хроника, N 7, М. 1999, с.55-64.

Артемов А.М., Волин B.C., Груздов Ф,А„ Лизоркин А.П., Чудаков М.Л. Структура центрального процессора МВК Эльбрус-3. Тезисы доклада. Международная конференция "Высокопроизводительные ВС в управлении и научных исследованиях". Алма-Ата, сентябрь, 1991.

Кроме того имеются патенты США (в соавторстве): 5.958.048, 5.889.985, 5.794.029 -, а также зарегистрированные патентные заявки: 09/220,502, 60/120,355, 60/120,447, 60/120,721, 60/120,357, 60/120,445, 60/120,461, 60/120,450.

Структура работы. Работа включает введение, три главы и заключение.

Первые две главы посвящены обзору проблемы. Решаемая задача -run-time поддержка защищенного ОО программирования - находится на стыке двух областей компьютерного знания: защищенных вычислений и ОО технологии. Соответственно, первые главы последовательно раскрывают эти направленя.

Заключение диссертация на тему "Архитектурная поддержка защищенных вычислений при реализации объектно-ориентированых языков"

Результаты работы были использованы при формулировании микропрцессорной архитектуры, направленной на проектирование систем защищенного программирования, в том числе - на 00 языках. В соответствии с этой архитектурой разработан микропроцессор Эльбрус-2000, и написана его модель, позволившая создать экспериментальную версию компилятора с языка С++.

В работе предложены два варианта архитектурной поддержки

Заключение.

Диссертационная работа посвящена распространению практики защищенных вычислений в область 00 технологий. Основным результатом диссертационной работы является разработанное расширение защищенной микропроцессорной архитектуры, предназначенное для эффективной реализации систем защищенного программирования на 00 языках. Предложенное архитектурное подмножество следует принципам заданной базовой архитектуры, не изменяя концептуальную основу последней. При проектировании максимально использованы уже существующие средства, тем самым сокращая набор дополнительных архитектурных элементов. Разработанные средства обладают универсальностью, достаточной для поддержки различных 00 языков, то есть они представляют собой набор базовых семантических элементов 00 программирования. В то же время учтены и специфические свойства, присущие таким распространенным языкам, как С++ или Java. Работа не ограничивается только элементами архитектуры микропроцессора, такими, как размещение и адресация данных, перечень и форматы специальных типов, номенклатура и алгоритмы операций, но включает и предложения по взаимодействию аппаратуры и программного обеспечения, определению границ ответственности между ними, реализации неэлементарных семантических конструкций.

Для выполнения этих задач в ходе работы были проведены исследования и получены следующие результаты:

• Проанализированы принципы, составляющие существо защищенных вычислений и лежащие в основе всякой системы защиты.

• Сформулирован ряд положений, ограничивающих диапазон возможных решений.

• Рассмотрены известные методы организации защиты, их эффективность и применимость для решения поставленной задачи.

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

• Рассмотрены основные положения 00 программирования, сделан обзор распространенных языков программирования, включающих элементы 00 подхода.

• На основе анализа 00 языков сформулированы ограничения и требования к разрабатываемому расширению, обеспечивающие его универсальность.

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

• Предложены варианты организации данных и управляющих структур, специфических для 00 программирования, а также алгоритмы реализации конструкций ОО языков. Все это может служить руководством при создании систем защищенного программирования.

• Оценены накладные расходы, связанные с введением предложенных механизмов.

• Показано, что предложенное расширение действительно распространяет защищенность вычислений в область 00 программирования. Приведены примеры run-time контроля некоторых потенциальных ошибок или попыток несанкционированных действий.

Библиография Груздов, Федор Анатольевич, диссертация по теме Телекоммуникационные системы и компьютерные сети

1. The Java Language Specification, version 1.0. James Gosling Bill Joy Guy Steele, http://java.sun.com/docs/books/jls/html/index.html

2. Henry M. Levy. Capability-Based Computer Systems. Digital Press, 1983, ISBN: 0-932375-22-3.

3. MBK Эльбрус-2. Техническое описание. Часть 2. Центральный процессор. М: ИТМиВТ, 1984.

4. МВК Эльбрус-2. Техническое описание. Часть 3. Система команд. М: ИТМиВТ, 1984.

5. Бабаян Б.А., Сахин Ю.Х. Система "Эльбрус". М: АН СССР, "Программирование" N6, 1980.

6. Essays on Capabilities and Security. http://www.eros-os.org/essays/OOEssays.html

7. EROS: The Extremely Reliable Operating System, http: //www.cis.upenn.edu/~eros/

8. Edward A. Feustel. On The Advantages of Tagged Architecture. IEEE Transactions On Computers, vol.C-22, No.7, July 1973, pp.644-656.

9. J.K. Iliffe. Advanced Computer design. Prentice Hall int. 1982.

10. Marco Fillo, Stephen W. Keckler, William J. Dally et al. The M-Machine Multicomputer. Artificial Intelligence Laboratory Memo 1532, Massachusetts Institute of Technology, 1995.

11. William J. Dally, Stephen W. Keckler, Nick Carter et al. The M-Machine Architecture vl.O. CVA Memo 58, 1995.

12. William J. Dally, Stephen W. Keckler, Nick Carter et al. The M-Machine Instruction Set Reference Manual vl.55. CVA Memo 59, 1997.

13. Фрэнк Дж. Солтис. Основы AS/400. Пер. с англ. М. Изд.отд.'Тусская редакция" ТОО "Channel Trading Ltd.", 1998, ISBN: 5-7502-0038-8.

14. F.G. Soltis, R.L. Hoffman. Design Considerations for the IBM System/38. In Proceedings of Compcon 79, Spring 1979.

15. Г. Майерс. Архитектура современных ЭВМ. пер. с англ. п/р В.К.Потоцкого, М., Мир, 1985.

16. Organick E.I. Computer System Organization the B5700/B6700 Series. NY, Academic Press, 1973, 132p.

17. B.Babaian, V. Volkonsky et al. Wide Instruction Word Architecture Central Processor. US Patent N 5418975, May 23, 1995; PCT Pub. Date: Oct. 15 1992; PCT Filed: Aug. 20, 1991.

18. Intel, HP Make EPIC Disclosure. Micriprocessor Report, Vol.11, No. 14, Oct.27, 1997, p.l.

19. Merced Processor & IA-64 Architecture. http://developer.intel.com/design/processor/future/ia64.htm

20. The IBM Research VLIW project . in 1995 Symposium, IBM T.J. Watson Research Center, Yorktown Heights, NY, November 1995.

21. J.H. Moreno, M. Moudgill. Scalable instruction-level parallelism through tree-instructions. 1997 International Conference on Supercomputing. Vienna, Austria, July 7-11, 1997, pp. 1-11.

22. Implementing an experimental VLIW compiler. Workshop on computer architecture education, 1997 High-Performance Computer Architecture Conference (HPCA97), San Antonio, February 1997.

23. Г. Буч. Объектно-ориентированное проектирование с примерами применения, пер. с англ. п/р А.Н.Артамошкина, М.: Конкорд, 1992, 319с.

24. Б. Страуструп. Язык программирования С++. 3-е изд., пер. с англ., М.: "Невский диалект", "Издательство БИНОМ", 1999, 991с.

25. А. Пол. Объектно-Ориентированное программирование на С++. 2-е изд., М.: "Невский диалект", "Издательство БИНОМ", 1999, 560с.

26. Working Paper for Draft Proposed International Standard for Information Systems Programming Language С++. Accredited Standards Committee, Doc No: X3J16/96-0225, WG21/N1043, Dec., 1996.

27. Андрианов A.H. и др. Программирование на языке Симула-67. М.: Наука, 1985, 288с.

28. SIMULA Language Reference Pages. http://www.JSP.UMontreal.CA/~simula/Standard/LangDef.html

29. Pascal Standards, http://www.pascal-central.com/standards.html

30. Дал У.И., Мюрхауг Б., Нюгорд К. Симула-67. Универсальный язык программирования. М.: Мир, 1969, 99с.

31. Кузин JI.T., Бычков С.П., Храмов А.А. Представление понятийных знаний с помощью языка Симула-67. В кн. Проектирование интеллектуальных систем. М.: Атомиздат, 1980, с.51-61.

32. Вирт Н. Алгоритмы и структуры данных, пер. с англ., М.: Мир, 1989, 360с.

33. Borland Pascal with Objects. Version 7.0. Language Guide. Borland International Inc, 1992.

34. Borland Pascal with Objects. Version 7.0. User's Guide. Borland International Inc, 1992.

35. Borland Pascal with Objects. Version 7.0. Programmer's Reference. Borland International Inc, 1992.

36. А. Епанешников, В. Епанешников. Программирование в среде Turbo Pascal 7.0. 4-е изд., М.: Диалог-МИФИ, 1999, 367с.

37. Pentium Processor Family Developer's Manual. Vol.3: Architecture and Programming Manual. 1995.

38. Алексей Пылкин. Факты и предположения о Merced. http://www.microprocessor.sscc.ru/Merced/index.ru.litml

39. The SPARC Architecture Manual. Version 9. editors: David L.Weaver, Tom Germond. PTR Prentice Hall, Englewood Cliff, New Jersey 07632.

40. M. Moudgill, J.H. Moreno, K. Ebcioglu et al. Compiler/architecture interaction in a tree-based VLIW processor. IEEE TCCA (Technical Committe on Computer Architecture) Newsletter June 1997, pp. 10-12.

41. Вычислительная система IBM/360, пер. с англ. п/р Штаркмана B.C., М.: "Советское радио", 1969, 440с.

42. Органик Э. Организация системы Интел 432. пер. с англ., М.: Мир, 1987, 416с.

43. A.J. Tyrrell. Eiffel Object-Oriented Programming. http://www.doc.mmu.ac.uk/library/notes/ajt

44. Eiffel in a Nutshell, http://eiffel.com/eiffel/nutshell.html

45. Сафонов B.O. Языки и методы программирования в системе Эльбрус, п/р С.С.Лаврова, М.: Наука, 1989, 392с., ISBN 5-02-01.3983-1.

46. Петр Соболев. О языке Oberon. http://www.enlight.ru/ib/notes/oberon/index.htm

47. Язык программирования Оберон. http://www.uni-vologda.ac.ru/oberon/index.html

48. Язык программирования Оберон-2. Х.Мёссенбёк, Н.Вирт. Институт компьютерных систем, ЕТН, Цюрих, Июль 1996, пер. с англ. С.Свердлова, http://www.uni-vologda.ac.ru/oberon/o2rus.htm

49. AS/400 System Handbook. http://www.as400.ibm.com/handbook/index.htm

50. Y4R4 architecture, processor complex, and performance. M.L. Zumbrunnen, A.H. Wottreng, S.R. Kunkel, and J.M. Borkenhagen. http: //www.as400.ibm.com/beyondtech/archnstarjperf.htm

51. Robert Yung. Design of the UltraSPARC Insruction Fetch Unit. Sun Microsystems Laboratories, SMLI TR-96-59, December 1996.

52. Sharangpani et al. Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction. United States Patent 5860017, Jan. 12, 1999

53. HPL Play-Doh Architecture Specification: Version 1.0. Vinod Kathail, Michael Schlansker, B. Ramakrishna Rau. Computer Systems Lab. HPL-93-80 February, 1994.

54. ARM Documentation. http://www.arm.com/Documentation Работы автора no теме диссертации.

55. Груздов Ф.А. Типизация данных как архитектурный подход. XXV Гагаринские чтения. Тезисы докладов Международной молодежной научной конференции. Москва, 6-10 апреля 1999г. М.: "ЛАТМЭС", 1999, том 1. ISBN 5-230-21205-5. с.379-380,

56. Груздов Ф.А. Архитектурная поддержка защищенных вычислений при реализации объектно-ориентированных языков в машине Эльбрус-2000. Мельниковские чтения. Тезисы докладов научной конференции. М., 19 февраля 1999.

57. Груздов Ф.А., Сахин Ю.Х. Архитектурная поддержка типизации данных. Информационные технологии и вычислительные системы, п/р Емельянова С.В., 1/1999, Москва, ИВВС РАН, 1999, с.3-13.

58. Груздов Ф.А. Метод оптимизации передачи управления в конвейерных процессорах. Компьютерная хроника, N 7, М. 1999, с.55-64.

59. Перспективы развития вычислительной техники в 11 кн.; Справ, пособие, под ред. Ю.М.Смирнова, кн.4; "Многопроцессорные ЭВМ и методы их проектирования" Б.А.Бабаян и др. М. Высш.шк. 1990.

60. Патенты и патентные заявки.

61. Architectural support for execution control of prologue and epilogue periods of loops in a WLIW processor. Inventors: Babaian B.A.; Gorokhov V.G.; Gruzdov F.A.; Sakhin Yu.Kh.; Volkonski V.Yu., No.5.794.029, Aug.11,1998.

62. Array prefetch apparatus and method. Inventors: Babaian B.A.; Gorokhov V.G.; Gruzdov F.A.; Sakhin Yu.Kh.; Volkonski V.Yu., No.5.889.985, Mar.30, 1999.126

63. Architectural support for software pipelining of nested loops. Inventors: Babaian B.A.; Gruzdov F.A.; Sakhin Yu.Kh.; Volin V.S.; Volkonski V.Yu., No.5.958.048, Sept.28, 1999.

64. Output Dependence Problem Solution Method and Apparatus. Inventors: Babaian B.A.; Gorokhov V.G.; Gruzdov F.A.; Sakhin Yu.Kh.; Volkonski V.Yu., Appl.No.: 60/120,461, Filed: February 17, 1999.

65. Recurrence serialization technique for optimizing of software pipelined loops. Inventors: Gruzdov F.A.; Sushentsov A.L.; Ostanevich A.Y.; Volkonski V.Yu.; Appl. No.: 60/120,447; Filed: February 17, 1999.

66. Hardware supported cross iteration common subexpression elimination. Inventors: Gruzdov F.A.; Drozdov A.Y.; Volkonski V.Yu.; Appl. No.: 60/120,721; Filed: February 17, 1999.

67. Method and apparatus for Call/Return pairs support while execution another instruction set on the host platform. Inventors: Babaian B.A.; Gruzdov F.A.; Rozhkov S.A.; Appl. No.: 60/120,445; Filed: February 17, 1999.