Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
Иллюстрации
Показать всеИзобретение относится к способу и устройству для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов. Техническим результатом является повышение надежности способа и устройства для генерирования сигнала. Технический результат достигается благодаря тому, что способ генерирования сигнала в вычислительной системе включает несколько компонентов, причем в качестве двух компонентов системы предусмотрено по меньшей мере два исполнительных блока, а в качестве еще одного компонента - средство переключения, с помощью которого исполнительные блоки соединяют в режиме повышенной производительности с шиной, а в режиме сравнения - с компаратором, в средстве переключения вычислительной системы генерируют сигнал режима, указывающий текущий режим работы системы, и/или изменения сигнала режима, причем по меньшей мере изменения сигнала режима и/или сам сигнал режима предоставляют в распоряжение за пределами средства переключения. В способе генерирования сигналов от исполнительных блоков поступают сигналы N140,…, N14n на компонент N100 переключения и сравнения. На основе сигналов N140,…, N14n компонент N100 генерирует выходные сигналы N160,…, N16n, причем N150 является сигналом режима, а N170 является сигналом ошибки. 2 н. и 22 з.п. ф-лы, 23 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов, а также к компоненту и вычислительной системе, содержащим такое устройство.
Уровень техники
Нерегулярные или случайные сбои, обусловленные альфа-частицами или космическим излучением, представляют собой все большую проблему для интегральных полупроводниковых схем. В связи с уменьшением структурной ширины, понижением напряжения и повышением тактовой частоты возрастает вероятность того, что пик напряжения, вызванный воздействием альфа-частицы или космического излучения, приведет к искажению логического значения в интегральной схеме. Следствием может стать ошибочный результат расчета. Поэтому в системах, важных с точки зрения безопасности, в частности в автомобиле, такие ошибки необходимо с уверенностью обнаруживать.
В системах, важных в отношении безопасности, например в системе регулирования антиблокировочного устройства автомобиля, в которых сбои электроники должны надежно отслеживаться, обычно используются устройства управления с избыточностью по обнаружению ошибок. Так, например, в известных антиблокировочных системах в каждом случае дублируется целый микроконтроллер, причем все антиблокировочные функции вычисляются с избыточностью и проверяются на соответствие. Если имеет место несоответствие результатов, антиблокировочная система отключается.
Важными компонентами микроконтроллера являются модули памяти (например, ЗУПВ, ПЗУ, кэш-память), ядра и интерфейсы входа/выхода (например, аналогово-цифровые преобразователи, интерфейс локальной сети контроллеров CAN). Поскольку элементы памяти можно эффективно контролировать посредством контрольных кодов (кода четности или кода с исправлением ошибок), а периферийные устройства часто контролируются с ориентацией на конкретный случай применения как часть пути прохождения сигнала датчика или привода, имеется возможность дальнейшего повышения избыточности путем простого удвоения ядер микроконтроллера.
Такие микроконтроллеры с двумя интегрированными ядрами известны так же как двухъядерные архитектуры. Оба ядра отрабатывают с резервированием и тактовой синхронизацией (в режиме жесткого параллелизма) один и тот же сегмент программы. Результаты, полученные обоими ядрами, сравниваются, и при сравнении на соответствие обнаруживается ошибка. Эту конфигурацию двухъядерной системы можно назвать режимом сравнения.
Двухъядерные архитектуры в других случаях применения служат также для повышения производительности, т.е. эффективности. Оба ядра выполняют различные программы, сегменты программ и команды, чем достигается повышение производительности, поэтому такая конфигурация двухъядерной системы может именоваться также режимом повышенной производительности. Эта система называется также симметричной многопроцессорной системой.
Расширением этих систем является программное переключение между двумя указанными режимами посредством обращения к специальному адресу и с помощью специализированных аппаратных средств. В режиме сравнения выходные сигналы ядер сравниваются друг с другом. В режиме повышенной производительности оба ядра работают как симметричная многопроцессорная (СМП) система и выполняют различные программы, сегменты программ и команды.
Такие системы целесообразно использовать, если известен режим, в котором находится система. Поэтому задача изобретения состоит в том, чтобы предложить способы и средства для генерирования сигнала режима.
Раскрытие изобретения
Объектом изобретения является способ генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов, причем в качестве двух компонентов системы предусмотрено по меньшей мере два исполнительных блока, а в качестве еще одного компонента - средство переключения, и в вычислительной системе выполняют переключение между по меньшей мере двумя режимами работы, первый из которых соответствует режиму сравнения, а второй - режиму повышенной производительности, отличающийся тем, что в компоненте вычислительной системы генерируют сигнал режима, указывающий текущий режим работы системы, и/или изменения сигнала режима, причем по меньшей мере изменения сигнала режима и/или сам сигнал режима предоставляют в распоряжение за пределами компонента.
В предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима используют для контроля, для чего имеющуюся информацию, представляющую режим работы, сравнивают с информацией, представленной режимным сигналом и/или изменениями сигнала режима либо выведенной из них.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима анализируют в другом компоненте вычислительной системы.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима анализируют в компоненте, периферийном по отношению к исполнительным блокам.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима анализируют в устройстве защиты памяти.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима анализируют в контроллере прерываний.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа вычислительная система содержит операционную систему, а сигнал режима и/или изменения сигнала режима используют для самоконтроля операционной системы, для чего имеющуюся в операционной системе информацию, представляющую режим работы, сравнивают с информацией, представленной режимным сигналом и/или изменениями сигнала режима либо выведенной из них.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима защищают по меньшей мере одним дополнительным элементом информации.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима защищают путем по меньшей мере дублирования сигнала режима и/или изменений сигнала режима.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима защищают как двухрельсовый или двухканальный сигнал (сигнал, поступающий по двум линиям).
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима генерируют в средстве переключения.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа в качестве средства переключения предусмотрен комбинированный блок переключения и сравнения, причем сигнал режима и/или изменения сигнала режима генерируют в этом блоке переключения и сравнения.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима генерируют по меньшей мере в одном исполнительном блоке.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима и/или изменения сигнала режима генерируют в компоненте, включающем в себя комбинированный блок переключения и сравнения, а также блок распознавания потребности в переключении.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа предусмотрено более двух режимов работы, между которыми можно выполнять переключение.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа для указания соответствующего режима работы предусмотрена конфигурируемая маркировка режима работы.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа для указания соответствующего режима работы предусмотрена конфигурируемая переменная-указатель.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа на основе сигнала режима и/или изменений сигнала режима выполняют обнаружение ошибок, причем в рамках обнаружения ошибок генерируют по меньшей мере один сигнал ошибки.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа анализ сигнала режима используют для подтверждения безопасности.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа сигнал режима является многозначным с возможностью представления им более чем двух режимов.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа в режиме сравнения используют голосование.
В другом предпочтительном варианте осуществления предлагаемого в изобретении способа в режиме сравнения используют помехозащищенный алгоритм.
Объектом изобретения является также устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов, причем в качестве двух компонентов системы предусмотрено по меньшей мере два исполнительных блока, а в качестве еще одного компонента - средство переключения, и в вычислительной системе выполняется переключение между по меньшей мере двумя режимами работы, первый из которых соответствует режиму сравнения, а второй - режиму повышенной производительности, отличающееся тем, что оно содержится в компоненте вычислительной системы и выполнено с возможностью генерирования сигнала режима, указывающего
текущий режим работы системы, и/или изменений сигнала режима, причем по меньшей мере изменения сигнала режима и/или сам сигнал режима предоставляется в распоряжение за пределами указанного компонента.
В предпочтительном варианте выполнения предлагаемого в изобретении устройства сигнал режима генерируется таким образом, чтобы представлять более двух режимов работы.
В другом предпочтительном варианте выполнения предлагаемого в изобретении устройства значение сигнала режима или синтаксис его интерфейса являются конфигурируемыми (настраиваемыми).
Объектами изобретения являются также компонент и вычислительная система, содержащие описанное выше устройство.
Другие преимущества изобретения и примеры его осуществления раскрыты в формуле и описании изобретения.
Краткое описание чертежей
Осуществление изобретения рассматривается ниже и поясняется чертежами, на которых показано:
на фиг.1 - многопроцессорная система G60 с двумя исполнительными блоками G10a, G10b, одним блоком G50 переключения и одним блоком G40 распознавания потребности в переключении,
на фиг.2 - многопроцессорная система G60 с двумя исполнительными блоками G10a, G10b, одним комбинированным блоком G70 сравнения и переключения, состоящим из блока G20 сравнения и блока G50 переключения, а также с одним блоком G40 распознавания потребности в переключении,
на фиг.3 - многопроцессорная система G60 с двумя исполнительными блоками G10a, G10b, одним комбинированным блоком G80 распознавания потребности в переключении, сравнении и переключении, состоящим из блока G20 сравнения, блока G50 переключения и блока G40 распознавания потребности в переключении,
на фиг.4 - многопроцессорная система G200 с двумя исполнительными блоками G210a, G210b и одним блоком G260 переключения и сравнения,
на фиг.5 - представленный в виде блок-схемы способ, который в пределах специальной конвейерной ступени G230a, G230b производит обмен специальной неопределенной двоичной комбинации на NOP (холостую или фиктивную команду) или другую нейтральную двоичную комбинацию,
на фиг.6 - многопроцессорная система Н200 с двумя исполнительными блоками Н210а, Н210b и одним блоком Н260 переключения и сравнения,
на фиг.7 - представленный в виде блок-схемы способ, показывающий как с помощью идентификации устройств можно разделить процесс выполнения блок-схемы программы при переходе из режима сравнения в режим повышенной производительности в многопроцессорной системе с двумя исполнительными блоками,
на фиг.8 - возможный способ, показывающий как с помощью идентификации устройств можно разделить процесс выполнения блок-схемы программы при переходе из режима сравнения в режим повышенной производительности в многопроцессорной системе с тремя исполнительными блоками,
на фиг.9 - представленный в виде блок-схемы способ, синхронизирующий исполнительные блоки при переключении из режима повышенной производительности в режим сравнения,
на фиг.10 - конечный автомат, отображающий переключение между режимом повышенной производительности и режимом сравнения,
на фиг.11 - многопроцессорная система G400 с двумя исполнительными блоками и двумя контроллерами G420a, G420b прерываний, включающая содержащиеся в них регистры G430a, G430b маскировки прерываний и различные источники G440a-G440n прерываний,
на фиг.12 - многопроцессорная система с двумя исполнительными блоками - одним блоком переключения и сравнения и одним контроллером прерываний с тремя наборами регистров,
на фиг.13 - простейшая форма компаратора,
на фиг.14 - компаратор с устройством компенсации сдвига фаз,
на фиг.15 - принципиальная схема предпочтительного компонента М700 (блока переключения и сравнения) в режиме сравнения,
на фиг.16 - принципиальная схема предпочтительного компонента М700 (блока переключения и сравнения) в режиме повышенной производительности,
на фиг.17 - вариант исполнения блока переключения и сравнения,
на фиг.18 - еще один вариант исполнения блока переключения и сравнения,
на фиг.19 - блок переключения и сравнения, генерирующий сигнал режима,
на фиг.20 - общее представление блока переключения и сравнения,
на фиг.21 - общее представление блока переключения и сравнения, генерирующего общий сигнал режима и общий сигнал ошибки,
на фиг.22 - связь по типу вопрос - ответ с внешним устройством,
на фиг.23 - связь с интеллектуальным приводом.
Осуществление изобретения
Исполнительным блоком могут в дальнейшем именоваться как процессор, ядро, центральный процессор, так и устройство с плавающей точкой, процессор цифровых сигналов, сопроцессор или арифметическое логическое устройство.
На фиг.1 показана многопроцессорная система G60 с двумя исполнительными блоками (модулями) G10a, G10b, блоком G20 сравнения, блоком G50 переключения и блоком G40 распознавания потребности в переключении.
Изобретение относится к многопроцессорной системе, показанной на фиг.1, 2, 3, по меньшей мере с двумя исполнительными блоками G10a, G10b, блоком G20 сравнения, блоком G50 переключения и блоком G40 распознавания потребности в переключении. Блок G50 переключения имеет по меньшей мере два выхода по меньшей мере к двум системным интерфейсам G30a, G30b. Через эти интерфейсы можно управлять регистрами, запоминающими устройствами или периферийными устройствами, в частности дискретными выходами, цифро-аналоговыми преобразователями, контроллерами связи. Многопроцессорная система может работать по меньшей мере в двух режимах: режиме сравнения (VM) и режиме повышенной производительности (РМ).
В режиме повышенной производительности в различных исполнительных блоках параллельно выполняются различные команды, сегменты программ или программы. В этом режиме работы блок G20 сравнения выключен. Блок G50 переключения в этом режиме конфигурирован таким образом, что каждый исполнительный блок G10a, G10b связан с системным интерфейсом G30a, G30b. При этом исполнительный блок G10a связан с системным интерфейсом G30a, а исполнительный блок G10b - с системным интерфейсом G30b.
В режиме сравнения в обоих исполнительных блоках G10a, G10b обрабатываются одинаковые или однородные команды, сегменты программ или программы. Удобно обрабатывать эти команды с тактовой синхронизацией, но возможна также обработка с асинхронностью или сдвигом такта. Выходные сигналы исполнительных блоков G10a, G10b сравниваются в блоке G20 сравнения. При различии или несовпадении сигналов делается вывод о наличии ошибки (сбоя) и можно принять соответствующие меры. Эти меры могут вызвать подачу сигнала ошибки, начать обработку ошибки, коммутировать переключатели или быть комбинацией этих и других допустимых мер. Блок G50 переключения в одном из вариантов конфигурирован таким образом, что на системные интерфейсы G30a, G30b поступает только один сигнал. В другой конфигурации задача блока переключения состоит лишь в том, чтобы сравненные и по результатам сравнения одинаковые сигналы поступали на системные интерфейсы G30a, G30b.
Блок G40 распознавания потребности в переключении независимо от активного в данный момент режима выдает сигнал потребности в переключении на другой режим.
На фиг.2 показана многопроцессорная система G60 с двумя исполнительными блоками G10a, G10b, комбинированным блоком G70 сравнения и переключения, состоящим из блока G20 сравнения и блока G50 переключения, а также с блоком G40 распознавания потребности в переключении.
В одном из вариантов исполнения описываемой системы блок G50 переключения и блок G20 сравнения могут быть объединены в общий блок G70 переключения и сравнения, как показано на фиг.2. Общий компонент G70 в этом случае выполняет задачи отдельных компонентов G50, G20. На фиг.15, 16, 17, 18 и 19 представлены варианты исполнения блока G70.
В другом варианте исполнения, представленном на фиг.3, блок G40 распознавания потребности в переключении, блок G20 сравнения и блок G50 переключения могут быть объединены в общий блок G80. Еще в одном варианте исполнения, не показанном на фигуре, блок G40 распознавания потребности в переключении и блок G20 сравнения могут быть объединены в общий компонент. Допустимо также объединение в одном компоненте блока G40 распознавания потребности в переключении с блоком G50 переключения.
В дальнейшем при отсутствии иных указаний будем исходить из того, что речь идет о блоке G40 распознавания потребности в переключении и комбинированном блоке G70 переключения и сравнения.
Общий случай компонента переключения и сравнения, в том числе и при использовании для обслуживания более чем двух исполнительных блоков представлен на фиг.20. От n подлежащих учету исполнительных блоков поступает n сигналов N140,…, N14n на компонент N100 переключения и сравнения. На основе этих входных сигналов он может генерировать до n выходных сигналов N160,…, N16n. В простейшем случае, в "чистом режиме повышенной производительности" все сигналы N14i направляются на соответствующие выходные сигналы N160,…, N16n. В противоположном предельном случае, в "чистом режиме сравнения" все сигналы N140,…, N14n направляются точно только на один из выходных сигналов N16i.
На примере этой фигуры можно пояснить, как возникают различные допустимые режимы работы. Для этого фигура содержит логический компонент комбинационной логики N110. Этот компонент необязательно должен присутствовать как самостоятельный компонент. Решающее значение имеет то, что рассмотренные функции реализуются в системе. Комбинационная логика N110 прежде всего определяет, сколько вообще существует выходных сигналов. Далее она определяет, какие из входных сигналов вносят вклад в генерирование какого из выходных сигналов. При этом один входной сигнал может создавать точно один выходной сигнал. Иными словами, в математической форме комбинационная логика определяет одну функцию, которая каждому элементу множества (N140,…, N14n) ставит в соответствие элемент множества (N160,…, N16n).
Затем логика N120 обработки определяет для каждого из выходов N16i, в какой форме входы вносят вклад в генерирование этого выходного сигнала. Также и этот компонент необязательно должен присутствовать как самостоятельный компонент. Решающее значение и в этом случае имеет то, что описываемые функции реализованы в системе. Чтобы, например, описать различные возможности вариаций, примем без ограничения общности, что выход N160 генерируется сигналами N141,…, N14m. Если m=1, то это просто соответствует коммутации сигнала, если m=2, то сравниваются сигналы N141, N142, как, например, в блоке сравнения на фиг.13, 14. Это сравнение может осуществляться синхронно или асинхронно, оно может быть побитовым или рассчитанным только на значимые биты или же на область допусков.
Если m≥3, существуют несколько возможностей.
Первая возможность состоит в том, чтобы сравнивать все сигналы и при наличии по меньшей мере двух различных значений обнаруживать ошибку с подачей в случае необходимости сигнала ошибки.
Вторая возможность состоит в выборе некоторого к из m (k>m/2). Эту возможность можно реализовать путем использования компараторов. В качестве варианта можно генерировать сигнал ошибки, если один из сигналов распознается как отличающийся от заданного. Отличающийся сигнал ошибки можно генерировать, если все три сигнала различны.
Третья возможность состоит в введении этих значений в некоторый алгоритм. Сюда можно отнести, например, формирование среднего значения, медианы распределения или использование помехозащищенного (отказоустойчивого) алгоритма. Такой алгоритм основывается на вычеркивании экстремальных значений из числа входных значений и выполнении своего рода усреднения по остальным значениям. Это усреднение можно проводить для всей совокупности остальных значений или предпочтительнее для подмножества, легко образуемого из максимальных значений. В этом случае не всегда необходимо действительно сравнивать значения. При формировании среднего значения достаточно выполнять только сложение и деление, образование помехозащищенного среднего значения, помехозащищенного алгоритма или медианы распределения требует частичной сортировки. В случае необходимости при достаточно больших экстремальных значениях может и здесь как вариант выдаваться сигнал ошибки.
Перечисленные различные возможности обработки нескольких сигналов в один сигнал для краткости называются операциями сравнения.
Таким образом, задача логики обработки состоит в определении точного характера операции сравнения для каждого выходного сигнала и, следовательно, для соответствующих входных сигналов. Комбинация информации комбинационной логики N110 (т.е. вышеуказанной функции) и логики обработки (т.е. определение операции сравнения для каждого выходного сигнала или каждого значения функции) - это информация о режиме и она определяет режим. Разумеется, эта информация в общем случае многозначна, т.е. не может быть представлена одним логическим битом. Не все теоретически возможные режимы целесообразны в заданной реализации, предпочтительнее ограничить число разрешенных режимов. Следует подчеркнуть, что в случае только двух исполнительных блоков, когда существует только один режим сравнения, всю информацию можно сжать до одного бита.
Переключение из режима повышенной производительности в режим сравнения в обычном случае характеризуется тем, что исполнительные блоки, которые в режиме повышенной производительности отображаются на различные выходы, в режиме сравнения отображаются на один и тот же выход. Преимущественно это реализуется за счет того, что существует подсистема исполнительных блоков, в которой в режиме повышенной производительности все входные сигналы N14i, подлежащие учету в подсистеме, переключаются непосредственно на соответствующие выходные сигналы N16i, тогда как в режиме сравнения все они отображаются на один выход. Альтернативно такое переключение может реализовываться в виде попарного изменения. Это объясняется тем, что в обычном случае нельзя говорить об одном режиме повышенной производительности и одном режиме сравнения, хотя в заданном проявлении изобретения число разрешенных режимов можно ограничивать настолько, что это будет иметь место. Однако всегда можно говорить о переключении из режима повышенной производительности в режим сравнения (и наоборот).
Под управлением программного обеспечения между этими режимами можно переключаться динамически. При этом переключение осуществляется путем выполнения специальных команд переключения, специальных последовательностей команд, определенно помеченных команд или путем обращения к определенным адресам по меньшей мере посредством одного из исполнительных блоков многопроцессорной системы.
Схемная логика N130 переключения при ошибках накапливает сигналы ошибки, генерируемые, например, компараторами, и может, при необходимости, пассивно коммутировать выходы N16i, например, размыкая их выключателем.
Однако следующие примеры посвящены случаю с двумя исполнительными блоками, в котором проще представить большинство концепций.
Переключение между режимами можно кодировать различными методами. При одном из возможных методов используются специальные команды переключения, непосредственно передаваемые в блок G40 распознавания потребности в переключении. Другой возможный способ кодирования переключения определяется обращением к специальному разделу памяти, который опять же обнаруживает блок G40 распознавания потребности в переключении. Еще один метод анализирует в блоке G40 распознавания потребности в переключении внешний сигнал, сообщающий о переключении. Ниже приводится описание способа, который использует в наборе команд процессора неиспользованные двоичные комбинации. Особое преимущество этого способа состоит в том, что он позволяет и дальше использовать существующие среды поддержки разработки (ассемблер, компилятор, редактор связей, отладчик).
На фиг.4 показана многопроцессорная система G200 с двумя исполнительными блоками G210a, G210b и блоком G260 переключения и сравнения. Для переключения из режима сравнения в режим повышенной производительности (и наоборот) используются не определенные в ассемблере двоичные комбинации по меньшей мере двух исполнительных блоков G210а, G210b. Под неопределенными или неопределимыми в этом смысле следует понимать все двоичные комбинации, которые в описании набора команд специфицированы как неопределенные или запрещенные. Таковыми являются, например, запрещенный операнд, запрещенная команда, запрещенная операция. Общим признаком этих двоичных комбинаций является то, что обычный исполнительный блок при выполнении такой двоичной комбинации генерирует сигнал ошибки или обнаруживает неопределенное поведение. Следовательно, эти двоичные комбинации не нужны для представления семантики обычной программы.
Таким образом, для разработки программного обеспечения можно использовать прежнюю среду поддержки в том виде, как она существует для однопроцессорных систем. Это реализуется, например, путем определения макрокоманды "SWITCH MODE TO PM" (переключение в режим повышенной производительности) и макрокоманды "SWITCH MODE TO VM" (переключение в режим сравнения), которые в соответствующем месте вставляют в код соответствующие не определенные в указанном выше смысле двоичные комбинации.
Использование такой комбинации определяется при этом как общая макрокоманда "SWITCH" (переключение). Она обеспечивает переход из активного в данный момент режима в другой режим. Если в системе имеется больше двух различных режимов, то для применения этого способа должно существовать больше таких комбинаций, тогда можно преимущественно использовать одну из них на каждый режим для кодирования переключения.
Согласно изобретению потребность в переключении кодируется неопределенной в наборе команд двоичной комбинацией. Их нельзя обычным образом обрабатывать в исполнительном блоке G210a, G210b. Поэтому предлагается дополнительная конвейерная ступень (ступень ЗАМЕНЫ) G23a, G230b, которая распознает соответствующие двоичные комбинации и заменяет их для дальнейшей обработки нейтральными двоичными комбинациями. Целесообразно использовать для этого команду "NOP" (холостую команду). Команда "NOP" отличается тем, что она не изменяет внутреннее состояние исполнительного блока, за исключением указателя команды. При этом ступень ЗАМЕНЫ G230a, G230b вставляется после обычной первой ступени, ступени ВЫБОРКИ G220a, G220b, а перед остальными конвейерными ступенями G240a, G240b вставляются не определенные в ассемблере двоичные комбинации, которые здесь объединены в одном блоке.
Согласно изобретению представленная здесь реализация блока G40 распознавания потребности в переключении как специальная конвейерная ступень G230a, G230b конвейерного блока G215a, G215b будет генерировать дополнительный сигнал G250a, G250b в случае обнаружения соответствующей двоичной комбинации для переключения, который сообщит отдельному блоку переключения и блоку сравнения G260, что необходимо выполнить замену режима обработки.
Ступени ЗАМЕНЫ G230a, G230b следует располагать преимущественно между ступенями ВЫБОРКИ G220a, G220b и остальными конвейерными ступенями G240a, G240b в конвейерных блоках G215a, G215b исполнительных блоков G210a, G210b. При этом ступени ЗАМЕНЫ G230a, G230b распознают соответствующие двоичные комбинации и передают команды NOP на остальные ступени G240a, G240b. Одновременно активизируется соответствующий сигнал G250a или G250b. Во всех других случаях ступени ЗАМЕНЫ G230a, G230b ведут себя нейтрально, т.е. все другие команды без изменений передаются на другие ступени.
На фиг.5 в виде блок-схемы процесса представлен способ, который в пределах специальной конвейерной ступени G230a, G230b производит обмен специальной неопределенной двоичной комбинации на холостую команду или другую нейтральную двоичную комбинацию. На ступени ВЫБОРКИ G300 из памяти выводится команда, т.е. двоичная комбинация. После этого в блоке G310 определяется, соответствует ли выведенная двоичная комбинация специальной неопределенной двоичной комбинации, которая кодирует переключение. Если это не так, в следующем шаге G320 двоичная комбинация без изменения передается на прочие конвейерные ступени для дальнейшей обработки. Если специальная двоичная комбинация, кодирующая переключение, распознается на шаге G310, то на шаге G330 она заменяется двоичной комбинацией холостой команды и уже эта комбинация передается на последующие конвейерные ступени G340 для дальнейшей обработки. В предпочтительном варианте исполнения блоки G310, G320, G330 представляют функциональность предлагаемой изобретением ступени ЗАМЕНЫ G230a, G230b, причем эти блоки могут содержать также дополнительную функциональность.
На фиг.6 показана многопроцессорная система Н200 с двумя исполнительными блоками Н210а, Н210b и одним блоком Н260 переключения и сравнения. Компоненты Н220а, H220b, H240a, H240b имеют то же значение, что и блоки G220a, G220b, G240a, G240b. В альтернативном исполнении блока G40 распознавания потребности в переключении, описываемого здесь специальными конвейерными ступенями Н230а, Н230b, этот блок наряду с сигналами Н250а, Н250b, сигнализирующими переключение, имеет и другие сигналы. Для того чтобы синхронизировать исполнительные блоки Н210а, Н210b при переходе из режима повышенной производительности в режим сравнения, конвейерные блоки Н215а, Н215b исполнительных блоков Н21а, Н210b в каждом случае имеют сигнальный вход Н280а, Н280b, который может приостановить обработку. Этот сигнал устанавливается блоком Н260 переключения и сравнения для того конвейерного блока Н215а или Н215b, который первым распознал команду на переключение и тем самым активизировал сигнал Н250а или GH50b. Только после того как оба конвейерных блока Н215а, Н250b исполнительных блоков Н210а, Н210b распознают команду на переключение и посредством программы или других аппаратных средств синхронизируют свое внутреннее состояние, этот сигнал Н280а, Н280b будет отменен. При переходе из режима сравнения в режим повышенной производительности сигналы Н280а, Н280b не требуются, так как синхронизация не нужна.
Предпосылкой осуществления описываемого здесь предложения является блок (называемый блоком идентификации) или способ, посредством которого каждый исполнительный блок может определить свой индивидуальный или идентификационный номер. В системе с двумя исполнительными блоками один из них может, например, определить для себя номер 0, а другой - номер 1. В системе более чем с двумя исполнительными блоками номера присваиваются или определяются соответственно. Этот идентификационный номер не различает между режимом сравнения и режимом повышенной производительности, но однозначно обозначает исполнительный блок. Идентификационный номер может содержаться в том или ином исполнительном блоке, будучи реализован как бит или двоичная комбинация в регистре состояния процессора, или как собственный регистр, или же как отдельный бит или внешнее по отношению к исполнительным блокам устройство, которое по запросу выдает соответствующий идентификационный номер.
После того как исполнительные блоки в соответствии с потребностью в переключении выполнят переключение в режим повышенной производительности, блок сравнения становится неактивным, но исполнительные блоки все еще будут выполнять те же самые команды. Дело в том, что переключение не влияет на указатели команд, обозначающие места в программе, в которых исполнительный блок будет работать в следующем шаге или работает в данный момент. Для того чтобы исполнительные блоки после этого могли выполнять различные программные модули, отработка программы исполнительными блоками должны быть раздельной. По этой причине указатели команд в программном блоке, как правило, имеют различное значение, так как обрабатываются независимые согласно изобретению команды, сегменты программ или программы. Разделение программных потоков осуществляется согласно приведенному здесь предложению путем определения номера того или иного исполнительного блока. В зависимости от того, какой идентификационный номер имеет исполнительный блок, он отрабатывает определенный программный модуль. Поскольку каждый исполнительный блок имеет индивидуальный номер или идентификацию, программный поток может быть надежно разделен между участвующими исполнительными блоками.
На фиг.7 в виде блок-схемы процесса представлен способ, показывающий как с помощью идентификации устройств можно разделить процесс выполнения блок-схемы программы при переходе из режима сравнения в режим повышенной производительности в многопроцессорной системе с двумя исполнительными блоками. После выполнения переключения из режима сравнения в режим повышенной производительности на шаге G500 происходит опрос идентификационного номера или номера исполнительного блока на шаге G510 обоими исполнительными блоками. Согласно изобретению исполнительный блок 0 получает номер блока 0, исполнительный блок 1 - номер блока 1. На шаге G510 осуществляется сравнение определенного номера исполнительного блока с номером 0. Если эти номера одинаковы, исполнительный блок, для которого это сравнение оказалось успешным, продолжает работу на шаге G520 с кодом 0 для исполнительного блока. Исполнительный блок, для которого это сравнение не было успешным, продолжает на шаге G530 сравнение с номером 1. Если это сравнение окажется успешным, работа продолжается на шаге G540. Если это сравнение не было успешным, значит, для соответствующего исполнительного блока определен номер, не равный 0 и 1. Это является случаем ошибки и работа продолжается на шаге G550.
На фиг.8 представлен возможный вариант осуществления способа для трех исполнительных блоков. После выполнения переключения из режима сравнения в режим повышенной производительности на шаге Н500 осуществляется опрос исполнительными блоками идентификационных номеров или номеров исполнительных блоков на шаге Н510. Согласно изобретению исполнительный блок 0 получает номер блока 0, исполнительный блок 1 - номер блока 1 и исполнительный блок 2 - номер блока 2. На шаге Н510 осуществляется сравнение определенного номера исполнительного блока с номером 0. Если номера равны, исполнительный блок, для которого это сравнение было успешным, на шаге Н520 продолжает работать с кодом исполнительного блока, равным 0. Исполнительные блоки, для которых это сравнение не было успешным, продолжают на шаге G530 сравнение с номером 1. В исполнительном блоке, для которого сравнение оказалось успешным, работа продолжается на шаге Н540 с кодом для исполнительного блока 1. Исполнительные блоки, для которых это сравнение