KR20000025559A - Method for compressing and restoring direct memory access controller - Google Patents

Method for compressing and restoring direct memory access controller Download PDF

Info

Publication number
KR20000025559A
KR20000025559A KR1019980042699A KR19980042699A KR20000025559A KR 20000025559 A KR20000025559 A KR 20000025559A KR 1019980042699 A KR1019980042699 A KR 1019980042699A KR 19980042699 A KR19980042699 A KR 19980042699A KR 20000025559 A KR20000025559 A KR 20000025559A
Authority
KR
South Korea
Prior art keywords
data
buffer
controller
compressing
register
Prior art date
Application number
KR1019980042699A
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 KR1019980042699A priority Critical patent/KR20000025559A/en
Publication of KR20000025559A publication Critical patent/KR20000025559A/en

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PURPOSE: A method for compressing and restoring data is provided to embody a DMA(Direct Memory Access) controller having a compressing function and a restoring function in a hardware. CONSTITUTION: A DMA(Direct Memory Access) controller includes a controller receiving a control signal and data from a CPU(Central Processing Unit) and an input/output unit, and outputting a transmission data column by compressing or restoring the control signal and the data. A method for compressing and restoring data comprises the steps of: selecting one operation of a compressing operation and a restoring operation, by receiving the control signal and the data; reading data of an original data column among the data from the CPU and the input/output unit, in a control section in order, and temporarily storing to a first buffer and a second buffer; examining whether a redundancy is generated in data of the first buffer and the second buffer, transmitting data corresponding to the redundancy number of times and redundant data only, and compressing when the compressing operation is performed; repeating the redundant data as the redundant number of times by the data corresponding to the redundant number of times, transmitted by the compressing process, and restoring the data.

Description

직접 메모리 액세스 컨트롤러의 압축과 복원방법How to compress and restore a direct memory access controller

본 발명은 직접 메모리 액세스 컨트롤러에 관한 것으로서 더욱 상세하게 말하면 압축과 복원기능을 갖는 직접 메모리 액세스 컨트롤러에 관한 것이다.The present invention relates to a direct memory access controller, and more particularly, to a direct memory access controller having compression and recovery functions.

직접 메모리 액세스(direct memory access : 이하 'DMA'라 칭함)란 중앙처리장치(central processing unit : 이하 'CPU'라 칭함)의 처리를 거치지 않고 주변 장치들, 예를 들면 시스템 보드상의 제1 메모리와 제2 메모리 사이에서 데이터 전송이 있을 때 직접 메모리를 액세스하여 데이터를 전송하는 것을 말한다. 실제로 이러한 직접 메모리 액세스 동작에 의한 데이터 전송제어는 DMA 컨트롤러가 수행하게 된다.Direct memory access (hereinafter referred to as "DMA") refers to peripheral devices, such as the first memory on the system board, without being processed by a central processing unit (hereinafter referred to as "CPU"). When data is transferred between the second memories, the data is directly accessed by transferring the data. In fact, the data transfer control by the direct memory access operation is performed by the DMA controller.

DMA 컨트롤러의 데이터 전송방식은 크게 다음과 같은 두가지로 구별된다.The data transfer method of the DMA controller is largely divided into the following two types.

첫째, 소스 메모리 영역의 데이터를 읽고 그 데이터를 디바이스(device) 내부의 버스 상에 유지하여 목적 메모리 영역에 쓰는 플라이 바이 모드(fly-by-mode)를 사용하는 방식과 둘째, 내부 버퍼를 사용하여 소스 메모리 영역에서 읽은 데이터를 일단 버퍼에 채우고 버퍼가 다 차면 목적 메모리에 쓰는 버퍼 모드(buffered mode) 방식이다.First, using a fly-by-mode that reads data from the source memory area and keeps it on the bus inside the device, writing to the destination memory area. Second, using an internal buffer. It is a buffered mode that fills the buffer with data read from the source memory area and writes to the destination memory once the buffer is full.

그런데, 위의 두 방식은 대량의 데이터를 전송하고자 할 때는 전송효율 면에서 다음과 같은 문제점을 지닌다.However, the above two methods have the following problems in terms of transmission efficiency when a large amount of data is to be transmitted.

첫 번째 방식인 플라이 바이 모드는 버스 상에 데이터를 유지시킴으로써 버스의 사용효율을 떨어뜨리며 버스의 데이터 구조에 따라 데이터 전송이 제한된다. 또한, 두 번째 방식인 버퍼모드는 버퍼의 크기에 따라 일괄적으로 전송되는 데이터양이 제한되며 버퍼의 크기가 작을 때는 전송하고자 하는 대량의 데이터에 의해 많은 전송시간이 요구되어진다.The first method, fly-by mode, keeps data on the bus, which reduces the efficiency of the bus and limits data transfer depending on the data structure of the bus. In addition, in the second mode, the buffer mode is limited in the amount of data transmitted in accordance with the size of the buffer, and when the size of the buffer is small, a large transfer time is required by the large amount of data to be transmitted.

위의 문제점은 사무기기, 특히 프린터나 스캐너 또는 최근의 사무환경 통합화에 따른 복합기에 의한 데이터 전송에 있어서 더욱 제기된다. 이들 사무기기의 소스 메모리 내에는 공란이나 선 등의 동일한 데이터가 반복되는 경우가 많다. 이러한 동일한 데이터를 전송하는 DMA 컨트롤러의 전송 동작도 동일하게 반복된다.The above problems are further raised in the transmission of data by office equipment, in particular printers or scanners or multifunction devices resulting from the recent integration of office environments. In the source memory of these office equipments, the same data such as blanks or lines is often repeated. The transfer operation of the DMA controller that transfers the same data is similarly repeated.

따라서, 위와 같은 경우의 DMA 컨트롤러는 데이터 전송을 위해 동일한 동작을 반복하면서도 시스템 버스를 장시간 점유하게 되므로 데이터 전송 효율 면에서 바람직하지 못한 결과를 초래하는 문제점을 가진다.Therefore, the DMA controller in such a case occupies the system bus for a long time while repeating the same operation for data transmission, and thus has an undesired result in terms of data transmission efficiency.

따라서, 본 발명의 과제는 소스 메모리로부터 전송되는 데이터열에서 중복되는 데이터열를 압축하는 기능과 압축된 데이터를 복원하는 기능을 갖는 DMA 컨트롤러를 하드웨어로 구현하여 데이터의 전송효율을 높이고 메모리를 보다 효율적으로 사용하도록 하는 것이다.Accordingly, an object of the present invention is to implement a DMA controller having a function of compressing a redundant data string in a data string transmitted from a source memory and a function of restoring the compressed data in hardware to increase data transmission efficiency and more efficiently memory. To use it.

도1은 본 발명의 실시예에 따른 압축과 복원기능을 갖는 직접 메모리 액세스 컨트롤러의 외형도이다.1 is an external view of a direct memory access controller having a compression and decompression function according to an embodiment of the present invention.

도2는 본 발명의 실시예에 따른 압축과 복원기능을 갖는 직접 메모리 액세스 컨트롤러의 블럭도이다.2 is a block diagram of a direct memory access controller having compression and decompression functions in accordance with an embodiment of the present invention.

도3은 도2의 제어부의 세부 블록도이다.3 is a detailed block diagram of the controller of FIG. 2.

도4는 본 발명의 실시예에 따른 원본 데이터열 "1a, 22, 22, 33, 1a, la, la"을 압축하는 직접 메모리 액세스 컨트롤러의 내부 상태를 나타낸 상태표이다.4 is a state table showing the internal state of the direct memory access controller compressing the original data string " 1a, 22, 22, 33, 1a, la, la " according to an embodiment of the present invention.

도5는 본 발명의 실시예에 따른 압축 과정을 나타낸 순서도이다.5 is a flowchart illustrating a compression process according to an embodiment of the present invention.

도6은 본 발명의 실시예에 따른 복원 과정을 나타낸 순서도이다.6 is a flowchart illustrating a restoration process according to an embodiment of the present invention.

상기 목적을 달성하기 위해 본 발명은 내부 버퍼와 로컬 버스를 가지고 버퍼 모드로 데이터를 전송하는 직접 메모리 액세스 컨트롤러에서 원본 데이터열을 입력받아 압축 혹은 복원하여 전송 데이터열을 출력하는 제어부를 포함한다.In order to achieve the above object, the present invention includes a control unit for outputting a transmission data string by receiving an original data string from a direct memory access controller for transmitting data in a buffer mode with an internal buffer and a local bus, and compressing or restoring the original data string.

여기서, 제어부는 원본 데이터열의 데이터를 차례로 비교하여 데이터의 압축여부와 중복 여부를 검사하고 내부 상태를 변경시킴으로써 원본 데이터열을 압축 또는 복원하고, 결과 데이터에 따라 디코딩(decoding)하여 클럭 신호와 제어신호를 출력하는 유한 상태 기계로 이루어진다.Here, the control unit compares the data of the original data sequence in turn, checks whether the data is compressed and overlapped, and compresses or restores the original data sequence by changing the internal state, and decodes according to the result data to decode the clock signal and the control signal. It consists of a finite state machine that outputs

이 발명은 중앙처리장치와 입출력장치로부터 초기화를 위한 데이터와 제어신호를 입력받고 이것을 해당 기능부에 출력하는 입력부와 이러한 데이터와 제어신호를 입력받아 다수의 레지스터를 세트하는 레지스터부를 더 포함할 수 있다.The present invention may further include an input unit for receiving data and control signals for initialization from a central processing unit and an input / output device and outputting the data and control signals to a corresponding functional unit, and a register unit for receiving the data and control signals and setting a plurality of registers. .

이 발명은 제어부의 제어신호에 따라 전송 데이터열을 목적 메모리에 전송하기 위해 메모리 컨트롤러를 제어하는 버스 인터페이스부를 더 포함할 수 있다.The present invention may further include a bus interface unit controlling the memory controller to transfer the transfer data sequence to the target memory according to a control signal of the controller.

이 발명은 전송 데이터열을 입력받아 일시적으로 저장하고 제어부의 제어신호에 의해 전송 데이터열을 로컬 버스로 출력하는 버퍼부를 더 포함할 수 있다.The present invention may further include a buffer unit which receives the transmission data string and temporarily stores the transmission data string and outputs the transmission data string to the local bus by a control signal of the controller.

이 발명의 압축, 복원 기능을 구현하기 위한 알고리듬은 MRLE(modified run length encoding)로서, IEEE(Institute of Electrical and Electronic Engineers) 1284의 ECP(extended capability port) 모드에서 적용한 RLE(run length encoding) 알고리듬에서 RLC(run length counter)값을 -N에서 +N까지로 제한을 두어 사용하기로 한 알고리듬이다.The algorithm for implementing the compression and decompression function of the present invention is modified run length encoding (MRLE), which is applied to the run length encoding (RLE) algorithm applied in the extended capability port (ECP) mode of the Institute of Electrical and Electronic Engineers (IEEE) 1284. The algorithm decided to limit the run length counter (RLC) from -N to + N.

MRLE 알고리듬은 다음과 같다.The MRLE algorithm is as follows.

일련의 데이터 스트림인 원본 데이터열이 있을 때 압축된 전송데이터 열은 중복되는 바이트 데이터 대신에 한 바이트 데이터와 그 앞에 부호를 가진 RLC값을 삽입하는 것이다. 여기서, RLC값의 양의 부호는 서로 다른 (N+1)개의 데이터가 연속됨을 나타내고 음의 부호는 동일한 데이터가 (N+1)번 연속됨을 표시한다.When there is an original data string that is a series of data streams, the compressed transmission data string inserts one byte data and a signed RLC value in front of the redundant byte data. Here, a positive sign of the RLC value indicates that (N + 1) different data are consecutive, and a negative sign indicates that the same data is consecutive (N + 1) times.

예를 들어, 원본 데이터열이 1a, 1a, 1a, 1a, ..., 1a(16번째 반복), 22, 33 라고 하자. 이때 1a는 16번 반복되므로 전송 데이터열에서는 -15, 1a로 표현된다.For example, suppose the original data string is 1a, 1a, 1a, 1a, ..., 1a (16th iteration), 22, 33. In this case, since 1a is repeated 16 times, it is represented by -15 and 1a in the transmission data string.

그 동작을 보면, 원본 데이터열에서 첫 번째 데이터인 1a를 읽은 후 두 번째 데이터1a를 읽어 이것을 비교한다. 여기서, 두 데이터는 동일하므로 RLC값은 -1이 되고 다시 세 번째 데이터인 1a를 읽어 두 번째 데이터와 비교한다. 두 데이터가 여전히 동일하므로 RLC값은 감소한다. 이러한 방법으로 동일한 16개의 1a 데이터를 읽은 후 다음 데이터인 22를 읽게 되면 두 데이터는 서로 다르므로 RLC값은 -15에서 멈추게 되고 전송 데이터열에는 -15, 1a가 쓰여진다. 다시 22 다음 데이터인 33을 읽고 두 데이터를 비교하면 서로 다르게 되어 전송 데이터열에는 1, 22, 33이 쓰여진다.The operation reads the first data 1a from the original data string and then compares it by reading the second data 1a. Here, since the two data are the same, the RLC value becomes -1, and the third data 1a is read and compared with the second data. Since both data are still the same, the RLC value decreases. In this way, if the same 16 1a data is read and the next data 22 is read, the two data are different, so the RLC value stops at -15 and -15 and 1a are written in the transmission data string. Again, after reading 22, the next data 33, and comparing the two data, the data is different, and 1, 22, and 33 are written in the transmission data string.

이상과 같이, 위에서 설명된 압축 알고리듬에 따라 동작하는 DMA 컨트롤러는 (M+1)바이트의 내부 버퍼를 내장하여 중복된 데이터열은 2바이트로 압축되므로 최대 압축율은 (1-2/(1+M))*100%가 된다. 따라서, 위에서 예를 들은 연속된 16개의 1a 데이터열은 (1-(2/16))*100%인 87.5%의 압축율을 가진다.As described above, the DMA controller operating according to the compression algorithm described above has an internal buffer of (M + 1) bytes so that the redundant data stream is compressed into 2 bytes, so the maximum compression ratio is (1-2 / (1 + M). )) * 100%. Thus, the 16 consecutive 1a data sequences given above have a compression ratio of 87.5%, which is (1- (2/16)) * 100%.

이러한 MRLE 알고리듬에 따라 동작하도록 하드웨어로 설계한 DMA 컨트롤러에 대해 설명한다.A hardware controller designed to operate according to this MRLE algorithm is described.

도1은 본 발명의 실시예에 따른 압축, 복원 기능을 갖는 DMA 컨트롤러의 외형도이다.1 is an external view of a DMA controller having a compression and decompression function according to an embodiment of the present invention.

DMA 컨트롤러는 입력 신호로 리셋 신호(RESET), 클럭 신호(CLK), 어드레스 신호(AS), 칩선택신호(CS), DMA 요구 신호(DREQ), 버스 허가 신호(BACK) 등을 입력받는다. 또한, DMA 컨트롤러는 출력 신호로 DMA 허가 신호(DACK), 버스 요구 신호(BREQ), 인터럽트 신호(INT), 어드레스 신호(SAS) 등을 출력한다.The DMA controller receives a reset signal RESET, a clock signal CLK, an address signal AS, a chip select signal CS, a DMA request signal DREQ, and a bus enable signal BACK as input signals. The DMA controller also outputs a DMA enable signal DACK, a bus request signal BREQ, an interrupt signal INT, an address signal SAS, and the like as output signals.

도2는 본 발명의 실시예에 따른 압축, 복원 기능을 갖는 직접 메모리 액세스 컨트롤러의 블록도이다.2 is a block diagram of a direct memory access controller having a compression and decompression function according to an embodiment of the present invention.

DMA 컨트롤러(100)는 외부 버스(XD)에 연결되어 CPU나 주변 장치들과 데이터 및 제어신호를 교환한다. 특히 DMA 컨트롤러(100)는 메모리 컨트롤러(200)를 경유해서 메모리(300,400)에 액세스한다. 따라서 메모리 컨트롤러(200)는 메모리(300,400)와 DMA 컨트롤러(100) 사이에 위치하고 외부 버스(XD)를 통해 메모리(300,400)와 데이터 및 제어 신호를 교환하여 이것을 DMA 컨트롤러(100)에 전달한다.The DMA controller 100 is connected to an external bus XD to exchange data and control signals with a CPU or peripheral devices. In particular, the DMA controller 100 accesses the memories 300 and 400 via the memory controller 200. Therefore, the memory controller 200 is located between the memory 300, 400 and the DMA controller 100, and exchanges data and control signals with the memory 300, 400 through the external bus XD and transfers the data and control signals to the DMA controller 100.

DMA 컨트롤러(100)는 내부에 입력부(110), 레지스터부(120), 제어부(130), 버스 인터페이스부(140) 및 버퍼부(150)를 포함한다.The DMA controller 100 includes an input unit 110, a register unit 120, a controller 130, a bus interface unit 140, and a buffer unit 150.

입력부(110)는 DMA 컨트롤러(100) 내의 시스템 버스(SD)에 연결되어 입력되는 신호를 버퍼링하여 레지스터부(120)나 제어부(130)로 전달한다.The input unit 110 is connected to the system bus SD in the DMA controller 100 and buffers the input signal to the register unit 120 or the control unit 130.

레지스터부(120)는 DMA 컨트롤러(100)가 동작하기 위한 소스 어드레스 레지스터, 목적 어드레스 레지스터, 워드 카운트 레지스터 또는 제어 레지스터를 가진다. 여기서, 이러한 레지스터들은 CPU에 의해 초기화되어 동작하고, 이에 따라 제어 레지스터의 비트를 세트하여 DMA 컨트롤러의 동작을 제어한다.The register unit 120 has a source address register, a destination address register, a word count register or a control register for the DMA controller 100 to operate. Here, these registers are initialized and operated by the CPU, thereby setting the bits of the control register to control the operation of the DMA controller.

제어부(130)는 유한 상태 기계(finite state machine)와 디코더(decoder)로 이루어지므로, 입력부(110)와 레지스터부(120)가 출력하는 데이터 및 입력 신호와 제어부(130)가 출력하는 이전 상태를 입력받아 동작한다. 이에 따른 출력은 각각 버스 인터페이스부(140)와 버퍼부(150)로 입력된다.Since the controller 130 includes a finite state machine and a decoder, the controller 130 outputs the data output from the input unit 110 and the register unit 120, the input signal, and the previous state output from the controller 130. It works by receiving input. The outputs are input to the bus interface unit 140 and the buffer unit 150, respectively.

도3은 도2의 제어부의 세부 블록도이다.3 is a detailed block diagram of the controller of FIG. 2.

제어부는 제1버퍼(131), 제2버퍼(132), 비교기(133), 제1레지스터(134), 제2레지스터(135), 제3레지스터(136) 및 유한 상태 기계(137)를 포함하여 이루어진다. 여기서, 제1버퍼(131)와 제2버퍼(132)는 원본 데이터열에서 읽어들인 데이터를 일시적으로 저장하는 역할을 한다. 다음, 이 두 버퍼(131,132)에 저장된 값은 비교기(133)에 의해 비교된 후, 결과는 유한 상태 기계(137)로 입력된다. 또한, 제1 레지스터(134), 제2 레지스터(135) 및 제3 레지스터(136)는 비교기에서 출력되는 결과를 저장한다. 따라서, 이 결과는 유한 상태 기계(137)가 중복되는 데이터의 개수를 계산하는데 사용된다. 유한 상태 기계(137)는 비교기(133), 제1레지스터(134)~제3레지스터(136)의 입력을 받아 데이터 압축을 수행한 후 전송 데이터열을 만들어 버퍼부(150)에 저장한다.The control unit includes a first buffer 131, a second buffer 132, a comparator 133, a first register 134, a second register 135, a third register 136, and a finite state machine 137. It is done by Here, the first buffer 131 and the second buffer 132 temporarily stores data read from the original data string. The values stored in these two buffers 131, 132 are then compared by the comparator 133, and then the result is input to the finite state machine 137. In addition, the first register 134, the second register 135 and the third register 136 stores the result output from the comparator. Thus, this result is used by the finite state machine 137 to calculate the number of duplicate data. The finite state machine 137 receives the inputs of the comparator 133 and the first register 134 to the third register 136 to perform data compression, and then generates a transmission data string and stores the transmission data string in the buffer unit 150.

버스 인터페이스부(140)는 제어부(130)의 출력에 따라 버퍼부(150) 내의 전송 데이터열을 목적 메모리(400)로 전송하기 위해서 메모리 컨트롤러(200)를 제어한다.The bus interface unit 140 controls the memory controller 200 to transmit the transmission data string in the buffer unit 150 to the destination memory 400 according to the output of the controller 130.

버퍼부(150)는 DMA 컨트롤러(100) 내의 로컬 버스(LD)에 연결되어 제어부(130)의 출력에 의해 만들어진 전송 데이터열을 저장한다. 또한, 버퍼부(150)는 제어부의 제어신호에 따라 전송 데이터열을 로컬 버스로 출력한다.The buffer unit 150 is connected to the local bus LD in the DMA controller 100 to store the transmission data string generated by the output of the controller 130. In addition, the buffer unit 150 outputs the transmission data string to the local bus according to the control signal of the controller.

이하, 도1 내지 도3에 도시된 본 발명의 구성에 따라 그 동작에 대해 구체적으로 설명한다. 소스 메모리(300)로부터 목적 메모리(400)로 데이터 전송 요구가 있고, 전송이 요구되는 데이터열은 "la, 22, 22, 33, la, la, la" 이라고 하자.Hereinafter, the operation according to the configuration of the present invention shown in Figures 1 to 3 will be described in detail. Suppose there is a data transfer request from the source memory 300 to the target memory 400, and the data strings to which transfer is requested are " la, 22, 22, 33, la, la, la. &Quot;

DMA 컨트롤러(100)는 입력핀(DREQ)을 통해 DMA 요구 신호를 입력받고, 이에 따라 출력핀(BREQ)을 통해 CPU로 버스 요구 신호를 보낸다. 이 신호를 받은 CPU는 DMA 컨트롤러(100)에게 버스 허가 신호를 출력한다. DMA 컨트롤러(100)는 입력핀(BACK)을 통해 이 신호를 받고 버스를 점유하고 DMA 요구 신호에 대한 응답 신호를 출력핀(DACK)을 통해서 출력한다.The DMA controller 100 receives a DMA request signal through an input pin DREQ, and thus sends a bus request signal to the CPU through an output pin BREQ. Upon receiving this signal, the CPU outputs a bus permission signal to the DMA controller 100. The DMA controller 100 receives the signal through the input pin BACK, occupies the bus, and outputs a response signal for the DMA request signal through the output pin DACK.

CPU는 DMA 컨트롤러(100)에 소스 메모리 어드레스, 목적 메모리 어드레스, 데이터 바이트수 등을 전송한다. 그러면, DMA 컨트롤러(100)의 입력부(110)는 이것을 레지스터부(120)로 보내어 DMA 컨트롤러(100) 내부의 레지스터에 상기 값들을 세트함으로써 DMA 컨트롤러(100)가 동작하기 시작한다.The CPU transfers the source memory address, the target memory address, the number of data bytes, and the like to the DMA controller 100. Then, the input unit 110 of the DMA controller 100 sends this to the register unit 120 and sets the values in a register inside the DMA controller 100 so that the DMA controller 100 starts to operate.

다음, DMA 컨트롤러(100)는 메모리 컨트롤러(200)를 통해 소스 메모리 어드레스에서 원본 데이터열을 읽어낸다. 입력부(110)는 이러한 방법으로 읽어낸 원본 데이터열을 제어부(130)로 전송한다. 제어부(130)에서는 입력되는 데이터를 먼저 제1버퍼(131)에 둔다. 따라서, 원본 데이터열의 처음 데이터인 la가 제1버퍼(131)에 입력되고 다음 데이터인 22가 제2버퍼(132)에 입력된다. 제1버퍼(131)와 제2버퍼(132)의 값들이 비교기(133)에서 비교된 후 그 결과는 유한 상태 기계(137)와 제1레지스터(134)로 입력된다. 제1레지스터(134)~제3레지스터(136)는 비교기(133)의 출력값을 차례로 래치한 것이며 제1레지스터(134)의 값이 제2레지스터(135)로 순차로 래치된다. 또한, 이러한 레지스터값이 유한 상태 기계(137)에 입력된다. 유한 상태 기계(137)에서는 비교기(133) 출력값과 제1레지스터(134)~제3레지스터(136)의 값을 입력받아 상태를 변경시키면서 위에서 설명한 MRLE 알고리듬에 따라 전송 데이터열을 만든다. 또한, 유한 상태 기계(137) 내에 디코더를 거쳐 버스 인터페이스부(140)로 출력될 버퍼 읽기/쓰기 신호를 출력한다. 완성된 전송 데이터열은 버퍼부(150)로 출력되고 버퍼 인터페이스부(140)의 제어에 따라 버퍼부(150)의 전송 데이터열이 메모리 컨트롤러(200)를 거쳐 목적 메모리 어드레스에 저장된다.Next, the DMA controller 100 reads the original data string from the source memory address through the memory controller 200. The input unit 110 transmits the original data string read in this manner to the control unit 130. The controller 130 first places the input data in the first buffer 131. Accordingly, la, which is the first data of the original data string, is input to the first buffer 131 and 22, which is the next data, is input to the second buffer 132. After the values of the first buffer 131 and the second buffer 132 are compared in the comparator 133, the result is input to the finite state machine 137 and the first register 134. The first register 134 to the third register 136 sequentially latch the output values of the comparator 133, and the values of the first register 134 are sequentially latched to the second register 135. This register value is also input to the finite state machine 137. The finite state machine 137 receives the output value of the comparator 133 and the values of the first register 134 to the third register 136 and changes the state to generate the transmission data string according to the MRLE algorithm described above. Also, a buffer read / write signal to be output to the bus interface unit 140 is output through the decoder in the finite state machine 137. The completed transmission data string is output to the buffer unit 150 and the transmission data string of the buffer unit 150 is stored at the target memory address via the memory controller 200 under the control of the buffer interface unit 140.

도4는 상기 DMA 컨트롤러(100)로 입력되는 원본 데이터열 "1a, 22, 22, 33, 1a, la, la"에 따른 압축 과정상의 내부 상태를 나타낸 상태표이다.4 is a state table showing an internal state in the compression process according to the original data strings " 1a, 22, 22, 33, 1a, la, la " input to the DMA controller 100. FIG.

도4의 상태표에서 fData는 DMA 컨트롤러(100) 제어부(130)의 제1버퍼(131)로 입력되는 원본 데이터열의 첫 1바이트의 데이터이며, ffData는 이전 데이터를 나타낸 제2버퍼(132)의 값으로 fDate가 갱신될 때 이전 fData의 값을 갖는다.In the state table of FIG. 4, fData is data of the first 1 byte of the original data string input to the first buffer 131 of the control unit 130 of the DMA controller 100, and ffData is the data of the second buffer 132 indicating previous data. When fDate is updated with a value, it has the value of the previous fData.

L/M은 내부 버퍼(local buffer)인 버퍼부(150)를 표시한 것이며 EQ는 비교기(133)의 결과로 fData와 ffData가 같은 경우에는 1의 값을 가지며 같지 않을 경우에는 0의 값을 가진다. rEQ는 비교기(133)의 결과로 이전 EQ의 값을 가지는 제1 레지스터(134)의 값이다. rrEQ는 이전 rEQ의 값을 가지는 제2레지스터(135)의 값이며, rrrEQ는 이전 rrEQ의 값을 가지는 제3레지스터(136)의 값이다. rlc는 중복횟수를 나타내는 카운트 값으로 데이터열이 한 번 중복되면 -1의 값을 가지며 3개의 중복된 데이터열이 DMA 컨트롤러(100)의 제어부(130)로 입력된 상태에서는 -2의 값을 갖는다.L / M represents the buffer unit 150, which is an internal buffer, and EQ has a value of 1 if fData and ffData are the same as a result of the comparator 133, and a value of 0 if not equal. . rEQ is the value of the first register 134 having the value of the previous EQ as a result of the comparator 133. rrEQ is the value of the second register 135 having the value of the previous rEQ, and rrrEQ is the value of the third register 136 having the value of the previous rrEQ. rlc is a count value indicating the number of overlaps. When the data string is duplicated once, it has a value of -1, and when the three duplicated data strings are input to the controller 130 of the DMA controller 100, rlc has a value of -2. .

도5는 MRLE 알고리듬을 바탕으로 하는 압축 과정을 나타낸 순서도이다.5 is a flow chart illustrating a compression process based on the MRLE algorithm.

이 발명의 실시예에서는 상기 원본 데이터열인 "1a, 22, 22, 33, 1a, 1a, 1a"의 압축 과정을 도4의 상태표와 도5의 순서도를 사용하여 설명한다.In the embodiment of the present invention, the compression process of the original data string "1a, 22, 22, 33, 1a, 1a, 1a" will be described using the state table of FIG. 4 and the flowchart of FIG.

도5에 나타난 바와 같이 원본 데이터열에서 처음 두 바이트인 1a와 22를 읽어들인다(S500,S510). 이에 따라 도4의 상태표에 나타난 바와 같이 fData와 ffDate는 각기 1a와 22의 값을 갖으며 EQ의 상태값은 두 데이터가 같지 않으므로 0의 값을 갖는다. EQ의 값이 0이므로 상태채크 단계로 넘어가면 rEQ의 값이 0이 된다. 처음 원본 데이터열이 입력되었을 때는 EQ의 값이 0으로 지정되므로 상태채크 단계에서의 rrEQ의 값은 0가된다.As shown in FIG. 5, the first two bytes 1a and 22 are read from the original data string (S500 and S510). Accordingly, as shown in the state table of FIG. 4, fData and ffDate have values of 1a and 22, respectively, and the EQ value has a value of 0 since the two data are not equal. Since the value of the EQ is 0, rEQ becomes 0 when the state check step is reached. When the original data string is first input, the EQ value is set to 0, so the value of rrEQ in the status check step becomes 0.

도5의 순서도에서의 상태채크 단계는 rEQ와 rrEQ와 rrrEQ 그리고 rlc값에 의하여 4가지 단계로 분기된다. 상기 4가지 단계는 다음과 같은 논리식으로 표현될 때 분기된다.The state check step in the flowchart of FIG. 5 is divided into four steps by rEQ, rrEQ, rrrEQ and rlc. The four steps are branched when expressed by the following logical expression.

〔논리식 1〕[Logical expression 1]

① ~rEQ&rrEQ① ~ rEQ & rrEQ

② (rEQ&~rrEQ&rrrEQ)|(rEQ&rrEQ)|(rEQ&~rrEQ&~rrrEQ&(rlc=0))② (rEQ & ~ rrEQ & rrrEQ) | (rEQ & rrEQ) | (rEQ & ~ rrEQ & ~ rrrEQ & (rlc = 0))

③ rEQ&~rrEQ&~rrrEQ&(rlc≠0)③ rEQ & ~ rrEQ & ~ rrrEQ & (rlc ≠ 0)

④ ~rEQ&~rrEQ④ ~ rEQ & ~ rrEQ

예를 들어, rEQ가 1이고 rrEQ와 rrrEQ가 0이고 rlc가 1의 값을 가질 때, 상태채크에 의한 분기는 ③번으로 분기하게 된다.For example, when rEQ is 1, rrEQ and rrrEQ are 0, and rlc has a value of 1, the branch by status check branches to ③.

다음은 원본 데이터열인 "1a, 22, 22, 33, 1a, 1a, 1a"를 예를 들어 압축을 설명한다.The following describes compression by taking the original data string "1a, 22, 22, 33, 1a, 1a, 1a" as an example.

상기 입력된 두 바이트 값인 1a와 22에 의해 rEQ와 rrEQ의 값이 둘다 0이므로 ④번째로 분기된다(S520). 여기서 rlc가 증가되는데(S530), 초기의 rlc값은 0으로 지정되므로 rlc값은 1로 된다. 그리고 나서 rlc값이 최대값인지를 비교한다(S531). 최대값은 내부 버퍼의 크기에 따라 결정되는 값으로 버퍼의 크기가 M+1일 경우에 최대값은 M이 되며 최소값은 -M이 된다. 여기서는 rlc가 최대값이 아니므로 다시 원본데이터열의 다음 바이트인 22를 읽어들인다(S520). 이로써, fData와 ffData값은 각각 22와 22가 되어 비교기에 의해 EQ의 상태가 1로 되며 다음 단계로 넘어 가면서 rEQ의 상태가 1로 된다. 이전 rEQ의 상태와 rrEQ의 상태가 0이었으므로 rrEQ의 상태와 rrrEQ의 상태는 0이 된다.Since the values of rEQ and rrEQ are both 0 by the input two byte values 1a and 22, the fourth branching is performed (S520). Here, rlc is increased (S530), and the initial rlc value is designated as 0, so the rlc value is 1. Then, it is compared whether the rlc value is the maximum value (S531). The maximum value is determined by the size of the internal buffer. When the size of the buffer is M + 1, the maximum value is M and the minimum value is -M. Since rlc is not the maximum value, the next byte 22 of the original data string is read again (S520). Thus, the fData and ffData values are 22 and 22, respectively, so that the state of the EQ is 1 by the comparator, and the state of the rEQ is 1 as the next step proceeds. Since the state of the previous rEQ and the state of rrEQ were 0, the state of rrEQ and rrrEQ becomes 0.

따라서, 이러한 상태에 의해서 상태채크 단계에서는 ③번째로 분기된다(S520).Therefore, by this state, in the state checking step, branching is to the third (S520).

상기 분기에 의하여 rlc의 값인 1과 원본 데이터열이 저장된 내부 버퍼의 어드레스에 의해 지시되는 1a가 메모리에 저장된다(S540,S541). 그리고 rlc는 클리어(clear)되어 0의 값이 되고 다음 데이터를 가리키도록 내부 버퍼의 어드레스는 증가하여 22를 가리키게 된다(S542,S543). 그리고 EQ가 1이므로 rlc는 감소하여 -1의 값을, 내부 버퍼의 어드레스는 증가하여 세 번째 데이터인 22를 가리키고(S550) rlc가 최소값이 아니므로 원본 데이터열의 다음 바이트인 33을 받아들인다(S551,S510).By the branch, 1, which is the value of rlc, and 1a indicated by the address of the internal buffer in which the original data string is stored are stored in the memory (S540, S541). The rlc is cleared to a value of 0, and the address of the internal buffer is increased to point to the next data (22) (S542, S543). And since EQ is 1, rlc decreases to a value of -1, and the address of the internal buffer increases to point to the third data, 22 (S550). Since rlc is not the minimum value, 33 is accepted as the next byte of the original data string (S551). S510).

상태채크 단계에서 fData는 33이고 ffData는 22가 되므로 EQ는 0의 값을 갖게되어 rEQ의 상태는 0이 되며 이전 rEQ의 상태가 1이고 이전 rrEQ의 상태가 0이므로 rrEQ의 상태와 rrrEQ의 상태는 각각 1과 0이 된다. 그러므로 상태채크에 의해 ①번째로 분기한다(S520).In the state chunk phase, fData is 33 and ffData becomes 22, so the EQ has a value of 0, so the state of rEQ is 0, the state of rrEQ and the state of rrrEQ are 1 because the state of previous rEQ is 1 and the state of previous rrEQ is 0. 1 and 0 respectively. Therefore, the first branch by the state check (S520).

rlc값인 -1과 내부 버퍼의 어드레스가 지정하는 22값이 메모리에 저장된다(S552). 그후 rlc는 0이 되며 어드레스는 증가하여 네 번째 데이터인 33을 가리키고(S553) 도5의 순서도에 나타난 바와 같이 ⑤번 상태인가를 판단한다(S554). ⑤번 상태는 다음의 논리식2에 나타난 바와 같다.The rlc value -1 and the 22 value designated by the address of the internal buffer are stored in the memory (S552). After that, rlc becomes 0 and the address increases to point to the fourth data 33 (S553), and it is determined whether the state is ⑤ as shown in the flowchart of FIG. 5 (S554). ⑤ state is as shown in the following logical formula 2.

〔논리식 2〕[Logical formula 2]

⑤ (rEQ & ~rrEQ & rrrEQ)|(rEQ & rrEQ)⑤ (rEQ & ~ rrEQ & rrrEQ) | (rEQ & rrEQ)

상기 판단에 의하면, ⑤번 상태에 해당되지 않으므로 다시 1바이트의 데이터 1a를 받아들이게 된다(S510).According to the determination, since it does not correspond to the state ⑤, the data 1a of 1 byte is received again (S510).

다시 상태채크 단계에서 fData는 1a이고 ffData는 33이 되므로 EQ는 0의 값을 갖게되어 rEQ의 상태는 0이 되며 이전 rEQ의 상태가 0이고 이전 rrEQ의 상태가 1이므로 rrEQ의 상태와 rrrEQ의 상태는 각각 0과 1이 된다. 그러므로 상태채크에 의해 ④번째로 분기한다(S520).In the state check step again, fData is 1a and ffData becomes 33, so the EQ has a value of 0, so the state of rEQ is 0, the state of rrEQ and the state of rrrEQ because the state of previous rEQ is 0 and the state of previous rrEQ is 1. Are 0 and 1 respectively. Therefore, the fourth branch by the state check (S520).

rlc는 증가하여 1이 되며(S530), 최대값 M이 아니면 다시 1바이트를 받아들인다(S531,S510).rlc is incremented to 1 (S530), and if it is not the maximum value M, 1 byte is accepted again (S531 and S510).

상태채크 단계에서 fData는 la이고 ffData는 la가 되므로 EQ는 1의 값을 갖게되어 rEQ의 상태는 1이 되며 이전 rEQ의 상태가 0이고 이전 rrEQ의 상태가 0이므로 rrEQ의 상태와 rrrEQ의 상태는 각각 0과 0이 된다. 그러므로 상태채크에 의해 ③번째로 분기한다(S520)In the state chunk phase, fData is la and ffData becomes la, so the EQ has a value of 1, so the state of rEQ is 1, the state of rrEQ and the state of rrrEQ are 0 because the state of previous rEQ is 0 and the state of previous rrEQ is 0. 0 and 0 respectively. Therefore, the third branch by the state check (S520).

rlc의 값인 1과 내부 버퍼의 어드레스가 가리키는 33은 메모리에 저장된다(S540,S541). 어드레스는 증가하여 1a를 가리키고 rlc는 0이 된다(S542,S543). EQ가 1이므로(S544) 다음 단계에서 rlc는 감소되어 -1이 되고(S550) rlc가 최소값이 아니므로 다시 다음 1바이트인 1a를 읽어들인다(S551,S510).The value 1 of rlc and 33 indicated by the address of the internal buffer are stored in the memory (S540 and S541). The address increases to point 1a and rlc becomes 0 (S542, S543). Since the EQ is 1 (S544), rlc is reduced to -1 in the next step (S550), and since rlc is not the minimum value, the next one byte 1a is read again (S551, S510).

상태채크 단계에서 fData는 1a이고 ffData는 1a가 되므로 EQ는 1의 값을 갖게되어 rEQ의 상태는 1이 되며 이전 rEQ의 상태가 1이고 이전 rrEQ의 상태가 0이므로 rrEQ의 상태와 rrrEQ의 상태는 각각 1과 0이 된다. 그러므로 상태채크에 의해 ②번째로 분기한다(S520).In the state chunk phase, fData is 1a and ffData becomes 1a, so the EQ has a value of 1, so the state of rEQ is 1, the state of rrEQ and the state of rrrEQ are 1 because the state of previous rEQ is 1 and the state of previous rrEQ is 0. 1 and 0 respectively. Therefore, the second branch by the state check (S520).

rlc값은 감소하여 -2의 값을 가지며 어드레스는 증가하여 다음 어드레스인 1a를 가리키게 된다(S550). 원본 데이터열이 모두 출력되었으므로 rlc값과 어드레스가 가리키는 데이터 1a가 최종적으로 메모리에 저장된다(S552~S555).The rlc value decreases to have a value of -2, and the address increases to point to the next address 1a (S550). Since the original data strings are all output, the rlc value and the data 1a indicated by the address are finally stored in the memory (S552 to S555).

이와 같은 과정을 통하여 데이터는 압축된 형태인 1, 1a, -1, 22, -2, 1a가 출력된다.Through this process, data is output in a compressed form of 1, 1a, -1, 22, -2, and 1a.

다음은 압축된 데이터열 "1, 1a, -1, 22, -2, 1a"를 복원하는 과정을 도6의 순서도를 참조로 하여 설명한다.Next, a process of restoring the compressed data strings "1, 1a, -1, 22, -2, 1a" will be described with reference to the flowchart of FIG.

도6에 나타난 바와 같이 원본 데이터열의 처음 rlc값인 1과 데이터 1a를 읽어들인다(S500,S510). 우선 1a의 데이터를 메모리에 쓴 후(S520), rlc값을 0과 비교한다(S530). 도6의 순서도에 의하면 rlc값이 0보다 크므로 다음 단계에서 rlc는 감소된다(S560).As shown in Fig. 6, the first rlc value 1 and data 1a of the original data string are read (S500 and S510). First, data of 1a is written into the memory (S520), and then the rlc value is compared with 0 (S530). According to the flowchart of Fig. 6, since the rlc value is greater than 0, rlc is decreased in the next step (S560).

rlc가 0이고(S570,S580) 원본데이터열이 모두 전송되지 않았으므로(S590) 다시 시작단계로 가서 다음 rlc인 -1과 데이터 22가 읽혀진다(S500,S510). 22는 메모리에 쓰여지고(S520) rlc가 0보다 작으므로 rlc는 증가되어 0이 된다(S540). 증가된 rlc의 값은 0과 같으므로(S550) 다시 22가 메모리에 쓰여져서 결과적으로 중복된 데이터가 복원되어 두 번의 22가 쓰여지게 된다(S520). 비교에 의한 rlc값이 0과 같으므로(S530,S580) 다시 시작단계로 가서 새로운 rlc값인 -2와 1a를 읽어들인다(S590,S500,S510).Since rlc is 0 (S570, S580) and all original data strings have not been transmitted (S590), the process proceeds to the start again and the next rlc -1 and data 22 are read (S500, S510). 22 is written to the memory (S520), and since rlc is less than 0, rlc is increased to 0 (S540). Since the value of the increased rlc is equal to 0 (S550), 22 is written to the memory again, and as a result, duplicate data is restored and two 22 are written (S520). Since the rlc value of the comparison is equal to 0 (S530 and S580), the process returns to the start step and reads the new rlc values -2 and 1a (S590, S500 and S510).

우선, 1a를 메모리에 쓰고(S520) rlc를 증가시키면(S530,S540) rlc는 -1로 0보다 여전히 작으므로(S550) 다시 1a를 메모리에 쓰게 되고(S520) rlc는 증가되어 0이 되므로(S530,S540) 다시 한 번 1a를 쓰면(S520) 원본 데이터열 모두가 출력되었으므로 복원동작이 종료하게 된다(S530,S580,S590).First, if 1a is written to memory (S520) and rlc is increased (S530, S540), rlc is -1 and is still less than 0 (S550), so 1a is written to memory again (S520) and rlc is increased to 0 ( S530 and S540 Write 1a once again (S520), and thus all of the original data strings are output, thereby restoring the operation (S530, S580, and S590).

결과적으로 복원된 데이터는 압축이 되기전의 데이터열인 "1a, 22, 22, 33, 1a, 1a, 1a"가 된다.As a result, the restored data becomes "1a, 22, 22, 33, 1a, 1a, 1a" which are data strings before compression.

이와 같이, 본 발명은 MRLE 알고리듬을 사용하여 DMA 컨트롤러에 압축과 복원기능을 내장한 것으로 MRLE 알고리듬 외에 다양한 압축 알고리듬이 사용될 수 있다.As described above, the present invention incorporates a compression and recovery function in the DMA controller using the MRLE algorithm, and various compression algorithms may be used in addition to the MRLE algorithm.

이상에서 본바와 같이, 본 발명에 의하면 DMA 컨트롤러에 압축과 복원기능을 내장함으로써 소스 메모리 내의 다량의 동일 데이터를 목적 메모리로 전송하는 경우에 DMA 컨트롤러가 버스를 점유하는 시간을 줄여 시스템 성능을 높일 수 있는 효과가 있다.As described above, according to the present invention, the built-in compression and recovery functions of the DMA controller can improve the system performance by reducing the time that the DMA controller occupies the bus when a large amount of the same data in the source memory is transferred to the target memory. It has an effect.

Claims (5)

중앙처리장치와 입출력장치로부터 제어신호와 데이터를 입력받아 압축 혹은 복원하여 전송 데이터열을 출력하는 제어부를 포함하는 직접 메모리 액세스 컨트롤러에서,In the direct memory access controller including a control unit for receiving a control signal and data from the central processing unit and the input and output unit to compress or restore the output data sequence, 상기 중앙처리 장치와 상기 입출력 장치로부터 상기 제어신호와 상기 데이터를 입력받아 압축과 복원동작 중에 하나를 선택하는 1단계와;Receiving a control signal and the data from the central processing unit and the input / output device and selecting one of compression and restoration operations; 상기 중앙처리 장치와 상기 입출력 장치로부터의 상기 데이터 중에서 원본 데이터열의 데이터를 상기 제어부에서 차례로 읽어들여 상기 제어부내의 제1 버퍼와 제2 버퍼에 일시적으로 저장하는 2단계와;A second step of sequentially reading the data of the original data sequence among the data from the central processing unit and the input / output unit by the controller and temporarily storing the data in the first buffer and the second buffer in the controller; 상기 1단계에 의하여 압축 동작이 행해질 경우,When the compression operation is performed by the first step, 상기 제 1버퍼의 데이터와 상기 제 2버퍼의 데이터의 중복 여부를 차례로 검사하여 중복 횟수에 해당하는 데이터와 중복된 한 데이터만을 전송함으로써 압축을 행하는 3단계와;A third step of compressing by sequentially checking whether the data of the first buffer and the data of the second buffer are overlapped and transmitting only the data corresponding to the number of duplicates and one data duplicated; 상기 1단계에 의하여 복원 동작이 행해질 경우,When the restoration operation is performed by the first step, 상기 3단계의 압축과정에 의하여 전송된 상기 중복 횟수에 해당하는 데이터에 의해 중복 횟수만큼 상기 중복된 한 데이터를 반복하여 복원시킴으로써 복원을 행하는 4단계를 포함하여 이루어지는 직접 메모리 액세스 컨트롤러의 압축과 복원방법And compressing and restoring the memory by directly restoring the duplicated data by the number of duplicates by the data corresponding to the number of duplicates transmitted by the three-stage compression process. 제1항에서,In claim 1, 상기 제 3단계는,The third step, 상기 제1 버퍼와 상기 제2 버퍼에 차례로 입력되는 데이터를 비교하여 같을 경우와 같지 않을 경우를 각각 1과 0의 상태값으로 하여 출력하는 10단계와;Comparing the data inputted to the first buffer and the second buffer one by one and outputting a case value of 1 and 0, respectively, if not equal to each other; 상기 10단계에 의하여 차례로 출력되는 상태값을 직접 메모리 액세스 컨트롤러 내부의 제1 레지스터와 제2 레지스터와 제3 레지스터에 시프트(shift)시켜 차례로 저장하는 11단계와;An eleventh step of sequentially shifting the state values sequentially output by the tenth step into a first register, a second register, and a third register in the memory access controller; 상기 제1 레지스터와 제2 레지스터와 제3 레지스터의 상태값에 따라 중복 횟수를 결정하는 12단계를 포함하여 이루어지는 직접 메모리 액세스 컨트롤러의 압축과 복원방법;12. A method of compressing and restoring a direct memory access controller comprising 12 steps of determining a number of overlaps according to state values of the first register, the second register, and the third register; 제1항에서,In claim 1, 상기 제 3단계의 상기 중복 횟수에 해당하는 데이터는,Data corresponding to the number of overlaps of the third step, 상기 제어부내의 카운터에 의해 상기 제1 버퍼와 상기 제 2버퍼로 차례로 들어오는 데이터열이 중복될 때마다 감소되어, 상기 데이터열이 한 번 중복된 경우에는 -1의 값을 가지며 두 번 중복되면 -2가 되는 것을 특징으로 하는 직접 메모리 액세스 컨트롤러의 압축과 복원방법.The counter in the controller is decremented every time the data strings that are sequentially introduced into the first buffer and the second buffer are duplicated. Compression and restoration method of a direct memory access controller, characterized in that the. 제1항에서,In claim 1, 상기 제 3단계에서 상기 중복 횟수에 해당하는 데이터의 최대값과 최소값은,In the third step, the maximum and minimum values of the data corresponding to the number of overlaps are 상기 제어부의 내부버퍼의 크기에 따라 결정되는 값으로 상기 내부버퍼의 크기가 M+1일 경우에 상기 최대값은 M이 되며 상기 최소값은 -M이 되는 것을 특징으로 하는 직접 메모리 액세스 컨트롤러의 압축과 복원방법.The maximum value is M and the minimum value is -M when the size of the internal buffer is M + 1, and the minimum value is -M, which is determined according to the size of the internal buffer of the controller. How to restore. 제 1항에서,In claim 1, 상기 제 4단계에서,In the fourth step, 상기 전송된 중복횟수에 해당하는 데이터는,The data corresponding to the number of duplicates transmitted is 상기 제어부의 내부 버퍼에 상기 중복된 한 데이터를 반복 동작에 의하여 입력시킬 때마다 증가하여 0이 되면, 상기 중복된 한 데이터는 최종적으로 상기 내부 버퍼에 입력되고 복원 동작이 종료되는 것을 특징으로 하는 직접 메모리 액세스 컨트롤러의 압축과 복원방법.Whenever the duplicated data is inputted to the internal buffer of the controller by a repetitive operation and increases to 0, the duplicated data is finally inputted to the internal buffer and the restoration operation ends. How to compress and restore memory access controllers.
KR1019980042699A 1998-10-13 1998-10-13 Method for compressing and restoring direct memory access controller KR20000025559A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980042699A KR20000025559A (en) 1998-10-13 1998-10-13 Method for compressing and restoring direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980042699A KR20000025559A (en) 1998-10-13 1998-10-13 Method for compressing and restoring direct memory access controller

Publications (1)

Publication Number Publication Date
KR20000025559A true KR20000025559A (en) 2000-05-06

Family

ID=19553814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980042699A KR20000025559A (en) 1998-10-13 1998-10-13 Method for compressing and restoring direct memory access controller

Country Status (1)

Country Link
KR (1) KR20000025559A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100388612B1 (en) * 2001-07-25 2003-06-25 엘지전자 주식회사 Method of Compressing Packing In Switching System

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100388612B1 (en) * 2001-07-25 2003-06-25 엘지전자 주식회사 Method of Compressing Packing In Switching System

Similar Documents

Publication Publication Date Title
US8111704B2 (en) Multiple compression techniques for packetized information
US5903230A (en) Apparatus for compressing data using a Lempel-Ziv-type algorithm
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
JP2601979B2 (en) Data transfer control device and operation method of computer system
US5778255A (en) Method and system in a data processing system for decompressing multiple compressed bytes in a single machine cycle
US5408627A (en) Configurable multiport memory interface
US5805086A (en) Method and system for compressing data that facilitates high-speed data decompression
US5687393A (en) System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters
JPH03105789A (en) Semiconductor memory device
EP1141837A1 (en) Flexible memory channel
JPS62230164A (en) Degital signal coding/decoding circuit
US5895496A (en) System for an method of efficiently controlling memory accesses in a multiprocessor computer system
JPH04267630A (en) Data compression device and data restoration device
US5864716A (en) Tagged data compression for parallel port interface
KR20000025559A (en) Method for compressing and restoring direct memory access controller
JP3096576B2 (en) Memory control circuit and integrated circuit device incorporating the circuit
KR20000014522A (en) Direct memory access controller having a compression function
JPH0482082A (en) Semiconductor memory device
EP0382342B1 (en) Computer system DMA transfer
JPH09185882A (en) First-in first-out memory device with different size of input output data and its method
JPH05189360A (en) Data transfer and storage system
KR950003884B1 (en) Personal computer bus interface circuit
KR100606698B1 (en) Interfacing apparatus
JPS59112327A (en) Controlling method of ring buffer
KR100362188B1 (en) Dram emulation device

Legal Events

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