СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ПРЕРЫВАНИЙ Российский патент 2018 года по МПК G06F9/48 

Описание патента на изобретение RU2666625C2

Область техники, к которой относится изобретение

Это изобретение относится к области обработки прерываний в системах обработки данных.

Уровень техники

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

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

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

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

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

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

При обработке прерываний в системе, которая работает на множестве различных уровней исполнения, необходимо изолировать конкретные элементы хранения данных, которые используются во время обработки прерывания. Например, поднабор системных регистров может быть разделен так, что только программное обеспечение, работающее на уровне EL1 исполнения или выше, приспособлено осуществлять доступ к первому поднабору регистров, только программное обеспечение, работающее на уровне EL2 исполнения или выше, приспособлено осуществлять доступ к второму поднабору регистров, и только программное обеспечение, исполняющееся на уровне EL3 исполнения, приспособлено осуществлять доступ к третьему набору из поднабора регистров. Это разделение может быть выполнено и для защищенного, и для незащищенного режимов работы, когда это целесообразно. Такая изоляция гарантирует, что программное обеспечение, работающее на более низком уровне исполнения, не способно мешать или влиять на исполнение программного обеспечения, работающего на более высоком уровне исполнения.

Сущность изобретения

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

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

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

В некоторых вариантах осуществления множество уровней исполнения содержит EL0, EL1, EL2 и EL3. EL0 – это уровень исполнения, на котором пользователь исполняет программное обеспечение. EL1 – это более высоко привилегированный уровень исполнения, на котором исполняется гостевая операционная система. EL2 – это уровень исполнения, на котором исполняется гипервизор, который является более привилегированным, чем EL1. EL3 – это самый привилегированный уровень исполнения, где исполняется монитор безопасности. Отметим, что каждое из гостевой операционной системы, программного обеспечения гипервизора и монитора безопасности может включать в себя программное обеспечение обработки прерываний.

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

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

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

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

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

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

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

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

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

Согласно третьему аспекту предоставляется устройство обработки данных, содержащее:

множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания;

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

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

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

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

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

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

Краткое описание чертежей

Фиг. 1 – это блок-схема, схематично иллюстрирующая устройство обработки данных согласно одному варианту осуществления;

Фиг. 2 схематично иллюстрирует работу контроллера прерываний в устройстве обработки данных согласно одному варианту осуществления;

Фиг. 3A и 3B схематично показывают работу контроллера прерываний в устройстве обработки данных, переключающемся между двумя режимами работы в соответствии с одним вариантом осуществления;

Фиг. 4 – это блок-схема последовательности операций, иллюстрирующая работу устройства обработки данных в соответствии с одним вариантом осуществления;

Фиг. 5 – это блок-схема последовательности операций, иллюстрирующая работу устройства обработки данных "продвигающего" входящее прерывание в соответствии с одним вариантом осуществления;

Фиг. 6 – это блок-схема последовательности операций, иллюстрирующая работу устройства отображения данных, переключающегося между двумя режимами работы для формирования или неформирования виртуальных прерываний в ответ на входящие прерывания в соответствии с одним вариантом осуществления; и

Фиг. 7 схематично показывает систему, работающую в соответствии с одним вариантом осуществления.

Подробное описание вариантов осуществления

Варианты осуществления, описанные в данном документе, рассматривают систему, в которой процессор может быть изготовлен, чтобы выполнять обработку на множестве уровней (EL0-EL3) исполнения. EL0 – это наименее привилегированный уровень исполнения, а EL3 – это наиболее привилегированный уровень исполнения. Программное обеспечение, работающее на более высоком уровне исполнения, как правило, имеет возможность осуществлять доступ к данным, используемым более низким уровнем исполнения. Однако, данные, используемые более высоким уровнем исполнения, не могут, как правило, быть доступны программному обеспечению, исполняющемся на более низком уровне исполнения.

Пользовательское программное обеспечение исполняется на уровне EL0 исполнения, гостевые операционные системы исполняются на EL1, программное обеспечение гипервизора работает на уровне EL2 исполнения, а монитор безопасности работает на уровне EL3 исполнения.

Монитор безопасности способен управлять тем, исполняет ли процессор 30 обработку в защищенном режиме или незащищенном режиме. В то время как процессор находится в незащищенном режиме, он не может осуществлять доступ к защищенным данным. Должно также быть отмечено, что, в этом варианте осуществления, не существует защищенного режима работы для уровня EL2 исполнения и не существует незащищенного режима работы для уровня EL3 исполнения.

Уровень EL3 исполнения может осуществлять доступ как защищенным, так и незащищенным данным и управляет переключением между двумя состояниями.

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

Прерывания G0 или группы 0 намечены для монитора безопасности, который работает на EL3.

G1ns или незащищенные прерывания группы1 намечены либо для гипервизора, работающего в незащищенном режиме на EL2, либо для операционной системы, работающей в незащищенном режиме на EL1.

G1s или защищенные прерывания группы1 намечены для защищенной операционной системы, которая работает на EL1.

Входящие прерывания сигнализируются процессору контроллером прерываний посредством выдачи одного из двух исключений прерываний: FIQ и IRQ.

Фиг. 1 показывает блок-схему, иллюстрирующую вариант осуществления устройства обработки данных. Входящее прерывание 10 принимается посредством контроллера 20 прерываний. В этом варианте осуществления входящее прерывание 10 имеет категорию G0 и, таким образом, намечено для монитора безопасности, работающего на уровне EL3 исполнения в процессоре 30. Однако, в этом варианте осуществления, как следствие значений, сохраненных в регистрах 40 управления, входящее прерывание 10 вместо этого маршрутизируется в программное обеспечение обработки прерываний, работающее на уровне EL1 исполнения в процессоре 30.

При обычном ходе событий программное обеспечение обработки прерываний, работающее на уровне EL1 исполнения в процессоре 30, будет иметь доступ к конкретному поднабору регистров 60 в наборе системных регистров 50. Для того, чтобы входящее прерывание 10 было обработано, необходимо иметь доступ к другому, второму набору системных регистров 70. Этот второй набор регистров может включать в себя, например, регистры, которые используются, чтобы сигнализировать о том, что конкретное исключение является незаконченным или законченным, такие как регистр квитирования. Обычно, поэтому, программное обеспечение обработки прерываний, работающее на уровне EL1 исполнения в процессоре 30, не будет иметь доступа ко второму набору системных регистров 70, которые необходимы, чтобы обрабатывать входящее прерывание 10.

Однако, в этом варианте осуществления, способ, которым входящее прерывание 10 маршрутизируется в программное обеспечение обработки прерываний, зависит от одного или обоих из конфигурации регистров 40 управления и текущего режима исполнения (защищенный или незащищенный) процессора 30.

В частности, первый защищенный регистр SCR управления указывает, для каждого из исключений прерываний FIQ и IRQ, действительно или нет, что исключение прерывания маршрутизировано в программное обеспечение обработки прерываний, работающее на EL3.

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

Если исключение прерывания не маршрутизировано программному обеспечению обработки прерываний, работающему на EL3, и процессор работает в незащищенном режиме, тогда исключение прерывания маршрутизируется программному обеспечению обработки прерываний, работающему в незащищенном режиме на EL1 или EL2, в зависимости от значения, указанного посредством второго регистра управления гипервизора, HCR. Как и с регистром SCR, возможно задавать различное значение для каждого исключения прерывания.

Конфигурация регистров 40 управления может управляться посредством программного обеспечения, исполняющегося на процессоре 30. Например, значения, заданные для SCR, могут быть заданы посредством монитора безопасности, работающего на EL3 – тем самым, предоставляя возможность монитору безопасности уступать обработку конкретного исключения прерывания программному обеспечению обработки прерываний, работающему на более низком уровне исполнения. Аналогично, то, обрабатывается ли конкретное исключение прерывания посредством гипервизора, работающего на EL2, или гостевой операционной системы, работающей на EL1, может быть указано посредством гипервизора. Соответственно, гибкость такой системы улучшается, предоставляя возможность программному обеспечению на различных отличающихся уровнях исполнения обрабатывать входящее прерывание посредством установки конкретных значений в регистрах управления.

В этом примере схема 80 управления доступом к регистрам разрешает программному обеспечению обработки прерываний, работающему в защищенном режиме работы на уровне EL1 исполнения, доступ ко второму (дополнительному) набору системных регистров 70 в наборе системных регистров 50. Следовательно, программное обеспечение обработки прерываний, работающее в защищенном режиме работы на уровне EL1 исполнения, приспособлено обрабатывать входящее прерывание 10.

Следовательно, может быть видно, что доступ, предоставленный программному обеспечению обработки прерываний, работающему в защищенном режиме на уровне EL1 исполнения в процессоре 30, зависит от маршрутизации, выполненной контроллером 20 прерываний, которая, в свою очередь, может зависеть от значений регистров 40 управления. Изменение в доступе к системным регистрам 50 приводит в результате к тому, что программное обеспечение обработки прерываний, работающее в защищенном режиме на уровне EL1 исполнения в процессоре 30, приспособлено обрабатывать входящее прерывание 10. Следовательно, доступ, предоставляемый программному обеспечению обработки прерываний, которое работает на каждом уровне исполнения процессора 30, динамически определяется, тем самым, предоставляя возможность обработки входящего прерывания на множестве различных уровней исполнения. Выражаясь по-другому, программное обеспечение обработки прерываний, работающее на конкретном уровне исполнения, имеет доступ не только к фиксированному набору системных регистров 50. Вместо этого, доступ этого программного обеспечения обработки прерываний к системным регистрам 50 изменяется в зависимости от маршрутизации входящих прерываний на различные уровни исполнения.

Кроме того, хотя доступ, предоставленный программному обеспечению обработки прерываний, работающему в защищенном режиме на уровне EL1 исполнения в процессоре 30, корректируется, не существует требования о том, что доступ к какому-либо из других программных обеспечений обработки прерываний в каком-либо другом режиме исполнения или уровне исполнения должен корректироваться. В частности, хотя программное обеспечение обработки прерываний, работающее в защищенном режиме на уровне EL2 исполнения, работает на более высоком уровне исполнения, чем программное обеспечение обработки прерываний, работающее на уровне EL1 исполнения, нет необходимости в корректировке доступа программного обеспечения обработки прерываний на уровне EL2 исполнения.

Фиг. 2 показывает вариант осуществления, в котором устройство обработки данных включает в себя контроллер 20 прерываний, который продвигает входящее прерывание 10. Входящее прерывание 10 принимается посредством входной схемы 100 в контроллере 20 прерываний и имеет категорию G1S, указывающую, что прерывание намечено, чтобы обрабатываться посредством защищенной операционной системы, работающей на защищенном EL1. Регистр 90 квитирования в наборе системных регистров 50 указывает, что входящее прерывание 10 является незаконченным, а также (в этом варианте осуществления), что текущий уровень исполнения процессора 30 не соответствует режиму, требуемому входящим прерыванием 10. В этом примере входящее прерывание 10 требует защищенного режима работы, который несовместим с процессором 30, находящимся в незащищенном режиме работы. Тот факт, что входящее прерывание 10 не находится в правильном режиме работы, делается доступным контроллеру 20 прерываний.

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

Обычно, прибытие входящего прерывания 10 в контроллер 20 прерывания будет давать в результате формирование исключения IRQ прерывания, которое будет отправлено программному обеспечению обработки прерываний, работающему на уровне EL1 исполнения в защищенном режиме работы. Однако, поскольку, в этом примере, процессор 30 в настоящий момент не работает в защищенном режиме работы, невозможно обрабатывать это исключение прерывания в это время. Соответственно, схема 110 маршрутизации в контроллере 20 прерываний вынуждает входящее прерывание 10 "продвигаться" посредством формирования исключения FIQ прерывания, которое маршрутизируется в программное обеспечение обработки прерываний, работающее в защищенном режиме работы на уровне EL3 исполнения в процессоре 30.

В этом варианте осуществления программное обеспечение обработки прерываний, работающее в защищенном режиме на уровне EL3 исполнения, всегда приспособлено немедленно реагировать на внутреннее FIQ-прерывание. Соответственно, программное обеспечение обработки прерываний на более привилегированном уровне исполнения, чем был намечен входящим прерыванием 10, может быть вынуждено реагировать на прием контроллером 20 прерываний входящего прерывания 10, которое несовместимо с текущим режимом работы процессора.

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

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

Фиг. 3A и 3B показывают процесс переключения режима контроллера прерываний между первой настройкой, показанной на фиг. 3A, и второй настройкой, показанной на фиг. 3B.

На фиг. 3A входящее прерывание 10 принимается посредством контроллера 20 прерываний и перенаправляется в качестве исключения IRQ прерывания программному обеспечению обработки прерываний, работающему в незащищенном режиме на уровне EL1 исполнения в процессоре 30.

На фиг. 3B, входящее прерывание 10 принимается посредством контроллера 20 прерываний и снова перенаправляется в качестве исключения IRQ прерывания. Однако, в этом варианте осуществления, исключение IRQ прерывания принимается программным обеспечением обработки прерываний, работающим в незащищенном режиме на уровне EL2 исполнения. Виртуальное прерывание затем формируется посредством программного обеспечения обработки прерываний, работающего в незащищенном режиме на уровне EL2 исполнения, и перенаправляется программному обеспечению обработки прерываний, работающему в незащищенном режиме на уровне EL1 исполнения. В этом варианте осуществления виртуальное прерывание, которое сформировано, должно по определению быть незащищенным прерыванием группы 1, идущим либо к гипервизору, либо в гостевую ОС, поскольку в этом варианте осуществления не существует защищенного EL2.

Две настройки делают возможным влияние на то, имеет ли программное обеспечение обработки прерываний, работающее в незащищенном режиме на уровне EL1 исполнения, физический доступ к входящему прерыванию 10, или имеет ли программное обеспечение обработки прерываний, работающее в незащищенном режиме на более привилегированном уровне EL2 исполнения, физический доступ к входящему прерыванию 10, и программное обеспечение обработки прерываний, работающее в незащищенном режиме на уровне EL1 исполнения, имеет лишь виртуальный доступ к входящему прерыванию 10.

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

Альтернативно, такое прерывание может быть направлено программному обеспечению гипервизора, работающему на уровне EL2 исполнения, приводя в результате к виртуальному прерыванию, формируемому посредством программного обеспечения гипервизора и маршрутизируемому гостевой операционной системе, работающей на уровне EL1 исполнения. В этом случае, гостевая операционная система имеет лишь виртуальный доступ к входящему прерыванию 10, и доступ к этому прерыванию, в конечном счете, управляется посредством программного обеспечения гипервизора, работающего на уровне EL2 исполнения. Этот процесс может быть необходим, когда различные части программного обеспечения могут состязаться или могут не иметь доверия, чтобы осуществлять непосредственный доступ к аппаратным средствам. Однако, процесс формирования виртуального прерывания вероятно должен потреблять дополнительные ресурсы обработки по сравнению со сценарием, в котором гостевая операционная система имеет физический доступ к входящему прерыванию 10.

Контроллер 20 прерываний может переключаться между этими двумя настройками согласно значениям, возвращенным посредством регистров в наборе регистров 40 управления. Как ранее обсуждалось, когда процессор 30 работает в незащищенном режиме работы, и если исключение прерывания не маршрутизируется на EL3, значение регистра HCR может быть использовано, чтобы указывать, должно ли исключение прерывания маршрутизироваться на EL1 или EL2. Кроме того, этот регистр указывает, должно или нет программное обеспечение прерывания, которое принимает исключение прерывания, формировать виртуальное прерывание и перенаправлять это виртуальное прерывание программному обеспечению прерывания, работающему в незащищенном режиме на уровне EL1 исполнения. Формирование виртуального прерывания для обработки посредством программного обеспечения, работающего на менее привилегированном уровне исполнения, может требовать интенсивной работы процессора. Такие прерывания, которые, в конечном счете, обрабатываются посредством программного обеспечения обработки прерываний, работающего на более низком уровне, должны быть воспроизведены в форме виртуального прерывания посредством более привилегированного программного обеспечения обработки прерываний. Однако, создание виртуальных прерываний предоставляет возможность менее привилегированному обработчику прерываний обрабатывать прерывание без расширения привилегий программного обеспечения, работающего на менее привилегированном уровне исполнения. Таким образом, гипервизор будет устанавливать значения в регистрах 40 управления в зависимости от требований безопасности в противовес производительности, которые будут изменяться с конкретным программным обеспечением, которое исполняется на уровне EL1.

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

Режим процессора SCR.IRQ HCR.IRQ Прерывание EL IRQ маршрутизируется в, и физическое состояние доступно на Поведение EL1 и EL2 Защищенный 0 Неуместно EL1 (Защищенный) Незащищенный 0 0 EL1 (Незащищенный) Незащищенный 0 1 EL2 (Незащищенный) EL1 осуществляет доступ к управлению виртуальными прерываниями Защищенный 1 Неуместно EL3 (Защищенный) Доступ к EL1 не разрешен Незащищенный 1 0 EL3 (Защищенный) Доступ к EL1 и EL2 не разрешен Незащищенный 1 1 EL3 (Защищенный) EL1 осуществляет доступ к управлению виртуальными прерываниями, доступ к EL2 не разрешен

Должно быть отмечено, что регистр SCR защищенного управления и регистр HCR управления гипервизора, оба содержат бит, показанный выше, который управляет маршрутизацией IRQ, и другой бит (не показан в этой таблице), который управляет маршрутизацией FIQ. Управляющий бит для FIQ-прерываний SRC.FIQ, или HCR.FIQ управляет маршрутизацией для прерываний группы 0, а бит для IRQ-прерываний SCR.IRQ или HCR.IRQ определяет, как защищенные и незащищенные прерывания группы 1 маршрутизируются. Эта сегментация возможна, поскольку IRQ может, когда требуется, продвигаться в FIQ. Как уже упомянуто, эти настройки могут быть заданы независимо как для IRQ, так и для FIQ-исключений прерываний.

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

Фиг. 4 – это блок-схема последовательности операций, иллюстрирующая работу устройства обработки данных в соответствии с одним вариантом осуществления.

На этапе S10 определяется, на какой уровень исполнения входящее прерывание 10 (такое как показанное на фиг. 1 или 2) должно быть маршрутизировано. Такое определение может быть выполнено из комбинации значений, возвращенных регистрами в наборе регистров 40 управления, и типа входящего прерывания 10.

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

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

Фиг. 5 – это блок-схема последовательности операций, иллюстрирующая работу устройства обработки данных, продвигающего входящее прерывание 10 (такое как показанное на фиг. 1), в соответствии с одним вариантом осуществления.

На этапе S30 входящее прерывание 10 принимается посредством контроллера 20 прерываний.

На этапе S40 определяется текущий режим исполнения для процессора 30.

На этапе S50 определяется, является ли текущий режим исполнения процессора 30 таким же, что и намеченный режим исполнения входящего прерывания 10. Это определение может быть выполнено в результате считывания регистра 90 квитирования в системных регистрах 50, например.

Если текущий режим исполнения и намеченный режим исполнения являются одинаковыми, тогда действие переходит к этапу S60, на котором входящее прерывание 10 перенаправляется намеченному обработчику прерываний.

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

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

Соответственно, входящее прерывание 10, которое требует режима исполнения, который процессор 30 предоставляет в настоящий момент, может немедленно быть переправлено соответствующему программному обеспечению обработки прерываний. Однако, если процессор 30 не работает в соответствующем режиме исполнения, происходит "продвижение", вызывающее маршрутизацию входящего прерывания на самый привилегированный уровень исполнения. Здесь, входящее прерывание 10 может быть либо немедленно обработано, либо режим процессора переключен так, что входящее прерывание 10 может быть переслано первоначально намеченному программному обеспечению обработки прерываний.

Фиг. 6 – это блок-схема последовательности операций, иллюстрирующая работу устройства обработки данных, формирующего виртуальные прерывания в соответствии с одним вариантом осуществления.

На этапе S80 определяется, находится ли контроллер 20 прерываний в перенаправляющем режиме работы. В перенаправляющем режиме работы контроллер 20 прерываний сконфигурирован, чтобы непосредственно перенаправлять входящее прерывание 10 (такое как показанное на фиг. 1 или 2) на надлежащий уровень исполнения, тем самым, предоставляя программному обеспечению обработки прерываний на надлежащем уровне исполнения физический доступ к входящему прерыванию 10. Режим работы может быть определен в результате значения, возвращенного, например, посредством регистра 90 квитирования в наборе регистров 40 управления.

Если контроллер 20 прерываний находится в перенаправляющем режиме работы, тогда на этапе S90 входящее прерывание 10 непосредственно маршрутизируется в программное обеспечение обработки, работающее в незащищенном режиме работы на уровне EL1 исполнения.

Альтернативно, если контроллер 20 прерываний не находится в перенаправляющем режиме работы, тогда на этапе S100 входящее прерывание маршрутизируется в программное обеспечение обработки прерываний, работающее в незащищенном режиме работы на уровне EL2 исполнения. Затем, на этапе S110, виртуальное прерывание формируется посредством программного обеспечения, работающего на незащищенном уровне EL2 исполнения, и перенаправляется в программное обеспечение обработки прерываний, работающее на незащищенном уровне EL1 исполнения.

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

Фиг. 7 схематично показывает примерный вариант осуществления, в котором входящие прерывания формируются и отправляются схеме 110 маршрутизации. Там входящие прерывания используются, чтобы формировать исключения FIQ/IRQ прерываний при необходимости. Эти исключения прерываний отправляются процессору 30. В частности, исключения прерываний отправляются программному обеспечению обработки прерываний, работающему на одном из уровней исполнения в одном из режимов исполнения (защищенном или незащищенном) в зависимости от природы исключения прерывания.

Фиг. 7 показывает, что, в зависимости от значений, указанных посредством регистров SCR для исключений прерываний IRQ и FIQ, и в зависимости от текущего рабочего состояния процессора 30, который представлен как находящийся в незащищенном режиме, когда SCR_NS равно 1, и защищенном режиме, когда SCR_NS равно 0, прерывания различных категорий отправляются различному программному обеспечению обработки прерываний, работающему на различных уровнях исполнения. В этом отношении, регистр SCR защищенного управления хранит бит SCR.FIQ для управления FIQ-прерываниями, бит SCR.IRQ для управления IRQ-прерываниями и бит SCR.NS, указывающий текущий режим процессора, т.е., защищенный или незащищенный режим.

В частности, в этом примере, поскольку SCR.FIQ установлен в 1 для FIQ-исключений прерывания, прерывание G0, которое формирует FIQ-исключение прерывания, маршрутизируется на EL3.

Кроме того, поскольку SCR.IRQ равно 0 для IRQ, и поскольку процессор в настоящий момент находится в незащищенном режиме работы (SCR.NS=1), прерывание G1s "продвигается", вызывая формирование FIQ-прерывания и отправку на EL3. Наоборот, прерывание G1ns вызывает отправку IRQ-прерывания программному обеспечению обработки прерываний, работающему на уровне EL2 исполнения, поскольку процессор работает в требуемом режиме (т.е. незащищенном).

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

Похожие патенты RU2666625C2

название год авторы номер документа
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ОТ НЕДОВЕРЕННОГО КОДА РЕЖИМА УПРАВЛЕНИЯ С СИСТЕМОЙ С ПОМОЩЬЮ ПЕРЕАДРЕСАЦИИ ПРЕРЫВАНИЯ РЕЖИМА УПРАВЛЕНИЯ СИСТЕМОЙ И СОЗДАНИЯ КОНТЕЙНЕРА ВИРТУАЛЬНОЙ МАШИНЫ 2003
  • Саттон Ii Джеймс
  • Граурок Дэвид
  • Улиг Ричард
  • Пойснер Дэвид
  • Глу Эндрю
  • Холл Клиффорд
  • Смит Iii Лоренс
  • Нейгер Гилберт
  • Козух Майкл
  • Джордж Роберт
  • Берджесс Брэдли
RU2313126C2
АТТЕСТАЦИЯ ХОСТА, СОДЕРЖАЩЕГО ДОВЕРИТЕЛЬНУЮ СРЕДУ ИСПОЛНЕНИЯ 2015
  • Фергюсон Нильс Т.
  • Самсонов Евгений Анатольевич
  • Кинсхуманн
  • Чандрашекар Самартха
  • Мессек Джон Энтони
  • Новак Марк Фишел
  • Маккаррон Кристофер
  • Тэмхейн Амитабх Пракаш
  • Ван Цян
  • Крус Дэвид Мэттью
  • Бен-Зви Нир
  • Винберг Андерс Бертил
RU2679721C2
НОВЫЙ РЕЖИМ ПРОЦЕССОРА ДЛЯ ОГРАНИЧЕНИЯ ФУНКЦИОНИРОВАНИЯ ГОСТЕВОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВЫПОЛНЯЮЩЕГОСЯ НА ВИРТУАЛЬНОЙ МАШИНЕ, ПОДДЕРЖИВАЕМОЙ МОНИТОРОМ ВИРТУАЛЬНОЙ МАШИНЫ 2001
  • Чоу Стефен
  • Нэйджер Гилберт
  • Кота-Роблес Эрик
  • Джеясингх Сталинселварадж
  • Улиг Рихард
  • Козуч Майкл
  • Каги Элэйн
RU2265880C2
ЗАПУСК ГИПЕРВИЗОРА В ЗАПУЩЕННОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ 2007
  • Гангули Шувабрата
  • Торнтон Эндрю Дж.
  • Видерхирн Джон Ф.
  • Рэй Кеннет Д.
RU2446447C2
ФИЛЬТРАЦИЯ СОБЫТИЙ ДЛЯ ПРИЛОЖЕНИЙ БЕЗОПАСНОСТИ ВИРТУАЛЬНЫХ МАШИН 2017
  • Лутас Андрей-Влад
RU2723668C1
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СИНТЕЗИРОВАННЫХ КОМАНД В ВИРТУАЛЬНОЙ МАШИНЕ 2004
  • Траут Эрик
RU2374675C2
СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА 2016
  • Моляков Андрей Сергеевич
RU2626350C1
ОТОБРАЖЕНИЕ ДОСТОВЕРНОСТИ ИЗ ВЫСОКОНАДЕЖНОЙ СРЕДЫ НА НЕЗАЩИЩЕННУЮ СРЕДУ 2004
  • Уилмэн Брайан Марк
  • Ингленд Пол
  • Рей Кеннет Д.
  • Каплан Кейт
  • Куриен Варугис
  • Марр Майкл Дэвид
RU2390836C2
ЭФФЕКТИВНАЯ МАРШРУТИЗАЦИЯ ПРЕРЫВАНИЙ ДЛЯ МНОГОПОТОЧНОГО ПРОЦЕССА 2015
  • Фаррелл Марк
  • Хеллер Лайза
  • Кубала Джеффри Пол
  • Шмидт Доналд Уилльям
  • Грейнер Дэн
  • Следжел Тимоти
  • Бусаба Фади Юсуф
  • Осисек Дамьян
  • Бредбери Джонатан Дейвид
  • Ленерт Франк
  • Нерц Бернд
  • Джакоби Кристиан
RU2678513C2
СПОСОБ МОДИФИКАЦИИ РАЗРЕШЕНИЙ НА ДОСТУП К ПАМЯТИ В ЗАЩИЩЕННОЙ ПРОЦЕССОРНОЙ СРЕДЕ 2014
  • Лесли-Хёрд Ребека
  • Александрович Илья
  • Анати Иттай
  • Берензон Алекс
  • Маккин Фрэнсис
  • Розас Карлос
  • Савагаонкар Удай
  • Скарлата Винсент
  • Голдсмит Майкл
  • Джонсон Саймон
  • Шанбхогуэ Ведвиас
  • Смит Уэсли
RU2602793C2

Иллюстрации к изобретению RU 2 666 625 C2

Реферат патента 2018 года СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ПРЕРЫВАНИЙ

Группа изобретений относится к области вычислительной техники и может быть использована для обработки прерываний в системах обработки данных. Техническим результатом является увеличение гибкости программного обеспечения обработки прерываний, в то же время, поддерживая безопасность устройства обработки данных. Устройство содержит множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания; схему обработки, сконфигурированную для исполнения программного обеспечения на множестве уровней исполнения, схему контроллера прерываний, сконфигурированную для маршрутизации входящего прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на одном из множества уровней исполнения; схему управления доступом к регистрам, сконфигурированную для динамического управления доступом к, по меньшей мере, некоторым из регистров обработки прерываний в зависимости от упомянутого одного из множества уровней исполнения, на который входящее прерывание маршрутизировано. 5 н. и 13 з.п. ф-лы, 8 ил., 1 табл.

Формула изобретения RU 2 666 625 C2

1. Устройство обработки данных, содержащее:

множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания;

схему обработки, сконфигурированную для исполнения программного обеспечения на множестве уровней исполнения,

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

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

2. Устройство обработки данных по п. 1, в котором упомянутое множество уровней исполнения содержит EL0, EL1, EL2 и EL3;

EL0 является уровнем исполнения, на котором исполняется пользовательское программное обеспечение, и является менее привилегированным, чем EL1;

EL1 является уровнем исполнения, на котором исполняется гостевая операционная система, и является менее привилегированным, чем EL2;

EL2 является уровнем исполнения, на котором исполняется гипервизор, и является менее привилегированным, чем EL3; и

EL3 является уровнем исполнения, на котором исполняется монитор безопасности.

3. Устройство обработки данных по п. 1 или 2, в котором

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

4. Устройство обработки данных по п. 1, в котором схема контроллера прерываний дополнительно содержит:

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

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

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

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

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

5. Устройство обработки данных по п. 4, в котором

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

6. Устройство обработки данных по п. 4, в котором

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

7. Устройство обработки данных по любому из пп. 4-6, в котором

упомянутый предварительно определенный уровень исполнения, который является более привилегированным, чем намеченный уровень исполнения, является уровнем EL3 и является уровнем исполнения, на котором работает монитор безопасности.

8. Устройство обработки данных по любому из пп. 4-6, в котором

схема определения режима процессора содержит регистр квитирования в регистрах обработки прерываний; и

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

9. Устройство обработки данных по п. 8, в котором

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

10. Устройство обработки данных по п. 8, в котором

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

11. Устройство обработки данных по любому из пп. 4-6, 9, 10, в котором

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

12. Устройство обработки данных по п. 1, в котором схема контроллера прерываний является переключаемой между

первой настройкой, в которой контроллер прерываний маршрутизирует входящие прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, и

второй настройкой, в которой:

контроллер прерываний не маршрутизирует входящие прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом предварительно определенном уровне исполнения,

упомянутое по меньшей мере одно входящее прерывание маршрутизируется в программное обеспечение обработки прерываний, сконфигурированное работать на более привилегированном уровне исполнения, чем упомянутый предварительно определенный уровень исполнения,

по меньшей мере одно виртуальное прерывание формируется посредством программного обеспечения обработки прерываний, сконфигурированного работать на упомянутом более привилегированном уровне исполнения, чем упомянутый предварительно определенный уровень исполнения,

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

13. Устройство обработки данных по п. 12, в котором

упомянутым более привилегированным уровнем исполнения, чем упомянутый предварительно определенный уровень исполнения, является EL2, где уровень EL2 исполнения является уровнем, на котором работает гипервизор.

14. Устройство обработки данных по п. 12 или 13, в котором

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

15. Устройство обработки данных, содержащее:

множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания;

средство обработки для исполнения программного обеспечения на множестве уровней исполнения,

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

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

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

определяют целевой уровень исполнения, на который входящее прерывание маршрутизировано;

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

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

схему определения режима процессора, сконфигурированную определять текущий режим исполнения процессора; и

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

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

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

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

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

определяют текущий уровень исполнения упомянутого процессора;

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2018 года RU2666625C2

Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
US 7130951 B1, 31.10.2006
Электрододержатель 1975
  • Янсуфин Нигматулла Рахматуллович
  • Квон Валерий Самсонович
SU644489A1
EP 0511769 A1, 04.11.1992
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ОТ НЕДОВЕРЕННОГО КОДА РЕЖИМА УПРАВЛЕНИЯ С СИСТЕМОЙ С ПОМОЩЬЮ ПЕРЕАДРЕСАЦИИ ПРЕРЫВАНИЯ РЕЖИМА УПРАВЛЕНИЯ СИСТЕМОЙ И СОЗДАНИЯ КОНТЕЙНЕРА ВИРТУАЛЬНОЙ МАШИНЫ 2003
  • Саттон Ii Джеймс
  • Граурок Дэвид
  • Улиг Ричард
  • Пойснер Дэвид
  • Глу Эндрю
  • Холл Клиффорд
  • Смит Iii Лоренс
  • Нейгер Гилберт
  • Козух Майкл
  • Джордж Роберт
  • Берджесс Брэдли
RU2313126C2

RU 2 666 625 C2

Авторы

Джебсон Энтони

Грайзентуэйт Ричард Рой

Кеннеди Майкл Александр

Колфилд Йен Майкл

Даты

2018-09-11Публикация

2014-05-12Подача