[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101109600B1 - Method for transmitting data using direct memory access control and apparatus therefor - Google Patents

Method for transmitting data using direct memory access control and apparatus therefor Download PDF

Info

Publication number
KR101109600B1
KR101109600B1 KR1020060120069A KR20060120069A KR101109600B1 KR 101109600 B1 KR101109600 B1 KR 101109600B1 KR 1020060120069 A KR1020060120069 A KR 1020060120069A KR 20060120069 A KR20060120069 A KR 20060120069A KR 101109600 B1 KR101109600 B1 KR 101109600B1
Authority
KR
South Korea
Prior art keywords
burst
length value
data
length
value
Prior art date
Application number
KR1020060120069A
Other languages
Korean (ko)
Other versions
KR20080040535A (en
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 US11/755,021 priority Critical patent/US7779174B2/en
Priority to EP07110907A priority patent/EP1918823A1/en
Publication of KR20080040535A publication Critical patent/KR20080040535A/en
Application granted granted Critical
Publication of KR101109600B1 publication Critical patent/KR101109600B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Abstract

본 발명은 직접 메모리 접근 제어 방법에 관한 것으로, 전송할 데이터가 저장되어 있는 소스 메모리에서 전송된 데이터가 저장될 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재의 버스트의 길이 값을 체크하고, 체크 결과에 기초하여 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교한 후, 비교 결과에 기초하여, 현재의 버스트의 길이 값을 선택적으로 변경하여 데이터를 전송함으로써, 데이터를 보다 효율적으로 전송할 수 있다. The present invention relates to a direct memory access control method, which checks the length value of the remaining data and the length value of the current burst, which is the remaining data which is transferred from the source memory in which the data to be transmitted is stored, to the destination memory to be stored. After comparing the length value of the remaining data with the length value of the current burst based on the check result, and selectively transferring the data by selectively changing the length value of the current burst based on the comparison result, the data is more efficiently Can transmit

DMA, 버스트, 변경, 직접, 접근 DMA, burst, change, direct, access

Description

직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그 장치{Method for transmitting data using direct memory access control and apparatus therefor}Method for transmitting data using direct memory access control and apparatus therefor}

도 1은 종래의 직접 메모리 접근 제어 장치의 동작을 설명하기 위하여 도시한 도면이다. 1 is a diagram illustrating the operation of a conventional direct memory access control apparatus.

도 2는 종래의 직접 메모리 접근 제어 장치의 데이터 전송 과정을 설명하기 위하여 도시한 도면2 is a diagram illustrating a data transmission process of a conventional direct memory access control apparatus.

도 3은 본 발명에 따른 직접 메모리 접근 제어 장치의 일실시예를 설명하기 위하여 도시한 도면이다.3 is a diagram illustrating an embodiment of a direct memory access control apparatus according to the present invention.

도 4는 본 발명에 따른 전송 효율성 판단부의 동작을 설명하기 위하여 도시한 도면이다. 4 is a diagram for explaining the operation of the transmission efficiency determination unit according to the present invention.

도 5는 본 발명에 따라 버스트 길이 값을 변경하여 데이터를 전송하는 과정을 설명하기 위하여 도시한 도면이다.5 is a diagram illustrating a process of transmitting data by changing a burst length value according to the present invention.

도 6은 본 발명에 따라 현재의 버스트 길이 값을 CPU에 의하여 설정된 새로운 버스트 길이 값으로 변경하는 과정을 설명하기 위하여 도시한 도면이다.6 is a diagram illustrating a process of changing a current burst length value to a new burst length value set by a CPU according to the present invention.

도 7은 본 발명에 따른 직접 메모리 접근 제어를 이용한 데이터 전송 방법을 설명하기 위하여 도시한 흐름도이다.7 is a flowchart illustrating a data transmission method using direct memory access control according to the present invention.

본 발명은 직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그 장치에 관한 것이다. The present invention relates to a data transmission method and a device using direct memory access control.

직접 메모리 접근 제어(Direct Memory Access Control) 방법은 중앙처리 장치(central processing unit:CPU)를 거치지 않고 전송될 데이터가 저장된 소스 메모리와 전송된 데이터가 저장되는 목적지 메모리 사이에서 데이터의 전송이 직접 수행되도록 제어하는 방법이다. The Direct Memory Access Control method allows data to be transferred directly between the source memory where the data to be transmitted is stored and the destination memory where the transmitted data is stored without going through a central processing unit (CPU). How to control.

DMA를 사용하기 위해서는 시스템 버스 상에 DMA 장치가 추가되어야 한다. To use DMA, a DMA device must be added on the system bus.

도 1은 종래의 직접 메모리 접근 제어 장치의 동작을 설명하기 위하여 도시한 도면이다. 1 is a diagram illustrating the operation of a conventional direct memory access control apparatus.

도 1을 참조하면, CPU(110), DMA 장치(120), 소스 메모리(130) 및 목적지 메모리(140)가 버스(150)에 연결되어 있다. DMA 장치(120)는 CPU(110)로부터 시스템의 제어를 넘겨받아 CPU(110)의 기능 중 일부분을 대신 처리한다. 이를 위해 CPU(110)는 데이터 블록을 읽거나 쓰기를 원할 때 읽기/쓰기 동작의 지정, 소스 메모리 및 목적지 메모리의 주소, 전송할 데이터의 개수 등에 관한 정보를 버스(150)를 통하여 DMA 장치(120)에게 전송한다. 이와 같은 명령을 보낸 후에는 CPU(110)는 다른 일을 계속한다. Referring to FIG. 1, the CPU 110, the DMA device 120, the source memory 130, and the destination memory 140 are connected to the bus 150. The DMA device 120 takes over control of the system from the CPU 110 and processes some of the functions of the CPU 110 instead. To this end, the CPU 110 reads through the bus 150 information about the designation of the read / write operation, the address of the source memory and the destination memory, the number of data to be transmitted, etc. when the data block is desired to be read or written. Send to. After sending such a command, the CPU 110 continues with other work.

DMA 장치(120)는 소스 메모리(130)에 저장되어 있는 데이터가 CPU(110)를 거치지 않고 목적지 메모리(140)로 전송되도록 제어한다. 이때, DMA 장치(120)의 제 어 모드는 싱글 모드(single mode)와 버스트 모드(burst mode)로 나뉜다. The DMA device 120 controls the data stored in the source memory 130 to be transferred to the destination memory 140 without passing through the CPU 110. In this case, the control mode of the DMA device 120 is divided into a single mode and a burst mode.

싱글 모드는 데이터를 전송하는 도중 상위 인터럽트가 발생되면 발생된 인터럽트를 우선 순위로 처리한 후 데이터를 전송하는 모드이고, 버스트 모드는 데이터 전송시 연속적인 블록 전체를 전송하는 동안 아무런 인터럽트를 받지 않고 전송을 완료하는 모드이다. 따라서 싱글 모드는 버스로부터 한 번의 접근 허가를 받게 되면 단수의 데이터 단위로 데이터를 송수신하는 반면, 버스트 모드는 한 번의 접근 허가를 받을 경우 복수의 데이터를 송수신한다. In the single mode, when an upper interrupt occurs during data transmission, the interrupt is processed in priority order and the data is transmitted. In burst mode, data is transmitted without receiving any interrupt during the transmission of consecutive blocks. Is the mode to complete. Therefore, the single mode transmits and receives data in a single data unit when one access permission is received from the bus, while the burst mode transmits and receives multiple data when one access permission is received.

도 1을 참조하여, 버스트 모드에서의 동작을 설명하면, 먼저, DMA 장치(120)는 소스 메모리(130)에 현재 설정되어 있는 버스트의 길이 값에 대응되는 길이의 데이터를 전송받겠다는 신호를 송신한다. 예컨대, 버스트의 길이 값이 4 워드인 경우에는 4워드 크기의 데이터를 전송하겠다는 신호를 소스 메모리(130)에 전송하게 되는 것이다. Referring to FIG. 1, the operation in the burst mode will be described. First, the DMA device 120 transmits a signal to receive data having a length corresponding to a length value of a burst currently set in the source memory 130. do. For example, when the burst length value is 4 words, a signal to transmit data having a size of 4 words is transmitted to the source memory 130.

이 신호를 수신한 소스 메모리(130)는 전송할 데이터 중에 4워드 길이만큼의 데이터를 DMA 장치(120)에 송신한다. DMA 장치(120)는 소스 메모리(130)로부터 수신한 4워드 길이의 데이터를 DMA 장치(120)의 FIFO 메모리에 저장한다. Upon receiving this signal, the source memory 130 transmits data equal to 4 words in length to the DMA device 120. The DMA device 120 stores 4-word long data received from the source memory 130 in the FIFO memory of the DMA device 120.

다음으로, DMA 장치(120)는 목적지 메모리(140)에 4워드 길이의 데이터를 송신하겠다는 신호를 송신한 후, 4워드 길이의 데이터를 송신한다. 이와 같은 송신 과정은 소스 메모리(130)에 저장된 데이터가 목적지 메모리(140)에 모두 전송될 때까지 반복된다. Next, the DMA device 120 transmits a signal to transmit the 4-word length data to the destination memory 140, and then transmits the 4-word length data. This transmission process is repeated until all data stored in the source memory 130 is transferred to the destination memory 140.

도 2는 종래의 직접 메모리 접근 제어 장치의 데이터 전송 과정을 설명하기 위하여 도시한 도면으로 버스트 길이 값이 4워드이고, 소스 메모리(130)에 저장되어 있는 데이터인 잔여 데이터가 6 워드인 경우에, 데이터를 전송하는 과정을 도시한 것이다. FIG. 2 is a diagram illustrating a data transmission process of a conventional direct memory access control apparatus. In the case where the burst length value is 4 words and the remaining data which is data stored in the source memory 130 is 6 words, The process of transmitting data is shown.

도 2를 참조하면, 210 구간은 데이터의 전송이 시작되기 전에 소스 메모리(130)에 6워드의 데이터가 저장되어 있고, 버스트의 길이 값이 4워드로 설정되어 있는 상태를 나타낸다. Referring to FIG. 2, section 210 indicates that six words of data are stored in the source memory 130 before the data transmission starts, and the burst length value is set to four words.

220 구간에서는, 소스메모리(130)의 6워드의 데이터 중에 버스트의 길이 값에 대응하는 4워드의 데이터가 목적지 메모리(140)에 전송되어, 소스 메모리(130)에는 2 워드의 데이터가 남아 있게 된다. 이때, 버스트의 길이 값은 4워드로 고정되어 있으므로, 2워드의 데이터는 더 이상 버스트 모드에서 전송될 수 없다. In section 220, four words of data corresponding to the burst length value are transmitted to the destination memory 140 among the six words of data of the source memory 130, and two words of data remain in the source memory 130. . At this time, since the length value of the burst is fixed to 4 words, data of 2 words can no longer be transmitted in the burst mode.

230 구간에서는, CPU가 모드를 버스트 모드에서 싱글 모드로 변환한 후, 1 워드의 데이터를 전송한다. In section 230, the CPU converts the mode from the burst mode to the single mode, and then transmits one word of data.

240 구간에서는, 소스 메모리(130)에 남아 있는 1워드의 데이터를 목적지 메모리(140)에 전송하여 모든 데이터의 전송을 완료한다. In section 240, one word of data remaining in the source memory 130 is transferred to the destination memory 140 to complete all data transfer.

상기에서 설명한 바와 같이, 종래의 DMA 제어 방법은 버스트의 길이가 고정되어 있어 이미 설정된 버스트의 길이보다 작은 길이의 데이터는 싱글 모드에서 전송하여야 되고, 이와 같은 모드의 전환을 위하여 CPU의 불필요한 동작이 요구된다는 문제점이 있었다. 또한 최초로 칩을 설계하는 단계를 제외하고는 이와 같은 데이터의 전송 과정에 있어서 전송 효율을 확인할 수 있는 방법이 없다는 문제점이 있었다. As described above, in the conventional DMA control method, since the burst length is fixed, data having a length smaller than the already set burst length must be transmitted in a single mode, and unnecessary operation of the CPU is required to change the mode. There was a problem. In addition, there is a problem that there is no method to confirm the transmission efficiency in the data transmission process except for the first step of designing the chip.

본 발명의 목적은 버스트의 길이를 유동적으로 변경하여 전송함으로써 데이터를 보다 효율적으로 전송하고, 전송 과정에서의 전송 효율을 측정함으로써 사용자로 하여금 데이터의 전송 효율을 판단할 수 있게 하는 직접 메모리 접근 제어 방법 및 그 장치를 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention is a direct memory access control method which enables a user to determine the transmission efficiency of data by transmitting the data more efficiently by changing the length of the burst and transmitting the data more efficiently. And a device thereof.

상기 목적을 달성 하기 위한 본 발명에 따른 전송할 데이터가 저장되어 있는 소스 메모리와 상기 전송된 데이터가 저장될 목적지 메모리 사이의 직접 메모리 접근 제어를 이용한 데이터 전송 방법은 상기 소스 메모리에서 상기 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크하는 단계; 상기 체크 결과에 기초하여 상기 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교하는 단계; 및 상기 비교 결과에 기초하여, 상기 버스트의 길이 값을 선택적으로 변경하여 상기 데이터를 전송하는 단계를 포함한다.In order to achieve the above object, a data transfer method using direct memory access control between a source memory in which data to be transmitted and a destination memory in which the transmitted data is to be stored is transmitted from the source memory to the destination memory. Checking the length value of the remaining data which is the remaining data and the length value of the currently set burst; Comparing the length value of the remaining data with the length value of the current burst based on the check result; And selectively changing a length value of the burst based on a result of the comparison to transmit the data.

바람직하게는 상기 전송하는 단계는 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 크면, 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 값으로 변경하여 상기 데이터를 전송하는 것을 특징으로 한다. Preferably, the transmitting may include changing the length of the burst to a value less than or equal to the length of the residual data if the length of the burst is greater than the length of the residual data. Characterized in that the transmission.

바람직하게는 상기 전송하는 단계는 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 버스트의 길이 값 중에서 가장 큰 크기를 가지는 값으로 변경하는 것을 특징으로 한다. Preferably, the transmitting may include changing the length value of the burst to a value having the largest size among the length values of the bursts that are less than or equal to the length value of the residual data.

바람직하게는 상기 전송하는 단계는 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 작거나 같으면 상기 버스트 길이 값을 그대로 유지하는 것을 특징으로 한다. Preferably, the transmitting may include maintaining the burst length value if the length value of the burst is less than or equal to the length value of the residual data.

바람직하게는 본 발명에 따른 데이터 전송 방법은 상기 체크하는 단계 전에 중앙 처리 장치로부터 새로운 버스트 길이 값을 수신하는 단계; 및 상기 수신된 새로운 버스트 길이 값을 현재의 버스트 길이 값으로 설정하는 단계를 더 포함하는 것을 특징으로 한다. Preferably the data transmission method according to the invention comprises the steps of: receiving a new burst length value from a central processing unit prior to said checking; And setting the received new burst length value to a current burst length value.

바람직하게는 상기 현재의 버스트 길이 값으로 설정하는 단계는 현재 수행 중인 데이터의 읽기/쓰기 동작이 완료된 경우에 상기 새로운 버스트 길이 값을 상기 현재의 버스트 길이 값으로 설정하는 것을 특징으로 한다.Preferably, the setting of the current burst length value may include setting the new burst length value to the current burst length value when a read / write operation of data currently being performed is completed.

바람직하게는 본 발명에 따른 데이터 전송 방법은 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지 소요된 총 소요 시간을 체크하는 단계; 및 상기 체크 결과에 기초하여, 상기 데이터 전송의 효율성을 판단하는 단계를 더 포함한다. Preferably, the data transmission method according to the present invention comprises the steps of checking the total time required for the transfer to start and complete when the transfer of data from the source memory to the destination memory is completed; And determining the efficiency of the data transmission based on the check result.

바람직하게는 상기 소요 시간은 소정의 클락 신호를 기준으로 하여 측정되는 것을 특징으로 한다. Preferably, the required time may be measured based on a predetermined clock signal.

바람직하게는 상기 총 소요 시간을 체크하는 단계는 상기 전송이 시작되어 완료될 때까지 각각의 버스트의 종류별로 수행된 데이터의 읽기 및 쓰기 동작의 횟수를 체크하는 단계를 더 포함한다. Preferably, the checking of the total time required further includes checking the number of read and write operations of data performed for each burst type until the transmission starts and is completed.

바람직하게는 상기 총 소요 시간을 체크하는 단계는 상기 전송이 시작되어 완료될 때까지의 각각의 버스트의 종류별로 소요된 시간인 버스트별 소요시간을 체크하는 단계를 더 포함한다. Preferably, the checking of the total time required further includes checking the time required for each burst, which is the time required for each type of burst until the transmission starts and is completed.

또한, 본 발명에 따른 전송할 데이터가 저장되어 있는 소스 메모리 및 상기 전송된 데이터가 저장될 목적지 메모리 사이의 데이터의 전송을 제어하는 직접 메모리 접근 제어 장치는 상기 소스 메모리에서 상기 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크하는 카운터부; 상기 체크 결과에 기초하여 상기 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교하는 비교부; 상기 비교 결과에 기초하여, 상기 버스트의 길이 값을 선택적으로 변경하는 버스트 길이 값 설정부; 및 상기 변경된 버스트 길이 값에 따라 데이터를 전송하기 위한 버스트 신호를 전송하는 버스트 신호 전송부를 포함한다. In addition, a direct memory access control apparatus for controlling the transfer of data between a source memory in which data to be transmitted is stored and a destination memory in which the transmitted data is to be stored is data remaining after being transferred from the source memory to the destination memory. A counter unit for checking the length value of the remaining residual data and the length value of the currently set burst; A comparison unit comparing the length value of the residual data with the length value of the current burst based on the check result; A burst length value setting unit for selectively changing a length value of the burst based on the comparison result; And a burst signal transmitter for transmitting a burst signal for transmitting data according to the changed burst length value.

바람직하게는 본 발명에 따른 직접 메모리 접근 제어 장치는 중앙 처리 장치로부터 새로운 버스트 길이 값이 수신되면, 상기 수신된 버스트 길이 값이 기록되는 레지스터를 더 포함하고, 상기 버스트 길이 값 설정부는 상기 수신된 새로운 버스트 길이 값을 현재의 버스트 길이 값으로 설정하는 것을 특징으로 한다. Preferably, the direct memory access control apparatus according to the present invention further includes a register in which the received burst length value is written when a new burst length value is received from a central processing unit, and the burst length value setting unit is configured to receive the received new burst length value. Set the burst length value to the current burst length value.

바람직하게는 상기 카운터부는 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지 걸린 총 소요 시간을 체크하는 것을 특징으로 한다. Preferably, when the transfer of data from the source memory to the destination memory is completed, the counter unit checks the total time required until the transfer starts and is completed.

바람직하게는 상기 카운터부는 상기 소스 메모리로부터 상기 목적지 메모리 로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지 각각의 버스트의 종류별로 수행된 데이터의 읽기 및 쓰기 동작의 횟수를 체크하는 것을 특징으로 Preferably, when the transfer of data from the source memory to the destination memory is completed, the counter unit checks the number of read and write operations of data performed for each burst type until the transfer starts and is completed. As a feature

한다. do.

바람직하게는 상기 카운터부는 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지의 각각의 버스트의 종류별로 소요된 시간인 버스트별 소요시간을 체크하는 것을 특징으로 한다.Preferably, when the transfer of data from the source memory to the destination memory is completed, the counter checks the time required for each burst, which is the time required for each burst type until the transfer starts and is completed. It is done.

바람직하게는 본 발명에 따른 직접 메모리 접근 제어 장치는 카운터부의 체크 결과에 기초하여, 상기 데이터 전송의 효율성을 판단하는 전송 효율성 판단부를 더 포함하는 것을 특징으로 하는 제어 장치. Preferably, the apparatus for controlling direct memory access according to the present invention further comprises a transmission efficiency determination unit for determining the efficiency of the data transmission based on a check result of the counter unit.

또한 상기 목적은 본 발명에 따른 직접 메모리 접근 제어를 이용한 데이터 전송 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 의해서도 달성된다. The above object is also achieved by a computer readable recording medium having recorded thereon a program for executing a data transfer method using direct memory access control according to the present invention.

이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명에 따른 직접 메모리 접근 제어 장치의 일실시예를 설명하기 위하여 도시한 도면이다.3 is a diagram illustrating an embodiment of a direct memory access control apparatus according to the present invention.

도 3을 참조하면, 카운터부(110), 비교부(120), 버스트 길이 값 설정부(130), 버스트 신호 전송부(140), 전송 효율성 판단부(150) 및 레지스터(160)를 포함한다. Referring to FIG. 3, the counter unit 110 includes a counter unit 110, a comparison unit 120, a burst length value setting unit 130, a burst signal transmitter 140, a transmission efficiency determination unit 150, and a register 160. .

카운터부(110)는 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크한다. The counter 110 checks the length value of the remaining data and the length value of the burst currently set.

여기서 잔여 데이터는 전술한 바와 같이, 전송될 데이터가 저장된 소스 메모리에서 전송된 데이터가 저장될 목적지 메모리로 전송되고 남은 데이터를 말한다. Here, as described above, the remaining data refers to data remaining after being transmitted from the source memory in which the data to be transmitted is stored to the destination memory in which the transmitted data is to be stored.

예컨대, 소스 메모리에 7 워드 길이의 데이터가 저장되어 있는 경우에 4 워드 길이 만큼의 데이터가 목적지 메모리에 전송되면 잔여 데이터의 길이는 3 워드 가 된다. 또한, 이때 소스 메모리에서 목적지 메모리에 전송되는 데이터의 길이는 버스트의 길이 값에 대응되므로 버스트의 길이 값은 4워드가 된다. For example, in the case where 7 words of data are stored in the source memory, if 4 words of data are transferred to the destination memory, the length of the remaining data becomes 3 words. In addition, since the length of data transferred from the source memory to the destination memory corresponds to the length value of the burst, the length value of the burst is 4 words.

다만, 이때 데이터의 길이의 단위는 워드에 한정되는 것이 아니라 바이트(bytes), 하프 워드(half-word), 워드(word) 등 다양한 단위가 이용될 수 있다. However, the unit of data length is not limited to a word, but various units such as bytes, half-words, and words may be used.

비교부(120)는 카운터부(110)의 체크 결과에 기초하여 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교한다.The comparator 120 compares the length value of the remaining data with the length value of the current burst based on the check result of the counter 110.

버스트 길이 값 설정부(130)는 비교부(120)의 비교 결과에 기초하여, 현재의 버스트의 길이 값을 선택적으로 변경한다.The burst length value setting unit 130 selectively changes the length value of the current burst based on the comparison result of the comparison unit 120.

보다 구체적으로는 비교부(120)의 비교 결과, 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 작거나 같으면 현재의 버스트 길이 값을 그대로 유지하고, 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 크면 현재의 버스트의 길이 값을 잔여 데이터의 길이 값보다 작은 값으로 변경한다. More specifically, as a result of the comparison by the comparison unit 120, if the length value of the current burst is less than or equal to the length value of the residual data, the current burst length value is maintained as it is, and the current burst length value is the length of the residual data. If it is larger than the value, the length of the current burst is changed to a value smaller than the length of the remaining data.

예컨대, 현재 설정되어 있는 버스트의 길이 값이 16워드이고 잔여 데이터의 길이 값이 32워드인 경우에는 버스트의 길이 값은 현재 설정되어 있는 16워드로 유지된다. 하지만, 버스트의 길이 값이 16워드이고 잔여 데이터의 길이 값이 14워드인 경우에는 버스트의 길이 값을 14워드보다 더 작은 값으로 변경하게 된다. For example, when the length value of the currently set burst is 16 words and the length value of the remaining data is 32 words, the length value of the burst is maintained at the currently set 16 words. However, when the length value of the burst is 16 words and the length value of the remaining data is 14 words, the burst length value is changed to a value smaller than 14 words.

이때, 버스트의 길이 값은 데이터 전송에 사용되는 프로토콜의 종류에 따라 선택할 수 있는 종류가 결정되어 있다. 예컨대, AHB 프로토콜은 버스트 모드와 싱글 모드를 지원하는데, 이때 버스트 모드에서는 16워드, 8워드, 4워드 중에 하나를 버스트 길이 값으로 선택할 수 있다. 따라서, 상기 예에서 버스트의 길이 값을 변경하는 경우에는 16워드보다 작은 크기의 버스트의 길이 값이 8워드와 4워드 2개의 값만이 존재하므로, 현재의 버스트 길이 값을 이 두 개의 값 중에 하나로 변경하여야 한다. At this time, the kind of burst length can be selected according to the type of protocol used for data transmission. For example, the AHB protocol supports burst mode and single mode. In burst mode, one of 16 words, 8 words, and 4 words may be selected as a burst length value. Therefore, in the above example, when changing the burst length value, since the burst value smaller than 16 words has only 8 words and 4 words, the current burst length value is changed to one of these two values. shall.

이때, 버스트의 길이 값은 잔여 데이터의 길이 값보다 작거나 같은 값 중에서 가장 큰 크기를 가지는 버스트 길이 값으로 변경한다. 왜냐하면, 상대적으로 큰 크기의 버스트 길이 값으로 변경하면 한번의 전송으로 보다 많은 데이터를 전송할 수 있게 되고, 이와 같이 많은 데이터를 전송하게 되면 전체 데이터의 전송을 완료하는데 걸리는 시간이 줄어들 수 있기 때문이다. 따라서, 상기 예에서는 8워드, 4워드 중에 8워드가 현재 버스트의 길이 값으로 설정된다. In this case, the burst length value is changed to a burst length value having the largest size among values smaller than or equal to the remaining data length value. This is because changing the burst length value to a relatively large size allows more data to be transmitted in one transmission, and if a large amount of data is transmitted in this way, the time taken to complete the transmission of the entire data can be reduced. Therefore, in the above example, eight words among eight words and four words are set to the length value of the current burst.

버스트 신호 전송부(140)는 변경된 버스트 길이 값에 따라 데이터를 전송하기 위한 버스트 신호를 전송한다.The burst signal transmitter 140 transmits a burst signal for transmitting data according to the changed burst length value.

예컨대, 현재의 버스트 길이 값이 16워드인데 이를 8워드로 변경하려고 하는 경우에는, 버스트 신호 전송부(140)가 소스 메모리에 버스트 길이 값을 8워드로 변 경하는 신호를 전송하게 된다. 즉, 소스 메모리에 8워드의 크기로 데이터를 전송 받겠다는 신호를 전송하게 된다. For example, if the current burst length value is 16 words and the user wants to change it to 8 words, the burst signal transmitter 140 transmits a signal for changing the burst length value to 8 words to the source memory. That is, a signal for transmitting data having a size of 8 words is transmitted to the source memory.

이때, 소스 메모리는 현재 수행하고 있는 데이터의 읽기/쓰기 동작이 완료된 후에, 데이터를 전송할 때에는 변경된 버스트의 길이 값인 8워드의 크기로 데이터를 전송하게 된다. In this case, after the data read / write operation is completed, the source memory transmits the data in the size of 8 words, which is the length value of the changed burst.

레지스터(160)에는 중앙 처리 장치(CPU)로부터 새로운 버스트 길이 값이 수신되면 그 수신된 버스트 길이 값이 기록된다.The register 160 records the received burst length value when a new burst length value is received from the central processing unit (CPU).

이와 같이 CPU로부터 새로운 버스트 길이 값이 수신되는 경우는 사용자가 버스트 길이 값을 임의의 값으로 변경하는 명령을 입력 장치 등을 통하여 입력할 때 발생할 수 있다. As such, when a new burst length value is received from the CPU, it may occur when a user inputs a command for changing the burst length value to an arbitrary value through an input device or the like.

예컨대, 사용자가 판단하기에 현재 DMA 장치가 시스템의 버스(bus)를 지나치게 오랫동안 사용하고 있다고 판단하는 경우에는 버스트의 길이 값을 현재의 버스트의 길이 값보다 작은 크기의 값으로 변경하게 된다. 이와 같이 작은 크기의 버스트의 길이 값으로 변경하는 이유는 작은 크기의 버스트의 길이 값을 선택하면, 상대적으로 데이터를 한번 전송하는 데 걸리는 시간이 짧아져서, 하나의 전송이 완료된 후에 또 다른 전송이 시작되기 전까지 다른 장치가 버스를 이용하는 것이 가능해지기 때문이다. For example, if the user determines that the current DMA device has been using the system's bus for too long, the burst length value is changed to a value smaller than the current burst length value. The reason for this change to the length value of the small burst is that if the length value of the small burst is selected, the time taken to transmit data is shortened relatively, so that another transmission starts after one transmission is completed. This is because it is possible for other devices to use the bus.

상기에서와 같이 사용자가 임의의 버스트 길이 값으로 변경하는 입력 신호를 입력하면, 그 입력을 수신한 CPU는 DMA 장치의 레지스터에 새로운 버스트 길이 값을 기록하게 되고, DMA 장치는 레지스터에 기록된 새로운 버스트 길이 값으로 현재 의 버스트의 길이 값을 변경하게 된다. As described above, when the user inputs an input signal that changes to an arbitrary burst length value, the CPU that receives the input writes a new burst length value into a register of the DMA device, and the DMA device writes a new burst recorded in the register. The length value changes the length value of the current burst.

하지만, 전술한바와 같이 CPU에 의하여 새로운 버스트의 길이 값이 수신되는 경우에도 현재의 버스트 길이 값이 즉시 변경되는 것이 아니라, 현재 수행중인 데이터의 읽기/쓰기 동작의 수행이 완료되는 시점에 현재의 버스트 길이 값이 새로운 버스트의 길이 값으로 변경된다. However, as described above, even when the length value of the new burst is received by the CPU, the current burst length value is not immediately changed, but the current burst when the read / write operation of the currently executing data is completed. The length value changes to the length value of the new burst.

또한, 이와 같이 현재의 버스트의 길이 값이 변경되는 경우에도 CPU가 설정한 새로운 버스트의 길이 값이 그대로 현재의 버스트의 길이 값으로 변경되는 것이 아니라, CPU가 설정한 버스트의 길이 값이 잔여 데이터의 길이 값보다 큰지 여부를 비교한 후에, 그 버스트의 길이 값이 잔여 데이터의 길이 값보다 작거나 같다고 인정되는 경우에만 현재의 버스트의 길이 값을 CPU가 설정한 버스트의 길이 값으로 변경하게 된다. In addition, even when the length value of the current burst is changed in this way, the length value of the new burst set by the CPU is not directly changed to the length value of the current burst, but the length value of the burst set by the CPU is determined by the remaining data. After comparing whether the value is greater than the length value, the length value of the current burst is changed to the length value of the burst set by the CPU only when it is recognized that the length value of the burst is less than or equal to the length value of the remaining data.

예컨대, 현재의 버스트의 길이 값이 16워드이고 CPU에 의하여 수신된 버스트의 길이 값이 8워드인 경우를 살펴보면, 만일 잔여 데이터의 길이가 7워드인 경우에는 CPU가 설정한 8워드의 버스트 길이 값을 그대로 적용하는 것이 아니라, 8워드보다 작은 값인 4워드로 버스트의 길이 값을 변경하게 되는 것이다. For example, in the case where the current burst length value is 16 words and the burst value received by the CPU is 8 words, if the remaining data length is 7 words, the burst length value of 8 words set by the CPU Rather than applying, we change the length of the burst to 4 words, which is less than 8 words.

전송 효율성 판단부(150)는 카운터부(110)로부터 데이터의 전송이 시작되어 완료될 때까지 걸린 총 소요 시간, 총 소요 시간 동안 각각의 버스트의 종류별로 수행된 데이터의 읽기 및 쓰기 동작의 횟수, 데이터의 전송이 시작되어 완료될 때까지의 각각의 버스트의 종류별로 소요된 시간인 버스트별 소요시간 등에 기초하여 데이터 전송의 효율성을 판단한다. 이때, 소요 시간은 소정의 클락 신호를 기준으 로 하여 측정될 수 있다. 즉, 초(sec), 분(minute)의 단위가 아니라 클락의 싸이클을 기준으로 하여 소요 시간이 측정될 수 있다. The transmission efficiency determination unit 150 may include a total time required for data transmission from the counter 110 to start and complete, a number of times of reading and writing data by each type of burst during the total time required, The efficiency of data transmission is determined based on the time required for each burst, that is, the time required for each type of burst until the data transmission starts and is completed. In this case, the required time may be measured based on a predetermined clock signal. That is, the time required may be measured based on the cycle of the clock, not the unit of seconds and minutes.

도 4는 본 발명에 따른 전송 효율성 판단부의 동작을 설명하기 위하여 도시한 도면이다. 4 is a diagram for explaining the operation of the transmission efficiency determination unit according to the present invention.

도 4를 참조하면, 410은 데이터의 전송 시간 동안의 버스트의 길이 값의 변화를 도시한 것이고, 420은 소정의 클락 신호를 도시한 것이다.Referring to FIG. 4, 410 shows a change in the length value of the burst during the data transmission time, and 420 shows a predetermined clock signal.

도 4에서 431, 433, 435 구간은 DMA 제어 동작을 수행하는 구간이고, 432, 434 구간은 DMA 제어 동작을 수행하지 않는 구간이다. 즉, 432, 434 구간은 시스템 버스를 다른 장치가 사용하는 구간이다. In FIG. 4, sections 431, 433, and 435 are sections for performing a DMA control operation, and sections 432 and 434 are sections for not performing a DMA control operation. That is, sections 432 and 434 are sections in which the system bus is used by another device.

도 4에서, 전송이 시작되어 전송이 완료되는 시점까지의 총 소요된 시간은 431 구간 내지 435 구간을 전부 합친 시간이 된다. 420의 클락 신호를 기준으로 할 때, 총 소요시간은 10.5 싸이클(cycle)이 된다. 이때 전송 효율이 높은지 여부는 총 소요시간이 소정의 임계 시간보다 긴 경우인지 여부, 비활동 구간과 활동 구간 사이의 비율이 소정의 임계치보다 높은지 여부에 따라 결정될 수 있다. In FIG. 4, the total time taken from the start of the transmission to the time when the transmission is completed is the total of the 431 to 435 sections. Based on the clock signal of 420, the total time required is 10.5 cycles. In this case, whether the transmission efficiency is high may be determined depending on whether the total required time is longer than a predetermined threshold time or whether the ratio between the inactive section and the active section is higher than the predetermined threshold.

예컨대, 만일 총 소요시간에 대한 임계 시간이 6 싸이클인 경우에는 모든 데이터를 전송하는 데 소요된 총 소요시간이 6 싸이클 이상이 되면 전송 효율이 낮은 것으로 판단할 수 있다. 또한, 만일 총 소요 시간에서 비활동 구간의 비율이 10% 미만인 경우를 전송 효율이 높은 것으로 가정한 때에는, 도 4에서 총 소요 시간이 10.5 싸이클인데 비하여 DMA 제어 동작을 수행하지 않는 비활동 구간이 4.5 싸이클이므로 전송효율이 낮다고 판단할 수 있게 되는 것이다.For example, if the threshold time for the total required time is 6 cycles, it may be determined that the transmission efficiency is low when the total required time for transmitting all data is 6 cycles or more. In addition, if it is assumed that the transmission efficiency is high when the ratio of the inactive section to the total time required is less than 10%, the inactive section that does not perform the DMA control operation is 4.5, while the total required time is 10.5 cycles in FIG. Because of the cycle, the transmission efficiency can be judged to be low.

또한, 도 4에서는 도시되지 않았지만 431 구간, 433 구간, 435 구간에서 각각 버스트 길이 값이 16워드, 8워드, 4워드 일 때 몇 번의 읽기 및 쓰기를 하였는지를 체크하여 소정의 임계치와 비교하여 전송 효율을 판단할 수도 있다. In addition, although not shown in FIG. 4, when the burst length values are 16 words, 8 words, and 4 words in sections 431, 433, and 435, the number of reads and writes is checked, and the transmission efficiency is compared with a predetermined threshold. You can also judge.

마지막으로, 431구간, 433 구간, 435 구간에서 각각 버스트 길이 값이 16워드, 8워드, 4워드 일때 각각의 소요된 시간이 1.5 싸이클, 1싸이클, 3.5 싸이클인데 이와 같은 버스트별 소요 시간을 체크하여 소정의 임계치와 비교하여 전송 효율을 판단할 수도 있다. Lastly, when the burst length value is 16 words, 8 words, and 4 words in sections 431, 433, and 435, the time required for each burst is 1.5 cycles, 1 cycle, and 3.5 cycles. The transmission efficiency may be determined by comparing with a predetermined threshold.

상기 소정의 임계치는 구현예에 따라 달라질 수 있다. The predetermined threshold may vary depending on the implementation.

도 5는 본 발명에 따라 버스트 길이 값을 변경하여 데이터를 전송하는 과정을 설명하기 위하여 도시한 도면이다.5 is a diagram illustrating a process of transmitting data by changing a burst length value according to the present invention.

도 5를 참조하면, 510은 레지스터에 기록된 버스트 길이 값을 나타내고, 520은 현재의 버스트 길이 값을 나타내며, 530은 잔여 데이터 길이 값을 나타낸다. Referring to FIG. 5, 510 represents a burst length value written in a register, 520 represents a current burst length value, and 530 represents a remaining data length value.

여기서 레지스터에 기록된 버스트 길이 값은 최초에 데이터 전송을 시작할때 CPU에 의해 레지스터에 기록되고, 데이터 전송 중에 CPU가 버스트 길이 값을 변경하려고 하는 때에 새로운 값으로 변경된다. 보다 상세히 설명하면, 최초로 CPU가 레지스터에 버스트 길이 값을 기록하면 DMA 장치는 레지스터에 기록된 버스트 길이 값으로 현재의 버스트 길이 값을 설정하게 된다. 또한 데이터의 전송 중에도 레지스터에 새로운 버스트 길이 값이 기록되면, DMA 장치는 그 새로운 버스트 길이 값으로 현재의 버스트 길이 값을 변경하게 된다. The burst length value written to the register here is written to the register by the CPU when the data transfer is first started, and changed to the new value when the CPU attempts to change the burst length value during the data transfer. In more detail, the first time the CPU writes a burst length value in a register, the DMA device sets the current burst length value to the burst length value written in the register. Also, if a new burst length value is written to the register during data transfer, the DMA device will change the current burst length value to that new burst length value.

다만 전술한 바와 같이 CPU에 의하여 레지스터에 새로운 버스트 길이 값이 기록된다고 하더라도, 현재의 버스트 길이 값이 그 새로운 버스트 길이 값으로 즉시 변경되는 것은 아니고, 현재 수행중인 데이터의 읽기/쓰기 동작이 완료된 후에 현재의 버스트 길이 값이 새로운 버스트 길이 값으로 변경되어 데이터가 전송된다. However, as described above, even if a new burst length value is written to the register by the CPU, the current burst length value is not immediately changed to the new burst length value, but after the current read / write operation of the currently executing data is completed. The burst length value of is changed to the new burst length value and data is transmitted.

541 구간에서는 레지스터에 기록된 버스트 길이 값에 따라 현재의 버스트 길이 값도 8워드로 설정된다. In section 541, the current burst length value is also set to 8 words according to the burst length value recorded in the register.

542 구간에서는 13워드의 잔여 데이터 중에 현재의 버스트 길이 값인 8워드 만큼의 데이터를 전송한 후, 현재의 버스트 길이 값과 잔여 데이터의 길이 값을 비교한다. 542 구간에서는 잔여 데이터의 길이 값이 5워드인데 비해 버스트 길이 값이 8워드여서 잔여 데이터를 현재의 버스트 길이 값으로는 전송하지 못하게 된다.In the section 542, data corresponding to 8 words, which is the current burst length value, is transmitted among the remaining data of 13 words, and then the current burst length value and the length value of the residual data are compared. In section 542, the length of the residual data is 5 words, whereas the burst length is 8 words, and thus the residual data cannot be transmitted using the current burst length value.

543 구간에서는, 542 구간에서의 비교 결과에 따라 현재의 버스트 길이 값을 4워드로 변경하여 데이터를 전송한 후, 현재의 버스트 길이 값과 잔여 데이터 길이 값을 비교한다. 543 구간에서는 잔여 데이터의 길이 값이 1워드인데 비해 버스트 길이 값이 4워드여서 잔여 데이터를 현재의 버스트 길이 값으로는 전송하지 못하게 된다.In section 543, after transmitting the data by changing the current burst length value to 4 words according to the comparison result in section 542, the current burst length value and the remaining data length value are compared. In section 543, the length of the residual data is 1 word, but the burst length is 4 words, and thus the residual data cannot be transmitted using the current burst length value.

544 구간에서는, DMA 장치의 제어 모드를 싱글 모드로 변경한 후 1워드의 잔여 데이터를 전송하여, 전체 데이터의 전송을 완료한다. In the section 544, after changing the control mode of the DMA device to the single mode, one word of residual data is transmitted to complete transmission of all data.

도 6은 본 발명에 따라 현재의 버스트 길이 값을 CPU에 의하여 설정된 새로운 버스트 길이 값으로 변경하는 과정을 설명하기 위하여 도시한 도면이다.6 is a diagram illustrating a process of changing a current burst length value to a new burst length value set by a CPU according to the present invention.

도 6을 참조하면, 610은 레지스터에 기록된 버스트 길이 값을 나타내고, 620은 현재의 버스트 길이 값을 나타내며, 630은 잔여 데이터 길이 값을 나타낸다. Referring to FIG. 6, 610 represents a burst length value written in a register, 620 represents a current burst length value, and 630 represents a residual data length value.

641 구간에서는 레지스터에 기록된 버스트 길이 값에 따라 현재의 버스트 길이 값도 16워드로 설정된다. In section 641, the current burst length value is also set to 16 words according to the burst length value recorded in the register.

642 구간에서는 48워드의 잔여 데이터를 현재의 버스트 길이 값에 따라 전송한다. 따라서 잔여 데이터는 32워드가 된다. 610의 642구간에서는 CPU로부터 새로운 버스트 길이 값이 레지스터에 기록된다. 이때, 620에서 현재의 버스트 길이 값은 즉시 변경되는 것이 아니라, 현재 수행중인 데이터의 읽기/쓰기 동작이 완료된 후에 CPU에 의해 레지스터에 기록된 버스트 길이 값으로 변경된다. 즉, 버스트 신호 전송부(140)는 읽기/쓰기 동작이 완료된 후에 CPU에 의해 설정된 버스트 길이 값으로 현재의 버스트 길이 값을 변경하는 신호를 전송한다. In the 642 interval, 48 words of residual data are transmitted according to the current burst length value. Therefore, the remaining data is 32 words. In section 642 of 610, a new burst length value is written to the register from the CPU. In this case, at 620, the current burst length value is not immediately changed, but is changed to the burst length value written in the register by the CPU after the read / write operation of the currently executing data is completed. That is, the burst signal transmission unit 140 transmits a signal for changing the current burst length value to the burst length value set by the CPU after the read / write operation is completed.

643 구간에서는 642 구간에서의 데이터의 읽기/쓰기 동작이 완료되고 나면, 현재의 버스트 길이 값을 새로운 버스트 길이 값으로 변경하여 데이터를 전송하게 된다. 620에서 현재의 버스트 길이 값이 16워드에서 8워드로 바뀌는 때를 화살표로 표시하였는데, 이때가 현재 수행중인 데이터의 읽기/쓰기 동작이 완료된 때이고, 버스트 신호 전송부(140)는 이때에 현재의 버스트 길이 값을 8워드로 변경하는 신호를 전송한다. In the section 643, after the data read / write operation in the section 642 is completed, the data is transmitted by changing the current burst length value to the new burst length value. In 620, when the current burst length value is changed from 16 words to 8 words, it is indicated by an arrow, and this is when the read / write operation of the data currently being performed is completed, and the burst signal transmitter 140 at this time A signal for changing the length value to 8 words is transmitted.

다만, 소스 메모리가 이와 같은 신호를 수신한 후에 바로 변경된 버스트 길이 값에 따라 데이터를 전송하는 것은 아니고, 643구간에서 표시된 바와 같이 DMA 장치로부터 변경된 버스트 길이 값에 따라 데이터를 전송받겠다는 신호를 수신한 후 약간의 시간이 흐른 뒤에 변경된 버스트 길이 값에 따른 크기로 데이터를 전송하게 된다. However, the source memory does not immediately transmit the data according to the changed burst length value immediately after receiving such a signal, but receives a signal from the DMA device to receive the data according to the changed burst length value as indicated in section 643. After some time, the data is transmitted in the size according to the changed burst length value.

644 구간에서는 변경된 버스트 길이 값인 8워드의 길이로 데이터를 계속해서 전송한다. In interval 644, data is continuously transmitted with a length of 8 words, which is a changed burst length value.

도 7은 본 발명에 따른 직접 메모리 접근 제어를 이용한 데이터 전송 방법을 설명하기 위하여 도시한 흐름도이다. 7 is a flowchart illustrating a data transmission method using direct memory access control according to the present invention.

710 단계에서는, 소스 메모리에서 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크한다.In operation 710, the length value of the remaining data, which is the remaining data transferred from the source memory to the destination memory, and the length value of the burst that is currently set are checked.

720 단계에서는, 체크 결과에 기초하여 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교한다. In operation 720, the length value of the remaining data is compared with the length value of the current burst based on the check result.

730 단계에서는, 비교 결과, 현재의 버스트 길이 값이 잔여 데이터의 길이 값보다 크다면 현재의 버스트의 길이 값을 한 단계 낮은 값으로 변경한 후, 다시 720 단계로 돌아가 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 큰지를 비교한다. In step 730, if the current burst length value is greater than the length of the residual data, in step 730, the length value of the current burst is changed to one level lower, and then, the operation returns to step 720 and the length of the current burst remains. Compares whether the data is greater than the length.

따라서, 현재의 버스트의 길이 값을 한 단계 낮은 값으로 변경한 후에도 여전히 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 크다면, 또 다시 한 단계 더 낮은 값으로 버스트 길이 값을 변경하게 된다. 이와 같은 방식으로 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 작거나 같아질 때까지 현재의 버스트 길이 값은 계속 변경되다가, 현재의 버스트의 길이 값이 잔여 데이터의 길이 값보다 작거나 같아지면 740 단계로 넘어간다. Therefore, if the length value of the current burst is still larger than the length of the remaining data even after changing the length value of the current burst to one level lower, the burst length value is changed again to one level lower. In this way, the current burst length value continues to change until the length value of the current burst is less than or equal to the length value of the remaining data. If the length value of the current burst is less than or equal to the length value of the remaining data, Go to step 740.

예컨대, 현재의 버스트의 길이 값이 32 워드이고, 잔여 데이터의 길이 값이 7워드인 경우에는, 현재의 버스트의 길이 값과 잔여 데이터의 길이 값을 비교하여 현재의 버스트의 길이 값을 16워드, 8워드, 4워드와 같이 순차적으로 변경하게 되는 것이다. For example, when the length value of the current burst is 32 words and the length value of the residual data is 7 words, the length value of the current burst is compared to the length value of the residual data, and the length value of the current burst is 16 words. 8 words and 4 words are sequentially changed.

740 단계에서는, 현재 버스트의 길이 값이 잔여 데이터의 길이 값보다 작거나 같다면 현재의 버스트 길이 값을 변경된 버스트 길이 값으로 설정하여 데이터를 전송한다.In step 740, if the length value of the current burst is less than or equal to the length value of the remaining data, the current burst length value is set to the changed burst length value and data is transmitted.

상기의 710 내지 740의 단계들은 소스 메모리에 저장되어 있는 모든 데이터가 목적지 메모리에 전송될 때까지 반복하여 수행된다. Steps 710 to 740 are repeatedly performed until all data stored in the source memory is transferred to the destination memory.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, a DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으 로 해석되어야 할 것이다. So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the appended claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명은 버스트의 길이를 유동적으로 변경하여 전송함으로써 데이터를 보다 효율적으로 전송하고, 전송 과정에서의 전송 효율을 측정함으로써 사용자로 하여금 데이터의 전송 효율을 판단할 수 있게 하는 효과가 있다. According to the present invention, data can be transmitted more efficiently by changing the length of the burst in a flexible manner, and the user can determine the transmission efficiency of data by measuring the transmission efficiency in the transmission process.

Claims (21)

전송할 데이터가 저장되어 있는 소스 메모리와 상기 전송된 데이터가 저장될 목적지 메모리 사이의 직접 메모리 접근 제어를 이용한 데이터 전송 방법에 있어서,A data transfer method using direct memory access control between a source memory in which data to be transmitted is stored and a destination memory in which the transmitted data is to be stored, 상기 소스 메모리에서 상기 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크하는 단계;Checking the length value of the remaining data and the length value of the currently set burst, the remaining data being transferred from the source memory to the destination memory; 상기 체크 결과에 기초하여 상기 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교하는 단계; 및 Comparing the length value of the remaining data with the length value of the current burst based on the check result; And 상기 비교 결과에 기초하여, 상기 버스트의 길이 값을 선택적으로 변경하여 상기 데이터를 전송하는 단계를 포함하고, Selectively changing a length value of the burst based on a result of the comparison, and transmitting the data; 상기 전송하는 단계는 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 크면, 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 값으로 변경하여 상기 데이터를 전송하는 것을 특징으로 하는 전송 방법. The transmitting may include transmitting the data by changing the length of the burst to a value less than or equal to the length of the residual data when the length of the burst is greater than the length of the residual data. Characterized by a transmission method. 삭제delete 제1항에 있어서,The method of claim 1, 상기 전송하는 단계는 The transmitting step 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 버스트의 길이 값 중에서 가장 큰 크기를 가지는 값으로 변경하는 것을 특징으로 하는 전송 방법. And transmitting the length value of the burst to a value having the largest size among length values of the burst that is less than or equal to the length value of the residual data. 제1항에 있어서,The method of claim 1, 상기 전송하는 단계는 The transmitting step 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 작거나 같으면 상기 버스트 길이 값을 그대로 유지하는 것을 특징으로 하는 전송 방법. And if the length value of the burst is less than or equal to the length value of the residual data, the burst length value is maintained as it is. 제1항에 있어서,The method of claim 1, 상기 체크하는 단계 전에Before checking above 중앙 처리 장치로부터 새로운 버스트 길이 값을 수신하는 단계; 및Receiving a new burst length value from a central processing unit; And 상기 수신된 새로운 버스트 길이 값을 현재의 버스트 길이 값으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 전송 방법. Setting the received new burst length value to a current burst length value. 제5항에 있어서,The method of claim 5, 상기 현재의 버스트 길이 값으로 설정하는 단계는Setting to the current burst length value 현재 수행 중인 데이터의 읽기/쓰기 동작이 완료된 경우에 상기 새로운 버스트 길이 값을 상기 현재의 버스트 길이 값으로 설정하는 것을 특징으로 하는 전송 방법. And when the read / write operation of the data currently being performed is completed, set the new burst length value to the current burst length value. 제1항에 있어서,The method of claim 1, 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, When the transfer of data from the source memory to the destination memory is completed, 상기 전송이 시작되어 완료될 때까지 소요된 총 소요 시간을 체크하는 단계; 및Checking the total time required for the transmission to start and complete; And 상기 체크 결과에 기초하여, 상기 데이터 전송의 효율성을 판단하는 단계를 더 포함하는 것을 특징으로 하는 전송 방법. And determining the efficiency of the data transmission based on the check result. 제7항에 있어서The method of claim 7, 상기 소요 시간은 소정의 클락 신호를 기준으로 하여 측정되는 것을 특징으로 하는 전송 방법. The required time is a transmission method, characterized in that measured on the basis of a predetermined clock signal. 제7항에 있어서, The method of claim 7, wherein 상기 총 소요 시간을 체크하는 단계는The step of checking the total time required 상기 전송이 시작되어 완료될 때까지 각각의 버스트의 종류별로 수행된 데이터의 읽기 및 쓰기 동작의 횟수를 체크하는 단계를 더 포함하는 것을 특징으로 하는 전송 방법. And checking the number of read and write operations of data performed for each burst type until the transmission starts and is completed. 제7항에 있어서,The method of claim 7, wherein 상기 총 소요 시간을 체크하는 단계는The step of checking the total time required 상기 전송이 시작되어 완료될 때까지의 각각의 버스트의 종류별로 소요된 시간인 버스트별 소요시간을 체크하는 단계를 더 포함하는 것을 특징으로 하는 전송 방법. And checking the time required for each burst, which is the time required for each type of burst until the transmission starts and is completed. 전송할 데이터가 저장되어 있는 소스 메모리 및 상기 전송된 데이터가 저장될 목적지 메모리 사이의 데이터의 전송을 제어하는 직접 메모리 접근 제어 장치에 있어서,A direct memory access control apparatus for controlling the transfer of data between a source memory in which data to be transmitted is stored and a destination memory in which the transmitted data is to be stored. 상기 소스 메모리에서 상기 목적지 메모리로 전송되고 남은 데이터인 잔여 데이터의 길이 값 및 현재 설정되어 있는 버스트의 길이 값을 체크하는 카운터부;A counter unit for checking a length value of the remaining data, which is the remaining data transferred from the source memory to the destination memory, and a length value of a burst that is currently set; 상기 체크 결과에 기초하여 상기 잔여 데이터의 길이 값과 현재의 버스트의 길이 값을 비교하는 비교부; A comparison unit comparing the length value of the residual data with the length value of the current burst based on the check result; 상기 비교 결과에 기초하여, 상기 버스트의 길이 값을 선택적으로 변경하는 버스트 길이 값 설정부; 및A burst length value setting unit for selectively changing a length value of the burst based on the comparison result; And 상기 변경된 버스트 길이 값에 따라 데이터를 전송하기 위한 버스트 신호를 전송하는 버스트 신호 전송부를 포함하고, A burst signal transmitter for transmitting a burst signal for transmitting data according to the changed burst length value; 상기 버스트 길이 값 설정부는 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 크면, 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 값으로 변경하는 것을 특징으로 하는 제어 장치. The burst length value setting unit may be configured to change the length of the burst to a value less than or equal to the length of the residual data if the length of the burst is greater than the length of the residual data. Device. 삭제delete 제11항에 있어서,The method of claim 11, 상기 버스트 길이 값 설정부는 The burst length value setting unit 상기 버스트의 길이 값을 상기 잔여 데이터의 길이 값보다 작거나 같은 버스트의 길이 값 중에서 가장 큰 크기를 가지는 값으로 변경하는 것을 특징으로 하는 제어 장치. And change the length value of the burst to a value having the largest size among the length values of the bursts that are less than or equal to the length value of the residual data. 제11항에 있어서,The method of claim 11, 상기 버스트 길이 값 설정부는 The burst length value setting unit 상기 비교결과, 상기 버스트의 길이 값이 상기 잔여 데이터의 길이 값보다 작거나 같으면 상기 버스트 길이 값을 그대로 유지하는 것을 특징으로 하는 제어 장치. And if the length value of the burst is less than or equal to the length value of the residual data, maintaining the burst length value as it is. 제11항에 있어서,The method of claim 11, 중앙 처리 장치로부터 새로운 버스트 길이 값이 수신되면, 상기 수신된 버스트 길이 값이 기록되는 레지스터를 더 포함하고, If a new burst length value is received from the central processing unit, further comprising a register in which the received burst length value is recorded; 상기 버스트 길이 값 설정부는 상기 수신된 새로운 버스트 길이 값을 현재의 버스트 길이 값으로 설정하는 것을 특징으로 하는 제어 장치. And the burst length value setting unit sets the received new burst length value to a current burst length value. 제11항에 있어서,The method of claim 11, 상기 카운터부는 The counter part 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지 걸린 총 소요 시간을 체크하는 것을 특징으로 하는 제어 장치.And when the transfer of data from the source memory to the destination memory is completed, checking the total time required until the transfer is started and completed. 제11항에 있어서, The method of claim 11, 상기 카운터부는 The counter part 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지 각각의 버스트의 종류별로 수행된 데이터의 읽기 및 쓰기 동작의 횟수를 체크하는 것을 특징으로 하는 제어 장치. And when the transfer of data from the source memory to the destination memory is completed, checking the number of read and write operations of data performed for each burst type until the transfer is started and completed. 제11항에 있어서,The method of claim 11, 상기 카운터부는The counter part 상기 소스 메모리로부터 상기 목적지 메모리로 데이터의 전송이 완료되면, 상기 전송이 시작되어 완료될 때까지의 각각의 버스트의 종류별로 소요된 시간인 버스트별 소요시간을 체크하는 것을 특징으로 하는 제어 장치. And when the transfer of data from the source memory to the destination memory is completed, checking the time required for each burst, which is the time taken for each burst type until the transfer starts and is completed. 제16항 또는 제18항에 있어서,The method according to claim 16 or 18, 상기 카운터부는The counter part 상기 소요 시간을 클락 신호를 기준으로 하여 측정하는 것을 특징으로 하는 제어 장치. And controlling the time required based on the clock signal. 제16항 내지 18항 중 어느 한 항에 있어서,The method according to any one of claims 16 to 18, 상기 카운터부의 체크 결과에 기초하여, 상기 데이터 전송의 효율성을 판단하는 전송 효율성 판단부를 더 포함하는 것을 특징으로 하는 제어 장치. And a transmission efficiency determination unit that determines the efficiency of the data transmission based on a check result of the counter unit. 제1항 또는 제3항 내지 제10항 중 어느 한 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 10.
KR1020060120069A 2006-11-03 2006-11-30 Method for transmitting data using direct memory access control and apparatus therefor KR101109600B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/755,021 US7779174B2 (en) 2006-11-03 2007-05-30 Method and apparatus for dynamically changing burst length using direct memory access control
EP07110907A EP1918823A1 (en) 2006-11-03 2007-06-22 Method and apparatus for transmitting data using direct memory access control

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US85629206P 2006-11-03 2006-11-03
US60/856,292 2006-11-03

Publications (2)

Publication Number Publication Date
KR20080040535A KR20080040535A (en) 2008-05-08
KR101109600B1 true KR101109600B1 (en) 2012-01-31

Family

ID=39422770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060120069A KR101109600B1 (en) 2006-11-03 2006-11-30 Method for transmitting data using direct memory access control and apparatus therefor

Country Status (2)

Country Link
KR (1) KR101109600B1 (en)
CN (1) CN101174248A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622321B (en) * 2011-01-28 2015-06-17 炬芯(珠海)科技有限公司 Data processing device and data transmission method thereof
CN108511030B (en) * 2017-02-24 2020-12-18 瑞昱半导体股份有限公司 Memory testing method
TWI771852B (en) * 2020-12-29 2022-07-21 新唐科技股份有限公司 Direct memory access device, data transmission method and electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980065464A (en) * 1997-01-10 1998-10-15 김광호 Timing Mode Selector According to Direct Memory Access Transmission Method
KR19990043773A (en) * 1997-11-29 1999-06-15 정선종 Direct memory access controller
KR20020073784A (en) * 2001-03-16 2002-09-28 삼성전자 주식회사 Direct memory access controller being converted transfer mode flexibly according to data transfer counter value
JP2006018642A (en) 2004-07-02 2006-01-19 Victor Co Of Japan Ltd Dma transfer controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980065464A (en) * 1997-01-10 1998-10-15 김광호 Timing Mode Selector According to Direct Memory Access Transmission Method
KR19990043773A (en) * 1997-11-29 1999-06-15 정선종 Direct memory access controller
KR20020073784A (en) * 2001-03-16 2002-09-28 삼성전자 주식회사 Direct memory access controller being converted transfer mode flexibly according to data transfer counter value
JP2006018642A (en) 2004-07-02 2006-01-19 Victor Co Of Japan Ltd Dma transfer controller

Also Published As

Publication number Publication date
CN101174248A (en) 2008-05-07
KR20080040535A (en) 2008-05-08

Similar Documents

Publication Publication Date Title
EP1389760B1 (en) Data transfer control system, program and data transfer control method
US7779174B2 (en) Method and apparatus for dynamically changing burst length using direct memory access control
US7725621B2 (en) Semiconductor device and data transfer method
JP2001236304A (en) Microcomputer
US6148384A (en) Decoupled serial memory access with passkey protected memory areas
JP2006113689A (en) Bus bridge device and data transfer method
KR101109600B1 (en) Method for transmitting data using direct memory access control and apparatus therefor
JP2010211322A (en) Network processor, reception controller, and data reception processing method
KR100843199B1 (en) High speed IDE interface device and method for the same
US6883041B2 (en) Direct memory access device
US7249237B2 (en) Control method for data transfer control unit
KR20010013137A (en) Communication DMA Device
KR100467324B1 (en) Apparatus for managing ethernet physical layer registers using External Bus Interface and method thereof
US20050138236A1 (en) Direct memory access control device and method for automatically updating data transmisson size from peripheral
JP4793798B2 (en) Microcomputer
JP2008118211A (en) Device and method for transferring data
JP2000155737A (en) Data packet receiving device
JP2009037479A (en) Data transfer control device and electronic device
KR20100063219A (en) Apparatus and method for writing of bitwise data in bus system
JP7087419B2 (en) Data receiving device, data transmission / reception system, and control method of data transmission / reception system
KR100259585B1 (en) Dma controller
JP2000112878A (en) Device and method for controlling timing of transfer request in data processor
JP2009187337A (en) Device control method, program, control circuit, and electronic equipment
JP2004046891A (en) Data processing system, data processor, external device, and data transmission method
KR20050004157A (en) Data transfer unit with support for multiple coherency granules

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: 20141223

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee