KR19990075990A - Data processing systems - Google Patents

Data processing systems Download PDF

Info

Publication number
KR19990075990A
KR19990075990A KR1019980010575A KR19980010575A KR19990075990A KR 19990075990 A KR19990075990 A KR 19990075990A KR 1019980010575 A KR1019980010575 A KR 1019980010575A KR 19980010575 A KR19980010575 A KR 19980010575A KR 19990075990 A KR19990075990 A KR 19990075990A
Authority
KR
South Korea
Prior art keywords
data
fifo
virtual
host cpu
dma controller
Prior art date
Application number
KR1019980010575A
Other languages
Korean (ko)
Other versions
KR100308113B1 (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 KR1019980010575A priority Critical patent/KR100308113B1/en
Publication of KR19990075990A publication Critical patent/KR19990075990A/en
Application granted granted Critical
Publication of KR100308113B1 publication Critical patent/KR100308113B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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)

Abstract

다수의 가상 FIFO를 지원하는 데이터 처리 시스템에 관한 것으로서, 특히 다수개의 가상 FIFO를 구비한 메인 메모리와, 각각의 태스크들을 메인 메모리에 저장한 후 이를 바탕으로 처리가 완료된 데이터를 상기 메인 메모리 내의 가상 FIFO에 저장하는 호스트 CPU와, 호스트 CPU에서 읽은 각 가상 FIFO의 상태 및 데이터 길이등을 검사하여 데이터 라이트가 완료된 가상 FIFO로부터 데이터를 리드하여 상기 실제 데이터 FIFO로 전송하는 DMA 제어기와, 메인 메모리로부터 리드한 데이터를 상기 DMA 제어기를 통해 입력받아 주변 기기에 DMA 방식으로 전송함과 동시에 자신의 작업 상태를 상기 DMA 제어기에 제공하는 실제 데이터 FIFO로 구성되어, 가상 FIFO의 시작 어드레스와 유효 데이터의 시작 어드레스를 항상 일치시킴으로 인하여 데이터 길이값만으로 FIFO의 제어가 가능하도록 하면서 각 가상 FIFO를 사용하는데에 있어 호스트 CPU와 DMA 제어기간의 신호변경을 위한 레지스터를 두어 작업의 전환을 위한 상태 검사를 용이하게 해 작업의 전환이 발생할 경우 대기타임(latency)를 최소화할 수 있으며 간단한 DMA 제어기로 FIFO 제어가 가능한 잇점이 있다.The present invention relates to a data processing system that supports a plurality of virtual FIFOs, and more particularly, a main memory having a plurality of virtual FIFOs, and a plurality of virtual FIFOs in the main memory, based on the stored data after the tasks are stored in the main memory. A DMA controller that reads data from the host CPU stored in the host CPU, the state and data length of each virtual FIFO read from the host CPU, and transfers the data from the virtual FIFO where data writing is completed to the actual data FIFO, and from the main memory. It consists of a real data FIFO that receives data through the DMA controller and transmits it to a peripheral device in a DMA manner and provides its working status to the DMA controller, so that the start address of the virtual FIFO and the start address of valid data are always available. Due to the coincidence, the control of the FIFO is only possible with the data length value. In order to use each virtual FIFO, there is a register for changing the signal between the host CPU and the DMA controller to facilitate the status check for the switching of tasks, which minimizes the latency when the switching of tasks occurs. It is possible to control FIFO with simple DMA controller.

Description

데이터 처리 시스템Data processing systems

본 발명은 다수의 가상(Virtual) 선입선출 메모리(First In First Output Memoy ; 이하, FIFO라 칭함.)를 지원하는 데이터 처리 시스템에 관한 것으로서, 특히 호스트 CPU가 DMA(Direct Memory Access) 방식의 데이터 전송을 지원하는 복수의 주변기기를 제어할 경우 사용되는 데이터 FIFO의 처리를 위한 데이터 처리 시스템에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing system that supports a plurality of first in first output memory (hereinafter referred to as FIFO). In particular, a host CPU transfers data in a direct memory access (DMA) manner. The present invention relates to a data processing system for processing data FIFOs used when controlling a plurality of peripheral devices.

도 1은 종래의 데이터 처리 시스템의 구성 블록도로서, 주 작업을 수행하는 호스트 CPU(또는 제어기)(101)는 시스템의 메인 메모리(102) 내에 존재하는 가상 FIFO들의 내용과 각 가상 FIFO의 제어 신호들을 관장하며 또한, DMA 제어기(103)에 제어 신호를 보내고 DMA 제어기(103)로부터 DMA 상태(status)나 인터럽트(interrupt)를 받아들인다.1 is a block diagram of a conventional data processing system, in which a host CPU (or controller) 101 performing main operations is configured with contents of virtual FIFOs in the main memory 102 of the system and control signals of each virtual FIFO. And control signals to the DMA controller 103 and receive DMA status or interrupts from the DMA controller 103.

상기 DMA 제어기(103)는 호스트 CPU(101)로부터 받은 제어 신호와 시스템 메모리(102)에서 읽은 가상 FIFO의 제어 신호들에 의하여 데이터 FIFO 즉, 실제 FIFO(104)를 제어한다. 상기 실제 FIFO(104)는 시스템 메모리(102)에서 전송되는 데이터를 읽어 주변 기기에 제공하며, 동시에 DMA 제어기(103)로도 전송 데이터를 출력하여 전송 데이터를 검사한다.The DMA controller 103 controls the data FIFO, that is, the actual FIFO 104 by the control signal received from the host CPU 101 and the control signals of the virtual FIFO read from the system memory 102. The actual FIFO 104 reads the data transmitted from the system memory 102 to the peripheral device, and simultaneously outputs the transmission data to the DMA controller 103 to check the transmission data.

여기서, 시스템 메모리(102)의 각 가상 FIFO는 도 2와 같이 구성되는데, 도 2a는 랩(Wrap)이 일어나지 않은 경우의 가상 FIFO이고, 도 2b는 랩이 일어난 경우의 가상 FIFO의 구성으로서, 데이터의 시작 어드레스와 끝 어드레스가 서로 반대가 된다.Here, each virtual FIFO of the system memory 102 is configured as shown in FIG. 2, where FIG. 2A is a virtual FIFO when no wrap occurs, and FIG. 2B is a configuration of a virtual FIFO when a wrap occurs. Start address and end address are reversed.

도 2를 보면, 가상 FIFO로 사용되는 시스템 메모리(102)의 일부에 유효 데이터가 들어있고 유효 데이터의 시작과 끝을 나타내는 주소를 저장하는 두 어드레스 포인터(201,202)가 있다.2, there are two address pointers 201 and 202 that contain valid data in a portion of system memory 102 that is used as a virtual FIFO and store addresses indicating the beginning and end of valid data.

즉, 상기 시스템 메모리(102)는 가상 FIFO라고 하는 다수의 큐(queue)들을 가지고 있다. 동작 설명을 위해 세 개의 가상 FIFO를 사용하는 경우를 예로 들기로 한다.That is, the system memory 102 has a number of queues called virtual FIFOs. As an example, three virtual FIFOs are used to describe the operation.

이때, 가상 FIFO는 주변 기기를 구동하기 위하여 사용되며, 실제 전송은 메인 메모리(102)의 가상 FIFO로부터 실제 FIFO(104)를 거쳐 일어난다.In this case, the virtual FIFO is used to drive the peripheral device, and the actual transmission occurs from the virtual FIFO of the main memory 102 via the actual FIFO 104.

여기서, DMA 제어기(103)는 주변 부 시스템의 일부로서, 내부 처리 기능이 있을수도 있고, 없을 수도 있는데 이는 호스트 CPU(101)의 프로그램(소프트웨어 또는 펌웨어)에 의해 제어된다. 실제 FIFO(104) 역시 주변 부 시스템의 일부로서 구현된다. 그리고, 다수의 가상 FIFO를 사용하지만 실제 전송이 일어나는 것은 한 순간에 하나의 가상 FIFO이다.Here, the DMA controller 103 may or may not have an internal processing function as part of the peripheral subsystem, which is controlled by a program (software or firmware) of the host CPU 101. The actual FIFO 104 is also implemented as part of the peripheral subsystem. And while using multiple virtual FIFOs, it is only one virtual FIFO at a time that the actual transmission takes place.

즉, 호스트 CPU(101)에 의하여 시스템 메모리(102)에서 필요한 가상 FIFO가 선택되고 이를 위한 제어 신호가 호스트 CPU(10)로부터 DMA 제어기(103)로 출력하면, DMA 제어기(103)는 호스트 CPU(101)로부터 받은 제어 신호를 이용하여 시스템 메모리(102)에서 가상 FIFO의 제어 신호를 읽은 후 해당 가상 FIFO의 내용을 시작 어드레스로부터 읽어들여 실제 FIFO(104)를 거쳐 주변 기기로 전송시킨다.That is, when the virtual FIFO required in the system memory 102 is selected by the host CPU 101, and a control signal for this is output from the host CPU 10 to the DMA controller 103, the DMA controller 103 generates a host CPU ( After reading the control signal of the virtual FIFO in the system memory 102 using the control signal received from 101), the contents of the virtual FIFO are read from the start address and transmitted to the peripheral device via the actual FIFO 104.

이때, 시작 어드레스와 끝 어드레스는 주변기기 역시 같은 값을 가지고 있어서 작업의 전환이 발생할 경우 FIFO를 비워두기 위한 부가의 작업에 사용할 수 있게 한다.At this time, the start address and the end address have the same value so that the peripheral device can be used for additional work to leave the FIFO empty when a task change occurs.

