KR101489887B1 - System and method for processing interrupt - Google Patents

System and method for processing interrupt Download PDF

Info

Publication number
KR101489887B1
KR101489887B1 KR20140008504A KR20140008504A KR101489887B1 KR 101489887 B1 KR101489887 B1 KR 101489887B1 KR 20140008504 A KR20140008504 A KR 20140008504A KR 20140008504 A KR20140008504 A KR 20140008504A KR 101489887 B1 KR101489887 B1 KR 101489887B1
Authority
KR
South Korea
Prior art keywords
interrupt
fiq
handler
irq
security area
Prior art date
Application number
KR20140008504A
Other languages
Korean (ko)
Inventor
김세원
박혜정
유성배
유혁
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR20140008504A priority Critical patent/KR101489887B1/en
Application granted granted Critical
Publication of KR101489887B1 publication Critical patent/KR101489887B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

A system for processing interrupt in an ARM processor includes: a secure area unit including an interrupt request (IRQ) handler to process fast interrupt request (FIQ) interrupt; a non-secure area unit including an IRQ handler to process IRQ interrupt; and a monitor module including an FIQ handler caller and an IRQ handler caller, and configured to determine whether the secure area unit is processing exceptions or not. The FIQ handler caller calls the IRQ handler of the secure area unit in order to process FIQ interrupt received from an external hardware device. The IRQ handler caller calls the IRQ handler of the non-secure area unit in order to process IRQ interrupt received from the external hardware device. When the monitor module determines that the secure area unit is processing exceptions, the FIQ handler caller inactivates the FIQ interrupt, and activates the FIQ interrupt again when the exception processing is ended. Therefore, even when the secure area unit of the ARM processor receives FIQ interrupt during exception handling, the secure area unit can process the FIQ interrupt without an error.

Description

인터럽트 처리 시스템 및 방법{SYSTEM AND METHOD FOR PROCESSING INTERRUPT}[0001] SYSTEM AND METHOD FOR PROCESSING INTERRUPT [0002]

본 발명은 인터럽트 처리 시스템 및 방법에 관한 것이다.The present invention relates to an interrupt processing system and method.

ARM 프로세서의 SoC(System On Chip) 기술 중 하나로서, 하드웨어 레벨의 보안을 향상시키기 위한 ARM TrustZone 기술이 있다. 이는 CPU를 보안 영역(Secure World)과 비보안 영역(Normal World)으로 나누어 제공하며, 각 영역에서 사용되는 메모리와 장치를 분할하여 사용할 수 있도록 한다.As one of the System On Chip (SoC) technologies in ARM processors, there is ARM TrustZone technology to enhance hardware level security. This is divided into a secure area (Secure World) and a non-secure area (Normal World), and the memory and devices used in each area can be divided and used.

이와 같이 ARM TrustZone 기술은 보안성을 향상시키기 위한 기술이지만, CPU를 비롯한 메모리와 장치를 2개의 영역으로 분할하여 사용하기 때문에, 2개의 가상 머신이 필요한 환경에서 임베디드 장치의 가상화를 위한 방법으로 활용되어 왔다.ARM TrustZone technology is a technique for improving security. However, since the memory and the device including the CPU are divided into two areas, it is utilized as a method for virtualizing an embedded device in a situation requiring two virtual machines come.

한편, ARM 프로세서는 실행 중에 발생할 수 있는 예외를 RESET, UNDEFINED INSTRUCTION, SWI, PREFETCH ABORT, DATA ABORT, IRQ, FIQ인 총 7개로 정의하고 있다. 이때, ARM 프로세서는 FIQ와 IRQ로 구분되는 2개의 인터럽트 우선 순위 모델을 제공할 수 있다. ARM 프로세서는 위와 같은 예외가 발생하면 실행 모드를 변경하여 예외를 처리한 후 본래 실행하던 모드로 복귀하게 된다.On the other hand, the ARM processor defines seven exceptions that can occur during execution: RESET, UNDEFINED INSTRUCTION, SWI, PREFETCH ABORT, DATA ABORT, IRQ, and FIQ. At this time, the ARM processor can provide two interrupt priority models separated by FIQ and IRQ. When the above exception occurs, the ARM processor changes the execution mode, processes the exception, and returns to the original execution mode.

구체적으로, SoC에 연결되는 모든 장치는 인터럽트를 발생할 수 있으며, 이는 FIQ 또는 IRQ 중 하나의 형태로 인터럽트를 프로세서에 전달되도록 설정할 수 있다. 특히, ARM TrustZone 가상화 환경에서 보안 영역은 FIQ 인터럽트를, 비보안 영역은 IRQ 인터럽트를 전달하도록 함으로써, 두 영역에서 사용하는 장치에 대한 독립적인 인터럽트 처리 방법을 제공할 수 있다.Specifically, all devices connected to the SoC can generate interrupts, which can be configured to send interrupts to the processor in the form of either FIQ or IRQ. In particular, in the ARM TrustZone virtualization environment, it is possible to provide a separate interrupt handling method for the devices used in the two areas, by allowing the security area to transmit FIQ interrupts and the non-security area to transmit IRQ interrupts.

이하에서는, 도 1을 참조하여 종래 기술에 따른 인터럽트 처리 방법을 설명하도록 한다.Hereinafter, a conventional interrupt processing method will be described with reference to FIG.

도 1은 종래 기술에 따른 인터럽트 처리 방법을 도시한 도면이다.1 is a diagram showing a conventional interrupt processing method.

종래 기술에 따른 ARM TrustZone은 두 개의 영역인 보안 영역부과 비보안 영역부에서 실행하는 운영체제에게 인터럽트를 제공하기 위하여, 인터럽트를 FIQ와 IRQ로 구분하여 각 영역에 제공할 수 있다. 이때, FIQ 인터럽트는 보안 영역부로 전달되고, IRQ 인터럽트는 비보안 영역부로 전달된다.ARM TrustZone according to the related art can provide interrupts to FIQ and IRQ in each area in order to provide an interrupt to an operating system executed in two security areas and non-security areas. At this time, the FIQ interrupt is transferred to the security area, and the IRQ interrupt is transferred to the non-security area.

ARM 프로세서로 포팅된 리눅스는 모든 장치의 인터럽트를 IRQ 인터럽트 형식으로 받도록 되어있다. 따라서, ARM 프로세서로 포팅된 리눅스를 보안 영역부의 운영체제에서 실행하기 위하여, FIQ로 들어오는 인터럽트를 처리할 수 있도록 수정해야 한다. 하지만, 현재의 ARM 리눅스는 인터럽트를 IRQ로 받고 IRQ 모드에서 처리하기 때문에 FIQ로 들어오는 인터럽트를 ARM 리눅스의 IRQ 핸들러가 처리할 수 있도록 해야 한다.Linux, ported to ARM processors, is designed to receive all device interrupts in the form of IRQ interrupts. Therefore, in order to run Linux ported to the ARM processor in the operating system of the security realm, it must be modified to handle interrupts coming into the FIQ. However, the current ARM Linux has to make the IRQ handler of the ARM Linux handle the interrupts coming into the FIQ because it receives the interrupts as IRQs and processes them in IRQ mode.

도 1을 참조하면, 하드웨어에서 FIQ 인터럽트가 발생하여 모니터 모듈로 전달되면(S110), 모니터 모듈은 이를 처리하기 위하여 보안 영역부의 IRQ 핸들러를 호출한다(S111). 그리고 보안 영역부의 IRQ 핸들러를 통하여 FIQ 인터럽트를 처리하게 된다(S113). 이와 같이, 종래 기술에 따른 인터럽트 처리 시스템은 보안 영역부가 예외처리 중이 아닌 경우, FIQ 인터럽트가 발생하더라도 오류가 발생하지 않는다.Referring to FIG. 1, when an FIQ interrupt occurs in the hardware and is transmitted to the monitor module (S110), the monitor module calls the IRQ handler of the security area to process the FIQ interrupt (S111). Then, the FIQ interrupt is processed through the IRQ handler in the security area (S113). In this way, in the interrupt processing system according to the related art, if the security area section is not in exception processing, an error does not occur even if FIQ interrupt occurs.

다만, 하드웨어에서 예외 처리를 요구하는 동작이 발생하여(S120), 보안 영역부가 예외처리 중에(S121) FIQ 인터럽트가 발생하면(S130), 모니터 모듈은 FIQ 인터럽트를 IRQ 핸들러로 전달한다(S131). 이와 같이 보안 영역부가 예외처리 중에 있는 경우 FIQ 인터럽트가 발생하면, “BAD Mode in Interrupt” 오류가 발생하게 된다. 이는 ARM 프로세서가 예외를 처리하는 동안 다른 예외가 발생하여 처리하는 것을 금지하고 있기 때문이다. 하지만, IRQ로 인터럽트를 받고 이를 처리하는 경우에는 예외발생 시 하드웨어적으로 동작하는 매커니즘 상의 차이에 따라 위와 같은 문제가 발생하지 않는다. However, if an operation for requesting exception processing occurs in hardware (S120), and an FIQ interrupt occurs in the security area appending exception handling process (S121) (S130), the monitor module transfers the FIQ interrupt to the IRQ handler (S131). In this way, if FIQ interrupt occurs when the security area is in exception processing, "BAD Mode in Interrupt" error occurs. This is because the ARM processor prohibits other exceptions from occurring while processing exceptions. However, when an interrupt is received and processed by an IRQ, the above problem does not occur due to a difference in mechanism that operates in hardware when an exception occurs.

아래의 [표 1]은 각 예외처리 시 하드웨어적으로 FIQ 인터럽트 또는 IRQ 인터럽트의 활성화 및 비활성화 관계를 설명한 것이다.[Table 1] below describes the relationship between activation and deactivation of FIQ interrupts or IRQ interrupts in hardware in each exception processing.

예외처리exception handling FIQFIQ IRQIRQ ResetReset 비활성화Disabled 비활성화Disabled Undefined InstructionUndefined Instruction 활성화Activation 비활성화Disabled SWISWI 활성화Activation 비활성화Disabled Prefetch AbortPrefetch Abort 활성화Activation 비활성화Disabled Data AbortData Abort 활성화Activation 비활성화Disabled IRQIRQ 활성화Activation 비활성화Disabled FIQFIQ 비활성화Disabled 비활성화Disabled

위 [표 1]을 참조하면, IRQ 인터럽트는 모든 예외처리 시 비활성화로 설정되므로, 예외처리 시 IRQ 인터럽트로 인한 문제는 발생하지 않는다. 이와 달리, FIQ 인터럽트는 RESET과 FIQ 예외 처리에만 비활성화되기 때문에, 나머지 예외 처리시 FIQ 인터럽트가 발생할 경우 ”BAD Mode in Interrupt” 오류가 발생하는 문제가 생기게 된다. Referring to Table 1 above, since the IRQ interrupt is set to be inactivated in all exception handling, the problem caused by the IRQ interrupt does not occur in exception handling. On the other hand, FIQ interrupts are disabled only for RESET and FIQ exception handling, so there is a problem that the "BAD Mode in Interrupt" error occurs when the FIQ interrupt occurs in the remaining exception handling.

이와 관련하여 한국등록특허 제10-2010-0052477호(발명의 명칭: 임베디드 운영체제 커널의 인터럽트 처리 모드 결정 방법)에는 인터럽트 처리 모드를 복수 개로 하여 인터럽트 서비스를 수행할 수 있도록 한 임베디드 운영체제 커널의 인터럽트 처리 모드 결정 방법이 개시되어 있다.Korean Patent Registration No. 10-2010-0052477 (entitled " Method of Determining Interrupt Processing Mode of Embedded Operating System Kernel ") discloses an interrupt handling method of an embedded operating system kernel in which a plurality of interrupt processing modes can be performed. A mode determination method is disclosed.

또한, 한국공개특허 제10-2013-0012126호(발명의 명칭: 예외 이벤트 처리 장치 및 방법)에는 예외 이벤트를 처리하기 위한 구성 요소로서 처리 회로, 예외 복귀 레지스터, 스택 포인터 레지스터, 스택 포인터 선택회로 등을 포함하는 데이터 처리 장치가 개시되어 있다.Korean Unexamined Patent Application Publication No. 10-2013-0012126 (entitled " exception event processing apparatus and method ") discloses a processing circuit, an exception return register, a stack pointer register, a stack pointer selection circuit, And a data processing apparatus.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 모니터 모듈의 FIQ 핸들러를 수정하여, ARM 프로세서의 보안 영역부에서 예외처리 중에 FIQ 인터럽트가 발생한 경우에도 오류 발생 없이 FIQ 인터럽트를 처리할 수 있도록 하는 인터럽트 처리 시스템 및 방법을 제공하는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems of the conventional art, and it is an object of the present invention to provide a monitor module in which the FIQ handler of the monitor module can be modified so that even when an FIQ interrupt occurs during the exception processing in the security area of the ARM processor, And to provide an interrupt processing system and method for enabling an FIQ interrupt to be handled.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 ARM 프로세서에서의 인터럽트 처리 시스템은 FIQ(Fast Interrupt reQuest) 인터럽트를 처리하는 IRQ(Interrupt ReQuest) 핸들러를 포함하는 보안 영역부, IRQ 인터럽트를 처리하는 IRQ 핸들러를 포함하는 비보안 영역부 및 FIQ 핸들러 호출부 및 IRQ 핸들러 호출부를 포함하며, 상기 보안 영역부가 예외처리 중인지 여부를 판별하는 모니터 모듈을 포함하되, 상기 FIQ 핸들러 호출부는 외부 하드웨어 장치로부터 전달받은 상기 FIQ 인터럽트를 처리하기 위하여 상기 보안 영역부의 IRQ 핸들러를 호출하고, 상기 IRQ 핸들러는 상기 외부 하드웨어 장치로부터 전달받은 상기 IRQ 인터럽트를 처리하기 위하여 상기 비보안 영역부의 IRQ 핸들러를 호출하며, 상기 모니터 모듈은 상기 보안 영역부가 예외처리 중인 것으로 판별한 경우, 상기 FIQ 핸들러 호출부는 상기 FIQ 인터럽트를 비활성화시키고, 상기 예외처리가 종료된 후 상기 FIQ 인터럽트를 다시 활성화시킨다.According to a first aspect of the present invention, there is provided an interrupt processing system in an ARM processor, the interrupt processing system including an interrupt request (IRQ) handler for processing a Fast Interrupt reQuest (FIQ) interrupt, And a monitor module including a non-security area unit including an IRQ handler for processing an IRQ interrupt, an FIQ handler calling unit and an IRQ handler calling unit, for discriminating whether or not the security area unit is under exception processing, Calling the IRQ handler of the security area to process the FIQ interrupt received from the hardware device, and the IRQ handler calls an IRQ handler of the non-security area to process the IRQ interrupt received from the external hardware device, The monitor module includes a security zone If it is determined that the in-process, after the call handler FIQ FIQ unit disables the interrupt and the exception processing is completed thereby re-enable the FIQ interrupts.

또한, 본 발명의 제 2 측면에 따른 ARM 프로세서의 가상화 환경에서 FIQ(Fast Interrupt reQuest) 인터럽트를 처리하기 위한 방법은 모니터 모듈의 FIQ 핸들러 호출부가 외부 하드웨어 장치로부터 상기 FIQ 인터럽트를 전달받는 단계, 상기 모니터 모듈이, IRQ(Interrupt ReQuest) 핸들러를 각각 포함하는 보안 영역부 및 비보안 영역부로 구분된 상기 ARM 프로세서에서 예외처리 중인지 여부를 판별하는 단계, 상기 ARM 프로세서가 예외처리 중인 것으로 판별된 경우, 상기 FIQ 핸들러 호출부가 상기 FIQ 인터럽트를 비활성화시키는 단계, 상기 예외처리가 종료된 후, 상기 FIQ 핸들러 호출부가 상기 비활성화된 FIQ 인터럽트를 활성화시키는 단계, 상기 FIQ 핸들러 호출부가 상기 보안 영역부의 IRQ 핸들러를 호출하는 단계 및 상기 보안 영역부의 IRQ 핸들러가 상기 FIQ 인터럽트를 처리하는 단계를 포함하되, 상기 보안 영역부의 IRQ 핸들러는 상기 FIQ 인터럽트를 처리하고, 상기 비보안 영역부의 IRQ 핸들러는 IRQ 인터럽트를 처리한다.A method for processing a FIQ interrupt in a virtualization environment of an ARM processor according to the second aspect of the present invention includes receiving an FIQ interrupt from an external hardware device, Determining whether an exception is being handled in the ARM processor divided into a security area section and a non-security area section each including an IRQ (Interrupt ReQuest) handler; if the ARM processor is determined to be in exception processing, The FIQ handler call unit activating the deactivated FIQ interrupt, the FIQ handler call unit calling the IRQ handler of the security area unit; The IRQ handler in the secure area performs the FIQ interrupt Comprising the step of, IRQ handler of said security zone is IRQ handler processes the interrupt FIQ, and the non-secure region of the process an IRQ interrupt.

전술한 본 발명의 과제 해결 수단의 어느 실시예에 의하면, ARM TrustZone 가상화를 이용하여 보안 영역부의 IRQ 핸들러를 통해 FIQ 인터럽트를 처리할 수 있다. 즉, 보안 영역부와 비보안 영역부 모두에서 리눅스와 같은 범용 운영체제를 동작시키기 위해 필요한 FIQ 인터럽트 처리시 발생하는 문제를 해결할 수 있다.According to the above-described embodiment of the present invention, the FIQ interrupt can be handled through the IRQ handler in the secure area using ARM TrustZone virtualization. That is, it is possible to solve a problem occurring in the FIQ interrupt processing required for operating a general-purpose operating system such as Linux in both the security area and the non-security area.

이에 따라, ARM 프로세서의 보안 영역부에서 예외처리 중에 FIQ 인터럽트를 전달받더라도 오류 발생 없이 FIQ 인터럽트를 처리할 수 있다.Accordingly, even if the FIQ interrupt is received during the exception processing in the security area of the ARM processor, the FIQ interrupt can be processed without generating an error.

또한, 리눅스의 IRQ 핸들러를 수정하지 않고 보안 영역부의 FIQ 인터럽트를 처리할 수 있다.You can also handle FIQ interrupts in the secure area without modifying the Linux IRQ handler.

도 1은 종래 기술에 따른 인터럽트 처리 방법을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 ARM 프로세서에서의 인터럽트 처리 시스템의 블록도이다.
도 3은 종래 기술 및 본 발명에 따른 FIQ 핸들러 호출부에 적용된 알고리즘의 일 예시를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 ARM 프로세서에서의 인터럽트 처리 방법의 순서도이다.
1 is a diagram showing a conventional interrupt processing method.
2 is a block diagram of an interrupt processing system in an ARM processor in accordance with an embodiment of the present invention.
3 is a diagram illustrating an example of an algorithm applied to the FIQ handler call unit according to the prior art and the present invention.
4 is a flowchart of a method of processing an interrupt in an ARM processor according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

도 2는 본 발명의 일 실시예에 따른 ARM 프로세서에서의 인터럽트 처리 시스템(100)의 블록도이다.2 is a block diagram of an interrupt processing system 100 in an ARM processor in accordance with one embodiment of the present invention.

본 발명의 일 실시예에 따른 인터럽트 처리 시스템(100)은 보안 영역부(110), 비보안 영역부(120) 및 모니터 모듈(130)을 포함한다.The interrupt processing system 100 according to an embodiment of the present invention includes a security area 110, a non-security area 120, and a monitor module 130.

참고로, 본 발명의 실시예에 따른 도 2에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성 요소를 의미하며, 소정의 역할들을 수행한다.2 refers to a hardware component such as software or an FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit), and performs predetermined roles .

그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.However, 'components' are not meant to be limited to software or hardware, and each component may be configured to reside on an addressable storage medium and configured to play one or more processors.

따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.Thus, by way of example, an element may comprise components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, Routines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.The components and functions provided within those components may be combined into a smaller number of components or further separated into additional components.

보안 영역부(110)는 FIQ(Fast Interrupt reQuest) 인터럽트를 처리하는 IRQ(Interrupt ReQuest) 핸들러(115)를 포함한다. 그리고 비보안 영역부(120)는 IRQ 인터럽트를 처리하는 IRQ 핸들러(125)를 포함한다. The security area 110 includes an Interrupt ReQuest (IRQ) handler 115 for processing an FIQ (Fast Interrupt request) interrupt. And the non-secure region 120 includes an IRQ handler 125 for processing IRQ interrupts.

이때, 보안 영역부(110) 및 비보안 영역부(120)는 서로 독립적으로 운영되는 운영체제에 의하여 관리될 수 있으며, 이때 적용된 운영체제는 리눅스일 수 있다. 즉, ARM 프로세서의 TrustZone은 하나의 물리 프로세서 코어를 보안 영역부(110)와 비보안 영역부(120)로 구분하여 운영할 수 있으며, ARM TrustZone을 부팅시킬 경우, 2회의 부팅을 통해 각 영역이 부팅된다. ARM TrustZone의 각 영역은 CPU의 레지스터 및 페이지 테이블 관련 레지스터가 분리되어 있고, 인터럽트 또한 보안 영역부(110) 및 비보안 영역부(120)로 각각 나누어 발생시킬 수 있다. 이와 같이, 보안 영역부(110) 및 비보안 영역부(120)는 각 영역마다 각각 독립적으로 운영될 수 있으며, 별도의 운영체제에 의하여 관리될 수 있다.In this case, the security area 110 and the non-security area 120 may be managed by independent operating systems. In this case, the operating system may be Linux. That is, the TrustZone of the ARM processor can divide one physical processor core into the security area 110 and the non-security area 120. When the ARM TrustZone is booted, each area is booted do. Each area of the ARM TrustZone can be generated by dividing registers of the CPU and registers related to the page table and interrupts into the security area 110 and the non-security area 120, respectively. As described above, the security area 110 and the non-security area 120 can be independently operated for each area, and can be managed by a separate operating system.

모니터 모듈(130)은 보안 영역부(110)와 비보안 영역부(120)의 중간 역할을 수행하며, 각 영역의 스위칭, 인터럽트 처리를 담당한다. 모니터 모듈(130)은 장치 인터럽트가 발생하면 모니터 벡터라는 특정 주소 영역에 설정된 인터럽트 핸들러로 프로세서를 실행 흐름에 옮기고, 인터럽트 핸들러에서 FIQ 인터럽트 및 IRQ 인터럽트를 처리한다. 뿐만 아니라, 각 영역의 스위칭을 통해 호출된 SMC(Secure Monitor Call) 명령어 역시 모니터 모듈(130)이 처리하며, 이때, 각 영역의 스위칭을 위한 프로세서 컨텍스트 정보의 저장과 복구를 담당한다.The monitor module 130 plays an intermediate role between the security area 110 and the non-security area 120, and is responsible for switching and interrupt processing of each area. When a device interrupt occurs, the monitor module 130 moves the processor to the execution flow with an interrupt handler set in a specific address area called a monitor vector, and processes an FIQ interrupt and an IRQ interrupt in the interrupt handler. In addition, the SMC (Secure Monitor Call) command called through switching of each area is also processed by the monitor module 130, and is responsible for storing and restoring the processor context information for switching each area.

이와 같은 모니터 모듈(130)은 FIQ 핸들러 호출부(131) 및 IRQ 핸들러 호출부(133)를 포함한다. 이때, FIQ 핸들러 호출부(131)는 외부 하드웨어 장치(10)로부터 전달받은 FIQ 인터럽트를 처리하기 위하여 보안 영역부(110)의 IRQ 핸들러(115)를 호출한다. 그리고 IRQ 핸들러 호출부(133)는 외부 하드웨어 장치(10)로부터 전달받은 IRQ 인터럽트를 처리하기 위하여 비보안 영역부(120)의 IRQ 핸들러(125)를 호출한다.The monitor module 130 includes an FIQ handler calling unit 131 and an IRQ handler calling unit 133. At this time, the FIQ handler calling unit 131 calls the IRQ handler 115 of the security area unit 110 to process the FIQ interruption received from the external hardware device 10. The IRQ handler calling unit 133 calls the IRQ handler 125 of the non-security area unit 120 to process the IRQ interrupt received from the external hardware device 10.

한편, 모니터 모듈(130)은 보안 영역부(110)가 예외처리 중인지 여부를 판별한다. 이때, 모니터 모듈(130)이 보안 영역부(110)가 예외처리 중인 것으로 판별한 경우, FIQ 핸들러 호출부(131)는 FIQ 인터럽트를 비활성화시키고, 예외처리가 종료된 후 FIQ 인터럽트를 다시 활성화시킨다.Meanwhile, the monitor module 130 determines whether the security area 110 is under exception processing. At this time, when the monitor module 130 determines that the security area unit 110 is under exception processing, the FIQ handler calling unit 131 deactivates the FIQ interrupt, and activates the FIQ interrupt after the exception process is completed.

즉, 모니터 모듈(130)은 보안 영역부(110)의 IRQ 핸들러(115)를 호출하기 전에 현재 실행 중인 프로세서의 보안 영역부(110)가 예외를 처리하는 중인지 아닌지 여부를 판별한다. 프로세서의 보안 영역부(110)가 예외 처리 중에 FIQ 인터럽트가 발생하면, 강제로 FIQ 인터럽트를 비활성화시키고, 현재 발생한 FIQ 인터럽트를 잠시 대기시킨다. 그 다음 수행중인 예외처리 단계를 종료시킨 후, 대기시킨 FIQ 인터럽트를 다시 활성화시켜 처리한다.That is, before calling the IRQ handler 115 of the security area 110, the monitor module 130 determines whether or not the security area 110 of the currently executing processor is processing an exception. If the FIQ interrupt occurs in the security area 110 of the processor, the processor 110 forcibly disables the FIQ interrupt and waits for the currently generated FIQ interrupt for a while. After the next exception processing step is completed, the waiting FIQ interrupt is reactivated and processed.

이와 같이, 모니터 모듈(130)은 FIQ 인터럽트를 처리하기 위하여 보안 영역부(110)의 IRQ 핸들러(115)를 호출하기 전에, 보안 영역부(110)가 예외처리 중인지 여부를 판별함으로써 “BAD Mode in Interrput” 오류 발생을 방지할 수 있다. 이에 따라, 보안 영역부(110)의 IRQ 핸들러(115)를 수정하지 않고 보안 영역부(110)로 하여금 FIQ 인터럽트를 처리할 수 있다.The monitor module 130 determines whether or not the security area 110 is under exception processing before calling the IRQ handler 115 of the security area 110 to process the FIQ interrupt. Interrput "errors can be prevented. Accordingly, the security area unit 110 can process the FIQ interrupt without modifying the IRQ handler 115 of the secure area 110. [

이와 달리, 모니터 모듈(130)이 보안 영역부(110)가 예외처리 중이 아닌 것으로 판별한 경우, FIQ 핸들러 호출부(131)는 FIQ 인터럽트를 보안 영역부(110)의 IRQ 핸들러(115)를 통해 처리하도록 호출할 수 있다.Alternatively, when the monitor module 130 determines that the security area 110 is not under exception processing, the FIQ handler calling part 131 transmits the FIQ interrupt to the IRQ handler 115 of the security area 110 via the IRQ handler 115 You can call it to process.

이하에서는 도 3을 참조하여 모니터 모듈(130)의 FIQ 핸들러 호출부(131)에 적용된 알고리즘의 일 예시를 설명하도록 한다.Hereinafter, an example of an algorithm applied to the FIQ handler calling unit 131 of the monitor module 130 will be described with reference to FIG.

도 3은 종래 기술 및 본 발명에 따른 FIQ 핸들러 호출부에 적용된 알고리즘의 일 예시를 도시한 도면이다.3 is a diagram illustrating an example of an algorithm applied to the FIQ handler call unit according to the prior art and the present invention.

종래 기술에 따른 FIQ 핸들러 호출부에 적용된 알고리즘의 경우, 먼저 S11단계에서 FIQ 인터럽트를 모니터 모듈의 FIQ 핸들러 호출부가 전달받으면, S13 단계에서 FIQ 핸들러 호출부는 보안 영역부의 IRQ 핸들러로 처리하기 위하여 FIQ 인터럽트를 전달한다. In the case of the algorithm applied to the FIQ handler calling unit according to the related art, if the FIQ handler calling unit of the monitor module receives the FIQ interrupt in step S11, the FIQ handler calling unit issues an FIQ interrupt to process the IRQ handler in the security area unit .

이때, 종래 기술에 따른 FIQ 핸들러 호출부는 보안 영역부가 예외처리 중인지 여부를 판별하는 단계가 없으며, 이에 따라 예외 처리 중에 FIQ 인터럽트를 전달받을 경우 “BAD Mode in Interrupt” 오류가 발생하는 문제가 있었다.At this time, the FIQ handler calling unit according to the related art has no step of discriminating whether or not the security area unit is under exceptional processing, and accordingly, there is a problem that a "BAD Mode in Interrupt" error occurs when the FIQ interrupt is received during exception processing.

이와 달리, 본 발명에 따른 FIQ 핸들러 호출부(131)에 적용된 알고리즘의 경우, S21단계에서 보안 영역부(110)가 예외처리 중인지 여부를 판별한다. 이때, 보안 영역부(110)가 예외처리 중인 것으로 판별된 경우, S23 단계에서 FIQ 인터럽트를 비활성화시킨다. 즉, 예외처리가 종료될 때까지 FIQ 인터럽트를 잠시 대기시킨다. 다음으로, S25 단계를 통해 다시 예외처리 수행 단계로 복귀하여 예외처리를 수행한다. Otherwise, in the case of the algorithm applied to the FIQ handler calling unit 131 according to the present invention, it is determined in step S21 whether the security area unit 110 is under exception processing. At this time, if it is determined that the security area unit 110 is under exception processing, the FIQ interrupt is disabled in step S23. That is, it waits for the FIQ interrupt until the exception processing ends. Next, the process returns to the exception process execution step through step S25 to perform exception processing.

이와 같이, 본 발명에 따른 인터럽트 처리 시스템(100)에 포함된 FIQ 핸들러 호출부(131)는 FIQ 인터럽트가 발생할 경우, 보안 영역부(110)가 예외처리 중인지 여부를 판별하고, 예외처리가 종료될 때까지 FIQ 인터럽트를 잠시 대기시킴으로써, 종래 기술에 따른 FIQ 핸들러 호출부에서 발생하던 오류 문제를 해소할 수 있다.As described above, when the FIQ interrupt occurs, the FIQ handler calling unit 131 included in the interrupt processing system 100 according to the present invention determines whether or not the security area unit 110 is under exception processing, It is possible to solve the error problem that has occurred in the FIQ handler calling unit according to the related art.

도 4는 본 발명의 일 실시예에 따른 인터럽트 처리 시스템(100)을 이용하여 FIQ 인터럽트를 처리하는 방법을 도시한 순서도이다.4 is a flowchart illustrating a method of processing an FIQ interrupt using the interrupt processing system 100 according to an embodiment of the present invention.

본 발명에 따른 인터럽트 처리 방법은 하드웨어 장치(10)로부터 FIQ 인터럽트가 발생하면(S210), ARM 프로세서의 모니터 모듈(130)이 이를 전달받는다. In the interrupt processing method according to the present invention, when an FIQ interrupt is generated from the hardware device 10 (S210), the monitor module 130 of the ARM processor receives the FIQ interrupt.

다음으로, 모니터 모듈(130)이 IRQ 핸들러(115, 125)를 각각 포함하는 보안 영역부(110) 및 비보안 영역부(120)로 구분된 ARM 프로세서에서 예외처리 중인지 여부를 판별한다(S220). 즉, FIQ 인터럽트를 보안 영역부(110)의 IRQ 핸들러(115)로 전달하기 전에, 하드웨어 장치(10)로부터 예외가 발생하여 보안 영역부(110)에서 예외를 처리하고 있는 중인지 여부를 먼저 판별한다.Next, the monitor module 130 determines whether or not an exception is being processed in the ARM processor divided into the security area 110 and the non-security area 120 including the IRQ handlers 115 and 125 (S220). That is, before the FIQ interrupt is transmitted to the IRQ handler 115 of the security area 110, an exception is generated from the hardware device 10 to determine whether or not the security area 110 is processing an exception .

이때, ARM 프로세서가 예외처리 중인 것으로 판별된 경우, FIQ 핸들러 호출부(131)가 FIQ 인터럽트를 비활성화시키고(S230), FIQ 인터럽트를 잠시 대기시킨다. 이에 따라, ARM 프로세서는 수행 중이던 예외처리를 먼저 처리한다.At this time, if it is determined that the ARM processor is in exception processing, the FIQ handler calling unit 131 deactivates the FIQ interrupt (S230) and waits for the FIQ interrupt for a while. As a result, the ARM processor first handles the exception handling that it is performing.

다음으로, ARM 프로세서에서 수행 중인 예외처리가 종료되면(S240), FIQ 핸들러가 비활성화된 FIQ 인터럽트를 활성화시킨다(S250). 그리고 FIQ 핸들러 호출부(131)가 보안 영역부(110)의 IRQ 핸들러(115)를 호출하고(S255), 이에 따라 보안 영역부(110)의 IRQ 핸들러가 FIQ 인터럽트를 처리한다(S260).Next, when the exception process being performed by the ARM processor is terminated (S240), the FIQ handler activates the disabled FIQ interrupt (S250). The FIQ handler calling unit 131 calls the IRQ handler 115 of the security area 110 in step S255 and the IRQ handler in the security area 110 processes the FIQ interrupt in step S260.

이와 같이, 본 발명에 따른 인터럽트 처리 방법은 FIQ 인터럽트를 보안 영역부(110)의 IRQ 핸들러(115)로 전달하기 전에 ARM 프로세서에서 예외처리 중인지 여부를 먼저 판별함으로써 “BAD Mode in Interrput” 오류 발생하던 기존의 문제점을 해결할 수 있다.As described above, the interrupt processing method according to the present invention first determines whether or not an exception process is being executed in the ARM processor before delivering the FIQ interrupt to the IRQ handler 115 of the secure area 110, thereby determining whether the "BAD Mode in Interrput" The existing problems can be solved.

이와 달리, ARM 프로세서가 예외처리 중인 것이 아닌 경우로 판별된 경우, 모니터 모듈(130)은 FIQ 인터럽트를 처리하기 위하여 FIQ 핸들러 호출부(131)를 통하여 보안 영역부(110)의 IRQ 핸들러(115)로 FIQ 인터럽트를 전달한다(S255). 이에 따라, 보안 영역부(110)의 IRQ 핸들러(115)는 FIQ 인터럽트를 처리하게 된다(S260).Alternatively, when it is determined that the ARM processor is not under the exception processing, the monitor module 130 transmits the IRQ handler 115 of the security area 110 through the FIQ handler calling part 131 to process the FIQ interrupt, (S255). Accordingly, the IRQ handler 115 of the secure area 110 processes the FIQ interrupt (S260).

한편, 모니터 모듈(130)에 포함된 보안 영역부(110)의 IRQ 핸들러(115)는 FIQ 인터럽트를 처리하고, 비보안 영역부(120)의 IRQ 핸들러(125)는 IRQ 인터럽트를 처리한다. 이때, 보안 영역부(110) 및 비보안 영역부(120)는 서로 독립적으로 운영되는 운영체제에 의하여 관리되며, 이때 적용된 운영체제는 리눅스일 수 있다. 한편, 보안 영역부(110) 및 비보안 영역부(120)에 대하여는 도 2에서 구체적으로 설명하였으므로, 이하에서는 생략하도록 한다.The IRQ handler 115 of the security area 110 included in the monitor module 130 processes FIQ interrupts and the IRQ handler 125 of the non-security area 120 processes IRQ interrupts. At this time, the security area unit 110 and the non-security area unit 120 are managed by independent operating systems, and the operating system applied may be Linux. Meanwhile, the security area 110 and the non-security area 120 have been described in detail with reference to FIG. 2, and will not be described below.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 하드웨어 장치 100: 인터럽트 처리 시스템
110: 보안 영역부 115, 125: IRQ 핸들러
120: 비보안 영역부 130: 모니터 모듈
131: FIQ 핸들러 호출부 133: IRQ 핸들러 호출부
10: Hardware device 100: Interrupt processing system
110: security area unit 115, 125: IRQ handler
120: Non-security area part 130: Monitor module
131: FIQ handler calling part 133: IRQ handler calling part

Claims (6)

ARM 프로세서에서의 인터럽트 처리 시스템에 있어서,
FIQ(Fast Interrupt reQuest) 인터럽트를 처리하는 IRQ(Interrupt ReQuest) 핸들러를 포함하는 보안 영역부,
IRQ 인터럽트를 처리하는 IRQ 핸들러를 포함하는 비보안 영역부 및
FIQ 핸들러 호출부 및 IRQ 핸들러 호출부를 포함하며, 상기 보안 영역부가 예외처리 중인지 여부를 판별하는 모니터 모듈을 포함하되,
상기 FIQ 핸들러 호출부는 외부 하드웨어 장치로부터 전달받은 상기 FIQ 인터럽트를 처리하기 위하여 상기 보안 영역부의 IRQ 핸들러를 호출하고,
상기 IRQ 핸들러는 상기 외부 하드웨어 장치로부터 전달받은 상기 IRQ 인터럽트를 처리하기 위하여 상기 비보안 영역부의 IRQ 핸들러를 호출하며,
상기 모니터 모듈은 상기 보안 영역부가 예외처리 중인 것으로 판별한 경우, 상기 FIQ 핸들러 호출부는 상기 FIQ 인터럽트를 비활성화시키고, 상기 예외처리가 종료된 후 상기 FIQ 인터럽트를 다시 활성화시키는 것인 인터럽트 처리 시스템.
In an interrupt processing system in an ARM processor,
A security area section including an IRQ (Interrupt ReQuest) handler for processing an FIQ (Fast Interrupt request) interrupt,
A non-security area section including an IRQ handler for handling an IRQ interrupt, and
And a monitor module including a FIQ handler calling unit and an IRQ handler calling unit and determining whether the security area unit is under exception processing,
The FIQ handler calling unit calls an IRQ handler of the security area to process the FIQ interrupt received from the external hardware device,
The IRQ handler calls an IRQ handler in the non-security area to process the IRQ interrupt received from the external hardware device,
Wherein the monitor module deactivates the FIQ interrupt and activates the FIQ interrupt after the exception process is terminated if it is determined that the secure area is under exceptional processing.
제 1 항에 있어서,
상기 FIQ 핸들러 호출부는,
상기 모니터 모듈이 상기 보안 영역부가 예외처리 중이 아닌 것로 판별한 경우, 상기 FIQ 인터럽트를 상기 보안 영역부의 IRQ 핸들러를 통해 처리하도록 호출하는 것인 인터럽트 처리 시스템.
The method according to claim 1,
The FIQ handler calling unit,
And when the monitor module determines that the secure area unit is not in exception processing, calls the FIQ interrupt to be processed through the IRQ handler of the secure area unit.
제 1 항에 있어서,
상기 보안 영역부 및 비보안 영역부는 서로 독립적으로 운영되는 운영체제에 의하여 관리되며, 상기 운영체제는 리눅스인 것인 인터럽트 처리 시스템.
The method according to claim 1,
Wherein the secure area unit and the non-security area unit are managed by an operating system that is independently operated, and the operating system is Linux.
ARM 프로세서의 인터럽트를 처리하기 위한 방법에 있어서,
모니터 모듈의 FIQ(Fast Interrupt reQuest) 핸들러 호출부가 외부 하드웨어 장치로부터 상기 FIQ 인터럽트를 전달받는 단계,
상기 모니터 모듈이, IRQ(Interrupt ReQuest) 핸들러를 각각 포함하는 보안 영역부 및 비보안 영역부로 구분된 상기 ARM 프로세서에서 예외처리 중인지 여부를 판별하는 단계,
상기 ARM 프로세서가 예외처리 중인 것으로 판별된 경우, 상기 FIQ 핸들러 호출부가 상기 FIQ 인터럽트를 비활성화시키는 단계,
상기 예외처리가 종료된 후, 상기 FIQ 핸들러 호출부가 상기 비활성화된 FIQ 인터럽트를 활성화시키는 단계,
상기 FIQ 핸들러 호출부가 상기 보안 영역부의 IRQ 핸들러를 호출하는 단계 및
상기 보안 영역부의 IRQ 핸들러가 상기 FIQ 인터럽트를 처리하는 단계를 포함하되,
상기 보안 영역부의 IRQ 핸들러는 상기 FIQ 인터럽트를 처리하고, 상기 비보안 영역부의 IRQ 핸들러는 IRQ 인터럽트를 처리하는 것인 인터럽트 처리 방법.
A method for handling an interrupt of an ARM processor,
The FIQ (Fast Interrupt request) handler of the monitor module receives the FIQ interrupt from the external hardware device,
Determining whether the monitor module is in exception processing in the ARM processor divided into the security area section and the non-security area section including the IRQ (Interrupt ReQuest) handler,
If the ARM processor is determined to be in exception processing, the FIQ handler caller deactivates the FIQ interrupt,
Activating the deactivated FIQ interrupt after the exception handling is completed;
The FIQ handler call unit calling the IRQ handler of the secure area unit;
Wherein the IRQ handler of the secure area handles the FIQ interrupt,
Wherein the IRQ handler of the secure area handles the FIQ interrupt and the IRQ handler of the non-security area handles an IRQ interrupt.
제 4 항에 있어서,
상기 ARM 프로세서가 예외처리 중인지 여부를 판별하는 단계는,
상기 ARM 프로세서가 예외처리 중이 아닌 것으로 판별된 경우, 상기 FIQ 핸들러 호출부는 상기 FIQ 인터럽트를 상기 보안 영역부의 IRQ 핸들러를 통해 처리하도록 호출하는 것인 인터럽트 처리 방법.
5. The method of claim 4,
Wherein the step of determining whether the ARM processor is exception-
Wherein the FIQ handler calling unit calls the FIQ interrupt to be processed through the IRQ handler of the secure area if it is determined that the ARM processor is not under exception processing.
제 4 항에 있어서,
상기 보안 영역부 및 비보안 영역부는 서로 독립적으로 운영되는 운영체제에 의하여 관리되며, 상기 운영체제는 리눅스인 것인 인터럽트 처리 방법.
5. The method of claim 4,
Wherein the secure area unit and the non-security area unit are managed by an operating system that is independently operated, and the operating system is Linux.
KR20140008504A 2014-01-23 2014-01-23 System and method for processing interrupt KR101489887B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20140008504A KR101489887B1 (en) 2014-01-23 2014-01-23 System and method for processing interrupt

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20140008504A KR101489887B1 (en) 2014-01-23 2014-01-23 System and method for processing interrupt

Publications (1)

Publication Number Publication Date
KR101489887B1 true KR101489887B1 (en) 2015-02-06

Family

ID=52591348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140008504A KR101489887B1 (en) 2014-01-23 2014-01-23 System and method for processing interrupt

Country Status (1)

Country Link
KR (1) KR101489887B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569888A (en) * 2016-11-04 2017-04-19 郑州云海信息技术有限公司 ARM interrupt processing method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050049170A (en) * 2003-11-21 2005-05-25 삼성전자주식회사 Apparatus and method for handling interrupt in non-privileged of embedded system
KR20050086673A (en) * 2002-11-18 2005-08-30 에이알엠 리미티드 Processor switching between secure and non-secure modes
KR20070071588A (en) * 2005-12-30 2007-07-04 매그나칩 반도체 유한회사 Method and apparatus for processing interrupt

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050086673A (en) * 2002-11-18 2005-08-30 에이알엠 리미티드 Processor switching between secure and non-secure modes
KR20050049170A (en) * 2003-11-21 2005-05-25 삼성전자주식회사 Apparatus and method for handling interrupt in non-privileged of embedded system
KR20070071588A (en) * 2005-12-30 2007-07-04 매그나칩 반도체 유한회사 Method and apparatus for processing interrupt

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569888A (en) * 2016-11-04 2017-04-19 郑州云海信息技术有限公司 ARM interrupt processing method and system

Similar Documents

Publication Publication Date Title
EP3306470B1 (en) Method and apparatus for executing non-maskable interrupt
EP3047419B1 (en) Virtual secure mode for virtual machines
US9442868B2 (en) Delivering interrupts directly to a virtual processor
US7237051B2 (en) Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US20160085568A1 (en) Hybrid virtualization method for interrupt controller in nested virtualization environment
US20050080970A1 (en) Chipset support for managing hardware interrupts in a virtual machine system
US9411667B2 (en) Recovery after input/ouput error-containment events
US10409745B2 (en) Interruption facility for adjunct processor queues
US10754991B2 (en) Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system
US20150058848A1 (en) Encapsulation of an application for virtualization
US20070028074A1 (en) Maintaining shadow page tables in a sequestered memory region
KR20010043807A (en) Emulation coprocessor
KR20160014647A (en) A method and apparatus for interrupt handling
JP2021532495A (en) Secure access to virtual machine memory
CN113391881A (en) Interrupt management method and device, electronic equipment and computer storage medium
KR101489887B1 (en) System and method for processing interrupt
US10754967B1 (en) Secure interrupt handling between security zones
US20160246633A1 (en) Read-only vm function chaining for secure hypervisor access
US11768696B2 (en) Security for microengine access
US20030126520A1 (en) System and method for separating exception vectors in a multiprocessor data processing system
US20160246644A1 (en) Method And System For Transition From Direct Interrupt State To Virtual Interrupt State Of Emulated Computing Environments
JP2016091076A (en) Information processing device
US9495311B1 (en) Red zone avoidance for user mode interrupts
US20230161650A1 (en) Method and apparatus for inter-process communication, and computer storage medium
US20240086219A1 (en) Transmitting interrupts from a virtual machine (vm) to a destination processing unit without triggering a vm exit

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190114

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200120

Year of fee payment: 6