KR20040010756A - 선입 선출 메모리 시스템 및 그 방법 - Google Patents

선입 선출 메모리 시스템 및 그 방법 Download PDF

Info

Publication number
KR20040010756A
KR20040010756A KR10-2003-7016664A KR20037016664A KR20040010756A KR 20040010756 A KR20040010756 A KR 20040010756A KR 20037016664 A KR20037016664 A KR 20037016664A KR 20040010756 A KR20040010756 A KR 20040010756A
Authority
KR
South Korea
Prior art keywords
data
fifo
multiplexer
input terminal
entries
Prior art date
Application number
KR10-2003-7016664A
Other languages
English (en)
Other versions
KR100902765B1 (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 KR20040010756A publication Critical patent/KR20040010756A/ko
Application granted granted Critical
Publication of KR100902765B1 publication Critical patent/KR100902765B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Storing Facsimile Image Data (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

선입 선출(FIFO) 메모리 시스템(10)은 제 1 및 제 2 FIFO들(A 및 B)을 포함한다. 제 1 및 제 2 멀티플렉서(12, 14) 각각은 데이터를 수신하기 위한 두 개의 입력 단자들을 가진다. 제 1 멀티플렉서(12)의 출력 단자는 제 1 FIFO (A)에 연결되고 제 2 멀티플렉서(14)의 출력 단자는 제 2 FIFO (B)에 연결된다. 제 1 데이터 타입인 데이터에 응답하여, 기록 제어 로직(90, 95, 100)은 데이터가 제 1 및 제 2 FIFO들 (A, B)에 교대로 기록되도록 사용된다. 제 2 데이터 타입인 데이터에 대한 반응으로, 기록 제어 로직(90, 95, 100)은 제 1 및 제 2 FIFO들 (A, B)에 동시에 기록되도록 하는 것에 사용된다.
도 1은 개요를 수반하는 도면.

Description

선입 선출 메모리 시스템 및 그 방법{First-in, first-out memory system and method thereof}
집적 회로 데이터 처리 시스템 상에서 구현되는 실시간 디버그(debug) 시스템에서, 메시지들을 디버깅 도구로 출력하기 전에 먼저 디버그 메시지들을 저장하는 것이 필요하다. 선입 선출(FIFO) 메모리 시스템은 일반적으로 디버그 메시지들을 일시적으로 저장하기 위해서 사용된다. 메시지들의 일부를 동시에 저장될 필요가 있는 복수의 엔트리(entry)들일 수 있고 다른 메시지들은 단독으로 저장될 필요가 있다.
동일한 FIFO 구조에 메시지들의 두 종류들을 저장하기 위해서, 이중 포트 FIFO가 사용되거나, 개별적인 전용 FIFO들이 사용될 수도 있다. 하지만, 멀티플렉서(multiplexer)들이 두 메시지 타입들의 저장을 허용하기 위해서 FIFO의 모든 엔트리에 요구되기 때문에 이중 포트 FIFO는 구현할 큰 표면 영역을 요구한다. 또한, 많은 수의 멀티플렉서들은 멀티플렉서 선택 라인들을 제어하기 위해서 많은 양의로직을 요구하며, 로직(logic) 스위칭(switching)으로 인해 전력 소비가 대응하여 증가한다.
FIFO 메모리 시스템을 구현하는 다른 방법은 두 개의 별개의 개별적인 전용 FIFO들을 사용하는 것이다. 예를 들면, 하나의 FIFO는 어드레스(address) 정보만을 수신할 수 있고 다른 FIFO는 데이터만을 수신할 수 있다. 이것은 집적 회로상의 보다 작은 표면 면적 및 보다 적은 설계 복잡성이라는 이점을 가진다. 하지만, 그것은 FIFO들 중 하나가 풀(full)이 아닌 동안, 다른 하나가 풀이 될 수 있기 때문에 이중 포트 FIFO와 비교할 때 덜 효율적인 FIFO 사용을 가져온다.
그러므로, FIFO를 구현하기 위해서 필요한 제어 로직을 최소화하면서 저장 영역을 효율적으로 사용하는 FIFO 메모리 시스템을 가지는 것이 바람직하다.
본 발명은 일반적으로 메모리 시스템 스토리지를 가진 집적 회로들에 관한 것으로, 특히, 선입 선출(FIFO : First-In, First-Out) 메모리 구조들을 사용하는 집적 회로들에 관한 것이다.
본 발명은 예를 통해 예시되고 수반된 도면들에 국한되지 않으며, 유사한 참조번호는 유사한 요소를 나타낸다.
도 1은 본 발명의 실시예에 따른 선입 선출(FIFO) 메모리 시스템을 블록도로 예시한 도면; 및
도 2는 도 1의 선입 선출 메모리 시스템의 세부 구성을 블록도로 예시하는 도면.
숙련된 당업자는 도면들의 요소들이 단순성 및 명확성을 위해서 예시되며 반드시 축적되어 도시되지는 않았음을 이해해야 한다. 예를 들면, 도면들내의 어떤 요소들의 치수들은 본 발명의 실시예들의 이해를 돕기 위해서 다른 요소들에 비해서 확대된다.
도 1에 본 발명에 따른 선입 선출(FIFO : First-In, First-Out)가 예시된다. 한 형태에서, FIFO 메모리 시스템(10)은 FIFO (A) 및 FIFO (B)로서 예시된, 두 개의 FIFO들을 가진다. FIFO 메모리 시스템(10)은 어떠한 갯수의 FIFO들로도 구현될 수 있음을 이해해야 한다. FIFO (A) 및 FIFO (B)의 각각은 임의의 수의 스토리지 엔트리들을 가질 수 있다. FIFO (A)가 N 엔트리들을 가지고 FIFO (B)가 M 엔트리들을 가지며, 여기서 N, M이 정수값들인 것으로 가정한다. 입력(A)은 멀티플렉서(12)의 제 1 입력 및 멀티플렉서(14)의 제 1 입력에 연결된다. 입력(B)은 멀티플렉서(12)의 제 2 입력 및 멀티플렉서(14)의 제 2 입력에 연결된다. 플립플롭(flip-flop)(16)의 출력에 제공된 D-타입 플립플롭(16)은 멀티플렉서(12) 및 멀티플렉서(14)의 각각의 제어 입력에 연결된 기록 신호(WRITE)를 제공한다. 플립플롭(16)의 출력은 인버터(inverter)(18)의 입력에 연결된다. 인버터(18)의 출력은 플립플롭(16)의 D 입력에 연결된다. 멀티플렉서(12)의 출력은 FIFO (A)의 엔트리(0), 엔트리(1) 내지 엔트리(N)와 같은 각각의 엔트리에 연결된다. 멀티플렉서(14)의 출력은 FIFO (B)의 엔트리(0), 엔트리(1) 내지 엔트리(M)와 같은, 각각의 엔트리에 연결된다. FIFO (A)의 각각의 엔트리는 또한 함께 연결되고 멀티플렉서(20)의 제 1 입력에 연결되는 출력 단자를 가진다. FIFO (B)의 각각의 엔트리는 함께 연결되고 멀티플렉서(22)의 제 1 입력에 연결되는 출력 단자를 가진다. FIFO (A)의 출력 단자는 또한 멀티플렉서(20)의 제 2 입력에 연결된다. FIFO(B)의 출력 단자는 또한 멀티플렉서(20)의 제 2 입력에 연결된다. D-타입 플립플롭(23)은 멀티플렉서(20) 및 멀티플렉서(22)의 각각의 제어 단자에 연결되는 판독 제어 신호(READ)를 제공하기 위한 Q 출력을 가진다. 플립플롭(23)의 출력은 인버터(24)의 입력에 연결된다. 멀티플렉서(20)의 출력은 입력/출력(I/O) 유닛(25)의 제 1 입력에 연결된다. 멀티플렉서(22)는 입력/출력 유닛(25)의 제 2 입력에 연결된다. 입력/출력 유닛은 I/O 단자(도시되지 않음)와 인터페이스된다.
동작 중에, FIFO 메모리 시스템(10)은 효율적인 방법으로 다수의 엔트리들을 기록할 수 있다. 멀티플렉서(12) 또는 멀티플렉서(14) 중 하나와 같은 단일 멀티플렉서는 개별적으로, FIFO (A) 또는 FIFO (B) 중 하나의 각각의 기록 포트, 즉 입력 단자에 위치한다. 설명을 위해서 패킷 형태의 정보가 입력(A) 및 입력(B)에 수신된다고 가정한다. 데이터의 단일 패킷 또는 일부분은 도 2와 관련하여 이하에서 설명될 방식으로 입력(A) 또는 입력(B) 중 하나로부터 FIFO (A) 또는 FIFO (B) 중 하나에만 기록될 수 있다.
도 1 에 예시된 바와 같이, 입력(A) 및 입력(B)로부터의 데이터의 두 개의 패킷들 또는 부분들은 동시에 FIFO (A) 및 FIFO (B)에 기록된다. 플립플롭(16)은 1-비트 기록 레지스터(register)로서 기능하고 기록 제어 신호(WRITE)는 FIFO (A) 또는 FIFO (B) 중 하나를 지시하기 위해 사용된다. 기록 제어 신호가 로직 1 값을 가질 때, 멀티플렉서(12)는 출력으로서 제공하기 위해서 입력(A)을 선택하고 멀티플렉서(14)는 출력으로서 제공하기 위해서 입력(B)을 선택한다. 기록 제어 신호가 로직 0 값을 가질 때, 멀티플렉서(12)는 출력으로 제공하기 위해서 입력(B)을 선택하고 멀티플렉서(14)는 출력으로 제공하기 위해서 입력(A)을 선택한다. 또한, 인버터(18)는 단일 엔트리 기록 동작이 플립플롭(16)의 클록 입력(도시되지 않음)에 연결된 기록 클록 신호(도시되지 않음)에 의해서 제어되면서 발생할 때마다 플립플롭(16)의 로직 상태를 플립(flip)하도록 작동한다. 게다가, FIFO 메모리 시스템(10)내의 동작이 두 개의 기록 동작들을 동시에 수행하도록 요구되면, 플립플롭(16)의 로직 상태는 동일하게 유지된다. 동시 기록을 위해서, 입력(A) 및 입력(B)의 각각으로부터의 정보가 기록될 수도 있고, 또는 입력(A) 또는 입력(B) 중 하나에만 연속적으로 결합된 정보가 FIFO (A) 및 FIFO (B)에 기록될 수 있다. 단일 엔트리 판독 동작을 위한 유사한 방법으로, 플립플롭(23)은 1 비트 판독 레지스터로서 기능하고 판독 제어 신호는 FIFO (A) 또는 FIFO (B) 중 하나를 지시하도록 사용된다. 판독 제어 신호가 로직 1 값을 가질 때, 멀티플렉서(20)는 출력으로 제공하기 위해서 FIFO (A)의 출력을 선택하고 멀티플렉서(22)는 출력으로 제공하기 위해서 FIFO (B)의 출력을 선택한다. 판독 제어 신호가 로직 0 값을 가질 때, 멀티플렉서(20)는 출력으로 제공하기 위해서 FIFO (B)의 출력을 선택하고 멀티플렉서(22)는 출력으로 제공하기 위해서 FIFO (A)의 출력을 선택한다. 판독 제어 신호는 플립플롭(23)의 클록 입력(도시되지 않음)에 연결된 판독 클록 신호(도시되지 않음)에 응답하여 발생된다. 또한, 인버터(24)는 단일 판독 작동이 발생할 때마다, 플립플롭의 로직 상태를 플립하도록 기능한다. 게다가, 두 개의 판독 동작이 동시에 발생할 때, 플립플롭(23)의 로직 상태는 동일하게 유지된다. 플립 플랍(23), 인버터(24), 및 멀티플렉서(20 및 22)는 FIFO (A) 및 FIFO (B)로부터 동시에 데이터의 두 개의 패킷들 또는 부분들의 판독을 허용하도록 기능한다. 게다가, 데이터의 단일 패킷 또는 부분은 멀티플렉서(20) 또는 멀티플렉서(22) 중 하나로부터의 출력을 경유하여 FIFO 중 하나로부터 판독될 수 있다. 그러므로, FIFO 메모리 시스템(10)은 일정한 처리 동작들을 실행하기 위해서 다수의 엔트리들을 저장하는 데 효율적이며 동일한 FIFO 메모리 구조가 두 타입의 동작들을 완수하도록 사용되어질 수 있기 때문에 다른 처리 작동을 실행할 때 단일 엔트리들을 저장하는 데 효율적이다.
각각의 FIFO에 기록 동작을 완수하기 위해서 각 FIFO에 대한 오직 단일 멀티플렉서 회로의 사용은 중요한 비용 절감을 가져온다. FIFO 엔트리 당 멀티플렉서를 피하는 것에다가 추가적인 제어 회로 또한 피해진다. 결과로서, 사용된 적은 수의 멀티플렉서로 인해서 전력 소비에서의 주목할만한 절감 효과가 제공된다. 추가적인 전력 절감은 또한 멀티플렉서가 제거될 때 필요없는 감소된 제어 회로로부터 초래된다. 본 발명은, FIFO 당 오직 하나의 멀티플렉서는 시스템 내에서 단일 및 동시 기록 동작을 실행하도록 요구되고 FIFO 당 오직 하나의 멀티플렉서는 시스템 내에서 단일 및 동시 판독 동작을 실행하도록 요구되는 점에서 또한 다수의 FIFO들을 사용하는 것과 비교할 만하다(scalable). 기록될 정보를 제공하기 위해서 오직 하나의 멀티플렉서가 각각의 FIFO에 연결되는 동안에, 입력(A) 또는 입력(B) 중 하나로부터의 정보는 FIFO (A) 또는 FIFO (B) 중 하나에 기록된다. 입력(A) 및 입력(B)은 데이터, 어드레스 정보, 제어 정보 또는 두가지 이상의 혼합의 형태로 정보를 수신하고 저장한다는 것을 잘 이해해야한다. 게다가, 단어 '데이터'는 예시된 FIFO들내에 저장된 모든 타입의 정보를 포함한다.
도 2는 도 1의 FIFO 메모리 시스템(10)의 일실시예를 더욱 상세히 예시한다. 도 2에 도시된 바와 같이, FIFO 메모리 시스템(30)은 FIFO (A) 또는 FIFO (B) 중 하나, 또는 둘 모두에 저장되는 정보를 수신하기 위한 입력(A) 및 입력(B)을 가진다. 멀티플렉서(32)는 입력(A)에 연결된 제 1 입력을 가지고 입력(B)에 연결된 제 2 입력을 가진다. 멀티플렉서(34)는 입력(A)에 연결된 제 1 입력을 가지고 입력(B)에 연결된 제 2 입력을 가진다. 멀티플렉서(32)의 출력은 FIFO (A)의 다수의 N 엔트리들의 각각에 연결된다. FIFO (A)의 제 1 엔트리는 플립플롭들(35-38)과 같은, 다수의 플립플롭 회로들을 가진다. FIFO (A)의 제 N 엔트리는 플립플롭들(45-48)과 같은 다수의 플립플롭 회로들을 가진다. 플립플롭들(35-38 및 45-48)의 각각은 멀티플렉서(32)의 출력에 연결된 D 입력을 가진다. 플립플롭들(35-38)의 각각은 AND 게이트(50)의 제 1 입력에 연결된 Q 출력을 가진다. AND 게이트(50)의 제 2 입력은 FIFO (A)의 제 1 판독 인에이블(READ ENABLE) 신호를 의미하는 판독 인에이블 A(0)신호에 연결된다. AND 게이트(51)는 클록 신호를 수신하기 위한 제 1 입력, (FIFO (A)에 대한 제 1 기록 인에이블 신호를 의미하는) 기록 인에이블 A(0)신호를 수신하기 위한 제 2 입력, 및 플립플롭들(35-38)의 각각의 클록 입력에 연결된 출력을 가진다. 플립플롭들(45-49)의 각각은 AND 게이트(53)의 제 1 입력에 연결된 Q 출력을 가진다. AND 게이트(53)의 제 2 입력은 FIFO (A)의 제 N 판독 인에이블 신호를 의미하는, 판독 인에이블 A(N) 신호에 연결된다. AND 게이트(55)는 클록 신호를 수신하기 위한 제 1 입력, (FIFO (A)에 대한 제 N 기록 인에이블 신호를 의미하는)기록 인에이블 A(N) 신호를 수신하기 위한 제 2 입력, 및 플립플롭들(45-48)의 각각의 클록 입력에 연결된 출력을 가진다. AND 게이트(50)의 출력은 AND 게이트(53)의 출력, 멀티플렉서(60)의 제 1 입력, 및 멀티플렉서(62)의 제 2 입력에 연결된다. 멀티플렉서(60)의 출력은 입력/출력(I/O) 유닛(64)의 제 1 입력에 연결된다.
멀티플렉서(34)의 출력은 FIFO (B)의 다수의 M 엔트리들의 각각에 연결된다. FIFO (B)의 제 1 엔트리는 플립플롭들(70-73)과 같은, 다수의 플립플롭 회로들을 가진다. FIFO (B)의 제 M 엔트리는 플립플롭들(75-78)과 같은, 다수의 플립플롭 회로들을 가진다. 플립플롭들(70-73 및 75-78)의 각각은 멀티플렉서(34)의 출력에 연결된 D 입력을 가진다. 플립플롭들(70-73)의 각각은 AND 게이트(80)의 제 1 입력에 연결된 Q 출력을 가진다. AND 게이트(80)의 제 2 입력은 FIFO (B)의 제 1 판독 인에이블 신호를 의미하는, 판독 인에이블 B(0) 신호에 연결된다. AND 게이트(81)는 클록 신호를 수신하기 위한 제 1 입력, (FIFO B(0)에 대한 제 1 기록 인에이블 신호를 의미하는) 기록 인에이블 B(0) 신호를 수신하기 위한 제 2 입력, 및 플립플롭들(70-73)의 각각의 클록 입력에 연결된 출력을 가진다. 플립플롭들(75-79)의 각각은 AND 게이트(83)의 제 1 입력에 연결된 Q 출력을 가진다. AND 게이트(83)의 제 2 입력은 FIFO (B)의 제 M 판독 인에이블 신호를 의미하는 판독 인에이블 B(M) 신호에 연결된다. AND 게이트(85)는 클록 신호를 수신하기 위한 제 1 입력, (FIFO (B)에 대한 제 M 기록 인에이블 신호를 의미하는) 기록 인에이블 B(M) 신호를 수신하기 위한 제 2 입력, 및 플립플롭들(75-78)의 각각의 클록 입력에 연결된 출력을 가진다. AND 게이트(80)의 출력은 AND 게이트의 출력, 멀티플렉서(60)의 제 2 입력,멀티플렉서(62)의 제 2 입력에 연결된다. 멀티플렉서(62)의 출력은 입력/출력(I/O) 유닛(64)의 제 2 입력에 연결된다. 입력/출력 유닛(64)는 출력 포트에 연결된 출력을 가진다. 한 형태로, 입력/출력 유닛(64)의 출력은 IEEE ISTO 5001 표준을 실행할 때 디버깅(debugging) 목적으로 상호 연결 소프트웨어(Nexus-compliant software) 툴에 연결된다.
게다가, FIFO 메모리 시스템(30)은 FIFO (A)와 관련된 선카운터(Head Counter) 회로(88), 후카운터(Tail Counter) 회로(89), 기록 제어 로직 회로(90) 및 판독 제어 회로(91)를 가진다. FIFO 메모리 시스템(30)은 선카운터(93), 후카운터(94), 기록 제어 로직 회로(95) 및 판독 제어 로직 회로(96)를 가진다. 선카운터(88) 및 후카운터(89)는 기록 제어 로직 회로(90) 및 판독 제어 로직 회로(91)의 입력에 개별적으로 연결된 출력을 가진다. 기록 제어 로직 회로(90)의 출력은 FIFO (A)에 대한 기록 인에이블 신호를 제공하고, 판독 제어 로직 회로(91)의 제 1 출력은 FIFO (A)에 대한 판독 인에이블 신호를 제공한다. 선카운터(93) 및 후카운터(94)는 기록 제어 로직 회로(95) 및 판독 제어 로직 회로(96)의 입력에 개별적으로 연결된 출력을 가진다. 기록 제어 로직 회로(95)의 출력은 FIFO (B)에 대한 기록 인에이블 신호를 제공하고, 판독 제어 로직 회로(96)의 제 1 출력은 FIFO (B)에 대한 판독 인에이블 신호를 제공한다. 판독 제어 로직 회로(96)의 제 2 출력은 기록 제어 로직 회로(95)의 제 2 입력에 연결된다. 동시 엔트리 로직 회로(100)는 판독 제어 로직 회로(91)의 제 2 입력, 기록 제어 로직 회로(90)의 제 2 입력, 기록 제어 로직 회로(95)의 제 2 입력, AND 게이트(101)의 제 1 입력, AND게이트(102)의 제 1 입력 및 판독 제어 로직 회로(96)의 제 2 입력에 연결된 출력을 가진다. 클록 신호는 AND 게이트(101) 및 AND 게이트(102)의 각각의 제 2 입력에 연결된다. AND 게이트(101)의 출력은 플립플롭의 클록 입력에 연결된다. 플립플롭(105)의 Q 출력은 판독 신호를 제공하고 인버터(106)의 입력에 연결된다. 인버터(106)의 출력은 플립플롭(105)의 D 입력에 연결된다. AND 게이트(102)의 출력은 플립플롭(108)의 클록 입력에 연결된다. 플립플롭(108)의 Q 출력은 기록 신호를 제공하고 인버터(109)의 입력에 연결된다. 인버터(109)의 출력은 플립플롭(108)의 D 입력에 연결된다.
동작 중에, 도 2에 상세히 예시된 바와 같이, FIFO (A) 및 FIFO (B)는 FIFO (A)의 제 1 엔트리에 대한 플립플롭들(35-38)과 같은 다수의 플립플롭 회로들을 이용하는 특정 엔트리들을 가진다. 도 2에 예시된 클록 신호는 예시된 회로와 독립적으로 발생된 동기(synchronous) 클록이며, 동일한 클록 신호는 설명된 모든 클록 입력들에 대해 사용된다. 도 1의 동작과 함께, 멀티플렉서(32)가 로직 1 상태에서 기록 제어 신호를 수신할 때, 입력(A)은 신호의 출력으로 보내진다. 멀티플렉서(32)가 로직 0 상태에서 기록 제어 신호를 수신할 때, 입력(B)은 신호의 출력으로 보내진다. 멀티플렉서(34)가 로직 1 상태에서 기록 제어 신호를 수신할 때 입력(B)은 신호의 출력으로 보내진다. 멀티플렉서(34)가 로직 0 상태에서 기록 제어 신호를 수신할 때, 입력(A)은 신호의 출력으로 보내진다. 유사하게, 판독 제어 신호가 로직 1 상태에 있을 때, 멀티플렉서(60)는 FIFO (A)의 출력을 보내고 멀티플렉서(62)는 FIFO (B)의 출력을 보낸다. 판독 제어 신호가 로직 0 상태에 있을때, 멀티플렉서(60)는 FIFO (B)의 출력을 보내고, 멀티플렉서(62)는 FIFO (A)의 출력을 보낸다.
예시된 바와 같이, 선카운터(88)는 FIFO (A)에서 명시된 시작 엔트리를 나타내는 순차적인 카운트 값을 유지하도록 기능하며 명시된 마지막 엔트리를 나타내는 순차적인 카운트 값을 유지하도록 기능한다. FIFO (A)는 시작 어드레스 및 시작 어드레스를 감싸는(wrap back) 끝(ending) 어드레스를 가진 원형 큐(queue)로서 기능한다. 기록 제어 로직 회로(90) 및 판독 제어 로직 회로(91)는 FIFO (A)와 연관되고 기록 또는 판독 제어 로직 회로동작이 가능할 때, 부분적으로, 제어하기 위해서 선카운터 및 후카운터를 사용한다. 기록 제어 로직 회로(90) 및 판독 제어 로직 회로(91)의 출력들은 다수의 도체들이며, 상기 도체들 각각은 FIFO (A)의 특정한 엔트리에 대응된다. 선카운터(88) 및 후카운터(89)는 이런 두 개의 출력들이 FIFO (A) 내에서 어떤 엔트리가 개별적으로, 기록되거나 또는 판독되는 지를 결정할 때 FIFO (A)에 대한 포인터(pointer)로서 기능한다. 유사한 동작이 선카운터(93), 후카운터(94), 기록 제어 로직 회로(95) 및 판독 제어 로직 회로(96)와 관련해 FIFO (B)에 대해 발생한다.
동시 엔트리 로직(100)은, 언제 FIFO 메모리 시스템(30)내에서 FIFO (A 및 B) 모두에 대한 동시 기록 동작이 발생하는 지, 언제 FIFO (A 및 B) 모두에 대한 판독 제어 로직 회로동작이 발생하는 지, 언제 FIFO (A 또는 B) 중 하나에 기록 동작이 다른 FIFO의 판독 제어 로직 회로동작과 함께 발생하는 지, 언제 FIFO (A 또는 B) 중 하나에서의 하나의 엔트리의 판독 제어 로직 회로동작이 동일한 FIFO의다른 엔트리의 기록 동작과 함께 발생하는 지, 및 언제 FIFO (A 및 B) 둘 다의 기록 동작이 FIFO (A 및 B) 둘 다 내의 다른 엔트리들의 판독 제어 로직 회로동작이 발생하는 동시에 발생하는 지를 탐지하도록 기능한다. 동시 다수의 엔트리 동작이 발생할 때 신호를 보내는 많은 이벤트 및 기구(mechanism)가 있다. 예를 들면, 데이터 처리 시스템에서, 어떤 명령들은 디코딩되고 프로세서(도시되지 않음)는 동시 다수의 FIFO 동작들이 발생한다는 것을 지시할 수 있다. 한 형태에서, FIFO (A) 및 FIFO (B)와 연락되는 데이터는 데이터 처리 디버깅 기능과 관련하여 실시간 디버깅 메시지이다. 동시 엔트리 동작은 하나 이상의 FIFO들에 대한 다수의 판독 및 기록 인에이블 신호들의 발생을 통해서 실현된다. 동시 엔트리 이벤트가 있다면, AND 게이트들(101 및 102)은 비활성이 되어, 플립플롭(105 및 108)으로의 클록을 억제한다. 플립플롭(105 및 108)의 억제는 도 1에 관련하여 전에 설명된 방법으로 FIFO들(A 및 B) 사이에서 멀티플렉서(32 및 34)의 토글링(toggling) 동작을 금지한다. 토글링 동작의 억제 동시 엔트리 이벤트가 시작하기 전에 다음 엔트리의 액세스(access)가 동일한 FIFO와 함께 발생하는 것을 허용한다.
지금까지 과부하(overhead)를 줄이고 및 전력 소비를 감소시킨 FIFO 메모리 구조가 제공되었음을 이해해야 한다. 본 명세서에서 설명된 FIFO 메모리 시스템은 소형(compact)이며 비용 및 전력 절감 효과를 제공한다. 한가지 사용으로, 본 발명은 처리 시스템에서 일반적으로 구현되는 디버깅 회로에 대해 특히 이점이 있다. 다수의 정보 엔트리들은 동시에 저장될 필요가 있기 때문에, 이 기능에 관련된 제어 및 회로는 본 발명의 사용에 의해서 크게 감소된다. 본 발명은 디버깅에 관련된것과는 다른 목적을 위해서 FIFO 저장 구조를 사용하는 처리 시스템에서 사용된다. 게다가, 본 발명은 트랜지스터들의 어떠한 타입 및 반도체 제조 처리의 어떠한 타입으로도 구현될 수 있다.
본 발명을 구현하는 장치는 대부분, 본 분야의 당업자들에게 공지된 전자 부품들 및 회로들로 구성되기 때문에, 본 발명의 기초가 되는 개념들의 이해 및 인지를 위해서 및 본 발명의 지시(teaching)로부터 흐려지거나 빗나가지 않기 위해서, 회로 상세는 앞에서 예시한 바와 같이 필요하다고 고려되는 것보다 더 큰 범위에서 설명되지는 않을 것이다.
앞선 설명에서, 본 발명은 특정 실시예들을 참조하여 설명되었다. 하지만, 본 분야의 당업자는 다양한 수정 및 변화들이 이하의 청구항들에서 설명될 본 발명의 범위로부터 벗어나지 않고 행해질 수 있음을 인지해야 한다. 따라서, 설명들 및 도면들은 제한적 의미보다는 예시적 의미로 간주되어야 하고, 그러한 모든 수정들은 본 발명의 범위내에 포함되는 것으로 의도된다.
이점들, 다른 장점들, 및 문제들에 대한 해결방안들은 특정 실시예들에 관련해 상기 설명되었다. 그러나 이점들, 장점들, 문제들에 대한 해결방안들 및, 다른 이점, 장점, 또는 발생하거나 더 명백해지는 해결방안들을 초래할 수 있는 다른 요소들은 어떤 또는 모든 청구항들의, 특정의, 요구되는, 또는 필연적인 특징 또는 요소로 해석되지 말아야한다. 본 명세서에서 사용된 바와 같이, 용어 "포함하다", "포함하는" 또는 다른 변형들은 일련의 요소들을 포함하는 처리, 방법, 물품(article), 또는 장치가 오직 그런 요소들만을 포함하는 게 아니라 표현되지않거나 또는 그런 처리, 방법, 물품, 또는 장치에서 생긴 다른 요소들을 포함하도록, 비-배제적인(non-exclusive) 포함을 다루고 있도록 의도된다.

Claims (10)

  1. 선입 선출(FIFO) 메모리 시스템에 있어서,
    제 1 데이터 입력 단자, 제 2 데이터 입력 단자, 데이터 출력 단자, 및 제어 단자를 가진 제 1 멀티플렉서;
    다수의 엔트리들을 가진 제 1 FIFO 메모리로서, 상기 다수의 엔트리들 각각이 상기 제 1 멀티플렉서의 상기 데이터 출력 단자에 연결된 입력 단자를 가진, 상기 제 1 FIFO 메모리;
    상기 제 1 멀티플렉서의 상기 제 1 데이터 입력 단자에 연결된 제 1 데이터 입력 단자, 상기 제 1 멀티플렉서의 상기 제 2 데이터 입력 단자에 연결된 제 2 데이터 입력 단자, 데이터 출력 단자, 및 제어 단자를 가진 제 2 멀티플렉서;
    다수의 엔트리들을 가진 제 2 FIFO 메모리로서, 상기 다수의 엔트리들 각각이 상기 제 2 멀티플렉서의 상기 데이터 출력 단자에 연결된 입력 단자를 가진, 상기 2 FIFO 메모리; 및
    상기 제 1 및 제 2 데이터 입력들 중 하나에서 수신된 데이터를 상기 제 1 및 제 2 FIFO 메모리들에 교대로 기록하기 위해서 기록 제어 신호를 상기 제 1 및 제 2 멀티플렉서들의 각각의 상기 제어 단자들에 제공하기 위한 기록 제어 로직 회로를 포함하는, FIFO 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 데이터 입력이 제 1 데이터 타입을 수신하는 것에 응답하여 상기 기록 제어 로직 회로가 상기 제 1 및 제 2 FIFO 메모리들에 동시에 데이터를 기록하도록 하기 위해서, 상기 기록 제어 로직 회로에 연결된, 동시 엔트리 로직 회로를 더 포함하는, FIFO 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 FIFO 메모리의 상기 다수의 엔트리들의 각각의 데이터 출력 단자에 연결된 제 1 데이터 입력 단자, 상기 제 2 FIFO 메모리의 상기 다수의 엔트리들의 데이터 출력 단자에 연결된 제 2 데이터 입력 단자, 및 제어 단자를 가진 제 3 멀티플렉서;
    상기 제 1 FIFO 메모리의 상기 다수의 엔트리들의 각각의 데이터 출력 단자에 연결된 제 1 데이터 입력 단자, 상기 제 2 FIFO 메모리의 상기 다수의 엔트리들의 데이터 출력 단자에 연결된 제 2 데이터 입력 단자, 및 제어 단자를 가진 제 4 멀티플렉서; 및
    판독 제어 신호를 상기 제 3 및 제 4 멀티플렉서들의 각각의 상기 제어 단자들에 제공하기 위한 판독 제어 로직 회로로서, 상기 판독 제어 로직은 데이터가 기록된 동일한 순서로 상기 제 1 및 제 2 FIFO 메모리들로부터 데이터가 판독되도록 하는, 상기 판독 제어 로직 회로를 더 포함하는, FIFO 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 데이터는 실시간 디버그 메시지인 것으로 특징되는, FIFO 메모리 시스템.
  5. 제 1 항에 있어서,
    데이터를 상기 제 1 FIFO 메모리에 기록하면서 상기 제 1 FIFO 메모리의 상기 다수의 엔트리들의 각각을 연속적으로 지시하기 위한 제 1 카운터; 및
    데이터를 상기 제 2 FIFO 메모리에 기록하면서 상기 제 2 FIFO 메모리의 상기 다수의 엔트리들의 각각을 연속적으로 지시하기 위한 제 2 카운터를 더 포함하는, FIFO 메모리 시스템.
  6. 제 1 항에 있어서,
    상기 기록 제어 로직 회로는,
    입력 단자 및 출력 단자를 가진 인버터; 및
    상기 인버터의 출력 단자에 연결된 입력 단자, 및 상기 인버터의 입력 단자에 연결된 출력 단자를 가진 플립플롭으로서, 상기 출력 단자는 상기 기록 제어 신호를 제공하기 위한 것인, 상기 플립플롭을 포함하는, FIFO 메모리 시스템.
  7. 선입 선출(FIFO) 메모리 시스템을 액세스하는 방법으로서,
    상기 FIFO 메모리 시스템은 제 1 및 제 2 FIFO 메모리를 가지며 상기 제 1 및 제 2 FIFO 메모리들의 각각은 다수의 엔트리들, 제 1 멀티플렉서의 출력 단자에연결된 상기 제 1 FIFO 메모리의 상기 다수의 엔트리들의 각각의 입력 단자, 및 제 2 멀티플렉서의 출력 단자에 연결된 상기 제 2 FIFO 메모리의 상기 다수의 엔트리들의 각각의 입력단자를 가진, 액세스 방법에 있어서,
    데이터를 상기 제 1 멀티플렉서의 제 1 입력 단자에서 및 상기 제 2 멀티플렉서의 제 1 입력 단자에서 수신하는 단계,
    데이터를 상기 제 1 멀티플렉서의 제 2 입력 단자에서 및 상기 제 2 멀티플렉서의 제 2 입력 단자에서 수신하는 단계, 및
    데이터를 상기 제 1 및 제 2 멀티플렉서들의 상기 출력 단자들로부터 상기 제 1 및 제 2 FIFO 메모리들로 교대로 기록하는 단계를 포함하는, 액세스 방법.
  8. 제 7 항에 있어서,
    상기 데이터는 제 1 및 제 카운터들의 인크리멘팅(incrementing)에 응답하여 연속 엔트리들로 상기 제 1 및 제 2 FIFO 메모리들에 저장되며, 상기 제 1 카운터는 상기 제 1 FIFO 메모리에 대응하며, 상기 제 2 카운터는 상기 제 2 FIFO 메모리에 대응하는, 액세스 방법.
  9. 제 7 항에 있어서,
    교대로 기록하는 상기 단계에서, 상기 데이터는 상기 데이터가 제 1 데이터 타입인 것에 응답하여 상기 제 1 및 제 2 멀티플렉서들의 상기 출력 단자들로부터 상기 제 1 및 제 2 FIFO 메모리들로 기록되는, 액세스 방법.
  10. 제 7 항에 있어서,
    상기 데이터가 제 2 데이터 타입인 것에 응답하여 상기 데이터를 상기 제 1 및 제 2 멀티플렉서들의 상기 출력 단자들로부터 상기 제 1 및 제 2 FIFO 메모리들로 동시에 기록하는 단계를 더 포함하는, 액세스 방법.
KR1020037016664A 2001-06-20 2002-05-07 선입 선출 메모리 시스템 및 그 방법 KR100902765B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/885,574 US6779055B2 (en) 2001-06-20 2001-06-20 First-in, first-out memory system having both simultaneous and alternating data access and method thereof
US09/885,574 2001-06-20
PCT/US2002/014555 WO2003001360A2 (en) 2001-06-20 2002-05-07 First-in, first-out memory system and method thereof

Publications (2)

Publication Number Publication Date
KR20040010756A true KR20040010756A (ko) 2004-01-31
KR100902765B1 KR100902765B1 (ko) 2009-06-15

Family

ID=25387224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037016664A KR100902765B1 (ko) 2001-06-20 2002-05-07 선입 선출 메모리 시스템 및 그 방법

Country Status (9)

Country Link
US (1) US6779055B2 (ko)
EP (1) EP1402340B1 (ko)
JP (1) JP4076946B2 (ko)
KR (1) KR100902765B1 (ko)
CN (1) CN100377072C (ko)
AU (1) AU2002305462A1 (ko)
DE (1) DE60226141T2 (ko)
TW (1) TWI229345B (ko)
WO (1) WO2003001360A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6551857B2 (en) 1997-04-04 2003-04-22 Elm Technology Corporation Three dimensional structure integrated circuits
EP1416373A3 (en) * 2002-10-31 2005-01-05 STMicroelectronics Pvt. Ltd Method and apparatus to reduce access time in synchronous fifos with zero latency overhead
EP2221866B1 (en) 2004-01-07 2020-08-12 Nikon Corporation Stacking apparatus and method for stacking integrated circuit elements
MXPA06008043A (es) * 2004-01-16 2007-01-26 Trek 2000 Int Ltd Un dispositivo portatil de almacenamiento para grabar y reproducir datos.
CN101324863B (zh) * 2007-06-12 2012-07-04 中兴通讯股份有限公司 一种同步静态存储器的控制装置及方法
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US20100269021A1 (en) * 2007-09-05 2010-10-21 Gower Kevin C Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7945745B2 (en) * 2007-09-17 2011-05-17 General Electric Company Methods and systems for exchanging data
KR20090059802A (ko) * 2007-12-07 2009-06-11 삼성전자주식회사 레지스터 업데이트 방법 및 이를 적용한 레지스터 및컴퓨터 시스템
US8140936B2 (en) 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US20100169570A1 (en) * 2008-12-31 2010-07-01 Michael Mesnier Providing differentiated I/O services within a hardware storage controller
KR20130102393A (ko) 2012-03-07 2013-09-17 삼성전자주식회사 Fifo 메모리 장치 및 이를 포함하는 전자 장치
US9304693B1 (en) * 2012-12-17 2016-04-05 Marvell International Ltd. System and method for writing data to a data storage structure
JP6049564B2 (ja) * 2013-07-29 2016-12-21 三菱電機株式会社 データトレース回路、集積回路およびデータトレース方法
US9824058B2 (en) * 2014-11-14 2017-11-21 Cavium, Inc. Bypass FIFO for multiple virtual channels
CN106603442B (zh) * 2016-12-14 2019-06-25 东北大学 一种片上网络的跨时钟域高速数据通信接口电路
US11061997B2 (en) * 2017-08-03 2021-07-13 Regents Of The University Of Minnesota Dynamic functional obfuscation
KR20200097903A (ko) 2019-02-11 2020-08-20 삼성전자주식회사 비휘발성 메모리 장치
TWI771785B (zh) * 2020-10-29 2022-07-21 晶豪科技股份有限公司 資料先進先出(fifo)電路

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US4524424A (en) * 1982-02-18 1985-06-18 Rockwell International Corporation Adaptive spectrum shaping filter
JPS59177782A (ja) 1983-03-25 1984-10-08 Nec Corp バツフアメモリ制御方式
CA1228677A (en) * 1984-06-21 1987-10-27 Cray Research, Inc. Peripheral interface system
FR2636448B1 (fr) 1988-09-15 1994-07-22 Finger Ulrich Dispositif d'acquisition de donnees pour processeur
NL8901661A (nl) * 1989-06-30 1991-01-16 Philips Nv Televisiesysteem voor digitale overdracht van beeldsignalen.
US5525985A (en) * 1990-12-28 1996-06-11 Eaton Corporation Sure chip
US5305319A (en) 1991-01-31 1994-04-19 Chips And Technologies, Inc. FIFO for coupling asynchronous channels
DE4226952A1 (de) * 1992-08-14 1994-02-17 Deutsche Forsch Luft Raumfahrt Rahmen-Synchronisierer für Telemetrie-Systeme
KR0126330Y1 (ko) * 1993-10-23 1998-12-15 김광호 텔레비젼 수상기의 더블스캔 제어회로
JPH10283088A (ja) 1997-04-02 1998-10-23 Oki Electric Ind Co Ltd シリアル通信回路
KR19980077474A (ko) * 1997-04-19 1998-11-16 김영환 비디오 신호의 스캔방식 변환장치 및 그 제어방법
US6055616A (en) 1997-06-25 2000-04-25 Sun Microsystems, Inc. System for efficient implementation of multi-ported logic FIFO structures in a processor
US6073190A (en) * 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
KR100249235B1 (ko) * 1997-12-31 2000-03-15 구자홍 에이치디티브이 비디오 디코더

Also Published As

Publication number Publication date
DE60226141T2 (de) 2009-05-20
EP1402340B1 (en) 2008-04-16
JP2005505029A (ja) 2005-02-17
US6779055B2 (en) 2004-08-17
CN100377072C (zh) 2008-03-26
JP4076946B2 (ja) 2008-04-16
TWI229345B (en) 2005-03-11
WO2003001360A2 (en) 2003-01-03
AU2002305462A1 (en) 2003-01-08
DE60226141D1 (de) 2008-05-29
CN1524215A (zh) 2004-08-25
EP1402340A2 (en) 2004-03-31
US20020199042A1 (en) 2002-12-26
WO2003001360A3 (en) 2003-10-16
KR100902765B1 (ko) 2009-06-15

Similar Documents

Publication Publication Date Title
KR100902765B1 (ko) 선입 선출 메모리 시스템 및 그 방법
KR0123239B1 (ko) 선입선출방식(fifo) 메모리
US5490257A (en) RAM based FIFO memory half-full detection apparatus and method
US7257687B2 (en) Synchronization of active flag and status bus flags in a multi-queue first-in first-out memory system
US6802036B2 (en) High-speed first-in-first-out buffer
US20060018177A1 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
EP1714210A1 (en) A fifo memory device with non-volatile storage stage
US7136309B2 (en) FIFO with multiple data inputs and method thereof
JPH11219344A (ja) プロセッサ間ネットワークのフロー制御方法および装置
US7035908B1 (en) Method for multiprocessor communication within a shared memory architecture
US5802387A (en) Efficient data transfer in a digital signal processor
US6486704B1 (en) Programmable burst FIFO
EP1459291B1 (en) Digital line delay using a single port memory
KR100475093B1 (ko) 둘 이상의 입력포트를 구비하는 집적 회로 장치 및 시스템
US5018092A (en) Stack-type arithmetic circuit
KR100208794B1 (ko) 레지스터 공유회로
KR960016265B1 (ko) 디지털 키폰의 제어용 집적 회로
JPH05265701A (ja) Fifoメモリ
KR19990011456A (ko) 필 상태검사 회로 및 이를 이용한 fifo 메모리
JP2928140B2 (ja) 性能測定カウンタ回路
JP2595707B2 (ja) メモリ装置
KR100224725B1 (ko) 선입선출기
JPS62209640A (ja) 記憶装置
JPH06342043A (ja) 半導体集積回路装置及びそのテスト方法
JPH10289127A (ja) 開発用エミュレータのトレース回路

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130524

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140527

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee