Главная / Рефераты / Рефераты по математике

Реферат: Узел преобразования чисел


ВВЕДЕНИЕ Режим работы данного узла - преобразование чисел, поэтому стоит поговорить о самих числах и их представлении в ЭВМ. В ЭВМ используются двоичные числа, которые не привычны обыкновенному человеку, привыкшему к арабским - десятичным числам. Но для ЭВМ операции и само хранение двоичных чисел бо- лее удобно. Двоичные числа - это числа, составленные из 0 и 1. Например: Десятичные числа Двоичные числа 0 0 1 1 2 10 3 11 4 100 5 101 6 110 и т.д. С физической точки зрения, 1 можно представить как неко- торый импульс/уровень напряжения, а 0 - как отсутствие таково- го. Тогда, устанавливая некоторый порог напряжения, можно все, что выше этого порога считать 1, а что ниже - 0. С десятичными числами пришлось бы поступить сложнее - пришлось бы вводить несколько пороговых уровней и на порядок усложнились бы все узлы и блоки ЭВМ. Поэтому в современных ЭВМ используются дво- ичные числа и двоичная арифметика. Также в современных ЭВМ применяется шестнадцатиричная арифметика. Это связано с тем, что очень легко выполнить пре- образование из шестнадцатиричной системы исчисления в двоич- ную и наоборот. Одна шестнадцатиричная цифра представляется четыремя двоичными, например: Десятичные Двоичные Шестнадцатиричные 1 0001 1 9 1001 9 10 1010 A 11 1011 B 12 1100 C 15 1111 F и т.д. Принятая минимальная единица информации в ЭВМ - 1 бит. Один бит равен одной двоичной цифре. Более крупной единицей является байт. Один байт равен 8 битам. Существуют и более крупные единицы - слово (2 байта), двойное слово (4 байта), килобайт (1024 байта), мегобайт (1024 Кбайта) и т.д. В данном курсовом, все операции производятся с восьмираз- рядными числами, т.е. с числами, размером 1 байт. Немного надо сказать о представлении чисел в ЭВМ. Числа делятся на целые и вещественные. Это деление, ко- нечно весьма условно, но хорошо подходит для описания хранения и операций над числами в ЭВМ. Чтобы сильно не углубляться в общности, рассмотрим конкретный вариант, используемый в данном курсовом - размер чисел 8 байт. Как будут выглядеть целые числа - показано в вышеприве- денных примерах. Как же будут выглядеть вещественные числа? Существует 3 наиболее распространенных варианта кодирова- ния: прямой код, обратный код и дополнительный код. Далее введем одно обозначение. Если после цифры стоит "d" - это десятичная цифра, "b" - двоичная, а "h" - шестнадца- тиричная. Прямой код - это так сказать "естественный" код, то есть 1d=0001b, 10d=1010b, 15d=1111b и т.д. Обратный код образуется из прямого путем инвертирования всех разрядов прямого кода, например 1d=0001b в прямом=1110b в обратном, 10d=1010b в прямом=0101b в обратном коде. Дополнительный получается из обратного, путем прибавления к младшему разряду 1. Обычно, прямой код используется для хранения положитель- ных чисел, а обратный и дополнительный - для отрицательных чи- сел. В нашем курсовом, вся работа с числами ведется в прямом коде. Но выше мы рассматривали только целые числа, а как посту- пить с дробными? Существует два возможных варианта хранения - в формате с фиксированной точкой и в формате с плавающей точкой. Покажем "в живую" эти форматы на примере: 1. С фиксированной точкой: 5.8 d = 0 0101 110 b T -T-- -T- ¦ ¦ L цифры после запятой (.8) ¦ L-- цифры до запятой (5.0) L-- знаковый разряд (0=*+*, 1=*-*) Но таким образом большие вещественные числа хранить не- удобно и неэффективно. Поэтому используется второй вариант хранения: 2. С плавающей точкой. 5.8 d = 0 1001 011 b T -T-- -T- ¦ ¦ L порядок числа ¦ L-- мантисса числа L-- знаковый разряд То есть в формате с плавающей точкой хранится 2 числа - порядок и мантисса. Так как порядок может быть и отрицатель- ным, то приняли еще одно правило: порядок всегда смещенный. То есть если порядок колеблется от +128d до -127d то к порядку всегда прибавляют 127d и тогда он колеблется в пределах от 0 до +255d и таким образом нам не приходится хранить знак числа. В связи с такими разными форматами представления чисел в ЭВМ и был разработан данный узел, задача которого - преобразо- вание чисел из формата с фиксированной точкой в формат с пла- вающей точкой. ВЫБОР СТРУКТУРЫ УЗЛА Так как по заданию ввод/вывод в данном узле должен проис- ходить параллельно, то потребуется 2 регистра (один для вход- ных данных, один для выходных), разрядность которых исходя из условия - 8 бит. Также, для промежуточных результатов потребу- ется 1 восьмиразрядный регистр (для хранения и работы с ман- тиссой) и один четырехразрядный регистр и один сумматор для обработки порядка. Дополнительно также потребуется 13 элемен- тов И-НЕ. Это пока все без доказательства - оно будет позже. В качестве 8-ми разрядных регистров нам хорошо подходят К155ИР13, в качестве 4-х разрядного - К155ИР1. Также мы ис- пользуем сумматор К155ИМ3, а для дополнительной логики 4 микросхемы К155ЛА3. Итого вся схема собрана собрана, как и требовалось на микросхемах серии К155. Альтернативный вариант схемы будет рассмотрен далее. Общая схема узла приводится в приложении. РАСЧЕТ ПОСТРОЕНИЯ И ОПИСАНИЕ ПРИНЦИПИАЛЬНЫХ СХЕМ Как же именно, с моей точки зрения, должен работать дан- ный узел? В целом его работу можно описать так: Обозначим: 1. Число с фиксированной точкой S1.I1.R1 ¦ ¦ L-- цифры после запятой, 3 разряда ¦ L-- цифры до запятой, 4 разряда L-- знак, 1 разряд 2. Число с плавающей точкой S2.M2.P2 ¦ ¦ L-- порядок, 3 разряда ¦ L-- мантисса, 4 разряда L-- знак, 1 разряд. Учитывая приведенные выше обозначения, общий принцип ра- боты данного узла можно изобразить так: Входные¦S1¦-+знак+->¦S2¦Выходные данные ¦I1¦--¬ -¬ -->¦M2¦данные ¦R1¦-¬¦ ¦хранение ¦ ¦->¦P2¦ ¦L->¦и работа ¦-¬ ¬ ¦¦ L-->¦с мантис-¦ ¦ ¦нормали-¦--¦ ¦сой числа¦ L>¦зация ¦ ¦ L- ->¦резуль- ¦ -¬ ¦ ¦тата ¦ ¦хранение ¦ ¦ L ¦и работа ¦-- ¦с поряд- ¦ ¦ком числа¦ L- Словесно, алгоритм преобразования можно описать так: 1. Занесение исходных данных в регистр RG1. 2. Занесение мантиссы числа с регистр RG2. 3. Занесение 7d(111b) в регистр порядка RG4 (автоматичес- кий сдвиг на 4 разряда + 3, так как порядок смещенный). 4. Нормализация результата: а. Если мантисса не нормализована, т.е. старший бит равен "0", то сдвигаем мантиссу влево на 1 разряд с помощью ре- гистра RG2 и с помощью сумматора SM вычитаем 1 из регист- ра RG4, который содержит порядок числа и заносим резуль- тат снова в регистр RG4. Возвращаемся к пункту 4. б. Если в старшем разряде мантиссы "1", то значит число нормализовано и мы переходим к пункту 5. 5. Занесение результата в регистр RG3 Это было о алгоритме. Как же работает сама схема и от- дельные ее части? Сначала о частях. Рассмотрим два элемента данной схемы: сумматор и регистр. СУММАТОР Формулы для суммы и переноса и i-том разряде выглядят так: _ _ _ _ _ _ S(i)=a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1) _ _ _ P(i)=a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1)+a*b*P(i-1), где: S(i) - сумма в i-ом разряде, P(i) - перенос в i-ом разряде, a,b - слагаемые в i-ом разряде, P(i-1) - перенос из i-1 разряда. Один из вариантов схемы для реализации такого сумматора (точнее говоря элемента сумматора для одного разряда, из кото- рых можно построить сумматор любой разрядности) выглядит так: Формирователь суммы (вариант комбинационного сумматора) : P(i-1)-T--¬ --T--¬ ¦ LT-+&¦1 ¦ a-T-+T--+-+ ¦ ¦ ¦ ¦ ¦ --T+-+ ¦ ¦ b-+T++ ¦¦ +-+ O-¬ ¦¦¦ -¬ L-++-+&¦ ¦ ¦ ¦¦¦--+& ¦ T++-+ ¦ ¦ ¦ ¦¦L+ ¦ O- -+ ¦ ¦ ¦ ¦¦ L-+ ¦ -¬ ¦ ¦¦¦ L-+ ¦ -¬ ¦¦ L- --+& ¦ ¦ ¦¦¦ --T--¬ L--+& ¦ ¦L+ ¦ O-+ ¦L+-+&¦1 ¦ ¦ O-- S(i) ¦ -¬ L-+ ¦ ¦ L-+-+ ¦ ¦ + ¦ ¦ --+& ¦ L- ¦ +-+ ¦ ¦ ¦ L- L--+ ¦ O-¬ ¦ ¦ ¦ +-+ O-- L-+ ¦ ¦ ¦ ¦ L-+&¦ ¦ L- L-+-+-+ ¦ ¦ L+ ¦ ¦ L-+ Этот элемент сумматора работает по несколько измененной формуле (в связи с базисом реализации И-НЕ и И-ИЛИ-НЕ): __ _ _ _ _ _ _ S(i)=(a*b*P(i-1)+a*b*P(i-1))*(a*b*P(i-1)+a*b*P(i-1)) Можно показать, что формирователь переноса строится абсо- лютно аналогично. Затем перенос из i-того разряда передается на (i+1)-ый разряд, а сумма i-того разряда выводится. Соединяя такие бло- ки, можно получить сумматор любой разрядности. Таким образом, в представленном сумматоре сумма формиру- ется параллельно, а перенос последовательно. Данный сумматор не отличается высоким быстродействием, а для повышения быстро- действия используют так называемый сквозной и групповой пере- нос. В качестве элементов для такого сумматора можно взять микросхемы К155ЛА3 и две К155ЛР4. Возможно также построение сумматоров на основе тригге- ров - тогда сумматор будет накапливающим, то есть результат суммы будет доступен для считывания даже после отключения входных сигналов. РЕГИСТР Регистры в данном курсовом проекте используются для хра- нения и преобразования (сдвига) мантиссы и порядка. В целом регистры делятся на параллельные, последовательные и комбини- рованные. В нашем узле используются возможности как параллель- ных (для хранения) так и последовательных (для сдвига) регист- ров. Как же строятся регистры? Регистры строятся на основании триггеров, количество которых зависит от разрядности регистра. Параллельные регистры. Вот пример простейшего параллельного однофазного регистра на RS-триггерах: Вывод прямого кода-T ВводT--+ ¦ -¬ -T¬ ¦ -¬ L-+& ¦ ¦ ¦ TT ¦ L-+& ¦ ¦ O--O S ¦ +-¬ ¦ O-¬ X(i) + ¦ ¦ ¦ ¦ L+ ¦ ¦ L- ++ ¦ L- -¬ ¦ -¬ ¦ ¦ ¦ --+& ¦ L-+& ¦ O R ¦ O- ¦ O-¬ ¦ O-- X(i) ¦ ¦ ¦ ¦ + ¦ L-+ ¦ ¦ L+- ¦ L- L- Установка "0"+-+- Вывод обратного кода-+- Эта схема только для одного разряда, но соединив такие блоки можно получить регистр любой разрядности. Условное обоз- начение для 4-х разрядного регистра: T-T--¬ -+S1¦RG ¦ ¦ ¦ ¦ ¦1 + -+S2¦ ¦ O ¦ ¦ ¦2 + -+S4¦ ¦ O ¦ ¦ ¦4 + -O R¦ ¦ O L--+-+ Такой регистр является 2-х тактным, поскольку ввод инфор- мации производится в 2 такта: первым тактом на шину "Уст. 0" подается 0 сигнал для установки в 0 всех триггеров, при этом на шине "Ввод" - 0; вторым тактом устанавливается 1 на шинах "Уст. 0" и "Ввод" и значения разрядов X1,X2,..,X(i),.. записы- ваются по входу S триггеров. Ввод - в прямом коде. Вывод - как в прямом так и в обратном. Для вывода в нужном нам коде подается 1 на нужную нам шину, причем одновременная подача 1 на обе шины запрещена. Парафазный регистр на RS-триггерах: Ввод кодаT- ¦ -¬ -T¬ -¬ +-+& ¦ ¦ ¦ TT ¦ --+& ¦ _ ¦ ¦ O--O S ¦ +-- ¦ O X(i) X(i) --+-+ ¦ ¦ ¦ ¦ --+ ¦ ¦ ++ ++ ¦ ¦ ++ L-+& ¦ ¦ ¦ ¦ +-+& ¦ _ ¦ O--O R ¦ O-- ¦ ¦ O X(i) X(i) -+ ¦ ¦ ¦ ¦ +-+ ¦ L- L+- ¦ L- Вывод кода+ Также как и в предыдущем случае (и как будет во всех по- следующих) это схема всего одного разряда, соединяя которые вместе можно получить регистр любой разрядности. Отличие данного регистра от предыдущего заключается в том, что ввод информации осуществляется путем подачи "1" на шину "Ввод" без предварительной установки в 0, т.е. за 1 такт. Это объясняется парафазным представлением вводимого кода. Вы- вод также парафазный, для чего необходимо подать 1 на шину "Вывод". Однофазный регистр на D-триггерах: -T--¬ O S ¦ TT ¦ ¦ ¦ + X(i) ¦ D ¦ ¦ ¦ ¦ ¦ -¬ -->¦ C ¦ ¦ --+& ¦ ¦ ¦ ¦ O-- ¦ O X(i) ¦ O R ¦ ¦ --+ ¦ ¦ L+ ¦ L- Ввод-+--+-- Вывод прямого кода--+-- Значения подаются на входы D соответствующих триггеров, а сигнал "Ввод" подается подается на входы C, причем предвари- тельная установка в "0" не требуется. Парафазный регистр на JK-триггерах: -T¬ O S ¦ TT ¦ ++ ¦ -¬ X(i) + J ¦ ++& ¦ _ ¦ ¦ ¦ ¦ O X(i) -->¦ C ¦ ¦ --+ ¦ _ ¦ ¦ ¦ ¦ ¦ L- X(i) +--+ K ¦ O-- ¦ ¦ ++ ¦ ¦ ¦ O R ¦ ¦ ¦ ¦ L+- ¦ Ввод-++-- Вывод обратного кода-+-- Вводимая информация должна быть представлена в парафазном коде, а выводимая информация может быть в прямом, обратном и парафазном виде. Данный регистр, как и предыдущий, является однотактным. Последовательные регистры (регистры сдвига) В отличие от параллельных регистров, которые не связаны друг с другом, параллельные регистры обязательно связаны между собой. По этим связям при сдвиге информации каждый триггер передает свое состояние соседнему в направлении сдвига тригге- ру и изменяет свое состояние, принимая состояние предыдущего триггера. Информация может передаваться между триггерами как в однофазном так и в парафазном виде, а сдвиг может производить- ся вправо либо влево для простых регистров сдвига или в любом направлении для реверсивных регистров сдвига. Как же построить регистр данного вида? Для этого необхо- димо определить взаимодействие между триггерами: Для D-триггера: RG>: D(i)=Q(i-1) -T¬ -T¬ -O S ¦TT ¦ Q(i) -O S ¦TT ¦ Q(i+1) ++ +¬ ++ + -+ D ¦ ¦ L-+ D ¦ ¦ -->¦ C ¦ ¦ -->¦ C ¦ ¦ ¦ ++ O ¦ ++ O ¦ -O R ¦ ¦ ¦ -O R ¦ ¦ ¦ ¦L+- ¦ ¦L+- Уст."0"--+-+--+-+ Сдвиг-+-+-- Для сдвига влево используется формула: D(i)=Q(i+1). Стро- ится такой регистр аналогично. Вот формулы и схема для для аналогичного регистра на JK-триггерах: _ RG>: J(i)=Q(i-1), K(i)=Q(i-1) -T--¬ Q(i) -T--¬ X(i) -+ J ¦TT ++ J ¦TT +- Q(i+1) ¦ ¦ ¦ ¦ ¦ ¦ ->¦ C ¦ ¦ _ ->¦ C ¦ ¦ _ ¦ ¦ ¦ ¦ Q(i) ¦ ¦ ¦ ¦ _ X(i) --+-+ K ¦ O-+-+ K ¦ O- Q(i+1) ¦ L+ ¦ L+ Сдвиг--+-+-- Наиболее экономичной для построения регистров сдвига яв- ляется схема на D-триггерах, которая требует в 2 раза меньше корпусов микросхем по сравнению со схемой на JK-триггерах и в 2 раза меньше связей между триггерами за счет однофазной пере- дачи информации. Реверсивный сдвиговый регистр имеет схемы управления межтриггерными связями для чего обычно используют элементы И-ИЛИ-НЕ. С помощью этих элементов в соответствии с сигналами, управляющими направлением сдвига обеспечиваются связи между триггерами для выполнения сдвига в заданном направлении. В нашем узле мы не будем конструировать сами ни сумматор ни регистры, поскольку все нужные нам элементы уже содержатся в серии микросхем К155. Теперь перейдем к конкретному рассмотрению схемы нашего узла. Входные данные подаются на регистр RG1 в параллельном ви- де. Для этого на входы D1-D8 подаем входные данные а на ос- тальные: V1=V2=R=1, D(+)=D(-)=0. Тогда по приходу синхроим- пульса C1 данные со входов D1-D8 будут занесены в регистр. Об- щая схема работы (с точки зрения синхроимпульсов) приведена ниже: ¦ C1 ¦ --¬ +-- L +- ¦ --¬ C2 +- L- +- ¦ --¬ --¬ --¬ --¬ --¬ --¬ --¬ C3 + L-- L-- L-- L-- L-- L-- L-- L- Затем, как видно из вышеприведенной схемы, данные с выхо- дов 2-8 регистра RG1 поступают на входы D1-D7 регистра RG2, причем на вход D8 подается 0. Абсолютно аналогично, то есть подав V1=V2=R=1, D(+)=D(-)=0 мы заносим данные (это мантисса числа, которую нам надо нормализовать) по приходу синхроим- пульса C2 в регистр RG2. По приходу этого же синхроимпульса в регистр RG4 заносится 7d=111b - это сразу смещенный порядок числа. Затем, начинается подача импульсов C3. Что же происхо- дит при этом? Здесь начинает работать логика на элементах И-НЕ. То есть, проверяется содержится ли в старшем разряде мантиссы 0 (выход 1 регистра ...

ВНИМАНИЕ!
Текст просматриваемого вами реферата (доклада, курсовой) урезан на треть (33%)!

Чтобы просматривать этот и другие рефераты полностью, авторизуйтесь  на сайте:

Ваш id: Пароль:

РЕГИСТРАЦИЯ НА САЙТЕ
Простая ссылка на эту работу:
Ссылка для размещения на форуме:
HTML-гиперссылка:



Добавлено: 2010.11.21
Просмотров: 1240

При использовании материалов сайта, активная ссылка на AREA7.RU обязательная!