그러나, 상기된 종래의 데이터 처리 시스템은 다음과 같은 문제점이 있다.However, the conventional data processing system described above has the following problems.

첫째, 작업의 전환이 발생할 경우 실제 FIFO를 비워두기 위한 부가의 작업이 필요하며 전환된 작업에서의 상당한 지연 시간이 발생된다.First, when a switchover occurs, additional work is required to leave the actual FIFOs empty, resulting in significant delays in the switched tasks.

둘째, 주변 기기와 시스템 메모리가 시작 및 끝 어드레스를 같은 값으로 유지해야 하는데 이의 제어가 상당히 곤란하다.Second, the peripheral and system memory must keep the start and end addresses at the same value, which is very difficult to control.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 호스트 CPU가 DMA 방식의 데이터 전송을 지원하는 복수의 주변기기를 제어할 경우 데이터 FIFO가 사용되는데 하나의 실제 FIFO만을 사용하고 나머지 작업은 메모리 내에 존재하는 가상의 FIFO를 사용하도록 함으로써, 데이터의 전송을 간단하고 효율적으로 하는 데이터 처리 시스템을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to use a data FIFO when the host CPU controls a plurality of peripheral devices supporting DMA data transmission. By providing a virtual FIFO existing in the memory, to provide a data processing system that makes the transfer of data simple and efficient.

도 1은 종래의 데이터 처리 시스템의 구성 블록도1 is a block diagram of a conventional data processing system

도 2a는 도 1에서 랩(wrap)이 일어나지 않은 경우의 가상 FIFO의 상세 블록도FIG. 2A is a detailed block diagram of the virtual FIFO when no wrap occurs in FIG.

도 2b는 도 1에서 랩(wrap)이 발생한 경우의 가상 FIFO의 상세 블록도FIG. 2B is a detailed block diagram of a virtual FIFO when a wrap occurs in FIG. 1. FIG.

도 3은 본 발명에 따른 데이터 처리 시스템의 구성 블록도3 is a block diagram of a data processing system according to the present invention;

도 4는 도 3의 가상 FIFO의 상세 블록도4 is a detailed block diagram of the virtual FIFO of FIG.

도 5는 도 3의 DMA 제어기의 상세 블록도5 is a detailed block diagram of the DMA controller of FIG.

도 6은 본 발명에 따른 데이터 처리 시스템의 다른 실시예를 나타낸 구성 블록도6 is a block diagram showing another embodiment of a data processing system according to the present invention;

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

301 : 호스트 CPU(또는 제어기) 302 : DMA 제어기301: host CPU (or controller) 302: DMA controller

303 : 실제 FIFO 304 : 시스템 메모리303: real FIFO 304: system memory

313 : 시스템 메모리 내의 가상 FIFO313: Virtual FIFO in System Memory

401 : 상태 레지스터 402 : 데이터 길이 레지스터401: status register 402: data length register

403 : 현재 어드레스 포인터 501 : 제어부403: current address pointer 501: control unit

502 : 시작 어드레스 레지스터 503 : DMA 제어 레지스터502: start address register 503: DMA control register

504 : DMA 상태 레지스터 505 : V-FIFO 상태 레지스터504: DMA status register 505: V-FIFO status register

506 : 데이터 길이 레지스터 507 : 현재 어드레스 레지스터506 data length register 507 current address register

상기와 같은 목적을 달성하기 위한 본 발명에 따른 데이터 처리 시스템의 특징은, 다수개의 가상 FIFO를 구비한 메인 메모리와, 각각의 태스크들을 메인 메모리에 저장한 후 이를 바탕으로 처리가 완료된 데이터를 상기 메인 메모리 내의 가상 FIFO에 저장하는 호스트 FIFO와, 상기 호스트 CPU의 제어에 의해 호스트 CPU에서 읽은 각 가상 FIFO의 상태 및 데이터 길이등을 검사하여 데이터 라이트가 완료된 가상 FIFO로부터 데이터를 리드하여 상기 실제 데이터 FIFO로 전송하는 DMA 제어기와, 메인 메모리로부터 리드한 데이터를 상기 DMA 제어기를 통해 입력받아 주변 기기에 DMA 방식으로 전송함과 동시에 자신의 작업 상태를 상기 DMA 제어기에 제공 실제 데이터 FIFO로 구성되는데 있다.A feature of the data processing system according to the present invention for achieving the above object is, the main memory having a plurality of virtual FIFO, and after storing the respective tasks in the main memory based on the processed data based on the main The host FIFO stored in the virtual FIFO in the memory and the state and data length of each virtual FIFO read from the host CPU under the control of the host CPU are read, and data is read from the virtual FIFO where data writing is completed to the actual data FIFO. The DMA controller transmits data received from the main memory through the DMA controller, transfers the data to the peripheral device in a DMA manner, and provides its working status to the DMA controller.

