Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции от макса и жени.docx
Скачиваний:
22
Добавлен:
22.04.2019
Размер:
6.43 Mб
Скачать

§ 5.5 Блоки для логических операций

В составе процессора ЭВМ (в ALU) есть блоки, выполняющие до 16 логических операций. Общая структурная схема блоков приведена на рис. 5.11 а).

Пример построения схемы, реализующей 6 логических операций , приведенных на рис. 5.11 б), показан на рис. 5.11 в). Каждая из функций Fi ,выполняемая определенным логическим элементом: ИЛИ ,ИЛИ-НЕ,И и т.д. или их совокупностью.

Ко входам Xi и Yi подключаются соответствующие выходы (разряды) буферных регистров ALU ( о котором будет сказано ниже) RGA и RGB,а ко входам Vio ÷Vis- соответствующие выходы дешифратора команд ДС.

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

ТА(эл-т 4)-является триггером (разрядом) регистра сумматора ALU-RGSM (аккумулятора) а Т1(S)-триггер (разряд) входного регистра ALU-RGB.

Остальные элементы составляют логический блок. Блок выполняет 4 операции: конъюкции, дизъюкции , арифметического сложения, сложения по

mod2 и инверсии между разрядами. Отличительная особенность блока – все операции могут выполняться одновременно и поразрядно между ТА и Т1 , но результат записывается в один триггер (в нашем случае в ТА) поэтому одновременная подача управляющих сигналов недопустима.

Выбор операции осуществляется подачей «1» на соответствующий управляющий вход блока.

Например: реализовать операцию Ai Bi подачей на него «1».

Тогда: сигналы QА и i проходят на конъюнктор (9), а А и Qi – на элемент (8), с выходов элементов (8) и (9) результаты конъюнкции подаются на ИЛИ (13), на выходе которого получается результат:

QА · i + А · Qi = Ai Bi.

Этот результат при подаче «1» на вход элемента (16) пересылается в (14) и далее записывается через элемент (2) в Та (4), где и фиксируется.

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

Глава 6. Арифметико – логические операции эвм (alu). Основные характеристики alu.

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

Основные операции, выполняемые ALU:

  • Арифметические (все они сводятся к сложению), до 50% от всех выполненных операций.

  • Логические (до 16 операций – до 45% от всех выполнений).

  • Остальные 5% - операции управления.

Основные связи ALU в составе процессора показаны на рис 6.1.

ALU – основные части которого сумматор и комбинационная логическая схема (блок логических операций) имеет 2 группы входов (портов) Вх1 Вх2 для приема данных (операторов) и 2 группы выходов: Вых1 – выход результата операции, выполненной ALU (сумматором) или логическим блоком. Вых2 – выход осведомительной информации (признаков) результата операции: переполнение разрядной сетки, знак результата деления на «0» и т.д.

Эта информация используется для коррекции управляющих сигналов в блоке управления.

RG1 и RG2 – регистры (их иногда называют буферными) для приема операторов из памяти ЭВМ.

RG SM – регистр сумматора (его чаще называют аккумулятором) для приема из сумматора или блока логических операций результата операции и передачи его либо в RG1 (RG2) либо в память ЭВМ.

SM – сумматор.

6.1 Классификация ALU.

ALU классифицируются по нескольким признакам:

  1. По способу действия над операциями:

- последовательные, когда операнды представлены в последовательном коде и операции над ними выполняются разряд за разрядом.

- параллельные, когда операнды представлены в параллельном коде и операции выполняются над всеми разрядами одновременно.

  1. По способу представления чисел:

- ALU для чисел с фиксированной точкой.

- ALU для чисел с плавающей точкой.

- ALU для десятичных чисел.

  1. По характеру использованных блоков ALU:

  • Блочные, когда операции над числами с фиксированной и плавающей точкой, с десятичными числами и алфавитно-цифровыми полями выполняются в отдельных (специализированных) блоках. Обладают высоким быстродействием. Т.к. блоки могут работать параллельно.

  • Многофункциональные ALU, когда все операции выполняются одними и теми же блоками, которые коммутируются нужным образом.

ALU управляются сигналами, инициирующие выполнение определенных микроопераций. Последовательность таких сигналов определяется кодом операции и осведомительными сигналами из RGпр по результатам предыдущей операции.

Проектирование ALU в основном состоит в:

  • Выборе кодов для представления данных

  • Определении алгоритмов выполнения операций

  • Выборе структур операционных блоков и набора микроопераций, реализуемых ими

  • В объединении блоков в один многофункциональный узел – ALU.

6.2 Языки описания вычислительных устройств.

ЭВМ – одна из самых сложных технических систем, описание структуры и функционировании которой производится на различных уровнях ее детализации. Каждому уровню описания соответствуют определение средства.

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

Для формированного описания часто используют различные «языки описания», например, такие, как показаны на рис 6.2.

В нашем курсе рассматриваются в основном узлы системы, поэтому чаще всего используется язык микроопераций, который иногда называют регистровым или языком регистровых передач. Несколько примеров использования этого языка приведены на рис 6.3.

Пояснение: например слово –число Х15[0-n]: здесь Х15 – идентификатор – это произвольная последовательность букв и цифр, начинающаяся с буквы. [0-n] – разрядный указатель номеров разрядов.

Определения:

  1. Элементарная операция, выполняемая за один тактовый интервал – называется микрооперацией.

  2. В некоторые тактовые интервалы могут параллельно выполняться под действием управляющих сигналов несколько микроопераций. Совокупность таких операций называют микрокомандой.

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

Микрооперация – это преобразование над операндами: один или несколькими, может быть одноместной или многоместной, описывается микрооператором (рис 6.3. пункт 4) и сопровождается меткой.

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

Обычно даже простые операции выполняются за несколько тактов. Например, микрокоманда – принять адрес в RG – адреса выполняются за два такта:

  1. Уст.0 RGA: RGA:=0

  2. Пр.А2: RGA:=RGK[A2]

Здесь: Уст.0 – обозначение управляющего сигнала для обнуления RGA.

Пр А2 – сигнал приема (записи) адреса А2 из регистра команды RGK.

Микропрограмма может быть в виде графа, в котором вершины соответствуют микрокомандам.

6.3 ALU для сложения (вычитания) чисел с фиксированной точкой.

В ALU операция сложения сводится к арифметическому сложению чисел, представленных в прямом или дополнительном кодах. Обратный код применяется редко, поскольку имеет 2 представления нуля +0 и -0, что затрудняет анализ результатов операции. Алгоритм операции сложения определяется типом применяемых кодов.

Функциональная схема ALU сложения (вычитания) приведена на рис 6.4.

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

  • Сигнал обнуления регистра

  • Сигнал записи кода операнда из BDIO

  • Сигнал выдачи кода с прямых выходов регистра

  • Сигнал выдачи кода с инверсных выходов (при инвертировании кода)

Работа ALU.

Из оперативной памяти ЭВМ по шине BDIO поступают команды А и В, первое слагаемое (или уменьшаемое) в RGB, второе слагаемое в RG1. RG1 и RGA имеют прямую и инверсную связь для передачи кода операнда, прямую при сложении, инверсную при вычитании. Вычитание производится по формуле (А+¬В) где ¬В значение операнда В в обратном коде. К результату прибавляется +1. Результат суммирования (или вычитания) передается в RGSM и далее по шине BDIO в память.

При сложении двоичных кодов, включая и их знаковые разряды следует учитывать следующие правила:

  1. Если возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд, или возникает перенос в знаковый разряд при отсутствии переноса из него, то имеется переполнение разрядной сетки соответственно при отрицательных и положительных суммах.

  2. Если нет переносов из знакового разряда и в знаковый разряд суммы, или есть оба эти переноса, то переполнение разрядной сетки отсутствует и

  • При «0» в знаковом разряде суммы положительная

  • При «1» - отрицательная

На входы RGпр поступают:

  • Значения всех разрядов сумматора СМ[0] и CM[1÷n-1]

  • Перенос из знакового разряда Пн CM[0]

  • Перенос в знаковый разряд Пн CM[1]

В результате этого, после выполнения операции в спец. Комбинационной схеме (на рис 6.4 – отсут-т) формируются признаки по соответствующим соотношениям показанным на рис 6.5.

На рис 6.6 приведена временная диаграмма работы ALU при сложении (вычитании) чисел с фиксированной точкой.

Из диаграммы видно, что сложение выполнено за 5 тактов, а вычитание за 6 тактов с добавлением +1.

6.4 Методы умножения двоичных чисел.

В ЭВМ операция умножения сводится к операции сложения двух чисел и сдвигу разрядов. Могут применяться 4 основных метода умножения. Примеры умножения приведены на рис 6.7.

Выводы по методам умножения.

1 метод.

  1. После каждого сдвига множимого выполняется операция сложения.

  2. Операция умножения состоит из n-циклов (n-разрядность множителя)

  3. ALU при этом методе должно иметь:

  • Регистр множителя (n-1) разрядный

  • Сумматор и регистр сумматора 2(n-1) – разрядные.

Метод практически не применяется из-за большой разрядности регистров и сумматора.

2 метод.

  1. Выравнивание суммы частных произведений по старшим разрядам.

  2. Младшие разряды произведения по мере их формирования можно перемещать в освободившиеся разряды множителя, поскольку далее не используются, а старшие – записать в RGSM. И результат снимать с двух регистров. Метод часто применяется вследствие необходимости одинарной длины разрядности регистров буферных и сумматора.

3 метод.

  1. Сумматор и RGSM необходим 2(n-1) – разрядности.

  2. Последовательность действий в цикле определяется старшим разрядом множителя.

Метод применяется в некоторых ALU, так как позволяет без дополнительных цепей сдвига выполнять деление чисел, в то время как во 2м методе для деления необходимы цепи сдвига в регистре множимого (при делении – частного) и в сумматоре частичных произведений (разностей при делении).

4 метод.

  1. Необходимы двойные разрядности регистра сумматора и сумматора.

  2. При делении чисел требуются цепи сдвига в регистрах.

  3. Сумма частичных произведений неподвижна, поэтому можно совмещать во времени операции сдвига сложения.

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

6.5 ALU для умножения чисел с фиксированной точкой.

Применяется второй метод. Рис 6.8.

Алгоритм умножения

  1. Берутся модули от сомножителей.

  2. Исходное значение SM частичных произведений приравнивается к нулю.

  3. Если цифра множителя в разряде равна «1» то к сумме частичных произведений прибавляется множимое, если «0» - не прибавляется.

  4. Производится сдвиг суммы частичных произведений вправо на один разряд.

  5. Пункты 3 и 4 выполняются для всех разрядов множителя начиная с младшего разряда

  6. Произведению присваивается «+» если знаки сомножителей одинаковы и «-» в противном случае.

Работа ALU.

В RG1 принимается множимое, RGB – обнуляется, в сч. Циклов (на схеме не показан) заносится число разрядов множителя, в RGB заносится множитель. Далее идет процесс умножения: в зависимости от значения младшего разряда множителя 0 или 1 к частному произведению прибавляется 0 или множимое соответственно.

Полученная сумма в RGSM со сдвигом на разряд вправо передается в RGB. Одновременно множитель сдвигается на разряд вправо путем косой передачи из RG2 в RG2’ и возврата в RG2.

Старшие разряды RG2’ при этом освобождаются и в них заносятся младшие разряды получаемого произведения.

Содержимое счетчика циклов с каждым перемножением уменьшается на 1 и при достижении в нем «0» процесс перемножения прекращается. В результате RGSM и RG2’ будут храниться соответственно старшие и младшие разряды произведения.

Особенностью умножения целых чисел является необходимость представления результата умножения двоичным словом. При этом число цифровых разрядов двойного слова 2N-1 на 1 больше числа 2n-2 цифровых разрядов произведения двух чисел, содержащих n-1 цифровых разрядов.

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

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

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

Общеизвестно, что в сумматоре ALU реализуется только операция сложения, назовем условно, положительных операнд (чисел).

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

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

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

6.7 ALU для деления целых чисел с фиксированной точкой.

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

Деление можно осуществлять двумя основными способами:

  1. Деление с неподвижным делимым и со сдвигаемым вправо делителем. Способ основан на копировании ручного деления. (самостоятельно поделить 2 числа, записать алгоритм деления и построить структурную схему ALU для этого способа).

  2. Деление со сдвигаемым делимым и неподвижным делителем. Схема ALU для такого способа приведена на рис 6.11.

Неподвижный делитель В в дополнительном коде заносится в RGA, делимое А, сдвигаемое влево относительно делителя В заносится старшими разрядами в RGB, младшими в RG2. Деление начинается со сдвига делимого А путем косой передачи его в RGSM (старшие разряды) и в RG2’ (младшие разряды), после чего делимое передается из RGSM в RGB и из RG2’ в RG2.

Далее в SM происходит вычитание делителя (в RGA), образуется частичный остаток (путем подсуммирования +1) и цифра частного (1 если остаток >0 и 0 если остаток <0) заносится в освободившийся после сдвига А разряд RG2.

При этом если остаток <0, то его значение восстанавливается до предыдущего значения.

Алгоритм деления приведен на рис 6.12.

Недостаток способа: нужен дополнительный такт для восстановления остатка, поэтому иногда применяются способы деления без восстановления остатка.

Суть деления с восстановлением частичного остатка заключается в следующем:

Если при делении в результате вычитания делителя из делимого (частичного остатка) выясняется, что делимое или очередной частичный остаток оказались больше или равны делителю, то в очередной разряд частичного остатка заносится «1» и полученный частичный остаток сдвигается влево на один разряд.

Если же выясняется, что после вычитания делителя частичный остаток оказался меньше делителя, то в очередной разряд частного заносится «0», к полученному остатку прибавляется делитель, чтобы восстановить частичный остаток до вычитания, после чего результат прибавления сдвигается влево на один разряд. Описанные процессы продолжаются до получения n-разрядного частного. Такой метод и называется делением с восстановлением остатка на рис 6.13 приведен пример подобного деления.

Примечание. Часто в ЭВМ используется деление без восстановления остатка. Суть его в следующем:

Если результат вычитания делителя из делимого получен отрицательный, то частичный остаток не восстанавливается путем прибавления делителя, а на следующем шаге деления вместо вычитания делимого производится его прибавление к частичному остатку. Если результат при этом остался отрицательным, то в очередную цифру частного записывается «0» и на следующем шаге так же выполняется сложение. Если результат после сложения положительный то в разяряд частного записывается «1» и на следующем шаге производится вычитание.

6.8 Операции над числами с плавающей точкой. Представление чисел в ЭВМ.

  1. При представлении чисел с фиксированной точкой, точка ставится в определенном месте относительно разрядов модуля числа в разрядной сетке. Рис 6.14

  • точка перед старшим разрядом.

Здесь при переполнении разрядной сетки (при потере младшего разряда) погрешность не превышает величину . Метод применяется редко.

  • Точка перед младшим разрядом.

Здесь модуль только целое число. При занесении числа в ячейку превышающего число теряется старший разряд и погрешность может достигнуть 100%. Например, 11112 (1510) при потере старшего разряда становится 01112 (710).

  1. Числа с плавающей точкой представлены иначе. Рис 6.14 п.2.

Порядок P числа может быть как положительным, так и отрицательным. Числа с плавающей запятой могут быть представлены в форматах с основанием 2, 8, 16 и двоично-десятичном.

Нормализованным числом принято считать число, у которого старший разряд мантиссы не равен нулю. ЭВМ автоматически нормализует число.

Например: получен результат, в котором r-старших разрядов мантиссы равны 0. Нормализация заключается в сдвиге мантиссы q на r-разрядов влево и одновременным умножением порядка P на r единиц. При этом в младшие освободившиеся разряды мантиссы записываются нули.

После такой операции число не меняется, а условие нормализации будет соблюдено. Поскольку арифметические действия над числами с плавающей точкой требуют отдельных операций над мантиссами и порядками, то операции над ними сводят к операциям над целыми положительными числами, применяя представление чисел со смещенными порядками. Для этого при записи числа в ячейку памяти к его порядку Р прибавляется целое число-смещение N=2k, где K-число двоичных разрядов, используемых для расположения модуля порядка в разрядной сетке. Тогда смещенный порядок есть Рсм = P+N, который всегда будет положительным, причем для его представления надо такое же число разрядов, как и для модуля Р.

Особенность Рсм в том, что если P’ > P” то и для смешенных верно Рсм’ > Рсм”. Это говорит о том, что смещение порядков не влияет на операции над числами.

6.9 Сложение и вычитание чисел с плавающей запятой.

Сложение и вычитание чисел производится на формуле (в предположении что X>Y) приведенной на рис 6.15.

Используемая разрядная сетка показана на рис 6.15(г).

Алгоритм сложения и вычитания.

  1. Производится выравнивание порядков слагаемых Х и Y: порядок меньшего по модулю числа принимается равным порядку большего числа, а мантисса меньшего сдвигается влево на число S-ичных разрядов, равное разности порядков.

  2. Производится сложение (вычитание) мантисс и получается мантисса суммы (разности) чисел X и Y.

  3. Порядок суммы (разности) принимается равным порядку большего числа.

  4. Полученная сумма (разность) нормируется. Арифметические действия над порядками и мантиссами выполняются либо отдельными устройствами, либо последовательно одним устройством, например, ALU рассмотренным ранее.

