Приведём рассмотренную ранее структурную схему процессора:
Рисунок 71. Структурнач схема процессора
Обозначения:
АЛУ – арифметико-логическое устройство (соответствует ОБ)
УУ – управляющее устройство (соответствует УБ)
РП – регистровая память – сверхоперативное запоминающее устройство.
ИФП – интерфейс процессора (с его помощью осуществляется обмен данными процессора с внешней средой, которая условно обозначена в виде системной шины - СШ)
АЛУ – устройство выполняющие арифметические и логические операции, как программно, так и аппаратно.
В нашем курсе нам наиболее интересно – аппаратное выполнение.
АЛУ может быть создано как единое устройство – сложное универсальное АЛУ, так и как совокупность нескольких независимых блоков. Последний вариант наиболее распространён.
Рассмотрим структуру АЛУ в этом случае.
Рисунок 72. Структурная схема АЛУ
Обозначения:
Дв∑ - двоичный сумматор;
Дес∑ - десятичный сумматор;
Умн – умножитель;
СОЛО – схема однобайтовых логических операций.
Каждый из блоков задействует РП и управляет одним из УС -
Двоичный сумматор
Требования предъявляемые при кодировании операндов в вычислительных процессах:
Арифметические операции должны сводится к логическим;
Алгебраические операции должны сводится к алгебраическим (разница между ними в знаковом разряде);
Знаковые разряды при алгебраических операциях должны обрабатываться так же, как цифровые;
Сигнал переполнения разрядной сетки должен формироваться аппаратно и весьма просто.
Рассмотрим два одноразрядных двоичных числа: А и В.
А В S P
0 0 0 0
0 1 1 0
0 0 1 0
0 1 0 1
Таблица 2
S – сумма – аналог сложению по модулю два -
Р – сигнал переноса – аналог конъюнкции -
Операции, рассмотренные выше, могут быть реализованы на двоичном полусумматоре.
Функциональная схема:
Рисунок 73. Функциональное обозначение полусумматора
Отметим, что представление числа в ЭВМ зависит от формата и формы.
Существует два основных формата:
Представление двоичного числа в виде числа с фиксированной запятой (1, 43567, 78 и т.д.);
Представление двоичного числа в виде числа с плавающей запятой (0.123, 123 и т.д.).
Две формы представления чисел:
Без знаковая запись;
Знаковая запись.
Беззнаковое представление ЧФЗ.
Рассмотрим представление ЧФЗ типа правильная дробь:
Рисунок 77. Формат беззнакового ЧФЗ
Рассмотрим связь индекса числа с весом:
Nmax =1-000…01
n
Nmin = = 00000…01
n
При этом:
Диапазон в формате ЧФЗ.
Рисунок 78. Диапазон представления ЧФЗ
Разрешены не все значения, т.к. система дискретна, а значения с шагом
∆чфз – абсолютная ошибка
∆чфз = =
δ - относительная ошибка
δ =
δmin = = =
δmax = = / = 0.5
δ(0.5) = =
Из этого следует, что рекомендуемый диапазон представления ЧФЗ типа правильная дробь (в этом случае можно говорить о нормализованной правильной дроби):
0,5 N < 1
Рисунок 79. Рекомендуемый диапазон представления ЧФЗ типа «правильная дробь»
Рассмотрим представление ЧФЗ типа целое число:
Рассмотрим связь индекса числа с весом:
Nmin = 1
Nmax = -1
Диапазон в формате ЧФЗ:
Рисунок 80. Диапазон представления ЧФЗ типа «целое число»
Разрешены не все значения, т.к. система дискретна, а значения с шагом «единица»
∆чфз = 0,5
δmin = = = (единицей можно пренебречь в случае если «n»
достаточно велико)
δmax = = 0.5/1 = 0.5
δ( ) = =
Из этого следует, что рекомендуемый диапазон представления ЧФЗ типа целое число (т.е. условия нормализации):
N < Nmax
Особые ситуации, возникающие при представлении ЧФЗ:
0 N < Nmin – «машинный ноль»
Переполнение разрядной сетки.
Признаком переполнения является перенос из левого старшего разряда.
Знаковое представление ЧФЗ
signN
n
Соответственно диапазон представления числа уменьшается на единицу (один разряд идёт на представление знака).
В этом случае зону «машинного нуля» можно представить:
-Nmin < Z < Nmin
При переполнении разрядной сетки, как уже было сказано раньше, перенос идёт в старший левый разряд, т.е. знаковый. Следовательно, в этом случае возможна смена знака.
ЧПЗ типа правильная дробь.
Nmax= 1 -
Nmin = -Nmax = -1
∆чфз = =
δmin = =
δmax = = /( -1) -
δ(0.5) = =
Рисунок 81. диапазон представления ЧФЗ со знаком
ЧПЗ типа целое число.
Nmax = - 1
Nmin = - ( - 1)
∆чфз = 0,5
δmin = =
δmax = = -
δ( ) = =
Подводя итог можно отметить один из самых главных недостатков представлен6ия числа в формате ЧФЗ: слишком длинная запись
Представление ЧПЗ
В этом формате число выглядит следующим образом:
N = M * (стандартный формат)
M – мантисса – представляет собой ЧФЗ типа правильная дробь
Р – порядок – представляет собой ЧФЗ типа целое число
Модель представления числа в формате ЧПЗ
signM
signP
L = n + m +2
Рисунок 82. Формат представления ЧПЗ
Nmax = Nmax * =
Nmin = Nнормализ.min * = 0.5 * =
Из этого следует, что диапазон представления ЧПЗ:
N < (значения отличаются лишь разрядной сеткой порядка)
∆чфз = =
δmin = = /
δmax = = =
Кроме такого представления ЧПЗ существует и другое:
N = M *
На практике используется основание q со следующими значениями:
q = 2, 4, 8, …
Как и при работе с ЧФЗ, при работе с ЧПЗ возможны следующие особые ситуации:
Появление «машинного нуля»
Переполнение5 разрядной сетки мантиссы и порядка
Кодирование
Кодирование операндов со знаком в вычислительном процессе можно осуществить в трёх типах кодов:
Прямой
Обратный
Дополнительный
Прямой код - ПК
Является стандартной формой числа при её хранении и пересылке. Данный код даёт возможность оценить операнд без его вычисления.
Код не применим для выполнения операций:
ПК не удовлетворяет требованию о том, что знаковые разряды при алгебраических операциях должны обрабатываться так же, как цифровые.
Поэтому ПК более применим для без знаковых операций, а именно для:
Упорядочивания элементов множества
Хранения и передачи операндов
Вычисления адреса
Обратный код
Свойства:
- обратный код от обратного кода равен прямому коду
Переход возможен при использовании операции «сложение по модулю два».
Рисунок 83. Сумматор по модулю 2
Таблица 4
А
В
А В
Рисунок 84. Схема преобразования ПК в ОК
Основа схемы:
Рисунок 85. Многоразрядный сумматор по модулю 2
Данную схему можно представить также следующим образом:
Рисунок 86. Функциональная схема преобразователя ПК в ОК
Рисунок 87. Структурное обозначение преобразователя ПК в ОК
Разберём несколько примеров на ОК:
Пример 1.
Пример 2.
На Примере 2 видно, что если при сложении обратных кодов происходит перенос из старшего знакового разряда, то происходит добавление единицы к младшему разряду, что усложняет и удлиняет запись.
Для того чтобы рассмотреть ещё одно свойство ОК, следует вспомнить о требованиях Рутисхаузера:
Требование единственности: любое число должно отображаться единственным образом;
Требование упорядоченности: большей десятичной цифре соответствует комбинация с большим весом;
Четность: четным десятичным цифрам соответствуют четные двоичные комбинации. Признаком четности двоичной комбинации является значение правого младшего разряда. Если правый разряд равен «нулю» - комбинация является четной, правый разряд, равный «единице», соответствует нечётной комбинации;
Требование весомозначимости: вес кодовой комбинации соответствует значению десятичной цифры;
Требование дополнительности: при сложении двоичных и десятичных цифр перенос, возникающий при сложении десятичных цифр, должен иметь вес при сложении соответствующей им кодовой комбитнации.
ОК:
Т.е. в ОК требование единственности не выполняется.
Это утверждение справедливо и для ПК:
Подводя итог сформулируем недостатки ОК:
Имеет две формы записи «машинного нуля»
При сложении операндов в ОК в случае переноса из знакового разряда происходит добавление единицы, что увеличивает время сложения.
Дополнительный код
ДК отрицательного числа можно просчитать быстрее если пользоваться следующим алгоритмом: просматривается число с право на лево, нули остаются без изменения, так же как и первая встречающаяся единица, остальные же инвертируются.
Свойства:
- дополнительный код от дополнительного кода равен прямому коду
На вход сумматора подаются два двоичных числа: А и В.
N – ый сумматор обрабатывает знаковые разряды, остальные (n-1) – числовые.
Сложение идёт на ОДС. Возникающий перенос в младших разрядах учитывается в старших.
Схема приведена для А и В, заданных в дополнительном коде.
Приведённую выше схему можно представить в виде:
Рисунок 91. Структурное обозначение параллельного сумматора
Данный сумматор представляет собой арифметико-логическое устройство.
Данная комбинационная схема не обладает функцией памяти, поэтому на выходе сумматора зачастую помещают РОН, в котором и запоминается результат сложения.
Рисунок 92. Сумматор с памятью
В схеме выполняется операция А +В = S.
Для выполнения операции (А – В) следует учесть (А – В) = (А + (-В)), т.е. для осуществления вычитания у вычитаемого инвертируется знак.
Встаёт вопрос о возможности сложения ряда чисел, т. как возможно осуществить операцию : А1 +А2 + А3 + … +Аm.
Эту операцию возможно осуществить с помощью накапливающего сумматора.
Для его реализации требуется запоминание более чем одного байта информации, т.е. необходима последовательность триггеров – регистр, состоящий из “n” триггеров типа D для запоминания “n” разрядного слова.
Регистр D – типа.
Рисунок 93. Триггер задержки
Рисунок 94. N – разрядный регистр
Рисунок 95. Накапливающий сумматор
Рг.Акк. – регистр – аккумулятор – накапливающий элемент
Работа Рг.Акк. происходит следующим образом:
Регистр обнуляется
При подачи А1 в память регистра заносится Рг.Акк. = А1
При подачи А2 регистр переопределяет своё значение Рг.Акк = Рг.Акк. + А2 и т.д.
При вводе сигнала окончания счётчик подсчитывает число тактов.
Рисунок 96. Счетчик тактов
Через N слагаемых СТ =0 и соответственно Z принимает значение Z = 0, что служит сигналом окончания суммирования.
Универсальный сумматор
Рисунок 97. Универсальный сумматор
МПР (2) – мультиплексор с организацией (2 1) введён, чтобы накапливающий сумматор функционировал, как сумматор с памятью.
Рисунок 98. Структурное обозначение универсального сумматора
Рисунок 99. Четырехразрядный сумматор
Десятичный сумматор
Обработка десятичных чисел – одна из самых распространенных операций. Десятичный сумматор выполняет операции над десятичными числами, в том числе и со знаком.
Для записи одного десятичного числа требуется 4 разряда.
Требования Рутисхаузера:
1. Требование единственности.
2. Требование четности (четное десятичное число соответствует четному двоичному числу).
3. Требование упорядоченности (десятичной цифре с большим значением соответствует двоичная комбинация с большим весом).
4. Требование весомозначимости (вес двоичного числа равен весу цифры).
5. Требование дополнительности (перенос при сложении десятичных цифр проявляется при сложении их двоичных эквивалентов).
Код «8-4-2-1» не удовлетворяет требованию дополнительности, поэтому он используется только для представления. А для арифметических операций используется код «8-4-2-1 +3» - это самодополняющийся код. Этот код образуется при добавлении тройки к любой цифре в «8-4-2-1».
Самодополняющийся код выполняет требование дополнительности, но у него нарушаются требования четности и весомозначимости.
{Ak} – Ak в самодополняющемся коде (СДК).
Преобразование в СДК:
{Ak}=Ak+3
SM – четырех разрядный двоичный сумматор.
Обратное преобразование:
- добавляем 13, но перенос не учитываем.
(дополняем число до 16)
Пример: Ak=9, {Ak}=12
12+13-16=9
Рисунок 100. Прямой и обратный преобразователи СДК в ПК
Желательно чтобы:
1) Ak=5, Bk=6; Ak+Bk=11
{Ak}=8 (1000),
{Bk}=9 (1001);
1000 - 8
+1001 - 9
10001 - 17, а в СДК должно быть 14 (11+3).
Если при сложении появился перенос, то нужно к десятичному числу прибавить 3, чтобы получить .
2) Ak=3, Bk=4; Ak+Bk=7
{Ak}=6 (0110),
{Bk}=7 (0111);
0110 - 6
+0111 - 7
1101 – 13
При отсутствии переноса, если из результата вычесть 3, то получим .
Такая коррекция носит название арифметической коррекции. Она обязательно присутствует при сложении десятичных чисел.
Для построения десятичного сумматора используют два четырех разрядных сумматора:
2 четырехразрядных сумматора SM1 и SM2, 2 преобразователя прямого кода в СДК на входе, обратный преобразователь на выходе.
Работа:
В прямом коде подаются десятичные цифры – на выходе прямой код суммы. В SM1 складываются СДК Ak и Bk, из младшего десятичного разряда возможен перенос P4. На выходе SM1 – 5 полей: 4 – представление десятичной цифры; 1 – наличие или отсутствие переноса при сложении СДК.
SM2 осуществляет арифметическую коррекцию: есть перенос +3, нет – -3(вычесть 3 = прибавить 13).
Если имеют место двухразрядные числа:
A2A1=A
+ B2B1=B
P3S2S1=S
Рисунок 102. Двухразрядный десятичный сумматор
Умножитель
Умножение двоичных чисел:
A={a4,a3,a2,a1}, B={b3,b2,b1};
A*B=
a4 a3 a2 a1
b3 b2 b1
a4b1 a3b1 a2b1 a1b1
a4b2 a3b2 a2b2 a1b2
a4b3 a3b3 a2b3 a1b3
M7 M6 M5 M4 M3 M2 M1
M7 – перенос возникающий при сложении.
Состав умножителя:
12 коньнкторов
2 четырехразрядных сумматора.
Рисунок 103. Функциональная схема умножителя
Если b будет 4-х разрядным, то добавиться сумматор SM3 и еще 4 коньюнктора. Если увеличить разрядность a, то увеличиться число сумматоров «снизу». Приведенная схема – есть умножитель модулей 4-х и 3-х разрядных чисел. Это комбинационная схема, т.е. обладающая максимальным быстродействием, но весьма сложная, по сравнению с программным умножением.
Если умножаемые числа со знаком, то к схеме добавляется сумматор по модулю два:
Рисунок 104. Определитель знака произведения
Вычисление логических условий
Вычисление логических условий – это операция отношения между операндами, а в простых случаях между операндами и константами.
Логическое отношение – >,<, ,=.
A сравнивается с k: где k – константа,
A={a1,a2,a3,a4}
Это вычисление осуществляется с помощью комбинационных схем.
2) A B, A B- реализуются на комбинационном сумматоре.
0.A – положительное число
1.В – отрицательное число, переводим его в дополнительный код.
Рисунок 108. СОЛО на комбинационном сумматоре
Если А>В sign(A-B)=0
Если А<В sign(A-B)=1
Q=1 A=B
Плюсы: решение на арифметическом блоке.
Минусы: требуется дополнительная программа для введения знака разряда и перевода В в ДК.
Схема однобайтных логических операций (СОЛО)
Рисунок 109. Функциональное обозначение СОЛО
Идем от старших разрядов к младшим, если встречается один разряд больше другого – ответ автоматически.
Рисунок 110. Логическая схема СОЛО
R=0 A=B;
A<B.
R=1 A>B.
Плюсы: схема СОЛО проще и требует меньше времени, чтобы ответить на вопрос.
В процессор может входить блок контроля и диагностики, который отвечает за правильность протекания вычислительных процессов в процессоре.
Блок контроля и диагностики (БКД)
Блок отвечает на вопрос: существуют ли в передаваемых операндах ошибки.
Ошибка – когда из-за помехи единицу принимают за ноль, или ноль за единицу.
Для этой цели служат операционные элементы контроля.
Рисунок 111. Появление ошибки при передаче операндов
А={1101}
- число единиц в операнде нечетное.
Рисунок 112. Схема защиты операндов при параллельном ИФ
КР – контрольный разряд.
Если по линии квитанции передается 0 – ошибки нет; 1 – переспрос.
Диаграмма информационного слова, на пересечении информационные разряды:
Контрольный разряд внутри круга равен 0, если число единиц в круге четное.
Обычно КР ставятся на места в информационном слове, номера которых равны степени двойки.
КР на первой позиции группируется со всеми разрядами номер которых нечетный: 3,5,7 и т.д.
2-й КР контролирует группу, у которой единица присутствует во втором разряде: 3,6,7 и т.д.
3-й КР контролирует группу, у которой единица присутствует в третьем разряде: 5,6,7 и т.д.
В БКД входят также пороговые схемы, мажоритарные элементы, детекторы чисел.
Пороговая схема
Рисунок 113. Структурное обозначение ПС
На входе пороговой схемы действует n-разрядная шина. Назначение пороговой схемы сформировать на своем выходе 0 или 1. f=1, когда не менее чем на k входах из n будут единицы.
ПС32: Таблица 6
a1
a2
a3
f
Рисунок 114. Логическая схема ПС32
Мажоритарные элементы
Мажоритарные элементы (МЭ) – это схема голосования, на выходе будет 1 когда проголосует половина +1 голос.
Это устройство используется как контролирующее.
Детектор чисел - срабатывает, когда ровно на К входах появляется “1”. Реализуется с помощью пороговых схем.