KR20030045023A - Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법 - Google Patents

Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법 Download PDF

Info

Publication number
KR20030045023A
KR20030045023A KR10-2003-7001661A KR20037001661A KR20030045023A KR 20030045023 A KR20030045023 A KR 20030045023A KR 20037001661 A KR20037001661 A KR 20037001661A KR 20030045023 A KR20030045023 A KR 20030045023A
Authority
KR
South Korea
Prior art keywords
data
read
write
fifo
command
Prior art date
Application number
KR10-2003-7001661A
Other languages
English (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 코닌클리즈케 필립스 일렉트로닉스 엔.브이.
Publication of KR20030045023A publication Critical patent/KR20030045023A/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
    • 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/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

FIFO 원형 버퍼는 메모리 어레이를 어드레스하기 위해 다수의 포트를 구비함으로써 하나 이상의 데이터 요소 전달을 단일방향으로 수행할 수 있기 때문에 집적 회로 디바이스들 간의 고속 스트리밍 데이터 전달을 가능하게 한다. 또한, 다중 전달이 하나의 버스 싸이클 동안 수행될 수 있으며, 데이터 전달의 수도 선택가능하다. FIFO 제어 회로는 거의 비어 있는 데이터 상태 또는 거의 차 있는 데이터 상태를 포함하는 메모리 어레이의 데이터 상태에 응답하여 전달되는 데이터 요소의 수를 제한한다.

Description

FIFO 버퍼 및 이를 포함하는 통신 링크 및 데이터 통신 방법{FIFO BUFFER THAT CAN READ AND/OR WRITE A SELECTABLE NUMBER OF DATA WORDS PER BUS CYCLE}
반도체 제조 기술은 집적 회로 디바이스의 밀도 및 속도를 계속적으로 증가시키고 있다. 1 ㎝2의 실리콘 면적 당 수백만 개의 로직 게이트를 가짐으로써, 완성된 시스템 온 칩(Systems on a Chip)(SOC)을 제조하는 것과 같은 대용량 집적(mass integration)이 가능하다. 불행하게도, 종종 고밀도 집적 시스템을 설계할 수 있는 능력이 제조 능력을 따라가지 못하고 있다. 증가된 복잡성은 SOC를 형성하는 게이트의 블록들 간의 인터페이스와 IC 간의 인터페이스의 결함을 제거하고(debugging) 결함이 없음을 증명하는 것과 관련된 위험을 더 증가시킨다.
고밀도 집적 디바이스의 설계 주기를 줄이는 하나의 방법은 RSP(Rapid Silicon Prototyping)이며, 이 방법에서는 하드웨어 및 소프트웨어는 주문형 집적 회로(ASIC) 또는 집적된 다수의 ASIC에 대해서는 동시적으로 설계된다. 설계자가 진보된 ASIC 및 이와 관련된 시스템 소프트웨어 내용을 보다 신속하게 그리고 높은 성공 확률로 생성할 수 있는 능력을 실질적으로 개선하기 위해, RSP 방식은 설계 재사용, 온 칩 버스 아키텍쳐(on-chip bus architectures) 및 시스템 집적의 방법들을 결합시킨다. RSP는 "구성 해체(deconfiguring)"하고, 즉 재사용가능한 구성 요소로부터 형성된 기존의 증명된 기준 설계물로부터 블록들을 제거하고 다음에 "연장함으로써" 즉 상기 기준 설계물로 블록들을 추가시킴으로써 시스템을 설계하는 것이 보다 쉽다는 전제를 기초로 한다.
표준화된 버스들은 표준화된 인터페이스를 상기 재사용가능한 구성요소들에 가함으로써 상기 기준 설계물을 구성 해체하고 연장하는 것을 가능하게 한다. 표준화된 버스는 RSP와 관련된 감소된 위험 정도, 개선된 생산율, 시장으로의 감소된 시간과 같은 수 많은 이점을 제공한다. RSP를 사용하여 설계된 시스템에서 종종 요구되는 표준화된 버스 타입 중의 하나는 나중에 "터널(tunnel)"로 지칭될, 높은 밴드폭 스트리밍 데이터(high-bandwidth streaming data)를 위한 타입이다.
상기 터널로 상이한 IC들을 상호접속하는 것은 송신 IC 디바이스 및 수신 IC 디바이스들 간의 여러 차이에 의해 복잡해진다. 가령, 두 개의 IC가 상이한 제조 기술에 의해 제조될 수 있는데, 즉 송신 IC 디바이스는 200 MHz에서 동작하는 주변 디바이스이며, 수신 디바이스는 400 MHz에서 동작하는 처리 디바이스이다. 다른실례를 들자면, 제조 편차에 의해, 하나의 IC는 다른 IC보다 약간 상이한 속도로 동작할 수 있다. 또 다른 실례로는, 소프트웨어 설계로 인해, 한 IC 설계는 스트리밍 데이터 상에서 가변 인터벌로 동작할 수 있다. 그러므로, 이러한 이유 및 다른 이유들로 인해, 상기 터널은 동기화 문제 및 버스 싸이클 당 데이터의 송신 상에서의 여러 제한 사항들로 인해 높은 밴드폭 스트리밍 데이터의 처리량을 제한시킨다.
칩 대 칩 상호접속에서 데이터의 동기화는 통상적으로 송신 IC 디바이스 및 수신 IC 디바이스에서 FIFO로 지칭되는 FIFO 원형 버퍼에 의해 제공될 수 있다. 송신 FIFO는 송신 이전에 데이터 요소를 버퍼링한다. 수신 FIFO는 송신으로부터 수신된 데이터 요소를 버퍼링한다. 통상적인 FIFO 원형 버퍼는 메모리 어레이를 액세스하는 판독 포트 및 기록 포트를 포함한다. 기록 포인터는 가장 최근에 기록된 데이터 슬롯의 근방의, 개방된 데이터 슬롯을 가르킨다. 판독 포인터는 버퍼로부터 마지막에 판독된 데이터 슬롯의 근방의, 데이터 버퍼 내에 저장된 가장 오래된 데이터 요소를 포함하는 데이터 슬롯을 가르킨다. FIFO로의 각 버스 싸이클 동안, 판독 포트는 판독 포인터를 사용하여 메모리 어레이로부터의 매번의 판독 후에 다음 메모리 로케이션을 연속적으로 어드레스하며, 기록 포트는 기록 포인터를 사용하여 메모리 어레이로의 매번의 기록 후에 다음 메모리 로케이션을 연속적으로 어드레스하다. 가득 차있는 FIFO로의 기록을 방지하고 비어있는 FIFO로부터의 판독을 방지하기 위해 제어 회로가 제공된다.
FIFO가 버스 싸이클 당 하나의 데이터 요소만을 판독 및/또는 기록하는 것으로 한정되기 때문에, 터널은 종종 두 개의 IC 디바이스 중 보다 느린 디바이스의 클록 레이트로 효과적으로 제한된다. 가령, 저속의 송신 IC 디바이스가 대응하는 슬롯 레이트로 그의 송신 FIFO 버퍼를 채울 것이다. 고속 수신 FIFO 버퍼를 갖는 고속의 수신 IC 디바이스는 그의 버퍼를 보다 신속하게 비울 것이며 그의 버퍼 내에서 통신되고 배치될 새로운 데이터를 필수적으로 대기하게 되어 있다. 이로써, 터널은 송신 FIFO가 그의 저장된 데이터를 순차적으로 출력할 수 있는 레이트로 한정되는 밴드(band)이다. 이와 달리, 고속 송신 IC 디바이스는 저속의 수신 IC 디바이스 및 이 디바이스의 수신 FIFO 버퍼가 처리할 수 있는 것보다 신속하게 그의 송신 FIFO 버퍼를 채울 것이다. 이로써, 두 버퍼 모두는 수신 FIFO 버퍼가 수신된 데이터를 순차적으로 출력할 수 있는 한정된 레이트로 채워질 것이다.
보다 고속의 FIFO를 얻기 위해 보다 저속의 IC 디바이스의 속도를 증가시키는 방법은 증가되는 제조 비용 때문에 비실용적이다. 이와 달리, 스트리밍 데이터의 밴드폭을 증가시키기 위해 터널에 추가적인 채널을 더하는 방식은 IC 간의 가용한 도전체의 수에 있어서의 한계로 인해 그리고/또는 개별 채널을 통해 송신된 데이터를 분리시키고 재결합하는데 있어서 복잡성이 증가하고 시간이 지연되기 때문에 비실용적이다.
그러므로, (상이한 클록 속도로 인한) 상이한 통신 능력을 갖는 IC들에 결합된 터널의 밴드폭을 최대화하는 방법이 필요하다. 특히, 전달된 데이터 요소의 밴드폭을 증가시켜서 터널을 통해 결합된 개별 IC들을 조화시키는데 도움이 될 수 있는 FIFO 버퍼가 매우 필요하다.
발명의 개요
본 발명은 버스 싸이클 당 다중 데이터 요소를 단일방향으로 송신할 수 있는 FIFO 버퍼를 제공하여 이로써 버스 속도를 증가시키지 않으면서 송신되는 데이터의 양을 증가시킴으로써 상기와 같은 종래 기술이 가지고 있는 문제들을 해결한다. 또한, FIFO 버퍼의 효과적인 밴드폭이 동적으로 제어될 수 있도록, 선택가능한 수의 데이터 요소가 소정 버스 싸이클 내에 단일방향으로 송신될 수 있게 하는 FIFO 버퍼가 제공된다.
본 발명의 한 특정 측면에 따르면, FIFO 버퍼는 각 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 갖는 메모리 어레리를 포함한다. FIFO 제어 회로는 메모리 어레이와 함께 단일 데이터 전달 또는 이중 데이터 전달을 수행함으로써 데이터 명령(a data command)에 응답한다.
본 발명의 다른 측면에 따르면, FIFO 버퍼는 송신 디바이스 및 수신 디바이스 간의 통신 링크 내에서 사용된다. 이 FIFO 버퍼는 메모리 어레이로부터의 데이터 요소를 액세스하는 한 쌍의 판독 포트 및 한 쌍의 기록 포트를 포함한다. FIFO 제어 회로는 데이터 기록 명령에 응답하여 기록 포트를 통해 단일 데이터 요소 또는 이중 데이터 요소를 메모리 어레이에 기록한다. 또한, FIFO 제어 회로는 데이터 판독 명령에 응답하여 판독 포트를 통해 단일 데이터 요소 또는 이중 데이터 요소를 메모리 어레이로부터 판독한다.
본 발명의 다른 한 측면에 따르면, 송신 디바이스 및 수신 디바이스 간의 통신 링크는 전송 채널을 통해 데이터 요소를 수신 FIFO 버퍼에 송신하는 송신 FIFO버퍼를 포함한다. 각 FIFO 버퍼는 데이터 판독 명령에 응답하여 단일 데이터 요소 판독 또는 이중 데이터 요소 판독을 수행하며 데이터 기록 명령에 응답하여 단일 데이터 요소 기록 및 이중 데이터 요소 기록을 수행하는 FIFO 제어 회로를 포함한다.
본 발명의 다른 측면에 따르면, 수신 디바이스 및 송신 디바이스 간에서 데이터 요소를 통신하는 방법은 데이터 기록 명령에 응답하여 단일 데이터 요소 기록 또는 이중 데이터 요소 기록을 수행하는 단계와, 데이터 판독 명령에 응답하여 단일 데이터 요소 판독 또는 이중 데이터 요소 판독을 수행하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, FIFO 버퍼는 메모리 어레이의 데이터 슬롯을 액세스하기 위한 다수의 포트 및 데이터 명령에 응답하여 상기 다수의 포트를 통해 다수의 데이터 슬롯을 단일방향으로 액세스하는 FIFO 제어 회로를 포함한다.
본 발명의 이들 측면 및 다른 측면은 본 발명의 상세한 설명 및 첨부된 도면으로부터 자명해질 것이다.
본 명세서의 일부를 구성하며 본 명세서에서 인용되는 첨부 도면들은 상술한 발명의 개요 및 이후에 기술된 발명의 상세한 설명과 함께 본 발명의 실시예들을 도시하며, 본 발명의 원리를 설명하는데 사용된다.
본 발명은 디지털 데이터 버퍼에 관한 것이며, 특히 가령 집적 회로를 통한 집적 회로 상호접속부로의 데이터 통신을 동기화하는데 사용되는 FIFO 버퍼(First In First Out buffer)에 관한 것이다.
도 1은 집적형 디바이스를 형성하는 두 개의 디바이스 간의 데이터 버스 또는 터널의 도면,
도 2는 각 디바이스가 본 발명의 여러 측면에 따르는 FIFO 원형 버퍼를 포함하는, 도 1의 집적형 디바이스의 터널의 도면,
도 3은 도 2의 FIFO 원형 버퍼의 도면.
FIFO 원형 버퍼는 디지털 패킷 또는 디지털 워드와 같은 다중 데이터 요소가 FIFO로부터 동시적으로 전달되는 것이 가능하도록 메모리 어레이의 기록 측부 및 판독 측부로의 추가적인 포트를 포함한다. 이로써, 다중 데이터 요소는 다중 버스 싸이클을 걸쳐 순차적으로 전달되기보다는 단일 버스 싸이클 동안 전달될 수 있으며, 이로써 보다 고속의 클록 싸이클 없이도 보다 신속한 FIFO 동작을 제공할 수 있다. 또한, 어떤 실시예들에서는, 버스 싸이클 동안 전달되는 데이터 요소의 수는 가능한 상이한 값들 간에서 선택될 수 있으며, 이로써 FIFO의 효과적인 밴드폭에 대한 보다 우수한 제어를 성취할 수 있다. 또한, 집적 회로들 간의 데이터 버스 내에 FIFO 원형 버퍼를 사용함으로써, 하나 이상의 데이터 판독 및/또는 데이터 기록을 유연하게 수행할 수 있으며, 이와 동시에 집적 회로들 간의 동기화 제어를 단순화시킬수 있다.
도면에서, 유사한 참조 부호는 도면 전체를 통해 유사한 구성 요소를 표시하며, 도 1은 터널(16)로 표시된 통신 링크를 통해 통신하는 제 1 IC 디바이스(수신 디바이스)(12) 및 제 2 IC 디바이스(송신 디바이스)(14)에 의해 형성되는 집적형 시스템(10)을 도시한다. 디바이스(12,14)가 도시된 실시예에서는 동일한 반도체다이 상에 존재하지만, 각 디바이스(12,14)는 각각의 클록(18,20)에 의해 구동되는 개별 집적 회로이다. 가령, 각 디바이스(12,14)는 RSP 환경의 경우 각기 동시대적으로 발전된 프로세서 칩 및 주변 칩일 수 있다. 터널(16)은 유리하게는 높은 밴드폭 데이터 스트리밍에 대해 칩 대 칩 상호접속을 제공하고, 이로써 디바이스(12,14) 간의 집적 정도가 높은 레벨로 되게 한다.
특히, 터널(16)은 송신 디바이스(14) 내에 존재하는 터널 출력 회로(22)를 포함한다. 상기 터널 출력 회로(22)는 스트리밍 데이터 디바이스(28)로부터 데이터를 수신하기 위한 내부 IC 버스(26)로 인터페이스하는 타겟(24)을 포함한다. 회로(30) 내의 터널은 DRAM 제어기(36)로 도시된, 수신 디바이스(12)의 구성 요소로 스트리밍 데이터를 제공하기 위한 내부 IC 버스(34) 상에 존재하는 개시기(32)를 포함한다.
터널(16)은 송신 디바이스(14)의 내부 IC 버스(26) 상의 스트리밍 데이터 디바이스(28)가 내부 IC 버스(34)와 통신하면서 수신 디바이스(12) 상에서 존재하는 것처럼 보이도록 한다. 그러므로, 수신 디바이스(12) 및 송신 디바이스(14)를 개선하기 위해 RSP가 개선되는데, 그 이유는 클록(18,20)의 동기화 및 다른 타이밍 관련 사항들은 집적형 시스템(10) 내에서의 적당한 수준의 통신에 있어서는 중요하지 않기 때문이다.
터널(16)은 또한 순방향 통신 경로(38) 및 역방향 통신 경로(40)를 포함한다. 특히, 채널 출력 회로(22)는 순방향 통신 경로(38)를 통해 데이터를 터널 입력 회로(30)의 수신 회로(44)로 전송하는 송신 회로(42)를 포함한다. 마찬가지로, 채널 입력 회로(30)는 역방향 통신 경로(40)를 통해 데이터를 채널 출력 회로(22)의 수신 회로(48)에 전송하는 전송 회로(46)를 포함한다.
집적형 시스템(10)의 도면은 예시적이며 본 발명의 측면에 따른 터널(16)은 단일 디바이스(12,14) 내에서 존재할 수 있으며 내부 IC 버스를 수행할 수 있다는 사실을 본 명세서로부터 이점을 취하는 본 기술의 당업자는 이해할 필요가 있다. 또한, 터널(16)은 순방향 통신 경로(38) 또는 역방향 통신 경로(40) 중 어느 하나만을 갖는 단일 방향 통신 터널이 될 수도 있다. 또한, 본 발명의 측면들에 따른 애플리케이션들은 다른 형태의 디지털 통신도 수행할 수 있다. 본 발명은 본 명세서에서 개시된 특정한 RSP 애플리케이션에만 한정되는 것이 아니다. 이보다도, 본 명세서에서 개시된 FIFO 버퍼는 통상적인 FIFO 버퍼가 사용되는 임의의 실용적인 버퍼링 애플리케이션에서도 사용될 수 있다.
도 2에서, 송신 디바이스(14)에서 수신 디바이스(12)로의 순방향 데이터 통신을 위한 터널(16)의 일부분은 유리하게는 터널 출력 회로(22) 내의 송신 FIFO 버퍼(50) 및 터널 입력 회로(30) 내의 수신 FIFO 버퍼(52)를 각기 송신 및 수신 동안 데이터를 버퍼링하기 위해 포함한다. 터널 출력 회로(22)의 타겟(24)에 의해 수신된 스트리밍 데이터는 송신 FIFO 버퍼(50)의 상태에 따라, 즉 송신 FIFO 버퍼(50)가 추가적인 데이터에 대한 가용한 공간을 가지고 있는지의 여부에 따라 송신 FIFO 버퍼(50)에 기록된다. 터널 출력 회로(22)는 터널 입력 회로(30) 내의 수신 FIFO 버퍼(52)의 상태에 응답하여 순방향 통신 경로(38)를 통해 데이터를 전송한다. 터널 출력 회로(22)는 수신 FIFO 버퍼(52)가 데이터를 수용할 수 있을정도의 레이트로 데이터 전송을 제한한다. 이 다음에, 터널 입력 회로(30) 내의 개시기(32)가 수신 FIFO 버퍼(52)의 상태에 응답하여 수신 FIFO 버퍼(52) 내의 데이터를 판독한다.
특히, 터널(16)은 디바이스(12,14) 간의 동기화를 개선하기 위해 버스 싸이클 당 다수의 데이터 워드를 선택적으로 버퍼링하여 전송한다. 타겟(24)에 의해 내부 IC 버스(26)를 통해 수신되는 스트리밍 데이터는 송신 FIFO 버퍼(50)의 상태에 따라 송신 FIFO 버퍼(50)에 기록된다. 도시된 도면에서는, 송신 FIFO 버퍼(50)는 두 개의 기록 포트(54,46) 및 두 개의 판독 포트(58,60)를 포함한다. 타겟(24)은 라인(62)을 통해 송신 FIFO 버퍼(50)의 상태를 감지한다. 만일 상기 버퍼(50)의 상태가 완전하게 채워진 상태(FULL)라면, 이 버스 싸이클 동안에는 타겟에 의해 "기록 없음(NO WRITE)"이 명령된다. 만일 상기 상태가 거의 가득찬 상태(가령, "완전하게 가득찬 상태(FULL) - 1")라면, 타겟(24)은 송신 FIFO 버퍼(50)로의 하나의 데이터 요소 기록("WR1")을 명령하며 하나의 데이터 요소("DATA IN 1")를 제 1 기록 포트(54)에 제공한다. 송신 FIFO 버퍼(50)는 상기 데이터 명령에 응답하여 다음의 가용한 데이터 슬롯에 상기 제 1 기록 포트(54)를 어드레스한다. 라인(62) 상의 상태가 완전하게 비어 있거나 거의 비어 있는 상태라면, 타겟(24)은 송신 FIFO 버퍼(50)로의 두 개의 데이터 요소 기록("WR2")을 명령하며 이전에 한 바처럼 제 1 데이터 요소를 제공하며 추가적으로 제 2 데이터 요소("DATA IN 2")를 제 2 기록 포트(56)에 제공한다. 송신 FIFO 버퍼(50)는 이전에 한 바처럼 제 1 기록 포트(54)를 어드레스하며 추가적으로 제 1 기록포트(54)에 의해 어드레스된 슬롯에 인접하는 다음의 가용한 데이터 슬롯에 상기 제 2 기록 포트(54)를 어드레스한다. 어떤 스트리밍 데이터도 내부 IC 버스(26)로부터 수신되지 않았다면 타겟(24)은 "기록 없음"을 명령할 것이며, 심지어 송신 FIFO 버퍼(50)가 보다 많은 데이터 요소들을 처리할 수 있을지라도, 단지 하나의 데이터 요소만이 수신되었으면 상기 타겟(24)은 하나의 데이터 요소 기록을 명령할 것이다.
송신 FIFO 버퍼(50)의 다운스트림인 터널 출력 회로(22)의 일부분은 라인(64) 상에서 수신된 송신 FIFO 버퍼(50)의 상태 및 라인(66) 상에서 수신된 수신 FIFO 버퍼(52)의 상태에 응답한다. 특히, 송신 FIFO 버퍼(50)의 감지된 상태가 완전하게 비어 있는 상태이거나 수신 FIFO 버퍼(52)의 감지된 상태가 완전하게 가득차 있는 상태일 때, 상기 송신 FIFO 버퍼(50)로부터의 "판독 없음"을 수행하는 채널 인코더(68)를 상기 다운스트림 부분이 포함한다. 수신 FIFO 버퍼(52)의 상태가 거의 차 있는 상태이거나 송신 FIFO 버퍼(50)의 상태가 거의 비어 있는 상태일 때 상기 채널 인코더(68)는 상기 송신 FIFO 버퍼(50)의 기록 포트(58)로부터의 하나의 데이터 요소 판독("RD1")을 명령한다. 이 RD1 명령에 응답하여, 송신 FIFO 버퍼(50)는 기록 포트(58)를 가장 오래된 데이터 어드레스에 결합시켜 "DATA OUT 1"를 기록한다. 채널 인코더(68)는 "DATA OUT 1" 데이터 요소를 인코딩하고, 상기 데이터 요소를 하나 이상의 내부 전송 채널(70)을 통해 채널 송신기(72)에 전달하며 다음에 이 채널 송신기(72)는 상기 인코딩되고 채널화된 데이터 요소를 순방향 터널 채널(38)을 통해 상기 터널 입력 회로(30)에 전송한다.
이와 달리, 채널 인코더(68)는 수신 FIFO 버퍼(52)가 완전하게 비어 있거나 거의 비어 있는 상태로 감지되고 송신 FIFO 버퍼(50)가 완전하게 차 있거나 거의 차 있는 상태로 감지된다면 이에 응답하여 두 개의 데이터 요소 판독("RD2")을 명령한다. 이 경우에는, 하나의 데이터 요소 판독(RD1) 명령에 응답하여 데이터 요소(DATA OUT 1)을 출력할 뿐만 아니라, 상기 RD2 명령에 응답하여, 송신 FIFO 버퍼(50)는 채널 인코더(68)에 다음으로 최고 오래된 데이터 요소(DATA OUT 2)를 출력하며, 이 데이터 요소는 상기와 마찬가지로 인코딩되고 채널화되어 상기 수신 IC 디바이스(12)에 전송된다.
터널 입력 회로(30)는 순방향 터널 채널(38)로부터 상기 인코딩되고 채널화된 데이터를 수신하는 채널 수신기(74)를 포함한다. 수신된 데이터는 하나 이상의 내부 수신 채널(76)을 통해 채널 디코더/정렬기(78)에 전송된다. 수신된 데이터의 양에 따라, 채널 디코더/정렬기(78)는 수신 FIFO 버퍼(52)로의 "데이터 전달 없음", "하나의 데이터 요소 기록(WR1)", "두 개의 데이터 요소 기록(WR2)"를 명령한다. 채널 디코더/정렬기(78)는 각기 수신 FIFO 버퍼(52)의 기록 포트(80,82)로의 "DATA IN 1" 및 "DATA IN 2"와 같은 가용한 하나 또는 두 개의 데이터 요소들을 형성한다. 수신 FIFO 버퍼(52)는 디들 데이터 요소들을 다음의 가용한 기록 데이터 슬롯에 기록한다.
도시되지는 않았지만, 채널 디코더/정렬기(78)는 상기 수신 FIFO 버퍼(52)의 상태에 응답하여 수신된 데이터의 양보다 작은 데이터의 전달을 선택적으로 명령한다는 사실을 본 기술의 당업자는 이해할 것이다. 가령, 채널 디코더/정렬기(78)는 수신 FIFO 버퍼(52)로 전달되는 선택가능한 수의 데이터 워드를 사용하는데 이용될 수 있는 고유의 저장 능력을 포함한다.
수신 FIFO 버퍼(52)는 개시기(32)에 의해 명령되는 개시기에 의한 판독을 위해 상기 최고로 오래된 두 개의 데이터 요소들을 판독 포트(84,86)에서 이용 가능하게 만든다. 개시기(32)는 라인(88) 상에서 감지된 수신 FIFO 버퍼(52)의 상태에 응답하여 수신 FIFO 버퍼(52)가 거의 비어 있는 상태일 때 하나의 데이터 요소 판독(RD1)을 명령한다. 개시기(32)는 또한 라인(88) 상에서 감지된 수신 FIFO 버퍼(52)의 상태에 응답하여 수신 FIFO 버퍼(52)가 차 있거나 거의 차 있는 상태일 경우에 두 개의 데이터 요소 판독(RD2)을 명령한다.
송신 FIFO 버퍼(50)는 단일 클록에 의해 트리거되도록 구현되며, 여기서 데이터 입력 및 데이터 출력은 동일한 클록 신호에 응답하여 발생한다. 이와 대조적으로, 수신 FIFO 버퍼(52)는 유리하게는 집적형 디바이스(10) 내에서 동기화를 보다 개선하기 위해 두 개의 클록 신호에 응답한다. 특히, 채널 디코더/정렬기(70)로부터 수신된 데이터는 순방향 통신 경로(38)를 통해 수신된 데이터 내의 고유 클록 신호에 응답한다. 이로써, FIFO(52)로의 데이터 기록은 상기 수신된 클록 신호와 동기화되며, 개시기(32)에 의한 데이터 판독은 수신 디바이스(12)의 클록(18) 신호에 동기화된다.
도 3에서, FIFO 원형 버퍼는 데이터를 메모리 어레이로 기록하는 데이터 슬롯에 대한 데이터 어드레스를 순차적으로 참조하고 이어서 어레이의 단부에 도달할 때 어레이의 시작부로 다시 랩어라운드(wrap around)함으로써 동작한다. 이와 마찬가지로, 메모리 내에 저장된 데이터가 순차적으로 판독되며, 이 때 데이터 슬롯에 있어서 가장 오래된 데이터가 가장 먼저 어드레스된다. 기록 포인터는 데이터 요소를 기록하기 위한 다음의 가용한 데이터 슬롯을 추적하며, 판독 포인터는 가장 오래된 데이터를 갖는 데이터 슬롯을 추적한다. 상기 판독 포인터가 상기 기록 포인터를 앞서가는 것을 방지하기 위해 필요한 수단이 제공된다.
특히, FIFO 버퍼(90)는 WRITE PORT 1 및 WRITE PORT 2로 도시된 다수의 기록 포트 및 READ PORT 1 및 READ PORT 2로 도시된 다수의 판독 포트를 가짐으로써 다중 데이터 요소 전달을 도시한다. 상기 FIFO 버퍼(90)는 데이터 명령에 응답하여 단일 데이터 전달 또는 이중 데이터 전달을 수행하는 제어 회로를 포함한다. 특히, FIFO 제어 회로는 데이터 명령을 수신하는데 있어서는 제어 로직(92)으로 도시되며, 메모리 어레이(96) 내에 저장된 데이터의 양을 감지하는데 플래그 로직(94)으로 도시되며, 다수의 포트를 어드레스하는데 있어서는 기록 포인터 회로(98) 및 판독 포인터 회로(100)로 도시된다.
제어 로직(92)은 하나의 데이터 요소를 기록하라는 명령(WR1) 또는 두 개의 데이터 요소를 기록하라는 명령(WR2)을 수신한다. 제어 로직(92)은 플래그 로직(94)에 의해 제공되는 메모리(96)에 대한 감지된 상태에 응답하여 기록 데이터 전달을 선택적으로 명령한다. 구체적으로 말하자면, 먼저, 메모리 어레이(96)의 상태가 완전하게 차 있는 상태이거나 어떤 WR1 또는 WR2 신호도 수신되지 않는다면, 제어 로직(92)은 기록 데이터 전달을 인에이블(enable)하지 않는다. 두번째로, 하나의 데이터 요소 기록 신호 WR1가 수신되거나 두 개의 데이터 요소 기록 신호 WR2가 수신되며 이와 동시에 메모리 어레이(96)가 거의 차 있다면, 제어 로직(92)은 기록 인에이블 신호 1(WR1_N)로 WRITE PORT 1을 인에이블한다. 세번째로, 두 개의 데이터 요소 기록 신호 WR2가 수신되며 이와 동시에 메모리 어레이(96)가 비어 있거나 거의 비어 있다면 상기 WRITE PORT 1를 인에이블할 뿐만 아니라 기록 인에이블 신호 2(WR2_N)으로 WRITE PORT 2를 인에이블한다.
WRITE PORT 1이 인에이블될 때, WRITE PORT 1은 데이터 입력 1(DI1)에서 DATA IN 1 신호를 판독하여 이것을 기록 어드레스 1(AW1)에 의해 지정된 데이터 슬롯에 기록한다. WRITE PORT 2이 인에이블될 때, WRITE PORT 2은 데이터 입력 2(DI2)에서 DATA IN 2를 판독하여 이것을 기록 어드레스 2(AW2)에 의해 지정된 데이터 슬롯에 기록한다. 두 개의 기록 어드레스 AW1, AW2가 기록 포인터 회로(98)에 의해 제공된다.
기록 포인터 회로(98)는 메모리 어레이(96)가 원형 버퍼로 사용될 수 있도록 메모리 어레이(96) 내의 데이터 슬롯(도 3에서는 도시되지 않음)을 어드레스한다. 특히, 기록 포인터 회로(98)는 데이터를 메모리 어레이(96)로 단일방향으로 기록하는데 사용되는, 입력 "AW1"에서의 다음의 가용한 슬롯을 가르키는 출력 "Q"을 갖는 D 플립 플롭(102)을 포함한다. 다음의 가용한 기록 어드레스(AW1)는 +1 가산기(104), +2 가산기(106)로 피드백되며 3 대 1 멀티플렉서 MUX(108)로 피드백된다. 가산기(104,106)의 증분된 출력은 MUX(108)의 다른 두 개의 입력에 접속된다. +1 가산기(104)의 증분된 출력은 입력 AW2에 제공되어 WRITE PORT 2에 대한 다음 다음의 어드레스(next-next address)를 어드레스한다. MUX(108)은 제어 로직(92)에 의해 제어되어 어드레스 AW1 및 AW2를 갱신한다. 특히, 하나의 데이터 요소의 기록 전달 후에는, MUX(108)는 D 플립 플롭(102)의 입력 D을 리셋하는 +1 가산기(104)로부터의 증분된 값을 다음의 가용한 어드레스로 출력하도록 명령을 받는다. 두 개의 데이터 요소의 기록 전달 후에, MUX(108)는 +2 가산기(106)로부터의 두 번 증분된 값을 D 플립 플롭(102)으로 출력하도록 명령을 받는다.
제어 로직(92)은 하나의 데이터 요소를 판독하라는 명령(RD1) 또는 두 개의 데이터 요소를 판독하라는 명령(RD2)을 수신한다. 제어 로직(92)은 플래그 로직(94)에 의해 제공되는 메모리(96)의 감지된 상태에 응답하여 판독 데이터 전달을 선택적으로 명령한다. 구체적으로 말하자면, 먼저, 메모리 어레이(96)의 상태가 완전하게 비어 있는 상태이거나 어떤 RD1 또는 RD2 신호도 수신되지 않는다면, 제어 로직(92)은 판독 데이터 전달을 인에이블(enable)하지 않는다. 두번째로, 하나의 데이터 요소 판독 신호 RD1이 수신되거나 두 개의 데이터 요소 판독 신호 RD2가 수신되며 이와 동시에 메모리 어레이(96)이 거의 비어 있다면(almost empty), 제어 로직(92)은 판독 인에이블 신호 1(RD1_N)로 READ PORT 1을 인에이블한다. 세번째로, 두 개의 데이터 요소 판독 신호 RD2가 수신되며 이와 동시에 메모리 어레이(96)가 차 있거나 거의 차 있다면 상기 READ PORT 1를 인에이블할 뿐만 아니라 판독 인에이블 신호 2(RD2_N)으로 READ PORT 2를 인에이블한다.
READ PORT 1이 인에이블될 때, READ PORT 1은 판독 어드레스 1(AR1)에 의해 지정된 데이터 슬롯으로부터 판독함으로써 데이터 출력 1(DO1)에서 DATA OUT 1 신호를 출력한다. READ PORT 2이 인에이블될 때, READ PORT 2은 판독 어드레스2(AR2)에 의해 지정된 데이터 슬롯으로부터 판독함으로써 데이터 출력 2(DO2)에서 DATA OUT 2 신호를 출력한다. 두 개의 판독 어드레스 AR1, AR2가 판독 포인터 회로(100)에 의해 제공된다.
판독 포인터 회로(9100)는 메모리 어레이(96)의 READ PORT 1의 입력 "AR1"으로 가장 오래된 데이터를 포함하는 데이터 슬롯에 대한 메모리 어드레스를 제공하는 출력 "Q"을 갖는 D 플립 플롭(110)을 포함한다. 상기 가장 오래된 데이터의 어드레스(AR1)는 +1 가산기(112), +2 가산기(114)로 피드백되며 3 대 1 멀티플렉서 MUX(116)로 피드백된다. 가산기(112,114)의 증분된 출력은 MUX(116)의 다른 두 개의 입력에 접속된다. +1 가산기(112)의 증분된 출력은 입력 AR2에 제공되어 READ PORT 2에 대한 다음으로 가장 오래된 어드레스를 어드레스한다. MUX(116)은 제어 로직(92)에 의해 제어되어 어드레스 AR1 및 AR2를 갱신한다. 특히, 하나의 데이터 요소의 판독 전달 후에는, MUX(116)는 D 플립 플롭(110)의 입력 D을 리셋하는 +1 가산기(112)로부터의 증분된 값을 다음의 가용한 어드레스로 출력하도록 명령을 받는다. 두 개의 데이터 요소의 판독 전달 후에, MUX(116)는 +2 가산기(106)로부터의 두 번 증분된 값을 D 플립 플롭(110)으로 출력하도록 명령을 받는다.
플래그 로직(94)은 D 플립 플롭(102)으로부터 현 기록 어드레스 AW1를 수신하며 D 플립 플롭(110)으로부터 현 판독 어드레스 AR1를 수신하며, 이로부터 메모리 어레이(96)가 완전하게 채워진 상태(어떤 슬롯도 개방되지 않음)인지, 거의 채워진 상태(오직 하나의 슬롯만 개방됨)인지, 완전하게 비어 있는 상태(어떤 슬롯도채워져 있지 않음)인지 또는 거의 비어 있는 상태(오직 하나의 슬롯만이 채워져 있음)인지를 결정한다.
본 발명의 여러 측면에 따른 애플리케이션은 3 개 이상의 추가적인 포트를 포함할 수 있으며, 두 개의 판독 포트 및 두 개의 기록 포트는 오직 예시적으로 설명된 것이다. 또한, 판독 포트의 수는 기록 포트의 수와 다를 수 있다. 또한, 메모리 어레이로부터 기록되는 데이터 요소들의 크기 및 판독되는 데이터 요소들의 크기는 기록 포트들 및 판독 포트들이 서로 상이한 크기를 갖는 데이터 요소들의 전달을 수행하도록 서로 상이할 수 있다.
FIFO 버퍼(90)에 의한 판독 및 기록의 순서화는 버스 클록에 의해 제어된다. 이로써, 하나의 타이밍 지점에서, 하나 이상의 판독 또는 기록이 수행된다. 이후의 타이밍 지점에서는, 판독 포인터 및 기록 포인터가 데이터 전달에 대응하는 적당한 슬롯의 수 만큼 증분된다. 유리하게는, 버스 클록은 데이터 전달이 클록 펄스의 상승 에지 및 하강 에지 상에서 발생하는 이중 데이터 레이트 전달을 포함할 수 있다.
사용 시에, FIFO 버퍼(90)는 버스 클록 전이를 수신한다. 하나의 데이터 요소의 기록 명령(WR1) 또는 두 개의 데이터 요소의 기록 명령(WR2)에 응답하여, 제어 로직(92)은 메모리 어레이(96)의 상태가 충분하게 이용 가능한 데이터 슬롯을 가질 수 있는 충분 상태인지의 여부를 결정하여, 상기 가용한 데이터 슬롯의 수에 대응되게 인에이블되는(WR1_N, WR2_N) 기록 포트(WRITE PORT 1 및 WRITE PORT 2)의 수를 줄인다. 각 인에이블된 기록 포트는 입력 데이터(DATA IN 1, DATA IN 2)를수신하여 이것을 기록 포인터 회로(98)에 의해 제공되는 각각의 어드레스(AW1,AW2)에 기록한다.
하나의 데이터 요소의 판독 명령(RD1) 또는 두 개의 데이터 요소의 판독 명령(RD2)에 응답하여, 제어 로직(92)은 메모리 어레이(96)의 상태가 충분하게 이용 가능한 데이터 슬롯을 가질 수 있는 충분 상태인지의 여부를 결정하여, 상기 가용한 데이터 슬롯의 수에 대응되게 인에이블되는(RD1_N, RD2_N) 판독 포트(READ PORT 1 및 READ PORT 2)의 수를 줄인다. 각 인에이블된 판독 포트는 판독 포인터 회로(100)에 의해 제공된 각각의 어드레스(AR1,AR2)에 의해 참조되는 데이터 슬롯으로부터 판독되는 출력 데이터(DATA OUT 1, DATA OUT 2)를 출력한다.
이후의 타이밍 기간에서는, 기록 포인터 회로(98) 및 판독 포인터 회로(100)가 각각의 기록되거나 판독되는 데이터 요소의 수의 측면에서 적절하게 다음의 가용한 데이터 슬롯으로 갱신된다. 또한, 플래그 로직(94)은 메모리 어레이(96)의 상태, 특히 완전하게 채워진 상태, 거의 채워진 상태, 완전하게 비어 있는 상태, 거의 비어 있는 상태들에 대한 세팅 플래그를 갱신한다.
본 발명은 다양한 실시예를 기술함으로써 설명되었으며, 이들 실시예들은 아주 상세하게 설명되었으며, 이러한 사항들이 본 발명의 첨부된 청구 범위의 범위를 상기 상세한 설명 부분으로만 한정하는 것은 아니다. 추가적인 이점 및 변경 사항들이 본 기술의 당업자에게는 쉽게 고려될 수 있다. 본 발명은 이의 보다 광범위한 측면에서 설명되고 도시된 특정 세부 사항 및 장치 및 방법으로 한정되는 것이 아니다. 따라서, 본 출원자의 창의적인 개념의 사상 및 범위 내에서 상기 변경이 가능하다.

Claims (21)

  1. FIFO 버퍼(First In First Out buffer)(90)에 있어서,
    각각의 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 구비한 메모리 어레이(96)와,
    데이터 명령에 응답하여 상기 메모리 어레이(96)와 함께 단일 데이터 요소 전달 및 이중 데이터 요소 전달 중 선택된 하나의 데이터 전달을 단일방향으로 수행하는 FIFO 제어 회로(92,94,96,98,100)를 포함하는
    FIFO 버퍼(90).
  2. 제 1 항에 있어서,
    상기 FIFO 제어 회로(92,94,96,98,100)는 클록 신호를 수신하여 하나의 클록 싸이클 동안 이중 데이터 요소 전달을 수행하는
    FIFO 버퍼(50,52,90).
  3. 제 1 항에 있어서,
    상기 단일 데이터 요소 전달 및 상기 이중 데이터 요소 전달 각각은 데이터 기록 명령에 응답하여 상기 메모리 요소(96)의 하나의 데이터 슬롯으로의 기록 및두 개의 데이터 슬롯으로의 기록을 각기 포함하며,
    상기 FIFO 제어 회로(92,94,96,98,100)는 데이터 판독 명령에 응답하여 상기 메모리 어레이(96)의 하나의 데이터 슬롯 및 두 개의 데이터 슬롯으로부터의 각각의 단일 데이터 요소 판독 및 이중 데이터 요소 판독 중 선택된 하나의 데이터 판독을 수행하는
    FIFO 버퍼(50,52,90).
  4. 제 3 항에 있어서,
    상기 FIFO 제어 회로(92,94,96,98,100)는 상기 메모리 요소의 거의 차 있는 상태를 감지하여 상기 메모리 요소(96)로 단일 데이터 요소를 기록함으로써 이중 데이터 요소 기록에 대한 데이터 기록 명령에 응답하는
    FIFO 버퍼(50,52,90).
  5. 제 3 항에 있어서,
    상기 FIFO 제어 회로(92,94,96,98,100)는 상기 메모리 요소의 거의 비어 있는 상태를 감지하여 상기 메모리 요소(96)로부터 단일 데이터 요소를 판독함으로써 이중 데이터 요소 판독에 대한 데이터 판독 명령에 응답하는
    FIFO 버퍼(50,52,90).
  6. 송신 디바이스 및 수신 디바이스 간의 통신 링크(16) 내의 FIFO 버퍼(90)에 있어서,
    각각의 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 갖는 메모리 요소(96)와,
    상기 메모리 요소(96)로 한 쌍의 데이터 요소를 각기 기록하는 한 쌍의 기록 포트(54,56,80,82)와,
    상기 메모리 요소(96)로부터 한 쌍의 데이터 요소를 각기 판독하는 한 쌍의 판독 포트(58,60,84,86)와,
    데이터 기록 명령에 응답하여 상기 한 쌍의 기록 포트(54,56,80,82)를 통해 상기 메모리 어레이(96)로의 단일 데이터 요소 기록 및 이중 데이터 요소 기록 중 선택된 하나의 동작을 수행하며, 데이터 판독 명령에 응답하여 상기 한 쌍의 판독 포트(58,60,84,86)를 통해 상기 메모리 어레이(96)로부터의 단일 데이터 요소 판독 및 이중 데이터 요소 판독 중 선택된 하나의 동작을 수행하는 FIFO 제어 회로(92,94,96,98,100)를 포함하는
    FIFO 버퍼(90).
  7. 제 6 항에 있어서,
    상기 메모리 어레이(96)의 완전하게 차 있는 상태 및 거의 차 있는 상태를감지하는 FIFO 감지 회로를 더 포함하며,
    상기 FIFO 제어 회로(92,94,96,98,100)는 상기 메모리 어레이의 감지된 데이터 상태 응답하여 "어떠한 데이터 요소도 기록하지 않음", "단일 데이터 요소 기록", "이중 데이터 요소 기록"으로 구성된 그룹 중 선택된 하나의 동작으로 데이터 기록 명령을 수행하는
    FIFO 버퍼(50,52,90).
  8. 제 6 항에 있어서,
    상기 메모리 어레이(96)의 완전하게 차 있는 상태 및 거의 차 있는 상태를 감지하는 FIFO 감지 회로를 더 포함하며,
    상기 FIFO 제어 회로(92,94,96,98,100)는 상기 메모리 어레이의 감지된 데이터 상태 응답하여 "어떠한 데이터 요소도 판독하지 않음", "단일 데이터 요소 판독", "이중 데이터 요소 판독"으로 구성된 그룹 중 선택된 하나의 동작으로 데이터 판독 명령을 수행하는
    FIFO 버퍼(50,52,90).
  9. 제 6 항에 있어서,
    현 기록 포인터 값을 저장하고 상기 FIFO 제어 회로(92,94,96,98,100)에 응답하여 하나의 데이터 슬롯 어드레스 및 두 개의 데이터 슬롯 어드레스 만큼 상기 기록 포인터 값을 선택적으로 증분시키는 기록 포인터 회로(98)를 더 포함하며,
    현 판독 포인터 값을 저장하고 상기 FIFO 제어 회로(92,94,96,98,100)에 응답하여 하나의 데이터 슬롯 어드레스 및 두 개의 데이터 슬롯 어드레스 만큼 상기 판독 포인터 값을 선택적으로 증분시키는 판독 포인터 회로(100)를 더 포함하는
    FIFO 버퍼(50,52,90).
  10. 송신 디바이스 및 수신 디바이스 간의 통신 링크(16)에 있어서,
    상기 통신 링크는
    상기 송신 디바이스 및 상기 수신 디바이스 간의 전송 채널과,
    상기 전송 채널을 통해 상기 수신 디바이스로 데이터를 송신하기 이전에 상기 송신 디바이스로부터의 데이터 요소를 버퍼링하는 송신 FIFO 버퍼(50)와,
    상기 전송 채널을 통해 상기 송신 디바이스로부터 수신된 데이터 요소를 버퍼링하는 수신 FIFO 버퍼(52)를 포함하며,
    상기 송신 FIFO 버퍼(50)와 상기 수신 FIFO 버퍼(52) 각각은
    각각의 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 갖는 메모리 요소(96)와,
    상기 메모리 요소(96)로 한 쌍의 데이터 요소를 각기 기록하는 한 쌍의 기록 포트(54,56,80,82)와,
    상기 메모리 요소(96)로부터 한 쌍의 데이터 요소를 각기 판독하는 한 쌍의 판독 포트(58,60,84,86)와,
    데이터 기록 명령에 응답하여 상기 한 쌍의 기록 포트(54,56,80,82)를 통해 상기 메모리 어레이(96)로의 단일 데이터 요소 기록 및 이중 데이터 요소 기록 중 선택된 하나의 동작을 수행하며, 데이터 판독 명령에 응답하여 상기 한 쌍의 판독 포트(58,60,84,86)를 통해 상기 메모리 어레이(96)로부터의 단일 데이터 요소 판독 및 이중 데이터 요소 판독 중 선택된 하나의 동작을 수행하는 FIFO 제어 회로(92,94,96,98,100)를 포함하는
    통신 링크.
  11. 제 10 항에 있어서,
    상기 송신 FIFO 버퍼(50)와 상기 수신 FIFO 버퍼(52) 각각은 상기 메모리 어레이(96)의 데이터 상태를 감지하는 FIFO 감지 회로를 더 포함하며,
    상기 통신 링크(16)는 상기 수신 FIFO 버퍼(52)의 감지된 데이터 상태에 응답하여 상기 송신 FIFO 버퍼(50)로의 "어떠한 판독 동작 없음 명령", "단일 판독 동작 명령", "이중 판독 동작 명령" 중 선택된 하나의 동작 명령을 포함하는 데이터 명령을 선택적으로 생성하는 통신 링크 제어 회로를 더 포함하는
    통신 링크.
  12. 제 11 항에 있어서,
    상기 각각의 FIFO 감지 회로는 "완전하게 차 있는 상태(FULL)", 상기 FULL 상태에서 하나의 데이터 요소가 비어 있는 상태", "완전하게 비어 있는 상태(EMPTY)", "상기 EMPTY 상태에서 하나의 데이터가 채워진 상태"를 포함하는 데이터 상태들을 감지하는
    통신 링크.
  13. 각각의 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 갖는 메모리 요소(96)를 포함하는 FIFO 버퍼(50,52,90)로 데이터 요소를 버퍼링함으로써 송신 디바이스(14) 및 수신 디바이스(12) 간에서 데이터 요소를 통신하는 방법에 있어서,
    데이터 기록 명령에 응답하여, 상기 메모리 요소(96)로의 단일 데이터 요소 기록 및 이중 데이터 요소 기록 중 선택된 하나의 기록 동작을 수행하는 단계와,
    데이터 판독 명령에 응답하여, 상기 메모리 요소(96)로부터의 단일 데이터 요소 판독 및 이중 데이터 요소 판독 중 선택된 하나의 판독 동작을 수행하는 단계를 포함하는
    데이터 통신 방법.
  14. 제 13 항에 있어서,
    상기 메모리 어레이(96)의 데이터 상태를 감지하는 단계와,
    상기 메모리 어레이(96)의 감지된 데이터 상태에 따라 데이터 판독 명령 및 데이터 기록 명령을 수행하는 단계를 포함하는
    데이터 통신 방법.
  15. 제 14 항에 있어서,
    상기 데이터 상태를 감지하는 단계는 완전하게 차 있는 데이터 상태 및 거의 차 있는 데이터 상태를 감지하는 단계를 포함하며,
    상기 데이터 기록 명령을 수행하는 단계는 이중 데이터 요소 기록에 대한 데이터 기록 명령의 수신 및 상기 메모리 요소(96)의 상기 거의 차 있는 데이터 상태의 감지에 응답하여 상기 메모리 어레이(96)로의 단일 데이터 요소 기록을 수행하는 단계를 포함하는
    데이터 통신 방법.
  16. 제 14 항에 있어서,
    상기 데이터 상태를 감지하는 단계는 완전하게 비어 있는 데이터 상태 및 거의 비어 있는 데이터 상태를 감지하는 단계를 포함하며,
    상기 데이터 판독 명령을 수행하는 단계는 이중 데이터 요소 판독에 대한 데이터 판독 명령의 수신 및 상기 메모리 요소(96)의 상기 거의 비어 있는 데이터 상태의 감지에 응답하여 상기 메모리 어레이(96)로부터 단일 데이터 요소 판독을 수행하는 단계를 포함하는
    데이터 통신 방법.
  17. 제 13 항에 있어서,
    상기 이중 데이터 요소 판독 및 상기 이중 데이터 요소 기록에 대한 데이터 명령을 수행하는 단계는 상기 FIFO 버퍼(50,52,90)로의 하나의 클록 싸이클 동안 수행되는
    데이터 통신 방법.
  18. 제 13 항에 있어서,
    상기 FIFO 버퍼(50,52,90)는
    현 기록 포인터 값 및 이 현 기록 포인터 값으로부터 하나의 데이터 슬롯 어드레스 및 두 개의 데이터 슬롯 어드레스 만큼의 증분된 값들을 저장하는 기록 포인터 회로(98)와,
    현 판독 포인터 값 및 이 현 판독 포인터 값으로부터 하나의 데이터 슬롯 어드레스 및 두 개의 데이터 슬롯 어드레스 만큼의 증분된 값들을 저장하는 판독 포인터 회로(100)를 갖는 원형 버퍼를 포함하며,
    상기 현 기록 포인터 값으로부터 두 개의 슬롯 어드레스 만큼 증분된 값을 상기 기록 포인터 회로(98)로부터 선택함으로써 이중 데이터 요소 기록에 대한 데이터 기록 명령을 수행하는 단계와,
    상기 현 판독 포인터 값으로부터 두 개의 슬롯 어드레스 만큼 증분된 값을 상기 판독 포인터 회로(100)로부터 선택함으로써 이중 데이터 요소 판독에 대한 데이터 판독 명령을 수행하는 단계를 포함하는
    데이터 통신 방법.
  19. FIFO 버퍼에 있어서,
    각각의 데이터 슬롯이 데이터 요소를 저장하는 다수의 데이터 슬롯을 갖는 메모리 어레이(96)와,
    상기 메모리 어레이(96)의 데이터 슬롯들을 액세스하는 다수의 포트와,
    데이터 명령에 응답하여 상기 다수의 포트를 통해 상기 다수의 데이터 슬롯을 동시적으로 그리고 단일방향으로 액세스하는 FIFO 제어 회로(92,94,96,98,100)를 포함하는
    FIFO 버퍼.
  20. 제 19 항에 있어서,
    상기 FIFO 버퍼(50,52,90)는 상기 메모리 어레이(96) 내의 데이터 슬롯으로의 현 데이터 슬롯 포인터를 보유하며 상기 FIFO 제어 회로(92,94,96,98,100)로부터의 데이터 명령에 응답하여 상기 현 데이터 슬롯 포인터 값을 기초로 하여 여러 개의 슬롯 어드레스를 선택하는 포인터 값 회로를 포함함으로써 원형 회로로서 구성되는
    FIFO 버퍼(50,52,90).
  21. 제 19 항에 있어서,
    상기 FIFO 제어 회로(92,94,96,98,100)는 데이터 명령에 응답하여 상기 다수의 포트(54,56,58,60,80,82,84,86)를 통해 상기 다수의 데이터 슬롯 중 선택된 수의 데이터 슬롯을 동시적으로 그리고 단일방향으로 액세스하는
    FIFO 버퍼(50,52,90).
KR10-2003-7001661A 2001-06-06 2002-06-03 Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법 KR20030045023A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/875,376 2001-06-06
US09/875,376 US6701390B2 (en) 2001-06-06 2001-06-06 FIFO buffer that can read and/or write multiple and/or selectable number of data words per bus cycle
PCT/IB2002/002028 WO2002099621A1 (en) 2001-06-06 2002-06-03 Fifo buffer that can read and/or write a selectable number of data words per bus cycle

Publications (1)

Publication Number Publication Date
KR20030045023A true KR20030045023A (ko) 2003-06-09

Family

ID=25365694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7001661A KR20030045023A (ko) 2001-06-06 2002-06-03 Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법

Country Status (6)

Country Link
US (1) US6701390B2 (ko)
EP (1) EP1402339A1 (ko)
JP (1) JP2004521426A (ko)
KR (1) KR20030045023A (ko)
CN (1) CN1513135A (ko)
WO (1) WO2002099621A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030039354A1 (en) * 2001-08-27 2003-02-27 Kimble David E. FIFO architecture with in-place cryptographic service
US7532760B2 (en) * 2002-08-27 2009-05-12 Aptina Imaging Corporation CMOS image sensor apparatus with on-chip real-time pipelined JPEG compression module
US7257691B2 (en) * 2003-09-26 2007-08-14 International Business Machines Corporation Writing and reading of data in probe-based data storage devices
US7280628B1 (en) * 2003-10-14 2007-10-09 Xilinx, Inc. Data capture for a source synchronous interface
JP2005157444A (ja) * 2003-11-20 2005-06-16 Toshiba Corp Fifo制御回路
FR2864320A1 (fr) * 2003-12-19 2005-06-24 St Microelectronics Sa Nouvelle architecture de memoire fifo et procede de gestion d'une telle memoire.
US20060004476A1 (en) * 2004-07-02 2006-01-05 Bran Ferren System for making custom prototypes
US10215562B2 (en) * 2004-07-16 2019-02-26 Invention Science Find I, LLC Personalized prototyping
US20060025878A1 (en) * 2004-07-30 2006-02-02 Bran Ferren Interior design using rapid prototyping
US7664563B2 (en) 2007-09-14 2010-02-16 Searete Llc System for making custom prototypes
US20060012081A1 (en) * 2004-07-16 2006-01-19 Bran Ferren Custom prototyping
US20060031044A1 (en) * 2004-08-04 2006-02-09 Bran Ferren Identification of interior design features
US7806339B2 (en) * 2004-03-16 2010-10-05 The Invention Science Fund I, Llc Embedded identifiers
US20050262314A1 (en) * 2004-05-21 2005-11-24 Oh Yong S System and method for circular buffer
CN100536020C (zh) * 2004-07-23 2009-09-02 华为技术有限公司 一种先入先出存储器及其读写地址的调整方法
US7346504B2 (en) * 2005-06-20 2008-03-18 Microsoft Corporation Multi-sensory speech enhancement using a clean speech prior
CN100430868C (zh) * 2005-12-26 2008-11-05 威盛电子股份有限公司 数据缓冲系统及数据缓冲装置的读取方法
CN101452695B (zh) * 2007-12-07 2013-01-30 晨星半导体股份有限公司 数据存取装置及方法
US8566487B2 (en) * 2008-06-24 2013-10-22 Hartvig Ekner System and method for creating a scalable monolithic packet processing engine
US8631265B2 (en) * 2010-12-13 2014-01-14 Oracle International Corporation Synchronization circuit that facilitates multiple parallel reads and writes
US9000805B2 (en) * 2013-01-29 2015-04-07 Broadcom Corporation Resonant inductor coupling clock distribution
CN105574242A (zh) * 2015-12-11 2016-05-11 中国航空工业集团公司西安航空计算技术研究所 一种通信接口及基于该接口的仿真应用方法
CN106330764B (zh) * 2016-08-15 2019-11-15 北京蓝海讯通科技股份有限公司 管理数据缓冲的方法、应用及计算设备
CN111783167A (zh) * 2020-07-24 2020-10-16 Oppo广东移动通信有限公司 Fifo读写控制电路、芯片、电子设备及数据传输方法
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5255446A (en) * 1975-10-31 1977-05-06 Toshiba Corp Information transfer control system
US4590551A (en) * 1981-08-24 1986-05-20 Burroughs Corporation Memory control circuit for subsystem controller
JPS617967A (ja) * 1984-06-15 1986-01-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション I/oコントロ−ラ
US4604683A (en) * 1984-12-10 1986-08-05 Advanced Computer Communications Communication controller using multiported random access memory
US4692893A (en) * 1984-12-24 1987-09-08 International Business Machines Corp. Buffer system using parity checking of address counter bit for detection of read/write failures
US4930069A (en) * 1987-11-18 1990-05-29 International Business Machines Corporation Mechanism and method for transferring data between bus units having varying master and slave DMA capabilities
US5121480A (en) 1988-07-18 1992-06-09 Western Digital Corporation Data recording system buffer management and multiple host interface control
US5261059A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Crossbar interface for data communication network
EP0660954A1 (en) * 1992-09-21 1995-07-05 Unisys Corporation Multiported buffer memory system for disk drive complex
US5337414A (en) * 1992-09-22 1994-08-09 Unisys Corporation Mass data storage and retrieval system
KR950015189B1 (ko) * 1993-10-28 1995-12-23 대우전자주식회사 광폭의 선입선출버퍼(fifo)의 에러검출장치
US5923895A (en) * 1996-11-15 1999-07-13 Cirrus Logic, Inc. Method and arrangement to effectively retrieve residual data from a buffer
JP3946873B2 (ja) * 1998-06-19 2007-07-18 株式会社日立製作所 ディスクアレイ制御装置
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller

Also Published As

Publication number Publication date
US20020188767A1 (en) 2002-12-12
JP2004521426A (ja) 2004-07-15
US6701390B2 (en) 2004-03-02
EP1402339A1 (en) 2004-03-31
WO2002099621A1 (en) 2002-12-12
CN1513135A (zh) 2004-07-14

Similar Documents

Publication Publication Date Title
KR20030045023A (ko) Fifo 버퍼 및 이를 포함하는 통신 링크 및 데이터통신 방법
US5546347A (en) Interleaving architecture and method for a high density FIFO
US7558127B2 (en) Data output circuit and method in DDR synchronous semiconductor device
US8346998B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US20050265357A1 (en) Memory caching
US7366803B1 (en) Integrated circuit for buffering data by removing idle blocks to create a modified data stream when memory device is not near empty
US7725625B2 (en) Latency insensitive FIFO signaling protocol
US6920510B2 (en) Time sharing a single port memory among a plurality of ports
EP0905610B1 (en) Dual port buffer
US10943625B2 (en) Memory device with write data bus control
EP1121759B1 (en) Serial-to-parallel/parallel-to-serial conversion engine
US5666390A (en) High speed programmable counter
JPH06259225A (ja) データ転送同期装置
WO2009000794A1 (en) Data modification module in a microcontroller
US4493053A (en) Multi-device apparatus synchronized to the slowest device
US20050055489A1 (en) Bridge circuit for use in retiming in a semiconductor integrated circuit
JPS63286033A (ja) 2個のデータバス間のデータの伝送を助けるための装置
US9478272B1 (en) Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry
US6957309B1 (en) Method and apparatus for re-accessing a FIFO location
US6779061B1 (en) Method and apparatus implementing a FIFO with discrete blocks
US20040013123A1 (en) Active FIFO threshold adjustment
US10680963B2 (en) Circuit and method for credit-based flow control
US7899955B2 (en) Asynchronous data buffer
JP4060270B2 (ja) 送信装置と受信装置の間においてビデオのライン・データを遅延させる装置および方法
US11626149B2 (en) SPI NOR memory with optimized read and program operation

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid