Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Глава.doc
Скачиваний:
49
Добавлен:
31.05.2015
Размер:
2.8 Mб
Скачать

1.5. Основные типы данных

Основными типами данных в компьютерах являются байты, слова, двойные слова и квадрослова (учетверенные слова). Каждый из представленных типов данных может начинаться с любого адреса: это означает, что слово не обязано начинаться с четного адреса; двойное слово - с адреса, кратного 4, и т.д.

На рис. 15 приведены 4 формата данных со знаком с фиксированной точкой. Байт (биты 0÷6 – значение, бит 7 – знак), двойное слово (биты 0÷30 – значение, бит 31 – знак) и так далее.

Рис. 15. Данные со знаком

На рис. 16 приведены 3 формата данных без знака с фиксированной точкой.

Рис. 16. Данные без знака

Формат данных с плавающей точкой включает три поля: знака, мантиссы и порядка (рис.17). Поле мантиссы содержит значащие биты числа, а поле порядка содержит степень 2 и определяет масштабирующий множитель для мантиссы.

Для хранения двоично-десятичных данных (BCD) используются 3 формата (рис.18): неупакованное BCD – одна цифра (биты 0÷3 – цифра, остальные - игнорируются); упакованное BCD – две цифры (по 4 бита на цифру); 80-разрядное упакованное BCD в блоке FPU (биты 0÷71 – цифры, остальное игнорируется).

Строка представляет собой непрерывную последовательность бит, байт, слов или двойных слов (рис. 19).

Строка бит может быть длиной до 1 Гбита, а длина остальных строк может составлять от 1 байта до 4 Гбайтов.

Рис. 19. Данные типа строка.

При хранении символьных данных поддерживаются строки символов в коде ASCII и арифметические операции (сложение, умножение) над ними. На каждый символ ASCII отводится по восемь бит.

Данные типа указатель содержат величину, которая определяет адрес фрагмента данных. Поддерживаются два типа указателей: длинный указатель (дальний) – смещение (32 разряда) + селектор (16 разрядов) и короткий указатель (ближний) – смещение (32 разряда).

Дальний указатель применяется в том случае, когда программа передает управление в другой сегмент памяти. Такой указатель с помощь селектора определяет новый сегмент и 32-битное смещение внутри этого сегмента. Ближний указатель – это 32-битное смещение, то есть расстояние в байтах от базы того сегмента, в котором находится нужный операнд.

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

Рис. 20. Структура описания данных:

а - с теговой организацией памяти; б - дескриптор данных

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

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

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

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

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

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

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

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

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

Рис. 21. Описание двумерного массива данных древовидной структурой дескрипторов: ТДс и ТДн – теги дескрипторов и данных.

36