KR20060040156A - Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof - Google Patents

Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof Download PDF

Info

Publication number
KR20060040156A
KR20060040156A KR1020040089385A KR20040089385A KR20060040156A KR 20060040156 A KR20060040156 A KR 20060040156A KR 1020040089385 A KR1020040089385 A KR 1020040089385A KR 20040089385 A KR20040089385 A KR 20040089385A KR 20060040156 A KR20060040156 A KR 20060040156A
Authority
KR
South Korea
Prior art keywords
dma
memory
channel
timer
priority
Prior art date
Application number
KR1020040089385A
Other languages
Korean (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 KR1020040089385A priority Critical patent/KR20060040156A/en
Publication of KR20060040156A publication Critical patent/KR20060040156A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

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

Abstract

복수의 채널을 가진 DMA컨트롤러에서 Bulk DMA동작이 가능한 정보처리장치 및 그 Bulk DMA동작방법이 개시된다. 본 정보처리장치는 인쇄대상 데이터가 저장되는 메모리, 메모리의 액세스 횟수를 카운트하여, 기설정된 액세스 횟수와 동일하면, 타이머틱을 발생하는 타이머, 및 메모리에 액세스하여, 연결된 복수의 채널 중 기설정된 우선순위 채널로 인쇄대상 데이터가 입출력되도록 메모리를 제어하고, 타이머에서 타이머틱이 발생되면 연결된 복수의 채널 중 기설정된 다음 우선순위 채널로 변경하여 인쇄대상 데이터가 입출력되도록 메모리를 제어하는 DMA제어부를 구비한다. 이에 의해, 메모리나 SFR에 저장되어 있는 DCB리스트를 한꺼번에 읽어오는 시간만 소요되므로, DMA 동작 처리 시간이 감소될뿐만 아니라, 전체 성능이 향상되는 이점이 있다.Disclosed are an information processing apparatus capable of a bulk DMA operation in a DMA controller having a plurality of channels and a method of operating the bulk DMA. The information processing apparatus counts the memory in which the print target data is stored, the number of times of access of the memory, and equals a preset number of accesses, and generates a timer tick, and accesses the memory, and sets a predetermined priority among the plurality of connected channels. And a DMA controller for controlling the memory to input and output data to be output to the priority channel, and controlling the memory to input and output data to be printed by changing to a next priority channel among a plurality of connected channels when a timer tick is generated in the timer. . As a result, since only a time for reading the DCB list stored in the memory or the SFR at a time is taken, not only the DMA operation processing time is reduced, but also the overall performance is improved.

DMA, 다중채널, BulkDMA, Multichannel, Bulk

Description

복수의 채널을 가진 DMA컨트롤러에서 Bulk DMA 동작이 가능한 정보처리장치 및 그 Bulk DMA 동작방법{Data processing apparatus for accessing bulk direct memory to DMAController connecting multiplex channel and bulk direct memory access method thereof}Data processing apparatus for accessing bulk direct memory to DMAController connecting multiplex channel and bulk direct memory access method according to DMA controller with multiple channels.

도 1은 본 발명의 일 실시예에 따른 정보처리장치의 블럭도,1 is a block diagram of an information processing apparatus according to an embodiment of the present invention;

도 2는 정보처리장치에 구비된 DMA제어부의 구체적인 블럭도,2 is a specific block diagram of a DMA controller provided in the information processing apparatus;

도 3은 정보처리장치에 구비된 메모리 맵의 구조를 도시한 개략도, 3 is a schematic diagram showing the structure of a memory map included in an information processing apparatus;

도 4는 본 발명의 일 실시예에 따른 정보처리장치의 Bulk DMA동작방법의 설명에 제공되는 흐름도, 그리고4 is a flowchart provided to explain a method of operating a Bulk DMA in an information processing apparatus according to an embodiment of the present invention; and

도 5는 Bulk DMA동작방법에 따른 Bulk DMA 처리의 일 예를 도시한 도면이다.5 is a diagram illustrating an example of a bulk DMA process according to a bulk DMA operation method.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

10 : 버스 20 : 중앙처리부10 bus 20 central processing unit

30 : DMA제어부 32 : 채널제어부30: DMA controller 32: channel controller

34 : DMA제어레지스터 40 : 입출력부34: DMA control register 40: I / O part

50 : 버스중재기 60 : 메모리50: Bus Arbiter 60: Memory

70 : 타이머 70: timer

본 발명은 정보처리장치의 그 Bulk DMA(Direct Memory Access)동작방법에 관한 것으로, 더욱 상세하게는, 다이렉트 메모리 액세스에 의해 데이터의 저장 및 독출이 가능한 정보처리장치의 그 Bulk DMA동작방법에 관한 것이다.The present invention relates to a method of operating a bulk DMA (Direct Memory Access) of an information processing apparatus, and more particularly, to a method of operating a bulk DMA of an information processing apparatus capable of storing and reading data by direct memory access. .

직접 메모리 액세스(Direct Memory Access : 이하 'DMA'라고 함)동작은 CPU(Central Processing Unit)를 통해 CPU의 제어를 받지 않고, 버스에 연결된 메모리와 입출력기기사이에 직접 데이터 전송이 수행되는 동작이다. 입출력기기는 정보처리장치에 연결되어 각각의 채널를 형성하여, 메모리에 저장되어 있는 데이터를 요구하거나, 메모리에 저장할 데이터를 제공하는 장치로, IP(Information Provider), USB(Universal Serial Bus), HDD(Hard Disk Drive) 등이 있다. Direct Memory Access (hereinafter, referred to as 'DMA') operation is an operation in which direct data transfer is performed between a memory connected to a bus and an input / output device without being controlled by the CPU through a central processing unit (CPU). The I / O device is connected to the information processing device to form each channel and requests data stored in the memory or provides data to be stored in the memory. The information provider (IP), universal serial bus (USB), HDD ( Hard Disk Drive).

정보처리장치는 채널로부터 입력되는 데이터를 한 번의 DMA동작을 통해 메모리에 비트맵으로 저장하는 것이 가능하다. 또는, 정보처리장치는 채널의 요구에 의해 메모리에 비트맵으로 저장되어 있는 데이터를 한 번의 DMA동작을 통해 독출하는 것이 가능하다.The information processing apparatus can store the data input from the channel as a bitmap in the memory through one DMA operation. Alternatively, the information processing apparatus can read out data stored as a bitmap in the memory through one DMA operation at the request of a channel.

정보처리장치는 설정된 DMA 제어 블럭(DMA Control Block : 이하 'DCB'라고 함)에 따라 DMA동작을 수행한다. DCB는 DMA 카운트 레지스터, DMA의 시작주소를 기억하는 레지스터, DMA의 끝주소를 기억하는 레지스터, 및 다음 단계에 수행할 명령어의 주소를 기억하는 레지스트 등으로 이루어져 있다.The information processing apparatus performs a DMA operation according to the set DMA control block (hereinafter referred to as 'DCB'). The DCB consists of a DMA count register, a register for storing the start address of the DMA, a register for storing the end address of the DMA, and a register for storing the address of the instruction to be executed in the next step.

정보처리장치는 설정된 DCB에 따라 DMA 동작을 수행하여, 메모리의 시작주소 의 위치에서 끝주소의 위치까지 채널로부터 입력받은 데이터를 저장한다. 또는, 정보처리장치는 채널의 요구에 의해 설정된 DCB에 따라 DMA 동작을 수행하여, 메모리의 시작주소의 위치에서 끝주소의 위치까지 저장되어 있는 데이터를 독출한다.The information processing apparatus performs the DMA operation according to the set DCB, and stores the data received from the channel from the position of the start address to the end address of the memory. Alternatively, the information processing apparatus performs a DMA operation in accordance with the DCB set by the request of the channel, and reads out the data stored from the start address to the end address of the memory.

그런데, 다수의 입출력기기가 연결되어 다수의 채널을 통해 DMA 동작을 수행하는 종래의 정보처리장치는, 다수의 채널이 대량의 DMA 동작을 요구하는 경우에는, 한 번의 DCB 셋업 후, 한 번의 DMA 동작을 수행하였다. 그리고, 정보처리장치는 다음 DMA 동작을 수행하기 위해서는 진행중인 DMA 동작이 끝났음을 알리는 인터럽트가 발생된 후에야, 다시 DCB 셋업 후, DMA 동작을 수행할 수 있었다. However, in the conventional information processing apparatus in which a plurality of input / output devices are connected to perform a DMA operation through a plurality of channels, when a plurality of channels require a large amount of DMA operation, one DMA operation is performed after one DCB setup. Was performed. In order to perform the next DMA operation, the information processing apparatus could perform the DMA operation after the DCB setup again after an interrupt indicating that the ongoing DMA operation is completed.

그러므로, 모든 DCB에는 인터럽트를 제어하는 레지스터가 포함되어야 한다. 또한, 정보처리장치는 대량의 DMA 동작이 필요한 경우에 필요한 DMA 동작 수만큼의 인터럽트 서비스 루틴 처리(Interrupt Service Routine)를 수행해야 했다.Therefore, every DCB must include a register that controls the interrupt. In addition, when a large amount of DMA operations is required, the information processing apparatus had to perform as many interrupt service routines as the required number of DMA operations.

따라서, 모든 DCB에는 인터럽트를 제어하는 레지스터가 포함되어야 하므로 저장공간이 낭비될 뿐만 아니라, 필요한 대량의 DMA 동작 수만큼의 DCB 셋업과 인터럽트 서비스 루틴 처리가 필요하므로, DMA 동작의 처리 시간이 증대되는 문제점이 발생할 수 있다.Therefore, all DCBs must contain a register to control interrupts, which not only wastes storage space but also requires a DCB setup and interrupt service routine processing for a large number of required DMA operations, thereby increasing processing time of DMA operations. This can happen.

따라서, 본 발명의 목적은, 인터럽트 서비스 루틴 처리없이 다음에 처리할 DCB 설정과 DMA 동작의 연속 발생이 가능하도록 하는 복수의 채널을 가진 DMA컨트롤러에서 Bulk DMA동작이 가능한 정보처리장치 및 그 Bulk DMA동작방법을 제공함에 있다.Accordingly, an object of the present invention is to provide an information processing apparatus capable of performing bulk DMA operation in a DMA controller having a plurality of channels that enables subsequent generation of DCB setting and DMA operation to be processed next without interrupt service routine processing, and the bulk DMA operation thereof. In providing a method.

상기 목적을 달성하기 위한 본 발명에 따른 정보처리장치는, 인쇄대상 데이터가 저장되는 메모리, 상기 메모리의 액세스 횟수를 카운트하여, 기설정된 액세스 횟수와 동일하면, 타이머틱을 발생하는 타이머, 및 상기 메모리에 액세스하여, 연결된 복수의 채널 중 기설정된 우선순위 채널로 상기 인쇄대상 데이터가 입출력되도록 상기 메모리를 제어하고, 상기 타이머에서 상기 타이머틱이 발생되면 상기 연결된 복수의 채널 중 기설정된 다음 우선순위 채널로 변경하여 상기 인쇄대상 데이터가 입출력되도록 상기 메모리를 제어하는 DMA제어부를 포함한다.An information processing apparatus according to the present invention for achieving the above object includes a memory for storing data to be printed, a timer for counting the number of times of access of the memory, and generating a timer tick when the number of times of access is equal to a preset number of times, and the memory. Accessing the controller to control the memory to input and output the print target data to a predetermined priority channel among a plurality of connected channels, and when the timer tick occurs in the timer, to the next preset priority channel among the plurality of connected channels. And a DMA controller for controlling the memory to input and output the data to be printed.

또한, 상기 DMA제어부는, 상기 타이머에서 상기 타이머틱이 발생되면 상기 기설정된 우선순위 채널이 상기 기설정된 다음 우선순위 채널로 변경되도록 상기 연결된 복수의 채널을 제어하는 채널제어부, 및 상기 인쇄대상 데이터가 입출력될 상기 메모리의 시작번지, 종료번지, 카운트값, 및 제어신호가 저장된 DMA제어레지스터를 포함하는 것이 바람직하다.The DMA controller may further include a channel controller configured to control the plurality of connected channels such that the preset priority channel is changed to the preset next priority channel when the timer tick is generated in the timer, and the print target data is stored in the DMA controller. Preferably, the memory device includes a DMA control register in which a start address, an end address, a count value, and a control signal of the memory to be input / output are stored.

그리고, 상기 메모리는, SFR, SRAM, 및 SDRAM 중 적어도 어느 하나이고, 상기 기설정된 액세스 횟수가 기록된 타이머 테이블, 및 상기 우선순위가 기록된 우선순위 테이블은 상기 SFR에 저장되는 것이 바람직하다.The memory may be at least one of an SFR, an SRAM, and an SDRAM, and a timer table in which the predetermined number of accesses is recorded, and a priority table in which the priority is recorded, are stored in the SFR.

한편, 본 발명의 인쇄대상 데이터가 저장되는 메모리를 포함한 정보처리장치의 Bulk DMA동작은, 상기 메모리에 액세스하여, 연결된 복수의 채널 중 기설정된 우선순위 채널로 상기 인쇄대상 데이터를 입출력하는 단계, 및 소정의 타이머틱이 발생하면, 상기 연결된 복수의 채널 중 상기 기설정된 우선순위 채널을 기설정된 다음 우선순위 채널로 변경하여 상기 인쇄대상 데이터가 입출력되도록 상기 메모리에 액세스하는 단계를 포함한다.On the other hand, the Bulk DMA operation of the information processing apparatus including a memory in which the print target data of the present invention is stored, accessing the memory, inputting and outputting the print target data through a predetermined priority channel among a plurality of connected channels; And when a predetermined timer tick occurs, changing the predetermined priority channel among the plurality of connected channels to a preset next priority channel to access the memory to input and output the data to be printed.

그리고, 상기 소정의 타이머틱은, 상기 메모리의 액세스 횟수를 카운트하여, 기설정된 액세스 횟수와 동일하면 발생하는 것이 바람직하다.Preferably, the predetermined timer tick is generated when the number of times of access of the memory is counted and equal to a predetermined number of times of access.

이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.Hereinafter, with reference to the drawings will be described in detail the present invention.

도 1은 본 발명의 일 실시예에 따른 정보처리장치의 블럭도이다.1 is a block diagram of an information processing apparatus according to an embodiment of the present invention.

도 1를 참조하면, 본 정보처리장치는 버스(10), 중앙처리부(20), DMA제어부(30), 입출력부(40), 버스중재기(50), 메모리(60), 및 타이머(70)를 포함한다.Referring to FIG. 1, the information processing apparatus includes a bus 10, a central processing unit 20, a DMA control unit 30, an input / output unit 40, a bus intermediator 50, a memory 60, and a timer 70. ).

버스(10)는 정보처리장치를 구성하는 후술할 중앙처리부(20), DMA제어부(30), 입출력부(40), 버스중재기(50), 메모리(60), 타이머(70), 및 입출력기기들을 연결하며, 이상의 기기들, 및 입출력기기들 사이에 제어 신호, 인쇄대상 데이터, 및 정보가 전달되는 정보의 통로 또는 전송로이다.The bus 10 includes a central processing unit 20, a DMA control unit 30, an input / output unit 40, a bus intermediator 50, a memory 60, a timer 70, and an input / output unit constituting an information processing device. It is a path or transmission path of information that connects the devices and transmits control signals, data to be printed, and information between the above devices and the input / output devices.

중앙처리부(CPU)(20)는 버스(10)와 접속, 접속해제 등을 제어하며, 버스 액세스권을 가지는 마스터로, 다른 기기들의 버스 사용을 제어한다.The central processing unit (CPU) 20 controls the connection and disconnection with the bus 10, and is a master having a bus access right, and controls the bus usage of other devices.

DMA제어부(DMAController)(30)는 중앙처리부(20)와 마찬가지로 버스 액세스권을 가지는 마스터이며, 중앙처리부(20)의 제어없이 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다. The DMA controller 30, like the central processing unit 20, is a master having a bus access right, and transmits data to be printed by performing a DMA operation without the control of the central processing unit 20. FIG.

싱글모드이면, DMA제어부(30)는 한 번의 DCB 셋업 후, 한 번의 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다. 벌크모드이면, DMA제어부(30)는 다수의 채널이 요구하는 모든 DMA 동작을 수행하기 위해, 한 번에 모든 DCB을 셋업한 후에, 한 번의 모든 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다.In the single mode, the DMA controller 30 performs one DMA operation and transmits the print target data after one DCB setup. In the bulk mode, the DMA controller 30 sets up all the DCBs at once to perform all the DMA operations required by a plurality of channels, and then transmits the print target data by performing all one DMA operations.

입출력부(I/O)(40)에는 다수의 연결기기들이 연결되어, 각각의 연결기기들별로 채널을 형성한다. 입출력부(40)는 DMA제어부(30)의 DMA 동작에 의해 형성된 채널로 인쇄대상 데이터를 입출력한다. A plurality of connection devices are connected to the input / output unit (I / O) 40 to form a channel for each connection device. The input / output unit 40 inputs and outputs data to be printed on a channel formed by the DMA operation of the DMA controller 30.

버스중재기(BusArbiter)(50)는 중앙처리부(20), 및 DMA제어부(30)가 버스의 사용을 요청하는 신호를 보내면, 신호를 받아 버스를 사용할 수 있도록 버스의 사용을 할당해 준다. The bus arbiter 50 sends a signal requesting the use of the bus by the central processing unit 20 and the DMA controller 30 to allocate the use of the bus to receive the signal.

메모리(60)에는 인쇄대상 데이터, DCB리스트, 수행되고 있는 한 채널에서의 DMA 동작 수를 제어하는 타이머 테이블, 및 다수의 채널의 우선순위를 제어하는 우선순위 테이블이 저장된다. The memory 60 stores data to be printed, a DCB list, a timer table for controlling the number of DMA operations in one channel being performed, and a priority table for controlling priorities of a plurality of channels.

메모리(60)에는 SFR(Special Function Regiser), ROM(Read Only Memory), SRAM(Static Random Access Memory), 및 SDRAM(Synchronous Dynamic Random Access Memory) 등이 있다. SFR에는 타이머 테이블, 및 우선순위 테이블이 저장된다.The memory 60 includes a Special Function Regiser (SFR), a Read Only Memory (ROM), a Static Random Access Memory (SRAM), and a Synchronous Dynamic Random Access Memory (SDRAM). The SFR stores a timer table and a priority table.

타이머(70)는 벌크모드일 경우에 수행되고 있는 한 채널에서의 DMA 동작 수를 카운트하여, SFR에 저장되어 있는 타이머 테이블에 설정된 DMA 동작 수와 동일하면 타이머틱을 발생한다.The timer 70 counts the number of DMA operations in one channel being performed in the bulk mode, and generates a timer tick when the timer 70 is equal to the number of DMA operations set in the timer table stored in the SFR.

도 2는 정보처리장치에 구비된 DMA제어부의 구체적인 블럭도이다. 2 is a specific block diagram of a DMA controller provided in the information processing apparatus.

도 2를 참조하면, DMA제어부(30)는 채널제어부(32), DMA제어레지스터(34), 데이터제어부(36), 및 어드레스제어부(38)를 포함한다.Referring to FIG. 2, the DMA controller 30 includes a channel controller 32, a DMA control register 34, a data controller 36, and an address controller 38.

채널제어부(32)는 입출력부(40)에 연결된 연결기기들의 채널을 SFR에 저장되 어 있는 우선순위 테이블에 따라 대량의 DMA 동작이 수행되도록 제어한다. 그리고, 채널제어부(32)는 타이머(70)에 의해 타이머틱이 발생되면, 현재 DMA 동작이 수행되고 있는 채널을 우선순위 테이블에 따라 다음 순위의 채널로 변경한다.The channel controller 32 controls the channel of the connected devices connected to the input / output unit 40 to perform a large amount of DMA operation according to the priority table stored in the SFR. When the timer tick is generated by the timer 70, the channel controller 32 changes the channel on which the DMA operation is currently performed to the next channel according to the priority table.

또한, 채널제어부(32)는 우선순위 테이블이 설정되어 있지 않으면, 순차적으로 채널을 제어한다. 그리고, 채널제어부(32)는 타이머틱이 설정되어 있지 않으면, 현재 채널의 DMA 동작을 완료하고, 현재 채널을 순차적으로 다음 채널로 변경한다.In addition, if the priority table is not set, the channel controller 32 sequentially controls the channels. If the timer tick is not set, the channel controller 32 completes the DMA operation of the current channel and sequentially changes the current channel to the next channel.

