СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ПРЕРЫВАНИЙ

1. Устройство обработки данных, содержащее:
множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания;
схему обработки, сконфигурированную для исполнения программного обеспечения на множестве уровней исполнения,
схему контроллера прерываний, сконфигурированную для маршрутизации входящего прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на одном из множества уровней исполнения;
схему управления доступом к регистрам, сконфигурированную для динамического управления доступом к, по меньшей мере, некоторым из регистров обработки прерываний в зависимости от упомянутого одного из множества уровней исполнения, на который входящее прерывание маршрутизировано, так что программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом уровне исполнения, имеет доступ к упомянутым, по меньшей мере, некоторым из регистров обработки прерываний для обработки входящего прерывания, и так что программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом уровне исполнения, не имеет доступа к регистрам обработки прерываний для обработки второго входящего прерывания, маршрутизированного в программное обеспечение обработки прерываний, работающее на более привилегированном уровне исполнения.
2. Устройство обработки данных по п. 1, в котором упомянутое множество уровней исполнения содержит EL0, EL1, EL2 и EL3;
EL0 является уровнем исполнения, на котором исполняется пользовательское программное обеспечение, и является менее привилегированным, чем EL1;
EL1 является уровнем исполнения, на котором исполняется гостевая операционная система, и является менее привилегированным, чем EL2;
EL2 является уровнем исполнения, на котором исполняется гипервизор, и является менее привилегированным, чем EL3; и
EL3 является уровнем исполнения, на котором исполняется монитор безопасности.
3. Устройство обработки данных по п. 1 или 2, в котором
схема управления доступом к регистрам сконфигурирована динамически управлять доступом к, по меньшей мере, некоторым из регистров обработки прерываний в зависимости исключительно от упомянутого одного из множества уровней исполнения, на который маршрутизировано входящее прерывание.
4. Устройство обработки данных по любому предшествующему пункту, в котором схема контроллера прерываний дополнительно содержит:
схему определения режима процессора, сконфигурированную определять текущий режим исполнения схемы обработки;
входную схему, сконфигурированную принимать входящее прерывание, намеченное для обработчика прерываний, сконфигурированного работать в намеченном режиме исполнения и на намеченном уровне исполнения;
схему маршрутизации, сконфигурированную маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на целевом уровне исполнения, при этом схема маршрутизации сконфигурирована:
реагировать на принятое входящее прерывание, имеющее намеченный режим исполнения, который соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на намеченном уровне исполнения; и
реагировать на принятое входящее прерывание, имеющее намеченный режим исполнения, который не соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения.
5. Устройство обработки данных по п. 4, в котором
каждый из текущего режима исполнения и намеченного режима исполнения является одним из защищенного режима и незащищенного режима, причем схема обработки, работающая в защищенном режиме, имеет доступ к защищенным данным, которые недоступны схеме обработки, работающей в незащищенном режиме.
6. Устройство обработки данных по п. 4 или 5, в котором
упомянутый предварительно определенный уровень исполнения, который является более привилегированным, чем намеченный уровень исполнения, является самым привилегированным уровнем исполнения.
7. Устройство обработки данных по любому из пп. 4-6, в котором
упомянутый предварительно определенный уровень исполнения, который является более привилегированным, чем намеченный уровень исполнения, является уровнем EL3 и является уровнем исполнения, на котором работает монитор безопасности.
8. Устройство обработки данных по любому из пп. 4-7, в котором
схема определения режима процессора содержит регистр квитирования в регистрах обработки прерываний; и
регистр квитирования сконфигурирован указывать, что обработка принятого входящего прерывания является незаконченной, и возвращать предварительно определенное значение для указания того, что принятое входящее прерывание имеет намеченный режим исполнения, который не соответствует текущему режиму исполнения.
9. Устройство обработки данных по п. 8, в котором
программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения, сконфигурировано реагировать на регистр квитирования, возвращающий упомянутое предварительно определенное значение, изменением режима исполнения схемы обработки, и затем инструктировать схеме маршрутизации маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на намеченном уровне исполнения.
10. Устройство обработки данных по п. 8, в котором
программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения, сконфигурировано реагировать на регистр квитирования, возвращающий упомянутое предварительно определенное значение, обработкой входящего прерывания.
11. Устройство обработки данных по любому из пп. 4-10, в котором
схема маршрутизации сконфигурирована маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на намеченном уровне исполнения, и маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения, формированием исключения прерывания и перенаправлением данного исключения прерывания в по меньшей мере одно из программного обеспечения обработки прерываний, сконфигурированного работать на намеченном уровне исполнения, и программного обеспечения обработки прерываний, сконфигурированного работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения.
12. Устройство обработки данных по любому предшествующему пункту, в котором схема контроллера прерываний является переключаемой между
первой настройкой, в которой контроллер прерываний маршрутизирует входящие прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, и
второй настройкой, в которой:
контроллер прерываний не маршрутизирует входящие прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом предварительно определенном уровне исполнения,
упомянутое по меньшей мере одно входящее прерывание маршрутизируется в программное обеспечение обработки прерываний, сконфигурированное работать на более привилегированном уровне исполнения, чем упомянутый предварительно определенный уровень исполнения,
по меньшей мере одно виртуальное прерывание формируется посредством программного обеспечения обработки прерываний, сконфигурированного работать на упомянутом более привилегированном уровне исполнения, чем упомянутый предварительно определенный уровень исполнения,
и упомянутое по меньшей мере одно виртуальное прерывание маршрутизируется в программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом предварительно определенном уровне исполнения.
13. Устройство обработки данных по п. 12, в котором
упомянутым более привилегированным уровнем исполнения, чем упомянутый предварительно определенный уровень исполнения, является EL2, где уровень EL2 исполнения является уровнем, на котором работает гипервизор.
14. Устройство обработки данных по п. 12 или 13, в котором
каждое из программного обеспечения обработки прерываний, сконфигурированного работать на предварительно определенном уровне исполнения, и программного обеспечения обработки прерываний, сконфигурированного работать на более привилегированном уровне исполнения, исполняется в защищенном режиме работы в схеме обработки, при этом схема обработки, работающая в защищенном режиме, имеет доступ к защищенным данным, которые недоступны схеме обработки, работающей в незащищенном режиме, и схема обработки, работающая в незащищенном режиме, имеет доступ к незащищенным данным, которые недоступны схеме обработки, работающей в защищенном режиме.
15. Устройство обработки данных, содержащее:
множество системных регистров, содержащих набор регистров обработки прерываний для управления обработкой входящего прерывания;
средство обработки для исполнения программного обеспечения на множестве уровней исполнения,
средство контроллера прерываний для маршрутизации входящего прерывания в программное обеспечение обработки прерываний, сконфигурированное работать на одном из множества уровней исполнения;
средство управления доступом к регистрам для динамического управления доступом к, по меньшей мере, некоторым из регистров обработки прерываний в зависимости от упомянутого одного из множества уровней исполнения, на который входящее прерывание маршрутизировано, так что программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом уровне исполнения, имеет доступ к, по меньшей мере, некоторым из регистров обработки прерываний для обработки входящего прерывания, и так что программное обеспечение обработки прерывания, сконфигурированное работать на упомянутом уровне исполнения, не имеет доступа к регистрам обработки прерываний для обработки второго входящего прерывания, маршрутизированного в программное обеспечение обработки прерываний, работающее на более привилегированном уровне исполнения.
16. Способ динамического управления доступом к, по меньшей мере, некоторым из набора регистров обработки прерываний для обработки входящего прерывания, которое маршрутизировано в программное обеспечение обработки прерываний, сконфигурированное работать на целевом уровне исполнения из множества уровней исполнения, при этом способ содержит этапы, на которых:
определяют целевой уровень исполнения, на который входящее прерывание маршрутизировано;
предоставляют доступ программному обеспечению обработки прерываний, сконфигурированному работать на целевом уровне исполнения, так что программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом уровне исполнения, имеет доступ к упомянутым, по меньшей мере, некоторым из регистров обработки прерываний для обработки входящего прерывания, и так что программное обеспечение обработки прерываний, сконфигурированное работать на упомянутом уровне исполнения, не имеет доступа к регистрам обработки прерываний для обработки второго входящего прерывания, маршрутизированного в программное обеспечение обработки прерываний, сконфигурированное работать на более привилегированном уровне исполнения.
17. Компьютерная программа для управления устройством обработки, чтобы выполнять способ по п. 16.
18. Устройство для маршрутизации входящего прерывания в схему обработки, причем схема обработки сконфигурирована исполнять программное обеспечение на множестве уровней исполнения, при этом упомянутое устройство содержит:
схему определения режима процессора, сконфигурированную определять текущий режим исполнения процессора; и
входную схему, сконфигурированную принимать входящее прерывание, намеченное для обработчика прерываний, сконфигурированного работать в намеченном режиме исполнения и на намеченном уровне исполнения;
схему маршрутизации, сконфигурированную маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на целевом уровне исполнения, при этом схема маршрутизации сконфигурирована:
реагировать на принятое входящее прерывание, имеющее намеченный режим исполнения, который соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на намеченном уровне исполнения; и
реагировать на принятое входящее прерывание, имеющее намеченный режим исполнения, который не соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения.
19. Способ маршрутизации входящего прерывания в схему обработки, при этом схема обработки сконфигурирована исполнять программное обеспечение на множестве уровней исполнения, причем упомянутый способ содержит этапы, на которых:
определяют текущий уровень исполнения упомянутого процессора;
принимают входящее прерывание, намеченное для обработчика прерываний, сконфигурированного работать в намеченном режиме исполнения и на намеченном уровне исполнения; и
маршрутизируют входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на целевом уровне исполнения, посредством этапов, на которых:
реагируют на принятое входящее прерывание, имеющее намеченный режим исполнения, который соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на намеченном уровне исполнения; и
реагируют на принятое входящее прерывание, имеющее намеченный режим исполнения, который не соответствует текущему режиму исполнения схемы обработки, чтобы маршрутизировать входящее прерывание в программное обеспечение обработки прерываний, сконфигурированное работать на предварительно определенном уровне исполнения, который является более привилегированным, чем намеченный уровень исполнения.
20. Компьютерная программа для управления устройством обработки, чтобы выполнять способ по п. 19.