ФОРМИРОВАНИЕ СОСТАВА МАКРОКОМАНД МИКРОПРОЦЕССОРА С ВЫЧИСЛИТЕЛЬНОЙ БАЗОЙ НА ОСНОВЕ СИСТЕМЫ ОСТАТОЧНЫХ КЛАССОВ
Аннотация и ключевые слова
Аннотация (русский):
Описана процедура формирования макрокоманд микропроцессора, предназначенного для использования в конкретной сфере деятельности. Вычислительная среда процессора построена на основе системы остаточных классов. На основе процедуры системного анализа сформирован набор из более чем 93 основных макрокоманд. Предложены оценки важности отдельных групп микрокоманд и общая структура одной из основных операций вычислительной системы - операции сложения двух чисел. Предлагаемая методология организации микропроцессора на основе систем остаточных классов позволяет обеспечить конфиденциальность данных даже в процессе их обработки микропроцессором и при хранении в оперативной памяти. Полученные результаты могут представлять интерес при проектировании микропроцессорных устройств.

Ключевые слова:
микропроцессор, система остаточных классов, макрокоманды, сложение чисел в модульной арифметике, классификация
Текст
Введение В настоящее время микропроцессорные устройства проникают в самые разные сферы деятельности человека, начиная с производства, где ими оснащаются все двигательные, контрольные и управляющие элементы технических и электронных устройств, и кончая искусством (электронные музыкальные инструменты, средства компьютерной анимации в кинопроизводстве), медициной (прежде всего, современные диагностические системы). Несмотря на разнообразие сфер применения микропроцессоров (МП) и наличия у каждой из сфер своих ярко выраженных особенностей, число типов производимых МП существенно меньше, и в разных, иногда очень отдаленных друг от друга предметных областях используются одинаковые МП. Причиной этого является прежде всего экономическая целесообразность, поскольку массовое производство универсальных МП обеспечивает существенно более низкую себестоимость изделий ввиду больших объемов производства и значимых затрат при проектировании МП, ориентированных на более узкую сферу применения. Однако рынок, требующий повышения качества и эффективности продукции, заставляет производителей постепенно расширять ассортимент типов МП, несмотря на повышение себестоимости конечной продукции. Одним из возможных путей снижения себестоимости неуниверсальных МП, ориентированных на относительно узкую сферу применения, и МП специального назначения является внедрение средств автоматизированного проектирования, учитывающих специфические требования к МП. Для автоматизации процесса проектирования необходимо формализовать возможные специфические макрокоманды (под макрокомандой понимается наиболее простое законченное действие). Возможным способом формализации набора макрокоманд является разработка процедуры их системной классификации. На основе результатов системной классификации и формируется искомый набор. Описанная схема формирования набора макрокоманд МП, ориентированного на использование в конкретной предметной области, и рассматривается в ходе предпринятого нами исследования. Публикаций по указанной тематике в открытой литературе практически нет. Отметим работы [1-3], где рассматриваются близкие вопросы. Для конкретизации задачи нами в качестве предметной области выбрана одна из наиболее важных сфер - сфера автоматизации технологических процессов производства. Напомним, что конечной целью исследований является формирование процедуры выбора состава макрокоманд для МП, используемых в автоматизированных системах (АС) контроля и управления технологическим процессом. Классификация макрокоманд микропроцессора Для того чтобы сформировать набор макрокоманд МП, необходимо выбрать показатели, по которым будет проводиться анализ и классификация макрокоманд. Выбор конкретного подмножества макрокоманд, которые целесообразно включить в состав МП, зависит от конкретной цели его разработки. Отметим, что каждая макрокоманда реализуется на основе алгоритма, опирающегося на элементарные команды. Вопрос о том, какие из макрокоманд следует реализовывать целиком в МП, а для каких достаточно реализовать элементарные команды, является открытым и равносилен выбору между RISC- и CISC-идеологиями построения МП. Первым показателем является предполагаемая сфера использования МП, поскольку каждая сфера использования имеет свои специфические особенности по преобразованию данных. Например, издательская сфера больше тяготеет к обработке текстовых данных; сфера торгового бизнеса - к базам данных; сфера игровых развлечений - к видеоданным. Ниже рассматривается МП, предназначенный прежде всего для сферы управления производственными технологическими процессами. Вторым показателем выберем возможный характер преобразования данных, что тесно связано с реализацией различных этапов обработки данных. Перечислим возможные этапы преобразования информации, поскольку МП может включать команды, востребованные для каждого из этапов. Этапы преобразования данных: 1) сбор; 2) регистрация; 3) подготовка (первичная обработка); 4) ввод; 5) передача; 6) размещение; 7) обработка; 8) накопление; 9) хранение; 10) архивация; 11) вывод; 12) отображение (визуализация, воспроизведение); 13) интерпретация; 14) уничтожение. Третий показатель - это комплексный показатель, описывающий основные эксплуатационные характеристика МП. В качестве такового выбран один из наиболее важных показателей - быстродействие МП. Четвертый показатель - выбранные принцип и технология организации работы МП, поскольку выбранная технология обычно порождает необходимость введения дополнительных команд, связанных с внутренними процессами преобразования данных в МП. Ниже в качестве базовой выбирается приведенная в [1] концепция построения МП на основе системы остаточных классов (СОК). Ниже перечисляются этапы обработки информации и предлагается возможный вариант наполнения (интерпретации) содержания этих этапов применительно к выбранной сфере приложения на основе выбранной технологии работы процессора. 1. Сбор данных о текущем состоянии управляемого объекта является одним из важнейших этапов в работе автоматизированных систем управления технологическим процессом (АСУ ТП): при некачественных входных данных процесс управления может оказаться неэффективным и даже опасным. Обычно данные поступают от датчиков в непрерывном режиме, но могут собираться и через определенные фиксированные интервалы времени. При возникновении потенциально опасных или ответственных ситуаций величина кванта может динамически изменяться (уменьшаться). Собранные данные поступают в блок регистрации для дальнейшей обработки. Основные микродействия, которые выполняются на данном этапе: 1.1. Выборка данных через определенные кванты, специфичные для каждого типа данных. 1.2. Синхронизация моментов выборки данных. 1.3. Подача сигналов при возникновении аварийных ситуаций в процессе сбора данных, например прекращение поступления данных от некоторого датчика. Здесь под микродействиями понимаются действия уровня МП, охватывающие самые простые законченные процедуры. Каждое микродействие может быть реализовано одной или несколькими (см., например, 5.2, 8.2) макрокомандами. 2. Регистрация собранных данных, которая обычно сводится к оцифровке и фиксации поступающих сигналов от различных датчиков и других устройств, предоставляющих данные. Эти данные часто имеют аналоговую форму; поэтому процесс их оцифровки неоднозначен. Оцифрованные данные размещаются в специальных запоминающих устройствах - регистрах памяти, если регистры свободны. Из регистров данные выбираются микропроцессором в соответствии с заданным алгоритмом. Данный этап также является важным, но в меньшей степени по сравнению с предыдущим, поскольку при возникновении недетерминированных, несистематических погрешностей в отдельных данных ошибки могут частично подправляться на этапе первичной обработки. Основные микродействия: 2.1. Оцифровка поступающих данных. 2.2. Размещение оцифрованных данных в специальных хранилищах - регистрах данных. 2.3. Сигнализация в случае нарушения процесса регистрации - прекращение поступления данных, выхода из строя регистров. 2.4. Приписывание данным моментов их регистрации. 3. Подготовка данных для их использования в составе АС, которая заключается прежде всего в их первичной обработке. Поступающие данные проверяются на соответствие требованиям, предъявляемым к ним, а также фиксированным свойствам, которым они должны удовлетворять. В частности, проверяют на полноту, непротиворечивость, актуальность и своевременность. При невыполнении определенных требований или свойств могут реализовываться процедуры повторных сборов данных, сглаживания, подправка данных (например, для учета условий сбора данных - климатических, технологических), дополнения, фильтрации. Данный этап по значимости сравним с предыдущим, хотя немного менее важен, поскольку перечисленные проблемы могут и должны решаться также на этапе обработки данных. Основные микродействия: 3.1. Проверка данных на полноту, т. е. на наличие всех требуемых данных. 3.2. Проверка данных на непротиворечивость на основе существующих связей между ними и накопленного опыта работы системы. 3.3. Проверка данных на своевременность, т. е. момент регистрации каждого типа данных не должен превышать заданный интервал времени. 3.4. Корректировка данных по климатическим и технологическим параметрам объекта и АС. 3.5. Повторение процедуры сбора отдельных данных, которые не удовлетворяют заданным требованиям. 3.6. Оценка степени искаженности данных. 3.7. Сглаживание данных при наличии значимых помех и искажений. 4. Ввод данных. Данные в АС могут не только поступать от различных технических устройств, но и вводиться субъектом или считываться с различных носителей информации. Данный этап связан, в частности, с необходимостью вмешательства человека в процесс функционирования АС, и поэтому, ввиду важности указанной функции, данный этап имеет наибольший приоритет среди всех этапов. Основные микродействия: 4.1. Чтение данных и их кодирование с использованием СОК - особенности реализации процедуры обсуждаются ниже. 4.2. Выбор области размещения данных. 4.3. Каталогизация данных. 4.4. Размещение данных на носителе. 5. Передача/прием данных от приемного блока АС, находящегося непосредственно в контакте с технологическим процессом производства, к МП для обработки и прием в обратном направлении. Данный этап наиболее уязвим для физических средств воздействия (случайных и злоумышленных), поскольку реализован во внешнем окружении системы обработки. По важности для систем реального времени, в том числе и для АСУ ТП, он не уступает предыдущему. Основные микродействия: 5.1. Выборка очередной порции данных из носителя. 5.2. При передаче: добавление к этим данным необходимых атрибутов для формирования пакета данных: идентификационные параметры пакета, время начала пересылки, контрольные параметры, получатель. 5.3. При приеме: выделение из полученного пакета каждого из сопутствующих атрибутов и непосредственно данных. 5.4. Проверка корректности каждого атрибута. 5.5. Получение подтверждения о доставке пакета. 5.6. При приеме: размещение очередной порции данных на носителе. 5.7. При приеме: проверка контрольных параметров полученного пакета с выдачей соответствующей информации. 6. Размещение данных в памяти для дальнейшей обработки. Данный этап реализуется непосредственно в среде обработки данных. По важности занимает промежуточное положение между этапами 2 (регистрация) и 1 (сбор), поскольку при ошибках и неточностях в размещении данных процедура может быть повторена, но с возможной потерей предыдущей порции данных. Основные микродействия: 6.1. Выбор начального и конечного адресов размещение в памяти. 6.2. Последовательное размещение элементов данных в памяти. 6.3. Табулирование адресных параметров размещения порции данных. 7. Обработка данных. Этап обработки преобразует размещенные в памяти данные в соответствии с заданным алгоритмом обработки. Основная особенность обработки - все основные операции, прежде всего арифметические, реализованы на основе СОК. Все арифметические операции могут быть сформированы на основе операции сложения в модульной арифметике. Поэтому основой реализации МП на основе СОК является операция сложения в СОК, возможный вариант которой приведен в [3]. Данный этап является одним из основных в процессе преобразования данных, но по важности уступает только этапам 4 и 5 (ввод и передача) данных, поскольку допускает повторения. Основные микродействия связаны с формированием процедур реализации арифметических, логических операций и операций передачи управления. Формирования набора микродействий для данного этапа требует самостоятельных исследований. 8. Накопление данных, требующих дальнейшей обработки. Обычно процесс накопления связан с размещением данных в оперативной памяти, но может участвовать память различных устройств вывода и передачи данных. По важности расположен между этапами 6 (размещение) и 2 (регистрация). Основные макрокоманды: 8.1. Выбор требуемого устройства и установление доступа к его памяти. 8.2. Выбор начального и конечного адресов размещения данных. 8.3. Передача и размещение данных в памяти устройства. 9. Хранение данных на жесткой памяти. На данном этапе реализуется процедура размещения на жестком диске данных, которые обычно в данном цикле работы процессора не востребованы. Уровень важности аналогичен предыдущему. Основные микродействия: 9.1. Выбор начального и конечного адресов хранения. 9.2. Пересылка данных и их размещение в выбранной совокупности адресов. 9.3. Фиксация параметров размещения в таблице размещения. 10. Архивация данных, которые в ближайшем будущем не будут востребованы. В качестве носителя может выступать как жесткий диск, так и любой внешний носитель. Уровень важности между уровнями важности этапов 9 (хранение) и 2 (регистрация). Основные микродействия: 10.1. Установление связи с носителем. 10.2. Выбор начального и конечного адресов хранения. 10.3. Передача данных для хранения. 10.4. Фиксация на носителе адресной зоны хранения данных. 11. Вывод данных - на монитор, на печать, передача по сети, на медиаустройство. Уровень важности несколько ниже уровню важности этапа 7 (обработка), поскольку данный этап хотя и важен, но, в отличие от этапа обработки, вывод данных обычно имеет альтернативы. Основные микродействия: 11.1. Установление связи с выбранным устройством вывода. 11.2. Пересылка данных на устройство вывода. 12. Отображение данных, заключающееся в представлении данных в форме, наиболее удобной для восприятия или работы с ними (в частности, визуализация, воспроизведение). Обычно указанная задача решается не на уровне МП, а на уровне системных и прикладных программ, поэтому уровень важности данного этапа преобразования данных в МП самый низкий. Возможным микродействием является: 12.1. Преобразование данных из одной формы в другую. Возможные формы данных (используются при обработке данных): числовая, графическая, текстовая, звуковая. 13. Интерпретация данных осуществляется на уровне прикладных программ и поэтому не представляет интереса для МП. 14. Уничтожение данных, которые больше не нужны. Уровень важности данного этапа для систем управления технологическими процессами невысокий, поскольку после реализации соответствующего управляющего воздействия данные обычно не представляют интереса; поэтому оценивается как равносильный уровню важности этапа 3 (подготовка). Основные микродействия: 14.1. Нахождение атрибутов уничтожаемых данных в каталоге. 14.2. Деактивация данных в каталоге. При жестких требованиях по уничтожению закрытых данных дополнительно потребуются следующие микродействия: 14.3. Нахождение зоны расположения данных. 14.4. Размещение в зоне расположения данных определенных символов - «затирание» данных. Таким образом, сформирована совокупность из не менее чем 45 микродействий (без учета микродействий, связанных с процессом обработки данных), которые охватывают все этапы обработки данных непосредственно с участием МП. Большинство микродействий могут быть реализованы одной макрокомандой. Но, как было указано выше, некоторые из микродействий могут распадаться на совокупности макрокоманд. При проведении анализа была также установлена определенная приоритетность микродействий, которая в рамках стобалльной шкалы может быть представлена в виде следующей таблицы важностей. Экспертная оценка важности этапов обработки данных для микропроцессоров Номер этапа 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Уровень важности 70 30 40 100 100 60 90 50 50 40 80 10 0 20 Оценки важности, приведенные в таблице, могут быть использованы при создании МП с целью распределения усилий и затрат по поддержке микропроцессором разных этапов обработки данных. Структура арифметического блока микропроцессоров на основе системы остаточных классов Выше, при анализе отдельных этапов, один из наиболее важных этапов - этап обработки данных - не был детализирован. В данном разделе проводится обсуждение арифметического блока МП, опирающегося на вычисления в СОК. Основное достоинство данного подхода - обеспечение защищенности данных при их обработке. Поскольку это научное направление достаточно специфично, то кратко напомним основные положения СОК [4-8]. Система остаточных классов - это непозиционная система счисления, числа в которой представляются остатками от деления на выбранную систему оснований , где числа в системе взаимно просты. Именно этот набор чисел и является основой системы обеспечения конфиденциальности данных. Диапазон представимых чисел - от 0 до . Обрабатываемая информация будет представлена в виде последовательности целых положительных чисел Ai. Каждое целое положительное число А представляется в виде набора наименьших положительных остатков (вычетов) от деления числа А на выбранные основания , результат можно записать в виде А = () - это и есть запись числа A в СОК. Основные операции, связанные с преобразованием чисел в процессе их передачи и приема, могут быть сведены к операциям сложения и умножения целых положительных чисел. При этом операции сложения, вычитания и умножения над числами в СОК производятся независимо по каждому основанию без переносов между разрядами (основаниями). Если исходные числа А, В, их сумма А + В и их произведение находятся в диапазоне [0, P), то результаты операций сложения А + В и умножения могут быть однозначно представлены соответственно остатками и по тем же основаниям , т. е. А = (), B = (), А + В = (), = (). После получения данных необходимо преобразовать их обратно из СОК в позиционную систему счисления (ППС). Большинство известных алгоритмов преобразования из СОК в ППС основано на китайской теореме об остатках, в которой приводится следующее соотношение для обратного преобразования [4-9]: если число в СОК по модулю , то , где , а есть решения уравнений . Для повышения быстродействия выполнения арифметических операций в МП могут быть использованы специализированные блоки с представлением данных в СОК. Это позволяет повысить скорость выполнения, например, операций умножения на 1-2 порядка в сравнении с выполнением операций при представлении данных в классической системе счисления [3, 4], а также операции деления [5]. В результате увеличивается скорость вычисления практически всех элементарных функций [6]. Использование табличных методов также позволяет дополнительно увеличить быстродействие [7]. Подчеркнем еще раз, что основой большинства операций арифметического блока является операция сложения. Предлагается следующая схема (рис.) организации арифметического блока на основе использования нескольких ядер (процессоров). Приведем некоторые дополнительные пояснения по описанному алгоритму. Общая структурная схема сложения двух чисел 1. В [1] предложена аналогичная схема сложения чисел, имеющая принципиальное отличие от приведенной в [1] - вместо преобразования слагаемых из ППС в СОК, что является одним из наиболее трудоемких этапов алгоритма сложения, предлагается уже при размещении чисел в оперативной памяти перевести их из ППС в СОК по определенному базовому набору модулей, который может быть зафиксирован либо для данного процессора, либо для данного сеанса работы или для данного алгоритма (возможно сочетание нескольких вариантов). Уже непосредственно при вычислении происходит преобразование числа из базовой системы СОК в текущую систему и обратно, что при определенных условиях оказывается существенно менее трудоемкой процедурой, чем преобразование из ППС в СОК. 2. Упорядочение модулей позволяет уменьшить время сложения за счет того, что времена окончаний вычислений на различных процессорах имеют более равномерный характер (меньше флуктуируют), и это уменьшает время задержки при формировании набора . Отметим, что выбор оптимального распределения вычислений отдельных сумм по различным процессорам сводится к задачам очередности теории расписаний. В общем случае задача является NP-полной, т. е. не существует достаточно эффективного (по затратам времени) метода ее решения. Вследствие этого вполне приемлемо использование предложенного метода упорядочения для повышения эффективности решения. Процесс непосредственно вычислений сумм предлагается построить на основе следующей рекуррентной процедуры, которая достаточно эффективно реализуется по схеме: ; ; ;. Здесь - биты результата сложения двух чисел; - вектор переноса, причем соответствует случаю переполнения результата сложения исходных чисел A и B. Как видно из схемы, для реализации алгоритма достаточно четырех машинных тактов работы. Увеличение длин модулей добавит в схеме новые «столбцы», усложнив ее, но не увеличивает число тактов работы. Все операции сложения выполняются в модульной арифметике. Разработанный алгоритм имеет ряд важных преимуществ по сравнению с остальными. Перечислим основные из них. 1. Высокая степень готовности и приспособленности для распараллеливания вычислений. Возможность полноценно реализовывать технологию параллельных вычислений. 2. Возможность существенно чаще использовать возможности табличных вычислений. Это связано с тем, что достаточно иметь таблицы вычислений только для отдельных модулей, величины которых относительно невелики. Заключение В работе получены следующие результаты. 1. Описана процедура формирования множества макрокоманд МП на основе метода системного анализа, позволяющая получить относительно полное множество макрокоманд применительно к технологическим процессам производства. Проведена оценка важности отдельных групп макрокоманд. Описанная процедура может быть использована и при разработке МП для других сфер деятельности. 2. Приведен вариант схемы арифметического блока МП, функционирующего на основе СОК. Использование СОК позволяет повысить защиту данных от хищения в процессе их обработки. Приведенные результаты могут быть уточнены и детализированы до уровня конкретных схем, доступных для их практического воплощения.
Список литературы

1. Магомедов Ш. Г. Алгоритм и схема сложения чисел в арифметико-логическом устройстве с использованием системы остаточных классов / Ш. Г. Магомедов // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. 2014. № 1. С. 62-68.

2. Магомедов Ш. Г. Вариант архитектуры защищенного микропроцессора на основе системы остаточных классов // Прикаспийский журнал. Сер.: Управление и высокие технологии. 2013. № 4. С. 118-125.

3. Червяков Н. И. Принципы построения модулярных сумматоров и умножителей / Н. И. Червяков, И. В. Дьяченко // Материалы Междунар. науч. конф. «Модулярная арифметика». URL: http://www.computer-museum.ru/histussr/sokconf0.htm.

4. Краснобаев В. А. Алгоритм реализации операции модульного умножения в системе остаточных классов / В. А. Краснобаев, В. П. Ирхин // Электронное моделирование. 1993. № 5. С. 20-27.

5. Червяков Н. И. Методы и алгоритмы округления, масштабирования и деления чисел в модулярной арифметике / Н. И. Червяков, И. Н. Лавриненко, С. В. Лавриненко, О. С. Мезенцева // Материалы Междунар. науч. конф. «Модулярная арифметика». URL: http://www.computer-museum.ru/histussr/sokconf0.htm.

6. Луцкий С. А. Исследование особенностей проектирования и разработки быстродействующих аппаратных средств реализации элементарных функций с высокой точностью / С. А. Луцкий: дис. … канд. техн. наук. Л., 1982. 238 с.

7. Ирхин В. П. Табличная реализация операций модулярной арифметики / В. П. Ирхин // Материалы Междунар. науч. конф. «Модулярная арифметика». URL: http://www.computer-museum.ru/histussr/sokconf0.htm.

8. Червяков Н. И. Модулярные параллельные вычислительные структуры нейропроцессорных систем / Н. И. Червяков, С. А. Ряднов, П. А. Сахнюк, А. В. Шапошников. М.: Физматлит, 2003. 288 с.

9. Василенко О. Н. Теоретико-числовые алгоритмы в криптографии / О. Н. Василенко. М.: МЦНМО, 2003. 326 с.