Реферат: Деление без восстановления остатка со сдвигом остатка
Название: Деление без восстановления остатка со сдвигом остатка Раздел: Рефераты по информатике, программированию Тип: реферат | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
СОДЕРЖАНИЕВведение…………………………………………………………………………...4 1. Разработка микропрограммы выполнения операции…………...……………5
1.2 Обзор дополнительного кода числа……………………………………………………….5 1.3 Рассмотрение процесса выполнения операции деления без восстановления (8421)…..6 1.4 Структурная схема ОА………………………………………………………………..…..12 1.5 Разработка граф-схемы алгоритма………………………………………………………12 1.6 Описание моделирующей программы……………………………………...……………15 1.7 Оценка времени выполнения операции и оценка аппаратных затрат ОА…………….15 1.8 Контроль выполнения операции деления по модулю…………………………………..16 2. Синтез управляющего автомата……………………………………………...17
2.2 Переход от начального языка задания автомата к стандартному заданию…………...18 2.3 Составление структурной таблицы МПА……………………………………………….18 2.4 Построение функциональной схемы…………………………………………………….21 2.5 Расчет такта работы управляющего автомата ………………………………………….22 Заключение………………………………………………………………………23 Список литературы…………………………………………………………….. 24 Приложение А (графический материал)……………………………………….25 Приложение В (моделирующая программа)…………………………………..26 ЗАДАНИЕДеление без восстановления остатка со сдвигом остатка В форме с фиксированной запятой: формат (1, 8) Дополнительный код Двоично-десятичная система счисления (код 8421, 8421+6) Контроль по модулю Синхронный автомат Мили Логический элемент “ИЛИ-НЕ” Триггер JK -типа Задание выдал І ___ І _______ 2003г. Преподаватель: Шерстобитова Т.М. Задание принял І ___ І _______ 2003г. Студент: Родионов С.В. .Специальность: 3704 Группа: ЭВМ 00-2 . ВВЕДЕНИЕКак известно цифровые электронные вычислительные машины, т.е. компьютеры, предназначены для обработки цифровой информации и являются частным, но наиболее распространенным видом цифровых автоматов. Для успешного изучения общих принципов обработки цифровой информации рационально, по возможности максимально, отвлечься от реального аппаратного обеспечения компьютера и рассматривать компьютер как некоторый абстрактный цифровой автомат, предназначенный для обработки информации, представленной в цифровой форме. Знания по прикладной теории таких автоматов необходимы для успешного поиска новых принципов построения компьютеров, совершенствования уже известных алгоритмов обработки цифровой информации, грамотной эксплуатации вычислительной техники и разработки различного программного обеспечения. Для всего этого необходимы четкие знания арифметических и логических основ цифровых автоматов, принципов анализа и синтеза этих автоматов. В данном курсовом проекте описан процесс проектирования управляющего автомата (УА), осуществляющий управление выполнения операции деления без восстановления в коде 8421, 8421+6. Курсовая работа состоит из двух разделов: разработка алгоритма выполнения операции и непосредственно синтеза УА, реализующего этот алгоритм, а также программы на языке программирования Ассемблера, выполняющей операцию деления в коде 8421, 8421+6. Основной целью курсовой работы является закрепление основных теоретических положений курса ПТЦА, приобретение практических навыков по обработке алгоритмов выполнения арифметических операции в ЦВМ, построению управляющих цифровых автоматов, средств их контроля и диагностики.
1. Разработка микропрограммы выполнения операции
Необходимость в указании положения запятой отпадает, если место запятой в разрядной сетки машины заранее фиксировано раз и навсегда. Такая форма представления чисел называется представлением с фиксированной запятой (точкой). Так как числа бывают положительные и отрицательные, то формат (разрядная сетка) машинного изображения разбивается на знаковую часть и поле числа. В поле числа размещается само изображение числа, которое мы условно называем мантиссой числа. Для кодирования знака числа используется самый старший разряд разрядной сетки, отведенной для изображения двоичного числа, а остальные разряды отводятся под мантиссу числа. Положение запятой в разрядной сетке строго фиксируется, обычно или правее самого младшего разряда мантиссы, или левее самого старшего. В первом случае число представляется как целое, во втором - как правильная дробь. В настоящее время, в подавляющем большинстве, в компьютерах в формате с фиксированной точкой представляются целые числа. В знаковую часть записывается информация о знаке числа. Принято, что знак положительного числа "+" изображается символом 0, а знак отрицательного числа " – " изображается символом 1. 1.2 Обзор дополнительного кода числа Известно, что одним из способов выполнения операции вычитания является замена знака вычитаемого на противоположный и прибавление его к уменьшаемому: А - В = А + ( - В) Этим операцию арифметического вычитания заменяют операцией алгебраического сложения, которую можно выполнить при помощи двоичных сумматоров. Для машинного представления отрицательных чисел используют его дополнительный код. Определение этого кода может быть дано следующим образом. Если число А в обычном двоичном коде - прямом двоичном коде, изобразить как [A]пр = 0.an an-1 an-2.....a1 a0, тогда число – А в этом же коде представляется как [-A]пр = 1.an an-1 an-2.....a1 a0, тогда число -A в дополнительном коде изображается в виде [-A]доп = [-A]об + 1 где [-A]об = 1.an an-1 an-2.....a1 a0, где ai = 1, если ai = 0, ai = 0, если ai = 1, ai – цифра i - того разряда двоичного числа. Следовательно, при переходе от прямого кода к обратному все цифры разрядов мантиссы числа инвертируются. Таким образом, для получения дополнительного кода отрицательных чисел нужно сначала инвертировать цифровую часть исходного числа, в результате чего получается его обратный код, а затем добавить единицу в младший разряд цифровой части числа. Дополнительный код некоторого числа получается его заменой на новое число, дополняющее его до числа, равного весу разряда, следующего за самым старшим разрядом разрядной сетки, используемой для представления мантиссы числа в формате с фиксированной запятой. Поэтому такой код числа называется дополнительным. Подчеркну, что дополнительный код используются только для представления отрицательных двоичных чисел. Положительные числа в этом коде не меняют своего изображения, и представляются как в прямом коде. Таким образом, цифровые разряды отрицательного числа в прямом коде остаются неизменными, а в знаковой части записывается единица. 1.3 Рассмотрение процесса выполнения операции деления без восстановления в коде 8421,8421+6 a) Двоично-десятичная система счисления: Двоично-десятичный код (Д-код) десятичного числа, это такое его представление, в котором каждая десятичная цифра изображается четырьмя двоичными разрядами (тетрадой из двоичных символов): A = {a4,n a3,n a2,n a1,n}n {a4,n-1 a3,n-1 a2,n-1 a1,n-1}n-1 ... {a4,0 a3,0 a2,0 a1,0}0 , где - двоичные разряды тетрады, i - номер разряда внутри тетрады, j - номер самой тетрады. Для однозначности перевода чисел в Д-код и обратно желательно, чтобы разряды тетрад имели определенный вес. Максимальное допустимое число в тетраде - 9. Если возникает число 10 и больше, то единица переходит в следующую старшую тетраду. Существуют различные Д-коды, мы рассматрим Д-код, вес разрядов, тетрады которого следующий: 8, 4, 2, 1.
б) Свойства кода 8421 1) Коды 8421 и 8421(+6) взаимно дополняющие друг друга, и это свойство используется при выполнение алгебраического сложения. -3 = 1.0011 пк 1.1100 ок 1 1.1101 дк = | 7 | 1.1101 № 7 (8421) 1.1101 = 7 (8421(+6)) Для рассматриваемого кода 8421нельзя получить обратный или дополнительный код простым инвертированием, т.к. инвертирование набора тетрад означает получение дополнения до . Следовательно, необходимо убрать разницу. Один из используемых при этом приемов состоит в том, что во все цифровые тетрады числа в коде 8421 добавляется 0110 и после этого производится инвертирование набора. Полученное изображение представляет собой обратный код числа. А дополнительный код получается, как обычно, добавлением 1 к младшему разряду младшей тетрады. 2) Аддитивность системы: Сi = I1I2I3...In Cj = J1J2J3...Jn Eij = E1E2E3...En Система счисления 8421 аддитивна 3= 0.0011 4= 0.0100 7= 0.0111 в) Алгебраическое сложение в коде 8421,8421+6 Первый случай – если слагаемые тетрады имеют одинаковые знаки А>0, В>0, е – ? A<0, B<0, е – ?
Если при этом был перенос p = 1, то выполняется К = 0 Если при этом не было переноса p = 0, то выполняется К = – 6 Второй случай – если слагаемые тетрады имеют различные знаки А>0, В<0 A<0, B>0
Если е > 0 и при этом был перенос p = 1, то выполняется К = 0, Если е > 0 и при этом не было переноса p = 0, то выполняется К = – 6 Если е < 0 сумма получается в коде 8421(+6), если при этом был перенос p = 1, то выполняется К = +6, Если е < 0 сумма получается в коде 8421(+6), если при этом не было переноса p = 0, то выполняется К = 0 г) Деление в коде 8421, 8421+6 1) Тетрада рассматривается как единое целое, и сдвиг осуществляется на одну тетраду после формирования очередной тетрады частного. 2) Для формирования тетрады частного из делимого вычитают делитель до тех пор, пока знак остатка не изменится на противоположный. Если после положительного остатка получили отрицательный, то он не восстанавливается, в следующую тетраду частного записывается 9 и после сдвига начинается прибавление делителя, на каждый отрицательный остаток из текущей тетрады частного отнимается 1. При смене знака на положительный в следующую тетраду частного записывается 0 и на каждый положительный остаток в текущую тетраду частного прибавляется 1. 3) Появление остатка с противоположным знаком является признаком конца формирования очередной тетрады частного, осуществляется сдвиг остатка сразу на одну тетраду. И переходят к формированию следующей тетрады частного. 4) Каждое алгебраическое сложение требует соответствующей коррекции. 5) Пункты 2,3,4 повторяют столько раз, сколько нужно получить тетрад в частном. Реализация примера в десятичном виде:
д.к.=9.4267
Реализация примера в двоично-десятичном коде 8421, 8421+6 д.к.1111 1010 1000 1100 1101
(Приложение А, лист № 1 ) Для реализации предложенного алгоритма выполнения операции деления необходимы следующие операционные элементы:
4р.- переносы. 3) Рг.В(0-19) – регистр частного: 4р.- знак, 16р.- мантисса частного. 4) регистр Рг.К(0-3) – регистр коррекции. 5) счетчик Сч.1 - этот счетчик необходим для формирования тетрады частного. 6) счетчик Сч.2 - этот счетчик необходим для выхода из цикла деления, выход будет осуществлен после того, как будут пройдены все тетрады. 7) счетчик Сч.3 - этот счетчик необходим для выхода из коррекции. 1.5Разработка граф-схемы алгоритма (ГСА) (Приложение А, лист № 2,3) Для реализации любой арифметической операции необходимо знать алгоритм ее выполнения, ниже приводится алгоритм операции деления чисел с фиксированной запятой в коде 8421, 8421+6. Если блоки выполняются последовательно, то ссылки на следующий блок не приводятся. Таблица 1 - Определение блоков
1.6 Описание моделирующей программы (Приложение В) Программа операции деления без восстановления остатка со сдвигом остатка с фиксированной точкой в коде 8421, 8421+6 выполнена на языке программирования ассемблера. В моделирующей программе регистрами Рг.А, Рг.В, Рг.К, а так же счетчиками СЧ.1 и СЧ.2 СЧ.3 являются регистры самой ЭВМ и оперативная память. Описание программы построчно: 1 – 22 – Связывание данных с сегментом данных DS, очистка экрана, приглашение к вводу двух чисел, запись введенных чисел по адресам в сегменте данных. 23 – 28 – Вычисление знака частного. 29 – 72 – Вычисление количества тетрад, подготовка под знак целой тетрады, вызов процедур преобразования из ASCII в байты делимого и делителя, пробное сложение, проверка на переполнение. 73 – 79 – Вывод сообщения о переполнении и переход на выход из программы. 80 – 103 – Вызов процедуры преобразования конечного результата из байта в ASCII, вывод знакового разряда и вывод результата, стандартный выход из программы. 104 – 131 – Процедура перевода делимого из ASCII в BIN. 132 – 159 – Процедура перевода делимого из ASCII в BIN. 160 – 176 – Процедура перевода делителя в дополнительный код. 177 – 243 – Процедура сложения тетрад делимого и делителя с учетом возникающих межтетрадных переносов, процедура проверки на коррекцию. 244 – 267 – Процедура перевода конечного результата из байта в ASCII. 268 – 277 – Описание сегмента данных, закрытие кодового сегмента.
Время выполнения операции определяется формулой: Топ. дел. = к*Т’Т’ = Lср.*Топ. сл.+ 4tсдв. Топ. сл.= tсл.+tсл.*pкор. Lср.= 5,5 – среднее количество шагов, т.к. самое минимальное значение = l, а максимальное значение = 10. pкор= вероятность коррекции, для 8421 равна 0,5 tсл.=4*tсдв. Т=к(L*Tсл. + 4tсдв.)=к(5,5Тсл. + 4tсдв.) = 8(5,5*1,5*4*tсдв. + 4*tсдв.)= =8(37tсдв.)=296 tсдв. к=8, т.к. нужно вычислить 8 тетрад. Оценка аппаратных затрат осуществляется путем подсчета разрядов в элементах, участвующих в операции деления: Q=Q(Рг.А(0-19))+Q(Рг.В(0-19))+Q(Рг.К(0-3))+Q(СМ(0-43))+Q(Сч.1(0-3))+Q(Сч.2(0-1))+Q(Сч.3(0-1))=20+20+4+44+4+2+2=96 1.8 Контроль выполнения операции деления по модулю Контроль выполнения арифметических и логических операций можно осуществлять с помощью контрольных кодов, представляющих собой остатки от деления чисел на некоторый модуль. Такой контроль называется контролем по модулю. Для двоичных чисел этот модуль обычно равен или больше 3. Различают числовой и цифровой контроль по модулю. При числовом методе код заданного числа определяется как наименьший положительный остаток от деления числа на выбранный модуль. При цифровом методе контроля контрольный код числа образуется делением суммы цифр числа на выбранный модуль. В данном варианте возможны два пути получения контрольного кода:
2) просто суммирование цифр по выбранному модулю. Самым распространенным методом контроля и диагностики является контроль по модулю, принцип которого основан на том, что остаток от деления на заданное число суммы чисел должен равняться сумме остатков от деления на это же число исходных чисел. При этом к модулю представляют следующие общие требования:
2. СИНТЕЗ УПРАВЛЯЮЩЕГО АВТОМАТА
В этом пункте осуществляется переход непосредственно к синтезу микропрограммного автомата по граф схеме алгоритма (ГСА). Начать следует с синтеза абстрактного автомата, который осуществляется по кодированной ГСА. Кодированная ГСА получается путём пометки каждой вершины в содержательной ГСА. Чтобы получить отмеченную ГСА для абстрактного автомата Мили, необходимо воспользоваться следующими правилами: 1) Начальная и конечная вершины обозначаются символами а0; 2) Вход каждой вершины следуя за оператором отмечается а1, а2, и т.д.; 3) Каждая операторная вершина отмечается не более одного раза.В результате получаем алфавит состояний А = { а1, а2, ... , аm}. Используя эти правила, создаем таблицу для кодированной ГСА(см. Таблицу 2). Таблица 2 - Кодирование блоков
2.2 Переход от начального языка задания автоматак стандартному заданию В отмеченной ГСА путем перехода между состояниями аm и аs, называется последовательность следующего вида:
- обозначение вершины, из которой осуществляется переход; - вершина, в которую осуществляется переход; - обозначение условия вершины, через которые проходит путь от и , причем (в зависимости от логического условия Xmk). Иногда возможно и такое что, когда K = 0 (нет ни одной условной вершины), в этом случае путь имеет вид . Любой граф микропрограммного автомата Мили обычно задается в виде прямой или обратной таблицы переходов. Выписывая пути перехода для нашей ГСА, составляем таблицу переходов для микропрограммного автомата Мили. 2.3 Составление структурной таблицы МПА Нам задан автомат Мили. Для этого автомата необходимо построить прямую таблицу переходов, в которую вписываются пути перехода между соседними отметками. В прямую таблицу переходов, в отличае от обратной таблицы добавляется три столбца. В итоге мы имеем: аM – исходное состояние K(аM) – двоичный код исходного состояния аS – входной сигнал, под воздействием которого происходит переход из состояния AM в состояние AS K(аS) – двоичный код состояния перехода X(аM, аS) – входной сигнал, соответствующий данному переходу Y(аM, аS) – выходной сигнал, соответствующий данному переходу F(аM, аS) – обязательные сигналы возбуждения памяти, необходимые для переключения МПА из состояния AM в состояние AS Коды состояний K (am) и K (as) будем кодировать двоичной системой счисления. Всего у нас 20 состояний, а это значит, что для кодирования нам необходимо и достаточно 5-х разрядного числа, т.е. используем 5 JK-триггеров. Таблица 3 - Структурная таблица МПА
Составление выражений функций возбуждения автомата: J5 = J4 = J3 = J2 = J1 = K5 = K4 = K3 = K2 = K1 = Переведем функции возбуждения в свой базис “ИЛИ-НЕ”: J5 = J4 = J3 = J2 = J1 = K5 = K4 = K3 = K2 = K1 = 2.4 Построение функциональной схемы (Приложение А, лист № 5 ) Функциональную схему управляющего автомата согласно заданию надо построить в базисе "ИЛИ - НЕ", т.е. используя логические элементы "ИЛИ - НЕ". Используя выражения функций возбуждения, спроектируем функциональную схему Управляющего автомата Мили с элементами памяти на JK – триггерах. Для получения сигналов J1-J5 и K1-K5, мы используем прямые и инверсные состояния x, которые подаются на шину X, и, используя логические элементы "ИЛИ - НЕ" на шину соответственно. Согласно расчетам и вычислениям, проведенным выше, наш автомат имеет 20 состояний, это значит, что для получения требуемых сигналов в нашей схеме понадобится дешифратор состояний (a0 – a19). Затем для удобства и читаемости схемы, полученные сигналы подаются на шину А. С шины А, используя логические элементы "ИЛИ - НЕ", получаем инверсные состояния (а0-а19), которые выводим на шину . Приступаем непосредственно к формированию сигналов возбуждения для этого полученные нами сигналы с шин А и , Х и подаются на элементы "ИЛИ - НЕ", после чего они проходят стадию обработки, на которой получаются нужные нам сигналы J1-J5 и K1-K5. Далее эти сигналы поступают на входы пяти JK триггеров, в результате чего мы имеем сформированные сигналы Q1-Q5 и их инверсные состояния, которые в свою очередь образуют шину Q и подаются на начало функциональной схемы, где будут заново участвовать в формировании сигналов. Для получения выходных сигналов, мы используем полученную нами шину А, в результате чего получаем выходную шину У.
JK-триггер и его характеристики:
2.5 Расчет такта работы управляющего автомата Такт работы УА зависит от закона функционирования и структуры автомата. В автомате Мили переключение состояния УА происходит в конце такта после выдачи выходных сигналов в соответствии со значениями поступивших выходных сигналов из ОА. В связи с этим такт работы управляющего автомата, функционирующего как автомат Мили, определяется по формуле: Т=Ту+Тп+Tв где Тв=40 нс - максимальное время формирования выходных сигналов, Тп=80 нс - время переключения памяти состояний. Ту=20 нс - время на дешифрирование состояний, Таким образом: Т=40+80+20=140 нс Частота ЗАКЛЮЧЕНИЕ В основных направлениях экономического и социального развития в последнее время поставлены задачи: развивать теоретическую и прикладную математику, информатику и кибернетику, широко внедрять машины и оборудование со встроенными средствами микропроцессорной техники, ускоренно развить выпуск средств автоматизации управленческого и инженерного труда, малых электронных вычислительных машин. Сегодня трудно себе представить деятельность человека без электронных вычислительных машин (ЭВМ). Появившись около 50 лет назад, ЭВМ открыли новую страницу в истории человеческих знаний и возможностей, высвободили тысячи вычислителей, значительно облегчили труд ученых, дали возможность изучать сложнейшие процессы. Сейчас нет ни одной отрасли народного хозяйства, где нельзя было бы применить ЭВМ более того, целые разделы науки и техники не могут существовать без них. Прикладная теория цифровых автоматов это тот раздел науки, без которого не может существовать любая ЭВМ, и чем она сложнее, тем сильнее она основана на последних достижениях в области ПТЦА. В данном курсовом проекте был синтезирован управляющий автомат, осуществляющий управление выполнением операции деления без восстановления остатка со сдвигом остатка. Построен алгоритм обработки чисел. Расписаны управляющие сигналы и другие функции. По имеющемся данным построена функциональная схема устройства. Сравнивая все изученные мною методы деления, я сделал для себя вывод, что на сегодняшний день наиболее распространенными методами являются: деление с восстановлением со сдвигом остатка, деление без восстановления со сдвигом делителя. Но в то же время самый оптимальный вариант - деление без восстановления со сдвигом остатка. А самое быстродействующее деление без восстановления со сдвигом делителя, так как сдвиг делителя можно совместить во времени со сложением. Список литературы1. Савельев А.Я. Арифметические и логические основы цифровых автоматов. - М.: Высшая школа , 1980.
1987. 4. Айтхожаева Е.Ж. Прикладная теория цифровых автоматов. Алматы: 1993. ПРИЛОЖЕНИЕ A ПРИЛОЖЕНИЕ В |