[go: up one dir, main page]

KR100303204B1 - 가변입출력폭을갖는선입선출장치 - Google Patents

가변입출력폭을갖는선입선출장치 Download PDF

Info

Publication number
KR100303204B1
KR100303204B1 KR1019980012167A KR19980012167A KR100303204B1 KR 100303204 B1 KR100303204 B1 KR 100303204B1 KR 1019980012167 A KR1019980012167 A KR 1019980012167A KR 19980012167 A KR19980012167 A KR 19980012167A KR 100303204 B1 KR100303204 B1 KR 100303204B1
Authority
KR
South Korea
Prior art keywords
input
output
data
width
control means
Prior art date
Application number
KR1019980012167A
Other languages
English (en)
Other versions
KR19990079530A (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 KR1019980012167A priority Critical patent/KR100303204B1/ko
Publication of KR19990079530A publication Critical patent/KR19990079530A/ko
Application granted granted Critical
Publication of KR100303204B1 publication Critical patent/KR100303204B1/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
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 데이터의 입출력 폭을 독자적으로 조절이 가능하도록 하여 서로 다른 데이터 버스 폭을 갖는 시스템 간의 인터페이스를 용이하게 할 수 있는 가변 입출력 폭을 갖는 선입선출 장치에 관한 것이다.
본 발명의 가변 입출력 폭을 갖는 선입선출 장치는 버스 폭이 다른 두 시스템간을 인터페이스하기 위한 선입선출 수단과, 입력측 시스템의 데이터 폭을 선입선출 수단의 데이터 폭으로 변환시키기 위한 데이터 입력 제어수단과, 선입선출 수단의 데이터 폭을 출력측의 시스템의 데이터 폭으로 변환시키기 위한 데이터 출력제어수단과, 버스 폭이 다른 두 시스템으로부터 입력되는 모드신호에 따라 데이터 입력 및 출력 수단의 데이터 폭을 선택하고, 그 모드 신호에 따라 선입선출 수단의 바이트 별 동작을 제어하기 위한 모드 제어수단을 구비하는 것을 특징으로 한다.
본 발명에 의하면, 입출력 시스템의 버스폭의 차이를 자체적으로 조절하므로써 시스템 간의 인터페이스를 용이하게 수행할 수 있을 뿐만 아니라, 단일 FIFO 칩을 생산할 수 있으므로 생산라인과 공정을 하나로 단일화 할 수 있다.

Description

가변 입출력 폭을 갖는 선입선출 장치(Apparatus of First In First Out with Variable Input/Output Width and Depth)
본 발명은 데이터 인터페이스 장치에 관한 것으로, 특히 데이터의 입출력 폭을 독자적으로 조절이 가능하도록 하여 서로 다른 데이터 버스 폭을 갖는 시스템간의 인터페이스를 용이하게 할 수 있는 가변 입출력 폭을 갖는 선입선출(First In First Out; FIFO) 장치에 관한 것이다.
일반적으로, 두 시스템 간의 데이터 인터페이스 방식으로 선입선출 방식이 주로 사용되고 있다. 종래의 선입선출 방식의 인터페이스 장치는 데이터 버스 폭이 다른 두 시스템간의 인터페이스를 위하여 버스 폭의 차이를 조절하기 위해 부가적으로 버퍼와 타이밍 제어회로를 필요로 하였다.
도1은 데이터 버스 폭이 다른 두 시스템을 인터페이스 하는 선입선출 장치를 예를 들어 도시한 회로도이다. 도1의 선입선출 장치는 16비트 시스템(2)에 접속된 16비트 FIFO(4)와, FIFO(4)에 공통접속된 8비트 버퍼(6) 및 8비트 래치(8)와, 버퍼(6) 및 래치(8)에 각각 접속된 3상(Three-state) 버퍼(12, 14)와, 래치(8)와 3상 버퍼(12, 14) 및 FIFO(4)에 접속된 버퍼 제어부(10)와, 3상 버퍼(12, 14)에 공통 접속되고 버퍼 제어부(10)에 접속된 8비트 시스템(16)을 구비한다.
도2는 상기 도1에 도시된 선입선출 장치의 동작 타이밍도를 도시한 것이다.
도1의 FIF0 장치에서 16비트 시스템(2)은 FIFO(4)로부터 입력되는 풀 풀래그(full-flag)를 체크하여 데이터를 전송한다. 상세히 하면, 16비트 시스템(2)은 FIFO(4)로부터 로우상태의 풀 플래그 신호(full_flag)가 입력되는 경우, 즉 FIFO(4)가 낫 풀(Not Full) 상태인 경우 T1 시점에서 라이트 이네이블 신호(wen)를 인가하고 16비트 데이터(FDI)를 전송한다.
FIFO(4)는 데이터 버스를 통하여 입력되는 16비트 데이터(FDI)를 저장하고, T2 시점에서 앰티 플래그(empty_flag)를 낫 앰티(Not Empty)로 세팅한다. 8비트 시스템(16)은 FIFO(4)의 앰티 플래그(empty_flag)를 체크하여 낫 앰티 상태인 경우, 즉 로우상태의 앰티 플래그(empty_flag) 신호가 입력되는 경우 T3 시점에서 리드 이네이블(Read Enable) 신호(ren)를 버퍼 제어부(1O)로 출력한다. 이어서, 버퍼 제어부(10)는 아웃 이네이블(Out Enable) 신호(oen)를 FIFO(4)로 인가하여 FIFO(4)로부터 16비트 데이터가 출력되도록 한다. 그리고, 버퍼 제어부(10)는 래치 이네이블(Latch Enable) 신호(lat_en)를 8비트 래치(8)에 인가하여 FIFO(4)로부터 데이터 버스를 통하여 출력되는 16비트 데이터(FDO) 중에서 상위 8비트 데이터를 8비트 래치(8)에 저장하고, 하위 8비트 데이터는 8비트 버퍼(6)로 통과시킨다.
그리고, 버퍼 제어부(1O)는 상기 첫번째 리드 이네이블 신호(ren)의 인가에 의해 우수 바이트 이네이블(Even Byte Enable) 신호(ev_en)를 3상 제1버퍼(12)로 인가하여 하위 8비트 데이터(BFDL)를 8비트 시스템(16)으로 전송시킨다. 또한, 버퍼 제어부(10)는 T4 시점에서 인가되는 두번째 리드 이네이블 신호(ren)에 의해 기수 바이트 이네이블(Odd Byte Enable) 신호(od-en)를 제2버퍼(14)로 출력하여 래치(8)에 저장된 상위 8비트의 데이터(BFDH)가 8비트 시스템(16)으로 인가되도록 한다.
이와 같이, 종래의 FlFO 장치는 버스 폭이 다른 두 시스템 간을 인터페이스하는 경우 버스 폭의 차이를 조절하기 위해 버퍼와 타이밍 제어회로가 부가적으로 필요하였다. 이에 따라, FIFO 메이커(Maker) 측면에서 볼 때 8비트, 16비트, 32비트 등 각각의 버스 폭에 따른 FIFO 칩을 별도로 생산해야 하므로 칩의 생산라인과 공정이 복잡한 단점이 있다.
따라서, 본 발명의 목적은 데이터의 입출력 폭을 독자적으로 조절할 수 있는 가변 입출력 폭을 갖는 선입선출 장치를 제공하는 것이다.
본 발명의 다른 목적은 입출력 폭을 독자적으로 조절하므로써, 부가적인 회로 및 부품이 필요 없이 시스템 간의 인터페이스를 용이하게 할 수 있는 가변 입출력 폭을 갖는 선입선출 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 같은 용량의 FIFO 칩을 다수개 구비하여 입출력 폭을 조절하므로써, 생산라인과 공정을 단일화시킬 수 있는 가변 입출력 폭을 갖는 선입선출 장치를 제공하는 것이다.
도1은 두 시스템에 접속된 종래의 선입선출 장치를 도시한 회로도.
도2는 도1에 도시된 선입선출 장치의 동작 타이밍도.
도3은 본 발명에 따른 가변 입출력 폭을 갖는 선입선출 장치를 도시한 블록도.
도4는 도3의 데이터 입력 제어부와 모드제어부를 도시한 도면.
도5는 도3의 데이터 출력 제어부와 모드제어부를 도시한 도면.
도6는 도3의 모드 제어부를 상세히 도시한 도면.
도7은 도3의 플래그 발생부를 도시한 도면.
도8은 도3의 모드 제어부의 출력모드에 따른 선입선출 장치의 동작 타이밍도.
* 도면의 주요부분에 대한 부호의 설명
20 : 데이터 입력 제어부 22, 24, 26 : 제1 내지 제3 입력먹스
30 : FIFO 40 : 데이터 출력 제어부
42, 44 : 제1 및 제2 출력먹스 50 : 모드 제어부
52 : 입력제어 카운터 54 : 입력모드 제어부
56 : 출력제어 카운터 58 : 출력모드 제어부
60 : 플래그 발생부
상기 목적을 달성하기 위하여, 본 발명에 따른 가변 입출력 폭을 갖는 선입선출 장치는 버스 폭이 다른 두 시스템간을 인터페이스하기 위한 선입선출 수단과, 입력측 시스템의 데이터 폭을 선입선출 수단의 데이터 폭으로 변환시키기 위한 데이터 입력 제어수단과, 선입선출 수단의 데이터 폭을 출력측의 시스템의 데이터 폭으로 변환시키기 위한 데이터 출력 제어수단과, 버스 폭이 다른 두 시스템으로부터 입력되는 모드신호에 따라 데이터 입력 및 출력 수단의 데이터 폭을 선택하고, 그 모드 신호에 따라 선입선출 수단의 바이트 별 동작을 제어하기 위한 모드 제어수단을 구비하는 것을 특징으로 한다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부 도면을 참조한 본 발명의 바람직한 실시예에 대한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 본 발명의 바람직한 실시예를 도3 내지 도8을 참조하여 상세하게 설명하기로 한다.
도3은 본 발명에 따른 가변 입출력 폭을 갖는 선입선출 장치의 구성을 도시한 회로도이다. 도3의 가변 입출력 폭을 갖는 선입선출 장치는 FIFO(30)와, 입력측의 시스템 버스 폭을 FIFO(30)의 버스 폭으로 변환시키는 데이터 입력 제어부(20)와, FIFO(30)의의 버스 폭을 출력측의 시스템 버스 폭으로 변환하는 데이터 출력 제어부(40)와, FIFO(30)의 입출력 데이터 폭의 선택과 바이트 별 동작을 조절하는 모드 제어부(50)와, FIFO(30)의 내부 상태를 나타내는 플래그 발생기(60)를 구비한다.
도3의 데이터입력 제어부(20)는 입력 측의 시스템 버스 폭을 FIFO(30)의 32비트 버스 폭으로 변환시키는 역할을 한다. 데이터입력 제어부(20)는 도4에 도시된 바와 같이 모드 제어부(50)로부터 인가되는 입력셀렉트신호(ISEL)에 따라 데이터입력버스(DIN)로부터 입력되는 데이터를 각 바이트 별로 제1 내지 제4 FIFO 입력 버스(FI0, FI1, FI2, FI3)로 출력한다. 여기서, 모드제어부(50)로부터 인가되는 입력셀렉트신호(ISEL)는 입력측의 시스템으로부터 인가되는 입력모드(IMODE)에 대응하는 신호로써, 데이터입력 제어부(20)의 입력 데이터 폭은 입력측 시스템으로부터 인가되는 입력모드(IMODE)에 따라 설정됨을 알 수 있다. 32비트 데이터입력버스(DIN[31:0])는 도3에 도시된 바와 같이 순차적인 어드레스를 갖는 8비트의 제1 내지 제4 데이터 입력버스(DIN[7:0], DIN[15:8], DIN[23:16], DIN[31:24])로 분류하여 나타낼 수 있다. 그리고, 데이터 입력 제어부(20)는 데이터입력버스(DIN[7:0], DIN[15:8], DIN[23:16], DIN[31:24]) 각각을 입력셀렉트신호(ISEL)에 따라 선택하여 제1 내지 제4 FIFO 입력버스(FI0, FI1, FI2, FI3)에 각각에 접속시키는 제1 내지 제3 입력 멀티플렉서(이하, 먹스(MUX)라 한다; 22, 24, 26)를 구비한다.
상세히 하면, 입력 데이터 폭이 32비트인 경우 데이터 입력 제어부(20)는 32비트 입력 데이터를 각 바이트 별로 제1 내지 제4 FIFO 입력버스(FI0, FI1, FI2, FI3)로 출력한다. 다시 말하여, 모드제어부(50)는 입력측 시스템으로부터 32비트 입력모드(IMODE[1:0]=1O)가 인가되는 경우 이에 대응하는 입력셀렉트신호(ISEL[1:0]=10)를 데이터입력제어부(20)의 제1 내지 제3 입력먹스(22, 24, 26)로 출력한다. 이에 따라, 제1 내지 제3 입력먹스(22, 24, 26)는 제2 내지 제4 데이터 입력버스(DIN[15:8], DIN[23:16], DIN[31:24])를 각각 제2 내지 제4 FOFO 입력버스(FI1, FI2, FI3)에 접속시키게 된다.
한편, 입력 데이터 폭이 16비트인 경우 데이터 입력 제어부(20)는 하위 16비트의 데이터입력버스(DIN[15:0])를 통하여 입력되는 16비트 데이터를 제1 및 제2 FIFO 입력버스(FI0, FI1)와 제3 및 제4 FIFO 입력버스(FI2, RI3)로 출력한다. 여기서, 상위 16비트의 데이터입력버스(DIN[31:16])는 사용되지 않는다. 다시 말하여, 모드제어부(50)는 입력측 시스템으로부터 16비트 입력모드(IMODE[1:0]=01)가 인가되는 경우 이에 대응하는 입력셀렉트신호(ISEL[1:0]=01)를 데이터입력제어부(20)로 출력한다. 이에 따라, 제1 입력머스(22)는 제2 데이터입력버스(DIN[15:8])를 제2 FIFO 입력버스(FI1)로 접속시키고, 제2 및 제3 입력먹스(24, 26)는 제1 및 제2 데이터입력버스(DIN[7:0], DIN[15:8])를 제3 및 제4 FIFO 입력버스(FI2, FI3)에 접속시킨다.
마찬가지로, 입력 데이터 폭이 8비트인 경우 데이터 입력 제어부(20)는 최하위 8비트의 데이터 입력버스(DIN[7:0])를 통하여 입력되는 8비트 데이터를 제1 내지 제4 FIFO 입력버스(FI0, FI1, FI2, FI3) 각각에 출력한다. 여기서, 상위 24비트의 데이터 입력버스(DIN[31:8])는 사용되지 않는다. 다시 말하여, 모드제어부(50)는 입력측 시스템으로부터 8비트 입력모드(IMODE[1:0]=00)가 인가되면 이에 대응하는 입력셀렉트신호(ISEL[1:0]=00)를 데이터입력제어부(20)로 출력한다. 이에 따라, 제1 내지 제3 입력먹스(22, 24, 26)는 제1 데이터입력버스(DIN[7:0])를 제2 내지 제4 FIFO 출력버스(FI1, FI2, FI3) 각각에 접속시킨다.
도3의 데이터 출력 제어부(40)는 32비트의 FIFO의 출력버스 폭을 출력측의 시스템 버스폭으로 변환하는 역할을 한다. 이는 도5에 도시된 바와 같이 제1 내지 제4 FIFO 출력버스(FO0, FO1, FO2, FO3)로부터 각각 입력되는 32비트 데이터를 모드 제어부(50)로부터 인가되는 출력 셀렉트 신호(OSEL)에 따라 데이터출력버스(DOUT[31:0])로 출력한다. 여기서, 모드제어부(50)로부터 인가되는 출력셀렉트 신호(OSEL)는 출력측의 시스템으로부터 인가되는 출력모드(IMODE)에 대응하는 신호로써, 데이터 출력 제어부(40)의 출력 데이터 폭은 출력모드(OMODE)에 따라 결정됨을 알 수 있다. 32비트 데이터출력버스(DOUT[31:0])는 도2에 도시된 바와 같이 순차적인 어드레스를 갖는 4개의 8비트 데이터출력버스(DOUT[7:0], DOUT[15:8], DOUT[23:16], DOUT[31:24])로 분류하여 나타낼 수 있다. 그리고, 데이터 출럭 제어부(40)는 제1 내지 제4 FIFO 출력버스(FO0, FO1, F02, FO3) 각각을 출력셀렉트신호(OSEL)에 따라 선택하여 제1 및 제2 데이터출력버스(DOUT[7:0], DOUT[15:8]) 각각에 접속시키는 제1 및 제2 출력먹스(42,44)를 구비한다.
상세히 하면, 출력 데이터 폭이 32비트인 경우 데이터 출력 제어부(40)는 제1 내지 제4 FIFO 출력버스(FO0, FO1, FO2, FO3)를 통해 입력되는 32비트 데이터를 32비트 데이터출력버스(DOUT[31:0])로 출력한다. 이때, 출력카운트(OCNT) 값은 무시되는데, 이 출력카운트(OCNT)는 모드제어부(50)로부터 입력되는 것으로 후술하기로 한다. 다시 말하여, 모드제어부(50)는 출력측 시스템으로부터 32비트 출력모드(OMODE[1:0]=1O)가 인가되는 경우 이에 대응하는 출력셀렉트신호(OSEL[1:0]=10)를 데이터출력제어부(40)의 제1 및 제2 출력먹스(42, 44)로 출력한다. 이에 따라, 제1 및 제2 출력먹스(42, 44)는 제1 및 제2 FIFO 출력버스(FOO, F01) 각각을 제1 및 제2 데이터출력버스(DOUT[7:0], DOUT[15:8]) 각각에 접속시킨다.
한편, 출력 데이터 폭이 16비트인 경우 데이터 출력 제어부(40)는 제4 및 제3 FIFO 출력버스(F03, F02)를 통한 16비트 데이터와, 제2 및 제1 FIFO 출력버스(F01, F00)를 통해 입력되는 16비트 데이터를 출력카운트(OCNT) 값에 따라 교번적으로 선택하여 하위 16비트 데이터출력버스(DOUT[15:0])으로 출력한다. 다시 말하여, 모드제어부(50)는 출력측 시스템으로부터 16비트 출력모드(OMODE[1:0]=01)가 인가되는 경우 이에 대응하는 출력셀렉트신호(OSEL[1:0]=01)를 데이터출력제어부(40)의 제1 및 제2 출력먹스(42, 44)로 출력한다. 동시에 모드제어부(50)는 출력카운트(OCNT) 값을 제1 및 제2 출력먹스(42, 44)로 출력한다. 출력카운트(OCNT) 값이 짝수값인 경우 제1 및 제2 출력먹스(42, 44)는 제3 및 제4 FIFO 출력버스(FO2, FO3) 각각을 제1 및 제2 데이터출력버스(DOUT[7:0], DOUT[15:8]) 각각에 접속시킨다. 또한, 출력카운트(OCNT) 값이 홀수값인 경우 제1 및 제2 출력먹스(42, 44)는 제1 및 제2 FIFO 출력버스(F00, F01) 각각을 제1 및 제2 데이터출력버스(DOUT[7:0], DOUT[15:8]) 각각에 접속시킨다.
출력 데이터 폭이 8비트인 경우 데이터 출력 제어부(40)는 제4 내지 제1 FIFO 출력버스(F03, F02, F01, F00) 각각을 통해 입력되는 8비트 데이터를 출력카운트(OCNT) 값에 따라 순차적으로 선택하여 최하위 8비트 데이터출력버스(DOUT[7:0])로 출력한다. 다시 말하여, 모드제어부(50)는 출력측 시스템으로부터 8비트 출력모드(OMODE[1:0]=00)가 인가되는 경우 이에 대응하는 출력셀렉트신호(OSEL[1:0]=O0)와 출력카운트(OCNT) 값을 데이터출력제어부(40)의 제1 출력먹스(42)로 출력한다. 이에 따라, 제1 출력먹스(42)는 제4 내지 제1 FIFO 출력버스(FO3, FO2, FO1, FO0) 각각을 출력카운트(OCNT) 값에 따라 제1 데이터출력버스(DOUT[7:0])에 순차적으로 접속시킨다
도3의 FIFO(30)는 8비트 단위의 데이터를 저장하는 제1 내지 제4 FIFO(32, 34, 36, 38)로 구성된다. 제1 내지 제4 FIFO(32, 34, 36, 38)는 각각은 제1 내지 제4 FIFO 입력버스(FI0, FI1, FI2, FI3) 및 출력버스(FO0, FO1, FO2, FO3) 각각에 접속되고, 모드 제어부(50)로부터 각각에 인가되는 라이트 이네이블 신호(WE)와 리드 이네이블 신호(RE)에 의해서 데이터를 저장하거나 출력된다.
도3의 모드 제어부(50)는 FIFO의 입출력 데이터 폭의 선택과 바이트별 동작을 조절하는 역할을 한다. 이를 위하여, 모드 제어부(50)는 도6에 도시된 바와 같이 입력제어 카운터(52) 및 출력제어 카운터(56)와, 입력제어 카운터(52)에 접속된 입력모드 제어부(54)와, 출력제어 카운터(56)에 접속된 출력모드 제어부(58)를 구비한다.
도6의 모드 제어부(50)에서 입력제어 카운터(52)는 외부로부터 펄스 형태로 입력되는 쓰기신호(WR)에 따라 카운트 값을 증가시켜 입력모드 제어부(54)로 출력한다. 여기서, 입력제어 카운터(52)는 쓰기신호(WR)의 하강에지부(Falling_edge)마다 카운트 값을 1씩 증가시키고 4까지 카운트하고 클리어된다. 입력모드 제어부(54)는 데이터입력 제어부(20)의 제1 내지 제3 입력먹스(22, 24, 26)를 제어하는 입력셀렉트(ISEL) 신호와 FIFO(30)의 라이트 이네이블(WE) 신호를 발생시키는 역할을 한다. 입력모드 제어부(54)는 입력제어 카운터(54)로부터 입력되는 카운트 값에 따라 제1 내지 제4 라이트 이네이블(WE[3:0]) 신호를 발생하여 상기 제1 내지 제4 FIFO(32, 34, 36, 38)에 바이트 별로 데이터가 기록되도록 한다.
이를 상세히 하면, 도8a에 도시된 바와 같이 입력측의 시스템으로부터 32비트 입력모드가 인가되는 경우 입력모드 제어부(54)는 매번 라이트(WR) 신호가 발생될 때마다, 즉 입력제어 카운터(52)의 값이 출력될 때마다 라이트 이네이블(WE[3:0]) 신호 모두를 제1 내지 제4 FIFO(32, 34, 36, 38)의 라이트 포인터(Write Pointer)에 인가한다. 이에 따라, 제1 내지 제4 FIFO(32, 34, 36, 38)는 각각의 입력버스(FI0, FI1, FI2, FI3)를 통하여 입력되는 1바이트 단위의 데이터를 동시에 저장하므로 FIFO는 총 4바이트(32비트)의 데이터를 저장하게 된다.
도8b에 도시된 바와 같이 16비트 입력모드가 인가되는 경우 입력모드 제어부(54)는 입력제어 카운터(52)에서 짝수값이 출력되면, 즉 짝수번째 라이트(WR) 신호가 발생하면 하위 반워드(Lower half word)에 해당하는 제1 및 제2 라이트 이네이블(WE[1], WE[0]) 신호를 제1 및 제2 FIFO(32, 34)의 라이트 포인터에 인가한다. 마찬가지로, 입력제어 카운터(52)로부터 홀수값이 출력되면, 즉 홀수번재 라이트(WR) 신호가 발생하면 상위 반워드(Upper half word)에 해당하는 제3 및 제4 라이트 이네이블(WE[1], WE[0]) 신호를 제3 및 제4 FIFO(36, 38)의 라이트 포인터에 인가한다. 이에 따라, 제1 및 제2 FIFO(32, 34)와 제3 및 제4 FIFO(36, 38)는 라이트(WR) 신호가 발생함에 따라 교번적으로 16비트 데이터를 저장하게 된다.
도8c에 도시된 바와 같이 8비트 입력모드가 인가되는 경우 입력모드 제어부(54)는 입력제어 카운터(52)의 출력값에 따라 라이트이네이블(WE[3:0]) 신호 각각을 제1 내지 제4 FIFO(32, 34, 36, 38)에 순차적으로 인가한다. 상세히 하면, 입력모드 제어부(54)는 첫번째(ICNT=0) 라이트(WR) 신호에 의해서 제1 라이트 이네이블(WE[0]) 신호를 출력하고, 두번째(ICNT=1) 라이트(WR) 신호에 의해서 제2 라이트 이네이블(WE[1])신호, 세번째(ICNT=2) 라이트(WR) 신호에 의해서 제3 라이트이네이블(WE[2]), 네번째(ICNT=3) 라이트(WR) 신호에 의해서 제4 라이트 이네이블(WE[3])를 출력한다. 이에 따라, 제1 내지 제4 FIFO(32, 34, 36, 38)는 라이트(WR) 신호가 발생함에 따라 순차적으로 8비트의 데이터를 저장하게 된다.
도6의 모드 제어부(50)에서 출력제어 카운터(56)는 외부로부터 펄스 형태로입력되는 읽기(RD) 신호에 따라 증가된 카운트 값을 출력모드 제어부(58)와 데이터출력 제어부(40)로 출력한다. 여기서, 출력제어 카운터(56)는 읽기(RD) 신호의 하강에지부(Falling_edge)마다 카운트 값을 1씩 증가시키고 4까지 카운트하고 클리어된다. 출력모드 제어부(58)는 데이터출력 제어부(40)의 제1 및 제2 출력먹스(42, 44)를 제어하는 출력셀렉트(OSEL) 신호와 FIFO(30)의 리드 이네이블(RE) 신호를 발생시키는 역할을 한다. 출력모드 제어부(58)는 출력제어 카운터(56)로부터 입력되는 카운트 값에 따라 제1 내지 제4 리드 이네이블(RE[3:0]) 신호를 발생하므로써,상기 제1 내지 제4 FIFO(32, 34, 36, 38)로부터 바이트 별로 데이터를 읽을 수 있도록 한다.
이를 상세히 하면, 도8a에 도시된 바와 같이 출력측의 시스템으로부터 32비트 출력모드(OMODE[1:0]=10)가 인가되는 경우 출력모드 제어부(58)는 매번 라이트(WR) 신호가 발생될 때마다, 즉 출력제어 카운터(56)의 값이 출력될 때마다 리드 이네이블(RE[3:0]) 신호 모두를 제1 내지 제4 FIFO(32, 34, 36, 38)의 리드 포인터(Read Pointer)에 인가한다. 결과적으로, 제1 내지 제4 FIFO(32, 34, 36, 38) 각각은 출력버스(FOO, F01, F02, F03)를 통하여 1바이트의 데이터를 동시에 출력하므로, FIFO(30)는 총 32비트의 데이터를 출력하게 된다.
도8b에 도시된 바와 같이 16비트 출력모드(OMODE[1:0]=01)가 인가되는 경우 출력모드 제어부(58)는 짝수번째 리드(RD) 신호가 발생할 때마다, 즉 출력제어 카운터(56)에서 짝수값이 출력될 때마다 하위 반워드(Lower half word)에 해다하는 제1 및 제2 리드 이네이블(RE[1], RE[0]) 신호를 제1 및 제2 FIFO(32, 34)의 리드 포인터에 인가한다. 마찬가지로, 홀수번째 라이트(RD) 신호가 발생할 때마다, 즉 출력제어 카운터(56)로부터 홀수값이 출력될 때마다 상위 반워드(Upper half word)에 해당하는 제3 및 제4 리드 이네이블(RE[2], RE[3]) 신호를 제3 및 제4 FIFO(36, 38)의 리드 포인터에 인가한다. 결과적으로, 제1 및 제2 FIFO(32, 34)와 제3 및 제4 FIFO(36, 38)는 리드(RD) 신호가 발생함에 따라 교번적으로 16비트 데이터를 출력하게 된다.
도8c에 도시된 바와 같이 8비트 출력모드(OMODE[1:0]=00)가 인가되는 경우 출력모드 제어부(58)는 출력제어 카운터(56)의 출력값에 따라 리드이네이블(RE[3:0]) 신호 각각을 제1 내지 제4 FIFO(32, 34, 36, 38)에 순차적으로 인가한다. 상세히 하면, 출력모드 제어부(58)는 첫번째(ICNT=0) 리드(RD) 신호에 의해서 제1 리드 이네이블(RE[0]) 신호를 출력하고, 두번째(ICNT=1) 리드(RD) 신호에 의해서 제2 리드 이네이블(RE[1])신호, 세번째(ICNT=2) 리드(RD) 신호에 의해서 제3 리드 이네이블(RE[2]), 네번째(ICNT=3) 리드(RD) 신호에 의해서 제4 리드 이네이블(RE[3])를 출력한다. 결과적으로, 제1 내지 제4 FIFO(32, 34, 36, 38)는 리드(RD) 신호가 발생함에 따라 순차적으로 8비트의 데이터를 출력하게 된다.
도3의 플래그 발생기(60)는 도7에 도시된 바와 같이 FIFO(30)의 라이트 포인터와 리드 포인터의 정보로부터 내부의 상태를 외부의 시스템(즉, 입력 및 출력측의 시스템)에 알려주는 역할을 한다. 여기서, EF(Empty Flag)는 FIFO(30)가 모두 비어있어 더 이상 읽어갈 데이터가 존재하지 않음을 나타내는 플래그로 EF=1 이면 비어있는 상태를 나타내고, EF=O 이면 비어있지 않은 상태를 나타낸다. HF(Half Flag)는 FIFO(30)가 절반 이상 기록되어 있는 상태를 나타내는 플래그로 HF=1이면 반을 초과하여 기록된 상태를 나타내고, HF=O이면 반이하로 기록된 상태를 나타낸다. FF(Full Flag)는 FIFO(30)가 가득 차서 더 이상의 데이터를 기록할 수 없음을 나타내는 플래그로 FF=1 이면 가득 찬 상태를 나타내고, FF=0이면 가득 차지 않은 상태를 나타낸다.
이상 설명한 바와 같이, 본 발명에 따른 가변 폭을 갖는 선입선출 장치는 자체에서 입력 및 출력 시스템의 버스폭의 차이를 조절하므로써, 시스템 간의 인터페이스를 용이하게 수행할 수 있다. 또한, 본 발명에 따른 가변 폭을 갖는 선입선출 장치는 바이트 단위의 FIFO 칩을 다수 구비하고 이를 버스 폭에 따라 이네이블시키므로써, 종래와 같이 버스폭에 따른 각각의 FIFO 칩을 필요로 하지 않는다. 이에 따라, 단일 FIFO 칩을 생산할 수 있으므로 생산라인과 공정을 하나로 단일화 할 수 있다.
한편, 상술한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (17)

  1. 버스 폭이 다른 두 시스템 간을 인터페이스하기 위한 선입선출 수단과, 입력측 시스템의 데이터 폭을 상기 선입선출 수단의 데이터 폭으로 번환시키기 위한 데이터 입력 제어수단과, 상기 선입선출 수단의 데이터 폭을 출력측의 시스템의 데이터 폭으로 변환시키기 위한 데이터 출력 제어수단과, 상기 버스 폭이 다른 두 시스템으로부터 입력되는 모드신호에 따라 데이터 입력 및 출력 수단의 데이터 폭을 선택하고, 그 모드 신호에 따라 상기 선입선출 수단의 바이트 별 동작을 제어하기 위한 모드 제어수단을 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  2. 제1항에 있어서, 상기 모드 제어수단으로부터 신호에 따라서 상기 선입선출 수단 내의 데이터 기록가능 여부를 상기 버스 폭이 다른 두 시스템에 알려주기 위한 플래그 발생수단을 추가로 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  3. 제1항에 있어서, 상기 선입선출 수단은 바이트 단위로 동작하는 제1 내지 제4 선입선출 수단을 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  4. 제1항에 있어서, 상기 데이터 입력 제어수단은 상기 버스 폭이 다른 두 시스템 중 입력측 시스템으로부터 입력되는 데이터를 상기 모드 제어수단의 입력 셀렉트신호에 따라 바이트 단위로 선택하여 상기 제2 내지 제4 선입선출 수단 각각의 입력버스로 출력하기 위한 제1 내지 제3 멀티플렉서를 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  5. 제4항에 있어서, 상기 입력셀렉트 신호는 상기 버스 폭이 다른 두 시스템 중 입력측 시스템으로부터 상기 모드 제어수단으로 입력된 입력모드 신호에 대응하는 신호인 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  6. 제4항에 있어서, 상기 버스 폭이 다른 두 시스템 중 입력측 시스템으로부터 입력되는 최하위의 1바이트는 그대로 상기 제1 선입선출 수단의 입력버스로 출력되는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  7. 제1항에 있어서, 상기 데이터 출력 제어수단은 상기 선입선출 수단의 제1 내지 제4 출력버스 중 어느 하나를 상기 모드 제어수단의 력셀렉트신호와 출력카운트 신호에 따라 선택하여 출력버스에 접속시키기 위한 제1 멀티플렉서와, 상기 선입선출 수단의 제2 및 제4 출력버스 중 어느 하나를 상기 모드 제어 수단의 출력셀렉트신호와 출력카운트 신호에 따라 선택하여 출력버스에 접속시키기 위한 제2 멀티플렉서를 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  8. 제7항에 있어서, 상기 출력셀렉트 신호는 상기 출력측 시스템으로부터 상기 모드 제어수단으로 입력된 출력모드 신호에 대응하는 신호인 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  9. 제1항에 있어서, 상기 모드 제어수단은 상기 데이터 입력 제어수단의 멀티플렉서를 제어하는 입력셀렉트 신호와 상기 선입선출 수단의 라이트 이네이블 신호를 발생하는 입력 제어수단과, 상기 데이터 출력 제어수단의 멀티플렉서를 제어하는 출력셀렉트 신호와 출력 카운트 신호와 상기 선입선출 수단의 리드 이네이블 신호를 발생하는 출력 제어 수단을 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  10. 제9항에 있어서, 상기 입력 제어수단은 상기 버스 폭이 다른 두 시스템 중 입력측 시스템으로부터 입력되는 읽기신호를 카운트하는 입력제어 카운트 수단과, 상기 버스 폭이 다른 두 시스템 중 입력측 시스템으로부터 입력되는 입력 모드신호와 상기 입력제어 카운트 수단으로부터 입력되는 카운트 값에 따른 입력셀렉트 신호와 라이트 이네이블 신호를 발생하는 입력모드 제어수단을 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  11. 제9항에 있어서, 상기 출력 제어수단은 상기 버스 폭이 다른 두 시스템 중 출력측 시스템으로부터의 입력되는 쓰기신호를 카운트하는 출력제어 카운트 수단과, 상기 버스 폭이 다른 두 시스템 중 출력측 시스템으로부터 입력되는 출력 모드신호와 상기 출력제어 카운트 수단으로부터 입력되는 카운트 값에 따른 출력셀렉트 신호와 리드 이네이블 신호를 발생하는 출력모드 제어수단을 구비하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  12. 제10항에 있어서, 상기 입력모드 제어수단은 상기 입력모드가 32비트를 나타내는 경우 상기 입력제어 카운트 값에 따라 제1 내지 제4 라이트 이네이블 신호를 모두 인가하는 것을 특깅으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  13. 제10항에 있어서, 상기 입력모드 제어수단은 상기 입력모드가 16비트를 나타내는 경우 상기 입력제어 카운트 값에 따라 제1 및 제2 라이트 이네이블 신호와 제3 및 제4 라이트 이네이블 신호를 교번적으로 인가하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  14. 제10항에 있어서, 상기 입력모드 제어수단은 상기 입력모드가 8비트를 나타내는 경우 상기 입력제어 카운트 값에 따라 제1 내지 제4 라이트 이네이블 신호 각각을 순차적으로 인가하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  15. 제11항에 있어서, 상기 출력모드 제어수단은 상기 출력모드가 32비트를 나타내는 경우 상기 출력제어 카운트 값에 따라 제1 내지 제4 리드 이네이블 신호를 모두 인가하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  16. 제11항에 있어서, 상기 출력모드 제어수단은 상기 출력모드가 16비트를 나타내는 경우 상기 출력제어 카운트 값에 따라 제1 및 제2 리드 이네이블 신호와 제3 및 제4 리드 이네이블 신호를 교번적으로 인가하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
  17. 제11항에 있어서, 상기 출력모드 제어수단은 상기 출력모드가 8비트를 나타내는 경우 상기 출력제어 카운트 값에 따라 제1 내지 제4 리드 이네이블 신호 각각을 순차적으로 인가하는 것을 특징으로 하는 가변 입출력 폭을 갖는 선입선출 장치.
KR1019980012167A 1998-04-06 1998-04-06 가변입출력폭을갖는선입선출장치 KR100303204B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980012167A KR100303204B1 (ko) 1998-04-06 1998-04-06 가변입출력폭을갖는선입선출장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980012167A KR100303204B1 (ko) 1998-04-06 1998-04-06 가변입출력폭을갖는선입선출장치

Publications (2)

Publication Number Publication Date
KR19990079530A KR19990079530A (ko) 1999-11-05
KR100303204B1 true KR100303204B1 (ko) 2001-11-22

Family

ID=37529726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012167A KR100303204B1 (ko) 1998-04-06 1998-04-06 가변입출력폭을갖는선입선출장치

Country Status (1)

Country Link
KR (1) KR100303204B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079693A (en) * 1989-02-28 1992-01-07 Integrated Device Technology, Inc. Bidirectional FIFO buffer having reread and rewrite means
US5673396A (en) * 1994-12-16 1997-09-30 Motorola, Inc. Adjustable depth/width FIFO buffer for variable width data transfers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079693A (en) * 1989-02-28 1992-01-07 Integrated Device Technology, Inc. Bidirectional FIFO buffer having reread and rewrite means
US5673396A (en) * 1994-12-16 1997-09-30 Motorola, Inc. Adjustable depth/width FIFO buffer for variable width data transfers

Also Published As

Publication number Publication date
KR19990079530A (ko) 1999-11-05

Similar Documents

Publication Publication Date Title
US5764966A (en) Method and apparatus for reducing cumulative time delay in synchronizing transfer of buffered data between two mutually asynchronous buses
US5134702A (en) Serial-to-parallel and parallel-to-serial converter
JPH06259225A (ja) データ転送同期装置
JPH04301290A (ja) 先入れ先出しメモリ回路
US5764967A (en) Multiple frequency memory array clocking scheme for reading and writing multiple width digital words
US5287358A (en) ATM switch circuit configuration system
US7216185B2 (en) Buffering apparatus and buffering method
KR100303204B1 (ko) 가변입출력폭을갖는선입선출장치
EP0695988A2 (en) A first-in first-out memory
US6701396B2 (en) Data burst transfer circuit, parallel-serial and serial-parallel conversion circuits, and an oscillation circuit
JPH0479011B2 (ko)
JP4019757B2 (ja) 記憶装置
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
US6510486B1 (en) Clocking scheme for independently reading and writing multiple width words from a memory array
JP4060270B2 (ja) 送信装置と受信装置の間においてビデオのライン・データを遅延させる装置および方法
JP2002050172A (ja) Fifo制御回路
JP2773757B2 (ja) Atmセル多重装置
KR940001103Y1 (ko) 직병렬 데이타 컨버터회로
JP2000003332A (ja) 双方向バスサイズ変換回路
KR100200736B1 (ko) 마이콤 인터페이스 장치
US20020078468A1 (en) Data processor for outputting data according to their types
JPS6155686B2 (ko)
KR0181485B1 (ko) 데이터 통신용 데이터 버퍼링 장치
EP1585024A1 (en) An improved on-chip storage memory for storing variable data bits
KR100188940B1 (ko) 단일 메모리를 이용한 이중스택의 제어장치 및 데이터 전송 방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19980406

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19980406

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20000831

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20010628

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20010710

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20010711

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20040702

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20050628

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20060630

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20070627

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20080626

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20090626

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20090626

Start annual number: 9

End annual number: 9

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee