Метки: Кабели, Микропроцессоры, Техника, Электричество
Форматы чисел. Логическая и физическая память
Микропроцессоры оперируют данными, имеющими исключительно двоичное представление. Независимо от того, как изображает входные данные пользователь (десятичные числа, символы и др.), они аппаратно или программно преобразуются в цепочки двоичных чисел - единиц и нулей. При выводе данных осуществляется обратное преобразование двоичных чисел в удобную для пользователя форму.
Бит. Двоичная цифра, имеющая всего два значения 1 и 0, называется битом (Binary digiT). С помощью двух бит можно представить четыре значения кода 00, 01, 10, 11, с помощью трех бит - восемь и т.д. Группа из n бит позволяет представить 2n комбинаций.
Байт. Группа из восьми бит называется байтом (byte - слог) и содержит любую из 28 = 256 комбинаций. Байт является стандартной базовой единицей, из которой образуются все остальные единицы машинных данных. Биты в байте нумеруют справа налево, начиная с нуля. Трехбитная единица данных называется триадой, четырехбитная - тетрадой.
Единица данных, состоящая из 16 бит или двух байт, называется словом. Слово может содержать любую из 216 = 65536 комбинаций. Для краткой записи больших степеней числа два число 210 = 1024 обозначают "К" и читают как приставку "кило", или как букву "к". По аналогии с нумерацией бит байты в слове также нумеруют справа налево, начиная с нуля: байт 0 является младшим.
Следующая единица данных состоит из четырех байт и называется двойным словом. Число возможных комбинаций в двойном слове составляет 232, что близко к четырем миллиардам. Число 220 = 1048576 обозначают "М" и читают как приставку "мега", или как букву м,а число 230 = 1073741824 обозначают Г и читают как приставку "гига" или как букву "г". Эта последняя единица состоит из восьми байт и называется счетверенным словом.
Основная единица данных, которой оперирует микропроцессор, называется машинным словом. Почти во всех микропроцессорах длина машинного слова кратна байту. Длина слова является важнейшей характеристикой микропроцессора и в соответствии с ней МП подразделяют на 8-, 16- или 32-битные.
Логическая и физическая память
Программы и данные, к которым МП имеет непосредственный доступ, хранятся в основной (или оперативной) памяти. Различают логическую и физическую основную память. Логическая память (к ней обращается МП) организована в последовательность из N байт, образующих пространство логической памяти. Байты нумеруют от 0 до N-1, и порядковый номер байта называется его адресом (рис.6). Для обращения к любому байту нужно указать его адрес. Длина адреса m связана с числом N байт (емкостью памяти) соотношением:
N = 2m, m= log2 N.
Этот адрес называется логическим. В современных МП объем памяти постоянно растет, приходится увеличивать размеры адреса, они могут не вписываться в размер АЛУ. Поэтому в ряде МП увеличение емкости памяти достигается путем преобразования логических адресов в более длинные физические, по которым производится реальное обращение к памяти. Такое преобразование осуществляет устройство управления памятью (диспетчер памяти). Оно может находиться или снаружи МП, или в его составе.
Форматы целых двоичных чисел. Система вещественных двоичных чисел, применяемая в ручных расчетах, предполагается бесконечной и непрерывной, никаких ограничений на диапазон и точность не накладывается. Реализовать такую систему чисел в технических устройствах невозможно. В компьютерах размеры регистров и ячеек памяти фиксированы. Поэтому система машинных чисел оказывается конечной и дискретной. В любом компьютере имеются максимально представимое число Zмакс и минимально представимое число Zмин, между ними находится конечное множество допустимых чисел (рис.7). Если результат операции превышает Zмакс, возникает переполнение, и дальнейшее продолжение работы не имеет смысла. Если результат операции оказывается меньше Zмин, то большинство компьютеров возвращают его как нуль. Область чисел от ^мин до +Zмин, за исключением истинного нуля, называют машинным нулем.
В компьютерах используют исключительно позиционные системы счисления, в которых числовое значение цифры зависит от ее позиции в последовательности цифр. Например, в числе 616 одна и та же цифра 6 обозначает и шесть сотен, и шесть единиц. В компьютерах применяют двоичную и гексагональную (шестнадцатиричную) системы счисления. В гексагональной системе цифры от 0 до 9 обозначают как обычно, а цифры от 10 до 15 - прописными буквами латинского алфавита от A до F. После записи числа в гексагональной системе ставят букву h (например, 08DAh).
Формат с фиксированной точкой. На рис.8 показаны два формата целых двоичных чисел: рис.8,а - без знака, рис.8,б - со знаковым разрядом, которым является левый (старший) разряд. В этом формате можно представить только целые числа, и любая комбинация является допустимой. Беззнаковые числа при программировании используют только для тех числовых объектов, которые принципиально не могут быть отрицательными. Примерами таких объектов служат адреса ячеек памяти, номера строк исходной программы и др.
В формате со знаковым разрядом стандартное кодирование знака имеет вид S = 0 число положительное; S =1 число отрицательное. Имеется несколько способов кодирования знаковых чисел. Способ "знак - модуль" (прямой код) состоит в том, что все биты, кроме знакового, отображают модуль числа. Этот способ удобен тем, что в нем легко реализуется операция изменения знака числа. Его неудобства: представление нуля может быть двояким (0000 или 1000), при алгебраическом сложении чисел нужно анализировать знаки. Поэтому способ "знак - модуль" используют лишь иногда при вводе и выводе данных.
При способе "знак - значение" (дополнительный код) положительные числа представляют без всяких изменений, а для отрицательных чисел вводят обратное кодирование. Так, число -1 кодируется как 111...111, -2 - как 111...110 и т.д. Для получения дополнительного кода нужно записать модуль числа, затем вычесть единицу и инвертировать все биты этого числа.
Формат с плавающей точкой. Существует очень мало задач, для которых нужно применять только целые числа. В физике применяют запись величин как произведение некоторого числа на десять в целой степени. При этом число называется мантиссой, и оно может быть любым знаковым числом (целым и дробным). Показатель степени называют порядком. Для разделения мантиссы и порядка используют букву Е. Например, 1,2Е+2 означает 120. В компьютерах вместо десятичной используют двоичную систему при обозначении мантиссы и порядка, например, -0.000101Е+100. На рис.9 показан классический формат чисел с плавающей точкой. Он состоит из четырех полей: знак мантиссы Sм (он является знаком всего числа), n-битная мантисса, являющаяся правильной дробью, знак порядка Sп и р-битный порядок, который является целым числом.
Кроме классического существует ряд других форматов (формат ЕС ЭВМ, формат СМ ЭВМ и др.). Наличие нескольких форматов создает неудобства при переходе от одного компьютера к другому. Поэтому был введен стандарт IEEE-754, которым вводятся четыре формата чисел с плавающей точкой. Базовый одинарный формат содержит знаковый бит S, 8-битный смещенный порядок Е и 23-битную дробь F. Диапазон представимых чисел базового одинарного формата составляет ±1038, а точность - 6-7 десятичных разрядов. Базовый двойной формат (рис.9,б) содержит знаковый бит S, 11-битный смещенный порядок Е и 52-битную дробь F. Расширенный одинарный формат имеет четыре поля: знаковый бит S, смещенный порядок Е (диапазон зависит от реализации), один явный или скрытый бит F0 целой части мантиссы и дробь F длиной не менее 31 бит. Расширенный двойной формат аналогичен предыдущему, но диапазон порядка должен составлять не менее 14 бит, а дробь F должна иметь минимум 63 бит.
Все реализации, удовлетворяющие рассматриваемому стандарту, должны как минимум, поддерживать базовый одинарный стандарт.