Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Особенности операций десятичной арифметикиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Арифметические операции над десятичными числами (сложение, вычитание, умножение, деление) выполняются аналогично операциям над целыми двоичными числами. Основой АЛУ десятичной арифметики является сумматор двоично-десятичных кодов. Такой сумматор, как правило, строится на основе двоичного путем добавления некоторых цепей. Рассмотрим, каким образом можно выполнить сложение двоично-десятичных кодов. Пусть необходимо сложить модули двух двоично-десятичных чисел X и Y. Первое слагаемое X преобразуем в код с избытком 6 (обозначим Х6), получаемый путем прибавления к каждой цифре X двоичного числа 6. Переход от X к Х6 изменяет все тетрады X так, что в каждой тетраде Х6 находится число 6 - 15. Складывая Х6 и Y по правилам двоичного сложения, получаем результат Z'. В Z' одни тетрады совпадают, а другие не совпадают с тетрадами двоично-десятичной суммы Z. Если результат сложения в i-м разряде X [i] + Y[i] + Р [i] >= 10, где Р [i] - десятичный перенос в i-й разряд, то i-я десятичная цифра Z [i] = X [i] + Y[i] + Р [i] – 10 и Р [i + 1] = 1, где Р [i + 1] - десятичный перенос в (i + 1)-й разряд. Для Z'[i] в этом случае получаем Z'[i] = Х6[1] + У[i] +P[i] - 16= 6+ X[i] + Y[i] + Р[i] - 16 = Z[i]. При этом возникает перенос в (i+1)-ю тетраду. Если 1-я десятичная цифра Z(i) должна получаться из X [i] + Y[i] + Р [i] < 10, то Z[i] = X [i] + У[i] + Р [i] и Р[i+1] = 0. Для Z'(i) в этом случае получаем Z’[i] =X6[i] + Y[i] + Р[i] = 6 + Х[i] + У[i] + Р[i] =Z[i] + 6. Перенос в (i + 1)-ю тетраду здесь не возникает (Р[i+1] = 0), так как Z' [i] < 16. Таким образом, складывая Х6 и Y как двоичные числа, получаем Z'. В Z' тетрады, из которых возникал перенос, совпадают с тетрадами двоично-десятичного результата Z, а тетрады, из которых не было переноса при сложении, представлены с избытком 6. Для получения суммы Z необходимо откорректировать Z' путем уменьшения на 6 тех тетрад Z, из которых не было переноса при сложении Х6 и Y. Вычитание числа 6 из тетрад, требующих коррекции, можно реализовать путем подсуммирования числа 10 с одновременным игнорированием переноса, возникающего при этом из тетрад. Если Z' [i] нуждается в коррекции, то Z' [i] = Z[i]+ 6. Поэтому Z'[i] + 10 >= 16, значит, после прибавления 10 из тетрады возникнет перенос, т. е. в тетраде останется (Z' [i] + 10)-16 = Z[i]-6. Вычитание двоично-десятичных модулей X-Y осуществляется следующим образом. Все разряды Y инвертируются, что дает дополнение каждой цифры Y до 15, при этом получается обратный код двоично-десятичного Y с избытком 6, обозначенный Уобр6. Затем, складывая X + Уобр6 и прибавляя 1 к младшему разряду, получаем Z. Результат Z' является положительным числом, если из старшей тетрады его возникает перенос, при этом Z' корректируется по тем же правилам, что и при сложении модулей. Если из старшей тетрады 2' нет переноса, то получен отрицательный результат, представленный в дополнительном коде. В этом случае код Z' инвертируется и к нему прибавляется 1 младшего разряда. Новое Z' корректируется, при этом к тетрадам, из которых возникал перенос при получении (X + Уобр6 + 1), прибавляется 10, а к остальным не прибавляется. Выполнение сложения и вычитания чисел со знаками сводится к выполнению сложения или вычитания модулей путем определения фактической выполняемой операции по знакам операндов и виду выполняемой операции. Знак результата определяется отдельно. Например, при X < 0 и Y < 0 вычитание X- Y заменяется вычитанием | Y | - | X |. Затем знак результата меняется на противоположный знаку (| Y | - | X |). Двоично-десятичное умножение сводится к образованию и многократному сложению частичных двоично-десятичных произведений. Умножение двоично-десятичных чисел выполняется следующим образом: 1) сумма частичных произведений полагается равной нулю; 2) анализируется очередная цифра (тетрада) множителя, и множимое прибавляется к сумме частичных произведений столько раз, какова цифра множителя; 3) сумма частичных произведений сдвигается вправо на 1 тетраду, и повторяются действия, указанные в п. 2, пока все цифры множителя не будут обработаны. Для ускорения умножения часто отдельно формируются кратные множимого 8Х, 4Х, 2Х и IX, при наличии которых уменьшается число сложений при выполнении п. 2. Двоично-десятичное деление выполняется путем многократных вычитаний, подобно тому, как это делается при обычном делении. Операции над числами с плавающей запятой Арифметические операции над числами с плавающей запятой более сложны, чем операции над числами с фиксированной запятой. Алгоритм сложения и вычитания чисел с плавающей запятой выглядит следующим образом: Производится выравнивание порядков чисел. Порядок меньшего (по модулю) числа принимается равным порядку большего, а мантисса меньшего числа сдвигается вправо на число разрядов, равное разности порядков чисел. Производится сложение (вычитание) мантисс, в результате чего получается мантисса суммы (разности). Порядок результата принимается равным порядку большего числа. Полученная сумма (разность) нормализуется. Сложение (вычитание) мантисс производится по правилам сложения (вычитания) чисел с фиксированной запятой. При умножении чисел с плавающей запятой порядки сомножителей складываются, а мантиссы перемножаются. Произведение нормализуется, и ему присваивается знак плюс, если сомножители имеют одинаковые знаки, и знак минус, если знаки разные. Если мантисса множимого или множителя равна 0, то произведению можно присвоить значение 0 без выполнения умножения мантисс. Если при суммировании порядков возникло переполнение и порядок отрицательный, то это означает, что произведение меньше минимального представляемого в машине числа, и в качестве результата операции может быть записан 0 без перемножения мантисс. Если при суммировании порядков возникает переполнение и порядок положительный, может оказаться, что результат все-таки находится в диапазоне чисел, представляемых в машине, так как при умножении мантисс возможно нарушение нормализации вправо, и после нормализации мантиссы переполнение в порядке может исчезнуть. При делении чисел с плавающей запятой мантисса частного равна частному от деления мантиссы делимого на мантиссу делителя, а порядок частного - разности порядков делимого и делителя. Частное нормализуется, и ему присваивается знак плюс, если делимое и делитель имеют одинаковые знаки, и знак минус, если разные. Если делимое равно 0, то в частное может быть записан 0 без выполнения деления. Если при вычитании порядков образовалось переполнение с положительным знаком или если делитель равен 0, то деление не производится и формируется сигнал прерывания. При делении нормализованных чисел с плавающей запятой может оказаться, что мантисса делимого больше мантиссы делителя, и мантисса частного образуется с переполнением. Для устранения этого явления перед делением мантисс нарушают нормализацию делителя сдвигом на разряд влево. Тогда нарушения нормализации частного влево не возникает.
Устройства управления Классификация УУ Устройство управления (УУ) управляет работой процессора, обеспечивая автоматическое выполнение команд программы. Выполнение команды процессором представляет собой последовательность следующих действий (иногда называемых машинными циклами): -выборка команды из памяти и ее декодирование (дешифрация кода операции); -формирование адреса следующей команды; -формирование исполнительного адреса операнда и выборка его из памяти; -исполнение операции и запись результата в память. Для выполнения каждого машинного цикла необходим ряд управляющих сигналов, формируемых устройством управления. В зависимости от способа формирования управляющих сигналов различают два основных типа УУ: - аппаратные (с жесткой или схемной логикой); - микропрограммные (с хранимой в памяти логикой). В аппаратных УУ для каждой операции, задаваемой кодом операции команды, строится набор схем, которые в нужных тактах формируют соответствующие управляющие сигналы. В УУ с микропрограммным управлением каждой операции соответствует набор микрокоманд, хранимых в памяти микрокоманд. Каждая микрокоманда несет информацию о микрооперациях, подлежащих выполнению в течение машинного такта и указания, какая микрокоманда должна быть выбрана из памяти следующей. Последовательность микрокоманд, выполняющая одну машинную команду или некоторую процедуру, образует микропрограмму.
Аппаратные УУ Управляющие устройства с жесткой логикой представляют собой логические схемы, вырабатывающие распределенные во времени управляющие сигналы. В отличие от управляющих устройств с хранимой в памяти логикой в аппаратных УУ нельзя изменить логику работы без изменения их схемы. Типичная структурная схема управляющего автомата с жесткой логикой показана на рисунке 4.9. Данный УА можно рассматривать в качестве автомата с конечным числом состояний (конечный автомат), который на каждом такте переходит из одного Рисунок 4.9 - Схема блока формирования сигналов управления
состояния в другое, определяемое содержимым регистра команды, кодами условий и внешними сигналами. Выходами такого автомата являются управляющие сигналы. Формируемая им последовательность операций задается физическими связями между логическими элементами. В состав схемы входят регистр кода операции, являющейся частью регистра команд процессора, счетчик тактов, дешифратор тактов и дешифратор кода операции (Дешифратор КОП), а также логические схемы формирования управляющих сигналов. На счетчик тактов поступают сигналы от генератора тактовых импульсов (ГТИ). Состояние счетчика представляют собой номера тактов, изменяющие от 1 до m. Дешифратор тактов формирует на i-м выходе единичный сигнал при i-м состоянии счетчика тактов, т.е. во время i-го такта. Принцип построения логических схем формирования управляющих сигналов поясняется на рисунке 4.10. На нем изображен фрагмент схемы, обеспечивающий выработку управляющих сигналов y1, y2 и y3 выполнения команды сложения на тактах T1,T2, T6. В общем случае значения управляющих сигналов зависят еще от оповещающих сигналов U={u1, u2… un}, отражающих ход вычислительного процесса. Для реализации этих зависимостей логические элементы, представленные на рисунке 4.10, берутся многовходовыми и на них подаются требуемые сигналы логических условий.
Рисунок 4.10 - Фрагмент логической схемы формирования управляющих сигналов
Сигналы y0 и yk (см. рисунок 4.9) обычно используются для определения моментов начала и окончания выполнения команд. С этой целью они используются для управления работой счетчика тактов. Управляющий сигнал y0 (Пуск) указывает на начало выполнения команды. Когда он установлен в 1, в конце каждого тактового цикла значение счетчика увеличивается на 1. Если же его значение становится равным 0, отсчет шагов прекращается. Сигнал yk (Останов) сбрасывает счетчик тактов в начальное состояние, обеспечивая начало нового цикла выборки команды. Серьезным недостатком рассмотренных схем является одинаковое число тактов, необходимых для выполнения всех команд, значение которого выбирается по наиболее длинной команде. Это приводит к непроизводительным затратам времени и, как следствие, к уменьшению быстродействия процессора. Для устранения этого недостатка применяют УУ с переменным числом тактов, в котором используют счетчик тактов с изменяемым модулем счета. Для коротких команд используют счетчик с небольшим модулем счета и наоборот. При реализации простой системы команд узлы устройства управления с жесткой логикой экономичны и позволяют обеспечить наибольшее быстродействие среди всех возможных методов построения УУ. Однако с возрастанием сложности системы команд усложнялись и схемы автоматов с жесткой логикой, при этом их быстродействие уменьшалось.
Микропрограммные УУ Альтернативой аппаратного способа реализации УУ является микропрограммное управление, согласно которому сигналы генерируются под управлением программы, подобной программе, написанной на машинном языке для ЭВМ. Этотпринципиально иной подход был предложен английским ученым М. Уилксом в начале 50-х годов. Его называют принципом микропрограммного управления. Он позволяет преодолеть сложности реализации УУ с жесткой логикой. В основу принципа микропрограммного управления заложен тот факт, что каждой машинной команде соответствует уникальный код, называемый микрокомандой. Последовательность микрокоманд, реализующих машинную команду, образует микропрограмму. Микропрограммы размещаются в специальной управляющей памяти, называемой памятью микропрограмм. Выполнение любой команды в процессоре реализуется путем последовательного извлечения микрокоманд из памяти микропрограмм с последующей их дешифрацией для формирования управляющих сигналов, необходимых при выполнении конкретной команды. Идея заинтересовала многих конструкторов ЭВМ, но на момент возникновения она была нереализуема, поскольку требовала использования быстрой памяти относительно большой емкости. Вернулись к ней в 1964 году, в ходе создания системы 360 фирмой IBM. С этого времени устройства управления с программируемой логикой стали чрезвычайно популярными и были встроены во многие компьютеры. Структура блока микропрограммного управления (БМУ) с принудительной адресацией микрокоманд (МК) приведена на рис. 4.11. В состав БМУ входят память микрокоманд (ПМК), регистр адреса микрокоманд (РАМК), регистр микрокоманд (РМК), дешифратор микроопераций (ДшМО), генератор тактовых импульсов (ГТИ). Код операции (КОП) поступает из ОП системы на регистр кода операции (РКОП), который задает начальный адрес микропрограммы. Адрес микропрограммы формируется устройством формирования адреса МК (УФАМК) и хранится в РАМК. По этому адресу из памяти микрокоманд (ПМК) БМУ считывается микрокоманда и фиксируется в регистре МК (РМК). Микрокоманда содержит два основных поля: код микрооперации (КМО) и адрес следующей МК (АСМК) КМО дешифрируется и преобразуется в набор сигналов y1…ym, управляющих функционированием процессора. Поле адреса следующей микрокоманды заносится в УФАМК, в результате чего производится выборка следующей МК.
Рисунок 4.11- Структура БМУ с принудительной адресацией МК
Структурная схема БМУ, использующего естественную адресацию микрокоманд, показана на рис. 4.12. Последовательное чтение слов из управляющей памяти обеспечивается счетчиком микропрограмм (СчМК). При каждой загрузке в регистр команд (РК) новой машинной команды в счётчик загружается выходное значение из блока формирования начального адреса. После этого на очередном такте производится автоматическое приращение содержимого СчМК для выбора из управляющей памяти очередной команды. Благодаря этому управляющие сигналы поступают в разные части процессора в необходимой, для выполнения конкретной команды, последовательности и в нужные моменты времени. Для поддержки ветвления в микропрограммах блок формирования начального адреса имеет входы, на которые заводятся коды условий (флаги) из регистра признаков и внешние сигналы, например, сигналы прерываний. Необходимые проверки кодов условий выполняются с помощью микрокоманд условного перехода. Рисунок 4.12 - Структура БМУ с естественной адресацией МК
На формирователь начального адреса в этом случае возлагается дополнительная функция - генерирование адреса перехода. По указанию микрокоманды этот блок загружает в счетчик СчМК новый адрес. Для поддержки условных переходов на входы данного блока подаются не только КОП команды с РК, но и сигналы с внешних входов, а также коды условий. В БМУ с естественной адресацией МК после выборки очередной микрокоманды из управляющей памяти происходит приращение значения СчМК. Естественный порядок выборки МК нарушается в следующих случаях: - если в РК загружается новая команда, в счетчик СчМК загружается начальный адрес ее микропрограммы; - когда в последовательности выбираемых МК встречается микрокоманда перехода и условие перехода выполняется, в СчМК загружается адрес перехода; - в случае появления микрокоманды “Останов” в СчМК загружается адрес микропрограммы для последующего выполнения очередной машинной команды. БМУ с принудительной адресацией используются чаще, чем БМУ с естественной адресацией. Их общим достоинством является то, что замена одной системы команд на другую производится путем установки памяти микропрограмм с новой прошивкой. Кроме того, легко осуществляется эмуляция системы команд любого серийно выпускаемого процессора, что особенно важно при разработке контроллеров и специализированных ЭВМ. В этом случае можно использовать наработанное системное программное обеспечение серийной машины для отладки программ новой ЭВМ. Кроме того, микропрограммное управление позволяет легко создавать проблемно ориентированную систему команд в терминах управляемого объекта. Например, система команд для управления роботом - манипулятором может состоять из следующих команд: “Вправо”, “Влево”, “Поднять”, “Опустить”, и т.д. При использовании таких команд процесс написания программ для специализированной ЭВМ становится простым и может производиться оператором робота - манипулятора.
|
||||
Последнее изменение этой страницы: 2016-08-06; просмотров: 700; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.23.59 (0.013 с.) |