KR100221297B1 - First-in and first-out buffer - Google Patents

First-in and first-out buffer Download PDF

Info

Publication number
KR100221297B1
KR100221297B1 KR1019960019094A KR19960019094A KR100221297B1 KR 100221297 B1 KR100221297 B1 KR 100221297B1 KR 1019960019094 A KR1019960019094 A KR 1019960019094A KR 19960019094 A KR19960019094 A KR 19960019094A KR 100221297 B1 KR100221297 B1 KR 100221297B1
Authority
KR
South Korea
Prior art keywords
pointer
read
write
data
pointer value
Prior art date
Application number
KR1019960019094A
Other languages
Korean (ko)
Other versions
KR970076804A (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 KR1019960019094A priority Critical patent/KR100221297B1/en
Publication of KR970076804A publication Critical patent/KR970076804A/en
Application granted granted Critical
Publication of KR100221297B1 publication Critical patent/KR100221297B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 개량된 FIFO버퍼에 관한 것으로, 프로세서간들간에 전송되는 데이터를 저장하는 램어레이(1)와; 램어레이(1)에 데이터를 저장할 위치를 나타내는 포인터값을 저장하는 쓰기 포인터(2); 램어레이(1)에 저장된 데이터를 읽어올 위치를 나타내는 포인터값을 저장하는 읽기 포인터(3); 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그발생부(4); 데이터의 쓰기와 읽기 동작을 램어레이(1)의 임의의 위치에서 시작할 수 있도록 포인터값을 새롭게 셋팅하는 포인터셋팅부(5); WR신호가 입력되면 쓰기 포인터(1)에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 포인터값을 1증가시키는 쓰기제어부(6)및; RD신호가 입력되면 읽기포인터(3)에 저장된 포인터값에 해당하는 곳의 데이터를 읽어내고 포인터값을 1감소시키는 읽기제어부(7)로 구성되어, FIFO버퍼에 데이터를 쓰거나 읽어낼 때, 데이터 읽기포인터와 쓰기 포인터를 임의로 지정할 수 있게 됨으로써, 메모리의 임의의 위치에서 데이터의 읽기와 쓰기가 가능하게되고 데이터 읽기/쓰기동작이 신속하고 효율적으로 이루어지는 효과가 있다.The present invention relates to an improved FIFO buffer, comprising: a RAM array (1) for storing data to be transferred between processors; A write pointer 2 for storing a pointer value indicating a position at which data is to be stored in the RAM array 1; A read pointer 3 for storing a pointer value indicating a position to read data stored in the RAM array 1; A flag generating unit 4 for indicating whether the write and read operations are possible; A pointer setting unit 5 that newly sets a pointer value so that data write and read operations can be started at an arbitrary position of the RAM array 1; A write control unit 6 for storing data at a location corresponding to a pointer value stored in the write pointer 1 and incrementing a pointer value by 1 when the WR signal is input; And a read control unit 7 for reading the data corresponding to the pointer value stored in the read pointer 3 and decreasing the pointer value by 1 when the RD signal is inputted. When the data is written to or read from the FIFO buffer, The pointer and the write pointer can be arbitrarily designated, whereby data can be read and written at an arbitrary position in the memory, and the data read / write operation can be performed quickly and efficiently.

Description

개량된 선입선출형 버퍼(An improved FIFO buffer)Improved first-in first-out buffer (An improved FIFO buffer)

제1도는 종래의 선입선출형(FIFO; First In First Out) 버퍼의 내부 블록도.FIG. 1 is an internal block diagram of a conventional first-in first-out (FIFO) buffer.

제2도는 본 발명에 따른 개량된 선입선출형(FIFO) 버퍼의 내부 블록도이다.FIG. 2 is an internal block diagram of an improved first-in first-out (FIFO) buffer according to the present invention.

* 도면의 주요부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE NUMERALS

1 : 램어레이 2 : 읽기 포인터1: RAM array 2: read pointer

3 : 쓰기 포인터 4 : 플래그 발생부3: write pointer 4: flag generator

5 : 포인터 셋팅부 6 : 쓰기 제어부5: pointer setting unit 6: write control unit

7 : 읽기 제어부 8 : 쓰기 포인터 레지스터7: Read control section 8: Write pointer register

9 : 읽기 포인터 레지스터 10 : 포인터 레지스터9: Read pointer register 10: Pointer register

WR : 쓰기 신호 RD : 읽기 신호WR: Write signal RD: Read signal

FF : 풀 플래그 신호 EF : 엠프티 플래그 신호FF: full flag signal EF: empty flag signal

WPS : 쓰기 포인터 셋 신호 RPS : 읽기 포인터 셋 신호WPS: Write pointer set signal RPS: Read pointer set signal

본 발명은 선입선출형(FIFO; First in First Out) 버퍼에 관한 것으로, 특히 FIFO 버퍼의 데이터 읽기 포인터와 쓰기 포인터를 변경하여 임의의 메모리 위치에서 데이터의 읽기와 쓰기가 가능하도록 된 개량된 FIFO 버퍼에 관한 것이다.The present invention relates to a first-in first-out (FIFO) buffer, and more particularly to an improved FIFO buffer capable of reading and writing data at an arbitrary memory location by changing a data reading pointer and a writing pointer of the FIFO buffer .

일반적으로 프로세서들간에 데이터를 전송할 경우에는 각 프로세서의 데이터 처리 속도에 차이가 있기 때문에 데이터를 전송하는 도중에 대기 상태가 발생하게 되는데, 이러한 사태를 방지하고 데이터 처리 속도를 단축시키기 위해 완충용 기억 장치 역할을 하는 FIFO 버퍼를 프로세서와 프로세서 사이에 두어 전송 데이터를 입력하고 출력하는 버퍼링을 한다. 이때 FIFO 버퍼에서 전송되는 데이터를 처리하는 방식은 가장 먼저 입력된 데이터가 가장 먼저 출력되는 선입선출 방식으로 이루어 진다.Generally, when data is transferred between processors, there is a difference in data processing speed of each processor. Therefore, a standby state occurs during data transfer. To prevent such a situation and to shorten data processing speed, And a FIFO buffer is placed between the processor and the processor to buffer the input and output of the transmission data. At this time, the method of processing the data transmitted from the FIFO buffer is a first-in first-out method in which the first data inputted first is output first.

상기와 같은 FIFO 버퍼를 이용한 프로세서들간의 데이터 전송을 설명하면 다음과 같다.Data transfer between the processors using the FIFO buffer will be described as follows.

제1도는 종래의 FIFO 버퍼의 내부 블록도로서, 램 어레이(1)와 쓰기 포인터(2), 읽기 포인터(3), 플래그 발생부(4), 쓰기 제어부(6) 및 읽기 제어부(7)로 구성되어 있다.FIG. 1 is an internal block diagram of a conventional FIFO buffer. As shown in FIG. 1, a RAM array 1, a write pointer 2, a read pointer 3, a flag generating section 4, a write control section 6, and a read control section 7 Consists of.

여기서, 상기 램 어레이(1)는 프로세서와 프로세서간에 전송되는 데이터를 저장하고, 상기 플래그 발생부(4)는 현재의 FIFO 버퍼에 더이상 데이터를 저장할 영역이 없을 경우 풀 플래그(FF : Full flag) 신호를 "로우(LOW)" 상태로 출력하여 도시되지 않은 송신 프로세서가 FIFO 버퍼에 데이터를 쓰기 못 하게 하고, 현재의 FIFO 버퍼에 저장된 데이터가 하나도 없으면 엠프티 플래그(EF; Empty flag) 신호를 "로우(LOW)" 상태로 출력하여 도시되지 않은 수신 프로세서가 더 이상 FIFO 버퍼의 데이터를 읽어 가지 못 하게 된다.Here, the RAM array 1 stores data to be transferred between the processor and the processor, and if the current FIFO buffer has no area for storing data, the flag generator 4 outputs a full flag Quot; LOW "state so that the transmission processor, not shown, can not write data to the FIFO buffer, and if there is no data stored in the current FIFO buffer, an empty flag (EF) Quot; LOW "state so that the receiving processor, which is not shown, can no longer read data in the FIFO buffer.

또한, 상기 쓰기 포인터(2)와 읽기 포인터(3)에는 데이터의 읽기와 쓰기가 수행되는 현재 포인터 값이 저장되며, 읽기와 쓰기 동작에 따라서 그 포인터 값이 증감된다.In addition, the pointer pointer 2 and the read pointer 3 store the current pointer value at which data is read and written, and the pointer value is increased or decreased according to the read and write operations.

그리고 상기 쓰기 제어부(6)는 송신 프로세서로부터 라이트(WR) 신호가 입력되면, 상기 쓰기 포인터(2)의 포인터 값이 지정하는 곳에 버스를 통해 입력된 데이터를 저장하게 한 후 상기 포인터 값을 1증가 시키고, 상기 읽기 제어부(7)는 수신 프로세서로부터 리드(RD) 신호가 입력되면, 상기 읽기 포인터(3)가 지정하는 곳의 데이터를 출력하게 한 후 상기 포인터 값을 1 감소시킨다.When a write signal is input from the transmission processor, the write control unit 6 stores the data input through the bus in a location designated by the pointer value of the write pointer 2, and increments the pointer value by 1 The read control unit 7 outputs the data designated by the read pointer 3 when the read signal RD is input from the reception processor, and then decrements the pointer value by one.

하지만 상기와 같이 동작하는 종래의 FIFO 버퍼에서는 이미 읽기가 수행된 데이터를 다시 읽거나, 데이터를 현재 쓰기 포인터 값에 해당하는 메모리에서부터 쓰지 않고 메모리의 처음부터 쓰고자 할 때는 FL/RT(First Load/ Re-Transmit) 기능을 이용하여 포인터를 처음 위치로 이동시켜 데이터를 쓰거나 읽게 되므로 FIFO 버퍼의 길이(Depth)가 긴 경우에는 데이터 읽기 혹은 쓰기 동작이 비효율적으로 이루어 지는 문제점이 있다.However, in the conventional FIFO buffer operating as described above, when the data which has already been read is re-read or the data is written from the memory corresponding to the current write pointer value, Re-Transmit function is used to move the pointer to the initial position to read or write data. Therefore, when the length of the FIFO buffer is long, the data reading or writing operation is inefficient.

따라서, 상기와 같은 문제점을 해결하기 위해서 본 발명은 FIFO 버퍼의 데이터를 처리함에 있어서 FIFO 버퍼의 데이터 읽기 포인터와 쓰기 포인터를 변경할 수 있도록 하여 임의의 위치에서 데이터 읽기와 쓰기가 가능하도록 된 개량된 FIFO 버퍼를 제공하는데 그 목적이 있다.In order to solve the above problems, the present invention provides an improved FIFO buffer which can read and write data at an arbitrary position by changing the data read pointer and the write pointer of the FIFO buffer in processing the data of the FIFO buffer. The purpose of the buffer is to provide.

상기와 같은 목적을 달성하기 위해서 본 발명은 프로세서간들간에 전송되는 데이터를 저장하는 램 어레이와; 상기 램 어레이에 데이터를 저장할 위치를 나타내는 포인터 값을 저장하는 쓰기 포인터; 상기 램 어레이에 저장된 데이터를 읽어 올 위치를 나타내는 포인터 값을 저장하는 읽기 포인터; 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그 발생부; 데이터의 쓰기와 읽기 동작을 상기 램 어레이의 임의의 위칭에서 시작할 수 있도록 포인터 값을 새롭게 셋팅하는 포인터 셋팅부; WR 신호가 입력되면 상기 쓰기 포인터에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 상기 포인터 값을 1 증가시키는 쓰기 제어부 및; RD 신호가 입력되면 상기 읽기 포인터에 저장된 포인터 값에 해당하는 곳의 데이터를 읽어 내고 상기 포인터 값을 1 감소시키는 읽기 제어부로 구성된 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of controlling a processor including a RAM array for storing data to be transferred between processors, A write pointer for storing a pointer value indicating a position at which data is to be stored in the RAM array; A read pointer for storing a pointer value indicating a location to read data stored in the RAM array; A flag generating unit for indicating whether a write and a read operation are possible; A pointer setting unit that newly sets a pointer value so that writing and reading operations of data can be started at an arbitrary address of the RAM array; A write controller for storing data at a location corresponding to a pointer value stored in the write pointer and incrementing the pointer value by 1 when a WR signal is input; And a read control unit for reading data corresponding to a pointer value stored in the read pointer and decrementing the pointer value by 1 when an RD signal is input.

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

제2도는 본 발명에 따른 개량된 선입선출형(FIFO) 버퍼의 내부 블록도이다.FIG. 2 is an internal block diagram of an improved first-in first-out (FIFO) buffer according to the present invention.

제2도에 도시된 바와 같이, 본 발명은 프로세서간들간에 전송되는 데이터를 저장하는 램 어레이(1)와; 상기 램 어레이(1)에 데이터를 저장할 위치를 나타내는 포인터 값을 저장하는 쓰기 포인터(2); 상기 램 어레이(1)에 저장된 데이터를 읽어 올 위치를 나타내는 포인터 값을 저장하는 읽기 포인터(3); 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그 발생부(4); 데이터의 쓰기와 읽기 동작을 상기 램 어레이(1)의 임의의 위치에서 시작할 수 있도록 포인터 값을 새롭게 셋팅하는 포인터 셋팅부(5); WR 신호가 입력되면 상기 쓰기 포인터(2)에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 상기 포인터 값을 1 증가시키는 쓰기 제어부(6) 및; RD 신호가 입력되면 상기 읽기 포인터(3)에 저장된 포인터 값에 해당하는 곳의 데이터를 읽어 내고 상기 포인터 값을 1 감소시키는 읽기 제어부(7)로 구성된다.As shown in FIG. 2, the present invention comprises a RAM array 1 for storing data transferred between processors; A write pointer 2 for storing a pointer value indicating a position at which data is to be stored in the RAM array 1; A read pointer 3 for storing a pointer value indicating a position to read data stored in the RAM array 1; A flag generating unit 4 for indicating whether the write and read operations are possible; A pointer setting unit 5 for newly setting a pointer value so that data write and read operations can be started at an arbitrary position of the RAM array 1; A write controller 6 for storing data corresponding to a pointer value stored in the write pointer 2 and increasing the pointer value by 1 when a WR signal is input; And a read control unit 7 for reading data corresponding to a pointer value stored in the read pointer 3 and decrementing the pointer value by 1 when an RD signal is input.

또한, 상기 포인터 셋팅부(5)는 상기 램 어레이(1)의 임의의 위치에서 데이터 쓰기 동작을 수행하기 위해 지정된 쓰기 포인터 값을 저장하는 쓰기 포인터 레지스터(8)와; 상기 램 어레이(1)의 임의의 위치에서부터 데이터를 읽어내기 위해 지정된 읽기 포인터 값을 저장하는 읽기 포인터 레지스터(9) 및; 상기와 같이 지정된 포인터 값에 의해 임의로 쓰기와 읽기 동작이 수행되기 직전의 상기 쓰기 포인터(2)의 포인터 값과 상기 읽기 포인터(3)의 포인터 값을 저장하는 포인터 레지스터(10)로 구성된다.The pointer setting unit 5 includes a write pointer register 8 for storing a designated write pointer value for performing a data write operation at an arbitrary position of the RAM array 1; A read pointer register (9) for storing a designated read pointer value for reading data from an arbitrary position of the RAM array (1); And a pointer register 10 for storing a pointer value of the write pointer 2 and a pointer value of the read pointer 3 immediately before a write and a read operation are arbitrarily performed with the designated pointer value.

상기와 같이 구성된 본 발명의 바람직한 실시예의 작용 및 효과는 다음과 같다.The functions and effects of the preferred embodiment of the present invention constructed as described above are as follows.

상기 램 어레이(1)에 데이터 쓰기 동작을 수행하기 위해서는 우선 송신 프로세서측에서 상기 플래그 발생부(4)의 FF 신호 상태를 확인하여야 한다. 만약 FF 신호의 상태가 "하이" 상태로 확인이 되면 송신 프로세서측에서 WR 신호를 상기 쓰기 제어부(6)로 입력하게 되는데, 이때 상기 쓰기 제어부(6)에서는 상기 쓰기 포인터(2)의 포인터 값에 해당하는 상기 램 어레이(1)의 위치에서부터 쓰기 동작을 수행하고 상기 쓰기 포인터(2) 값을 1 증가시킨다. 또한 상기와 같은 정상적인 쓰기 동작이 수행될 때에는 상기 포인터 셋팅부(5)로 입력되는 읽기 포인터 셋(WPS : Write point set) 신호는 "하이" 상태로 디스에이블(Disable) 된다.In order to perform a data write operation on the RAM array 1, the transmitting processor must first check the FF signal state of the flag generator 4. If the state of the FF signal is confirmed to be "High ", the WR signal is input to the write control unit 6 at the transmission processor side. At this time, the write control unit 6 sets the pointer value of the write pointer 2 Performs a write operation from the corresponding position of the RAM array (1) and increases the value of the write pointer (2) by one. When a normal write operation as described above is performed, a write pointer set (WPS) signal input to the pointer setting unit 5 is disabled in a "high" state.

만약, 상기 WPS 신호가 "로우" 상태로 인에이블(Enable) 되면, 상기 쓰기 포인터 레지스터(8)에는 상기 램 어레이(1)의 임의의 위치에서부터 데이터 쓰기 동작을 수행하기 위한 쓰기 포인터 값이 데이터 버스를 통해 입력되고, 상기 포인터 레지스터(10)에는 상기 WPS "로우" 신호가 입력되기 직전의 상기 쓰기 포인터(2)의 포인터 값이 저장된다.If the WPS signal is enabled in the "LOW" state, a write pointer value for performing a data write operation from an arbitrary position in the RAM array 1 is written to the write pointer register 8, And a pointer value of the write pointer 2 immediately before the WPS "low" signal is input is stored in the pointer register 10. [

이에 따라서, 상기 쓰기 포인터 레지스터(8)에 저장된 쓰기 포인터 값에 해당하는 램 어레이(1)의 위치에서부터 데이터 쓰기 동작이 수행되며, 상기 쓰기 포인터(2)의 포인터값은 상기 쓰기 포인터 레지스터(8)에 저장된 쓰기 포인터 값을 시작으로 하여 1 증가된다.Accordingly, a data write operation is performed from the position of the RAM array 1 corresponding to the write pointer value stored in the write pointer register 8, and the pointer value of the write pointer 2 is stored in the write pointer register 8, Is incremented by 1 from the value of the write pointer stored in < / RTI >

여기서, 상기와 같이 상기 램 어레이(1)의 임의의 위치에서부터 데이터 쓰기 동작이 수행되고 있는 중간에 상기 WPS "하이" 신호가 입력되면, 상기 쓰기 포인터(2)의 값은 상기 쓰기 포인터 레지스터(8)에 저장되고, 상기 포인터 레지스터(10)에 저장되어 있던 쓰기 포인터 값을 시작으로 하여 상기 쓰기 포인터(2)의 포인터 값이 1 증가되면서 데이터 쓰기 동작이 정상적으로 수행된다.When the WPS "high" signal is input in the middle of a data write operation from an arbitrary position of the RAM array 1 as described above, the value of the write pointer 2 is written to the write pointer register 8 , And the pointer value of the write pointer 2 is incremented by one from the write pointer value stored in the pointer register 10, so that the data write operation is normally performed.

반대로, 상기 램 어레이(1)로 입력된 데이터를 읽어가기 위해서는 우선 수신 프로세서측에서 상기 플래그 발생부(4)의 EF 신호 상태를 확인하여야 한다. 만약 EF 신호의 상태가 "하이" 상태로 확인이 되면 수신 프로세서측에서 RD 신호를 입력하게 되는데, 이때 상기 읽기 제어부(7)에서는 상기 읽기 포인터(3)의 포인터 값에 해당하는 상기 램 어레이(1)의 위치에서부터 읽기 동작을 수행하게 되고 상기 읽기 포인터(3)의 값을 1 감소시킨다. 또한 상기와 같은 정상적인 읽기 동작이 수행될 때에는 상기 포인터 셋팅부(5)로 입력되는 읽기 포인터 셋(RPS : Read point set) 신호는 " 하이" 상태로 디스에이블(Disable) 된다.Conversely, in order to read the data input to the RAM array 1, the receiving processor must first check the EF signal state of the flag generator 4. If the state of the EF signal is confirmed to be in the "High" state, the RD signal is input on the receiving processor side. At this time, the read controller 7 reads out the RAM array 1 ), And decrements the value of the read pointer 3 by one. When a normal read operation as described above is performed, a read pointer set (RPS) signal input to the pointer setting unit 5 is disabled in a "high" state.

만약, 상기 RPS 신호가 "로우" 상태로 인에이블(Enable) 되면, 상기 읽기 포인터 레지스터(9)에는 상기 램 어레이(1)의 임의의 위치에서부터 데이터 읽기 동작을 수행하기 위한 포인터 값이 데이터 버스를 통해 입력되고, 상기 포인터 레지스터(10)에는 상기 RPS "로우" 신호가 입력되기 직전의 상기 읽기 포인터(3)의 포인터 값이 저장된다.If the RPS signal is enabled in a low state, a pointer value for performing a data read operation from an arbitrary position of the RAM array 1 is stored in the read pointer register 9 as a data bus And the pointer value of the read pointer 3 immediately before the RPS "low" signal is input is stored in the pointer register 10.

이에 따라서, 상기 읽기 포인터 레지스터(9)에 저장된 읽기 포인터 값에 해당하는 램 어레이(1)의 위치에서부터 데이터 읽기 동작이 수행되며, 상기 읽기 포인터(3)의 포인터 값은 상기 읽기 포인터 레지스터(8)에 저장된 읽기 포인터 값을 시작으로 하여 1 감소된다.The pointer value of the read pointer 3 is read from the position of the RAM array 1 corresponding to the read pointer value stored in the read pointer register 9, Is decremented by 1 from the value of the read pointer stored in the read pointer.

여기서, 상기와 같이 상기 램 어레이(1)의 임의의 위치에서부터 데이터 읽기 동작이 수행되고 있는 중간에 상기 RPS "하이" 신호가 입력되면, 상기 읽기 포인터(3)의 값은 상기 읽기 포인터 레지스터(9)에 저장되고, 상기 포인터 레지스터(10)에 저장되어 있던 읽기 포인터 값을 시작으로 하여 상기 읽기 포인터(2)의 포인터 값이 1 감소되면서 데이터 읽기 동작이 정상적으로 수행된다.When the RPS "high" signal is input in the middle of a data read operation from an arbitrary position of the RAM array 1 as described above, the value of the read pointer 3 is set in the read pointer register 9 , And the pointer value of the read pointer 2 is decremented by one from the read pointer value stored in the pointer register 10, and the data read operation is normally performed.

이상에서 살펴 본 바와 같이, 본 발명에 따르면 FIFO 버퍼에 데이터를 쓰거나 읽어 낼 때, 데이터 읽기 포인터와 쓰기 포인터를 임의로 지정할 수 있게 됨으로써, 메모리의 임의의 위치에서 데이터의 읽기와 쓰기가 가능하게 되고 데이터 읽기 혹은 쓰기 동작이 신속하고 효율적으로 이루어 지는 효과가 있다.As described above, according to the present invention, when data is written to or read from the FIFO buffer, a data read pointer and a write pointer can be arbitrarily designated, whereby data can be read and written at an arbitrary position in the memory, The reading or writing operation can be performed quickly and efficiently.

Claims (1)

프로세서간들간에 전송되는 데이터를 저장하는 램 어레이, 상기 램 어레이에 데이터를 저장할 위치를 나타내는 포인터 값을 저장하는 쓰기 포인터, 상기 램 어레이에 저장된 데이터를 읽어 올 위치를 나타내는 포인터 값을 저장하는 읽기 포인터, 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그 발생부, WR 신호가 입력되면 상기 쓰기 포인터에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 상기 포인터 값을 1 증가시키는 쓰기 제어부, 및 RD 신호가 입력되면 상기 읽기 포인터에 저장된 포인터 값에 해당하는 곳의 데이터를 읽어 내고 상기 포인터 값을 1 감소시키는 읽기 제어부를 포함하여 구성되는 선입선출형(FIFO) 버퍼에 있어서, 상기 램 어레이의 임의의 위치에서 데이터 쓰기 동작을 수행하기 위해 지정된 쓰기 포인터 값을 저장하는 쓰기 포인터 레지스터; 상기 램 어레이의 임의의 위치에서부터 데이터를 읽기 위해 지정된 읽기 포인터 값을 저장하는 읽기 포인터 레지스터; 및 상기와 같이 지정된 포인터 값에 의해 임의로 쓰기와 읽기 동작이 수행되기 직전의 상기 쓰기 포인터의 포인터 값과 상기 읽기 포인터의 포인터 값을 저장하는 포인터 레지스터로 구성되어, 데이터의 쓰기와 읽기 동작을 상기 램 어레이의 임의의 위치에서 시작할 수 있도록 포인터 값을 새롭게 셋팅하는 포인터 셋팅부를 추가로 구비하여 구성되는 것을 특징으로 하는 개량된 선입선출형(FIFO) 버퍼.A read pointer for storing a pointer value indicating a location to read data stored in the RAM array, a write pointer for storing a pointer value indicating a location where data is to be stored in the RAM array, A write control unit for storing data at a location corresponding to a pointer value stored in the write pointer and incrementing the pointer value by 1 when a WR signal is input; (FIFO) buffer for reading data corresponding to a pointer value stored in the read pointer and decrementing the pointer value by 1, the buffer comprising: To save the specified write pointer value to perform the action Write pointer register; A read pointer register for storing a read pointer value designated for reading data from an arbitrary position of the RAM array; And a pointer register for storing a pointer value of the write pointer and a pointer value of the read pointer immediately before a write operation and a read operation are arbitrarily performed according to the designated pointer value, And a pointer setting unit for newly setting a pointer value to start at an arbitrary position in the array.
KR1019960019094A 1996-05-31 1996-05-31 First-in and first-out buffer KR100221297B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960019094A KR100221297B1 (en) 1996-05-31 1996-05-31 First-in and first-out buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960019094A KR100221297B1 (en) 1996-05-31 1996-05-31 First-in and first-out buffer

Publications (2)

Publication Number Publication Date
KR970076804A KR970076804A (en) 1997-12-12
KR100221297B1 true KR100221297B1 (en) 1999-09-15

Family

ID=19460365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960019094A KR100221297B1 (en) 1996-05-31 1996-05-31 First-in and first-out buffer

Country Status (1)

Country Link
KR (1) KR100221297B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100326264B1 (en) * 1998-12-24 2002-05-09 박종섭 First-in first-out circuit for improving operating speed

Also Published As

Publication number Publication date
KR970076804A (en) 1997-12-12

Similar Documents

Publication Publication Date Title
US6584512B1 (en) Communication DMA device for freeing the data bus from the CPU and outputting divided data
KR100221297B1 (en) First-in and first-out buffer
US6266746B1 (en) Control apparatus for random access memories
JP2723038B2 (en) Method of storing data in storage device
KR100221298B1 (en) An improved fifo buffer
KR940004573B1 (en) High speed data processor
KR0175606B1 (en) Data interface apparatus between pc main processor and pc card
JP2751983B2 (en) Storage circuit for communication data processing
KR100214302B1 (en) High speed data processing method of dma for dsp
KR930009064B1 (en) Communicating method between two systems by using fifo
KR0127559Y1 (en) Memory access apparatus using buffer
JP2944193B2 (en) Data receiving device
KR100236538B1 (en) Fifo memory device
KR100265056B1 (en) Interface method between processor and serial input/output controller
KR100188940B1 (en) Double stac control apparatus using single memory and data transfer method
KR100678228B1 (en) Apparatus for preventing overflow of uart
JPH04165529A (en) Fifo memory control circuit
JPH0460729A (en) Information processor
KR880002081A (en) Message transmitter
KR20020057544A (en) Method for access controlling of digital sigrnal processor external memory
JPH0520253A (en) Data processor
JPS61276050A (en) Data transmission system
JPH0721102A (en) Message transmitter/receiver
KR20000026337A (en) Buffer descriptor for reception
JPH047740A (en) Controller for transfer of operand data

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
LAPS Lapse due to unpaid annual fee