KR20060089505A - Dma 제어 장치 및 방법 - Google Patents

Dma 제어 장치 및 방법 Download PDF

Info

Publication number
KR20060089505A
KR20060089505A KR1020050010769A KR20050010769A KR20060089505A KR 20060089505 A KR20060089505 A KR 20060089505A KR 1020050010769 A KR1020050010769 A KR 1020050010769A KR 20050010769 A KR20050010769 A KR 20050010769A KR 20060089505 A KR20060089505 A KR 20060089505A
Authority
KR
South Korea
Prior art keywords
control register
dma
change
control
data
Prior art date
Application number
KR1020050010769A
Other languages
English (en)
Other versions
KR100703406B1 (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 KR1020050010769A priority Critical patent/KR100703406B1/ko
Priority to US11/341,787 priority patent/US20060179181A1/en
Publication of KR20060089505A publication Critical patent/KR20060089505A/ko
Application granted granted Critical
Publication of KR100703406B1 publication Critical patent/KR100703406B1/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

Landscapes

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

Abstract

본 발명은 DMA(Direct Memory Access) 제어 장치 및 방법에 관한 것으로, 다수의 제어레지스터와, DMA 데이터 전송 중 미리 설정된 변경 시점과 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 제어레지스터 선택 모듈을 구비하여, 선택된 제어레지스터 값에 따라 DMA 데이터 전송을 제어함으로써, 적정 시점에 제어레지스터 값을 설정할 수 있고, 새로운 제어레지스터 값을 설정하기 위한 주제어부의 로드를 감소시킬 수 있다.
DMA(Direct Memory Access), 제어레지스터, 제어레지스터 선택

Description

DMA 제어 장치 및 방법{APPARATUS AND METHOD FOR CONTROLING DMA}
도1은 종래의 DMA(Direct Memory Access) 데이터 전송에 따른 타이밍도로서,
도1a는 연속적인 DMA 데이터 전송시 전송 간격이 충분한 경우 데이터 전송에 따른 타이밍도,
도1b는 연속적인 DMA 데이터 전송시 전송 간격이 짧은 경우 DMA 전송에 따른 타이밍도,
도2는 종래의 DMA 제어부를 구비하는 GPRS/EDGE(General Packet Radio Services/Enhanced Data rate for Gsm Evolution) 이동 통신 단말의 블록 구성도,
도3은 GPRS/EDGE 이동 통신 단말의 직렬 데이터 전송에 따른 타이밍도,
도4는 GPRS/EDGE 이동 통신 단말의 종래의 DMA 전송에 따른 타이밍도,
도5는 본 발명의 일 실시예에 따른 DMA 제어부의 블록 구성도,
도6은 본 발명의 일 실시예에 따른 주 제어부 동작 흐름도,
도7은 본 발명의 일 실시예에 따른 제어레지스터 선택 모듈의 동작흐름도,
도8은 본 발명의 일 실시예에 따른 제어레지스터 선택 제어기의 동작흐름도,
도9는 본 발명의 일 실시예에 따른 DMA 데이터 전송시 타이밍도.
본 발명은 DMA(Direct Memory Access)에 관한 것으로, 특히 효율적인 DMA 제어 장치 및 방법에 관한 것이다.
DMA(Direct Memory Access)는 별도의 제어기를 사용하여 메인 CPU(Central Processing Unit)에 부하를 주지 않고 직접 주변 장치의 데이터를 메모리로 전송하는 것으로 일반화된 입출력 데이터 전송 방식이다. DMA 제어부는 DMA 데이터 전송을 하기 위해 메인 CPU의 위임을 받아 특정 영역의 데이터를 지정된 영역에 복사하는 역할을 담당한다. 이에 따라 메인 CPU의 부하를 감소시킬 뿐만 아니라 메모리로 많은 양의 데이터를 고속으로 이동시킬 수 있다.
상기한 DMA에 따른 연속적인 데이터 전송 과정을 도1을 참조하여 설명한다. 도1은 종래의 DMA(Direct Memory Access) 데이터 전송에 따른 타이밍도로서, 도1a는 연속적인 DMA 데이터 전송시 전송 간격이 충분한 경우 데이터 전송에 따른 타이밍도이고, 도1b는 연속적인 DMA 데이터 전송시 전송 간격이 짧은 경우 DMA 데이터 전송에 따른 타이밍도이다. 도1a를 참조하여, 제어레지스터 변경 구간a1과 a2는 상기 DMA제어기의 제어레지스터의 값이 변경되는 구간이다. 상기 제어레지스터는 전송 데이터의 길이와, 전송 데이터의 목적지 주소 등 데이터 전송시 필요한 정보를 저장하고, 상기 정보는 중앙 처리 장치에 의해 변경되며, 제어레지스터의 저장값에 따라 DMA 데이터 전송이 이루어진다. 데이터 전송 구간b1과 b2는 실질적으로 데이 터가 전송되는 구간이고, 전송 간격 t1은 상기 b1과 b2 사이의 시간 간격과 같이 연속적인 데이터의 전송시 각 데이터 간의 전송 간격이다. 메인 CPU는 DMA 데이터 전송을 하기 전에 도1a에 도시된 것과 같이 a1 또는 a2에서 제어레지스터의 값을 설정하고, 그 후, DMA 제어기는 b1 또는 b2에 설정된 제어레지스터의 값에 따라 데이터를 메모리의 적정 영역으로 전송한다. 따라서 연속적인 데이터 전송시 제어레지스터의 값을 변경해야 하는 경우에는 도1a와 같이, 전송 간격 t1이 제어레지스터 값을 변경하는데 걸리는 시간 a2 이상으로 확보 되어야 데이터 전송이 원활하게 이루어진다. 하지만, 도1b와 같이 전송 간격 t1이 제어레지스터 변경 구간 a2보다 짧은 경우, 다음 데이터 전송시(b2 구간) 오류가 발생할 수도 있다. 이를 보완하기 위해 소프트웨어 또는 하드웨어적인 로드가 발생하게 되며, 이는 전체 시스템의 성능 저하 요소로 작용한다.
상기 DMA는 GPRS/EDGE 이동 통신 단말의 베이스 밴드의 입출력 데이터 전송시에도 이용하는데, 이에 따른 GPRS/EDGE(General Packet Radio Services/Enhanced Data rate for Gsm Evolution) 방식의 이동 통신 단말의 구성을 도2에 도시하였다. 도2는 종래의 DMA 제어부를 구비하는 GPRS/EDGE 이동 통신 단말의 블록 구성도이다. 도2에 도시된 바와 같이, GPRS/EDGE 이동 통신 단말은 주제어부(10)와 DMA 제어부(20), 베이스 밴드 인터페이스 버퍼(30), 메모리(40)를 포함하여 이루어진다. 주제어부(10)는 GPRS/EDGE 이동 통신 단말의 전체적인 동작을 제어하며, DMA 데이터 전송 방식에 따라 상기 베이스 밴드 인터페이스 버퍼(30)로부터 출력되는 병렬 무선 데이터를 상기 메모리(40)로 저장하기 위해 필요한 제어레지스터(21)의 값을 설정한다. 상기 주제어부(10)는 상기한 설명에 있어서, 메인 CPU에 해당한다. DMA 제어부(20)는 상기 제어레지스터(21)에 저장된 제어레지스터 값에 따라 베이스 밴드 인터페이스 버퍼(30)로부터 입력되는 데이터를 메모리(40)의 적정 영역으로 전송한다.
상기와 같은 구조에서 직렬 데이터가 실질적으로 상기 베이스 밴드 인터페이스 버퍼(30)에서 메모리(40)로 전송되는 과정은 다음과 같다. 먼저 도3을 참조하여 GPRS/EDGE 직렬 데이터의 구성을 설명한다. 도3은 GPRS/EDGE 이동 통신 단말의 직렬 데이터 전송에 따른 타이밍도이다. GPRS/EDGE 이동 통신 방식에 따른 GPRS/EDGE 심볼 간격은 3.69 μsec이다. 상기 GPRS/EDGE 심볼을 A/D(Analog to Digital) 변환하면 두 개의 양자화된 I,Q 데이터가 생성된다. I 데이터와 Q 데이터는 직렬 무선 데이터로서, 상기 베이스 밴드 인터페이스 버퍼(30)에 심볼 간격에 따라 주기적으로 입력된다. 그리고 이에 따른 DMA 전송 요구의 발생시점은 상기 베이스 밴드 인터페이스 버퍼(30)에 직렬 무선 데이터의 입력이 완료되는 시점에 이루어진다. 도3을 참조하여, DMA 전송 요구는 I 데이터의 경우 c1, Q data의 경우 c2에 발생한다. 그런데 만약, 베이스밴드 인터페이스 버퍼(30)로부터 직렬 무선 데이터를 수신하고 있는 상태에서 DMA 제어부(20)의 제어레지스터(21)의 값을 변경하면, 데이터의 손상을 가져올 수 있다. 때문에 안전하게 상기 제어레지스터(21)의 값을 변경할 수 있는 구간은 c2와 c3사이의 구간이 되고, 이 구간을 이용하면 직렬 데이터가 연속적으로 공급되는 상태에서도 DMA 제어부(20)의 제어레지스터(21) 값을 변경하여 사용할 수 있게 된다.
이러한 방법을 사용하면 도4와 같이 연속되는 두개의 데이터에 대한 DMA 데이터 전송이 가능하다. 도4는 GPRS/EDGE 이동 통신 단말의 종래의 DMA 전송에 따른 타이밍도이다.
도4에서 시간 간격 a1과 a2는 제어레지스터(21) 변경 구간이고, b1과 b2는 실제 데이터 전송 구간이며, d는 DMA 제어 프로그램 동작 구간이다. 도4에 도시된 바와 같이, 주제어부(10)는 DMA 제어 프로그램에 따른 동작을 첫 번째 데이터 전송이 끝나가는 시점에서, 즉 b1이 끝나가는 시점에서 시작한다. 주제어부(10)는 DMA 제어 프로그램에 따라 DMA 데이터 전송과 관련하여 전송할 데이터의 크기, 저장 영역등을 결정하고, 관련 태스크를 구동한다. 이후, DMA 제어 프로그램의 마지막 과정으로 상기한 동작들의 결과에 따른 데이터를 제어레지스터(21)에 저장하여 제어레지스터(21)를 설정한다. 그런데 주제어부(10)는 제어레지스터(21)를 설정하기 전에, 도3에 도시된 c2 내지 c3 구간을 찾아야한다. 이를 위해 주제어부(10)는 현재 전송한 DMA 데이터의 목적지 주소를 지속적으로 검사하고, even/odd 여부를 판단 기준으로 하여 c2 내지 c3 구간을 찾아낸다. 이 과정은 최대 7.8 μsec 동안 주제어부(10)가 다른 동작을 할 수 없게 만들기 때문에, 이동 통신 단말의 전체 측면에서 본다면 상당한 리소스가 사용되는 것이다. 더욱이 제어레지스터(21)의 설정이 상기한 과정들의 수행 이후에 이루어지기 때문에, 실질적인 설정 시점은 a2의 끝 부분이 되고, 이는 데이터의 전송 구간이 b2로 변경되는 시점과 시간차를 발생하게 할 수 도 있다.
상기한 바와 같이 DMA 데이터를 연속적으로 전송하고자 할 때, 종래의 DMA 제어 방식은 정확한 제어레지스터 설정 시점을 놓칠 수 있다는 문제점과, 안전한 제어레지스터 설정을 위한 조건을 검사하기 위해 메인 CPU 또는 주제어부를 장시간 점유해야한다는 문제점을 유발한다.
따라서 본 발명은, DMA 데이터 전송에 따른 주제어부 점유시간을 감소하기 위한 DMA 제어 장치 및 방법을 제공하는데 그 목적이 있다.
그리고 본 발명은 DMA 데이터의 연속적인 전송시 정확한 레지스터 설정 시점을 제공하기 위한 DMA 제어 장치 및 방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명은 다수의 제어레지스터와, DMA 데이터 전송 중 미리 설정된 변경시점과 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 제어레지스터 선택 모듈을 구비하여, 선택된 제어레지스터 값에 따라 DMA 데이터 전송을 제어함을 특징으로 한다.
그리고 다수의 제어레지스터를 설정하는 과정과, 미리 설정된 변경시점 결정 조건을 만족하면 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 과정과, 선택된 제어레지스터 값에 따라 DMA 데이터 전송을 제어하는 과정을 구비함을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면에서 동일한 구성요소들에 대해서는 비록 다른 도면에 표시되더라도 가능한 한 동일한 참조번호 및 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
먼저 도5를 참조하여 본 발명에 따른 DMA 제어부를 설명한다. 도5는 본 발명의 일 실시예에 따른 DMA 제어부의 블록 구성도이다. 도5를 참조하여 DMA 제어부(100)는 제어레지스터 선택 모듈(110)과 제1제어레지스터(180)와, 제2제어레지스터(190) 내지 제n제어레지스터(200)를 포함하는 다수의 제어레지스터(180, 190, 200)를 포함하여 이루어진다. 그리고 상기 제어레지스터선택 모듈(110)은 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)와 제어레지스터 선택 제어기(160)와, 제어레지스터 선택기(170)를 포함하여 이루어진다.
주제어부(210)는 상기 DMA 제어부(100)를 구비하는 임의의 단말의 전체적인 동작 제어를 하고, 본 발명의 일 실시예에 따라 임의의 동작 수행에 따른 DMA 데이터 전송과 관련되는 상기 다수의 제어레지스터(180, 190, 200)를 설정하며, DMA 제어부(100)의 동작 제어값을 설정한다. 상기 다수의 제어레지스터(180, 190, 200) 설정은 각각의 제어레지스터에 제어레지스터 값을 저장함으로써 이루어진다. 상기 제어레지스터 값은 DMA 방식으로 전송될 데이터의 길이와 개수, 상기 데이터가 저 장될 메모리의 저장 시작 주소와 목적지 주소 정보를 포함한다. 상기 DMA 제어부(100)는 상기 제어레지스터 값에 따라 DMA 데이터 전송을 한다. 상기 동작 제어값은 연속적인 DMA 데이터 전송시 필요한 상기 다수의 제어레지스터에 대한 변경 순서 목록과, 상기 제어레지스터 변경 순서 목록에 따라 해당 제어레지스터를 선택하는 변경시점을 결정짓는 조건으로 이루어진 기준 정보와, DMA 데이터 전송을 시작시 필요한 기본 제어레지스터 번호 정보를 포함한다. 상기 기본 제어레지스터 번호 정보는 DMA 데이터 전송 시작시 선택되는 초기 제어레지스터 번호를 나타내는 정보이다. 새로운 제어레지스터 선택시 필요한 상기 제어레지스터 변경시점에 대한 기준 정보는 필요에 따라 현재 DMA 전송이 완료된 데이터의 목적지 주소에 대한 even 또는 odd 값, 특정 목적지 주소, DMA 데이터 전송 지속 시간, 전송된 DMA 데이터의 개수, 상기 주제어부(210)로부터의 직접적인 변경 요구 등이 될 수 있다. 상기 변경시점 기준 정보 중 현재 DMA 전송이 완료된 데이터의 목적지 주소에 대한 even 또는 odd 값은 현재 전송이 완료된 DMA 데이터의 목적지 주소를 검출하여, 검출된 목적지 주소 값이 even 값일 때 또는 검출된 목적지 주소 값이 odd 값일 때를 상기 제어레지스터의 변경시점으로 하는 기준 정보로서, even/odd 검출기(120)에 설정된다. 상기 변경시점 기준 정보 중 특정 목적지 주소는 임의의 특정 목적지 주소를 설정하여, 현재 DMA 전송이 완료된 데이터의 목적지 주소를 검출하여, 검출된 목적지 주소가 상기 특정 목적지 주소와 일치할 때를 상기 제어레지스터의 번경 시점으로 하는 기준 정보로서, 데이터 주소 검출기(130)에 설정된다. 상기 변경시점 기준 정보 중 상기 DMA 전송 지속 시간은 임의의 시간 간격을 설정하여 DMA 전송이 시작 된 시점부터 현재까지의 시간 간격이 상기 임의의 시간 간격과 일치할 때를 상기 제어레지스터의 변경시점으로 하는 기준 정보로서, DMA 타이머(150)를 이용해 설정한다. 상기 변경시점 기준 정보 중 전송된 DMA 데이터의 개수는 임의의 DMA 데이터 개수를 설정하여, DMA 전송이 이루어진 데이터의 개수를 카운트하여 상기 임의의 DMA 데이터 개수와 일치할 때를 상기 제어레지스터의 변경시점으로 하는 기준 정보로서, DMA 전송 데이터 카운터(140)에 설정된다. 상기 변경시점 기준 정보 중 상기 주제어부(210)로부터의 직접적인 변경 요구는 주제어부(210)에 의해 불규칙적으로 발생하는 인터럽트이다.
상기한 본 발명에 따른 주제어부(210)의 동작 과정을 도6에 도시하였다. 도6은 본 발명의 일 실시예에 따른 주제어부(210) 동작 흐름도이다. 도6을 참조하여, 주제어부(210)는 301단계에서 임의의 동작 수행에 따른 DMA 데이터 전송과 관련된 다수의 제어레지스터를 설정하고 303단계로 진행한다. 주제어부(210)는 상기 다수의 제어레지스터 값을 대응하는 제어레지스터(180,190,200)에 저장함으로써 다수의 제어레지스터(180,190,200) 설정을 한다. 이후, 303단계에서 주제어부(210)는 상기 임의의 동작에 따른 DMA 제어부(100) 동작 제어값을 설정하고 동작 과정을 종료한다. 주제어부(210)는 상기 동작 제어값을 상기 제어레지스터 선택 모듈(110)로 전송함으로써, DMA 제어부(100)의 동작 제어값 설정을 한다.
도5로 돌아와, 상기 동작 제어값을 수신한 상기 제어레지스터 선택 모듈(110)은 상기 제어레지스터 선택 제어기(160)에 상기 동작제어 값에 포함된 상기 제어레지스터 변경 순서 목록을 저장하고, 상기한 변경시점 기준 정보에 따라 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)를 설정한다. 그리고 상기 제어레지스터 선택 제어기(160)는 상기 기본 제어레지스터 번호 정보를 상기 제어 레지스터 선택기(170)로 출력한다.
상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)는 상기 변경시점 기준 정보에 의한 설정이 이루어진 상태이고, DMA 데이터 전송이 시작되면 다음과 같이 동작한다. even/odd 검출기(120)는 미리 설정된 기준 정보 값에 따라 DMA 데이터 전송 중에 현재 전송 완료된 데이터의 목적지 주소를 검출하여, 검출된 목적지 주소의 even 또는 odd 값에 따라 변경 요구 신호를 상기 제어레지스터 선택 제어기(160)로 출력한다. 상기 데이터 주소 검출기(130) 현재 전송이 완료된 데이터의 주소를 검출하여, 상기 주제어부(210)에 의해 미리 설정된 특정 주소와 일치하면 변경 요구 신호를 상기 제어레지스터 선택 제어기(160)로 출력한다. 상기 DMA 전송 데이터 카운터(140)는 전송되는 DMA 데이터의 개수를 카운트하여, 상기 선택 기준 정보에 따라 미리 설정된 특정 개수만큼 상기 DMA 데이터가 전송되면 변경 요구 신호를 상기 제어레지스터 선택 제어기(160)로 출력한다. 상기 DMA 타이머(150)는 상기 주제어부(210)의 설정에 따라 타이머가 완료되면 변경 요구 신호를 상기 제어레지스터 선택 제어기(160)로 출력한다.
상기 제어레지스터 선택 제어기(160)는 DMA 데이터 전송이 시작되면 상기 제어레지스터 선택기(170)로 변경 신호를 출력하여, 상기 제어레지스터 선택기(170)가 미리 저장된 상기 기본 제어레지스터 번호 정보에 해당하는 제어레지스터를 선 택하게 한다. 그리고 제어레지스터 변경 순서 목록에 따라 다음 순서의 제어레지스터의 번호 정보를 상기 제어 레지스터 선택기(170)로 출력한다. 이후 제어 레지스터의 변경 요구를 감지하면, 즉, 상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)로부터 변경 요구 신호가 입력되면 상기 제어레지스터 선택기(170)로 변경 신호를 출력한다. 그리고 주제어부(210)로부터 직접적으로 변경 요구가 입력되면 상기 제어레지스터 선택기(170)로 변경 신호를 출력한다.
상기 제어레지스터 선택기(170)는 상기 제어레지스터 선택 제어기(160)로부터 상기 변경 신호가 수신되면 제어레지스터의 번호 정보에 따라 해당 제어레지스터를 선택한다.
DMA 제어부(100)는 상기 선택된 제어레지스터의 값에 따라 DMA 데이터 전송을 수행한다.
상기한 바와 같이 구성되는 DMA 제어부(100)의 본 발명에 따른 동작 과정을 도7과 도8을 참조하여 설명하면 다음과 같다. 도7은 본 발명의 일 실시예에 따른 제어레지스터선택 모듈(100)의 동작흐름도이고, 도8은 본 발명의 일 실시예에 따른 제어레지스터 선택 제어기(160)의 동작흐름도이다.
먼저 도7을 참조하여, 제어레지스터선택 모듈(110)은 401단계에서 DMA 데이터 전송 시작 요구를 감지하면 403단계로 진행한다. 403단계에서 제어레지스터선택 모듈(110)은 상기 주제어부(210)에 의해 미리 저장된 기본 제어레지스터를 선택하여 초기 제어레지스터 값을 설정하여, 상기 DMA 제어부(100)가 상기 초기 제어레지 스터 값에 따른 DMA 데이터 전송을 수행할 수 있게 한다. 이후, 405단계에서 제어레지스터선택 모듈(110)은 제어레지스터 변경 요구를 감지하면 407단계로 진행한다. 상기 제어레지스터 변경 요구는 상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)와 상기 주제어부(210)가 변경 신호를 출력함으로써 감지된다. 407단계에서 제어레지스터선택 모듈(100)은 제어레지스터 변경 요구에 따라 다수개의 제어레지스터(180, 190, 200) 중 미리 저장된 제어레지스터 변경 순서 목록에 따른 다음 순서의 제어레지스터를 선택하여 새로운 제어레지스터 값으로 설정한다. DMA 제어부(100)는 새롭게 설정된 제어레지스터 값에 따라 DMA 데이터 전송을 한다. 그리고 제어레지스터선택 모듈(100)은 DMA 데이터 전송이 완료 될 때까지 상기 405단계 내지 407단계를 반복 수행한다.
상기한 과정에서 상기 405단계 내지 407단계에 해당하는 동작 과정을 수행하는 제어레지스터 선택 제어기(160)의 동작과정을 도8을 참조하여 설명한다. 도8은 본 발명의 일실시예에 따라 상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)가 상기 변경시점 기준 정보에 의해 설정이 이루어진 경우에 제어레지스터 선택 제어기(160)의 동작과정을 도시한 것이다.
도8을 참조하여 상기 DMA 제어부(100)가 임의의 제어레지스터 값에 따라 DMA 동작을 하고 있는 상태에서 제어레지스터 선택 제어기(160)는 501단계에서 미리 설정된 제어레지스터 변경 순서 목록에 따라 다음 순서의 제어레지스터 번호를 상기 제어 레지스터 선택기(170)로 출력하고 503단계로 진행한다. 503단계에서 제어레지스터 선택 제어기(160)는 even/odd 검출기(120)를 통해 현재 전송하는 데이터의 목적지 주소에 따른 even/odd 신호를 감지한다. 제어레지스터 선택 제어기(160)는 even/odd 신호가 감지되면 513단계로 진행하고, even/odd 신호가 감지되지 않으면 505단계로 진행한다. 513단계에서 제어레지스터 선택 제어기(160)는 제어레지스터 변경 신호를 제어레지스터 선택기(170)로 출력하여 제어레지스터 선택기(160)가 상기 501단계에서 수신한 제어레지스터 번호에 해당하는 제어레지스터를 선택하게 한다. 그리고 제어레지스터 선택 제어기(160)는 상기 501단계로 진행하여 상기 501단계 내지 상기 513단계를 반복 수행한다.
한편, 505단계에서 제어레지스터 선택 제어기(160)는 DMA 타이머(150)로부터 입력되는 변경 요구 신호에 의해 DMA 타이머(150)의 완료를 감지하며, DMA 타이머(150)가 완료가 감지되면 상기 513단계로 진행하고, 완료가 감지되지 않으면 507단계로 진행한다. 507단계에서 제어레지스터 선택 제어기(160)는 상기 DMA 전송 데이터 카운터(140)를 통해 미리 설정된 개수만큼 DMA 데이터가 전송되었는지를 판단하고, 미리 설정된 개수만큼 DMA 데이터가 전송되었으면 상기 513단계로 진행하고, 미리 설정된 개수만큼 DMA 데이터가 전송되지 않으면 509단계로 진행한다. 509단계에서 제어레지스터 선택 제어기(160)는 상기 데이터 주소 검출기(130)를 통해 현재 DMA 전송된 데이터의 목적지 주소가 미리 정해진 특정 주소인지 확인하여, 특정 주소이면 상기 513단계로 진행하고, 특정 주소가 아니면 511단계로 진행한다. 511단계에서 제어레지스터 선택 제어기(160)는 주제어부(210)로부터 변경 요구 신호가 입력되는지 확인하여, 변경 요구 신호가 입력되면 상기 513단계로 진행하고, 변경 요구 신호가 입력되지 않으면 상기 503단계로 진행하여, 상기 503단계 내지 상기 513단계를 반복 수행한다.
상기한 바와 같이 제어레지스터 선택 제어기(160)는 상기 주제어부(210)에 의해 미리 설정된 DMA 동작 제어값에 따라 동작하는 상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)로부터 변경 요구 신호가 입력되면 상기 제어레지스터 선택기(170)로 변경 신호를 출력하여, 제어 레지스터 선택 시점을 결정하여 적정시점에 제어 레지스터 선택기(170)가 해당 제어 레지스터를 선택하게 한다.
이를 도9를 참조하여 설명한다. 도9는 본 발명의 일 실시예에 따른 DMA 데이터 전송시 타이밍도이다. 도9에서 a'1 구간과 a'2 구간은 제어 레지스터 설정 구간이고, b1 구간과 b2 구간은 데이터 전송 구간이고, t2는 제어레지스터 변경시점이다. 상기 제어 레지스터 설정 구간 a'1 동안 주제어부(210)는 b1 구간 동안 전송될 데이터와 관련되는 제어레지스터 값을 임의의 제어레지스터에 저장한다. 그리고 주제어부(210)는 b2 구간 동안 전송되는 데이터와 관련된 제어레지스터 값을 상기 제어 레지스터 설정 구간 a'2 동안 임의의 레지스터에 저장하는데 도9에 도시된 바와 같이 a'1 구간과 동시에 진행할 수도 있고, b1 구간과 동시에 진행할 수도 있다. 이는 DMA 데이터 전송 구간 b1 동안 참조되는 제어레지스터의 값을 변경하는 것이 아니라. 다른 제어레지스터의 값을 변경하는 것이므로 데이터 전송에 영향을 미치지 않는다. 그리고 b2 구간 동안 참조할 제어레지스터의 값을 DMA 제어부(100)에 설정하는 것은 b2 구간이 시작하는 시점에서 상기 제어레지스터 선택기(170)가 해당 제어레지스터를 선택함으로써 이루어지므로 정확한 시점을 맞출 수 있다. 또한 해당 제어레지스터를 찾는 과정은 b1 구간 동안, 즉, d 구간 동안 제어레지스터선택 모듈(110)이 미리 설정된 DMA 동작 제어값에 따라 수행함으로써, 주제어부(210)에 DMA 동작에 따른 부하를 줄일 수 있게 된다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 예를 들어, 상기한 본 발명에 따른 실시예에서는 미리 설정된 제어레지스터 변경시점 기준 정보에 따라 상기 even/odd 검출기(120)와 데이터 주소 검출기(130)와, DMA 전송 데이터 카운터(140)와 DMA 타이머(150)로부터 출력되는 변경 요구 신호를 상기 제어레지스터 선택 제어기(160)가 각각 독립적으로 인식하여 제어레지스터를 변경하도록 구성하였다. 하지만, 본 발명의 다른 실시예에서는 상기 제어레지스터 선택 제어기(160)가 상기 변경 요구 신호를 조합하여 제어레지스터를 변경시점을 결정하도록 구성할 수도 있다. 일예로, 제어레지스터 선택기(160)가 DMA 타이머(150)와 even/odd 검출기(120)로부터 입력되는 변경 요구 신호를 조합하여 제어레지스터를 변경하도록 구성할 수 있다. 이에 따라, 먼저, 주제어부(210)가 DMA 제어부(100)의 동작 제어 값 설정시, 상기 제어레지스터 변경시점 기준 정보와 함께 복합 변경시점 기준 정보를 상기 제어레지스터 선택 모듈(110)로 전송한다. 상기 복합 변경시점 기준 정보란 다수의 변경시점 기준을 만족하는 경우를 실제 제어레지스터 변경시점으로 하겠다는 정보이다. 상기 복합 변경시점 기준 정보는 만족해야하는 다수 의 변경시점 기준의 종류와 상기 다수의 변경시점 기준에 대한 만족 순서를 포함한다. 상기한 일예에서 복합 변경시점 기준 정보는 임의의 시간 간격동안 DMA 전송이 이루어진 후, 현재 DMA 전송이 완료된 데이터의 목적지 주소가 even값을 가질 때를 변경시점으로 설정하는 것으로, 상기 다수의 변경시점 기준의 종류는 DMA 데이터 전송 지속 시간과 현재 DMA 전송이 완료된 데이터의 목적지 주소에 대한 even 또는 odd 값이다.
상기 제어레지스터 선택 모듈(110)은 입력된 상기 복합 변경시점 기준 정보를 상기 제어레지스터 선택 제어기(160)에 저장한다. 이에 따라 상기 제어레지스터 선택 제어기(160)는 DMA 전송이 시작되고, 상기 복합 변경시점 기준 정보에 포함된 다수의 변경시점 기준에 대응하는 변경 요구 신호의 입력이 모두 감지되면 제어레지스터 변경 신호를 제어 레지스터 선택 제어기(170)로 출력한다. 상기 일예에 따르면, 상기 제어레지스터 선택 제어기(160)는 DMA 타이머(150)로부터 변경 요구 신호가 입력되는 것을 감지하여 기억한 후, even/odd 검출기(120)로부터 변경 요구 신호가 입력되면, 그 때 제어레지스터 변경 신호를 제어 레지스터 선택 제어기(170)로 출력한다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
상술한 바와 같이 본 발명은 다수의 제어레지스터와, DMA(Direct Memory Access) 데이터 전송 중 미리 설정된 변경시점과 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 제어레지스터 선택 모듈을 구비하여, 선택된 제어레지스터 값에 따라 DMA 데이터 전송을 제어함으로써, 적정 시점에 제어레지스터 값을 설정할 수 있고, 새로운 제어레지스터 값을 설정하기 위한 주제어부의 로드를 감소시킬 수 있으며, 이에 따라 시스템의 전체적인 성능이 개선될 수 있다.

Claims (15)

  1. DMA(Direct Memory Access) 제어 장치에 있어서,
    다수의 제어레지스터와,
    DMA 데이터 전송 중 미리 설정된 변경시점과 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 제어레지스터 선택 모듈을 구비하여, 선택된 제어레지스터의 값에 따라 DMA 데이터 전송을 제어함을 특징으로 하는 장치.
  2. DMA(Direct Memory Access) 제어 장치에 있어서,
    다수의 제어레지스터와,
    미리 저장된 제어 레지스터 변경 순서 목록에 따라 다음 순서의 제어레지스터의 번호 정보를 출력하고, 미리 설정된 변경시점을 결정하는 조건을 만족하면 변경 신호를 출력하는 제어레지스터 선택 제어기와,
    상기 변경 신호가 입력되면 상기 다수의 제어레지스터 중 상기 제어레지스터 번호 정보에 대응하는 제어레지스터를 선택하는 제어레지스터 선택기를 구비하여 선택된 제어레지스터의 값에 따라 DMA 데이터 전송을 제어함을 특징으로 하는 장치.
  3. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 현재 전송 완료된 DMA 데이터의 목적지 주소가 미리 정해진 주소와 일치하면 상기 변경 신호를 출력함을 특징으로 하는 장치.
  4. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 현재 전송 완료된 DMA 데이터의 목적지 주소의 even/odd 값에 따라 상기 변경 신호를 출력함을 특징으로 하는 장치.
  5. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 미리 정해진 시간 동안 상기 DMA 데이터가 전송 되면 상기 변경 신호를 출력함을 특징으로 하는 장치.
  6. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 미리 정해진 개수만큼 상기 DMA 데이터가 전송 되면 상기 변경 신호를 출력함을 특징으로 하는 장치.
  7. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 주제어부로부터 제어레지 스터 변경 요구가 있으면 상기 변경 신호를 출력함을 특징으로 하는 장치.
  8. 제2항에 있어서, 상기 제어레지스터 선택 제어기는 다수의 미리 설정된 변경시점을 결정하는 조건을 모두 만족하면 상기 변경 신호를 출력함을 특징으로 하는 장치.
  9. DMA(Direct Memory Access) 제어 방법에 있어서,
    다수의 제어레지스터를 설정하는 과정과,
    미리 설정된 변경시점 결정 조건을 만족하면 미리 저장된 제어 레지스터 변경 순서 목록에 따라 순차적으로 상기 다수의 레지스터중 하나의 레지스터를 선택하는 과정과,
    선택된 제어레지스터의 값에 따라 DMA 데이터 전송을 제어하는 과정을 구비함을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 변경시점 결정 조건은 현재 전송 완료된 DMA 데이터의 목적지 주소가 미리 정해진 주소와 일치 여부임을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 변경시점 결정 조건은 현재 전송 완료된 DMA 데이터의 목적지 주소의 even/odd 값임을 특징으로 하는 방법.
  12. 제9항에 있어서, 상기 변경시점 결정 조건은 미리 정해진 시간 동안 DMA 데이터가 전송되는 것임을 특징으로 하는 방법.
  13. 제9항에 있어서, 상기 변경시점 결정 조건은 미리 정해진 개수만큼의 상기 DMA 데이터 전송 여부임을 특징으로 하는 방법.
  14. 제9항에 있어서, 상기 변경시점 결정 조건은 주제어부로부터 제어레지스터 변경 요구임을 특징으로 하는 방법.
  15. 제9항에 있어서, 상기 변경 시점 결정 조건은 다수의 미리 설정된 변경시점 결정 조건을 모두 만족하는 것임을 특징으로 하는 방법.
KR1020050010769A 2005-02-04 2005-02-04 Dma 제어 장치 및 방법 KR100703406B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050010769A KR100703406B1 (ko) 2005-02-04 2005-02-04 Dma 제어 장치 및 방법
US11/341,787 US20060179181A1 (en) 2005-02-04 2006-01-27 Apparatus and method for controlling direct memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050010769A KR100703406B1 (ko) 2005-02-04 2005-02-04 Dma 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060089505A true KR20060089505A (ko) 2006-08-09
KR100703406B1 KR100703406B1 (ko) 2007-04-03

Family

ID=36781186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050010769A KR100703406B1 (ko) 2005-02-04 2005-02-04 Dma 제어 장치 및 방법

Country Status (2)

Country Link
US (1) US20060179181A1 (ko)
KR (1) KR100703406B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140826B2 (en) * 2007-05-29 2012-03-20 International Business Machines Corporation Executing a gather operation on a parallel computer
US8161480B2 (en) * 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
JP2009151487A (ja) 2007-12-19 2009-07-09 Panasonic Corp Dma転送制御装置及びデータ転送装置
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US7991857B2 (en) 2008-03-24 2011-08-02 International Business Machines Corporation Broadcasting a message in a parallel computer
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8375197B2 (en) * 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8161268B2 (en) * 2008-05-21 2012-04-17 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
CN101661447B (zh) * 2008-08-26 2014-02-12 深圳艾科创新微电子有限公司 一种直接存储器存取的传输装置与方法
US8565089B2 (en) * 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9569384B2 (en) * 2013-03-14 2017-02-14 Infineon Technologies Ag Conditional links for direct memory access controllers
JP6564625B2 (ja) * 2015-06-15 2019-08-21 オリンパス株式会社 データ転送装置およびデータ転送方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5077664A (en) * 1988-03-08 1991-12-31 Fujitsu Limited Direct memory access controller
JP2550496B2 (ja) * 1989-03-30 1996-11-06 三菱電機株式会社 Dmaコントローラ
US5254191A (en) * 1990-10-04 1993-10-19 E. I. Du Pont De Nemours And Company Method for reducing shrinkage during firing of ceramic bodies
JP2002024158A (ja) * 2000-07-05 2002-01-25 Denso Corp データ転送装置及びマイクロコンピュータ
US8522041B2 (en) * 2000-12-07 2013-08-27 Sony Corporation System and method for efficiently performing a data encryption operation
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
US20060179181A1 (en) 2006-08-10
KR100703406B1 (ko) 2007-04-03

Similar Documents

Publication Publication Date Title
KR100703406B1 (ko) Dma 제어 장치 및 방법
US8046512B2 (en) Communication system with master and slave exchanging control data in predetermined communication period
US7187665B2 (en) Apparatus and method of scheduling channel allocation in dynamic TDMA frame
RU2006135380A (ru) Канал доступа с ограниченными временами прихода
US7428608B2 (en) Communication system, communication circuit and communication method
US20120250671A1 (en) Information communication apparatus and program storage medium
EP4270902A1 (en) Data conversion method and apparatus, and storage medium and electronic apparatus
JP2005086567A (ja) 通信システム、送信局及び受信局
JP4817834B2 (ja) 割り込み制御装置及び割り込み制御方法
JP3970563B2 (ja) 送信制御方法、通信システムおよび基地局
US7539206B2 (en) Communication apparatus and method for supporting carrier sense multiple access/collision detection
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP3459644B2 (ja) 無線通信システム端末用の同期装置
CN1571315B (zh) 选择时分多址传输信道的方法和使用此方法的通信系统
CN105338651A (zh) 配置有defer period的信道检测方法及装置
JP2001333071A (ja) 情報収集方法及び情報収集装置
US11683398B2 (en) Method, apparatus for cross-protocol opportunistic routing, electronic device and storage medium
CN114328321B (zh) 一种编码器内数据采样和通信方法、单片机及存储介质
JP2007506384A (ja) IEEE802.11eスケジュール・エレメントのTSFタイマのあいまいさを解決する方法
JP2006033490A (ja) データ通信装置及び通信システム
JP2007049507A (ja) 通信システム
JP6378218B2 (ja) 通信制御装置、通信制御方法、及びプログラム
JP4094396B2 (ja) シリアルデータ通信装置及び方法
JPH0319535A (ja) 通信チャンネル選択方式
JP3512278B2 (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