KR20110011528A - DMA controller with interrupt control processor - Google Patents
DMA controller with interrupt control processor Download PDFInfo
- Publication number
- KR20110011528A KR20110011528A KR1020100052154A KR20100052154A KR20110011528A KR 20110011528 A KR20110011528 A KR 20110011528A KR 1020100052154 A KR1020100052154 A KR 1020100052154A KR 20100052154 A KR20100052154 A KR 20100052154A KR 20110011528 A KR20110011528 A KR 20110011528A
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- interrupt
- control
- channel
- processor
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 34
- 230000004913 activation Effects 0.000 claims abstract description 8
- 230000004044 response Effects 0.000 claims abstract description 7
- 108091006146 Channels Proteins 0.000 claims description 124
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
본 발명은 인터럽트 처리 및 주변장치의 제어가 가능한 인터럽트 제어 프로세서를 구비한 DMA(Direct Memory Access) 제어기에 관한 것이다.
본 발명에 따른 DMA 제어기는, 외부 프로세서로부터 수신되는 DMA 채널동작요청 및 DMA 전송 제어를 위한 DMA 설정값을 저장하기 위한 DMA 채널 레지스터 뱅크와, DMA 전송에 관련된 인터럽트를 처리하기 위한 제어 프로그램을 저장하는 프로그램 메모리와, 주변 장치에서 발생하는 DMA 요청 인터럽트 또는 상기 외부 프로세서로부터 수신되는 상기 DMA 채널동작요청에 응답하여 상기 프로그램 메모리에 저장된 상기 제어 프로그램을 수행하는 인터럽트 제어 프로세서와, 상기 인터럽트 제어 프로세서의 DMA 채널 활성화 명령에 응답하여 상기 DMA 채널 레지스터 뱅크에 저장된 상기 DMA 설정값에 따라 DMA 채널의 동작을 제어하여 DMA 전송이 수행되도록 하는 DMA 채널 제어 모듈과, 상기 주변장치로부터 발생하는 상기 DMA 요청 인터럽트를 수신하여 상기 인터럽트 제어 프로세서에 전달하고 상기 인터럽트 제어 프로세서에 의해 처리완료된 인터럽트에 대한 해지 신호를 생성하는 인터럽트/DMA 요청 및 해지 모듈을 포함한다. The present invention relates to a direct memory access (DMA) controller having an interrupt control processor capable of interrupt processing and peripheral device control.
The DMA controller according to the present invention stores a DMA channel register bank for storing a DMA channel operation request received from an external processor and a DMA setting value for DMA transfer control, and a control program for processing interrupts associated with the DMA transfer. An interrupt control processor for executing the control program stored in the program memory in response to a program memory, a DMA request interrupt generated from a peripheral device, or the DMA channel operation request received from the external processor, and a DMA channel of the interrupt control processor A DMA channel control module for controlling an operation of a DMA channel according to the DMA set value stored in the DMA channel register bank in response to an activation command to perform a DMA transfer, and receiving the DMA request interrupt generated from the peripheral device. The interrupt control An interrupt / DMA request and release module for delivering to a processor and generating a cancel signal for an interrupt processed by the interrupt control processor.
Description
본 발명은 인터럽트 처리 및 주변장치의 제어가 가능한 인터럽트 제어 프로세서를 구비한 DMA(Direct Memory Access) 제어기에 관한 것으로서, 구체적으로는 DMA 전송 요청을 메인 프로세서가 아닌 DMA 제어기내의 인터럽트 제어 프로세서를 이용하여 처리함으로써 주변장치와 메모리간 데이터 전송 또는 주변장치와 주변장치간 데이터 전송을 제어하는 DMA 제어기에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a direct memory access (DMA) controller having an interrupt control processor capable of interrupt processing and peripheral devices. Specifically, a DMA transfer request is processed using an interrupt control processor in the DMA controller instead of the main processor. The present invention relates to a DMA controller for controlling data transfer between a peripheral device and a memory or data transfer between the peripheral device and the peripheral device.
다수의 주변장치에 의한 데이터 전송 및 메모리를 통한 데이터 전송의 경우 DMA를 통한 데이터 전송을 수행함으로써 시스템의 성능향상을 도모할 수 있다. 그러나 이러한 DMA 전송을 위해서는 DMA 제어기를 그 동작에 따라 설정해 주어야 하며 이와 같은 DMA 전송을 요청하기 위해 주변장치들은 인터럽트 신호를 이용한다. 특히 외부와의 인터페이스를 담당하는 주변장치의 경우 빈번한 데이터 전송에 따른 인터럽트 처리를 요하게 된다. In the case of data transfer by a plurality of peripheral devices and data transfer through a memory, performance of the system can be improved by performing data transfer through DMA. However, for such DMA transfers, the DMA controller must be configured according to its operation, and peripheral devices use interrupt signals to request such DMA transfers. In particular, the peripheral device in charge of the interface with the outside requires an interrupt process according to frequent data transmission.
이러한 인터럽트를 처리하기 위하여 메인 프로세서를 통해 인터럽트와 DMA 채널 설정을 수행하는 방법과 DMA 제어기의 인터럽트 처리 모듈을 통해 DMA 제어기 자체적으로 주변장치의 데이터 전송을 제어하는 방법이 사용된다. 그러나, 메인 프로세서에 의한 인터럽트 처리는 주변장치로부터의 빈번한 인터럽트 처리 요구와 그에 대한 DMA 채널 설정에 따른 시스템 성능저하를 가져온다.In order to handle such interrupts, a method of performing interrupt and DMA channel setting through a main processor and a method of controlling data transmission of a peripheral device by the DMA controller itself through an interrupt processing module of the DMA controller are used. However, interrupt processing by the main processor causes frequent interrupt processing requests from peripheral devices and system performance degradation due to the DMA channel setting.
한편, DMA 제어기의 자체적인 인터럽트 처리 방법은 메인 프로세서에 의한 인터럽트 처리로 인해 발생되는 시스템의 인터럽트 처리 부하를 줄일 수는 있으나 DMA 제어기 자체의 고정된 우선순위에 따른 인터럽트 처리와 DMA 채널 전송을 수행함으로써 다수의 주변장치로부터 발생되는 다양한 상황에 따른 인터럽트 처리에는 부적합하다. On the other hand, the DMA controller's own interrupt processing method can reduce the interrupt processing load of the system caused by the interrupt processing by the main processor, but by performing interrupt processing and DMA channel transfer according to the fixed priority of the DMA controller itself. It is not suitable for interrupt handling according to various situations generated from many peripheral devices.
또한, 하나의 시스템을 구성하는 프로세서의 수가 증가하고 다양한 주변장치들이 서로 유기적으로 통합되는 SoC(System on Chip)에서 DMA 전송 수행을 제어하는 DMA 제어기의 동작을 제어하기 위한 부하는 점점 증가하고 있으며, 이러한 DMA 채널에 대한 많은 동작 요청은 인터럽트의 증가로 나타날 수 있다. In addition, the load for controlling the operation of the DMA controller for controlling the DMA transfer performance in the SoC (System on Chip) in which the number of processors constituting a system is increasing and various peripherals are organically integrated with each other, Many operation requests for these DMA channels can result in increased interrupts.
따라서 다양한 주변장치들로 부터 발생되는 인터럽트를 효과적으로 수신하고 상황에 맞는 DMA 동작을 DMA 제어기에 전달하는 기능은 DMA 제어기와 함께 중요한 요소가 되고 있다.
Therefore, the ability to effectively receive interrupts from various peripheral devices and to deliver context-sensitive DMA operations to the DMA controller has become an important factor with the DMA controller.
따라서, 전술한 문제점, 즉, 메인 프로세서에 의한 인터럽트 처리와 DMA 채널 제어에 따른 메인 프로세서의 연산 성능 저하 문제와 점점 다양화되고 복합적인 시스템 구성에서의 DMA 채널 제어의 유연성 문제를 해결하기 위하여 본 발명은 인터럽트 제어 프로세서와 유기적으로 결합된 DMA 제어기 구조를 제안한다.Accordingly, the present invention solves the above-mentioned problems, namely, the interruption processing by the main processor and the operation performance degradation of the main processor according to the DMA channel control, and the flexibility of the DMA channel control in an increasingly diverse and complex system configuration. Proposes a DMA controller structure organically coupled with an interrupt control processor.
본 발명은 주변장치와 메모리 간, 메모리와 메모리 간의 데이터 전송에 있어서 인터럽트에 의해 이루어지는 DMA 전송 요청을 시스템의 메인 프로세서가 아닌 DMA 제어기내의 DMA 전송 모듈들과 유기적으로 연계된 인터럽트 제어 프로세서를 통해 유연하고 빠르게 제어함으로써 시스템의 인터럽트 처리 부하를 줄이고 사용자의 요구에 맞는 DMA 전송 설정을 가능하게 하여 DMA 제어기의 성능 및 시스템 제어 성능을 보완 향상시키는 것을 목적으로 한다.The present invention is flexible and flexible through an interrupt control processor in which an DMA transfer request made by an interrupt in data transfer between a peripheral device and a memory and between memory and memory is organically associated with DMA transfer modules in a DMA controller rather than the main processor of the system. It aims to improve the performance and system control performance of the DMA controller by reducing the interrupt processing load of the system and enabling the DMA transmission setting that meets the user's needs by controlling quickly.
또한, 본 발명은 인터럽트 을 보 의한 시스템 부하를 줄이고 다양한 시스템보 적용할 수 있도록 인터럽트를 제어하고 그에 따라 DMA 제어기의 레지스터를 빠르게 설정할 수 있는 인터럽트 제어 프로세서를 갖는 DMA 제어기를 제공하는 것을 목적으로 한다.
In addition, an object of the present invention is to provide a DMA controller having an interrupt control processor that can control the interrupt and quickly set the register of the DMA controller so as to reduce the system load caused by the interrupt and apply it to various systems.
전술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른 DMA 제어기는, 외부 프로세서로부터 수신되는 DMA 채널동작요청 및 DMA 전송 제어를 위한 DMA 설정값을 저장하기 위한 DMA 채널 레지스터 뱅크와, DMA 전송에 관련된 인터럽트를 처리하기 위한 제어 프로그램을 저장하는 프로그램 메모리와, 주변 장치에서 발생하는 DMA 요청 인터럽트 또는 상기 외부 프로세서로부터 수신되는 상기 DMA 채널동작요청에 응답하여 상기 프로그램 메모리에 저장된 상기 제어 프로그램을 수행하는 인터럽트 제어 프로세서와, 상기 인터럽트 제어 프로세서의 DMA 채널 활성화 명령에 응답하여 상기 DMA 채널 레지스터 뱅크에 저장된 상기 DMA 설정값에 따라 DMA 채널의 동작을 제어하여 DMA 전송이 수행되도록 하는 DMA 채널 제어 모듈과, 상기 주변장치로부터 발생하는 상기 DMA 요청 인터럽트를 수신하여 상기 인터럽트 제어 프로세서에 전달하고 상기 인터럽트 제어 프로세서에 의해 처리완료된 인터럽트에 대한 해지 신호를 생성하는 인터럽트/DMA 요청 및 해지 모듈을 포함한다.
In order to achieve the above object, a DMA controller according to an embodiment of the present invention, a DMA channel register bank for storing a DMA channel operation request received from an external processor and a DMA setting value for DMA transfer control, and a DMA transfer A program memory for storing a control program for processing an interrupt associated with the program; and performing the control program stored in the program memory in response to a DMA request interrupt occurring in a peripheral device or the DMA channel operation request received from the external processor An interrupt control processor, a DMA channel control module for controlling an operation of a DMA channel according to the DMA set value stored in the DMA channel register bank in response to a DMA channel activation command of the interrupt control processor to perform DMA transfer; The DMA request from the peripheral device Transmission by receiving an interrupt to the interrupt control processor, and includes an interrupt / DMA request and termination module for generating a termination signal to complete the interrupt processing by the interrupt control processor.
본 발명에 따른 인터럽트 제어 프로세서를 구비한 DMA 제어기는 사용자가 인터럽트 제어에 관한 프로그램을 인터럽트 제어 프로세서에 프로그래밍 가능하도록 함으로써 다양한 구조의 통합 시스템에서 발생하는 인터럽트들에 대해 유연하고 효과적으로 대처할 수 있으며 DMA 제어기를 빠르게 설정함으로써 메인 프로세서들의 인터럽트 제어 부하를 줄일 수 있는 기능을 제공할 수 있도록 한다.
The DMA controller having an interrupt control processor according to the present invention enables a user to program an interrupt control program in an interrupt control processor, thereby flexibly and effectively coping with interrupts occurring in an integrated system having various structures. By setting it up quickly, it provides the ability to reduce the interrupt control load on the main processors.
도 1은 본 발명의 일실시예에 따른 DMA 제어기의 외부 인터페이스 구조를 도시한다.
도 2는 본 발명의 일실시예에 따른 DMA 제어기의 내부 구조를 도시한다.
도 3a 및 3b는 일반적인 메인 프로세서에 의한 DMA 채널 전송 제어 방법 및 본 발명의 인터럽트 제어 프로세서에 의한 DMA 채널 전송 제어 방법 각각을 도시한 제어 흐름도이다.1 illustrates an external interface structure of a DMA controller according to an embodiment of the present invention.
2 illustrates an internal structure of a DMA controller according to an embodiment of the present invention.
3A and 3B are control flowcharts illustrating a method of controlling a DMA channel transmission by a general main processor and a method of controlling a DMA channel transmission by an interrupt control processor according to the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명하겠다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. 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 the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.
Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise. In addition, the terms “… unit”, “module”, and the like described in the specification mean a unit that processes at least one function or operation, which means that the unit may be implemented in hardware, software, or a combination of hardware and software.
도 1은 본 발명의 일실시예에 따른 DMA 제어기의 외부 인터페이스 구조를 도시한다. 도 1에 예시된 바와 같이, 본 발명의 일실시예에 따른 DMA 제어기(100)는 DMA 제어버스(110), 인터럽트 제어 마스터 버스(120), 인터럽트 요청/해지 인터페이스(130), 인터럽트 전송 인터페이스(140) 및 DMA 채널(150)에 연결되어 있다. 1 illustrates an external interface structure of a DMA controller according to an embodiment of the present invention. As illustrated in FIG. 1, the
DMA 제어 버스(110)는 외부 버스와의 인터페이스를 담당한다. 메인 프로세서를 포함한 DMA 제어기 외부의 프로세서는 DMA 제어 버스(110)를 통해 DMA 데이터 전송을 수행하는 DMA 채널(150)의 동작을 설정하고 그 상태를 확인할 수 있으며, DMA 제어기 내부의 인터럽트 제어 프로세서에 의해 실행될 프로그램을 DMA 제어기 내부의 프로그램 메모리에 로드하고 DMA 채널 동작의 제어에 필요한 설정값을 전송함으로써 인터럽트 제어 프로세서의 동작을 제어할 수 있다. The
인터럽트 제어 마스터 버스(120)는 인터럽트 제어 프로세서가 자체적으로 시스템을 구성하는 주변장치들의 내부 레지스터를 접근할 수 있는 인터페이스를 제공한다. The interrupt
이 때, DMA 제어 버스(110)과 인터럽트 제어 마스터 버스(120)은 도 1과 같이 동일한 버스에 연결되거나 서로 분리된 버스에 연결될 수 있다.In this case, the
인터럽트 요청/해지 인터페이스(130)는 주변장치 및 기타 장치들로부터 DMA 전송 요청 인터럽트를 수신하거나 인터럽트 해지 신호를 전달한다.Interrupt request /
인터럽트 전송 인터페이스(140)는 DMA 제어기 자체 인터럽트를 시스템 내의 메인 프로세서 또는 인터럽트 제어기와 같은 인터럽트 처리기로 전송한다. The
DMA 채널(150)은 1 포트 또는 2 포트 DMA 채널로 구성될 수 있다. 또한, 물리적으로 분리된 다중 DMA 채널을 포함할 수 있다.
DMA
도 2는 본 발명의 일실시예에 따른 DMA 제어기의 내부 구조를 도시한다. 도시된 바와 같이, DMA 제어기(200)는 DMA 제어 인터페이스(210), DMA 채널 레지스터 뱅크(220), 프로그램 메모리(230), 데이터 메모리(240), 인터럽트 제어 프로세서(250), 인터럽트/DMA 요청 및 해지 모듈(260), DMA 채널 제어 모듈(270) 및 DMA 채널 인터럽트 생성 모듈(280)을 포함할 수 있다.2 illustrates an internal structure of a DMA controller according to an embodiment of the present invention. As shown, the
DMA 제어 인터페이스(210)는 메인 프로세서를 포함하는 외부 프로세서와 DMA제어기간의 인터페이스를 담당한다. DMA 제어 인터페이스(210)는 외부 프로세서로부터 인터럽트 제어 프로세서(250)에서 수행할 프로그램 및 관련 데이터를 수신하여 프로그램 메모리(220) 및 데이터 메모리(230)에 저장할 수 있다. 외부 프로세서는 DMA 제어 인터페이스(210)를 통해 DMA 채널 동작 요청 또는 DMA 채널 및 DMA 제어기 동작을 제어하기 위한 DMA 설정값(configuration value)값을 DMA 채널 레지스터 뱅크(240)에 설정할 수 있으며, 인터럽트 제어 프로세서(250)의 동작 및 중지 등의 동작을 제어하는 것에 관련된 데이터가 저장된 데이터 메모리(230)의 특정 메모리 영역 또는 DMA 채널 레지스터 뱅크(240)의 관련 레지스터를 액세스할 수 있다. 일실시예에서, DMA 설정값은 DMA 데이터 전송을 위한 소스 및 목적지 주소, 전송할 데이터 크기 및 DMA 채널 제어값을 포함한다.The
프로그램 메모리(220)는 DMA 전송을 제어하기 위한 제어 프로그램이 저장되는 메모리로서, 상기 제어 프로그램은 인터럽트 제어 프로세서(250)에 의해 수행된다. The
데이터 메모리(230)는 인터럽트 제어 프로세서(250)의 수행과 관련된 데이터를 저장하는 메모리이다. 프로그램 메모리(220) 및 데이터 메모리(230)는 모두 DMA 제어 인터페이스(210)를 통해 외부 프로세서에 의해 액세스될 수 있다.The
DMA 채널 레지스터 뱅크(240)는 DMA 데이터 전송을 위한 소스 주소, 목적지 주소, 전송 데이터 크기 및 DMA 채널 제어 값과 같은 DMA 채널 및 DMA 제어기 동작을 제어하기 위한 DMA 설정값을 저장하는 레지스터들과, 인터럽트 제어 프로세서(250)의 동작을 제어하기 위해 메인 프로세서로부터 수신되는 DMA 채널 동작 요청을 저장하는 레지스터, DMA 채널 제어 모듈(270)의 상태를 저장하는 레지스터 및 DMA 채널 동작을 활성화시키는 DMA 채널 활성화 명령을 저장하기 위한 활성화 명령 레지스터를 포함할 수 있다. DMA 채널 레지스터 뱅크(240)는 DMA 제어 인터페이스(210)를 통해 외부 프로세서에 의해 액세스될 수 있으며, 인터럽트 제어 프로세서(250)에 의해서도 액세스될 수 있다.DMA channel register bank 240 includes registers for storing DMA settings for controlling DMA channel and DMA controller operation, such as source address, destination address, transfer data size and DMA channel control value for DMA data transfer, and interrupts. Register to store the DMA channel operation request received from the main processor to control the operation of the
인터럽트 제어 프로세서(250)는 인터럽트/DMA 요청 및 해지 모듈(260)을 통해 수신된 주변장치의 DMA 요청 인터럽트 및 DMA 채널 레지스터 뱅크(240)에 설정된 외부 프로세서에 의한 DMA 채널 동작 요청에 응답하여, 사용자가 프로그램 메모리(220)에 미리 저장한 제어 프로그램에 따라 지정된 동작을 수행함으로써 DMA 채널 동작을 활성화시킨다. The
일 예로, 주변장치의 DMA 요청 인터럽트를 인터럽트/DMA 요청 및 해지 모듈(260)을 통해 인지한 인터럽트 제어 프로세서(250)는 DMA 전송을 요청한 주변장치의 상태를 확인하기 위하여 인터럽트 제어 마스터 버스(120)를 통해 해당 주변장치의 내부 레지스터를 확인한다. 확인한 다음, DMA 채널 동작을 위한 소스 및 목적지 주소, 전송할 데이터 크기 등과 같은 DMA 설정값을 DMA 채널 레지스터 뱅크(240)에 저장하고, DMA 채널 레지스터 뱅크(240)의 DMA 채널 활성화 레지스터에 채널 활성화 명령을 설정함으로써 DMA 채널 제어 모듈(270)의 채널 동작을 개시한다. 일 실시예에서, DMA 설정값은 제어 프로그램내에 설정되어 있다.For example, the
대안적으로, 주변장치의 DMA 요청 인터럽트를 인지한 인터럽트 제어 프로세서(250)는 주변장치의 상태 확인없이 제어 프로그램에 정해진 DMA 설정값을 DMA 채널 레지스터 뱅크(240)에 저장하고 DMA 채널 레지스터 뱅크(240)의 DMA 채널 활성화 레지스터에 채널 활성화 명령을 설정함으로써 DMA 채널 제어 모듈(270)의 채널 동작을 개시할 수도 있다.Alternatively, the
다른 예에서, 인터럽트 제어 프로세서(250)는 외부 프로세서로부터 수신되어 DMA 채널 레지스터 뱅크(240)에 저장된 DMA 채널 동작 요청을 인식한 후 DMA 채널 동작을 위한 소스 및 목적지 주소, 전송할 데이터 크기 등과 같은 DMA 설정값을 DMA 채널 레지스터 뱅크(240)에 저장하고, DMA 채널 레지스터 뱅크(240)의 DMA 채널 활성화 레지스터에 채널 활성화 명령을 설정함으로써 DMA 채널 제어 모듈(270)의 채널 동작을 활성화시킬 수 있다. In another example, the interrupt
또한, DMA 채널을 통해 정해진 크기의 데이터 전송이 완료됨을 나타내는 DMA 전송 완료 인터럽트가 인터럽트/DMA 요청 및 해지 모듈(260)로부터 수신되면, 인터럽트 제어 프로세서(250)는 인터럽트/DMA 요청 및 해지 모듈(260)을 통해 인터럽트 해지 신호를 발생시킨 후, 다음 데이터에 대한 DMA 전송을 위한 DMA 설정을 수행한다. In addition, when a DMA transfer complete interrupt is received from the interrupt / DMA request and cancel
이러한 동작들은 인터럽트 제어 프로세서를 위해 프로그램 메모리(220)에 미리 저장된 제어 프로그램에 프로그래밍되어 있다. 일 실시예에서, 제어 프로그램에 의해 DMA 채널 레지스터 뱅크(240)에 저장될 DMA 설정값이 지정될 수 있다. 본 발명에 의하면, 사용자의 요구에 따라 제어 프로그램을 변경함으로써 다양한 인터럽트 처리 루틴을 수행할 수 있다. 종래에 메인 프로세서에서 처리되었던 DMA 전송과 관련된 DMA 제어 루틴 및 DMA 인터럽트 처리를 제어 프로그램을 이용하여 인터럽트 제어 프로세서(250)에서 수행하도록 함으로써 메인 프로세서에 의한 직접적인 DMA 채널 제어에 따른 메인 프로세서의 제어 부하를 줄일 수 있으며, 구현하고자 하는 시스템의 특성에 맞게 DMA 전송을 제어하도록 인터럽트 제어 프로세서(250)를 동작시킴으로써 DMA 제어기를 효과적으로 제어할 수 있다. These operations are programmed in a control program previously stored in
인터럽트 제어 프로세서(250)는 일반적인 범용프로세서 또는 인터럽트 처리를 위해 특화된 프로세서를 이용하여 구현 될 수 있으며, 인터럽트/DMA 요청 및 해지 모듈(260)을 제어할 수 있다. The interrupt
DMA 채널 제어 모듈(270)은 인터럽트 제어 프로세서(250)의 DMA 채널 활성화 명령에 응답하여 DMA 채널 레지스터 뱅크(240)에 저장된 상기 DMA 설정값에 따라 DMA 채널 동작을 제어하여 DMA 전송이 수행되도록 한다. 일반적으로, DMA 전송은 한 번에 정해진 크기의 데이터만을 전송할 수 있으므로, DMA 채널 레지스터 뱅크(240)에 설정된 크기의 데이터를 모두 전송하기 위해서는 복수의 DMA 전송 동작이 필요하다. DMA 채널 제어 모듈(270)의 상태는 DMA 채널 레지스터 뱅크(240)에 저장된다. 일 예에서, DMA 채널 제어 모듈(270)의 제어하에 DMA 채널을 이용한 정해진 크기의 데이터 전송이 완료될 때마다 DMA 전송 동작이 완료됨을 나타내는 상태 정보가 DMA 채널 레지스터 뱅크(240)에 저장된다. The DMA
인터럽트/DMA 요청 및 해지 모듈(260)은 인터럽트 요청/해지 인터페이스(130)를 통해 수신한 다양한 주변장치로부터의 DMA 요청 인터럽트를 인터럽트 제어 프로세서(250)에 전달하고, 인터럽트 제어 프로세서(250)에 의해 처리완료된 인터럽트에 대한 해지 신호를 생성하여 주변 장치 또는 DMA 채널 인터럽트 생성 모듈(280)에 전달한다. 또한, 인터럽트/DMA 요청 및 해지 모듈(260)은 DMA 채널 레지스터 뱅크(240)에 저장된 DMA 채널 제어 모듈(270)의 상태를 점검함으로써 DMA 채널 제어 모듈(270)에 의해 정해진 데이터 크기의 DMA 전송이 완료될 때마다 DMA 전송 완료 인터럽트를 생성하여 인터럽트 제어 프로세서(250)에 전달한다. 한편, 인터럽트/DMA 요청 및 해지 모듈(260)은 인터럽트 제어 프로세서(250)에 의해 마지막 데이터의 DMA 전송에 관련된 인터럽트까지 최종 처리되면 인터럽트 해지 신호를 DMA 채널 인터럽트 생성 모듈(280)에 전달한다. 또한, 인터럽트 제어 프로세서(250)의 제어에 의해 인터럽트 처리를 요청한 주변장치의 순서 및 선택을 변경하는 기능을 제공할 수 있다.Interrupt / DMA request and
DMA 채널 인터럽트 생성 모듈(280)은 DMA 채널을 통해 DMA 설정값에 포함된 전송 데이터 크기만큼의 데이터 전송이 최종적으로 완료됨을 나타내는 DMA 채널 동작 완료 인터럽트 및 상기 DMA 제어기 내부 상태에 연관된 인터럽트를 생성하여 외부 인터럽트 제어기에 전달한다. 일 예에서, DMA 채널 인터럽트 생성 모듈(280)은 인터럽트/DMA 요청 및 해지 모듈(260)로부터 인터럽트 해지 신호를 수신한 경우에 DMA 채널 동작 완료 인터럽트를 생성하여 외부 인터럽트 제어기에 전달한다.The DMA channel interrupt
도 3a 및 3b는 일반적인 메인 프로세서에 의한 DMA 채널 전송 제어 방법 및 본 발명의 인터럽트 제어 프로세서에 의한 DMA 채널 전송 제어 방법 각각을 도시한 제어 흐름도이다. 도 3a에 도시된 바와 같이, 메인 프로세서에 의해 DMA 채널 전송을 제어할 경우에, 대용량 데이터의 DMA 전송시 많은 인터럽트가 주기적으로 발생되며 이러한 인터럽트의 처리는 메인 프로세서의 성능을 저하시키는 원인이 된다. 3A and 3B are control flowcharts illustrating a method of controlling a DMA channel transmission by a general main processor and a method of controlling a DMA channel transmission by an interrupt control processor according to the present invention. As shown in FIG. 3A, when the DMA channel transfer is controlled by the main processor, many interrupts are periodically generated during the DMA transfer of a large amount of data, and the processing of such interrupts causes a decrease in the performance of the main processor.
한편, 도 3b는 본 발명에 따른 DMA 채널 전송 제어 흐름을 나타낸 것으로, 구체적으로는 메인 프로세서에 의해 DMA 채널 동작 요청된 경우에 본 발명의 인터럽트 제어 프로세서가 DMA 전송관련 인터럽트를 전담하여 처리하는 흐름을 나타낸 것이다. Meanwhile, FIG. 3B illustrates a flow of DMA channel transmission control according to the present invention. Specifically, when the DMA channel operation is requested by the main processor, the interrupt control processor of the present invention is dedicated to processing a flow related to DMA transfer. It is shown.
도 3b에 도시된 바와 같이, 메인 프로세서가 DMA 채널 레지스터 뱅크(240)에 DMA 채널 동작 요청 명령을 설정하면, 본 발명에 따른 인터럽트 제어 프로세서(250)는 프로그램 메모리에 저장된 제어 프로그램을 수행함으로써 DMA 전송에 관련된 동작을 수행한다. 구체적으로, 제어 프로그램에 의해 지정된 DMA 설정값을 DMA 채널 레지스터 뱅크(240)에 저장하고 DMA 채널 제어 모듈(270)을 활성화시킨다. DMA 채널 제어 모듈(270)은 정해진 데이터 크기의 DMA 전송 동작을 수행한다. DMA 채널 제어 모듈(270)에 의해 DMA 전송이 완료됨을 인지한 인터럽트/DMA 요청 및 해지 모듈(260)은 DMA 전송완료 인터럽트를 생성하여 인터럽트 제어 프로세서(250)에 전달하고, DMA 전송완료 인터럽트를 수신한 인터럽트 제어 프로세서(250)는 다음 DMA 동작을 준비한다. 이러한 동작의 반복을 통해 마지막 데이터에 대한 DMA 동작까지 수행되면, 인터럽트 제어 프로세서(250)는 DMA 전송이 최종 완료됨을 인터럽트/DMA 요청 및 해지 모듈(260)에 알리고, 이에 따라 인터럽트/DMA 요청 및 해지 모듈(260)은 DMA 채널 인터럽트 생성 모듈(270)에 인터럽트 해지 신호를 전달한다. 인터럽트 해지 신호를 수신한 DMA 채널 인터럽트 생성 모듈(270)은 DMA 채널 동작 완료 인터럽트를 생성하여 외부 인터럽트 제어기에 전달한다.As shown in FIG. 3B, when the main processor sets a DMA channel operation request command to the DMA channel register bank 240, the interrupt
즉, 본 발명에 의하면, 사용자에 의해 변경가능한 제어 프로그램을 통해 DMA 전송 관련 인터럽트 및 주변장치의 DMA 요청 인터럽트를 처리하고 DMA 채널을 제어할 수 있는 인터럽트 제어 프로세서(250)를 DMA 제어기 내부에 별도로 포함시킴으로써, 메인 프로세서가 DMA 전송을 관리함으로써 발생할 수 있는 다수의 DMA 데이터 전송에 따른 DMA 채널 제어 및 관련 인터럽트 처리 부하를 줄이고, 사용자에게 프로그램을 통해 DMA 제어기의 제어에 있어서의 DMA 채널 제어 및 인터럽트의 처리의 유연성을 제공함으로써 기존의 인터럽트 제어기와 같은 하드웨어로 고정된 패턴의 인터럽트 처리방식 뿐만 아니라 DMA를 요청하는 장치들의 특성에 맞게 외부 장치의 DMA 전송 요청을 처리할 수 있다.That is, according to the present invention, an interrupt
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
100,200: DMA 제어기
110: DMA 제어 버스
120: 인터럽트 제어 마스터 버스
130: 인터럽트 요청/해지 인터페이스
140: 인터럽트 전송 인터페이스
150: DAM 채널 100,200: DMA controller
110: DMA control bus
120: interrupt control master bus
130: interrupt request / cancellation interface
140: interrupt transfer interface
150: DAM channel
Claims (10)
DMA 전송에 관련된 인터럽트를 처리하기 위한 제어 프로그램을 저장하는 프로그램 메모리와,
주변 장치에서 발생하는 DMA 요청 인터럽트 또는 상기 외부 프로세서로부터 수신되는 상기 DMA 채널동작요청에 응답하여 상기 프로그램 메모리에 저장된 상기 제어 프로그램을 수행하는 인터럽트 제어 프로세서와,
상기 인터럽트 제어 프로세서의 DMA 채널 활성화 명령에 응답하여 상기 DMA 채널 레지스터 뱅크에 저장된 상기 DMA 설정값에 따라 DMA 채널의 동작을 제어하여 DMA 전송이 수행되도록 하는 DMA 채널 제어 모듈과,
상기 주변장치로부터 발생하는 상기 DMA 요청 인터럽트를 수신하여 상기 인터럽트 제어 프로세서에 전달하고 상기 인터럽트 제어 프로세서에 의해 처리완료된 인터럽트에 대한 해지 신호를 생성하는 인터럽트/DMA 요청 및 해지 모듈
을 포함하는 DMA 제어기.
A DMA channel register bank for storing a DMA channel operation request received from an external processor and DMA setting values for DMA transfer control;
A program memory for storing a control program for processing interrupts related to DMA transfers;
An interrupt control processor that executes the control program stored in the program memory in response to a DMA request interrupt occurring in a peripheral device or the DMA channel operation request received from the external processor;
A DMA channel control module for controlling an operation of a DMA channel according to the DMA set value stored in the DMA channel register bank in response to a DMA channel activation command of the interrupt control processor to perform DMA transfer;
An interrupt / DMA request and cancel module that receives the DMA request interrupt from the peripheral device, passes it to the interrupt control processor, and generates a cancel signal for the interrupt processed by the interrupt control processor;
DMA controller comprising a.
The DMA controller of claim 1, wherein the DMA setting value includes a data source address, a destination address, a transfer data size, and a DMA channel control value for DMA data transfer.
The DMA controller according to claim 1, wherein said interrupt control processor further stores a DMA channel activation command in a DMA channel register bank after storing a DMA setting value specified in said control program in said DMA channel register bank.
4. The DMA controller of claim 3 wherein the DMA channel control module initiates a DMA transfer using a DMA channel when the DMA channel activation command is stored in the DMA channel register bank.
2. The DMA controller of claim 1 wherein the interrupt control processor verifies the internal state of a peripheral that caused the DMA request interrupt via an interrupt control master bus coupled to the DMA controller.
The DMA controller of claim 1, wherein the interrupt / DMA request and cancellation module generates and delivers a DMA transfer complete interrupt to the interrupt control processor whenever data of a predetermined size is completed through the DMA channel.
2. The DMA controller of claim 1 further comprising a data memory for storing data related to the execution of said interrupt control processor.
The DMA controller of claim 1, further comprising a DMA control interface that interfaces with an external processor, and receives the DMA channel operation request and the control program through the DMA control interface.
The external interrupt controller of claim 1, further comprising generating an interrupt associated with a DMA channel operation completion interrupt and an interrupt associated with an internal state of the DMA controller, indicating that data transmission of the transmission data size included in the DMA setting value is finally completed through a DMA channel. The DMA controller further comprises a DMA channel interrupt generation module for transmitting to.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/843,801 US20110022767A1 (en) | 2009-07-27 | 2010-07-26 | Dma controller with interrupt control processor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20090068430 | 2009-07-27 | ||
KR1020090068430 | 2009-07-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110011528A true KR20110011528A (en) | 2011-02-08 |
KR101357300B1 KR101357300B1 (en) | 2014-01-28 |
Family
ID=43771715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100052154A KR101357300B1 (en) | 2009-07-27 | 2010-06-03 | DMA controller with interrupt control processor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101357300B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552314B2 (en) | 2013-01-02 | 2017-01-24 | Samsung Electronics Co., Ltd. | Memory system having first and second memory devices and driving method thereof |
WO2022025318A1 (en) * | 2020-07-30 | 2022-02-03 | 김영일 | Mmi interface device and computing system based thereon |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101726519B1 (en) * | 2015-10-27 | 2017-04-12 | 주식회사 엘지씨엔에스 | Apparatus for sensing mounting condition of module in financial device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754884A (en) * | 1996-05-20 | 1998-05-19 | Advanced Micro Devices | Method for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller |
JP4785637B2 (en) * | 2006-06-16 | 2011-10-05 | キヤノン株式会社 | Data transfer apparatus and control method thereof |
-
2010
- 2010-06-03 KR KR1020100052154A patent/KR101357300B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552314B2 (en) | 2013-01-02 | 2017-01-24 | Samsung Electronics Co., Ltd. | Memory system having first and second memory devices and driving method thereof |
WO2022025318A1 (en) * | 2020-07-30 | 2022-02-03 | 김영일 | Mmi interface device and computing system based thereon |
Also Published As
Publication number | Publication date |
---|---|
KR101357300B1 (en) | 2014-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2642027B2 (en) | Computer system, arbitration method and arbitration device | |
US20140082244A1 (en) | Enhanced I/O Performance in a Multi-Processor System Via Interrupt Affinity Schemes | |
US20070240011A1 (en) | FIFO memory data pipelining system and method for increasing I²C bus speed | |
KR100551480B1 (en) | A memory device located between the processor and the nonvolatile memory, a system including the same, and a data transmission / reception method within the system | |
EP0535793B1 (en) | Method for managing data transfers in a computing system having a dual bus structure | |
JP5400443B2 (en) | Integrated circuit, debug circuit, and debug command control method | |
JP2978539B2 (en) | Data transfer control device | |
JP2009043256A (en) | Accessing method and arrangement of memory unit | |
WO1999027434A1 (en) | Using firmware to enhance the functionality of a controller | |
JP2016512361A (en) | Dual Host Embedded Shared Device Controller | |
CN113056729B (en) | Programming and control of a computational cell in an integrated circuit | |
KR101357300B1 (en) | DMA controller with interrupt control processor | |
US20110022767A1 (en) | Dma controller with interrupt control processor | |
US20150268985A1 (en) | Low Latency Data Delivery | |
US8943238B2 (en) | Operations using direct memory access | |
US7523229B2 (en) | Memory protection during direct memory access | |
US11662948B2 (en) | Norflash sharing | |
US7203781B2 (en) | Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus | |
US20240086093A1 (en) | Memory controller and data processing system with memory controller | |
US7366809B2 (en) | Pipelined stop, start, address byte, and data byte technique and circuit for I2C logic system | |
US6112272A (en) | Non-invasive bus master back-off circuit and method for systems having a plurality of bus masters | |
KR102462578B1 (en) | Interrupt controller using peripheral device information prefetch and interrupt handling method using the same | |
WO2006050287A2 (en) | Implementing bufferless dma controllers using split transactions | |
US9411758B2 (en) | Semiconductor device | |
US8799530B2 (en) | Data processing system with a host bus adapter (HBA) running on a PCIe bus that manages the number enqueues or dequeues of data in order to reduce bottleneck |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100603 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130711 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20140113 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20140121 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20140122 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20171101 |