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

Лекция 5 Представление информации в эвм

  1. Машинные элементы информации

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

В общем случае для кодирования дискретной величины, принимающей N различных значений, требуется n-разрядное слово а1а2 … аn, n=log2N, (2n=N). Каждому двоичному разряду ai двоичного кода a1a2 … an соответствует единица информации, называемая битом. Бит - это двоичный разряд (двоичная цифра) в двоичном коде. Двоичный код длиной 8 разрядов (n=8) называется байтом (В - обозначение байта). Из байтов обычно строятся более крупные единицы информации - слова. В ЭВМ различных типов длина слов различна: n=16(24,32,…). Более крупные единицы информации - двойные слова (например, в IBM PC двойные слова состоят из 4 байтов), учетверенные слова (в IBM PC учетверенные слова состоят из 8 байтов).

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

Кроме машинных элементов фиксированной длины в ЭВМ используются также машинные переменной длины – поля (строки) переменной длины (от одного элемента и больше) – строка байтов, строка слов и др. Строка байтов как машинный элемент может использоваться для представления различных типов данных: строк текста, двоично-десятичных чисел и т.п.

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

2 Представление данных в ЭВМ

В ЭВМ на машинном уровне, т.е. в АЛУ, обеспечивается обработка данных обычно только трех типов: чисел, символов, логических значений. Адреса (номера ячеек памяти) представляются целыми числами. Данные других типов (т.е. имеющие более сложную структуру) на уровне аппаратуры не обрабатываются. Они обрабатываются на программном уровне путем выполнения команд, возбуждающих в АЛУ обработку данных указанных трех типов.

2.8.1 Представление чисел

Число А в позиционной системе счисления можно представить:

где ak{0,1,….q-1}, q – основание системы счисления, обычно принимает значения q=2(8,10,16), a0 - знак числа, ak - цифры числа, qn-k - вес цифры в зависимости от ее позиции, n - количество цифр в целой части числа, m - общее количество цифр.

Пример: А=217,37 – десятичное число, q=10, n=3, m=5.

Множество чисел можно разделить на два подмножества - целые и вещественные (действительные). Основной формой представления чисел в ЭВМ являются двоичные числа.

Ц

 1 цифры k

елые двоичные числа в ЭВМ представлены в следующем формате:

Веса: 2k 2k-1 … 21 20.

Диапазон представления: (2k-1). Основная особенность - переполнение разрядной сетки при выполнении операций сложения, вычитания, умножения и деления, если результат операции С удовлетворяет условию |С|2k. Как обнаружить? Например, при сложении переполнение возможно, если знаки слагаемых одинаковы. В результате переполнения знак суммы изменяется и не совпадает со знаком слагаемых. Технически в ЭВМ переполнение обнаруживается путем анализа битов переноса в знаковый разряд сумматора p1 и из знакового разряда p0. Условие переполнения: p0  p1.

Пример: +5+(+4)= -1, (k=3).

p0

p1

1-переполнение

0

0

0

0

1

1

1

0

1

1

1

0

Сигнал переполнения формируется схемой сложения  по mod 2.

Для представления действительных чисел можно использовать два способа: правильная дробь или плавающая запятая (формат чисел с плавающей запятой).

Двоичная правильная дробь имеет формат:

20 2-1 2-k

Диапазон представления: (1-2-k). Наименьшее число, отличное от нуля, - 2-k=0,0…01. Числа, меньшие чем 2-k, рассматриваются как машинный ноль. Таким образом, если целые числа в ЭВМ представлены точно (без погрешности), то действительные числа с дискретностью =2-k. То есть разрядность числа k определяет точность представления действительных чисел в k-разрядной сетке. =2-k - это дискретность, с которой идет «прореживание» множества действительных чисел в k-разрядной сетке.

-1 +1

Пример: k=15, =2-150,310-4, т.е. точность представления приблизительно три десятичных знака.

Особенности операций над правильными дробями: переполнение разрядной сетки при выполнении операций сложения, вычитания и деления. Условие переполнения |С|1=20, переполнение разрядной сетки при выполнении операции умножения не происходит. Общая для двух форматов с фиксированной запятой – и для целых чисел и для правильной дроби - особенность: представление отрицательных чисел не в прямом коде (как для положительных чисел), а в дополнительном (или обратном) коде.

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

Пример: +4+(+3)=+7(0.111), -4+(-3)=1.100+1.011=0.111(+7)? При сложении чисел с отрицательными знаками сумматор дает неправильный результат. Для того, чтобы знаки чисел стало возможным обрабатывать так же, как цифры числа, и вводится дополнительный код. Дополнительный код определяется выражением:

где А - цифровая часть числа (без знака).

Примеры: -4 = 1.100пр = 1.100д.к., -3 = 1.011пр = 1.101д.к.

Сложение: 1.100+1.101=1.001д.к.=1.111пр= -7.

Кроме того, дополнительный код позволяет использовать сумматор и для вычитания чисел. При этом вычитание сводится к сложению с дополнительным кодом вычитаемого: С=А-В=А+В+1. Здесь В+1 – дополнительный код В – инверсия В плюс единица.

Примеры: 1) 4-3=0.100-0.011=0.100+1.101=0.001= +1.

2) –4-(-3)=1.100-1.101=1.100+0.011=1.111д.к.= -1.

Двоичные числа с плавающей запятой - универсальный формат, который можно использовать для представления любых чисел – целых, правильных дробей и неправильных дробей в широком диапазоне. Для представления двоичного числа с плавающей запятой используется формула: А=МdP, (2.2)

где d=2h, (h=1или 4) - основание системы счисления с плавающей запятой, M – мантисса (формат представления - правильная дробь), P - порядок числа (формат представления - целое число). Формат числа с плавающей запятой:

Здесь: М – мантисса числа, Р - порядок числа, m0 – знак числа, p0 – знак порядка. Диапазон представления (если мантисса нормализована):

d-1 d-Pmax |A|  (1-2-n)d+Pmax (2.3)

Здесь: Pmax = (2k-1) – максимальный порядок числа.

Диапазон представления на числовой оси:

Двоично-десятичные числа (ВСD) - можно использовать для представления десятичных чисел. Суть: каждой десятичной цифре 0,1, …, 9 ставится в соответствие двоичный код 0000, …, 1001.

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

Особенности ВСD-чисел: операции над ними выполнятся обычно при помощи двоичного сумматора, поэтому их результат требует коррекции. Коррекция осуществляется путем сложения каждой цифры результата с цифрой 6. Для этого в систему команд ЭВМ вводятся специальные команды коррекции. Другой вариант решения этой проблемы – использование корректирующих кодов, например, с избытком три, для представления ВСD-чисел.

2.8.2 Представление текстовой информации и логических значений

Для представления символов текста используется формат данных типа строка байтов. В этом формате каждому символу ставится в соответствие байт строки байтов. В ней первый символ в виде ASCII-кода располагается в первом (младшем) байте, второй символ - во втором байте, адрес которого на 1 больше, и т.д.

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

3. Форматы команд и машинные операции

Под форматом команды понимается управляющее слово, разделенное на поля фиксированного назначения и фиксированной длины (разрядности).

Команда, состоящая из двух полей, имеет вид:

Здесь: k=const, m=const, например, k=8, m=16. Поле КО в виде двоичного кода задает тип операции (например, сложение) и тип данных, например, сложение целых чисел (КО – сложение целых чисел), или сложение с плавающей запятой (КО – сложение с плавающей запятой), или сложение двоично-десятичных чисел (КО – сложение чисел ВСD). Все они кодируются тремя разными кодами. В адресной части команды – в полях А - указываются адреса операндов.

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

Схема выполнения трехадресной команды: [А3]:=[А1]*[А2]. Содержимое ячейки с адресом А1 - [А1] (первый операнд) и содержимое ячейки с адресом А2 - [А2] (второй операнд), извлеченные из памяти, вступают в операцию *, заданную полем КО, и результат операции засылается (записывается) в ячейку памяти с адресом А3.

В общем случае в зависимости от количества адресных полей принято различать команды: 0-адресные (безадресные), одноадресные, двухадресные, трехадресные.

Кроме того, в ВТ применяют команды различных форматов в зависимости от уровней памяти, т.е. в зависимости от того, адрес какого типа указан в адресной части команды - адрес типа R, в котором указывается номер РОНа, или адрес типа А – номер ячейки ОП. Отсюда различные типы форматов: RR – команды типа регистр-регистр, RM – команды типа регистр-память, MM - команды типа память-память.

Примеры двухадресных команд типов RR, RM, MM:

k<<m.Схема выполнения:[R1]:=[R1]*[R2]

KO 1 R1 k 1 A2 m

Схема:[R1]:=[R1]*[A2]

[A1]:=[A1]*[A2]

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

Множество (набор) команд, которые используются в ЭВМ, принято называть системой машинных команд: К={К1, К2, …,КN}. Система команд К является основой языка ассемблер. Особенности системы машинных команд:

устойчивость (стабильность) во времени. Нужна, чтобы обеспечить преемственность ПО. Изменение системы команд неизбежно ведет к необходимости разработки нового ПО, а это процесс трудоемкий;

особенность - ЭВМ различных типов имеют различные системы команд, имеют различные машинные языки и, следовательно, ассемблеры;

особенность - количество машинных команд в наборе может быть небольшим (RISC-машины, с сокращенным набором машинных команд - в пределах сотни) и большим (CISC-машины, могут содержать несколько сотен команд).

С системой команд неразрывно связано другое понятие - система машинных операций F={f1, f2, … , fG}.

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

Машинная операция - это действие, которое инициируется (возбуждается) командой и реализуется (интерпретируется) аппаратурой ЭВМ. Машинная команда – это указание на действие. В ЭВМ на аппаратном уровне могут выполняться операции над различными типами данных: над числами (целыми, с плавающей запятой, двоично-десятичными), над символами, над логическими значениями (логические операции). Отсюда многообразие операций F. В общем случае все машинные операции F принято разделять на классы: арифметико-логические (АЛО); посылочные операции – обеспечивают пересылку данных; операции управления; операции ввода/вывода. В свою очередь, операции принято разделять на системные (привилегированные) и пользовательские. На уровне пользователя процессору запрещено выполнять привилегированные операции.

АЛО выполняются в специальном устройстве - АЛУ. Посылочные операции, операции управления – условные (УП) и безусловные переходы (БП) - реализуются центральным устройством управления (ЦУУ) центрального процессора. Операции ввода/вывода реализуются различного рода ПУ. Системные операции предназначены для управления вычислительным процессом и распределением ресурсов ЭВМ и могут использоваться только программами ОС. Привилегированные операции пользователь использовать не может.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]