Студопедия

Главная страница Случайная лекция

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика






ТЕГОВЫЕ МАШИНЫ И АССОЦИАТИВНЫЕ ПРОЦЕССОРЫ

Читайте также:
  1. Асинхронные машины
  2. Встряхивающие формовочные машины.
  3. Глава 3 Подъемно-транспортные машины и устройства
  4. Глава 4 МАШИНЫ ДЛЯ ПРОИЗВОДСТВА ЗЕМЛЯНЫХ РАБОТ
  5. ГЛАВА 5 МАШИНЫ И ОБОРУДОВАНИЕ ДЛЯ ПРОИЗВОДСТВА СВАЙНЫХ РАБОТ
  6. ЗЕМЛЕРОЙНО-ТРАНСПОРТНЫЕ МАШИНЫ
  7. Лекция 1. Общие сведения о машинах и механизмах предприятий торговли и общественного питания. Устройство технологической машины
  8. Лекция 13. Тестомесильные машины
  9. Лекция 4. Посудомоечные машины
  10. ЛЕКЦИЯ 8. ТЕХНИЧЕСКИЕ СРЕДСТВА ОБРАБОТКИ ИНФОРМАЦИИ. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, КОМПЛЕКСЫ И СЕТИ ОБЩЕГО НАЗНАЧЕНИЯ

10.1 Ключевые (основные) вопросы (моменты)

— понятие теговой машины;

— ассоциативныйпроцессор.

10.2 Текст лекции

10.2.1 Теговые машины

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

Чтобы отойти от принципа однородности памяти и получить возможность содержательной трактовки хранимых данных Илифф (J. Iliffe) предложил информацию, хранящуюся в основной памяти или регистре, снабжать специальным полем (тегом), определяющим тип и формат данных. Теговая организация памяти позволяет достигнуть инвариантности команд относительно типов и форматов данных. Например, при использовании тегов отпадает необходимость различать команды для выполнения арифметических операций с числами в форме с плавающей и фиксированной запятой, так как машина это сделает автоматически, проверив типы операндов. Использование механизмов тегирования дает возможность упростить систему команд процессора, облегчает обнаружение таких ошибок, как несовпадение типов данных, попытка чтения из пустой ячейки, упрощает компиляторы.

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

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



В 1979 году аппаратная поддержка типов данных впервые появилась в разработанном в ИТМиВТ им. С. А. Лебедева под руководством В. С. Бурцева многопроцессорном комплексе Эльбрус, в котором также предусматривалась аппаратная поддержка вызова процедур и организация вычислительного процесса на основе использования стеков. Теговая организация памяти,положенная в основу теговых машин, получила свое дальнейшее развитие в системах с объектно-ориентированной архитектурой, в частности, в предложенном в 1982 году Майерсом (G. Myers) проекте SWARD-машины.

В современных системах программирования рассмотренные выше механизмы выражаются в виде динамической (определяемой при выполнении программы) типизации данных (RTTI, Run-Time Type Identification). В этом отношении реализованные аппаратно тегирование и механизм дескрипторов значительно опередили первые экспериментальные попытки динамической типизации в языках программирования. В настоящее время динамическая типизация является одним из инструментов объектно-ориентированного программирования, в котором каждый класс имеет связанную с ним структуру типа typeinfo, кодирующую различную информацию о классе.


<== предыдущая страница | следующая страница ==>
Пример программы | Ассоциативный процессор

Дата добавления: 2014-11-24; просмотров: 373; Нарушение авторских прав


lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.