KR101128898B1 - Direct memory access controller, system and method for transferring a data using the same - Google Patents
Direct memory access controller, system and method for transferring a data using the same Download PDFInfo
- Publication number
- KR101128898B1 KR101128898B1 KR1020050028587A KR20050028587A KR101128898B1 KR 101128898 B1 KR101128898 B1 KR 101128898B1 KR 1020050028587 A KR1020050028587 A KR 1020050028587A KR 20050028587 A KR20050028587 A KR 20050028587A KR 101128898 B1 KR101128898 B1 KR 101128898B1
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- data
- delete delete
- register
- request
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47C—CHAIRS; SOFAS; BEDS
- A47C21/00—Attachments for beds, e.g. sheet holders, bed-cover holders; Ventilating, cooling or heating means in connection with bedsteads or mattresses
- A47C21/04—Devices for ventilating, cooling or heating
- A47C21/048—Devices for ventilating, cooling or heating for heating
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47C—CHAIRS; SOFAS; BEDS
- A47C27/00—Spring, stuffed or fluid mattresses or cushions specially adapted for chairs, beds or sofas
- A47C27/12—Spring, stuffed or fluid mattresses or cushions specially adapted for chairs, beds or sofas with fibrous inlays, e.g. made of wool, of cotton
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47C—CHAIRS; SOFAS; BEDS
- A47C31/00—Details 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/02—Upholstery attaching means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING 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/00—Joining or sealing of preformed parts, e.g. welding of plastics materials; Apparatus therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B32—LAYERED PRODUCTS
- B32B—LAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
- B32B5/00—Layered 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B68—SADDLERY; UPHOLSTERY
- B68G—METHODS, EQUIPMENT, OR MACHINES FOR USE IN UPHOLSTERING; UPHOLSTERY NOT OTHERWISE PROVIDED FOR
- B68G7/00—Making upholstery
-
- C—CHEMISTRY; METALLURGY
- C04—CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
- C04B—LIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
- C04B14/00—Use 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/02—Granular materials, e.g. microballoons
- C04B14/04—Silica-rich materials; Silicates
- C04B14/10—Clay
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24D—DOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
- F24D3/00—Hot-water central heating systems
- F24D3/12—Tube and panel arrangements for ceiling, wall, or underfloor heating
- F24D3/16—Tube and panel arrangements for ceiling, wall, or underfloor heating mounted on, or adjacent to, a ceiling, wall or floor
Abstract
본 발명은 특정한 주기마다 한번씩 데이터 전송이 이루어지는 입출력 장치에서도 직접 메모리 접근(Direct Memory Access, DMA) 동작을 안정적으로 수행할 수 있도록 하는 DMA 제어장치를 이용한 데이터 전송 시스템 및 전송 방법을 제공하기위한 것으로, 이를 위해 본 발명에서는 MCU 내부의 타이머로부터 입력되는 DMA 요청에 응답하여 DMA 요청신호를 생성하는 DMA 요청부와, 상기 DMA 요청신호에 따라 메모리와, 상기 타이머의 값에 대응하여 일정 주기 동안 데이터 송수신이 이루어지는 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부를 포함하는 DMA 제어장치를 제공한다. The present invention is to provide a data transmission system and a transmission method using a DMA control device for stably performing a direct memory access (Direct Memory Access, DMA) operation even in the input and output device that the data transmission once every specific period, To this end, the present invention provides a DMA request unit for generating a DMA request signal in response to a DMA request input from a timer inside the MCU, a memory according to the DMA request signal, and data transmission / reception for a predetermined period in response to the value of the timer. Provided is a DMA control apparatus including a DMA control unit for performing DMA transfer between external input / output devices.
DMA, LCD, MCU, 타이머, FSM, 런렝쓰 데이터 DMA, LCD, MCU, Timer, FSM, Run Length Data
Description
도 1은 본 발명의 바람직한 실시예에 따른 직접 메모리 접근 제어장치를 설명하기 위하여 도시한 데이터 전송 시스템의 구성을 도시한 블록도. 1 is a block diagram showing a configuration of a data transmission system shown for explaining a direct memory access control apparatus according to a preferred embodiment of the present invention.
도 2a 및 도 2b는 도 1에 도시된 DMA 요청신호 및 채널 선택부를 도시한 도면.2A and 2B illustrate a DMA request signal and a channel selector shown in FIG. 1;
도 3은 DMA 요청신호(DRQ)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 첫번째 채널(채널0)과 두번째 채널(채널1)의 DMA 데이터 전송 방법을 설명하기 위하여 도시한 흐름도. FIG. 3 is a flowchart illustrating a DMA data transfer method of a first channel (channel 0) and a second channel (channel 1) to which a DMA request signal DRQ and a register DMA request signal DMRQR are allocated.
도 4는 DMA 요청신호(Timer0 내지 Timer7)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 세번째 채널(채널2)과 네번째 채널(채널3)을 이용한 런렝쓰 데이터 처리방법을 설명하기 위하여 도시한 흐름도. 4 is a flowchart illustrating a runlength data processing method using a third channel (channel 2) and a fourth channel (channel 3) to which the DMA request signals Timer0 to Timer7 and the register DMA request signal DMRQR are allocated.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
10 : MCU10: MCU
20 : 타이머20: timer
30 : DMA 제어장치30: DMA controller
40 : 메모리40: memory
50 : 입출력 장치50: input / output device
31 : 우선순위 생성부31: priority generation unit
32 : DMA 요청신호 및 채널 선택부32: DMA request signal and channel selector
33 : DMA 제어부33: DMA control unit
34 : 레지스터 카운팅부34: register counting unit
35 : 레지스터부35: register
본 발명은 직접 메모리 접근(Direct Memory Access, DMA) 제어장치를 이용한 데이터 전송 시스템 및 전송 방법에 관한 것으로, 특히 SOC(System On Chip)에서 내부 메모리 또는 외부 메모리에 저장된 데이터를 독출(read)하여 칩 내부의 특정 블록에 데이터를 전송하거나, 칩 내부의 특정 블록의 데이터를 독출하여 메모리에 기입(write)하는 직접 메모리 접근 제어장치를 이용한 데이터 전송 시스템 및 전송 방법에 관한 것이다. BACKGROUND OF THE
일반적으로, 직접 메모리 접근(이하, DMA라 함) 제어장치는 내부 또는 외부 의 블록, 예컨대, 입출력(Input/Output, I/O) 장치의 요구에 따라 요청 블록의 내부 버퍼에서 설정된 메모리로 데이터를 전송하거나, 메모리로부터 요청 블럭의 버퍼로 데이터를 전송한다. 요청 블록은 내부에 여러 개의 데이터를 저장할 수 있도록 버퍼(buffer)로 FIFO(First In First Out)가 구성된다. FIFO 버퍼에 메모리로 전송할 만큼의 데이터가 저장되어 있거나, 메모리로부터 데이터를 가져와 데이터를 저장할 수 있을 만큼 비어있을 때, 요청 블록은 DMA 제어장치로 데이터 전송을 요구한다.In general, a direct memory access (hereinafter, referred to as DMA) controller is configured to transfer data into an internal or external block, for example, a memory set in an internal buffer of a request block in response to a request of an input / output (I / O) device. Transfer data from the memory to the buffer of the request block. The request block is configured with a FIFO (First In First Out) as a buffer to store several data inside. When enough data is stored in the FIFO buffer for transfer to memory, or empty enough to retrieve data from memory and store the data, the request block requests data transfer to the DMA controller.
이러한 DMA 동작은 미리 DMA 제어장치에 설정된 크기 만큼의 데이터를 모두 전송할 때까지 계속적으로 이루어진다. DMA 제어장치를 통해 모든 데이터의 전송이 완료되면, DMA 제어장치는 인터럽트(interrupt)를 발생하여 CPU(Central Processing Unit) 또는 MCU(Micro Controller Unit)에게 미리 설정된 크기 만큼의 데이터 전송이 완료되었음을 알려준다. CPU는 이 인터럽트를 받아서 이후에 DMA 제어장치로 데이터를 더 전송할 건지, 아니면 연속적으로 일어나는 다른 동작을 수행할 건지를 판단해서 분기한다. This DMA operation is continued until all the data of the size set in advance in the DMA controller is transmitted. When all data is transferred through the DMA controller, the DMA controller generates an interrupt to notify the central processing unit (CPU) or the micro controller unit (MCU) that the data transfer of the preset size is completed. The CPU receives this interrupt and branches to determine whether to send further data to the DMA controller or to perform another sequence of operations.
이러한 일반적인 DMA 제어장치는 특정 시간 마다 한번씩 주기적으로 특정한 크기의 데이터를 송수신하는 블록, 예컨대 LCD(Liquid Crystal Display) 장치 또는 전광판과 같이 일정한 주기마다 데이터를 송수신하여야 하는 블록과의 데이터 전송에는 사용하는 경우 효율이 감소한다. 이에 따라, DMA 제어장치 대신에 LCD 장치와 같은 블록과의 데이터 처리를 수행하기 위해 CPU를 사용하는 경우에는 카운터(counter)의 출력을 받아 특정 시간(또는, 주기) 마다 한번씩 데이터를 송수신하므 로, 그 동안 중앙처리부는 다른 동작을 수행할 수가 없어 전체적으로 동작특성이 저하되는 문제가 발생한다, Such a general DMA controller is used for data transmission with a block that periodically transmits and receives data of a specific size once every specific time, such as a liquid crystal display (LCD) device or a block that needs to transmit and receive data at regular intervals, such as an electronic sign. The efficiency is reduced. Accordingly, when the CPU is used to perform data processing with a block such as an LCD device instead of the DMA controller, it receives a counter output and transmits and receives data once every specific time (or period). In the meantime, the central processing unit cannot perform any other operation, which causes a problem of deteriorating the overall operating characteristics.
따라서, 중앙처리부의 부담을 감소시키기 위해 DMA 제어장치를 이용하여 DMA 동작을 수행하고자 하는 경우에는 DMA 동작을 요구하는 블록 내부에 자체적으로 카운터(또는, 타이머)를 구성하고, 이 카운터를 이용하여 주기적으로 메모리에 저장된 데이터를 DMA 제어부를 통해 FIFO 버퍼로 전송하거나, 주기적으로 블럭 내의 데이터를 FIFO 버퍼에 저장한 후 DMA 제어부를 이용하여 FIFO 버퍼에 저장된 데이터를 메모리로 옮겨야 한다. 그러나, 이 경우에도 요청 블록 내부에 카운터가 구성되어야 함과 아울러, 카운터를 이용하여 FIFO 버퍼를 제어하기 위한 별도의 제어회로가 필요하게 된다. Therefore, in order to reduce the burden on the central processing unit, if a DMA operation is to be performed by using the DMA controller, a counter (or timer) is configured in the block requiring the DMA operation, and this counter is used periodically. In other words, data stored in the memory should be transferred to the FIFO buffer through the DMA controller, or periodically the data in the block should be stored in the FIFO buffer and then the data stored in the FIFO buffer should be transferred to the memory using the DMA controller. However, even in this case, a counter must be configured inside the request block, and a separate control circuit for controlling the FIFO buffer by using the counter is required.
또한, 전광판에서는 문자를 제외한 대부분의 배경 데이터가 같은 값을 갖는다. 그럼에도 불구하고, 종래에서는 매번 같은 데이터를 전송하여 왔다. 이에 따라, 메모리 영역을 차지하고, 버스를 점유하게 되는 문제가 발생한다. 그리고, 여러개의 전광판을 함께 사용하고자 하는 경우 여러개의 외부 장치와 DMA 제어장치가 요구되는 문제점이 있다. 그리고, DMA 장치 대신에 CPU 또는 MCU와 같은 프로세서를 사용하여 구현하는 경우, 프로세서는 계속 주기적으로 데이터 전송을 관장해야 하므로 다른 작업을 수행할 때 계속 인터럽트가 걸려 처리 성능을 저하시키는 원인이 될 수 있다.Also, in the electronic board, most background data except for characters have the same value. Nevertheless, conventionally, the same data has been transmitted every time. This causes a problem of occupying the memory area and occupying the bus. In addition, when using a plurality of electronic plates together, there is a problem that a plurality of external devices and a DMA control device are required. In addition, if the processor is implemented using a processor such as a CPU or an MCU instead of the DMA device, the processor must continuously manage data transmission periodically, which may cause interruption when performing other tasks, which may cause a decrease in processing performance. .
따라서, 본 발명은 상기한 종래기술의 문제점을 해결하기 위해 제안된 것으로서, 특정한 주기마다 한번씩 데이터 전송이 이루어지는 입출력 장치에서도 DMA 동작을 안정적으로 수행할 수 있도록 하는 DMA 제어장치를 제공하는데 그 목적이 있다. Accordingly, an object of the present invention is to provide a DMA control apparatus that can stably perform a DMA operation even in an input / output device in which data transmission is performed once every specific period. .
또한, 본 발명은 동일한 데이터가 반복적으로 이루어진 런렝쓰 인코딩(run length encoding) 데이터의 처리를 가능하게 하여 반복적인 데이터의 전송에 의한 성능저하 및 전력손실을 감소시킬 수 있는 DMA 제어장치를 제공하는데 다른 목적이 있다. In addition, the present invention provides a DMA control apparatus capable of processing run length encoded data in which the same data is repeated, thereby reducing performance degradation and power loss due to repetitive data transmission. There is a purpose.
또한, 본 발명은 하나의 소스 어드레스(source address)에 대한 한번의 DMA 요청에 대해 최대 4개의 목적 어드레스를 갖는 목적지로의 데이터 전송을 가능하게 하여 동일 주기로 서로 다른 데이터를 필요로 하는 외부 장치를 최대 4개까지 연결하여 데이터 전송을 처리할 수 있는 DMA 제어장치를 제공하는데 다른 목적이 있다.In addition, the present invention enables data transfer to a destination having up to four destination addresses for one DMA request for one source address, thereby maximizing external devices requiring different data in the same period. Another object is to provide a DMA controller capable of handling data transfer by connecting up to four.
또한, 본 발명은 다양하게 설정 가능한 소스 어드레스 및 목적 어드레스를 갖는 MCU 내의 어떤 장치라도 DMA 전송이 가능하도록 제어하여 폭넓은 소스 어드레스 및 목적 어드레스에 대해 높은 활용도를 갖는 DMA 제어장치를 제공하는데 다른 목적이 있다. In addition, the present invention is to provide a DMA control device having a high utilization for a wide range of source address and destination address by controlling any device in the MCU having a configurable source address and destination address to enable DMA transfer. have.
또한, 본 발명은 상기한 DMA 제어장치를 이용한 데이터 전송 시스템 및 전송 방법을 제공하는데 또 다른 목적이 있다. Another object of the present invention is to provide a data transmission system and a transmission method using the DMA control apparatus.
상기한 목적을 달성하기 위한 일측면에 따른 본 발명은, MCU 내부의 타이머로부터 입력되는 DMA 요청에 응답하여 DMA 요청신호를 생성하는 DMA 요청부와, 상기 DMA 요청신호에 따라 메모리와, 상기 타이머의 값에 대응하여 일정 주기 동안 데이터 송수신이 이루어지는 외부 입출력 장치 간에 DMA 전송을 수행하는 DMA 제어부를 포함하는 DMA 제어장치를 제공한다. According to an aspect of the present invention, a DMA request unit generates a DMA request signal in response to a DMA request input from a timer inside the MCU, a memory according to the DMA request signal, Provided is a DMA control apparatus including a DMA control unit for performing a DMA transfer between the external input and output devices for data transmission and reception for a predetermined period corresponding to the value.
또한, 상기한 목적을 달성하기 위한 다른 측면에 따른 본 발명은, 데이터가 저장된 메모리와, 상기 메모리와 설정된 일정 주기 마다 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 제어부를 포함하는 데이터 전송 시스템을 제공한다. According to another aspect of the present invention, there is provided a memory including: a memory in which data is stored, a first input / output device for performing DMA transfers at predetermined intervals with the memory, and the memory or the first input / output device; In order to set a counter value corresponding to the period through the internal timer and the second input-output device in which the DMA transfer is made according to the first DMA request, and perform the DMA transfer between the memory and the first input-output device every cycle. An MCU for setting a DMA address, the first DMA request, and a second DMA request input from the timer, and assigning channels to the first and second DMA requests, respectively, according to a priority of the channels; A DMA request unit which selects one channel and outputs a DMA request signal of the selected channel, and the channel selected in response to the DMA request signal; Wherein using the DMA address provides a data transfer system including the memory, DMA controller for performing DMA transfers between the first and second input-output device.
또한, 상기한 목적을 달성하기 위한 다른 측면에 따른 본 발명은, 일정 주기마다 데이터 전송이 이루어지는 제1 입출력 장치와, 요청에 의해 데이터 전송이 이루어지는 제2 입출력 장치와, 메모리의 DMA 어드레스를 내부 레지스터에 셋팅시키 는 단계와, 상기 제1 입출력 장치에 대응하여 MCU 내부의 타이머로부터 입력되는 제1 DMA 요청과, 제2 입출력 장치로부터 입력되는 제2 DMA 요청과, 내부 레지스터로부터 입력되는 제3 DMA 요청을 DMA 요청부를 통해 입력받고, 우선순위에 따라 상기 제1 내지 제3 DMA 요청 중 어느 하나의 요청을 선택하여 채널선택 신호 및 DMA 요청신호를 생성하는 단계와, 상기 DMA 요청신호와 상기 채널선택 신호에 따라 DMA 제어부를 통해 상기 DMA 어드레스를 이용하여 메모리, 제1 및 제2 입출력 장치 간에 DMA 전송을 수행하는 단계를 포함하는 데이터 전송 방법을 제공한다. According to another aspect of the present invention, there is provided an internal register including a first input / output device in which data is transmitted at regular intervals, a second input / output device in which data is transmitted on request, and a DMA address of a memory. Set to a second DMA request input from a timer inside the MCU corresponding to the first input / output device, a second DMA request input from a second input / output device, and a third DMA request input from an internal register. Receiving an input through a DMA request unit, selecting one of the first to third DMA requests according to priority, and generating a channel selection signal and a DMA request signal, and the DMA request signal and the channel selection signal. And performing a DMA transfer between a memory, a first and a second input / output device using the DMA address through a DMA controller. It provides a data transmission method.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention.
실시예Example
도 1은 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 설명하기 위하여 도시한 블록도로서, 여기서는 설명의 편의를 위해 4개의 채널을 갖는 데이터 전송 시스템을 도시하였다. FIG. 1 is a block diagram illustrating a DMA control apparatus according to a preferred embodiment of the present invention. Here, a data transmission system having four channels is illustrated for convenience of description.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 DMA 제어장치는 우선순위 생성부(31), DMA 요청신호 및 채널 선택부(32), DMA 제어부(33), 레지스터 카운팅부(34) 및 레지스터(35)를 포함한다. Referring to FIG. 1, a DMA control apparatus according to a preferred embodiment of the present invention includes a
우선순위 생성부(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 요청신호이다. The
DMA 요청신호 및 채널 선택부(32)는 우선순위 생성부(31)로부터 입력되는 우선순위 결정신호(pr0 내지 pr3)에 따라 내부 버스를 통해 입력되는 DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7) 중 어느 하나의 DMA 요청신호를 선택하여 선택된 내부 DMA 요청신호(dma_req)와 DMA 요청신호의 채널선택 신호(ch-sel) 생성하여 출력한다.The DMA request signal and the
내부 DMA 요청신호(dma_req)는 도 2a에 도시된 바와 같은 구성을 통해 얻을 수 있다. The internal DMA request signal dma_req can be obtained through the configuration as shown in FIG. 2A.
먼저, DMA 요청신호(DRQ0 및 DRQ1, Timer0 내지 Timer7)는 4개의 채널에 각각 할당된다. 외부 DMA 요청신호(DRQ0 및 DRQ1)는 MCU(10)와 무관하게 외부 장치로 입력되는 DMA 요청신호로서, 4개의 채널 중 첫번째 채널과 두번째 채널에 각각 할당된다. 외부 DMA 요청신호(DRQ0 및 DRQ1)에 의한 DMA 동작은 일반적인 DMA 동작과 동일하게 이루어짐에 따라 여기서는 설명의 편의를 위해 간략하게 설명하기로 한다. First, the DMA request signals DRQ0 and DRQ1 and Timer0 to Timer7 are assigned to four channels, respectively. The external DMA request signals DRQ0 and DRQ1 are DMA request signals input to an external device regardless of the
DMA 요청신호(Timer0 내지 Timer7)는 4개의 채널 중 첫번째 채널과 두번째 채널을 제외한 세번째 채널과 네번째 채널에 할당되는 신호로서, 타이머(20)를 통해 미리 설정된 주기동안 MCU(10)를 통해 입력되는 DMA 요청신호이다. 일례로, 동도면에 도시된 바와 같이 8개의 DMA 요청신호(Timer0 내지 Timer7)가 각각 두개의 채널을 할당받고, 이 8개의 DMA 요청신호(Timer0 내지 Timer7) 중 레지스터 설정신호(DMICR1 및 DMICR2)에 의해 각각 어느 하나가 선택되어 세번째 채널과 네번째 채널에 할당된다. 여기서, 레지스터 설정신호(DMICR1 및 DMICR2)는 미리 사용자에 의해 설정되어 레지스터(35)에 저장된 신호로서, DMA 요청신호(Timer0 내지 Timer7) 중 어느 하나를 선택하기 위한 신호이다. The DMA request signals Timer0 to Timer7 are signals allocated to the third and fourth channels except for the first and second channels of the four channels, and are input through the
동작특성을 살펴보면, 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) 중 어느 하나를 선택하여 세번째 채널과 네번째 채널에 할당한다. 여기서, 세번째 채널과 네번째 채널은 단일전송 모드만을 지원한다. Referring to the operation characteristics, when the DMA request signals DRQ0 and DRQ1 and Timer0 to Timer7 are simultaneously input, the DMA request signal of the DMA request signals Timer0 to Timer7 by the
한편, 외부 DMA 요청신호(DRQ0 및 DRQ1)는 각각 오아 게이트(OR1, OR2)로 입력된다. 오아 게이트(OR1)는 DMA 요청신호(DRQ0)와 내부 레지스터 설정에 의한 DMA 요청신호(DMRQR)를 입력받아 논리합하여 출력한다. 오아 게이트(OR2)는 DMA 요청신호(DRQ1)와 내부 레지스터에 의한 DMA 요청신호(DMRQR)를 입력받아 논리합하여 출력한다. 이때, 오아 게이트(OR1, OR2)의 출력신호는 각각 첫번째 채널과 두번째 채널에 할당된다. 첫번째 채널과 두번째 채널은 각각 외부 DMA 요청신호(DRQ0 및 DRQ1) 또는 DMA 요청신호(DMRQR)를 받아서 메모리와 입출력 장치 간의 DMA 동작을 수행하거나, 두개의 채널을 묶어서 메모리와 메모리 간 DMA 동작을 수행하기 위하여 제공된다. On the other hand, the external DMA request signals DRQ0 and DRQ1 are input to OR gates OR1 and OR2, respectively. The OR gate OR1 receives the DMA request signal DRQ0 and the DMA request signal DMRQR by internal register setting, and outputs the result of the OR operation. The OR gate OR2 receives the DMA request signal DRQ1 and the DMA request signal DMRQR by an internal register, and outputs the result of the OR operation. At this time, the output signals of the OR gates OR1 and OR2 are allocated to the first channel and the second channel, respectively. The first and second channels respectively receive external DMA request signals DRQ0 and DRQ1 or DMA request signals DMRQR to perform DMA operations between the memory and the input / output device, or bind two channels to perform DMA operations between the memory and the memory. Is provided for.
이러한 이유는, 각 채널당 하나의 어드레스만이 할당되기 때문이다. 일반적으로, 메모리와 입출력 장치 간에는 소스 어드레스 및 목적 어드레스 중 어느 하나의 어드레스만 필요하기 때문에 하나의 채널만으로도 DMA 전송이 가능하다. 그러나, 메모리와 메모리 간의 DMA 전송은 소스 어드레스 및 목적 어드레스와 같이 두개의 어드레스가 필요하기 때문에 하나의 채널만 가지고는 DMA 전송이 불가능하다. 따라서, 두개의 채널을 묶어서 메모리와 메모리 간의 DMA 전송을 수행하는 것이 가능하다. This is because only one address is allocated to each channel. In general, since only one address of the source address and the destination address is required between the memory and the input / output device, DMA transfer is possible using only one channel. However, the DMA transfer between the memory requires two addresses, such as a source address and a destination address, and therefore, DMA transfer is impossible with only one channel. Therefore, it is possible to perform DMA transfer between the memory by tying two channels together.
또한, 첫번째 채널 및 두번째 채널은 단일전송, 블록전송, 요구전송의 세가지 기능에 사용될 수 있다. 단일전송은 DMA 요청 발생시에 해당 어드레스 하나의 데이터만 전송한 후 DMA 요청이 종료되어 다음 DMA 요청을 기다리는 동작으로 이루어진다. 블록전송은 DMA 전송이 시작되면, DMA 제어장치의 내부의 레지스터에 설정된 DMA 데이터 전송 크기만큼 연속적인 데이터 블록을 전송하는 동작으로 이루어진다. 요구전송은 외부 DMA 요청신호(DRQ0 및 DRQ1)에 의해서만 동작하고, 이 외부 DMA 요청신호(DRQ0 및 DRQ1)가 디스에이블될 때까지 계속 DMA 동작을 수행하는 동작으로 이루어진다. In addition, the first channel and the second channel can be used for three functions of single transmission, block transmission, and request transmission. In the single transmission, when only one data is transmitted when a DMA request is generated, the DMA request is terminated and waits for the next DMA request. When the DMA transfer is started, the block transfer consists of an operation of transferring a continuous data block by the size of the DMA data transfer set in a register inside the DMA controller. The request transmission is performed only by the external DMA request signals DRQ0 and DRQ1, and continues to perform the DMA operation until the external DMA request signals DRQ0 and DRQ1 are disabled.
오아 게이트(OR1, OR2)와 먹스(MUX3, MUX4)를 통해 선택된 DMA 요청신호는 각각 해당 앤드 게이트(AND1 내지 AND4)로 입력된다. 앤드 게이트(AND1 내지 AND4)는 채널선택 인에이블신호(DMER)에 따라 DMA 요청신호 중 어느 하나를 선택하게 된다. 즉, 채널선택 인에이블신호(DMER)가 하이레벨(HIGH level, '1')로 인에이블되는 경우 DMA 요청신호는 모두 선택되고, 로우레벨(LOW level, '0')로 디스에이블되면, DMA 요청신호는 모두 선택되지 않는다. 그러나, 이는 일례로서, 적절히 회로를 변경하여 4개의 채널 중 어느 하나 만을 선택하여 그 채널에 할당된 DMA 요청신호만 선택되도록 할 수도 있다. 여기서, 채널선택 인에이블신호(DMER)는 사용자에 의해 설정된다. The DMA request signals selected through the OR gates OR1 and OR2 and the mux MUX3 and MUX4 are input to the corresponding AND gates AND1 to AND4, respectively. The AND gates AND1 to AND4 select one of the DMA request signals according to the channel select enable signal DMER. That is, when the channel select enable signal DMER is enabled at the high level '1', all of the DMA request signals are selected, and when the channel selection enable signal DMER is enabled at the low level '0', the DMA All request signals are not selected. However, this is an example, and the circuit may be changed appropriately so that only one of the four channels is selected so that only the DMA request signal assigned to that channel is selected. Here, the channel select enable signal DMER is set by the user.
앤드 게이트(AND1 내지 AND4)를 통해 선택된 DMA 요청신호는 4개의 먹스(MUX5 내지 MUX8)로 각각 입력되고, 먹스(MUX5 내지 MUX8)는 우선순위 생성부(31)로부터 입력되는 우선순위 결정신호(pr0 내지 pr3)에 따라 각각 어느 하나를 선택하여 출력한다. The DMA request signals selected through the AND gates AND1 to AND4 are input to the four muxes MUX5 to MUX8, respectively, and the muxes MUX5 to MUX8 are the priority determination signals pr0 inputted from the
오아 게이트(OR3)는 먹스(MUX5 내지 MUX8)로부터 각각 선택된 요청신호(pr0_req 내지 pr3_req)를 논리합하여 출력한다. 오아 게이트(OR3)는 우선순위 결정신호(pr0 내지 pr3)에 의해 우선순위가 결정된 요청신호(pr0_req 내지 pr3_req) 중 어느 하나라도 하이레벨로 출력되는 경우 내부 DMA 요청신호(dma_req)를 인에이블시켜 출력한다. The OR gate OR3 logically outputs the request signals pr0_req to pr3_req selected from the muxes MUX5 to MUX8, respectively. The OR gate OR3 enables and outputs the internal DMA request signal dma_req when any one of the request signals pr0_req to pr3_req whose priority is determined by the priority determination signals pr0 to pr3 is output at a high level. do.
한편, 채널선택 신호(ch_sel)는 도 2b에 도시된 바와 같은 구성을 통해 생성한다. Meanwhile, the channel selection signal ch_sel is generated through the configuration as shown in FIG. 2B.
도 2b에 도시된 바와 같이, 우선순위 결정신호(pr0 내지 pr3)에 의해 선택된 요청신호(pr0_req 내지 pr3_req)(도 2a참조)를 이용하여 채널선택 신호(ch_sel)를 생성한다. As shown in FIG. 2B, the channel selection signal ch_sel is generated using the request signals pr0_req to pr3_req (see FIG. 2A) selected by the priority determination signals pr0 to pr3.
먹스(MUX9 내지 MUX12)는 요청신호(pr0_req 내지 pr3_req)에 따라 어느 하나가 선택된다. 요청신호(pr0_req 내지 pr3_req)에 의해 선택된 먹스는 우선순위 결정신호(pr0 내지 pr3)와 '00' 데이터 중 어느 하나를 선택하여 출력한다. 먹스(MUX9 내지 MUX12)에 의해 선택된 데이터는 오아 게이트(OR4)로 입력된다. 오아 게이트(OR4)는 먹스(MUX9 내지 MUX12)로부터 입력되는 데이터를 논리합하여 출력한다. Any one of the muxes MUX9 to MUX12 is selected according to the request signals pr0_req to pr3_req. The mux selected by the request signals pr0_req to pr3_req selects and outputs any one of the priority determination signals pr0 to pr3 and '00' data. Data selected by the mux MUX9 to MUX12 is input to the OR gate OR4. OR gate OR4 outputs the OR of data input from mux MUX9 to 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'를 이용하기 때문에 어느 하나만 선택되게 된다. For example, when the priority determination signal pr0 is selected and output by the mux MUX9, the OR gate OR4 outputs a channel selection signal ch_sel for selecting a channel corresponding to the priority determination signal pr0. do. Of course, not all channels are selected simultaneously in all muxes MUX9 to MUX12. As shown in the drawing, each of the muxes MUX9 to MUX12 use different request signals pr0_req to pr3_req, that is, the mux 9 uses the 'pr0_req' signal, and the mux MUX10 uses the '! Pro_req & pr1_req' signal. MUX11 uses '! Pr0_req &! Pr1_req & pr2_req' signal, and MUX12 uses '! Pr0_req & pr1_req &! Pr2_req & pr3_req' so that only one is selected.
DMA 제어부(33)는 FSM(Finite State Machine)의 기능을 포함하며, DMA 요청신호 및 채널 선택부(32)로부터 내부 DMA 요청신호(dma_req)와 채널선택 신호(ch_sel)를 입력받아 DMA 전송의 전반적인 동작을 제어한다. 물론, DMA 제어부(33)는 도시되진 않았지만, 별도의 내부 버스를 통해 칩 내에 구현된 다른 소자들과 소정의 신호를 주고 받을 수도 있다. 이러한 신호에 의해 그 동작이 제어될 수도 있다. The
이러한 DMA 제어부(33)는 DMA 요청신호 및 채널 선택부(32)로 내부 DMA 요청신호(dma_req)와 채널선택 신호(ch_sel)가 입력되면, DMA 요청신호(dma_req)가 외부 장치로부터의 요청신호인지 아니면 타이머(20) 설정에 의한 요청신호인지를 판단한 후 선택된 채널을 통해 DMA 데이터 전송을 수행하도록 전반적인 동작을 제어한다. When the internal DMA request signal dma_req and the channel select signal ch_sel are input to the DMA request signal and the
또한, DMA 제어부(33)는 런렝쓰 데이터의 인코딩 또는 디코딩을 포함하는 전반적인 처리를 관장한다. 런렝쓰 데이터는 전광판에서 문자를 제외한 대부분의 배경 데이터와 같이 일정 시간동안 동일한 값을 갖는 데이터로서, MCU(10)를 통해 인코딩된 상태로 레지스터(35)의 런렝쓰 레지스터(미도시)에 저장된다. 이렇게 인코딩된 런렝쓰 데이터를 이하에서는 런렝쓰 인코딩 데이터라 칭한다. 런렝쓰 레지스터에 저장된 런렝쓰 인코딩 데이터에 대한 요청신호가 들어오는 경우 DMA 제어부(33)는 런렝쓰 레지스터로부터 런렝쓰 인코딩 데이터를 독출하여 목적지로 전송한다. In addition, the
예컨대, 외부 장치에 의한 DMA 요청신호인 경우에는 일반적인 방법으로 단일 전송, 블록전송, 요구전송을 수행한다. 타이머(20)에 의한 DMA 요청신호인 경우에는 단일전송으로 타이머(20)에 설정된 주기동안 데이터를 메모리(40)로부터 입출력 장치(50)로, 입출력 장치(50)로부터 메모리(40)로 또는 메모리에서 메모리로 데이터를 전송하도록 전반적인 동작을 제어한다. 여기서, 입출력 장치(50)는 레지스터와 같은 메모리가 내장된 장치이거나, 메모리가 내장되어 있지 않은 장치이거나, 또는 메모리 장치이다. 또한, 입출력 장치(50)는 일정한 주기 동안 데이터 송수신을 수행하는 장치이다. For example, in the case of a DMA request signal from an external device, a single transmission, block transmission, and request transmission are performed in a general manner. In the case of the DMA request signal by the
한편, 입출력 장치(50)가 메모리 맵드(memory mapped) 장치인 경우에는 DMA 요청신호(DRQ0 및 DRQ1)에 의해 첫번째 채널과 두번째 채널이 할당되어 해당 메모리와 DMA 동작을 수행하게 된다. 4개 채널의 우선순위는 각 채널에 대해 상위 우선순위와 하위 우선순위 두 단계로 나뉘어 지도록 설정될 수 있다. 이때, DMA 요청신호(DRQ0 및 DRQ1)가 입력되기 전에 MCU(10)에 의해 주변 입출력 장치(50)의 어드레스가 레지스터(35)에 미리 셋팅된다. 이렇게 셋팅된 어드레스를 통해 해당 메모리(40)와 입출력 장치(50) 간에 DMA 데이터 전송이 이루어진다. 이러한 DMA 동작은 단일전송, 블록전송, 요구전송 방식으로 이루어진다.Meanwhile, when the input /
또한, 입출력 장치(50)가 일정 주기동안 데이터 송수신이 이루어지는 장치일 경우에는 타이머(20)에 의해 일정 주기동안 설정되어 입력되는 요청신호(Timer0 내지 Timer7)에 의해 세번째 채널과 네번째 채널이 할당되어 일정 주기마다 해당 메모리와 DMA 동작을 수행하게 된다. MCU(10)에 의해 초기 셋팅된 소스 어드레스와 목적지 어드레스를 통해 해당 메모리와 해당 입출력 장치가 결정되면, 해당 어드레 스에 대해서만 내부 버스를 이용하여 해당 메모리와 해당 입출력 장치 간의 데이터 전송을 수행하도록 한다. 즉, 이 경우에는 단일전송 방식으로 DMA 동작이 수행된다. In addition, when the input /
레지스터 카운팅부(34)는 레지스터(35)의 전반적인 동작을 제어하는 장치로서, MCU(10)로부터 입력되는 제어신호 또는 타이머(20)에 의한 제어신호에 의해 레지스터(35)에 셋팅된 어드레스값을 카운팅한다. 본 발명의 바람직한 실시예에 따른 DMA 제어장치는 하나의 채널에 4개의 I/O 장치와의 DMA 전송이 수행되도록 제공한다. 이 경우, 레지스터(35)에 셋팅된 목적 어드레스는 레지스터 카운팅부(34)에 의해 카운팅되어 순차적으로 선택된다. 따라서, 한개의 소스 어드레스에 의해 4개의 목적 어드레스가 선택되어, 각각의 목적 어드레스를 갖는 I/O 장치로의 데이터 전송이 가능하다. 이때, I/O 장치들은 동일한 데이터 전송 타이밍을 갖는 장치여야만 한다. 이로써, 별도의 제어기의 개수를 최대 4개에서 1개로 감소시키는 것이 가능하다. The
레지스터(35)에는 MCU(10)에 의해 주변 입출력 장치(50)들의 각 어드레스가 셋팅되어 저장된다. 이러한 어드레스들은 레지스터 카운팅부(34)에 의해 카운팅되어 적절히 선택된다. 또한, DMA 제어부(33)로부터 내부 DMA 요청신호(33)가 입력되면, 이를 받아 해당 메모리와 해당 I/O 장치 간에 DMA 데이터 전송을 수행한다. 예컨대, I/O 장치로부터 DMA 요청신호(DRQ0)가 입력되면, DMA 제어부(33)로부터 선택된 내부 DMA 요청신호에 따라 레지스터(35)는 해당 소스 어드레스를 갖는 메모리(40)를 선택한 후 선택된 메모리(40)의 데이터를 목적 어드레스를 갖는 I/O 장치로 전송한다. In the
이하에서는, 도 3를 참조하여 도 1, 도 2a 및 도 2b에 도시된 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 이용한 데이터 전송 방법을 설명하기로 한다. 여기서, 도 3은 DMA 요청신호(DRQ)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 첫번째 채널(채널0)과 두번째 채널(채널1)의 DMA 데이터 전송 방법을 설명하기 위하여 도시한 흐름도이다. Hereinafter, a data transmission method using a DMA control apparatus according to a preferred embodiment of the present invention shown in FIGS. 1, 2A and 2B will be described with reference to FIG. 3. 3 is a flowchart illustrating a DMA data transfer method of a first channel (channel 0) and a second channel (channel 1) to which a DMA request signal DRQ and a register DMA request signal DMRQR are allocated.
도 3을 참조하면, 먼저 DMA 제어장치는 DMA 요청 대기 상태에서 입력되는 DMA 요청신호(DRQ, DMRQR)를 입력받고, 입력된 DMA 요청신호가 메모리와 I/O 장치 간의 DMA 요청신호인지 또는 메모리와 메모리 간의 DMA 요청신호인지를 판단한다(S31 내지 S33). Referring to FIG. 3, first, a DMA controller receives DMA request signals DRQ and DMRQR input in a DMA request standby state, and whether the input DMA request signal is a DMA request signal between the memory and the I / O device, It is determined whether the DMA request signal between the memories (S31 to S33).
만약, 단계 'S33'에서 DMA 요청신호가 메모리와 I/O 장치 간의 DMA 요청신호인 경우, DMA 어드레스를 이용하여 단일 채널을 통해 메모리와 I/O 장치 간에 DMA 전송을 수행한다(S34). 여기서, DMA 어드레스는 MCU(10)에 의해 미리 레지스터(35)에 저장된다. 이러한 DMA 어드레스는 I/O 장치의 어드레스 또는 메모리의 어드레스가 된다. If the DMA request signal is a DMA request signal between the memory and the I / O device in step S33, DMA transfer is performed between the memory and the I / O device through a single channel using the DMA address (S34). Here, the DMA address is stored in the
만약, DMA 전송이 단일전송, 또는 요구전송 및 외부 요청이 없는 경우, 하나의 DMA 요청신호 발생시 하나의 어드레스에 해당하는 데이터만을 단일 전송한 후 전송을 종료한다(S35, S42). 반면, 블록전송인 경우에는 잔여되는 데이터가 존재하지 않을 때까지 DMA 전송을 수행한 후 데이터가 모드 전송되면 전송을 종료한다(S35, S36, S42). If the DMA transmission is a single transmission, or there is no request transmission and an external request, when one DMA request signal is generated, only one data corresponding to one address is transmitted and then the transmission is terminated (S35 and S42). On the other hand, in the case of block transmission, after the DMA transmission is performed until there is no remaining data, the transmission is terminated when the data is transmitted in mode (S35, S36, S42).
한편, 단계 'S33'에서 DMA 요청신호가 메모리와 메모리 간의 DMA 요청신호인 경우, DMA 소스 어드레스 및 목적 어드레스를 이용하여 두개의 채널(채널0, 채널1)을 통해 메모리와 메모리 간에 DMA 전송을 수행한다(S38, S39). 메모리와 메모리 간의 DMA 전송은 소스 어드레스와 목적 어드레스와 같이 두개의 어드레스가 필요함에 따라 이를 위해 2개의 채널, 즉 첫번째 채널(채널0)과 두번째 채널(채널1)이 사용된다. On the other hand, when the DMA request signal is a DMA request signal between the memory and the memory in step S33, the DMA transfer is performed between the memory and the memory through two channels (
먼저, 출발지 메모리와 목적지 메모리 간에 데이터를 전송하고자 하는 경우, 첫번째 채널(채널0)을 통해 미리 MCU(10)에 의해 레지스터(35)에 셋팅된 소스 어드레스를 이용하여 출발지 메모리를 선택하여 그 메모리에 데이터를 입력한다. 이후, 두번째 채널(채널1)을 통해 미리 MCU(10)에 의해 레지스터(35)에 셋팅된 목적지 어드레스를 이용하여 목적지 메모리를 선택하여 단일전송, 요구전송 또는 블록전송을 수행한다(S38 내지 S40). First, when data is to be transferred between the source memory and the destination memory, the source memory is selected by using the source address set in the
만약, 단계 'S40'에서 단일전송, 또는 요구전송 및 외부 요청이 없는 경우에는, 두번째 채널(채널1)을 통해 목적지 메모리로 DMA 데이터를 전송한다. 이러한 DMA 데이터 전송은 잔여 전송이 존재하지 않을 때까지 실시된 후 종료한다(S40 내지 S42). 반면, 블록전송인 경우에는 두번째 채널(채널1)을 통해 목적지 메모리로 데이터를 전송한 후 다시 첫번째 채널(채널0)를 통해 입력되는 소스 어드레스를 이용하여 출발지 메모리를 선택하여 DMA 데이터 전송을 수행한다. 이러한 DMA 데이터 전송은 블록 내의 모든 데이터가 모두 전송될 때까지 반복적으로 실시된다(S40, S43, S44). If there is no single transmission or request transmission and external request in step S40, the DMA data is transmitted to the destination memory through the second channel (channel 1). This DMA data transfer is carried out until no residual transfer exists (S40 to S42). On the other hand, in the case of block transmission, data is transferred to the destination memory through the second channel (channel 1) and then the source memory is selected using the source address inputted through the first channel (channel 0) to perform DMA data transfer. . This DMA data transfer is repeatedly performed until all data in the block is transferred (S40, S43, S44).
상기에서, 메모리와 I/O 장치 또는 메모리와 메모리 간에 DMA 데이터 전송이 완료되면, DMA 제어부(33)는 인터럽트 신호를 생성하여 MCU(10)로 전송하여 DMA 전송이 완료되었음을 알린다(S37). When the DMA data transfer is completed between the memory and the I / O device or the memory and the memory, the
이하에서는, 도 4를 참조하여 도 1, 도 2a 및 도 2b에 도시된 본 발명의 바람직한 실시예에 따른 DMA 제어장치를 이용한 런렝쓰 데이터 처리방법을 설명하기로 한다. 여기서, 도 4은 DMA 요청신호(Timer0 내지 Timer7)와 레지스터 DMA 요청신호(DMRQR)가 할당되는 세번째 채널(채널2)과 네번째 채널(채널3)을 이용한 런렝쓰 데이터 처리방법을 설명하기 위하여 도시한 흐름도이다. 또한, 이러한 동작은 DMA 제어부(33)에서 이루어진다. Hereinafter, a run length data processing method using a DMA control apparatus according to a preferred embodiment of the present invention shown in FIGS. 1, 2A, and 2B will be described with reference to FIG. 4. 4 illustrates a run length data processing method using a third channel (channel 2) and a fourth channel (channel 3) to which the DMA request signals Timer0 to Timer7 and the register DMA request signal DMRQR are allocated. It is a flow chart. This operation is also performed by the
도 4를 참조하면, 먼저 DMA 제어부(33)는 DMA 요청 대기 상태에서 DMA 요청신호(DMRQR, Timer0 내지 Timer7)가 발생했는지를 판단한다. 그런 다음, 사용자 설정에 의해 해당 채널이 런렝쓰 데이터 처리를 위한 채널로 할당되었는지를 판단한다(S51 내지 S53).Referring to FIG. 4, first, the
만약, 단계 'S53'에서 해당 채널이 런렝쓰 데이터 처리를 위한 채널로 활성화된 경우, 런렝쓰 레지스터에 저장된 런렝쓰 인코딩 데이터를 분석하여 인코딩 부분이 존재하는지를 판단한다(S54). 예컨대, 런렝쓰 데이터 'aaaaaabbbcdeffffghiii'를 인코딩하여 런렝쓰 인코딩 데이터로 전환하면, '-6a-3b3cde-4f2gh-3i'가 된다. 여기서, '-'는 연속적으로 반복되는 데이터로서 인코딩되는 부분으로서 연속적으로 반복되는 데이터의 반복회수를 나타낸다. '+'는 연속적으로 반복되지 않는 일반 데이터로서 일반 데이터의 길이를 나타낸다. 이처럼, 런렝쓰 데이터의 1비트를 이용해서 연속적인 데이터의 반복회수를 나타내는지, 일반 데이터 길이를 나타내는지를 표현하는데, 여기서는 최하위 비트가 사용되어 '0'이면 일반 데이터 길이를, '1'이면 동일 데이터의 반복회수를 나타낸다. 이 최하위 비트를 뺀 나머지 값이 실제로 일반 데이터나 반복되는 동일한 데이터의 발생회수를 표현하게 되고, 내부 레지스터에 저장된다. 이 값이 '0'이 아닌 동안, DMA 제어부(33)는 DMA 요청에 따라 일반 데이터인 경우 메모리와 메모리 간의 전송을 수행한 후 레지스터 값을 감소시키거나, 반복 데이터인 경우 데이터 전송없이 런렝쓰 데이터 레지스터값을 감소시키는 동작을 수행한다. 상기에서와 같이, 런렝쓰 데이터를 인코딩하지 않고, DMA 전송하는 경우에는 총 21 바이트의 전송이 요구되지만, 런렝쓰 인코딩하여 전송하는 경우 총 15 바이트의 전송이 요구된다. 그 만큰 전송되는 바이트 수를 감소시킬 수 있다. If the corresponding channel is activated as a channel for processing the run length data in step S53, it is determined whether the encoding portion exists by analyzing the run length encoding data stored in the run length register (S54). For example, when the run length data 'aaaaaabbbcdeffffghiii' is encoded and converted into the run length encoded data, it becomes '-6a-3b3cde-4f2gh-3i'. Here, '-' represents the number of repetitions of data that is continuously repeated as a portion encoded as data that is continuously repeated. '+' Is general data that is not repeated continuously and indicates the length of the general data. In this way, one bit of run-length data is used to represent the number of consecutive data repetitions or the general data length. In this case, the least significant bit is used so that the normal data length is equal to '0' and the same is equal to '1'. The repeat count of the data is shown. The remaining value minus this least significant bit actually represents the number of occurrences of the normal data or the same repeated data, and is stored in an internal register. While this value is not '0', the
한편, 단계 'S54'에서는 런렝쓰 데이터 레지스터(DMRLR)를 확인하여 레지스터(DMRLR)에 저장된 데이터가 연속적으로 반복되는 런렝스 인코딩 데이터인지를 파악한다. In operation S54, the run length data register DMRLR is checked to determine whether the data stored in the register DMRLR is run length encoded data.
만약, 단계 'S54'에서 반복적이지 않은 일반 데이터인 경우 데이터를 독출하여 일단 한번의 DMA 데이터 전송을 수행하기 위하여 독출한 값을 레지스터에 저장한다. 여기서, 일반 데이터의 판독방법은 상기에서 설명한 바와 같이, 런렝쓰 데이터의 최하위 비트가 '0'인지 '1'인지를 비교하여 판단한다. 예컨대, 최하위비트가 '0'인 경우 일반 데이터로 판단하고, '1'인 경우에는 연속적으로 반복되는 데이터로 판단한다.In the case of general data that is not repetitive in step S54, the data is read and the read value is stored in a register to perform a single DMA data transfer. Herein, as described above, the general data reading method determines whether the least significant bit of the run length data is '0' or '1'. For example, when the least significant bit is '0', it is determined as normal data, and when it is '1', it is determined as data that is continuously repeated.
반면, 단계 'S54'에서 연속적으로 반복되는 런렝스 데이터인 경우, 런렝쓰 데이터가 인코딩된 데이터인지를 판단한다(S57). 만약, 인코딩된 데이터인 경우 런렝쓰 데이터를 전송하지 않고, 런렝스 데이터 레지스터(DMRLR)의 값을 하나 증가시킨다(S58). On the other hand, in the case of run length data that is continuously repeated in step S54, it is determined whether the run length data is encoded data (S57). In the case of the encoded data, the run length data is not transmitted and the value of the run length data register DMRLR is increased by one (S58).
한편, 단계 'S53'에 런렝쓰 인코딩이 활성되는 경우 또는 단계 'S57'에서 인코딩 데이터가 아닌 경우에는 일반적인 데이터와 동일한 방법으로 DMA 전송을 수행한다(S61 내지 S65). 이러한 DMA 전송은 세번째 채널(채널2)과 네번째 채널(채널3)을 이용하여 도 3에서 설명한 방법과 동일한 방법으로 수행됨에 따라 그에 따른 설명은 생략하기로 한다. On the other hand, when run length encoding is activated in step S53 or not encoding data in step S57, DMA transfer is performed in the same manner as general data (S61 to S65). Since the DMA transfer is performed in the same manner as described in FIG. 3 using the third channel (channel 2) and the fourth channel (channel 3), a description thereof will be omitted.
상기에서, DMA 전송이 완료되면, 인터럽트 신호를 생성하여 DMA 전송이 완료되었음을 알린다(S60).In the above, when the DMA transfer is completed, an interrupt signal is generated to inform that the DMA transfer is completed (S60).
본 발명의 기술 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 이 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예들이 가능함을 이해할 수 있을 것이다.Although the technical spirit of the present invention has been described in detail in the preferred embodiments, it should be noted that the above-described embodiments are for the purpose of description and not of limitation. In addition, it will be understood by those skilled in the art that various embodiments are possible within the scope of the technical idea of the present invention.
이상에서 설명한 바와 같이, 본 발명에 의하면, MCU 내부 타이머 출력을 DMA 요청으로 사용함으로써 DMA 제어장치를 단순한 데이터 전송뿐만 아니라, LED/LCD 제어 등 주기적인 데이터 전송의 용도로 프로세서의 간섭없이 사용할 수 있는 이점 이 있다.As described above, according to the present invention, by using the MCU internal timer output as a DMA request, the DMA controller can be used without the processor's interference not only for data transmission but also for periodic data transmission such as LED / LCD control. There is an advantage.
또한, 본 발명에 의하면, DMA 전송 데이터를 DMA 제어부를 통해 분석하여 런렝쓰 인코딩 데이터를 처리함으로써 동일한 데이터가 반복적으로 이루어진 런렝쓰 인코딩 데이터의 처리를 가능하게 하여 반복적인 데이터의 전송에 의한 성능저하 및 전력손실을 감소시킬 수 있다. In addition, according to the present invention, by analyzing the DMA transfer data through the DMA control unit to process the run-length encoded data enables processing of the run-length encoded data in which the same data is repeatedly performed, thereby reducing performance due to repeated data transfer and Power loss can be reduced.
또한, 본 발명에 의하면, 메모리와 메모리 간의 DMA 전송시에 단일 소스 어드레스에 대한 다중 목적 어드레스를 사용할 수 있게 함으로써, 다양한 조합을 통해 여러개의 데이터 요청 장치들에 서로 다른 또는 동일한 데이터를 전송할 수 있다. In addition, according to the present invention, by enabling the use of multiple destination addresses for a single source address in the DMA transfer between the memory and the memory, it is possible to transfer different or identical data to multiple data requesting apparatuses through various combinations.
Claims (42)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050028587A KR101128898B1 (en) | 2005-04-06 | 2005-04-06 | Direct memory access controller, system and method for transferring a data using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050028587A KR101128898B1 (en) | 2005-04-06 | 2005-04-06 | Direct memory access controller, system and method for transferring a data using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060106142A KR20060106142A (en) | 2006-10-12 |
KR101128898B1 true KR101128898B1 (en) | 2012-03-28 |
Family
ID=37626899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050028587A KR101128898B1 (en) | 2005-04-06 | 2005-04-06 | Direct memory access controller, system and method for transferring a data using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101128898B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100932925B1 (en) * | 2007-12-17 | 2009-12-21 | 한국전자통신연구원 | Direct memory access control device and its method for the transmission efficiency of MMO |
US20090248910A1 (en) * | 2008-04-01 | 2009-10-01 | Apple Inc. | Central dma with arbitrary processing functions |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010106634A (en) * | 2000-05-22 | 2001-12-07 | 윤종용 | Electronic system having direct memory access controller operating periodically |
-
2005
- 2005-04-06 KR KR1020050028587A patent/KR101128898B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010106634A (en) * | 2000-05-22 | 2001-12-07 | 윤종용 | Electronic system having direct memory access controller operating periodically |
Also Published As
Publication number | Publication date |
---|---|
KR20060106142A (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4519028A (en) | CPU with multi-stage mode register for defining CPU operating environment including charging its communications protocol | |
US5426612A (en) | First-in first-out semiconductor memory device | |
US4075691A (en) | Communication control unit | |
KR100284718B1 (en) | Timer manager | |
US7054986B2 (en) | Programmable CPU/interface buffer structure using dual port RAM | |
US7908416B2 (en) | Data processing unit and bus arbitration unit | |
KR930002787B1 (en) | Universal peripheral controller self-configuring bootloadable ramware | |
KR20040066424A (en) | Assigning method of multi sources to multi channel and system thereof | |
KR100375233B1 (en) | Direct memory access controller being converted transfer mode flexibly according to data transfer counter value | |
US6782433B2 (en) | Data transfer apparatus | |
KR101128898B1 (en) | Direct memory access controller, system and method for transferring a data using the same | |
KR19990062457A (en) | Data transfer method of the dynamic ram embedded microprocessor and the dynamic ram embedded microprocessor | |
US20030221027A1 (en) | Electronic card with dynamic memory allocation management | |
KR100348545B1 (en) | Communication dma device | |
JP2005084907A (en) | Memory band control unit | |
JPH09297732A (en) | Serial i/o | |
JP3910165B2 (en) | High speed processor | |
JP2005346637A (en) | First-in first-out memory and storage medium controller using it | |
JP2826780B2 (en) | Data transfer method | |
KR920004404B1 (en) | Stack system | |
JPH06131294A (en) | Data transfer device | |
KR100584583B1 (en) | Apparatus and method controlling a serial bus | |
JP3259095B2 (en) | Data transfer method | |
JP2001297056A (en) | Arbitrating circuit and dma controller | |
EP0668556A2 (en) | A queue memory system and method therefor |
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 |