DMA제어레지스터(34)에는 메모리(60)에서 읽어온 DCB리스트가 저장된다. 또한, DMA제어레지스터(34)에는 다수의 채널이 요구하는 대량의 DMA 동작이 수행되도록 읽어온 DCB리스트에 기초하여, 생성된 GCB(Global Control Block)이 저장된다.The DMA control register 34 stores a DCB list read from the memory 60. The DMA control register 34 also stores the generated global control block (GCB) based on the DCB list read to perform a large amount of DMA operations required by a plurality of channels.

GCB는 전체 DMA 동작을 제어하는 레지스터, 첫번째 DCB의 시작주소를 기억하는 레지스터, 현재 DMA 시작주소를 기억하는 레지스터, 현재 DMA 종료주소를 기억하는 레지스터, 현재 DMA 카운트 레지스터, 현재 DMA 동작을 제어하는 레지스터, 및 인터럽트를 요청하는 레지스터 등으로 이루어져 있다.The GCB is a register that controls the entire DMA operation, a register that stores the start address of the first DCB, a register that stores the current DMA start address, a register that stores the current DMA end address, a current DMA count register, and a register that controls the current DMA operation. , And a register for requesting an interrupt.

데이터제어부(36)는 메모리(60)에 버스(10)로의 인쇄대상 데이터의 입출력을 명령하는 제어신호를 전송한다. 어드레스제어부(38)는 버스(10)로의 어드레스 출력을 명령하는 제어신호를 전송한다.The data control unit 36 transmits a control signal for instructing the input / output of the print target data to the bus 10 to the memory 60. The address controller 38 transmits a control signal for commanding the address output to the bus 10.

도 3은 정보처리장치에 구비된 메모리 맵의 구조를 도시한 개략도이다. 3 is a schematic diagram showing the structure of a memory map included in the information processing apparatus.

도 3를 참조하면, 메모리(60)는 어드레스 P 내지 Q까지는 ROM이 할당되고, R 내지 S까지는 SFR이 할당되고, S 내지 T까지는 SRAM이 할당되며, U 내지 FFFFFF까지는 SDRAM이 할당된다. Referring to FIG. 3, the memory 60 is allocated ROMs from addresses P to Q, SFRs are allocated to R to S, SRAMs are allocated to S to T, and SDRAMs are allocated to U to FFFFFF.                     

DCB리스트는 메모리(60)의 어떤 영역에든 할당될 수 있으며, 환형 링크드 리스트 형태로 저장되어 있을 수 있다. SFR에 저장되어 있는 타이머 테이블은 최대 DCB 수만큼 존재하며, 우선순위 테이블은 입출력부(40)에 연결된 채널 수만큼 존재한다.The DCB list may be allocated to any area of the memory 60 and may be stored in the form of an annular linked list. The timer table stored in the SFR exists by the maximum number of DCBs, and the priority table exists by the number of channels connected to the input / output unit 40.

도 4는 본 발명의 일 실시예에 따른 정보처리장치의 Bulk DMA동작방법의 설명에 제공되는 흐름도이다.4 is a flowchart provided to explain a method for operating a Bulk DMA in an information processing apparatus according to an embodiment of the present invention.

도 4를 참조하면, DMA제어부(30)는 새로운 DMA 동작을 수행하기 위해 전의 DMA 동작을 초기화한다(S100). DMA제어부(30)는 DMA제어레지스터(34)를 초기화하여 저장되어 있는 DCB를 제거한다.Referring to FIG. 4, the DMA controller 30 initializes a previous DMA operation to perform a new DMA operation (S100). The DMA controller 30 initializes the DMA control register 34 to remove the stored DCB.

DMA제어부(30)는 대량의 DMA 동작을 수행할 수 있는 벌크모드가 선택되었는지 여부를 판단한다(S110). 벌크모드는 입출력부(40)에 연결된 복수의 채널이 요구하는 모든 DMA 동작을 한번에 수행하는 모드이다.The DMA controller 30 determines whether a bulk mode capable of performing a large amount of DMA operations is selected (S110). The bulk mode is a mode in which all DMA operations required by a plurality of channels connected to the input / output unit 40 are performed at a time.

벌크모드가 선택되지 않으면, DMA제어부(30)는 싱글모드로 한 번의 DCB 셋업 후, 한 번의 DMA 동작을 수행한다(S115).If the bulk mode is not selected, the DMA controller 30 performs one DMA operation after one DCB setup in a single mode (S115).

벌크모드가 선택되면, DMA제어부(30)는 메모리(60)에 저장되어 있는 모든 DCB리스트를 읽어온다(S120). DMA제어부(30)는 버스중재기(50)에 버스(10)의 사용을 요청하여, 버스(10)의 사용이 허가되면, 버스(10)를 제어하여, 메모리(60)에 저장되어 있는 모든 DCB리스트를 읽어온다.When the bulk mode is selected, the DMA controller 30 reads all the DCB lists stored in the memory 60 (S120). The DMA controller 30 requests the bus intermediator 50 to use the bus 10, and when the use of the bus 10 is permitted, the DMA controller 30 controls the bus 10 to store all of the memories stored in the memory 60. Read the list of DCBs.

DMA제어부(30)는 읽어온 모든 DCB리스트를 DMA제어레지스터(34)에 업데이트한다(S130). The DMA controller 30 updates all the read DCB lists to the DMA control register 34 (S130).                     

DMA제어부(30)의 채널제어부(32)는 입출력부(40)에 연결된 채널에 우선순위가 설정되었는지 여부를 판단한다(S140). 체널제어부(32)는 SFR에 저장되어 있는 우선순위 테이블을 보고 우선순위를 알 수 있다.The channel controller 32 of the DMA controller 30 determines whether priority is set to the channel connected to the input / output unit 40 (S140). The channel controller 32 may know the priority by looking at the priority table stored in the SFR.

우선순위가 설정되어 있으면, DMA제어부(30)는 우선순위 테이블에 따라 최고순위로 설정된 채널의 DCB로 이동한다(S150). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 첫번째 DCB의 시작주소를 기억하는 레지스터에 따라 기억된 시작주소의 첫번째 DCB로 이동한다.If the priority is set, the DMA controller 30 moves to the DCB of the channel set to the highest priority according to the priority table (S150). The DMA controller 30 moves to the first DCB of the stored start address according to a register which stores the start address of the first DCB of the GCB stored in the DMA control register 34.

우선순위가 설정되어 있지 않으면, DMA제어부(30)는 첫번째 채널의 DCB로 이동한다(S155). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 첫번째 DCB의 시작주소를 기억하는 레지스터에 따라 기억된 시작주소의 첫번째 DCB로 이동한다.If the priority is not set, the DMA controller 30 moves to the DCB of the first channel (S155). The DMA controller 30 moves to the first DCB of the stored start address according to a register which stores the start address of the first DCB of the GCB stored in the DMA control register 34.

DMA제어부(30)는 이동한 첫번째 DCB에 따라 DMA 동작을 수행한다(S160). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 전체 DMA 동작을 제어하는 레지스터, 현재 DMA 시작주소를 기억하는 레지스터, 현재 DMA 종료주소를 기억하는 레지스터, 현재 DMA 카운트 레지스터, 현재 DMA 동작을 제어하는 레지스터에 따라 메모리(60)와 채널사이에 직접 데이터를 전송한다.The DMA controller 30 performs a DMA operation according to the first DCB moved (S160). The DMA controller 30 registers the entire DMA operation of the GCB stored in the DMA control register 34, a register which stores the current DMA start address, a register which stores the current DMA end address, a current DMA count register, and the present. Data is transferred directly between the memory 60 and the channel in accordance with a register controlling the DMA operation.

DMA제어부(30)는 현재 채널의 DMA 동작이 완료되었는지 여부를 판단한다(S170). DMA제어부(30)가 현재 채널의 DMA 동작이 완료되었는지 여부를 판단하는 방법에는 여러가지가 있다.The DMA controller 30 determines whether the DMA operation of the current channel is completed (S170). There are various ways in which the DMA controller 30 determines whether the DMA operation of the current channel is completed.

그 중에 하나는, DMA제어부(30)는 타이머(70)가 활성화되어 타이머(70)에 의 해 타이머틱이 발생되면, 현재 채널의 DMA 동작이 완료되었다고 판단한다. One of them is that when the timer 70 is activated and the timer tick is generated by the timer 70, the DMA controller 30 determines that the DMA operation of the current channel is completed.

타이머(70)는 DMA 동작이 수행되고 있는 현재 채널에서의 DMA 동작 수를 카운트하여, 카운트한 DMA 동작 수와 SFR에 저장되어 있는 타이머 테이블에 설정된 DMA 동작 수를 비교한다. 비교결과, 타이머(70)는 카운트한 DMA 동작 수가 설정된 DMA 동작 수와 동일해지면 타이머틱을 발생한다. 타이머틱이 발생되고 나면, 타이머(70)는 초기화되어 다시 DMA 동작이 수행되는 다음 채널의 DMA 동작 수를 카운트한다.The timer 70 counts the number of DMA operations in the current channel where the DMA operation is being performed, and compares the counted DMA operations with the number of DMA operations set in the timer table stored in the SFR. As a result of the comparison, the timer 70 generates a timer tick when the counted number of DMA operations equals the set number of DMA operations. After the timer tick is generated, the timer 70 initializes and counts the number of DMA operations of the next channel where the DMA operation is performed again.

또 다른 하나는, 타이머(70)가 비활성화되어 있으면, DMA제어부(30)는 현재 채널의 마지막 DCB의 DMA 동작까지 수행하고, 현재 채널의 DMA 동작이 완료되었다고 판단한다.On the other hand, if the timer 70 is deactivated, the DMA controller 30 performs up to the DMA operation of the last DCB of the current channel, and determines that the DMA operation of the current channel is completed.

현재 채널의 DMA 동작이 완료되었다고 판단되면, DMA제어부(30)는 벌크모드가 종료되는지 여부를 판단한다(S180). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB에 인터럽트를 요청하는 레지스터가 포함되어 있으면, 벌크모드를 종료한다.If it is determined that the DMA operation of the current channel is completed, the DMA controller 30 determines whether the bulk mode is terminated (S180). The DMA controller 30 ends the bulk mode when a register for requesting an interrupt is included in the GCB stored in the DMA control register 34.

GCB에 인터럽트를 요청하는 레지스터가 포함되어 있지 않으면, 채널제어부(32)는 DMA 동작이 완료된 채널을 다음 채널로 변경하여, 다음 채널의 DCB로 이동한다(S190). S140단계에서, 우선순위가 설정되어 있으면, 채널제어부(32)는 DMA 동작이 완료된 채널을 SFR에 저장되어 있는 우선순위 테이블에 따라 다음 우선순위 채널로 변경한다. S140단계에서, 우선순위가 설정되어 있지 않으면, 채널제어부(32)는 DMA 동작이 완료된 채널을 순차적으로 두번째 채널로 변경한다. If the GCB does not include a register for requesting an interrupt, the channel controller 32 changes the channel on which the DMA operation is completed to the next channel and moves to the DCB of the next channel (S190). In step S140, if the priority is set, the channel controller 32 changes the channel having completed the DMA operation to the next priority channel according to the priority table stored in the SFR. In step S140, if the priority is not set, the channel controller 32 sequentially changes the channel on which the DMA operation is completed to the second channel.                     

도 5는 Bulk DMA동작방법에 따른 Bulk DMA 처리의 일 예를 도시한 도면이다.5 is a diagram illustrating an example of a bulk DMA process according to a bulk DMA operation method.

도 5를 참조하면, 도 5의 (a)는 우선순위 데이블에 의해 채널0, 채널1, 채널2, 채널3 순으로 우선순위가 설정되어 있고, 타이머 테이블이 설정되어 있지 않은 상태의 Bulk DMA 처리의 일 예이다.Referring to FIG. 5, in FIG. 5A, the priority is set in order of channel 0, channel 1, channel 2, and channel 3 according to the priority table, and the bulk DMA processing without the timer table is set. Is one example.

DMA제어부(30)는 타이머 테이블이 설정되어 있지 않으므로, 우선순위 데이블에 따라 채널0의 마지막 DCB의 DMA 동작까지 수행한다. 그 다음, DMA제어부(30)는 우선순위 데이블에 따라 다음 우선순위의 채널1의 마지막 DCB의 DMA 동작까지 수행하고, 우선순위에 따라 채널2, 채널3 순으로 DMA 동작을 수행한다.Since the timer table is not set, the DMA controller 30 performs the DMA operation of the last DCB of channel 0 according to the priority table. Next, the DMA controller 30 performs the DMA operation of the last DCB of the channel 1 of the next priority according to the priority table, and performs the DMA operation in the order of channel 2 and channel 3 according to the priority.

도 5의 (b)는 우선순위 데이블에 의해 채널0, 채널1, 채널2, 채널3 순으로 우선순위가 설정되어 있고, 타이머 테이블이 2틱으로 설정되어 있는 상태의 Bulk DMA 처리의 일 예이다.FIG. 5B is an example of Bulk DMA processing in which priority is set in order of channel 0, channel 1, channel 2, and channel 3 according to the priority table, and the timer table is set to 2 ticks. .

DMA제어부(30)는 우선순위 데이블에 따라 채널0의 DMA 동작을 수행한다. 이 때, 타이머(70)는 수행되는 DMA 동작 수를 카운트하여, 카운트한 DMA 동작 수가 타이머 테이블에 설정된 2틱과 같아지면, 타이머틱을 발생한다. 타이머틱이 발생되면, DMA제어부(30)의 채널제어부(32)는 채널0을 다음 우선순위의 채널1로 변경한다. 그리고, DMA제어부(30)는 매 2틱마다 우선순위에 따라 채널을 변경하여, 채널3의 DCB의 DMA 동작까지 수행한다. 그 후, 다시 채널0으로 돌아가 DMA제어부(30)는 이상의 동작을 반복하여, 모든 채널의 마지막 DCB의 DMA 동작까지 수행한다. The DMA controller 30 performs a DMA operation on channel 0 according to the priority table. At this time, the timer 70 counts the number of DMA operations performed, and generates a timer tick when the counted number of DMA operations is equal to 2 ticks set in the timer table. When the timer tick is generated, the channel controller 32 of the DMA controller 30 changes channel 0 to channel 1 of the next priority. The DMA controller 30 changes the channel according to the priority every two ticks, and performs the DMA operation of the DCB of the channel 3. After that, returning to channel 0 again, the DMA controller 30 repeats the above operation, and performs the DMA operation of the last DCB of all channels.

이상 설명한 바와 같이, 본 발명에 따르면, 메모리나 SFR에 저장되어 있는 DCB리스트를 한꺼번에 읽어오는 시간만 소요되므로, DMA 동작 처리 시간이 감소될뿐만 아니라, 전체 성능이 향상되는 이점이 있다.As described above, according to the present invention, since only a time for reading the DCB list stored in the memory or the SFR at a time is required, the DMA operation processing time is reduced, and the overall performance is improved.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 이해되어져서는 안 될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the specific embodiments described above, but the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood from the technical spirit or the prospect of the present invention.

Claims (5)

인쇄대상 데이터가 저장되는 메모리;A memory in which print target data is stored; 상기 메모리의 액세스 횟수를 카운트하여, 기설정된 액세스 횟수와 동일하면, 타이머틱을 발생하는 타이머;및A timer that counts the number of accesses of the memory and generates a timer tick when the number of accesses of the memory is equal to a preset number of accesses; and 상기 메모리에 액세스하여, 연결된 복수의 채널 중 기설정된 우선순위 채널로 상기 인쇄대상 데이터가 입출력되도록 상기 메모리를 제어하고, 상기 타이머에서 상기 타이머틱이 발생되면 상기 연결된 복수의 채널 중 기설정된 다음 우선순위 채널로 변경하여 상기 인쇄대상 데이터가 입출력되도록 상기 메모리를 제어하는 DMA제어부;를 포함하는 것을 특징으로 하는 정보처리장치.Accessing the memory and controlling the memory to input and output the print target data to a predetermined priority channel among a plurality of connected channels, and when the timer tick is generated in the timer, set a next priority among the plurality of connected channels. And a DMA controller for changing the channel to control the memory to input and output the data to be printed. 제 1항에 있어서,The method of claim 1, 상기 DMA제어부는,The DMA control unit, 상기 타이머에서 상기 타이머틱이 발생되면, 상기 기설정된 우선순위 채널이 상기 기설정된 다음 우선순위 채널로 변경되도록 상기 연결된 복수의 채널을 제어하는 채널제어부;및A channel controller configured to control the plurality of connected channels such that the preset priority channel is changed to the preset next priority channel when the timer tick is generated in the timer; and 상기 인쇄대상 데이터가 입출력될 상기 메모리의 시작번지, 종료번지, 카운트값, 및 제어신호가 저장된 DMA제어레지스터;를 포함하는 것을 특징으로 하는 정보처리장치.And a DMA control register in which a start address, an end address, a count value, and a control signal of the memory to which the print target data is to be input / output are stored. 제 1항에 있어서, The method of claim 1, 상기 메모리는,The memory, SFR, SRAM, 및 SDRAM 중 적어도 어느 하나이고, At least one of SFR, SRAM, and SDRAM, 상기 기설정된 액세스 횟수가 기록된 타이머 테이블, 및 상기 우선순위가 기록된 우선순위 테이블은 상기 SFR에 저장되는 것을 특징으로 하는 정보처리장치.And a timer table in which the predetermined number of times of access is recorded, and a priority table in which the priority is recorded, in the SFR. 인쇄대상 데이터가 저장되는 메모리를 포함한 정보처리장치에 있어서,An information processing apparatus including a memory in which print target data is stored, 상기 메모리에 액세스하여, 연결된 복수의 채널 중 기설정된 우선순위 채널로 상기 인쇄대상 데이터를 입출력하는 단계;및Accessing the memory and inputting / outputting the print target data through a predetermined priority channel among a plurality of connected channels; and 소정의 타이머틱이 발생하면, 상기 연결된 복수의 채널 중 상기 기설정된 우선순위 채널을 기설정된 다음 우선순위 채널로 변경하여 상기 인쇄대상 데이터가 입출력되도록 상기 메모리에 액세스하는 단계;를 포함하는 것을 특징으로 하는 정보처리장치의 Bulk DMA동작방법.And when the predetermined timer tick occurs, changing the predetermined priority channel among the plurality of connected channels to a preset next priority channel to access the memory to input and output the data to be printed. Bulk DMA operation method of an information processing device. 제 4항에 있어서,The method of claim 4, wherein 상기 소정의 타이머틱은,The predetermined timer tick is, 상기 메모리의 액세스 횟수를 카운트하여, 기설정된 액세스 횟수와 동일하면 발생하는 것을 특징으로 하는 정보처리장치의 Bulk DMA동작방법.And counting the number of times of access of the memory and generating the same number of times of access.
KR1020040089385A 2004-11-04 2004-11-04 Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof KR20060040156A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040089385A KR20060040156A (en) 2004-11-04 2004-11-04 Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040089385A KR20060040156A (en) 2004-11-04 2004-11-04 Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof

Publications (1)

Publication Number Publication Date
KR20060040156A true KR20060040156A (en) 2006-05-10

Family

ID=37147184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040089385A KR20060040156A (en) 2004-11-04 2004-11-04 Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof

Country Status (1)

Country Link
KR (1) KR20060040156A (en)

Similar Documents

Publication Publication Date Title
US7350004B2 (en) Resource management device
US20080209084A1 (en) Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface
KR100868766B1 (en) Method and apparatus for determining priority in direct memory access apparatus having multiple direct memory access requesting blocks
JP2007233522A (en) Dma data transfer device and dma data transfer method
JP2012523619A (en) Data storage device command and interrupt grouping
KR20080097946A (en) Semiconductor memory apparatus, memory access control system and data reading method
EP1313019B1 (en) Arbitration apparatus
JPH03126155A (en) Bus arbitrator
JP5056668B2 (en) Data transfer apparatus and data transfer method
KR20060040156A (en) Data processing apparatus for accessing bulk direct memory to dmacontroller connecting multiplex channel and bulk direct memory access method thereof
JP2005303718A (en) Matrix bus connection system
US20060047866A1 (en) Computer system having direct memory access controller
CN110329313B (en) Display method and device for engineering maintenance vehicle reconnection configuration
JP2007241922A (en) Arbitration method for use of shared resource, and arbitration device therefor
JP2004213666A (en) Dma module and its operating method
CN111506521B (en) Memory, data request writing method and controller
JP2006277363A (en) Information transfer system, and image forming device
JP2006227969A (en) Semiconductor integrated circuit and information processing apparatus
US20200257471A1 (en) Control apparatus and control method
JPS63191397A (en) Information processor
JP2020035264A (en) Memory access controller
KR100215572B1 (en) Method and apparatus for controlling interface buffer
JP2006309530A (en) Bus arbitration circuit
JP2002024157A (en) Method and device for processing dma
JPH0764849A (en) Shared memory controller for processor

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination