KR100247062B1 - 링구조를 갖는 선입선출 방식 및 회로 - Google Patents

링구조를 갖는 선입선출 방식 및 회로 Download PDF

Info

Publication number
KR100247062B1
KR100247062B1 KR1019920004856A KR920004856A KR100247062B1 KR 100247062 B1 KR100247062 B1 KR 100247062B1 KR 1019920004856 A KR1019920004856 A KR 1019920004856A KR 920004856 A KR920004856 A KR 920004856A KR 100247062 B1 KR100247062 B1 KR 100247062B1
Authority
KR
South Korea
Prior art keywords
counter
write
output
memory
read
Prior art date
Application number
KR1019920004856A
Other languages
English (en)
Other versions
KR930020433A (ko
Inventor
강세진
이재곤
전필성
Original Assignee
윤종용
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자주식회사 filed Critical 윤종용
Priority to KR1019920004856A priority Critical patent/KR100247062B1/ko
Publication of KR930020433A publication Critical patent/KR930020433A/ko
Application granted granted Critical
Publication of KR100247062B1 publication Critical patent/KR100247062B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store

Landscapes

  • Information Transfer Systems (AREA)

Abstract

메모리 버퍼의 선입선출 방식에 있어서, 상기 메모리 저장영역을 일정하게 정하고 상기 정한 영역을 순차적으로 링구조로 지정하면서 선입 선출하되, 상기 선입 선출을 위한 지정 값을 비교하여 저장상태를 검출하여 선입 선출하도록 되어 있다.

Description

링구조를 갖는 선입선출회로
제1도는 본 발명의 실시예에 따른 블럭도
제2도는 본 발명의 실시예에 따른 개념도
제3도는 제1도의 플랙 제어부의 구체회로도
제4도는 제1도의 메모리부와 어드레스 디코딩부의 구체회로도
본 발명은 메모리 버퍼의 선입 선출(FIFO: First In First Out)회로에 관한 것으로, 특히 링 카운터를 이용하여 선입 선출할 수 있는 링구조를 갖는 선입선출회로에 관한 것이다.
일반적으로 메모리 버퍼의 선입 선출 방법은 먼저 입력 저장한 것을 순서대로 먼저 출력토록 하는 것을 뜻한다. 종래의 메모리를 기반으로 하여 선입 선출하기 위해서는 기본으로 어드레스디코딩부, 입출력 카운터부, 상태출력 카운터부로 구성된다. 이와 관련하여 본건특허 동일출원에 의해 출원 번호 제88-7789호로 제출하여 1991년 12월 7일 등록번호 제046794호로 등록받은 사실이 있습니다. 상기 종래기술을 간략히 살펴보면, 입력 카운터와 출력카운터의 카운팅 값에 따라 메모리의 저장상태를 검사하여 N바이트 FIFO의 경우 모든 N 바이트상태 플랙을 두워 FIFO 버퍼가 비워있는지 또는 모두 채워져 있는지를 체킹하여 입력 디코더와 출력디코더를 두워 현재 메모리 위치를 파악하도록 되어 있다. 그러나 상기 버퍼의 상태를 알기 위한 상태플랙 카운터 구현에 있어 입력카운터가 "0" 또는 출력카운터가 "0"인지 또는 1,2 -N-1, N인지를 계산하기위한 산술 및 연산로직이 필요하며, 상기 논리회로 구성에 있어 많은 게이트를 필요로 하는 문제점이 있었다.
따라서 본 발명의 목적은 상태 플랙 제어기능을 링 구조로 변환하여 최소한의 논리회로를 간단하게 구성할 수 있는 회로를 제공함에 있다.
본 발명의 다른 목적은 메모리 크기의 변경에 따른 회로설계의 변경을 용이하게 할 수 있는 회로를 제공함에 있다.
이하 본 발명을 첨부된 도면을 참조하여 상세히 설명한다.
제1도는 본 발명의 실시예에 따른 블럭도로서,
데이타가 선입 선출되도록 N바이트를 라이트/리드하는 N바이트 메모리(102)와,
상기 N바이트 메모리(102)의 라이트 제어 신호단의 입력을 순차적으로 카운트하기 위한 라이트 카운터(104)와,
상기 N바이트 메모리(102)의 리드 제어 신호단의 입력을 순차적으로 카운트하기 위한 리드카운터(101)와,
상기 리드 카운터(101)의 출력을 디코딩하여 상기 N바이트 메모리(102)로부터 1바이트 단위로 읽어내기 위한 인에이블 제어신호를 발생하는 제1디코더(103)와,
상기 라이트 카운터(104)의 출력에 의해 상기 N바이트 메모리(102)에서 데이타 입력단(D1)으로 입력되는 데이타를 1바이트 단위로 기록키 위한 클럭신호를 발생하는 제2디코더(113)와,
상기 라이트 제어 신호단의 입력을 카운팅하여 초기값을 +1로 설정하여 상기 라이트 카운터(104)보다 +1이 더 많은 값을 출력하기 위한 라이트 +1카운터(105)와,
상기 리드카운터(101)와 라이트 +1카운터(105)의 출력을 비교하여 상기 N바이트 메모리(102)의 풀(Full)상태에 대해 입출력 플랙신호를 발생하는 풀 플랙 신호발생부(106)와,
상기 리드/라이트 카운터(101, 104)의 출력을 비교하여 상기 N바이트 메모리(102)의 엠티(Empty)상태 검출 플랙신호를 발생하는 엠티플랙발생부(206)로 구성된다.
제2도는 본 발명의 실시예에 따른 링카운터 개념도로써,
N개의 윈도를 갖는 원형 큐(Queue)와 4개의 작업(J1-J4)을 예로 할때 "0"을 기준으로 하여 반시계 방향으로 회전한다고 간주한다.
기본적으로 FIFO를 큐(Queue)라고 하며, 스택(Stack)과는 다르게 첫번째 들어온 원소가 제일 먼저 큐(Queue)리스트에서 제거된다. 먼저 큐를 Q(0: n-1)로 선입하여 큐로 정의한다. 이 경우 큐의 입력 원소의 위치를 가르키는 포인터(Painter)가 n-1이라면 다음 삽입된 원소는 Q(0)에 들어간다. 또 출력된 원소의 위치를 가르키는 포인터는 항상 큐의 첫번째 원소로 부터 반시계 방향으로 하나 앞 위치를 가르키게 된다. 전술한 포인터를 "rear" 및 "front"로 나타내기로 하자. 상기 링구조에서 큐가 비어 있을 때는 front =rear가 되며, 초기상태에는 front =rear =1이다. 즉, 제2도는 n>4이고, 네원소 J1-J4를 포함하는 원형 큐가 취할 수 있는 배치모양으로 나타낼 때이다. 한 원소를 첨가시키려면 rear를 시계방향으로 한자리 이동시켜야 한다.
즉, If rear =n-1 then rear ← 0
else rear ← rear +1
그러나 이것은 나머지를 계산하는 모듈로 연산자를 사용하는 rear ← (rear +1) 모드 N과 같이 간단히 될 수 있다. 마찬가지로 출력이 일어날때 마다 front를 시계방향으로 한자리 이동시켜야 한다. 여기에서도 모듈로 연산을 사용하면 front ← (front +1) 모드 N으로 할 수 있다. 다음은 리드 및 라이트시의 동작을 알고리즘으로 나타낸 것이다.
WRiTE(item)
rear ←(rear +1)mod N
if front =rear then call Queue_Full
Q(rear) ←item
end.
Read(item)
if front =rear then call Queue_Empty
front ←(front +1) mod N
item ←Q(front)
end.
여기에서 중요한 점은 라이트에서 큐의 풀(Full)에 대한 검사와 리드에서 큐의 엠티에 대한 검사가 같다는 것이다. 그러나 라이트에서 front =rear일때 큐의 첫번째 원소는 Q(front)가 아니고, 이 위치에서 시계 방향으로 한자리 앞에 있으므로 실제로 Q(rear)는 비어 있게 된다. 그러나 여기에 한 원소를 삽입하면 front =rear가 되므로 풀(Full)과 엠티(Empty)상태를 구별할 수 없게 된다. 따라서 큐에는 최대로 n개의 원소가 아닌 n-1개의 원소만을 저장하도록 되어 있다.
상기한 바와 같이 메모리의 상태를 읽기 위해서는 리드/라이트 카운터(101,104) 및 라이트 +1카운터(105)에 의해 값을 비교하여 알게 되는데, 상기 카운터의 크기는 상기 N바이트 메모리(102)의 크기에 따라 결정되는 바이너리 리플 업카운터를 사용할 경우 N바이트 메모리(102)의 크기가 N이라면 실제사용 가능한 메모리 영역은 N-1개 이므로 카운터의 크기는 2X-1≤ N-1< 2X인 "X"가 된다. 예를 들어 10바이트 메모리 영역을 갖는 경우는 4비트 리플 카운터가 요구된다.
리드 카운터(101)의 상태 천이는
라이트 카운터(104)의 상태 천이는 상기와 동일하며, 라이트 +1카운터(105)의 경우 상태 천이는 동일하지만
초기상태가 "1"에 있게 된다. 따라서 제3도의 엠티플랙 신호발생부(206)와 풀 플랙신호발생부(106)는 상기 리드/라이트 카운터(101, 104)의 출력이 엠티 플랙신호발생부(206)에 받아 N바이트 메모리(102)의 엠티 플랙을 검출한다. 왜냐하면 상기 리드 카운터(101)의 출력이 제1디코더(103)를 통해 N바이트 메모리(102)와 동시에 상기 엠티 플랙 신호발생부(206)에 입력되므로 상기 엠티플랙을 검출할 수 있다. 즉, 리드/라이트 카운터(101,104)의 출력을 익스클루시브 노아게이트(EX11-EX1N)에서 비교하는데, 상기 리드 카운터(101)와 라이트 카운터(104)의 출력이 같을때 익스클루시브 노아게이트(EX11-EX1N)의 출력이 "하이"가 되어 앤드게이트(AN1)의 출력은 "하이"가 되어 N바이트 메모리(102)의 엠티로 검출된다. 왜냐하면 N바이트 메모리(102)의 동일 번지를 리드/라이트 카운터(101, 104)에 의해 지정된다면 상기 번지의 리드를 완료한후 라이트를 위해 비워둔 상태이거나 라이트된 것을 이미 리드 완료한 상태이므로 N바이트 메모리(102)의 해당 번지가 비워 있음을 알린다. 그리고 리드 카운터(101)의 출력과 라이트 +1카운터(105)의 출력을 풀 플랙 신호발생부(106)에 입력하여 N바이트 메모리(102)의 해당 번지의 풀 여부를 체킹할 수 있도록 되어있다. 즉, 리드 카운터(101)의 출력과 라이트 +1카운터(105)의 출력을 풀 플랙 신호발생부(106)의 익스클루시브 노아게이트(EX21-EX2N)에 입력하여 상기 총 입력이 같으면 익스클루시브 노아게이트(EX21-EX2N)의 출력이 "하이"가 되어 앤드게이트(AN2)의 출력은 "하이"가 된다. 이 신호가 N바이트 메모리(102)해당 번지의 풀임을 알리게 된다. 즉 양 입력이 같다는 의미는 예를들어, 제2도 (2B)에서 리드카운터(101)의 출력이 J2를 지정하고 있으면 라이트 카운터(104)는 J3를 지정하고 있으므로 결국 J2의 바로 이전에 와 있으므로 N바이트 메모리(102)가 풀 상태임을 알 수 있다. 제4도는 제1도의 제2디코더(103, 113), N바이트 메모리(102)의 구체회로도로서, 상기 라이트 카운터(104)출력을 제2디코디(113)에 따라 디코딩되어 N바이트 메모리(102)에 바이트 별로 1-n바이트 래치부에 래치되고, 리드카운터(101)의 출력을 제1디코더(103)의 출력에 따라 디코딩되어 3스테이트버퍼(ST1-STn)를 열어 독출 출력토록 되어 있다. 상기 상태는 풀/엠티플랙 신호발생부(106, 206)에서 발생되어 마이크로 컴퓨터 또는 제어부(도시하지 않았음)에 인가되어 상태에 따라 리드/라이트를 제어토록 되어 있다.
상술한 바와 같이 선입선출 회로의 플랙 제어를 위해 부수적인 연상 논리회로가 필요없이 단순한 비료 논리회로만으로 설계할 수 있으며 링구조를 지님으로해서 메모리 크기의 변경에 따른 회로설계 변경이 용이한 이점이 있다.

Claims (5)

  1. 메모리 버퍼의 선입선출 회로에 있어서,
    상기 메모리의 데이타가 선입 선출되도록 N바이트를 라이트/리드하는 N바이트 메모리(102)와,
    상기 N바이트 메모리(102)의 라이트 제어 신호단의 입력을 순차적으로 카운트하기 위한 라이트 카운터(104)와,
    상기 N바이트 메모리(102)의 리드 제어 신호단의 입력을 순차적으로 카운트하기 위한 리드카운터(101)와,
    상기 리드 카운터(101)의 출력을 디코딩하여 상기 N바이트 메모리(102)로 부터 1바이트 단위로 읽어내기 위한 인에이블 제어신호를 발생하는 제1디코더(103)와,
    상기 라이트 카운터(104)의 출력에 의해 상기 N바이트 메모리(102)로 데이타 입력단(D1)으로 입력되는 데이타를 1바이트 단위로 기록키 위한 클럭신호를 발생하는 제2디코더(113)와,
    상기 라이트 제어 신호단의 입력을 카운팅하여 초기값을 +1로 설정하여 상기 라이트 카운터(104)보다 +1이 더 많은 값을 출력하기 위한 라이트 +1카운터(105)와,
    상기 리드카운터(101)와 라이트 +1카운터(105)의 출력을 비교하여 상기 N바이트 메모리(102)의 풀(Full)상태에 대한 플랙신호를 발생하는 풀 플랙 신호발생부(106)와,
    상기 리드/라이트 카운터(101, 104)의 출력을 비교하여 상기 N바이트 메모리(102)의 엠티상태 검출 플랙신호를 발생하는 엠티플랙발생부(206)로 구성됨을 특징으로 하는 링구조를 갖는 선입선출 회로.
  2. 제1항에 있어서,
    풀 플랙 신호발생부(106)가 상기 리드/라이트 카운터(104, 101)의 출력이 같을때 N비트 메모리의 풀 플랙신호를 발생함을 특징으로 하는 링구조를 갖는 선입선출 회로.
  3. 제2항에 있어서,
    풀 플랙 신호발생부(106)가 리드 카운터(101)의 출력단과 라이트 카운터(104)의 출력단을 익스클루시브 노아게이트(EX11-EX1N)의 입력단에 연결하고 상기 익스클루시브 노아게이트(EX11-EX1N)의 출력단을 앤드게이트(AN1)의 입력단에 연결함을 특징으로 하는 링구조를 갖는 선입선출 회로.
  4. 제1항에 있어서,
    엠티 플랙 신호발생부(206)가 리드카운터(104)와 라이트 +1카운터의 출력이 같을때 N비트 메모리의 엠티 검출 출력을 발생토록 구성됨을 특징으로 하는 링구조를 갖는 선입선출 회로.
  5. 제4항에 있어서,
    엠티플랙 신호발생부(206)가 리드카운터(101)와 라이트 +1카운터(103)의 출력단을 익스클루시브 노아게이트(EX21-EX1N)의 입력단에 연결하고, 상기 익스클루시브 노아게이트(EX21-EX2N)의 출력단을 앤드게이트(AN2)의 입력단에 연결함을 특징으로 하는 링구조를 선입선출 회로.
KR1019920004856A 1992-03-25 1992-03-25 링구조를 갖는 선입선출 방식 및 회로 KR100247062B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920004856A KR100247062B1 (ko) 1992-03-25 1992-03-25 링구조를 갖는 선입선출 방식 및 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920004856A KR100247062B1 (ko) 1992-03-25 1992-03-25 링구조를 갖는 선입선출 방식 및 회로

Publications (2)

Publication Number Publication Date
KR930020433A KR930020433A (ko) 1993-10-19
KR100247062B1 true KR100247062B1 (ko) 2000-03-15

Family

ID=19330831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920004856A KR100247062B1 (ko) 1992-03-25 1992-03-25 링구조를 갖는 선입선출 방식 및 회로

Country Status (1)

Country Link
KR (1) KR100247062B1 (ko)

Also Published As

Publication number Publication date
KR930020433A (ko) 1993-10-19

Similar Documents

Publication Publication Date Title
US6337893B1 (en) Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
US5511207A (en) Program control circuit determining the designated number of times a sequence of instructions is repetitively executed to prevent further execution of a jump instruction
US5088061A (en) Routing independent circuit components
CA1330600C (en) Fifo memory system
KR0123239B1 (ko) 선입선출방식(fifo) 메모리
US3553651A (en) Memory storage system
US6480942B1 (en) Synchronized FIFO memory circuit
US4969164A (en) Programmable threshold detection logic for a digital storage buffer
US5384744A (en) Look ahead flag for FIFO
US6332152B1 (en) Arithmetic unit and data processing unit
US6810468B2 (en) Asynchronous FIFO circuit and method of reading and writing data through asynchronous FIFO circuit
KR100247062B1 (ko) 링구조를 갖는 선입선출 방식 및 회로
US6480912B1 (en) Method and apparatus for determining the number of empty memory locations in a FIFO memory device
US7250879B2 (en) Decoder circuit and decoding method
US6510483B1 (en) Circuit, architecture and method for reading an address counter and/or matching a bus width through one or more synchronous ports
US20050256996A1 (en) Register read circuit using the remainders of modulo of a register number by the number of register sub-banks
JP2862647B2 (ja) Fifoバッファ制御方式
KR0183932B1 (ko) 에프아이에프오 제어회로
KR930011390B1 (ko) 자동 전환장치의 어드레스 자동 리셋회로
JP3212332B2 (ja) 多軸位置検出装置
JP3489110B2 (ja) 先入れ先出しメモリ制御装置
JPH01106136A (ja) ハードウェア・キュー
JPS58222348A (ja) 情報処理装置
CN1178986A (zh) 存储装置及其控制方法
KR20000060415A (ko) 헤드 스택 포인터 및 테일 스택 포인터를 구비한 스택

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
FPAY Annual fee payment

Payment date: 20071129

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee