KR20060004829A - 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 - Google Patents

디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 Download PDF

Info

Publication number
KR20060004829A
KR20060004829A KR1020040053745A KR20040053745A KR20060004829A KR 20060004829 A KR20060004829 A KR 20060004829A KR 1020040053745 A KR1020040053745 A KR 1020040053745A KR 20040053745 A KR20040053745 A KR 20040053745A KR 20060004829 A KR20060004829 A KR 20060004829A
Authority
KR
South Korea
Prior art keywords
memory
data
address
processor
transmission information
Prior art date
Application number
KR1020040053745A
Other languages
English (en)
Other versions
KR100606163B1 (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 KR1020040053745A priority Critical patent/KR100606163B1/ko
Priority to US11/175,498 priority patent/US20060010263A1/en
Publication of KR20060004829A publication Critical patent/KR20060004829A/ko
Application granted granted Critical
Publication of KR100606163B1 publication Critical patent/KR100606163B1/ko

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/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
    • 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

Abstract

디렉트 메모리 엑세스(DMA) 장치 및 디렉트 메모리 엑세스(DMA) 장치를 통하여 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하는 시스템 및 방법이 개시된다. 상기 DMA 장치는 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 송신하기 위한 제1 전송정보를 저장하는 제1 레지스터 블록; 상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 송신하기 위한 제2 전송정보를 저장하는 제2 레지스터 블록; 상기 제1 레지스터 블록 및 상기 제2 레지스터 블록으로부터 받은 전송정보에 응답하여 상기 제1 메모리와 상기 제2 메모리간에 데이터의 송수신을 제어하는 제어기를 포함한다. 본 발명에 따른 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하기 위한 DMA 장치 사용시 시스템 내에서 데이터 전송 속도를 빠르게 할 수 있다.

Description

디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를 통한 데이터를 송수신하는 시스템 및 방법 {Direct memory access device, system and method for transmitting and receiving data through direct memory access device}
도 1은 종래 기술에 따른 마이크로 콘트롤러(MCU; Microcontroling Unit)와 디에스피(DSP; Digital Signal Processor)간 데이터를 송수신하기 위한 시스템을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간 데이터를 송수신하기 위한 시스템을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 브리지(Bridge) 디렉트 메모리 엑세스 (DMA; Direct Memory Access) 장치를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 디렉트 메모리 엑세스 장치의 동작 타이밍도이다.
도 5는 본 발명의 다른 실시예에 따른 디렉트 메모리 엑세스 장치의 동작 타이밍도이다.
* 도면의 주요부분에 대한 부호의 설명 *
110 : 마이크로 콘트롤러(MCU) 120 : 디에스피(DSP)
130, 230 : 제1 메모리 140, 240 : 제2 메모리
160, 170 : DMA 장치 210 : 제1 프로세서
220 : 제2 프로세서 250 : 브리지 DMA 장치
310 : 제1 레지스터 블록 330 : 제어기
본 발명은 디렉트 메모리 엑세스(DMA) 장치를 통하여 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하는 시스템 및 방법에 관한 것이다.
일반적으로 비디오 데이터 또는 오디어 데이터의 디코딩(Decoding) 또는 엔코딩(Encoding)과 같은 계산 중심의 작업에서는 일정량의 데이터를 프레임(Frame)과 같은 집합으로 나누어 분할하여 처리하게 된다. 따라서 통상적으로 시스템은 시스템을 운영 및 제어하는 마이크로 콘트롤러(MCU; Microcontroling Unit)와 계산을 주로 담당하는 디에스피 (DSP; Digital Signal Processor)를 포함하게 된다. 한편 MCU와 DSP간의 인터페이스를 위해서 양방향 메모리 (Dual Port Memory)를 위치시켜 데이터를 주고 받는 경우가 가장 일반적이다.
도 1은 종래 기술에 따른 MCU와 DSP간 데이터를 송수신하기 위한 시스템을 도시한 블록도이다.
도 1을 참고하면, MCU와 DSP간 데이터를 송수신하기 위한 시스템(100)은 MCU (110), 제1 메모리(First MEM; 130), 양방향 메모리(DP MEM; 150), 제1 디렉트 메로리 엑세스(DMA; 160), 제2 디렉트 메로리 엑세스(DMA; 170), 제2 메모리(Second MEM)와 DSP(120)을 포함하고 있다. 상기 MCU(110)는 제1 메모리(130)와 버스(101)를 통하여 연결되어 있고, 상기 DSP(120)는 제2 메모리(140)와 연결되어 있다. 상기 MCU (110)와 DSP(120)간에 데이터를 송수신하기 위해서는 통상적으로 양방향 메모리 (DP MEM, 150)를 위치시켜 데이터를 주고 받는다. 그러나 상기 양방향 메모리(150)와 상기 제1 메모리(130)(또는 제2 메모리(140))간의 데이타 전송을 위하여 제1 및 제2 디렉트 메모리 엑세스 장치(Direct Memory Access, “DMA” 160,170)를 통하여 데이터를 송수신하게 된다.
이러한 구조에서 상기 제1 메모리(130)의 데이터를 상기 제2 메모리(140)로 송신시 데이터는 제1 메모리(130) → 제1 DMA(160) → 양방향 메모리(150) → 제2 DMA(170) → 제2 메모리(140)를 통해서 전송된다. 즉, 상기 제1 DMA(160)는 상기 제1 메모리(130)와 상기 양방향 메모리(150)간의 데이터 전송을 제어하고, 제2 DMA(170)는 상기 제2 메모리(140)와 상기 양방향 메모리(150)간의 데이터 전송을 제어한다. 이 동작에서 볼 수 있듯이 종래에는 데이터를 전송하기 위해 거쳐야하는 모듈이 많고, 버스 동작이 많은 단점이 있다. 또한 양방향 메모리(150)가 제1 DMA(160)와 제2 DMA(170) 사이에 위치하고 있어, 상기 MCU(110)과 DSP(120)의 전송에 필요한 프로토콜이 서로 다르기 때문에 상기 양방향 메모리(150)의 크기 조정 등 많은 불편함이 존재한다.
본 발명의 제1 목적은 상기와 같은 문제점을 해결하고, 산업적으로 데이터의 빠른 처리 속도 요구에 부응하기 위하여, 양방향 메모리를 사용하지 않고 버스 동작이 개선하기 위한 MCU와 같은 제1 프로세서와 연결된 제1 메모리와 DSP와 같은 제2 프로세서에 연결된 제2 메모리간에 데이터를 송수신하기 위한 디렉트 메모리 엑세스 장치를 제공하는 것이다.
본 발명의 제2 목적은 상기 디렉트 메모리 엑세스 장치를 가지는 데이터 송수신 시스템을 제공하는 것이다.
본 발명의 제3 목적은 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하기 위한 방법을 제공한다.
상기 제1 목적을 달성하기 위한 본 발명은 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하는 디렉트 메모리 엑세스(DMA) 장치 및 시스템을 제공한다. 상기 디렉트 메모리 엑세스 장치는 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 송신하기 위한 제1 전송정보를 저장하는 제1 레지스터 블록; 상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 송신하기 위한 제2 전송정보를 저장하는 제2 레지스터 블록; 및 상기 제1 전송 정보 및 제2 전송정보에 기초하여 상기 제1 메모리와 상기 제2 메모리간에 데이터의 송수신을 제어하는 제어기를 포함한다.
상기 디렉트 메모리 엑세스 장치는 상기 제어기의 제어 신호에 응답하여 상기 제1 제어신호 또는 제2 제어신호에 따른 데이터를 상기 제1 메모리 또는 상기 제2 메모리로부터 각각 수신하여 저장하는 제3 메모리를 더 포함할 수 있다.
상기 디렉트 메모리 엑세스 장치는 상기 제어기의 제어 신호에 응답하여 상기 제3 메모리에 저장된 데이터를 순차적으로 전송시키기 위한 상기 제1 메모리 또는 상기 제2 메모리의 어드레스를 생성하는 어드레스 생성기를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제1 레지스터 블록은 상기 제1 메모리의 출발 어드레스를 포함하는 제1 어드레스 레지스터, 상기 제2 메모리의 도착 어드레스를 포함하는 제2 어드레스 레지스터, 및 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양을 포함하는 제1 카운트 레지스터를 포함하고, 상기 제2 레지스터 블록은 상기 제2 메모리의 출발 어드레스를 포함하는 제3 어드레스 레지스터, 상기 제1 메모리의 도착 어드레스를 포함하는 제4 어드레스 레지스터, 및 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양을 포함하는 제2 카운트 레지스터를 포함한다. 상기 제1 메모리의 출발 어드레스, 상기 제1 메모리의 도착 어드레스, 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양은 상기 제1 프로세서가 생성하고, 상기 제2 메모리의 출발 어드레스, 상기 제2 메모리의 도착 어드레스, 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양은 상기 제2 프로세서가 생성한다.
본 발명의 일 실시예에 따르면, 상기 제어기는 상기 제1 메모리에서 제2 메모리로의 데이터 전송과 상기 제2 메모리에서 제1 메모리로의 데이터 전송이 겹치지 않도록 제2 시작 명령을 소정시간(a)만큼 제1 시작명령으로부터 지연시키기 위한 아비터를 더 포함할 수 있다.
상기 제2 목적을 달성하기 위한 본 발명은, 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 디렉트 메모리 엑세스(DMA) 장치를 이용하여 데이터를 송수신하는 방법에 있어서: 연산에 필요한 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 전송하기 위한 제1 전송정보를 생성하는 단계; 상기 제1 전송정보에 응답하여 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리에 송신하는 단계; 상기 제2 메모리에 저장된 데이터를 이용하여 상기 제2 프로세서를 이용하여연산하는 단계; 상기 연산된 데이터를 상기 제2 메모리에 저장하는 단계; 상기 연산되어 상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 전송시키기 위한 제2 전송정보를 수신하는 단계; 및 상기 제2 전송정보에 응답하여 연산된 데이터를 상기 제1 메모리에 전송하는 것을 포함한다.
상기 제2 목적을 달성하기 위한 다른 본 발명은, 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 디렉트 메모리 엑세스(DMA) 장치를 이용하여 데이터를 송수신하는 방법에 있어서; 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 전송하기 위한 제1전송정보를 생성하는 단계; 상기 제1 메모리에 저장된 데이터를 상기 제1 메모리로부터 읽어 제3 메모리에 저장하는 단계; 상기 제1 전송정보에 기초하여 상기 제3 메모리에 저장된 데이터를 상기 제2 메모 리에 송신하는 단계; 상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 전송하기 위한 제2전송정보를 생성하는 단계; 상기 제2 메모리에 저장된 데이터를 상기 제2 메모리로부터 읽어 제3 메모리에 저장하는 단계; 및 상기 제2 전송정보에 기초하여 상기 제3 메모리에 저장된 데이터를 상기 제1 메모리에 전송하는 단계를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 제1 프로세서(Processor)와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간 데이터를 송수신하기 위한 시스템을 도시한 블록도이다.
도 2를 참조하면, 데이터를 송수신하기 위한 시스템(200)은 제1 프로세서(210), 제1 메모리(First MEM; 230), 브리지 DMA(250), 제2 메모리(Second MEM; 240) 및 제2 프로세서(220)을 포함하고 있다. 상기 제1 프로세서(210)는 시스템 운영에 필요한 데이터를 저장하고 있는 제1 메모리(230)와 버스(201)를 통하여 연결되어 있다. 상기 제2 프로세서(220)는 제2 프로세서(220) 연산에 필요한 또는 연산 후 데이터를 저장하고 있는 제2 메모리(240)와 연결되어 있다. 본 발명의 일 실시예에 따르면, 상기 제1 메모리(230)와 제2 메모리(240)는 직접 연결되지 못하기 때문에 브리지 DMA 장치(250, 이하 브리지 DMA)를 통하여 연결되어 있다.
종래의 기술에 의하면 제1 메모리와 연결된 제1 DMA, 제2 메모리와 연결된 제2 DMA를 사용하고, 제1 DMA와 제2 DMA를 연결하기 위하여 양방향 메모리를 사용 하였으나, 본 발명의 일 실시예에서는 브리지 DMA(250)를 사용하여 상기 제1 메모리(230)와 제2 메모리(240)을 직접 연결하여 데이터를 송수신할 수 있게 하였다.
본 발명의 일 실시예에 따른 구조에서 상기 제1 메모리(230)의 데이터를 상기 제2 메모리(240)로 송신시 데이터의 흐름을 살펴보면, 제1 메모리(230) → 브리지 DMA(250) → 제2 메모리(240)와 같이 된다. 이 동작에서 볼 수 있듯이 종래에는 제1 메모리로부터 제2 메모리로 데이터를 전송하기 위해서는 4 단계가 필요하였으나, 본 발명의 일 실시예에 따르면 2 단계로 줄여서 데이터를 전송할 수 있기 때문에 시스템내에서 데이터 전송 속도를 빠르게 할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제1 프로세서(210)는 예를 들면, 중앙처리 장치(CPU) 또는 마이크로 콘트롤러(MCU)가 될 수 있다. 상기 제2 프로세서(220)는 예를 들면, 디에스피(DSP;Digital Signal Processor)가 될 수 있다. 한편, 통상의 지식을 가진 당업자에게는 상기 제1 프로세서(210)로 중앙처리장치(CPU) 또는 마이크로 콘트롤러(MCU), 상기 제2 프로세서(220)로 DSP로 한정되지 않으며, 연산 또는 제어 동작을 수행하는 다른 프로세서 또는 제어기로 대체할 수 있음은 자명하다.
도 3은 본 발명의 일 실시예에 따른 브리지 DMA(250)를 도시한 블록도이다.
도 3을 참조하면, 상기 브리지 DMA(250)는 상기 제1 메모리(230)에 저장된 데이터를 상기 제2 메모리(240)로 전송시키기 위한 제1 전송정보를 저장하는 제1 레지스터 블록(310), 상기 제2 메모리(240)에 저장된 데이터를 상기 제1 메모리(230)로 전송시키기 위한 제2 전송정보를 저장하는 제2 레지스터 블록(320) 및 상기 제1 레지스터 블록(310) 및 상기 제2 레지스터 블록(320)으로부터 받은 전송정보에 기초하여 상기 제1 메모리(230)와 상기 제2 메모리(240) 간에 데이터의 송수신을 제어하는 제어기(330)를 포함하고 있다.
본 발명의 일 실시예에 따르면, 상기 브리지 DMA(250)은 상기 제어기(330)의 제1 제어신호(332)에 응답하여 상기 제1 전송정보 또는 제2 전송정보에 기초하여 상기 제1 메모리(230) 또는 상기 제2 메모리(240)로부터 읽어들인 데이터를 저장하는 제3 메모리(340)를 더 포함할 수 있다. 예를 들어, 상기 제3 메모리(340)는 래치회로를 사용할 수 있다.
본 발명의 일 실시예에 따르면, 상기 브리지 DMA(250)은 상기 제어기(330)의 제2 제어신호(334)에 응답하여 상기 제3 메모리(340)에 저장된 데이터를 순차적으로 상기 제1 메모리(230) 또는 상기 제2 메모리(240)로 전송시키기 위한 상기 제1 메모리(230)의 어드레스 또는 상기 제2 메모리(240)의 어드레스를 생성하는 어드레스 생성기(350)를 더 포함하고 있다.
본 발명의 일 실시예에 따르면, 상기 제1 레지스터 블록(310)은 상기 제1 메모리(230) 데이터의 출발 어드레스(M1 Source Addr 1)를 포함하는 제1 어드레스 레지스터(312), 전송될 데이터의 양(Count 1)을 포함하는 제1 카운트 레지스터(314), 및 상기 제2 메모리(240)에 전송될 데이터의 위치에 상응하는 제2 메모리의 어드레스(M2 Dest Addr 1)를 포함하는 제2 어드레스 레지스터(322)를 포함하고 있다.
상기 제1 어드레스 레지스터(312), 제1 카운트 레지스터(314), 및 제2 어드레스 레지스터(322)에 저장된 세가지 전송정보를 이용하여 상기 브리지 DMA(250)는 상기 제1 메모리(230)에 저장되어 있는 데이터를 상기 제2 메모리(240)에 전송하게 된다. 즉, 상기 브리지 DMA(250)는 상기 제1 메모리(230)에서 상기 출발 어드레스(M1 Source Addr 1)에 상응하는 데이터를 직접 읽고(Read), 제3 메모리(340)를 거쳐 상기 제2 메모리(240)의 제2 메모리의 어드레스(M2 Dest Addr 1)에 상기 데이터를 직접 기록(Write)하게 된다. 한편, 본 발명의 다른 실시예에 따르면 상기 제3 메모리(340)을 거치지 않고, 데이터를 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 직접 전송할 수도 있다.
상기 제2 레지스터 블록(320)은 상기 제2 메모리(240) 데이터의 출발 어드레스(M2 Source Addr 2)를 포함하는 제3 어드레스 레지스터(326), 전송될 데이터의 양(Count 2)을 포함하는 제2 카운트 레지스터(324), 및 상기 제1 메모리(230)에 전송될 데이터의 위치에 상응하는 제1 메모리 어드레스(M1 Dest Addr 2)를 포함하는 제4 어드레스 레지스터(326)를 포함하고 있다.
상기 제3 어드레스 레지스터(326), 제2 카운트 레지스터(324), 및 제4 어드레스 레지스터(316)에 저장된 세가지 전송정보를 이용하여 상기 브리지 DMA(250)는 상기 제2 메모리(240)에 저장되어 있는 데이터를 상기 제1 메모리(230)에 전송하게 된다. 즉, 상기 브리지 DMA(250)는 상기 제2 메모리(240)의 출발 어드레스(M2 Source Addr 2)에 상응하는 데이터를 직접 읽고(Read), 제3 메모리(340)를 거쳐 상기 제1 메모리(230)의 제1 메모리 어드레스(M1 Dest Addr 2)로 상기 데이터를 직접 기록(Write)하게 된다. 한편, 본 발명의 다른 실시예에 따르면 상기 제3 메모리(340)을 거치지 않고, 데이터를 상기 제1 메모리(240)에서 상기 제2 메모리(230)으로 직접 전송할 수도 있다.
본 발명의 일 실시예에 따르면, 상기 제1 메모리(230) 데이터의 출발 어드레스(M1 Source Addr 1), 상기 전송될 데이터의 양(Count 1), 및 상기 제2 메모리(240)에 전송될 데이터의 위치(M2 Dest Addr 1)는 상기 제1 프로세서(210)가 생성한다. 상기 제2 메모리(240) 데이터의 출발 어드레스(M2 Source Addr 2), 상기 전송될 데이터의 양(Count 2), 및 상기 제1 메모리(230)에 전송될 데이터의 위치(M1 Dest Addr 2)는 상기 제2 프로세서(220)가 생성한다.
본 발명의 일 실시예에 따르면, 상기 제어기(330)은 제1 시작 레지스터(336) 및 제2 시작 레지스터(338)를 포함하고 있다. 상기 제1 시작 레지스터는 제1 레지스터 블록(310)의 전송정보의 실행 시점을 알리는 제1 시작 명령(Start 1)를 제1 프로세서(210)으로부터 수신하며, 상기 제2 시작 레지스터는 제2 레지스터 블록(320)의 전송정보의 실행 시점을 알리는 제2 시작 명령(Start 2)를 제2 프로세서(220)으로부터 수신한다. 상기 제어기(330)은 제1 시작 명령(Start 1)을 수신하면, 제1 어드레스 레지스터(312)와 제2 어드레스 레지스터 (316)의 전송정보에 따라, 상기 제1 메모리(230)의 데이터를 제2 메모리(240)로 전송을 시작한다. 상기 제어기(330)은 제2 시작 명령(Start 2)을 수신하면, 제3 어드레스 레지스터(322)와 제4 어드레스 레지스터 (326)의 전송정보에 따라, 상기 제2 메모리(240)의 데이터를 제1 메모리(230)로 전송 시작한다.
본 발명의 일 실시예에 따르면, 상기 제어기(330)은 상기 제1 시작 명령(Start 1)과 상기 제2 시작 명령(Start 2)의 실행을 지연(Delay)시키기 위한 아비터(Arbiter)를 더 포함할 수 있다. 한편, 상기 아비터는 상기 제어기(330)에 분리되어 별도로 구성될 수 있음은 본 기술을 사용하는 당업자에게는 자명하다.
도 4는 본 발명의 일 실시예에 따른 브리지 DMA(250)의 동작 타이밍도이고, 도 5는 본 발명의 다른 실시예에 따른 브리지 DMA(250)의 동작 타이밍도이다. 도 4는 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 데이터를 전송하는 단계와 상기 제2 메모리(240)에서 상기 제1 메모리(230)로 데이터를 전송하는 단계가 겹치지 않는 경우를 도시한 타이밍도이고, 도 5는 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 데이터를 전송하는 단계와 상기 제2 메모리(240)에서 상기 제1 메모리(230)로 데이터를 전송하는 단계가 겹치는 경우를 도시한 타이밍도이다.
이하, 도 2, 3, 4 및 5를 참조하여, 상기 브리지 DMA(250)의 동작을 상세히 설명한다. 먼저, 상기 제1 프로세서(210)는 상기 제1 메모리(230)에서 상기 제2 메모리(240)으로 데이터의 전송을 알리는 제1 시작 명령(Start 1)을 생성하여 상기 제어기(330)에 알린다. 또한 제1 프로세서(210)는 제1 시작 명령(Start 1)의 발생 후에, 상기 데이터가 저장되어 있는 위치를 알려주는 제1 메모리(230)의 어드레스(M1 Source Addr 1), 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 전송시켜야 할 데이터의 양을 표시하는 카운트(Count 1), 상기 제1 메모리(230)로부터 전송되어 상기 제2 메모리(240)에 저장될 위치를 알려주는 제2 메모리(240)의 어드레스(M2 Dest Addr 1)를 상기 제1 레지스터 블록(310)에 보낸다.
도 4의 전반부에 도시되어 있는 바와 같이, 클럭의 첫 사이클 동안, 소스 데이터의 어드레스 (S1, 제1 메모리의 어드레스), 목적지 어드레스 (D1, 제2 메모리 의 어드레스) 및 전송되어야 할 데이터의 카운트(2)를 상기 제1 프로세서(210)는 상기 제어기(330)에 보낸다. 이때 상기 제1 메모리(230)에 저장된 데이터는 상기 제1 메모리(230)으로부터 상기 카운터 양만큼 읽혀져, 상기 제2 메모리(240)로 상기 제3 메모리(340)을 통하여 보내지게 된다. 계속해서, 클럭의 두번째 사이클 동안, 소스 데이터의 어드레스 (S1, 제1 메모리의 어드레스), 목적지 어드레스 (D1, 제2 메모리의 어드레스) 및 전송되어야 할 데이터의 카운트(1)를 상기 제1 프로세서(210)는 상기 제어기(330)에 보내게 되고, 카운트 값이 0로 바뀌면 데이터 전송은 끝나게 된다.
한편, 상기 제1 메모리(230)에서 상기 제2 메모리(240)으로 전송된 데이터를 이용하여, DSP와 같은 상기 제2 프로세서(220)에서 특정한 연산을 수행한 후, 연산된 데이터를 다시 제1 메모리(230)로 전송한다. 이 경우, 또한 제2 프로세서(220)는 제2 시작 명령(Start 2) 발생 후에, 상기 연산된 데이터가 저장되어 있는 위치를 알려주는 제2 메모리(240)의 어드레스(M2 Source Addr 2), 상기 제2 메모리(240)에서 상기 제1 메모리(230)로 전송시켜야 할 데이터의 양을 표시하는 카운트(Count), 상기 제2 메모리(240)로부터 전송되어 상기 제1 메모리(230)에 저장될 위치를 알려주는 제1 메모리(230)의 어드레스(M1 Dest Addr 2)를 상기 제2 레지스터 블록(320)에 보낸다.
도 4의 후반부에 도시되어 있는 바와 같이, 클럭의 첫 사이클 동안, 소스 데이터의 어드레스 (S2, 제2 메모리의 어드레스), 목적지 어드레스 (D2, 제1 메모리의 어드레스) 및 전송되어야 할 데이터의 카운트(2)를 상기 제2 프로세서(220)는 상기 제어기(330)에 보낸다. 이때 상기 제2 메모리(240)에 저장된 연산된 데이터는 상기 제2 메모리(240)로부터 상기 카운트 양만큼 읽혀져, 상기 제1 메모리(230)에 상기 제3 메모리(340)을 통하여 보내지게 된다. 계속해서, 클럭의 두번째 사이클 동안, 소스 데이터의 어드레스 (S2, 제2 메모리의 어드레스), 목적지 어드레스 (D2, 제1 메모리의 어드레스) 및 전송되어야 할 데이터의 카운트(1)를 상기 제2 프로세서(220)는 상기 제어기(330)에 보내게 되고, 카운트 값이 0로 바뀌면 데이터 전송은 끝나게 된다.
한편, 도 5의 A에 도시한 바와 같이 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 데이터를 전송하는 단계와 상기 제2 메모리(240)에서 상기 제1 메모리(230)로 데이터를 전송하는 단계가 겹치는 경우, 상기 아비터는 제2 시작명령 (Start 2)을 적절히 지연(Delay)시켜, 상기 제1 메모리(230)에서 상기 제2 메모리(240)로 데이터를 전송하는 단계와 상기 제2 메모리(240)에서 상기 제1 메모리(230)로 데이터를 전송하는 단계가 겹치지 않도록 적절히 조절한다.
본 발명에 따라, 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터를 송수신하기 위한 브리지 DMA 장치 사용시 시스템내에서 데이터 전송 속도를 빠르게 할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (19)

  1. 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 데이터의 송수신을 제어하는 디렉트 메모리 엑세스 장치에 있어서,
    상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 송신하기 위한 제1 전송정보를 저장하는 제1 레지스터 블록;
    상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 송신하기 위한 제2 전송정보를 저장하는 제2 레지스터 블록; 및
    상기 제1 전송정보 및 제2 전송정보에 기초하여 상기 제1 메모리와 상기 제2 메모리간에 데이터의 송수신을 제어하는 제어기를 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  2. 제1항에 있어서, 상기 디렉트 메모리 엑세스 장치는 상기 제어기의 제어 신호에 응답하여 상기 제1 제어신호 또는 제2 제어신호에 따른 데이터를 상기 제1 메모리 또는 상기 제2 메모리로부터 각각 수신하여 저장하는 제3 메모리를 더 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  3. 제2항에 있어서, 상기 제3 메모리는 래치회로인 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  4. 제2항에 있어서, 상기 디렉트 메모리 엑세스 장치는 상기 제어기의 제어 신호에 응답하여 상기 제3 메모리에 저장된 데이터를 순차적으로 전송시키기 위한 상기 제1 메모리 또는 상기 제2 메모리의 어드레스를 생성하는 어드레스 생성기를 더 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  5. 제1항에 있어서, 상기 제1 레지스터 블록은 상기 제1 메모리의 출발 어드레스를 포함하는 제1 어드레스 레지스터, 상기 제2 메모리의 도착 어드레스를 포함하는 제2 어드레스 레지스터, 및 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양을 포함하는 제1 카운트 레지스터를 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  6. 제5항에 있어서, 상기 제2 레지스터 블록은 상기 제2 메모리의 출발 어드레스를 포함하는 제3 어드레스 레지스터, 상기 제1 메모리의 도착 어드레스를 포함하는 제4 어드레스 레지스터, 및 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양을 포함하는 제2 카운트 레지스터를 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  7. 제6항에 있어서, 상기 제1 메모리의 출발 어드레스, 상기 제1 메모리의 도착 어드레스, 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양은 상기 제1 프로세서가 생성하고, 상기 제2 메모리의 출발 어드레스, 상기 제2 메모리의 도착 어드레스, 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양은 상기 제2 프로세서가 생성하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  8. 제1항에 있어서, 상기 제어기는 상기 제1 메모리에서 제2 메모리로 데이터 전송의 실행시점을 알리는 제1 시작 명령을 수신하는 제1 시작 레지스터 및 상기 제2 메모리에서 제1 메모리로 데이터 전송의 실행 시점을 알리는 제2 시작 명령을 수신하는 제2 시작 레지스터를 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  9. 제8항에 있어서, 상기 제어기는 상기 제1 메모리에서 제2 메모리로의 데이터 전송과 상기 제2 메모리에서 제1 메모리로의 데이터 전송이 겹치지 않도록 제2 시작 명령을 소정시간만큼 지연시키기 위한 아비터를 더 포함하는 것을 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  10. 제1항에 있어서, 상기 제1 프로세서는 마이크로 콘트롤러(MCU)이고, 상기 제2 프로세서는 디지털 신호 처리기(DSP)를 포함하는 것을 특징으로 하는 디렉트 메모리 엑세스 장치.
  11. 제1 프로세서;
    제2 프로세서;
    상기 제1 프로세서와 연결된 제1 메모리;
    상기 제2 프로세서와 연결된 제2 메모리;
    상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 송신하기 위한 제1 전송정보를 저장하는 제1 레지스터 블록;
    상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 송신하기 위한 제2 전송정보를 저장하는 제2 레지스터 블록; 및
    상기 제1 레지스터 블록 및 상기 제2 레지스터 블록으로부터 받은 전송정보 응답하여 상기 제1 메모리와 상기 제2 메모리간에 데이터의 송수신을 제어하는 제어기를 포함하는 것을 특징으로 하는 데이터 송수신 시스템.
  12. 제11항에 있어서, 상기 데이트 전송 시스템은 상기 제어기의 제어 신호에 응답하여 상기 제1 전송정보 또는 제2 전송정보에 따른 데이터를 상기 제1 메모리 또는 상기 제2 메모리로부터 각각 수신하여 전송하는 래치회로를 더 포함하는 것을 특징으로 하는 데이터 송수신 시스템.
  13. 제11항에 있어서, 상기 제1 레지스터 블록은 상기 제1 메모리의 출발 어드레스를 포함하는 제1 어드레스 레지스터, 상기 제2 메모리의 도착 어드레스를 포함하는 제2 어드레스 레지스터, 및 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양을 포함하는 제1 카운트 레지스터를 포함하고,
    상기 제2 레지스터 블록은 상기 제2 메모리의 출발 어드레스를 포함하는 제3 어드레스 레지스터, 상기 제1 메모리의 도착 어드레스를 포함하는 제4 어드레스 레지스터, 및 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양을 포함하는 제2 카운트 레지스터를 포함하는 것을 특징으로 하는 데이터 송수신 시스템.
  14. 제11항에 있어서, 상기 제1 프로세서는 마이크로 콘트롤러(MCU)이고, 상기 제2 프로세서는 디지털 신호 처리기(DSP)를 포함하는 것을 특징으로 하는 데이터 송수신 시스템.
  15. 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 디렉트 메모리 엑세스(DMA) 장치를 이용하여 데이터를 송수신하는 방법에 있어서,
    연산에 필요한 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 전송하기 위한 제1 전송정보를 생성하는 단계;
    상기 제1 전송정보에 응답하여 상기 제1 메모리에 저장된 데이터를 상기 제2 메모리에 송신하는 단계;
    상기 제2 메모리에 저장된 데이터를 이용하여 상기 제2 프로세서를 이용하여연산하는 단계;
    상기 연산된 데이터를 상기 제2 메모리에 저장하는 단계;
    상기 연산되어 상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 전송시키기 위한 제2 전송정보를 수신하는 단계; 및
    상기 제2 전송정보에 응답하여 연산된 데이터를 상기 제1 메모리에 전송하는 것을 포함하는 것을 특징으로 데이터 송수신 방법.
  16. 제15항에 있어서, 상기 제1 전송정보는 상기 제1 메모리의 출발 어드레스, 상기 제2 메모리의 도착 어드레스, 및 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양을 포함하는 것을 특징으로 하는 데이터 송수신 방법.
  17. 제16항에 있어서, 상기 제2 전송정보는 상기 제2 메모리의 출발 어드레스, 상기 제1 메모리의 도착 어드레스, 및 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양를 포함하는 것을 특징으로 하는 데이터 송수신 방법.
  18. 제17항에 있어서, 상기 제1 메모리의 출발 어드레스, 상기 제1 메모리의 도착 어드레스, 상기 제1 메모리에서 상기 제2 메모리로 전송될 데이터의 양은 상기 제1 프로세서가 생성하고, 상기 제2 메모리의 출발 어드레스, 상기 제2 메모리의 도착 어드레스, 상기 제2 메모리에서 상기 제1 메모리로 전송될 데이터의 양은 상기 제2 프로세서가 생성하는 것을 특징으로 하는 데이터 송수신 방법.
  19. 제1 프로세서와 연결된 제1 메모리와 제2 프로세서와 연결된 제2 메모리간에 디렉트 메모리 엑세스(DMA) 장치를 이용하여 데이터를 송수신하는 방법에 있어서,
    상기 제1 메모리에 저장된 데이터를 상기 제2 메모리로 전송하기 위한 제1전송정보를 생성하는 단계;
    상기 제1 메모리에 저장된 데이터를 상기 제1 메모리로부터 읽어 제3 메모리에 저장하는 단계;
    상기 제1 전송정보에 기초하여 상기 제3 메모리에 저장된 데이터를 상기 제2 메모리에 송신하는 단계;
    상기 제2 메모리에 저장된 데이터를 상기 제1 메모리로 전송하기 위한 제2전송정보를 생성하는 단계;
    상기 제2 메모리에 저장된 데이터를 상기 제2 메모리로부터 읽어 상기 제3 메모리에 저장하는 단계; 및
    상기 제2 전송정보에 기초하여 상기 제3 메모리에 저장된 데이터를 상기 제1 메모리에 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 송수신 방법.
KR1020040053745A 2004-07-10 2004-07-10 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 KR100606163B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040053745A KR100606163B1 (ko) 2004-07-10 2004-07-10 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법
US11/175,498 US20060010263A1 (en) 2004-07-10 2005-07-06 Direct memory access (DMA) devices, data transfer systems including DMA devices and methods of performing data transfer operations using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040053745A KR100606163B1 (ko) 2004-07-10 2004-07-10 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20060004829A true KR20060004829A (ko) 2006-01-16
KR100606163B1 KR100606163B1 (ko) 2006-08-01

Family

ID=35542662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040053745A KR100606163B1 (ko) 2004-07-10 2004-07-10 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법

Country Status (2)

Country Link
US (1) US20060010263A1 (ko)
KR (1) KR100606163B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653675B2 (en) * 2005-08-08 2010-01-26 Freescale Semiconductor, Inc. Convolution operation in a multi-mode wireless processing system
US20070033349A1 (en) * 2005-08-08 2007-02-08 Freescale Semiconductor, Inc. Multi-mode wireless processor interface
US7734674B2 (en) * 2005-08-08 2010-06-08 Freescale Semiconductor, Inc. Fast fourier transform (FFT) architecture in a multi-mode wireless processing system
US7802259B2 (en) * 2005-08-08 2010-09-21 Freescale Semiconductor, Inc. System and method for wireless broadband context switching
US8140110B2 (en) * 2005-08-08 2012-03-20 Freescale Semiconductor, Inc. Controlling input and output in a multi-mode wireless processing system
JP7326863B2 (ja) * 2019-05-17 2023-08-16 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
CN1137442C (zh) * 1995-06-15 2004-02-04 英特尔公司 集成pci至pci桥的i/o处理器的体系结构
KR19990043773A (ko) * 1997-11-29 1999-06-15 정선종 직접 메모리 액세스 제어기
US6223230B1 (en) * 1998-06-15 2001-04-24 Sun Microsystems, Inc. Direct memory access in a bridge for a multi-processor system
US6134623A (en) * 1998-08-21 2000-10-17 International Business Machines Corporation Method and system for taking advantage of a pre-stage of data between a host processor and a memory system
US6473086B1 (en) * 1999-12-09 2002-10-29 Ati International Srl Method and apparatus for graphics processing using parallel graphics processors
WO2001063438A1 (en) 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller
US6816750B1 (en) * 2000-06-09 2004-11-09 Cirrus Logic, Inc. System-on-a-chip
US20020161941A1 (en) * 2001-04-30 2002-10-31 Sony Corporation And Electronics, Inc System and method for efficiently performing a data transfer operation

Also Published As

Publication number Publication date
US20060010263A1 (en) 2006-01-12
KR100606163B1 (ko) 2006-08-01

Similar Documents

Publication Publication Date Title
JP2004171209A (ja) 共有メモリデータ転送装置
US20020184453A1 (en) Data bus system including posted reads and writes
JP6602579B2 (ja) 半導体装置およびシステム
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
KR100606163B1 (ko) 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법
JP6106986B2 (ja) 演算処理装置、情報処理装置及び割込制御方法
JP2004030161A (ja) コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
JP2005303718A (ja) マトリックス状バス接続システム
JPH11232211A (ja) Dma制御装置及びdma制御方法
JP2009163531A (ja) 割り込み管理機構およびマイクロコンピュータ
JP2006285872A (ja) マルチcpuシステム
TW394887B (en) ATAPI interface control circuit and DVD player for this interfere control circuit
JP2002082813A (ja) プログラムロジック装置
KR20100063219A (ko) 시스템 온 칩에서 비트 단위의 데이터 쓰기 방법 및 장치
JP7087419B2 (ja) データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法
JP2006092077A (ja) バスシステム
CN109558076A (zh) 一种可配置的虚拟spi-flash
JP2003122701A (ja) インターフェース及び入出力デバイス
JP2004206241A (ja) データ転送制御方法及びその回路
JP2017199287A (ja) 情報処理装置および情報処理方法
JP2000003285A (ja) 割り込み処理方法および割り込み回路
JP2003256357A (ja) データ処理装置及びデータ処理方法
JP2005182312A (ja) デバイス制御回路
JP2009277004A (ja) データ転送装置及びデータ転送システム
JP2010067167A (ja) データ転送装置

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
LAPS Lapse due to unpaid annual fee