KR0179903B1 - First in first out memory - Google Patents

First in first out memory Download PDF

Info

Publication number
KR0179903B1
KR0179903B1 KR1019960008378A KR19960008378A KR0179903B1 KR 0179903 B1 KR0179903 B1 KR 0179903B1 KR 1019960008378 A KR1019960008378 A KR 1019960008378A KR 19960008378 A KR19960008378 A KR 19960008378A KR 0179903 B1 KR0179903 B1 KR 0179903B1
Authority
KR
South Korea
Prior art keywords
buffer
buffers
read
bit
main clock
Prior art date
Application number
KR1019960008378A
Other languages
Korean (ko)
Other versions
KR970067331A (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 KR1019960008378A priority Critical patent/KR0179903B1/en
Publication of KR970067331A publication Critical patent/KR970067331A/en
Application granted granted Critical
Publication of KR0179903B1 publication Critical patent/KR0179903B1/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
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dram (AREA)

Abstract

본 발명의 선입선출 메모리는, 외부로부터 입력되는 메인 클럭을 2분주 하기 위한 클럭 분주기와, 외부로부터 인가되는 제어신호에 따라 읽기/쓰기 동작을 알리기 위한 읽기/쓰기 제어부와, 현재 사용중인 선입 선출 버퍼의 위치를 나타내기 위한 카운터부와, 상기 메인 클럭의 상승에지 마다 n비트의 제1, 제2 버퍼를 각각 번갈아 선택하도록 하기 위한 스위칭부와, 입력되는 n비트의 데이타를 번갈아 저장하기 위한 제1, 제2버퍼와, 상기 메인 클럭의 2분주된 신호에 동기되어 상기 제1, 제2버퍼에 저장된 데이타들을 순차적으로 시프트시켜 2n비트로 저장하기 위한 제3버퍼와, 상기 제3버퍼의 출력을 선입선출 시키기 위한 n비트 × m개의 선입선출 버퍼와, 상기 선입선출 버퍼의 출력을 일시 저장하였다가 출력시키기 위한 제4버퍼를 포함하여 구성되며, 선입선출 메모리를 사용하는 칩 내부의 버스 인터페이스 양쪽에 본 발명의 선입선출 메모리를 연결함으로써 데이타 버스를 반으로 줄일 수 있는 효과가 있다.The first-in first-out memory of the present invention includes a clock divider for dividing the main clock input from the outside into two, a read / write control unit for notifying a read / write operation according to a control signal applied from the outside, and a first-in first-out currently in use. A counter for indicating a buffer position, a switching unit for alternately selecting n-bit first and second buffers for each rising edge of the main clock, and a second for alternately storing n-bit data to be inputted A third buffer for sequentially shifting the data stored in the first and second buffers in synchronization with the first and second buffers and the two-divided signal of the main clock to store 2n bits, and outputting the third buffer. N-bit x m first-in first-out buffers for first-in, first-out, and a fourth buffer for temporarily storing and outputting the output of the first-in, first-out buffers. By connecting the first-in first-out memory of the present invention to both bus interfaces inside the chip using the first memory, the data bus can be cut in half.

Description

선입선출 메모리First in, first out memory

제1도는 종래의 기술에 의한 선입선출 메모리의 구조를 도시한 것이고,1 shows the structure of a first-in, first-out memory according to the prior art,

제2도는 제1도 선입선출 메모리의 데이타 입출력 상태를 도시한 것이며,2 shows data input / output states of the first-in, first-out memory of FIG.

제3도는 본 발명에 의한 선입선출 메모리의 구조를 도시한 것이며,3 illustrates the structure of the first-in, first-out memory according to the present invention.

제4도는 제3도 선입선출 메모리의 데이타 입출력 상태를 도시한 것이다.FIG. 4 shows data input / output states of the first-in, first-out memory of FIG.

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

1 : 클럭 분주기 2 : 읽기/쓰기 제어부1: Clock divider 2: Read / write controller

3 : 스위칭부 4 : 제1버퍼3: switching unit 4: first buffer

5 : 제2버퍼 6 : 제3버퍼5: second buffer 6: third buffer

7 : 선입선출 버퍼 8 : 제4버퍼7: first-in, first-out buffer 8: fourth buffer

9 : 카운터부 10 : 쓰기 포인터9: counter 10: write pointer

11 : 읽기 포인터 12 : 종합 포인터11: read pointer 12: comprehensive pointer

본 발명은 선입선출(FIFO : First In First Out) 메모리에 관한 것으로, 특히 내부의 데이타 버스 크기를 줄임으로서 데이타 처리 속도를 향상시킬 수 있고 또한 소형화에 적합하도록한 선입선출 메모리에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to first in first out (FIFO) memory, and more particularly, to a first in first out memory that can improve data processing speed by reducing the size of an internal data bus and is suitable for miniaturization.

제1도는 종래의 기술에 의한 선입선출 메모리를 도시한 것으로, n비트×m개의 내부 버퍼로 이루어지며, 상기 내부 버퍼들은 외부 제어신호인 클럭신호(CLK)에 동기되고, 리셋신호(RESET)에 의해 초기화되며, n비트의 데이타가 입력되면 상기 내부 버퍼에서 순차적으로 데이타를 저장하였다가 먼저 들어온 입력 순서대로 다시 출력시킨다.FIG. 1 shows a first-in, first-out memory according to the prior art, which is composed of n bits x m internal buffers, which are synchronized with a clock signal CLK, which is an external control signal, to a reset signal RESET. When n bits of data are input, the data is sequentially stored in the internal buffer and output again in the order of input.

즉, 제2도의 (a)도에 도시한 바와 같이 상기 클럭신호(CLK)의 상승 에지(risng edge)에서 (b)도의 n비트 데이타가 상기 내부버퍼로 입력되며, 최초로 입력된 데이타는 (c)도에 도시한 바와 같이 버퍼 사이즈 만큼의 클럭인 m클럭 후 다시 외부로 출력된다.That is, as shown in (a) of FIG. 2, n-bit data of (b) is input to the internal buffer at the rising edge of the clock signal CLK, and the first input data is (c As shown in the diagram, m clock, which is a clock corresponding to the buffer size, is output again to the outside.

상기와 같은 구조의 선입선출 메모리는 가장 일반적으로 사용되는 것이나, 제조기술의 발달로 크기가 점점 소형화됨에 따라 기본주파수가 빨라지게 됨으로써 이에 대응하도록 데이타 버스를 줄여야 하는데, 이 경우 상기 데이타 버스를 줄이기 위해 선입선출 메모리가 사용되는 전체 칩내부 구조를 변경해야 하므로 별도의 설계가 필요하기 때문에 설계시간 및 설계비용이 많이 소모되는 문제점이 있다.The first-in, first-out memory of the above structure is the most commonly used, but as the size becomes smaller and smaller due to the development of manufacturing technology, it is necessary to reduce the data bus to correspond to the faster the fundamental frequency. Since the entire internal structure of the first-in-first-out memory is used, a separate design is required, which causes a problem of high design time and design cost.

따라서 본 발명의 목적은 상기와 같은 문제점을 해결하여 칩 내부 구조의 변경없이 내부 데이타 버스라인을 줄일 수 있는 선입선출 메모리를 제공하는 것이다.Accordingly, an object of the present invention is to provide a first-in, first-out memory that can solve the above problems and reduce the internal data busline without changing the internal structure of the chip.

상기 목적을 달성하기 위한 본 발명의 선입선출 메모리는, 외부로부터 입력되는 메인 클럭을 2분주 하기 위한 클럭 분주기와, 외부로부터 인가되는 제어신호에 따라 읽기/쓰기 동작을 알리기 위한 읽기/쓰기 제어부와, 현재 사용중인 선입선출 버퍼의 위치를 나타내기 위한 카운터부와, 상기 메인 클럭의 상승에지 마다 n비트의 제1, 제2 버퍼를 각각 번갈아 선택하도록 하기 위한 스위칭부와, 입력되는 n비트의 데이타를 번갈아 저장하기 위한 제1, 제2버퍼와, 상기 메인 클럭의 2분주된 신호에 동기되어 상기 제1버퍼에 저장된 데이타를 시프트시킴으로써 2n 비트로 저장되도록 하기 위한 제3버퍼와, 상기 제3버퍼의 출력을 선입선출시키기 위한 n비트 × m개의 선입선출 버퍼와, 상기 선입선출 버퍼의 출력을 일시 저장하였다가 출력시키기 위한 제4버퍼를 포함하여 구성된 것을 특징으로 한다.A first-in, first-out memory of the present invention for achieving the above object includes a clock divider for dividing the main clock input from the outside, and a read / write control unit for notifying a read / write operation according to a control signal applied from the outside; A counter unit for indicating the position of the first-in-first-out buffer currently in use, a switching unit for alternately selecting n-bit first and second buffers for each rising edge of the main clock, and n-bit data input First and second buffers for alternating storage, a third buffer for shifting data stored in the first buffer in synchronization with the two divided signals of the main clock, and storing the second buffer in 2n bits; N-bit x m first-in-first-out buffers for first-in, first-out, and a fourth buffer for temporarily storing and outputting the output of the first-in, first-out buffers. Characterized in that configured.

이하 첨부도면을 참조하여 본 발명을 좀 더 상세하게 설명하고자 한다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings.

본 발명의 선입선출 메모리는, 제3도에 도시한 바와 같이 스위칭부(3)를 통해 번갈아 선택되어 n(본 발명에서는 8비트를 예로듬)비트의 데이타(cmd_in)가 입력되는 제1 및 제2버퍼(4,5)와, 외부에서 선입선출 메모리를 구동시키기 위한 메인 클럭신호(CLK)를 인가받아 2분주 하여 카운터부(9)와, 선입선출 버퍼(7) 및 제4버퍼(8)로 인가하는 클럭 분주기(1)와, 외부에서 쓰기/읽기 신호(write, read)가 인가되면 신호를 조합하여 내부에 쓰기 또는 읽기 동작만을 수행하도록 하거나, 쓰기 및 읽기 동작을 동시에 수행하도록 알리기 위한 읽기/쓰기 제어부(2)와, 각각 3 비트인 쓰기 포인터(pointer)(10)와, 읽기 포인터(11) 및 종합 포인터(12)로 구성되어 현재 사용중인 선입선출 버퍼의 위치를 나타내기 위한 카운터부(9)와, 상기 메인 클럭의 2분주된 신호에 동기되어 상기 제1버퍼(4)의 데이타를 1클럭 시프트시켜서 제2버퍼(5)와 같은 위상이 되도록 하는 제3버퍼(6)와, 상기 제3버퍼의 출력을 선입선출 시키기 위한 n비트 × m개의 선입선출 버퍼(7)와, 상기 선입선출 버퍼(7)의 2n비트 출력을 일시 저장하였다가 외부로 출력시키기 위한 제4버퍼(8)를 포함하여 구성된다.The first-in first-out memory of the present invention is first and first alternately selected through the switching unit 3, as shown in FIG. 3, in which n-bit data (cmd_in) is input. Two buffers 4 and 5 and a main clock signal CLK for driving the first-in first-out memory from the outside are divided into two and the counter unit 9, the first-in first-out buffer 7 and the fourth buffer 8 are divided. When the clock divider 1 to be applied to and the write / read signals (write and read) are externally applied, the signals are combined to perform only write or read operations internally, or to notify to simultaneously perform write and read operations. A counter for indicating the position of the first-in, first-out buffer currently being used, which consists of a read / write control unit 2, a write pointer 10 each having three bits, a read pointer 11, and a comprehensive pointer 12. The first bus in synchronization with the second (9) signal divided by the main clock. A third buffer 6 for shifting the data of (4) by one clock to be in phase with the second buffer 5, and n-bit x m first-in-first-out buffers for first-in, first-out of the output of the third buffer ( 7) and a fourth buffer 8 for temporarily storing the 2n-bit output of the first-in-first-out buffer 7 and outputting it externally.

제4도를 참조하여 동작을 살펴보면, (a)도에 도시한 메인 클럭신호(CLK)와 (d)도의 n비트의 데이타가 외부로부터 입력되면 상기 스위칭부(3)에서는 (c)도에 도시한 바와 같이 상기 메인 클럭신호(CLK)의 상승에지에 동기되어 0에서는 상기 제1버퍼(4)가 선택되고 1에서는 제2버퍼(5)를 선택되도록 하기 위해 출력신호(switch01)가 0과 1이 번갈아 출력되도록 한다.Referring to FIG. 4, when the main clock signal CLK and the n-bit data of FIG. D are input from the outside, the switching unit 3 shows the diagram in FIG. As described above, the output signal switch01 is set to 0 and 1 so that the first buffer 4 is selected at 0 and the second buffer 5 is selected at 1 in synchronization with the rising edge of the main clock signal CLK. This alternates output.

그 결과 상기 제1 및 제2버퍼(4,5)는 상기 n비트의 데이타를 (e)도 및 (g)도와 같이 입력받게 되며, 상기 제1버퍼(4)에 입력된 데이타는 제3버퍼(6)를 통해 (f)도에 도시한 바와 같이 1클럭 시프트된 후 제2버퍼(5)의 값과 함께 (b)도의 메인 클럭의 2분주된 신호의 상승에지에 동기되어 선입선출 버퍼(7)에 저장되고, 소정 클럭 후 (h)도에 도시한 바와 같이 제4버퍼(8)를 통해 2n 비트의 데이타로 출력된다.As a result, the first and second buffers 4 and 5 receive the n-bit data as shown in (e) and (g), and the data input to the first buffer 4 is the third buffer. Through (6), as shown in (f), the first-in first-out buffer is synchronized with the rising edge of the two-divided signal of the main clock in (b) together with the value of the second buffer (5). 7), and is output as 2n bits of data through the fourth buffer 8 as shown in (h) after a predetermined clock.

이때 상기 카운터부(9)의 종합 포인터(12)에서는, 읽기 없이 쓰기만 계속되어 상기 선입선출 버퍼가 모두 차 있을 경우 제1출력(full)을 1로 출력시키고, 반대로 읽기만 계속되어 상기 선입선출 버퍼가 모두 비어 있을 경우는 제2출력(empty)을 1으로 출력시켜 데이타 입력 가능함을 알리게 된다.At this time, in the comprehensive pointer 12 of the counter unit 9, writing is continued without reading, and if the first-in first-out buffer is full, the first output is output as 1, and conversely, only reading is continued and the first-in first-out buffer is continued. If both are empty, the second output is output as 1 to indicate that data can be input.

또한 상기 쓰기 포인터(10)에서는 쓰기 동작시 쓰기 동작중인 선입선출 버퍼의 위치를 나타내고, 읽기 포인터(11)는 읽기 동작시 읽기 동작중인 선입선출 버퍼의 위치를 나타내며, 상기 읽기 포인터와 쓰기 포인터의 차가 4이면 상기 종합 포인터의 출력(full)이 1이 되고, 상기 읽기 포인터와 쓰기 포인터의 차가 0이면 상기 종합 포인터의 출력(empty)이 1이 된다.In addition, the write pointer 10 indicates the position of the first-in, first-out buffer during the write operation during the write operation, and the read pointer 11 indicates the position of the first-in-first-out buffer during the read operation during the read operation, and the difference between the read pointer and the write pointer is If 4, the full pointer is 1, and if the difference between the read pointer and the write pointer is 0, the total pointer is empty.

한편 상기 읽기/쓰기 제어부의 경우, 쓰기와 읽기가 동시에 일어나면 {1,1}이 되며, 상기 읽기 및 쓰기 포인터는 동시에 증가하고, {0,0}이면 상기 제4버퍼의 출력(cmd_outz)을 전상태로 유지하도록 한다.On the other hand, in the case of the read / write control unit, when writing and reading occur at the same time, it becomes {1,1}, and the reading and writing pointers increase at the same time, and when {0,0}, the output of the fourth buffer (cmd_outz) is transferred. Keep it in a state.

이상에서와 같이 본 발명에 의하면, 선입선출 메모리를 사용하는 칩 내부의 버스 인터페이스 양쪽에 본 발명의 선입선출 메모리를 연결함으로써 데이타 버스를 반으로 줄일 수 있는 효과가 있다.As described above, according to the present invention, the data bus can be cut in half by connecting the first-in first-out memory of the present invention to both bus interfaces inside the chip using the first-in first-out memory.

Claims (2)

외부로부터 입력되는 메인 클럭을 2분주 하기 위한 클럭 분주기와, 외부로부터 인가되는 제어신호에 따라 읽기/쓰기 동작을 알리기 위한 읽기/쓰기 제어부와, 현재 사용중인 선입선출 버퍼의 위치를 나타내기 위한 카운터부와, 상기 메인 클럭의 상승에지 마다 n비트의 제1, 제2 버퍼를 각각 번갈아 선택하도록 하기 위한 스위칭부와, 입력되는 n비트의 데이타를 번갈아 저장하기 위한 제1, 제2버퍼와, 상기 메인 클럭의 2분주된 신호에 동기되어 상기 제1버퍼에 저장된 데이타를 시프트시킴으로써 2n 비트로 저장되도록 하기 위한 제3버퍼와, 상기 제3버퍼의 출력을 선입선출시키기 위한 n비트 × m개의 선입선출 버퍼와, 상기 선입선출 버퍼의 출력을 일시 저장하였다가 출력시키기 위한 제4버퍼를 포함하여 구성된 것을 특징으로 하는 선입선출 메모리.A clock divider for dividing the main clock input from the outside by two, a read / write control unit for notifying read / write operation according to a control signal applied from the outside, and a counter for indicating the position of the first-in first-out buffer currently in use. A switching unit for alternately selecting n-bit first and second buffers for each rising edge of the main clock, first and second buffers for alternately storing n-bit data to be input, and A third buffer to be stored in 2n bits by shifting data stored in the first buffer in synchronization with a signal divided by two of the main clock, and n-bit x m first-in-first-out buffers to first-in first-out the output of the third buffer. And a fourth buffer for temporarily storing the output of the first-in first-out buffer and outputting the first-in first-out buffer. 제1항에 있어서, 상기 카운터부는 쓰기 동작시 사용중인 선입선출 버퍼의 위치를 나타내기 위한 쓰기 포인터와, 읽기 동작시 사용중인 선입선출 버퍼의 위치를 나타내기 위한 읽기 포인터와, 상기 선입선출 버퍼가 차 있는지 비어 있는지를 나타내기 위한 종합 포인터를 포함하여 구성된 것을 특징으로 하는 선입선출 메모리.2. The method of claim 1, wherein the counter unit comprises: a write pointer for indicating a location of a first-in first-out buffer in use during a write operation, a read pointer for indicating a location of a first-in-first-out buffer in use during a read operation; A first-in, first-out memory comprising a comprehensive pointer for indicating whether full or empty.
KR1019960008378A 1996-03-26 1996-03-26 First in first out memory KR0179903B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960008378A KR0179903B1 (en) 1996-03-26 1996-03-26 First in first out memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960008378A KR0179903B1 (en) 1996-03-26 1996-03-26 First in first out memory

Publications (2)

Publication Number Publication Date
KR970067331A KR970067331A (en) 1997-10-13
KR0179903B1 true KR0179903B1 (en) 1999-04-15

Family

ID=19453990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960008378A KR0179903B1 (en) 1996-03-26 1996-03-26 First in first out memory

Country Status (1)

Country Link
KR (1) KR0179903B1 (en)

Also Published As

Publication number Publication date
KR970067331A (en) 1997-10-13

Similar Documents

Publication Publication Date Title
KR0123239B1 (en) Fifo memory
US4748588A (en) Fast data synchronizer
US5426756A (en) Memory controller and method determining empty/full status of a FIFO memory using gray code counters
US6404684B2 (en) Test interface circuit and semiconductor integrated circuit device including the same
KR100337052B1 (en) Dual port fifo with synchronized read and write pointers
US5365485A (en) Fifo with fast retransmit mode
US7310396B1 (en) Asynchronous FIFO buffer for synchronizing data transfers between clock domains
JP3645584B2 (en) Data transfer synchronization device
EP1402340B1 (en) First-in, first-out memory system and method thereof
US7870310B2 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
JPH04301290A (en) Pushup memory circuit
US5781802A (en) First-in-first-out (FIFO) controller for buffering data between systems which are asynchronous and free of false flags and internal metastability
KR100498233B1 (en) First-in first-out memory circuit and method for executing the same
EP0327115B1 (en) Serial access memory system provided with improved cascade buffer circuit
JPH0479011B2 (en)
KR0179903B1 (en) First in first out memory
JP2002175687A (en) Non-synchronous fifo circuit
US5262997A (en) Extendable FIFO
US7130984B2 (en) First-in first-out memory system with shift register fill indication
GB2341253A (en) A high-speed dual port synchronous memory device
US6848042B1 (en) Integrated circuit and method of outputting data from a FIFO
US20090304134A1 (en) Device and method of synchronizing signals
US5304855A (en) Bi-level pulse accumulator
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
US5732011A (en) Digital system having high speed buffering

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051021

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee