KR20120011958A - 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법 - Google Patents

멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법 Download PDF

Info

Publication number
KR20120011958A
KR20120011958A KR1020100073404A KR20100073404A KR20120011958A KR 20120011958 A KR20120011958 A KR 20120011958A KR 1020100073404 A KR1020100073404 A KR 1020100073404A KR 20100073404 A KR20100073404 A KR 20100073404A KR 20120011958 A KR20120011958 A KR 20120011958A
Authority
KR
South Korea
Prior art keywords
core
destination
source
channel
data
Prior art date
Application number
KR1020100073404A
Other languages
English (en)
Other versions
KR101685407B1 (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 KR1020100073404A priority Critical patent/KR101685407B1/ko
Priority to JP2013521716A priority patent/JP5893624B2/ja
Priority to EP11175970.0A priority patent/EP2413248B1/en
Priority to CN201180004784.XA priority patent/CN102640129B/zh
Priority to US13/194,160 priority patent/US8806082B2/en
Priority to PCT/KR2011/005616 priority patent/WO2012015273A2/en
Publication of KR20120011958A publication Critical patent/KR20120011958A/ko
Application granted granted Critical
Publication of KR101685407B1 publication Critical patent/KR101685407B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법에 관한 것으로서, 소스 코어와의 소스 채널 및 목적지 코어와의 목적지 채널 중에서 적어도 하나의 채널이 사용 가능한지 여부를 판단하는 채널 상태 판단부와 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 데이터 전송 처리부를 포함할 수 있다.

Description

멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법{DIRECT MEMORY ACCESS DEVICE FOR MULTICORE SYSTEM AND METHOD OF THE SAME}
본 발명의 실시예들은 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법에 관한 것으로서, 소스 채널과 목적지 채널에 대한 시작 신호를 구분하고, 두 시작 신호가 모두 세팅될 때 동작함으로써, 구현이 간단하고 컨트롤로 인한 싸이클 낭비를 방지할 수 있다.
다이렉트 메모리 억세스(DMA, Direct Memory Access) 장치는 중앙처리장치의 데이터 전송 속도를 높이기 위해, 병렬 데이터 전송이 가능하도록 만든 하드웨어이다.
일반적으로 중앙처리장치가 탑재된 대부분의 시스템에서는 다이렉트 메모리 억세스 장치를 포함한다.
다이렉트 메모리 억세스 장치는 중앙처리장치가 어떤 연산을 수행하는 동안, 데이터를 병렬 전송하는 것에 가장 큰 목적이 있다.
다이렉트 메모리 억세스 장치를 이용하면, 중앙처리장치의 연산에 있어, 처리시간을 절약할 수 있으며, 내부적으로는 버스트(burst) 전송이 가능하여 버스 대역폭을 줄일 수도 있다.
 다이렉트 메모리 억세스 장치의 기본적인 구동 방법은 간단하다.
중앙처리장치가 다이렉트 메모리 억세스 장치의 구동에 필요한 파라미터를 세팅하고 시작 시키면, 다이렉트 메모리 억세스 장치는 시작 신호 및 파라미터를 확인하고 소스 코어에서 목적지 코어로 데이터를 이동 시킬 수 있다.
다이렉트 메모리 억세스 장치는 데이터 이동이 다 끝나면 데이터의 전송이 종료되었다는 의미에서, 레지스터를 세팅하거나 인터럽트를 통해 데이터 이동 사실을 중앙처리장치에 통보하는 형태로 구동될 수 있다.
현재, 중앙처리장치를 사용하는 많은 시스템은 시스템 성능의 향상을 위한 목적으로 복수개의 코어를 사용한다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치는 소스 코어와의 소스 채널 및 목적지 코어와의 목적지 채널 중에서 적어도 하나의 채널이 사용 가능한지 여부를 판단하는 채널 상태 판단부 및 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 데이터 전송 처리부를 포함할 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 방법은 소스 코어로부터 소스 채널 시작 신호가 세팅되고, 목적지 코어로부터 목적지 채널 시작 신호가 세팅되면, 소스 채널 및 목적지 채널이 모두 사용 가능하다고 판단하는 단계 및 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 멀티코어 시스템은 다이렉트 메모리 억세스 장치, 소스 채널 시작 신호를 세팅하여 상기 다이렉트 메모리 억세스 장치와의 소스 채널이 사용가능 함을 알리는 소스 코어, 및 목적지 채널 시작 신호를 세팅하여 상기 다이렉트 메모리 억세스 장치와의 목적지 채널이 사용가능 함을 알리는 목적지 코어를 포함하고, 상기 다이렉트 메모리 억세스 장치는 상기 소스 채널 시작 신호 및 목적지 채널 시작 신호가 세팅된 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리할 수 있다.
본 발명에 따르면, 데이터를 전송할 코어가 데이터를 수신할 코어의 상태를 수시로 확인하는 과정이 필요없어, 불필요한 시스템 자원의 낭비를 방지할 수 있다.
본 발명에 따르면, 데이터를 전송할 코어가 데이터를 수신할 코어의 상태를 파악할 필요가 없어, 구현이 간단하고 컨트롤로 인한 싸이클 낭비를 예방할 수 있다.
본 발명에 따르면, 시스템 자원을 효율적으로 사용함으로써, 중앙처리장치의 전체적인 성능을 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치가 적용된 멀티코어 시스템을 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치를 설명하는 블록도이다.
도 3은 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법을 설명하는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(130)가 적용된 멀티코어 시스템(100)을 설명하는 도면이다.
도 1에서 설명하는 멀티코어 시스템(100)은 중앙처리장치(CPU, Central Processing Unit)로 해석될 수도 있다.
멀티코어 시스템(100)은 코어 A(110), 코어 B(120), 및 다이렉트 메모리 억세스 장치(130)를 포함할 수 있다.
코어 A(110)와 코어 B(120)는 멀티코어 시스템(100)에서 선정된 프로세스를 처리하는 수단으로서, 멀티코어 시스템(100)은 코어 A(110) 및 코어 B(120) 이외에 추가로 다른 코어들을 더 포함할 수 있다.
코어 A(110)는 다이렉트 메모리 억세스 장치(130)를 통해 데이터를 전송하려는 코어로서, 소스 코어로 해석될 수 있고, 코어 B(120)는 상기 데이터를 수신하는 코어로서, 목적지 코어로 해석될 수 있다.
이하, 코어 A(110) 및 '데이터를 전송할 코어' 등을 소스 코어로 해석할 수 있고, 코어 B(120) 및 '데이터를 수신할 코어' 등을 목적지 코어로 해석할 수 있다.
코어 간에 데이터를 송수신하기 위해, 기존에는 소스 코어가 목적지 코어의 상태를 수시로 확인해야만 했고, 이로 인해 프로그램 구현이 복잡하고 컨트롤로 인한 특정 코어의 싸이클 낭비가 발생할 가능성이 매우 높았다.
이에 반해, 본 발명에 의하면 코어 A(110)는 데이터 전송을 위해 코어 B(120)의 상태를 수시로 모니터링 할 필요가 없이, 다이렉트 메모리 억세스 장치(130)가 코어 A(110) 및 코어 B(120)의 상태를 각각 구분하여 확인할 수 있다.
이로써, 프로그램 구현이 간단해지고, 특정 코어가 아무 일처리도 수행하지 않고 대기하는, 유휴(IDLE) 상태의 대기 사이클(wait cycle)을 예방할 수 있다.
구체적으로, 코어 A(110)는 전송할 데이터가 있는 경우, 다이렉트 메모리 억세스 장치(130)에 알리기만 하면 된다.
구체적으로, 코어 A(110)는 다이렉트 메모리 억세스 장치(130)에 알리기 위해서, 소스 채널 시작 신호를 세팅하여 다이렉트 메모리 억세스 장치(130)와의 소스 채널이 사용가능 함을 알릴 수 있다.
코어 A(110)와는 독립적으로, 코어 B(120)는 다이렉트 메모리 억세스 장치(130)에게 현재 채널이 사용 가능함을 알리기만 하면 데이터 송수신이 처리될 수 있다.
구체적으로, 코어 B(120)는 다이렉트 메모리 억세스 장치(130)에 알리기 위해서, 목적지 채널 시작 신호를 세팅하여 다이렉트 메모리 억세스 장치(130)와의 목적지 채널이 사용가능 함을 알릴 수 있다.
다이렉트 메모리 억세스 장치(130)는 전송할 데이터가 코어 A(110)에 있고, 다이렉트 메모리 억세스 장치(130) 및 코어 B(120)간 채널이 사용 가능한 경우, 코어 A(110)의 데이터를 코어 B(120)로 전달할 수 있다.
구체적으로, 다이렉트 메모리 억세스 장치(130)는 상기 소스 채널 시작 신호 및 목적지 채널 시작 신호가 모두 세팅된 경우, 코어 A(110)의 데이터를 코어 B(120)로 전송하도록 처리할 수 있다.
결국, 다이렉트 메모리 억세스 장치(130)가 적용된 멀티코어 시스템(100)은 데이터를 전송할 코어가 데이터를 수신할 코어의 상태를 수시로 확인하는 과정이 필요없어, 불필요한 시스템 자원의 낭비를 방지할 수 있다.
뿐만 아니라, 다이렉트 메모리 억세스 장치(130)를 이용하면 시스템 자원을 효율적으로 사용함으로써, 전체적인 성능을 향상시킬 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(130)는 코어 A(110)의 데이터를 코어 B(120)에 전송 완료한 경우, 상기 세팅된 소스 채널 시작 신호 및 상기 세팅된 목적지 채널 시작 신호를 리셋할 수 있다.
이후, 코어 A(110) 및 코어 B(120) 각각은 다이렉트 메모리 억세스 장치(130)와의 해당 채널이 사용 가능하면 해당 채널 시작 신호를 다시 세팅할 수 있다.
또한, 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(130)는 코어 A(110)의 데이터를 코어 B(120)에 전송 완료한 경우, 펜딩 레지스터에 데이터 송수신 완료 정보를 저장하여 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 데이터 전송을 알릴 수도 있다.
데이터의 전송을 알리기 위해서, 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(130)는 인터럽트 신호를 이용할 수도 있다.
구체적으로, 다이렉트 메모리 억세스 장치(130)는 코어 A(110)의 데이터를 코어 B(120)에 전송 완료한 경우, 코어 A(110) 및 코어 B(120) 중에서 적어도 하나의 코어에 인터럽트 신호를 전송함으로써, 상기 데이터 전송의 완료를 알릴 수 있다.
도 2는 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(200)를 설명하는 블록도이다.
다이렉트 메모리 억세스 장치(200)는 도1의 다이렉트 메모리 억세스 장치(130)를 보다 구체적으로 설명하는 것이다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(200)는 채널 상태 판단부(210) 및 데이터 전송 처리부(220)를 포함할 수 있다.
구체적으로, 채널 상태 판단부(210)는 소스 코어와의 소스 채널 및 목적지 코어와의 목적지 채널 중에서 적어도 하나의 채널이 사용 가능한지 여부를 판단할 수 있다.
또한, 데이터 전송 처리부(220)는 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리할 수 있다.
구체적으로, 채널 상태 판단부(210)는 컨트롤 인터페이스(211), 소스 채널 상태 확인부(212), 목적지 채널 상태 확인부(213) 및 AND 연산기(214)를 포함할 수 있고, 데이터 전송 처리부(220)는 데이터 인터페이스(221), 소스 펜딩 레지스터(222), 목적지 펜딩 레지스터(223)를 포함할 수 있다.
컨트롤 인터페이스(211)는 선정된 동작을 수행하기 위해서, 중앙처리장치로부터 제어신호를 입력 받을 수 있다. 또한, 컨트롤 인터페이스(211)는 다이렉트 메모리 억세스 장치(200)의 구동을 위한 파라미터 값을 분배하는 기능을 수행할 수 있고, 이를 위해 필요한 레지스터 및 시작 신호를 세팅할 수 있다.
소스 채널 상태 확인부(212)는 소스 코어로부터 소스 채널 시작 신호가 세팅되면, 상기 소스 코어와의 소스 채널 사용이 가능함을 판단할 수 있다.
소스 채널 시작 신호의 세팅은, 소스 코어에서 목적지 코어로 전송할 데이터가 있음을 의미할 수 있다.
목적지 채널 상태 확인부(213)는 상기 소스 채널 시작 신호와는 독립된 시점에서, 상기 목적지 코어로부터 목적지 채널 시작 신호가 세팅되면, 상기 목적지 코어와의 목적지 채널 사용이 가능함을 판단할 수 있다.
목적지 채널 시작 신호가 세팅되었다는 것은, 목적지 코어에 대한 목적지 주소(destination address)의 메모리 영역이 쓰기 가능한 상태에 있는 것으로 해석될 수 있다.
AND 연산기(214)는 소스 채널 상태 확인부(212) 및 목적지 채널 상태 확인부(213)를 확인하여, 소스 채널 시작 신호 및 목적지 채널 시작 신호가 모두 세팅된 경우에 데이터 인터페이스(221)에 데이터 전송을 요청할 수 있다.
즉, AND 연산기(214)는 소스 채널 시작 신호와 목적지 채널 시작 신호가 모두 세팅된 경우에 데이터 전송을 요청할 수 있다.
데이터 인터페이스(221)는 상기 소스 코어의 데이터를 상기 목적지 코어로 전송할 수 있다.
데이터의 전송을 위해, 데이터 인터페이스(221)는 상기 소스 채널 시작 신호에 의해서 소스 코어와의 소스 채널이 사용 가능함을 확인할 수 있다. 뿐만 아니라, 데이터 인터페이스(221)는 목적지 채널 시작 신호를 통해서 목적지 코어와의 목적지 채널이 사용 가능함을 확인할 수 있다.
소스 채널과 목적지 채널이 사용 가능함을 확인한 데이터 인터페이스(221)는 소스 코어로부터 목적지 코어로의 데이터 전송을 진행할 수 있다.
결국, 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(200)는 소스 코어와 목적지 코어의 상태를 각각 독립적으로 확인하고, 데이터 전송이 가능한 시점을 파악하여 데이터 전송을 처리할 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(200)는 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능하여 상기 소스 코어의 데이터를 상기 목적지 코어로 전송 완료한 경우, 상기 소스 채널 시작 신호 및 상기 목적지 채널 시작 신호를 리셋하는 리셋 처리부(230)를 더 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 전송 처리부(220)는 소스 펜딩 레지스터(222)와 목적지 펜딩 레지스터(223)를 포함하는 펜딩 레지스터를 더 포함할 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치(200)는 소스 코어로부터 목적지 코어에 데이터 전송이 완료되었음을 각각의 코어에 알릴 수 있다.
이를 위해서, 본 발명의 일실시예에 따른 데이터 전송 처리부는 소스 펜딩 레지스터(222)를 통해서 소스 코어에 데이터가 전송되었음을 알릴 수 있다.
구체적으로, 데이터 전송 처리부는 상기 데이터를 상기 목적지 코어에 전송 완료한 경우에 소스 펜딩 레지스터(222)에 데이터 송신 완료 정보를 저장할 수 있다.
이에, 상기 소스 코어는 소스 펜딩 레지스터(222)에 저장된 데이터 송신 완료 정보를 참고하여 데이터 송신이 완료되었음을 확인할 수 있다.
마찬가지로, 본 발명의 일실시예에 따른 데이터 전송 처리부는 목적지 펜딩 레지스터(223)를 통해서 목적지 코어에 데이터가 전송되었음을 알릴 수 있다.
구체적으로, 데이터 전송 처리부는 상기 데이터를 상기 목적지 코어에 전송 완료한 경우에 목적지 펜딩 레지스터(223)에 데이터 수신 완료 정보를 저장할 수 있다.
이에, 상기 목적지 코어는 목적지 펜딩 레지스터(223)에 저장된 데이터 송신 완료 정보를 참고하여 데이터 수신이 완료되었음을 확인할 수 있다.
즉, 소스 코어와 목적지 코어 각각은 소스 펜딩 레지스터(222) 및 목적지 펜딩 레지스터(223) 각각을 통해서 데이터의 전송이 성공적으로 처리 되었음을 확인할 수 있다.
본 발명의 일실시예에 따른 데이터 전송 처리부(220)는, 상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우에 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 전송 완료를 알릴 수도 있다.
DMA 모드 레지스터(240)는 현재 다이렉트 메모리 억세스 장치의 모드를 저장할 수 있고, DMA 전송 완료 플래그(250)는 소스 펜딩 레지스터(222) 및 목적지 펜딩 레지스터(223)에 송수신 완료 정보를 저장하는데 이용될 수 있다.
도 3은 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법을 설명하는 흐름도이다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 소스 채널과 목적지 채널의 사용이 가능함을 판단할 수 있다(단계 310).
이를 위해, 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 소스 채널 시작 신호가 세팅되고, 목적지 채널 시작 신호가 세팅되었는지를 확인하여, 상기 소스 채널과 상기 목적지 채널의 사용이 가능함을 판단할 수 있다.
상기 소스 채널 시작 신호는 상기 소스 코어에서 전송할 데이터가 있는 경우에, 상기 소스 코어로부터 제어 신호를 수신하여 세팅될 수 있다.
상기 목적지 채널 시작 신호는 상기 목적지 코어가 데이터를 수신할 준비가 되어 있는 경우, 상기 목적지 코어로부터 제어 신호를 수신하여 세팅될 수 있다.
상기 소스 채널 시작 신호와 상기 목적지 채널 시작 신호는 각각 독립적인 시점에서 세팅될 수 있다.
다시 말해, 상기 소스 코어는 목적지 코어의 상태를 파악할 필요없이 보낼 데이터가 있는 경우에 상기 소스 채널 시작 신호를 세팅할 수 있다.
또한, 상기 목적지 코어는 현재 채널이 사용 가능하면, 상기 소스 코어의 상태를 파악할 필요없이 상기 목적지 채널 시작 신호를 세팅할 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 단계 310에서 상기 소스 채널 시작 신호와 상기 목적지 채널 시작 신호가 모두 세팅된 경우에 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능하다고 판단할 수 있다(단계 320).
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 제어할 수 있다(단계 330).
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능하여 상기 소스 코어의 데이터를 상기 목적지 코어로 전송 완료한 경우, 상기 소스 채널 시작 신호 및 상기 목적지 채널 시작 신호를 리셋할 수 있다(단계 340).
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우에 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 전송 완료를 알릴 수 있다(단계 350).
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 상기 전송 완료를 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 알리기 위해서, 각각의 코어에 대응되는 레지스터를 이용하거나 인터럽트를 이용할 수도 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법을 이용하면, 데이터를 전송할 코어가 데이터를 수신할 코어의 상태를 파악할 필요가 없어, 구현이 간단하고 컨트롤로 인한 싸이클 낭비를 예방할 수 있다.
뿐만 아니라, 본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법을 이용하면, 시스템 자원을 효율적으로 사용함으로써, 중앙처리장치의 전체적인 성능을 향상시킬 수 있다.
본 발명의 일실시예에 따른 다이렉트 메모리 억세스 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 다이렉트 메모리 억세스 장치 210: 채널 상태 판단부
211: 컨트롤 인터페이스 212: 소스 채널 상태 확인부
213: 목적지 채널 상태 확인부 214: AND 연산기
220: 데이터 전송 처리부 221: 데이터 인터페이스
222: 소스 펜딩 레지스터 223: 목적지 펜딩 레지스터
230: 리셋 처리부 240: DMA 모드 레지스터
250: DMA 전송 완료 플래그

Claims (14)

  1. 소스 코어와의 소스 채널 및 목적지 코어와의 목적지 채널 중에서 적어도 하나의 채널이 사용 가능한지 여부를 판단하는 채널 상태 판단부; 및
    상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 데이터 전송 처리부
    를 포함하는 다이렉트 메모리 억세스 장치.
  2. 제1항에 있어서,
    상기 채널 상태 판단부는,
    상기 소스 코어로부터 소스 채널 시작 신호가 세팅되면, 상기 소스 코어와의 소스 채널 사용이 가능함을 판단하는 소스 채널 상태 확인부; 및
    상기 목적지 코어로부터 목적지 채널 시작 신호가 세팅되면, 상기 목적지 코어와의 목적지 채널 사용이 가능함을 판단하는 목적지 채널 상태 확인부
    를 포함하는 다이렉트 메모리 억세스 장치.
  3. 제2항에 있어서,
    상기 채널 상태 판단부는,
    상기 소스 채널 시작 신호 및 상기 목적지 채널 시작 신호가 모두 세팅되면, 상기 데이터의 전송이 가능하다고 판단하는 것을 특징으로 하는 다이렉트 메모리 억세스 장치.
  4. 제2항에 있어서,
    상기 소스 코어의 데이터를 상기 목적지 코어로 전송 완료한 경우, 상기 소스 채널 시작 신호 및 상기 목적지 채널 시작 신호를 리셋하는 리셋 처리부
    를 더 포함하는 다이렉트 메모리 억세스 장치.
  5. 제1항에 있어서,
    상기 데이터 전송 처리부는,
    상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우, 데이터 송수신 완료 정보를 저장하는 펜딩 레지스터
    를 포함하는 다이렉트 메모리 억세스 장치.
  6. 제5항에 있어서,
    상기 펜딩 레지스터는,
    상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우,
    데이터 송신 완료 정보를 저장하는 소스 펜딩 레지스터; 및
    데이터 수신 완료 정보를 저장하는 목적지 펜딩 레지스터
    를 포함하는 다이렉트 메모리 억세스 장치.
  7. 제1항에 있어서,
    상기 데이터 전송 처리부는,
    상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우에 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 전송 완료를 알리는 인터럽트 신호를 전송하는 것을 특징으로 하는 다이렉트 메모리 억세스 장치.
  8. 소스 코어로부터 소스 채널 시작 신호가 세팅되고, 목적지 코어로부터 목적지 채널 시작 신호가 세팅되면, 소스 채널 및 목적지 채널이 모두 사용 가능하다고 판단하는 단계; 및
    상기 소스 채널 및 상기 목적지 채널이 모두 사용 가능한 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 단계
    를 포함하는 다이렉트 메모리 억세스 장치의 동작 방법.
  9. 제8항에 있어서,
    상기 소스 코어의 데이터를 상기 목적지 코어로 전송 완료한 경우, 상기 소스 채널 시작 신호 및 상기 목적지 채널 시작 신호를 리셋하는 단계
    를 더 포함하는 다이렉트 메모리 억세스 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 데이터를 상기 소스 코어로부터 상기 목적지 코어에 전송 완료한 경우에 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 전송 완료를 알리는 단계
    를 더 포함하는 다이렉트 메모리 억세스 장치의 동작 방법.
  11. 다이렉트 메모리 억세스 장치;
    소스 채널 시작 신호를 세팅하여 상기 다이렉트 메모리 억세스 장치와의 소스 채널이 사용가능 함을 알리는 소스 코어; 및
    목적지 채널 시작 신호를 세팅하여 상기 다이렉트 메모리 억세스 장치와의 목적지 채널이 사용가능 함을 알리는 목적지 코어
    를 포함하고,
    상기 다이렉트 메모리 억세스 장치는,
    상기 소스 채널 시작 신호 및 목적지 채널 시작 신호가 세팅된 경우, 상기 소스 코어의 데이터를 상기 목적지 코어에 전송하도록 처리하는 것을 특징으로 하는 멀티코어 시스템.
  12. 제11항에 있어서,
    상기 다이렉트 메모리 억세스 장치는,
    상기 소스 코어의 데이터를 상기 목적지 코어에 전송 완료한 경우, 상기 세팅된 소스 채널 시작 신호 및 상기 세팅된 목적지 채널 시작 신호를 리셋하는 것을 특징으로 하는 멀티코어 시스템.
  13. 제11항에 있어서,
    상기 다이렉트 메모리 억세스 장치는,
    상기 소스 코어의 데이터를 상기 목적지 코어에 전송 완료한 경우, 펜딩 레지스터에 데이터 송수신 완료 정보를 저장하여 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 데이터 전송을 알리는 것을 특징으로 하는 멀티코어 시스템.
  14. 제11항에 있어서,
    상기 다이렉트 메모리 억세스 장치는,
    상기 소스 코어의 데이터를 상기 목적지 코어에 전송 완료한 경우, 인터럽트 신호를 통해 상기 소스 코어 및 상기 목적지 코어 중에서 적어도 하나의 코어에 상기 데이터 전송을 알리는 것을 특징으로 하는 멀티코어 시스템.
KR1020100073404A 2010-07-29 2010-07-29 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법 KR101685407B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020100073404A KR101685407B1 (ko) 2010-07-29 2010-07-29 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
JP2013521716A JP5893624B2 (ja) 2010-07-29 2011-07-29 マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
EP11175970.0A EP2413248B1 (en) 2010-07-29 2011-07-29 Direct memory access device for multi-core system and operating method of the same
CN201180004784.XA CN102640129B (zh) 2010-07-29 2011-07-29 用于多核系统的直接存储器存取装置及其操作方法
US13/194,160 US8806082B2 (en) 2010-07-29 2011-07-29 Direct memory access device for multi-core system and operating method of the same
PCT/KR2011/005616 WO2012015273A2 (en) 2010-07-29 2011-07-29 Direct memory access device for multi-core system and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100073404A KR101685407B1 (ko) 2010-07-29 2010-07-29 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120011958A true KR20120011958A (ko) 2012-02-09
KR101685407B1 KR101685407B1 (ko) 2016-12-13

Family

ID=44582317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100073404A KR101685407B1 (ko) 2010-07-29 2010-07-29 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법

Country Status (6)

Country Link
US (1) US8806082B2 (ko)
EP (1) EP2413248B1 (ko)
JP (1) JP5893624B2 (ko)
KR (1) KR101685407B1 (ko)
CN (1) CN102640129B (ko)
WO (1) WO2012015273A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645738B2 (en) 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
US9218133B2 (en) 2012-08-17 2015-12-22 Spectra Logic, Corp Data deduplication in a removable storage device
US10304122B2 (en) * 2013-05-30 2019-05-28 Ebay Inc. Time- and geolocation-limited marketplace

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256796A1 (en) * 2005-05-13 2006-11-16 Sanjive Agarwala Independent source read and destination write enhanced DMA

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386532A (en) 1991-12-30 1995-01-31 Sun Microsystems, Inc. Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
JPH05298239A (ja) * 1992-04-18 1993-11-12 Hitachi Ltd ダイレクト・メモリー・アクセス制御回路
JP3176472B2 (ja) * 1993-03-22 2001-06-18 株式会社エヌ・ティ・ティ・データ データ転送方式
JPH11212904A (ja) * 1998-01-26 1999-08-06 Toshiba Corp データ転送システム
JP3824122B2 (ja) * 1999-04-12 2006-09-20 株式会社リコー Dma装置
AU2003246991A1 (en) * 2002-07-23 2004-02-09 Koninklijke Philips Electronics N.V. Improved inter-processor communication system for communication between processors
JP2004355041A (ja) * 2003-05-26 2004-12-16 Kyocera Mita Corp Dma転送中継装置,dma転送方法,及びdma転送システム
US7484016B2 (en) * 2004-06-30 2009-01-27 Intel Corporation Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
KR20070060854A (ko) 2005-12-09 2007-06-13 엠텍비젼 주식회사 멀티 채널 직접 메모리 접근 제어기
US7536669B1 (en) * 2006-08-30 2009-05-19 Xilinx, Inc. Generic DMA IP core interface for FPGA platform design
JP4476267B2 (ja) * 2006-10-06 2010-06-09 株式会社日立製作所 プロセッサ及びデータ転送ユニット
US9141572B2 (en) 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US8117475B2 (en) 2006-12-15 2012-02-14 Microchip Technology Incorporated Direct memory access controller
JP5085178B2 (ja) * 2007-04-11 2012-11-28 ルネサスエレクトロニクス株式会社 Dmaコントローラおよびdma転送方法
JP4691526B2 (ja) 2007-05-31 2011-06-01 日立Geニュークリア・エナジー株式会社 放射性廃棄物の処理方法
KR100921504B1 (ko) 2007-11-27 2009-10-13 한국전자통신연구원 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법
US8266337B2 (en) * 2007-12-06 2012-09-11 International Business Machines Corporation Dynamic logical data channel assignment using channel bitmap
US8151008B2 (en) * 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
KR101058319B1 (ko) 2008-12-23 2011-08-22 주식회사 효성 원판형 전극을 이용한 gis 용 용량성 전압 변성기

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256796A1 (en) * 2005-05-13 2006-11-16 Sanjive Agarwala Independent source read and destination write enhanced DMA

Also Published As

Publication number Publication date
CN102640129B (zh) 2016-03-16
EP2413248A1 (en) 2012-02-01
EP2413248B1 (en) 2017-07-26
KR101685407B1 (ko) 2016-12-13
WO2012015273A2 (en) 2012-02-02
JP2013535735A (ja) 2013-09-12
JP5893624B2 (ja) 2016-03-23
US8806082B2 (en) 2014-08-12
CN102640129A (zh) 2012-08-15
US20120030382A1 (en) 2012-02-02
WO2012015273A3 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
US8392635B2 (en) Selectively enabling a host transfer interrupt
US9483433B2 (en) Processing communication data in a ships passing condition
CN107046508B (zh) 报文接收方法及网络设备
KR100958685B1 (ko) Dma 컨트롤러, 노드, 데이터 전송 제어 방법 및 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
US8850090B2 (en) USB redirection for read transactions
CN104994032B (zh) 一种信息处理的方法和装置
US20170139852A1 (en) Interrupt Processing Method and Interrupt Controller
CN103853620A (zh) 一种众核处理器进程间相互通信的方法、装置及系统
TW201202942A (en) Virtualizing a host USB adapter
US20190230161A1 (en) System and method for improved storage access in multi core system
KR101685407B1 (ko) 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
US8423680B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
WO2021258750A1 (zh) 一种控制指令处理方法、装置、设备及计算机存储介质
CN105579963A (zh) 任务处理装置、电子设备及方法
KR102274930B1 (ko) 채널 연결 관리 방법 및 장치
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
KR101005933B1 (ko) 마스터와 슬레이브 간의 데이터 전송방법 및 장치
US10820371B1 (en) Hardware data transport in wireless data transceiver
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
US7779179B2 (en) Interface controller, method for controlling the interface controller, and a computer system
JP6799265B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
KR101614045B1 (ko) 효율성이 향상된 csma/ca 통신 프로토콜을 사용하는 통신 장치 및 시스템
KR101802056B1 (ko) 기지국 관리 장치 및 방법
CN111831595A (zh) 一种dma传输方法及相关装置
US9800649B2 (en) Data communication method and data communication system

Legal Events

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

Payment date: 20191128

Year of fee payment: 4