KR20010015608A - 멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스 - Google Patents

멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스 Download PDF

Info

Publication number
KR20010015608A
KR20010015608A KR1020007003099A KR20007003099A KR20010015608A KR 20010015608 A KR20010015608 A KR 20010015608A KR 1020007003099 A KR1020007003099 A KR 1020007003099A KR 20007003099 A KR20007003099 A KR 20007003099A KR 20010015608 A KR20010015608 A KR 20010015608A
Authority
KR
South Korea
Prior art keywords
data
bus
port
data bus
interface
Prior art date
Application number
KR1020007003099A
Other languages
English (en)
Inventor
볼커 린덴스트루쓰
Original Assignee
아이코어 테크놀러지스 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아이코어 테크놀러지스 인크 filed Critical 아이코어 테크놀러지스 인크
Publication of KR20010015608A publication Critical patent/KR20010015608A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)

Abstract

3개의 독립적인 데이타 포트를 가져서 메모리내에 저장된 데이타와 2개의 양방향 데이타 버스와 데이타 프로세서로의 동시 억세스를 제공하는 트리플-포트 메모리를 이용하는 지능형 데이타 버스 인터페이스에 있어서, 2개의 데이타 버스 및 프로세서는 개별 데이타 포트에 결합되고 각각은 각각의 풀 데이타 레이트로 트리플-포트 메모리내의 데이타에 독립적으로 억세스할 수 있다. 트리플-포트 메모리의 이용으로 인해, 데이타의 프로세서로의 억세스 또는 데이타 버스로의 억세스를 제공하기 위해서는 데이타 복사 또는 이용은 필요하지 않다. 지능형 데이타 버스 인터페이스는 호스트 프로세서에 처리 부담을 주지 않고 어떠한 임의의 포트에서도 최고 속도로 암호화/복호화, 네트워크 프로토콜 및 PCI/SCI 브릿징을 처리하는데 특히 적합하다.

Description

멀티 포트 메모리를 이용하는 지능형 데이터 버스 인터페이스{INTELLIGENT DATA BUS INTERFACE USING MULTI-PORT MEMORY}
호스트 컴퓨터의 버스와 슬레이브 컴퓨터 또는 I/O 장치의 버스간의 전형적인 인터페이스는 2개의 독립된 양방향 포트를 갖는 듀얼-포트 메모리를 포함한다. 하나의 컴퓨터는 듀얼-포트 메모리와 관련된 자신의 컴퓨터 어드레스 공간에 기록하도록 하고, 후속하여 다른 컴퓨터는 듀얼-포트 메모리와 관련된 자신의 컴퓨터의 어드레스 공간으로부터 데이타를 판독하도록함으로써, 컴퓨터들 사이에서 데이타가 전송된다. 듀얼 포트 메모리는 서로 다른 데이타 레이트로 동작하는 호스트 버스와 슬레이브 버스간의 인터페이스인 경우 특히 유리하다. 이 인터페이스는 프로토콜, 제어, 및 데이타 처리 기능을 위해 호스트 컴퓨터 및 슬레이브 컴퓨터의 중앙 처리 장치(CPU)로의 인터럽트 구동형 액세스를 요구한다. 각각의 CPU는, CPU의 처리 능력의 상당한 비율을 요구할 수 있는 인터페이스 인터럽트에 의해 부하가 걸린다.
전형적인 지능형 인터페이스는, 호스트 컴퓨터 CPU의 많은 입력/출력(I/O) 관련 태스크를 경감시켜주는 전용 마이크로프로세서를 포함하는 입력/출력 프로세서(IOP)를 가진다. 따라서, 호스트 CPU의 처리 부담을 경감시켜주면서 더 높은 I/O 성능을 달성할 수 있다. 또한, IOP는 높은 수준의 I/O 프로토콜을 수행할 수 있으며, 암호화/복호화와 같은 데이타 변환을 수행하며, 판독-전 캐싱 및 기록-데이타 병합과 같은 지능형 런타임 최적화를 수행한다.
기존 지능형 데이타 버스 인터페이스의 예가 Murphy에게 허여된 미국 특허출원 제 5,130,981호의 네트워크 브리지에 공개되어 있다. 용어 "지능형"은 네트워크 브리지에 포함된 전용 시스템 프로세서(101)로부터 유래한다. Murphy 네트워크 브리지에서, 각각 제1 네트워크(105) 및 제2 네트워크(106)으로부터 제1 및 제2 DMA 컨트롤러(103, 104)를 통해 네트워크 브리지에 의해 수신된 데이타 패킷을 저장하기 위해 싱글-포트 랜덤 액세스 메모리가 사용된다. 시스템 프로세서 및 DMA 제어기는 3-포트 RAM 인터페이스를 통해 RAM에 저장된 데이타 패킷에 대해 액세스한다. 3-포트 RAM 인터페이스는 시스템 프로세서 및 DMA 제어기가 싱글-포트 RAM에 동시에 액세스하는 것을 방지한다. 이상적으로, 3-포트 RAM 인터페이스(107)은, 프로세서 및 2개의 DMA 제어기가 싱글-포트 RAM에 대해 동등한 액세스 우선권을 갖도록 싱글-포트 RAM에 대한 액세스를 할당한다. 그러나, 동등한 액세스 우선권을 제공하기 위해, RAM의 액세스 싸이클 타임은 프로세서 또는 DMA 제어기의 액세스 싸이클 타임의 3배이어야 한다. 이는, 네트워크 브리지의 최대 대역폭을 RAM 대역폭의 약 1/3로 제한하기 위해서이다. 3-포트 RAM 인터페이스는, 싱글-포트 메모리에 대한 프로세서 및 DMA 컨트롤러의 동시 및 비동기 액세스를 방지하는 방식으로 액세스를 허용한다.
일반적으로, 호스트 컴퓨터 및 슬레이브 컴퓨터의 운영 체제는 기존 데이타 또는 네트워크 인터페이스를 사용하기 위해 하드웨어 특정 기능을 구현해야만 한다. 현재, 지능형 데이타 버스 인터페이스를 위한 표준화 노력은, 운영 체제로부터 독립된 표준 지능형 인터페이스 프로토콜을 정의함으로써 특정의 지능형 인터페이스 하드웨어로부터 운영 체제를 분리시키는 방향으로 진행되고 있다. 따라서, 표준 프로토콜을 구현하는 지능형 인터페이스 하드웨어는, 표준 프로토콜을 지원하는 모든 운영 시스템과 호환된다. 예시적인 표준으로는, 지능형 I/O(I2O) 아키텍쳐, 인텔/마이크로소프트 버추얼 인터페이스(VI) 아키텍쳐, 통일 드라이브 인터페이스, 및 IEEE SCI 물리층 API가 있다. I2O 표준은 지능형 I/O 하드웨어 아키텍쳐, 호스트 CPU와 IOP간의 바이트 전송 프로토콜, 전송 드라이브 인터페이스, 메시지 프로토콜, IOP 초기화 및 구성을 정의한다.
인텔 I906RP와 같은 현재 이용가능한 지능형 IOP2가 도 1에 단순한 형태로 도시되어 있다. 인텔 IOP는 I2O 표준 내에서 동작하도록 위치한다. IOP는 내부 메모리를 갖는 마이크로프로세서(프로세서, 4), 메모리 버스 인터페이스 유닛(MIU, 8), 로컬 버스 인터페이스 유닛(BIU, 12), 및 2개의 직접 메모리 액세스 인터페이스(DMA 인터페이스, 14, 18)을 포함한다. 프로세서, MIU, BIU, 및 IDMA 인터페이스는 내부 버스(10)에 의해 서로 접속된다. IOP는 많은 개수의 I/O 인터페이스를 가지고 있기 때문에, 버스 인터페이스에 대한 제어 기능 및 초기화를 수행할 수 있을 뿐 아니라 지능형 I/O 브리지의 역할을 할수도 있다. IOP의 1차 DMA 인터페이스(14)는, 전형적으로 호스트의 로컬 주변기기 접속 버스(PCI 버스, 16)을 통해 (도시되지 않은) 호스트 CPU에 접속된다. 2차 DMA 인터페이스(18)은 제2 PCI 버스(20)을 통해 (도시되지 않은) 네트워크 하드웨어에 접속된다. PCI-PCI 브리지(22)는, PCI 버스(16, 20)들 사이에서 IOP를 사용하지 않으며 어느 한쪽 버스에서의 처리 능력을 저하시키지 않고 DMA 데이타 교환을 할 수 있도록 해준다. IOP의 마이크로프로세서는, MIU(8)을 BIU(12)와 2개의 DMA 인터페이스(14, 18)에 접속시키기 위해 내부 버스(10)을 사용한다.
전형적인 I/O 동작에서, IOP(2)는 온-칩 내부 메모리(6) 내의 특정 어드레스에 포스팅된 요청을 수신한다. 후속해서, 프로세서(4)는 요청을 디코딩하고 PCI 버스(20)을 사용하여 적절한 네트워크 인터페이스(도시되지 않음)를 구성함으로써 응답한다. 네트워크 인터페이스는 요청을 수행하고 PCI-PCI 브리지(22)를 사용하여 결과 데이타를 호스트 컴퓨터 메모리에/로부터 복사한다. DMA 트랜잭션의 완료후에, IOP(2)는 요청에 대한 완료 동작을 트리거하는 적절한 인터럽트를 수신한다.
IOP(2)의 아키텍쳐에 기인한 성능 제한은, 데이타 부호화/복호화, 패킷별 플로우 제어, 또는 지능형 인터페이스 내에서의 상위 프로토콜 계층의 구현과 같은 추가적인 I/O 데이타 처리가 요구될 때 명백하다. 이와 같은 I/O 데이타 처리에 대해, 프로세서(4)는 데이타 스트림에 대해 직접 액세스를 해야한다. 데이타 스트림에 대한 CPU의 액세스는 몇개의 기법에 의해 수행되며, 그 중 2개가 이하에서 기술될 것이다.
제1 기법에서, 프로세서(4)는 PCI 버스(20)을 사용하여 네트워크 인터페이스의 내부 탄성 버퍼로부터 직접 프로그램된 I/O 판독을 수행하며, 내부적으로 데이타를 처리하고, 호스트 PCI 버스(16)을 이용하여 1차 PCI 어드레스 공간 내의 타겟 메모리에 직접 기록한다. 불행히도, 이와 같은 프로그램된 I/O 동안에 2개의 DMA 인터페이스(14, 18)의 어느 한쪽에서, 어떠한 액세스 대기 시간(latency)도 프로세서(4)를 상당히 느리게 할 것이고, 이에 따라 그 처리 효율을 저하시키게 된다. 나아가, IOP를 통한 전체 가용 대역폭은 내부 버스(10)의 대역폭의 1/2에서 임의의 프로세서 프로그램 코드 페치를 감한 것(즉, 프로그램 캐시 미스) 및 2개의 DMA 인터페이스(14, 18)의 어느 한쪽에서의 액세스 대기시간 또는 스톨(stall)을 감산한 값으로 제한된다.
제2 기법에서, 로컬 메모리 버스(24)를 통해 MIU(8)을 경유하여 (도시되지 않은) 로컬 메모리로/로부터 데이타를 이동시키기 위해 2개의 인터페이스(14, 18) 내에 DMA 엔진을 이용함으로써 PCI 버스 액세스 대기시간이 회피될 수 있다. 로컬 메모리는 임의의 I/O 처리에 대해 탄성 버퍼의 역할을 한다. 고속 내부 메모리(6)은 PCI 버스 대기 시간을 피하기 위한 탄성 버퍼일 수 있다. 내부 메모리(6)은 전형적으로 예를 들어 1K바이트 정도로 작으며, 데이타 패킷의 송신기와 수신기 사이에서 밀접한 결합을 요구한다. 내부 메모리(6)을 사용하여, 전체 가용 대역폭은 버스(10)의 1/2 대역폭을 제한되며, 프로세서(4)에 의해 더 적은 개수의 코드가 페치(fetch)된다. PCI 버스들 중 어느 하나에 대한 액세스 대기시간은 큰 데이타 버스트에 대해 상각되며 무시될 수 있다. 그러나, 내부 메모리(6)이 너무 작아서 (도시되지 않은) 로컬 메모리가 사용되는 경우에는, 전체 데이타 처리량은 내부 버스(10)의 1/4 대역폭에서 소정의 코드 페치에 걸리는 대역을 감산한 값으로 제한된다.
상술한 2개의 기법들의 대역 제한은, IOP가 스케쥴 및 제어 동작을 수행한다면 기존 IOP2의 아키텍쳐는 유익하다는 것을 나타낸다. 그러나, IOP가 고속 데이타 스트림을 액세스하도록 요구된다면, 그 성능은 아키텍쳐의 고유 대역폭 제한으로 인해 더욱 제한된다.
따라서, 인터페이스를 통한 스트림의 데이타 레이트에 과도한 영향을 미치지 않고 고속 데이타 스트림을 제어 및 액세스할 수 있는 내부 프로세서를 갖는 지능형 데이타 버스 인터페이스가 명백히 필요하다. 나아가, 고속 데이타 스트림의 대역폭보다 수배되는 대역폭에서 동작해야하는 초고속 내부 데이타 버스를 갖는 인터페이스를 필요로하지않고 데이타를 인터페이스에 걸쳐 브리지할 수 있는 지능형 데이타 버스 인터페이스가 필요하다. 본 발명은 이들 요구를 만족시키며 관련된 이점을 제공한다.
본 발명은 지능형 데이타 버스 인터페이스에 관한 것으로, 보다 구체적으로는, 멀티-포트 메모리 및 데이타 프로세서를 갖는 지능형 데이타 버스 인터페이스에 관한 것이다.
도 1은 종래 기술의 지능형 I/O 프로세서의 개략적인 블록도.
도 2는 두 개의 PCI 버스들 간 동작하는 트리플-포트 메모리를 구비한, 본 발명에 따른 지능형 데이터 버스 인터페이스의 제1 실시예를 도시한 블록도.
도 3은 쿼드-포트 메모리와 제1 및 제2 네트워크 버스들 간 동작하는 2개의 프로세서를 구비한, 본 발명에 따른 지능형 데이터 버스 인터페이스의 제2 실시예를 도시한 블록도.
도 4는 PCI 버스와 SCI 버스 간 동작하는, 본 발명에 따른 지능형 데이터 버스 인터페이스의 제3 실시예를 도시한 블록도.
도 5는 SCI 버스와 PCI 버스의 어드레스 도메인들 사이의 어드레스들을 변환하는 어드레스 해석 테이블을 이용하는, 도 4의 버스 인터페이스에 의해 이용하는 플라이-바이(fly-by) 어드레스 해석 방법의 개략적인 도면.
도 6은 도 5의 플라이-바이 어드레스 해석 방법에 따라 64-비트 SCI 어드레스를 32-비트 PCI 어드레스로 변환하는 방법을 도시한 데이터 흐름도.
도 7은 도 5의 플라이-바이 어드레스 해석 방법에 따라 64-비트 SCI 어드레스를 32-비트 PCI 어드레스로 변환하는 다른 방법을 도시한 데이터 흐름도.
도 8은 2개의 n-비트 넓이 데이터 버스들과 하나의 2n-비트 넓이 데이터 버스들을 구비한, 본 발명에 따른 쿼드-포트 메모리로부터 형성된 트리플-포트의 개략적인 도면.
도 9는 32-비트 PCI 버스와 64-비트 SCI 버스를 구비한, 도 8의 트리플-포트 메모리에 따라 트리플-포트 메모리를 형성하도록 구성된 4개의 쿼드-포트 메모리들의 개략적인 도면.
도 10은 두 개의 이더넷 네트워크와 ATM 네트워크 간을 인터페이싱하기 위한, 본 발명에 따른 쿼드-포트 메모리에 기초한 지능형 네트워크 루터의 블록도.
본 발명은 융통성있고 효율적인 데이타 인터페이스를 제공하기 위한 지능형 데이타 버스 인터페이스 및 관련된 방법의 형태로 구현된다. 지능형 데이타 버스 인터페이스는 멀티-포트 메모리, 제1 양방향 데이타 버스, 제2 양방향 데이타 버스, 및 프로세서를 포함한다. 멀티-포트 메모리는 복수개의 데이타 저장 셀을 가지며, 복수개의 데이타 저장 셀에/로 동시에 및 비동기적으로 데이타를 기록 및 판독하도록 구성될 수 있는 적어도 3개의 독립된 양방향 데이타 포트를 가진다. 제1 양방향 데이타 버스는 양방향 데이타 포트들중 제1 포트에 결합된다. 제2 양방향 데이타 버스는 양방향 데이타 포트들 중 제2 포트에 결합된다. 프로세서는 양방향 데이타 포트들 중 제3 포트에 결합되며, 복수개의 데이타 저장 셀들 내의 데이타에 관해 동작한다. 지능형 데이타 버스 인터페이스는, 멀티-포트 메모리를 사용함으로써, 프로세서에 의한 데이타 스트림 처리를 제공하면서 동시에 각각의 양방향 데이타 버스가 최고의 대역폭 데이타 레이트로 독립적으로 동작할 수 있도록 허용한다.
본 발명의 보다 구체적인 특징으로, 지능형 데이타 버스 인터페이스는 제1 양방향 데이타 버스와 제1 양방향 데이타 포트 사이에 결합된 제1 데이타 버스 인터페이스 장치와, 제2 양방향 데이타 버스와 제2 양방향 데이타 포트 사이에 결합된 제2 데이타 버스 인터페이스 장치를 더 포함한다. 제1 및 제2 데이타 버스 인터페이스 장치는 복수개의 데이타 저장 셀로 데이타를 비동기적으로 기록하거나 저장 셀로부터 데이타를 비동기적으로 판독한다. 프로세서는 복수개의 데이타 저장 셀의 한 부분내의 제1 및 제2 데이타 버스 인터페이스중 하나에 의해 앞서 기록된 데이타에 관해 동작하는 동시에, 제1 및 제2 데이타 버스 인터페이스는 복수개의 데이타 저장 셀의 다른 부분내에/으로부터 데이타를 동시에 기록/판독한다. 또한, 지능형 데이타 버스 인터페이스는 제1 및 제2 데이타 버스들 사이에서 데이타 브리지를 제공하기 위해 제1 및 제2 데이타 버스 인터페이스 장치 사이에 결합된 패스-스루 논리 장치를 포함한다. 추가적으로, 제1 데이타 버스는 PCI 데이타 버스일 수 있으며, 제1 데이타 버스 인터페이스 장치는 PCI 인터페이스 장치일 수 있고, 제2 데이타 버스는 SCI 데이타 버스이며, 제2 데이타 버스 인터페이스 장치는 SCI 인터페이스 장치일 수 있다. 패스-스루 논리 장치는 SCI-to-PCI 데이타 버스 브리지를 제공하기 위해 SCI 데이타 버스 상의 데이타 어드레스를 PCI 데이타 버스 상의 데이타 어드레스로 변환할 수 있다. 패스-스루 로직 유닛은 또한 PCI-투-SCI 버스 브리지를 제공하기 위하여 PCI 데이터 버스 상의 데이터 어드레스를 SCI 데이터 버스 상의 데이터 어드레스로 변환할 수 있다. 또한, 내부 버스는 프로세서와 IPCI 인터페이스 유닛 사이에 결합된다.
발명의 다른 상세한 특징에 있어서, SCI 데이터 버스는 64-비트 데이터 어드레스를 이용할 수 있고, PCI 데이터 버스는 32-비트 데이터 어드레스를 이용할 수 있으며, 멀티-포트 메모리는 4개의 포트들중 2개의 포트를 SCI 데이터 버스에 결합된 제2 양방향 데이터 버스를 형성하기 위해 구성한 쿼드-포트 메모리를 이용하는 트리플-포트 메모리일 수 있다. 또한, 패스-스루 로직 유닛은 SCI 버스 인터페이스 유닛과 PCI 버스 인터페이스 유닛 사이의 플라이-바이 어드레스 해석을 수행할 수 있다. 또한, 데이터 브리지는 스플릿 해석 프로토콜과 통합 해석 프로토콜 사이의 프로토콜 변환을 수행할 수 있다. 대안으로, 프로세서는 제1 및 제2 데이터 버스 인터페이스들 사이의 블록 판독을 계획하여 체인-모드 DMA를 행할 수 있다.
본 발명의 다른 상세한 특징에 있어서, 제1 데이터 버스는 제1 DMA 인터페이스 유닛인 제1 데이터 버스 인터페이스 유닛을 구비한 호스트 PCI 데이터 버스일 수 있고, 제2 데이터 버스는 제2 DMA 인터페이스 유닛인 제2 데이터 인터페이스 유닛을 구비한 슬래브 PCI 데이터 버스일 수 있으며, 따라서 PCI-투-PCI 브리지 유닛을 제공하여 패스-스루 로직 유닛은 호스트 PCI 데이터 버스 상의 데이터 어드레스를 슬래브 PCI 데이터 버스로 향하게하고 슬래브 PCI 데이터 버스 상의 데이터 어드레스를 호스트 PCI 데이터 버스로 향하게 한다. 다른 방법으로, ATM 버스와 같은 제3 양방향 데이터 버스는 ATM 인터페이스에 의해 적어도 3개의 양방향 데이터 포트들중 제4 포트에 결합될 수 있고, 제1 데이터 버스는 제1 이더넷 인터페이스 유닛인 제1 데이터 버스 인터페이스 유닛을 구비한 이더넷 데이터 버스이고, 제2 데이터 버스는 제2 이더넷 인터페이스 유닛인 제2 데이터 버스 인터페이스 유닛을 구비한 이더넷 데이터 버스이며, 패스-스루 로직 유닛은 제1 및 제2 이더넷 버스들 간의 데이터 브리지를 제공할 수 있다. 또한, 내부 버스는 프로세서, 제1 데이터 버스 인터페이스 유닛 및 제2 데이터 버스 인터페이스 유닛에 결합되어 프로세서 및 제1 및 제2 데이터 버스 인터페이스 유닛 사이에 제어 및 구성 명령들의 통신을 가능하게 한다.
본 발명의 또 다른 설명된 특징에 있어서, 프로세서는 멀티-포트 메모리에 기억된 데이터에 대한 암호화 및 해독을 수행한다. 더욱이, 프로세서는 디지털 상태 머신이나 데이터 암호화 및 해독용 데이터 조작 상태 머신일 수 있다. 프로세서는 메모리 캐시와 같은 리플렉티브 메모리 프로토콜(reflective memory protocol)을 수행하기 위한 로컬 메모리를 포함할 수 있다. 부가적으로, 제2 프로세서는 적어도 3개의 양방향 데이터 포트들중 제4 포트에 결합될 수 있다. 또한, 호스트 버스 인터페이스는 멀티-포트 메모리의 포트에 접속될 수 있다.
본 발명의 다른 실시예는 프로세서, 제1 데이터 버스로부터 데이터를 수신하고 제1 데이터 버스로 데이터를 송신하는 제1 데이터 버스 인터페이스, 다수의 기억 셀들 내에 데이터를 기억하고 상기 기억 셀들로부터 기억된 데이터를 판독하기 위한 제1, 제2 및 제3 포트들을 구비한 트리플-포트 메모리일 수 있다. 제1 포트는, 제1 데이터 버스로부터 수신된 데이터는 기억 셀들 내에 기억되고 제1 버스 인터페이스에 의해 기억 셀들로부터 판독된 데이터는 제1 데이터 버스로 전송될 수 있도록 제1 버스 인터페이스에 결합되어 있다. 제2 포트는, 제2 데이터 버스로부터 수신된 데이터는 기억 셀들 내에 기억되고 제2 버스 인터페이스에 의해 기억 셀들로부터 판독된 데이터는 제2 데이터 버스로 전송될 수 있도록 제2 버스 인터페이스에 결합되어 있다. 프로세서는 기억 셀 내에 데이터를 판독, 처리 및 기억하기 위한 제3 포트와 결합되고, 특정 포트를 통해 특정 기억 셀에 기억된 데이터는 이 특정 포트와 독립된 다른 포트에 의해 특정 셀이 다른 기억 셀로부터 데이터를 판독하거나 다른 기억 셀에 데이터를 기억하게 되는 동안 판독가능하게 된다.
본 발명은 또한 데이터를 인터페이싱하기 위한 방법을 실시한다. 이 방법은 다수의 데이터 기억 셀들을 구비한 멀티-포트 메모리를 제공하는 단계, 제1 포트를 통해 제1 데이터 버스로부터 수신된 데이터를 다수의 기억 셀들중 제1 부분 안에 기억하는 단계, 및 제1 포트를 통해 제1 데이터 버스로부터 수신된 데이터를 다수의 기억 셀들중 제2 부분 안에 기억하는 동안 이와 독립적으로 그리고 동시에 다수의 데이터 기억 셀들의 제1 부분 안으로 기억된 데이터를 제2 포트를 통해 프로세싱하는 단계를 포함한다.
본 발명의 다른 상세한 특징으로서, 본원의 방법은 또한 다수의 데이터 기억 셀들의 제2 부분 내에 기억된 데이터를 제2 포트를 통해 처리하는 동안 및 제1 포트를 통해 제1 데이터 버스로부터 수신된 데이터를 다수의 기억 셀들의 제3 부분 내에 기억하는 동안 이들과 독립적으로 그리고 동시에, 제3 데이터 포트를 통해 다수의 기억 셀들의 제1 부분 내에 기억되어 있는 처리된 데이터를 판독하는 단계를 더 포함한다.
도 2는 본 발명의 제1 실시예에 따른 지능형 데이터 버스 인터페이스(30)를 도시한다. 버스 인터페이스(30)는 트리플-포트 메모리와 같은 멀티-포트 메모리(32), 및 패스-스루 로직 유닛(52)을 더 포함한다는 것을 제외하면 도 1의 ITO(2)와 유사하다. 인터페이스는 내부 프로세서 메모리(36)를 구비한 프로세서(34)를 포함하고, 제1 및 제2 데이터 버스들(46, 50)과 각각 연관되는 2개의 외부 버스 인터페이스들(44, 48)을 포함한다. 데이터 버스들(46, 50)은 각각 트리플-포트 메모리 내의 특정 버퍼 기억 셀들로/로부터 데이터 패기들을 수신/송신할 수 있는 각각의 버스 인터페이스(44, 48)를 통해 트리플-포트 메모리의 양방향 데이터 포트(32a, 32b)에 결합된다. 프로세서(34)는 트리플-포트 메모리의 제3 양방향 데이터 포트(32c)에 결합된다. 본 발명에 따른 지능형 데이터 버스 인터페이스의 특징적인 장점은, 각각의 양방향 데이터 포트가 다른 데이터 포트들과 동기 화하거나 이를 기다리지 않고 데이터 속도가 풀 억세서 속도가 될 때까지 데이터를 독립적으로 송신 또는 수신할 수 있다는 것이다.
프로세서(34)는 내부 버스(40)에 의해 트리플-포트 메모리(32)의 제3 포트(32c)와 DMA 인터페이스(44, 48)에 결합된다. 프로세서는 트리플-포트 메모리의 제3 포트를 통해 양 데이터 버스들(46, 50)에 액세스하기 때문에, 어느 하나의 데이터 버스(46, 50)와 무관한 속도로 그리고 어느 하나의 데이터 버스와 트리플-포트 메모리 사이의 풀 속도 데이터 전송을 인터럽트하지 않고 트리플-포트 메모리에 존재하는 데이터를 조작할 수 있다. 프로세서는, 기억 셀들의 제2 버퍼 또는 세그먼트가 제1 버스 인터페이스에 의해 기입되고 기억 셀들의 제3 버퍼 또는 세그먼트로부터의 데이터가 제2 버스 인터페이스에 의해 판독되는 동안, 트리플-포트 메모리에서 기억 셀들의 버퍼 슬롯 또는 세그먼트들을 변형할 수 있다. 따라서, 데이터 버스들(46, 50)은 풀 속도에서 동작하고 프로세서(34)와 완전히 독립될 수 있다. 고속 데이터 스트림을 서비스하기 위한 추가의 프로세싱 성능이 필요한 경우, 부가적인 포트들은 추가의 포트들에 접속된 추가의 프로세서들을 구비한 멀티-포트 메모리를 형성하는 트리플-포트 메모리에 부가될 수 있다.
본 발명의 지능형 버스 인터페이스(30)는 도 1의 MIU(8)과 BIU(12)와 기능적으로 유사한 메모리 버스 인터페이스 유닛(MIU)(38)과 로컬 버스 인터페이스 유닛(BIU)(42)을 더 포함할 수 있다. 멀티-포트 메모리(32)의 전용 포트(32c)를 통해, 프로세서(34)는 두 개의 버스 인터페이스들(44, 48)을 통과하는 모든 데이터에 직접 액세스할 수 있다. 프로세서는 내부 버스(40)의 마스터(master)이므로, 프로세서가 내부 버스를 통해 멀티-포트 메모리 포트에 액세스할 경우에는 액세스 잠복 또는 다른 버스 쟁탈이 없다. 따라서, 인터페이스(30)를 통과하는 전체 유효가능한 데이터 변환 대역폭은 임의의 프로세서 프로그램 코드 패치 (프로그램 캐시 오류들)에 필요한 대역폭보다 작은, 내부 버스(40)의 속도에 의해 결정된, 전체 내부 프로세서의 멀티-포트 메모리 포트의 대역폭의 1/2이다. 내부 버스의 대역폭은 그 폭을 가장 빠른 외부 버스의 대역폭의 2배가 되도록 증가시킴으로써 쉽게 증가될 수 있다. 프로세서는 또한 버스 인터페이스들을 초기화 및 구성하기 위한 내부 버스를 통해 어느 하나의 인터페이스(44, 48)에 직접 액세스할 수 있다.
두 개의 버스 인터페이스(44, 48)에 접속되는 멀티-포트 메모리(32)의 2개의 포트들은 메모리의 대역폭 이상의 데이터 속도로 데이터 패킷들을 수신 또는 송신할 수 있다. 버스 인터페이스들은, 프로세서(34)가 데이터에 액세스하지 않고 "패스-스루(pass-through)" 방식으로 데이터 패킷들의 포워딩(forwarding)을 행하도록, 멀티-포트 메모리(32)와 조합하여, 패스-스루 로직 유닛(52)을 사용하는 도 1의 PCI-PCI 브리지(22)와 유사한 기능을 갖도록 구성될 수 있다. 패스-스루 로직 유닛(52)은 패킷-바이-패킷 방식으로 데이터 패킷들에 선택적으로 작용하고, 따라서 필터링 기능을 수행할 수 있다. 제공된 데이터 패킷을 포워드하라는 결정은, 패킷이 프로세서를 통해 패킷을 루팅하지 않고 버스 인터페이스들중 어느 하나에서 수신될 때 발생된다. 패스-스루 로직 유닛은 프로세서에 의해 구성되며 중요치않은 확인응답 패킷을 차단하거나 특정 데이터 패킷을 바이패스하는 상태 머신일 수 있고, 따라서 프로세서(34)가 중요치않은 패킷들을 처리하는 작업을 줄일 수 있다. 패스-스루 로직 유닛은 통합된 트랜잭션 버스, 스플릿 트랜잭션 버스 및 PCI, SBUS, SCI, SerialExpress, ATM 또는 이더넷과 같은 네트워트와의 인터페이스와 관련하여 선택된 레벨의 패킷 조작을 행할 수 있다.
프로세서(34)는 다른 버스들 간의 프로토콜-변환 및 대역 폭-변환 모두를 허용하여 데이터 스트림의 임의의 일부에 대한 직접적인 억세스를 제한하지 않는다. 프로세서는 임의의 버스 인터페이스의 영향없이 데이터 스트림의 임의의 일부에 대해 복잡한 데이터 조작을 수행할 수 있다. 따라서, 프로세서는 하부 네트워크 프로토콜 층을 효과적으로 흡수하여 호스트 프로세서의 처리 부하를 감소시킬 수 있다. 프로세서에 의한 패킷 처리의 장애로는 지능 데이터 버스 인터페이스의 레이턴시가 부가되는 것이다. 그러나, 이 레이턴시는 동일한 임무를 수행하는 호스트 CPU에 의해 부과된 임의의 레이턴시보다 훨씬 작다.
간단하게, 도 2에 도시된 지능 데이터 버스 인터페이스(30)는 트리플-포트 메모리(12)를 사용한다. 그러나, 본 발명은 트리플-포트 메모리에 한정되지 않는다. 예를 들면, 도 3에 도시된 바와 같이, 쿼드 포트 메모리(32')는 하드웨어 암호/암호 해제 엔진과 같이, 메모리의 제4 포트(32)에 접속된 부수적인 프로세서(34')를 지원하는데 사용될 수 있다. 이 부수적인 프로세서는 내부 버스(40')에 필요한 대역 폭을 낮출 수 있다.
멀티-포트 메모리(70)를 사용하는 지능 버스 인터페이스의 다른 실시예는 도 4에 도시된 SCI-PCI 브릿지(60)에 존재할 수 있다. 브릿지는 종종 단일-트랜잭션 버스라 하는 PCI 버스(62), 및 공통적으로 분리-트랜잭션 네트워크라 하는 SCI 버스(64)를 인터페이스한다. SCI-인터페이스(66)에서 수신된 SCI 패킷은 판독-어헤드 캐시 라인일 수 있으므로, 트리플 포트 메모리(70)의 탄성 버퍼 내부에 저장될 필요가 있을 수 있다. 브릿지는 또한 트리플-포트 메모리(70) 및 PCI 버스(62) 사이에 결합된 PCI 인터페이스(68)를 포함한다. 두 개의 데이터 버스(62 및 64)는 비동기적으로, 즉 다른 데이터 비율로 동작할 수 있다.
상업용 멀티-포트 메모리를 사용하는 경우, 지능 멀티-포트 메모리 브릿지(60)는 상업용-오프-더-셸프(commercial-off-the-shelf: COTS) 칩을 사용하여 구현될 수 있으므로, 보다 비싼 주문형 집적 회로(ASIC) 설계를 피할 수 있다. 설계의 다양한 논리 부분은 또한 높은 체적 생산비를 감소시키기 위해 단일 ASIC로 조합될 수 있다. SCI-PCI 브릿지(60)는 칩 장치 보다는 보드-레벨 장치로서 도 4에 도시되어 있다. 내부 버스(72)는 판독 전용 프로세서(74)를 로컬 메모리(76), 메모리(ROM)과 같은 펌웨어(78), 및 트리플-포트 메모리(70)에 접속시킨다. 프로세서는 COTS 마이크로제어기이다. 프로세서는 개시, 구성 및 판독-수정, 기록 트랜잭션과 같은 특수 사이클을 위한 로컬 PCI 버스 인터페이스(68)로의 직접적인 억세스를 갖는다. 직접 PCI 억세스 경로는 또한 로컬 메모리(76)내의 반사 메모리 영역을 구현하는데 사용될 수 있다. 프로세서는 SCI 네트워크를 사용하여 모든 다른 맵핑된 원격 반사 메모리와 반사 메모리용 동기 프로토콜을 구현하는데 사용될 수 있다. 이 시나리오에서, 로컬 PCI 호스트는 반사 로컬 메모리(76)로부터 직접 판독될 수 있다.
SCI 인터페이스(66) 및 PCI 인터페이스(68) 모두는 이들이 데이터를 송신 및 수신하도록 하는 유사한 듀얼 기능을 구현할 수 있다. 버스 인터페이스(60)의 마스터 기능은 인터페이스를 통해 주어진 데이터 패킷을 전송하는 능력이다. SCI 인터페이스(66)인 경우, 트리플-포트 메모리(70)에 존재하는 데이터 패킷은 네트워크에 전송되는 반면, PCI 인터페이스(68)인 경우, 트리플-포트 메모리에 존재하는 데이터 패킷은 특정 PCI 어드레스로 기록되거나 이로부터 판독된다.
SCI 인터페이스(66)는 데이터를 수신하고 이를 가용한 탄성 버퍼에 저장한다. 기술 분야의 당업자가 쉽게 알 수 있듯이, 탄성 버퍼는 프리 버퍼 리스트 또는 가용 룩업 테이블을 이용하여 구현될 수 있다. 선택된 버퍼 자원 관리 방법은 본 발명에 중요하지 않다. 또한, 인입한 요청은, 프리 버퍼가 가용하지 않으면 차단된다. SCI 인터페이스는 또한 주어진 패킷이 프로세서(74) 또는 패스-스루 논리 유닛(80)에 의해 조작될 필요가 있는지를 결정하기 위해 데이터를 감시한다.
PCI 버스(62)가 단일 트랜잭션 버스이기 때문에, PCI 인터페이스(68)는 더 복잡하다. 기록 트랜잭션인 경우, 데이터는 가용 버퍼에 저장된다. PCI 데이터 버스트 크기가 64 또는 256바이트의 블록 크기를 초과하면, 다수의 기록 버스트는 생성될 것이다. 모든 기록 버퍼가 가득차면, PCI 인터페이스는 적어도 하나의 버퍼가 빈 공간이 될 때까지 검색을 송출한다. 생성된 각각의 PCI 데이터 버스트인 경우, PCI 인터페이스(68)는 메시지 큐와 같은 기존의 방법을 사용하여 프로세서(74)에게 현재의 요청을 알린다. 그 다음, 프로세서는 임의의 필요한 재포맷팅 및 어드레스 변환을 수행한다. 기록-패킷 처리를 성공적으로 완료한 후, 프로세서는 SCI 네트워크 인터페이스로의 전송을 위해 패킷을 스케쥴링한다.
PCI 판독 트랜잭션인 경우, 내부 어드레스 맵은, 특정 판독이 로컬 메모리의 일부인 반사 메모리 영역을 선택하는지, 또는 투명한 판독이 실행될 것인지를 정의한다. 로컬 반사 메모리(76)로의 억세스를 위하여, 로컬 버스(72)는 중재되고 적절한 판독 트랜잭션이 실행된다. 투명한 판독인 경우, 판독 어드레스는 판독-요청으로서 트리플-포트 메모리(70)로 기록되고 프로세서는 통지받는다. 프로세서는, 요청된 판독 데이터가 임의의 로컬 캐시에서 가용한지를 판정하기 위해 검사한다. 요청된 데이터가 캐시되지 않으면, 적절한 SCI 판독-요청은 발생된다. 주어진 속성이 판독-어헤드 캐싱을 허용하면, 64 또는 256 바이트 판독 트랜잭션은 요청된 워드를 커버하여 발생된다. 하나의 워드 대신에 64바이트를 판독하기 위한 오버헤드 비용은 작다.
이 아키텍쳐에서 구현되는 두 개의 캐시 층이 있을 수 있다. 제1 캐시 층은 트리플-포트 메모리(70)이다. 인접한 어드레스에 대한 부수적인 판독 트랜잭션은, 제1 SCI 판독이 완료된 직후에 받아들여진다. 제2 캐시 층은 로컬 메모리(76)에서 구현된다. 트리플-포트 메모리(70)로부터 판독-데이터 패킷을 제거하기 전에, 판독 트랜잭션이 완료된 후 프로세서(74)는 제2 캐시로서 기능하는 로컬 메모리(76)의 보유 영역에 복사한다. 이 캐시 라인에 대한 부수적인 판독 트랜잭션인 경우, 국부적으로 캐시된 데이터는 원격 모드로부터 수신되는 것처럼 역으로 복사되지만, 레이턴시는 작을 수 있다. 트리플-포트 메모리(70) 및 로컬 메모리(76) 간의 복사 트랜잭션은, 기술 분야에 공지되어 있듯이 데이터 워드당 단 하나의 클럭 사이클을 요구하여 플라이-바이(fly-by) 트랜잭션으로 실행된다. 트리플-포트 메모리(70)내의 각 유효 판독-데이터 버퍼는, PCI 판독 인터페이스(68)가 프로세서 개입없이 캐시의 가용성 및 위치를 결정하도록 하는 캐시 태그 엔트리에 의해 적응된다.
반사 메모리 영역에의 기록 트랜잭션은 SCI 어드레스 도메인에 기록하는 것과 유사하게 처리된다. 프로세서(74)는 모든 다른 링크된 반사 메모리 세그먼트를 갱신하여 기록 데이터를 반사 메모리에 복사하고 적절한 SCI 기록 트랜잭션을 발생시킨다. 반사 메모리 서브-어드레스에의 인입 SCI 기록은 적절한 반사 메모리 영역에 복사된다.
프로세서(74)는, 쓸데없는 데이터 패킷을 처리하지 않기 위해 패스-스루 논리 유닛(80)에 특정 데이터 패킷형을 보내는 SCI 인터페이스(66)를 구성할 수 있다. 예를 들면, 배달된 기록 응답 성공 메시지는 트리플-포트 메모리(70)내에 적절한 버퍼 자원만을 비우고 프로세서에 의한 처리를 필요로 하지 않는다. 패스-스루 논리 유닛의 다른 특징은 스트림 블록 데이터를 처리하는 능력이다. 비동기 비디오 데이터와 같이, 재포맷팅을 필요로 하지 않는 데이터의 긴 DMA 버스트인 경우, 기본 DMA 버퍼형(전형적으로 64 또는 256 바이트 블록)은 PCI 인터페이스(68)에 직접 전달될 수 있다. 패스-스루 논리 유닛(80)은 적절한 PCI 버스트를 트리거하여 PCI 인터페이스(68)의 적절한 키 어드레스에 기록한다. 프로세서(74)는, 어떤 패킷이 패스-스루 논리 유닛(80)에 의해 전달되는가를 제어한다. 전달 선택은 패킷형, 소스 어드레스 및 SCI 서브-어드레스에 의존할 수 있다. 다수의 동시 데이터 스트림일 수 있으며, 일부는 프로세서를 바이패스하는 반면, 나머지는 프로세서에 의해 처리된다.
SCI 서브-어드레스의 관련 부분은 SCI 슬래이브 인터페이스(66)에 의해 스눕되고 PCI 마스터 인터페이스(68)로 전달된다. 적당하게 포맷된 어드레스 변환 테이블이 트리플-포트 메모리에 저장되어 있으면, PCI 마스터 인터페이스(68)는 플라이 시 SCI-PCI 어드레스 트랜스레이션을 수행할 수 있다.
SCI-PCI 플라이-바이 어드레스 변환 방법이 도 5-7에 도시되어 있다. 이 방법은 PCI-SCI 어드레스 변환을 수행하도록 적응될 수 있다. SCI 요청 어드레스(100)의 관련된 상부 비트는 도 4의 SCI 인터페이스(66)에 의해 스눕되는 반면, 어드레스는 가용 버퍼 슬롯(102)내의 한정된, 스태틱 서브-어드레스에 기록된다. SCI 소스 ID는 다른 SCI 호스트에 대한 다른 어드레스 맵 또는 특권을 정의하는데 사용될 수 있다. 도 5에 도시된 모든 어드레스 비트가 사용될 필요는 없다. 트리플-포트 메모리(70)의 PCI 포트는 어드레스 도메인 A 및 B로서 도 5에 도시된 독립 어드레스 버스를 갖는 두 개의 데이터 워드로서 구현될 수 있다. 어드레스 도메인 A는 전형적으로 4Kbytes인, 호스트 시스템의 페이지 크기와 동일하므로, 12 어드레싱 비트를 필요로 한다. PCI 인터페이스(68)에서의 어드레스 위상 동안 어드레스 도메인 A(104)는 통과되는 페이지 서브-어드레스를 이동시킨다. 도메인 A의 어드레스 비트는 수신 버퍼(102)의 기본 어드레스 플러스 어드레스 워드의 적절한 스태틱 버퍼 오프셋에 의해 정의된 트리플-포트 메모리(70)내의 위치로부터 판독된다. 어드레스 도메인 B(106)는 판독 전용 속성과 같이, 변환된 어드레스 플러스 억세스 옵션(108)을 이동시킨다. 부당한 억세스인 경우, 판독-전용 속성과 같이, 어드레스-전용 위상을 유발시켜 변환이 종료된다. 어드레스부(106)는 어드레스 변환 테이블 엔트리(110)로부터 판독된다. 이는 SCI 슬래이브 인터페이스(66)에 의해 스눕된 어드레스 변환 테이블 기본 어드레스 플러스 어드레스 변환 인덱스(112)에 의해 정의된다. 새로운 어드레스는 적절한 버퍼 어드레스 및 어드레스 변환 인덱스의 전달된 이전 지식을 사용하여 트리플-포트 메모리(70)의 다른 부분을 동시에 어드레싱함으로써 어셈블리된다. 멀티-포트 메모리 PCI 버스의 두 서브 워드는, 전형적인 멀티-포트 메모리가 포트당 8 또는 16 비트의 폭에서 가용한가를 고려함으로써 쉽게 구현된다. 따라서, 32비트 PCI 데이터 버스는 복수의 멀티-포트 메모리 칩으로부터 어셈블리될 수 있다. 따라서, 주어진 포트의 모든 어드레스 비트를 함께 버싱(bus)하지 않음으로써, 다수의 개별 어드레스가능한 데이터 서브-워드는 생성되며, 변환된 어드레스를 컴파일하는데 사용될 수 있다.
외부 LUT를 가지는 플라이-바이 어드레스 트랜슬레이션(fly-by address translation) 방법의 더 상세한 기술이 도 6에 나타나 있다. 64비트 SCI 어드레스(100)와 32비트 PCI 어드레스(114)는 4비트를 나타내는 각 빗금친 영역을 갖는 스케일로 끌어내어 진다. 물론, 다른 어드레스 비트 폭도 가능하고, 본 발명은 64비트 SCI 어드레스 또는 32비트 PCI 어드레스에 한정되지 않는다.
SCI 인터페이스(66)는 인커밍(incoming) SCI 리퀘스트를 다중 포트 메모리(70)의 그 적절한 슬롯(102)에 복사하는 동시에, 이 인커밍 리퀘스트의 어드레스 비트를 또한 스눕(snoop)한다. 본 예에서, SCI 어드레스 비트(48, 43-42, 21-16)는 16비트 SCI-PCI 룩업 테이블(look-up table)에 9비트 인덱스(112)를 형성하는데 사용된다. SCI-PCI 룩업 테이블 인덱스는 3개의 필드로부터 컴파일된다. 제 1인덱스 비트는 SCI 소스 ID의 최하위 비트이다. 이 비트는 그 액세스 특권 및 윈도우에 대해 2그룹의 SCI 리퀘스터 사이의 차이를 제공한다. 그 다음 2개의 인덱스 비트(SCI 어드레스 비트(43-42))는 크기가 4MB까지인 4개의 동시 윈도우까지를 허용하는데 사용된다. 최하위 6 인덱스 비트는 주어진 윈도우에서 64페이지까지를 규정한다. 본 실시예에서, 패스-스루-로직(pass-through-logic) 디바이스(80)가 PCI 인터페이스(68)의 리퀘스트를 수신하거나 전송하기 위해서 SCI 어드레스 비트(47-44)는 0이 될 필요가 있다는 것에 유의한다.
룩업 테이블로부터의 상위 2비트는 2비트 제어 필드(116)를 규정한다. 제어 필드(116)의 첫 번째 비트는 기입 보호 비트로서 사용되고, 두 번째 비트는 PCI 인터페이스(68)의 바이트 스왑 엔진(byte swap engine)을 제어하는데 사용된다. 이 형태는 페이지 엔디어니스(endianess) 변환에 의해 페이지들을 허락한다. 룩업 테이블로부터의 나머지 14비트는 PCI 마스터 어드레스의 비트의 16~29를 형성한다. 상위 2 PCI 어드레스 비트는 CSR 레지스터에 의해 규정되고, PCI 마스터 베이스 어드레스를 규정한다. 이것은 1GB PCI 어드레스 윈도우를 부여한다. SCI-PCI LUT는 어떤 메모리 크기도 될 수 있다. 만약 512어드레스 트랜슬레이션 엔트리가 충분하지 않으면, 더 큰 LUT 인덱스(113)를 허락하는 큰 메모리가 사용될 수 있다.
SCI 어드레스는 항상 트리플 포트 메모리(70)의 적절한 입력 버퍼의 특정 서브어드레스에 기입된다. 따라서, 그 데이터 출력이 이 어드레스 워드를 가동하도록 트리플 포트 메모리에 어드레스를 공급하는 것도 가능하다. 이 시나리오에서는, 메모리의 하위 16비트에 대응하는 출력 인에이블만이 가능하게 되는 동시에, 상위 16비트는 동시에 SCI-PCI LUT에 의해 공급된다. PCI 마스터 시퀀서(sequencer)는 LUT 인덱스(112)로부터 적절한 어드레스를 생성하고, 이것은 또한 패스-스루 로직 유닛(80)을 사용하여 LUT 인덱스(112)에 전송된다.
외부 룩업 테이블 메모리는 룩업 테이블용 트리플 메모리 부분을 리저브하므로써 트리플포트 메모리(70)에 흡수될 수 있다. 상기 시나리오로의 유일한 변경은 트리플 포트 메모리의 PCI 포트가 그 가장 중요하고 가장 중요하지 않은 16비트 포트의 독립적인 어드레싱을 허용해야 하는 것이다. 이 시나리오에서, PCI 로컬 메모리 포트는 한 개의 제어 버스를 제외하고 2개의 독립적인 어드레스를 가진다.
외부 LUT를 가지는 플라이-바이 어드레스 트랜슬레이션 방법과 태그 비교의 기술이 도 7에 도시되어 있다. 이 어드레스 트랜슬레이션 방법은 사용시의 오퍼레이팅 시스템의 페이지 크기에 의해 구동된다. 전형적인 페이지 사이즈는 4K바이트이다. 소형의 다중 포트 메모리(70)에서 소형의 페이지 크기와 한정된 수의 어드레스 트랜슬레이션 엔트리가 사용가능할 때, 다중 포트 메모리(70)에 저장된 엔트리는 어드레스 트랜슬레이션 캐시 엔트리로서 수행된다. 앞에서와 같이, SCI 어드레스의 선택된 비트는 스눕(snoop)되어 룩업 테이블 인덱스(112)를 구성하는데 사용된다. 그런데, 어드레스 트랜슬레이션 엔트리(ATE)(108)는 32비트 폭으로서, 그 일부는, 엔트리가 유효하게 되기 위해 적절한 SCI 대상 어드레스 비트(120)에 맞출 필요가 있는 ATE 캐시 태그(118)를 규정한다. 이 SCI 대상 어드레스 비트(120)는 SCI인터페이스(66)에 의해 스눕되고, 어드레스 트랜슬레이션 인덱스 필드(112)와 동일한 방식으로 PCI 인터페이스(68)에 전송될 수 있다. 이들은 또한 다중 포트 메모리(70)의 PCI 포트로부터 판독될 수 있다.
최종 PCI 어드레스는 그리고나서 인커밍 버퍼 슬롯 SCI 대상 어드레스 오프셋의 데이터 비트(0-11)와 적절한 매칭 어드레스 트랜슬레이션 엔트리의 비트(12-31)로부터 컴파일된다. 이것은 어드레스 태그가 비교되는 ATE를 다 읽은 다음의 사이클 동안에 행해진다. PCI 어드레스 위상 동안, 다중 포트 메모리(70)의 두 번째 8비트 포트(D8-15)는 사용할 수 없게 되고, PCI 인터페이스(68)는 이전에 판독/스눕된 어드레스 비트를 적절하게 구동한다.
PCI-SCI 어드레스 트랜슬레이션도 마찬가지로 행해진다는 것에 유의한다. 또한, 더 복잡한 실시예에서는, 1 데이터 포트가 다중 어드레스 버스를 가질 수도 있다. 이와 같은 이행은 상기한 방법을 확장한다.
상기 방법에 있어서 마이크로컨트롤러(74)나 PCI 로컬버스(62)에 의해 나타난 바와 같이 트리플 포트 메모리(70)의 메모리 맵은 이하의 표 1에 따라 수행될 수 있다.
TPM 메모리 배치
관련 어드레스 오프셋 컨텐트31 23 15 7
0000h...05FCh 384 SCI→PCI가 제어/어드레스 트랜슬레이션 테이블 엔트리(SCIPCILUT)에 액세스한다 384 SCI→PCI가 제어/어드레스 트랜슬레이션 테이블 엔트리(SCIPCILUT)에 액세스한다 CFG
0600h...06FCh 64 PCI가 데이터 버퍼 디스크립터를 판독한다
0700h...07FCh 16×16바이트가 버퍼 슬롯을 전송한다이 버퍼는 PCI 슬레이브 판독 시퀀서에 의해 유지된다이것은 PCI 다이렉트 판독 리퀘스트를 저장하는데 사용된다
0800h...0FFCh 16×128바이트가 버퍼 슬롯을 전송한다(각각은 80바이트 패킷 까지 홀드한다)이 버퍼는 PCI슬레이브 기입 시퀀서에 의해 유지된다이것은 PCI 다이렉트 기입 데이터를 저장하는데 사용된다
1000h...1FFCh 32×128바이트가 버퍼 슬롯을 전송한다(각각은 80바이트 패킷 까지 홀드한다)이 버퍼풀은 1960마이크로컨트롤러에 의해 유지된다DMA 리퀘스트, SCI 응답 패킷 및 다른 패킷이 여기로부터 전 송된다
2000h...3FFCh 64×128바이트가 버퍼 슬롯을 수신한다(각각은 80바이트 패킷 을 홀드한다)이 버퍼풀은 블링크 리시버에 의해 유지된다어떤 종류의 인커밍패킷도 여기에 저장된다.
현재 사용가능한 가장 간단한 다중포트 메모리는 2중포트 또는 쿼드포트 중 하나이다. 3개의 2중포트 메모리를 사용하여 트리플포트 메모리를 수행하는 것도 가능하다. 그런데, 도 8에 도시된 바와 같이, 쿼드포트 메모리(130)를 사용하여 트리플포트 메모리를 구성하는데는 1메모리칩만이 요구된다. 쿼드포트 메모리는 4개의 8비트 데이터 버스를 가진다. 따라서, 32비트 버스를 형성하기 위해서는 4개의 칩이 결합될 필요가 있다. SCI 백엔드(backend) 버스 인터페이스는 일반적으로 64비트 폭이다. 64비트 버스를 구성하는데 8개의 8비트 다중포트 메모리를 사용하지 않기 위해서는, 64비트 버스를 형성하는데 2개의 데이터 포트가 결합될 수 있다. 합체된 64비트 버스의 최하위 어드레스 비트는 고정 레벨(최하 2포트 및 최고 3포트)로 묶여진다. 이 어드레스 비트는 IOP 인터페이스 엔디어니스 플레이버(endianess flavor)와 데이터 버스(B)의 조직에 의존하는 레벨로 묶여진다. 64비트 기입 처리가 행해지면, 쿼드포트 메모리는 2개의 동시 기입 리퀘스트를 동일한 타이밍으로 2개의 인접 메모리 위치의 2개의 포트에서 인식한다. 이것은 본 발명의 인터페이스가 어떻게 특별히 고안된 칩을 필요로 하지 않고도, 다양한 버스 폭을 수용할 수 있는지를 나타낸다. 다중 포트 메모리의 모든 포트는 각 포트에서 독립 클럭 도메인을 비동기로 허용하는 동작을 한다. 쿼드포트 메모리의 또다른 이용은 제 4포트를 부가 네트워크 포트로서 사용하거나 1개의 프로세서(74)가 불충분하게 되면 제 2프로세서(74')를 부가하는 것이다.
쿼드 포트 메모리(130)를 사용하는 트리플 포트 메모리(70)의 구성이 도 9에 더 상세하게 도시되어 있다. 블링크 어드레스 버스는 최하위 어드레스 핀이 각각 GND 또는 VCC로 묶여지므로 11비트 폭이다(관련 버스의 엔디어니스에 의존하는 모든 칩에 대해 A2(0)<='0';A3(0)<='1' 또는 그 반대임). PCI 로컬 버스 칩(B1)은, 패스-스루 어드레스의 일부와 ATE 어드레스 비트 일부를 포함하는, 칩 드라이빙(D8-D15)과 비대칭이다. 출력 인에이블 신호와 아마도 어드레스 버스의 다른 분류는 명백하게 특정 플라이-바이 어드레스 트랜슬레이션 방식에 의존할 수 있다.
도 10은 본 발명에 따라 쿼드포트 메모리(162)에 의거한 정보처리 네트워크 루터(60)의 구조를 나타낸다. 선택된 예는 예를 들어, 155M비트 ATM 링크(164)와 2개의 독립 100M비트 이더넷 LAN 링크(166, 168)를 합한, LAN/WAN/ 파이어 월(firewall) 수단이다. 이것은 또한 패스-스루 로직 디바이스(170)를 사용하는 이더넷 브리지의 기능을 할 수도 있다. 상기 실시예에서와 같이, 프로세서(172)는 로컬 메모리(174)와 펌웨어ROM(176)에 의해 지원되고, 내부 버스(184)를 사용하여 구성과 제어를 위해 모든 네트워크 포트에 액세스한다. 모든 ATM 수송은 쿼드포트 메모리(162)를 통해 루트되고, 여기에서 모든 파이어월 기능성 및 LAN/WAN 프로토콜 변환이 프로세서(172)에 의해 행해진다. 도 10에 도시된 네트워크 인터페이스(178,180,182)는 가능한 데이터 버스 구성의 예이다. 그런데, 본 발명은 어떤 특정 프로토콜 또는 네트워크 규격에 제한되지 않는다.
위에서는 본 발명의 특정 실시예를 참조하였는데, 이들은 단지 예시일 뿐이고 그 범위가 부가 청구항에 규정된 본 발명의 원리를 벗어나지 않고 본 실시예의 변경이 가능함은 이 분야의 기술자에게 이해될 것이다.

Claims (29)

  1. 인터페이스 장치에 있어서,
    다수의 데이터 저장 셀을 가지고 상기 다수의 데이터 저장 셀에 동시에 비동기식으로 데이터를 기록하고 상기 다수의 데이터 저장 셀로부터 동시에 비동기식으로 데이터를 판독하도록 구성된 적어도 3개의 독립 양방향 데이터 포트를 갖는 멀티-포트 메모리;
    상기 양방향 데이터 포트의 제1 포트를 제1 양방향 데이터 버스에 결합하기 위한 제1 수단;
    상기 양방향 데이터 포트의 제2 포트를 제2 양방향 데이터 버스에 결합하기 위한 제2 수단; 및
    상기 양방향 데이터 포트의 제3 포트에 결합되어 상기 다수의 데이터 저장 셀내의 데이타를 동작시키는 프로세서
    를 포함하는 것을 특징으로 하는 인터페이스 장치.
  2. 제1항에 있어서,
    상기 제1 데이터 버스는 n 데이타 비트를 이용하며,
    상기 제2 데이터 버스는 m 데이터 비트 - m은 n보다 큼 -를 이용하며,
    상기 멀티-포트 메모리는 4개의 포트 중 하나가 상기 제1 데이터 버스로 구성되고, 4개의 포트 중 2개는 보다 넓은 m-비트 데이터 어드레스를 지원하기 위한 제2 데이터 버스로 구성되는 쿼드-포트 메모리(quad-port memory)를 이용하는 트리플-포트 메모리인 것을 특징으로 하는 인터페이스 장치.
  3. 제1항에 있어서,
    상기 제1 결합 수단은 상기 다수의 데이터 저장 셀에 비동기식으로 데이터를 기록하고 상기 다수의 데이터 저장 셀로부터 비동기식으로 데이터를 판독하도록 상기 제1 양방향 데이터 버스와 상기 제1 양방향 데이터 포트 사이에 결합된 제1 데이터 버스 인터페이스 유닛을 포함하며,
    상기 제2 결합 수단은 상기 다수의 데이터 저장 셀에 비동기식으로 데이터를 기록하고 상기 다수의 데이터 저장 셀로부터 비동기식으로 데이터를 판독하도록 상기 제2 양방향 데이터 버스와 상기 제2 양방향 데이터 포트 사이에 결합된 제2 데이터 버스 인터페이스 유닛을 포함하며,
    상기 프로세서는 상기 다수의 데이터 저장 셀 중 일부에 있는 제1 및 제2 데이터 버스 인터페이스 중 하나에 의해 사전에 기록된 데이터를 비동기식으로 동작시키고, 상기 제1 및 제2 버스 인터페이스는 각각 상기 다수의 데이터 저장 셀 중 다른 부분으로 데이터를 동기식으로 기록하고 상기 다수의 데이터 저장 셀 중 상기 다른 부분으로부터 데이터를 동기식으로 판독하는
    것을 특징으로 하는 인터페이스 장치.
  4. 제3항에 있어서, 상기 제1 데이터 버스와 제2 데이터 버스 사이에 데이터 브릿지를 제공하기 위하여 제1 버스 인터페이스 유닛과 제2 버스 인터페이스 유닛 사이에 결합된 패스-스루 로직 유닛(pass-through logic unit)을 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  5. 제4항에 있어서, 상기 데이터 브릿지는 스플릿 트랜잭션 프로토콜(split transaction protocol)과 유니파이드 트랜잭션 프로토콜(unified transaction protocol) 사이에서 프로토콜 변환을 수행하는 것을 특징으로 하는 인터페이스 장치.
  6. 제4항에 있어서,
    상기 제1 데이터 버스는 PCI 데이터 버스이고,
    상기 제1 데이터 버스 인터페이스는 PCI 인터페이스 유닛이고,
    상기 제2 데이터 버스는 SCI 데이터 버스이고,
    상기 제2 데이터 버스 인터페이스는 SCI 인터페이스 유닛이고,
    상기 패스-스루 로직 유닛은 SCI-PCI 데이터 버스 브릿지를 제공하기 위하여 SCI 데이터 버스 상의 데이터 어드레스를 PCI 데이터 버스 상의 데이터 어드레스로 변환
    하는 것을 특징으로 하는 인터페이스 장치.
  7. 제6항에 있어서, 상기 패스-스루 로직 유닛은 PCI-SCI 데이터 버스 브릿지를 제공하기 위하여 PCI 데이터 버스 상의 데이터 어드레스를 SCI 데이터 버스 상의 데이터 어드레스로 변환하는 것을 특징으로 하는 인터페이스 장치.
  8. 제4항에 있어서,
    SCI 데이터 버스는 64-비트 데이터 어드레스를 이용하고,
    PCI 데이터 버스는 32-비트 데이터 어드레스를 이용하며,
    멀티-포트 메모리는 4개의 포트 중 하나는 PCI 데이터 버스로 구성되고 4개의 포트 중 2개는 보다 넓은 64-비트 데이터 어드레스를 지원하기 위하여 SCI 데이터 버스로 구성되는 쿼드-포트 메모리를 이용하는 트리플-포트 메모리인
    것을 특징으로 하는 인터페이스 장치.
  9. 제8항에 있어서, 상기 패스-스루 로직 유닛은 SCI 버스 인터페이스 유닛과 PCI 버스 인터페이스 유닛 사이에서 플라이-바이 어드레스 트렌스레이션(fly-by address translation)을 수행하는 것을 특징으로 하는 인터페이스 장치.
  10. 제3항에 있어서,
    상기 데이터 버스는 호스트 PCI 데이터 버스이고,
    상기 제1 데이터 버스 인터페이스 유닛은 제1 DMA 인터페이스 유닛이며,
    상기 제2 데이터 버스는 슬레이브 PCI 데이터 버스이고,
    상기 제2 데이터 버스 인터페이스 유닛은 제2 DMA 인터페이스 유닛이며,
    상기 패스-스루 로직 유닛은 호스트 PCI 데이터 버스 상의 데이터 어드레스를 슬레이브 PCI 데이터 버스로 포워드시키고, 슬레이브 PCI 데이터 상의 데이터 어드레스를 호스트 PCI 데이터 버스로 포워드하여 PCI-PCI 브릿지 유닛을 제공하는
    것을 특징으로 하는 인터페이스 장치.
  11. 제3항에 있어서, 상기 프로세서는 상기 제1 데이터 버스 인터페이스 유닛과 제2 데이터 버스 인터페이스 유닛 사이의 블록 판독을 스케쥴링하여 체인 모드 DMA 데이터 전송을 수행하는 것을 특징으로 하는 인터페이스 장치.
  12. 제3항에 있어서, 상기 프로세서와 제1 및 제2 데이터 버스 인터페이스 유닛 사이에서 제어 및 구성 명령의 통신을 인에이블링 하기 위하여 상기 프로세서, 상기 제1 데이터 버스 인터페이스 유닛, 및 상기 제2 데이터 버스 인터페이스 유닛에 결합된 내부 버스를 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  13. 제1항에 있어서, 상기 양방향 데이터 포트의 제4 포트를 제3 양방향 데이터 버스에 결합하기 위한 제3 수단을 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  14. 제13항에 있어서,
    상기 제3 결합 수단은 상기 양방향 데이터 포트의 제4 포트에 결합된 제3 양방향 데이터 버스 인터페이스 유닛을 포함하며,
    상기 인터페이스 장치는 상기 제1 데이터 버스와 상기 제2 데이터 버스 사이에 로컬 네트워크 브릿지를 제공하기 위하여 상기 제1 버스 인터페이스 유닛과 상기 제2 버스 인터페이스 유닛 사이에 결합된 패스-스루 로직 유닛을 더 포함하는
    것을 특징으로 하는 인터페이스 장치.
  15. 제14항에 있어서,
    상기 제1 데이터 버스는 제1 이더넷(Ethernet) 데이터 버스이고,
    상기 제1 결합 수단은 제1 이더넷 인터페이스 유닛을 포함하며,
    상기 제2 데이터 버스는 제2 이더넷 데이터 버스이고,
    상기 제2 결합 수단은 제2 이더넷 인터페이스 유닛을 포함하며,
    상기 제3 결합 수단은 상기 제3 양방향 데이터 버스와 상기 제4 양방향 데이터 포트 사이에 결합된 ATM 인터페이스 유닛을 포함하며,
    상기 패스-스루 로직 유닛은 상기 제1 이더넷 데이터 버스와 상기 제2 이더넷 데이터 버스 사이에 데이터 브릿지를 제공하는
    것을 특징으로 하는 인터페이스 장치.
  16. 제1항에 있어서, 상기 프로세서는 상기 멀티-포트 메모리내에 저장된 데이터에 대해 암호화 및 복호화를 수행하기 위한 수단을 포함하는 것을 특징으로 하는 인터페이스 장치.
  17. 제1항에 있어서, 상기 다수의 데이터 저장 셀내의 데이터를 동작시키기 위하여 상기 양방향 데이터 포트 중 제4 포트에 결합된 제2 프로세서를 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  18. 제1항에 있어서, 상기 프로세서는 디지털 상태 머신인 것을 특징으로 하는 인터페이스 장치.
  19. 제1항에 있어서, 상기 프로세서는 반사형 메모리 프로토콜을 이행하기 위한 로컬 메모리를 포함하는 것을 특징으로 하는 인터페이스 장치.
  20. 제1항에 있어서, 상기 프로세서는 메모리 캐시를 이행하기 위한 로컬 메모리를 포함하는 것을 특징으로 하는 인터페이스 장치.
  21. 인터페이스 장치에 있어서,
    프로세서;
    제1 데이터 버스로부터 데이터를 수신하고 제1 데이터 버스로 데이터를 전송하기 위한 제1 버스 인터페이스;
    제2 데이터 버스로부터 데이터를 수신하고 제2 데이터 버스로 데이터를 전송하기 위한 제2 버스 인터페이스; 및
    다수의 저장 셀로 데이터를 저장하고 상기 저장 셀로부터 저장된 데이터를 판독하기 위한 제1, 제2, 및 제3 포트를 갖는 트리플 포트 메모리를 포함하되,
    상기 제1 포트는 상기 제1 버스 인터페이스에 결합되어 상기 제1 데이터 버스로부터 수신된 데이터는 상기 저장 셀로 저장되고, 상기 제1 버스 인터페이스에 의해 상기 저장 셀로부터 판독된 데이터는 상기 제1 데이터 버스로 전송되며,
    상기 제2 포트는 상기 제2 버스 인터페이스에 결합되어 상기 제2 데이터 버스로부터 수신된 데이터는 상기 저장 셀로 저장되고, 상기 제2 버스 인터페이스에 의해 상기 저장 셀로부터 판독된 데이터는 상기 제2 데이터 버스로 전송되며,
    상기 프로세서는 상기 저장 셀내의 데이터를 판독하고, 처리하고, 저장하기 위하여 상기 제3 포트에 결합되며,
    특정 포트를 통해 특정 저장 셀에 저장된 데이터는 상기 특정 포트와는 독립적으로 다른 포트에 의해 판독이 가능하며, 상기 특정 포트는 다른 저장 셀로부터 데이터를 판독하고 다른 저장 셀에 데이터를 저장하는
    것을 특징으로 하는 인터페이스 장치.
  22. 인터페이스 장치에 있어서,
    다수의 양방향 데이터 포트를 갖는 멀티-포트 메모리;
    각각의 인터페이스가 상기 멀티-포트 메모리내에 데이터를 저장하고 상기 멀티-포트 메모리로부터 데이터를 판독하기 위한 다수의 데이터 포트 중 하나에 접속된 다수의 버스 인터페이스; 및
    각각의 데이터 프로세서가 상기 멀티-포트 메모리의 서로 다른 부분으로부터 데이터를 판독하고, 상기 저장된 데이터를 처리하며, 상기 멀티-포트 메모리내에 처리된 데이터를 저장하기 위한 다수의 데이터 포트의 개별 데이터 포트에 접속된 다수의 데이터 프로세서
    를 포함하는 것을 특징으로 하는 인터페이스 장치.
  23. 제22항에 있어서, 상기 다수의 프로세서 각각은 상기 멀티-포트 메모리내에 저장된 데이터에 대한 암호화 및 복호화를 수행하기 위한 수단을 포함하는 것을 특징으로 하는 인터페이스 장치.
  24. 제22항에 있어서, 상기 다수의 데이터 프로세서와 상기 다수의 버스 인터페이스 사이에 제어 및 구성 명령을 통신하기 위하여 상기 다수의 버스 인터페이스와 상기 다수의 데이터 프로세서 사이에 접속된 내부 버스를 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  25. 제22항에 있어서, 상기 프로세서에 대해 독립적인 상기 멀티-포트 메모리를 이용하는 2개의 버스 인터페이스 사이에서 데이터를 전송하기 위한 패스-스루 로직 장치를 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  26. 제25항에 있어서, 상기 패스-스루 로직 장치는 상기 2개의 버스 인터페이스 사이에서 플라이-바이 어드레스 트랜스레이션(fly-by address translation)을 수행하는 것을 특징으로 하는 인터페이스 장치.
  27. 제22항에 있어서, 상기 멀티-포트 메모리는 쿼드-포트 메모리를 이용하는 상이한 포트 데이터 버스 폭을 갖는 트리플-포트 메모리를 수행하는 쿼드-포트 메모리인 것을 특징으로 하는 인터페이스 장치.
  28. 데이터를 인터페이스하는 방법에 있어서,
    다수의 데이터 저장 셀을 갖는 멀티-포트 메모리를 제공하는 단계;
    제1 데이터 버스로부터 제1 포트를 통해 수신된 데이터를 상기 다수의 저장 셀의 제1 부분에 저장하는 단계; 및
    제2 포트를 통해 상기 다수의 데이터 저장 셀의 상기 제1 부분을 처리하고, 상기 제1 데이터 버스로부터 상기 제1 포트를 통해 수신되는 데이터를 상기 다수의 저장 셀의 제2 부분으로 독립적이고 동시에 저장하는 단계
    를 포함하는 것을 특징으로 하는 데이터 인터페이스 방법.
  29. 제28항에 있어서,
    제3 데이터 포트를 통해 상기 다수의 데이터 저장 셀의 상기 제1 부분에 저장된 처리된 데이터를 판독하고, 상기 제2 포트를 통해 상기 다수의 데이터 저장 셀의 상기 제2 부분에 저장된 데이터를 독립적이고 동시에 처리하고, 상기 제1 데이터 버스로부터 상기 제1 포트를 통해 수신되는 데이터를 상기 다수의 저장 셀의 제3 부분에 독립적이고 동시에 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 데이터 인터페이스 방법.
KR1020007003099A 1997-09-23 1998-09-22 멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스 KR20010015608A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/935,921 1997-09-23
US08/935,921 US6067595A (en) 1997-09-23 1997-09-23 Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
PCT/US1998/020049 WO1999016200A2 (en) 1997-09-23 1998-09-22 Intelligent data bus interface using multi-port memory

Publications (1)

Publication Number Publication Date
KR20010015608A true KR20010015608A (ko) 2001-02-26

Family

ID=25467893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007003099A KR20010015608A (ko) 1997-09-23 1998-09-22 멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스

Country Status (9)

Country Link
US (1) US6067595A (ko)
EP (1) EP1047994B1 (ko)
JP (1) JP2001517844A (ko)
KR (1) KR20010015608A (ko)
CN (1) CN1154934C (ko)
AT (1) ATE392664T1 (ko)
AU (1) AU9665798A (ko)
DE (1) DE69839374T2 (ko)
WO (1) WO1999016200A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US6343086B1 (en) * 1996-09-09 2002-01-29 Natural Microsystems Corporation Global packet-switched computer network telephony server
JPH1185668A (ja) * 1997-09-11 1999-03-30 Mitsubishi Electric Corp バス制御装置
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6320859B1 (en) * 1997-10-31 2001-11-20 Nortel Networks Limited Early availability of forwarding control information
US6363076B1 (en) * 1998-01-27 2002-03-26 International Business Machines Corporation Phantom buffer for interfacing between buses of differing speeds
CA2228687A1 (en) * 1998-02-04 1999-08-04 Brett Howard Secured virtual private networks
US6473818B1 (en) * 1998-09-09 2002-10-29 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values
TW502172B (en) * 1998-10-26 2002-09-11 Winbond Electronics Corp Digital camera to printer conversion device with USB structure
US6272567B1 (en) * 1998-11-24 2001-08-07 Nexabit Networks, Inc. System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed
US6738821B1 (en) * 1999-01-26 2004-05-18 Adaptec, Inc. Ethernet storage protocol networks
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7107612B1 (en) * 1999-04-01 2006-09-12 Juniper Networks, Inc. Method, apparatus and computer program product for a network firewall
JP2000315186A (ja) * 1999-05-06 2000-11-14 Hitachi Ltd 半導体装置
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6282144B1 (en) * 2000-03-13 2001-08-28 International Business Machines Corporation Multi-ported memory with asynchronous and synchronous protocol
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
AU2001289045A1 (en) * 2000-09-08 2002-03-22 Avaz Networks Hardware function generator support in a dsp
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
DE10050980A1 (de) * 2000-10-13 2002-05-02 Systemonic Ag Speicherkonfiguration mit I/O-Unterstützung
US7328232B1 (en) 2000-10-18 2008-02-05 Beptech Inc. Distributed multiprocessing system
US6704831B1 (en) * 2000-11-16 2004-03-09 Sun Microsystems, Inc. Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
DE60132817T2 (de) * 2001-01-31 2009-02-05 Hitachi, Ltd. Datenverarbeitungssystem und datenprozessor
US6961475B2 (en) * 2001-03-30 2005-11-01 Ricoh Co., Ltd. Context model access to memory based on run and skip counts and context model skipping
KR100412130B1 (ko) * 2001-05-25 2003-12-31 주식회사 하이닉스반도체 램버스 디램의 출력전류 제어회로
US7047328B1 (en) * 2001-07-13 2006-05-16 Legerity, Inc. Method and apparatus for accessing memories having a time-variant response over a PCI bus by using two-stage DMA transfers
EP1417820B1 (de) * 2001-08-07 2017-02-08 PHOENIX CONTACT Cyber Security AG Verfahren und computersystem zur sicherung der kommunikation in netzwerken
US7013464B2 (en) * 2001-10-17 2006-03-14 Beptech, Inc. Method of communicating across an operating system
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US6829660B2 (en) * 2001-12-12 2004-12-07 Emulex Design & Manufacturing Corporation Supercharge message exchanger
US7389315B1 (en) * 2002-02-28 2008-06-17 Network Appliance, Inc. System and method for byte swapping file access data structures
US7146454B1 (en) * 2002-04-16 2006-12-05 Cypress Semiconductor Corporation Hiding refresh in 1T-SRAM architecture
GB0221464D0 (en) * 2002-09-16 2002-10-23 Cambridge Internetworking Ltd Network interface and protocol
US7260112B2 (en) * 2002-12-24 2007-08-21 Applied Micro Circuits Corporation Method and apparatus for terminating and bridging network protocols
US7103697B2 (en) * 2003-01-08 2006-09-05 Emulex Design & Manufacturing Corporation Flow-through register
US7100002B2 (en) * 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7949782B2 (en) * 2003-11-06 2011-05-24 Qualcomm Incorporated Extended link monitoring channel for 10 Gb/s Ethernet
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
JP2005332145A (ja) * 2004-05-19 2005-12-02 Nec Electronics Corp データ転送制御回路及びデータ転送方法
US20060083102A1 (en) * 2004-10-20 2006-04-20 Seagate Technology Llc Failover control of dual controllers in a redundant data storage system
US7373447B2 (en) * 2004-11-09 2008-05-13 Toshiba America Electronic Components, Inc. Multi-port processor architecture with bidirectional interfaces between busses
CA2593247A1 (en) * 2005-01-10 2006-11-16 Quartics, Inc. Integrated architecture for the unified processing of visual media
JP4776947B2 (ja) * 2005-03-10 2011-09-21 キヤノン株式会社 データ処理装置
JP4667108B2 (ja) * 2005-04-11 2011-04-06 パナソニック株式会社 データ処理装置
US7725609B2 (en) 2005-08-05 2010-05-25 Qimonda Ag System memory device having a dual port
DE102006045248A1 (de) * 2005-09-29 2007-04-19 Hynix Semiconductor Inc., Ichon Multiport-Speichervorrichtung mit serieller Eingabe-/Ausgabeschnittstelle
KR100684553B1 (ko) * 2006-01-12 2007-02-22 엠텍비젼 주식회사 듀얼 포트 메모리와 결합되는 마이크로 프로세서
US7600081B2 (en) * 2006-01-18 2009-10-06 Marvell World Trade Ltd. Processor architecture having multi-ported memory
US7844756B2 (en) * 2007-01-22 2010-11-30 International Business Machines Corporation Selection of data mover for data transfer
US7557607B1 (en) 2007-05-14 2009-07-07 Xilinx, Inc. Interface device reset
US7626418B1 (en) 2007-05-14 2009-12-01 Xilinx, Inc. Configurable interface
US7573295B1 (en) 2007-05-14 2009-08-11 Xilinx, Inc. Hard macro-to-user logic interface
US7535254B1 (en) 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
US7702840B1 (en) 2007-05-14 2010-04-20 Xilinx, Inc. Interface device lane configuration
US10210750B2 (en) 2011-09-13 2019-02-19 Lutron Electronics Co., Inc. System and method of extending the communication range in a visible light communication system
US8521035B2 (en) * 2008-09-05 2013-08-27 Ketra, Inc. Systems and methods for visible light communication
US8456092B2 (en) * 2008-09-05 2013-06-04 Ketra, Inc. Broad spectrum light source calibration systems and related methods
US20110063214A1 (en) * 2008-09-05 2011-03-17 Knapp David J Display and optical pointer systems and related methods
US8773336B2 (en) * 2008-09-05 2014-07-08 Ketra, Inc. Illumination devices and related systems and methods
US8471496B2 (en) * 2008-09-05 2013-06-25 Ketra, Inc. LED calibration systems and related methods
US9276766B2 (en) * 2008-09-05 2016-03-01 Ketra, Inc. Display calibration systems and related methods
US8674913B2 (en) 2008-09-05 2014-03-18 Ketra, Inc. LED transceiver front end circuitry and related methods
US8886047B2 (en) * 2008-09-05 2014-11-11 Ketra, Inc. Optical communication device, method and system
US9509525B2 (en) * 2008-09-05 2016-11-29 Ketra, Inc. Intelligent illumination device
US8179787B2 (en) * 2009-01-27 2012-05-15 Smsc Holding S.A.R.L. Fault tolerant network utilizing bi-directional point-to-point communications links between nodes
WO2010047713A1 (en) * 2008-10-24 2010-04-29 Hewlett-Packard Development Company, L.P. Direct-attached/network-attached storage device
US8316192B2 (en) * 2009-10-08 2012-11-20 Honeywell International Inc. Multiple-port memory systems and methods
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
WO2012039143A1 (ja) * 2010-09-21 2012-03-29 三菱電機株式会社 Dmaコントローラ及びデータ読出装置
USRE49454E1 (en) 2010-09-30 2023-03-07 Lutron Technology Company Llc Lighting control system
US9386668B2 (en) 2010-09-30 2016-07-05 Ketra, Inc. Lighting control system
US8749172B2 (en) 2011-07-08 2014-06-10 Ketra, Inc. Luminance control for illumination devices
JP5848570B2 (ja) * 2011-09-30 2016-01-27 ラピスセミコンダクタ株式会社 通信装置、受信制御方法及び送信制御方法
US9117037B2 (en) * 2011-11-21 2015-08-25 Acer Incorporated Interface apparatus, cascading system thereof and cascading method thereof
CN103376866B (zh) * 2012-04-19 2016-09-14 鸿富锦精密工业(深圳)有限公司 服务器系统
US10762011B2 (en) 2012-04-30 2020-09-01 Hewlett Packard Enterprise Development Lp Reflective memory bridge for external computing nodes
EP2845110B1 (en) * 2012-04-30 2018-10-24 Hewlett-Packard Enterprise Development LP Reflective memory bridge for external computing nodes
US9651632B1 (en) 2013-08-20 2017-05-16 Ketra, Inc. Illumination device and temperature calibration method
US9769899B2 (en) 2014-06-25 2017-09-19 Ketra, Inc. Illumination device and age compensation method
US9247605B1 (en) 2013-08-20 2016-01-26 Ketra, Inc. Interference-resistant compensation for illumination devices
US9332598B1 (en) 2013-08-20 2016-05-03 Ketra, Inc. Interference-resistant compensation for illumination devices having multiple emitter modules
USRE48955E1 (en) 2013-08-20 2022-03-01 Lutron Technology Company Llc Interference-resistant compensation for illumination devices having multiple emitter modules
US9360174B2 (en) 2013-12-05 2016-06-07 Ketra, Inc. Linear LED illumination device with improved color mixing
USRE48956E1 (en) 2013-08-20 2022-03-01 Lutron Technology Company Llc Interference-resistant compensation for illumination devices using multiple series of measurement intervals
US9155155B1 (en) 2013-08-20 2015-10-06 Ketra, Inc. Overlapping measurement sequences for interference-resistant compensation in light emitting diode devices
US9345097B1 (en) 2013-08-20 2016-05-17 Ketra, Inc. Interference-resistant compensation for illumination devices using multiple series of measurement intervals
US9237620B1 (en) 2013-08-20 2016-01-12 Ketra, Inc. Illumination device and temperature compensation method
US9578724B1 (en) 2013-08-20 2017-02-21 Ketra, Inc. Illumination device and method for avoiding flicker
US9736895B1 (en) 2013-10-03 2017-08-15 Ketra, Inc. Color mixing optics for LED illumination device
US9146028B2 (en) 2013-12-05 2015-09-29 Ketra, Inc. Linear LED illumination device with improved rotational hinge
US9736903B2 (en) 2014-06-25 2017-08-15 Ketra, Inc. Illumination device and method for calibrating and controlling an illumination device comprising a phosphor converted LED
US9557214B2 (en) 2014-06-25 2017-01-31 Ketra, Inc. Illumination device and method for calibrating an illumination device over changes in temperature, drive current, and time
US9392663B2 (en) 2014-06-25 2016-07-12 Ketra, Inc. Illumination device and method for controlling an illumination device over changes in drive current and temperature
US10161786B2 (en) 2014-06-25 2018-12-25 Lutron Ketra, Llc Emitter module for an LED illumination device
US9392660B2 (en) 2014-08-28 2016-07-12 Ketra, Inc. LED illumination device and calibration method for accurately characterizing the emission LEDs and photodetector(s) included within the LED illumination device
US9510416B2 (en) 2014-08-28 2016-11-29 Ketra, Inc. LED illumination device and method for accurately controlling the intensity and color point of the illumination device over time
CN104407992B (zh) * 2014-12-17 2017-04-05 中国人民解放军国防科学技术大学 一种基于双端口寄存器阵列的四端口存储器
US9485813B1 (en) 2015-01-26 2016-11-01 Ketra, Inc. Illumination device and method for avoiding an over-power or over-current condition in a power converter
US9237623B1 (en) 2015-01-26 2016-01-12 Ketra, Inc. Illumination device and method for determining a maximum lumens that can be safely produced by the illumination device to achieve a target chromaticity
US9237612B1 (en) 2015-01-26 2016-01-12 Ketra, Inc. Illumination device and method for determining a target lumens that can be safely produced by an illumination device at a present temperature
CN105159842B (zh) * 2015-08-31 2018-03-27 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
CN108780593A (zh) 2016-04-11 2018-11-09 创科(澳门离岸商业服务)有限公司 模块化车库开门器
JP6880402B2 (ja) * 2017-05-10 2021-06-02 富士通株式会社 メモリアクセス制御装置及びその制御方法
CN107678992B (zh) * 2017-11-08 2019-10-11 四川虹美智能科技有限公司 一种通信装置及一种通信系统
CN115065966B (zh) * 2017-11-30 2024-04-09 华为技术有限公司 终端和通信方法
US10983920B2 (en) * 2018-02-08 2021-04-20 Xilinx, Inc. Customizable multi queue DMA interface
US11272599B1 (en) 2018-06-22 2022-03-08 Lutron Technology Company Llc Calibration procedure for a light-emitting diode light source
CN111027284B (zh) * 2019-12-05 2023-08-25 集奥聚合(北京)人工智能科技有限公司 一种基于数据灵活接入标准化输出方法
US11218396B2 (en) * 2019-12-23 2022-01-04 Seagate Technology Llc Port-to-port network routing using a storage device
CN113504893B (zh) * 2021-07-23 2022-08-26 河南亿秒电子科技有限公司 一种智能芯片架构和高效处理数据的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
WO1983001135A1 (en) * 1981-09-18 1983-03-31 Rovsing As Christian Multiprocessor computer system
US4564782A (en) * 1983-09-02 1986-01-14 Murata Manufacturing Co., Ltd. Ceramic filter using multiple thin piezoelectric layers
JPH0760595B2 (ja) * 1988-01-12 1995-06-28 日本電気株式会社 半導体メモリ
US5214760A (en) * 1988-08-26 1993-05-25 Tektronix, Inc. Adaptable multiple port data buffer
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
US5130981A (en) * 1989-03-22 1992-07-14 Hewlett-Packard Company Three port random access memory in a network bridge
JPH04257048A (ja) * 1991-02-12 1992-09-11 Mitsubishi Electric Corp デュアルポートメモリ
US5442708A (en) * 1993-03-09 1995-08-15 Uunet Technologies, Inc. Computer network encryption/decryption device
GB2278698B (en) * 1993-05-05 1997-09-03 Hewlett Packard Co Multi-ported data storage device with improved cell stability
US5737569A (en) * 1993-06-30 1998-04-07 Intel Corporation Multiport high speed memory having contention arbitration capability without standby delay
US5440523A (en) * 1993-08-19 1995-08-08 Multimedia Communications, Inc. Multiple-port shared memory interface and associated method
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
JPH08212132A (ja) * 1995-02-07 1996-08-20 Mitsubishi Electric Corp 記憶装置
US5793996A (en) * 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
US5659518A (en) * 1995-05-22 1997-08-19 Micron Technology, Inc. Multi-port memory with multiple function access cycles and transfers with simultaneous random access
US5734847A (en) * 1995-06-15 1998-03-31 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5748921A (en) * 1995-12-11 1998-05-05 Advanced Micro Devices, Inc. Computer system including a plurality of multimedia devices each having a high-speed memory data channel for accessing system memory
US5799209A (en) * 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US5828623A (en) * 1996-02-23 1998-10-27 Integrated Device Technology, Inc. Parallel write logic for multi-port memory arrays

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치

Also Published As

Publication number Publication date
EP1047994A4 (en) 2002-07-24
CN1279785A (zh) 2001-01-10
CN1154934C (zh) 2004-06-23
EP1047994A2 (en) 2000-11-02
DE69839374T2 (de) 2009-06-25
JP2001517844A (ja) 2001-10-09
DE69839374D1 (de) 2008-05-29
WO1999016200A3 (en) 2000-07-27
US6067595A (en) 2000-05-23
WO1999016200A2 (en) 1999-04-01
EP1047994B1 (en) 2008-04-16
ATE392664T1 (de) 2008-05-15
AU9665798A (en) 1999-04-12

Similar Documents

Publication Publication Date Title
US6067595A (en) Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US6553446B1 (en) Modular input/output controller capable of routing packets over busses operating at different speeds
US8156270B2 (en) Dual port serial advanced technology attachment (SATA) disk drive
US8200870B2 (en) Switching serial advanced technology attachment (SATA) to a parallel interface
US7523235B2 (en) Serial Advanced Technology Attachment (SATA) switch
EP1896965B1 (en) Dma descriptor queue read and cache write pointer arrangement
US5915104A (en) High bandwidth PCI to packet switched router bridge having minimized memory latency
US6009488A (en) Computer having packet-based interconnect channel
US6611883B1 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
JP5537919B2 (ja) データ転送のためのシステムおよび方法
US6070200A (en) Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus
US6487628B1 (en) Peripheral component interface with multiple data channels and reduced latency over a system area network
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
US6263390B1 (en) Two-port memory to connect a microprocessor bus to multiple peripherals
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
EP0618537B1 (en) System and method for interleaving status information with data transfers in a communications adapter
US6754780B1 (en) Providing data in response to a read command that maintains cache line alignment
JP2000029826A (ja) 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ
US20040151175A1 (en) Transparent data format within host device supporting differing transaction types
US5666556A (en) Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit
JPS6246025B2 (ko)
US6799247B1 (en) Remote memory processor architecture

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee