KR20070061240A - 절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법 - Google Patents
절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법 Download PDFInfo
- Publication number
- KR20070061240A KR20070061240A KR1020060072648A KR20060072648A KR20070061240A KR 20070061240 A KR20070061240 A KR 20070061240A KR 1020060072648 A KR1020060072648 A KR 1020060072648A KR 20060072648 A KR20060072648 A KR 20060072648A KR 20070061240 A KR20070061240 A KR 20070061240A
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- absolute
- dma operation
- peripheral device
- information
- Prior art date
Links
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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
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 동작이 진행 중인 경우 그 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 일시 저장하며, 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하여, 그 DMA 동작이 완료되면 일시 저장되었던 DMA 동작에 대한 정보를 인출하여 저장되기 직전에 진행되던 DMA 동작을 다시 진행하게 하는 상태결정부 및 정지되는 DMA 동작에 대한 정보가 저장되는 인출되는 임시저장부를 포함하여, 절대 우선 순위를 갖는 주변 장치로부터의 요구가 발생했을 때, 이미 DMA 장치가 다른 주변 장치와의 DMA를 수행하고 있다고 하더라도, 이를 대기시키고 절대 우선 순위의 주변 장치 먼저 DMA를 수행하는 기능을 제공하여, 시스템은 보다 효율적으로 주변 장치들의 데이터 입출력을 제어할 수 있게 되는 이점을 제공한다.
Description
도 1은 본 발명에 따른 DMA 장치 내부의 구성의 일예를 블록으로 도시한 것이다.
도 2는 본 발명에 따른 DMA 요청을 처리하는 방법의 일예의 흐름을 도시한 것이다.
도 3은 본 발명에 따른 DMA 장치 내부의 구성의 더 상세한 일예를 블록으로 도시한 것이다.
도 4는 본 발명에 따른 DMA 요청을 처리하는 내부 상태 천이를 도시한 것이다.
도 5는 본 발명에 따른 DMA 요청을 처리하는 흐름을 시간에 따라 처리하는 타이밍을 도시한 것이다.
본 발명은 시스템 내부에서의 데이터 전송에 대한 것으로, 특히 다양한 주변 장치가 연결되는 시스템에서 DMA(Direct Memory Access) 기능을 이용해서 주변 장치들로부터의 데이터가 전송되도록 할 때에 특정의 주변 장치로부터의 데이터 전송을 우선적으로 처리할 수 있도록 할 수 있는 DMA에 관한 것이다.
최근 영상 처리 등의 응용 분야에 대한 요구가 증가함에 따라, 영상전화와 같은 시스템 내에서는 많은 양의 데이터를 빠른 시간 안에 처리할 수 있는 능력이 점점 더 요구되고 있다. DMAC(Direct Memory Access Controller)는 영상전화 시스템 내에서 메인 프로세서의 개입 없이 데이터 전달을 효과적으로 처리할 수 있도록 시스템 내부의 메인 버스를 제어하는 기능을 수행한다. DMAC는 시스템 내부의 메인 버스 혹은 메인 호스트 버스와 제어 및 데이터 전달을 위한 규격이 서로 호환되어야 제대로 동작할 수 있다.
DMA 기능을 이용해서 데이터를 전송하려는 여러 주변 장치로부터의 요청에 대해 시스템의 버스 중재기(arbiter)가 그 요청 중의 하나에 대해 버스 사용 허가를 내주면 그 버스 사용 허가를 받은 주변 장치는 버스 마스터가 되어 데이터 전송의 주체가 된다. 그리고 이 경우 DMAC에 그 주변 장치로부터의 데이터 전송에 대한 제어 신호가 전달되어 데이터의 전송이 일어난다.
이때에 일반적인 DMAC의 동작은 선점하고 있는 주변 장치의 동작 중에는 다른 주변 장치로부터의 요구는 대기 상태에 있게 된다. 선점한 주변 장치의 동작이 완료된 후에 프로세서에 데이터 전송이 완료되었음을 알리고, 다른 주변 장치들은 시스템의 버스 중재기에 다음 DMA 동작을 위한 버스 마스터 요구를 하여 어느 하나의 주변 장치가 다음의 DMA 동작에 대한 허락받게 되며, DMAC는 그 주변 장치로부 터의 데이터 전송을 처리한다.
상기와 같은 일반적인 통상의 DMAC의 DMA 동작 중에 아주 시급하게 DMA 기능에 대한 사용 허가를 필요로 하는 특정의 주변 장치로부터의 DMA 요청이 있는 경우 다음과 같은 지연 요인이 있게 된다.
1) 현재 진행 중인 DMA 동작을 완료해야 다른 주변 기기로부터의 DMA 요청을 받을 수 있다.
2) 여러 주변 기기들로부터의 DMA 요청이 들어오는 경우 아주 시급하게 DMA 허가를 받아야 할 주변 장치가 다음에 버스 사용권을 획득하게 될 가능성이 100%인 것은 아니다.
상기의 두 번째 요인에 대해서는 그 주변 장치로부터의 사용 허가 요청에 대한 우선순위를 최우선 순위로 높이고 버스 중재기가 주변 기기로부터의 요청에 대해 우선순위에 기반하여 버스 사용권을 부여하도록 하면 해결될 수 있을 것이다.
그러나 상기의 첫 번째의 요인에 대해서 종래에는 현재 진행 중인 DMA 동작을 완료해야 다른 주변 장치에 대한 DMA 동작이 가능하므로, 이미 DMA 동작을 선점하고 있는 주변 장치의 존재 여부에 따라 그 주변 장치에 대한 DMA 동작이 완료되는 동안의 일정 시간 중에 시급하게 DMA 지원을 받아야 하는 주변 장치의 데이터 전송이 지체되는 문제점이 생기게 된다.
본 발명에 이루고자 하는 기술적인 과제는, 상기와 같이 긴급하게 DMA 요청을 하여 데이터를 전송해야 하는 상황이 발생했을 때, 시간 지체를 최소화하면서 그 빠른 처리가 요구되는 주변 장치로부터의 DMA 요구를 먼저 수행하여 시간 지연을 최소화할 수 있으며, 이전에 진행하던 DMA 동작도 망실되지 않고 후처리할 수 있는, 절대 우위의 DMA 요청을 처리하는 DMA 장치 및 그 처리 방법을 제공하는데 있다.
본 발명이 이루고자 하는 다른 기술적인 과제는, 상기의 절대 우위의 DMA 요청을 처리하는 DMA 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.
상기의 기술적인 과제를 해결하기 위한, 본 발명에 따른 절대 우위의 DMA 요청을 처리하는 DMA 장치는, 외부 장치와 연결되는 데이터, 제어 신호를 포함하는 정보의 전송 경로를 제공하며, 우선순위가 가장 높은 절대 우위를 가진 주변 장치를 포함하여 DMA를 제공해야 하는 장치들로부터의 DMA 요청과 각 주변 장치에 대해 DMA를 제공하기 위해 필요한 정보를 입력받는 입력부; 상기 DMA 요청을 하는 주변 장치에 대한 우선순위를 판단하며, 상기 절대 우위의 주변 장치에는 가장 높은 우선순위를 부여하는 순위판단부; 상기 절대 우위의 주변 장치로부터의 DMA 요청이 입력되면 다른 장치에 대한 DMA 동작이 진행 중인 경우 그 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 일시 저장하며, 상기 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하여, 그 DMA 동작이 완료되면 상기 일시 저장되었던 DMA 동작에 대한 정보를 인출하여 저장되기 직전에 진행되던 DMA 동작을 다시 진행하게 하는 상태결정부; 및 상기 정지되는 DMA 동작에 대한 정 보가 저장되었다가 인출되는 임시저장부;를 포함하는 것을 특징으로 한다.
이때에 상기 상태결정부는 일시 정지시키기 전의 DMA 동작의 상태가 DMA 동작에 따라 목적지로 마지막 데이터가 전송되는 상태인 경우에는 그 마지막 데이터가 전송된 후에 상기 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따르는 것이 바람직하다.
그리고 상기 일시 저장되는 DMA 동작에 대한 정보는 DMA 동작의 상태 및 진행 정도를 포함하며, 상기 DMA 동작에 대한 정보는 데이터 전송의 시작 장치, 목적지 장치 및 전달되지 않고 남아있는 데이터의 시작 정보 및 남아있는 데이터의 크기에 대한 정보를 포함하는 것이 바람직하다.
상기의 기술적인 과제를 해결하기 위한, 본 발명에 따른 절대 우위의 DMA 요청을 처리하는 DMA 방법은, (a) 우선순위가 가장 높은 절대 우위를 가진 주변 장치에 대한 정보를 입력받아 최우선으로 DMA를 제공해야 하는 장치를 결정하는 단계; (b) 상기 절대 우위 주변 장치로부터 DMA 요청을 받으면 다른 주변 장치에 대한 DMA 동작이 실행중인가를 판단하는 단계; (c) 다른 주변 장치에 대한 실행되는 DMA 동작이 없으면 상기 절대 우위 주변 장치가 요청한 DMA 동작을 바로 실행하게 하며, 다른 주변 장치에 대한 DMA 동작이 진행 중이면 그 다른 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 저장하는 단계; (d) 상기 절대 우위 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하는 단계; 및 (e) 상기 절대 우위 주변 장치에 대한 DMA 동작이 완료되면 상기 일시 저장된 DMA 동작에 대한 정보를 인출하여 저장되기 전에 진행되던 DMA 동작을 다시 진행시키는 단계를 포함하 는 것을 특징으로 한다.
상기의 기술적인 과제를 해결하기 위한, 본 발명에 따른 절대 우위의 DMA 요청을 처리하는 DMA 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체는, (a) 우선순위가 가장 높은 절대 우위를 가진 주변 장치에 대한 정보를 입력받아 최우선으로 DMA를 제공해야 하는 장치를 결정하는 단계; (b) 상기 절대 우위 주변 장치로부터 DMA 요청을 받으면 다른 주변 장치에 대한 DMA 동작이 실행중인가를 판단하는 단계; (c) 다른 주변 장치에 대한 실행되는 DMA 동작이 없으면 상기 절대 우위 주변 장치가 요청한 DMA 동작을 바로 실행하게 하며, 다른 주변 장치에 대한 DMA 동작이 진행 중이면 그 다른 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 저장하는 단계; (d) 상기 절대 우위 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하는 단계; 및 (e) 상기 절대 우위 주변 장치에 대한 DMA 동작이 완료되면 상기 일시 저장된 DMA 동작에 대한 정보를 인출하여 저장되기 전에 진행되던 DMA 동작을 다시 진행시키는 단계를 포함하는 것을 특징으로 한다.
이하에서, 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명하기로 한다. 다만 DMAC 혹은 DMA에 대한 일반적인 내용은 이미 잘 알려진 기술이므로 본 발명에 대한 설명에 필요하지 않은 이상 DMAC 혹은 DMA 동작에 대해서는 별도로 설명하지 않을 것이다.
도 1은 본 발명에 따른 DMA 장치 내부의 구성의 일예를 블록으로 도시한 것이다.
이 장치는, 외부 장치와 연결되는 데이터, 제어 신호를 포함하는 정보의 전송 경로 를 제공하며, 우선순위가 가장 높은 절대 우위를 가진 주변 장치를 포함하여 DMA를 제공해야 하는 장치들로부터의 DMA 요청과 각 주변 장치에 대해 DMA를 제공하기 위해 필요한 정보를 입력받는 입력부(100), 상기 DMA 요청을 하는 주변 장치에 대한 우선순위를 판단하며, 상기 절대 우위의 주변 장치에는 가장 높은 우선순위를 부여하는 순위판단부(110), 상기 절대 우위의 주변 장치로부터의 DMA 요청이 입력되면 다른 장치에 대한 DMA 동작이 진행 중인 경우 그 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 일시 저장하며, 상기 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하여, 그 DMA 동작이 완료되면 상기 일시 저장되었던 DMA 동작에 대한 정보를 인출하여 저장되기 직전에 진행되던 DMA 동작을 다시 진행하게 하는 상태결정부(120) 및 상기 정지되는 DMA 동작에 대한 정보가 저장되었다가 인출되는 임시저장부(130)를 포함한다.
도 2는 본 발명에 따른 DMA 요청을 처리하는 방법의 일예의 흐름을 도시한 것이다.
입력부(100)를 통해 우선순위가 가장 높은 절대 우위를 가진 주변 장치에 대한 정보를 입력받은 순위판단부(110)는 최우선으로 DMA를 제공해야 하는 장치를 결정한다(200 단계).
상기 절대 우위 주변 장치로부터 DMA 요청을 받으면(210 단계), 이 요청은 입력부(100)를 통해 순위 판단부(110)로 전달되어 최우선적으로 DMA 기능을 제공해야 하는 주변 장치로부터의 DMA 요청이 있음이 상태결정부(120)로 전달된다.
종래에는 현재 진행되는 DMA 동작이 끝나야만 다른 주변 장치로부터의 요청에 대해 버스 중재기가 중재하지만, 본 발명에 따른 DMA 처리에서는 다른 주변 장치로부터 의 요청에 대한 DMA 동작이 실행중이더라도 절대 우위 주변 장치로부터의 DMA 요청이 받아들여지고 처리된다는 차이점이 있는 것이다.
상태결정부(120)로 다른 주변 장치에 대한 DMA 동작이 실행중인가를 판단한다(220 단계).
다른 주변 장치에 대한 실행되는 DMA 동작이 없으면 상태결정부(120)는 상기 절대 우위 주변 장치가 요청한 DMA 동작을 바로 실행하게 하며(260 단계), 다른 주변 장치에 대한 DMA 동작이 진행 중이면 그 다른 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 임시저장부(130)에 저장한다(230 단계).
상태결정부(120)는 상기의 절대 우위 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하며(240 단계), 절대 우위 주변 장치에 대한 DMA 동작이 완료되면 상기 일시 저장된 DMA 동작에 대한 정보를 임시저장부(130)로부터 인출하여 저장되기 전에 진행되던 DMA 상태를 복구하고 그 이전의 DMA 동작을 다시 진행시킨다(250 단계).
도 3은 본 발명에 따른 DMA 장치 내부의 구성의 더 상세한 일예를 블록으로 도시한 것이다. 이 구성은 도 1의 구성의 더욱 상세한 세부 구성이다.
도 1의 본 발명에 따른 각 구성 요소들은 세부 기능에 따라 도 3과 같이 여러 개의 구성요소로 나누어져서 구현될 수 있다.
호스트 인터페이스(300)는 본 발명에 따른 DMA 장치가 장착되는 시스템 내부의 호스트 메인 버스에 직접 연결되는 부분으로, 시스템의 프로세서나 선택된 주변 장치(메모리)로 데이터와 제어 신호의 입출력 기능을 수행한다. 호스트 인터페이스(300)를 통하여 시스템 프로세서는 본 발명에 따른 DMA 장치에 절대 우위 채널에 대한 사용여부, 해당 장치 등의 정보를 전달하게 된다. 도 1의 입력부(100)의 기능을 한다. 이 경우 채널이라는 것은 주변 장치에 대한 DMA 기능을 제공할 때에 그 주변 장치와의 제어신호를 포함한 정보의 전송 경로가 설정된 것을 의미한다.
호스트 메인 버스는 다양한 구조의 버스가 사용될 수 있으며, 예를 들면 고성능 마이크로 콘트롤러 버스 구조인 AMBA(Advanced Micro-controller Bus Architecture)가 사용될 수 있다.
어드레스 생성부(301)는 본 발명에 따른 DMA 장치가 시스템 버스의 마스터로 동작할 때 현 상태 버스상의 데이터의 시작/목적지를 알기 위한 정보로, 해당 주변 장치의 저장장치의 위치 정보를 갖는다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
채널 상태 생성부(302)는 전체 데이터 전송량과 상태 천이 머쉰의 상태 정보(도 4에서 설명됨)를 입력 받아, 현재 채널의 상태가 전체 데이터 전송의 어느 부분인지의 여부를 결정하는 기능을 수행한다. 또한 절대 우위 채널에 의해 대기 상태로 바뀌는 채널의 상태 정보, 동작 상태 등을 포함하는 정보를 저장하는 기능을 수행한다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
채널 선택부(303)는 동시에 여러 주변 장치로부터 DMA 요구가 발생했을 때, 각 채널의 우선순위에 따라 DMA 동작을 수행할 채널을 선택하는 기능을 수행하며, 본 발명에서는 round-robin 방법을 수행하여 우선 순위를 결정하도록 프로그램될 수 있다. 다만 그 방법 외에도 다양한 방법을 통해 DMA 동작을 수행할 채널을 선택할 수 있다는 것은 자명한 사항이다. 도 1의 순위판단부(110) 기능의 일부를 실행한다.
선입선출 메모리 소자인 FIFO(304)는 입,출력 데이터의 임시 보관장소로 각 DMA 채널의 데이터를 저장하는 저장 장치이다. FIFO 부는 독립적인 두 부분으로 구성되어 있어, 일반적인 DMA 동작의 경우 하나의 FIFO 만을 이용하고, 선점 DMA 채널의 동작 중에 절대 우위 채널의 DMA 요구가 발생한 경우, 선점 DMA 채널의 데이터를 보관한 채, 두 번째 FIFO를 이용하여 절대 우위 채널의 DMA 처리를 수행하게 된다.
FIFO 제어부(305)는 도 4에서 설명될 상태 천이 머쉰의 상태 정보를 입력 받아, FIFO(304)의 입출력 제어 신호를 생성하고, 포인트 정보를 생성하는 기능을 수행한다. FIFO 제어부(305) 또한 FIFO(304)에 맞게 동일 기능을 수행하는 2개의 블록으로 구성될 수 있다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
상태 천이 머신부(306)는 트랜스 제어신호 생성부(307)로부터 DMA 동작상의 상태를 나타내는 제어 신호들을 입력 받아, DMA의 현 상태를 나타내는 지표 신호를 생성하는 기능을 수행한다. 또한 선 점유 중이던 DMA 채널의 상태 정보인 DMA 동작에 대한 정보를 채널 상태 생성부(302)로 출력하여 저장하게 한다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
트랜스 제어 신호 생성부(207)는 DMAC 동작상의 상태를 나타내는 읽기 시작/완료, 쓰기 시작/완료 등의 신호를 생성하고 및 카운터를 포함하여 전송 크기를 계산하는 기능을 수행한다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
제어 신호 생성부(308)는 호스트 메인 버스의 프로토콜에 호환되도록, 상태 천이 머신의 상태 정보에 따라, 제어 신호들을 생성하는 기능을 수행한다.
준비상태 생성부(309)는 데이터의 전송 완료 여부를 나타내는 신호를 생성하는 기 능을 수행한다. 이는 버스 마스터에 의해 입출력된 데이터의 전달이 완료되었음을 알리는 신호로 버스 동작을 전체적으로 제어할 수 있는 중요한 신호이다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
인터럽트 제어부(310)는 DMAC 동작의 완료 또는 오동작 여부를 프로세서에 전달하기 위한 장치로 인터럽트를 발생시켜 본 발명에 따른 DMAC 장치의 버스 마스터 권리를 프로세서로 넘겨 인터럽트 상태에 따라 올바른 동작이 이루어지도록 하는 기능을 수행한다. 본 발명에 따른 DMAC 장치의 인터럽트 동작은 크게 오동작에 따른 재동작 여부 결정과 인터럽트 발생 시점에서 DMAC 동작을 완료한 채널의 정보를 프로세서에 전달하는 기능으로 나뉜다. 도 1의 상태결정부(120) 기능의 일부를 실행한다.
본 발명에 따른 도 1의 임시저장부(130)는 도 3의 FIFO(304)의 일부를 이용할 수도 있고, 내장된 레지스터 등과 같은 저장 수단을 이용하여 구현될 수 있다.
도 4는 본 발명에 따른 DMA 요청을 처리하는 내부 상태 천이를 도시한 것이다. 이 상태는 상태결정부(120)의 내부에서 실행된다.
401 상태인 IDLE은 DMAC 동작이 완료되었거나, 요구가 없는 상태이다. 이미 실행 중이던 DMA 동작을 대기시키고 절대 우위의 DMA 동작을 수행한 경우, 버스 중재기로 버스 마스터 요구 신호를 출력시켜 대기시켜 놓은 DMA 동작을 수행할 수 있도록 하는 상태이다.
402 상태인 R_START 상태는 버스 중재기로부터 버스 마스터를 허락받아 데이터 시작 장치인 소스로부터 데이터를 읽어 오기 시작하는 상태를 나타낸다.
403의 R_BUSY 상태는 데이터 소스로부터 연속적으로 데이터를 읽어 오는 상태를 나타낸다.
404 상태인 R_LAST 상태는 데이터 소스의 마지막 데이터임을 나타낸다.
405의 R_COMP 상태는 데이터 소스로부터 모든 데이터를 입력받아 본 발명에 따른 DMA 장치 내의 FIFO(304)에 저장이 완료된 상태를 나타낸다.
406의 W_START 상태는 데이터 목적지로 데이터를 출력시키기 시작하는 상태를 나타낸다.
407의 W_BUSY 상태는 데이터 목적지로 연속적으로 데이터를 출력시키는 상태를 나타낸다.
408의 W_LAST 상태는 데이터 목적지로의 마지막 데이터임을 나타낸다.
409의 ARBIT 상태는 선점한 주변 장치로부터 DMA 동작이 수행되는 중에 절대 우위를 가지는 주변 장치로부터 DMA 요구가 발생한 상태를 나타낸다. 선점한 주변 장치로부터의 DMA 동작 상태가 W_LAST 가 아닌 한 DMA 동작을 대기시키고 절대 우위 주변 장치의 DMA 동작을 수행할 수 있도록 제어 레지스터의 값을 재설정하게 된다.
이것은 마지막 데이터가 전송되는 DMA 동작 상태라면 바로 DMA 동작이 완료될 것이므로 이런 경우까지 그 DMA 동작을 중지시키는 것 보다는 마지막 데이터 전송을 완료하고 절대 우위 주변 장치로부터의 요청에 응하더라도 시간상의 지연이 거의 없기 때문에 채택한 것이다.
410의 STACK 상태는 이전 DMA 동작의 상태, 진행 정도, 데이터의 량, 데이터 등의 정보를 임의의 레지스터 혹은 FIFO(304) 등에 저장해 놓도록 하는 상태이다.
이때에 일시 저장되는 DMA 동작에 대한 정보는 DMA 동작의 상태 및 진행 정도를 포함하여, 데이터 전송의 시작 장치, 목적지 장치 및 전달되지 않고 남아있는 데이터의 시작 정보 및 남아있는 데이터의 크기에 대한 정보를 포함한다.
411 RELOAD 상태는 절대 우위 장치의 DMA 동작이 종료하여 IDLE 상태가 되고, 본 발명에 따른 DMA 장치는 ARBITER에 새로이 버스 마스터가 될 수 있도록 요청하여 그 요구가 받아들여졌을 때, 이전 수행 중이던 정보를 해당 레지스터에서 읽어 들여 DMA 동작을 위한 레지스터들을 재설정하고 DMA 동작을 속개한다.
도 5는 본 발명에 따른 DMA 요청을 처리하는 흐름을 시간에 따라 처리하는 타이밍도이다. 도면의 왼쪽에서 오른쪽으로의 시간의 경과에 따라서 동작이 진행된다.
도면에서와 같이 B 장치로부터 DMA 요구가 발생하여 본 발명에 따른 DMA 장치가 이를 우선 채널로 인정하고 버스 중재기에 버스 마스터를 요구하여 그 권리를 인정받아 DMA 동작을 수행하던 중 절대 우위 장치 A로부터 DMA 요구가 발생한 경우 수행 중이던 DMA 정보, 상태, 데이터들을 특정 레지스터와 메모리에 저장하고, A 장치의 DMA 동작을 수행하게 된다.
A 장치에 대한 DMA 동작이 완료되면 프로세서에 인터럽트를 발생시켜 A 장치의 데이터 이동이 완료되었음을 알리고, 버스 마스터의 권리를 소멸시킨다. 그 후 대기 중이던 B 장치의 DMA 동작을 수행하기 위해 버스 마스터의 권리를 시스템의 버스 중재기에 요구하고, 버스 중재기의 알고리즘에 따라 버스 마스터의 권리를 획득하게 되면, 상태 레지스터와 데이터 저장 매체의 정보를 다시 인출하여 이전 상태에 이어 B 장치에 대한 DMA 동작이 수행되도록 한다.
종래에 DMAC에 직접 메모리 접근을 요청하는 각 경로는 우선 순위 결정 프로그램에 의해 그 우선순위가 결정되지만, 한 경로가 선점하고 있는 경우 해당 경로의 동작을 완료하게 전에 다른 경로로부터의 DMA 동작 요청은 허락되지 않는다.
본 발명은 여러 접근 경로를 가지고 있는 DMA 장치에서 절대 우위 경로로부터 DMA request가 발생했을 경우, 기존의 동작을 대기시키고, 절대 우위 경로의 데이터 전달을 먼저 처리할 수 있도록 하여 종래의 DMAC와는 차이가 있다는 것을 알 수 있다.
상기와 같은 본 발명에 따른 DMAC 장치의 구성 전체 혹은 그 일부는 FPGA나 EPLD 등과 같은 소자를 이용해서 혹은 ASIC을 이용해서 각 소자에 대응하는 적절한 프로그램밍 도구를 통해 구현될 수 있다는 것은 본 발명이 속한 기술 분야의 통상의 지식을 가진 자에게는 자명한 것이다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다. 상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.
그리고 본 발명의 일부 단계들은, 또한, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, CD-RW, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
외부 장치와 연결되는 데이터, 제어 신호를 포함하는 정보의 전송 경로를 제공하며, 우선순위가 가장 높은 절대 우위를 가진 주변 장치를 포함하여 DMA를 제공해야 하는 장치들로부터의 DMA 요청과 각 주변 장치에 대해 DMA를 제공하기 위해 필요한 정보를 입력받는 입력부, DMA 요청을 하는 주변 장치에 대한 우선순위를 판단하며, 절대 우위의 주변 장치에는 가장 높은 우선순위를 부여하는 순위판단부, 절대 우위의 주변 장치로부터의 DMA 요청이 입력되면 다른 장치에 대한 DMA 동작이 진행 중인 경우 그 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보 를 일시 저장하며, 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하여, 그 DMA 동작이 완료되면 일시 저장되었던 DMA 동작에 대한 정보를 인출하여 저장되기 직전에 진행되던 DMA 동작을 다시 진행하게 하는 상태결정부 및 정지되는 DMA 동작에 대한 정보가 저장되는 인출되는 임시저장부를 포함하여, 절대 우선 순위를 갖는 주변 장치로부터의 요구가 발생했을 때, 이미 DMA 장치가 다른 주변 장치와의 DMA를 수행하고 있다고 하더라도, 이를 대기시키고 절대 우선 순위의 주변 장치 먼저 DMA를 수행하는 기능을 제공하여, 시스템은 보다 효율적으로 주변 장치들의 데이터 입출력을 제어할 수 있게 되는 이점을 제공한다.
Claims (9)
- 외부 장치와 연결되는 데이터, 제어 신호를 포함하는 정보의 전송 경로를 제공하며, 우선순위가 가장 높은 절대 우위를 가진 주변 장치를 포함하여 DMA를 제공해야 하는 장치들로부터의 DMA 요청과 각 주변 장치에 대해 DMA를 제공하기 위해 필요한 정보를 입력받는 입력부;상기 DMA 요청을 하는 주변 장치에 대한 우선순위를 판단하며, 상기 절대 우위의 주변 장치에는 가장 높은 우선순위를 부여하는 순위판단부;상기 절대 우위의 주변 장치로부터의 DMA 요청이 입력되면 다른 장치에 대한 DMA 동작이 진행 중인 경우 그 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 일시 저장하며, 상기 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하여, 그 DMA 동작이 완료되면 상기 일시 저장되었던 DMA 동작에 대한 정보를 인출하여 저장되기 직전에 진행되던 DMA 동작을 다시 진행하게 하는 상태결정부; 및상기 정지되는 DMA 동작에 대한 정보가 저장되는 인출되는 임시저장부;를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 장치.
- 제1항에 있어서,상기 상태결정부는 일시 정지시키기 전의 DMA 동작의 상태가 DMA 동작에 따라 목적지로 마지막 데이터가 전송되는 상태인 경우에는 그 마지막 데이터가 전송된 후에 상기 절대 우위를 가진 주변 장치로부터의 DMA 요청에 따르는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 장치.
- 제1항에 있어서,상기 일시 저장되는 DMA 동작에 대한 정보는 DMA 동작의 상태 및 진행 정도를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMAC 장치.
- 제1항 또는 제3항에 있어서,상기 DMA 동작에 대한 정보는 데이터 전송의 시작 장치, 목적지 장치 및 전달되지 않고 남아있는 데이터의 시작 정보 및 남아있는 데이터의 크기에 대한 정보를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMAC 장치.
- 제1항에 있어서,상기 순위판단부는 상기 절대 우위의 주변 장치를 제외한 다른 주변 장치에 대한 우선 순위를 라운드 로빈(round robin) 방식으로 결정할 수 있음을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMAC 장치.
- (a) 우선순위가 가장 높은 절대 우위를 가진 주변 장치에 대한 정보를 입력받아 최우선으로 DMA를 제공해야 하는 장치를 결정하는 단계;(b) 상기 절대 우위 주변 장치로부터 DMA 요청을 받으면 다른 주변 장치에 대한 DMA 동작이 실행중인가를 판단하는 단계;(c) 다른 주변 장치에 대한 실행되는 DMA 동작이 없으면 상기 절대 우위 주변 장치가 요청한 DMA 동작을 바로 실행하게 하며, 다른 주변 장치에 대한 DMA 동작이 진행 중이면 그 다른 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 저장하는 단계;(d) 상기 절대 우위 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하는 단계; 및(e) 상기 절대 우위 주변 장치에 대한 DMA 동작이 완료되면 상기 일시 저장된 DMA 동작에 대한 정보를 인출하여 저장되기 전에 진행되던 DMA 동작을 다시 진행시키는 단계를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 방법.
- 제6항에 있어서,상기 (c) 단계에서 일시 정지시키기 전의 DMA 동작의 상태가 DMA 동작에 따라 목적지로 마지막 데이터가 전송되는 상태인 경우에는 그 마지막 데이터가 전송된 후에 다음 단계로 진행하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 방법.
- 제6항에 있어서,상기 (c) 단계에서 일시 저장되는 DMA 동작에 대한 정보는 DMA 동작의 상태 및 진행 정도를 포함하여, 데이터 전송의 시작 장치, 목적지 장치 및 전달되지 않고 남 아있는 데이터의 시작 정보 및 남아있는 데이터의 크기에 대한 정보를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 방법.
- (a) 우선순위가 가장 높은 절대 우위를 가진 주변 장치에 대한 정보를 입력받아 최우선으로 DMA를 제공해야 하는 장치를 결정하는 단계;(b) 상기 절대 우위 주변 장치로부터 DMA 요청을 받으면 다른 주변 장치에 대한 DMA 동작이 실행중인가를 판단하는 단계;(c) 다른 주변 장치에 대한 실행되는 DMA 동작이 없으면 상기 절대 우위 주변 장치가 요청한 DMA 동작을 바로 실행하게 하며, 다른 주변 장치에 대한 DMA 동작이 진행 중이면 그 다른 DMA 동작을 정지시키고 그 정지되기 전의 DMA 동작에 대한 정보를 저장하는 단계;(d) 상기 절대 우위 주변 장치로부터의 DMA 요청에 따라 DMA 기능을 제공하는 단계; 및(e) 상기 절대 우위 주변 장치에 대한 DMA 동작이 완료되면 상기 일시 저장된 DMA 동작에 대한 정보를 인출하여 저장되기 전에 진행되던 DMA 동작을 다시 진행시키는 단계를 포함하는 것을 특징으로 하는 절대 우위의 DMA 요청을 처리하는 DMA 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050121048 | 2005-12-09 | ||
KR1020050121048 | 2005-12-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070061240A true KR20070061240A (ko) | 2007-06-13 |
Family
ID=38357176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060072648A KR20070061240A (ko) | 2005-12-09 | 2006-08-01 | 절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070061240A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195846B2 (en) | 2007-12-17 | 2012-06-05 | Electronics And Telecommunications Research Institute | Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor |
WO2014147448A1 (en) * | 2013-03-22 | 2014-09-25 | Freescale Semiconductor, Inc. | A method of controlling direct memory access of a peripheral memory of a peripheral by a master, an associated circuitry, an associated device and an associated computer program product |
-
2006
- 2006-08-01 KR KR1020060072648A patent/KR20070061240A/ko active Search and Examination
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195846B2 (en) | 2007-12-17 | 2012-06-05 | Electronics And Telecommunications Research Institute | Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor |
WO2014147448A1 (en) * | 2013-03-22 | 2014-09-25 | Freescale Semiconductor, Inc. | A method of controlling direct memory access of a peripheral memory of a peripheral by a master, an associated circuitry, an associated device and an associated computer program product |
US9846663B2 (en) | 2013-03-22 | 2017-12-19 | Nxp Usa, Inc. | Method of controlling direct memory access of a peripheral memory of a peripheral by a master, an associated circuitry, an associated device and an associated computer program product |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050193155A1 (en) | Data transfer apparatus and transfer control program | |
US8375145B2 (en) | Doorbell handling with priority processing function | |
US5794072A (en) | Timing method and apparatus for interleaving PIO and DMA data transfers | |
CN112765059A (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
US8065448B2 (en) | DMA control system, printing apparatus, transfer instruction method and computer readable medium | |
EP1787205A2 (en) | Method and system for optimizing dma channel selection | |
KR20080073128A (ko) | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 | |
US6665746B1 (en) | System and method for prioritized context switching for streaming data memory transfers | |
CN111290983B (zh) | Usb传输设备及传输方法 | |
KR20160112305A (ko) | 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템 | |
US20060179172A1 (en) | Method and system for reducing power consumption of a direct memory access controller | |
US9910812B2 (en) | Initiating multiple data transactions on a system bus | |
KR20070061240A (ko) | 절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법 | |
JP2005293427A (ja) | データ転送処理装置及びデータ転送処理方法 | |
US8589632B1 (en) | Arbitration method for programmable multiple clock domain bi-directional interface | |
JP2008108126A (ja) | データ転送制御装置及びそのバスアクセス調停方法 | |
US10540305B2 (en) | Semiconductor device | |
JPH03263158A (ja) | 共通バス調停制御方式 | |
KR100451722B1 (ko) | 직접 메모리 액세스 제어 장치 | |
US11010318B2 (en) | Method and apparatus for efficient and flexible direct memory access | |
US20080104286A1 (en) | Data transfer apparatus and data transfer method | |
JP2010140440A (ja) | バス調停装置 | |
KR20120066999A (ko) | 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법 | |
CN117891761A (zh) | 一种直接内存访问系统及数据搬运方法 | |
JPH11184715A (ja) | データ処理プロセス実行制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B601 | Maintenance of original decision after re-examination before a trial | ||
E801 | Decision on dismissal of amendment | ||
J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20080422 Effective date: 20080923 |