УДК 681.325.53: 37: 004.5
Н.Я.КАКУРИН, Ю.В.ЛОПУХИН, В.В. ВАРЕЦА, В.В. КАТАСОНОВ, А.Н. МАКАРЕНКО
АНАЛИЗ ПРЕОБРАЗОВАТЕЛЕЙ ДВОИЧНО-К-ИЧНОГО КОДА В ДВОИЧНЫЙ КОД ПО МЕТОДУ ДОСЧЕТА
Рассматривается структура и функционирование преобразователей двоично-К-ично-го кода в двоичный код. Выполняется анализ их основных характеристик.
1. Постановка задачи
В современных универсальных ЭВМ преобразование чисел выполняется обычно программным способом, что приводит к уменьшению производительности центрального процессора. При использовании специальных преобразователей кодов (ПК) в качестве пред-процессоров и постпроцессоров этого не происходит [1].
В результате увеличивается производительность ЭВМ, а в случае применения преобразователей кодов в интерфейсах ввода-вывода информации улучшаются их основные характеристики.
Преимуществом преобразователей кодов по методу досчета (ПК ДСЧ) являются малые аппаратурные затраты, схемная простота и линейная зависимость аппаратурных затрат от разрядности входного кода и невысокая стоимость.
Следует отметить, что стоимость ПК ДСЧ является по отношению к аппаратурным затратам вторичной и определяет качество схемы в зависимости от типов применяемых элементов.
Целью настоящей работы является:
- анализ основных характеристик ПК ДСЧ;
- рассмотрение методики нахождения ПК ДСЧ с максимальным быстродействием;
- сравнительная характеристика основных параметров структур ПК ДСЧ, а также анализ программного средства для расчета основных характеристик ПК этого типа.
2. Структура и функционирование многосекционного ПК ДСЧ
В простейшем случае преобразователем ПК ДСЧ из К-ичной системы в двоичную является односекционная схема, содержащая один входной вычитающий счетчик (в К-ичной системе) и один выходной суммирующий в двоичной системе счета.
Недостатком односекционного ПК ДСЧ является значительное число тактов на преобразование максимального числа.
Пусть система счисления на входе - К; система счисления на выходе - р; число входных разрядов - пе; длительность периода импульсов генератора - ТГ .
Тогда при К=10; р=2; "2=6 время преобразования определяется формулой:
г пр = ТГ ' N макс = ТГ ' (К"2 - 1)
при ТГ = 1 • 10-6 с.; гпр = 1 • 10-6(10° - 1) = 1 • 10"° • 999999 = 0,999999с «1с.
В целях ускорения процесса преобразования чисел можно использовать различные приемы, в частности разбиение входных и выходных счетчиков на две [2,3] или на большее число секций [4].
Преобразование чисел в многосекционном ПК ДСЧ (рис.1) происходит путем последовательно-возвратного обнуления каждого входного счетчика. При этом способе обнуление входного счетчика второй секции начинается только после полного обнуления входного счетчика первой секции, обнуление третьей секции возможно после полного обнуления предыдущих входных секций, т.е. второй и первой.
л-6
Рис. 1. Структура многосекционного ПК ДСЧ
Преобразователь содержит п2 преобразующих секций I; каждая преобразующая секция I - декаду (при К =10) двоично-десятичного счетчика 3, двоичный (р=2) счетчик 2, дешифратор нуля 4, элемент И 5. Все секции I, кроме младшей, содержат элемент ИЛИ 6; все секции, кроме старшей, - элемент НЕ 7. Все преобразующие секции, кроме старшей, содержат шифраторы 8.
Преобразователь содержит генератор импульсов 9 и вход пуска 10. Обозначим коэффициент пересчета двоичных счетчиков 3; через М;(1 = 1,п/). Устройство работает следующим образом. В исходном состоянии в К-ичных счетчиках 3; (1 = 1,п2) записаны числа аьа2,...,ап преобразуемого К-ичного кода, а двоичные счетчики 2;(1 = 1,п/) установлены в нуль. При этом на выходе дешифратора нуля 4i появляется запрещающий потенциал, если в двоично-десятичном счетчике 31 записано какое-либо число, отличное от нуля. По
сигналу "Пуск" импульсы с выхода генератора 9 поступают через элемент И 51 на счетный вход вычитания счетчика 31 и на счетный вход сложения счетчика 21 и производят вычитание единиц из счетчика 31 и прибавление единиц в счетчик 21 (по единице на каждый импульс) до тех пор, пока в счетчике 31 не установится нуль. Таким образом, число а^ будет перенесено в двоичный счетчик 21. Если а1 больше или равно максимальному двоичному числу 23 , которое может быть записано в счетчик 21 , то в процессе прибавления единиц в счетчик 21 с его выхода возникнет единица переноса, которая через элемент ИЛИ 62 поступает на счетный вход счетчика 22 , а в счетчике 21 останется число ш1 = а! - 23 .
Если а! < 23, то в счетчике 21 остается число ш1 = а!.
На выходе дешифратора нуля 41 появляется разрешающий потенциал, а на выходе элемента НЕ 71 - запрещающий. Импульс с выхода генератора 9 проходит через элемент И 52 и производит вычитание единицы из счетчика 3 2, прибавление единицы в счетчик 2 2 и через шифратор 8 - установку числа Я2 = Я21 = 10 - М]^ в счетчик 31. На выходе дешифратора 41 снова появляется запрещающий потенциал, а на выходе элемента НЕ 71 -разрешающий. Следующая серия импульсов производит вычитание числа Я 21 из счетчика 31 и прибавление этого числа в счетчик 21 . Если при этом возникает переполнение счетчика 21 , то единица переноса через элемент ИЛИ 6 2 поступает на счетный вход счетчика 2 2 . Такая последовательность действий циклически продолжается до тех пор, пока число из счетчика 32 не будет полностью перенесено в счетчик 22. После этого открывается элемент И 5 следующей секции I и начинается вычитание единиц из счетчика 3 и прибавление их в счетчик 2 этой секции.
Процесс разбиения выходных счетчиков на секции будет детально рассмотрен в пункте 3. Сейчас примем, что входные счетчики 3; (1 = 1,ие) содержат по одному К-ичному разряду, а выходные счетчики 2; содержат соответственно (3,3,4,3,3,3) разрядов (число справа соответствует числу двоичных разрядов первой секции; число слева - шестой секции).
Модель процесса преобразования трехсекционного ПК ДСЧ с представлением для удобства результатов в десятичной системе представлена в табл.1.
Таблица 1
Такт 0 1 8 9 10 12 13 15
СТВЫХ 000 001 010 011 021 023 033 035
СТВХ Х99 Х98 Х91 Х90 Х82 Х80 Х72 Х70
Такт 16 18 19 20 21 22 24 25
СТВЫХ 045 047 057 060 061 071 073 103
СТВХ Х62 Х60 Х52 Х51 Х50 Х42 Х40 Х32
Такт 27 28 30 31 32 33 34 36
СТВЫХ 105 115 117 127 130 131 141 143
СТВХ Х30 Х22 Х20 Х12 Х11 Х10 Х02 Х00
В табл. 1 символ Х означает, что входной счетчик 3-й секции может принимать значения от 0 до К-1. Проведем интерпретацию результата моделирования (табл. 1).
После 36-го такта в трех младших двоичных счетчиках будут зафиксированы следующие значения бит:
СТВЫХ 3 СТВЫХ 2 СТВЫХ! Биты 987 654 321
Значения бит 001 100 011
Степень бита 876 543 210
Окончательный результат двоичного числа на выходе ПК ДСЧ равен
9910 = 26 + 25 + 21 + 20 = 64 + 32 + 2 + 1 = 11000112 .
3. Методика расчета основных характеристик ПК ДСЧ К-2
Структуру ПК ДСЧ, состоящую из ряда пе секций, будем отображать числами К-ичных
входных разрядов П;(1 = 1,П2к) и числами р-ичных выходных разрядов т^ = 1,П2р) в виде (примем, что пе = К):
тК,тК_1,тК_2,-—,т2т
пмпм_ пм_2 ......,П2,П
(1)
К,ПК_1,ПК_2,......,П 2 , П1 .
Наибольшим быстродействием обладает структура ПК, называемая фундаментальным разбиением (ФР) и содержащая по одному К-ичному разряду на входе. ФР может быть представлено следующей многосекционной структурой ПК:
шк,шк _1,шк_ 2,---,ш2,ш1 ,
1,1,1,......,1,1 . (2)
Число выходных двоичных разрядов Шj секции j определяют из неравенства:
2 Шj 2 п
р < К , (3)
как наибольшую целую степень р, удовлетворяющую неравенству (3). Рассмотрим ряд примеров нахождения структуры секции.
Дано р=2; К=10; пе=6. Для первой секции 2Ш1 < 101; Ш1 = 3; для второй секции
2ш1+ш2 < ю2; 23+3 < 102; 26 < 100; ш2 = 3 ; аналогично для третьей и четвертой секций получим:
2Ш1+Ш2 +Ш3 < 103; 29 < 103; 512 < 1000;Ш3 = 3,
2Ш1+Ш2 +Ш3 +Ш4 < 104; 213 < 104; 8192 < 10000;т4 = 4; для пятой и шестой секций получим соответственно
2ш1+ш2 +шЗ+Ш4+Ш5 < ю5; 216 < 105; 65536 < 100000;т5 = 3 ; 2ш1+ш2 +шз +ш4+ш5 +ш6 < 106; 219 < 106; 524288 < 1000000;т6 = 3 .
Величины корректирующих поправок Я; (1 = 2, К) рассчитывают по формуле
ы ы 2 п 2 Ш1
= К1=1 _ р1=1 . (4)
Тогда для предыдущего примера получим:
Я2 = 101 _23 = 210; Я3 = 102 _23+3 = 100_64 = 3610;
Я4 = 103 _23+3+3 = 103 _29 = 1000_512 = 48810; Я5 = 104 _23+3+3+4 = 104 _213 = 10000_8192 = 180810;
Я6 = 105 _ 23+3+3+4+3 = 105 _ 216 = 100000 _ 65536 = 3446410 .
Общую суммарную поправку Я 1 необходимо разделить на секции по соответствующему числу разрядов в виде корректирующих поправок в секции.
В итоге получим: Я2 = Я21 = 2; Я3 = Я32;Я31;Я32 = 3;Я31 = 6;
Я 4 = Я43;Я42;Я41;Я43 = 4;Я42 = Я41 = 8; Я5 = Я54;Я53;Я52;Я51;Я54 = 1;Я53 = 8;Я52 = 0;Я51 = 8;
Я6 = Я65;Я64;Я63;Я62;Я61;Я65 = 3;Я64 = Я63 = Я61 = 4;Я62 = 6;
Матрицей корректирующих поправок для рассматриваемого примера является:
2 3
Кб0 = [Rij] = 4
5
6
2
36 4 8 8 18 0 8 34464
Преобразование чисел в многосекционной схеме ПК ДСЧ аналогично подсчету числа импульсов в неоднородной позиционной системе счисления с весами Qi (1 = • Весовые коэффициенты Qi определяют по формуле:
Qi =1 + (6)
где К-у - корректирующие поправки из секции 1 в секцию )
Максимальное число тактов преобразователей многосекционного ПК ДСЧ находят из выражения:
Tn = S(Kni - i)Qi
(7)
i=1
В соответствии с формулами (6) и (7) для К=10; р=2; N=6 находим:
Q 1 = 1;Q2 = 1 + К21 • Ql = 1 + 2• 1 = 3^3 = 1 + Яз2 • Q2 + Яз1 • Ql = 1 + 3• 3 + 6• 1 = 16; Q4 = 1 + Я43 • Q3 + Я42 • Q2 + Я41 • Q1 = 1 + 4 -16 + 8 • 3 + 8 -1 = 97; Q5 = 1 + Я54 • Q4 + Я53 • Q3 + Я52 • Q2 + Я51 • Q1 = 1 +1 • 97 + 8 • 16 + 0 • 3 + 81 = 234;
Q6 = 1 + Я65 • Q5 + К64 • Q4 + К63 • Qз + К62 • Q2 + К61 • Ql = = 1 + 3 • 234 + 4 • 97 + 4 • 16 + 36 + 41 = 1177;
Т6 =13752такта.
С помощью рассмотренного выше ПК ДСЧ для ряда значений К=3,5,7,9,10,12; р=2 и N=9 было выполнено разбиение ПК на секции. Результаты приведены в табл. 2.
Таблица 2
К S mi 9 8 7 6 5 4 3 2 1
3 13 2 1 2 2 1 1 1 2 1
5 19 2 2 3 2 2 3 2 2 2
7 25 3 3 3 2 3 3 3 3 2
9 28 3 3 3 4 3 3 3 3 3
10 29 3 3 4 3 3 4 3 3 3
12 32 4 3 4 4 3 4 3 4 3
Структурная схема алгоритма расчета основных параметров ПК ДСЧ из К-ичной системы счисления в двоичную приведена на рис.2.
4. Программное средство для анализа ПК ДСЧ «PREOBRAZOVATEL К-2»
В качестве инструмента для разработки программного пакета «Preobrazovatel К-2» была использована среда программирования Microsoft Visual Studio 2005. Microsoft Visual Studio 2005 - средство быстрой разработки приложений, позволяющее создавать программы на языке C#. Данная среда программирования частично использует принципы RAD. RAD означает быструю разработку приложений. Это концепция позволяет создавать программные продукты, причем особое внимание уделяется быстроте и удобству программирования, созданию технологичного процесса, позволяющего программисту максимально быстро писать компьютерные программы.
При разработке программного средства использовались следующие структуры данных.
Класс Converter : К - входная система счисления;- matrix - двумерный массив, в котором формируется результат вычислений;- N - определяет результирующий размер
матрицы, а также списков n_list, z_list, R_list, Q_list;- n_list - список коэффициентов n;- nz -
входной параметр, который определяет число разрядов в результате вычислений и условие
окончания преобразования, где p - система счисления; Q_list - список коэффициентов Q;
R_list - список коэффициентов R; T - время работы алгоритма преобразования в тактах; z_list - список коэффициентов z.
Методы, используемые в программе: Calculate - функция для преобразования; Convertor - конструктор класса, который выполняет начальную инициализацию переменных в классе; GenerateList - выполняет инициализацию списков п,и z; GenerateMatrix - функция, которая расчитывает результирующую матрицу; GenerateQList - функция для расчета значений Q; GenerateR - функция для расчета значений R; GenerateT - функция для расчета времени выполнения алгоритма; GetBoolArray - функция для преобразования входящего числа R в K-ичную систему счисления; GetInt - функция для преобразования входного числа с K-ичной системы счисления в десятичную; GetN - функция для определения параметра N; IsEndOfListGeneration - определяет условие окончания цикла для преобразования.
После запуска программы появятся три текстовых поля для ввода данных. С помощью этих элементов управления необходимо задать исходные данные для режима преобразования чисел (рис.3).
шттшш^^шжтт
1
р 2_
1 Ю._
nz Б__
[[ Расчет |
Рис. 3. Интерфейс для ввода исходных данных программы «РгеоЬга70уа1е1 К-2» Результат работы программного средства «РгеоЬга20уа1е1 К-2» для р=2; К=10; п7=20 приведен на рис.4. 50
Рис. 4. Результат работы программы «РгеоЪга70уа1е1 К-2» Программное средство работает при р=2; К=3-60. Для К=3 число входных разрядов ^=20; для К=10 (nZ=12); для К=60 (nZ=5)• С помощью данной программы получен и проанализирован ряд основных характеристик многосекционных преобразователей двоич-но-К-ичного кода в двоичный код по методу досчета для р=2 (табл. 3,4).
Таблица 3
К Т9 Т8 Т7 Т6 Т5 Т4 Т3 Т2 Т1
3 294 184 138 78 38 20 10 6 2
5 11608 4288 2248 744 264 120 40 12 4
7 39342 12558 3618 990 582 318 102 30 6
9 98168 22792 8680 6720 1648 400 112 24 8
10 825324 206073 76293 13752 3159 1053 180 36 9
12 1972828 368313 132682 28919 4312 1265 176 66 11
В табл.3 приведено число тактов преобразования Т для числа разрядов 1=1-9 и значений К = 3,5,7,9,10,12. В табл. 4 приведены значения коэффициента выигрыша числа тактов
преобразования многосекционной схемы по сравнению с односекционной Т / Т (1 = 2,9).
Таблица 4
К 9 8 7 6 5 4 3 2 1
3 66,9 35,6 15,8 9,3 6,4 4 2,6 2 1
5 168,3 91 34,7 21 11,8 5,2 3,1 2 1
7 1024,9 459 227,6 118,8 28,9 7,5 3,35 1,6 1
9 3945,5 1888,8 551 79,1 35,8 16,4 6,5 3,3 1
10 1211,6 485,3 131 72,7 31,6 9,5 5,55 2,75 1
12 2616,2 1167,4 270 103,3 57,7 16,4 9,8 2,17 1
Выводы
1. Проанализирована структура и функционирование многосекционного ПК двоично-К-ичного кода в двоичный код по методу досчета.
2. Рассмотрен метод расчета основных характеристик ПК ДСЧ: нахождение структуры секций, матрицы корректирующих поправок, весовых коэффициентов секций и числа тактов преобразования фундаментального разбиения.
3. Предложено программное средство «РгеоЬга20уа1е1 К-2», позволяющее автоматизировать этапы системного проектирования и нахождения основных системных характеристик ПК ДСЧ.
4. Выполнен сравнительный анализ структуры секций ФР для различных оснований К=3-12 и показано, что по сравнению с односекционной схемой многосекционный ПК ДСЧ имеет выигрыш в 4-5 порядков, который растет с увеличением основания К и числа входных разрядов nZ.
Научная новизна состоит в разработке метода расчета основных характеристик ПК ДСЧ из К-ичной системы счета в двоичную на основе ФР и реализации этого метода на языке программирования С#.
Практическая значимость результатов исследования заключается в автоматизированном нахождении основных параметров ПК ДСЧ, что позволяет существенно ускорить этап системного проектирования преобразователей этого типа.
Список литературы: 1. СухомлиновМ.М., ВыхованецВ.Н. Преобразователи кодов чисел. Киев: Техника, 1965. 136 с. 2. А.С. 468236 5006Р 5/02. Устройство для преобразования кодов /В.М.Гусятин, Н.В.Али-пов, А.П.Руденко //Открытия, изобретения. 1975. №15. С.108. 3. Макаренко А.Н. Алгоритмизация разбиений преобразователей кодов // АСУ и приборы автоматики. 1990. Вып. 94. С.103-109. 4. А.С. 1153323 5в06Р 5/00. Преобразователь двоичного кода в двоично-К-ичный код / Н.Я.Какурин, Ю.К. Кирьяков, В.М.Гусятин // Открытия, изобретения. 1985. №16. С.167.
Поступила в редколлегию 02.10.2010
Какурин Николай Яковлевич, канд. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: прикладная теория цифровых автоматов, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Лопухин Юрий Владимирович, ст. преподаватель кафедры АПВТ ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Вареца Виталий Викторович, аспирант кафедры автоматизации проектирования вычислительной техники ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326.
Катасонов Валерий Вячеславович, студент группы КИ-07-6 ХНУРЭ. Научные интересы: автоматизация проектирования цифровых устройств, проектирование программного обеспечения. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. Макаренко Анна Николаевна, канд. техн. наук, доцент кафедры информационных технологий Харьковского института банковского дела. Научные интересы: информационные технологии, анализ и синтез преобразователей кодов. Адрес:. Украина, 61074, Харьков, пр. Победы, 55, тел. 336-05-64.