KR101324580B1 - 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법 - Google Patents

복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법 Download PDF

Info

Publication number
KR101324580B1
KR101324580B1 KR1020100028448A KR20100028448A KR101324580B1 KR 101324580 B1 KR101324580 B1 KR 101324580B1 KR 1020100028448 A KR1020100028448 A KR 1020100028448A KR 20100028448 A KR20100028448 A KR 20100028448A KR 101324580 B1 KR101324580 B1 KR 101324580B1
Authority
KR
South Korea
Prior art keywords
dma
memory
channels
channel
destination address
Prior art date
Application number
KR1020100028448A
Other languages
English (en)
Other versions
KR20110073173A (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 US12/882,141 priority Critical patent/US8205021B2/en
Publication of KR20110073173A publication Critical patent/KR20110073173A/ko
Priority to US13/471,236 priority patent/US20120226831A1/en
Application granted granted Critical
Publication of KR101324580B1 publication Critical patent/KR101324580B1/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
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

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(Direct Memory Access) 제어부를 포함하는 것을 특징으로 하는 메모리 시스템이 제공된다.

Description

복수의 DMA 채널을 갖는 메모리 시스템 및 복수의 DMA 채널에 대한 통합 관리 방법{MEMORY SYSTEM COMPRISING A PLURALITY OF DMA CHANNELS AND INTERGRATING MANAGEMENT METHOD FOR A PLURALITY OF DMA CHANNELS}
본 발명은 복수의 DMA 채널을 갖는 메모리 시스템 및 복수의 DMA 채널에 대한 통합 관리 방법에 관한 것으로, 보다 상세하게는, 복수의 채널을 통해 메모리에 접근할 수 있도록 하되, 해당 채널들을 통합 제어함으로써 데이터의 전송 효율을 극대화시키는 복수의 DMA 채널을 갖는 메모리 시스템 및 복수의 DMA 채널에 대한 통합 관리 방법에 관한 것이다.
본 발명은 지식경제부의 원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2008-S-006-04, 과제명:유비쿼터스 단말용 부품 모듈].
일반적인 메모리 제어기들은 메모리 장치가 허용하는 한 데이터를 시스템 메모리 쪽으로 신속하게 배열하거나 시스템 메모리로부터의 데이터를 신속하게 배열한다. 따라서, 메모리 제어기는 메모리 장치가 허용하는 한 얼마든지 빠른 속도로 데이터를 처리할 수 있기 때문에 대역폭 제한의 요소가 되지 못한다. 한편, 대역폭을 증가시키는 방법 중 하나는 메모리 제어기와 메모리 장치들을 연결시키는 메모리 데이터 버스의 속도를 증가시키는 것이다. 그러나, 메모리 장치들이 메모리 제어기 및 메모리 데이터 버스들의 데이터 대역폭 증가를 따라가지 못했다.
한편, 특정 메모리 제어기들은 다수의 프로세서 또는 주변장치에 대한 메모리 접근성을 높이기 위해 다수의 채널을 자체적으로 제공하기도 한다. 그러나, 이러한 메모리 제어기들은 다수의 채널을 제공할 뿐, 대역폭을 증가시키지는 못했고, 메모리가 제공할 수 있는 전체 데이터 전송 대역을 다수의 채널을 통해 목적지가 되는 장치에 할당할 수 있다는 장점만을 제공할 뿐이었다. 즉, 다수의 채널을 제공하는 메모리 제어기는 여러 개의 채널을 제공하지만 실제적으로는 단일 메모리 접속을 제공함으로써 메모리 대역폭의 향상을 제공하지는 못하였다. 다만, 다수의 채널을 제공함으로써 미리 여유 채널에 접근하여 메모리 액세스 동작을 준비하는 것을 가능하게 하였고, 다수의 채널이 메모리 접근에 있어서 동등한 우선권을 가지는 경우 대역폭의 균등한 분배를 가능하게 하였다.
그러나, 다수의 채널을 제공하는 메모리 제어기의 경우에도 하나의 채널만을 제공하는 메모리 제어기와 같이 데이터 전송 시 하나의 채널을 사용한 데이터 전송이 수행된 후 다음 데이터 전송을 위한 프리차징 시간이 필수적이었다. 그러나, 메모리 제어기가 제공하는 다수의 채널을 이용하여 데이터를 동시 전송하는 경우 메모리 제어기는 다음 데이터 전송을 위한 준비를 미리 수행할 수 있기 때문에 메모리의 전송 성능이 향상될 수 있다. 예를 들어, DRAM(Dynamic Random Access Memory)은 행을 활성화하고 메모리 뱅크를 '프리차징'하기 위해 복수의 클록 주기를 필요로 하는데, 이에 따라 복수의 클록 주기에 해당하는 대기 시간이 초래된다. 읽고 쓰는 버스트의 길이에 따라서, 이 대기 시간은 순수 데이터 전송을 위해 사용된 클록 주기보다 더 많은 클록 주기일 수도 있게 된다. 그러나, 읽고 쓰는 버스트가 진행 중일 때 다음 데이터 전송이 이미 준비 상태에 있게 된다면 메모리의 대기시간이 순수 데이터 전송 시간에 포함되어 데이터 전송 효율이 향상될 수 있게 된다. 이러한 효과는 다수의 채널을 제공하는 메모리 제어기를 통해 얻을 수 있다.
따라서, 이러한 효과를 얻을 수 있도록 하는 다채널 메모리 제어기의 효율적인 사용을 위한 DMA 채널 제어기 및 채널 통합 관리 방법이 요구된다.
본 발명은 상술한 종래 기술의 문제를 해결하기 위한 것으로, 다채널 메모리 제어기와 접속되는 다수의 DMA 채널을 통합 관리함으로써 메모리 제어기의 데이터 전송 성능을 향상시키는 것을 그 목적으로 한다.
또한, 본 발명의 다른 목적은 DMA 채널의 통합 관리를 통해 다채널 메모리 제어기가 복수의 채널을 통해 데이터 전송을 할 수 있도록 함으로써 데이터 전송 성능의 극대화를 꾀할 수 있도록 하는 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 메모리와 데이터 송수신을 수행하며 물리적으로 서로 분리된 복수의 채널을 갖는 메모리 제어부, 및 상기 메모리 제어부의 복수의 채널과 접속되며 물리적으로 서로 분리된 복수의 DMA 채널을 갖고, 상기 복수의 DMA 채널 및 상기 메모리 제어부를 통해 상기 메모리와 데이터 송수신을 수행하는 DMA(Direct Memory Access) 제어부를 포함하는 것을 특징으로 하는 메모리 시스템이 제공된다.
상기 메모리 시스템은, 상기 메모리 제어부의 채널과 상기 DMA 채널을 상호 연결시키는 접속 모듈을 더 포함할 수 있다.
상기 접속 모듈은, 상기 메모리 제어부의 채널과 상기 DMA 채널 간의 상호 연결을 위한 복수의 버스 또는 매트릭스 스위치를 포함할 수 있다.
상기 DMA 제어부는, 송수신되는 데이터에 대한 정보를 저장하는 레지스터 세트를 갖는 레지스터 모듈, 및 상기 레지스터 세트를 참조하여 상기 복수의 DMA 채널에 대한 설정 값을 분할하여 설정하는 다중 채널 관리 모듈을 포함할 수 있다.
상기 레지스터 세트는, 소스 어드레스, 목적지 어드레스, 전송 크기, 소스 어드레스 오프셋 또는 목적지 어드레스 오프셋 중 선택되는 적어도 하나를 포함하고, 상기 다중 채널 관리 모듈은 상기 소스 어드레스 값 및 상기 목적지 어드레스 값에 상기 소스 어드레스 오프셋 및 상기 목적지 어드레스 오프셋 값을 선택적으로 가감하여 상기 복수의 DMA 채널에 대한 소스 어드레스 값 및 목적지 어드레스 값을 설정할 수 있다.
상기 다중 채널 관리 모듈은 상기 전송 크기 값을 상기 DMA 채널의 수로 나누어 상기 DMA 채널 각각에 대한 전송 크기 값으로 설정할 수 있다.
상기 메모리 제어부는 상기 메모리와 메모리 인터페이스를 통해 데이터 송수신을 수행할 수 있다.
상기 DMA 제어부는 주변 장치와의 데이터 송수신을 위한 1개의 포트를 더 포함할 수 있다.
한편, 상술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따르면, 복수의 DMA 채널을 통합 관리하기 위한 방법으로서, 송수신 데이터와 연관되는 소정의 소스 어드레스, 목적지 어드레스, 전송 크기 또는 소스 어드레스 세트 중 선택되는 일 이상의 값을 기초로 하여, 상기 복수의 DMA 채널에 대한 설정 값을 각각 분할하여 설정하는 단계를 포함하는 것을 특징으로 하는 방법이 제공된다.
상기 분할하여 설정하는 단계는, 상기 소스 어드레스 값 및 상기 목적지 어드레스 값에 상기 소스 어드레스 오프셋 및 상기 목적지 어드레스 오프셋 값을 선택적으로 가감하여 상기 복수의 DMA 채널에 대한 소스 어드레스 값 및 목적지 어드레스 값을 설정하는 단계를 포함할 수 있다.
상기 분할하여 설정하는 단계는, 상기 전송 크기 값을 상기 DMA 채널의 수로 나누어 상기 DMA 채널 각각에 대한 전송 크기 값으로 설정하는 단계를 포함할 수 있다.
본 발명에 따르면, DMA 채널을 통합 관리 함으로써 상기 DMA 채널과 접속되는 다수의 채널을 갖는 다체널 메모리 제어기가 향상된 데이터 전송 성능을 가질 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 나타내는 블록도이다.
도 2는 도 1의 메모리 시스템에 있어서 접속 모듈이 버스로 이루어지는 경우의 구성을 나타내는 블록도이다.
도 3은 도 1의 메모리 시스템에 있어서 접속 모듈이 매트릭스 스위치로 이루어지는 경우의 구성을 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 DMA 제어부의 구성을 나타내는 블록도이다.
도 5a 및 도 5b는 각각 1채널만을 사용하여 데이터를 읽을 때와 4개의 채널을 사용하여 데이터를 읽을 때의 어드레스와 데이터의 전송 특성을 나타내는 도면이다.
도 6a 및 도 6b는 각각 1개의 DMA 채널을 이용하여 데이터 전송을 하기 위한 레지스터 설정 시 적용되는 DMA 채널의 동작 설정 값과 4채널을 통합 관리할 시에 적용되는 DMA 채널의 동작 설정 값의 일례를 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
메모리 시스템
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 메모리 시스템은 메모리(100), 메모리 제어부(200), DMA(Direct Memory Access) 제어부(300), 및 접속 모듈(400)을 포함하여 구성될 수 있다. 메모리 제어부(200)는 복수의 채널로 이루어지고, DMA 제어부(300)는 복수의 채널이 동시에 접속 가능한 것일 수 있다. 여기서는, 도 1에서와 같이 4채널의 메모리 제어부(200)와 4개의 채널이 동시에 접속 가능한 DMA 제어부(300)를 예로 들어 설명하기로 한다.
먼저, 메모리(100)는 통상적인 메모리 장치, 예를 들면, DRAM(Dynamic Random Access Memory) 또는 SDRAM(Synchronous Dynamic Random Access Memory) 등의 메모리 장치일 수 있다.
메모리 제어부(200)는 1채널의 메모리(100)를 제어하기 위해 4개의 채널(211, 212, 213, 214)을 갖으며, DMA 제어부(300)는 4개의 채널(211, 212, 213, 214)을 갖는 메모리 제어부(200)에 접속하기 위해 물리적으로 분리된 DMA 채널(311, 312, 313, 314)을 갖는다.
한편, 메모리(100)는 메모리 인터페이스(111)를 통해 메모리 제어부(200)와 연결되고, 메모리 제어부(200)와 DMA 제어부(300)는 접속 모듈(400)을 통해 연결될 수 있다. 즉, 접속 모듈(400)은 DMA 제어부(300)의 4개의 채널(311, 312, 313, 314)이 물리적으로 분리되어 있는 메모리 제어부(200)의 채널(211, 212, 213, 214)에 동시에 접속되도록 하는 기능을 수행한다. 이를 위해, 접속 모듈(400)은 서로 분리된 4개의 버스 또는 동시에 4개 이상의 채널을 연결시킬 수 있는 매트릭스 스위치 등으로 구성될 수 있다.
도 2는 도 1의 메모리 시스템에 있어서 접속 모듈(400)이 서로 독립적으로 분리되어 있는 4개의 버스(bus1, bus2, bus3, bus4)로 구성되는 경우를 도시한 도면이며, 도 3은 접속 모듈(400)이 매트릭스 스위치(410)로 구성되는 경우를 도시한 도면이다.
그러나, 도 2 및 도 3은 접속 모듈(400) 구현의 일례를 나타낸 것일 뿐이며, 접속 모듈(400)은 각각의 채널을 상호 연결시켜줄 수만 있다면 접속 논리 구조 등 다른 형태의 장치로도 얼마든지 구현할 수 있다.
이와 같은 접속 모듈(400)을 통해 메모리(100) 및 메모리 제어부(200)로부터 데이터를 수신한 DMA 제어부(300)는 별도의 DMA 포트(310)를 통해 주변 장치 및 기타 내부 장치로 데이터를 전송한다. 이 때, 데이터는 버스(500) 등을 통해 전송될 수 있다.
이하에서는, 본 발명의 특징적 구성이라고 할 수 있는 DMA 제어부(300)의 내부 구성에 대해 설명하기로 한다.
DMA 제어부
도 4는 본 발명의 일 실시예에 따른 DMA 제어부(300)의 내부 구성을 나타내는 블록도이다.
도 4에 도시되는 바와 같이, DMA 제어부(300)는 레지스터 모듈(320), 다중 채널 관리 모듈(330), 및 DMA 채널 제어부(350)를 포함하여 구성될 수 있다.
먼저, 레지스터 모듈(320)은 통상적인 DMA 제어기의 레지스터와 기본적으로 동일한 구조로 형성되며, 특정 레지스터 세트를 가질 수 있다. 데이터 전송을 위한 레지스터 모듈(320)은 다중 채널 제어 레지스터(321)를 포함할 수 있고, 이와 함께 소스 어드레스(322), 목적지 어드레스(323), 전송 크기(324), 소스 어드레스 오프셋(325), 목적지 어드레스 오프셋(326) 정보를 저장할 수 있는 레지스터 세트를 포함할 수 있다. 이 때, 채널을 제어하는 레지스터 세트는 복수로 구성되어 채널을 순차적으로 제어할 수 있다. DMA 제어부(300)의 4개의 채널(311, 312, 313, 314), 즉, 접속 모듈(400)을 통해 메모리 제어부(200)에 접근하는 채널(311, 312, 313, 314)은 각 채널의 제어를 위해 사용되는 각각의 레지스터 값을 통해 독립적으로 제어되며, 레지스터 모듈(320)의 다중 채널 제어 레지스터(321)에 의해 제어되는 다중 채널 관리 모듈(330)을 통해 하나의 채널처럼 관리되며 이에 따라 동작할 수 있다. 한편, 소스 어드레스 오프셋(325) 및 목적지 어드레스 오프셋(326)은 다중 채널 관리 모듈(330)이 전송 블록에 대한 설정 값을 4개로 분할하여 설정할 때 사용된다. 이에 대해서는 후에 상세히 설명하기로 한다.
다중 채널 관리 모듈(330)은 하나의 채널을 제어하는 레지스터 세트에 설정된 소스 어드레스(322), 목적지 어드레스(323), 전송 크기(324), 소스 어드레스 오프셋(325), 목적지 어드레스 오프셋(326)의 값들을 이용해 전송하고자 하는 전체 블록에 대한 설정 값을 4개의 DMA 채널(311, 312, 313, 314)에 분할하여 설정하는 기능을 수행한다. 구체적으로, 레지스터 모듈(320)의 레지스터 세트에 설정된 소스 어드레스(322)를 채널(311)을 위한 소스 어드레스(331), 채널(312)을 위한 소스 어드레스(334), 채널(313)을 위한 소스 어드레스(337), 채널(314)을 위한 소스 어드레스(340)로 분할하여 설정할 수 있고, 목적지 어드레스(323) 및 전송 크기(324)에 관한 설정 값 역시 각 채널을 위한 목적지 어드레스(332, 335, 338, 341) 및 각채널을 위한 전송 크기(333, 336, 339, 342)로 분할하여 설정할 수 있다.
구체적인 분할 설정 방법에 대해 설명하면 다음과 같다. 먼저, 채널(311)에 대한 소스 어드레스(331) 및 목적지 어드레스(332)로서는 레지스터 모듈(320)의 소스 어드레스(322) 및 목적지 어드레스(324)를 그대로 사용할 수 있다. 한편, 채널(312)에 대한 소스 어드레스(334) 및 목적지 어드레스(335)는 하나 앞선 채널(311)의 소스 어드레스(331) 및 목적지 어드레스(332)에 레지스터 모듈(320)의 소스 어드레스 오프셋(325) 값 및 목적지 어드레스 오프셋(326) 값을 더하여 설정할 수 있다. 또한, 채널(313)에 대한 소스 어드레스(337) 및 목적지 어드레스(338) 역시 하나 앞선 채널(312)의 소스 어드레스(334) 및 목적지 어드레스(335)에 레지스터 모듈(320)의 소스 어드레스 오프셋(325) 값 및 목적지 어드레스 오프셋(326) 값을 더하여 설정할 수 있다. 채널(314)에 대한 소스 어드레스(340) 및 목적지 어드레스(341) 역시 동일한 방법으로 설정된다. 한편, 레지스터 모듈(320)의 전송 크기(324) 값을 채널(311, 312, 313, 314)의 수로 나눈 값이 각 채널(311, 312, 313, 314)에 대한 전송 크기(333, 336, 339, 342) 값이 될 수 있다.
이에 따라, 4개의 DMA 채널(311, 312, 313, 314)이 하나의 채널이 수행할 동작을 나누어 수행할 수 있게 된다. 또한, 다중 채널 관리 모듈(330)은 재설정된 자체 레지스터(331~342) 값들을 DMA 채널 제어부(350)로 전달하여 4개의 채널(311, 312, 313, 314)이 독립적으로 제어될 수 있게 한다. 이에 의해, 4개의 채널(311, 312, 313, 314)은 접속 모듈(400)을 통해 메모리 제어부(200)에 접근함으로써 메모리(100)로부터 데이터를 읽고 쓸 수 있게 된다.
4개의 DMA 채널(311, 312, 313, 314)을 통해 메모리(100)로부터 읽혀진 데이터는 1개의 DMA 포트(310)를 통해 주변 장치 또는 기타 장치로 전송된다. 한편, 전체적인 동작 중에 주변 장치 또는 기타 장치로부터 읽혀지는 데이터는 1개의 DMA 포트(310)를 통해 DMA 제어부(300)로 전송된다. 이 경우에도 다중 채널 관리 모듈(330)은 전송하고자 하는 전체 블록에 대한 설정 값을 4개의 DMA 채널(311, 312, 313, 314)에 분할하여 설정하고, 4개의 DMA 채널(311, 312, 313, 314)이 독립적으로 제어될 수 있게 한다. 이에 따라, 1개의 DMA 포트(310)를 통해 전달된 데이터는 4개의 채널(311, 312, 313, 314)로 분할되어 메모리 제어부(200)를 통해 메모리(100)에 전달되고, 메모리(100)는 전달된 데이터를 저장한다.
이와 같이, DMA 제어부(300)에 있어서 다중 채널 관리 모듈(330)은 물리적으로 서로 분리된 4개의 채널(311, 312, 313, 314)이 1개의 채널과 같이 동작할 수 있도록 설정하고, DMA 채널 제어부(350)는 이러한 설정을 이용해 DMA 제어부(300)의 4개의 채널(311, 312, 313, 314)과 메모리 제어부(200)의 4개의 채널(211, 212, 213, 214)이 연계적으로 동작할 수 있도록 제어함으로써, 메모리의 전송 효율이 극대화될 수 있게 된다.
전송 특성
도 5a 및 도 5b는 각각 1채널만을 사용하여 데이터를 읽을 때와 본 발명에서와 같이 4개의 채널을 사용하여 데이터를 읽을 때, 메모리 제어부(200)의 채널(211, 212, 213, 214)과 메모리 인터페이스(111)에서의 어드레스와 데이터의 전송 특성을 나타낸다.
도 5a를 참조하면, 1개의 채널만을 이용하여 어드레스 및 데이터를 전송하는 경우에는 메모리(100)로부터 소정이 데이터가 전송된 후 다음 데이터 전송을 위해 수행하여야 하는 프리차징(pre-charge) 시간만큼의 공백이 주기적으로 있었다. 즉, 메모리 인터페이스(111)를 통해 메모리(100)로부터 D1, D2, D3, D4 라는 데이터가 전송된 후, 다음 데이터인 D5, D6, D7, D8이라는 데이터 전송을 위한 프리차징 시간이 필수적이었다. 따라서, 전체 데이터를 전송하는 데에는 데이터의 순 전송 시간과 프리차징 시간의 합에 해당하는 시간이 소요될 수 밖에 없었다.
그러나, 도 5b를 참조하면, 4개의 채널을 이용하는 경우에는 하나의 채널에서 데이터 전송이 이루어지는 경우, 다른 채널에 대해서는 프리차징이 수행되게 된다. 즉, 채널(211)에 의해 데이터 전송이 이루어지는 동시에 채널(212)에서는 프리차징이 이루어질 수 있고, 이에 따라, 채널(211)에 의한 데이터 전송이 끝남과 동시에 채널(212)에 의한 데이터 전송이 이루어지게 된다. 따라서, 데이터 전체 데이터 전송 시간은 프리차징을 위해 필요한 클록 주기가 감소한만큼 줄어들게 되며, 이에 따라, 데이터 전송 효율이 최대화될 수 있게 된다.
DMA 제어부의 구동예
도 6a 및 도 6b는 각각 1개의 DMA 채널을 이용하여 데이터 전송을 하기 위한 레지스터 설정 시 적용되는 DMA 채널의 동작 설정 값과 다중 채널 관리 모듈(330)을 통해 4채널을 통합 관리할 시에 적용되는 DMA 채널의 동작 설정 값의 일례를 나타내는 도면이다.
도 6a를 참조하면, 1개의 DMA 채널만을 사용하는 경우에는 DMA 제어부에서 채널 동작을 위한 레지스터 값을 순차적으로 4번에 걸쳐 설정하여야 한다는 것을 알 수 있다. 즉, DMA 레지스터 모듈에서 4번에 걸쳐 서로 다른 레지스터 값을 설정하여야 한다.
반면, 도 6b를 참조하면, 본 발명의 다중 채널 관리 모듈(330)은 레지스터 모듈(320)에 의한 1번의 채널 값 설정을 통해 4개의 채널이 동시에 관리될 수 있도록 한다. 구체적으로, 레지스터 모듈(320)에 의해 소스 어드레스(322), 목적지 어드레스(323), 전송 크기(324), 소스 어드레스 오프셋(325), 목적지 어드레스 오프셋(326) 값이 설정되면, 다중 채널 관리 모듈(330)은 이 값만으로 4개 채널의 설정 값을 세팅한다. 전술한 바와 같이, 채널(311)을 위한 소스 어드레스(331) 및 목적지 어드레스(332)는 소스 어드레스(322) 및 목적지 어드레스(323)로 설정되고, 채널(312)에 대한 소스 어드레스(334) 및 목적지 어드레스(335)는 소스 어드레스(331) 및 목적지 어드레스(332)에 소스 어드레스 오프셋(325) 값 및 목적지 어드레스 오프셋(326) 값을 더하여 설정할 수 있다. 그 이후의 채널(313, 314)에 대해서도 동일한 방법으로 레지스터 값이 설정된다. 이 때, 각 채널(311, 312, 313, 314)에 대한 전송 크기(333, 336, 339, 342) 값은 레지스터 모듈(320)의 전송 크기(324)를 분할한 값으로 설정된다. 도 6b의 예에서는 전송 크기(324) 값인 0x20(16진수)을 채널(311, 312, 313, 314)의 수 4로 나눈 값 0x8이 채널(311, 312, 313, 314)의 전송 크기(333, 336, 339, 342) 값이 된다. 이러한 방식에 따름으로써 4번의 채널 설정 시간을 줄일 수 있고, 효율적인 데이터 전송이 가능해진다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시 예들에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 메모리
111: 메모리 인터페이스
200: 메모리 제어부
211, 212, 213, 214: 채널
300: DMA 제어부
311, 312, 313, 314: DMA 채널
400: 접속 모듈

Claims (11)

  1. 메모리와 데이터 송수신을 수행하며 물리적으로 서로 분리된 복수의 채널을 갖는 메모리 제어부, 및
    상기 메모리 제어부의 복수의 채널과 접속되며 물리적으로 서로 분리된 복수의 DMA 채널을 갖고, 상기 복수의 DMA 채널 및 상기 메모리 제어부를 통해 상기 메모리와 데이터 송수신을 수행하는 DMA(Direct Memory Access) 제어부를 포함하며,
    상기 DMA 제어부는 소스 어드레스 값 및 목적지 어드레스 값에 소스 어드레스 오프셋 및 목적지 어드레스 오프셋 값을 선택적으로 가감하여 상기 복수의 DMA 채널에 대한 소스 어드레스 값 및 목적지 어드레스 값을 설정하는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 제어부의 채널과 상기 DMA 채널을 상호 연결시키는 접속 모듈을 더 포함하는 것을 특징으로 하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 접속 모듈은,
    상기 메모리 제어부의 채널과 상기 DMA 채널 간의 상호 연결을 위한 복수의 버스 또는 매트릭스 스위치를 포함하는 것을 특징으로 하는 메모리 시스템.
  4. 제1항에 있어서,
    상기 DMA 제어부는,
    송수신되는 데이터에 대한 정보를 저장하는 레지스터 세트를 갖는 레지스터 모듈, 및
    상기 레지스터 세트를 참조하여 상기 복수의 DMA 채널에 대한 설정 값을 분할하여 설정하는 다중 채널 관리 모듈을 포함하는 것을 특징으로 하는 메모리 시스템.
  5. 제4항에 있어서,
    상기 레지스터 세트는, 상기 소스 어드레스, 상기 목적지 어드레스, 전송 크기, 상기 소스 어드레스 오프셋 또는 상기 목적지 어드레스 오프셋 중 선택되는 적어도 하나를 포함하고,
    상기 다중 채널 관리 모듈은 상기 소스 어드레스 값 및 상기 목적지 어드레스 값에 상기 소스 어드레스 오프셋 및 상기 목적지 어드레스 오프셋 값을 선택적으로 가감하여 상기 복수의 DMA 채널에 대한 상기 소스 어드레스 값 및 상기 목적지 어드레스 값을 설정하는 것을 특징으로 하는 메모리 시스템.
  6. 제4항에 있어서,
    상기 레지스터 세트는, 상기 소스 어드레스, 상기 목적지 어드레스, 전송 크기, 상기 소스 어드레스 오프셋 또는 상기 목적지 어드레스 오프셋 중 선택되는 적어도 하나를 포함하고,
    상기 다중 채널 관리 모듈은 상기 전송 크기 값을 상기 DMA 채널의 수로 나누어 상기 DMA 채널 각각에 대한 전송 크기 값으로 설정하는 것을 특징으로 하는 메모리 시스템.
  7. 제1항에 있어서,
    상기 메모리 제어부는 상기 메모리와 메모리 인터페이스를 통해 데이터 송수신을 수행하는 것을 특징으로 하는 메모리 시스템.
  8. 제1항에 있어서,
    상기 DMA 제어부는 주변 장치와의 데이터 송수신을 위한 1개의 포트를 더 포함하는 것을 특징으로 하는 메모리 시스템.
  9. 복수의 DMA 채널을 통합 관리하기 위한 방법으로서,
    송수신 데이터와 연관되는 소정의 소스 어드레스, 목적지 어드레스, 전송 크기 또는 소스 어드레스 세트 중 선택되는 일 이상의 값을 기초로 하여, 상기 복수의 DMA 채널에 대한 설정 값을 각각 분할하여 설정하는 단계를 포함하며,
    상기 분할하여 설정하는 단계는, 상기 전송 크기 값을 상기 DMA 채널의 수로 나누어 상기 DMA 채널 각각에 대한 전송 크기 값으로 설정하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 분할하여 설정하는 단계는, 상기 소스 어드레스 값 및 상기 목적지 어드레스 값에 상기 소스 어드레스 오프셋 및 상기 목적지 어드레스 오프셋 값을 선택적으로 가감하여 상기 복수의 DMA 채널에 대한 소스 어드레스 값 및 목적지 어드레스 값을 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 삭제
KR1020100028448A 2009-12-21 2010-03-30 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법 KR101324580B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/882,141 US8205021B2 (en) 2009-12-21 2010-09-14 Memory system and integrated management method for plurality of DMA channels
US13/471,236 US20120226831A1 (en) 2009-12-21 2012-05-14 Memory system and integrated management method for plurality of dma channels

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090128401 2009-12-21
KR1020090128401 2009-12-21

Publications (2)

Publication Number Publication Date
KR20110073173A KR20110073173A (ko) 2011-06-29
KR101324580B1 true KR101324580B1 (ko) 2013-11-04

Family

ID=44403999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100028448A KR101324580B1 (ko) 2009-12-21 2010-03-30 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법

Country Status (1)

Country Link
KR (1) KR101324580B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151487A (ja) * 2007-12-19 2009-07-09 Panasonic Corp Dma転送制御装置及びデータ転送装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151487A (ja) * 2007-12-19 2009-07-09 Panasonic Corp Dma転送制御装置及びデータ転送装置

Also Published As

Publication number Publication date
KR20110073173A (ko) 2011-06-29

Similar Documents

Publication Publication Date Title
US6408367B2 (en) Data path architecture and arbitration scheme for providing access to a shared system resource
EP1665056B1 (en) Multiple processor system and method including multiple memory hub modules
TWI409815B (zh) 控制接收讀取資料時序之記憶體系統和方法
US7797467B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
KR101600447B1 (ko) 구성 가능한 대역폭 메모리 장치들 및 방법들
US20040076044A1 (en) Method and system for improving access latency of multiple bank devices
KR100934227B1 (ko) 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US20040054864A1 (en) Memory controller
KR20110059712A (ko) 메모리 모듈 및 메모리 모듈 제어 방법
KR20070059859A (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
US7970960B2 (en) Direct memory access controller and data transmitting method of direct memory access channel
US11385829B2 (en) Memory controller for non-interfering accesses to nonvolatile memory by different masters, and related systems and methods
KR20150024350A (ko) 링 토폴로지 스테이터스 인디케이션
US20180253391A1 (en) Multiple channel memory controller using virtual channel
JP5302507B2 (ja) プロセッサアーキテクチャ
US20050177674A1 (en) Configurable embedded processor
KR101533685B1 (ko) 다중 프로세서용 메모리 장치 및 이를 포함하는 메모리 시스템
EP1588276B1 (en) Processor array
KR101324580B1 (ko) 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법
US20130086334A1 (en) Serially connected memory having subdivided data interface
US8806132B2 (en) Information processing device, memory access control device, and address generation method thereof
US20220027294A1 (en) Storage card and storage device
US8205021B2 (en) Memory system and integrated management method for plurality of DMA channels
CN112783811B (zh) 微控制器架构及架构内数据读取方法
KR101910619B1 (ko) 시스템 칩 설계를 위한 효율적인 온칩버스 구조

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: 20170209

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 6