Операция сложения (вычитания) состоит из этапов:

  1. Прием операндов X и Y

  2. Выравнивание порядков со сдвигом мантисс

  3. Сложение (вычитание) мантисс

  4. Нормализация результата

Структурная схема ALU для сложения (вычитания) чисел с плавающей точкой приведена на рис 6.16.

Работа ALU.

  1. Прием операндов. Прием первого слагаемого (уменьшаемого) X, фиксация знака в триггере ТЗН , установка RGA в «0». Прием второго слагаемого (вычитаемого) Y в RG3, фиксация знака ТЗН , установка RGB в «0».

  2. Операции над порядками. Значения порядков из разрядов операндов α1÷α7 регистров RG1 и RG3 подаются в RGC и RGD соответственно. Далее в блоке обработки порядков происходит их сравнивание по результатам которого: мантисса с меньшим по модулю порядком сдвигается влево на число разрядов, равное разности порядков. За порядок результат операции сложения (вычитания) мантисс принимается больший из порядков.

При сравнении порядков возможны 5 случаев их соотношения и соответствующих операций.

  1. PX – PY > m, где m – число разрядов мантиссы числа Х. за результат операции принимается слагаемое Х, так как при сдвиге мантиссы слагаемого Y все ее разряды примут нулевое значение.

  2. PY – PX > m, где m – число разрядов мантиссы числа Y. За результат операции принимается слагаемое Y по той же причине.

  3. PX – PY = 0, - производится суммирование мантисс числа Х и Y.

  4. PX – PY = K1, (K1 < m) – мантисса числа Y сдвигается на K1 разрядов.

  5. PX – PY = K2, (K2 < m) – мантисса числа Х сдвигается на K2 разрядов.

Процесс сдвига мантисс заключается в следующем: В счетчик циклов СТЦ из блока обработки порядков заносится число разрядов ( К1 или К2) на которое необходимо сдвинуть. Далее, по мере сдвига мантиссы содержимое счетчика уменьшается и по достижении содержимого счетчика СТЦ = 0. Сдвиг прекращается.

Полученные модули мантисс хранятся в RG1 и RG3, их знаки в триггерах знака, а принятый порядок в RGCT1.

  1. Сложение мантисс.

  • При одинаковых знаках операндов. Модули мантисс передаются в RGA и RGB без изменения и складываются в сумматоре SM. Если окажется, что в разряде SM[7] = 1, то возникло переполнение разрядной сетки, поэтому сумма сдвигается на разряд вправо, а порядок Р увеличивается на 1: т.е. в RGCT1:= RGCT1+1.

Если после этого в RGCT1[α0] = 1, то возникло переполнение порядка, вырабатывается сигнал прерывания вычислительного процесса.

Если переполнения порядка нет, то в RGSM[α1÷α7] заносится порядок из RGCT1, в RGSM[α0] – знак мантиссы из сх.зн., а в RGSM[α8÷α32] мантисса суммы.

  • При разных знаках операндов. Отрицательная мантисса передается в RGA или RGB в обратном коде, производится суммирование в SM с положительной мантиссой с дальнейшим подсуммированием +1 к результату. Знак результата фиксируется в соответствующем триггере знака. Если полученный результат нормализованный, т.е. в SM[0] ≠0 то в RGSM заносится:

  • Знак результат в RGSM[α0]

  • Порядок из RGCT1 в RGSM[α1÷α7]

  • Модуль мантиссы результата из SM в RGSM[α8÷α32].

Если результат нормализован, т.е. SM[α89,…] = 0 и нет исчезновения мантиссы, т.е. SM[α8÷α32] ≠ 0, то производится нормализация сдвигом мантиссы влево с одновременным уменьшением порядка: т.е. RGCT1:=RGCT1 -1.

При отрицательном переполнении порядка, т.е. при RGCT1[0]формируется признак исчезновения порядка (т.е. результат = 0). Если нормализация происходит без исчезновения порядка, то формируется результат в RGSM и кодов знака, порядка и мантиссы.

Примечание: в операциях с числом с плавающей точкой сложение и вычитание выполняется приближенно, т.к. при выравнивании порядков может произойти потеря младших разрядов одного из операндов. Погрешность в этом случае всегда отрицательна и может доходить до «1» младшего разряда. Поэтому применяется округление результат, для чего используется дополнительный разряд в SM, в который после суммирования добавляется «1».

6.10 Умножение чисел с плавающей точкой.

Производится по формуле, приведенной на рис 6.15 б. Из формулы видно, что при перемножении:

  • Порядки складываются

  • Мантиссы перемножаются

  • Произведение нормализуется и

  • Ему присваивается знак «+» если знаки сомножителей одинаковы и «-» в противном случае.

Если одна из мантисс равна «0» произведение принимается равным нулю и переполнение не производится.

Если при суммировании порядков возникло переполнение порядка и его знак отрицательный, то результат умножения принимается равным «0» т.к. произведение окажется меньше разрядной сетки.

Если возникло переполнение порядка со знаком «+», то может оказаться, что после нормализации результата перемножения мантисс переполнение исчезнет. Поэтому в этом случае факт переполнения запоминается до окончания нормализации результата.

Как уже упоминалось, операции над порядками могут выполняться в разных блоках ALU или в одном:

  1. В сумматоре SM, в котором выполняются операции перемножения мантисс – последовательно: сначала над порядками, затем над мантиссами.

  2. Операции над порядками в блоке логических операций, а над мантиссами в SM ALU.

Схема ALU для второго случая приведена на рис 6.17.

Назначения RG в схеме:

RG1 – для приема и хранения множимого А.

RG2 и RG2’ – для приема мантиссы множителя В и ее сдвига в процессе перемножения.

RG3 – для приема знака и порядка множителя В и последующего приема частных произведений из RGSM.

RGА – для передачи на сумматор мантиссы множимого А, порядка его КПС блока логических операций и знака в ТЗН.

RGВ – для передачи в SM частичных произведений порядка множителя В в RGD блока логических операций.

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

RGCT1 – для хранения порядка результата.

СЦТ – счетчик циклов, используется при нормализации.

Работа ALU.

  1. Прием операндов: прием множимого А в RG1, фиксация его знака в NPY? Установка RGA в «0». Прием множителя В: знака и порядка в RG3, а мантиссы В в RG2, фиксация знака ТЗН, установка RGВ в «0».

  2. Передача порядков чисел А и В в RGС и RGD соответственно, их выравнивание в блоке логических операций со сдвигом соответствующей мантиссы в RG1 или RG2, фиксация принятого порядка в RGСТ1. (сдвиг осуществляется под управлением счетчика циклов).

  3. Перемножение мантисс. Передача мантиссы множимого А в RGА и далее в сумматор SM. При значении первого разряда мантиссы множителя В в RG2 равного «1», мантисса числа А фиксируется в RGSM как первое частное произведение и передается в RG3. После этого мантисса в RG2 через RG2’ сдвигается влево на разряд и при значении этого разряда равном «1» процесс повторяется. Если же значение разряда равно «0», то частное произведение в RGSM сдвигается на разряд влево и передается в RG3. (без суммирования). Все повторяется для всех разрядов множителя В.

Окончательный результат фиксируется в RGSM: знак из ТЗН, порядок из RGСТ1 и мантисса из SM, далее из SM на шину BDI.

Таким образом логично сделать вывод – умножение чисел это процесс суммирования мантиссы множимого и частичным произведениями столько раз сколько разрядов в мантиссе числа В, т.е. процесс аналогичен перемножению чисел с фиксированной точкой.

6.11 Деление чисел с плавающей точкой.

Производится в соответствии с формулой приведенной на рис 6.15 в.

Общие замечания: при делении чисел с плавающей точкой обычно, мантисса частного равна частному полученного при делении мантиссы делимого на мантиссу делителя, а порядок частного равен разности порядков делимого и делителя. Частное нормализуется и ему присваивается «+» если знаки делимого и делителя одинаковы и «-» в противном случае.

Если делимое = 0, в частное записывается 0 без выполнения деления.

Если при вычитании порядков образовалось положительное переполнение или если делитель = 0 деление не производится и формируется сигнал прерывания процесса.

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

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

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

Схема ALU для деления чисел с плавающей точкой, выполняющего в одном SM. (деление: неподвижное делимое и сдвигаемый делитель) рис 6.18.

Операция деления начинается с приема операндов в RG1 и RG2, фиксация знаков в триггерах знаков ТЗН, передачи слагаемых порядков в RGА и RGВ из разрядов RG1[1÷7] и RG2[1÷7]. Далее вычисляется их разность путем сложения в SM прямого кода смещенного порядка РСМ делителя. Результат заносится в RGСТ1. Далее происходит деление мантисс аналогично делению чисел с фиксированной точкой.