Научная статья на тему 'Программное средство для анализа преобразований чисел в преобразователях кодов параллельного типа'

Программное средство для анализа преобразований чисел в преобразователях кодов параллельного типа Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
107
23
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Какурин Николай Яковлевич, Бочаров Евгений Витальевич, Вареца Виталий Викторович, Полежаев Кирилл Вадимович, Замалеев Юрий Салихович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Какурин Николай Яковлевич, Бочаров Евгений Витальевич, Вареца Виталий Викторович, Полежаев Кирилл Вадимович, Замалеев Юрий Салихович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The software for analizing of a numbers conversion in a code converters of parallel type

The structure and functioning of a parallel type code converters by the method of accumulation of an equivalents and mathematical models of an equivalents former are considered. The analyzing of the software “Transformation” and a comparing of a sequential and parallel strategies of using a conversion steps are performed.

Текст научной работы на тему «Программное средство для анализа преобразований чисел в преобразователях кодов параллельного типа»

УДК 681.325.53: 37 : 004.5

Н.Я. КАКУРИН, Е.В. БОЧАРОВ, В.В. ВАРЕЦА, К.В. ПОЛЕЖАЕВ, Ю.С. ЗАМАЛЕЕВ

ПРОГРАММНОЕ СРЕДСТВО ДЛЯ АНАЛИЗА ПРЕОБРАЗОВАНИЙ ЧИСЕЛ В ПРЕОБРАЗОВАТЕЛЯХ КОДОВ ПАРАЛЛЕЛЬНОГО ТИПА

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

1. Постановка задачи

Достоинствами преобразователей кодов по методу накопления эквивалентов (ПК НКЭ) являются малые аппаратурные затраты (небольшое число корпусов ИС или число вентилей) и возможность изменения соотношения между быстродействием и аппаратурными затратами за счет выбора числа шагов преобразования, их значений и стратегии использования различных шагов преобразования [1-3].

Такая стратегия может быть последовательной или параллельной.

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

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

Последовательная стратегия по сравнению с параллельной структурно реализуется достаточно просто. Аппаратурные затраты на построение основного блока ПК - формирователь элементов - будут наибольшими.

Для оценки сверху числа тактов преобразования целых чисел с последовательной стратегией в многошаговых ПК выполняют по формулам (1):

Кцел = K-1;

