[go: up one dir, main page]

KR100381823B1 - 가변성의폭데이터전송들을위해조정가능한깊이/폭의fifo버퍼를포함한데이터처리시스템 - Google Patents

가변성의폭데이터전송들을위해조정가능한깊이/폭의fifo버퍼를포함한데이터처리시스템 Download PDF

Info

Publication number
KR100381823B1
KR100381823B1 KR1019950052359A KR19950052359A KR100381823B1 KR 100381823 B1 KR100381823 B1 KR 100381823B1 KR 1019950052359 A KR1019950052359 A KR 1019950052359A KR 19950052359 A KR19950052359 A KR 19950052359A KR 100381823 B1 KR100381823 B1 KR 100381823B1
Authority
KR
South Korea
Prior art keywords
data
bus
fifo buffer
buffer
bit
Prior art date
Application number
KR1019950052359A
Other languages
English (en)
Other versions
KR960025719A (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 모토로라 인코포레이티드
Publication of KR960025719A publication Critical patent/KR960025719A/ko
Application granted granted Critical
Publication of KR100381823B1 publication Critical patent/KR100381823B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

가변 폭을 갖는 데이터를 전송하기 위해 조정 가능한 깊이/폭의 FIFO가 제공된다. FIFO 버퍼(65)는 각각 독립적으로 제어되는 판독/기록 레지스터들의 2개의 섹션(73, 75)으로 이루어지며, 16비트 워드들이 전송될 때, 16비트 워드들이나 32비트 워드들이 FIFO 버퍼(65)에서의 저장 공간의 낭비없이도 전송되게 한다. FIFO버퍼(65)는 16비트 워드를 전송할 때, 폭은 좁아지고 깊이는 깊어진다. 이로 인해 16비트 또는 32비트의 병렬 데이터를 인터페이스할 때, FIFO 버퍼 레지스터들(72)의 최대한의 사용이 가능하다. FIFO 버퍼(65)는 호스트 처리기에게는 종속 전용 버퍼이므로 FIFO 버퍼(65)가 데이터의 출력을 할 수는 없어, 설계가 단순하고 크기도 소형화된다.

Description

가변성의 폭 데이터 전송들을 위해 조정 가능한 깊이/폭의 FIFO 버퍼를 포함한 데이터 처리 시스템
본 발명은 일반적으로 선입 선출(FIFO) 메모리들에 관한 것으로, 특히, 가변성의 폭을 갖는 데이터 전송들을 위해 조정 가능한 깊이/폭의 FIFO 버퍼에 관한 것이다. 디지털 신호 처리는 일정한 간격들로 샘플링되고, 디지털화되는 실시간 신호들을 수학적으로 처리하는 것이다. 디지털 신호 처리기(DSP)는 필터링, 믹싱 및 신호들의 비교 등과 같은 디지털 신호 처리 기능을 수행한다. 어떤 데이터 처리 시스템들에 있어서, DSP는 잡다한 디지털 신호 처리들을 수행하기 위해 호스트 처리기에 포함될 수도 있다. 호스트 처리기는 예를 들어 마이크로컴퓨터 또는 마이크로프로세서를 포함할 수도 있다.
때로, 호스트 처리기와 DSP간에 상대적으로 대량의 데이터 전송이 필요하게 될 수도 있다. 두 처리기들 간에 데이터가 전송될 때, 두 처리기들 간의 호환성 문제, 예를 들어 두 처리기들이 상이한 클록들로 동작될 수도 있기 때문에, 직접 전송이 가능하지 않을 수도 있다. 이 경우, 비동기로 동작하는 버퍼 메모리가 사용된다. 전송 처리기가 수신 처리기에 의해 수신되기 전에, 데이터는 버트스(burst)들로 전송 처리기에 의해 버퍼 메모리로 먼저 전송된다. 그러나, 버퍼 메모리는 구현상의 비용문제에 있어서, 모든 데이터는 데이터가 처리되기 전에 전송되어야 하기때문에, 집적 회로의 유용한 표면 면적을 많이 필요로 할 수도 있어, 처리의 속도를 하락시킬 수도 있다.
상대적으로 큰 버퍼 메모리를 제거하기 위해서, 보다 작은 크기의 선입 선출(FIFO)버퍼가 호스트 처리기와 수신 처리기간에 인터페이스로 사용되기도 한다. FIFO 버퍼는 데이터가 수신된 순서대로 데이터를 출력하는 메모리 유닛이다.데이터는 호스트 처리기의 버스로부터 FIFO 버퍼로 전송될 수도 있고, 동시에, FIFO 버퍼는 데이터를 수신 처리기의 버스로 전송한다. FIFO 버퍼는 버퍼 메모리의 대안으로 사용된다. 데이터는 데이터 스트림으로 전송되는 여러 데이터 워드들로 구성될 수도 있다. 각각의 데이터 워드는 소정 갯수의 비트들로 이루어진다. 예를들어, 데이터 워드는 16비트 폭, 또는 32비트 폭으로 이루어 질수도 있다. 데이터 전송에 사용되는 FIFO 버퍼는 통상적으로 최대폭의 데이터 전송을 하게 한다. 그러나, 32비트 폭의 FIFO 버퍼를 사용하여 16비트의 데이터만이 전송되는 경우, FIFO 버퍼의 저장 용량의 절반만을 사용하게 되는 것이 된다.
따라서, 다수의 레지스터들과 제어 로직을 갖는 선입 선출 버퍼를 구비한 데이터 처리 시스템이 하나의 형태로 제공된다. 다수의 레지스터들의 각각의 레지스터는 제 1 버스에 연결된 다수의 입력 단자들과 제 2 버스에 연결된 다수의 출력단자들을 갖는다. 제어 로직은 다수의 레지스터들에 연결된다. 제 1 버스로부터의 데이터 워드가 제 1의 소정의 폭을 갖을 때, 제어 로직은 다수의 레지스터들 중에 하나의 레지스터로 하여금 제 1 버스로부터 데이터를 수신하도록 한다. 또한, 제 1 버스로부터의 데이터 워드가 제 2의 소정의 폭을 갖을 때, 다수의 레지스터들중의 2개의 레지스터들로 하여금 가능하게 한다.
이들 및 다른 특징들과 장점들은 이하 첨부된 도면을 참조로 하여 보다 상세하고 명백해질 것이다.
일반적으로, 본 발명은 가변적인 폭을 갖는 데이터 전송들을 위해 조정 가능한 깊이/폭을 갖는 FIFO 버퍼를 제공한다. FIFO 버퍼는 각각 독립적으로 제어되는두 부분으로 이루어지며, 16비트 워드들이 전송될 때, 16비트 워드들이나 32비트 워드들이 FIFO 버퍼에서의 저장 공간의 낭비없이도 전송되도록 허용한다. FIFO 버퍼는 32비트 워드의 외부 버스를 샘플링할 때에, 32비트 폭과 4워드의 깊이로 구성되며, 16비트 폭의 데이터 워드를 샘플링할 때에, 16비트 폭과 8워드 깊이로 구성된다. 따라서, 16비트 폭의 워드들을 갖는 외부 버스를 인터페이스할 때, 저장 면적이 깊어진다. 다른 실시예에 있어서, FIFO 버퍼는 다른 폭들을 갖는 워드들의 이용에 적합할 수 있어, 다른 깊이를 가질 수 있다. 16비트 또는 32비트의 병렬 데이터를 인터페이스할 때, FIFO 버퍼의 저장 공간을 최대로 사용할 수 있다. FIFO 버퍼는 호스트 처리기에 있어서 종속 전용 버퍼(slave only buffer)이다. FIFO 버퍼는 데이터의 샘플링을 단순하고 소형크기로 설계할 수 없다.
신호의 랜더링(rendering), 상태 비트 또는 유사한 장치들을 각각 논리적으로 참(true) 또는 거짓(false) 상태로 언급될 때, "어설트(assert)" 및 "니케이트(negate)"라는 용어로 이용될 것이다. 논리적으로 참인 상태가 디지털 논리 레벨 "1"에 해당된다면, 논리적으로 거짓 상태는 디지털 논리 레벨 "0"에 해당될 것이다. 또한, 논리적으로 참인 상태가 디지털 논리 레벨 "0"에 해당된다면, 논리적으로 거짓 상태는 디지털 논리 레벨 "1"에 해당될 것이다. "버스"라는 용어는 예를들면, 데이터, 어드레스, 제어, 상태 등과 같은 하나이상의 여러 형태의 정보를 전송하기 위해 사용될 수 있는 다수의 신호들을 언급할 때 사용될 것이다.
제 1 도 내지 제 8 도를 참조로 하여 본 발명을 상세히 설명한다. 제 1 도 내지 제 7 도의 각각의 블록들은 회로를 나타내며, 제 8 도의 블록은 흐름도의 하나이상의 단계를 나타낸다. 제 1 도는 본 발명에 따른 데이터 처리 시스템(20)을 예시적으로 나타낸다. 제 1 도에 나타난 실시예에서 데이터 처리 시스템(20)은 단일 집적 회로에서 구현되는 디지털 신호 처리기(DSP)이며, 다른 실시예에 있어서는 예를 들면, 마이크로컴퓨터나 또는 마이크로프로세서가 될 수도 있다. 데이터 처리 시스템(20)은 타이머(22), 호스트 인터페이스(24), 개선된 직렬 동기식 인터페이스(ESSI)(26), 직렬 비동기식 인터페이스(SCI)(28), 프로그램 RAM(램덤 액세스 메모리)과 명령 캐쉬(30), 데이터 메모리(32,34), 어드레스 생성 유닛/직접 메모리 액세스(DMA) 제어기(36), 외부 어드레스 버스 스위치(38), 내부 데이터 버스 스위치(40), DRAM(동적 램덤 액세스 메모리) 및 SRAM(정적 랜덤 액세스 메모리) 버스인터페이스와 명령 캐쉬 제어기(42), 외부 데이터 버스 스위치(44), 프로그램 제어 유닛(PCU)(46) 및 데이터 산술 유닛(ALU)(54)을 포함한다. 프로그램 제어 유닛(46)은 프로그램 인터럽트 제어기(48), 프로그램 디코드 제어기(50), 프로그램 어드레스 생성기(52)를 포함한다.
"YAB"로 표시된 어드레스 버스(56), "XAB"로 표시된 어드레스 버스(57), "PAB"로 표시된 프로그램 어드레스 버스(58), "DAB"로 표시된 어드레스 버스(59)는 어드레스 생성 유닛/DMA 제어기(36)와 외부 어드레스 버스 스위치(38)사이에 연결되어 있다. "DDB"로 표시된 데이터 버스(60)는 호스트 인터페이스(24)와 외부 데이터 버스 스위치(44)사이에 연결되어 있다. "YDB"로 표시된 데이터 버스(61), "XDB"로 표시된 데이터 버스(62), "PDB"로 표시된 프로그램 데이터 버스(63), "GDB"로 표시된 프로그램 데이터 버스(64)는 내부 데이터 버스 스위치(40)와 외부 데이터버스 스위치(44) 사이에 연결되어 있다.
타이머(22)는 내부 또는 외부의 타이밍을 사용할 수 있고, 데이터 처리 시스템(20)을 인터럽트하거나 외부 장치에 신호할 수 있는 3개의 타이머를 포함한다. 부가적으로, 타이머(22)는 소정의 횟수만큼 특정 처리가 생성된 후, DMA 전송을 신호하도록 사용될 수 있다. 3개의 타이머의 각각은 단일의 양방향성 핀 또는 단자에 연결된다. 부가적으로, 타이머(22)의 각각의 타이머는 버스들(57, 59, 60), 프로그램 인터럽트 제어기(48)에 연결된다.
호스트 인터페이스(24)는 데이터 처리 시스템(20)과 다른 장치, 예를 들어 마이크로컴퓨터나 마이크로프로세서, 또는 DMA 등과 같은 양방향성 통신을 제공한다. 또한, 호스트 인터페이스(24)는 외부 데이터 버스 스위치(44)에 버스(60)를 통해 양방향성으로 연결되며, 버스들(57,59)을 통하여 글로벌 데이터 버스(64), 프로그램 인터럽트 제어기(48), 어드레스 생성 유닛 및 DMA 제어기(36), 외부 어드레스 버스 스위치(38)에 연결된다. 부가적으로, 호스트 인터페이스(24)는 호스트 처리기와의 양방향성의 데이터 전송, 어드레스 레지스터 선택들, 호스트 처리기의 제어 통신들을 위해 외부의 핀들(50)에 양방향성으로 연결된다. 개선된 직렬 동기식 인터페이스(ESSI)(26)는 하나이상의 산업 표준 코덱들(industry standard codecs), DSP들(디지털 신호 처리기들), 마이크로프로세서들을 포함하는 외부의 직렬 디바이스들과의 직렬 통신을 제공하기 위해서 양방향성의 외부의 핀(12)에 연결된다. ESSI(26)은 버스들(57, 59, 60)에 연결된 단자들을 갖는다.
직렬 통신 인터페이스(SCI)(28)는 외부 디바이스들과의 직렬 통신을 제공하기 위해 양방향성의 외부의 핀(3)에 연결되다. 또한, SCI(26)도 버스들(57, 59, 60)에도 연결된 단자들을 갖는다.
제 1 도에 도시된 데이터 처리 시스템(20)의 실시예는 3개의 메모리 공간, 즉 프로그램 RAM과 명령 캐쉬(30), X 메모리(32)와 Y메모리(34)를 갖고 있다. 또다른 실시예에 있어서는 메모리 공간이 더 많을 수도 있고 더 적을 수도 있다. 프로그램 RAM과 명령 캐쉬(30)는 어드레스 버스(58), 데이터 버스들(60, 62)에 연결되어 있다. X 메모리(32)는 어드레스 버스들(57, 59), 데이터 버스들(60, 62)에 연결되어 있다. Y 메모리(34)는 어드레스 버스들(56, 59), 데이터 버스들(60, 61)에 연결되어 있다.
어드레스 생성 유닛/DMA 제어기(36)는 어드레스 버스들(56, 57, 58, 59)에 연결되어 있다. 어드레스 생성 유닛 및 DMA 제어기(36)는 타이머(22), 호스트 인터페이스(24), ESSI(26), SCI(28), 프로그램 RAM과 명령 캐쉬(30), 메모리들(32, 34), 외부 어드레스 버스 스위치(38), DRAM 및 SRAM 버스 인터페이스와 명령 캐쉬제어기(42)에 어드레스를 제공한다. 바람직한 실시예에 있어서, DMA 제어기는 6개의 채널들을 가진다.
DRAM 및 SRAM 버스 인터페이스와 명령 캐쉬(42)는 프로그램 어드레스 버스(58)와 양방향성 외부의 핀(14)에 연결되어 있다. DRAM 및 SRAM 버스 인터페이스와 명령 캐쉬(42)의 명령 캐쉬는 도시되지 않은 외부의 메인 메모리와 프로그램 제어 유닛(46) 사이의 버퍼 메모리로 기능한다. 명령 캐쉬는 자주 사용되는 프로그램 명령들을 저장한다. 프로그램에서 요구되는 명령 워드들이 캐쉬에 저장되어 있는 경우는 메인 메모리를 액세스하는데 필요한 시간이 제거되기 때문에 전체 성능이 향상된다.
내부 데이터 버스 스위치(40)는 데이터 버스들(60, 61, 62), 프로그램 데이터 버스(63), 글로벌 데이터 버스(64)에 연결되어 있다. 외부 데이터 버스 스위치(44)는 데이터 버스들(60, 61, 62), 프로그램 데이터 버스(63), 글로벌 데이터 버스(64)를 통해 내부 데이터 버스 스위치(40)에 연결되어 있다. 부가적으로 외부 데이터 버스 스위치(44)는 데이터 버스(60)를 통해 타이머(22), 호스트 인터페이스(24), ESSI(26), SCI(28)에 연결되어 있다. 내부 데이터 버스(40)는 버스들간의 전송에 사용된다. 어떤 2개의 버스들도 내부 데이터 버스 스위치(40)를 통해 서로 연결될 수 있다. 외부 어드레스 버스 스위치(38)와 외부 데이터 버스 스위치(44)는 도시되지 않은 외부 버스에 연결되며 모든 내부 어드레스 버스, 내부 데이터 버스에 각각 연결되어 있다.
프로그램 제어 유닛(46)에 있어서, 프로그램 인터럽트 제어기(48)는 인터럽트 요구를 조정하며 타이머(22), 호스트 인터페이스(24), ESSI(26), SCI(28)에 연결되어 있다. 또한 프로그램 인터럽트 제어기(48)는 글로벌 데이터 버스(64) 와 프로그램 디코드 제어기(50)에 양방향성으로 연결되어 있다. 양방향성으로 연결되어 있다는 것은 신호가 양방향으로 모두 전송될 수 있음을 뜻한다. 프로그램 디코드 제어기(50)는 각각의 24비트 명령을 디코드하며, 프로그램 인터럽트 제어기(48)와 프로그램 어드레스 생성기(52)에 연결되어 있다. 프로그램 어드레스 생성기(52)는 프로그램 어드레스 생성, 시스템 스택, 루프 제어에 필요한 모든 하드웨어를 포함하고 있다. 부가적으로 프로그램 어드레스 생성기(52)는 프로그램 어드레스 버스(58)와 프로그램 데이터 버스(63)에 연결되어 있다.
데이터 산술 논리 유닛(ALU)(54)은 프로그램 데이터 버스(63), 데이터 버스들(61, 62)에 연결되어 있다. 데이터 ALU(54)는 데이터 피연산자에 대해 모든 산술, 논리 연산을 수행한다. ALU(54)는 버스들(61, 62)을 통해 판독 및 기록이 가능한 레지스터를 포함한다. 데이터 ALU(54)는 또한 버스들(63, 60)에도 연결되어 있다.
클록 생성 회로(도시되지 않음)에 의해 제 1 도의 모든 블록에 클록이 공급된다. 또한 데이터 프로세싱 시스템(20)에는 도시되지 않은 시험용 회로도 있다.
제 2 도는 제 1 도의 데이터 처리 시스템(20)의 호스트 인터페이스(24)를 블록도로 나타낸 것이다. 호스트 인터페이스(24)는 호스트 전송 데이터 FIFO 버퍼(65), DSP 전송 데이터 FIFO 버퍼(66), 호스트 인터페이스 제어 레지스터(67), DSP상태 레지스터(68), DSP 제어 레지스터(69), 어드레스 구성 래지스터(70)을 포함한다. 예시된 실시예에서 호스트 인터페이스(24)는 2개의 FIFO 버퍼를 포함한다. 다른 실시예에 있어서는 호스트 인터페이스(24)는 더 많거나 또는 더 적은 수의 FIFO 버퍼를 포함할 수도 있다. 호스트 전송 데이터 FIFO 버퍼(65)는 외부 버스(116)에 연결된 다수의 데이터 입력 단자, 글로벌 데이터 버스(GDB)(64)에 연결된 다수의 데이터 출력 단자, 호스트 인터페이스 제어 레지스터(67)의 다수의 출력 단자들에 연결된 제 1 다수의 제어 단자, DSP 제어 레지스터(69)의 다수의 출력 단자들에 연결된 제 2 다수의 제어 단자로 구성된다. DSP 전송 데이터 FIFO버퍼(66)는 글로벌 데이터 버스(64)에 연결된 다수의 데이터 입력 단자, 외부 버스(116)에 연결된 다수의 데이터 출력 단자, 호스트 인터페이스 제어 레지스터(67)의 다수의 출력 단자들에 연결된 제 1 다수의 제어 단자, DSP 제어 레지스터(69)의 다수의 출력 단자들에 연결된 제 2 다수의 제어 단자로 구성된다.
호스트 인터페이스 제어 레지스터(67)는 외부 버스(116)에 연결된 다수의 양방향성의 단자, DSP 상태 레지스터(68)에 연결된 다수의 출력 단자들을 갖고 있다. DSP 상태 레지스터(68)는 글로벌 데이터 버스(64)에 연결된 다수의 출력 단자들을 포함하며, DSP 제어 레지스터(69)는 글로벌 데이터 버스(64)에 연결된 다수의 양방향성의 단자, FIFO 버퍼들(65, 66)의 제어 단자에 연결된 다수의 출력 단자들을 포함한다.
호스트 처리기(도시되지 않음)에 의해 버스(116)로부터 호스트 인터페이스(24)를 이용하여 데이터 처리 시스템(20)상의 한 장소를 목표로 글로벌 데이터 버스(64)를 통해 데이터의 전송이 개시된다. 외부 버스(116)와 버스(64)는 양방향성 버스이다. 한 실시예에 있어서 버스(116)는 멀티플렉스 버스로 데이터와 어드레스 정보를 전송하는데 공히 사용될 수도 있다. 다른 실시예에 있어서는 외부 버스(116)는 별개의 데이터와 어드레스 버스로 구성될 수도 있다. 버스(116)로부터 버스(64)로 전송이 요구되면, 호스트 처리기가 전송을 제어한다. FIFO 버퍼(65)는 호스트 처리기의 명령을 받아 종속적으로 동작할 뿐이다. FIFO 버퍼(65)는 호스트 처리기에 의해 데이터가 기록될 수 있으나 전송은 FIFO 버퍼(65)에 의해 개시될 수는 없다. 마찬가지로 FIFO 버퍼(66)도 데이터 처리 시스템(20)으로부터 외부버스(116)로의 데이터 전송을 단지 종속적으로 수행할 뿐이다.
제 5 도의 호스트 인터페이스 제어 레지스터(67)와 제 4 도의 DSP 제어 레지스터(69)는 버스(116)와 버스(64) 사이의 데이터 전송을 정의하는 제어 비트들을 제공한다. 또한 호스트 처리기는 FIFO 버퍼(65)를 활성화시키거나, FIFO 버퍼(65,66)가 비어있는지 또는 차인지를 결정하기 위해, 또는 제 6 도의 기술에서 상세히 설명될 다른 형태의 상태 정보를 수신하기 위해 호스트 인터페이스 제어 레지스터(67)를 통해 DSP 상태 레지스터(68)와 통신한다. 어드레스 구성 레지스터(70)는 버스(116)에 연결되어 있고, FIFO 버퍼(65)를 액세스하기 위한 어드레스의 범위를 정의하는 기저 어드레스를 프로그램하기 위한 어드레스 비트들을 포함한다.
제 3 도는 본 발명의 일 실시예에 따른 호스트 인터페이스(24)의 조정 가능한 깊이/폭을 가진 FIFO 버퍼(65)를 블록도로 도시한 것이다. FIFO 버퍼(65)는 FIFO 레지스터(72), 레지스터 판독 제어 논리(90), 버스(64), 버스(64) 협폭(narrow)/광폭(wide) 제어(92), 출력 버퍼 제어 논리(94), FIFO 판독 선택(96), 레지스터 기록 제어 논리(98), 버스(116) 협폭/광폭 제어(100), 어드레스 디코더(102), 입력 버퍼 제어 논리(104), FIFO 기록 선택(106), 기수 입력 버퍼(odd input buffer)(108), 우수 입력 버퍼(even input buffer)(110), 기수 출력 버퍼(112), 우수 출력 버퍼(114)를 포함한다. 버스(116)는 입력 버퍼들(108, 110)에 연결된 양방향성 버스이다. 버스(64)는 출력 버퍼들(112, 114)에 연결된 양방향성 버스이다. FIFO 레지스터(72)는 레지스터 섹션들(73, 75)을 포함한다 레지스터 섹션(75)은 우수 레지스터들(82, 84, 86, 88)을 포함한다.
바람직한 실시예에 있어서 FIFO 버퍼(65)는 제 1 도의 호스트 인터페이스(24)의 일부분을 포함한다. 또한 FIFO 버퍼(66)는 FIFO 버퍼(65)와 유사한 회로를 포함할 수도 있다. 데이터는 버스(116)로부터 FIFO 버퍼(65)로 제공된다. 버스들(116)은 호스트 처리기(도시되지 않음)의 일부분일 수도 있는 외부 버스이다. 버스(64)는 제 2 도의 호스트 인터페이스(24)에 내부 버스이다. 다른 실시예에 있어서, 버스들(116, 64)은 이 두 버스 사이에 버퍼링의 개입이 필요한 임의의 2개의 버스들이 될 수도 있다. 서로 다른 클록으로 제어되는 2개의 버스들의 경우가 이예가 될 수 있을 것이다.
버스들(116, 64)은 W(W는 정수) 비트의 데이터 워드를 전송한다. 기수 입력버퍼(108)는 데이터 비트[W/2:1]을 수신하기 위해 버스(116)에 연결된 다수의 입력 단자들과, 기수 레지스터들(74, 76, 78, 80)의 각각의 입력 단자에 연결된 다수의 출력 단자들, 입력 버퍼 제어 논리(104)로부터 제어 신호를 수신하기 위한 제어 단자를 가진다. 우수 입력 버퍼(110)는 데이터 비트[W:W/2+1]을 수신하기 위해 버스(116)에 연결된 다수의 입력 단자들과, 우수 레지스터들(82, 84, 86, 88)의 각각의 입력 단자에 연결된 다수의 출력 단자들, 입력 버퍼 제어 논리(104)로부터 제어 신호를 수신하기 위한 제어 단자를 가진다. 기수 출력 버퍼(112)는 기수 레지스터들(74, 76, 78, 80)의 다수의 출력 단자들에 연결된 다수의 입력 단자들, 데이터 비트[W/2:1]을 송신하기 위해 버스(64)에 연결된 다수의 출력 단자들과, 제어 신호를 수신하기 위해 출력 버퍼 제어 논리(94)의 출력 단자에 연결된 제어 단자를 가진다. 우수 출력 버퍼(114)는 우수 레지스터들(82, 84, 86, 88)의 다수의 출력 단자들에 연결된 다수의 입력 단자들, 데이터 비트[W:W/2+1]을 송신하기 위해 버스(64)에 연결된 다수의 출력 단자들과, 제어 신호를 수신하기 위해 출력 버퍼 제어 논리(94)의 출력 단자에 연결된 제어 단자를 가진다. FIFO 판독선택(96)에는 출력 버퍼 제어 논리(94)의 입력 단자에 연결된 출력 단자가 있다.
FIFO 판독선택(96)의 출력 단자는 레지스터 판독 제어 논리(90)의 입력 단자에 연결되어 있다. 레지스터 판독 제어 논리(90)에는 판독 제어 신호를 공급하기 위해 우수 레지스터들(82, 84, 86, 88) 및 기수 레지스터들(74, 76, 78, 80)의 각각의 입력 단자에 연결된 출력 단자가 있다. 바람직한 실시예에 있어서 각각의 우수 레지스터들(82, 84, 86, 88) 및 기수 레지스터들(74, 76, 78, 80)은 통상의 16비트 판독/기록 레지스터이다. 레지스터 판독 제어 논리(90) 및 레지스터 기록 제어 논리(98)는 FIFO 레지스터(72)를 모니터링하여 FIFO 레지스터(72)가 비었는지, 꽉 차있는지를 감시한다.
버스(64) 협폭/광폭 제어(92)에는 제 2 도의 레지스터들(128, 124)에 연결된 다수의 입력 단자들과 출력 버퍼 제어 논리(94) 및 레지스터 판독 제어 논리(90) 모두의 입력 단자에 연결된 출력 단자가 있다. 레지스터 기록 제어 논리(98)에는 기록 제어 신호를 제공하기 위해 우수 레지스터들(82, 84, 86, 88) 및 기수 레지스터들(74, 76, 78, 80)의 각각의 입력 단자에 연결된 출력 단자가 있다. 어드레스 디코더(102)에는 다수의 어드레스 신호를 수신하기 위해 버스(116)에 연결된 다수의 입력 단자들과 레지스터 기록 제어 논리(98)에 연결된 다수의 출력 단자들이 있다.
FIFO 기록 선택(106)에는 입력 버퍼 제어 논리(104)의 입력 단자 및 레지스터 기록 제어 논리(98)의 입력 단자에 연결된 출력 단자가 있다. FIFO 기록 선택(106)은 호스트 처리기가 데이터를 FIFO 버퍼(65)에 기록하면 레지스터 기록 제어논리(98)와 입력 버퍼제어 논리(104)로 인에이블 신호를 제공한다. 버스(116) 협폭/광폭 제어에는 레지스터들(124, 128)에 연결된 다수의 입력 단자들과 레지스터 기록 제어 논리(98)의 입력 단자 및 입력 버퍼 제어 논리(104)의 입력 단자에 연결된 출력 단자가 있다. 입력버퍼 제어 논리(104)에는 기수 입력 버퍼(108)의 입력단자에 연결된 제 1 출력 단자, 우수 입력 버퍼(110)의 입력 단자에 연결된 제 2 출력 단자가 있다.
데이터는 버스(116)로부터 FIFO 버퍼(65)로 기록되고, FIFO 버퍼(65)로부터 버스(64)로 판독된다. FIFO 레지스터(72)는 2개의 섹션인 섹션들(73,75)로 나뉘어진다. 섹션(75)은 우수 레지스터들(82, 84, 86, 88)을 포함하는 우수 섹션이며, 섹션(73)은 기수 레지스터들(74,76,78,80)을 포함하는 기수 섹션이다. 다른 실시예에 있어서는 구현될 서로 다른 데이터 폭의 수에 따라 임의의 수의 섹션이 있을 수 있다. 각 섹션은 독립적으로 판독 기록을 할 수 있다. 버스들(116, 64)은 모두 동적인 크기를 가지며, 다양한 크기의 워드가 동일한 버스에서 전송될 수 있다. 예시된 실시예에 있어서 FIFO 버퍼(65)는 32비트까지의 워드 폭(W)를 가진 데이터를 수신할 수 있으며, FIFO 버퍼(65)는 워드의 폭(W)에 따라서 가변인 깊이(D)를 가진다.
FIFO 버퍼(65)의 예시된 실시예에서 데이터 전송에는 4가지 경우가 있다. 1)FIFO 버퍼(65)가 버스(116)로부터 16비트 워드를 수신하여 버스(64)로 16비트 워드를 제공하는 경우; 2) FIFO 버퍼(65)가 버스(116)로부터 16비트 워드를 수신해서 버스(64)로 32비트 워드를 제공하는 경우; 3) FIFO 버퍼(65)가 버스(116)로부터 32비트 워드를 수신해서 버스(64)로 16비트 워드를 제공하는 경우; 4) FIFO 버퍼(65)가 버스(116)로부터 32비트 워드를 수신해서 버스(64)로 32비트 워드를 제공하는 경우; 16비트 워드가 전송되는 경우 FIFO 레지스터(72)는 8워드 깊이이다. 32비트 워드가 전송되는 경우, FIFO 레지스터(72)는 4워드 깊이이다. 다음의 예는 FIFO 버퍼(65)를 통한 데이터 전송으로 W는 32의 값인 경우이다. 그러나 다른 실시예에 있어서, W는 다른 데이터 폭의 값이 될 수 있다.
버스(116)에서 FIFO 버퍼(65)로 데이터를 쓸 때와 버스(64)로부터 16비트 워드를 판독할 때, 버스들(116, 64)에게는 모두 16비트 폭의 FIFO 버퍼만이 보일뿐이다. 버스(116) 협폭/광폭 제어(100)는 버스(116)를 "협폭", 즉 W/2 비트 폭으로 정의한다. FIFO 기록 선택(106)은 레지스터 기록 제어 논리(98)와 입력 버퍼 제어 논리(104)에 제어 신호를 공급하여, FIFO 버퍼(65)가 버스(116)로부터 데이터를 판독하도록 준비시킨다. 버스(116)로부터의 입력 데이터는 비트[W/2:1]로부터 기수 입력 버퍼(108)이나 우수 입력 버퍼(110)로 판독된다. 기수 입력 버퍼(108)로부터 제 1의 16비트 데이터 워드[W/2:1]가 버스(116)로부터 수신된 어드레스와 어드레스 디코더(102)에 의해 정해지는 기수 레지스터들(74, 76, 78, 80) 중의 하나로 기록된다.
어드레스 디코더(102)는 레지스터 판독 제어 논리(90)에 디코드 어드레스를제공한다 레지스터 판독 제어 논리(90)는 기수 레지스터들(74, 76, 78, 80)중의 하나를 선택한다. 제 2의 16비트 데이터 워드는 [W/2:1]로부터 우수 입력 버퍼(110)를 통해 우수 레지스터들(82, 84, 86, 88) 중의 하나로 기록된다. 제 3의 16비트 데이터 워드는 비트[W/2:1]로부터 기수 레지스터들(74, 76, 78, 80)중의 하나로 기록된다. 이 전송은 전송이 완료되거나, FIFO 버퍼가 꽉 차게 될 때까지, 기수와 우수 레지스터를 바꾸어가며 계속된다.
FIFO 버퍼(65)로부터 16비트 데이터 워드가 판독될 때는 16비트 데이터 워드는 기수 레지스터들(74, 76, 78, 80)나, 우수 레지스터들(82, 84, 86, 88)중에 하나로부터의 출력이다. 제 1의 16비트 워드는 기수 레지스터들(74, 76, 78, 80)중의 하나로부터 판독되어 기수 출력 버퍼(112)를 통해 출력 비트[W/2:1]로 출력된다. 제 2의 16비트 워드는 우수 레지스터들(82, 84, 86, 88)중에 하나로부터 판독되어 우수 출력 버퍼(114)를 통해 출력 비트[W/2:1]로 출력된다. 제 3의 16비트 워드는 기수 레지스터들(74, 76, 78, 80)중에 하나로부터 판독되어 기수 출력 버퍼(112)를 통해 출력 비트[W/2:1]로 출력된다. 이러한 동작이 전송이 완료되거나 또는 FIFO 버퍼(65)가 비어질 때까지 반복된다. 예시된 실시예에서 각각의 기수 레지스터와 우수 레지스터는 16비트 폭이다. 다른 실시예에 있어서는 레지스터는 임의의 폭이 될 수 있다.
16비트 워드를 버스(116)로부터 FIFO 버퍼(65)로 기록할 때와 32비트 워드를 버스(64)로 판독될 때, 버스(116)는 FIFO 버퍼(65)를 8워드 깊이로 인식하고 버스(64)는 FIFO 버퍼(65)가 4워드 깊이를 가진 것으로 인식한다. 버스(116) 협폭/광폭 제어(100)는 버스(116)를 협폭, 즉 W/2비트로 정의한다. 버스(64) 협폭/광폭 제어(92)는 버스(64)를 광폭, 즉, W비트 폭으로 정의한다. FIFO 기록 선택(106)은 버스(116)로부터 데이터를 판독되도록 FIFO 버퍼(65)를 준비시키기 위해 레지스터 기록 제어 논리(98) 및 입력 버퍼 제어 논리(104)에게 제어 신호를 제공한다. 버스(116)로부터의 입력 데이터는 비트[W/2:1]로부터 기수 입력 버퍼(108)나 우수 입력 버퍼(110)로 판독된다. 데이터는 [W:W/2+1]로부터 판독되지는 않는다. 바람직한 실시예에 있어서, W는 32의 값을 갖는다. 기수 입력 버퍼(108)로부터, 제 1의 16비트 데이터는 어드레스 디코더(102)에 의해 버스(116)로부터 수신된 어드레스에 의한 결정에 따라 [W/2:1]로부터 기수 레지스터들(74, 76, 78, 80)중에 하나에 기록된다. 어드레스 디코더(102)는 레지스터 판독 제어 논리(90)에 디코드 어드레스를 제공한다. 레지스터 판독 제어 논리(90)는 기수 레지스터들(74, 76, 78, 80)중에 하나를 기록할 레지스터를 선택한다. 제 2의 16비트 데이터 워드는 [W/2:1]로부터 우수 입력 버퍼(110)를 통해 우수 레지스터들(82, 84, 86, 88)중에 하나로 기록된다. 제 1의 16비트 데이터 워드는 [W/2:1]로부터 기수 레지스터들(74, 76, 78, 80)중에 하나로 기록된다. 이러한 과정이 전송이 완료되거나, FIFO 버퍼(65)가 꽉 차게 될 때까지, 기수와 우수 레지스터를 바꾸어가며 계속된다. 32비트 데이터 워드는 기수 레지스터들(74, 76, 78, 80)중의 하나와 우수 레지스터들(82, 84, 86, 88)중의 하나로부터 동시에 버스(64)로 판독된다. 제 3의 16비트 데이터 워드는 비트[W/2:1]로부터 기수 레지스터들(74, 76, 78, 80)중의 하나에 기록된다. 전송은 완료될 때가지, FIFO 버퍼(65)가 꽉 차게 될 때가지, 우수와 기수 레지스터들 사이에 바꾸어가며 계속된다.
32비트 데이터 워드는 동시에 하나의 기수 레지스터들(74, 76, 78, 80)과 하나의 우수 레지스터들(82, 84, 86, 88)로부터 판독된다. 32비트 데이터 워드의 6개의 비트는 기수 출력 버퍼(112)를 통해 비트[W/2:1]에 출력하기 위해 기수 레지스터들(74, 76, 78, 80)로부터 판독된다. 다른 16비트는 우수 레지스터들(82, 84, 86, 88)중에 하나로부터 우수 출력 버퍼(114)를 통해 비트[W:W/2:1]로 판독된다. 어드레스 디코더(102)가 판독될 기수와 우수의 레지스터를 선택하기 위해 레지스터 판독 제어 논리(90)에 디코드 어드레스를 제공한다. 이러한 과정이 전송이 완료되거나 FIFO 버퍼(65)가 비어질 때가지 계속된다.
버스(116)로부터 FIFO 버퍼(65)로 32비트 워드를 판독할 때와 버스(64)로 16비트 워드를 판독할 때, 버스(116)는 FIFO 버퍼(65)가 4워드 깊이인 것으로 인식하고, 버스(64)는 FIFO 버퍼(65)가 8워드 깊이인 것으로 인식한다. 버스(116) 협폭/광폭 제어(100)는 버스(116)를 광폭, 즉 W 비트 폭으로 정의하고 레지스터 기록 제어 논리(98)와 어드레스 디코더(102)가 32비트 워드를 수신하도록 준비시키기 위한 제어 신호를 공급한다. 버스(64) 협폭/광폭 제어(92)는 버스(64)를 협폭, 즉 W/2비트 폭으로 정의하고 레지스터 판독 제어 논리(90)와 출력 버퍼 제어 논리(94)가 32비트 워드를 기록하도록 준비한다.
FIFO 기록 선택(106)은 레지스터 기록 제어 논리(98)와 입력 버퍼제어 논리(104)에게 FIFO 버퍼(65)로 하여금 버스(116)로부터 데이터를 판독되도록 인에이블 신호를 제공한다. 어드레스 디코더(102)는 레지스터 기록 제어 논리(98)에 디코드 어드레스를 제공한다. 레지스터 기록 제어 논리(98)는 기수 레지스터들(74, 76, 78, 80)중의 하나를 기록할 레지스터로 선택한다. 32비트 데이터 워드중 16비트가 비트[W/2:1]로부터 기수 입력 버퍼(108)로 판독됨과 동시에 다른 16비트는 비트[W:W/2+1]로부터 우수 입력 버퍼(110)로 판독된다.
16비트 데이터 워드가 버스(64)로 판독될 때, 최초 판독될 데이터인[W/2:1]은 기수 레지스터들(74, 76, 78, 80)중에 하나로부터 기수 출력 버퍼(112)로 데이터가 출력된다. 제 2의 16비트 워드[W:W/2+1]는 우수 레지스터들(82, 84, 86, 88)중에 하나로부터 우수 출력 버퍼(114)로 출력된다. 제 3의 16비트 워드는 기수 레지스터들(74, 76, 78, 80)중에 하나로부터 출력되고, 이러한 과정의 전송이 완료되거나 FIFO 버퍼(65)가 비어질 될 때까지 계속된다. 어드레스 디코더(102)가 판독될 기수와 우수의 레지스터를 선택하기 위해 레지스터 판독 제어 논리(90)에 디코드 어드레스를 제공한다.
32비트 워드를 버스(116)로부터 FIFO 버퍼(65)로 판독할 때나, 32비트 워드를 버스(64)로 판독할 때, 버스들(116, 64)은 FIFO 버퍼(65)를 4워드 깊이로 인식한다. 버스(116) 협폭/광폭 제어(100)는 버스(116)를 광폭, 즉 W 비트 폭으로 정의하고 레지스터 기록 제어 논리(98) 및 어드레스 디코더(102)가 32비트 워드를 수신하도록 준비시키기 위해 제어 신호를 제공한다. 버스(64) 협폭/광폭 제어(92)도 버스(64)를 광폭으로 정의하고, 레지스터 판독 제어 논리(90) 및 출력 버퍼 제어논리(94)가 32비트를 기록하도록 준비시킨다. FIFO 기록 선택(106)은 레지스터 기록 제어 논리(98)와 입력 버퍼 제어 논리(104)에게 FIFO 버퍼(65)로 하여금버스(116)로부터 32비트 워드의 데이터를 판독되도록 인에이블 신호를 제공한다. 어드레스 디코더(102)는 레지스터 기록 제어 논리(98)에 디코드 어드레스를 제공한다. 레지스터 기록 제어 논리(98)는 기수 레지스터들(74, 76, 78, 80)중에 하나를 기록할 레지스터로 선택한다. 32비트 데이터 워드중 16비트가 비트[W/2:1]로부터 기수입력 버퍼(108)로 판독됨과 동시에 다른 16비트는 비트[W:W/2+1]로부터 우수 입력버퍼(110)로 판독된다.
32비트 데이터 워드는 기수 레지스터들(74, 76, 78, 80)중의 하나 및 우수 레지스터들(82, 84, 86, 88)중의 한 레지스터로부터 버스(64)로 동시에 판독된다. 32비트 데이터 워드중 16비트는 기수 레지스터들(74, 76, 78, 80)로부터 기수 출력버퍼(112)를 통해 출력 비트[W/2:1]로 판독된다. 다른 16비트는 우수 레지스터들(82, 84, 86, 88)중의 하나로부터 우수 출력 버퍼(114)를 통해 비트[W:W/2+1]로 판독된다. 어드레스 디코더(102)가 FIFO 판독선택(96)으로부터의 인에이블 신호에 응답하여 판독될 기수와 우수의 레지스터를 선택하기 위해 레지스터 판독 제어 논리(90)에 디코드 어드레스를 제공한다.
이러한 과정이 전송이 완료되거나 FIFO 버퍼(65)가 비어질 때가지 계속된다. FIFO 레지스터를 몇 개의 섹션으로 나누고 이 섹션들을 독립적으로 제어함으로써, 다양한 폭을 가진 데이터 워드들을 FIFO 버퍼의 저장 용량이 낭비됨이 없이 전송될 수 있다. 버퍼의 저장 용량을 효율적으로 사용함에 의해 집적 회로상의 표면실장면적을 더 효율적으로 사용할 수 있다.
제 4 도는 제 2 도의 호스트 인터페이스(24)의 DSP 제어 레지스터(69)를 블록도로 나타낸 것이다. "FC1" 및 "FC2"로 표시된 제어 비트들(130, 131)은 호스트 인터페이스(24)가 버스 마스터로서 데이터를 전송할 때 호스트 전송 데이터 FIFO 버퍼(65) 및 DSP 전송 데이터 FIFO 버퍼(66)에 있어서의 데이터 전송 포맷을 제어한다. 제어 비트들(130, 131)은 FIFO 버퍼에 있어서의 데이터의 폭, FIFO 레지스터(72)에 있어서의 데이터 배열, 호스트 인터페이스(24)가 버스(116)로부터 데이터를 판독하거나 기록할 때의 부호 확장을 정의한다. "BL5 - BLO"이라 표시된 제어 비트(132)는 데이터 버스트 길이를 제어한다. 제어 비트(132)의 값은 데이터가 전송되는 각 데이터 전송 주기마다 일 씩 감소된다. 제어 비트(132)가 0이 되거나 또는 소정의 값으로 되면, 전송이 완료된다.
제 5 도는 제 2 도의 호스트 인터페이스(24)의 호스트 인터페이스 제어 레지스터(67)를 블록도로 도시한 것이다. 호스트 인터페이스 제어 레지스터(67)는 제어 비트들(136 내지 142)을 포함한다. "HRF1" 및 "HRF0"로 각각 표시된 호스트 수신 데이터 전송 포맷 제어 비트들(136, 137)은 호스트 인터페이스(24)가 호스트 처리기에 의해 판독될 때, DSP 전송 데이터 FIFO 버퍼(66)를 통한 데이터 전송을 위한 데이터 전송 포맷을 정의한다. 제어 비트들(136, 137)은 FIFO 버퍼에 있어서의 데이터 폭, FIFO 레지스터에 있어서의 데이터 배열, 그리고 부호 확장을 정의한다. "HTF1" 및 "HTFO"라고 각각 표시된 호스트 송신데이터 전송 포맷 제어 비트들(138, 139)은 호스트 인터페이스(24)가 호스트 처리기에 의해 기록될 때 호스트 전송 데이터 FIFO 버퍼(65)를 이용하는 전송을 위한 데이터 전송 포맷을 정의한다. 제어 비트들(138, 139)은 FIFO 버퍼에 있어서의 데이터 폭, FIFO 레지스터에 있어서의데이터 배열, 그리고 부호 확장을 정의한다. "HF2", "HF1", "HF0" 라고 각각 표시된 제어 비트들(140, 141, 142)은 버스들(116, 64) 사이의 통신을 위한 범용 호스트 플래그이다. 제어 비트들(140, 141, 142)은 도시되지 않은 호스트 처리기에 의해 어설트 또는 니케이트될 수 있다.
제 6 도는 제 2 도의 호스트 인터페이스(24)의 DSP 상태 레지스터(68)을 블록도로 도시한 것이다. DSP 상태 레지스터(68)는 비트들(145 내지 151)을 포함한다. "HACT"라고 표시된 비트(145)는 호스트 인터페이스(24)가 활성상태일 때마다 어설트된다. 전송이 완료되고 호스트 인터페이스(24)의 활성상태가 종료되면 비트(145)는 니케이트된다. "HF2", "HF1", "HF0" 라고 각각 표시된 비트(140, 141, 142)는 호스트 인터페이스 제어 레지스터(67)에 있어서의 호스트 플래그 HF2, HF1, HF0의 상태를 나타낸다. 호스트 인터페이스만이 비트들(140, 141, 142)의 상태를 바꿀 수 있다. "SSRQ"라고 표시된 비트(149)는 호스트 전송 데이터 FIFO 버퍼(65)가 데이터 처리 시스템(20)을 위한 데이터를 포함하고 있음을 나타낸다. 비트(149)는 호스트인터페이스 데이터 FIFO 버퍼(65)의 레지스터가 데이터 처리 시스템(20)에 의해 비어질 때, 니케이트된다 "STRQ"라고 표시된 비트(150)는 어설트되었을 때, DSP 전송 데이터의 FIFO 버퍼(66)의 레지스터가 꽉 차있지 않고, 데이터 처리 시스템(20)이 데이터를 이 레지스터에 기록할 수 있음을 나타낸다. "HCP"라고 표시된 비트(151)는 어설트되었을 때, 호스트의 명령 인터럽트 요구가 있음을 나타낸다. 호스트 인터페이스(24)에 의해 인터럽트가 수행되고 나면, 비트(151)는 다시 니케이트된다. 비트(151)는 호스트 인터페이스(24)나 또는 도시되지 않은 호스트처리기에 의해 니케이트될 수 있다.
제 7 도는 제 2 도의 호스트 인터페이스(24)의 어드레스 구성 레지스터(70)를 블록도로 나타낸 것이다. "PM31 내지 PM16"이라고 표시된 어드레스 비트(153)는 FIFO 버퍼(65)를 액세스하기 위한 어드레스의 범위를 정의한다. 호스트 인터페이스(24)의 동작 모드에 따라서 어드레스 구성 레지스터(70)는 호스트 처리기에 의해 액세스될 수도 있고 호스트 인터페이스(24)에 의해 간접적으로 액세스될 수도있다.
제 8 도는 본 발명의 일 실시예에 따라 FIFO 버퍼(65)의 데이터 스트림상에한 어드레스를 삽입하는데 요구되는 단계들을 흐름도로 도시한 것이다. 다이아몬드 모양의 박스들(155, 156)은 결정단계를 직사각형 박스들(157, 161)은 데이터 스트림상에 어드레스 하나를 삽입하기 위해 수행되는 각 단계들을 나타낸다. FIFO 버퍼(65)는 일정범위의 어드레스들을 사용하여 버스(116)를 경유하여 액세스될 수 있다. 상기 일정범위의 어드레스는 버스(116)로부터의 어드레스의 최상위비트들에 의해 정의된다. 예를 들어, 32비트 중의 최상위 16비트가 FIFO 버퍼(65)로의 엑세스를 규정한다면 FIFO 버퍼(65)는 216, 즉, 65536 개소까지 액세스될 수 있다. 하위 비트는 "거의" 무시할 수 있다.
가능한 65536개소중에 7개만이 FIFO 버퍼(65)를 제외한 레지스터의 어드레스이기 때문이다. FIFO 버퍼(65)의 출력은 몇 가지 가능한 메카니즘 중의 어떤 하나에 의해서도 상기 일정범위의 어드레스로 전송될 수 있다. 예를 들면, 하위 어드레스 비트가 FIFO 버퍼(65)를 통해 모는 데이터를 저장할 장소를 지시하는 포인터로사용될 수 있다.
FIFO 버퍼를 통해 데이터 스트림을 전송할 때, FIFO 버퍼를 액세스하기 위해 사용되어지는 어드레스는 이를 유지할 어떤 배려가 없다면 유실되어 버릴 수 있다. FIFO 버퍼(65)에 있어서, 버스(116)로부터 판독되는 최초의 데이터는 어드레스이다. 이 어드레스는 헤더 정보를 포함할 수도 있다. 어드레스에 포함된 헤더정보는 그 데이터를 데이터 처리 시스템(20)의 목적지로 안내하는데 사용되거나, 상기 데이터 처리시스템이 그 어드레스를 어떻게 사용하는 지에 대한 기술일 수도 있다. 예시된 실시예에 있어서 버스(116)는 어드레스 및 데이터 정보를 모두 운반하는 "멀티플렉스 버스"이다. 기술된 어드레스 삽입방법은 데이터를 판독하는 시스템 구성요소, 예를 들면 어드레스 생성 유닛 및 DMA 제어기(36)가 FIFO 버퍼(65)로부터 이 데이터를 판독할 때, 이러한 사실을 인식하는 것을 요구한다 멀티플렉스 버스에서 데이터와 어드레스를 구별하는 몇 가지 방법이 있다. 예를 들어, 이 처리가 시작될 때, FIFO 버퍼가 비어있다면 어드레스는 FIFO 버퍼로부터 판독되는 첫 번째 데이터이다. 또한, 데이터 버스트가 알려진 길이를 갖고 있다면, 다음 FIFO 버퍼로부터 판독될 워드는 어드레스가 될 것이다. 부가하여, 어떤 데이터 스트림 다음에 판독될 다음 워드가 어드레스인 경우, 데이터 스트림의 길이는 어드레스의 함수가 될 수 있다.
어드레스 정보가 버스(116)로부터 판독될 때, 어드레스 디코더(102)는 레지스터 기록 제어 논리(98)에 기록 인에이블 신호를 제공한다. 그리고 나서 기록 인에이블 신호가 제공될 때 어드레스는 버스(116)상에 있으므로, 어드레스는버스(116)로부터 판독된 첫 번째 데이터로 기록된다. 어드레스가 수신된 후, 데이터가 버스(116)로부터 판독된다. 데이터 스트림의 크기는 호스트 인터페이스(24)가 종속일 때는 호스트 처리기에 의해 제어된다. 호스트 인터페이스(24)가 주제어로 동작하는 경우에는 데이터 스트림의 크기는 제 4 도의 DSP 제어 레지스터(69)의 비트(132)의 초기값에 의해 결정된다. 비트(132)의 값은 데이터 워드가 전송될 때마다 1씩 감소된다. 이 값이 0이 되면 전송이 종료된다.
결정단계(155)에서, 호스트 처리기는 어드레스가 FIFO 버퍼(65)를 액세스하는데 요구되는 범위내에 있는지를 결정한다. 어드레스가 요구되는 범위내에 있지 아니하면 "아니오" 경로가 선택되고, 이에 따라 단계(157)에서, FIFO 버퍼(65)로의 액세스는 거부된다. 만약 어드레스가 요구되는 범위내이면, 단계(156)에서 "예"의 경로가 선택된다. 단계(156)에서, 호스트 처리기는 제 6 도의 DSP 상태 레지스터(68)의 비트(145)를 검사함에 의해 FIFO 버퍼가 사용가능한지를 결정한다. FIFO 버퍼가 사용가능하지 않으면, "아니오" 경로가 선택되고, 단계(158)에서 FIFO 버퍼(65)로의 액세스는 거부된다. 호스트 처리기는 FIFO 버퍼(65)가 현재의 처리를 완료하고 액세스를 허용할 때까지 대기하여야 한다. FIFO 버퍼가 사용 가능하면 "예"경로가 선택되어 단계(159)가 실행되고, 어드레스는 호스트 인터페이스(24)에 의해 FIFO 버퍼(65)로 판독된다. 여기서 이러한 처리는 버스(116)로부터 FIFO 버퍼(65)를 경유하여 버스(64)로의 처리를 들어 기술되고 있다. 그러나, 다른 실시예에 있어서, 이 처리는 유사한 단계를 사용하여 버스(64)로부터 DSP 전송 데이터 FIFO 버퍼(66)를 통해 버스(116)로의 처리가 될 수도 있다. 단계(160)에서, 어드레스가 FIFO 버퍼(65)의 레지스터로 기록된 후, 데이터의 버스트가 FIFO 버퍼(65)로 기록된다. 일단 데이터 워드가 FIFO 버퍼(65)로 기록되면, 즉, FIFO 버퍼(65)가 비어진 상태가 아니면 단계(161)에서 데이터 워드는 FIFO 버퍼(65)로부터 데이터 처리 시스템(20)의 저장 장소로 판독된다. 데이터 스트링은 FIFO 버퍼(65)로부터 판독됨과 동시에 FIFO 버퍼(65)로 기록될 수도 있다. FIFO 버퍼는 항상 부분적으로 비어있어야 한다. 처리시 FIFO 버퍼(65)가 꽉 차게 되면, 호스트 인터페이스(24)에 의해 대기 상태가 삽입되어 호스트 처리기가 FIFO 버퍼(65)에 오버라이트하는 것을 막는다.
버스(116)는 멀티플렉스 버스이므로 어드레스와 데이터 정보를 동시에 운반한다. 그러나, 다른 실시예에 있어서, 버스(116)는 ISA버스의 경우처럼 어드레스버스와 데이터 버스로 분리되어 존재할 수도 있다. 제 7 도에 기술된 실시예에 있어서, 호스트 인터페이스(24)에 FIFO 버퍼(65)가 사용되었지만, 다른 실시예에 있어서는 통상적인 고정된 깊이/폭을 가진 FIFO버퍼가 사용될 수도 있다.
대형의 메모리 어레이 대신에 적은 FIFO 버퍼를 사용함에 의해 데이터 처리시스템(20)에서 공간이 절약된다. FIFO 버퍼가 가변적인 폭과 깊이를 가짐으로 인해, 서로 다른 크기를 가진 버스 사이에 데이터를 전송할 때, FIFO 버퍼의 저장 용량의 더 효율적인 사용이 가능해진다. FIFO 버퍼를 통한 데이터 버스트중의 어드레스가 유실되는 것을 막기 위해, 어드레스는 데이터 스트림의 개시부분에 삽입된다.
본 발명이 바람직한 실시예를 중심으로 기술되었지만, 당해 분야에서 숙련된 자라면 본 발명이 많은 다양한 방법으로 변형될 수 있으며, 상기 기술된 실시예외에도 많은 실시예가 가능하다는 것은 명백하다. 예를 들어 FIFO 버퍼(65)는 2개의 데이터 폭을 가진 FIFO 버퍼를 제공하기 위해 2개의 섹션을 가진 FIFO 레지스터(72)를 들어 기술되었지만, 그러나, 다른 실시예에 있어서, FIFO 버퍼(65)는 3개 또는 그 이상의 데이터 폭을 가진 FIFO 버퍼를 제공하기 위해 3개 또는 그 이상의 섹션을 갖도록 적응될 수 있다. 이에 따라 특허청구의 범위에는 본 발명의 범위와 사상의 범위내에서 다른 변형을 포괄하도록 이러한 사실이 참작되었다.
제 1 도는 본 발명에 따른 데이터 처리 시스템의 블록도.
제 2 도는 제 1 도의 데이터 처리 시스템의 호스트 인터페이스의 일 실시예의 블록도.
제 3 도는 본 발명의 일 실시예에 따라 제 2 도의 호스트 인터페이스의 조정 가능한 깊이/폭의 FIFO 버퍼의 블록도.
제 4 도는 제 2 도의 호스트 인터페이스의 DSP 제어 레지스터의 블록도.
제 5 도는 제 2 도의 호스트 인터페이스의 호스트 인터페이스 제어 레지스터의 블록도.
제 6 도는 제 2 도의 호스트 인터페이스의 DSP상태 레지스터의 블록도.
제 7 도는 제 2 도의 호스트 인터페이스의 어드레스 구성 레지스터의 블록도.
제 8 도는 본 발명에 따라 데이터 스트림에 삽입되는 어드레스의 흐름도.

Claims (3)

  1. 선입, 선출 버퍼(65)를 포함하는 데이터 처리 시스템(20)에 있어서,
    상기 선입, 선출 버퍼(65)는,
    다수의 레지스터들(72)로서, 각각이 제 1 버스(116)에 연결된 다수의 입력단자들과 제 2 버스(64)에 연결된 다수의 출력 단자들을 갖는, 상기 다수의 레지스터들(72); 및
    상기 다수의 레지스터들(72)에 연결되고, 상기 제 1 버스(116)로부터의 데이터 워드가 제 1의 소정의 폭을 갖는 경우에 상기 다수의 레지스터(72)중에 하나의 레지스터로 하여금 상기 제 1 버스(116)로부터 데이터를 수신하도록 하며, 상기 제 1 버스(116)로부터의 데이터 워드가 제 2의 소정의 폭을 갖는 경우에 상기 다수의 레지스터들중에 2개의 레지스터들(72)을 가능하게 하는 제어 논리(98)를 포함하는 데이터 처리 시스템.
  2. 선입, 선출 버퍼를 포함하는 데이터 처리 시스템(20)에 있어서,
    상기 선입, 선출 버퍼(72)는:
    제 1 섹션(73) 및 제 2 섹션(75)으로 구성되고, 각각이 제 1 버스(116)에 연결된 다수의 입력 단자들과 제 2 버스(64)에 연결된 다수의 출력 단자들을 갖는 다수의 저장 소자들(72); 및
    상기 다수의 저장 소자들(72)에 연결되고, 상기 제 1 섹션(73)과 제 2섹션(75)으로의 액세스를 제어하는 제어 논리 회로(98)를 포함하며;
    상기 다수의 저장 소자들(72)은 상기 제 1 및 제 2 섹션들(73, 75)을 독립적으로 액세스하는 상기 제어 논리 회로(98)에 응답하여 제 1 폭 및 제 1 깊이를 갖고, 상기 다수의 저장 소자들(72)은 상기 제 1 및 제 2 섹션들(73, 75)을 함께 액세스하는 상기 제어 논리 회로(98)에 응답하여 제 2 폭 및 제 2 깊이를 갖는 데이터 처리 시스템;
  3. 조정 가능한 깊이/폭의 선입, 선출 버퍼(65)를 갖는 데이터 처리시스템(20)에 있어서,
    상기 조정 가능한 깊이/폭의 선입, 선출 버퍼(65)는:
    각각이 데이터 비트들의 제 1의 소정의 수를 저장하고, 버스(116)에 연결된 제 1 저장 소자들의 섹션(73);
    각각이 데이터 비트들의 제 2의 소정의 수를 저장하고, 상기 버스(116)에 연결된 제 2 저장 소자들의 섹션(75); 및
    상기 제 1 및 제 2 저장 소자들의 섹션(73, 75)에 연결되고, 데이터 비트들의 상기 제 1의 소정의 수를 갖는 상기 버스로부터 제 1 데이터 워드의 샘플링에 응답하여 상기 제 1 저장 소자들의 섹션중 하나의 저장 소자를 액세스하고, 데이터 비트들의 상기 제3 소정의 수를 갖는 상기 버스로부터 제 2 데이터 워드의 샘플링에 응답하여 상기 제 1 및 제 2 저장 소자들의 섹션들(73, 75)의 하나의 저장 소자를 액세스하는 제어 논리 회로(98)를 포함하고;
    데이터 비트들의 상기 제3 소정의 수는 상기 제 2의 소정의 수와 상기 제 1의 소정의 수를 더한 것과 같은 데이터 처리 시스템.
KR1019950052359A 1994-12-16 1995-12-15 가변성의폭데이터전송들을위해조정가능한깊이/폭의fifo버퍼를포함한데이터처리시스템 KR100381823B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US357,909 1994-12-16
US357909 1994-12-16
US08/357,909 US5673396A (en) 1994-12-16 1994-12-16 Adjustable depth/width FIFO buffer for variable width data transfers

Publications (2)

Publication Number Publication Date
KR960025719A KR960025719A (ko) 1996-07-20
KR100381823B1 true KR100381823B1 (ko) 2003-07-18

Family

ID=23407530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950052359A KR100381823B1 (ko) 1994-12-16 1995-12-15 가변성의폭데이터전송들을위해조정가능한깊이/폭의fifo버퍼를포함한데이터처리시스템

Country Status (5)

Country Link
US (1) US5673396A (ko)
EP (1) EP0717347A3 (ko)
JP (1) JPH08235850A (ko)
KR (1) KR100381823B1 (ko)
CN (1) CN1095130C (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664230A (en) * 1995-05-26 1997-09-02 Texas Instruments Incorporated Data processing with adaptable external burst memory access
KR970029070A (ko) * 1995-11-04 1997-06-26 김광호 입출력데이타의 크기를 달리하는 선입선출메모리장치 및 그 방법
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5822553A (en) * 1996-03-13 1998-10-13 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller architecture
JP2950231B2 (ja) * 1996-03-21 1999-09-20 日本電気株式会社 セル化転送データのリアセンブルバッファ制御装置及び制御方法
EP0869430B1 (en) * 1997-04-02 2005-11-30 Matsushita Electric Industrial Co., Ltd. Fifo memory device
US6014720A (en) * 1997-05-05 2000-01-11 Intel Corporation Dynamically sizing a bus transaction for dual bus size interoperability based on bus transaction signals
KR100303204B1 (ko) * 1998-04-06 2001-11-22 구자홍 가변입출력폭을갖는선입선출장치
FI981917A (fi) 1998-09-08 2000-03-09 Nokia Networks Oy Menetelmä FIFO-jonon toteuttamiseksi muistissa ja muistijärjestely
US6233629B1 (en) * 1999-02-05 2001-05-15 Broadcom Corporation Self-adjusting elasticity data buffer with preload value
US6513105B1 (en) 1999-05-07 2003-01-28 Koninklijke Philips Electronics N.V. FIFO system with variable-width interface to host processor
FI991334A (fi) * 1999-06-10 2000-12-11 Nokia Networks Oy Menetelmä kaksisuuntaisen jonon toteuttamiseksi muistissa ja muistijär jestely
NO993483L (no) 1999-07-15 2001-01-16 Ericsson Telefon Ab L M Fremgangsmåte og anordning for effektiv overföring av datapakker
KR100397920B1 (ko) * 1999-08-24 2003-09-19 엘지전자 주식회사 판독/기록 취소 가능 가변 용량 선입 선출 통신 시스템
US6728863B1 (en) 1999-10-26 2004-04-27 Assabet Ventures Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory
AU3636901A (en) 1999-10-26 2001-05-08 Pyxsys Corporation Wide connections for transferring data between pe's of an n-dimensional mesh-connected simd array while transferring operands from memory
JP2001159970A (ja) * 1999-12-03 2001-06-12 Sony Corp 装置間結合装置
US6629226B1 (en) * 2000-12-08 2003-09-30 Cypress Semiconductor Corp. Fifo read interface protocol
KR100371145B1 (ko) * 2000-12-29 2003-02-06 주식회사 하이닉스반도체 임베디드 메모리 장치의 데이터 입출력 장치
CN1647064A (zh) * 2002-04-25 2005-07-27 皇家飞利浦电子股份有限公司 用于实现脉动阵列的处理方法和设备
JP2004240713A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd データ転送方法及びデータ転送装置
US7680944B1 (en) * 2003-02-28 2010-03-16 Comtrol Corporation Rapid transport service in a network to peripheral device servers
US8447900B1 (en) 2003-06-12 2013-05-21 Marvell International Ltd. Adaptive multiple FIFO scheme
KR100532471B1 (ko) * 2003-09-26 2005-12-01 삼성전자주식회사 입출력 데이터 위스 조절이 가능한 메모리 장치 및 그위스 조절 방법
US7634597B2 (en) 2003-10-08 2009-12-15 Micron Technology, Inc. Alignment of instructions and replies across multiple devices in a cascaded system, using buffers of programmable depths
CN1294482C (zh) * 2004-06-08 2007-01-10 大唐微电子技术有限公司 支持16位和32位字宽存储器的启动方法及装置
CN100394723C (zh) * 2006-08-14 2008-06-11 江苏中科龙梦科技有限公司 一种基于以太网核接收控制器的双接收fifo方法
CN101042637A (zh) * 2007-04-06 2007-09-26 威盛电子股份有限公司 先进先出缓冲单元及先进先出缓冲方法
CN101127785B (zh) * 2007-09-14 2010-09-29 福建星网锐捷网络有限公司 Pf接口和spi3接口之间的接口转换发送、接收方法及装置
US10746795B2 (en) * 2012-10-30 2020-08-18 Nxp Usa, Inc. Method and apparatus for at-speed scan shift frequency test optimization
CN103747253B (zh) * 2013-12-27 2017-04-05 高新兴科技集团股份有限公司 一种基于fifo的视频编码数据传输方法
US9710415B2 (en) 2014-11-03 2017-07-18 Nxp Usa, Inc. Asynchronous FIFO buffer with Johnson code write pointer
US10074154B2 (en) 2014-12-12 2018-09-11 Nxp Usa, Inc. Display controller and a method thereof
US20170017584A1 (en) * 2015-07-15 2017-01-19 Microchip Technology Incorporated SPI Interface With Less-Than-8-Bit Bytes And Variable Packet Size
CN113485647A (zh) * 2021-07-13 2021-10-08 湖南国科微电子股份有限公司 数据写入方法、数据读出方法及先进先出存储器
CN114422801B (zh) * 2021-12-31 2024-04-26 山东云海国创云计算装备产业创新中心有限公司 优化视频压缩控制逻辑的方法、系统、设备和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US4447878A (en) * 1978-05-30 1984-05-08 Intel Corporation Apparatus and method for providing byte and word compatible information transfers
US4258418A (en) * 1978-12-28 1981-03-24 International Business Machines Corporation Variable capacity data buffer system
JPS58161193A (ja) * 1982-03-19 1983-09-24 Fujitsu Ltd 磁気バブルメモリ制御装置
US4468734A (en) * 1982-03-26 1984-08-28 International Business Machines Corporation Method of purging erroneous signals from closed ring data communication networks capable of repeatedly circulating such signals
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
JPS62208153A (ja) * 1986-03-08 1987-09-12 Nec Corp 入出力バツフア装置
JP2684362B2 (ja) * 1986-06-18 1997-12-03 株式会社日立製作所 可変長データの記憶方式
US4965772A (en) * 1987-06-15 1990-10-23 International Business Machines Corporation Method and apparatus for communication network alert message construction
JPH0216630A (ja) * 1988-07-05 1990-01-19 Pfu Ltd 選択制御が行われるバッファ
US5155810A (en) * 1989-01-10 1992-10-13 Bull Hn Information Systems Inc. Dual FIFO peripheral with combinatorial logic circuitry
US4954987A (en) * 1989-07-17 1990-09-04 Advanced Micro Devices, Inc. Interleaved sensing system for FIFO and burst-mode memories
JPH03141936A (ja) * 1989-10-30 1991-06-17 Fujitsu Ltd 超音波探触子
US5469398A (en) * 1991-09-10 1995-11-21 Silicon Systems, Inc. Selectable width, brustable FIFO
US5262997A (en) * 1991-11-25 1993-11-16 Industrial Technology Research Institute Extendable FIFO
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue

Also Published As

Publication number Publication date
EP0717347A3 (en) 1997-06-04
CN1095130C (zh) 2002-11-27
US5673396A (en) 1997-09-30
EP0717347A2 (en) 1996-06-19
KR960025719A (ko) 1996-07-20
JPH08235850A (ja) 1996-09-13
CN1159629A (zh) 1997-09-17

Similar Documents

Publication Publication Date Title
KR100381823B1 (ko) 가변성의폭데이터전송들을위해조정가능한깊이/폭의fifo버퍼를포함한데이터처리시스템
US6216191B1 (en) Field programmable gate array having a dedicated processor interface
US5014236A (en) Input/output bus expansion interface
EP0464848A2 (en) Structure for enabling direct memory-to-memory transfer
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
US5889948A (en) Apparatus and method for inserting an address in a data stream through a FIFO buffer
US6584512B1 (en) Communication DMA device for freeing the data bus from the CPU and outputting divided data
US7165126B2 (en) Direct memory access device
KR100225727B1 (ko) 데이타 처리장치(Data processing system)
US6681273B1 (en) High performance, variable data width FIFO buffer
US5185879A (en) Cache system and control method therefor
JP3304395B2 (ja) データ転送装置及びデータ転送方法
KR100308113B1 (ko) 데이터 처리 시스템
JP3028932B2 (ja) 入出力バッファメモリ回路
US20020032846A1 (en) Memory management apparatus and method
IE842856L (en) Adjustable buffer for data communications in data processing¹system
JP2000215154A (ja) Dmaコントロ―ラ
US5708852A (en) Apparatus for serial port with pattern generation using state machine for controlling the removing of start and stop bits from serial bit data stream
JPS6019816B2 (ja) マイクロプログラム制御アダプタ
GB2248128A (en) A single board computer
EP0668556A2 (en) A queue memory system and method therefor
JPH0833869B2 (ja) データ処理装置
EP0813152A2 (en) Memory protection mechanism
KR920001800B1 (ko) 팩시밀리의 용량확장용 접속장치
JPS61153770A (ja) 画像処理装置

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19951215

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20001215

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 19951215

Comment text: Patent Application

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

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20030414

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20030415

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20060331

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20070330

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20080331

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20090331

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20100331

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20110330

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20120328

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20130326

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20130326

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20140326

Start annual number: 12

End annual number: 12

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20160309