KR101287285B1 - Method and apparatus for processing of interrupt routine, terminal apparatus thereof - Google Patents

Method and apparatus for processing of interrupt routine, terminal apparatus thereof Download PDF

Info

Publication number
KR101287285B1
KR101287285B1 KR1020060059534A KR20060059534A KR101287285B1 KR 101287285 B1 KR101287285 B1 KR 101287285B1 KR 1020060059534 A KR1020060059534 A KR 1020060059534A KR 20060059534 A KR20060059534 A KR 20060059534A KR 101287285 B1 KR101287285 B1 KR 101287285B1
Authority
KR
South Korea
Prior art keywords
interrupt
channel
dma
generated
routine
Prior art date
Application number
KR1020060059534A
Other languages
Korean (ko)
Other versions
KR20080001270A (en
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 KR1020060059534A priority Critical patent/KR101287285B1/en
Publication of KR20080001270A publication Critical patent/KR20080001270A/en
Application granted granted Critical
Publication of KR101287285B1 publication Critical patent/KR101287285B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 복수 개의 DMA 채널에 대해서 발생되는 인터럽트를 독립적으로 처리하는 방법 및 장치, 그리고 이의 단말장치에 관한 것이다. 본 발명에서는, 임의의 DMA 채널에 대해 인터럽트가 발생하면, 그 인터럽트가 완료되기 이전에는 동일 채널에 대해 더 이상의 인터럽트가 발생되지 않도록 제어한다. 이때 인터럽트가 발생되지 않는 다른 DMA 채널은 인터럽트가 발생될 수 있는 상태를 유지한다. 즉 DMA 채널마다 독립적으로 인터럽트 발생과 처리가 실시된다. 그리고 DMA 채널의 동작 상태는 DMA 채널 제어를 위한 DMA 커맨드 레지스터의 특정 비트를 소정 값으로 설정하는 것에 의해 수행된다. 상기 발생된 인터럽트가 완료되면 해당 DMA 채널은 다시 인터럽트 발생이 가능하도록 제어된다. 이에 따라 본 발명은 DMB용 PDA와 같은 단말장치에서 DMB 프로그램을 시청하는 도중에 MP3파일 재생요구가 발생되더라도 데이터가 손실되지 않으면서 DMB 방송 프로그램과 MP3 파일을 정상적으로 재생할 수 있는 잇점이 있다.

Figure R1020060059534

DMA, 인터럽트 발생, 채널, 레지스터, DMB, MP3 파일

The present invention relates to a method and apparatus for independently processing interrupts generated for a plurality of DMA channels, and a terminal apparatus thereof. In the present invention, when an interrupt occurs for any DMA channel, the interrupt is controlled so that no further interrupt occurs for the same channel before the interrupt is completed. At this time, other DMA channels that do not generate an interrupt remain in a state where an interrupt can be generated. That is, interrupt generation and processing are performed independently for each DMA channel. The operation state of the DMA channel is performed by setting a specific bit of the DMA command register for controlling the DMA channel to a predetermined value. When the generated interrupt is completed, the corresponding DMA channel is controlled to enable the interrupt again. Accordingly, the present invention has the advantage that the DMB broadcast program and the MP3 file can be normally played without losing data even if the MP3 file playback request occurs while watching the DMB program in a terminal device such as a PDA for DMB.

Figure R1020060059534

DMA, interrupt generation, channel, register, DMB, MP3 file

Description

인터럽트 루틴 처리 방법, 그 장치 및 이의 단말장치{METHOD AND APPARATUS FOR PROCESSING OF INTERRUPT ROUTINE, TERMINAL APPARATUS THEREOF}METHOD AND APPARATUS FOR PROCESSING OF INTERRUPT ROUTINE, TERMINAL APPARATUS THEREOF}

도 1은 DMA 컨트롤러가 구비된 일반적인 시스템 구성도.1 is a general system configuration diagram provided with a DMA controller.

도 2는 도 1에 도시된 DMA 컨트롤러에 의한 인터럽트 루틴과정을 설명하기 위한 구성도.FIG. 2 is a configuration diagram for explaining an interrupt routine process by the DMA controller shown in FIG. 1; FIG.

도 3은 본 발명의 바람직한 실시 예에 따른 인터럽트 루틴 처리 방법의 흐름도.3 is a flowchart of an interrupt routine processing method according to a preferred embodiment of the present invention.

도 4는 본 발명에 적용되는 DCMDx 레지스터 구조도.4 is a structure diagram of a DCMDx register applied to the present invention.

*도면의 주요 부분에 대한 부호의 설명*Description of the Related Art [0002]

30 : 인터럽트 관리 루틴부 40 : 인터럽트 서비스 루틴부30: interrupt management routine section 40: interrupt service routine section

50 : 인터럽트 서비스 실행부 60 : 인터럽트 완료 루틴부50: interrupt service execution unit 60: interrupt completion routine unit

본 발명은 인터럽트 루틴 처리에 관한 것으로서, 특히 개인휴대단말장치에서 디지털멀티미디어방송(Digital Multimedia Broadcasting : DMB) 파일과 오디오 파 일을 노이즈(Noise) 없이 최적화하여 재생하도록 하기 위한 직접 메모리 액세스(Direct memory access : DMA) 방식에서의 인터럽트 루틴 처리 방법과 그 장치 및 이의 단말장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to interrupt routine processing. In particular, a direct memory access for optimizing and playing back a digital multimedia broadcasting (DMB) file and an audio file in a personal portable terminal device is performed. The present invention relates to a method for processing an interrupt routine in a DMA) method, a device thereof, and a terminal device thereof.

상기 DMA 방식은 중앙처리유닛(CPU)이 직접 메모리를 제어하는 것에 비하여 시스템 성능을 향상시키기 위한 제어 방식이다. 이는 상기 중앙처리유닛의 개입없이 주변기기의 인터페이스 장치에 제어권을 주어 직접 메모리와 데이터를 전송하는 것으로서, 특히 데이터 전송량이 많은 주변장치를 가진 시스템에 있어서 필수적으로 채용되고 있다.The DMA method is a control method for improving system performance as compared to a CPU directly controlling a memory. This is to directly transfer the memory and the data by giving a control right to the interface device of the peripheral device without the intervention of the central processing unit. In particular, a system having a peripheral device having a large amount of data transfer is essential.

도 1은 이와 같은 DMA 컨트롤러가 구비된 일반적인 시스템 구성도를 도시하고 있다.Fig. 1 shows a general system configuration provided with such a DMA controller.

도면에 따르면, 상기 DMA방식이 적용되기 위해서는 복수의 주변장치(I/O디바이스)(10)가 메모리컨트롤러(12)를 통해 메모리(14)와 직접 데이터 송수신을 할 수 있도록 제어하는 DMA 컨트롤러(20)가 구비된다. According to the drawing, in order to apply the DMA scheme, a plurality of peripheral devices (I / O devices) 10 control the DMA controller 20 to control data transmission and reception directly with the memory 14 through the memory controller 12. ) Is provided.

상기 DMA 컨트롤러(20)는 데이터 전송시 초기 설정시에만 중앙처리유닛(CPU)(1)의 제어를 받으며, 이후 데이터 전송과정은 상기 DMA 컨트롤러(20)에 의해 I/O디바이스(10)의 데이터가 메모리(14)로 직접 전달되는 형태이다. The DMA controller 20 is controlled by the central processing unit (CPU) 1 only at the initial setting at the time of data transmission, and then the data transfer process is performed by the DMA controller 20 by the data of the I / O device 10. Is transferred directly to the memory 14.

상기 DMA 컨트롤러(20)는, 그 DMA 컨트롤러(20)의 동작을 제어하기 위한 제어레지스터(22)와, DMA 인터럽트 신호에 따라 데이터 전송이 이루어지는 복수의 DMA 채널이 구비된 DMA채널모듈부(24)로 이루어진다. 상기 DMA채널모듈부(24)는 통상 32개의 DMA 채널을 갖는다. 그리고 상기 제어레지스터에는 인터럽트 발생 채널 을 알려주는 DMA인터럽트레지스터(DINT :DMA Interrupt Register) 등이 구비된다.The DMA controller 20 includes a control register 22 for controlling the operation of the DMA controller 20, and a DMA channel module unit 24 having a plurality of DMA channels for data transmission in accordance with a DMA interrupt signal. Is made of. The DMA channel module unit 24 usually has 32 DMA channels. The control register is provided with a DMA Interrupt Register (DINT) for indicating an interrupt generation channel.

다음, 도 2는 도 1에 도시된 DMA 컨트롤러에 의한 인터럽트 루틴과정을 기능적으로 설명하기 위한 구성도이다.Next, FIG. 2 is a configuration diagram for functionally explaining the interrupt routine process by the DMA controller shown in FIG.

DMA 인터럽트 발생을 관리하는 인터럽트 관리 루틴부(30)가 구비된다. 상기 인터럽트 관리 루틴부(30)는 모든 인터럽트를 총괄 제어하는 루틴으로, 인터럽트 핀을 검색하여 인터럽트 서비스 루틴부(40)을 호출한다.An interrupt management routine section 30 for managing DMA interrupt generation is provided. The interrupt management routine unit 30 is a routine for overall control of all interrupts. The interrupt management routine unit 30 searches for an interrupt pin and calls the interrupt service routine unit 40.

상기 인터럽트 서비스 루틴부(DMA ISR)(40)는 상기 인터럽트 관리 루틴부(30)로부터 인터럽트 발생사실을 전달받고 해당 동작을 수행하기 위한 기능 함수를 호출한다.The interrupt service routine unit (DMA ISR) 40 receives an interrupt occurrence fact from the interrupt management routine unit 30 and calls a function function to perform a corresponding operation.

그리고 상기 함수 호출에 따른 동작을 실제 수행하는 인터럽트 서비스 실행부(Interrupt Service Thread)(50)와, 상기 DMA 인터럽트가 완료되면 이에 대한 동작을 수행하는 인터럽트 완료 루틴부(60)가 구비된다.An interrupt service threader 50 for actually performing an operation according to the function call and an interrupt completion routine 60 for performing an operation when the DMA interrupt is completed are provided.

이와 같은 구성에 따른 종래 DMA 인터럽트 루틴 처리 과정은 다음과 같이 진행된다.The conventional DMA interrupt routine processing according to such a configuration proceeds as follows.

먼저, DMA 컨트롤러(20)는 상기 DMA 채널 모듈부(24)의 32개 DMA 채널 중에서 어느 하나의 DMA 채널로부터 인터럽트가 발생하면, 상기 인터럽트 루틴 처리 과정을 개시한다.First, when an interrupt occurs from any one of the 32 DMA channels of the DMA channel module unit 24, the DMA controller 20 starts the interrupt routine processing process.

이에, 인터럽트 관리 루틴부(30)는 인터럽트 핀을 검색하고 인터럽트 서비스 루틴부(40)를 호출한다. 그러면, 상기 인터럽트 서비스 루틴부(40)는 DMA 채널 모듈부(24)의 전체 채널 즉 32개 DMA 채널을 디스에이블(Disable) 시키기 위하여 인 터럽트제어마스크레지스터(ICMR)의 DMA 핀을 모두 마스크(Mask) 처리한다. 다시 말해 32개의 DMA 채널 중 어느 하나의 채널에서라도 인터럽트가 발생하면 나머지 31개의 DMA 채널도 함께 디스에이블 상태가 되기 때문에 상기 채널들에 대한 인터럽트가 발생되지 못하게 된다.Thus, the interrupt management routine unit 30 retrieves the interrupt pin and calls the interrupt service routine unit 40. Then, the interrupt service routine unit 40 masks all of the DMA pins of the interrupt control mask register (ICMR) in order to disable all the channels of the DMA channel module unit 24, that is, 32 DMA channels. Mask) process. In other words, if an interrupt occurs in any one of the 32 DMA channels, the remaining 31 DMA channels are also disabled, so that the interrupts for the channels cannot be generated.

이후, 상기 인터럽트 서비스 루틴부(40)는 DMA 인터럽트 레지스터(DINT)를 이용하여 인터럽트가 발생된 DMA 채널을 검색하고, 그 검색된 DMA 채널에 할당된 DMA 서비스를 수행할 수 있도록 기능함수(예컨대, SYSINTR_DMA)을 호출한다. Thereafter, the interrupt service routine unit 40 searches for an interrupted DMA channel using a DMA interrupt register (DINT), and performs a function function (for example, SYSINTR_DMA) to perform a DMA service assigned to the found DMA channel. ).

상기 호출 동작에 따라 상기 인터럽트 서비스 실행부(50)는 인터럽트에 대한 해당 동작을 수행한다. 상기 동작이 완료된 다음에는 상기 인터럽트 서비스 실행부(50)가 상기 인터럽트를 종료하였음을 통보하는 함수(예컨대 OEM Interrupt Done)를 인터럽트 완료 루틴부(60)로 전달하고, 상기 인터럽트 완료 루틴부(60)는 현재 디스에이블 상태인 모든 채널에 대하여 인터럽트가 발생될 수 있는 상태로 인에이블(Enable) 시킨다.In response to the call operation, the interrupt service execution unit 50 performs a corresponding operation for an interrupt. After the operation is completed, the interrupt service execution unit 50 transmits a function (for example, OEM Interrupt Done) to notify the interrupt completion routine unit 60 that the interrupt is finished, and the interrupt completion routine unit 60. Enables the interrupt to occur for all channels that are currently disabled.

이와 같은 종래 기술에서는, 32개의 DMA 채널 중 어느 한 곳에서 인터럽트가 발생되면 전체 채널을 디스에이블 상태로 전환하고 상기 발생된 인터럽트에 대한 기능만을 수행하게 된다. 즉, 인터럽트가 진행되는 도중에는 다른 DMA 채널에서 발생된 인터럽트가 처리되지 못하였다. In the prior art, when an interrupt occurs in any one of 32 DMA channels, the entire channel is switched to a disabled state and only a function of the generated interrupt is performed. In other words, an interrupt generated in another DMA channel could not be processed while an interrupt was in progress.

따라서, 인터럽트가 발생된 DMA 채널에 대해서만 소정 기능이 수행되고 나머지 DMA 채널에서 발생될 수 있는 인터럽트는 무시되기 때문에, 비록 짧은 시간일지라도 데이터가 손실(loss)되는 문제점이 있다.Therefore, since a predetermined function is performed only for the interrupted DMA channel and interrupts that may occur in the remaining DMA channels are ignored, there is a problem in that data is lost even in a short time.

이러한 인터럽트 처리 방식은 특히 DMB 영상 데이터와 오디오 데이터가 동시에 재생되는 경우에 오디오 데이터의 끊김 현상으로 지터 노이즈(Jitter Noise)가 발생하였으며, DMB 영상 데이터도 깨끗하게 출력되지 못하는 문제점을 초래하게 된다.This interrupt processing method causes jitter noise due to truncation of the audio data, especially when the DMB image data and the audio data are simultaneously reproduced, resulting in a problem that the DMB image data is not output cleanly.

이에 본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로서, 인터럽트가 발생되는 복수의 DMA 채널이 각각 독립적으로 동작하도록 하는 인터럽트 루틴 처리 방법 및 장치를 제공함에 그 목적이 있다.Accordingly, an object of the present invention is to provide an interrupt routine processing method and apparatus for independently operating a plurality of DMA channels that generate interrupts.

또한, 본 발명은 최적화된 인터럽트 루틴 처리 방법이 적용되어 DMB 영상 데이터와 오디오 데이터가 동시에 재생되더라도 노이즈 발생없이 깨끗하게 데이터가 재생되는 단말장치를 제공함에 다른 목적이 있다.Another object of the present invention is to provide a terminal apparatus in which an optimized interrupt routine processing method is applied so that data is reproduced cleanly without noise even when DMB image data and audio data are simultaneously reproduced.

상기한 바와 같은 목적을 달성하기 위한 본 발명의 인터럽트 루틴 처리 방법은, 인터럽트 발생단계, 상기 발생된 인터럽트에 대한 채널 검색단계, 상기 검색된 채널만을 디스에이블(Disable)시키는 단계, 그리고 상기 인터럽트 동작을 위한 함수를 호출하고 해당 동작을 수행하는 단계를 포함하는 것을 특징으로 한다.In the interrupt routine processing method of the present invention for achieving the above object, the interrupt generation step, the channel search step for the generated interrupt, the step of disabling only the retrieved channel, and for the interrupt operation Calling a function and performing a corresponding operation.

본 발명에서 상기 인터럽트 동작이 완료되면, 상기 채널을 인에이블(Enable)시키는 단계를 더 포함한다.The method may further include enabling the channel when the interrupt operation is completed.

본 발명에서 상기 채널 검색은 상기 인터럽트 발생 여부에 따라 설정되는 서로 상이한 2진 데이터에 의해 이루어진다.In the present invention, the channel search is performed by different binary data set according to whether the interrupt occurs.

본 발명의 상기 채널 디스에이블 및 인에이블 단계는 상기 채널당 각각 제공되는 DMA 커맨드 레지스터(DCMD Register)의 소정 비트를 이용하고, 상기 비트는 22번째 비트 또는 21번째 비트이며, '0' 값 또는 '1' 값이 설정되도록 하는 것이 바람직하다.In the channel disabling and enabling step of the present invention, a predetermined bit of a DMA command register (DCMD Register) provided for each channel is used, and the bit is the 22nd bit or the 21st bit, and the value '0' or '1'. It is desirable for the value to be set.

본 발명의 상기 디스에이블 된 채널은 인터럽트가 발생되지 않게 된다.The disabled channel of the present invention is not interrupted.

그리고, 상기 디스에이블 된 채널 이외의 다른 채널에서는 인터럽트가 발생할 수 있고, 상기 인에이블 된 채널도 인터럽트가 발생할 수 있다.In addition, an interrupt may occur in a channel other than the disabled channel, and the interrupted channel may also generate an interrupt.

본 발명의 상기 인터럽트는 상기 채널마다 개별적으로 발생하게 된다.The interrupt of the present invention is generated individually for each channel.

또한, 상기한 바와 같은 목적을 달성하기 위한 본 발명의 인터럽트 루틴 처리 장치는, 인터럽트가 발생된 채널을 검색하여 디스에이블시키며 상기 인터럽트 동작을 수행하도록 함수를 호출하는 인터럽트 서비스 루틴수단, 상기 함수 호출에 따른 동작을 수행하는 인터럽트 서비스 실행수단, 그리고 상기 동작 완료 후 상기 채널을 인에이블시키고 인터럽트를 완료하는 인터럽트 완료 루틴수단을 포함하여 구성되는 것을 특징으로 한다.In addition, the interrupt routine processing apparatus of the present invention for achieving the above object, the interrupt service routine means for searching for and disabling the interrupted channel and calling a function to perform the interrupt operation, to the function call Interrupt service execution means for performing an operation according to the present invention, and interrupt completion routine means for enabling the channel and completing an interrupt after the operation is completed.

본 발명은 상기 인터럽트 발생에 따른 채널의 인에이블/디스에이블 처리를 위하여 DMA 커맨드 레지스터(DCMD)가 제공된다.The present invention provides a DMA command register (DCMD) for enabling / disabling a channel according to the interrupt occurrence.

그리고, 상기 인에이블/디스에이블은 상기 DCMD의 21번째 또는 22번째 비트가 이용된다.In the enable / disable, the 21st or 22nd bit of the DCMD is used.

또한, 상기 목적을 달성하기 위한 본 발명에 따른 단말장치는, 복수 개의 채널 중에서 임의의 채널들에 대해 인터럽트가 복수 개 발생되면, 상기 발생된 채널마다 상기 인터럽트에 대한 해당 동작을 동시에 수행하도록 제어하는 것을 특징으로 한다.In addition, the terminal device according to the present invention for achieving the above object, if a plurality of interrupts generated for any of a plurality of channels, to control to perform the corresponding operation for the interrupt for each generated channel at the same time It is characterized by.

그리고 단말장치는 상기 인터럽트 발생에 따른 동작이 수행되고 있는 도중에 다른 채널에 대해 인터럽트가 발생되면 상기 발생된 인터럽트에 대한 해당 동작도 수행하도록 제어하며, 상기 인터럽트가 발생된 채널에서는 그 해당 동작이 완료되기 이전에 다른 인터럽트가 발생되지 않도록 제어한다.If an interrupt occurs for another channel while the operation according to the interrupt is generated, the terminal device controls to perform the corresponding operation for the generated interrupt, and the corresponding operation is completed in the interrupted channel. Control other interrupts from occurring before.

이와 같은 구성을 갖는 본 발명에 따르면, 복수의 DMA 채널이 인터럽트 발생에 대하여 각각 독립적으로 동작하기 때문에, 다수의 인터럽트가 발생되더라도 그 발생된 인터럽트에 대한 기능이 모두 수행된다.According to the present invention having such a configuration, since a plurality of DMA channels operate independently for interrupt generation, all the functions for the generated interrupt are performed even if a plurality of interrupts are generated.

이하 본 발명에 의한 인터럽트 루틴 처리 방법과 장치 및 이의 단말장치를 첨부된 도면에 도시된 바람직한 실시 예를 참조하여 상세하게 설명한다.Hereinafter, a method and apparatus for processing an interrupt routine according to the present invention and a terminal apparatus thereof will be described in detail with reference to a preferred embodiment shown in the accompanying drawings.

본 발명에서의 인터럽트 루틴 처리는 도 1 및 도 2에 의하여 수행되며 이를 도 3과 같이 참조하여 설명하기로 한다. 이에 도 1과 도 2를 인용하여 본 발명의 바람직한 실시 예를 설명한다.Interrupt routine processing in the present invention is performed by Figs. 1 and 2 will be described with reference to FIG. 1 and 2 will be described in the preferred embodiment of the present invention.

도 3은 본 발명의 바람직한 실시 예에 따른 인터럽트 루틴 처리 방법의 흐름도이다.3 is a flowchart illustrating an interrupt routine processing method according to an exemplary embodiment of the present invention.

먼저, DMA 채널 모듈부(24)의 32개 채널 중에서 임의의 1개 DMA 채널에서 인터럽트가 발생되었을 경우에 대하여 설명하기로 한다.First, the case where an interrupt is generated in any one DMA channel among the 32 channels of the DMA channel module unit 24 will be described.

상기 DMA 채널 모듈부(24)의 32개 DMA 채널 중에서 어느 하나의 DMA 채널로부터 인터럽트가 발생한다(제 70 단계). 그러면 상기 인터럽트 관리 루틴부(30)는 인터럽트 핀을 검색하고 해당되는 DMA 채널에 대한 인터럽트 서비스 루틴부(40)를 호출한다(제 72 단계). An interrupt is generated from any one of the DMA channels among the 32 DMA channels of the DMA channel module unit 24 (step 70). The interrupt management routine unit 30 then retrieves the interrupt pin and calls the interrupt service routine unit 40 for the corresponding DMA channel (step 72).

상기 인터럽트 서비스 루틴부(40)는 DMA 인터럽트 레지스터(DINT)를 이용하여 상기 32개 DMA 채널 중 어떤 DMA 채널에서 인터럽트가 발생되었는지를 검색한다. 즉 상기 DINT는 인터럽트 발생 여부에 따라 서로 상이한 2진 데이터가 설정되며, 인터럽트 미발생된 채널은 '0'값을 가지며, 인터럽트 발생된 채널은 '1'값을 가진다.The interrupt service routine unit 40 uses the DMA interrupt register (DINT) to find out which DMA channel of the 32 DMA channels has an interrupt occurred. That is, different binary data are set according to whether or not the DINT is interrupted, the channel not interrupted has a value of '0', and the channel interrupted has a value of '1'.

상기 DINT에 의해 인터럽트가 발생된 채널이 검색되면(제 74 단계), 상기 인터럽트 서비스 루틴부(40)는 현재 인터럽트가 발생된 DMA 채널에 대해서만 디스에이블시킨다(제 76 단계). When the interrupted channel is detected by the DINT (step 74), the interrupt service routine unit 40 disables only the DMA channel on which the interrupt is currently generated (step 76).

상기 DMA 채널 디스에이블 처리에는 DMA 커맨트 레지스터(DCMDx)가 이용된다. 상기 DCMDx는 상기 DMA 채널마다 각각 할당된 레지스터로서, DMA 채널 제어명령을 보내는 레지스터이다. 상기 DCMDx의 구조가 도 4에 도시되어 있다. 도 4를 참조하면, 상기 DCMDx는 총 32개 비트가 제공되며, 그 중에서 22번 비트와 21번 비트가 인터럽트 인에이블과 관련된 비트이다. 이에, 상기 DMA 채널 디스에이블은 상기 22번째 비트인 'STARTIRQEN' 또는 21번째 비트인 'EndlrqEn'의 사용자 설정(user setting)부분을 '0'으로 설정하여 그 DMA 채널을 디스에이블 시킨다. The DMA command register DCMDx is used for the DMA channel disable process. The DCMDx is a register allocated to each of the DMA channels, and is a register for sending a DMA channel control command. The structure of the DCMDx is shown in FIG. 4. Referring to Figure 4, the DCMDx is provided with a total of 32 bits, bits 22 and 21 are bits associated with the interrupt enable. Accordingly, the DMA channel disable disables the DMA channel by setting a user setting portion of the 22nd bit 'STARTIRQEN' or the 21st bit 'EndlrqEn' to '0'.

이와 같이 상기 인터럽트 발생된 DMA 채널만 디스에이블 되면, 그 DMA 채널 은 현재 발생된 인터럽트가 처리되지 않는 경우 상기 채널에서는 인터럽트가 추가로 발생될 수 없다. 물론 상기 인터럽트 발생된 DMA 채널에 대해서만 인터럽트 마스크 처리가 이루어지며 다른 31개의 채널은 계속 인에이블 상태로서 언제라도 인터럽트가 발생될 수 있다.As such, when only the interrupted DMA channel is disabled, the interrupt cannot be further generated in the channel when the interrupt generated in the DMA channel is not processed. Of course, interrupt mask processing is performed only for the interrupted DMA channel, and the other 31 channels can be interrupted at any time as the enable state is continuously enabled.

이후, 상기 인터럽트 서비스 루틴부(40)는 인터럽트가 발생된 DMA 채널에 대한 인터럽트 서비스를 수행할 수 있도록 기능함수(예컨대, SYSINTR_DMA)을 호출한다(제 78 단계). Thereafter, the interrupt service routine unit 40 calls a function function (for example, SYSINTR_DMA) to perform an interrupt service on the interrupted DMA channel (step 78).

상기 기능함수 호출이 이루어지면, 상기 인터럽트 서비스 실행부(50)는 제 80 단계에서 인터럽트에 대한 해당 동작을 수행하고, 상기 동작이 완료된 다음에는 상기 인터럽트가 종료되었음을 통보하는 함수(예컨대 OEM Interrupt Done)를 인터럽트 완료 루틴부(60)로 전달한다(제 82 단계)(제 84 단계). When the function function call is made, the interrupt service execution unit 50 performs a corresponding operation on the interrupt in step 80, and after the operation is completed, a function for notifying that the interruption has ended (eg, OEM Interrupt Done). Is passed to the interrupt completion routine 60 (step 82) (step 84).

이에, 제 86 단계에서 상기 인터럽트 완료 루틴부(60)는 현재 디스에이블 상태인 DMA 채널을 인에이블 상태로 전환하도록 상기 22번째 비트인 'STARTIRQEN' 또는 21번째 비트인 'EndlrqEn'을 '1'값으로 설정한다. 상기 인에이블 상태로 전환되는 것은 그 DMA 채널에 대해 인터럽트가 다시 발생할 수 있는 상태를 말한다. 따라서, 전술한 바와 같이 인터럽트 발생된 DMA 채널에서 인터럽트 처리가 완료된 다음에 인터럽트가 다시 발생하면 제 72 단계로 복귀하여 해당 DMA 채널에 대한 인터럽트 처리가 다시 수행된다. Accordingly, in step 86, the interrupt completion routine 60 sets the 22nd bit 'STARTIRQEN' or the 21st bit 'EndlrqEn' to '1' to switch the DMA channel currently in the disabled state to the enabled state. Set to. The transition to the enabled state refers to a state in which an interrupt can occur again for the DMA channel. Therefore, if the interrupt occurs again after the interrupt processing is completed in the interrupted DMA channel as described above, the process returns to step 72 and the interrupt processing for the corresponding DMA channel is performed again.

본 발명은 DMA 채널이 모두 독립적으로 동작하기 때문에, 앞서 설명한 바와 같이 하나의 DMA 채널에 대해 인터럽트가 발생되어 루틴 과정이 실행되고 있다 할 지라도, 도 3의 제 90 단계 또는 제 92 단계에서와 같이 인터럽트가 발생될 수 있다. 상기 발생된 인터럽트는 인터럽트 핀 검색에 따라 해당 DMA 채널에서 인터럽트 루틴 과정이 진행된다. In the present invention, since all of the DMA channels operate independently, even if an interrupt is generated for one DMA channel as described above, the routine process is executed, as in step 90 or 92 of FIG. May be generated. The generated interrupt proceeds with the interrupt routine in the corresponding DMA channel according to the interrupt pin search.

이와 같은 과정을 DMB형 PDA를 일 실시 예로 하여 설명한다.This process will be described using a DMB type PDA as an example.

DMB형 PDA는 개인휴대단말장치로서, 일반적인 기능 이외에도 MP3파일을 재생할 수 있음은 물론 DMB 방송을 시청할 수 있다.DMB-type PDA is a personal portable terminal device that can play MP3 files in addition to general functions, as well as watch DMB broadcasts.

이에, 먼저 사용자가 DMB형 PDA에서 DMB방송 시청을 위한 입력버튼 조작이 이루어지면, 인터럽트 관리 루틴부(30)는 상기 DMB 방송 시청을 위한 인터럽트 발생을 인지한다. 상기 인터럽트 관리 루틴부(30)는 인터럽트 발생에 따른 인터럽트 핀을 검색하고 해당 인터럽트 서비스 루틴부(40)를 호출한다.Thus, when the user first performs an input button operation for watching DMB broadcasting in the DMB type PDA, the interrupt management routine unit 30 recognizes the occurrence of the interrupt for viewing the DMB broadcasting. The interrupt management routine unit 30 searches for an interrupt pin according to the occurrence of an interrupt and calls the corresponding interrupt service routine unit 40.

상기 인터럽트 서비스 루틴부(40)는 상기 인터럽트 발생된 DMA 채널을 검색한 후 그 DMA 채널을 디스에이블 시키고, DMB 방송시청을 위한 기능 함수를 호출하면, 상기 인터럽트 서비스 실행부(50)는 DMB 프로그램을 표시부(미도시)에 재생한다. When the interrupt service routine unit 40 searches for the interrupted DMA channel and disables the DMA channel, and calls a function function for DMB broadcast viewing, the interrupt service execution unit 50 executes a DMB program. Playback is performed on the display unit (not shown).

이때, 만약 사용자에 의해 MP3파일 재생을 위한 다른 인터럽트가 발생할 수 있다. 이 경우 상기한 DMB방송 시청을 위한 인터럽트 루틴 처리와 동일하게 해당되는 DMA 채널을 검색하여 디스에이블 시키고, 기능 함수 호출에 따라 MP3 파일을 재생한다.At this time, another interrupt may be generated by the user for playing the MP3 file. In this case, the same DMA channel is searched for and disabled in the same manner as the interrupt routine for viewing DMB broadcasting, and the MP3 file is played according to a function function call.

즉 본 발명의 실시 예에서는 DMB 방송과 MP3 파일이 서로 다른 DMA 채널을 통해 처리되는 것이다. That is, in the embodiment of the present invention, the DMB broadcast and the MP3 file are processed through different DMA channels.

그리고, 상기 DMB 방송 및/또는 MP3 파일 재생이 중지되면, 해당 DMA 채널은 다시 인터럽트 발생이 가능한 상태로 전환된다.When the DMB broadcast and / or MP3 file playback is stopped, the corresponding DMA channel is switched to a state in which an interrupt can be generated.

이와 같이 상기 실시 예에 설명되고 있는 본 발명은, 복수 개의 DMA 채널 중에서 인터럽트가 발생된 DMA 채널만을 제어하기 때문에, 동시에 다수의 DMA 채널에 대한 인터럽트 발생이 가능하다. As described above, the present invention described in the above embodiments controls only the DMA channel in which the interrupt is generated among the plurality of DMA channels, so that interrupts to the plurality of DMA channels can be generated at the same time.

이상과 같이, 본 발명의 도시된 실시 예를 참고하여 설명하고 있으나, 이는 예시적인 것들에 불과하며, 본 발명의 속하는 기술 분야의 통상 지식을 가진 자라면 본 발명의 요지 및 범위에 벗어나지 않으면서도 다양한 변형, 변경 및 균등한 타 실시 예들이 가능하다는 것을 명백하게 알 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적인 사상에 의해 정해져야 할 것이다.As described above, it has been described with reference to the illustrated embodiment of the present invention, which is merely exemplary, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the invention It will be apparent that other variations, modifications and equivalents are possible. Therefore, the true scope of the present invention should be determined by the technical idea of the appended claims.

이상에서 설명한 바와 같이, 본 발명에 따르면 복수 개의 DMA 채널중에서 임의의 채널에 대한 인터럽트가 발생된 상태에서 다른 DMA 채널에 대해서도 인터럽트 발생이 가능하고 독립적인 인터럽트 처리가 가능하기 때문에, 각종 데이터를 대량 전송하는 경우에도 데이터 손실이 발생되지 않고 정상적인 처리가 가능한 효과가 있다. As described above, according to the present invention, since an interrupt can be generated for another DMA channel while an interrupt is generated for an arbitrary channel among a plurality of DMA channels, independent interrupt processing can be performed, so that various types of data can be transferred. In this case, data loss does not occur and normal processing is possible.

다시 말해, 본 발명이 DMB방송과 MP3파일 재생이 가능한 단말장치에 적용된 경우, DMB 영상 데이터와 MP3 데이터가 동시에 재생되더라도 데이터의 끊김과 노이 즈(noise)가 발생되지 않고 깨끗하게 재생되는 효과를 기대할 수 있다.In other words, when the present invention is applied to a terminal device capable of playing DMB broadcasting and MP3 files, even if the DMB video data and the MP3 data are played at the same time, it is possible to expect the effect that the data is played cleanly without disconnection and noise. have.

Claims (15)

삭제delete 인터럽트 발생단계,Interrupt generation stage, 상기 발생된 인터럽트에 대한 채널 검색단계,A channel search step for the generated interrupt; 상기 검색된 채널만을 디스에이블(Disable)시키는 단계, Disabling only the found channel; 상기 인터럽트 동작을 위한 함수를 호출하고 해당 동작을 수행하는 단계, 및Calling a function for the interrupt operation and performing the operation; and 상기 인터럽트 동작이 완료되면, 상기 채널을 인에이블시키는 단계를 포함하며,Enabling the channel upon completion of the interrupt operation, 상기 디스에이블 된 채널은 인터럽트가 발생되지 않으며, 상기 디스에이블 된 채널 이외의 다른 채널에서는 인터럽트가 발생할 수 있는 것을 특징으로 하는 인터럽트 루틴 처리 방법.The disabled channel does not generate an interrupt, the interrupt routine processing method characterized in that the interrupt can occur in a channel other than the disabled channel. 제 2항에 있어서,3. The method of claim 2, 상기 채널 검색은 상기 인터럽트 발생 여부에 따라 설정되는 서로 상이한 2진 데이터에 의해 이루어지는 것을 특징으로 하는 인터럽트 루틴 처리 방법.The channel search is performed by different binary data set according to whether or not the interrupt occurs. 제 2항에 있어서,3. The method of claim 2, 상기 채널 디스에이블 및 인에이블 단계는 상기 채널당 각각 제공되는 DMA 커맨드 레지스터(DCMD Register)의 소정 비트를 이용하는 것을 특징으로 하는 인터럽트 루틴 처리 방법.And said channel disabling and enabling step uses predetermined bits of a DMA command register (DCMD Register) provided for each channel. 제 4항에 있어서, 5. The method of claim 4, 상기 비트는 22번째 비트 또는 21번째 비트이며, '0' 값 또는 '1' 값이 설정되는 것을 특징으로 하는 인터럽트 루틴 처리 방법.The bit is the 22nd bit or the 21st bit, and a value of '0' or '1' is set. 삭제delete 삭제delete 삭제delete 제 2항에 있어서,3. The method of claim 2, 상기 인터럽트는 상기 채널마다 개별적으로 발생하는 것을 특징으로 하는 인터럽트 루틴 처리 방법.And wherein the interrupt occurs individually for each channel. 인터럽트가 발생된 채널을 검색하여 디스에이블시키며 상기 인터럽트 동작을 수행하도록 함수를 호출하는 인터럽트 서비스 루틴수단, Interrupt service routine means for retrieving and disabling the interrupted channel and calling a function to perform the interrupt operation; 상기 함수 호출에 따른 동작을 수행하는 인터럽트 서비스 실행수단, 그리고Interrupt service execution means for performing an operation according to the function call, and 상기 동작 완료 후 상기 채널을 인에이블시키고 인터럽트를 완료하는 인터럽트 완료 루틴수단을 포함하여 구성되며,And an interrupt completion routine means for enabling the channel and completing an interrupt after completion of the operation, 상기 디스에이블 된 채널은 인터럽트가 발생되지 않으며, 상기 디스에이블 된 채널 이외의 다른 채널에서는 인터럽트가 발생할 수 있는 것을 특징으로 하는 인터럽트 루틴 처리 장치.The disabled channel is not interrupted, the interrupt routine processing apparatus, characterized in that the interrupt can occur in a channel other than the disabled channel. 제 10항에 있어서,The method of claim 10, 상기 인터럽트 발생에 따른 채널의 인에이블/디스에이블 처리를 위하여 DMA 커맨드 레지스터(DCMD)가 제공되는 것을 특징으로 하는 인터럽트 루틴 처리 장치.And a DMA command register (DCMD) is provided for enabling / disabling a channel according to the interrupt occurrence. 제 11항에 있어서,12. The method of claim 11, 상기 인에이블/디스에이블은 상기 DCMD의 21번째 또는 22번째 비트가 이용되는 것을 특징으로 하는 인터럽트 루틴 처리 장치.The enable / disable is interrupt routine processing apparatus, characterized in that the 21st or 22nd bit of the DCMD is used. 삭제delete 삭제delete 복수 개의 채널 중에서 임의의 채널들에 대해 인터럽트가 복수 개 발생되면, 상기 발생된 채널마다 상기 인터럽트에 대한 해당 동작을 동시에 수행하도록 제어하는 제어수단과,If a plurality of interrupts are generated for any of the plurality of channels, the control means for controlling to perform the corresponding operation for the interrupt for each of the generated channel at the same time, and 상기 인터럽트 발생에 따른 동작이 수행되고 있는 도중에 다른 채널에 대해 인터럽트가 발생되면 상기 발생된 인터럽트에 대한 해당 동작도 수행하도록 제어하는 수단, 및Means for controlling to perform a corresponding operation on the generated interrupt when an interrupt is generated for another channel while an operation according to the interrupt is generated; and 상기 인터럽트가 발생된 채널에서는 그 해당 동작이 완료되기 이전에 다른 인터럽트가 발생되지 않도록 제어하는 수단Means for controlling the interrupted channel so that no other interrupt is generated before the corresponding operation is completed. 을 포함하는 것을 특징으로 하는 단말장치.Terminal device comprising a.
KR1020060059534A 2006-06-29 2006-06-29 Method and apparatus for processing of interrupt routine, terminal apparatus thereof KR101287285B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060059534A KR101287285B1 (en) 2006-06-29 2006-06-29 Method and apparatus for processing of interrupt routine, terminal apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060059534A KR101287285B1 (en) 2006-06-29 2006-06-29 Method and apparatus for processing of interrupt routine, terminal apparatus thereof

Publications (2)

Publication Number Publication Date
KR20080001270A KR20080001270A (en) 2008-01-03
KR101287285B1 true KR101287285B1 (en) 2013-07-17

Family

ID=39213313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060059534A KR101287285B1 (en) 2006-06-29 2006-06-29 Method and apparatus for processing of interrupt routine, terminal apparatus thereof

Country Status (1)

Country Link
KR (1) KR101287285B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001814B1 (en) * 1988-03-09 1992-03-03 후지쓰 가부시끼가이샤 Direct memory access controller
JP2000099452A (en) 1998-09-21 2000-04-07 Seiko Epson Corp Dma control device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001814B1 (en) * 1988-03-09 1992-03-03 후지쓰 가부시끼가이샤 Direct memory access controller
JP2000099452A (en) 1998-09-21 2000-04-07 Seiko Epson Corp Dma control device

Also Published As

Publication number Publication date
KR20080001270A (en) 2008-01-03

Similar Documents

Publication Publication Date Title
CN108509176B (en) Method and device for playing audio data, storage medium and intelligent terminal
US20160088345A1 (en) Method, Apparatus, and System for Improving Channel Switching Speed
US10097292B2 (en) Method, device, terminal and storage medium for adjusting broadcast message queue
US20120173817A1 (en) Method for processing parallel data storage and authentication and a terminal
EP2310947A1 (en) Media processing method and device
US11924617B2 (en) Method for projecting screen, display device, screen projection terminal, and storage medium
CN109698979B (en) Video playing method and device and electronic equipment
CN106559706B (en) A kind of processing method of audio data, device and system
JP5537726B2 (en) Method and broadcasting apparatus for realizing high-speed response to control process of multimedia file
EP3591949B1 (en) Broadcast message queuing method and device, and terminal
US9733897B2 (en) Method and apparatus of searching content
TW201810016A (en) Systems and methods for using distributed universal serial bus (USB) host drivers
CN103888832A (en) Processing method and device for switching of data sources to which to player terminal has access
WO2017219872A1 (en) Set top box upgrading and channel changing methods and systems
CN109495699B (en) Video playing switching method and device
US11199893B2 (en) Method, device for processing data of bluetooth speaker, and bluetooth speaker
KR100803005B1 (en) Memory interfacing method and apparatus
CN106940722A (en) A kind of image display method and device
KR101287285B1 (en) Method and apparatus for processing of interrupt routine, terminal apparatus thereof
KR101044944B1 (en) Appatatus and Method for performing additional functions when electronics is switched into hold-on
JP5003065B2 (en) PC with TV viewing function
CN106792370B (en) Volume control method and device
US20040073649A1 (en) Stream data processing apparatus
JP2007053724A (en) Dab modem interface capable of receiving multi-channel and its working method
US8782648B2 (en) Information processing system and related method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160624

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170623

Year of fee payment: 5