[go: up one dir, main page]

KR100356447B1 - 메모리인터페이스유닛,공유메모리스위치시스템및관련방법 - Google Patents

메모리인터페이스유닛,공유메모리스위치시스템및관련방법 Download PDF

Info

Publication number
KR100356447B1
KR100356447B1 KR10-1998-0700888A KR19980700888A KR100356447B1 KR 100356447 B1 KR100356447 B1 KR 100356447B1 KR 19980700888 A KR19980700888 A KR 19980700888A KR 100356447 B1 KR100356447 B1 KR 100356447B1
Authority
KR
South Korea
Prior art keywords
data
memory
buffer
port
subset
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
KR10-1998-0700888A
Other languages
English (en)
Other versions
KR19990036220A (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 KR19990036220A publication Critical patent/KR19990036220A/ko
Application granted granted Critical
Publication of KR100356447B1 publication Critical patent/KR100356447B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/606Hybrid ATM switches, e.g. ATM&STM, ATM&Frame Relay or ATM&IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Static Random-Access Memory (AREA)
  • Bus Control (AREA)

Abstract

메모리 인터페이스 유닛은 버스 인터페이스 유닛과, 디지탈 메모리로 또는 디지탈 메모리로부터 이동중의 복수개의 데이타 버스트 서브세트를 기억할 수 있는 버퍼와, 버스 인터페이스 유닛으로 또는 버스 인터페이스 유닛으로부터 데이타를 전송하기 위한 외부 액세스 가능한 주 데이타 경로와 상기 버퍼로 또는 버퍼로부터의 데이타의 전송을 위한 외부 액세스 가능한 종속 데이타 경로 및 상기 버스 인터페이스 유닛과 상기 버퍼 사이에서의 데이타의 전송을 위한 직접 데이타 경로를 포함하는 스위치를 구비한다.

Description

메모리로의 인터페이스 유닛, 공유 메모리로의 스위치 시스템 및 관련 방법{MEMORY INTERFACE UNIT, SHARED MEMORY SWITCH SYSTEM AND ASSOCIATED METHOD}
공유 메모리는 다중 처리간의 데이타 전달을 용이하게 하는데 사용된다. 통상적인 공유 메모리 실시예는 다수의 포트를 사용하고 있다. 각 포트는 서로 다른 외부 장치에 공유 메모리로의 액세스를 제공하여 이들 장치는 데이타를 전달하는 서로 다른 처리를 제어하거나 실행하는 것과 관련될 수 있다.
다른 포트에 의한 공유 메모리로의 액세스에 의해 크게 영향을 받지 않는 공유 메모리로의 액세스를 각 포트에 제공하기 위해, 각 포트의 대역폭의 합에 근접한 대역폭을 갖는 공유 메모리로의 경로가 통상적으로 설계된다. 이러한 설계는 다수의 포트가 공유 메모리로 액세스하고자 하더라도 공유 메모리 엑세스시 상기 포트가 크게 지연되지 않을 정도로 충분히 큰 상기 경로의 데이타 운반 능력을 보장한다. 일반적으로, 상기 설계는 두가지 중 한가지 방법 또는 이들의 일부조합으로 달성될 수 있다. 첫째로, 공유 메모리로의 액세스 시간을 각 포트의 데이타 전송 시간보다 아주 빠르게 디자인할 수 있다. 둘째로, 공유 메모리로의 경로폭을 각 포트의 경로폭보다 아주 크게 디자인할 수 있다.
상기 첫번째 방법은 공유 메모리로부터 데이타를 판독하거나 상기 메모리에 데이타를 기록할 수 있는 타임 슬롯을 각 포트에 할당하는 것이다. 각 포트에 대해 할당된 타임 슬롯은 상기 포트를 통하여 데이타를 전송하는데 필요한 실제 시간보다 짧다. 따라서, 데이타는 포트와 공유 메모리간의 전송동안 일시적으로 버퍼링된다. 통상적으로, 상기 포트 타임 슬롯의 길이는 공유 메모리로의 액세스를 공유하는 장치의 수와 반비례한다. 특정 포트를 사용하는 장치는 상기 포트에 대해 할당된 타임 슬롯동안에만 상기 메모리로 액세스할 수 있다. 데이타는 타임 슬롯간에서 버퍼링된다. 상기 방법에는 단점을 갖는다. 예컨대, 종종 메모리로의 액세스 시간이 포트 데이타 전송 시간보다 아주 짧을 필요가 있다. 그러나, 포트의 데이타 전송률과 공유 메모리간의 이러한 미스매치는 종종 실시 불가능하다.
상기 두번째 방법도 각 포트에 타임 슬롯을 할당한다. 예컨대, 공유 메모리로의 기록은 각 포트에서 수신된 다수의 데이타 워드를 일시적으로 버퍼링시키는 단계와 이들을 상기 포트에 할당된 타임 슬롯동안 하나의 메모리 액세스 사이클에서 광폭 메모리 경로 상으로 상기 메모리에 제공하는 단계를 포함한다. 역으로, 공유 메모리로부터의 판독은 각 포트에 대해 할당된 타임 슬롯동안 하나의 메모리 액세스 사이클에서 광폭 경로 상으로 다수의 워드를 제공하는 단계, 상기 메모리로부터 판독된 워드를 일시적으로 버퍼링시키는 단계 및 상기 포트를 통하여 상기 워드를 전송하는 단계를 포함한다. 상기 두번째 방법은 데이타 워드가 각 포트를 통하여 다중워드 버스트로 전달되는 버스트 모드 시스템에 특히 적합하다. 완전한 버스트는 메모리 액세스 버퍼에 일시적으로 저장되어 단일 메모리 액세스 사이클동안 공유 메모리로의 광대역 경로를 통하여 판독 또는 기록될 수 있다. 적절히 큰 대역폭을 갖는 경로를 제공함으로써 각 포트는 다른 포트를 통한 데이타 전송에 의해 방해 받지 않으면서 공유 메모리로 독점적인 액세스를 하는 것으로 보여질 수 있다.
도 1의 블록도는 워드폭 m을 갖는 k 포트가 동등하게 공유 메모리를 공유하는 다중 포트 메모리 시스템의 종래 실시예를 나타내고 있다. 각 버스트는 k 워드를 포함한다. k 메모리 액세스 버퍼는 각각 k m-비트 워드를 저장할 수 있다. 각 버퍼는 k×m 라인폭 경로에 의해 공유 메모리에 접속된다. 상기 공유 메모리는 k×m 비트폭이다.
도 2는 도 1의 시스템과 같은 통상의 다중 포트 메모리 시스템에 사용되는 데이타 포맷을 도시하고 있다. 공유 메모리로의 데이타 전송동안, m-비트 워드의 k 워드 버스트가 포트를 통하여 전달된다. 상기 전체 버스트는 단일 메모리 액세스 버퍼에 일시적으로 저장된다. 소정의 타임 슬롯동안, 상기 버스트의 모든 k 워드는 버퍼로부터 동시에 전송되어 k×m 경로 상으로 공유 메모리에 기록된다. 공유 메모리로부터의 데이타 전송동안, k 워드는 또 다른 소정의 타임 슬롯동안 공유 메모리로부터 판독되며 단일 메모리 액세스 버퍼로 전송된다. 상기 버퍼링된 데이타는 상기 버퍼와 연결된 포트를 통하여 전송된다.
버스트를 초기에 입력한 포트와 상기 버스트를 출력하는 포트는 서로 다를 수 있다. 공유 메모리는 버스트를 일시적으로 저장하여 상기 버스트를 입력 포트로부터 출력 포트로 전달할 수 있다. 이와 같이, 도 1의 시스템은 포트간에 데이타를 전달하는데 사용될 수 있다.
예컨대, 특히 메모리 기록 동작에 있어서, 각 포트를 통하여 수신된 k m-비트 워드는 상기 포트에 할당된 메모리 액세스 버퍼에 의해 버퍼링된다. 계속해서, 상기 메모리 액세스 버퍼용으로 예약된 타임 슬롯동안, 할당된 버퍼에 저장된 모든 k m-비트 워드는 공유 k×m-비트폭 경로상으로 공유 메모리에 동시에 기록된다. 이와 유사한 방법으로, 다른 버퍼도 각각 자신과 연결된 포트에 k m-비트 워드를 저장할 수 있다. 각 버퍼의 전체 내용(즉, 모든 k 워드)은 상기 버퍼용으로 예약된 각 타임 슬롯동안 공유 메모리에 기록될 수 있다. 메모리 판독 동작은 기록 동작 단계의 역과 유사하다.
상기 종래 실시예의 단점은 대형 다중 포트 시스템에서 버퍼와 버스간의 다수의 접속핀의 존재이다. 도 3은 또 다른 종래 다중 포트 공유 메모리 시스템을 나타내는 블록도이다. 사용된 데이타 포맷은 워드당 72 비트(64 비트 데이타 + 8 비트 패러티)인 16 워드 버스트를 포함한다. 공유 메모리 버스는 1152 라인폭(16 워드 × 72 비트/워드)을 갖는다. 상기 버스는 16 메모리 액세스 버퍼 각각에 접속된다. 각 버퍼는 1224 이상의 데이타 핀을 필요로 하기도 하는데, 1152 개는 버스와의 접속을 위해서이고 72 개는 포트와의 접속을 위해서이다. 불행하게도, 버스에접속된 1152 데이타 핀은 16 버퍼 모두와 공유 메모리에 접속된 버스상에서 동작하는 고도의 구동능력을 각각 필요로 하기도 한다. 도 3은 상기 버퍼 핀에 의해 극복되어야 할 버스 용량을 나타내고 있다.
따라서, 공유 메모리로의 다수의 포트 액세스를 제공하는 개선된 구조가 필요했다. 상기 구조는 메모리 액세스 버퍼에 대해 거의 핀을 필요로 하지 않아야 하고 버퍼 핀에 대해 고도의 구동 능력을 필요로 하지 않아야 한다. 본 발명은 이들 요구를 충족시킨다.
본 발명은 일반적으로 메모리로의 인터페이스 시스템에 관한 것이며, 더욱 구체적으로 예컨대, 멀티프로세서 시스템 및 통신 스위칭과 같은 적용예를 위한 다수의 장치들에 의한 공유 메모리로의 액세스를 제공하고 중재하기 위한 방법 및 장치에 관한 것이다.
도 1은 종래 다중 포트 공유 메모리 시스템의 블록도.
도 2는 도 1의 종래 시스템에 사용될 수 있는 데이타 포맷을 나타내는 도면.
도 3은 또 다른 종래 다중 포트 공유 메모리 시스템의 블록도.
도 4는 본 발명에 따른 제1 다중 포트 공유 메모리 시스템의 블록도.
도 5는 도 4의 실시예에 사용된 데이타 포맷 및 데이타 흐름을 나타내는 도면.
도 6은 도 4의 실시예의 메모리 액세스 버퍼와 제어 논리을 나타내는 상세한 블록도.
도 7은 도 6의 메모리 액세스 버퍼의 대표적인 이중 레지스터 쌍을 나타내는 블록도.
도 8은 도 6의 제어 논리와 메모리 액세스 버퍼의 동작을 설명하는 타이밍도.
도 9는 도 7의 이중 레지스터 쌍의 동작을 설명하는 타이밍도.
도 10은 본 발명에 따른 비동기 전송 모드 스위치에 대한 블록도.
도 11은 본 발명의 바람직한 실시예에 따른 메모리 인터페이스 유닛(MIU)과 관련 제어 회로 및 레지스터를 포함하는 스위치 시스템의 블록도.
도 12는 도 11의 실시예의 제어 라인 및 데이타 라인을 나타내는 단순화한 블록도.
도 13은 도 11의 스위치 시스템의 구성 가능 스위치의 하나의 가능한 구성을 나타내는 단순화한 블록도.
도 14A는 도 11의 실시예의 구성 가능 스위치의 제어 라인 및 신호 라인을 나타내는 블록도.
도 14B는 2개의 MIU 실행을 위해 메모리 기록중에 c0을 생성하는데 사용되는 도 14A의 구성 가능 스위치내의 논리 게이트를 나타내는 게이트 레벨 논리도.
도 14C는 2개의 MIU 실행을 위해 메모리 판독중에 d0을 생성하는데 사용되는 도 14A의 구성 가능 스위치내의 논리 게이트를 나타내는 게이트 레벨 논리도.
도 15는 도 11의 실시예의 전송 버퍼의 상세를 나타내는 블록도.
도 16은 도 15의 전송 버퍼의 각 메모리 액세스 버퍼의 상세를 나타내는 블록도.
도 17은 본 발명의 실시예에 따른 2개의 MIU 시스템의 블록도.
도 18은 2개의 MIU 사이의 포트 및 어드레스 접속을 나타내는 도 17의 2 개의 MIU 시스템을 포함하는 스택 박스의 측면도.
도 19는 도 17의 2 개의 MIU 시스템의 구성 가능 스위치간의 상호 접속을 나타내는 매트릭스.
도 20은 메모리 기록 동작중에 버스트 서브세트의 흐름을 나타내는 도 17의 2 개의 MIU 시스템의 단순화한 블록도.
도 21은 도 17의 2 개의 MIU 시스템의 메모리 기록 동작중에 제어 신호와 데이타의 타이밍을 나타내는 타이밍도.
도 22는 메모리 판독 동작중에 서브세트의 흐름을 나타내는 도 17의 2 개의 MIU 시스템의 단순화한 블록도.
도 23은 도 17의 2 개의 MIU 시스템에 대한 판독 동작과 관련하여 제어 신호와 데이타의 타이밍을 나타내는 타이밍도.
도 24는 본 발명의 실시예에 따른 4개의 MIU 시스템의 단순화한 블록도.
도 25는 MIU 사이의 포트 및 어드레스 접속을 나타내는 도 24의 4 개의 MIU시스템을 포함하는 스택 박스의 측면도.
도 26은 도 24의 4개의 MIU 시스템의 MIU간의 상호 접속을 나타내는 매트릭스.
도 27은 판독 동작중에 도 24의 4 개의 MIU 시스템내의 버스트 서브세트의 흐름을 나타내는 단순화한 블록도.
도 28은 도 24의 4 개의 MIU 시스템에 대한 판독 동작과 관련하여 제어 신호 및 데이타의 타이밍을 나타내는 타이밍도.
도 29는 메모리 기록 동작중에 도 24의 4 개의 MIU 시스템 내에서 버스트 서브세트의 흐름을 나타내는 단순화한 블록도.
도 30은 도 24의 4 개의 MIU 시스템에 대한 기록 동작과 관련하여 제어 신호 및 데이타의 타이밍을 나타내는 타이밍도.
도 31은 도 11의 실시예를 사용하는 고립 MIU 어플리케이션을 나타내는 도면.
도 32는 도 11의 실시예를 사용하는 4 개의 MIU 어플리케이션을 나타내는 도면.
도 33은 도 11의 실시예를 사용하는 이더넷 스위치 어플리케이션을 나타내는 도면.
도 34는 도 11의 실시예를 사용하는 ATM 업링크 어플리케이션을 갖는 이더넷 스위치를 나타내는 도면.
도 35는 도 11의 실시예를 사용하는 2 개의 MIU 스택 가능한스위치/루터(router)를 나타내는 도면.
도 36은 도 11의 실시예를 사용하는 4개의 MIU 고속 이더넷 스위치를 나타내는 도면.
도 37은 시분할 다중(TDM) 스위칭을 이용하는 도 4의 스위치의 개선된 실시예를 나타내는 도면.
도 38은 도 37의 스위치의 동작을 나타내는 타이밍도.
도 39는 각 바이트 서브세트가 동시에 복수개의 비트를 스위치 매트릭스를 통해 송신될 수 있게 하는 도 4의 스위치의 실시예를 나타내는 도면.
[실시예]
본 발명은 다중 포트 공유 메모리 시스템을 실시하는 신규한 방법 및 장치를 포함한다. 하기 설명은 당업자가 본 발명을 실시하고 사용할 수 있도록 나타나 있다. 특정 응용예에 대한 설명은 단지 실시예로서 제공된다. 본 실시예에 대한 다양한 변형이 당업자에게 명백하며, 본 명세서에 정의된 포괄적인 개념은 본 발명의 개념 및 범위를 벗어나지 않고서 다른 실시예 및 응용예에 적용될 수 있다. 따라서, 본 발명은 설명된 실시예에 한정되지 않으며 본 발명에 개시된 원리 및 특징과 일치하는 가장 광범위한 범위에 따른다.
본 발명에 따른 제1 다중 포트 공유 메모리 시스템(18)의 블록도가 도 4에 도시되어 있다. 상기 제1 시스템(18)은 n-워드 버스트의 m-비트 데이타 워드를 각각 입력 및 출력시키는 k 포트 세트(20), 상호 접속 매트릭스 회로(22), m 메모리 액세스 버퍼 세트(24) 및 공유 메모리(26)를 포함한다. 포트는 디지탈 정보가 데이타 버스와 같은 외부 회로로 또는 외부 회로로부터 전송될 수 있는 2방향 디지탈 경로로서 제공된다. 포트 구조는 당업자에게 공지되어 있으므로 설명을 생략한다. 점선으로 표시된 공유 메모리(26)의 특정 영역은 버퍼(24)에 일시적으로 저장된 데이타의 서브세트로 마련된다.
메모리 기록 동작동안, 포트(20)는 상기 포트에 접속된 각 외부 장치(도시되지 않음)로부터 이진 데이타를 전송한다. 상기 포트(20)는 포트를 통하여 전송된 데이타를 메모리 액세스 버퍼(24)간에 분배하는 상호 접속 매트릭스(22)에 수신된 이진 데이타를 제공한다. 본 실시예에 있어서, 각 메모리 액세스 버퍼(24)가 각 포트에 의해 전송된 데이타의 서브세트를 수신하도록 상기 분배가 행해진다. 본 실시예에 있어서, 각 버퍼(24)는 각 포트로부터 각 버퍼에 의해 수신된 모든 데이타를 메모리(26)에 병렬로 전송할 수 있다. 또한, 각 포트로부터 수신된 데이타의 모든 병렬 전송은 단일 메모리 액세스 사이클동안 실행될 수 있다.
메모리 판독 동작은 기록 동작의 단계와 유사하나 상기 단계의 역이다. 즉, n m-비트 워드의 비트가 공유 메모리로부터 전송되어 메모리 액세스 버퍼(24)간에 분배된다. 상호 접속 매트릭스(22)는 분배된 비트를 단일 포트(20)에 제공하고 이를 통하여 n m-비트 워드를 포함하는 버스트가 외부 장치(도시되지 않음)로 전송된다.
제 1 시스템(18)에 사용되는 상호 접속 매트릭스 회로(22), 데이타 포맷 및 데이타 흐름이 도 5에 상세히 도시되어 있다. 각 메모리 액세스 버퍼(24)는 포트를 통하여 전송된 매 데이타 워드에 대한 특정 비트 위치를 저장한다. 데이타 워드는데이타 및 패러티 정보를 포함할 수 있다. 바람직한 본 실시예에 있어서, 메모리 액세스 버퍼(24)의 전체 수는 워드당 전체 비트 수(m)와 동일하며, 이는 각 버퍼가 매 워드의 단일 비트 위치를 책임지도록 한다. 예컨대, 메모리 액세스 버퍼(24-1)는 포트(20-1 내지 20-k) 중 어느 하나를 통하여 전송된 각 워드의 비트 1(B1)을 저장하며, 메모리 액세스 버퍼(24-2)는 포트(20-1 내지 20-k)중 어느 하나를 통하여 전송된 각 워드의 비트 2(B2)를 저장한다.
도 4를 참조하여, 각 메모리 액세스 버퍼(24-1 내지 24-k)가 n 데이타 라인세트(28-1 내지 28-k)에 의해 공유 메모리(26)에 접속된다. 따라서, 각각이 n 비트를 가지는, 서로다른 열 비트의 m-부분 집합은 메모리(26)와 버퍼(24)간에 동시에 전송될 수 있다. 본 실시예에 있어서, m-부분 집합의 각각에 대해 n-비트, 즉 n-워드 버스트의 n 워드 각각에 대해 1비트이다. 특히, 버스트당 n-워드이고 워드당 m-비트라면, 열 B1의 버스트당 n-비트이고 열 B2의 버스트당 n-비트이며, ... , 열 Bm의 버스트당 n-비트이다. 소정의 열의 n-비트는 상기 열의 비트를 저장하도록 할당된 버퍼에 접속된 n 라인상으로 메모리(26)에 동시에 제공될 수 있다. 예컨대, B1의 n 비트는 모두 버퍼(24-1)에 접속된 n 라인상에 제공된다. 이는 상기 m 버퍼가 메모리의 번지 지정된 위치로 또는 메모리의 번지 지정된 위치로부터 n 워드를 전송할 수 있음을 의미한다. 이하 설명되는 바와같이, 이들 전송된 워드 모두는 동일한 외부 장치에서 발생되거나 또는 상기 장치를 목표로한다.
각 포트(20)는 소정 포맷의 데이타를 상호 접속 매트릭스(22)와 외부 회로(도시되지 않음)간에 전송한다. 본 명세서에 있어서, "포트 버스트"는 외부 회로로또는 외부 회로로부터의 방향 중 어느 하나의 방향으로 단일 포트를 통하여 전송되는 데이타 버스트를 의미한다. 도 5에 도시된 본 실시예에 있어서, m-비트 데이타 워드는 버퍼(24)로의 전송을 위해 상호 접속 매트릭스(22)로의 포트에 의해 제공될 수 있다. 역으로, m-비트 데이타 워드는 외부 회로로의 전송을 위해 상호 접속 매트릭스(22)에 의해 포트로 제공될 수 있다. 데이타 워드 포맷은 소정의 열에 제공되는 비트 B1 내지 Bm을 갖는 데이타 워드를 포함한다. 상기 상호 접속 매트릭스는 상기된 바와 같이 상기 비트를 분배한다.
예컨대, 상호 접속 매트릭스 회로(22)는 인쇄된 회로 보드(PCB), 와이어 랩 또는 납땜된 와이어를 사용하여 실시될 수 있다. 바람직한 본 실시예에 있어서, 상호 접속 매트릭스는 포트와 버퍼간의 접속을 제공한다. 이하 설명되는 바와 같이, 예컨대 포트(20-1)를 통하여 전송된 각 워드의 B1는 상기 매트릭스(22)에 의해 포트(20-1)와 연결된 버퍼(24-1)의 기억소자에 각각 접속되고, 포트(20-2)를 통하여 전송된 각 워드의 B1은 상기 매트릭스(22)에 의해 포트(20-2)와 연결된 버퍼(24-1)의 기억소자에 접속되며, ... , 포트(20-k)를 통하여 전송된 각 워드의 B1은 상기 매트릭스(22)에 의해 포트(20-k)와 연결된 버퍼(24-1)의 기억소자에 접속된다.
메모리 액세스 버퍼는 표준 또는 관행 논리를 사용하여 실시될 수 있다. 도 6 내지 도 9는 메모리 액세스 버퍼(24)와 메모리 액세스 버퍼(24)의 대표적인 이중 레지스터 쌍(34)의 동작을 나타내고 있다. 도 6의 블록도는 메모리 액세스 버퍼(24), 제어 논리(29), 상기 버퍼(24)를 상호 접속 매트릭스(도시되지 않음)에 접속시키는 직렬 입력/출력 라인(30) 및 n-비트 병렬 입력/출력 버스(32)를 도시하고 있다. 제어 논리(29)는 라인(30)상의 직렬 I/O와 버스(32)상의 병렬 I/O를 제어한다. 상기 제어 논리의 동작은 도 8의 타이밍도를 참조하여 설명된다.
대표적인 이중 n-비트 레지스터 쌍(34)이 도 7에 도시되어 있다. 본 발명의 실시예에서, 각 메모리 액세스 버퍼(24)는 버퍼(24)당 2 k 레지스터 전체에 대해 도 7에 도시된 것과 유사한 k 이중 레지스터 쌍을 포함한다. 각 버퍼의 레지스터 쌍은 하나의 포트와 연결된다. 각 레지스터 쌍은 상기 레지스터 쌍과 연결된 포트로 또는 연결된 포트로부터 전송되는 매 데이타 워드의 소정의 위치(열)에 모든 비트를 저장하기만 한다. 즉, 각 버퍼의 대표적인 이중 레지스터쌍은 각 포트를 통하여 전송된 각 데이타 워드로부터의 동일한 열 비트를 모두 저장하고 이를 전송한다.
예컨대, 도 5를 참조하여 버퍼(24-1)에서 이중 레지스터 Ri1은 포트 Pi(도시되지 않음)를 통하여 전송된 각 데이타 워드의 제 1 (순서대로)비트 B1 를 수신하고 이를 저장한다. 버퍼(24-2)에서, 이중 레지스터쌍 Ri2는 포트 Pi를 통하여 전송된 각 워드의 제 2 (순서대로)비트 B2를 수신하고 이를 저장한다. 버퍼(24-m)에서, 이중 레지스터쌍 Rim은 포트 Pi를 통하여 전송된 각 워드의 제 m(순서대로) 비트 Bm을 수신하고 이를 저장한다. 따라서, 예컨대 포트 Pi를 통하여 전송된 모든 B1은 상기 포트를 통하여 전송된 데이타의 부분 집합을 나타낸다. 이와 유사하게, 모든 B2는 예컨대 또 다른 부분 집합을 나타내며 모든 Bm도 동일하다.
도 7을 참조하면, 메모리 액세스 버퍼중 하나를 나타내는 시프트 인/시프트 아웃 레지스터쌍의 상세가 도시되어 있다. 이중 레지스터쌍(34)은 시프트인 레지스터(36)와 시프트아웃 레지스터(38)를 포함한다. 상기 시프트인 레지스터(36)는 먼저 n 비트 데이타를 저장하고 공유 메모리(26)에 기록하기 위해 메모리 버스(32)상으로 상기 n 비트 데이타를 병렬로 제공한다. 시프트 아웃 레지스트는 공유 메모리(26)로부터 판독된 메모리 버스(32)로부터의 n 비트 데이타를 병렬로 판독하고 저장한다.
시프트인 레지스터(36)에 저장된 데이타는 상호 접속 매트릭스(22)로부터 시프트인 레지스터(26)로 직렬로 시프트되며, 상기 시프트인 레지스터(36)로부터 상기된 바와같이 메모리(26)에 기록되기 위해 버스(32) 상으로 병렬로 제공한다. 역으로, 시프트 아웃 레지스터(38)에 저장된 데이타는 메모리(26)로부터 판독된 후 버스(32)로부터 시프트 아웃 레지스터로 병렬로 판독되며, 상기 시프트 아웃 레지스터로부터 상호 접속 매트릭스(22)로 직렬로 시프트된다. 출력 가능 버퍼(output enable buffer)(40)는 상기 시프트 아웃 레지스터(38)로부터 상기 상호 접속 매트릭스(22)로의 데이타의 직렬 전송을 제어한다.
도 4 내지 도 6의 메모리 액세스 버퍼(24-1 ∼ 27-m)에 대한 타이밍도가 도 8에 도시되어 있다. 도 8의 타이밍도는 32 포트 시스템(k=32)에 대한 타이밍도를 나타내고 있는데, 각 포트는 32 워드(n=32)의 버스트 크기를 갖는다. 따라서, n=k이다. 본 실시예에서, 메모리 액세스는 32 메모리 기록 사이클 이전의 32 메모리 판독 사이클사이에서 교대한다.
먼저 메모리 기록 타이밍에 집중시, 메모리 데이타 기록 주기동안[클록 표시 (33-64)] 데이타의 서로 다른 32 워드 버스트는 각 포트(20)의 공유 메모리(26)에 기록될 수 있다. 각 포트는 상기 포트를 통하여 전송된 데이타가 메모리(26)에 기록될 수 있는 클록 사이클을 갖는다. 연속하는 포트의 데이타는 연속 클록 사이클상에서 기록되며, 상기 연속 클록 사이클은 각 포트에 대한 각각의 기록 "타임 슬롯"이다. 포트에 배정된 기록 타임 슬롯을 마련하기 위해 각 포트는 자신의 타임 슬롯 이전에 32 클록 사이클동안 데이타를 메모리 액세스 버퍼로 전송을 개시할 수 있어서, 포트의 타임 슬롯이 도착하기 이전에 포트에 의해 수신된 버스트의 32 워드 모두를 상기 포트에 할당된 m 개의 버퍼 레지스터(각각은 다른 메모리 액세스 버퍼에 배치됨)에 전송하기에 시간이 충분하다. 따라서, 포트(20-1) 데이타 라인상의 "w1.1" "w1.2", ... , "w1.32"로 표시되는 바와 같이, 메모리 데이타 타이밍 라인상의 "w1.C"를 앞서는 32 클록 사이클동안 상호 접속 매트릭스(22)를 통하여 포트(20-1)로부터 메모리 액세스 버퍼(24-1)로 32회의 전송이 이루어진다. 각 포트는 서로다른 타임 슬롯을 가지므로, 상기 포트로부터의 전송은 각 포트의 버스트가 상기 포트의 타임 슬롯직전에 공유 메모리로 전송될 준비가 되도록 적절히 차이나게 한다. 특히, 예컨대, 도 8에 도시된 각 포트(20-1) 데이타 기록 사이클동안 포트(20-1)를 통하여 전송된 제1 워드의 모든 비트가 상호 접속 매트릭스(22)에 의해 메모리 액세스 버퍼(24)의 할당된 이중 포트 레지스터 쌍간에 분배된다. 예컨대, 버스트당 32 워드(n=32)와 워드당 m 비트가 있다고 하면, 제1 포트(20-1) 데이타 기록 사이클동안 포트(20-1)를 통하여 전송된 워드 1(W1)의 비트 1(B1)(w1.1)은버퍼(24-1)의 소정의 레지스터 쌍에 직렬로 기록되고, W1의 B2는 버퍼(24-2)의 소정의 레지스터 쌍에 직렬로 기록되며, W1의 B3는 버퍼(24-3)의 레지스터 쌍에 직렬로 기록된다. W1의 Bm은 버퍼(24-m)의 레지스터 쌍에 직렬로 기록된다.
이와 유사하게, 제 32 포트(20-1) 데이타 기록 사이클(w1.32)동안 포트(20-1)를 통하여 전송된 W32의 B1은 상기 포트(20-1)를 통하여 전송된 W1의 B1과 같이 버퍼(24-1)의 동일한 레지스터쌍에 직렬로 기록된다. 또한, 예컨대 제3 포트(20-1) 데이타 기록 사이클(w1.3)동안 포트(20-1)를 통하여 전송된 W3의 B6은 포트(20-1)를 통하여 전송된 W1의 B6와 같이 메모리 액세스 버퍼(24-6)(도시되지 않음)의 동일한 레지스터쌍에 직렬로 기록된다.
이와 같이, 포트(20-1)에 대한 각 32 데이타 기록 사이클동안(w1.1 내지 w1.32) 데이타는 각 메모리 액세스 버퍼(24-1 내지 24-m)의 지정된 시프트 인 레지스터로 직렬로 시프트된다. 32 이전 직렬 시프트인 사이클동안(w1.1 내지 w1.32) 포트(20-1)로부터 버퍼(24-1 내지 24-m)의 시프트 인 레지스터에 직렬로 시프트된 모든 데이타는 버스(32)상으로 병렬로 제공되어 공유 메모리(26)에 기록될 수 있다.
이와 유사하게, 메모리 판독 주기(클록 표시 1-32)동안 데이타의 32 워드가 각 포트에 대한 공유 메모리로부터 판독될 수 있다. 예컨대, r1.C에서 단일 1 클록 메모리 액세스 사이클동안 32 워드는 메모리(26)로부터 판독될 수 있으며 이들 워드는 포트(20-1)를 통하여 외부 장치로 전송될 수 있다. 이와 같이, r1.C는 포트(20-1)에 대한 판독 "타임 슬롯"이다. 또한, 예컨대 r31.C는 포트(20-31)에 대한 판독 타임 슬롯을 나타낸다.
특히, 예컨대 타임 슬롯 r1.C에서 버퍼(24-1)의 시프트 아웃 레지스터는 메모리(26)로부터 병렬로 판독된 32 워드의 B1 모두를 병렬로 수신한다. 이와 유사하게, 예컨대 타임 슬롯 r1.C에서 버퍼(24-18)(도시되지 않음)의 시프트 아웃 레지스터는 메모리(26)로부터 병렬로 판독된 32 워드의 B18 모두를 병렬로 수신한다.
32 포트(20-1) 데이타 판독 사이클(r1.1 내지 r1.32)동안, 메모리 데이타 판독 사이클(r1.C)동안 메모리(26)로부터 판독된 워드는 상호 접속 매트릭스(22)를 통하여 포트(20-1)로 직렬로 전송된다. 예컨대, 데이타 판독 사이클(r1.1)동안 포트(20-1)를 통하여 전송될 제1 워드(W1)의 모든 비트가 매트릭스(22)를 통하여 서로다른 m 개의 버퍼(24)의 서로다른 m 개의 시프트 아웃 레지스터로부터 동시에 직렬로 시프트되어 W1을 포트(20-1)에 제공한다. 또한, 데이타 판독 사이클(r1.31)동안 포트(20-1)를 통하여 전송될 제31 워드(W31)의 모든 비트가 매트릭스(22)를 통하여 서로다른 m 개의 버퍼(24)의 서로 다른 m 개의 시프트 아웃 레지스터로부터 동시에 직렬로 시프트되어 W31을 포트(20-1)에 제공된다.
따라서, 소정의 포트에서 수신된 데이타가 메모리(26)에 기록되면 상호 접속 매트릭스는 다수의 버퍼(24-1 내지 24-m)간에 데이타 워드 비트를 분배하여 각 버퍼는 저장될 각 워드의 부분 집합을 저장하기만 한다. 상기 바람직한 실시예에 있어서, 각 버퍼는 소정의 열의 비트만을 저장한다. 이와 같이, 각 버퍼는 메모리에 동시에 전송될 모든 데이타의 부분 집합을 버스(32)에 제공하기만 하면 된다.
역으로, 메모리로부터 판독된 데이타가 소정의 포트로 출력되고자 할 때, 상호 접속 매트릭스는 다수의 버퍼간에 배분된 비트를 재결합하여 일련의 완성된 워드(또는 버스트)로서 출력한다. 포트를 통하여 전송될 전체 데이타는 메모리로부터 병렬로 출력되어 버퍼로 입력된다. 그러나, 각 버퍼는 상기 전체 데이타의 부분 집합을 수신한다. 상호 접속 매트릭스(22)는 상기 부분 집합을 데이타 워드의 버스트로 재결합시킨다.
따라서, m 개의 각 버퍼는 자체의 병렬 버스(32)로 동시에 하나의 n 비트 서브세트를 접속한다. 도 4에 도시되어 있는 바와 같이, m 개의 버퍼와 공유 메모리(26) 사이에 임의의 주어진 시간에 단지 m×n 개의 접속이 존재한다. 따라서, 각 버퍼는 공유 메모리와 상호 접속하도록 작은 수의 단자를 필요로 하고, 작은 수의 접속 단자에 기인하여 용량적인 로딩(loading)이 감소된다.
도 9의 타이밍도는 도 7의 이중 레지스터쌍의 동작을 도시하고 있다. P.WRITE 펄스동안, (rX.c) 메모리 데이타 사이클동안 공유 메모리(26)로부터 판독된 데이타는 시프트 아웃 레지스터(38)에 병렬로 기록된다. 각 SHIFT_OUT 펄스동안, 단일 비트가 각 포트로 전송되기 위해 시프트 아웃 레지스터로부터 상호 접속 매트릭스(22)로 시프트 아웃된다. 예컨대, 버퍼(24-1)에 대해 각 SHIFT_OUT 펄스는 도 8의 r1.X에 대응한다. 각 SHIFT_IN 펄스동안, 데이타의 단일 비트는 시프트 인 레지스터로 시프트인된다. 예컨대, 버퍼(24-1)에 대해 각 SHIFT_IN 펄스는 도 8의 w1.X 펄스에 대응한다. P.READ 펄스동안, 시프트 인 레지스터로 시프트인된 모든 데이타는 w1.C 사이클동안 공유 메모리(26)에 기록되기 위해 병렬로 판독될 수 있다.
본 실시예에 있어서, 공유 메모리(26)는 메모리폭이 (n×m)인 표준 랜덤 액세스 메모리(RAM) 구조일 수 있다. 따라서, 상기 메모리는 메모리 액세스 버퍼(24)로 또는 버퍼로부터 (n×m) 비트 데이타를 전송할 수 있으며 도 5에 도시된 바와 같이 단일 번지 지정된 메모리의 위치에 (n×m) 비트 모두를 저장할 수 있다. 본 실시예에 있어서, 포트로부터의 각 워드를 인접 비트로서 저장하기 보다 상기 워드는 "교환 배치(interleave)"되어, 모든 제1 열 = 열 비트(B1)는 인접하여 저장되고 제2 열 비트(B2) 등이 다음에 기록된다. 상기 구조에서, 특정 포트(20)로 또는 포트로부터의 n 워드를 나타내는 모든 비트가 공유 메모리(26)의 라인으로서 즉시 저장될 수 있다.
본 실시예에 있어서, 타임 슬롯은 미리 할당된다. 그러나, 타임 슬롯은 우선 순위에 기초하여 중재될 수 있다. 또한, 본 실시예에서 k 포트(20) 각각은 공유 메모리(26)와 통신하기 위해 단일 클록 사이클 타임 슬롯을 필요로 하고 각 포트는 메모리 액세스 버퍼(24)로 또는 메모리 액세스 버퍼로부터 전체 n-워드 데이타 버스트를 전송하기 위해 상기 타임 슬롯 이전에 n 클록 사이클을 필요로 하므로, 포트의 개수(k)와 동일한 버스트당 워드의 개수(n)를 설정함으로써 정체나 유휴 시간없이 데이타를 전송하는 순조로운 순환 처리를 제공하는 것이 효과적이다. 그러나, 포트 개수와 버스트당 워드 개수간의 관계는 본 발명의 범위를 벗어나지 않고 가변할 수 있다.
도 10은 본 발명에 따른 32-포트 비동기 전송 모드(ATM) 스위치의 블록도이다. ATM은 고정된 크기의 패킷, 즉 셀을 사용하여 정보를 전송하는 페이로드 다중화 기술이다. 본 실시예에 있어서, ATM 셀은 길이가 53 바이트이며 경로 정보를 운반하는 5 바이트 헤더, 다음에 48 바이트 정보 필드(페이로드)로 구성된다. 스위치를 개시시키는 각 ATM 셀의 페이로드는 공유 메모리의 특정 위치에 위치된다. ATM 셀 페이로드가 48 바이트폭(바이트당 8비트)이므로, 공유 메모리는 384 비트(48×4=384)이다. 상기 실시예는 메모리 액세스 버퍼로부터 메모리로 12 비트 폭의 포트 워드와 32워드의 포트 버스트를 갖는 32비트 버스를 갖도록 선택되었다. 384는 12×32와 같은데, 즉 셀이 12-비트 워드의 32-워드 버스트로 전송됨을 유의한다.
ATM 스위치는 각 셀에 포함된 경로 정보에 따라 포트에 수신된 각 셀을 행선 포트로 전달한다. 특히, 셀은 포트로부터 전달되어 공유 메모리에 저장된다. 상기 셀은 공유 메모리로부터 추출되어 셀에 표시된 행선 포트로 전송된다. 상기 방법에 있어서, 데이타는 포트간에서 스위칭될 수 있다. 제어 메모리와 스위치 제어기의 동작은 당업자에 의해 이해될 것이며 본 명세서에서는 생략된다.
도 11은 본 발명의 바람직한 실시예에 따른 메모리 인터페이스 유닛(MIU)(100)을 포함하는 스위치 시스템(98)의 블록도를 도시한다. MIU(100)는 구성 가능한 스위치(104) 및 데이타 전송 버퍼(106)를 포함한다. 버스 인터페이스 레지스터(102)가 디지탈 정보를 버스트 모드 버스(108)로 또는 전송하기 위해 결합된다. 데이타 전송 버퍼(106)는 디지탈 메모리(도시 생략)와 구성 가능 스위치(104) 사이의 데이타 이동중에 데이타를 일시 기억하도록 결합된다. 디지탈 데이타는 I/O 드라이버(110)를 통해 메모리로 또는 메모리로부터 전송된다. 어드레스 레지스터(112)는 상기 버스(108)로부터 디지탈 어드레스 정보를 수신한다. 상기 레지스터(112)에 의해 수신된 어드레스 정보는 다른 I/O 드라이버(114)를 통해 디지탈 메모리에 제공된다. 제어 유닛(116)은 상기 메모리와 MIU(100)의 동작을 제어한다.
본 발명의 본 실시예의 구성 가능 스위치(104)는 버스 인터페이스 레지스터(102)와 전송 버퍼(106) 또는 포트 p0, p1 또는 p2의 주(mn) 상호 접속 중 하나 사이의 버스트 서브세트를 전송하도록 선택적으로 구성할 수 있다. 상기 스위치(104)는 상기 전송 버퍼(106)와 버스 인터페이스 레지스터(102) 또는 포트 p0, p1 또는 p2의 종속 상호 접속(sn) 중 하나 사이에서 버스트 서브세트를 전송하도록 또한 구성할 수 있다. 본 발명의 바람직한 실시예에서, 상기 스위치(104)는 3 개의 상이한 구성, 즉 고립, 2 MIU 및 4 MIU 중 하나에 배치될 수 있다. 고립 구성에서, 구성 데이타는 스위치(104)를 통해 라인 b0∼b3에서 라인 c0∼c3으로 직접 전달된다. 2개의 MIU의 경우의 접속은 도 19에 도시되어 있다. 4 개의 MIU의 경우의 접속은 도 26에 도시되어 있다.
따라서, 본 발명의 스위치 시스템은 각 포트가 상이한 버스트 모드 버스에 접속되는 상이한 포트간에 메모리의 공유를 허용한다. 예컨대, PCI, SBUS 또는 GIO와 같은 버스트 모드 버스는 상기 버스상에 제공되는 데이타를 수반하는 어드레스를 제공한다. 또한, 각 MIU는 상이한 버스트 모드 버스에 접속되는 장치에 의해 공유 메모리로 동등하게 액세스하기 위해 함께 "체인화" 또는 "스택"될 수 있다.
도 12는 도 11의 스위치 시스템(98)의 제어 라인 및 데이타 라인을 더 상세하게 도시하는 블록도이다. 상기 시스템(98)은 버스로 또는 버스로부터 신호를 전송한다. 본 실시예에서, 상기 버스는 PCI 버스이다. 그러나, MIU는 SBUS, GIO 등과 같은 다른 형태의 버스트 모드 버스와 통신할 수 있다. 데이타, 어드레스 및 판독/기록 제어 신호가 상기 스위치 시스템(98)에 접속되는 디지탈 메모리에 제공될 수 있다. 상기 시스템(98)은 예컨대, 다른 스위치 시스템(도시 생략)에 신호를 전송하는데 사용될 수 있는 3 개의 포트 p0, p1 및 p2를 포함한다. 각 포트는 8 개의 주 데이타 라인 및 하나의 주 요구 라인을 포함한다. 각 포트는 또한 8 개의 종속 데이타 라인 및 하나의 종속 요구 라인을 포함한다. 데이타는 도 11에 도시되어 있는 전송 버퍼(106)로 또는 전송 버퍼로부터 전송된다. 어드레스는 어드레스 레지스터(112)에 의해 제공된다. R/W 신호는 제어기(116)에 의해 발생된다. 상기 포트 접속은 구성 가능 스위치(104)에 액세스를 제공한다.
도 11을 다시 참조하면, 신규의 스위치 시스템(98)의 동작은 먼저 메모리 기록 동작을 상술한 후 메모리 판독 동작을 상술함으로써 설명될 것이다. 기록중에, 디지탈 정보의 버스트는 버스(108)로부터 버스 인터페이스 레지스터(102)로 전송된다. 본 실시예에서, 상기 버스(108)는 32 비트 폭을 가지고, 상기 버스트는 4 개의 32 비트 폭 데이타 워드가 후속하는 32 비트 폭 어드레스 워드를 포함할 수 있다. 상기 버스트는 b0, b1, b2 및 b3으로 라벨 붙여진 다중 비트 라인을 통해 구성 가능 스위치(104)로 전송된다. 상기 스위치(104)는 c0, c1, c2 및 c3으로 라벨 붙여진 하나 이상의 다중 비트 라인을 통해 데이타 전송 버퍼(106)로 직접 임의의 버스트 서브세트를 전송하도록 구성될 수 있다. 상기 스위치(104)는 또한 포트 0, 포트 1 및 포트 2를 통해 각각 액세스 가능한 m0,m1 및 m2로 라벨 붙여진 하나 이상의 주 상호 접속을 통해 다른 메모리(도시 생략)과 결합되는 하나 이상의 다른 스위치 시스템(도시 생략)으로 나머지 버스트 서브세트를 제공하도록 구성될 수도 있다. 상기 주 상호 접속을 통해 다른 스위치 시스템에 제공되는 서브세트는 다른 시스템과 결합되는 디지탈 메모리에 기억된다. 다른 메모리에 전송된 서브세트의 기억은 예시적인 2개의 MIU 및 4개의 MIU 시스템과 관련하여 이후에 논의될 것이다. 상기 전송 버퍼(106)는 자체에 전송된 서브세트를 일시적으로 기억하고, 그 서브세트를 d0, d1, d2 및 d3으로 라벨 붙여진 하나 이상의 다중 비트 라인을 통해 스위치 시스템(98)과 결합된 디지탈 메모리에 기억하기 위해 상기 서브세트를 제공하는 I/O 드라이버(110)에 제공한다. 상기 버스트와 관련하여 상기 버스(108)로부터 수신된 디지탈 어드레스 신호는 상기 서브세트가 기억되는 메모리 위치를 나타내기 위해 사용된다. 본 실시예에서, 동일한 메모리 어드레스는 스위치 시스템(98)에 결합된 메모리와 다른 스위치 시스템에 결합된 다른 메모리에 모두 사용된다. 따라서, 상이한 버스트 서브세트는 상이한 메모리내의 동일 어드레스에 기억될 수 있다.
메모리 판독 동작의 개시에서, 버스트의 서브세트는 복수개의 상이한 스위치 시스템(도 11에 도시되어 있지 않음)을 통해 액세스 가능한 복수개의 별개의 디지탈 메모리(도 11에 도시되어 있지 않음)간에 분배될 수 있다. 도 11을 참조하면, 판독 동작중에, 어드레스 신호는 상기 버스상에 위치된다. 상기 어드레스는 어드레스 레지스터(112)를 통해 수신되어 상기 별개의 메모리의 각각에 제공된다. 도 11은 이들 메모리중 단지 하나에 대한 액세스를 제공하는 단일 스위치 시스템(98)을 도시하는 것을 이해할 것이다. 이후에 논의되는 바와 같이, 다른 메모리에 액세스하도록 접속되는 다른 유사한 스위치 시스템이 있을 수도 있다. 상기 어드레스 신호는 그들이 기억되는 별개의 메모리로부터 별개의 버스트 서브세트를 검색하는데 사용된다. 스위치 시스템(98)을 통해 액세스된 메모리에 기억되는 버스트 서브세트는 그 서브세트를 하나 이상의 다중 비트 라인 d0, d1, d2 및 d3을 통해 일시 기억을 위한 전송 버퍼(106)로 전송하는 I/O 드라이버(110)에 상기 메모리에 의해 표시된다. 차례로, 상기 버퍼(106)는 하나 이상의 다중 비트 라인 c0, c1, c2 및 c3을 통해 구성 가능 스위치(104)에 상기 서브세트를 표시한다. 상기 구성 가능 스위치(104)는 버스 인터페이스 레지스터(102)에 접속되는 하나 이상의 다중 비트 라인 b0, b1, b2 및 b3으로 직접 상기 서브세트를 제공하도록 구성될 수 있다. 상기 스위치 시스템(98)을 통해 액세스되는 메모리에 기억되지 않는 서브세트는 각각 포트 1, 포트 2 및 포트 3의 s0, s1 및 s2로 라벨 붙여진 하나 이상의 다중 비트 종속 상호 접속을 통해 상기 스위치 시스템(98)에 전송된다. 특히, 다른 메모리에 기억된 상기 서브세트는 먼저 그들 메모리로부터 검색된 후 상기 스위치 시스템(98)의 하나 이상의 종속 상호 접속부으로 전송된다. 상기 다른 메모리로부터의 서브세트의 검색은 예시적인 2 개의 MIU 및 4 개의 MIU 시스템과 관련하여 이후에 논의될 것이다. 상기 구성 가능 스위치(104)는 하나 이상의 다중 비트 라인 b0, b1, b2 및 b3으로의 종속 상호 접속에 제공된 서브세트를 상기 레지스터(102)로 전송하도록 구성될 수 있다.
도 13은 본 발명의 본 실시예에 따른 스위치(104)의 하나의 가능한 구성을 나타내는 도 11의 버스 인터페이스 레지스터(102), 구성 가능 스위치(104) 및 전송 버퍼(106)의 단순화한 블록도이다. 상기 스위치(104)(파선으로 표시)는 "직접" 상호 접속 경로(105)를 통해 상기 버퍼(106)와 레지스터(102) 사이의 버스트 서브세트의 전송을 위해 구성된다. 주 상호 접속 m0, m1 및 m2는 상기 레지스터(102)로 또는 레지스터로부터 버스트 서브세트의 전송을 위한 경로를 제공한다. 종속 상호 접속부 s0, s1 및 s2는 상기 전송 버퍼(106)로 또는 전송 버퍼로부터 버스트 서브세트의 전송을 위한 경로를 제공한다.
도 13을 참조하면, 메모리 기록 동작중에, 예컨대 버스트는 버스 인터페이스 레지스터(102)에 의해 수신된다. 제1 버스트 서브세트는 직접 경로(105)를 통해 상기 버퍼(106)로 전송된다. 제2 버스트 서브세트는 주 경로 m0를 통해 상기 레지스터(102)로부터 이격하여 전송된다. 제3 버스트 서브세트는 주 경로 m1을 통해 상기 레지스터로부터 이격하여 전송된다. 제4 버스트 서브세트는 주 경로 m2를 통해 상기 레지스터로부터 이격하여 전송된다. 따라서, 상기 제1 버스트 서브세트는 상기 버퍼(106)에 접속된 메모리(도시 생략)에 기억될 수 있고, 상기 제2, 제3 및 제4 버스트 서브세트는 경로 m0, m1 및 m2를 통해 액세스되는 메모리내의 어디에나 기억될 수 있다.
반대로, 메모리 판독 동작중에, 예컨대, 제1 버스트 서브세트는 초기에 상기 버퍼(106)에 접속된 메모리(도시 생략)에 기억되고, 제2, 제3 및 제4 버스트 서브세트는 상이한 디지탈 메모리(도시 생략)내의 어디에나 기억된다. 상기 전송버퍼(106)는 제1 서브세트가 그 전송 버퍼(106)에 접속된 메모리로부터 검색될 때 그 제1 서브세트를 일시적으로 기억할 수 있다. 상기 버퍼는 이어서 상기 제1 서브세트를 직접 경로(105)를 통해 상기 레지스터에 전송한다. 제2 버스트 서브세트는 종속 경로 s0를 통해 수신된다. 제3 버스트 서브세트는 종속 경로 s1을 통해 수신된다. 제4 서브세트는 종속 경로 s2를 통해 수신된다. 따라서, 상이한 메모리 사이에 분산된 상기 버스트 서브세트는 버스상으로 송신하기 위해 상기 레지스터(102)에 모이게 된다.
도 13의 구성은 상기 스위치(104)의 하나의 가능한 구성만을 도시한다는 것을 유의하라. 예컨대, 상기 스위치는 버스 인터페이스 논리(116)와 상기 버퍼(106) 사이에 복수개의 직접 경로를 제공하도록 구성될 수도 있다. 2 개의 MIU 시스템(120) 및 4 개의 MIU 시스템(106)과 관련된 이후의 논의는 다소의 예시적인 스위치 구성을 설명한다.
도 14A를 참조하면, 상기 구성 가능 스위치(104)의 다수의 신호 라인을 나타내는 바람직한 실시예의 구성 가능 스위치(104)의 블록도가 도시되어 있다. 상기 스위치는 당업자가 쉽게 이해할 수 있는 방식으로 멀티플렉서로서 기능을 한다. 예컨대, 도 14B는 이후에 논의되는 2 개의 MIU 수단에 의해 "판독" 동작중에 상기 c0 출력을 생성하게 하는 내부 논리를 나타내는 게이트 레벨 논리도이다. 도 14C는 아래에 논의되는 2개의 MIU 수단에 의해 "기록" 동작중에 상기 b0 출력을 생성하게 하는 내부 논리를 나타내는 게이트 레벨 논리도이다. 2 개의 MIU 수단에서, 예컨대, P0 입력은 우측 MIU를 표시할 수 있고, P1은 좌측 MIU를 표시할 수 있다.
아래 수학식은 2 개의 MIU 수단의 기록중에 구성 가능 스위치(멀티플렉서)(104)의 전체 기능을 나타낸다.
c0 = P1·s0 + P0·b0
c1 = P0·s0 + P1·b1
c2 = P1·s2 + P0·b2
c3 = P0·s2 + P1·b3
m0 = P1·b0 + P0·b1
m2 = P1·b2 + P0·b3
아래 수학식은 상기 2 개의 MIU 수단의 기록중에 구성 가능 스위치(멀티플렉서)(104)의 전체 기능을 나타낸다.
b0 = P1·m0 + P0·c0
b1 = P0·m0 + P1·c1
b2 = P1·m2 + P0·c2
b3 = P0·m2 + P1·c3
s0 = P1·c0 + P0·c1
s2 = P1·c2 + P0·c3
아래에 논의되는 4개의 MIU 수단에서, 4 개의 상이한 MIU를 구별하는 데 사용될 수 있는 4 개의 상이한 논리값 P0, P1, P2 및 P3이 있다는 것을 이해할 것이다. 그러나, 4 개의 MIU간의 신호를 스위치하는데 사용되는 논리 회로와 기본적인 다중화 기술은 당업자에게 잘 공지되어 있어 본 명세서에 논의할 필요가 없다. 도15의 예시도는 도 11의 전송 버퍼(106)의 추가의 상세를 나타낸다. 바람직한 실시예에서, 상기 버퍼(106)는 4 개의 메모리 액세스 버퍼 (106-1,106-2,106-3, 106-4)를 포함한다. 그러한 메모리 액세스 버퍼는 각각 P_READ, P_WRITE, OE(0-3) 및 W(0-3) 제어 신호를 수신한다. 구성 가능 스위치(104)는 바이트 폭 입출력 라인 c0, c1, c2 및 c3을 통해 액세스될 수 있는 메모리 액세스 버퍼에 액세스한다. 본 실시예에서, 각 직렬 라인은 1 바이트 폭이다. 그러나, 버스트 서브세트의 상이한 크기의 다중 비트 분할도 가능하다. 상기 메모리(도시 생략)는 라인 d0, d1, d2 및 d3을 통해 32 비트 메모리 버스(224)로 상기 메모리 액세스 버퍼를 통해 액세스된다.
상기 메모리 버스(224)는 상기 버퍼(106)에 접속된 디지탈 메모리(도시 생략)와 각 메모리 액세스 버퍼 사이에 디지탈 정보를 전송한다. 메모리 기록중에, 예컨대, 버스트 서브세트는 메모리 액세스 버퍼(106-1)로부터 버스(224)를 통해 상기 메모리에 병렬로(한꺼번에) 전송될 수 있다. 메모리 판독중에, 예컨대, 상기 버스트 서브세트는 상기 메모리로부터 버스(224)를 통해 메모리 액세스 버퍼(106-1)로 병렬로(한꺼번에) 전송될 수 있다.
도 16의 예시도를 참조하면, 본 발명의 본 실시예에 따른 예시적인 메모리 액세스 버퍼(106-2)의 상세가 도시되어 있다. 시프트 인 레지스터(226)은 전체 버스트 서브세트가 누적될 때까지 라인 c1상에서 일련의 바이트 폭 버스트 서브세트 단편을 수신한다. 상기 시프트인 레지스터는 전체 버스트 서브세트를 일시적으로 기억할 수도 있다. 그 전체 서브세트는 이어서 메모리 버스(224)에 병렬로(모든 바이트 폭 단편이 한꺼번에) 삽입되며, 그 서브세트는 상기 디지탈 메모리에 병렬로 기록될 수 있다.
시프트 아웃 레지스터(228)는 메모리 판독중에 사용된다. 상기 메모리로부터 판독된 전체 버스트 서브세트는 메모리 버스(224)를 시프트 아웃 레지스터(228)에 병렬로 제공된다. 상기 시프트아웃 레지스터는 전체 버스트 서브세트를 일시적으로 기억할 수 있다. 상기 레지스터는 이어서 전체 버스트 서브세트가 구성 가능 스위치(104)에 송달될 때까지 라인 c1상에 일련의 바이트폭 버스트 서브세트 단편을 제공할 수 있다. 출력 버퍼(230)는 상기 시프트 아웃 레지스터로부터 라인 c1로의 서브세트 단편의 제공을 제어한다.
본 발명의 본 실시예에서 각각의 스위치 시스템은 관련된 전송 버퍼의 동작을 제어하는 제어 신호를 발생하는 제어 유닛을 포함한다는 것을 이해할 것이다. 예컨대 2 개의 MIU 구성 또는 4 개의 MIU 구성에서와 같이 함께 접속된 복수개의 스위치 시스템이 존재하는 경우, 상이한 스위치 시스템의 제어기 사이의 동등함은 메모리의 분배를 달성하기 위해 필요하다. 이 동등함은 예컨대, 분배된 메모리로의 복수개의 스위치 시스템의 액세스를 동등하게 하는데 사용되는 알고리듬을 실행하는 각 제어기를 가짐으로써 달성될 수 있다. 여기에 사용될 수 있는 복수개의 공지된 알고리듬이 존재한다. 예컨대, 상이한 스위치 시스템에 의한 메모리 액세스에 대한 요구는 스위치간의 고정된 우선 순위에 따라서 또는 라운드 로빈 스킴(round-robin scheme)에 따라서 조정될 수 있다.
도 17은 본 발명의 바람직한 실시예에 따른 2 개의 MIU 시스템(120)의 블록도이다. 단순화를 위해, 제어 논리 및 버스 인터페이스 논리와 같은 상세는 생략되어 있다. 2 개의 MIU(122, 124)는 도시되어 있는 바와 같이 상호 접속된다. 즉, MIU 스위치(123, 125)는 MIU 스위치(123)와 MIU 스위치(125)의 m0 및 s0 상호 접속부가 그들의 각 포트 p0를 통해 서로 접속되도록 구성된다. 유사하게, MIU 스위치(123)와 MIU 스위치(125)의 m2 및 s2 상호 접속도 그들의 각 포트 p2를 통해 서로 접속된다. 스위치(123)는 또한 버스 인터페이스 논리(126)와 버퍼(130) 사이에 직접 상호 접속(141, 142)를 제공하도록 구성된다. 스위치(125)는 또한 버스 인터페이스 논리(128)와 버퍼(132) 사이에 직접 상호 접속부(143, 144)를 제공하도록 구성된다. 버퍼(130)는 디지탈 메모리(134)로 또는 디지탈 메모리로부터 버스트 서브세트를 전송하도록 접속된다. 버퍼(132)는 디지탈 메모리(136)로 또는 디지탈 메모리로부터 버스트 서브세트를 전송하도록 접속된다.
도 18은 2 개의 MIU 시스템(120)을 함께 수용하는 2개의 스택 박스(156, 158)의 단순화한 측면도이다. 박스(156)는 MIU(122), 메모리(134) 및 버스 인터페이스 논리(126)를 수용한다. 박스(158)는 MIU(124), 메모리(136) 및 버스 인터페이스 논리(128)를 수용한다. 각 박스(156, 158)는 3 개의 포트 p0, p1 및 p2를 갖는다. 각 박스는 또한 인접 박스와 어드레스 정보를 공유할 수 있는 공유 어드레스 버스를 갖는다. 상기 포트 p0 및 포트 p2와 공유 어드레스 버스는 도시되어 있는 바와 같이 접속된다.
도 19는 도 17의 2 개의 MIU 시스템의 2 개의 MIU(122, 124) 사이의 상호 접속을 나타내는 매트릭스이다. 라인 상호 접속에서 "0"은 MIU 스위치(123)내의 상호접속을 나타낸다. 라인 상호 접속에서 "1"은 MIU 스위치(125)내의 상호 접속을 나타낸다. 좌상측 사분면은 종속 라인 s0, s1 및 s2와 버스 인터페이스 논리 라인 b0, b1, b2 및 b3 사이의 접속을 나타낸다. 우하측 사분면은 주 라인 m0, m1 및 m2와 MIU 버퍼 라인 c0, c1, c2 및 c3 사이의 접속을 나타낸다. 좌하측 사분면은 버스 인터페이스 논리 라인 b0, b1, b2 및 b3과 MIU 버퍼 라인 c0, c1, c2 및 c3 사이의 접속을 나타낸다. MIU 스위치(123)에 대한 상호 접속은 다음과 같다: b0은 c0에 직접 접속되고; b1은 m0에 접속되며; b2는 c2에 직접 접속되고; b3은 m2에 접속되며; c1은 s0에 접속되고; c3은 s2에 접속된다. MIU 스위치(125)에 대한 상호 접속은 다음과 같다: b0은 m0에 접속되고; b1은 c1에 직접 접속되며; b2는 m2에 접속되고; b3은 c3에 직접 접속되며; c0은 s0에 접속되고; c2는 s2에 접속된다.
동작시, 버스트는 버스 인터페이스 논리 유닛(126, 128)을 통해 MIU(122, 124)와 외부 버스(도시 생략) 사이에서 전송된다. 단순화를 위해, 외부 버스에 접속되는 어드레스 및 데이타 레지스터는 버스 인터페이스 논리 유닛으로 병합되는 것으로 도시되어 있다. 논리(126)을 통해 전송되는 전체의 예시적인 4 개의 워드 버스트(127)가 도시되어 있다. 상기 버스트(127)는 다중 비트 단편 A00, A01, A02 및 A03을 포함하는 것으로 식별되는 디지탈 워드를 포함한다. 본 발명의 바람직한 실시예에서, 각 단편은 복수개의 논리 비트를 포함한다. 그러나, 본 발명은 선택예로서 단일 비트 단편을 사용하여 수행될 수도 있다. A00, A10, A20 및 A30을 포함하는 버스트 서브세트와 A02, A12, A22 및 A32를 포함하는 버스트 서브세트는 직접 상호 접속부(141, 142)를 통해 버스 인터페이스 논리(126)와 버퍼(130) 사이에 전송된다. A01, A11, A21 및 A31을 포함하는 버스트 서브세트는 상기 스위치(123, 125)의 포트 p0 상호 접속을 통해 버스 인터페이스 논리(126)와 버퍼(132) 사이에 전송된다. A03, A13, A23 및 A33을 포함하는 버스트 서브세트는 상기 스위치(123, 125)의 포트 p2 상호 접속을 통해 버스 인터페이스 논리(126)와 버퍼(132) 사이에 전송된다.
유사하게, 논리(128)을 통해 전송되는 전체의 예시적인 4 개의 워드 버스트(129)가 도시되어 있다. 상기 버스트는 다중 비트 단편 B00, B01, B02 및 B03을 포함하는 것으로 식별되는 디지탈 워드를 포함한다. B00, B10, B20 및 B30을 포함하는 버스트 서브세트와 B02, B12, B22 및 B32를 포함하는 버스트 서브세트는 직접 상호 접속부(143, 145)를 통해 버스 인터페이스 논리(128)와 버퍼(132) 사이에 전송된다. B01, B11, B21 및 B31을 포함하는 버스트 서브세트는 상기 스위치(123, 125)의 포트 p0 상호 접속을 통해 버스 인터페이스 논리(128)와 버퍼(130) 사이에 전송된다. B03, B13, B23 및 B33을 포함하는 버스트 서브세트는 상기 스위치(123, 125)의 포트 p2 상호 접속을 통해 버스 인터페이스 논리(128)와 버퍼(130) 사이에 전송된다.
버스 인터페이스 논리(126)를 통해 전송되는 버스트(127)로부터의 2개의 서브세트와 버스 인터페이스 논리(128)를 통해 전송되는 버스트(129)로부터의 2 개의 서브세트는 도시되어 있는 바와 같이 2 개의 버퍼(130, 132)의 각각에 일시적으로 기억될 수 있다. 유사하게, 도시된 바와 같이 상기 버스트의 각각으로부터의 2개의 서브세트는 디지탈 메모리(134)에 기억되고, 상기 2개의 버스트의 각각으로부터의2개의 서브세트는 디지탈 메모리(136)에 기억된다. 그러므로, 버스 인터페이스 논리 유닛(126 또는 128)중의 하나를 통해 전송되는 임의의 버스트의 내용은 2 개의 상이한 디지탈 메모리에 분배되어 일시적으로 기억된다. 본 실시예에서, SRAM이 사용된다. 그러나, DRAM과 같은 다른 메모리 구성이 본 발명에 따라 사용될 수도 있다.
도 20은 메모리 기록 동작중에 도 17의 2 개의 MIU 시스템(120)을 통한 버스트 서브세트의 흐름을 나타낸다. 5 개의 워드 버스트(146)가 버스 인터페이스 논리(도시 생략)에 의해 수신된다. 상기 버스트의 제1 워드는 어드레스 정보를 포함한다. 후속 4 개의 워드는 디지탈 메모리(134, 136)에 기록될 디지탈 정보를 포함한다. 상기 어드레스 정보는 MIU(122)에 의해 MIU 어드레스 레지스터(148)로 전송된다. MIU 어드레스 레지스터(148)는 상기 버스트 어드레스를 접속(154)을 통해 디지탈 메모리(134, 136)의 메모리 어드레스 레지스터(150, 152)에 제공한다. 버스트 서브세트 d00, d10, d20, d30 및 버스트 서브세트 d02, d12, d22, d32는 메모리 어드레스 레지스터(150)에 의해 표시되는 어드레스 위치에 기억하기 위해 MIU(122)에 의해 디지탈 메모리(134)로 전송된다. 버스트 서브세트 d31, d21, d11 및 d01은 각 포트 p0 상호 접속을 통해 MIU(122)로부터 MIU(124)로 전송된 후, 메모리 어드레스 레지스터(152)에 의해 표시되는 메모리 위치에 기억하기 위해 MIU(124)에 의해 디지탈 메모리(136)로 전송된다. 유사하게, 버스트 서브세트 d33, d23, d13 및 d03은 각 포트 p2 상호 접속을 통해 MIU(122)로부터 MIU(124)로 전송된 후, 메모리 어드레스 레지스터(152)에 의해 표시되는 메모리 위치에 기억하기 위해 MIU(124)에의해 디지탈 메모리(136)으로 전송된다. MIU(122)로부터 MIU(124)로 전송된 각각의 버스트 서브세트는 판독 또는 기록의 여부를 나타내는 Rq 신호에 의해 우선하게 된다.
도 21은 도 17의 2 개의 MIU 시스템(120)에 대하여 도 17의 메모리 기록 동작과 관련하여 데이타 및 제어 신호의 타이밍을 나타내는 타이밍도이다. 클록 사이클 1-2중에, 어드레스가 상기 버스로부터 수신된다. 클록 사이클 2-3중에, 데이타 워드 D0이 단편 버스로부터 수신되고, 상기 Rq 신호는 p0 및 p2 상호 접속을 통해 MIU(124)로 송된다. 클록 사이클 3-4중에, 데이타 워드 D1이 단편 버스로부터 수신되고, 버스트 서브세트 단편 d01 및 d03은 각각 포트 p0 및 p2의 다중 비트 주 상호 접속을 통해 MIU(124)로 전송된다. 클록 사이클 4-5중에, 데이타 워드 D2가 상기 단편 버스로부터 수신되고, 버스트 서브세트 단편 d11 및 d13은 각각 포트 p0 및 p2의 다중 비트 주 상호 접속을 통해 MIU(124)로 전송된다. 클록 사이클 5-6중에, 데이타 워드 D3이 상기 단편 버스로부터 수신되고, 버스트 서브세트 단편 d21 및 d23은 각각 포트 p0 및 p2의 다중 비트 주 상호 접속을 통해 MIU(124)로 전송된다. 클록 사이클 6-7중에, 버스트 서브세트 단편 d31 및 d33은 각각 포트 p0 및 p2의 다중 비트 주 상호 접속을 통해 MIU(124)로 전송된다. 또한, 클록 사이클 5-7중에, 레지스터(150, 154)의 버스트와 관련된 메모리 어드레스가 각각의 디지탈 메모리(134, 136)에 제공된다. 클록 사이클 6-8중에, 메모리 기록 가능 신호가 2개의 MIU를 제어하는 2 개의 제어 유닛에 의해 동시에 삽입되고, 상기 전송 버퍼(130, 132)에 기억된 전체 데이타 버스트 서브세트는 각각의 디지탈 메모리(134, 136)에병렬로 기록된다.
도 22는 대표적인 메모리 판독 동작중에 도 17의 2 개의 MIU 시스템(120)을 통해 버스트 서브세트의 흐름을 예시하고 있다. 먼저, 버스트의 4개의 워드는 2개의 상이한 디지탈 메모리(134, 136)와 교차하여 분배된다. 메모리 어드레스(125)는 접속부(154)를 통해 어드레스를 메모리 어드레스 레지스터(150, 152)에 제공하는 MIU 어드레스 버퍼(148)에 공급된다. 디지탈 메모리(134)는 버스트 서브세트 d00, d10, d20 및 d30을 버스트 인터페이스 논리(126)로 직접 전송하는 MIU(122)에 상기 버스트 서브세트를 각각 공급한다. 또한, 디지탈 메모리(134)는 버스트 서브세트 d02, d12, d22 및 d32를 버스트 인터페이스 논리(도시 생략)로 직접 전송하는 MIU(122)에 상기 버스트 서브세트를 각각 공급한다. 디지탈 메모리(136)는 버스트 서브세트 d01, d11, d21 및 d31을 각각의 포트 p0 상호 접속부를 통해 MIU(122)로 전송하는 MIU(124)에 전송한다. 다음에, MIU(122)는 상기 서브세트를 버스 인터페이스 논리에 전송한다. 유사하게 디지탈 메모리(136)는 버스트 서브세트 d03,d13,d23 및 d33을 각각의 포트 p2 상호 접속부를 통해 MIU(122)로 전송하는 MIU(124)에 상기 버스트 서브세트를 각각 전송한다. 다음에, MIU(122)는 상기 서브세트를 버스 인터페이스 논리에 전송한다. 따라서, 버스트(146)는 상이한 메모리로부터 검색되어, 상기 버스 인터페이스 논리에서 사용 가능하게 된다.
도 23은 도 17의 2개의 MIU 시스템(120)에 대한 도 22의 메모리 판독 동작과 관련하여 데이타 및 제어 신호의 타이밍을 예시하는 타이밍도이다. 클록 사이클 1-2중에 세그먼트 버스로부터 어드레스 신호가 수신된다. 클록 사이클 2-3중에 버스인터페이스 논리에 의해 발생된 Rq 신호는 MIU(124)의 p0 및 p2 상호 접속부를 통해 전송된다. 클록 사이클 4-6중에 각각의 메모리 어드레스 레지스터(150, 152)내의 메모리 어드레스는 메모리(134, 136)에 제공된다. 클록 사이클 5-7중에 각각의 메모리에는 메모리 출력 가능 신호가 제공되고, 전체 데이타 버스트 서브세트는 각각의 2 개의 메모리(134, 136)에서 병렬로 판독되고 임시 저장소인 전송 버퍼(130, 132)에 제공된다. 클록 사이클 6-7중에 단편 d01 및 d03은 각각의 포트 p0 및 p2 의 종속 상호 접속을 통해 MIU(122)로 전송된다. 클록 사이클 7-8 중에 단편 d11 및 d13은 각각의 포트 p0 및 p2의 종속 상호 접속을 통해 MIU(122)로 전송되고, 데이타 워드 DO는 분할 버스에 제공된다. 클록 사이클 8-9중에 단편 d21 및 d23은 각각의 포트 p0 및 p2의 종속 상호 접속부를 통해 MIU(122)로 전송되고, 데이타 워드 D1는 분할 버스에 제공된다. 클록 사이클 9-10중에 단편 d31 및 d33은 각각의 포트 p0 및 p2의 종속 상호 접속부를 통해 MIU(122)로 전송되고, 데이타 워드 D2는 분할 버스에 제공된다. 클록 사이클 10-11중에 데이타 워드 D3는 분할 버스에 제공된다.
도 24는 본 발명의 바람직한 실시예에 따른 4 개의 MIU 시스템(160)의 간략화된 블록도이다. 제어 논리 및 버스 인터페이스 논리의 세부는 이하에서 설명을 간략하게 하기 위해 생략된다. MIU 시스템(160)은 4 개의 MIU(162, 164, 166, 168)를 포함한다. 각각의 MIU 는 전기 상호 접속 라인의 구성 매트릭스를 포함한다. 모든 MIU는 3 개의 포트 p0, p1 및 p2를 포함한다. 또한 각 MIU는 버퍼부(186, 188, 190, 192)를 포함한다. 4 개의 MIU 의 각각은 4 개의 디지탈 메모리(170, 172, 174, 176)의 상이한 메모리에 접속되어 있다. 또한 4 개의 MIU 의 각각은 4 개의버스 인터페이스 논리 유닛(178, 180, 182, 184)의 상이한 하나에 접속되어 있다.
도 25는 도 23의 4 개의 MIU 시스템(160)을 함께 수용하는 4 개의 스택된 박스(194, 196, 198, 200)의 측면도이다. 박스(194)는 MIU(162), 메모리(170) 및 버스 인터페이스 논리(178)를 수용한다. 박스(196)는 MIU(164), 메모리(172) 및 버스 인터페이스 논리(180)를 수용한다. 박스(198)는 MIU(166), 메모리(174) 및 버스 인터페이스 논리(182)를 수용한다. 박스(200)는 MIU(168), 메모리(176) 및 버스 인터페이스 논리(184)를 수용한다. 각 박스는 3개의 포트(p0, p1, p2)를 갖는다. 또한, 각 박스는 인접한 박스와 어드레스 정보를 공유할 수 있는 어드레스 버스를 갖는다. 각 포트와 어드레스 버스는 도시한 바와 같이 결합되어 있다.
예를 들어, 박스(194)내의 MIU(162) 및 박스(198)내의 MIU(166)의 포트 p1 상호 접속부는 2 개의 MIU간의 버스트 서브세트를 전송하기 위해 결합되어 있다. 특히, 예를 들어 MIU(162)의 포트 p1 주 상호 접속부는 MIU(166)의 포트 p1 종속 상호 접속부에 결합되어 있다. 반대로, MIU(162)의 포트 p1 종속 상호 접속부는 MIU(166)의 포트 p1 주 상호 접속부에 결합되어 있다. 그 동작에 있어서 버스트 세그먼트 A02, A12, A22 및 A32는 MIU(162)의 포트 p1 주 상호 접속부 및 MIU(166)의 포트 p1 종속 상호 접속을 통해 버스 인터페이스 논리(178)와 디지탈 메모리(174)와의 사이에 전송된다. 또한, 버스트 세그먼트 C00, C10, C20 및 C30은 MIU(162)의 포트 p1 종속 상호 접속부 및 MIU(166)의 포트 p1 주 상호 접속을 통해 버스 인터페이스 논리(182)와 디지탈 메모리(170)의 사이에 전송된다.
도 26은 도 24의 4 개의 MIU 시스템(160)의 4 개의 MIU(162, 164, 166, 168)중에서 상호 접속을 나타내는 매트릭스이다. 라인 교점에서 "0"은 MIU 스위치(162)내의 상호 접속을 나타낸다. 라인 교점에서 "1"은 MIU 스위치(164)내의 상호 접속을 나타낸다. 라인 교점에서 "2"는 MIU 스위치(166)내의 상호 접속을 나타낸다. 라인 교점에서 "3"은 MIU 스위치(168)내의 상호 접속을 나타낸다. 예를 들어, MIU 스위치(162)에 대한 상호 접속은 다음과 행해진다. 즉, b0은 c0에 직접 결합되고, c1은 s0에 결합되며, c2는 s1에 결합되고, c3은 s2에 결합되며, b1은 m0에 결합되고, b2는 m1에 결합되고, b3은 m2에 결합되어 있다. MIU 스위치(166)에 대한 상호 접속은 예를 들어 다음과 같이 실행된다. 즉, b0은 m2에 결합되고, b1은 m1에 결합되며, b2는 m0에 결합되고, b3은 c3에 직접 결합되며, c0은 s2에 결합되고, c1은 s1에 결합되며, c2는 s0에 결합되어 있다. MIU(164, 168)의 상호 접속은 도 22 및 상술한 설명의 매트릭스로부터 용이하게 예상할 수 있다.
버스트 서브세트의 전송에 있어서 도 24의 4 개의 MIU 시스템(160)의 동작은 버스 인터페이스 논리(178, 180, 182, 184)를 통하여 전송되는 버스트의 관찰, 버퍼(186, 188, 190, 192)중에서 버스트 서브세트의 분포의 관찰 및 디지탈 메모리(170, 172, 174, 176)내의 버스트 서브세트의 기억을 관찰함으로써 예상할 수 있다. 예컨대, 디지탈 메모리(172)와 관련하여 서브세트 A01, A11, A21 및 A31은 4개의 워드 버스트부로서 버스 인터페이스 논리(178)를 통하여 전송된다. 서브세트 B01, B11, B21 및 B31은 4 개의 워드 버스트부로서 버스 인터페이스 논리(180)를 통하여 전송된다. 서브세트 C01, C11, C21 및 C31은 4 개의 워드 버스트부로서 버스 인터페이스 논리(182)를 통하여 전송된다. 서브세트 D01, D11, D21및 D31은 4 개의 워드 버스트부로서 버스 인터페이스 논리(184)를 통하여 전송된다. 디지탈 메모리(172)와 각 버스 인터페이스 논리 유닛 사이에서 이들 4개의 버스트 서브세트중 임의의 하나의 전송 과정에서 서브세트는 버퍼(188)에 일시적으로 저장되어 있다.
도 27은 각각의 메모리 기록 동작중에 도 24의 4 개의 MIU 시스템(160)을 통하여 버스트 서브세트의 흐름을 예시하는 도면이다. MIU(162)와 결합된 버스 인터페이스 논리에 의하여 5 개의 워드 버스트가 수신된다. 버스트의 제1 워드는 어드레스 정보를 포함한다. 다음의 4 개의 워드는 디지탈 메모리(170, 172, 174, 176) 사이에 분배되도록 예정되어 있다. 상기 어드레스 정보는 MIU(162)에 의해 MIU 어드레스 레지스터(204)로 전송된다. MIU 어드레스 레지스터(204)는 버스(214)를 통하여 디지탈 메모리(172, 174, 176, 178)의 메모리 어드레스 레지스터(206, 208, 210, 212)에 어드레스를 제공한다. 버스트 서브세트 d00, d10, d20 및 d30은 MIU(162)에 의해 메모리 어드레스 레지스터(206)로 지정된 어드레스 위치에 저장하는 디지탈 메모리(170)로 직접 전송된다. 버스트 서브세트 d31, d21, d11 및 d01은 MIU(162)로부터 각각의 포트 p0 상호 접속부를 통해 MIU(164)로 전송되고, 이어서 MIU(164)에 의해 메모리 어드레스 레지스터(208)로 지정된 메모리 위치에 저장하는 디지탈 메모리(172)로 전송된다. 버스트 서브세트 d02, d12, d22 및 d32는 MIU(162)로부터 각각의 포트 p1 상호 접속을 통해 MIU(166)로 전송되고, 이어서 MIU(166)에 의해 메모리 어드레스 레지스터(210)로 지정된 메모리 위치를 저장하는 디지탈 메모리(174)로 전송된다. 버스트 서브세트 d33, d23, d13 및 d03은MIU(162)로부터 각각의 포트 p2 상호 접속부를 통해 MIU(168)로 전송되고, 이어서 MIU(168)에 의해 메모리 어드레스 레지스터(212)로 지정된 메모리 위치에 저장하는 디지탈 메모리(176)로 전송된다.
MIU 중에서 전송되는 버스트 서브세트의 각각은 메모리 판독 또는 메모리 기록 여부를 나타내는 Rq 신호에 의해 진행된다.
도 28은 도 24의 4 개의 MIU 시스템(160)에 대한 도 27의 메모리 기록 동작과 관련하여 데이타 및 제어 신호의 타이밍을 예시하는 타이밍도이다. 클록 사이클 1-2 중에 분할 버스로부터 어드레스 신호가 수신된다. 클록 사이클 2-3 중에 데이타 워드 DO는 분할 버스로부터 수신되고, Rq 신호는 p0, p1 및 p2 상호 접속부를 통해 MIU(164, 166, 168)로 전송된다. 클록 사이클 3-4중에 데이타 워드 D1는 분할 버스로부터 수신되고, 버스트 서브세트 단편 d01, d02 및 d03은 각각의 포트(p0, p1, p2)의 다중 비트 주 상호 접속을 통해 MIU(164, 166, 168)로 전송된다. 클록 사이클 4-5 중에 데이타 워드 D2는 분할 버스로부터 수신되고, 버스트 서브세트 단편 d11, d12 및 d13은 각각의 포트(p0, p1, p2)의 다중 비트 주 상호 접속부를 통해 MIU(164, 166, 168)로 전송된다. 클록 사이클 5-6 중에 데이타 워드 D3는 분할 버스로부터 수신되고, 버스트 서브세트 단편 d21, d22 및 d23은 각각의 포트(p0, p1, p2)의 다중 비트 주 상호 접속을 통해 MIU(164, 166, 168)로 전송된다. 클록 사이클 6-7 중에 버스트 서브세트 단편 d31, d32 및 d33은 각각의 포트(p0, p1, p2)의 다중 비트 주 상호 접속부를 통해 MIU(164, 166, 168)로 전송된다. 또한, 클록 사이클 6-7 중에 레지스터(206, 208, 210, 212)내의 메모리 어드레스는 각각의디지탈 메모리(170, 172, 174, 176)에 제공된다. 클록 사이클 7-8 중에 메모리 기록 가능 신호는 각각의 MIU 와 결합된 제어 유닛에 의해 동시에 제공되고, 전송 버퍼(186, 188, 190, 192)에 저장된 전체 데이타 버스트 서브세트는 각각의 디지탈 메모리(170, 172, 174, 176)에 병렬로 기록된다.
도 29는 각각의 메모리 판독 동작 중에 도 24의 4개의 MIU 시스템(160)을 통해 버스트 서브세트의 흐름을 예시하고 있다. 우선 버스트의 4 개의 워드는 4 개의 상이한 디지탈 메모리(170, 172, 174, 176)와 교차하여 분배된다. 메모리 어드레스(216)는 어드레스를 접속부(214)를 통해 메모리 어드레스 레지스터(206, 208, 210, 212)로 제공하는 MIU 어드레스 버퍼(204)에 공급된다. 디지탈 메모리(170)는 버스트 서브세트 d00, d10, d20 및 d30을 MIU(162)로 제공하고, 다음에 버스 인터페이스 논리(도시 생략)로 직접 전송한다. 디지탈 메모리(172)는 버스트 서브세트 d01, d11, d21 및 d31을 각각의 포트 p0 상호 접속부를 통해 MIU(162)로 전송하는 MIU(164)에 상기 버스트 서브세트를 제공한다. 다음에, MIU(162)는 상기 서브세트를 버스 인터페이스 논리로 전송한다. 또한, 디지탈 메모리(174)는 버스트 서브세트 d02, d12, d22 및 d32를 각각의 포트 p1 상호 접속을 통해 MIU(162)로 전송하는 MIU(166)에 상기 버스트 서브세트를 전송한다. 디지탈 메모리(176)는 버스트 서브세트 d03, d13, d23 및 d33을 각각의 포트 p2 상호 접속부를 통해 MIU(162)로 전송하는 MIU(168)에 상기 버스트 서브세트를 각각 전송한다. 다음에, MIU(162)는 상기 서브세트를 버스 인터페이스 논리로 전송한다. 따라서, 버스트(202)는 상이한 메모리로부터 검색되어, MIU(162)의 상기 버스 인터페이스 논리에서 사용 가능하게 된다.
도 30은 도 24의 4 개의 MIU 시스템(160)에 대한 도 29의 메모리 판독 동작과 관련하여 데이타 및 제어 신호의 타이밍을 예시하는 타이밍도이다. 클록 사이클 1-2 중에 분할 버스로부터 어드레스 신호가 수신된다. 클록 사이클 2-3 중에 버스 인터페이스 논리에 의해 발생된 Rq 신호는 MIU(162)의 p0, p1 및 p2 상호 접속부를 통해 전송된다. 클록 사이클 4-5 중에 각각의 메모리 어드레스 레지스터(206, 208, 210, 212)내의 메모리 어드레스는 메모리(170, 172, 174, 176)에 제공된다. 클록 사이클 5-6중에 각각의 메모리에는 메모리 출력 가능 신호가 제공되고, 각각의 4개의 메모리(170, 172, 174, 176)에서 병렬로 판독되는 전체 데이타 버스트 서브세트는 임시 저장소인 전송 버퍼(186, 188, 190, 192)에 제공된다. 클록 사이클 6-7중에 바이트 폭의 단편 d01, d02 및 d03은 각각의 포트(p0, p1, p2)의 종속 상호 접속부를 통해 MIU(162)로 전송된다. 클록 사이클 7-8중에 단편 d11, d12 및 d13은 포트(p0, p1, p2)의 종속 상호 접속부를 통해 MIU(162)로 각각 전송되고, 데이타 워드 DO는 분할 버스에 제공된다. 클록 사이클 8-9중에 단편 d21, d22 및 d23은 포트(p0, p1, p2)의 종속 상호 접속을 통해 MIU(162)로 각각 전송되고, 데이타 워드 D1는 분할 버스에 제공된다. 클록 사이클 9-10중에 단편 d31, d32 및 d33은 포트(p0, p1, p2)의 종속 상호 접속을 통해 MIU(162)로 각각 전송되고, 데이타 워드 D2는 분할 버스에 제공된다. 클록 사이클 10-11중에 데이타 워드 D3는 분할 버스에 제공된다.
도 31∼도 36에 예시된 도면은 본 발명에 따른 몇몇 응용예를 예시하고 있다. 이들 도면에서 스위치 시스템(98)은 실행하는 공유 메모리내에서 큐우 관리 유닛("QMU")으로 언급되고 있다. 도 31은 독립형 구성의 기본 스위치의 사용을 도시하고 있다. 도 32는 4 개의 MIU(4 개의 QMU) 적층 구성을 예시한다. 도 33은 이더넷 스위치 실행을 예시한다. 도 34는 ATM 업링크를 갖는 이더넷 스위치를 예시한다. 도 35는 2 개의 MIU(2 개의 QMU) 스택 가능 스위치/루터를 예시한다. 도 36은 어드레스 해상도(ARL)를 갖는 4 개의 MIU(4 개의 QMU) 고속 이더넷 스위치를 예시하고 있다.
도 37에는 도 4 또는 도 39와 같이 2 배의 대역폭을 갖는 대형 넌블록킹 스위치와 같은 2 개의 공유 메모리 스위치를 조합한 개량형 장치가 예시되어 있다.(예컨대, 넌블록킹 64×64 155 Mbps 포트 ATM 스위치를 구성하기 위하여 32×32 155 Mbps 포트 ATM 스위치를 조합한 장치). 본 발명의 실시예는 32×32 ATM 스위치를 포함한다. 이와 같이 개량형 장치에 따르면, 32×32 ATM 스위치는 시분할 다중 장치(TDM) 방식으로 동작한다. 도 38의 타이밍도와 관련하여 68 클록 주기의 스위치 사이클은 32 클록 입력단과 32 클록 출력단(및 4 클록 간격)으로 분할된다. 2 개의 32×32 스위치 칩세트와 2 개의 공유 메모리 뱅크를 구성한다. 각각의 32×32 스위치 칩세트는 2 개의 뱅크 중 임의의 뱅크를 액세스할 수 있게 된다. 이들은 하나의 칩세트가 입력단에 있고, 다른 하나의 칩세트가 출력단에 있도록 상이한 위상에서 동작한다. 현재 출력단에 있는 하나의 칩세트가 셀이 상주하는 뱅크로부터 전송되는 셀을 페치시키는 경우, 입력단에 있는 다른 칩세트는 내부로 유입하는 셀을 기록하기 위해 다른 뱅크를 선택한다.
도 39의 예시도는 버퍼와 포트 사이의 매트릭스 상호 접속 라인이 각각의 버스트 단편에 대한 복수개의 비트 폭일 수 있다는 것을 명확하게 한된다. 그러므로, 버스트 단편당 복수개의 비트가 매 클록 사이클로 전송될 수 있다.
본 발명의 특정 실시예가 상세히 설명되었으나, 본 발명의 범위를 벗어나지 않고서 다양한 변형이 가능하다. 따라서, 상기된 설명은 본 발명을 제한하지 않으며 본 발명은 첨부된 청구 범위에 의해 한정된다.
본 발명의 하나의 특징에서, 신규의 메모리 인터페이스 유닛이 제공된다. 그러한 메모리 인터페이스 유닛은 디지탈 메모리로 또는 디지탈 메모리로부터 이동중의 복수개의 데이타 버스트 서브세트를 저장할 수 있는 버퍼와 버스 인터페이스 유닛을 포함한다. 스위치는 버스 인터페이스 유닛으로 또는 버스 인터페이스 유닛으로부터 데이타를 전송하기 위한 외부 액세스 가능한 주 데이타 경로를 포함한다. 외부 액세스 가능한 종속 데이타 포트는 버퍼로 또는 버퍼로부터 데이타를 전송한다. 직접 경로는 버스 인터페이스 유닛과 버퍼 사이에 데이타를 전송한다.

Claims (19)

  1. 랜덤 액세스 메모리(RAM)(26) 및 다중 데이타 포트(20)를 포함하는 다중 포트 메모리 시스템에서 사용하기 위하여, 메모리 인터페이스는,
    상이한 각각의 데이타 포트와 상기 RAM의 사이에 전송되는 다수의 각각의 데이타 버스트 서브세트의 임시 기억을 위하 다중 기억소자를 각각 포함하는 다중 버퍼(24)와;
    각각의 데이타 포트를 각각의 다중 버퍼와 상호 접속하여 각각의 데이타 포트와 상기 RAM의 사이에 전송되는 소정의 데이타 버스트의 상이한 각각의 서브세트가 포트와 버퍼를 상호 접속하는 상이한 각각의 데이타 라인을 통하여 상이한 각각의 버퍼에 또는 그 버퍼로부터 전송되는 복수개의 데이타 라인을 포함하는 상호 접속 회로(22)를 포함하고,
    포트와 버퍼를 상호 접속하는 적어도 하나의 데이타 라인은 다중 비트 폭인 것을 특징으로 하는 다중 포트 메모리 시스템.
  2. 제1항에 있어서, 각각의 기억소자는 데이타 버스트 서브세트를 상기 상호 접속 회로에 및 그 상호 접속 회로로부터 전송하여 각각의 서브세트가 1 클록 사이클 동안 2 이상이지만 모든 것보다 작은 비트의 그룹에 전송되는 전송 회로를 포함하는 것인 다중 포트 메모리 시스템.
  3. 제1항에 있어서, 각각의 기억 소자는 각각의 데이타 버스트 서브세트를 상기 상호 접속 회로로부터 시프트 인하는 각각의 시프트 인/병렬 시프트 아웃 레지스터 회로를 포함하여 각각의 데이타 버스트 서브세트는 2 이상이지만 모든 것보다 작은 그룹내에서 동시에 시프트 인되고 이러한 데이타 버스트 서브세트를 상기 RAM에 병렬 시프트 아웃하는 것이며;
    상기 각각의 기억 소자는 각각의 데이타 버스트 서브세트를 상기 RAM으로부터 병렬 시프트 인하고 이러한 데이타 버스트 서브세트를 상기 상호 접속 회로에 시프트 아웃하여 이러한 데이타 버스트 서브세트가 2 이상이지만 모든 것보다 작은 비트를 동시에 시프트 아웃하는 각각의 병렬 시프트 인/시프트 아웃 레지스터 회로를 더 포함하는 것인 다중 포트 메모리 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 소정의 데이타 버스트의 상이한 서브세트를 저장하는 상기 RAM 및 다수의 상이한 버퍼의 사이에 소정의 데이타 버스트의 모든 서브세트의 동시 병렬 전송을 제어하는 제어 신호를 공급하는 제어 회로를 더 포함하는 것인 다중 포트 메모리 시스템.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, k 개의 상기 데이타 포트 및 m 개의 상기 버퍼를 포함하는데, 각각의 버퍼는 상이한 각각의 데이타 포트와 상기 RAM 사이에 전송되는 n 워드 데이타 버스트의 다수의 각각의 서브세트의 동시 저장을 위한 k 개의 상기 기억 소자를 포함하고, 각각의 기억 소자와 상기 RAM의 사이에 접속 가능한 병렬 데이타 경로 회로를 더 포함하는 것이며;
    각각의 서브세트는 각각의 n 개의 워드 데이타 버스트의 상이한 각각의 데이타 워드에서 동일한 각각의 비트 위치를 점유하는 n 개 이상의 각각의 비트로 구성되며;
    상호 접속 회로의 데이타 라인은 각각의 데이타 포트를 m 개의 상이한 버퍼와 상호 접속하여 각각의 데이타 포트와 상기 RAM의 사이에 전송되는 소정의 n 개의 워드 데이타 버스트의 상기 m 개의 상이한 각각의 서브세트가 m 개의 상이한 각각의 버퍼로/로부터 전송되는 것인 다중 포트 메모리 시스템.
  6. k 개의 데이타 포트(20)와 RAM(26)의 사이에 워드당 m 비트를 포함하는 n 개의 워드 데이타 버스트를 전송하는 방법에 있어서,
    각각의 데이타 포트를 통하여 각각의 데이타 버스트 서브세트에 전송되는 데이타 버스트를 분배하는 단계를 포함하고, 각각의 서브세트는 상이한 데이타 워드의 각각의 데이타 버스트와 동일한 각각의 비트 위치를 점유하는 n 개 이상의 각각의 비트를 포함하는 것이며;
    각각이 k 개의 기억 소자를 포함하는 m 개의 버퍼(24)를 제공하는 단계와;
    상이한 버퍼 내의 상이한 기억 소자의 각각의 데이타 포트 및 상기 RAM으로/으로부터 전송시 각각의 데이타의 버스트의 상이한 데이타 버스트 서브세트를 임시기억하는 단계와;
    상이한 버퍼 및 상기 RAM의 상이한 기억 소자 사이에 각각의 데이타 포트 및상기 RAM으로/으로부터 병렬로 전송시 상기 각각의 데이타 버스트의 모든 상이한 데이타 버스트 서브세트를 전송하는 단계를 포함하는 것을 특징으로 하는 워드 데이타 버스트의 전송 방법.
  7. 제6항에 있어서, 다수의 비트이지만 모든 비트가 아닌 비트를 동시에 전송하는 단계를 더 포함하고, 각각의 데이타 버스트의 각각의 데이타 버스트 서브세트는 각각의 데이타 포트와 상이한 버퍼의 상이한 기억 소자의 사이에 각각의 데이타 포트 및 상기 RAM으로/으로부터 전송되는 것인 워드 데이타 버스트의 전송 방법.
  8. 다중 포트 메모리 시스템에 있어서,
    랜덤 액세스 메모리(RAM)와;
    k 개의 데이타 포트와;
    각각의 데이타 포트를 통하여 각각의 데이타 버스트 서브세트에 전송되는 데이타 버스트를 분배하는 수단을 포함하고, 각각의 서브세트는 각각의 n 개의 워드 데이타 버스트의 상이한 데이타 워드에서 동일한 각각의 비트 위치를 점유하는 n 개 이상의 각각의 비트를 포함하는 것이며;
    상이한 버퍼 수단 내의 상이한 기억 소자 수단의 각각의 데이타 포트 및 상기 RAM으로/으로부터 전송시 각각의 데이타 버스트의 상이한 데이타 버스트 서브세트를 임시 기억하는 k 개의 기억 소자를 각각 포함하는 m 개의 버퍼 수단과;
    상이한 버퍼 수단 및 상기 RAM의 상이한 기억 소자 수단의 상이에 각각의 데이타 포트 및 상기 RAM으로/으로부터 전송시 상기 각각의 데이타 버스트의 모든 상이한 데이타 버스트 서브세트를 전송하는 수단을 포함하는 것을 특징으로 하는 다중 포트 메모리 시스템.
  9. 메모리 시스탬에 있어서,
    전체 데이타 워드가 아니라 상이한 데이타 워드의 부분을 기억하는 기억 소자를 각각 포함하고, 데이타를 임시 기억하는 복수개의 버퍼와;
    메모리와;
    각각의 버퍼에 대하여 상기 버퍼와 상기 메모리를 상호 접속하는 병렬 버스를 포합하는데, 상기 병렬 버스의 폭은 소정의 시간에 상기 버퍼에 저장될 수 있는비트의 숫자보다 작은 것이며;
    데이타를 상기 모든 버퍼와 상기 메모리의 사이에 병렬로 전송하여 동일한 데이타 워드의 부분이 상기 버퍼와 상기 메모리의 사이에 병렬로 전송되고, 복수개의 전체 워드가 상기 버퍼와 상기 메모리의 사이에 병렬로 전송되도록 하는 제어회로를 포함하고,
    각각의 버퍼는 복수개의 터미널을 포함하는데, 각각의 버퍼의 터미널은 복수개의 터미널의 세트로 각각 분배되고, 각각의 터미널의 세트는 하나의 클록 사이클에서 데이타 워드의 일부분을 전송하는 것이며,
    각각의 버퍼의 병렬 버스는 모든 데이타 부분을 병렬로 전송함과 동시에, 상기 버퍼에 저장되고 단일 터미널의 세트를 통하여 전송되는 것을 특징으로 하는 메모리 시스템.
  10. 인터페이스 버퍼에 있어서,
    복수개의 기억 소자와;
    데이타를 전송하여 상기 기억 소자에 시프트 인/시프트 아웃되는 복수개의 터미널과;
    단일 기억 소자에 저장된 모든 데이타를 메모리에 병렬 전송하고 데이타를 상기 메모리로부터 임의의 기억 소자에 병렬 전송하는 병렬 버스와;
    상기 기억 소자를 제어하는 제어 회로를 포함하고,
    상기 제어 회로는,
    (1) 데이타의 다수 비트가 각각의 상기 터미널로부터 각각의 기억 소자로 시프트됨과 동시에, 데이타가 병렬 버스로부터 상기 기억 소자에 기록되며,
    (2) 데이타의 다수 비트가 각각의 기억 소자로부터 상기 각각의 터미널로 시프트 아웃됨과 동시에, 데이타가 상기 기억 소자로부터 상기 병렬 버스로 판독되는것이며,
    상기 버퍼는 데이타의 j 개의 비트를 상기 각각의 기억 소자와 j > 1 인 클록 사이클당 터미널의 사이에 전송하도록 동작 가능한 것을 특징으로 하는 인터페이스 버퍼.
  11. 상호 접속 매트릭스에 있어서,
    각각이 버퍼에 접속되는 것인 복수개의 제1 터미널의 그룹과;
    각각이 네트워크 포트 회로에 접속되는 것인 복수개의 제2 터미널의 그룹과;
    상기 제1 터미널의 단일 그룹을 상기 제2 터미널의 단일 그룹에 접속하여 각각의 포트 회로를 상기 모든 버퍼에 및 각각의 버퍼를 상기 모든 포트 회로에 접속시키는 상호 접속부를 포함하고,
    각각의 제1 터미널의 그룹과 각각의 제2 터미널의 그룹은 복수개의 상호 접속부에 의해 상호 접속되는 것을 특징으로 하는 상호 접속 메트릭스.
  12. 네트워크 장치에 있어서,
    각각이 데이타를 네트워크로부터 수신하여 데이타를 네트워크로 전송하는 것인 복수개의 네트워크 회로와;
    각각이 상기 복수개의 네트워크 회로에 액세스 가능한 것인 복수개의 메모리뱅크를 포함하고, 상기 데이타가 네트워크로 전송되기 전에 상기 네트워크 회로에 의해 수신된 데이타를 임시 기억하는 공유 메모리를 포함하고,
    하나의 네트워크 회로가 판독 액세스 메모리를 하나의 메모리 뱅크에 공급하여 네트워크로 전송되는 데이타를 판독하는 동작 동안, 다른 네트워크 회로는 기록액세스를 다른 메모리 벵크에 공급하여 네트워크로부터 수신된 데이타를 기록하는것을 특징으로 하는 네트워크 장치.
  13. 제12항에 있어서, 데이타는 고정된 크기의 셀의 네트워크로 전송되는 것인네트워크 장치.
  14. 제12항 또는 제13항에 있어서, 각각의 네트워크 회로는 하나 이상의 ATM 포트를 갖는 ATM 스위치 구조인 것인 네트워크 장치.
  15. 제12항 또는 제13항에 있어서, 상기 장치는 비블록화된 ATM 스위치이고, 모든 메모리 뱅크는 모든 네트워크 회로에 액세스 가능한 것인 네트워크 장치.
  16. 데이타용 네트워크로부터 수신하고 데이타를 네트워크로 전송하는 방법에 있어서,
    각각이 데이타를 네트워크로부터 수신하고 데이타를 네트워크로 전송할 수 있는 븍수개의 네트워크 회로에 의해 데이타를 수신하는 단계와;
    수신된 데이타를 전송 전에 임시 기억하는 공유 메모리에 기록하는 단계를 포함하는데, 상기 공유 메모리는 각각이 복수개의 네트워크 회로에 액세스 가능한복수개의 메모리 뱅크를 포함하는 것이며;
    상기 공유 메모리로부터 하나의 네트워크 회로로 데이타를 판독하여 상기 하나의 네트워크 회로에 의해 데이타를 전송하는 단계를 포함하고,
    상기 판독 및 기록 단계는 어떤 데이타가 하나의 메모리 뱅크로부터 판독될때 다른 데이타가 또다른 메모리 뱅크에 기록되도록 동시에 처리되는 것을 특징으로 하는 데이타 송수신 방법.
  17. 졔16황예 있어서, 각각의 네트워크 회로는 고정된 크기의 셀의 데이타를 전송하는 것인 데이타 송수신 방법.
  18. 제16항 또는 제17항에 있어서, 각각의 네트워크 회로는 복수개의 포트를 갖는 ATM 스위치 구조인 것인 데이타 송수신 방법.
  19. 제16항 또는 제17항에 있어서, 모든 메모리 뱅크는 모든 네트워크 회로로 액세스 가능한 것인 데이타 송수신 방법.
KR10-1998-0700888A 1995-08-07 1996-07-18 메모리인터페이스유닛,공유메모리스위치시스템및관련방법 Expired - Lifetime KR100356447B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/512,613 1995-08-07
US08/512,613 US5732041A (en) 1993-08-19 1995-08-07 Memory interface unit, shared memory switch system and associated method
US8/512,613 1995-08-07

Publications (2)

Publication Number Publication Date
KR19990036220A KR19990036220A (ko) 1999-05-25
KR100356447B1 true KR100356447B1 (ko) 2003-04-10

Family

ID=24039837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0700888A Expired - Lifetime KR100356447B1 (ko) 1995-08-07 1996-07-18 메모리인터페이스유닛,공유메모리스위치시스템및관련방법

Country Status (7)

Country Link
US (3) US5732041A (ko)
EP (2) EP0843854B1 (ko)
JP (2) JP3628706B2 (ko)
KR (1) KR100356447B1 (ko)
AU (1) AU6590596A (ko)
DE (2) DE69631055T2 (ko)
WO (1) WO1997006489A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160071290A (ko) 2014-12-11 2016-06-21 (주)두린 미서기창의 호차측 단열구조

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732041A (en) * 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
US5719890A (en) * 1995-06-01 1998-02-17 Micron Technology, Inc. Method and circuit for transferring data with dynamic parity generation and checking scheme in multi-port DRAM
TW301090B (en) * 1996-08-14 1997-03-21 Winbond Electronics Corp Data storing and searching method of ethernet switch mean address table and device thereof
US6230245B1 (en) 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
US6487207B1 (en) * 1997-02-26 2002-11-26 Micron Technology, Inc. Shared buffer memory architecture for asynchronous transfer mode switching and multiplexing technology
US6175894B1 (en) 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US5996043A (en) * 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US5825711A (en) * 1997-06-13 1998-10-20 Micron Technology, Inc. Method and system for storing and processing multiple memory addresses
US6484244B1 (en) 1997-06-17 2002-11-19 Micron Technology, Inc. Method and system for storing and processing multiple memory commands
US6170046B1 (en) 1997-10-28 2001-01-02 Mmc Networks, Inc. Accessing a memory system via a data or address bus that provides access to more than one part
US6202119B1 (en) 1997-12-19 2001-03-13 Micron Technology, Inc. Method and system for processing pipelined memory commands
US6088285A (en) * 1998-01-20 2000-07-11 Oki Electric Industry Co., Ltd. Semiconductor memory circuit in which pattern widths of switching circuit and buffers are formed within a pattern width of a column unit
US6138219A (en) * 1998-03-27 2000-10-24 Nexabit Networks Llc Method of and operating architectural enhancement for multi-port internally cached dynamic random access memory (AMPIC DRAM) systems, eliminating external control paths and random memory addressing, while providing zero bus contention for DRAM access
US6173425B1 (en) 1998-04-15 2001-01-09 Integrated Device Technology, Inc. Methods of testing integrated circuits to include data traversal path identification information and related status information in test data streams
US5999478A (en) * 1998-05-21 1999-12-07 Integrated Device Technology, Inc. Highly integrated tri-port memory buffers having fast fall-through capability and methods of operating same
US5982700A (en) * 1998-05-21 1999-11-09 Integrated Device Technology, Inc. Buffer memory arrays having nonlinear columns for providing parallel data access capability and methods of operating same
US6216205B1 (en) 1998-05-21 2001-04-10 Integrated Device Technology, Inc. Methods of controlling memory buffers having tri-port cache arrays therein
US5978307A (en) * 1998-05-21 1999-11-02 Integrated Device Technology, Inc. Integrated circuit memory devices having partitioned multi-port memory arrays therein for increasing data bandwidth and methods of operating same
US6434145B1 (en) 1998-06-22 2002-08-13 Applied Micro Circuits Corporation Processing of network data by parallel processing channels
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
WO2000017726A2 (en) * 1998-09-18 2000-03-30 Computron Switchable master/slave memory controller
TW444478B (en) * 1998-12-10 2001-07-01 Ind Tech Res Inst Ethernet switch IC with shared memory structure and its network
US6233236B1 (en) * 1999-01-12 2001-05-15 Mcdata Corporation Method and apparatus for measuring traffic within a switch
US7382736B2 (en) * 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US6757791B1 (en) * 1999-03-30 2004-06-29 Cisco Technology, Inc. Method and apparatus for reordering packet data units in storage queues for reading and writing memory
US7031330B1 (en) * 1999-04-15 2006-04-18 Marconi Intellectual Property (Ringfence), Inc. Very wide memory TDM switching system
DE19936080A1 (de) * 1999-07-30 2001-02-15 Siemens Ag Multiprozessorsystem zum Durchführen von Speicherzugriffen auf einen gemeinsamen Speicher sowie dazugehöriges Verfahren
FR2797969A1 (fr) * 1999-08-31 2001-03-02 Koninkl Philips Electronics Nv Dispositif a plusieurs processeurs partageant une memoire collective
JP3881477B2 (ja) 1999-09-06 2007-02-14 沖電気工業株式会社 シリアルアクセスメモリ
US6473838B1 (en) 2000-01-04 2002-10-29 International Business Machines Corporation Data transfer system for multiple network processors using dual DRAM storage
US6771654B1 (en) * 2000-01-24 2004-08-03 Advanced Micro Devices, Inc. Apparatus and method for sharing memory using a single ring data bus connection configuration
US6700894B1 (en) 2000-03-15 2004-03-02 Broadcom Corporation Method and apparatus for shared buffer packet switching
DE60041037D1 (de) * 2000-03-21 2009-01-22 St Microelectronics Srl Strang-programmierbarer nichtflüchtiger Speicher mit NOR-Architektur
US6434674B1 (en) 2000-04-04 2002-08-13 Advanced Digital Information Corporation Multiport memory architecture with direct data flow
KR20010106079A (ko) * 2000-05-19 2001-11-29 강 크리스토퍼 파이프라인된 스위치 구성 디바이스
US6735207B1 (en) * 2000-06-13 2004-05-11 Cisco Technology, Inc. Apparatus and method for reducing queuing memory access cycles using a distributed queue structure
US7035267B1 (en) 2000-08-11 2006-04-25 Marconi Intellectual Property (Ringfence), Inc. Transferring and queueing length and data as one stream
US6711646B1 (en) * 2000-10-20 2004-03-23 Sun Microsystems, Inc. Dual mode (registered/unbuffered) memory interface
US7006505B1 (en) * 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
US6546461B1 (en) 2000-11-22 2003-04-08 Integrated Device Technology, Inc. Multi-port cache memory devices and FIFO memory devices having multi-port cache memory devices therein
US6515914B2 (en) * 2001-03-21 2003-02-04 Micron Technology, Inc. Memory device and method having data path with multiple prefetch I/O configurations
US7139267B2 (en) * 2002-03-05 2006-11-21 Industrial Technology Research Institute System and method of stacking network switches
US7283556B2 (en) * 2001-07-31 2007-10-16 Nishan Systems, Inc. Method and system for managing time division multiplexing (TDM) timeslots in a network switch
US7215666B1 (en) * 2001-11-13 2007-05-08 Nortel Networks Limited Data burst scheduling
DE60308150T2 (de) * 2002-02-06 2007-07-19 Koninklijke Philips Electronics N.V. Adressenraum, bussystem, speicherungssteuerung und einrichtungssystem
US20030167408A1 (en) * 2002-03-01 2003-09-04 Fitzpatrick Gregory P. Randomized bit dispersal of sensitive data sets
US7110415B1 (en) 2002-05-17 2006-09-19 Marvell International Ltd. Apparatus and method for dynamically limiting output queue size in a quality of service network
ATE348465T1 (de) * 2002-10-22 2007-01-15 Hewlett Packard Co Verfahren und vorrichtung zum betreiben einer telekommunikations-plattform
US7571287B2 (en) * 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US7870334B2 (en) * 2003-11-12 2011-01-11 International Business Machines Corporation Distributed task queues in a multiple-port storage system
EP1513072A3 (en) * 2003-09-02 2009-10-21 Thomson Licensing Method for multibank memory scheduling
US7707330B2 (en) * 2003-09-18 2010-04-27 Rao G R Mohan Memories for electronic systems
US7042792B2 (en) * 2004-01-14 2006-05-09 Integrated Device Technology, Inc. Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
DE102004038211A1 (de) 2004-08-05 2006-03-16 Robert Bosch Gmbh Botschaftsverwalter und Verfahren zur Steuerung des Zugriffs auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
US20070239906A1 (en) * 2006-03-13 2007-10-11 Vakil Kersi H Input/output agent having multiple secondary ports
US7769942B2 (en) 2006-07-27 2010-08-03 Rambus, Inc. Cross-threaded memory system
US7978690B2 (en) * 2007-03-31 2011-07-12 International Business Machines Corporation Method to operate a crossbar switch
US8234425B1 (en) 2007-06-27 2012-07-31 Marvell International Ltd. Arbiter module
US7949817B1 (en) 2007-07-31 2011-05-24 Marvell International Ltd. Adaptive bus profiler
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
US7761754B1 (en) * 2008-03-25 2010-07-20 Altera Corporation Techniques for testing memory circuits
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
JP5332430B2 (ja) * 2008-09-11 2013-11-06 富士通株式会社 共有メモリシステム
TWI393142B (zh) * 2008-12-29 2013-04-11 Macronix Int Co Ltd 記憶體裝置與其控制方法
WO2010093538A1 (en) 2009-02-11 2010-08-19 Rambus Inc. Shared access memory scheme
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
US8688922B1 (en) 2010-03-11 2014-04-01 Marvell International Ltd Hardware-supported memory management
EP2551769A4 (en) 2010-03-25 2013-11-27 Fujitsu Ltd MULTIKERNPROZESSORSYSTEM, CONTROL PROCEDURES FOR A MEMORY CONTROL AND CONTROL PROGRAM FOR A MEMORY CONTROLLER
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
JP5229922B2 (ja) * 2010-11-08 2013-07-03 ルネサスエレクトロニクス株式会社 情報処理システム
US8645609B2 (en) * 2010-12-06 2014-02-04 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
EP2663919B1 (en) 2011-01-11 2019-07-03 A10 Networks Inc. Virtual application delivery chassis system
US9154577B2 (en) 2011-06-06 2015-10-06 A10 Networks, Inc. Sychronization of configuration file of virtual application distribution chassis
US9047057B2 (en) * 2012-11-16 2015-06-02 International Business Machines Corporation Accessing additional memory space with multiple processors
US9961130B2 (en) 2014-04-24 2018-05-01 A10 Networks, Inc. Distributed high availability processing methods for service sessions
US10742559B2 (en) 2014-04-24 2020-08-11 A10 Networks, Inc. Eliminating data traffic redirection in scalable clusters
CN105740177B (zh) * 2014-12-08 2019-05-21 台湾积体电路制造股份有限公司 信号传输的控制方法和装置、以及信号锁存装置
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750154A (en) * 1984-07-10 1988-06-07 Prime Computer, Inc. Memory alignment system and method
JPS61150059A (ja) * 1984-12-24 1986-07-08 Sony Corp デ−タ処理装置
US4744078A (en) * 1985-05-13 1988-05-10 Gould Inc. Multiple path multiplexed host to network data communication system
US4760570A (en) * 1986-08-06 1988-07-26 American Telephone & Telegraph Company, At&T Bell Laboratories N-by-N "knockout" switch for a high-performance packet switching system
US4754451A (en) * 1986-08-06 1988-06-28 American Telephone And Telegraph Company, At&T Bell Laboratories N-by-N "knockout" switch for a high-performance packet switching system with variable length packets
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US4891795A (en) * 1987-05-21 1990-01-02 Texas Instruments Incorporated Dual-port memory having pipelined serial output
US4958341A (en) * 1988-03-31 1990-09-18 At&T Bell Laboratories Integrated packetized voice and data switching system
US4891794A (en) * 1988-06-20 1990-01-02 Micron Technology, Inc. Three port random access memory
US4888741A (en) * 1988-12-27 1989-12-19 Harris Corporation Memory with cache register interface structure
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5204841A (en) * 1990-07-27 1993-04-20 International Business Machines Corporation Virtual multi-port RAM
US5278967A (en) * 1990-08-31 1994-01-11 International Business Machines Corporation System for providing gapless data transfer from page-mode dynamic random access memories
JP2871967B2 (ja) * 1991-08-20 1999-03-17 日本電気アイシーマイコンシステム株式会社 デュアルポート半導体記憶装置
JPH05151769A (ja) * 1991-11-28 1993-06-18 Mitsubishi Electric Corp マルチポートメモリ
IT1259342B (it) * 1992-03-17 1996-03-12 Cselt & Centro Studi E Lab Tel Elemento di commutazione di cella ad elevata velocita' di cifra in tecnologia cmos
US5742760A (en) * 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5309395A (en) * 1992-10-22 1994-05-03 At&T Bell Laboratories Synchronous static random access memory
US5732041A (en) * 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
US5440523A (en) * 1993-08-19 1995-08-08 Multimedia Communications, Inc. Multiple-port shared memory interface and associated method
US5634004A (en) * 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
US5802052A (en) * 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160071290A (ko) 2014-12-11 2016-06-21 (주)두린 미서기창의 호차측 단열구조

Also Published As

Publication number Publication date
US5910928A (en) 1999-06-08
JP3628706B2 (ja) 2005-03-16
US6021086A (en) 2000-02-01
EP0843854A1 (en) 1998-05-27
DE69631055T2 (de) 2004-07-08
DE69631055D1 (de) 2004-01-22
AU6590596A (en) 1997-03-05
JP2004320786A (ja) 2004-11-11
JPH11510285A (ja) 1999-09-07
EP0843854B1 (en) 2003-12-10
US5732041A (en) 1998-03-24
DE1028380T1 (de) 2001-04-19
EP1028380A3 (en) 2005-11-09
JP3899085B2 (ja) 2007-03-28
KR19990036220A (ko) 1999-05-25
EP1028380A2 (en) 2000-08-16
WO1997006489A1 (en) 1997-02-20

Similar Documents

Publication Publication Date Title
KR100356447B1 (ko) 메모리인터페이스유닛,공유메모리스위치시스템및관련방법
EP0714534B1 (en) Multiple-port shared memory interface and associated method
US5825767A (en) ATM switch with input and output ports
EP0195589B1 (en) Switching system for transmission of data
JPH03139044A (ja) Atmシステム用スイッチ回路網およびスイッチ―回路網モジュール
US5649217A (en) Switching system having control circuit and plural buffer memories for data exchange in asynchronous transfer mode
JPH09275405A (ja) パケット通信装置
JP2002049582A (ja) 再構成可能ファーストイン・ファーストアウト機構
US6697362B1 (en) Distributed switch memory architecture
EP0357618A1 (en) SWITCHING SYSTEM.
US6728256B1 (en) Shared buffer control device
AU3270399A (en) Ampic dram system in a telecommunication switch
US6310875B1 (en) Method and apparatus for port memory multicast common memory switches
US7535898B2 (en) Distributed switch memory architecture
CA1335609C (en) Communication switching element
JP3133234B2 (ja) Atmスイッチのアドレス生成回路
US5546393A (en) Asynchronous transfer mode data cell routing device for a reverse omega network
US6465989B1 (en) Apparatus for integrating switch ports in an ATM switching system
AU630728B2 (en) Switching network for an atm system
JPH10271164A (ja) マルチキャスト方法および装置
JPH0447828A (ja) ヘッダ駆動型スイッチ

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 19980206

Patent event code: PA01051R01D

Comment text: International Patent Application

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

Patent event code: PA02012R01D

Patent event date: 20010130

Comment text: Request for Examination of 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: 20020830

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20020930

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20021001

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20051124

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20060925

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20070928

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20080926

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20090716

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20100827

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20110830

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20120830

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20130830

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20130830

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20140828

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20150630

Start annual number: 14

End annual number: 14

EXPY Expiration of term
PC1801 Expiration of term

Termination date: 20170118

Termination category: Expiration of duration