본 발명에 따른 데이터 처리 시스템의 다른 특징은, 다수개의 가상 FIFO를 구비한 메인 메모리와, 메인 메모리 내의 가상 FIFO들의 내용과 각 가상 FIFO의 제어 신호들을 관리하는 호스트 CPU와, 호스트 CPU의 제어에 의해 호스트 CPU에서 읽은 가상 FIFO의 상태 및 데이터 길이등을 검사하고 그 결과에 따라 상기 실제 데이터 FIFO를 제어하는 DMA 제어기와, 주변 기기로부터 받아들인 전송 데이터를 메인 메모리 내의 가상 FIFO에 저장함과 동시에 자신의 작업 상태를 상기 DMA 제어기에 제공하는 실제 데이터 FIFO로 구성되는데 있다.Another feature of the data processing system according to the present invention is a main memory having a plurality of virtual FIFOs, a host CPU which manages the contents of the virtual FIFOs in the main memory and control signals of each virtual FIFO, and under the control of the host CPU. It checks the status and data length of the virtual FIFO read from the host CPU and controls the actual data FIFO according to the result, and saves the transmission data received from the peripheral device in the virtual FIFO in the main memory and at the same time performs its own work. It consists of an actual data FIFO that provides status to the DMA controller.

이러한 데이터 처리 방법에 의해 작업의 전환을 위한 상태 검사를 용이하게 해 작업의 전환이 발생할 경우 대기타임(latency)를 최소화할 수 있으며 간단한 DMA 제어기로 FIFO 제어를 할 수 있게된다.This data processing method facilitates status checking for job switching, minimizing latency when job switching occurs, and enables FIFO control with a simple DMA controller.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

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

도 3은 본 발명에 따른 데이터 처리 시스템의 구성 블록도로서, 호스트 CPU(또는 제어기)(301), DMA 제어기(302), 실제 FIFO(303), 및 시스템 메모리(304)로 구성된다.3 is a block diagram of a data processing system according to the present invention, which is composed of a host CPU (or controller) 301, a DMA controller 302, an actual FIFO 303, and a system memory 304.

상기 호스트 CPU(301)는 호스트 데이터 버스를 통해 시스템의 메인 메모리(304) 내에 존재하는 가상 FIFO들(313)의 내용과 각 가상 FIFO의 제어 신호들(312)을 관장하며, 또한 상기 DMA 제어기(302)에 제어 신호(Ctrl)를 보내고 DMA 제어기(302)로부터 상태(Stat)나 인터럽트(Int.)를 받아들이는 등의 주 작업을 수행한다. 상기 DMA 제어기(302)는 상기 호스트 CPU(301)로부터 받은 제어 신호와 시스템 메모리(304)로부터 가상 FIFO의 상태 신호 및 데이터의 길이등을 DMA 데이터 버스를 통해 읽어와 실제 FIFO(303)를 제어하고, 실제 FIFO(303)는 상기 시스템 메모리(304)에서 읽은 전송 데이터를 주변 기기로 전송함과 동시에 DMA 제어기(302)에 자신의 작업 상태(stat)를 전송한다. 이때, 호스트 CPU(301)의 라이트 데이터는 호스트 데이터 버스를 통해 메인 메모리(304)로 입력된다.The host CPU 301 manages the contents of the virtual FIFOs 313 and the control signals 312 of each virtual FIFO present in the main memory 304 of the system via a host data bus, and also controls the DMA controller ( The control signal Ctrl is sent to the 302, and the main operation such as receiving a status Stat or an interrupt Int. From the DMA controller 302 is performed. The DMA controller 302 reads the control signal received from the host CPU 301, the status signal of the virtual FIFO and the length of data from the system memory 304 through the DMA data bus, and controls the actual FIFO 303. In addition, the actual FIFO 303 transmits the transmission data read from the system memory 304 to the peripheral device and transmits its operation status to the DMA controller 302. At this time, the write data of the host CPU 301 is input to the main memory 304 through the host data bus.

여기서, 상기 시스템 메모리(304)의 각 가상 FIFO의 구성은 도 4와 같다.Here, the configuration of each virtual FIFO of the system memory 304 is as shown in FIG.

도 4를 보면, 가상 FIFO(313)로 사용되는 시스템 메모리(304)의 일부에 유효 데이터가 들어있고 유효 데이터의 시작은 항상 가상 FIFO(313)의 시작과 일치하며, 끝을 나타내는 주소를 저장하는 데이터 길이 레지스터(402)와 현재의 데이터 어드레스를 나타내는 어드레스 포인터(403)가 있으며, 리드/라이트, 억세스 기능, 그리고 홀트(halt)등의 정보를 저장하는 상태 레지스터(401)로 구성된다.4, part of the system memory 304 used as the virtual FIFO 313 contains valid data and the beginning of the valid data always coincides with the beginning of the virtual FIFO 313 and stores an address indicating the end. There is a data length register 402 and an address pointer 403 indicating the current data address, and is composed of a status register 401 for storing information such as read / write, access function, and halt.

도 5는 DMA 제어기(302)의 구성 블록도로서, 자신의 상태를 저장하고 자신의 상태와 자신의 상태에 따른 인터럽트 신호를 출력하는 상태 레지스터(504), 가상 FIFO(313)의 상태를 파악하기 위한 V-FIFO 상태 레지스터(505), 호스트 CPU(301)로부터 제공받은 제어 신호와 데이터의 시작 포인터를 각각 저장하는 DMA 제어 레지스터(503), 시작 어드레스(502), 가상 FIFO(313)로부터 읽어들인 데이터의 길이를 저장하는 데이터 길이 레지스터(506), DMA 제어기(302)에서 만들어진 리드 주소를 저장하는 현재 어드레스 레지스터(507), 및 이러한 레지스터들을 총괄하고 실제 FIFO(303)를 제어하는 제어부(501)로 구성된다.FIG. 5 is a block diagram illustrating the configuration of the DMA controller 302. The state register 504, which stores its state and outputs an interrupt signal according to its state and the state thereof, is identified. Read from the V-FIFO status register 505, the DMA control register 503 for storing the control signal provided from the host CPU 301 and the start pointer of the data, the start address 502, and the virtual FIFO 313, respectively. A data length register 506 which stores the length of the data, a current address register 507 which stores the read address created in the DMA controller 302, and a controller 501 which collectively controls these registers and controls the actual FIFO 303. It consists of.

이와같이 구성된 본 발명에서 주 작업을 수행하는 호스트 CPU(또는 제어기)(301)는 각각의 태스크(Task)들을 시스템 메모리(304)에 저장해 둔다.In the present invention configured as described above, the host CPU (or controller) 301 performing the main task stores the respective tasks in the system memory 304.

여기에는 전송할 데이터의 시작 포인터 정보(즉, 실제 어드레스일 수도 있고 실제 어드레스를 계산할 수 있는 다른 정보일 수도 있음.), 데이터의 길이(수행할 작업 전체에 해당함.), 주변 장치 정보, 현 상태등이 저장된다. 이를 바탕으로 호스트 CPU(301)는 처리가 완료된 데이터를 시스템 메모리(304)의 가상 FIFO(313)에 저장한다.This includes the starting pointer information of the data to be sent (that is, it can be a real address or other information that can calculate a real address), the length of the data (which covers the entire task to be performed), peripheral information, current status, etc. Is stored. Based on this, the host CPU 301 stores the processed data in the virtual FIFO 313 of the system memory 304.

저장하는 방식은 다음과 같다.How to save is as follows.

즉, 가상 FIFO(313)의 상태 레지스터(401)를 읽어 이를 분석하는데, 이의 상태는 다음과 같이 구분된다.That is, the status register 401 of the virtual FIFO 313 is read and analyzed, and its status is divided as follows.

1. FIFO 라이트 가능 : FIFO 빈 상태이며, DMA 제어기(302)가 사용하지 않 음.1. FIFO write enabled: FIFO empty, not used by DMA controller 302.

2. FIFO 리드 가능 : FIFO 빈 상태가 아니며, 호스트 CPU(301)가 사용하지 않음.2. FIFO Readable: The FIFO is not empty and is not used by the host CPU 301.

3. FIFO 라이트 중 : FIFO를 호스트 CPU(301)가 사용하고 있음.3. Writing FIFO: The host CPU 301 is using the FIFO.

4. FIFO 리드 중 : FIFO를 DMA 제어기(302)가 사용하고 있음.4. Reading FIFO: The FIFO is being used by the DMA controller 302.

그리고, 해당 태스크에 의한 이전 출력 데이터가 모두 전송이 되었는지를 검사한다. 이는 상태 레지스터의 라이트 가능 모드를 검사하여 셋트되어 있으면 이전 데이터가 모두 전송이 되었음을 의미하게 된다. 이전 출력 데이터가 모두 전송되었으면 해당 가상 FIFO는 비어있게 되고 해당 가상 FIFO가 비어있음이 판단되면 호스트 CPU(301)는 상태 레지스터(401)의 리드 가능 비트는 리셋, 라이트 가능 비트는 셋트시킨 후 생성된 새로운 데이터를 그 영역에 라이트한다. 이 경우 시작 어드레스는 항상 가상 FIFO의 시작 어드레스와 일치된다. 데이터를 다 라이트한 후에는 데이터 길이 레지스터(402)는 라이트된 데이터의 길이를 저장하고 상태 레지스터(401)는 리드 가능 모드에 있게 된다.Then, it is checked whether all previous output data by the task has been transmitted. This means that if the status register is set by checking the writeable mode, all previous data has been transferred. If all of the previous output data has been transmitted, the virtual FIFO becomes empty and if it is determined that the virtual FIFO is empty, the host CPU 301 generates the readable bit of the status register 401 and resets the writeable bit. Write new data to the area. In this case, the start address always matches the start address of the virtual FIFO. After the data has been written out, the data length register 402 stores the length of the written data and the status register 401 is in a readable mode.

이때, 상기 DMA 제어기(302)는 기 정의된 순서에 의하여 각 가상 FIFO를 리드하게 되는데 우선 가상 FIFO의 상태 레지스터(401)를 검사하여 리드 가능 모드인지를 알아낸다. 만일 이 비트가 리셋 상태이면 기 정의된 순서에 따라 다음 가상 FIFO를 읽는다. 만일 이 비트가 셋트 상태이면 이는 해당 FIFO에 데이터 라이트가 완료되었음을 나타내므로, 이때 DMA 제어기(302)는 그 가상 FIFO로부터 데이터를 리드한 후 실제 FIFO(303)를 거쳐 주변 장치로 데이터를 전송한다.At this time, the DMA controller 302 reads each virtual FIFO in a predefined order. First, the DMA controller 302 checks the status register 401 of the virtual FIFO to find out whether it is in a readable mode. If this bit is in the reset state, the next virtual FIFO is read in the predefined order. If this bit is set, this indicates that data write is completed to the FIFO. At this time, the DMA controller 302 reads data from the virtual FIFO and then transmits the data to the peripheral device via the actual FIFO 303.

이를 위해 먼저, 상태 레지스터(401)의 라이트 가능 비트는 리셋, 리드 가능 비트는 셋트시킨 후 데이터 길이 레지스터(402)를 읽어 가상 FIFO의 시작 어드레스로부터 데이터 길이만큼의 데이터를 실제 FIFO(303)로 이동시킨다.To do this, first, the writeable bit of the status register 401 is reset, the writeable bit is set, and then the data length register 402 is read to move data of the data length from the start address of the virtual FIFO to the actual FIFO 303. Let's do it.

그리고, 데이터를 다 리드한 후에는 데이터 길이 레지스터(402)는 클리어되고 상태 레지스터(401)는 라이트 가능 모드에 있게된다.After the data has been read, the data length register 402 is cleared and the status register 401 is in the writeable mode.

실제 FIFO(303)는 시스템 메모리(304)에서 읽어들인 데이터를 주변 기기에 DMA 방식으로 전송하며, 작업중인지, 작업이 완료되었는지의 상태를 DMA 제어기(302)에 전달한다.The actual FIFO 303 transfers the data read from the system memory 304 to the peripheral device in a DMA manner, and transmits a status of whether the operation is completed or completed to the DMA controller 302.

도 6은 본 발명의 다른 실시예로서, 양방향 DMA 통신인 경우에도 적용할 수 있음을 보여준다. 즉, 실제 FIFO(303)는 주변 기기로부터 입력되는 데이터를 호스트 CPU(301)와 DMA 제어기(302)에 의해 시스템 메모리(304) 내의 가상 FIFO에 라이트하고 리드할 수 있다.6 shows that another embodiment of the present invention can be applied to a bidirectional DMA communication. That is, the actual FIFO 303 may write and read data input from the peripheral device to the virtual FIFO in the system memory 304 by the host CPU 301 and the DMA controller 302.

이와 같이 본 발명은 호스트 CPU가 DMA 방식의 데이터 전송을 지원하는 복수의 주변기기를 제어할 경우 하나의 실제 데이터 FIFO만을 사용하고 나머지 작업은 메모리 내에 존재하는 가상의 FIFO를 사용하도록 함으로써, 다수의 작업이 병렬적으로 수행되는 제어기에 적합하다.As such, when the host CPU controls a plurality of peripheral devices that support DMA data transfer, only one actual data FIFO is used and the remaining operations use virtual FIFOs existing in memory. Suitable for controllers that run in parallel.

이상에서와 같이 본 발명에 따른 데이터 처리 시스템에 의하면, 가상 FIFO의 시작 어드레스와 유효 데이터의 시작 어드레스를 항상 일치시킴으로 인하여 데이터 길이값만으로 FIFO의 제어가 가능하도록 하였다. 또한, 각 가상 FIFO를 사용하는데에 있어 호스트 CPU와 DMA 제어기간의 신호변경(handshaking)을 위한 레지스터를 두어 작업의 전환을 위한 상태 검사를 용이하게 해 작업의 전환이 발생할 경우 대기타임(latency)를 최소화할 수 있으며 간단한 DMA 제어기로 FIFO 제어가 가능한 잇점이 있다.As described above, according to the data processing system of the present invention, since the start address of the virtual FIFO and the start address of the valid data are always matched, the FIFO can be controlled only by the data length value. In addition, in using each virtual FIFO, a register for handling handshaking between the host CPU and the DMA controller facilitates the status check for the switching of tasks. The advantage is that it can be minimized and FIFO control is possible with a simple DMA controller.

Claims (5)

주 작업을 수행하는 호스트 CPU, 주변 기기로 데이터를 전송하는 실제 데이터 FIFO, 상기 호스트 CPU의 제어에 따라 상기 실제 FIFO를 제어하는 DMA 제어기, 다수개의 가상 FIFO를 구비한 메인 메모리로 이루어진 데이터 처리 시스템에 있어서,A data processing system comprising a host CPU performing main operations, an actual data FIFO transmitting data to peripheral devices, a DMA controller controlling the actual FIFO under control of the host CPU, and a main memory having a plurality of virtual FIFOs. In 상기 호스트 CPU는 각각의 태스크들을 메인 메모리에 저장한 후 이를 바탕으로 처리가 완료된 데이터를 상기 메인 메모리 내의 가상 FIFO에 저장하고,The host CPU stores the respective tasks in the main memory and stores the processed data in the virtual FIFO in the main memory based on the tasks. 상기 DMA 제어기는 호스트 CPU의 제어에 의해 호스트 CPU에서 읽은 각 가상 FIFO의 상태 및 데이터 길이등을 검사하여 데이터 라이트가 완료된 가상 FIFO로부터 데이터를 리드하여 상기 실제 데이터 FIFO로 전송하며,The DMA controller checks the state and data length of each virtual FIFO read from the host CPU under the control of the host CPU, reads data from the virtual FIFO where data writing is completed, and transmits the data to the actual data FIFO. 상기 실제 데이터 FIFO는 메인 메모리로부터 리드한 데이터를 상기 DMA 제어기를 통해 입력받아 주변 기기에 DMA 방식으로 전송함과 동시에 자신의 작업 상태를 상기 DMA 제어기에 제공함을 특징으로 하는 데이터 처리 시스템.And the actual data FIFO receives data read from the main memory through the DMA controller and transmits the data to the peripheral device in a DMA manner and provides its working status to the DMA controller. 제 1 항에 있어서,The method of claim 1, 상기 가상 FIFO로 사용되는 메인 메모리의 일부에 유효 데이터가 들어있고 유효 데이터의 시작 어드레스는 항상 가상 FIFO의 시작 어드레스와 일치함을 특징으로 하는 데이터 처리 시스템.And a portion of main memory used as the virtual FIFO contains valid data, and the start address of the valid data always matches the start address of the virtual FIFO. 제 1 항에 있어서, 상기 가상 FIFO는The method of claim 1 wherein the virtual FIFO is 유효 데이터의 끝을 나타내는 어드레스를 저장하는 데이터 길이 레지스터와,A data length register for storing an address indicating the end of valid data; 현재의 데이터 어드레스를 나타내는 어드레스 포인터와,An address pointer indicating the current data address, 리드/라이트, 억세스 기능, 그리고 홀트등의 정보를 저장하는 상태 레지스터로 구성됨을 특징으로 하는 데이터 처리 시스템.A data processing system comprising a status register for storing information such as read / write, access function, and holt. 제 1 항에 있어서, 상기 DMA 제어기는,The method of claim 1, wherein the DMA controller, 자신의 상태를 저장하는 상태 레지스터와,A state register that stores its state, 가상 FIFO의 상태를 파악하기 위한 V-FIFO 상태 레지스터와,A V-FIFO status register to determine the status of the virtual FIFO, 상기 호스트 CPU로부터 제공받은 제어 신호를 저장하는 제어 레지스터와,A control register for storing a control signal provided from the host CPU; 상기 호스트 CPU로부터 제공받은 데이터의 시작 포인터를 저장하는 시작 어드레스 레지스터와,A start address register for storing a start pointer of data received from the host CPU; 상기 가상 FIFO로부터 읽어들인 데이터의 길이를 저장하는 데이터 길이 레지스터와,A data length register for storing a length of data read from the virtual FIFO; 상기 DMA 제어기에서 만들어진 리드 주소를 저장하는 현재 어드레스 레지스터와,A current address register for storing a read address created in the DMA controller; 상기된 레지스터들과 실제 데이터 FIFO를 제어하는 제어부로 구성됨을 특징으로 하는 데이터 처리 시스템.And a control unit for controlling the registers and the actual data FIFO. 주 작업을 수행하는 호스트 CPU, 주변 기기로 데이터를 전송하는 실제 데이터 FIFO, 상기 호스트 CPU의 제어에 따라 상기 실제 FIFO를 제어하는 DMA 제어기, 다수개의 가상 FIFO를 구비한 메인 메모리로 이루어진 데이터 처리 시스템에 있어서,A data processing system comprising a host CPU performing main operations, an actual data FIFO transmitting data to peripheral devices, a DMA controller controlling the actual FIFO under control of the host CPU, and a main memory having a plurality of virtual FIFOs. In 상기 호스트 CPU는 메인 메모리 내의 가상 FIFO들의 내용과 각 가상 FIFO의 제어 신호들을 관리하고,The host CPU manages the contents of the virtual FIFOs in the main memory and the control signals of each virtual FIFO, 상기 DMA 제어기는 호스트 CPU의 제어에 의해 호스트 CPU에서 읽은 가상 FIFO의 상태 및 데이터 길이등을 검사하고 그 결과에 따라 상기 실제 데이터 FIFO를 제어하며,The DMA controller checks the state and data length of the virtual FIFO read from the host CPU under the control of the host CPU, and controls the actual data FIFO according to the result. 상기 실제 데이터 FIFO는 주변 기기로부터 받아들인 전송 데이터를 메인 메모리 내의 가상 FIFO에 저장함과 동시에 자신의 작업 상태를 상기 DMA 제어기에 제공함을 특징으로 하는 데이터 처리 시스템.And the actual data FIFO stores its transmission data received from a peripheral device in a virtual FIFO in main memory and provides its working status to the DMA controller.
KR1019980010575A 1998-03-26 1998-03-26 Data processing system KR100308113B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980010575A KR100308113B1 (en) 1998-03-26 1998-03-26 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980010575A KR100308113B1 (en) 1998-03-26 1998-03-26 Data processing system

Publications (2)

Publication Number Publication Date
KR19990075990A true KR19990075990A (en) 1999-10-15
KR100308113B1 KR100308113B1 (en) 2001-10-19

Family

ID=37530515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980010575A KR100308113B1 (en) 1998-03-26 1998-03-26 Data processing system

Country Status (1)

Country Link
KR (1) KR100308113B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369363B1 (en) * 1999-12-28 2003-01-30 주식회사 하이닉스반도체 Apparatus for data transmitting and receiving between host system and microcontroller of local system using memory
KR100469237B1 (en) * 2000-03-09 2005-01-31 엘지전자 주식회사 apparatus for inter processor communication
KR100660829B1 (en) * 2001-01-06 2006-12-26 삼성전자주식회사 Ethernet controller comprising ???Direct Memory Accessfor selecting valid data and method thereof
CN113590520A (en) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Control method for automatically writing data into SPI system and SPI system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01253055A (en) * 1988-03-31 1989-10-09 Nec Corp Input/output controller
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369363B1 (en) * 1999-12-28 2003-01-30 주식회사 하이닉스반도체 Apparatus for data transmitting and receiving between host system and microcontroller of local system using memory
KR100469237B1 (en) * 2000-03-09 2005-01-31 엘지전자 주식회사 apparatus for inter processor communication
KR100660829B1 (en) * 2001-01-06 2006-12-26 삼성전자주식회사 Ethernet controller comprising ???Direct Memory Accessfor selecting valid data and method thereof
CN113590520A (en) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Control method for automatically writing data into SPI system and SPI system
CN113590520B (en) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Control method for automatically writing data in SPI system and SPI system

Also Published As

Publication number Publication date
KR100308113B1 (en) 2001-10-19

Similar Documents

Publication Publication Date Title
US5448702A (en) Adapters with descriptor queue management capability
US6049842A (en) Efficient data transfer mechanism for input/output devices
KR100381823B1 (en) Data processing system with adjustable depth / width FIFO buffers for variable width data transfers
EP0489504B1 (en) Bidirectional FIFO buffer for interfacing between two buses
US4821185A (en) I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer
US4419728A (en) Channel interface circuit providing virtual channel number translation and direct memory access
US5404548A (en) Data transfer control system transferring command data and status with identifying code for the type of information
EP2097828B1 (en) Dmac to handle transfers of unknown lengths
US20030126322A1 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US5960212A (en) Universal input/output controller having a unique coprocessor architecture
KR880001167B1 (en) Microcomputer system with buffer in peripheral storage control
EP0325856B1 (en) Interface circuit for data transfer between processor and input/output device
KR920008448B1 (en) Data process
US5608889A (en) DNA controller with wrap-around buffer mode
EP0139254A2 (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfer
KR100308113B1 (en) Data processing system
US4878173A (en) Controller burst multiplexor channel interface
US6681273B1 (en) High performance, variable data width FIFO buffer
US7240144B2 (en) Arbitration of data transfer requests
US5561818A (en) Microprocessor and data processing system for data transfer using a register file
KR970002412B1 (en) Communication coprocessor board capable of using dma
US7143211B2 (en) Memory configuration with I/O support
KR0145932B1 (en) Dma controller in high speed computer system
JP2000132527A (en) Inter-processor communication controller
JPH0736806A (en) Dma system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050718

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee