KR950014088B1 - Fifo circuit used with general memory - Google Patents

Fifo circuit used with general memory Download PDF

Info

Publication number
KR950014088B1
KR950014088B1 KR1019930029634A KR930029634A KR950014088B1 KR 950014088 B1 KR950014088 B1 KR 950014088B1 KR 1019930029634 A KR1019930029634 A KR 1019930029634A KR 930029634 A KR930029634 A KR 930029634A KR 950014088 B1 KR950014088 B1 KR 950014088B1
Authority
KR
South Korea
Prior art keywords
memory
read
data
write
signal
Prior art date
Application number
KR1019930029634A
Other languages
Korean (ko)
Other versions
KR950020700A (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 KR1019930029634A priority Critical patent/KR950014088B1/en
Publication of KR950020700A publication Critical patent/KR950020700A/en
Application granted granted Critical
Publication of KR950014088B1 publication Critical patent/KR950014088B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Communication Control (AREA)

Abstract

an inputting part having a buffer for temporarily storing input data, a delay buffer for storing a delay input, and a selector; a memory bank having an even number memory band for storing the data of an even number address and an odd number memory band for storing the data of an odd number address; an outputting part having a memory band selector for connecting the memory banks, and output registers for reading and storing data stored in the memory bank before a read command is performed; a flag circuit for comparing a read pointer with a write pointer, and showing a data state of the FIFO circuit; and a controlling part for controlling steps to store the data in the memory and output the data.

Description

일반 메모리를 사용한 FIFO회로FIFO circuit using general memory

제 1 도는 듀얼 포트 메모리를 사용하는 일반적인 FIFO 구조를 나타낸 블럭도.1 is a block diagram illustrating a typical FIFO structure using dual port memory.

제 2 도는 본 발명의 일반 메모리를 사용하는 FIFO 구조를 나타낸 블럭도.2 is a block diagram showing a FIFO structure using a general memory of the present invention.

제 3 도는 본 발명의 FIFO 제어기의 신호 흐름도.3 is a signal flow diagram of a FIFO controller of the present invention.

제 4 도는 본 발명의 읽기 제어회로도.4 is a read control circuit diagram of the present invention.

제 5 도는 제 4 도에 따른 읽기 제어회로 상태천이도.5 is a state diagram of a read control circuit according to FIG.

제 6 도는 본 발명의 쓰기 제어회로도.6 is a write control circuit diagram of the present invention.

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

101 : 입력데이타를 일시 저장하는 버퍼 102 : 지연버퍼101: buffer for temporarily storing the input data 102: delay buffer

103, 301 : 선택기 201 : 짝수뱅크103, 301: selector 201: even bank

202 : 홀수뱅크 302, 303 : 레지스터202: odd bank 302, 303: register

401 : 플래그회로 500 : 컨트롤 블럭401 flag circuit 500 control block

501 : 읽기 제어회로 502 : 쓰기 제어회로501 read control circuit 502 write control circuit

503 : 충돌 검출기 504 : 읽기 포인터503: collision detector 504: read pointer

505 : 쓰기 포인터 506 : 포인터 선택기505: write pointer 506: pointer selector

본 발명은 FIFO 메모리(First-In First-Out memory)의 구성 및 그 회로에 관한 것이다.The present invention relates to the construction of a FIFO memory (First-In First-Out memory) and its circuit.

일반적인 FIFO는 내부 메모리셀에 듀얼포트 메모리(dual port momory)를 사용하여 입출력포트가 동등한 엑세스 권한을 갖고 있으나, 시간지연이 허용되지 않는 동기회로와 시간지연이 허용되는 비동기 회로를 FIFO로 연결하여 버퍼링 또는 동기를 맞추거나 일시 저장용으로 회로를 구성하는 경우 FIFO의 한 포트는 다른 포트에 비하여 우선권을 갖도록 할 수 있다.In general, FIFO uses dual port momory in internal memory cell, but I / O port has equal access authority, but buffering by connecting synchronous circuit that does not allow time delay and asynchronous circuit that allows time delay to FIFO Alternatively, if the circuit is configured for synchronization or temporary storage, one port of the FIFO can be given priority over the other.

이때 FIFO의 내부 메모리셀이 단순한 일반메모리를 사용할 수 있게 됨으로써 듀얼포트 메모리를 사용하는 경우에 비하여 같은 크기의 면적이 많은 데이타를 저장할 수 있게 된다.In this case, since the internal memory cell of the FIFO can use simple general memory, it is possible to store data with a large area of the same size as compared to the case of using dual port memory.

본 발명은 동기와 비동기회로를 연결하는 FIFO를 구현하는데 있어서 읽기 또는 쓰기 포트에 우선권을 주고 우선권을 갖는 포트는 매 싸이클마다 언제든지 엑세스가 가능하고 우선권이 없는 포트는 우선권을 갖는 포트와 경쟁이 생겼을 경우 1싸이클 지연되도록 하고 일반 메모리를 사용하여 FIFO를 구성하여 효율적인 구조를 제공하는데 그 목적이 있다.The present invention prioritizes a read or write port and implements a FIFO that connects synchronous and asynchronous circuits, and a port having a priority can be accessed at any time every cycle, and a non-priority port competes with a port having priority. The goal is to provide an efficient structure by allowing one cycle delay and composing the FIFO using normal memory.

다음은 첨부한 도면을 참조하여 본 발명을 설명한다.The following describes the invention with reference to the accompanying drawings.

제 1 도는 FIFO의 일반적인 구조를 나타낸 블록도이다.1 is a block diagram showing the general structure of a FIFO.

FIFO의 일반적인 구조는 메모리부분과 제어부분으로 구분된다.The general structure of a FIFO is divided into a memory part and a control part.

FIFO의 크기가 커질수록 메모리부분의 크기는 상대적으로 제어부분에 비하여 많은 비중을 차지하게 된다.As the size of the FIFO increases, the size of the memory portion is relatively larger than the control portion.

대부분 FIFO 메모리 부분에는 듀얼포트 메모리(dual port memory)가 사용된다.Most of the FIFO memory section uses dual port memory.

이 듀얼포트 메모리는 독립된 쓰기 포트와 읽기 포트를 가지고 있어서 각 입력과 출력을 위한 어드레스 디코더(address decoder)가 각각 따로 있다.The dual-port memory has independent write and read ports, with separate address decoders for each input and output.

상기한 종래의 FIFO의 구조에 비하여 본 발명의 FIFO 구조를 제 2 도에 나타내었다.The structure of the FIFO of the present invention is shown in FIG.

본 발명은 일반적인 FIFO구조에서 사용하는 듀얼포트 메모리 대신에 일반 메모리를 사용하면서 동시에 엑세스가 이루어지도록 하였다.In the present invention, access is made while using a general memory instead of a dual port memory used in a general FIFO structure.

그리고 일반 메모리는 어드레스 디코더가 하나밖에 없으므로 한 메모리모듈은 한 순간에 쓰기 또는 읽기만이 가능한 반면에 듀얼포트 메모리에 비하여 메모리셀을 구성하는 소자의 수가 적어서 같은 면적에 더 많은 데이타를 저장할 수 있고 더 빠른 엑세스 속도를 갖는다.And since there is only one address decoder in general memory, one memory module can only write or read at a time, while the number of devices constituting memory cells is smaller than dual port memory, so more data can be stored in the same area and faster. Has access speed.

따라서, 본 발명에서는 상기 일반 메모리를 사용하여 읽기와 쓰기를 동시에 행하기 위하여 일반적인 FIFO 구조에 몇가지 로직을 부가하여 구성하였다.Accordingly, in the present invention, some logic is added to the general FIFO structure in order to simultaneously perform reading and writing using the general memory.

먼저 입력부분에는 같은 메모리모듈에 쓰기를 시도하는 경우, 만약 쓰기 포트가 우선권이 없다면 한 사이클을 지연시킬 수 있도록 하는 부분(102)과 출력부분에는 읽기 포트에서 사용하는 메모리모듈을 선택할 수 있는 부분(301)과 데이타를 먼저 읽어서 저장하는 레지스터(302,303)가 있고, 제어부분(500)에서 포트에 우선권을 지정하는 신호(PRIORITY)와 읽기 또는 쓰기 포트에 현재의 입출력 가능상태를 알리는 신호(READY, VALID)신호를 추가하고 읽기와 쓰기 포인터를 지정 메모리 모듈에 연결해 주는 포인터 선택기(pointer mux)(506)가 있다.First, when trying to write to the same memory module in the input part, if the write port has no priority, the part 102 can delay one cycle and the output part can select the memory module used in the read port ( 301) and registers 302 and 303 that read and store data first, and a signal that gives priority to the port in the control unit 500 (PRIORITY) and a signal that informs the current input / output status of the read or write port (READY, VALID). There is a pointer mux 506 that adds the signal and connects the read and write pointers to the designated memory module.

제 2 도에 나타낸 바와같이 FIFO를 구성하는 블럭은 입력부(101,102,103), 출력부(301,302,303), 메모리뱅크(201,202), 제어기(500,504,505,506), 플래그회로(401)등 5개로 나누어진다.As shown in FIG. 2, the blocks constituting the FIFO are divided into five parts: an input unit (101, 102, 103), an output unit (301, 302, 303), a memory bank (201, 202), a controller (500, 504, 505, 506), and a flag circuit (401).

상기 메모리뱅크(201,202)는 두개의 뱅크로 이루어지고 한 메모리뱅크는 0, 2, 4, 6,…번지로 이루어지는 짝수번지의 데이타를 저장하는 짝수 메모리뱅크(201)이고, 다른 메모리뱅크는 1, 3, 5, 7,…로 이루어지는 홀수번지의 데이타를 저장하는 홀수 메모리뱅크(202)이다.The memory banks 201 and 202 are composed of two banks and one memory bank is 0, 2, 4, 6,... The even memory bank 201 stores data of an even address consisting of addresses, and the other memory banks are 1, 3, 5, 7,... Is an odd memory bank 202 for storing data of odd addresses.

입력부(101,102,103)는 입력데이타를 일시 저장하는 버퍼(101)와 지연입력을 저장하는 지연버퍼(102)와 선택기(103)로 구성된다.The input units 101, 102, and 103 are composed of a buffer 101 for temporarily storing input data, a delay buffer 102 for storing a delayed input, and a selector 103.

쓰기 포트에 우선권이 있는 경우에는 상기 지연버퍼(102)를 거치지 않고 상기 선택기(103)를 통하여 메모리뱅크(201,202)의 입력으로 연결된다.If the write port has priority, it is connected to the inputs of the memory banks 201 and 202 through the selector 103 without passing through the delay buffer 102.

그리고 쓰기 포트에 우선권이 없는 경우, 읽기요구와 메모리뱅크(201,202)를 요구하여 충돌이 발생하면 입력데이타는 지연버퍼(102)에서 한 사이클 지연되고 다음 사이클에 지연버퍼(102)에 있는 데이타가 선택기(103)에 의해서 연결되어 메모리뱅크(201,202)로 들어간다.If there is no priority in the write port, if a conflict occurs due to a read request and a memory bank (201, 202), the input data is delayed one cycle in the delay buffer 102, and the data in the delay buffer 102 is selected in the next cycle. It is connected by 103 and enters memory banks 201 and 202.

이때는 연속적인 읽기와 쓰기요구가 있다하더라도 읽기와 쓰기요구는 서로 다른 메모리뱅크를 엑세스하게 되므로 같은 사이클에 동시 엑세스가 이루어질 수 있다.In this case, even if there are continuous read and write requests, the read and write requests access different memory banks, so that simultaneous accesses can be made in the same cycle.

출력부(301,302,303)는 짝수 메모리뱅크(201)와 홀수 메모리뱅크(202)에서 현재 읽기를 시도하는 메모리뱅크를 연결시켜주는 선택기(301)와 메모리뱅크에 저장된 데이타를 읽기요구가 있기전에 미리 읽어서 저장하는 출력레지스터(302,303)로 구성된다.The output unit 301, 302, 303 reads and stores the data stored in the memory bank and the selector 301 which connects the memory bank to which the even memory bank 201 and the odd memory bank 202 currently try to read. It consists of output registers 302 and 303.

읽기 포트에 우선권이 있는 경우에는 FIFO내에 데이타가 있으면 언제든지 읽을 수 있다.If the read port has priority, it can be read at any time if there is data in the FIFO.

그러나 읽기 포트에 우선권이 없는 경우에 쓰기요구와 읽기요구의 데이타가 같은 메모리뱅크에 들어 있다면 읽기요구는 한 사이클 지연되고 이때 읽기 유효비트(VALID)가 "0"으로 출력된다.However, if the read port has no priority, if the write request and the read request data are in the same memory bank, the read request is delayed by one cycle and the read valid bit (VALID) is output as "0".

다음 사이클에서 쓰기 데이타는 다른 메모리뱅크를 엑세스하게 되므로 이때 읽기요구가 이루어지고 다음 연속적인 읽기와 쓰기요구는 서로 다른 메모리뱅크를 엑세스하게 되므로 같은 사이클에 읽기와 쓰기가 동시에 이루어진다.In the next cycle, the write data accesses different memory banks. At this time, a read request is made, and the next successive read and write requests access different memory banks.

플래그회로(401)는 읽기 포인터(504)와 쓰기 포인터(505)를 비교하여 현재 FIFO내의 데이타상태를 나타내어주는 회로로 보통 데이타없음(empty), 완전히 채워짐(full)등의 신호를 발생시킨다.The flag circuit 401 compares the read pointer 504 and the write pointer 505 to indicate a data state in the current FIFO. Usually, the flag circuit 401 generates a signal such as data empty or full.

상기 신호에 따라 FIFO 외부에 연결된 회로에서는 다음 데이타를 보낼 것인지 또는 읽을 데이타가 있는지를 알수 있게 된다.According to the signal, the circuit connected to the outside of the FIFO can know whether to send next data or read data.

제어부(500,504.505,506)는 데이타를 입력에서 메모리에 저장하고 다시 출력하는 일련의 과정을 제어하는 기능을 갖고 있다.The controllers 500, 504. 505 and 506 have a function of controlling a series of processes of storing and re-outputting data in the memory at the input.

제어부는 메모리뱅크에서 읽거나 쓰기의 위치를 지정하는 포인터를 발생시키고, 읽기나 쓰기에 필요한 타이밍을 만들어 낸다.The control unit generates a pointer that specifies the position of the read or write in the memory bank, and generates the timing required for the read or write.

제 3 도는 FIFO의 제어부를 구성하는 구성블럭과 이들 블럭간의 신호관계를 나타낸다.3 is a block diagram of the configuration blocks constituting the control unit of the FIFO and the signal relationship between these blocks.

제 3 도에 나타낸 바에 의하여 다음에 상기 구성블럭간의 관계를 설명한다.As shown in FIG. 3, the relationship between the configuration blocks will be described next.

읽기 포인터(504)는 읽을 데이타에 대한 포인터를 유지하는 회로로 읽기 제어회로(501)에서 다음 데이타 읽기신호(RD_EN)가 인가되면, 읽기 데이타 포인터(RD_PTR)를 다음 어드레스로 옮긴다.The read pointer 504 is a circuit holding a pointer to data to be read. When the next data read signal RD_EN is applied from the read control circuit 501, the read pointer 504 moves the read data pointer RD_PTR to the next address.

이 포인터의 어드레스는 (Pn-1…,P1,P0)로 구성되고 (Pn-1,…,P1)는 메모리모듈의 읽기 어드레스로 사용되며, P0는 메모리뱅크의 선택에 사용된다.The address of this pointer consists of (P n-1 …, P 1 , P 0 ), (P n-1 ,…, P 1 ) is used as the read address of the memory module, and P 0 is used to select the memory bank. Used.

쓰기 포인터(505)는 쓰기 데이타에 대한 포인터(WR_PTR)를 유지하는 회로로 쓰기 제어회로(502)에서 다음 데이타 쓰기신호(WR_EN)가 인가되면, 쓰기 포인터를 다음 어드레스로 옮긴다.The write pointer 505 is a circuit holding the pointer WR_PTR for the write data. When the next data write signal WR_EN is applied from the write control circuit 502, the write pointer 505 moves the write pointer to the next address.

이 포인터회로(504,505)는 순환카운터(RING COUNTER)로 구현된다.The pointer circuits 504 and 505 are implemented with a RING counter.

메모리뱅크 충돌검출회로(503)는 쓰기 포인터(505)와 읽기 포인터(504)의 최하위 비트인 P0의 값에 의해서 현재 읽을 데이타가 있는 메모리뱅크와 쓰기 동작을 행할 메모리뱅크가 같은지를 검출하고 이를 읽기 제어회로(501)와 쓰기 제어회로(502)에 인가하는 기능을 갖는다.The memory bank collision detection circuit 503 detects whether the memory bank in which data is currently read is the same as the memory bank in which the write operation is to be performed by the value of P 0 , the least significant bit of the write pointer 505 and the read pointer 504. It has a function of applying to the read control circuit 501 and the write control circuit 502.

포인터 선택기(506)는 읽기 포인터회로(504)에서 인가되는 읽기 포인터(RD_PTR)와 쓰기 포인터회로(505)에서 인가되는 쓰기 포인터(WR_PTR)와 읽기 제어회로(501)에서 인가되는 읽기신호(RD_EN)와 쓰기 제어회로(502)에서 인가되는 쓰기신호(WR_EN)을 받아들어 활성화(active)된 쓰기신호 또는 읽기신호가 있으면 쓰기 포인터(505) 또는 읽기 포인터(504)가 가르키는 데이타가 있는 메모리모듈로 포인터값을 연결하고 읽기 또는 쓰기동작에 필요한 메모리 활성화신호(RAMEN)와 메모리 읽기신호(WEN)를 발생시킨다.The pointer selector 506 includes a read pointer RD_PTR applied by the read pointer circuit 504, a write pointer WR_PTR applied by the write pointer circuit 505, and a read signal RD_EN applied by the read control circuit 501. And a write signal WR_EN applied from the write control circuit 502 to the memory module having data indicated by the write pointer 505 or the read pointer 504 when there is an active write signal or read signal. It connects the pointer value and generates the memory activation signal RAMEN and the memory read signal WEN necessary for the read or write operation.

동시에 읽기신호(RD_EN)가 활성화되어 있으면 출력부의 선택기(301)에 인가할 메모리뱅크 선택신호(OUT_BANK_SEL)와 제 1 출력 레지스터(302)에 인가할 데이타 래치신호(OUT1_LATCH)를 발생한다.At the same time, when the read signal RD_EN is activated, the memory bank selection signal OUT_BANK_SEL to be applied to the selector 301 of the output unit and the data latch signal OUT1_LATCH to be applied to the first output register 302 are generated.

읽기 제어회로(501)는 플래그회로(401)에서 발생하는 empty신호와 쓰기 제어회로(502)에서 발생하는 읽기 방지신호(READ_LOCK)와 읽기 포트에 대한 우선권(R_PRIORITY)과 메모리뱅크 충돌신호(BANK_CONFLICT)를 입력으로 받아들이고, 입력포트에서 읽기신호(READ)가 인가되면, 읽기 제어회로는 다음 번지의 데이타를 읽을 것인지를 결정하여 읽기 허용신호(RD_EN)를 읽기 포인터(504)와 포인터 선택회로(506)에 인가하고, 만약 읽기 포트에 우선권이 주어져 있고 현재 읽고자하는 메모리뱅크가 쓰기 동작과 충돌이 발생했다면 쓰기 제어회로에 쓰기 방지신호(WRITE_LOCK)를 인가한다.The read control circuit 501 includes an empty signal generated by the flag circuit 401, a read protection signal READ_LOCK generated by the write control circuit 502, a priority R_PRIORITY for the read port, and a memory bank collision signal BANK_CONFLICT. Is received as an input, and when a read signal READ is applied from the input port, the read control circuit determines whether to read data of the next address, and reads the read permission signal RD_EN to the read pointer 504 and the pointer select circuit 506. If the read port is given priority and the current memory bank is in conflict with the write operation, a write protection signal (WRITE_LOCK) is applied to the write control circuit.

제 4 도는 읽기 제어회로를 상세하게 나타낸 회로도이다.4 is a circuit diagram showing the read control circuit in detail.

데이타 없음신호(EMPTY)와 읽기 방지신호(READ_LOCK)는 AND게이트(A1)에 반전인가되고, 동 게이트의 출력은 읽기 준비신호(R_READY)로 동작한다.The data none signal EMPTY and the read protection signal READ_LOCK are inverted to the AND gate A1, and the output of the gate operates as the read preparation signal R_READY.

이 R_READY신호는 다시 AND-OR게이트(AO2)와 OR-AND게이트(OA1)에 인가된다.This R_READY signal is again applied to the AND-OR gate AO2 and the OR-AND gate OA1.

플립플롭(D1,D2)의 출력은 일련의 AND-OR게이트(AO1,AO2)가 OR-AND게이트(OA1)에 인가되고, AND-OR게이트(AO1,AO2)의 출력은 플립플롭(D1,D2)의 입력에 인가된다.The outputs of the flip-flops D1 and D2 are supplied with a series of AND-OR gates AO1 and AO2 to the OR-AND gates OA1, and the outputs of the AND-OR gates AO1 and AO2 are flip-flops D1 and D2. Is applied to the input of D2).

플립플롭(D1)의 출력은 버퍼(B1)의 입력에 인가되고 동 버퍼의 출력은 읽기 데이타 유효신호(VALID)로 출력된다.The output of the flip-flop D1 is applied to the input of the buffer B1, and the output of the buffer is output as the read data valid signal VALID.

한편, OR-AND게이트(OA1)의 출력신호는 쓰기신호(WR_EN)와 AND게이트(A2)의 입력으로 인가된다.On the other hand, the output signal of the OR-AND gate OA1 is applied to the input of the write signal WR_EN and the AND gate A2.

메모리뱅크 충돌신호(BANK_CONFLICT)와 읽기 우선권신호(R_PRIORITY)는 상기 AND게이트(A2)의 입력으로 인가되고 동 게이트의 출력은 쓰기 방지신호(WRITE_LOCK)로 동작한다.The memory bank collision signal BANK_CONFLICT and the read priority signal R_PRIORITY are applied to the input of the AND gate A2, and the output of the gate operates as the write protection signal WRITE_LOCK.

READ신호의 반전 입력과 플립플롭(D1)의 출력이 AND게이트(A3)의 입력으로 인가되고 동 게이트의 출력은 출력부의 제 2 레지스터의 데이타 홀드신호(OUT2_HOLD)로 사용된다.The inverting input of the READ signal and the output of the flip-flop D1 are applied to the input of the AND gate A3, and the output of the gate is used as the data hold signal OUT2_HOLD of the second register of the output portion.

이상과 같이 구성된 본 발명의 읽기 제어회로의 상태 천이를 제 5 도에 나타내었다.5 shows a state transition of the read control circuit of the present invention configured as described above.

상기 제 5 도를 중심으로 읽기 제어회로의 동작을 설명하면 다음과 같다.The operation of the read control circuit will be described below with reference to FIG. 5.

읽기 제어회로 상태는 출력부의 제 1 레지스터(302)와 제 2 래지스터(303)의 상태에 따라 4가지의 상태로 구분된다.The read control circuit states are classified into four states according to the states of the first register 302 and the second register 303 of the output unit.

SO의 상태는 제 1 레지스터(302)와 제 2 레지스터(303)가 모두 비워져 있는 경우이고, S1의 상태는 제 1 레지스터(302)에는 유효데이타가 들어있고 제 2 레지스터(303)는 비워져 있는 경우이고, S2의 상태는 제 1 레지스터(302)는 비어있고 제 2 레지스터(303)는 유효데이타가 들어있는 경우이고, S3의 상태는 제 1 레지스터(302)와 제 2 레지스터(303)가 모두 유효데이타로 채워져 있는 경우이다.The state of SO is when both the first register 302 and the second register 303 are empty, and the state of S1 is when the first register 302 contains valid data and the second register 303 is empty. The state of S2 is when the first register 302 is empty and the second register 303 contains valid data. The state of S3 is that both the first register 302 and the second register 303 are valid. It is filled with data.

상기한 경우에 대해 제 5 도에 나타낸 바와같이 입력신호에 따라 변화하는 상태천이를 설명하면 다음과 같다.Referring to FIG. 5, the state transition that changes according to the input signal is described as follows.

초기화시 또는 출력레지스터의 모든 데이타가 비어있을 때에는 S0의 상태가 된다.At initialization or when all data in the output register is empty, the state is S0.

이때 메모리뱅크에 데이타가 들어오고 쓰기 제어회로(502)로부터 읽기 방지신호(READ_LOCK)가 들어오지 않는다면 읽기신호(RD_EN)를 "1"로하고 상태 S1으로 천이한다.At this time, if data enters the memory bank and the read protection signal READ_LOCK does not come from the write control circuit 502, the read signal RD_EN is " 1 " and the state transitions to S1.

상태 S1에서는 읽기 준비신호(R_READY)가 활성화되어 있으면 다시 다음 데이타를 레지스터에 채우기 위해서 RD_EN를 "1"로 하고 제 1 레지스터(302)의 데이타를 제 2 레지스터(303)로 이동시키고 상태 S3으로 천이하고, R_READY신호가 비활성화 상태이면 RD_EN신호를 "0"으로 하여 제 1 레지스터(302)의 데이타는 제 2 레지스터(303)로 이동하고 제 1 레지스터(302)는 비워진 상태 S2로 천이한다.In state S1, if the read ready signal R_READY is activated, RD_EN is set to "1" and the data of the first register 302 is moved to the second register 303 and the state transitions to state S3 to fill the register again with the next data. When the R_READY signal is in an inactive state, the RD_EN signal is set to "0" and the data in the first register 302 moves to the second register 303, and the first register 302 transitions to the empty state S2.

상태 S2에서 R_READY신호가 비활성화되어 있는 경우 읽기신호(READ)가 있으면 상태 S0로 천이하고, R_READY신호가 활성화 되어 있으면 RD_EN신호를 "1"로 하고 READ신호가 있으면 상태 S1으로 READ신호가 없으면 상태 S3으로 천이한다.If the R_READY signal is inactive in the state S2, if there is a read signal (READ), the state transitions to state S0. If the R_READY signal is activated, the RD_EN signal is set to "1". If the READ signal is present, the state S1. To transition.

상태 S3에서는 R_READY신호가 비활성화되어 있고 READ신호가 있으면 상태 S2로 천이하고 R_READY신호가 활성화되어 있고 READ신호가 있으면 RD_EN신호를 "1"로 하여 제 2 레지스터(303)의 데이타를 출력하면서 메모리에서 읽은 데이타는 제 1 레지스터(302)에, 제 1 레지스터(302)의 데이타는 제 2 레지스터(303)로 채우면서 상태 S3를 그대로 유지한다.In state S3, if the R_READY signal is inactive and there is a READ signal, the state transitions to state S2. If the R_READY signal is activated and there is a READ signal, the RD_EN signal is set to "1" and the data of the second register 303 is read while reading from the memory. The data is kept in the first register 302 and the data in the first register 302 is filled with the second register 303 while maintaining the state S3.

즉 읽기 제어회로(501)는 FIFO메모리에 데이타가 있으면 읽기요구가 없더라도 출력 레지스터에 데이타를 먼저 읽어서 채워두고 있으므로 FIFO의 읽기속도를 높일 수 있고 같은 메모리뱅크를 동시에 요구하는 빈도를 줄일 수 있게 한다.That is, the read control circuit 501 reads and fills the data in the output register first even if there is no data in the FIFO memory, thereby increasing the read speed of the FIFO and reducing the frequency of requesting the same memory bank at the same time.

그리고 쓰기 제어회로(502)의 동작을 설명하기 위해서 제 3 도에 나타낸 바와같이 제어부 신호 흐름을 중심으로 살펴보면, 쓰기 제어회로(502)는 FIFO의 플래그회로(401)에서 발생하는 FULL신호와 읽기 제어회로(501)에서 발생하는 쓰기 방지신호(WRITE_LOCK)와 쓰기 포트에 대한 우선권(W_PRIORITY)과 메모리뱅크 충돌신호(BANK_CONFLICT)를 입력으로 받아들이고, 입력 포드에서 쓰기신호(WRITE)가 인가되면, 쓰기 제어회로(502)는 다음 번지에 데이타를 쓸 것인지를 결정하여 쓰기 허용신호(WR_EN)를 쓰기 포인터회로(504)와 포인터 선택회로(506)에 인가하고, 입력부의 지연버퍼(102) 및 선택기(103)를 제어하기 위한 지연제어신호(DELAY_IN)와 읽기 제어회로에 읽기 방지신호(READ_LOCK)를 인가한다.As shown in FIG. 3 to explain the operation of the write control circuit 502, the write control circuit 502 reads the FULL signal generated from the flag circuit 401 of the FIFO and the read control. When the write protection signal WRITE_LOCK and the write port priority W_PRIORITY and the memory bank collision signal BANK_CONFLICT generated from the circuit 501 are received as inputs, and the write signal WRITE is applied from the input pod, the write control circuit 502 determines whether to write data to the next address, and applies the write permission signal WR_EN to the write pointer circuit 504 and the pointer selection circuit 506, and the delay buffer 102 and the selector 103 of the input unit. The read protection signal READ_LOCK is applied to the delay control signal DELAY_IN and the read control circuit for controlling the control signal.

제 6 도는 쓰기 제어회로(502)의 회로도를 나타내었다.6 shows a circuit diagram of the write control circuit 502.

플래그회로(401)로부터의 FULL신호는 AND게이트 A5와 A6와 A7에 반전신호에 인가되고, 쓰기 방지신호(WRITE_LOCK)는 AND게이트 A5에 반전신호로 인가되고 동 게이트의 다른 입력에는 OR게이트 O1의 출력이 인가되어 동 게이트의 출력신호는 쓰기 허용신호(WR_EN)로 동작한다.The FULL signal from the flag circuit 401 is applied to the inverted signal at the AND gates A5 and A6 and A7, the write protection signal WRITE_LOCK is applied as the inverted signal to the AND gate A5 and the OR gate O1 is applied to the other input of the gate. The output is applied and the output signal of the gate operates as the write permission signal WR_EN.

이와 동시에 WR_EN신호는 AND게이트 A5의 반전입력과 AND게이트 A4의 입력으로 인가된다.At the same time, the WR_EN signal is applied to the inverting input of AND gate A5 and the input of AND gate A4.

또한 쓰기 우선권신호(W_PRIORITY)와 메모리 충돌신호(BANK_CONFLICT)와 쓰기요구신호(WR_EN)가 AND게이트 A4의 입력으로 인가되고 동 게이트(A4)의 출력은 읽기 방지신호(READ_LOCK)로 사용된다.In addition, the write priority signal W_PRIORITY, the memory conflict signal BANK_CONFLICT, and the write request signal WR_EN are applied to the input of the AND gate A4, and the output of the gate A4 is used as the read protection signal READ_LOCK.

OR게이트 O1과 AND게이트 A6과 A7, 플립플롭 D3와 D4로 이루어지는 일련의 연결은 쓰기요구신호(WRITE)가 활성화 되었으나 WRITE_LOCK신호가 활성화되어 있어서 쓰기 동작을 곧바로 수행하지 못할때, 1사이클 지연되어 쓰기 동작을 수행할 수 있도록 하는 회로이다.A series of connections consisting of OR gates O1 and AND gates A6 and A7, and flip-flops D3 and D4 are delayed by one cycle when the write request signal (WRITE) is activated but the WRITE_LOCK signal is activated, and thus the write operation cannot be performed immediately. It is a circuit that can perform an operation.

쓰기 방지신호(WRITE_LOCK)가 활성화되어 있을때 OR게이트 O1를 거쳐서 들어온 쓰기(WRITE)신호가 WRITE_LOCK신호에 의해서 쓰기 동작을 수행하지 못하면 AND게이트 A6의 출력은 "1"이 되고, 여기에 연결된 플립플롭 D3에 의해서 1사이클 지연된다.When the write protection signal (WRITE_LOCK) is activated, if the write signal coming through the OR gate O1 fails to perform a write operation by the WRITE_LOCK signal, the output of the AND gate A6 becomes "1", and the flip-flop D3 connected thereto is Delayed by one cycle.

이 신호가 다시 OR게이트 O1의 입력을 거쳐서 AND게이트 A5에 재 인가된다.This signal is again applied to AND gate A5 via the input of OR gate O1.

이때 쓰기와 읽기의 포인터(505,504)는 서로 다른 메모리뱅크를 가르키게 되므로 WRITE_LOCK신호는 해제되고, 동 게이트(A5)의 출력인 쓰기요구신호(WR_EN)가 활성화된다.At this time, since the write and read pointers 505 and 504 point to different memory banks, the WRITE_LOCK signal is released and the write request signal WR_EN, which is the output of the gate A5, is activated.

이 쓰기요구는 포인터 선택기(506)에서 다시 1사이클 지연되어 메모리로 쓰기 제어신호가 들어가고, 동시에 플립플롭 D3의 출력은 다시 플립플롭 D4에 의해 1사이클 지연되고 동 플립-플롭(D4)의 출력은 지연버퍼(102)내에 들어 있는 데이타를 메모리에 쓰기 위해서 사용되는 DELAY_IN신호를 만든다.This write request is delayed by one cycle from the pointer selector 506 to enter the write control signal into the memory. At the same time, the output of the flip-flop D3 is delayed by one cycle by the flip-flop D4 and the output of the flip-flop D4 is Create a DELAY_IN signal that is used to write data contained in delay buffer 102 to memory.

이상에서 설명한 바와같이 본 발명은 듀얼포트 메모리를 사용하는 대신에 일반 메모리를 사용함으로써 메모리셀을 구성하는 소자의 수가 적어서 같은 면적에 더 많은 데이타를 저장할 수 있어서 더 빠른 엑세스 속도를 갖게 하는 효과가 있다.As described above, the present invention uses the general memory instead of the dual port memory, so the number of devices constituting the memory cell is small, so that more data can be stored in the same area, thereby achieving faster access speed. .

Claims (3)

동기 및 비동기회로를 연결하기 위한 FIFO회로에 있어서, 입력데이타를 일시 저장하는 버퍼(101)와 지연입력을 저장하는 지연버퍼(102)와 선택기(103)로 구성되는 입력부와 ; 짝수번지의 데이타를 저장하는 짝수 메모리뱅크(201)와 홀수번지의 데이타를 저장하는 홀수 메모리뱅크(202)로 구성하는 메모리뱅크와 ; 상기 짝수 메모리뱅크(201)와 상기 홀수 메모리뱅크(202)에서 현재 읽기를 시도하는 메모리뱅크를 연결시켜 주는 메모리뱅크 선택기(301)와 상기 메모리뱅크(201,202)에 저장된 데이타를 읽기요구가 읽기전에 미리 읽어서 저장하는 출력레지스터(302,303)로 구성되는 출력부와 ; 읽기 포인터(504)와 쓰기 포인터(505)를 비교하여 FIFO내의 데이타 상태를 나타내는 플래그회로(401)와 ; 상기 데이타를 입력에서 메모리에 저장하고 다시 출력하는 일련의 과정을 제어하는 제어부로 구성되는 것을 특징으로 하는 일반 메모리를 사용한 FIFO회로.A FIFO circuit for connecting synchronous and asynchronous circuits, comprising: an input unit comprising a buffer 101 for temporarily storing input data, a delay buffer 102 for storing a delayed input, and a selector 103; A memory bank comprising an even memory bank 201 for storing even-numbered data and an odd memory bank 202 for storing odd-numbered data; The memory bank selector 301 connecting the even memory bank 201 and the memory bank currently attempting to read the odd memory bank 202 and the data stored in the memory banks 201 and 202 before the read request is read. An output section comprising output registers 302 and 303 for reading and storing; A flag circuit 401 for comparing the read pointer 504 and the write pointer 505 to indicate a data state in the FIFO; FIFO circuit using a general memory, characterized in that the control unit for controlling a series of processes of storing and re-output the data in the memory at the input. 제 1 항에 있어서, 상기 출력부의 출력레지스터(302,303)에 메모리 모듈의 데이타 유무 및 메모리뱅크의 충돌상황에 따라 제어되어 유효한 데이타를 읽기 동작에 있기 전에 레지스터에 저장하고 유지하도록 하며, 출력데이타의 유효여부를 알릴 수 있도록 하는 읽기 제어회로를 특징으로 하는 일반 메모리를 사용한 FIFO회로.The method of claim 1, wherein the output registers 302 and 303 of the output unit are controlled according to the presence or absence of data of a memory module and a collision state of a memory bank to store and maintain valid data in a register before a read operation is performed. FIFO circuit using normal memory, characterized by read control circuitry to indicate whether or not. 제 1 항에 있어서, 상기 입력데이타가 읽기 동작과 같은 사이클에 메모리 모듈을 요구하여 충돌한 경우 상기 충돌을 피하기 위한 상기 지연버퍼(102)와 상기 선택기(103)를 제어하여 1사이클 후에 쓰기 동작을 할 수 있게 하여 연속입력 가능여부를 알리는 신호(READY)를 발생하도록 하는 쓰기 제어회로를 특징으로 하는 일반 메모리를 사용한 FIFO회로.2. The method of claim 1, wherein when the input data collides with a memory module in the same cycle as a read operation, the delay buffer 102 and the selector 103 for avoiding the collision are controlled to perform a write operation after one cycle. A FIFO circuit using a general memory, characterized by a write control circuit which allows a signal (READY) to be generated to indicate whether continuous input is possible.
KR1019930029634A 1993-12-24 1993-12-24 Fifo circuit used with general memory KR950014088B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930029634A KR950014088B1 (en) 1993-12-24 1993-12-24 Fifo circuit used with general memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930029634A KR950014088B1 (en) 1993-12-24 1993-12-24 Fifo circuit used with general memory

Publications (2)

Publication Number Publication Date
KR950020700A KR950020700A (en) 1995-07-24
KR950014088B1 true KR950014088B1 (en) 1995-11-21

Family

ID=19372674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930029634A KR950014088B1 (en) 1993-12-24 1993-12-24 Fifo circuit used with general memory

Country Status (1)

Country Link
KR (1) KR950014088B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070268925A1 (en) * 2006-05-16 2007-11-22 Samsung Electronics Co., Ltd. Input buffer device and control method thereof

Also Published As

Publication number Publication date
KR950020700A (en) 1995-07-24

Similar Documents

Publication Publication Date Title
US4888741A (en) Memory with cache register interface structure
US5511033A (en) Hidden self-refresh method and apparatus for synchronous dynamic random access memory
US5546347A (en) Interleaving architecture and method for a high density FIFO
EP1345125B1 (en) Dynamic random access memory system with bank conflict avoidance feature
US6018478A (en) Random access memory with separate row and column designation circuits for reading and writing
EP1402340B1 (en) First-in, first-out memory system and method thereof
KR0139171B1 (en) Synchronous lsi memory device
US7209983B2 (en) Sequential flow-control and FIFO memory devices that are depth expandable in standard mode operation
US7076610B2 (en) FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
US7093047B2 (en) Integrated circuit memory devices having clock signal arbitration circuits therein and methods of performing clock signal arbitration
US7870310B2 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
US6507899B1 (en) Interface for a memory unit
US5594700A (en) Sequential memory
US20040047209A1 (en) FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
EP0421627A2 (en) Memory device
EP0342022B1 (en) Image data read out sytem in a digital image processing system
KR950014088B1 (en) Fifo circuit used with general memory
KR100275183B1 (en) Method for memorizing sequential memory and unit
US5732011A (en) Digital system having high speed buffering
CA1270574A (en) Method for operating a memory apparatus serving as a clock interface and an apparatus for carrying out the method
US6366979B1 (en) Apparatus and method for shorting retransmit recovery times utilizing cache memory in high speed FIFO
JP2001184871A (en) Associative memory and data buffer managing device
JPH07182849A (en) Fifo memory
KR100300039B1 (en) Bank backward compatibility circuit
JPH11143763A (en) Processing circuit device of access conflict

Legal Events

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

Payment date: 20091029

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee