Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника.doc
Скачиваний:
37
Добавлен:
01.05.2014
Размер:
3.96 Mб
Скачать

Формы представления чисел

В аппаратно-реализованных цифровых устройствах (HW) числа хранятся в памяти в виде двоичных слов. Двоичное слово представляет собой последовательность 0 и 1 фиксированной длины. Аппаратные компоненты интерпретируют эту последовательность в зависимости от типа используемых данных.

Числовые данные могут быть представлены в форме с фиксированной точкой (fixed point) или с плавающей точкой (floating point). Числа с фиксированной точкой характеризуются длиной слова в битах; положением двоичной точки (binary point) и могут быть беззнаковыми или знаковыми. Позиция двоичной точки определяет число разрядов в целой и дробной частях машинного слова. Для представления знаковых чисел (отрицательных и положительных) старший разряд двоичного слова отводится под знак числа (sign bit). При представлении беззнаковых чисел с фиксированной точкой разряд знака отсутствует, и он становится значимым разрядом. Отрицательные числа обычно представляются в дополнительном коде.

Данные с фиксированной точкой могут быть следующих типов:

- Целыми (integers)

- Дробными (fractionals)

- Обобщёнными (generized)

Перечисленные типы данных отличаются положением двоичной точки. Занимаемая позиция двоичной точки – число условное и назначается по соглашению (по умолчанию). Позиция условной точки – средство, с помощью которого осуществляется масштабирование (scaling) числовых данных. Под масштабированием в данном случае понимается условное изменение диапазона представляемых чисел двоичным словом фиксированной длины. Масштабирование применимо только для обобщённого типа данных. Целый и дробный типы данных можно рассматривать как результаты произведённого определённым образом масштабирования. Внутри пакета fixed point block set место двоичной точки отслеживает программное обеспечение. При аппаратной реализации АЛУ процессор выполняет основные операции (сложение, вычитание над данными целого типа). Для данных целого типа двоичная точка всегда расположена правее младшего значимого разряда (LSB) двоичного слова. Пользователь имеет возможность определять беззнаковые и знаковые целые числа с помощью внутренних форматов (uint и sint)

По соглашению положение двоичной точки для беззнаковых дробных чисел определено перед старшим значимым разрядом (MSB), а для знаковых – после бита MSB. В этом случае MSB становится знаковым разрядом. Специфицируют этот тип внутренние форматы (ufrac, sfrac).

Обобщённый тип не имеет возможности определения позиции двоичной точки по умолчанию и требует явного указания её положения. Этот тип данных специфицируют ufix, sfix. Для более детального рассмотрения сказанного выше обратимся к рисунку 1. На рисунке представлено число с фиксированной точкой обобщённого типа.

MSB

˙

Двоичная точка

LSB

целая часть беззнакового числа

дробная часть

целая часть знакового числа

разряд

знака

Рис. 1

Если разряд знака 0 – число положительное, 1 – отрицательное.

- i-ый разряд числа,

- длина двоичного слова в битах,

- старший значимый разряд (MSB),

- младший значимый разряд (LSB),

- вес i-того разряда,

- вес старшего разряда,

- вес младшего разряда.

Двоичная точка занимает четвёртую позицию от младшего (LSB) разряда числа. При этом длина дробной части числа m=4.

Действительное число V в общем случае может быть представлено следующим образом:

(1), где

- точное значение действительного десятичного числа,

- наклон,

- квантованное (двоично-взвешенное) значение целого числа (stored integer),

- смещение (bias).

Наклон представляется следующим выражением:

, где

- наклон дробной части ,

- показатель степени (- число разрядов дробной части числа).

Совместное использование в выражении (1) и обеспечивает Slop/Bias масштабирование. При ,масштабирование осуществляется только за счёт наклона.обычно берётся равным 1. Тогда выражение (1) будет представлено в следующем виде:

(2)

Замечание. и - фиктивные константы, которые не могут влиять на результаты выполнения в АЛУ операций. Входные операнды и результаты всегда представляются в виде квантованной величины .

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

(3)

Квантованное значение для знаковых чисел представляется следующей формулой:

(4)

Так как целые числа не имеют дробной части (), то легко получить с учётом выражений (1) и (4) следующее выражение для :

(5)

Для знакового целого числа, получим:

(6)

Замечание. Истинное значение целого беззнакового числа представляется квантованным в пределах длины машинного слова без погрешности.

(1)

(4) – представление знакового целого числа.

(3) – представление беззнакового числа.

.

Представление действительного числа в форме ufractional:

.

˙

Максимальное значение для дробного беззнакового числа – число, отличающееся от 1 на вес младшего разряда.

Число разрядов в дробной части числа определяет resolution (разрешающая способность). Разрешающая способность – наименьшее неравное нулю число, которое определяется значением .

Замечание. Для целых чисел разрешающая способность равна 1.

Другой не менее важной характеристикой чисел с фиксированной точкой является диапазон (range). Диапазон определяется минимальным и максимальным значениями.

Для знаковых чисел обобщённого типа диапазон определяется выражением:

(7)

Для определения диапазона чисел целого типа необходимо принять и. А для дробного -и.

Выражение (7) для беззнаковых чисел обобщённого типа определяется формулой:

(8)

Результаты вычисления диапазонов по формулам (7)и (8) для всех типов данных представлены в таблице 1.

Таблица 1

тип

внутренний формат

минимальное

значение

максимальное значение

разрешение

целый

uint()

0

1

sint()

1

дробный

ufrac()

0

sfrac()

-1

обобщённый

ufix()

0

sfix()