русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Арифметико-логическое устройство


Дата добавления: 2014-06-19; просмотров: 2203; Нарушение авторских прав


 

Приведём рассмотренную ранее структурную схему процессора:

Рисунок 71. Структурнач схема процессора

 

Обозначения:

АЛУ – арифметико-логическое устройство (соответствует ОБ)

УУ – управляющее устройство (соответствует УБ)

РП – регистровая память – сверхоперативное запоминающее устройство.

ИФП – интерфейс процессора (с его помощью осуществляется обмен данными процессора с внешней средой, которая условно обозначена в виде системной шины - СШ)

АЛУ – устройство выполняющие арифметические и логические операции, как программно, так и аппаратно.

В нашем курсе нам наиболее интересно – аппаратное выполнение.

АЛУ может быть создано как единое устройство – сложное универсальное АЛУ, так и как совокупность нескольких независимых блоков. Последний вариант наиболее распространён.

Рассмотрим структуру АЛУ в этом случае.

 

Рисунок 72. Структурная схема АЛУ

Обозначения:

Дв∑ - двоичный сумматор;

Дес∑ - десятичный сумматор;

Умн – умножитель;

СОЛО – схема однобайтовых логических операций.

Каждый из блоков задействует РП и управляет одним из УС -

 

Двоичный сумматор

 

Требования предъявляемые при кодировании операндов в вычислительных процессах:

  • Арифметические операции должны сводится к логическим;
  • Алгебраические операции должны сводится к алгебраическим (разница между ними в знаковом разряде);
  • Знаковые разряды при алгебраических операциях должны обрабатываться так же, как цифровые;
  • Сигнал переполнения разрядной сетки должен формироваться аппаратно и весьма просто.

Рассмотрим два одноразрядных двоичных числа: А и В.

А В S P

 

0 0 0 0

0 1 1 0

0 0 1 0

0 1 0 1

Таблица 2

 

S – сумма – аналог сложению по модулю два -

Р – сигнал переноса – аналог конъюнкции -

 

Операции, рассмотренные выше, могут быть реализованы на двоичном полусумматоре.



Функциональная схема:

Рисунок 73. Функциональное обозначение полусумматора

 

Структура полусумматора:

 

Рисунок 74. Логическая схема полусумматора

 

Рисунок 75. Функциональная схема одноразрядного двоичного сумматора:

 

 

 

Рисунок 76. Структурная схема одноразрядного двоичного сумматора ОДС

 

Таблица 3

 

 

Отметим, что представление числа в ЭВМ зависит от формата и формы.

Существует два основных формата:

  • Представление двоичного числа в виде числа с фиксированной запятой (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 видно, что если при сложении обратных кодов происходит перенос из старшего знакового разряда, то происходит добавление единицы к младшему разряду, что усложняет и удлиняет запись.

 

Для того чтобы рассмотреть ещё одно свойство ОК, следует вспомнить о требованиях Рутисхаузера:

  • Требование единственности: любое число должно отображаться единственным образом;
  • Требование упорядоченности: большей десятичной цифре соответствует комбинация с большим весом;
  • Четность: четным десятичным цифрам соответствуют четные двоичные комбинации. Признаком четности двоичной комбинации является значение правого младшего разряда. Если правый разряд равен «нулю» - комбинация является четной, правый разряд, равный «единице», соответствует нечётной комбинации;
  • Требование весомозначимости: вес кодовой комбинации соответствует значению десятичной цифры;
  • Требование дополнительности: при сложении двоичных и десятичных цифр перенос, возникающий при сложении десятичных цифр, должен иметь вес при сложении соответствующей им кодовой комбитнации.

 

ОК:

Т.е. в ОК требование единственности не выполняется.

 

Это утверждение справедливо и для ПК:

 

Подводя итог сформулируем недостатки ОК:

  • Имеет две формы записи «машинного нуля»
  • При сложении операндов в ОК в случае переноса из знакового разряда происходит добавление единицы, что увеличивает время сложения.

Дополнительный код

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

 

Свойства:

  • - дополнительный код от дополнительного кода равен прямому коду
  • ∑ДК = ДК∑ - сумма дополнительного кода равна дополнительному коду суммы

Рассмотрим переход от прямого кода к дополнительному.

Схема преобразования.

 

Рисунок 88. Функциональная схема преобразователя ПК в ДК

 

Рисунок 89. Структурное обозначение преобразователя ПК в ДК

 

Т.е. код нуля одинаков и для положительных и для отрицательных чисел. В ДК соблюдается требование единственности.

В отличие от ОК, если возник перенос из знакового разряда, в ДК этот перенос пренебрегается, т.е. не происходит удлинение процесса.

Рассмотрим несколько примеров на ДК:

Пример 1.

Пример 2.

 

 

Несомненным плюсом ОК и ДК является легкое обнаружение переполнения разрядной сетки, если мы работаем с числами со знаком.

Признаком переполнения в этом случае является: (n (n – 1)) = 1

В случае если (n (n – 1)) = 0, то перенос отсутствует.

 

Продолжим рассматривать реализацию основных арифметических операций с помощью операционных элементов.

Параллельный сумматор

 

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

Приведём комбинационную схему параллельного сумматора:

 

Рисунок 90. Параллельный сумматор

 

На вход сумматора подаются два двоичных числа: А и В.

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, то получим .

Такая коррекция носит название арифметической коррекции. Она обязательно присутствует при сложении десятичных чисел.

Для построения десятичного сумматора используют два четырех разрядных сумматора:

Sk

Рисунок 101. Функциональная схема одноразрядного десятичного сумматора

Состав:

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}

Это вычисление осуществляется с помощью комбинационных схем.

1)A>7 x1.

2)A 3 x2.

3)A=0 x3.

1) Если А больше 7 то, сигнал х1=1.

Решение: х14.

2)Если Аменьше или равно 3, то:

Рисунок 105. Схема вычисления нестрогого неравенства

3)Если А равно нулю, то:

Рисунок 106. Схема обнаружения нуля

Сравнение Аи В:

Вычисляются логические операции в каждом разряде

A={an,an-1,…,a1}

B={bn,bn-1,…,b1} Таблица 5

ai bi qi ri

1) A=B

 

qi=ai bi

ri=

B

Рисунок 107. Схема обнаружения равенства операндов

Q=1 A=B

Q=0 A B

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”. Реализуется с помощью пороговых схем.

 

Рисунок 115. Схема детектора чисел

 

Если ровно на К входах подан код 1, f = «1».



<== предыдущая лекция | следующая лекция ==>
Вычислительные системы | Устройства управления в процессоре


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.297 сек.