KR20020051545A - 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 - Google Patents

실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 Download PDF

Info

Publication number
KR20020051545A
KR20020051545A KR1020000080917A KR20000080917A KR20020051545A KR 20020051545 A KR20020051545 A KR 20020051545A KR 1020000080917 A KR1020000080917 A KR 1020000080917A KR 20000080917 A KR20000080917 A KR 20000080917A KR 20020051545 A KR20020051545 A KR 20020051545A
Authority
KR
South Korea
Prior art keywords
address
dma
data
external memory
processing module
Prior art date
Application number
KR1020000080917A
Other languages
English (en)
Other versions
KR100367084B1 (ko
Inventor
구본태
차진종
Original Assignee
오길록
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오길록, 한국전자통신연구원 filed Critical 오길록
Priority to KR10-2000-0080917A priority Critical patent/KR100367084B1/ko
Publication of KR20020051545A publication Critical patent/KR20020051545A/ko
Application granted granted Critical
Publication of KR100367084B1 publication Critical patent/KR100367084B1/ko

Links

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus

Abstract

데이터 양이 많은 영상 데이터를 처리하는 멀티미디어 프로세서에서는, 내부 프로세싱 모듈과 메모리간에 데이터 처리 속도가 전체 동작의 성능을 좌우한다. 따라서, 고속의 영상 데이터를 CPU를 통하지 않고, SDRAM과 같은 고속의 외부 메모리와 내부 입출력 프로세싱 모듈간에 실시간으로 전송할 필요가 있다. 또한 영상 데이터를 처리하는 내부 프로세싱 모듈에서 요구하는 데이터의 형태는 시퀀스 데이터 전송 및 블록 데이터 전송 등과 같이 다양한데, 이러한 다양한 형태의 데이터를 처리할 수 있어야 한다.
본 발명은 실시간 고속의 영상 데이터 처리용 DMA 제어기 구조에 관한 것으로, 내부 프로세싱 모듈에서 요구하는 시퀀스 데이터 전송 및 블록 데이터 전송을 수행할 수 있을 뿐만 아니라, 임시 버퍼를 사용하지 않고 데이터 전송을 수행함으로써, DMA 처리 속도를 향상시키는 DMA 제어기를 제공할 수 있다.

Description

실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 { DMA controller for the high speed image processor at real time }
본 발명은 SDRAM과 같은 고속의 외부 메모리와 내부 프로세싱 모듈간에 데이터 전송을 실시간으로 원활히 수행하도록 하는 DMA 제어기에 관한 것으로서, 보다 상세하게 설명하면 내부 프로세싱 모듈에서 요구하는 다양한 형태의 데이터를 전송할 수 있으며 DMA 처리속도가 향상된 DMA 제어기에 관한 것이다.
데이터 양이 많은 영상 데이터를 처리하는 멀티미디어 프로세서에서는, 내부 프로세싱 모듈과 메모리간의 데이터 처리가 전체 동작의 성능을 좌우한다. 따라서, 모듈과 메모리간에 데이터 전송을 어떠한 방식으로 할 것인가가 중요시된다. 또한, 영상 데이터를 처리하는 내부 프로세싱 모듈에서 요구하는 데이터의 형태는 시퀀스 데이터 전송 및 블록 데이터 전송 등의 다양한 형태를 요구한다. 따라서, 고속의 영상 데이터를 CPU를 통하지 않고 SDRAM과 같은 고속의 외부 메모리와 내부 입출력 프로세싱 모듈간에 실시간으로 데이터를 전송할 필요가 있으며, 영상 데이터를 처리하는 내부 프로세싱 모듈에서 요구하는 데이터의 형태는 시퀀스 데이터 전송 및 블록 데이터 전송 등의 다양한 형태를 요구한다.
DMA 제어란 자기 디스크나 자기 테이프와 같은 고속의 입출력 장치와 메모리간에 CPU를 통하지 않고 직접 데이터를 주고받는 컴퓨터 신호처리 기법으로서, 데이터의 전송 수단 중에 가장 빠른 방법이다.
종래에 사용되는 DMA 데이터 전송방식에는 도 1에 도시된 바와 같이 단일 어드레스 전송방식(a)과 이중 어드레스 전송방식(b)이 있다. 단일 어드레스 전송방식(a)은 DMA를 요청하는 주변기기 입출력장치(11)가 DMA 제어기(13)에 요청 신호를 보내면, DMA 제어기(13)에서 전송하고자 하는 메모리(12)의 어드레스와 제어 신호를 인가하면서 동시에 주변 입출력장치(11)에 제어신호를 보내는 방식으로, DMA 요구신호와 DMA 응답신호에 대응하는 입출력 구조를 갖는다.
이중 어드레스 전송방식(b)은 한 메모리(11)에서 다른 메모리(12)로 전송하거나, 하드웨어 핸드세이킹을 통한 내부적인 어드레스를 만들지 않는 주변기기에서 사용하는 방식으로, 소스와 목적지에 대한 이중 어드레스가 필요하다. 입, 출력 장치에 데이터를 쓰려면, 임의의 메모리 또는 DMA I/O 디바이스(11)로부터 읽어서 DMA 제어기(13)내의 임시 버퍼에 저장하였다가, 출력 메모리 또는 DMA I/O 디바이스(12)의 어드레스에 따라 해당 데이터를 전송한다. 반대 동작도 같은 방법으로 수행한다.
상기한 단일 어드레스 전송방식은 메모리와 입출력 장치가 직접 연결되어 데이터 전송이 이루어지므로 전송 지연이 없는 장점이 있지만, 입출력 장치에서 DMA 전송을 위한 별도의 인터페이스를 필요로 하고, 시퀀스 데이터만을 처리하는 단점이 있다. 따라서 보편적으로는 이중 어드레스 전송방식을 사용한다. 이중 어드레스 전송방식은 공통 버스를 사용하여 버스 인터페이스를 줄이는 장점이 있는 반면, 단일 어드레스 전송방식에 비해 두 배의 전송 사이클이 요구되는 단점이 있고, 블록 데이터를 처리하기 위해서는 임시 메모리가 필요하다는 단점이 있다.
상기와 같은 종래 기술의 문제점을 해결하기 위한 본 발명의 목적은, 여러 형태의 데이터 전송을 요구하는 내부 프로세싱 모듈들과 SDRAM과 같은 고속의 외부 메모리간에 데이터 전송을 CPU를 통하지 않고도 실시간 처리할 수 있는 DMA 제어기 및 제어방법을 제공하기 위한 것이다.
또한, 본 발명의 다른 목적은 내부 모듈에서 요구하는 형태의 데이터를 이중어드레스 전송방식을 사용하면서 임시 버퍼를 사용하지 않고도 실시간으로 데이터 전송처리를 하는 DMA 제어기 및 제어방법을 제공하기 위한 것이기도 하다.
도 1은 종래에 사용되는 DMA 구조도,
도 2는 본 발명이 적용되는 멀티미디어 프로세서의 시스템 구성도,
도 3은 본 발명의 한 실시예에 따른 실시간 고속의 데이터 처리용 DMA 제어기의 구성도,
도 4는 슬레이브 동작시 초기화되는 DMA 레지스터의 구성도,
도 5는 외부 메모리로부터 읽기 동작의 DMA 제어기의 동작 흐름도,
도 6은 외부 메모리로 쓰기 동작의 DMA 제어기의 동작 흐름도,
도 7은 외부 메모리의 어드레스 발생기의 흐름도,
도 8은 내부 프로세싱 모듈의 어드레스 발생기의 흐름도이다.
※ 도면의 주요부분에 대한 부호의 설명 ※
300 : DMA 제어기
301 : 시스템 버스 중재기 제어신호부
302 : DMA 레지스터부
303 : 어드레스 상태 제어부
304 : 어드레스/데이터 제어부
305 : DMA 레지스터 디코더
306 : 내부 프로세싱 모듈 어드레스 생성부
306a : 블록 어드레스 생성기
306b : 시퀀스 어드레스 생성기
307 : 외부 메모리 어드레스 생성부
308 : 어드레스/데이터 멀티플렉서
310 : 시스템 버스 중재기
320 : 시스템 버스 디코더
330 : 내부 프로세싱 모듈
340 : 외부 메모리 제어기
350 : 시스템 프로세서
상기한 목적을 달성하기 위한 본 발명에 따른, 시스템 버스 중재기와 시스템 프로세서와 다수의 내부 프로세싱 모듈, 및 외부 메모리 제어기를 포함하는 멀티미디어 프로세서에서, 고속의 외부 메모리와 상기 내부 프로세싱 모듈간의 데이터 전송을 제어하는 DMA 제어기는,
상기 데이터를 송신 또는 수신하는 외부 메모리의 어드레스를 발생하여 상기 외부 메모리가 동작하도록 하는 외부 메모리 어드레스 제어수단과,
상기 데이터를 수신 또는 송신하는 내부 프로세싱 모듈의 어드레스를 발생하여 상기 내부 프로세싱 모듈이 동작하도록 하는 내부 프로세싱 모듈 어드레스 제어수단, 및
상기 외부 메모리 어드레스 제어수단과 내부 프로세싱 모듈 어드레스 제어수단을 동기시켜 동작시키는 어드레스 상태 제어수단을 포함하여,
상기 외부 메모리와 상기 내부 프로세싱 모듈이 동기되어 실시간으로 직접 데이터를 전송하는 것을 특징으로 한다.
또한, 본 발명에 따른 시스템 버스 중재기와 시스템 프로세서와 다수의 내부 프로세싱 모듈, 및 외부 메모리 제어기를 포함하는 멀티미디어 프로세서에서, 고속의 외부 메모리와 상기 내부 프로세싱 모듈간의 데이터 전송을 제어하는 DMA 제어기의 제어방법은,
상기 시스템 프로세서로부터 DMA 동작에 필요한 정보와 DMA 시작신호가 입력되면, 상기 시스템 버스 중재기에게 시스템 버스 사용 허가를 받는 제 1 단계와;
데이터를 송신 또는 수신할 외부 메모리 어드레스와 데이터를 수신 또는 송신할 내부 프로세싱 모듈 어드레스를 동기시켜 발생하여, 상기 어드레스의 외부 메모리와 내부 프로세싱 모듈이 직접 데이터를 송수신할 수 있도록 제어하는 제 2 단계; 및
상기 데이터의 송수신이 종료하면 상기 시스템 버스 중재기에게 시스템 버스 사용 취소를 하여 상기 시스템 프로세서가 시스템 버스를 제어하도록 하는 제 3 단계를 포함한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하면서 본 발명의 한 실시예에 따른 "실시간 고속의 데이터 처리용 DMA 제어기 및 제어방법"을 보다 상세하게 설명하기로 한다.
도 2는 본 발명이 적용되는 멀티미디어 프로세서의 시스템 구성도이다. 이는 영상처리를 위한 내부 모듈들을 포함하는 바, 비디오 입출력 프로세싱모듈과 스트림 데이터 처리모듈, 움직임 예측 및 보상모듈, 및 변환코딩모듈을 포함하고, 각 처리모듈을 제어하는 시스템 프로세서와 시스템 버스 디코더가 포함된다. 각 프로세싱 모듈간에는 시스템 버스를 통해 DMA 제어기에 의해 데이터 전송된다. 이때, 비디오 입출력 프로세싱 모듈과 스트림 데이터 처리모듈에서는 시퀀스한 스트림 데이터를 필요로 하는 데 반해, 다른 모듈에서는 N×M 블록 데이터를 필요로 한다.따라서, DMA 제어기는 다양한 형태의 데이터를 처리할 수 있어야 한다.
도 3은 본 발명의 한 실시예에 따른 실시간 고속의 영상 데이터 처리용 DMA 제어기의 구성 블록도이다.
이 DMA 제어기(300)는 시스템 버스 중재기 제어 신호부(301)와, DMA 레지스터부(302), 어드레스 상태 제어부(303), 어드레스/데이터 제어부(304), DMA 레지스터 디코더(305), 프로세싱 모듈 어드레스 생성부(306), 외부 메모리 어드레스 생성부(307), 어드레스/데이터 멀티플렉서(308)로 구성된다.
시스템 버스 중재기 제어 신호부(301)는 시스템 프로세서(350)에서 DMA가 동작하기를 요청하여, DMA 레지스터부(302)의 DMA_CCR 레지스터가 "ON" 시스템 버스 요청신호를 발생하고, 시스템 버스 중재기(310)로부터 이 시스템 버스 요청신호에 대한 "GRANT" 신호가 수신되면 DMA 제어기(300)가 마스터가 되어서 동작할 수 있도록 한다. DMA 레지스터 디코더(305)와 DMA 레지스터부(302)는 DMA 제어기(300)가 슬레이브로 동작할 때, 즉 DMA 동작을 수행하기 전에 시스템 프로세서(350)로부터 데이터 전송할 내부 프로세서 모듈의 시작 어드레스, 전송 길이, 전송 방향, 외부 메모리의 시작 어드레스 등의 DMA 동작에 필요한 정보를 입력받아 저장한다.
도 4는 DMA 레지스터부의 구성을 도시한 도면이다. 즉, DMA 제어부가 슬레이브로로 동작할 때, DMA 레지스터부의 입력되는 레지스터 정보의 구성도로서, 채널을 제어하는 채널 제어 레지스터(DMA_CCR), 채널 상태를 나타내는 채널 상태 레지스터(DMA_CSR), 블록 버스트 전송 및 시퀀스 전송에 따른 외부 메모리에 알려줄 제어 레지스터(DMA_MCR), 및 내부 프로세싱 모듈의 시작 어드레스레지스터(DMA_DAR)로 구성된다. 영상 처리의 경우, YUV 3개의 데이터를 DMA 중지없이 처리할 수 있도록 시작 어드레스 레지스터를 별도로 더 둘 수도 있다. 전송할 길이를 나타내는 레지스터(DMA_DLR), 외부 메모리의 시작 행(ROW) 어드레스 레지스터(DMA_MRR), 외부 메모리의 시작 열(COLUMN) 어드레스 레지스터(DMA_MCR), 외부 메모리나 내부 프로세싱 모듈의 어드레스를 발생시키는 데 사용하는 블록의 사이즈를 알리는 블록 사이즈 레지스터(DMA_MBSR), N×M 블록 버스트 전송이 아닌 연속 시퀀스 전송인 경우, x 축의 오프셋 어드레스 레지스터(DMA_MOR)로 구성된다.
어드레스 상태 제어부(303)는 시스템 버스 중재기(310)로부터 DMA가 마스터가 되도록 하는 "GRANT" 신호를 입력받으면, 내부 프로세싱 모듈 어드레스 생성부(306) 및 외부 메모리 어드레스 생성부(307)를 동작시키기 위한 준비 작업을 수행하고, 어드레스가 완료가 되면 DMA 동작이 완료되었음을 알리는 역할을 한다.
이러한 내부 프로세싱 모듈 어드레스 생성부(306)는 움직임 예측 및 보상하는데서 필요한 블록 데이터를 처리하는 모듈의 어드레스를 생성하는 블록 어드레스 생성기(306a)와, 비디오나 스트림의 입출력과 같은 연속적인 데이터를 처리하는 모듈의 어드레스를 생성하는 시퀀스 어드레스 생성기(306b)로 구성된다. 외부 메모리 어드레스 생성부(307)는 SDRAM과 같은 외부 메모리의 어드레스를 생성시키는 부분이다.
어드레스/데이터 제어부(304)는 DMA 제어기(300)가 슬레이브로 동작할 때, 시스템 프로세서(350)에서 필요한 정보를 입력받아 DMA 레지스터부(302)에 저장할 수 있도록 제어하고, DMA 제어기(300)가 마스터로 동작할 때 내부 프로세싱모듈(330)에서 데이터를 가져다가 외부 메모리 제어기(340)에 전송하거나, 외부 메모리 제어기(340)로부터 내부 프로세싱 모듈(330)에 데이터를 전송하도록 어드레스 및 데이터를 제어하는 부분이다.
DMA 제어기(300)가 시스템 버스를 관장하기 위해서는 시스템 프로세서(350)가 이들 버스와는 아무런 관련이 없도록 버스가 하이-임피던스 상태로 되어야 한다. 이 상태를 요구하는 제어선이 DMA 제어기(300)에 있는데 이것이 DMA 요구선(DMA request : AREQ)이다. AREQ 신호를 받으면 시스템 버스 중재기(310)는 바로 DMA 제어기(300)가 마스터가 될 수 있도록 허가(GRANT) 신호를 DMA 제어기(300)에게 보내고, 시스템 프로세서(350)가 더 이상 시스템 버스를 공유하지 않도록 제어한다.
본 발명에서의 DMA 제어기(300)는 한 개의 채널을 통하여 다수의 프로세싱 모듈 사이에 다양한 형태의 데이터 전송을 외부 메모리와 할 수 있도록 동작하고, 시스템 프로세서(350)의 메인 스케쥴에 따라서 데이터 전송할 소스와 목적지를 초기화시킨다.
본 발명에서 제안한 DMA 제어기의 동작 순서는 다음과 같다. 먼저, 시스템 프로세서(350)는 DMA 레지스터부(302)에 내부 프로세싱 모듈(330)의 시작 어드레스 및 전송 길이 등의 정보를 입력하고, 외부 메모리의 시작 어드레스 및 전송 길이 등을 초기화하고, DMA 채널 레지스터(DMA_CCR)에 DMA 시작 신호를 부여한다. 다음, 소스와 목적지에 필요한 정보를 입력한 후에 DMA 시작신호를 인가하며, DMA 제어기(300)는 시스템 버스 중재기(310)에 시스템 버스 사용 권한을 요청하는 AREQ신호를 발생하고, 이 신호를 시스템 버스 중재기(310)에서 받아들여 허가(GRANT) 신호가 수신되면 DMA 제어기(300)는 시스템 버스를 관장하는 마스터로 동작한다.
다음, 이렇게 시스템 버스 중재기(310)로부터 허가(GRANT) 신호를 인가받은 후, DMA 제어기(300)는 시스템 버스 중재기(310)에 시스템 버스 사용중임을 알리고(LOCK=1), 어드레스 상태 제어부(303)에서 외부 메모리 어드레스 생성부(307)와 내부 프로세싱 모듈 어드레스 생성부(306)의 시작 시점을 알려 준다.
다음, 외부 메모리 제어기(340)에서 내부 프로세싱 모듈(330)에 데이터 전송하는 읽기 동작에서는, 외부 메모리 어드레스 생성기(307)를 통해서 외부 메모리 제어기(340)에 읽거나 쓰기할 시작 어드레스와 전송길이, 읽기 모드 등의 제어신호를 보내어 외부 메모리의 어드레스를 발생시킨다. 일정 시간 지연 후에 데이터를 연속적으로 버스트 전송 길이만큼 받을 수 있다. 그러면 DMA 제어기(300)는 이 일정 시간 후에 내부 프로세싱 모듈 어드레스 생성부(306)에 해당하는 프로세싱 모듈의 시작 어드레스 및 전송길이, 전송방향 등의 제어신호를 보내어 외부 메모리 제어기(340)에서 읽은 데이터를 버퍼에 저장하지 않고, 실시간으로 데이터가 전송될수 있도록 동기시켜 어드레스를 발생한다. 또한 내부 프로세싱 모듈(330)의 어드레스 생성부는 일정 길이의 시퀀스 및 버스트 전송이 끝나면, DMA_DONE 신호를 발생하고, DMA 제어기(300)는 시스템 버스 중재기(310)에 LOCK=0 신호를 보내어 시스템 버스 사용 권한을 시스템 프로세서(350)에게 넘길 수 있도록 한다.
다음, 내부 프로세싱 모듈(330)에서 외부 메모리에 데이터를 전송하는 쓰기 동작에서는, 외부 메모리 어드레스 생성부(307)에 외부 메모리의 시작 어드레스 및 전송길이, 쓰기 모드 등의 제어신호를 보내어 외부 메모리의 어드레스를 발생시킨다. 동시에 DMA 제어기(300)는 내부 프로세싱 모듈 어드레스 생성부(306)에 시작 어드레스 및 전송길이 등의 제어신호를 보내어 내부 프로세싱 모듈의 어드레스를 발생시킨다. 그리고 내부 프로세싱 모듈(330)에서 읽은 데이터를 버퍼에 저장하지 않고, 실시간으로 외부 메모리에 데이터를 전송할 수 있도록 동기시켜 어드레스를 발생시킨다. 읽기 동작에서와 마찬가지로, 내부 프로세싱 모듈의 어드레스 생성부는 일정 길이의 시퀀스 및 버스트 전송이 끝나면, DMA_DONE 신호를 발생하고, DMA 제어기(300)는 시스템 버스 중재기(310)에 "LOCK=0" 신호를 보내어 시스템 버스 사용 권한을 시스템 프로세서(350)에게 넘긴다.
도 5는 읽기 모드에서의 동작 흐름도이고, 도 6은 쓰기 모드에서의 동작 흐름도이다. 도 5를 참조하면, 시스템 프로세서가 DMA 제어기에 DMA 레지스터 세트(DMA_ST) 신호를 전송하면, DMA 제어기는 시스템 버스 중재기에 시스템 버스 사용을 요청하는 신호(AREQ)를 액티브 상태로 세팅하여 전송한다. 그러면 시스템 버스 중재기는 버스 사용을 허가하는 신호를 DMA 제어부에 전송한다. DMA 제어부는 시스템 버스 중재기에 LOCK 신호를 액티브 상태로 전달하고, 외부 메모리 어드레스 생성부와 프로세싱 모듈 어드레스 생성부에 어드레스 생성 시작시점을 알린다. 외부 메모리 어드레스 발생기는 외부 메모리 제어부에 읽기할 시작 어드레스와 전송길이, 읽기 모드 등의 제어신호를 전송하고, 프로세싱 모듈 어드레스 생성부는 프로세싱 모듈 어드레스를 발생하여 해당 내부 프로세싱 모듈을 선택한다. 일정 시간 후에는 외부 메모리 제어부에서 내부 프로세싱 모듈에 데이터가 전송된다. 전송이 완료된 후, 내부 프로세싱 모듈은 DMA 제어부에 완료신호(DMA_DONE)를 전송하고, 이 DMA 제어부는 시스템 버스 중재기에 LOCK 신호를 넌 액티브 상태로 전달하며, 시스템 버스 중재기는 시스템 프로세서에 버스 사용 허가(GRANT)신호를 전송하여 시스템 버스를 관장하도록 한다.
도 6을 참조하면, 시스템 프로세서가 DMA 제어기에 DMA 레지스터 세트(DMA_ST) 신호를 전송하면, DMA 제어기는 시스템 버스 중재기에 시스템 버스 사용을 요청하는 신호(AREQ)를 액티브 상태로 세팅하여 전송한다. 그러면 시스템 버스 중재기는 버스 사용을 허가하는 신호를 DMA 제어부에 전송한다. DMA 제어부는 시스템 버스 중재기에 LOCK 신호를 액티브 상태로 전달하고, 외부 메모리 어드레스 생성부와 프로세싱 모듈 어드레스 생성부에 어드레스 생성 시작시점을 알린다. 외부 메모리 어드레스 발생기는 외부 메모리 제어부에 쓰기할 시작 어드레스와 전송길이, 읽기 모드 등의 제어신호를 전송하고, 일정 시간 후에 내부 프로세싱 모듈은 외부 메모리 제어부에 데이터를 전송한다. 전송이 완료된 후, 내부 프로세싱 모듈은 DMA 제어부에 완료신호(DMA_DONE)를 전송하고, 이 DMA 제어부는 시스템 버스 중재기에 LOCK 신호를 넌 액티브 상태로 전달하며, 시스템 버스 중재기는 시스템 프로세서에 버스 사용 허가(GRANT)신호를 전송하여 시스템 버스를 관장하도록 한다.
위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.
이상과 같이 본 발명에 의하면, 일반 DMA에서 사용하는 버퍼 메모리를 내장하지 않고, 실시간으로 고속의 데이터를 전송할 수 있을 뿐만 아니라, 내부 프로세싱 모듈에서 요구하는 데이터의 형태에 맞게 어드레스 및 데이터 전송처리를 할 수 있는 DMA 제어기 구조를 제공한다. 또한, 본 발명의 DMA 제어기 구조는 외부 메모리에서 읽거나 쓰기할 데이터 전송을 별도의 메모리 버스로 구성하고, 시스템 버스를 통해서는 내부 프로세싱 모듈에 데이터를 전송하도록 구성하고 있어서, 기존의 DMA 제이기에 비해서 2배 이상의 전송속도 증가 효과를 얻을 수 있다.

Claims (6)

  1. 시스템 버스 중재기와 시스템 프로세서와 다수의 내부 프로세싱 모듈, 및 외부 메모리 제어기를 포함하는 멀티미디어 프로세서에서, 고속의 외부 메모리와 상기 내부 프로세싱 모듈간의 데이터 전송을 제어하는 DMA 제어기에 있어서,
    상기 데이터를 송신(또는 수신)하는 외부 메모리의 어드레스를 발생하여 상기 외부 메모리가 동작하도록 하는 외부 메모리 어드레스 제어수단과,
    상기 데이터를 수신(또는 송신)하는 내부 프로세싱 모듈의 어드레스를 발생하여 상기 내부 프로세싱 모듈이 동작하도록 하는 내부 프로세싱 모듈 어드레스 제어수단, 및
    상기 외부 메모리 어드레스 제어수단과 내부 프로세싱 모듈 어드레스 제어수단을 동기시켜 동작시키는 어드레스 상태 제어수단을 포함하여,
    상기 외부 메모리와 상기 내부 프로세싱 모듈이 동기되어 실시간으로 직접 데이터를 전송하는 것을 특징으로 하는 실시간 고속의 데이터 처리용 디엠에이 제어기.
  2. 제 1 항에 있어서,
    상기 내부 프로세싱 모듈 어드레스 제어수단은,
    블록 데이터를 처리하는 내부 프로세싱 모듈의 어드레스를 생성하는 블록 어드레스 생성기와, 연속적인 데이터를 처리하는 내부 프로세싱 모듈의 어드레스를 생성하는 시퀀스 어드레스 생성기를 포함한 것을 특징으로 하는 실시간 고속의 데이터 처리용 DMA 제어기.
  3. 제 1 항 또는 제 2 항에 있어서,
    DMA 동작을 수행하기 전에, 상기 시스템 프로세서로부터 데이터 전송할 내부 프로세서 모듈의 시작 어드레스와 전송 길이와 전송 방향, 및 외부 메모리의 시작 어드레스와 전송 길이 등의 DMA 동작에 필요한 정보를 입력받아 저장하였다가 상기 어드레스 상태 제어부에 제공하는 DMA 레지스터부를 더 포함한 것을 특징으로 하는 실시간 고속의 데이터 처리용 DMA 제어기.
  4. 제 3 항에 있어서,
    상기 DMA 레지스터부는,
    채널을 제어하는 채널 제어 레지스터(DMA_CCR)와,
    채널 상태를 나타내는 채널 상태 레지스터(DMA_CSR),
    블록 버스트 전송 및 시퀀스 전송에 따른 상기 외부 메모리에 알려줄 제어 레지스터(DMA_MCR),
    상기 내부 프로세싱 모듈의 시작 어드레스 레지스터(DMA_DAR),
    전송할 길이를 나타내는 레지스터(DMA_DLR),
    상기 외부 메모리의 시작 행(ROW) 어드레스 레지스터(DMA_MRR),
    상기 외부 메모리의 시작 열(COLUMN) 어드레스 레지스터(DMA_MCR),
    상기 외부 메모리나 내부 프로세싱 모듈의 어드레스를 발생시키는 데 사용하는 블록의 사이즈를 알리는 블록 사이즈 레지스터(DMA_MBSR), 및
    N×M 블록 버스트 전송이 아닌 연속 시퀀스 전송인 경우, x 축의 오프셋 어드레스 레지스터(DMA_MOR)를 포함한 것을 특징으로 하는 실시간 고속의 데이터 처리용 DMA 제어기.
  5. 시스템 버스 중재기와 시스템 프로세서와 다수의 내부 프로세싱 모듈, 및 외부 메모리 제어기를 포함하는 멀티미디어 프로세서에서, 고속의 외부 메모리와 상기 내부 프로세싱 모듈간의 데이터 전송을 제어하는 DMA 제어기의 제어방법에 있어서,
    상기 시스템 프로세서로부터 DMA 동작에 필요한 정보와 DMA 시작신호가 입력되면, 상기 시스템 버스 중재기에게 시스템 버스 사용 허가를 받는 제 1 단계와;
    데이터를 송신(또는 수신)할 외부 메모리 어드레스와 데이터를 수신(또는 송신)할 내부 프로세싱 모듈 어드레스를 동기시켜 발생하여, 상기 어드레스의 외부 메모리와 내부 프로세싱 모듈이 직접 데이터를 송수신할 수 있도록 제어하는 제 2 단계; 및
    상기 데이터의 송수신이 종료하면 상기 시스템 버스 중재기에게 시스템 버스 사용 취소를 하여 상기 시스템 프로세서가 시스템 버스를 제어하도록 하는 제 3 단계를 포함한 것을 특징으로 하는 실시간 고속의 데이터 처리용 DMA 제어방법.
  6. 제 5 항에 있어서,
    상기 제 2 단계의 내부 프로세싱 모듈 어드레스는,
    블록 데이터를 처리하는 내부 프로세싱 모듈의 어드레스와, 연속적인 데이터를 처리하는 내부 프로세싱 모듈의 어드레스 중 하나인 것을 특징으로 하는 실시간 고속의 데이터 처리용 DMA 제어방법.
KR10-2000-0080917A 2000-12-22 2000-12-22 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 KR100367084B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080917A KR100367084B1 (ko) 2000-12-22 2000-12-22 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080917A KR100367084B1 (ko) 2000-12-22 2000-12-22 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법

Publications (2)

Publication Number Publication Date
KR20020051545A true KR20020051545A (ko) 2002-06-29
KR100367084B1 KR100367084B1 (ko) 2003-01-09

Family

ID=27685116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0080917A KR100367084B1 (ko) 2000-12-22 2000-12-22 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법

Country Status (1)

Country Link
KR (1) KR100367084B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662256B1 (ko) * 2004-12-20 2006-12-28 한국전자통신연구원 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
US7409528B2 (en) 2003-08-25 2008-08-05 Samsung Electronics Co., Ltd. Digital signal processing architecture with a wide memory bandwidth and a memory mapping method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056067A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd Dma転送制御装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265925A (ja) * 1992-03-24 1993-10-15 Nec Corp データ転送制御装置
JPH06236342A (ja) * 1993-02-09 1994-08-23 Fujitsu Ltd Dmaコントローラ
JPH1063574A (ja) * 1996-08-19 1998-03-06 Matsushita Electron Corp キャッシュメモリ付プロセッサ
KR19990043773A (ko) * 1997-11-29 1999-06-15 정선종 직접 메모리 액세스 제어기
KR100261154B1 (ko) * 1998-01-15 2000-07-01 김영환 직접 메모리 액세스 제어 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409528B2 (en) 2003-08-25 2008-08-05 Samsung Electronics Co., Ltd. Digital signal processing architecture with a wide memory bandwidth and a memory mapping method thereof
KR100662256B1 (ko) * 2004-12-20 2006-12-28 한국전자통신연구원 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법

Also Published As

Publication number Publication date
KR100367084B1 (ko) 2003-01-09

Similar Documents

Publication Publication Date Title
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
EP0476990B1 (en) Dynamic bus arbitration
US5896516A (en) Method and apparatus for reducing propagation latency in a high speed crossbar switch
US7590146B2 (en) Information processing unit
JP2845162B2 (ja) データ転送装置
KR100367084B1 (ko) 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법
US11789884B2 (en) Bus system and method for operating a bus system
JPH08161254A (ja) 情報処理システムおよびそのバス調停方式
JPH06266605A (ja) 記憶装置
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
JPS636893B2 (ko)
EP1193605B1 (en) Apparatus and method for the transfer of signal groups between digital signal processors in a digital signal processing unit
KR100252084B1 (ko) 멀티 프로세스 시스템에서 데이터 라이트/리드 방법 및 데이터엑세스 장치
JP2002175265A (ja) 直接メモリ・アクセス・コントローラを有するディジタル信号プロセッサにおける複数の構成素子間での信号群交換装置および方法
JP2642087B2 (ja) 主記憶装置間データ転送処理機構
JPH11272545A (ja) メモリコントロール方式
JPH07334453A (ja) メモリアクセスシステム
JPH04282938A (ja) 通信制御装置
JPH052557A (ja) データ転送装置
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
EP1459191B1 (en) Communication bus system
JPH11143810A (ja) メモリコントロール方式
JPH05334223A (ja) チャネル装置およびそのフレーム送受信方法
JP2005284580A (ja) バス装置
JPH10269137A (ja) メモリ・システム及びデータ処理システム

Legal Events

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

Payment date: 20121129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20141128

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20161121

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20171128

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20181025

Year of fee payment: 17