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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000010365 information processing Effects 0.000 claims abstract description 28
- 238000010586 diagram Methods 0.000 description 8
- 241000238876 Acari Species 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent 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
도 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
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
버스(10)는 정보처리장치를 구성하는 후술할 중앙처리부(20), DMA제어부(30), 입출력부(40), 버스중재기(50), 메모리(60), 타이머(70), 및 입출력기기들을 연결하며, 이상의 기기들, 및 입출력기기들 사이에 제어 신호, 인쇄대상 데이터, 및 정보가 전달되는 정보의 통로 또는 전송로이다.The
중앙처리부(CPU)(20)는 버스(10)와 접속, 접속해제 등을 제어하며, 버스 액세스권을 가지는 마스터로, 다른 기기들의 버스 사용을 제어한다.The central processing unit (CPU) 20 controls the connection and disconnection with the
DMA제어부(DMAController)(30)는 중앙처리부(20)와 마찬가지로 버스 액세스권을 가지는 마스터이며, 중앙처리부(20)의 제어없이 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다. The
싱글모드이면, DMA제어부(30)는 한 번의 DCB 셋업 후, 한 번의 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다. 벌크모드이면, DMA제어부(30)는 다수의 채널이 요구하는 모든 DMA 동작을 수행하기 위해, 한 번에 모든 DCB을 셋업한 후에, 한 번의 모든 DMA 동작을 수행하여 인쇄대상 데이터를 전송한다.In the single mode, the
입출력부(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 /
버스중재기(BusArbiter)(50)는 중앙처리부(20), 및 DMA제어부(30)가 버스의 사용을 요청하는 신호를 보내면, 신호를 받아 버스를 사용할 수 있도록 버스의 사용을 할당해 준다. The
메모리(60)에는 인쇄대상 데이터, DCB리스트, 수행되고 있는 한 채널에서의 DMA 동작 수를 제어하는 타이머 테이블, 및 다수의 채널의 우선순위를 제어하는 우선순위 테이블이 저장된다. The
메모리(60)에는 SFR(Special Function Regiser), ROM(Read Only Memory), SRAM(Static Random Access Memory), 및 SDRAM(Synchronous Dynamic Random Access Memory) 등이 있다. SFR에는 타이머 테이블, 및 우선순위 테이블이 저장된다.The
타이머(70)는 벌크모드일 경우에 수행되고 있는 한 채널에서의 DMA 동작 수를 카운트하여, SFR에 저장되어 있는 타이머 테이블에 설정된 DMA 동작 수와 동일하면 타이머틱을 발생한다.The
도 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
채널제어부(32)는 입출력부(40)에 연결된 연결기기들의 채널을 SFR에 저장되 어 있는 우선순위 테이블에 따라 대량의 DMA 동작이 수행되도록 제어한다. 그리고, 채널제어부(32)는 타이머(70)에 의해 타이머틱이 발생되면, 현재 DMA 동작이 수행되고 있는 채널을 우선순위 테이블에 따라 다음 순위의 채널로 변경한다.The
또한, 채널제어부(32)는 우선순위 테이블이 설정되어 있지 않으면, 순차적으로 채널을 제어한다. 그리고, 채널제어부(32)는 타이머틱이 설정되어 있지 않으면, 현재 채널의 DMA 동작을 완료하고, 현재 채널을 순차적으로 다음 채널로 변경한다.In addition, if the priority table is not set, the
DMA제어레지스터(34)에는 메모리(60)에서 읽어온 DCB리스트가 저장된다. 또한, DMA제어레지스터(34)에는 다수의 채널이 요구하는 대량의 DMA 동작이 수행되도록 읽어온 DCB리스트에 기초하여, 생성된 GCB(Global Control Block)이 저장된다.The DMA control register 34 stores a DCB list read from the
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
도 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
DCB리스트는 메모리(60)의 어떤 영역에든 할당될 수 있으며, 환형 링크드 리스트 형태로 저장되어 있을 수 있다. SFR에 저장되어 있는 타이머 테이블은 최대 DCB 수만큼 존재하며, 우선순위 테이블은 입출력부(40)에 연결된 채널 수만큼 존재한다.The DCB list may be allocated to any area of the
도 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제어부(30)는 대량의 DMA 동작을 수행할 수 있는 벌크모드가 선택되었는지 여부를 판단한다(S110). 벌크모드는 입출력부(40)에 연결된 복수의 채널이 요구하는 모든 DMA 동작을 한번에 수행하는 모드이다.The
벌크모드가 선택되지 않으면, DMA제어부(30)는 싱글모드로 한 번의 DCB 셋업 후, 한 번의 DMA 동작을 수행한다(S115).If the bulk mode is not selected, the
벌크모드가 선택되면, DMA제어부(30)는 메모리(60)에 저장되어 있는 모든 DCB리스트를 읽어온다(S120). DMA제어부(30)는 버스중재기(50)에 버스(10)의 사용을 요청하여, 버스(10)의 사용이 허가되면, 버스(10)를 제어하여, 메모리(60)에 저장되어 있는 모든 DCB리스트를 읽어온다.When the bulk mode is selected, the
DMA제어부(30)는 읽어온 모든 DCB리스트를 DMA제어레지스터(34)에 업데이트한다(S130).
The
DMA제어부(30)의 채널제어부(32)는 입출력부(40)에 연결된 채널에 우선순위가 설정되었는지 여부를 판단한다(S140). 체널제어부(32)는 SFR에 저장되어 있는 우선순위 테이블을 보고 우선순위를 알 수 있다.The
우선순위가 설정되어 있으면, DMA제어부(30)는 우선순위 테이블에 따라 최고순위로 설정된 채널의 DCB로 이동한다(S150). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 첫번째 DCB의 시작주소를 기억하는 레지스터에 따라 기억된 시작주소의 첫번째 DCB로 이동한다.If the priority is set, the
우선순위가 설정되어 있지 않으면, DMA제어부(30)는 첫번째 채널의 DCB로 이동한다(S155). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 첫번째 DCB의 시작주소를 기억하는 레지스터에 따라 기억된 시작주소의 첫번째 DCB로 이동한다.If the priority is not set, the
DMA제어부(30)는 이동한 첫번째 DCB에 따라 DMA 동작을 수행한다(S160). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB의 전체 DMA 동작을 제어하는 레지스터, 현재 DMA 시작주소를 기억하는 레지스터, 현재 DMA 종료주소를 기억하는 레지스터, 현재 DMA 카운트 레지스터, 현재 DMA 동작을 제어하는 레지스터에 따라 메모리(60)와 채널사이에 직접 데이터를 전송한다.The
DMA제어부(30)는 현재 채널의 DMA 동작이 완료되었는지 여부를 판단한다(S170). DMA제어부(30)가 현재 채널의 DMA 동작이 완료되었는지 여부를 판단하는 방법에는 여러가지가 있다.The
그 중에 하나는, DMA제어부(30)는 타이머(70)가 활성화되어 타이머(70)에 의 해 타이머틱이 발생되면, 현재 채널의 DMA 동작이 완료되었다고 판단한다. One of them is that when the
타이머(70)는 DMA 동작이 수행되고 있는 현재 채널에서의 DMA 동작 수를 카운트하여, 카운트한 DMA 동작 수와 SFR에 저장되어 있는 타이머 테이블에 설정된 DMA 동작 수를 비교한다. 비교결과, 타이머(70)는 카운트한 DMA 동작 수가 설정된 DMA 동작 수와 동일해지면 타이머틱을 발생한다. 타이머틱이 발생되고 나면, 타이머(70)는 초기화되어 다시 DMA 동작이 수행되는 다음 채널의 DMA 동작 수를 카운트한다.The
또 다른 하나는, 타이머(70)가 비활성화되어 있으면, DMA제어부(30)는 현재 채널의 마지막 DCB의 DMA 동작까지 수행하고, 현재 채널의 DMA 동작이 완료되었다고 판단한다.On the other hand, if the
현재 채널의 DMA 동작이 완료되었다고 판단되면, DMA제어부(30)는 벌크모드가 종료되는지 여부를 판단한다(S180). DMA제어부(30)는 DMA제어레지스터(34)에 저장되어 있는 GCB에 인터럽트를 요청하는 레지스터가 포함되어 있으면, 벌크모드를 종료한다.If it is determined that the DMA operation of the current channel is completed, the
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
도 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
DMA제어부(30)는 타이머 테이블이 설정되어 있지 않으므로, 우선순위 데이블에 따라 채널0의 마지막 DCB의 DMA 동작까지 수행한다. 그 다음, DMA제어부(30)는 우선순위 데이블에 따라 다음 우선순위의 채널1의 마지막 DCB의 DMA 동작까지 수행하고, 우선순위에 따라 채널2, 채널3 순으로 DMA 동작을 수행한다.Since the timer table is not set, the
도 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
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
이상 설명한 바와 같이, 본 발명에 따르면, 메모리나 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)
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) |
-
2004
- 2004-11-04 KR KR1020040089385A patent/KR20060040156A/en not_active Application Discontinuation
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 |