2.7. Теги и дескрипторы. Самоопределяемые данные

К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 
34 35 36 37 38 39 40 41 42 43 44 45 

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

Рис.2.20. Структура описания данных: а) с теговой          * организацией памяти; б) дескриптор данных

В поле тега обычно указывается не только тип, но и длина (формат) и некоторые другие его параметры. Теги формируются компилятором.

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

Отметим, что ЭВМ с теговой памятью (самоопределяемыми данными) выходит за рамки модели вычислительной машины фон Неймана, где тип (характер) данного определяется командой, использующей данное в качестве операнда. В обычных ЭВМ, соответствующих классической модели фон Неймана, тип данных — операндов и их формат задаются кодом операции команды, а в раде случаев размер (формат) определяется следующими поля­ми команды.

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

Теговая организация памяти способствует реализации принципа незави­симости программ от данных.

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

В качестве недостатка теговой организации памяти можно указать на некоторое замедление работы процессора из-за того, что установление соот­ветствия типа команды типу данных, в обычных ЭВМ выполняемое на этапе компиляции, при использовании тегов переносится на этап выполнения про­граммы.

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

Дескриптор содержит сведения о размере массива данных, его местопо­ложении (в ОП или внешней памяти), адресе начала массива, типе данных, режиме защиты данных (например, запрет записи в ячейки массива) и неко­торых других параметрах данных. Отметим, что задание в дескрипторе раз­мера массива позволяет контролировать выход за границу массива при ин­дексации его элементов. На рис. 2.20,6 в качестве примера представлен один из видов дескрипторов - дескриптор данных.

Дескриптор содержит специфический тег — ТДС, указывающий, что данное слово является дескриптором определенного вида; Ук — группа ука­зателей; А — адрес начала массива данных; L — длина массива; Х — индекс.

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

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

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

Рис.2.20. Структура описания данных: а) с теговой          * организацией памяти; б) дескриптор данных

В поле тега обычно указывается не только тип, но и длина (формат) и некоторые другие его параметры. Теги формируются компилятором.

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

Отметим, что ЭВМ с теговой памятью (самоопределяемыми данными) выходит за рамки модели вычислительной машины фон Неймана, где тип (характер) данного определяется командой, использующей данное в качестве операнда. В обычных ЭВМ, соответствующих классической модели фон Неймана, тип данных — операндов и их формат задаются кодом операции команды, а в раде случаев размер (формат) определяется следующими поля­ми команды.

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

Теговая организация памяти способствует реализации принципа незави­симости программ от данных.

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

В качестве недостатка теговой организации памяти можно указать на некоторое замедление работы процессора из-за того, что установление соот­ветствия типа команды типу данных, в обычных ЭВМ выполняемое на этапе компиляции, при использовании тегов переносится на этап выполнения про­граммы.

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

Дескриптор содержит сведения о размере массива данных, его местопо­ложении (в ОП или внешней памяти), адресе начала массива, типе данных, режиме защиты данных (например, запрет записи в ячейки массива) и неко­торых других параметрах данных. Отметим, что задание в дескрипторе раз­мера массива позволяет контролировать выход за границу массива при ин­дексации его элементов. На рис. 2.20,6 в качестве примера представлен один из видов дескрипторов - дескриптор данных.

Дескриптор содержит специфический тег — ТДС, указывающий, что данное слово является дескриптором определенного вида; Ук — группа ука­зателей; А — адрес начала массива данных; L — длина массива; Х — индекс.

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

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