АРХИТЕКТУРА МИКРОПРОЦЕССОРА С ФУНКЦИЕЙ АВТОМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ
MICROPROCESSOR ARCHITECTURE WITH THE MICRO CONTROLLERS AUTOMATIC PROGRAMMING FUNCTION

Изобретение относится к области электроники, в частности к микропроцессорным архитектурам, а именно к гибридным кластерным процессорам.
В описании использованы следующие термины и сокращения.
API (англ. application programming interface - программный интерфейс приложения, интерфейс прикладного программирования) - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах.
BIOS (англ. basic input/output system - базовая система ввода-вывода), БИОС, также БСВВ - набор микропрограмм, реализующих API для работы с аппаратурой компьютера и подключенными к нему устройствами.
CISC (англ. complex instruction set computing или complex instruction set computer) - тип процессорной архитектуры, которая характеризуется следующим набором свойств: нефиксированное значение длины команды; арифметические действия кодируются в одной команде; небольшое число регистров, каждый из которых выполняет строго определенную функцию.
EEPROM (англ. Electrically Erasable Programmable Read-Only Memory) - электрически стираемое перепрограммируемое ПЗУ (ЭСППЗУ), один из видов энергонезависимой памяти.
EFI (англ. Extensible Firmware Interface - интерфейс расширяемой прошивки) - интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы.
GPU (англ. graphics processing unit - графический процессор) - отдельное устройство персонального компьютера или игровой приставки, выполняющее графический рендеринг.
LAN (англ. Local Area Network - локальная вычислительная сеть) - компьютерная сеть, покрывающая обычно относительно небольшую территорию или небольшую группу зданий (дом, офис, фирму, институт).
RISC (англ. reduced instruction set computer - компьютер с сокращенным набором команд) - архитектура процессора, в котором быстродействие увеличивается за счет упрощения инструкций, чтобы их декодирование было более простым, а время выполнения - меньшим.
WAN (англ. Wide Area Network - глобальная вычислительная сеть) - компьютерная сеть, охватывающая большие территории и включающая большое число узлов.
БАВ - блок автономных вычислений.
БПК - блок передачи команд.
БОПР - блок определения порядка работы.
ВКЕМП - вычислительный кластер единых монтажных вычислительных приборов.
ЕМП - единый монтажный вычислительный прибор.
СК - синхронизатор кластеров.
ПЗУ (постоянное запоминающее устройство) - энергонезависимая память, используется для хранения массива неизменяемых данных.
ПЛИС (программируемая логическая интегральная схема) - электронный компонент, используемый для создания цифровых интегральных схем.
БШ - блок шифрования.
СРВ - синхронизация результатов вычислений.
Известна техника неспециализированных вычислений на графических процессорах (General-purpose computing for graphics processing units) в части того, что вычисления ведутся как неспециализированные вычисления или вычисления широкого профиля на гетерогенном оборудовании.
Наиболее близким аналогом заявляемого изобретения является унифицированная шейдерная архитектура, в которой микропроцессор является программируемым. Определенная часть микропроцессора вычисляет, какие инструкции наиболее оптимальны для решения конкретной задачи, и самостоятельно программирует вычислительный блок теми инструкциями и алгоритмами, которые считает оптимальными по решению конкретной вычислительной задачи.
Основной недостаток шейдерной архитектуры заключается в том, что представляет собой готовую прикладную программу, несмотря на то, что написана и скомпилирована для выполнения на GPU. Во время работы шейдеры обращаются к 3D API GPU строго в рамках, определенных программистом.
Техническая проблема, на решение которой направлено заявляемое изобретение, заключается в создании микропроцессора с функцией автоматического программирования микроконтроллеров системы вычислений, в которой при выходе какой-то части микропроцессоров из строя, по любым причинам, система в целом будет работоспособна. Современные вычислительные кластеры не могут обеспечить высокую надежность без многократного дублирования всей системы.
Техническим результатом заявляемого изобретения является расширение функциональных возможностей микропроцессора, в том числе увеличение быстродействия при повышении надежности, управление вычислительными ресурсами самостоятельно и реализация возможности автоматического программирования микроконтроллеров.
Указанный технический результат достигается за счет того, что архитектура микропроцессора с функцией автоматического программирования, где микропроцессор содержит электрически соединенные БАВ, выполненный с возможностью дешифрования и разделение данных и команд управления; БПК, выполненный с возможностью анализа задания, содержащий БОПР, выполненный с возможностью определения порядка действий СК гибридных процессоров, создания инструкций для его работы и выдачи их в синхронизатор кластеров, а так же выполненный с возможностью анализа выполняемых действий; ПЛИС для реализации взаимодействия архитектуры и системы команд, выполненную с возможностью создания инструкций и передачи их в СК гибридных процессоров, и не менее двух гибридных процессоров, при этом СК гибридных процессоров выполнен с возможностью разделения инструкций на то количество гибридных процессоров, которое подключено к СК.
Гибридные процессоры выполнены с возможностью сочетания как RISC процессоров, так и CISC процессоров, а БАВ - с возможностью перераспределения работы RISC и CISC процессорами.
Заявляемая архитектура обеспечивает гибкость разделения ресурсов без зеркального дублирования и возможность не только предоставлять свое оборудование в аренду другим задачам, но и выполнение своих вычислительных задач на другом оборудовании. То есть заявляемое решение позволяет не только предоставлять ресурсы своего компьютера кому-то другому, но и воспользоваться ресурсами другого компьютера. Такого решения не предлагает ни одна конфигурация вычислительных микропроцессоров, а именно динамическое разделение вычислительных ресурсов в зависимости от приоритетов пользователей и поставленных задач.
Построение микропроцессора с функцией автоматического программирования микроконтроллеров, который самостоятельно решает, как проводить вычисления, позволяет построить масштабируемые вычислительные сети, которые будут конфигурироваться самостоятельно. Все это работает на более низком уровне, чем операционная система, и поэтому не привязана к программному обеспечению операционной системы.
Заявляемая архитектура микропроцессора с функцией автоматического программирования микроконтроллеров сама определяет порядок работы при программировании микроконтроллеров. В общем случае представляет собой программируемую логическую интегральную схему, при этом микропроцессор сам программирует и коммутирует часть вычислительного модуля, вследствие чего получается архитектура, состоящая из большого множества независимых микропроцессоров, которые управляются самостоятельно и которые могут заменять друг друга при вычислениях, объединяться для увеличения производительности вычислительных задач, или, но не исключая, объединяться для дублирования вычислений обладая признаками кластерных систем, что увеличивает и производительность и надежность.
Все вычисления происходят в БПК, снабженном микропрограммой взаимодействия архитектуры и системы команд. Именно эта микропрограмма и ведет статистику вычислений, тип данных для вычислений, время затраченное на выполнение работы, какие модули применялись, какие алгоритмы применялись для оптимизации вычислительного процесса, был ли получен положительный результат по итогу уже выполненных вычислений, применение (замена) алгоритмов для нахождения наиболее быстрого решения поставленной вычислительных задачи.
В общей системе построения вычислительной машины БПК находится посередине, если рассматривать решение задачи в виде пирамиды, где задачи и данные поступают с вершины пирамиды, а решение находиться у ее основания, а сама система управления построена сверху вниз.
Сверху расположен БАВ - общая система обеспечения функционирования и связи для всех остальных микросхем и блоков, при этом во многом достаточно автономная.
Посередине расположен БПК. Именно он определяет алгоритмы вычислений, основываясь при выборе на первоначально заложенных алгоритмах, но не ограничиваясь ими. БПК может модифицировать алгоритмы выполнения задач, основываясь на собственной статистике предыдущих вычислений и сравнении результатов проведенных работ, как по эффективности программного кода, так и по задействованию вычислительных ресурсов и времени, затраченного на выполнения задания.
При написании программы программист не может достаточно точно предсказать, на каком оборудовании будет использована программа, есть ли уже готовые «железные» алгоритмы. Программист ориентируется на среду выполнения программы на API, а компилятор только подсказывает общие решения, которые будут работать на оборудовании широкого спектра. Приходится жертвовать производительностью для обеспечения общей совместимости программы. Именно на решение этой проблемы, но не только, и направлена самообучаемая архитектура микропроцессора, в которой реализованы поиск и применение более быстрых алгоритмов выполнения вычислительных задач, запоминание и анализ выполненных вычислений, подбор именно тех микропроцессоров из имеющихся в наличии, которые обеспечат наибольшее быстродействие вычислительной системы.
Внизу расположен БОС, в котором происходит непосредственно вычисление.
Раскрытие заявляемого изобретения показано с помощью фиг. 1, 2, на которых изображены:
Фиг. 1 - блок схема работы архитектуры микропроцессора;
Фиг. 2 - функциональная схема архитектуры микропроцессора.
Архитектура микропроцессора содержит блок автономных вычислений (БАВ), блок передачи команд, память (БПК), синхронизатор кластеров (СК) и не менее двух гибридных процессоров (Р1-Р4).
В БПК находится блок определения порядка работы (БОПР). БПК содержит ПЛИС.
Архитектура микропроцессора работает следующим образом. Все данные шифруются при передаче между вычислительными устройствами.
В БАВ приходит общий поток данных и команд. После расшифровки видны данные и задание, что необходимо сделать с этими данными. Данные и задание отправляются в БПК.
Данные напрямую загружаются в память, например, EEPROM.
На первоначальном этапе в БПК происходит выборка, какое действие необходимо выполнить, например, кодирование видео, передача голосового сигнала по линиям связи в реальном времени, просмотр видео из WAN сети, просмотр видео из LAN сети по коммутируемому каналу, работа с базой данных, работа с базой данных в реальном времени.
Порядок действий определяет БОПР, который из задания БПК создает инструкции для работы и выдает их в СК, где инструкции разделяются на то количество кластеров гибридных процессоров, которое подключено к СК.
Затем происходит определение необходимых инструментов для выполнения задания на основе имеющихся инструкций.
На втором этапе посредством ЕМП происходит выборка, какой пользователь, т.е. его приоритет в этой вычислительной системе, дает какое задание - работает служба приоритетов пользователей.
При регистрации пользователя в системе ему присваивают приоритет в системе (иерархия) и время действия приоритета или условия действий и смены приоритетов во времени.
Затем в БОПР происходит анализ выполняемых действий, т.е. что конкретно нужно сделать, и есть ли возможность выполнить задачу, разделив задание на параллельные процессоры.
Определяют принципиальную возможность распараллеливания на основе предложенных данных, т.е. над одними и теми же данными производить разные вычисления.
Если задание простое, которое определяют по типу вычислительной сложности, то его направляют в RISC процессор и выполняют на аппаратном уровне, если сложное, то - в CISC процессор, который выполняет задание на программном уровне в зависимости инструкций в наличии, или подбирает алгоритм, какой есть.
БАВ 1 напрямую управляет работой гибридных процессоров 5, сочетающих как RISC процессоры, так и CISC процессоры.
Разный тип данных обрабатывают по-разному. В зависимости от типа данных выбирают метод обработки. Это может быть аппаратный, если есть встроенная возможность, или программный, например, одиночный поток команд -множественный поток данных - обеспечивает параллельные вычисления на уровне данных, проведение одной и той же операции над множеством разных данных или выполнение множества команд над одной группой данных. В одних случаях возможно распараллеливания вычислительного процесса, а в других - нет.
Таким образом, исходя, из анализа общего потока данных и инструкций, БАВ перераспределяет работу между RISC и CISC процессорами, т.е. происходит подбор вычислительных возможностей из существующих вычислителей -гибридных процессоров.
СК отправляет на гибридные процессоры часть инструкций, предназначенных только для каждого гибридного процессора. После выполнения программы на гибридном процессоре результаты вычислений передают в СК, который их обрабатывает и общий результат вычислений передает в БПК.
Микропроцессор сам программирует и коммутирует часть вычислительного модуля, вследствие чего получается архитектура, состоящая из большого множества независимых микропроцессоров, которые управляются самостоятельно и которые могут заменять друг друга при вычислениях, объединяться для увеличения производительности вычислительных задач, или но не исключая, объединяться для дублирования вычислений, обладая признаками кластерных систем, что увеличивает и производительность и надежность.
ПЛИС реализует микропрограмму взаимодействия архитектуры и системы команд.
Пример обработки задачи.
Необходимо кодировать видео, файл f1 из формата avi1 в формат avi2 и сохранить как f2. Задача и данные перекодирования видео из одного формата в другой поступают в БПК. Устанавливают приоритет задачи на основании приоритета пользователя. Определяют с помощью БПК задачи и возможности вести вычисления параллельно. Определяют свободные вычислительные ресурсы, подходящие для решения вычислительной задачи. Обеспечивают построение матрицы аппаратных модулей для выполнения задания и разделение задания на модули вычислений. Осуществляют отправку задания на множество аппаратных устройств CISC процессоров и RISC процессоров и получение БАВ модулей вычисления. Производят расшифровку и разделение данных и команд управления. Определяют порядок работ с помощью БОПР и отправляют задания в кластер гибридных процессоров. Получают с помощью БПК результаты вычислений. Через БПК на периферийные устройства отправляют результаты вычислений.
Таким образом, в данном примере при кодировании видео будут задействованы только RISC процессоры, так как CISC процессоры отключаться, когда они не нужны или малоэффективны, а для кодирования ключевых кадров будут задействованы CISC процессоры, так как они более эффективны. В БОПР происходит анализ вычислительного задания, и на основе него выбирают алгоритм работы гибридных процессоров. Неиспользуемые процессоры полностью отключаются, что значительно повышает энергоэффективность и обеспечивает низкие показатели тепловой нагрузки на систему охлаждения. Таким образом, гибридные процессоры потребляют электричество и нагреваются только под нагрузкой. Этим достигаются высокие показатели энергоэффективности без снижения производительности. Но основное качество -это увеличение производительности и обеспечение работы неограниченного числа процессоров параллельно.
Таким образом, заявляемая архитектура обеспечивает:
- увеличение быстродействия, за счет параллельного вычисления;
- повышение надежности, за счет заявляемой структуры микропроцессора;
- увеличение быстродействия в самом микропроцессоре, за счет разделения потоков данных и команд при вычислении;
- увеличение быстродействия, выполнения всех вычислений в одном массиве памяти и отсутствия необходимости переправлять на другой ВКЕМП при дальнейшем вычислении;
- обеспечение безопасности, за счет того, что все данные пересылаются в зашифрованном виде по любым каналам связи;
- быстрое шифрование данных, за счет применения аппаратных средств шифрования с ассиметричным ключом, что обеспечивает также высокую безопасность;
- безопасность системы обеспечивается за счет разделения всех процессов на параллельные потоки и отсутствие возможности прикладных программ вмешиваться в управление операционной системой;
- особая система построения взаимодействия множества микропроцессоров, позволяющая создать мощный вычислительный кластер.
Приведенные примеры являются частными случаями и не исчерпывают всех возможных реализаций заявляемого изобретения.
Специалисту в данной области техники должно быть понятно, что различные вариации заявляемого изобретения не изменяют сущность изобретения, а лишь определяют его конкретные воплощения.