устройство для вычисления функции
Классы МПК: | G06F7/552 для возведения в степень или извлечения корня |
Автор(ы): | Арсени В.Ф., Бородянский М.Е., Гончаров С.А., Якименко Г.М., Плахатнюк Р.П. |
Патентообладатель(и): | Научное конструкторское бюро "Миус" |
Приоритеты: |
подача заявки:
1990-06-25 публикация патента:
09.02.1995 |
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных машинах и структурах. С целью повышения быстродействия в устройство введены четыре регистра, коммутатор, второй регистр сдвига, два сумматора-вычитателя и определитель знака. Блок синхронизации осуществляет синхронизацию и последовательность выполнения операций отдельных узлов устройства. В регистрах 5, 9, 11 и 14 осуществляется хранение промежуточных результатов вычисления, а в регистрах 6 и 13 - операции сдвига промежуточных результатов на число разрядов, соответствующее номеру цикла. В сумматорах 7 и 8 вычисляется уточненное значение функции. 3 ил.
Рисунок 1, Рисунок 2, Рисунок 3
Формула изобретения
УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ ФУНКЦИИ , патент № 2028661" SRC="/images/patents/445/2028661/2028661-10t.gif" ALIGN="ABSMIDDLE">, содержащее первые сумматор, сумматор - вычитатель, регистр сдвига, коммутатор и блок синхронизации, отличающееся тем, что, с целью повышения быстродействия, в него введены с первого по четвертый регистры, второй коммутатор, второй регистр сдвига, второй и третий сумматоры-вычитатели, определитель знака, причем информационный вход и вход константы устройства соединены соответственно с первым и вторым входами сумматора и первого сумматора-вычитателя, выходы которых подключены к первым информационным входам первого и второго коммутаторов, выходы которых соединены с информационными входами первого и второго регистров, выход первого регистра соединен с информационными входами первого и второго сумматоров-вычитателей, регистра сдвига, выход которого подключен к первому информационному входу третьего сумматора-вычитателя, выход которого подключен к информационному входу третьего регистра, выход которого соединен с вторым информационным входом второго коммутатора, выход второго регистра соединен с информационным входом второго регистра сдвига, с вторым информационным входом третьего сумматора-вычитателя и первым входом определителя знака, выход которого соединен с третьим информационным входом третьего сумматора-вычитателя и с вторым информационным входом второго сумматора-вычитателя, третий информационный вход которого подключен к выходу второго регистра сдвига, а выход - к информационному входу четвертого регистра, выход которого подключен к второму информационному входу второго коммутатора и к выходу устройства, вход запуска блока синхронизации соединен с входом запуска устройства, а первый выход - с входами управления записью сумматора и первого сумматора-вычитателя, второй выход блока синхронизации соединен с входами разрешения записи первого и второго регистров, третий и четвертый выходы соединены соответственно с входами разрешения записи и сдвига первого и второго регистров сдвига, пятый выход блока синхронизации подключен к входам вычитания второго и третьего сумматоров-вычитателей и второму входу определителя знака, а шестой выход - к входам разрешения записи третьего и четвертого регистров и управляющим входам первого и второго коммутаторов, седьмой выход блока синхронизации является выходом окончания вычисления.Описание изобретения к патенту
Изобретение относится к вычислительной технике, может быть использовано в цифровых вычислительных машинах и вычислительных системах. Известно устройство для извлечения квадратных корней [1], содержащее три интегратора использующее пилообразные сигналы двух интеграторов поочередно в качестве входного сигнала третьего генератора. Уровень выходного сигнала третьего интегратора контролируется с целью включения и выключения первых двух интеграторов. Недостатком является низкая точность вычислений и сложность используемых блоков. Известно другое техническое решение, содержащее два интегратора, два сумматора, сдвиговый регистр, причем первый вход первого сумматора соединен с выходом первого интегратора, выход первого сумматора подключен к первому входу второго интегратора первый вход первого интегратора соединен с первым входом второго сумматора, второй вход второго сумматора подключен к первому входу сдвигового регистра, а выход второго сумматора соединен с входом сдвигового регистра. Недостатком этого устройства являются большие аппаратурные затраты и низкое быстродействие. Наиболее близким техническим решением является "Устройство для вычисления функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-3t.gif" ALIGN="ABSMIDDLE">", содержащее три интегратора, коммутатор, два сумматора и сдвиговый регистр, причем первый вход первого сумматора соединен с выходом первого интегратора, выход первого сумматора подключен к первому входу второго интегратора, первый вход интегратора соединен с первым входом второго сумматора, второй вход сумматора подключен к первому выходу сдвигового регистра, а выход второго сумматора соединен со входом сдвигового регистра, второй выход сдвигового регистра соединен со входом коммутатора, первый выход которого подключен ко второму входу первого интегратора, а второй выход - ко второму входу второго интегратора, выход второго интегратора соединен с первым входом третьего интегратора, второй вход которого подключен к первому входу второго интегратора, а выход соединен с вторым входом первого сумматора. Недостатком устройства является высокая сложность входящих в него блоков (интеграторов) и низкое быстродействие. Целью предлагаемого изобретения является повышение быстродействия и сокращения оборудования устройства. Поставленная цель достигается тем, что в устройство для вычисления функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-4t.gif" ALIGN="ABSMIDDLE">, содержащее первые сумматор, сумматор-вычитатель, регистр сдвига, первый коммутатор и блок синхронизации, введены с первого по четвертый регистры, второй коммутатор, второй регистр сдвига, второй и третий сумматоры-вычитатели, определитель знака, причем информационный вход и вход константы устройства соединены соответственно с первым и вторым входами сумматора и первого сумматора-вычитателя, выходы которых подключены к первым информационным входам первого и второго коммутаторов, выходы которых соединены с информационными входами первого и второго регистров, выход первого регистра соединен с информационными входами второго сумматора-вычитателя и первого регистра сдвига, выход которого подключен к первому информационному входу третьего сумматора-вычитателя, выход которого подключен к информационному входу третьего регистра, выход которого соединен со вторым информационным входом второго коммутатора, выход второго регистра соединен с информационным входом второго регистра сдвига, со вторым информационным входом третьего сумматора-вычитателя и первым входом определителя знака, выход которого соединен с третьим информационным входом третьего сумматора-вычитателя и со вторым информационным входом второго сумматора-вычитателя, третий информационный вход которого подключен к выходу второго регистра сдвига, а выход - к информационному входу четвертого регистра, выход которого подключен ко второму информационному входу второго коммутатора и к выходу устройства, вход запуска блока синхронизации соединен с входом запуска устройства, а первый выход - с входами управления записью сумматора и первого сумматора-вычитателя, второй выход блока синхронизации соединен с входами разрешения записи первого и второго регистров, третий и четвертый выходы соединены соответственно с входами разрешения записи и сдвига первого и второго регистров сдвига, пятый выход блока синхронизации подключен ко входам вычитания второго и третьего сумматоров-вычитателей и второму входу определителя знака, а шестой выход - к входам разрешения записи третьего и четвертого регистров и управляющим входам первого и второго коммутаторов, седьмой выход блока синхронизации является выходом окончания вычисления. Анализ предложенного технического решения показывает, что в сравнении с аналогом и прототипом они содержат два сумматора-вычитателя, сдвиговый регистр, четыре регистра, шинные коммутаторы, определитель знака, которые отсутствуют в аналоге и прототипа, причем выполнение этими блоками функции обеспечивают высокое быстродействие при существенном упрощении устройства в целом. Таким образом, за счет наличия вышеперечисленных блоков и принадлежащих им связей заявленное техническое решение соответствует критериям новизны по сравнению с прототипом и существенными отличиями по сравнению с аналогом. Для подтверждения возможности поставленной цели приводим следующие рассуждения. В основу работы предлагаемого устройства положен следующий алгоритм. yi+1= yi-, патент № 2028661" SRC="/images/patents/445/2028007/949.gif" ALIGN="ABSMIDDLE">i2-ixi, xn=, патент № 2028661" SRC="/images/patents/445/2028661/2028661-5t.gif" ALIGN="ABSMIDDLE">xi+1=xi-, патент № 2028661" SRC="/images/patents/445/2028007/949.gif" ALIGN="ABSMIDDLE">i 2-iyi,x1=K+x,
(1)
, патент № 2028661" SRC="/images/patents/445/2028007/949.gif" ALIGN="ABSMIDDLE">i=sign yi,y1=x-K,
i = 1,2,3, ..., n, где К = 0.68853742, h - длина разрядной сетки устройства. Алгоритм (1) представляет собой модифицированный нами метод Волдера (Попов Б.А., Теслер Г.С. Вычисление функции на ЭВМ. Справочник, Киев, Наукова думка, 1984, - 598 с). Методом математического моделирования - вычисление функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-6t.gif" ALIGN="ABSMIDDLE"> на ЭВМ общего назначения методом предлагаемого вычислительного устройства была определена постоянная К. На фиг. 1 представлена структурная схема для вычисления функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-7t.gif" ALIGN="ABSMIDDLE"> на фиг. 2 - вариант реализации устройства управления к нему, на фиг. 3 - временная диаграмма работы основных узлов устройства. В состав устройства входят (фиг.1) шина Ш1 входного числа Х, сумматор С2, вычитатель С3, шинный коммутатор К4, первый регистр RG5, первый сдвиговый регистр RG6, управляемые сумматоры - вычитатели С7, С8, второй регистр RG9, второй шинный коммутатор К10, третий регистр RG11, определитель знака 012, второй сдвиговый регистр RG13, четвертый регистр RG14, выходная шина Ш15, блок управления БУ16, шина "Пуск" 17, шина константы К18, шина синхронизации конца вычислений Ш19. Шина Ш1 входного числа Х подключена к первым входам сумматоров С2 и вычитателя С3, вторые входы которых соединены с шиной константы К18. Выход сумматора С2 через шинный коммутатор К4 подключен к первому входу первого регистра RG5, выход которого соединен с первыми входами первого сдвигового регистра RG6 и второго сумматора С7. Выход регистра RG6 через третий сумматор С8 подключен ко входу третьего регистра RG9, выход которого соединен через шинный коммутатор К10 со входом четвертого регистра RG11, выход которого подключен к первым входам определителя знака 012 и второго сдвигового регистра RG13 и второму входу сумматора С8. Выход регистра RG13 соединен со вторым входом сумматора C7, выход которого подключен к первому входу шестого регистра RG14, выход которого соединен со вторым входом шинного коммутатора К4 и выходной шиной Ш15. Выход сумматора С3 подключен ко второму входу шинного коммутатора К10, к третьему входу подключен третий вход сумматора С2 и первый выход блока управления БУ16, второй выход которого подключен к управляющим входам регистров RG5 и RG11, третий и четвертый - к управляющим входам сдвиговых регистров 66 и 13, пятый - к тактирующим входам сумматоров С7 и С8 и ко второму входу определителя знака 012, шестой - ко вторым входам регистров RG9 и RG14 и управляющим входам шинных коммутаторов К4 и К10, седьмой к шине синхронизации Ш19, а ко входу БУ16 подключена шина "Пуск" 17. На фиг. 2 приведен пример реализации блока управления БУ16. В его состав входят вентиль В20, сдвиговый регистр RG21, триггер Tr22, элемент задержки Эз23, счетчик Ст24, сдвиговый регистр RG25, дешифратор DC26, триггер Tr27, вентиль В28, генератор Г29, триггер Tr30, вентиль В31, генератор Г32. Выход генератора Г32 через вентиль В20 соединен с первым входом сдвигового регистра RG21. Первый вход блока БУ26 соединен с шиной "Пуск" 17 и с первым входом триггера Tr22, через элемент задержки Эз23 с первым выходом БУ16, с первым входом счетчика Ст24, второй вход которого подключен к первому выходу RG21, второму выходу БУ16 и первому установочному входу регистра RG25, а выход через дешифра- тор DC26 соединен с входами регистра RG25, выход которого подключен к первому входу триггера Tr27, второй вход которого соединен с третьим выходом RG21 и входом управления записью RG25, а выход через вентиль В28 - с четвертым выходом БУ16 и с управляющим входом регистра RG25, второй выход RG21 подключен к третьему выходу БУ16. Ко второму входу вентиля В28 подключен генератор Г29. Четвертый и пятый выходы RG21 соединены соответственно с пятым и шестым выходами БУ16.n-й выход дешифратор DC26 соединен со вторым входом триггера Tr30, выход которого через вентиль В31 соединен со вторым входом триггера Tr30, выход которого через вентиль В31 соединен со вторым входом триггера Tr32. Второй вход вентиля В31 соединен с четвертым выходом регистра RG21. Второй вход вентиля В30 соединен с входом БУ16. Устройство управления обеспечивает по поступлению сигнала с шины "Пуск" 17, выработку управляющих сигналов с выходом с первого по шестой, причем за весь цикл обработки на первом выходе будет один импульс, на втором, третьем, пятом и шестом по n импульсов (где n-разрядность устройства и, соответственно, количество циклов), а на четвертом выходе во время третьего такта каждого цикла появляется последовательность импульсов, количество которых совпадает с номером цикла. Блок управления БУ16 работает следующим образом. По команде "Пуск" и счетчик Ст24, и регистр RG21, и триггеры Tr30, Tr22 устанавливаются в исходное состояние, а также через элемент задержки Эз23 сигнал проходит на первый выход БУ16. Импульсы с генератора Г32, проходя через вентиль В20, осуществляют продвижение единицы в сдвиговом регистре RG21. Поэтому на выходах втором, третьем, пятом и шестом вырабатываются импульсы управления. Помимо этого каждый импульс с первого выхода регистра RG21 поступает на счетный вход счетчика Ст24, состояние которого дешифрируется дешифратором DC26 и на этом же также обнуляется регистр RG25. Импульсом с третьего выхода триггер Tr27 переводится в нулевое состояние и разрешает прохождение импульсов с генератора Г29 через вентиль В28 на четвертый выход блока управления и на управляющий вход сдвигового регистра RG25, в который по импульсу с третьего выхода RG21 заносится код, содержащий единицу в разряде, номер которого соответствует числу в счетчике Ст24. На четвертый выход БУ16 пройдет столько импульсов с генератора Г29 сколько тактов понадобится для сдвига кода в регистре RG25 до появления единицы в первом его разряде. При этом триггер Tr27 переходит в единичное состояние и запирает вентиль В28. Когда в счетчике Ст24 устанавливается число, равное выбранному числу итераций, обеспечивающему требуемую точность вычислений, с выхода дешифратора DC26 импульс перебросит триггер Tr30 в единичное состояние и разрешит прохождение через В31 импульса с пятого выхода регистра RG21, по которому на седьмом выходе БУ16 появляется признак окончания вычисления, а триггер Tr22 устанавливается в единичное состояние. Вентиль В20 оказывается закрытым и импульсы с генератора Г32 перестают поступать на сдвигающий вход регистра RG21. Блок управления остается в этом состоянии до прихода следующего импульса "Пуск". Устройство для вычисления функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-8t.gif" ALIGN="ABSMIDDLE"> (см.фиг.3) работает следующим образом. В исходном состоянии все регистры обнуляются, а по команде "Пуск" блок управления БУ16 на первом выходе вырабатывает импульс, обеспечивающий вычисления в сумматоре и вычитателе С2, С3 соответственно чисел x1 = x + k и y1 = X-k, которые через шинные коммутаторы К4 и К10 поступают на вход RG5 и RG11. По первому такту, когда сигнал формируется на втором выходе БУ16, в регистре RG5 и RG11 записываются эти числа. По второму такту, поступающему с третьего выхода БУ 16, информация записывается в регистры RG6 и RG13, причем серия импульсов, поступающая на управляющие сдвиговые входы регистров RG6 и RG13 в третьем также обеспечивает сдвиг информации в регистрах на число разрядов, равное номеру цикла вычислений. (В первом цикле сдвиг происходит на один разряд). По четвертому такту поступающему с пятого выхода БУ16, с учетом информации с выхода 0/2 в сумматорах-вычислителях С7 и С8 осуществляется вычисление yi+1, xi+1 по формулам (1) и по пятому такту результаты переписываются в регистры RG9 и RG14. В первом цикле вычислений по пятому такту шинные коммутаторы подключают ко входам регистров RG5 и RG11 вместо выходов С2 и С3 выходы регистров RG9 и RG14, признаком окончания вычислений является появление импульса на шине Ш19. Таким образом, выигрыш в технико-экономических показателях очевиден. Благодаря наличию простых операций - сложение и сдвиг - становится простым по оборудованию предлагаемое вычислительное устройство. Кроме того, оно превосходит (не уступает) в быстродействии и устройство описанное в прототипе. Пусть предлагаемое вычислительное устройство имеет разрядную сетку n= 16. Будем считать время выполнения операции сложения - t, операции сдвига t/16. Тогда благодаря параллельности вычислительного процесса (1) время вычисления функции y= , патент № 2028661" SRC="/images/patents/445/2028661/2028661-9t.gif" ALIGN="ABSMIDDLE"> определится так:
Т = (16 слож + 130/16 сдвигов) t = 24t
Время вычисления в предлагаемом устройстве определяется по формуле
Т = (16 + 16/2 + 3)t - 27t.