KR100221298B1 - 개량된 선입선출형 버퍼 - Google Patents

개량된 선입선출형 버퍼 Download PDF

Info

Publication number
KR100221298B1
KR100221298B1 KR1019960019095A KR19960019095A KR100221298B1 KR 100221298 B1 KR100221298 B1 KR 100221298B1 KR 1019960019095 A KR1019960019095 A KR 1019960019095A KR 19960019095 A KR19960019095 A KR 19960019095A KR 100221298 B1 KR100221298 B1 KR 100221298B1
Authority
KR
South Korea
Prior art keywords
data
pointer
signal
ram array
read
Prior art date
Application number
KR1019960019095A
Other languages
English (en)
Other versions
KR970076805A (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 KR1019960019095A priority Critical patent/KR100221298B1/ko
Publication of KR970076805A publication Critical patent/KR970076805A/ko
Application granted granted Critical
Publication of KR100221298B1 publication Critical patent/KR100221298B1/ko

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)
  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 개량된 FIFO버퍼에 관한 것으로, 프로세서간들간에 전송되는 데이터를 저장하는 램어레이(3)와; 램어레이(3)로 입력되는 직렬신호데이터를 병렬신호데이터로 변환시키는 직/병렬 변환부(1); 램어레이(3)로부터 출력되는 병렬신호데이터를 직렬신호데이터로 변환시키는 병/직렬변환부(2); 램어레이(3)에 데이터를 저장할 위치를 나타내는 포인터값을 저장하는 쓰기포인터(4); 램어레이(3)에 저장된 데이터를 읽어올 위치를 나타내는 포인터값을 저장하는 읽기포인터(5); 쓰기와 읽기동작이 가능한 상태인지를 나타내는 플래그발생부(6); 램어레이(3)에 데이터를 저장할 수 있는 메모리 잔존용량의 크기에 따라서 플래그발생부(6)의 출력신호를 제어하는 전송제어부(9); WR신호가 입력되면 쓰기포인터(4)에 저장된 포인터값에 해당하는 곳에 데이터를 저장하고 포인터값을 1증가시키는 쓰기제어부(7)및; RD신호가 입력되면 읽기포인터(5)에 저장된 포인터값에 해당하는 곳의 데이터를 읽어내고 포인터값을 1감소시키는 읽기제어부(8)로 구성되어, 메모리 잔존용량이 부족할 경우 쓰기동작을 중지시킴으로써, 프레임데이터가 중간에서 단절되어 결국 프레임데이터 전체를 잃어버리게되는 현상을 예방하는 효과가 있다.

Description

개량된 선입선출형 버퍼(An improved FIFO buffer)
제1도는 종래의 선입선출형(FIFO; First In First Out) 버퍼의 내부 블록도.
제2도는 본 발명에 따른 개량된 선입선출형(FIFO) 버퍼의 내부 블록도이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 직/병렬 변환부 2 : 병/직렬 변환부
3 : 램 어레이 4 : 쓰기 포인터
5 : 읽기 포인터 6 : 플래그 발생부
7 : 쓰기 제어부 8 : 읽기 제어부
9 : 전송 제어부 10 : 프레임 크기 레지스터
11 : 포인터 계산부 12 : 포인터 레지스터
13 : 비교부 WR : 쓰기 신호
RD : 읽기 신호 FF : 풀 플래그 신호
EF : 엠프티 플래그 신호
본 발명은 FIFO 버퍼에 관한것으로, 특히 프로세서간에 프레임 단위로 전송되는 데이터의 손실을 방지하기 위해서 FIFO 버퍼의 메모리 잔존 용량이 프레임 크기에 비해 작을 경우, 데이터의 쓰기 동작을 정지시키도록 된 개량된 FIFO 버퍼에 관한 것이다.
일반적으로 프로세서들간에 데이터를 전송할 경우에는 각 프로세서의 데이터 처리 속도에 차이가 있기 때문에 데이터를 전송하는 도중에 대기 상태가 발생하게 되는데, 이러한 사태를 방지하고 데이터 처리 속도를 단축시키기 위해 완충용 기억 장치 역할을 하는 FIFO 버퍼를 프로세서와 프로세서 사이에 두어 전송 데이터를 입력하고 출력하는 버퍼링을 한다. 이때 FIFO 버퍼에서 전송되는 데이터를 처리하는 방식은 가장 먼저 입력된 데이터가 가장 먼저 출력되는 선입선출 방식으로 이루어 진다.
상기와 같은 FIFO 버퍼를 이용한 프로세서들간의 데이터 전송을 설명하면 다음과 같다.
제1도는 종래의 FIFO 버퍼의 내부 블록도로서, 직/병렬(Serial/Parallel) 변환부(1)와 병/직렬(Parallel/Serial) 변환부(2), 램 어레이(3), 쓰기 포인터(4), 읽기 포인터(5), 플래그 발생부(6), 쓰기 제어부(7) 및 읽기 제어부(8)로 구성되어 있다.
여기서, 상기 램 어레이(3)는 프로세서와 프로세서간에 전송되는 데이터를 저장하고, 상기 직/병렬 변환부(1)는 직렬 버스를 통해 전송되는 직렬 신호 데이터를 병렬 신호로 변환시키고, 상기 병/직렬 변환부(2)는 변환된 병렬 신호 데이터를 다시 직렬 신호 데이터로 변환시킨다.
또한 상기 플래그 발생부(6)는 현재의 FIFO 버퍼에 더 이상 데이터를 저장할 영역이 없을 경우 풀 플래그(FF : Full flag) 신호를 "로우(LOW)" 상태로 출력하여 도시되지 않은 송신 프로세서가 FIFO 버퍼에 데이터를 쓰지 못하게 하고, 현재의 FIFO 버퍼에 저장된 데이터가 하나도 없으면 엠프티 플래그(EF : Empty flag) 신호를 "로우(LOW)" 상태로 출력하여 도시되지 않은 수신 프로세서가 더 이상 FIFO 버퍼의 데이터를 읽어 가지 못하게 한다.
이어서, 상기 쓰기 포인터(4)와 읽기 포인터(5)에는 데이터의 읽기와 쓰기가 수행되는 현재 포인터 값이 저장되면, 읽기와 쓰기 동작에 따라서 그 포인터 값이 증감된다.
그리고 상기 쓰기 제어부(7)는 송신 프로세서로부터 라이트(WR) 신호가 입력되면, 상기 쓰기 포인터(4)의 포인터 값이 지정하는 곳에 버스를 통해 입력된 데이터를 저장하게 한 후 상기 포인터 값을 1 증가 시키고, 상기 읽기 제어부(8)는 수신 프로세서로부터 리드(RD) 신호가 입력되면, 상기 읽기 포인터(5)가 지정하는 곳의 데이터를 상기 병/직렬 변환기(2)를 통해 버스 상으로 출력하게 한 후 상기 포인터 값을 1 감소시킨다.
그런데 공통 버스를 사용하는 다중 프로세서 시스템에서, 상기와 같이 동작하는 종래의 FIFO 버퍼를 이용하여 프레임 단위로 프로세서들 간에 데이터를 전송하는 경우에는 상기 FIFO 버퍼의 메모리 잔존 용량이 한 프레임의 데이터를 전부 쓸 수 있는 크기가 되지 않아도 상기 FF 신호가 "로우" 상태가 될 때까지 계속 쓰기 동작을 하게 되는데, 이렇게 되면 전체 프레임 데이터의 일부만 저장되어 프레임 데이터가 중간에서 손실되게 되고, 읽기 동작을 수행하더라도 전송되는 프레임 데이터를 전부 읽지 못하게 되어, 결국은 해당 프레임 데이터를 잃어버리게 되는 문제점이 있다.
따라서, 상기와 같은 문제점을 해결하기 위해서 본 발명은 FIFO 버퍼를 이용하여 프레임 단위로 프로세서간의 데이터 전송을 함에 있어서, 현재 FIFO 버퍼에 데이터를 저장할 수 있는 메모리의 잔존 용량을 파악하여, 메모리의 잔존 용량이 한 프레임의 데이터를 전부 전송할 수 없을만큼 작을 경우에 데이터를 저장하지 못 하도록 된 개량된 FIFO 버퍼를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위해서 본 발명은 프로세서간들간에 전송되는 데이터를 저장하는 램 어레이와; 상기 램 어레이로 입력되는 직렬 신호 데이터를 병렬 신호 데이터로 변환시키는 직/병렬 변환부; 상기 램 어레이로부터 출력되는 병렬 신호 데이터를 직렬 신호 데이터로 변환시키는 병/직렬 변환부; 상기 램 어레이에 데이터를 저장할 위치를 나타내는 포인터 값을 저장하는 쓰기 포인터; 상기 램 어레이에 저장된 데이터를 읽어 올 위치를 나타내는 포인터 값을 저장하는 읽기 포인터; 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그 발생부; 상기 램 어레이에 데이터를 저장할수 있는 메모리의 잔존 용량의 크기에 따라서 상기 플래그 발생부의 출력 신호를 제어하는 전송 제어부; WR 신호가 입력되면 상기 쓰기 포인터에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 상기 포인터 값을 1 증가시키는 쓰기 제어부 및; RD 신호가 입력되면 상기 읽기 포인터에 저장된 포인터 값에 해당하는 곳의 데이터를 읽어 내고 상기 포인터 값을 1 감소시키는 읽기 제어부로 구성된 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
제2도는 본 발명에 따른 개량된 선입선출형(FIFO) 버퍼의 내부 블록도이다.
제2도에 도시된 바와 같이, 본 발명은 프로세서간들간에 전송되는 데이터를 저장하는 램 어레이(3)와; 상기 램 어레이(3)로 입력되는 직렬 신호 데이터를 병렬 신호 데이터로 변환시키는 직/병렬 변환부(1); 상기 램 어레이(3)로부터 출력되는 병렬 신호 데이터를 직렬 신호 데이터로 변환시키는 병/직렬 변환부(2); 상기 램 어레이(3)에 데이터를 저장할 위치를 나타내는 포인터 값을 저장하는 쓰기 포인터(4); 상기 램 어레이(3)에 저장된 데이터를 읽어 올 위치를 나타내는 포인터 값을 저장하는 읽기 포인터(5); 쓰기와 읽기 동작이 가능한 상태인지를 나타내는 플래그 발생부(6); 상기 램 어레이(3)에 데이터를 저장할 수 있는 메모리의 잔존 용량의 크기에 따라서 상기 플래그 발생부(6)의 출력 신호를 제어하는 전송 제어부(9); WR 신호가 입력되면 상기 쓰기 포인터(4)에 저장된 포인터 값에 해당하는 곳에 데이터를 저장하고 상기 포인터 값을 1 증가시키는 쓰기 제어부(7) 및; RD 신호가 입력되면 상기 읽기 포인터(5)에 저장된 포인터 값에 해당하는 곳의 데이터를 읽어내고 상기 포인터 값을 1 감소시키는 읽기 제어부(8)로 구성된다.
또한, 상기 전송 제어부(9)는 프레임의 크기에 해당하는 값을 저장하는 프레임 크기 레지스터(10)와; 상기 쓰기 포인터(4)의 포인터 값과 상기 읽기 포인터(5)의 포인터 값의 차를 계산하는 포인터 계산부(11); 상기 포인터 계산부(11)의 값에 따라 상기 램 어레이(3)에 데이터를 저장할 수 있는 메모리의 잔존 용량의 크기에 해당하는 값을 저장하는 포인터 레지스터(12) 및; 상기 포인터 레지스터(12)의 값과 상기 프레임 크기 레지스터(10)의 값을 비교하여 상기 램 어레이(3)에 데이터를 저장할 수 있는 메모리의 잔존 용량의 크기가 상기 프레임 단위의 크기보다 작을 경우에 상기 플래그 발생부(6)의 FF 출력 신호를 "로우" 상태로 셋팅하게 하는 제어 신호를 발생하는 비교부(13)로 구성된다.
상기와 같이 구성된 본 발명의 바람직한 실시예의 작용 및 효과는 다음과 같다.
상기 램 어레이(3)에 데이터 쓰기 동작을 수행하기 위해서는 우선 송신 프로세서측에서 상기 플래그 발생부(6)의 FF신호 상태를 확인하여야 한다. 만약 FF 신호의 상태가 "하이" 상태로 확인이 되면 송신 프로세서측에서 WR 신호를 상기 쓰기 제어부(7)로 입력하게 되는데, 이때 상기 쓰기 제어부(7)에서는 상기 쓰기 포인터(4)의 포인터 값에 해당하는 상기 램 어레이(3)의 위치에서부터 쓰기 동작을 수행하고 상기 쓰기 포인터(4) 값을 1 증가시킨다. 이때 상기 플래그 발생부(6)의 FF 신호는 상기 전송 제어부(9)의 제어 신호에 의해 "하이" 혹은 "로우" 상태로 변하게 되고, 쓰기 동작이 정상적으로 수행되는 동안에는 상기 전송 제어부(9)의 제어 신호에 따라 FF 신호는 "하이" 상태를 유지한다.
또한, 상기 램 어레이(3)로 입력된 데이터를 읽어가기 위해서는 우선 수신 프로세서측에서 상기 플래그 발생부(6)의 EF 신호 상태를 확인 하여야 한다. 만약 EF 신호의 상태가 "하이" 상태로 확인이 되면 수신 프로세서측에서 RD 신호를 입력하게 되는데, 이때 상기 읽기 제어부(8)에서는 상기 읽기 포인터(5)의 포인터 값에 해당하는 상기 램 어레이(3)의 위치에서부터 읽기 동작을 수행하게 되고 상기 읽기 포인터(5) 값을 1 감소시킨다.
상기의 쓰기 동작에 있어서, 상기 전송 제어부(9)의 쓰기 제어 동작을 살펴 보면 다음과 같다.
먼저, 상기 전송 제어부(9)의 동작이 수행되려면 프로세서간에 데이터 전송이 일정한 크기의 프레임 단위(예컨대, 8×N Bits)로 이루어져야 한다.
또한 상기 프레임의 크기는 프로세서간의 데이터 전송 버스 혹은 프레임 크기 입력 전용 버스를 통해 입력되는 신호에 의해 정해지는데, 개별적으로 프레임 크기 지정을 위해 버스를 구성하는 것은 구조가 복잡해 지는 단점이 있다. 이렇게 입력된 프레임 크기 지정 신호는 상기 프레임 크기 레지스터(10)에 저장되고, 상기 포인터 계산부(11)에서는 상기의 쓰기 동작에 따라 변하는 상기 쓰기 포인터(4)의 포인터 값과 상기의 읽기 동작에 따라 변하는 상기 읽기 포인터(5)의 포인터 값의 차이를 계산하고, 상기의 계산 결과로 얻어진 상기 램 어레이(3)의 잔존 용량에 해당하는 값은 상기 포인터 레지스터(12)에 저장되며, 상기 비교부(13)에서는 상기 포인터 크기 레지스터(10)의 값과 상기 포인터 레지스터(12)의 값을 비교하여 상기 포인터 레지스터(12)의 값이 상기 프레임 크기 레지스터(10)의 값보다 크거나 같은 경우에는 상기 플래그 발생부(6)의 FF 신호를 "하이" 상태로 셋팅시키는 제어 신호를 발생하고, 상기 포인터 레지스터(12)의 값이 상기 프레임 크기 레지스터(10)의 값보다 작은 경우에는 상기 플래그 발생부(6)의 FF 신호를 "로우" 상태로 셋팅시키는 제어 신호를 발생한다.
예를 들어, 1개 프레임 단위가 8 비트 레지스터 4개의 크기로 정해진 경우 전체 프레임 전송 데이터의 크기는 8×4 = 32 비트가 되며, 이러한 프레임 크기에 해당하는 신호가 상기 프레임 크기 레지스터(10)에 저장되어 있고 정상적으로 쓰기 동작이 수행되고 있을 때, 상기 비교부(13)에서는 상기 포인터 레지스터(12)의 값과 상기 프레임 크기 레지스터(10)의 값을 비교하여 상기 포인터 레지스터(12)의 값이 상기 프레임 크기 레지스터(13)의 값보다 작은 경우[예컨대, 상기 포인터 레지스터(12)의 값이 32 비트 미만을 나타내는 경우]가 발생되면, 상기 램 어레이(3)에 쓰기 동작이 가능한 영역이 남아 있더라도 프레임 데이터가 중간에서 단절되는 것을 방지하기 위해서 상기 플래그 발생부(6)의 FF 신호를 로우 상태로 출력하게 하여 데이터 쓰기 동작을 중지시키게 된다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 개량된 FIFO 버퍼를 이용하여 프레임 단위로 프로세서간의 데이터 전송을 하게 되면, 현재 FIFO 버퍼에 쓰기 동작이 가능한 메모리 잔존 용량의 크기를 알아 내어, 메모리 잔존 용량의 크기가 프레임 데이터 전부를 전송할 수 없을 만큼 작을 경우에 데이터 쓰기 동작을 정지시킴으로써, 전송되는 프레임 단위의 데이터가 중간에서 단절됨으로 해서 프레임 데이터 전체를 잃어 버리게 되는 현상을 예방하는 효과가 있다.

Claims (1)

  1. 직렬 데이터를 병렬로 변환하여 램 어레이(3)에 저장하고, 램 어레이로부터 병렬 데이터를 읽어 직렬로 변환한 후 출력하여 프레임 단위로 입력순서에 따라 데이터를 순차적으로 출력하고, 플래그 발생부(6)가 상기 램 어레이(3)의 충만정도에 따른 플래그를 발생하도록 된 선입선출 버퍼에 있어서, 프레임 크기에 해당하는 값을 저장하고 있는 프레임 크기 레지스터(10)와; 라이트(WR)신호와 리드(RD)신호에 따른 쓰기 포인터와 읽기 포인터의 차를 구하여 기록 가능한 메모리 량을 산출하는 포인터 계산부(11); 및 상기 포인터 계산부(11)의 계산값과 상기 프레임 크기 레지스터의 저장값을 비교하여 상기 계산값이 상기 프레임 크기 레지스터의 저장값보다 클 경우에만, 상기 램 어레이(3)에 데이터를 라이트할 수 있게 하는 플래그를 상기 플래그발생부(6)가 발생하도록 제어하는 비교부(13)를 포함하는 개량된 선입선출형 버퍼.
KR1019960019095A 1996-05-31 1996-05-31 개량된 선입선출형 버퍼 KR100221298B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960019095A KR100221298B1 (ko) 1996-05-31 1996-05-31 개량된 선입선출형 버퍼

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960019095A KR100221298B1 (ko) 1996-05-31 1996-05-31 개량된 선입선출형 버퍼

Publications (2)

Publication Number Publication Date
KR970076805A KR970076805A (ko) 1997-12-12
KR100221298B1 true KR100221298B1 (ko) 1999-09-15

Family

ID=19460366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960019095A KR100221298B1 (ko) 1996-05-31 1996-05-31 개량된 선입선출형 버퍼

Country Status (1)

Country Link
KR (1) KR100221298B1 (ko)

Also Published As

Publication number Publication date
KR970076805A (ko) 1997-12-12

Similar Documents

Publication Publication Date Title
US6389489B1 (en) Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US5596540A (en) Serial to parallel and parallel to serial architecture for a RAM based FIFO memory
US4949301A (en) Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US5365485A (en) Fifo with fast retransmit mode
US4969164A (en) Programmable threshold detection logic for a digital storage buffer
US5349683A (en) Bidirectional FIFO with parity generator/checker
US4742446A (en) Computer system using cache buffer storage unit and independent storage buffer device for store through operation
US4803654A (en) Circular first-in, first out buffer system for generating input and output addresses for read/write memory independently
KR960005106B1 (ko) 버퍼관리장치
US5469449A (en) FIFO buffer system having an error detection and resetting unit
KR100221298B1 (ko) 개량된 선입선출형 버퍼
US6584512B1 (en) Communication DMA device for freeing the data bus from the CPU and outputting divided data
CN115221082B (zh) 一种数据缓存方法、装置及存储介质
US5418744A (en) Data transfer apparatus
JP2746284B2 (ja) Oamセル挿入装置
JP2597040B2 (ja) Fifoメモリ装置
EP0369773A3 (en) Queue buffer memory control system
JP2000003332A (ja) 双方向バスサイズ変換回路
KR100221297B1 (ko) 개량된 선입선출형 버퍼
US5732011A (en) Digital system having high speed buffering
KR100268494B1 (ko) 선입선출메모리장치의플레그생성장치
US5115496A (en) Queue device capable of quickly transferring a digital signal unit of a word length different from a single word length
KR100557561B1 (ko) Fifo 저장 장치
KR100236538B1 (ko) 선입 선출 메모리 장치
KR930009064B1 (ko) 피포(fifo)를 이용한 두 시스템간의 통신방법

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: 20020614

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee