KR20060106142A - 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법 - Google Patents

직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법 Download PDF

Info

Publication number
KR20060106142A
KR20060106142A KR1020050028587A KR20050028587A KR20060106142A KR 20060106142 A KR20060106142 A KR 20060106142A KR 1020050028587 A KR1020050028587 A KR 1020050028587A KR 20050028587 A KR20050028587 A KR 20050028587A KR 20060106142 A KR20060106142 A KR 20060106142A
Authority
KR
South Korea
Prior art keywords
dma
data
transfer
register
request
Prior art date
Application number
KR1020050028587A
Other languages
English (en)
Other versions
KR101128898B1 (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 KR1020050028587A priority Critical patent/KR101128898B1/ko
Publication of KR20060106142A publication Critical patent/KR20060106142A/ko
Application granted granted Critical
Publication of KR101128898B1 publication Critical patent/KR101128898B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47CCHAIRS; SOFAS; BEDS
    • A47C21/00Attachments for beds, e.g. sheet holders, bed-cover holders; Ventilating, cooling or heating means in connection with bedsteads or mattresses
    • A47C21/04Devices for ventilating, cooling or heating
    • A47C21/048Devices for ventilating, cooling or heating for heating
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47CCHAIRS; SOFAS; BEDS
    • A47C27/00Spring, stuffed or fluid mattresses or cushions specially adapted for chairs, beds or sofas
    • A47C27/12Spring, stuffed or fluid mattresses or cushions specially adapted for chairs, beds or sofas with fibrous inlays, e.g. made of wool, of cotton
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47CCHAIRS; SOFAS; BEDS
    • A47C31/00Details or accessories for chairs, beds, or the like, not provided for in other groups of this subclass, e.g. upholstery fasteners, mattress protectors, stretching devices for mattress nets
    • A47C31/02Upholstery attaching means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C65/00Joining or sealing of preformed parts, e.g. welding of plastics materials; Apparatus therefor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B5/00Layered products characterised by the non- homogeneity or physical structure, i.e. comprising a fibrous, filamentary, particulate or foam layer; Layered products characterised by having a layer differing constitutionally or physically in different parts
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B68SADDLERY; UPHOLSTERY
    • B68GMETHODS, EQUIPMENT, OR MACHINES FOR USE IN UPHOLSTERING; UPHOLSTERY NOT OTHERWISE PROVIDED FOR
    • B68G7/00Making upholstery
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B14/00Use of inorganic materials as fillers, e.g. pigments, for mortars, concrete or artificial stone; Treatment of inorganic materials specially adapted to enhance their filling properties in mortars, concrete or artificial stone
    • C04B14/02Granular materials, e.g. microballoons
    • C04B14/04Silica-rich materials; Silicates
    • C04B14/10Clay
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D3/00Hot-water central heating systems
    • F24D3/12Tube and panel arrangements for ceiling, wall, or underfloor heating
    • F24D3/16Tube and panel arrangements for ceiling, wall, or underfloor heating mounted on, or adjacent to, a ceiling, wall or floor

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Ceramic Engineering (AREA)
  • Dispersion Chemistry (AREA)
  • Civil Engineering (AREA)
  • Manufacturing & Machinery (AREA)
  • Materials Engineering (AREA)
  • Structural Engineering (AREA)
  • Organic Chemistry (AREA)
  • Physics & Mathematics (AREA)
  • Thermal Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • General Engineering & Computer Science (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 특정한 주기마다 한번씩 데이터 전송이 이루어지는 입출력 장치에서도 직접 메모리 접근(Direct Memory Access, DMA) 동작을 안정적으로 수행할 수 있도록 하는 DMA 제어장치를 이용한 데이터 전송 시스템 및 전송 방법을 제공하기위한 것으로, 이를 위해 본 발명에서는 MCU 내부의 타이머로부터 입력되는 DMA 요청에 응답하여 DMA 요청신호를 생성하는 DMA 요청부와, 상기 DMA 요청신호에 따라 메모리와, 상기 타이머의 값에 대응하여 일정 주기 동안 데이터 송수신이 이루어지는 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부를 포함하는 DMA 제어장치를 제공한다.
DMA, LCD, MCU, 타이머, FSM, 런렝쓰 데이터

Description

직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송 시스템 및 그 전송 방법{DIRECT MEMORY ACCESS CONTROLLER, SYSTEM AND METHOD FOR TRANSFERRING A DATA USING THE SAME}
도 1은 본 발명의 바람직한 실시예에 따른 직접 메모리 접근 제어장치를 설명하기 위하여 도시한 데이터 전송 시스템의 구성을 도시한 블록도.
도 2a 및 도 2b는 도 1에 도시된 DMA 요청신호 및 채널 선택부를 도시한 도면.
도 3은 DMA 요청신호(DRQ)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 첫번째 채널(채널0)과 두번째 채널(채널1)의 DMA 데이터 전송 방법을 설명하기 위하여 도시한 흐름도.
도 4는 DMA 요청신호(Timer0 내지 Timer7)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 세번째 채널(채널2)과 네번째 채널(채널3)을 이용한 런렝쓰 데이터 처리방법을 설명하기 위하여 도시한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
10 : MCU
20 : 타이머
30 : DMA 제어장치
40 : 메모리
50 : 입출력 장치
31 : 우선순위 생성부
32 : DMA 요청신호 및 채널 선택부
33 : DMA 제어부
34 : 레지스터 카운팅부
35 : 레지스터부
본 발명은 직접 메모리 접근(Direct Memory Access, DMA) 제어장치를 이용한 데이터 전송 시스템 및 전송 방법에 관한 것으로, 특히 SOC(System On Chip)에서 내부 메모리 또는 외부 메모리에 저장된 데이터를 독출(read)하여 칩 내부의 특정 블록에 데이터를 전송하거나, 칩 내부의 특정 블록의 데이터를 독출하여 메모리에 기입(write)하는 직접 메모리 접근 제어장치를 이용한 데이터 전송 시스템 및 전송 방법에 관한 것이다.
일반적으로, 직접 메모리 접근(이하, DMA라 함) 제어장치는 내부 또는 외부 의 블록, 예컨대, 입출력(Input/Output, I/O) 장치의 요구에 따라 요청 블록의 내부 버퍼에서 설정된 메모리로 데이터를 전송하거나, 메모리로부터 요청 블럭의 버퍼로 데이터를 전송한다. 요청 블록은 내부에 여러 개의 데이터를 저장할 수 있도록 버퍼(buffer)로 FIFO(First In First Out)가 구성된다. FIFO 버퍼에 메모리로 전송할 만큼의 데이터가 저장되어 있거나, 메모리로부터 데이터를 가져와 데이터를 저장할 수 있을 만큼 비어있을 때, 요청 블록은 DMA 제어장치로 데이터 전송을 요구한다.
이러한 DMA 동작은 미리 DMA 제어장치에 설정된 크기 만큼의 데이터를 모두 전송할 때까지 계속적으로 이루어진다. DMA 제어장치를 통해 모든 데이터의 전송이 완료되면, DMA 제어장치는 인터럽트(interrupt)를 발생하여 CPU(Central Processing Unit) 또는 MCU(Micro Controller Unit)에게 미리 설정된 크기 만큼의 데이터 전송이 완료되었음을 알려준다. CPU는 이 인터럽트를 받아서 이후에 DMA 제어장치로 데이터를 더 전송할 건지, 아니면 연속적으로 일어나는 다른 동작을 수행할 건지를 판단해서 분기한다.
이러한 일반적인 DMA 제어장치는 특정 시간 마다 한번씩 주기적으로 특정한 크기의 데이터를 송수신하는 블록, 예컨대 LCD(Liquid Crystal Display) 장치 또는 전광판과 같이 일정한 주기마다 데이터를 송수신하여야 하는 블록과의 데이터 전송에는 사용하는 경우 효율이 감소한다. 이에 따라, DMA 제어장치 대신에 LCD 장치와 같은 블록과의 데이터 처리를 수행하기 위해 CPU를 사용하는 경우에는 카운터(counter)의 출력을 받아 특정 시간(또는, 주기) 마다 한번씩 데이터를 송수신하므 로, 그 동안 중앙처리부는 다른 동작을 수행할 수가 없어 전체적으로 동작특성이 저하되는 문제가 발생한다,
따라서, 중앙처리부의 부담을 감소시키기 위해 DMA 제어장치를 이용하여 DMA 동작을 수행하고자 하는 경우에는 DMA 동작을 요구하는 블록 내부에 자체적으로 카운터(또는, 타이머)를 구성하고, 이 카운터를 이용하여 주기적으로 메모리에 저장된 데이터를 DMA 제어부를 통해 FIFO 버퍼로 전송하거나, 주기적으로 블럭 내의 데이터를 FIFO 버퍼에 저장한 후 DMA 제어부를 이용하여 FIFO 버퍼에 저장된 데이터를 메모리로 옮겨야 한다. 그러나, 이 경우에도 요청 블록 내부에 카운터가 구성되어야 함과 아울러, 카운터를 이용하여 FIFO 버퍼를 제어하기 위한 별도의 제어회로가 필요하게 된다.
또한, 전광판에서는 문자를 제외한 대부분의 배경 데이터가 같은 값을 갖는다. 그럼에도 불구하고, 종래에서는 매번 같은 데이터를 전송하여 왔다. 이에 따라, 메모리 영역을 차지하고, 버스를 점유하게 되는 문제가 발생한다. 그리고, 여러개의 전광판을 함께 사용하고자 하는 경우 여러개의 외부 장치와 DMA 제어장치가 요구되는 문제점이 있다. 그리고, DMA 장치 대신에 CPU 또는 MCU와 같은 프로세서를 사용하여 구현하는 경우, 프로세서는 계속 주기적으로 데이터 전송을 관장해야 하므로 다른 작업을 수행할 때 계속 인터럽트가 걸려 처리 성능을 저하시키는 원인이 될 수 있다.
따라서, 본 발명은 상기한 종래기술의 문제점을 해결하기 위해 제안된 것으로서, 특정한 주기마다 한번씩 데이터 전송이 이루어지는 입출력 장치에서도 DMA 동작을 안정적으로 수행할 수 있도록 하는 DMA 제어장치를 제공하는데 그 목적이 있다.
또한, 본 발명은 동일한 데이터가 반복적으로 이루어진 런렝쓰 인코딩(run length encoding) 데이터의 처리를 가능하게 하여 반복적인 데이터의 전송에 의한 성능저하 및 전력손실을 감소시킬 수 있는 DMA 제어장치를 제공하는데 다른 목적이 있다.
또한, 본 발명은 하나의 소스 어드레스(source address)에 대한 한번의 DMA 요청에 대해 최대 4개의 목적 어드레스를 갖는 목적지로의 데이터 전송을 가능하게 하여 동일 주기로 서로 다른 데이터를 필요로 하는 외부 장치를 최대 4개까지 연결하여 데이터 전송을 처리할 수 있는 DMA 제어장치를 제공하는데 다른 목적이 있다.
또한, 본 발명은 다양하게 설정 가능한 소스 어드레스 및 목적 어드레스를 갖는 MCU 내의 어떤 장치라도 DMA 전송이 가능하도록 제어하여 폭넓은 소스 어드레스 및 목적 어드레스에 대해 높은 활용도를 갖는 DMA 제어장치를 제공하는데 다른 목적이 있다.
또한, 본 발명은 상기한 DMA 제어장치를 이용한 데이터 전송 시스템 및 전송 방법을 제공하는데 또 다른 목적이 있다.
상기한 목적을 달성하기 위한 일측면에 따른 본 발명은, MCU 내부의 타이머로부터 입력되는 DMA 요청에 응답하여 DMA 요청신호를 생성하는 DMA 요청부와, 상기 DMA 요청신호에 따라 메모리와, 상기 타이머의 값에 대응하여 일정 주기 동안 데이터 송수신이 이루어지는 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부를 포함하는 DMA 제어장치를 제공한다.
또한, 상기한 목적을 달성하기 위한 다른 측면에 따른 본 발명은, 데이터가 저장된 메모리와, 상기 메모리와 설정된 일정 주기 마다 DMA 전송을 수행하는 제1 입출력 장치와, 상기 메모리 또는 상기 제1 입출력 장치와 제1 DMA 요청에 따라 DMA 전송이 이루어지는 제2 입출력 장치와, 내부의 타이머를 통해 상기 주기에 대응되는 카운터값을 설정하고, 상기 주기 마다 상기 메모리와 상기 제1 입출력 장치 간에 DMA 전송을 수행하기 위하여 DMA 어드레스를 설정하는 MCU와, 상기 제1 DMA 요청과, 상기 타이머로부터 입력되는 제2 DMA 요청을 입력받고, 상기 제1 및 제2 DMA 요청에 각각 채널을 할당한 후 우선순위에 따라 상기 채널 중 어느 하나의 채널을 선택하여 선택된 채널의 DMA 요청신호를 출력하는 DMA 요청부와, 상기 DMA 요청신호에 응답하여 선택된 상기 채널을 통해 상기 DMA 어드레스를 이용하여 상기 메모리, 상기 제1 및 제2 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부를 포함하는 데이터 전송 시스템을 제공한다.
또한, 상기한 목적을 달성하기 위한 다른 측면에 따른 본 발명은, 일정 주기마다 데이터 전송이 이루어지는 제1 입출력 장치와, 요청에 의해 데이터 전송이 이루어지는 제2 입출력 장치와, 메모리의 DMA 어드레스를 내부 레지스터에 셋팅시키 는 단계와, 상기 제1 입출력 장치에 대응하여 MCU 내부의 타이머로부터 입력되는 제1 DMA 요청과, 제2 입출력 장치로부터 입력되는 제2 DMA 요청과, 내부 레지스터로부터 입력되는 제3 DMA 요청을 DMA 요청부를 통해 입력받고, 우선순위에 따라 상기 제1 내지 제3 DMA 요청 중 어느 하나의 요청을 선택하여 채널선택 신호 및 DMA 요청신호를 생성하는 단계와, 상기 DMA 요청신호와 상기 채널선택 신호에 따라 DMA 제어부를 통해 상기 DMA 어드레스를 이용하여 메모리, 제1 및 제2 입출력 장치 간에 DMA 전송을 수행하는 단계를 포함하는 데이터 전송 방법을 제공한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
실시예
도 1은 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 설명하기 위하여 도시한 블록도로서, 여기서는 설명의 편의를 위해 4개의 채널을 갖는 데이터 전송 시스템을 도시하였다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 DMA 제어장치는 우선순위 생성부(31), DMA 요청신호 및 채널 선택부(32), DMA 제어부(33), 레지스터 카운팅부(34) 및 레지스터(35)를 포함한다.
우선순위 생성부(31)는 MCU(10) 및 외부의 칩(또는, 장치)로부터 내부 버스를 통해 DMA 요청신호 및 채널 선택부(32)로 DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7)가 동시에 입력되는 경우 이들 중 어느 하나의 DMA 요청신호를 받아들여 데이터 처리를 수행할지를 결정한다. 이를 위해, 우선순위 생성부(31)는 4개의 채널에 대응되는 4개의 우선순위 결정신호(pr0 내지 pr3)를 생성하여 DMA 요청신호 및 채널 선택부(32)로 출력한다. 여기서, 'DRQ0 및 DRQ1'는 MCU(10)의 외부에 설치된 칩 또는 외부 장치로부터 입력되는 DMA 요청신호이고, 'Timer0 내지 Timer7'은 MCU(10) 내부의 타이머(20)에 의해 미리 설정되어 일정 주기마다 발생하는 DMA 요청신호이다.
DMA 요청신호 및 채널 선택부(32)는 우선순위 생성부(31)로부터 입력되는 우선순위 결정신호(pr0 내지 pr3)에 따라 내부 버스를 통해 입력되는 DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7) 중 어느 하나의 DMA 요청신호를 선택하여 선택된 내부 DMA 요청신호(dma_req)와 DMA 요청신호의 채널선택 신호(ch-sel) 생성하여 출력한다.
내부 DMA 요청신호(dma_req)는 도 2a에 도시된 바와 같은 구성을 통해 얻을 수 있다.
먼저, DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7)는 4개의 채널에 각각 할당된다. 외부 DMA 요청신호(DRQ0 및 DRQ1)는 MCU(10)와 무관하게 외부 장치로 입력되는 DMA 요청신호로서, 4개의 채널 중 첫번째 채널과 두번째 채널에 각각 할당된다. 외부 DMA 요청신호(DRQ0 및 DRQ1)에 의한 DMA 동작은 일반적인 DMA 동작과 동일하게 이루어짐에 따라 여기서는 설명의 편의를 위해 간략하게 설명하기로 한다.
DMA 요청신호(Timer0 내지 Timer7)는 4개의 채널 중 첫번째 채널과 두번째 채널을 제외한 세번째 채널과 네번째 채널에 할당되는 신호로서, 타이머(20)를 통해 미리 설정된 주기동안 MCU(10)를 통해 입력되는 DMA 요청신호이다. 일례로, 동도면에 도시된 바와 같이 8개의 DMA 요청신호(Timer0 내지 Timer7)가 각각 두개의 채널을 할당받고, 이 8개의 DMA 요청신호(Timer0 내지 Timer7) 중 레지스터 설정신호(DMICR1 및 DMICR2)에 의해 각각 어느 하나가 선택되어 세번째 채널과 네번째 채널에 할당된다. 여기서, 레지스터 설정신호(DMICR1 및 DMICR2)는 미리 사용자에 의해 설정되어 레지스터(35)에 저장된 신호로서, DMA 요청신호(Timer0 내지 Timer7) 중 어느 하나를 선택하기 위한 신호이다.
동작특성을 살펴보면, DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7)가 동시에 입력되는 경우, 먼저 타이머(20)에 의한 DMA 요청신호(Timer0 내지 Timer7) 중 어느 하나의 DMA 요청신호를 레지스터 설정신호(DMICR1, DMICR2)를 이용하여 먹스(multiplexer, MUX1, MUX2)를 통해 선택한다. 먹스(MUX1, MUX2)를 통해 선택된 DMA 요청신호는 각각 먹스(MUX3, MUX4)로 입력된다. 먹스(MUX3, MUX4)는 내부 레지스터 설정신호(DMICR1, DMICR2)를 이용하여 선택된 DMA 요청신호와 내부 레지스터의 요청신호인 DMA 요청신호(DMRQR) 중 어느 하나를 선택하여 세번째 채널과 네번째 채널에 할당한다. 여기서, 세번째 채널과 네번째 채널은 단일전송 모드만을 지원한다.
한편, 외부 DMA 요청신호(DRQ0 및 DRQ1)는 각각 오아 게이트(OR1, OR2)로 입력된다. 오아 게이트(OR1)는 DMA 요청신호(DRQ0)와 내부 레지스터 설정에 의한 DMA 요청신호(DMRQR)를 입력받아 논리합하여 출력한다. 오아 게이트(OR2)는 DMA 요청신호(DRQ1)와 내부 레지스터에 의한 DMA 요청신호(DMRQR)를 입력받아 논리합하여 출력한다. 이때, 오아 게이트(OR1, OR2)의 출력신호는 각각 첫번째 채널과 두번째 채널에 할당된다. 첫번째 채널과 두번째 채널은 각각 외부 DMA 요청신호(DRQ0 및 DRQ1) 또는 DMA 요청신호(DMRQR)를 받아서 메모리와 입출력 장치 간의 DMA 동작을 수행하거나, 두개의 채널을 묶어서 메모리와 메모리 간 DMA 동작을 수행하기 위하여 제공된다.
이러한 이유는, 각 채널당 하나의 어드레스만이 할당되기 때문이다. 일반적으로, 메모리와 입출력 장치 간에는 소스 어드레스 및 목적 어드레스 중 어느 하나의 어드레스만 필요하기 때문에 하나의 채널만으로도 DMA 전송이 가능하다. 그러나, 메모리와 메모리 간의 DMA 전송은 소스 어드레스 및 목적 어드레스와 같이 두개의 어드레스가 필요하기 때문에 하나의 채널만 가지고는 DMA 전송이 불가능하다. 따라서, 두개의 채널을 묶어서 메모리와 메모리 간의 DMA 전송을 수행하는 것이 가능하다.
또한, 첫번째 채널 및 두번째 채널은 단일전송, 블록전송, 요구전송의 세가지 기능에 사용될 수 있다. 단일전송은 DMA 요청 발생시에 해당 어드레스 하나의 데이터만 전송한 후 DMA 요청이 종료되어 다음 DMA 요청을 기다리는 동작으로 이루어진다. 블록전송은 DMA 전송이 시작되면, DMA 제어장치의 내부의 레지스터에 설정된 DMA 데이터 전송 크기만큼 연속적인 데이터 블록을 전송하는 동작으로 이루어진다. 요구전송은 외부 DMA 요청신호(DRQ0 및 DRQ1)에 의해서만 동작하고, 이 외부 DMA 요청신호(DRQ0 및 DRQ1)가 디스에이블될 때까지 계속 DMA 동작을 수행하는 동작으로 이루어진다.
오아 게이트(OR1, OR2)와 먹스(MUX3, MUX4)를 통해 선택된 DMA 요청신호는 각각 해당 앤드 게이트(AND1 내지 AND4)로 입력된다. 앤드 게이트(AND1 내지 AND4)는 채널선택 인에이블신호(DMER)에 따라 DMA 요청신호 중 어느 하나를 선택하게 된다. 즉, 채널선택 인에이블신호(DMER)가 하이레벨(HIGH level, '1')로 인에이블되는 경우 DMA 요청신호는 모두 선택되고, 로우레벨(LOW level, '0')로 디스에이블되면, DMA 요청신호는 모두 선택되지 않는다. 그러나, 이는 일례로서, 적절히 회로를 변경하여 4개의 채널 중 어느 하나 만을 선택하여 그 채널에 할당된 DMA 요청신호만 선택되도록 할 수도 있다. 여기서, 채널선택 인에이블신호(DMER)는 사용자에 의해 설정된다.
앤드 게이트(AND1 내지 AND4)를 통해 선택된 DMA 요청신호는 4개의 먹스(MUX5 내지 MUX8)로 각각 입력되고, 먹스(MUX5 내지 MUX8)는 우선순위 생성부(31)로부터 입력되는 우선순위 결정신호(pr0 내지 pr3)에 따라 각각 어느 하나를 선택하여 출력한다.
오아 게이트(OR3)는 먹스(MUX5 내지 MUX8)로부터 각각 선택된 요청신호(pr0_req 내지 pr3_req)를 논리합하여 출력한다. 오아 게이트(OR3)는 우선순위 결정신호(pr0 내지 pr3)에 의해 우선순위가 결정된 요청신호(pr0_req 내지 pr3_req) 중 어느 하나라도 하이레벨로 출력되는 경우 내부 DMA 요청신호(dma_req)를 인에이블시켜 출력한다.
한편, 채널선택 신호(ch_sel)는 도 2b에 도시된 바와 같은 구성을 통해 생성한다.
도 2b에 도시된 바와 같이, 우선순위 결정신호(pr0 내지 pr3)에 의해 선택된 요청신호(pr0_req 내지 pr3_req)(도 2a참조)를 이용하여 채널선택 신호(ch_sel)를 생성한다.
먹스(MUX9 내지 MUX12)는 요청신호(pr0_req 내지 pr3_req)에 따라 어느 하나가 선택된다. 요청신호(pr0_req 내지 pr3_req)에 의해 선택된 먹스는 우선순위 결정신호(pr0 내지 pr3)와 '00' 데이터 중 어느 하나를 선택하여 출력한다. 먹스(MUX9 내지 MUX12)에 의해 선택된 데이터는 오아 게이트(OR4)로 입력된다. 오아 게이트(OR4)는 먹스(MUX9 내지 MUX12)로부터 입력되는 데이터를 논리합하여 출력한다.
예컨대, 먹스(MUX9)에 의해 우선순위 결정신호(pr0)가 선택되어 출력되는 경우 오아 게이트(OR4)는 우선순위 결정신호(pr0)에 대응되는 채널을 선택하기 위한 채널선택 신호(ch_sel)를 출력한다. 물론, 모든 먹스(MUX9 내지 MUX12)에서 동시에 모든 채널이 선택되지는 않는다. 이는, 동도면에 도시된 바와 같이 각 먹스(MUX9 내지 MUX12)가 서로 다른 요청신호(pr0_req 내지 pr3_req), 즉 먹스(MUX9는 'pr0_req' 신호를 이용하고, 먹스(MUX10)는 '!pro_req&pr1_req' 신호를 이용하고, 먹스(MUX11)는 '!pr0_req&!pr1_req&pr2_req' 신호를 이용하며, 먹스(MUX12)는 '!pr0_req&pr1_req&!pr2_req&pr3_req'를 이용하기 때문에 어느 하나만 선택되게 된다.
DMA 제어부(33)는 FSM(Finite State Machine)의 기능을 포함하며, DMA 요청신호 및 채널 선택부(32)로부터 내부 DMA 요청신호(dma_req)와 채널선택 신호(ch_sel)를 입력받아 DMA 전송의 전반적인 동작을 제어한다. 물론, DMA 제어부(33)는 도시되진 않았지만, 별도의 내부 버스를 통해 칩 내에 구현된 다른 소자들과 소정의 신호를 주고 받을 수도 있다. 이러한 신호에 의해 그 동작이 제어될 수도 있다.
이러한 DMA 제어부(33)는 DMA 요청신호 및 채널 선택부(32)로 내부 DMA 요청신호(dma_req)와 채널선택 신호(ch_sel)가 입력되면, DMA 요청신호(dma_req)가 외부 장치로부터의 요청신호인지 아니면 타이머(20) 설정에 의한 요청신호인지를 판단한 후 선택된 채널을 통해 DMA 데이터 전송을 수행하도록 전반적인 동작을 제어한다.
또한, DMA 제어부(33)는 런렝쓰 데이터의 인코딩 또는 디코딩을 포함하는 전반적인 처리를 관장한다. 런렝쓰 데이터는 전광판에서 문자를 제외한 대부분의 배경 데이터와 같이 일정 시간동안 동일한 값을 갖는 데이터로서, MCU(10)를 통해 인코딩된 상태로 레지스터(35)의 런렝쓰 레지스터(미도시)에 저장된다. 이렇게 인코딩된 런렝쓰 데이터를 이하에서는 런렝쓰 인코딩 데이터라 칭한다. 런렝쓰 레지스터에 저장된 런렝쓰 인코딩 데이터에 대한 요청신호가 들어오는 경우 DMA 제어부(33)는 런렝쓰 레지스터로부터 런렝쓰 인코딩 데이터를 독출하여 목적지로 전송한다.
예컨대, 외부 장치에 의한 DMA 요청신호인 경우에는 일반적인 방법으로 단일 전송, 블록전송, 요구전송을 수행한다. 타이머(20)에 의한 DMA 요청신호인 경우에는 단일전송으로 타이머(20)에 설정된 주기동안 데이터를 메모리(40)로부터 입출력 장치(50)로, 입출력 장치(50)로부터 메모리(40)로 또는 메모리에서 메모리로 데이터를 전송하도록 전반적인 동작을 제어한다. 여기서, 입출력 장치(50)는 레지스터와 같은 메모리가 내장된 장치이거나, 메모리가 내장되어 있지 않은 장치이거나, 또는 메모리 장치이다. 또한, 입출력 장치(50)는 일정한 주기 동안 데이터 송수신을 수행하는 장치이다.
한편, 입출력 장치(50)가 메모리 맵드(memory mapped) 장치인 경우에는 DMA 요청신호(DRQ0 및 DRQ1)에 의해 첫번째 채널과 두번째 채널이 할당되어 해당 메모리와 DMA 동작을 수행하게 된다. 4개 채널의 우선순위는 각 채널에 대해 상위 우선순위와 하위 우선순위 두 단계로 나뉘어 지도록 설정될 수 있다. 이때, DMA 요청신호(DRQ0 및 DRQ1)가 입력되기 전에 MCU(10)에 의해 주변 입출력 장치(50)의 어드레스가 레지스터(35)에 미리 셋팅된다. 이렇게 셋팅된 어드레스를 통해 해당 메모리(40)와 입출력 장치(50) 간에 DMA 데이터 전송이 이루어진다. 이러한 DMA 동작은 단일전송, 블록전송, 요구전송 방식으로 이루어진다.
또한, 입출력 장치(50)가 일정 주기동안 데이터 송수신이 이루어지는 장치일 경우에는 타이머(20)에 의해 일정 주기동안 설정되어 입력되는 요청신호(Timer0 내지 Timer7)에 의해 세번째 채널과 네번째 채널이 할당되어 일정 주기마다 해당 메모리와 DMA 동작을 수행하게 된다. MCU(10)에 의해 초기 셋팅된 소스 어드레스와 목적지 어드레스를 통해 해당 메모리와 해당 입출력 장치가 결정되면, 해당 어드레 스에 대해서만 내부 버스를 이용하여 해당 메모리와 해당 입출력 장치 간의 데이터 전송을 수행하도록 한다. 즉, 이 경우에는 단일전송 방식으로 DMA 동작이 수행된다.
레지스터 카운팅부(34)는 레지스터(35)의 전반적인 동작을 제어하는 장치로서, MCU(10)로부터 입력되는 제어신호 또는 타이머(20)에 의한 제어신호에 의해 레지스터(35)에 셋팅된 어드레스값을 카운팅한다. 본 발명의 바람직한 실시예에 따른 DMA 제어장치는 하나의 채널에 4개의 I/O 장치와의 DMA 전송이 수행되도록 제공한다. 이 경우, 레지스터(35)에 셋팅된 목적 어드레스는 레지스터 카운팅부(34)에 의해 카운팅되어 순차적으로 선택된다. 따라서, 한개의 소스 어드레스에 의해 4개의 목적 어드레스가 선택되어, 각각의 목적 어드레스를 갖는 I/O 장치로의 데이터 전송이 가능하다. 이때, I/O 장치들은 동일한 데이터 전송 타이밍을 갖는 장치여야만 한다. 이로써, 별도의 제어기의 개수를 최대 4개에서 1개로 감소시키는 것이 가능하다.
레지스터(35)에는 MCU(10)에 의해 주변 입출력 장치(50)들의 각 어드레스가 셋팅되어 저장된다. 이러한 어드레스들은 레지스터 카운팅부(34)에 의해 카운팅되어 적절히 선택된다. 또한, DMA 제어부(33)로부터 내부 DMA 요청신호(33)가 입력되면, 이를 받아 해당 메모리와 해당 I/O 장치 간에 DMA 데이터 전송을 수행한다. 예컨대, I/O 장치로부터 DMA 요청신호(DRQ0)가 입력되면, DMA 제어부(33)로부터 선택된 내부 DMA 요청신호에 따라 레지스터(35)는 해당 소스 어드레스를 갖는 메모리(40)를 선택한 후 선택된 메모리(40)의 데이터를 목적 어드레스를 갖는 I/O 장치로 전송한다.
이하에서는, 도 3를 참조하여 도 1, 도 2a 및 도 2b에 도시된 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 이용한 데이터 전송 방법을 설명하기로 한다. 여기서, 도 3은 DMA 요청신호(DRQ)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 첫번째 채널(채널0)과 두번째 채널(채널1)의 DMA 데이터 전송 방법을 설명하기 위하여 도시한 흐름도이다.
도 3을 참조하면, 먼저 DMA 제어장치는 DMA 요청 대기 상태에서 입력되는 DMA 요청신호(DRQ, DMRQR)를 입력받고, 입력된 DMA 요청신호가 메모리와 I/O 장치 간의 DMA 요청신호인지 또는 메모리와 메모리 간의 DMA 요청신호인지를 판단한다(S31 내지 S33).
만약, 단계 'S33'에서 DMA 요청신호가 메모리와 I/O 장치 간의 DMA 요청신호인 경우, DMA 어드레스를 이용하여 단일 채널을 통해 메모리와 I/O 장치 간에 DMA 전송을 수행한다(S34). 여기서, DMA 어드레스는 MCU(10)에 의해 미리 레지스터(35)에 저장된다. 이러한 DMA 어드레스는 I/O 장치의 어드레스 또는 메모리의 어드레스가 된다.
만약, DMA 전송이 단일전송, 또는 요구전송 및 외부 요청이 없는 경우, 하나의 DMA 요청신호 발생시 하나의 어드레스에 해당하는 데이터만을 단일 전송한 후 전송을 종료한다(S35, S42). 반면, 블록전송인 경우에는 잔여되는 데이터가 존재하지 않을 때까지 DMA 전송을 수행한 후 데이터가 모드 전송되면 전송을 종료한다(S35, S36, S42).
한편, 단계 'S33'에서 DMA 요청신호가 메모리와 메모리 간의 DMA 요청신호인 경우, DMA 소스 어드레스 및 목적 어드레스를 이용하여 두개의 채널(채널0, 채널1)을 통해 메모리와 메모리 간에 DMA 전송을 수행한다(S38, S39). 메모리와 메모리 간의 DMA 전송은 소스 어드레스와 목적 어드레스와 같이 두개의 어드레스가 필요함에 따라 이를 위해 2개의 채널, 즉 첫번째 채널(채널0)과 두번째 채널(채널1)이 사용된다.
먼저, 출발지 메모리와 목적지 메모리 간에 데이터를 전송하고자 하는 경우, 첫번째 채널(채널0)을 통해 미리 MCU(10)에 의해 레지스터(35)에 셋팅된 소스 어드레스를 이용하여 출발지 메모리를 선택하여 그 메모리에 데이터를 입력한다. 이후, 두번째 채널(채널1)을 통해 미리 MCU(10)에 의해 레지스터(35)에 셋팅된 목적지 어드레스를 이용하여 목적지 메모리를 선택하여 단일전송, 요구전송 또는 블록전송을 수행한다(S38 내지 S40).
만약, 단계 'S40'에서 단일전송, 또는 요구전송 및 외부 요청이 없는 경우에는, 두번째 채널(채널1)을 통해 목적지 메모리로 DMA 데이터를 전송한다. 이러한 DMA 데이터 전송은 잔여 전송이 존재하지 않을 때까지 실시된 후 종료한다(S40 내지 S42). 반면, 블록전송인 경우에는 두번째 채널(채널1)을 통해 목적지 메모리로 데이터를 전송한 후 다시 첫번째 채널(채널0)를 통해 입력되는 소스 어드레스를 이용하여 출발지 메모리를 선택하여 DMA 데이터 전송을 수행한다. 이러한 DMA 데이터 전송은 블록 내의 모든 데이터가 모두 전송될 때까지 반복적으로 실시된다(S40, S43, S44).
상기에서, 메모리와 I/O 장치 또는 메모리와 메모리 간에 DMA 데이터 전송이 완료되면, DMA 제어부(33)는 인터럽트 신호를 생성하여 MCU(10)로 전송하여 DMA 전송이 완료되었음을 알린다(S37).
이하에서는, 도 4를 참조하여 도 1, 도 2a 및 도 2b에 도시된 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 이용한 런렝쓰 데이터 처리방법을 설명하기로 한다. 여기서, 도 4은 DMA 요청신호(Timer0 내지 Timer7)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 세번째 채널(채널2)과 네번째 채널(채널3)을 이용한 런렝쓰 데이터 처리방법을 설명하기 위하여 도시한 흐름도이다. 또한, 이러한 동작은 DMA 제어부(33)에서 이루어진다.
도 4를 참조하면, 먼저 DMA 제어부(33)는 DMA 요청 대기 상태에서 DMA 요청신호(DMRQR, Timer0 내지 Timer7)가 발생했는지를 판단한다. 그런 다음, 사용자 설정에 의해 해당 채널이 런렝쓰 데이터 처리를 위한 채널로 할당되었는지를 판단한다(S51 내지 S53).
만약, 단계 'S53'에서 해당 채널이 런렝쓰 데이터 처리를 위한 채널로 활성화된 경우, 런렝쓰 레지스터에 저장된 런렝쓰 인코딩 데이터를 분석하여 인코딩 부분이 존재하는지를 판단한다(S54). 예컨대, 런렝쓰 데이터 'aaaaaabbbcdeffffghiii'를 인코딩하여 런렝쓰 인코딩 데이터로 전환하면, '-6a-3b3cde-4f2gh-3i'가 된다. 여기서, '-'는 연속적으로 반복되는 데이터로서 인코딩되는 부분으로서 연속적으로 반복되는 데이터의 반복회수를 나타낸다. '+'는 연속적으로 반복되지 않는 일반 데이터로서 일반 데이터의 길이를 나타낸다. 이처럼, 런렝쓰 데이터의 1비트를 이용해서 연속적인 데이터의 반복회수를 나타내는지, 일반 데이터 길이를 나타내는지를 표현하는데, 여기서는 최하위 비트가 사용되어 '0'이면 일반 데이터 길이를, '1'이면 동일 데이터의 반복회수를 나타낸다. 이 최하위 비트를 뺀 나머지 값이 실제로 일반 데이터나 반복되는 동일한 데이터의 발생회수를 표현하게 되고, 내부 레지스터에 저장된다. 이 값이 '0'이 아닌 동안, DMA 제어부(33)는 DMA 요청에 따라 일반 데이터인 경우 메모리와 메모리 간의 전송을 수행한 후 레지스터 값을 감소시키거나, 반복 데이터인 경우 데이터 전송없이 런렝쓰 데이터 레지스터값을 감소시키는 동작을 수행한다. 상기에서와 같이, 런렝쓰 데이터를 인코딩하지 않고, DMA 전송하는 경우에는 총 21 바이트의 전송이 요구되지만, 런렝쓰 인코딩하여 전송하는 경우 총 15 바이트의 전송이 요구된다. 그 만큰 전송되는 바이트 수를 감소시킬 수 있다.
한편, 단계 'S54'에서는 런렝쓰 데이터 레지스터(DMRLR)를 확인하여 레지스터(DMRLR)에 저장된 데이터가 연속적으로 반복되는 런렝스 인코딩 데이터인지를 파악한다.
만약, 단계 'S54'에서 반복적이지 않은 일반 데이터인 경우 데이터를 독출하여 일단 한번의 DMA 데이터 전송을 수행하기 위하여 독출한 값을 레지스터에 저장한다. 여기서, 일반 데이터의 판독방법은 상기에서 설명한 바와 같이, 런렝쓰 데이터의 최하위 비트가 '0'인지 '1'인지를 비교하여 판단한다. 예컨대, 최하위비트가 '0'인 경우 일반 데이터로 판단하고, '1'인 경우에는 연속적으로 반복되는 데이터로 판단한다.
반면, 단계 'S54'에서 연속적으로 반복되는 런렝스 데이터인 경우, 런렝쓰 데이터가 인코딩된 데이터인지를 판단한다(S57). 만약, 인코딩된 데이터인 경우 런렝쓰 데이터를 전송하지 않고, 런렝스 데이터 레지스터(DMRLR)의 값을 하나 증가시킨다(S58).
한편, 단계 'S53'에 런렝쓰 인코딩이 활성되는 경우 또는 단계 'S57'에서 인코딩 데이터가 아닌 경우에는 일반적인 데이터와 동일한 방법으로 DMA 전송을 수행한다(S61 내지 S65). 이러한 DMA 전송은 세번째 채널(채널2)과 네번째 채널(채널3)을 이용하여 도 3에서 설명한 방법과 동일한 방법으로 수행됨에 따라 그에 따른 설명은 생략하기로 한다.
상기에서, DMA 전송이 완료되면, 인터럽트 신호를 생성하여 DMA 전송이 완료되었음을 알린다(S60).
본 발명의 기술 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 이 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예들이 가능함을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명에 의하면, MCU 내부 타이머 출력을 DMA 요청으로 사용함으로써 DMA 제어장치를 단순한 데이터 전송뿐만 아니라, LED/LCD 제어 등 주기적인 데이터 전송의 용도로 프로세서의 간섭없이 사용할 수 있는 이점 이 있다.
또한, 본 발명에 의하면, DMA 전송 데이터를 DMA 제어부를 통해 분석하여 런렝쓰 인코딩 데이터를 처리함으로써 동일한 데이터가 반복적으로 이루어진 런렝쓰 인코딩 데이터의 처리를 가능하게 하여 반복적인 데이터의 전송에 의한 성능저하 및 전력손실을 감소시킬 수 있다.
또한, 본 발명에 의하면, 메모리와 메모리 간의 DMA 전송시에 단일 소스 어드레스에 대한 다중 목적 어드레스를 사용할 수 있게 함으로써, 다양한 조합을 통해 여러개의 데이터 요청 장치들에 서로 다른 또는 동일한 데이터를 전송할 수 있다.

Claims (42)

  1. MCU 내부의 타이머로부터 입력되는 복수의 DMA 요청에 응답하여 DMA 요청신호를 생성하는 DMA 요청부; 및
    상기 DMA 요청신호에 따라 메모리와, 상기 타이머의 값에 대응하여 일정 주기 동안 데이터 송수신이 이루어지는 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부
    를 포함하는 DMA 제어장치.
  2. 제 1 항에 있어서,
    상기 DMA 요청부는 상기 복수의 DMA 요청 중 어느 하나를 선택하여 한개의 채널을 할당하는 DMA 제어장치.
  3. 제 2 항에 있어서,
    상기 DMA 요청부는 사용자에 의해 설정되어 제1 레지스터에 저장된 레지스터 설정신호에 따라 상기 타이머에 의한 상기 복수의 DMA 요청 중 어느 하나를 선택하는 DMA 제어장치.
  4. 제 3 항에 있어서,
    상기 DMA 요청부는 상기 레지스터 설정신호를 이용하여 선택된 상기 DMA 요청과 상기 MCU 내에 구성된 제2 레지스터의 DMA 요청 중 어느 하나를 선택하는 DMA 제어장치.
  5. 제 1 항에 있어서,
    상기 DMA 요청부는 상기 타이머에 의한 상기 복수의 DMA 요청 이외에 추가로 다른 외부 입출력 장치로부터 직접 DMA 요청을 제공받고, 제공받은 DMA 요청과 레지스터로부터의 DMA 요청 중 어느 하나를 선택하여 하나의 채널을 할당하는 DMA 제어장치.
  6. 제 3 항 내지 제 5 항 중 어느 하나의 항에 있어서,
    상기 DMA 요청부는 사용자에 의해 미리 설정된 우선순위에 따라 상기 채널 중 어느 하나의 채널을 선택하는 DMA 제어장치.
  7. 제 1 항에 있어서,
    상기 DMA 제어부는 상기 MCU에 의해 레지스터에 셋팅된 DMA 어드레스를 이용하여 상기 메모리와 상기 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어장치.
  8. 제 5 항에 있어서,
    상기 DMA 제어부는 해당 DMA 요청에 의해 DMA 전송이 시작되면, 상기 레지스터에 설정된 DMA 전송 크기 만큼 연속적인 데이터 블록을 전송하는 블록전송 방식으로 DMA 전송을 수행하는 DMA 제어장치.
  9. 제 5 항에 있어서,
    상기 DMA 제어부는 해당 DMA 요청이 인에이블되어 DMA 전송이 시작된 후 해당 DMA 요청이 디스에이블되면 DMA 전송을 완료하는 요구전송 방식으로 DMA 전송을 수행하는 DMA 제어장치.
  10. 제 1 항에 있어서,
    상기 메모리와 상기 외부 입출력 장치 간에 상기 DMA 전송시 DMA 어드레스로 사용되는 소스 어드레스와 목적 어드레스가 저장되는 레지스터를 더 포함하는 DMA 제어장치.
  11. 제 10 항에 있어서,
    상기 레지스터에 저장된 상기 소스 어드레스와 상기 목적 어드레스를 카운팅하기 위한 레지스터 카운팅부를 더 포함하는 DMA 제어장치.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 레지스터는 연속적으로 반복되는 데이터가 포함된 런렝쓰 데이터와 상기 런렝쓰 데이터가 인코딩된 런렝쓰 인코딩 데이터를 각각 저장하는 DMA 제어장치.
  13. 제 12 항에 있어서,
    상기 런렌쓰 인코딩 데이터 중에서 음(-)은 연속적으로 반복되는 데이터의 반복회수를 나타내고, 양(+)은 연속적으로 반복되지 않은 일반 데이터를 개수를 나타내는 DMA 제어장치.
  14. 제 13 항에 있어서,
    상기 런렝쓰 인코딩 데이터는 최하위 비트를 이용하여 연속적으로 반복되는 데이터인지, 연속적으로 반복되지 않는 일반 데이터인 지를 판별하도록 구성된 DMA 제어장치.
  15. 제 14 항에 있어서,
    상기 런렝쓰 인코딩 데이터의 최하위 비트가 '0'이면 일반 데이터의 개수를 나타내고, '1'이면 연속적으로 반복되는 데이터의 반복 회수를 나타내는 DMA 제어장치.
  16. 제 13 항 내지 제 15 항 중 어느 하나의 항에 있어서,
    상기 런렝쓰 인코딩 데이터가 연속적으로 반복되는 데이터인 경우, 상기 DMA 제어부는 반복되는 회수만큼 DMA 전송을 수행하지 않고, 레지스터에 저장된 DMA 어드레스만을 증가시켜 동일한 데이터에 대해서는 DMA 전송을 수행하지 않도록 제어하는 DMA 제어장치.
  17. 데이터가 저장된 메모리;
    상기 메모리와 설정된 일정 주기 마다 DMA 전송을 수행하는 제1 입출력 장치;
    상기 메모리 또는 상기 제1 입출력 장치와 제1 DMA 요청에 따라 DMA 전송이 이루어지는 제2 입출력 장치;
    내부의 타이머를 통해 상기 주기에 대응되는 카운터값을 설정하고, 상기 주기 마다 상기 메모리와 상기 제1 입출력 장치 간에 DMA 전송을 수행하기 위하여 DMA 어드레스를 설정하는 MCU;
    상기 제1 DMA 요청과, 상기 타이머로부터 입력되는 제2 DMA 요청을 입력받고, 상기 제1 및 제2 DMA 요청에 각각 채널을 할당한 후 우선순위에 따라 상기 채널 중 어느 하나의 채널을 선택하여 선택된 채널의 DMA 요청신호를 출력하는 DMA 요청부; 및
    상기 DMA 요청신호에 응답하여 선택된 상기 채널을 통해 상기 DMA 어드레스를 이용하여 상기 메모리, 상기 제1 및 제2 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부
    를 포함하는 데이터 전송 시스템.
  18. 제 17 항에 있어서,
    상기 DMA 요청부는 사용자에 의해 설정되어 제1 레지스터에 저장된 레지스터 설정신호에 따라 복수의 상기 제2 DMA 요청 중 어느 하나를 선택하는 데이터 전송 시스템.
  19. 제 18 항에 있어서,
    상기 DMA 요청부는 상기 레지스터 설정신호를 이용하여 선택된 상기 제2 DMA 요청과 상기 MCU 내에 구성된 제2 레지스터의 제3 DMA 요청 중 어느 하나를 선택하는 데이터 전송 시스템.
  20. 제 19 항에 있어서,
    상기 DMA 제어부는 상기 메모리와 상기 제1 입출력 장치 간의 상기 DMA 전송시 하나의 DMA 어드레스에 대하여 하나의 데이터만 전송한 후 다시 새로운 상기 제1 DMA 요청을 기다리는 단일전송 방식으로 상기 DMA 전송을 수행하는 데이터 전송 시스템.
  21. 제 19 항 또는 제 20 항에 있어서,
    상기 DMA 제어부는 상기 메모리와 상기 제2 입출력 장치 간의 상기 DMA 전송시 상기 제2 DMA 요청에 의해 DMA 전송이 시작되면, 레지스터에 설정된 DMA 전송 크기 만큼 연속적인 데이터 블록을 전송하는 블록전송 방식으로 DMA 전송을 수행하 는 데이터 전송 시스템.
  22. 제 21 항에 있어서,
    상기 DMA 제어부는 상기 메모리와 상기 제2 입출력 장치 간의 상기 DMA 전송시 상기 제2 DMA 요청이 인에이블되어 DMA 전송이 시작된 후 상기 제2 DMA 요청이 디스에이블되면 DMA 전송을 완료하는 요구전송 방식으로 DMA 전송을 수행하는 데이터 전송 시스템.
  23. 제 22 항에 있어서,
    상기 메모리, 상기 제1 및 제2 외부 입출력 장치 간에 상기 DMA 전송시 DMA 어드레스로 사용되는 소스 어드레스와 목적 어드레스가 저장되는 레지스터를 더 포함하되, 상기 레지스터는 연속적으로 반복되는 데이터가 포함된 런렝쓰 데이터와 상기 런렝쓰 데이터이 인코딩된 런렝쓰 인코딩 데이터를 각각 저장하는 데이터 전송 시스템.
  24. 제 23 항에 있어서,
    상기 런렌쓰 인코딩 데이터 중에서 음(-)은 연속적으로 반복되는 데이터의 반복회수를 나타내고, 양(+)은 연속적으로 반복되지 않은 일반 데이터를 개수를 나타내는 데이터 전송 시스템.
  25. 제 24 항에 있어서,
    상기 런렝쓰 인코딩 데이터는 최하위 비트를 이용하여 연속적으로 반복되는 데이터인지, 연속적으로 반복되지 않은 일반 데이터인 지를 판별하도록 구성된 데이터 전송 시스템.
  26. 제 25 항에 있어서,
    상기 런렝쓰 인코딩 데이터의 최하위 비트가 '0'이면 일반 데이터의 개수를 나타내고, '1'이면 연속적으로 반복되는 데이터의 반복 회수를 나타내는 데이터 전송 시스템.
  27. 제 24 항 내지 제 26 항 중 어느 하나의 항에 있어서,
    상기 런렝쓰 인코딩 데이터가 연속적으로 반복되는 데이터인 경우, 상기 DMA 제어부는 반복되는 회수만큼 DMA 전송을 수행하지 않고, 레지스터에 저장된 DMA 어드레스만을 증가시켜 동일한 데이터에 대해서는 DMA 전송을 수행하지 않도록 제어 하는 데이터 전송 시스템.
  28. 제 27 항에 있어서,
    상기 런렝쓰 인코딩 데이터가 일반 데이터인 경우, 상기 DMA 제어부는 상기 레지스터에 저장된 상기 DMA 어드레스를 이용하여 DMA 전송을 수행하는 데이터 전송 시스템.
  29. 제 28 항에 있어서,
    상기 레지스터의 용량에 따라 상기 DMA 어드레스의 소스 어드레스 및 목적 어드레스를 증감시켜 단일 소스 어드레스대 다중 목적 어드레스로의 DMA 전송을 수행하는 데이터 전송 시스템.
  30. 일정 주기마다 데이터 전송이 이루어지는 제1 입출력 장치와, 요청에 의해 데이터 전송이 이루어지는 제2 입출력 장치와, 메모리의 DMA 어드레스를 내부 레지스터에 셋팅시키는 단계;
    상기 제1 입출력 장치에 대응하여 MCU 내부의 타이머로부터 입력되는 제1 DMA 요청과, 제2 입출력 장치로부터 입력되는 제2 DMA 요청과, 내부 레지스터로부 터 입력되는 제3 DMA 요청을 DMA 요청부를 통해 입력받고, 우선순위에 따라 상기 제1 내지 제3 DMA 요청 중 어느 하나의 요청을 선택하여 채널선택 신호 및 DMA 요청신호를 생성하는 단계; 및
    상기 DMA 요청신호와 상기 채널선택 신호에 따라 DMA 제어부를 통해 상기 DMA 어드레스를 이용하여 메모리, 제1 및 제2 입출력 장치 간에 DMA 전송을 수행하는 단계
    를 포함하는 데이터 전송 방법.
  31. 제 30 항에 있어서, 상기 DMA 요청신호 및 상기 채널선택 신호를 생성하는 단계는,
    사용자에 의해 설정되어 상기 레지스터에 저장된 레지스터 설정신호에 따라 상기 제1 DMA 요청 중 어느 하나를 선택하는 단계;
    상기 제2 및 상기 제3 DMA 요청 중 어느 하나를 선택하여 제1 채널을 할당하고, 선택된 상기 제1 및 상기 제3 DMA 요청 중 어느 하나를 선택하여 제2 채널을 할당하는 단계; 및
    상기 우선순위에 따라 상기 제1 및 제2 채널 중 어느 하나를 선택하여 출력하는 단계;
    를 포함하는 데이터 전송 방법.
  32. 제 31 항에 있어서,
    상기 제1 및 제2 채널은 각각 1대 다 전송을 수행하도록 제공하는 데이터 전송 방법.
  33. 제 30 항 내지 제 32 항 중 어느 하나의 항에 있어서,
    상기 메모리와 상기 제1 입출력 장치 간의 상기 DMA 전송시 하나의 DMA 어드레스에 대하여 하나의 데이터만 전송한 후 연속적으로 데이터를 전송하지 않고 다시 새로운 상기 제1 DMA 요청을 기다리는 단일전송 방식으로 상기 DMA 전송을 수행하는 데이터 전송 방법.
  34. 제 30 항 내지 제 32 항 중 어느 하나의 항에 있어서,
    상기 메모리와 상기 제2 입출력 장치 간의 DMA 전송시 상기 제2 DMA 요청에 의해 DMA 전송이 시작되면, 상기 레지스터에 설정된 DMA 전송 크기 만큼 연속적인 데이터 블록을 전송하는 블록전송 방식으로 DMA 전송을 수행하는 데이터 전송 방법.
  35. 제 30 내지 제 32 항 중 어느 하나의 항에 있어서,
    상기 메모리와 상기 제2 입출력 장치 간의 DMA 전송시 상기 제2 DMA 요청이 인에이블되어 DMA 전송이 시작된 후 계속 데이터 전송을 수행하는 중에 상기 제2 DMA 요청이 디스에이블되면 DMA 전송을 완료하는 요구전송 방식으로 DMA 전송을 수행하는 데이터 전송 방법.
  36. 제 30 항에 있어서,
    상기 레지스터는 연속적으로 반복되는 데이터가 포함된 런렝쓰 데이터와 상기 런렝쓰 데이터이 인코딩된 런렝쓰 인코딩 데이터를 각각 저장하는 데이터 전송 방법.
  37. 제 36 항에 있어서,
    상기 런렌쓰 인코딩 데이터 중에서 음(-)은 연속적으로 반복되는 데이터의 반복회수를 나타내고, 양(+)은 연속적으로 반복되지 않은 일반 데이터를 개수를 나타내는 데이터 전송 방법.
  38. 제 37 항에 있어서,
    상기 런렝쓰 인코딩 데이터는 최하위 비트를 이용하여 연속적으로 반복되는 데이터인지, 연속적으로 반복되지 않은 일반 데이터인 지를 판별하도록 구성된 데이터 전송 방법.
  39. 제 38 항에 있어서,
    상기 런렝쓰 인코딩 데이터의 최하위 비트가 '0'이면 일반 데이터의 개수를 나타내고, '1'이면 연속적으로 반복되는 데이터의 반복 회수를 나타내는 데이터 전송 방법.
  40. 제 36 항 내지 제 39 항 중 어느 하나의 항에 있어서,
    상기 런렝쓰 인코딩 데이터가 연속적으로 반복되는 데이터인 경우, 상기 DMA 제어부는 반복되는 회수만큼 DMA 전송을 수행하지 않고, 레지스터에 저장된 DMA 어드레스만을 증가시켜 동일한 데이터에 대해서는 DMA 전송을 수행하지 않도록 제어하는 데이터 전송 방법.
  41. 제 36 항에 있어서,
    상기 런렝쓰 인코딩 데이터가 일반 데이터인 경우, 상기 DMA 제어부는 상기 레지스터에 저장된 상기 DMA 어드레스를 이용하여 DMA 전송을 수행하는 데이터 전송 방법.
  42. 제 36 항에 있어서,
    상기 레지스터의 용량에 따라 상기 DMA 어드레스의 소스 어드레스 및 목적 어드레스를 증감시켜 단일 소스 어드레스대 다중 목적 어드레스로의 DMA 전송을 수행하는 데이터 전송 방법.
KR1020050028587A 2005-04-06 2005-04-06 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법 KR101128898B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050028587A KR101128898B1 (ko) 2005-04-06 2005-04-06 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050028587A KR101128898B1 (ko) 2005-04-06 2005-04-06 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법

Publications (2)

Publication Number Publication Date
KR20060106142A true KR20060106142A (ko) 2006-10-12
KR101128898B1 KR101128898B1 (ko) 2012-03-28

Family

ID=37626899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050028587A KR101128898B1 (ko) 2005-04-06 2005-04-06 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법

Country Status (1)

Country Link
KR (1) KR101128898B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009078559A1 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Direct memory access controller for improving data transmission efficiency in mmoip and method therefor
KR101320840B1 (ko) * 2008-04-01 2013-10-30 애플 인크. 임의적인 처리 기능을 갖는 중앙 dma
CN117931705A (zh) * 2024-03-21 2024-04-26 上海朔集半导体科技有限公司 Dma控制器及其控制方法、车规级芯片、存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010106634A (ko) * 2000-05-22 2001-12-07 윤종용 주기적으로 동작하는 직접 메모리 접근 컨트롤러를 구비한전자 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009078559A1 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Direct memory access controller for improving data transmission efficiency in mmoip and method therefor
KR100932925B1 (ko) * 2007-12-17 2009-12-21 한국전자통신연구원 MMoIP 데이터의 전송 효율을 위한 직접 메모리 접근제어 장치 및 그 방법
US8195846B2 (en) 2007-12-17 2012-06-05 Electronics And Telecommunications Research Institute Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor
KR101320840B1 (ko) * 2008-04-01 2013-10-30 애플 인크. 임의적인 처리 기능을 갖는 중앙 dma
CN117931705A (zh) * 2024-03-21 2024-04-26 上海朔集半导体科技有限公司 Dma控制器及其控制方法、车规级芯片、存储介质

Also Published As

Publication number Publication date
KR101128898B1 (ko) 2012-03-28

Similar Documents

Publication Publication Date Title
US7908416B2 (en) Data processing unit and bus arbitration unit
US7054986B2 (en) Programmable CPU/interface buffer structure using dual port RAM
KR100532416B1 (ko) 다중 소스의 다중 채널로의 할당 방법 및 시스템
KR19990008093A (ko) 타이머 관리자
KR930002787B1 (ko) 주변 제어기와 어댑터 인터페이스
JP4499008B2 (ja) Dma転送システム
KR100375233B1 (ko) 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러
KR101128898B1 (ko) 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법
CN115470163A (zh) Dma传输的控制方法、控制装置、控制设备及存储介质
JP2005084907A (ja) メモリ帯域制御装置
US20040068590A1 (en) Data processor
KR100348545B1 (ko) 통신 dma 장치
EP1160671A2 (en) Host interface circuit
JPH10307790A (ja) 高速プロセッサ
KR20040066311A (ko) 직접 메모리 접근매체의 데이터 전송 장치 및 방법
JPH09297732A (ja) シリアルi/o
JP3910165B2 (ja) 高速プロセッサ
JP2005346637A (ja) 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP2826780B2 (ja) データ転送方法
KR100584583B1 (ko) 직렬 버스 제어 장치 및 방법
JPH06131294A (ja) データ転送装置
KR920004404B1 (ko) 스택(stack)시스템
JP3259095B2 (ja) データ転送方法
KR940005003Y1 (ko) 직접 메모리 억세스 시스템
JPH04314150A (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: 20150223

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170216

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180221

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190218

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 9