К2ел =](K-1)/a[+a-1; (1)

Кцел =](K-1)/b[+](b-1)/a[+a-1;

n46JI =](K-1 )/c [+](c-1 )/b [+](b-1 )/a[+a-1, где К - основание системы счисления на входе; a, b, c - соответственно второй, третий и четвертый шаги преобразования (первый шаг всегда равен 1); NjI6J, ^ел, , ^ел -соответственно максимальное число тактов преобразования одно-; двух-; трех-; четырех-шагового ПК целых чисел; ] [ - означает округление до меньшего целого.

Для значений шагов преобразования должны выполняться следующие ограничения:

1< a< b; a < b < c; b < c < K-1.

Недостатками использования максимальных значений (i = 1,4) для оценки быст-

родействия являются завышенные требования, которые вызывают необходимость применения в структуре ПК более быстродействующих ИС.

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

Основными задачами работы являются:

- рассмотрение структуры и функционирования ПК НКЭ;

- arnjro структуры и возможностей программного средства в режиме преобразования чисел;

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

2.Структура и функционирование ПК параллельного типа

Увеличения быстродействия ПК НКЭ можно достичь или за счет увеличения числа шагов в наборе до трех 1, a, b (b - третий шаг) при сохранении принципа последовательного использования шагов преобразования (вначале b, затем а и в заключение шаг 1), или путем параллельного (одновременного) вычитания различных шагов из различных разрядных цифр. Усиление локального параллелизма достигается благодаря возможности одновременного использования различных шагов преобразования в различных старших разрядах числа [4].

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

Результаты моделирования для К=10 и наборов шагов (1, 2) и (1,4) даны в табл. 1.

Таблица 1

Последовательная стратегия использования шагов

Номер такта К=10. Набор шагов (1,2) К=10. Набор шагов (1,4)

9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

1 7 6 5 4 3 2 1 0 1 0 5 4 3 2 1 0 3 2 1 0

2 5 4 3 2 1 0 1 0 1 0 1 0 3 2 1 0 3 2 1 0

3 3 2 1 0 1 0 1 0 1 0 0 0 2 1 0 0 2 1 0 0

4 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0

5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Параллельная стратегия использования шагов

Номер такта К=12. Набор шагов (1,4) К=12. Набор шагов (1,5)

11 10 9 8 7 6 5 4 3 2 1 0 11 10 9 8 7 6 5 4 3 2 1 0

1 7 6 5 4 3 2 1 0 2 1 0 0 6 5 4 3 2 1 0 3 2 1 0 0

2 3 2 1 0 2 1 0 0 1 0 0 0 1 0 3 2 1 0 0 2 1 0 0 0

3 2 1 0 0 1 0 0 0 0 0 0 0 0 0 2 1 0 0 0 1 0 0 0 0

4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Из табл.1 следует, что набор шагов (1,4) для К=10 и параллельной стратегии обеспечивает преобразование числа не более чем за 4 такта. Для нахождения всех других наборов шагов следует провести моделирование для всех возможных наборов, что можно сделать с помощью программного средства "Transformation".

Структурная схема двухшагового ПК НКЭ с параллельным использованием шагов приведена на рис. 1.

Закон функционирования эквивалентов для 2-шагового ПК НКЭ с числом резисторов n=3, основанием К=10 и набором шагов (1,4) приведен в табл. 2.

Таблица 2

Номер набора Состояние триггеров Общий вид эквивалента Десятичный код эквивалента Двоичный код эквивалента S2

Второй группы Первой группы

Zi Д3Д2Д1 С3С2С1 S S10 У12У11У10У9 У8У7У6У5 У4У3У2У1

0 00 00 X0 X0 Трансляция младшей тетрады

1 00 01 K1 10 0000 0000 1010

2 00 10 K2 10 0000 0110 0100

3 00 11 K2 + K1 110 0000 0110 1110

4 01 01 aK 40 0000 0010 1000

5 01 11 K2 + aK 140 0000 1000 1100

6 10 10 aK2 400 0001 1001 0000

7 10 11 aK2 + K 410 0001 1001 1010

8 11 11 aK2 + aK 440 0001 1011 1000

Логика управления в двухшаговом ПК параллельного типа выполнена так, чтобы запретить возможность вычитания шага 1, если в этом разряде имеется возможность вычитания

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

Этот принцип управления реализуется в двухшаговом ПК параллельного типа путем замены п входового элемента ИЛИ-НЕ блоком инверторов (инверторы 171, 172), вход каждого из которых связан с единичным выходом соответствующего триггера старшего регистра состояний РГ4, а выход соответствующего инвертора соединяется с управляю-

щими входами схем И-НЕ 81, И-НЕ 82, на информационные входы которых поступают сигналы с единичных выходов триггеров этого разряда младшего регистра состояний РГ3 (рис. 1).

18п

—Р

ШР

+ [

■ 1

V ст

г

П

Е'[

I

ш-Ч

13,

1 СП

2

V 14

1>2

] СО

2

V 15.

ФЗ

~1 з I

+ 1 ■1

V

СТ 1:

1 ^

Ю,

Ё

+ ]

-1 V

ст

и

с 12а

V"

Пуск □станов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

171

17,

П31

г.

нем 7

П

б,

и-Э Л

ГШ

I

J

Рис. 1. Структура и функционирование двухшагового ПК параллельного типа В целях оптимизации аппаратурных затрат на реализацию ФЭ (затраты на построение которого пропорциональны с • 2Р , где Р - число разрядов в блоке) он разбивается на М

блоков. Это целесообразно при п > 5 [5]. Закон функционирования 2-шагового моноблочного ФЭ на текущем Ь-м шаге преобразования в общем виде можно описать выражением:

1=тР

8 ^уда'-1 • К1(Ь),,(1=1-тр) , (2)

1=(т-1)Р+1

где т-номер блока ФЭ т = 1,М; i - номер разряда в блоке; п - общее число преобразованных разрядов. Очевидно, что М = п / Р, а коэффициент у; (Ь) при степени основания К1-1 может принимать три значения в зависимости от состояния триггеров Б; и С' (3):

a,Di * 0;Ci * 0; Yi(h) = j 1,Di = 0;Ci * 0; 0,Di = 0;Ci = 0.

Коэффициент К; (Ь) учитывает вхождение компоненты ьго разряда в (2) для блока т и находится из выражения:

В зависимости от текущего шага преобразования h(h = 1, H), yi(h) и R;(h) могут изменяться, т. е. являются динамически изменяющимися, что относится также и к величине Sm. Число блоков М разбиения ФЭ, как правило, является делителем числа входных разрядов n. В этом случае блоки содержат одинаковое число разрядов р. Чтобы это условие выполнялось всегда, младший преобразуемый разряд x0 следует не транслировать (передавать без изменений) через вентили И20 и схемы ИЛИ21, а включить в состав p разрядов блока 1. Степень К в формуле (2) соответствует этому случаю.

3. Назначение и структура программного средства «Transformation»

К назначениям программного средства относятся:

- возможность имитации работы преобразователя кодов по методу накопления эквивалентов;

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

При разработке данного программного продукта было выбрана наиболее оптимальная по скорости проектирования и эффективности визуальная среда программирования QT для Windows XP/7, программа реализована на языке С++.

Для нормальной работы данной программы необходимы следующие технические средства: процессор не менее 1Ггц, 512 мб ОЗУ, 50 мю дискового пространства, Windows XP/

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

Режим преобразования чисел используется для преобразования числа из К-ичной системы счисления в двоичную. Программа выдает не только окончательный результат преобразования, но и промежуточные результаты в виде таблицы: состояние счетчика, величину эквивалента и состояние накапливающего сумматора на каждом такте преобразования. Имеется возможность задавать различные число шагов преобразования от 1 до 8, основание системы счисления на входе преобразователя - от 3 до 16, разрядность числа - от 2 до 12, веса шагов преобразователя.

Для того чтобы произвести расчет в данном режиме, необходимо запустить программу путем активизации исполняемого модуля transformation.exe.

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

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

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

(4)

Vista/7.

Данные верны?

п= =1

п= =1

к= =1

Останов

Рис. 2. Структурная схема алгоритма режима преобразования чисел

I Преобразователь кодов

тшт

Преобразование | Статистика || О программе Основание:

10

Кол-во цифр: ^ Кол-во шагов. Размер шагов:

4 1

Ийозное'значение:

Преобразовать □ В десяти чном виде

Такт ЛчётчиК

пткмшошшшшо!

щдащмйШШ

иешгаяк

имооопошшооюо

птснтавоошп

11-10ШШШЮЕЮ000Г1

10011100010000

11-101111000000010011

Рис. 3. Главное окно с результатами преобразования числа

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

int showRadix = ui->checkBoxDecimal->checkState() == Qt::Checked ? 10 : 2;

do

{

registerValue = 0; equivalentValue = 0;

for (int i = 0; i < digitsCount; ++i) {

quint8 digit = registerValues.at(i).toInt(), equivalent = 0;

for (int j = 0; j < stepsCount; ++j) {

quint8 step = stepsSizes.at(j).toInt(); if (step <= digit && step > equivalent) equivalent = step;

}

digit -= equivalent;

registerValues.replace(i, QString("%0").arg(digit)); registerValue += digit * power(radix, digitsCount - i - 1); equivalentValue += equivalent * power(radix, digitsCount - i - 1);

}

sum += equivalentValue;

item = new QStandardItem(QString::number(row + 1, 10)); model.setItem(row, 0, item);

item = new QStandardItem(registerValues.join(" ")); model.setItem(row, 1, item);

item = new QStandardItem(QString::number(equivalentValue, showRadix)); model.setItem(row, 2, item);

item = new QStandardItem(QString::number(sum, showRadix)); model.setItem(row, 3, item);

++row; }

В алгоритме реализован ряд проверок, в частности проверка на совпадение количества разрядов размерности регистров. С помощью разработанного программного средства для различных пар шагов (1, а) 2-шагового ПК НКЭ получены значения числа тактов преобразования (столбец 2 в табл.3). В столбце 1 табл. 3 приведены значения числа тактов преобразования для последовательной стратегии использования шагов.

Таблица 3

Второй Основание системы счисления К

шаг

12 11 10 9 8 7 6 5 4 3

а 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

2 6 6 6 5 5 5 5 4 4 4 4 3 3 3 3 2 2 2 2 1

3 5 5 5 4 5 4 4 4 4 3 4 3 3 3 3 2 3 2

4 5 5 5 4 5 4 5 4 4 4 4 3 4 3 4 3

5 6 5 6 5 5 5 5 4 5 4 5 4 5 4

6 6 6 6 5 6 5 6 5 6 5 6 5

7 7 6 7 6 7 6 7 6 7 6

8 8 7 8 7 8 7 8 7

9 9 8 9 8 9 8

10 10 9 10 9

11 11 10

Из анализа табл.3 следует, что для К=11 и К=10 при параллельной стратегии использования шагов достигается уменьшение числа тактов преобразования по сравнению с последовательной на 20%, для К=8 и К=7- на 25%, для К=5 - на 33%, и для К=3 на 50%. Для значений К=12, 9, 6, 4 выигрыш отсутствует. Выводы

1. Рассмотрена структура и функционирование ПК НКЭ с параллельной стратегией использования шагов.

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

3. Предложено новое программное средство "Transformation", позволяющее моделировать процесс преобразования чисел в ПК НКЭ и выполнять его анализ при различных основаниях и наборах шагов.

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

.Список литературы: 1. Самофалов К.Г., Корнейчук В.И., Тарасенко В.П. Цифровые ЭВМ.Киев: Вища школа, 1989. 424 с. 2. А.С. 1647908 5НОЗМ 7/12. Преобразователь двоично-К-ичного кода в двоичный код /Н.Я.Какурин, Ю.К. Кирьяков, А.Н. Макаренко // Открытия, изобретения. 1991 №17. с. 262-263. 3.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

A.С. 1783618 5НОЗМ 7/12. Преобразователь двоично-К-ичного кода в двоичный код /Н.Я.Какурин, А.Н. Макаренко, Д.Ю. Исхаков,В.А. Толмацкий // Открытия, изобретения. 1984 .№44. С. 250. 4. КакуринН.Я.,

B.В. Вареца, С.Н. Коваленко. Параллельная стратегия использования шагов в двухшаговых преобразователях кода //АСУ и приборы автоматики. 2007. Вып.141. С.29-36. 5. ГолянВ.В., КакуринН.Я., Макаренко А.Н., ЗамалеевЮ.С., НиколаевА.А. Двухкритериальный системный синтез преобразователей кодов по методу накопления эквивалентов//АСУ и приборы автоматики. 2005. Вып. 133. С. 102-107.

Поступила в редколлегию 28.02.2011 Какурин Николай Яковлевич, канд. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: прикладная теория цифровых автоматов, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326.

Бочаров Евгений Витальевич, студент группы КИ-07-6 ХНУРЭ. Научные интересы: автоматизация проектирования цифровых устройств, проектирование программного обеспечения. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326.

Вареца Виталий Викторович, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Полежаев Кирилл Вадимович, студент группы СИ-07- ХНУРЭ. Научные интересы: автоматизация проектирования цифровых устройств, проектирование программного обеспечения. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. Замалеев Юрий Салихович , канд. техн. наук, доцент кафедры ПМ и ИТ Харьковской национальной академии городского хозяйства. Научные интересы: моделирование сложных систем управления, программирование, теория цифровых интегрирующих структур. Адрес: Украина, 61204, Харьков, пр. Победы, 68-А, кв. 17, тел. 336-77-84.

i Надоели баннеры? Вы всегда можете отключить рекламу.