KR20050043303A - 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치 - Google Patents

다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치 Download PDF

Info

Publication number
KR20050043303A
KR20050043303A KR1020030078139A KR20030078139A KR20050043303A KR 20050043303 A KR20050043303 A KR 20050043303A KR 1020030078139 A KR1020030078139 A KR 1020030078139A KR 20030078139 A KR20030078139 A KR 20030078139A KR 20050043303 A KR20050043303 A KR 20050043303A
Authority
KR
South Korea
Prior art keywords
data
processor
bus
processors
dma controller
Prior art date
Application number
KR1020030078139A
Other languages
English (en)
Other versions
KR100630071B1 (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 KR1020030078139A priority Critical patent/KR100630071B1/ko
Priority to US10/844,805 priority patent/US20040225760A1/en
Priority to CNB2004100472545A priority patent/CN1307569C/zh
Publication of KR20050043303A publication Critical patent/KR20050043303A/ko
Application granted granted Critical
Publication of KR100630071B1 publication Critical patent/KR100630071B1/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

Abstract

본 발명은 제1 프로세서와 제2 프로세서의 다중 프로세서를 포함하고 상기 제1 및 제2 프로세서에 각각 관련된 제 1 및 제2 로컬 메모리를 구비하는 제어장치에서 상기 프로세서간 데이터를 전송하는 방법에 있어서, 상기 제1 프로세서와 제1 로컬 메모리 간의 데이터의 전송을 위한 제1 버스와 상기 제2 프로세서와 제2 로컬 메모리 간의 데이터의 전송을 위한 제2 버스에 대하여 마스터로 동작하며 상기 2개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 구비하는 단계와, 상기 제1 프로세서 및 제2 프로세서중 어느 하나가 다른 프로세서에게 데이터를 전송하기 위해 DMA 설정 데이터를 포함하는 데이터 전송 요청을 상기 DMA 컨트롤러에 전송하는 단계와, 상기 DMA 컨트롤러가 상기 DMA 설정 데이터에 따라 상기 제1 버스 및 상기 제2 버스가 점유 상태인지를 모니터링하고, 이 제1 버스 및 제2 버스가 점유 상태가 아닌 동안에 데이터 전송을 수행하는 단계를 포함한다.

Description

다중 프로세서 환경에서의 DMA를 이용한 고속 데이터 전송 방법 및 그 장치{HIGH SPEED DATA TRANSMISSION METHOD USING DIRECT MEMORY ACCESS METHOD IN MULTI-PROCESSORS CONDITION AND APPARATUS THEREFOR}
본 발명은 다중 프로세서 환경에서의 DMA(Direct Memory Access)를 이용한 고속 데이터 전송 방법 및 그 장치에 관한 것이다.
이동 통신의 기술이 점점 더 음성 데이터 처리에서 동영상 등과 같은 멀티미디어(Multimedia) 데이터 처리가 중심으로 변경되면서 이동통신 단말기에서 처리해야 하는 데이터의 처리의 복잡도(Complexity)가 커지고 있다. 그리하여 근래에는 기존의 호를 처리하기 위한 호 소프트웨어(Call SW)를 처리하는 싱글(Single) 프로세서 구조에서 2개 이상의 프로세서를 포함하는 다중 프로세서 구조로 그 구조(Architecture)가 변해가고 있다.
다중 프로세서 구조를 가지게 되면, 전술한 것과 같은 시스템에 사용되는 프로세서는 예컨대, 시간에 민감한(Time Critical) 이동 통신 기능을 수행하는 모뎀 프로세서(Modem Processor)와 멀티미디어 데이터 처리를 수행하기 위한 높은 컴퓨팅 능력(Computing Power)을 요구하는 어플리케이션 프로세서(Application Processor)로 나뉘어 진다. 이러한 2개의 프로세서에서 동작하는 소프트웨어도 나뉘어 지게 된다. 이러한 구조에서 다중 프로세서간의 데이터 통신 기능은 단말 기능 중에 중요한 부분으로 꼭 확보되어야 하는 부분이이다.
대부분의 소프트웨어 데이터는 메모리 상에 저장되므로, 다중 프로세서 간에서도 메모리를 통해 데이터를 전송해야 할 필요가 있다. 현재는 사용되는 다중 프로세서 구조는 모뎀 프로세서와 어플리케이션 프로세서가 하나로 되어 있는 원칩(One Chip)이 아닌 다중 칩(Multi Chip)으로 되어 있으므로 모뎀 프로세서와 어플리케이션 프로세서는 어플리케이션 프로세서에 대해 고속 데이터 처리를 수행할 수 있는 구조를 가지고 있지 못하다.
이러한 구조에서는 일반적으로 어플리케이션 프로세서와 모뎀 프로세서에서 접근 가능한 메모리를 모뎀 외부의 주변 장치(Peripheral)로 제공하는 형태로 되어 있다. 즉, 외부에서 접근 가능한 형태의 메모리라고 볼 수 있다.
도 1은 종래 기술에 따른 다중 프로세서에서의 메모리 판독을 설명하기 위한 도면이다.
도 1을 참조하면, 제어장치는 모뎀 기능을 위한 모뎀 프로세서부(10)와 어플리케이션 처리를 위한 어플리케이션 프로세서부(20)를 포함한다. 모뎀 프로세서부(10)는 모뎀 프로세서(12), 모뎀 프로세서(12)에 관련된 데이터를 저장하는 로컬 메모리(16) 및 듀얼 포트 메모리(28)에 신속하고 용이하게 액세스하기 위한 DMA 컨트롤러(14)를 포함한다. 유사하게, 어플리케이션 프로세서부(20)는 어플리케이션 프로세서(22), 어플리케이션 프로세서(22)와 관련된 데이터를 저장하는 로컬 메모리(26) 및 듀얼 포트 메모리(60)에 신속하고 용이하게 액세스하기 위한 DMA(Direct Memory Access) 컨트롤러(14)를 포함한다. 그리고 어플리케이션 프로세서부(20)는 모뎀 프로세서부(10)와의 데이터 송수신에 사용되는 듀얼 포트 메모리(60)를 포함한다.
이 듀얼 포트 메모리(60)는 모뎀 프로세서부(10)와 어플리케이션 프로세서부(20) 사이에는 공유 메모리(Shared Memory)로서 동작한다. 모뎀 프로세서(12)의 견지에서는 듀얼 포트 메모리(60)는 외부에 있는 메모리이다. 따라서, 모뎀 프로세서(12)는 듀얼 포트 메모리(60)에 저장되어 있는 데이터를 판독하는 속도가 느리다. 만약 DMA 컨트롤러가 없으면 모뎀 프로세서(12) 또는 어플리케이션 프로세서(22)가 데이터 전송을 위해서 전송할 데이터를 듀얼 포트 메모리(60)에 복사해야 하고, 다시 어플리케이션 프로세서(22) 또는 모뎀 프로세서(12)가 듀얼 포트 메모리(60)에 저장된 데이터를 각 로컬 메모리(16,60)에 복사해야 한다.
한편, 모뎀 프로세서(12) 또는 어플리케이션 프로세서(220)는 데이터 전송에 참여 하지 않기 위해서 DMA 방식을 사용할 수 있다. DMA 방식을 이용한 데이터 전송에서는 DMA 컨트롤러(14,24)가 듀얼 포트 메모리(60)로부터 데이터를 복사하여 각 로컬 메모리(16,60)에 저장한다. 그런데, 각 프로세서에 연결된 인터럽트 컨트롤러는 데이터 전송 요청한 프로세서에게만 데이터 전송 완료를 알린다. 따라서, 데이터를 전송받은 프로세서에게 데이터 전송 완료를 알리기 위해 데이터 전송 요청한 프로세서가 데이터 전송 완료를 알려야 하는 문제점이 있었다.
따라서, 본 발명의 목적은 다중 프로세서를 포함하는 제어 장치에서 다중 프로세서간 데이터 송수신을 신속하게 하는 방법 및 그 제어 장치를 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명은, 제1 프로세서와 제2 프로세서의 다중 프로세서를 포함하는 제어장치에 있어서, 상기 제1 및 제2 프로세서에 각각 관련된 제1 및 제2 로컬 메모리와, 상기 제1 프로세서와 제1 로컬 메모리 간의 데이터의 전송을 위한 제1 버스와, 상기 제2 프로세서와 제2 로컬 메모리 간의 데이터의 전송을 위한 제2 버스와, 상기 제1 버스와 제2 버스에 대하여 마스터로 동작하며 상기 2개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 포함한다.
또한, 본 발명은, 제1 프로세서와 제2 프로세서의 다중 프로세서를 포함하고 상기 제1 및 제2 프로세서에 각각 관련된 제1 및 제2 로컬 메모리를 구비하는 제어장치에서 상기 프로세서간 데이터를 전송하는 방법에 있어서, 상기 제1 프로세서와 제1 로컬 메모리 간의 데이터의 전송을 위한 제1 버스와 상기 제2 프로세서와 제2 로컬 메모리 간의 데이터의 전송을 위한 제2 버스에 대하여 마스터로 동작하며 상기 2개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 구비하는 단계와, 상기 제1 프로세서 및 제2 프로세서중 어느 하나가 다른 프로세서에게 데이터를 전송하기 위해 DMA 설정 데이터를 포함하는 데이터 전송 요청을 상기 DMA 컨트롤러에 전송하는 단계와, 상기 DMA 컨트롤러가 상기 DMA 설정 데이터에 따라 상기 제1 버스 및 상기 제2 버스가 점유 상태인지를 모니터링하고, 이 제1 버스 및 제2 버스가 점유 상태가 아닌 동안에 데이터 전송을 수행하는 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 이하 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
본 발명은 DMA 컨트롤러(Multi-Bus DMA Controller)를 통해서 고속 데이터를 전송할 수 있도록 한다. 이를 위해 DMA Controller는 다중 프로세서에 연결된 복수개의 버스를 제어할 수 있도록 설계된다. 구체적으로 이 다중 버스 DMA 컨트롤러는 다중 프로세서에서 각각 사용하는 복수개의 버스의 마스터로서 동작한다. 다중 버스 DMA 컨트롤러는 다중 프로세서의 각 프로세서에서 독립적으로 사용하는 각 인터럽트 컨트롤러(Interrupt Controller)에 연결되어 있다. 그에 따라 다중 버스 DMA 컨트롤러는 다중 프로세서중 하나의 프로세서로부터 다른 프로세서로의 데이터 전송 요청에 따라 데이터를 전송하였을 때 다른 프로세서에 데이터 전송이 완료되었음을 알리도록 하여 다중 프로세서 각각에서 수행해야 하는 동작을 수행하도록 한다.
이와 같이 DMA 컨트롤러를 사용하면, 데이터를 한쪽 버스에 연결되어 있는 메모리에서 다른 쪽 버스에 연결되어 있는 메모리로 복사할 때, 다중 프로세서의 어느 쪽 프로세서도 제어할 필요 없이 데이터 전송을 수행할 수 있다. 이렇게 하면 분리된 외부 메모리 이외에 공유 메모리를 구비할 필요가 없게 된다.
도 2는 본 발명에 따른 DMA 컨트롤러를 포함하는 다중 프로세서를 포함하는 제어 장치의 블록 구성도를 나타낸다. 도 2를 참조하면, 본 발명에 따라 다중 프로세서 제어 장치(100)는 모뎀부에 대한 제어를 담당하는 제1 프로세서(110)와 어플리케이션에 대한 제어를 담당하는 제2 프로세서(110,140), 이들 2개의 프로세서에 각각 관련된 제1 및 제2 로컬 메모리(120,150)를 포함한다. 제1 프로세서(110)와 제1 로컬 메모리(120) 간의 데이터의 전송을 위한 제1 버스(160)와 제2 프로세서(140)와 제2 로컬 메모리(150) 간의 데이터의 전송을 위한 제2 버스(170) 그리고, 제1 버스와 제2 버스에 대하여 마스터로 동작하며 2개의 로컬 메모리(120,150)에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러(130)를 포함한다.
이와 같이, 다중 버스 DMA 컨트롤러(130)를 사용하는 본 발명에 따른 다중 프로세서 제어 장치(100)는 종래 기술에서와 같은 공유 메모리(Shared Memory)를 사용할 필요가 없다. 왜냐하면, 다중 버스 DMA 컨트롤러(130)의 DMA 채널(Channel)을 통해서 하나의 프로세서의 로컬 메모리에서 다른 프로세서의 로컬 메모리로 복사를 수행할 수 있기 때문이다.
여기서, 본 발명에 사용되는 다중 버스 DMA 컨트롤러(130)의 동작을 살펴보면 다음과 같다.
우선, 제1 프로세서(110)의 제1 로컬 메모리(120)에서 제2 프로세서(140)의 제2 로컬 메모리(150)로 데이터를 전송한다고 가정하면, 데이터를 전송하려는 제1 프로세서(110)는 전송할 데이터가 위치하고 있는 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus)를 지정한다. 또한, 데이터를 전송하려는 제1 프로세서(110)는 데이터가 전송되어 저장될 목적지 어드레스(Destination Address) 및 목적지 메모리 버스(Destination Memory Bus)를 지정한다. 그리고, 제1 프로세서(110)는 다중 버스 DMA 컨트롤러(130)로 해당 데이터에 대한 전송을 요청한다. 이때, 해당 데이터의 전송을 요청하는 데이터 전달 요청에는 전송할 데이터가 위치하고 있는 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus)와 데이터가 전송되어 저장될 목적지 어드레스(Destination Address) 및 목적지 메모리 버스(Destination Memory Bus)로 이루어진 DMA 설정 데이터를 포함한다.
그리고, 다중 버스 DMA 컨트롤러(130)는 제1 프로세서(110)로부터 제1 로컬 메모리(120)에 있는 데이터를 제2 프로세서(140)의 제2 로컬 메모리(150)에 전송하도록 하는 데이터 전달 요청이 있으면, 제1 프로세서(110)로부터의 데이터 전달 요청에 포함되어 있는 DMA 설정 데이터를 판독한다. 여기서, DMA 설정 데이터는 전송할 데이터가 위치하고 있는 데이터의 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus), 데이터가 전송되어 저장될 목적 어드레스(Destination Address) 및 목적 메모리 버스(Destination Memory Bus)를 포함하며, 이에 한정되지 않는다.
그리고, 다중 버스 DMA 컨트롤러(130)는 DMA 설정 데이터에 포함되어 있는 전송할 데이터가 위치하고 있는 데이터의 소스 어드레스에 따라 해당 로컬 메모리의 위치로부터 데이터를 판독한다. 그리고 다중 버스 DMA 컨트롤러(130)는 판독한 데이터를 저장할 로컬 메모리의 목적 어드레스 위치에 기록하기 위해 목적 데이터 버스가 점유(busy) 상태인지를 체크한다. 여기에서 점유 상태는 데이터 버스가 데이터를 전달하는데 사용되고 있음을 의미한다. 만약 목적 데이터 버스가 점유 상태가 아니거나 또는 점유 상태를 벗어나는 경우, 다중 버스 DMA 컨트롤러(130)는 전달 데이터를 목적 메모리의 목적 어드레스 위치에 기록하기 시작한다. 즉, 다중 버스 DMA 컨트롤러(130)는 소스/목적 버스(Source/Destination Bus)가 점유 상태인지를 모니터링하고, 이 소스/목적 버스가 점유 상태가 아닌 동안에 전송을 수행한다. 그리고, 다중 버스 DMA 컨트롤러(130)는 소스 어드레스로부터의 데이터가 목적 어드레스에 모두 기록될 때까지 전송을 위한 소스 데이터가 기록된 소스 어드레스와 전송될 소스 데이터를 기록할 목적 어드레스를 추가시킨다.
그리고, 다중 버스 DMA 컨트롤러(130)는 데이터의 전송이 끝나면, 소스/목적 버스에 연결되어 있는 제1 및 제2 프로세서(110,140)에 전송이 완료된 사실을 인터럽트를 이용하여 알린다. 이 인터럽트는 제1 및 제2 프로세서(110,140)의 인터럽트 컨트롤러(Interrupt Controller)에 전달되어 각각의 프로세서가 DMA 복사가 수행되고 난 후에 수행해야할 동작을 수행할 수 있도록 할 수 있다.
이러한 다중 버스 DMA 컨트롤러(130)의 동작을 도 3을 참조하여 설명한다. 도 3은 본 발명의 실시예에 따른 DMA 컨트롤러의 제어 흐름도를 나타낸 도면이다.
본 발명의 실시예에 따르면 데이터를 전송하고자 하는 프로세서는 제1 프로세서(110)로 하고, 그 데이터가 위치하는 메모리는 제1 로컬 메모리)(120)라고 가정한다. 또한, 데이터가 전송될 프로세서는 제2 프로세서(140)로 하고 그 목적 메모리는 제2 로컬 메모리(150)라고 가정한다.
우선, 제1 프로세서(110)는 전송할 데이터가 위치하고 있는 제1 메모리(120)의 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus)를 지정한다. 또한, 제1 프로세서(110)는 데이터가 전송되어 저장될 제2 로컬 메모리(150)의 목적 어드레스(Destination Address) 및 목적 메모리 버스(Destination Memory Bus)를 지정한다. 그리고, 제1 프로세서(110)는 다중 버스 DMA 컨트롤러(130)에게 해당 데이터에 대한 전송을 요청한다.
도 3을 참조하면, 우선 다중 버스 DMA 컨트롤러(130)는 단계 204에서 제1 프로세서(110)로부터 제1 로컬 메모리(120)에 있는 데이터를 제2 프로세서의 제2 로컬 메모리에 전송하도록 요구하는 요청을 수신하는지를 판단한다.
그리고, 다중 버스 DMA 컨트롤러(130)는 단계 204에서 제1 프로세서(110)로부터 데이터 전송의 요청이 있으면 제1 프로세서(110)로부터의 데이터 전송 요청에 포함되어 있는 DMA 설정 데이터를 판독한다. 여기서, DMA 설정 데이터는 전송할 데이터가 위치하고 있는 제1 로컬 메모리(120)의 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus), 데이터가 전송되어 저장될 제2 로컬 메모리(150)의 목적 어드레스(Destination Address) 및 목적 메모리 버스(Destination Memory Bus)에 대한 정보를 포함한다.
여기에서 데이터의 소스 어드레스는 데이터를 판독할 제1 로컬 메모리(120)의 주소이고, 데이터의 목적 어드레스는 데이터를 기록할 제2 로컬 메모리(150)의 주소이다. 제1 버스(160)는 제1 로컬 메모리(120)에 연결된 버스이고, 제2 버스(170)는 제2 로컬 메모리에 연결된 버스이다. 본 발명에 따라 다중 버스 DMA 컨트롤러(130)는 제1 버스 및 제2 버스(160,170)에 모두 연결되어 있다. 그리고 DMA 컨트롤러(130)는 이들 버스의 마스터로 동작하여, 이상과 같은 두개의 버스 상에서의 데이터의 송신을 제어할 수 있다.
그리고, 다중 버스 DMA 컨트롤러(130)는 단계 208에서 제1 버스(160)의 상태가 점유 상태인지를 판단한 후 점유 상태가 아니면, 단계 210에서 DMA 설정 데이터에 포함되어 있는 전송할 데이터가 위치하고 있는 데이터의 소스 어드레스에 따라 제1 로컬 메모리(120)의 위치로부터 데이터를 판독한다.
그리고, 다중 버스 DMA 컨트롤러(130)는 단계 212에서 판독한 데이터를 저장하기 위하여 제2 버스(170)의 상태가 점유 상태인지를 판단한다. 판단 결과, 점유 상태가 아니면, 단계 214에서 제2 로컬 메모리(150)의 목적 어드레스 위치에 기록한다. 여기에서 점유 상태는 데이터 버스가 데이터를 전달하는데 사용되고 있음을 의미한다. 즉, 다중 버스 DMA 컨트롤러(130)는 소스/목적 버스(Source/Destination Bus)(예컨대, 제1, 제2 버스)가 점유 상태인지를 모니터링하고, 이 소스/목적 버스가 점유 상태가 아닌 동안에 전송을 수행한다.
그리고, 다중 버스 DMA 컨트롤러(130)는 단계 216에서 제1 로컬 메모리(120)로부터 제2 로컬 메모리(150)로의 데이터 전송이 완료되었는 지를 판단한다. 다중 버스 DMA 컨트롤러(130)는 제1 프로세서(110)로부터의 데이터 전송 요청에 포함되어 있는 DMA 설정 데이터에 따라 이러한 판단을 행한다. DMA 설정 데이터에는 소스 데이터 길이(Source Data Length)에 대한 정보가 포함되어 있기 때문에, 다중 버스 DMA 컨트롤러(130)는 제1 로컬 메모리(120)로부터 제2 로컬 메모리(150)로 전송하고자 하는 데이터가 모두 전송되었는 지를 알 수 있다.
제1 로컬 메모리(120)로부터 제2 로컬 메모리(150)로 전송하고자 하는 데이터가 모두 전송되지 않았으면 다중 버스 DMA 컨트롤러(130)는 단계 220에서 소스 어드레스로부터의 데이터가 목적 어드레스에 모두 기록될 때까지 소스 어드레스와 목적 어드레스를 증가시킨다. 즉, 다중 버스 DMA 컨트롤러(130)는 전송을 위한 데이터를 모두 한번에 버스에 실어 전송하는 것이 아니고, 일정한 단위로 나누어 전송하고 이어서 다음 순번의 데이터를 전송한다. 예를 들어 설명하자면, 다중 버스 DMA 컨트롤러(130)는 주소 102의"11110000" 및 주소 103의 "00001111"이라는 데이터를 전송할 때, 소스 데이터의 시작 주소인 주소 102에 저장된 데이터"11110000"를 먼저 전송하고 다시 소스 데이터의 시작 주소를 증가시켜 103에 저장된 데이터 "11110000"을 전송한다. 만약 16비트의 데이터를 한번에 전송한다면, 다중 버스 DMA 컨트롤러(130)는 소스 데이터의 시작 주소와 데이터의 전송 단위만큼의 주소 증가분을 더하여, 다시 소스 데이터의 시작 주소를 결정한다.
DMA 컨트롤러(130)는 단계 218에서 데이터의 전송이 끝나면, 소스/목적 버스에 연결되어 있는 제1 및 제2 프로세서(110,140)에 전송이 완료된 사실을 인터럽트를 이용하여 알린다. 이 인터럽트는 양쪽 프로세서(110,140)의 인터럽트 컨트롤러(Interrupt Controller)에 전달되어 각 프로세서가 DMA 복사가 수행되고 난 후에 수행해야할 동작을 수행할 수 있도록 할 수 있다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 예컨대, 본 발명의 실시예에서는 다중 프로세서가 2개의 프로세서를 포함하는 것으로 설명하였지만 2개 이상의 프로세서를 포함할 수 있고, 그에 따라 다중 버스 DMA 컨트롤러가 각 프로세서에 연결된 버스에 대하여 마스터로서 동작하는 것은 당업자에게 명백하다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해져야 한다.
본 발명에 따르면, 다중 버스 DMA 컨트롤러는 다중 프로세서에서 각각 사용하는 두 개의 버스의 마스터로서 동작하도록 하여 데이터를 한쪽 버스에 연결되어 있는 메모리에서 다른 쪽 버스에 연결되어 있는 메모리로 복사할 때, 다중 프로세서의 어느 쪽 프로세서도 제어할 필요 없이 데이터 전송을 수행할 수 있다. 이와 같이 구성하면, 분리된 외부 메모리 이외에 공유 메모리를 구비할 필요가 없게 된다.
도 1은 종래 기술에 따른 다중 프로세서에서의 메모리 판독을 설명하기 위한 도면,
도 2는 본 발명에 따른 DMA 컨트롤러를 포함하는 다중 프로세서를 포함하는 제어 장치의 블록 구성도,
도 3은 본 발명의 실시예에 따른 DMA 컨트롤러의 제어 흐름도를 나타낸 도면.

Claims (10)

  1. 제1 프로세서와 제2 프로세서의 다중 프로세서를 포함하는 제어장치에 있어서,
    상기 제1 및 제2 프로세서에 각각 관련된 제1 및 제2 로컬 메모리와,
    상기 제1 프로세서와 제1 로컬 메모리 간의 데이터의 전송을 위한 제1 버스와
    상기 제2 프로세서와 제2 로컬 메모리 간의 데이터의 전송을 위한 제2 버스와,
    상기 제1 버스와 제2 버스에 대하여 마스터로 동작하며 상기 2개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 포함하는 것을 특징으로 하는 다중 프로세서 제어 장치.
  2. 제1항에 있어서, 상기 제1 프로세서는 모뎀부에 대한 제어를 담당하고, 상기 제2 프로세서는 어플리케이션에 대한 제어를 담당하는 것을 특징으로 하는 다중 프로세서를 포함하는 제어 장치.
  3. 제1항에 있어서, 상기 제1 프로세서 및 제2 프로세서는 서로에 대해 데이터를 전송하기 위해 DMA 설정 데이터를 포함하는 데이터 전송 요청을 상기 DMA 컨트롤러에 전송하는 것을 특징으로 하는 제어 장치.
  4. 제3항에 있어서, 상기 DMA 설정 데이터는 전송할 데이터가 위치하고 있는 로컬 메모리의 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus), 데이터가 전송되어 저장될 로컬 메모리의 목적 어드레스(Destination Address) 및 목적 메모리 버스(Destination Memory Bus)에 대한 정보중 적어도 어느 하나를 포함하는 것을 특징으로 하는 제어 장치.
  5. 제4항에 있어서, 상기 DMA 컨트롤러는 데이터의 전송이 끝나면, 제1 및 제2 버스에 연결되어 있는 제1 및 제2 프로세서에 전송이 완료된 사실을 알리는 것을 특징으로 하는 제어 장치.
  6. 제1 프로세서와 제2 프로세서의 다중 프로세서를 포함하고 상기 제1 및 제2 프로세서에 각각 관련된 제1 및 제2 로컬 메모리를 구비하는 제어장치에서 상기 프로세서간 데이터를 전송하는 방법에 있어서,
    상기 제1 프로세서와 제1 로컬 메모리 간의 데이터의 전송을 위한 제1 버스와 상기 제2 프로세서와 제2 로컬 메모리 간의 데이터의 전송을 위한 제2 버스에 대하여 마스터로 동작하며 상기 2개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 구비하는 단계와,
    상기 제1 프로세서 및 제2 프로세서중 어느 하나가 다른 프로세서에게 데이터를 전송하기 위해 DMA 설정 데이터를 포함하는 데이터 전송 요청을 상기 DMA 컨트롤러에 전송하는 단계와,
    상기 DMA 컨트롤러가 상기 DMA 설정 데이터에 따라 상기 제1 버스 및 상기 제2 버스가 점유 상태인지를 모니터링하고, 이 제1 버스 및 제2 버스가 점유 상태가 아닌 동안에 데이터 전송을 수행하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  7. 제6항에 있어서, 상기 DMA 설정 데이터는 전송할 데이터가 위치하고 있는 로컬 메모리의 소스 어드레스(Source Address), 소스 데이터 길이(Source Data Length), 소스 메모리 버스(Source Memory Bus), 데이터가 전송되어 저장될 로컬 메모리의 목적 어드레스(Destination Address) 및 목적 메모리 버스(Destination Memory Bus)에 대한 정보중 적어도 어느 하나를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  8. 제6항에 있어서, 상기 제1 프로세서는 모뎀부에 대한 제어를 담당하고, 상기 제2 프로세서는 어플리케이션에 대한 제어를 담당하는 것을 특징으로 하는 데이터 전송 방법.
  9. 제6항에 있어서, 상기 DMA 컨트롤러가 데이터의 전송이 끝나면, 제1 및 제2 버스에 연결되어 있는 제1 및 제2 프로세서에 전송이 완료된 사실을 알리는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  10. 적어도 2개 이상의 프로세서의 다중 프로세서를 포함하는 제어장치에 있어서,
    상기 적어도 2개 이상의 각 프로세서에 각각 관련된 복수개의 로컬 메모리와,
    상기 적어도 2개 이상의 각 프로세서와 그의 각 로컬 메모리 간의 데이터의 전송을 위한 복수개의 버스와,
    상기 복수개의 각 버스에 대하여 마스터로 동작하며 상기 복수개의 로컬 메모리에 대한 직접 액세스 동작이 가능한 다중 버스(Multi-Bus) DMA 컨트롤러를 포함하는 것을 특징으로 하는 다중 프로세서 제어 장치.
KR1020030078139A 2003-05-11 2003-11-05 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치 KR100630071B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020030078139A KR100630071B1 (ko) 2003-11-05 2003-11-05 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치
US10/844,805 US20040225760A1 (en) 2003-05-11 2004-05-13 Method and apparatus for transferring data at high speed using direct memory access in multi-processor environments
CNB2004100472545A CN1307569C (zh) 2003-11-05 2004-05-28 在多处理器环境下使用直接存储器存取的高速传递数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030078139A KR100630071B1 (ko) 2003-11-05 2003-11-05 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20050043303A true KR20050043303A (ko) 2005-05-11
KR100630071B1 KR100630071B1 (ko) 2006-09-27

Family

ID=33411802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030078139A KR100630071B1 (ko) 2003-05-11 2003-11-05 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치

Country Status (3)

Country Link
US (1) US20040225760A1 (ko)
KR (1) KR100630071B1 (ko)
CN (1) CN1307569C (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610061B2 (en) * 2003-09-20 2009-10-27 Samsung Electronics Co., Ltd. Communication device and method having a common platform
JP2005346164A (ja) * 2004-05-31 2005-12-15 Toshiba Corp データ処理装置およびデータ転送制御方法
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
KR100766973B1 (ko) * 2006-02-24 2007-10-15 부산대학교 산학협력단 Rfid 판독기능 및 인터넷 통신기능이 통합된 장치 및그 방법
CN101291479B (zh) * 2007-04-17 2012-09-26 中兴通讯股份有限公司 一种计算机与基于ap架构的智能移动终端的通信方法
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US20090089515A1 (en) * 2007-10-02 2009-04-02 Qualcomm Incorporated Memory Controller for Performing Memory Block Initialization and Copy
EP2564322A4 (en) * 2010-04-30 2017-03-08 Hewlett-Packard Enterprise Development LP Management data transfer between processors
KR101702374B1 (ko) * 2010-05-19 2017-02-06 삼성전자주식회사 멀티 프로세서 장치 및 그것의 인터 프로세스 통신 방법
CN102866971B (zh) * 2012-08-28 2015-11-25 华为技术有限公司 传输数据的装置、系统及方法
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
CN105404596B (zh) * 2015-10-30 2018-07-20 华为技术有限公司 一种数据传输方法、装置及系统
CN106815085B (zh) * 2016-12-30 2020-05-05 Oppo广东移动通信有限公司 一种消息处理方法,及终端设备
CN109189472A (zh) * 2018-08-06 2019-01-11 北京电子工程总体研究所 一种指令和数据交互的方法、计算机设备及存储介质
JP7257772B2 (ja) * 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 半導体装置を用いるシステム
CN111401541A (zh) * 2020-03-10 2020-07-10 湖南国科微电子股份有限公司 一种数据传输控制方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60229160A (ja) * 1984-04-26 1985-11-14 Toshiba Corp マルチプロセツサシステム
JPH02109153A (ja) * 1988-10-18 1990-04-20 Fujitsu Ltd プロセッサ間データ伝送方式
US5619726A (en) * 1994-10-11 1997-04-08 Intel Corporation Apparatus and method for performing arbitration and data transfer over multiple buses
JPH10340248A (ja) * 1997-06-06 1998-12-22 Matsushita Electric Ind Co Ltd ダイレクトメモリアクセス装置
TW406229B (en) * 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6055584A (en) * 1997-11-20 2000-04-25 International Business Machines Corporation Processor local bus posted DMA FlyBy burst transfers
US6532511B1 (en) * 1999-09-30 2003-03-11 Conexant Systems, Inc. Asochronous centralized multi-channel DMA controller
US6904473B1 (en) * 2002-05-24 2005-06-07 Xyratex Technology Limited Direct memory access controller and method of filtering data during data transfer from a source memory to a destination memory
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors

Also Published As

Publication number Publication date
US20040225760A1 (en) 2004-11-11
KR100630071B1 (ko) 2006-09-27
CN1614579A (zh) 2005-05-11
CN1307569C (zh) 2007-03-28

Similar Documents

Publication Publication Date Title
US4737932A (en) Processor
KR100630071B1 (ko) 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치
US5214759A (en) Multiprocessors including means for communicating with each other through shared memory
US7725621B2 (en) Semiconductor device and data transfer method
US20090254713A1 (en) Access control to partitioned blocks in shared memory
US7581049B2 (en) Bus controller
KR20020009823A (ko) 버스 시스템 및 그 버스 중재방법
US5761727A (en) Control apparatus for a memory architecture using dedicated and shared memory segments
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
KR980013132A (ko) 고 처리 능력의 주변 구성 요소 상호 접속 버스를 가진 데이터 처리 및 통신 시스템
KR100950356B1 (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
JPH0351943A (ja) 高速バスと低速バスのバスライン共用化方式
US6611882B1 (en) Inbound and outbound message passing between a host processor and I/O processor local memory
JP2984594B2 (ja) マルチクラスタ情報処理システム
JP2001273191A (ja) コンピュータシステム
US6505276B1 (en) Processing-function-provided packet-type memory system and method for controlling the same
EP1459191B1 (en) Communication bus system
KR960014177B1 (ko) 병렬데이터처리시스템의 데이터통신장치
KR20030025018A (ko) 직접 메모리 액세스 제어기 및 제어 방법
KR20020051545A (ko) 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법
JP3056169B2 (ja) データ送受信方式とその方法
JP2006004233A (ja) 記録媒体制御装置
JPH07334453A (ja) メモリアクセスシステム
JP2000132500A (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
FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee