KR20030076680A - 메모리로의 액세스 감소 방법 및 시스템 및 기록 매체 - Google Patents

메모리로의 액세스 감소 방법 및 시스템 및 기록 매체 Download PDF

Info

Publication number
KR20030076680A
KR20030076680A KR10-2003-7010706A KR20037010706A KR20030076680A KR 20030076680 A KR20030076680 A KR 20030076680A KR 20037010706 A KR20037010706 A KR 20037010706A KR 20030076680 A KR20030076680 A KR 20030076680A
Authority
KR
South Korea
Prior art keywords
control block
frame
fcb
buffer
field
Prior art date
Application number
KR10-2003-7010706A
Other languages
English (en)
Other versions
KR100554825B1 (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 KR20030076680A publication Critical patent/KR20030076680A/ko
Application granted granted Critical
Publication of KR100554825B1 publication Critical patent/KR100554825B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Image Generation (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)
  • Image Input (AREA)

Abstract

본 발명은 제어 블록 내에 자격자를 삽입함으로써 메모리 액세스를 감소시키는 방법 및 시스템에 관한 것이다. 일 실시예에서, 상기 시스템은 데이터 프레임을 프로세싱하는 프로세서를 포함한다. 상기 프로세서는 상기 데이터 프레임을 저장하는 다수의 버퍼━상기 각 데이터 프레임은 프레임 제어 블록과 연관됨━를 포함한다. 데이터 프레임과 연관된 프레임 제어 블록 각각은 하나 이상의 버퍼 제어 블록과 연관된다. 가령 프레임 제어 블록 및 버퍼 제어 블록과 같은 각 제어 블록은 현 제어 블록과 관계 없는 정보를 포함하는 하나 이상의 자격자 필드를 포함한다. 대신에, 자격자는 다른 제어 블록에 대한 정보를 포함한다. 큐 내의 최종 프레임 제어 블록 뿐만 아니라 이 프레임 제어 블록과 연관된 최종 버퍼 제어 블록은 어떤 정보도 가지지 않는 필드를 포함하며, 이로써 이들 필드 내의 정보를 액세스하는 메모리 액세스를 감소시킨다.

Description

메모리로의 액세스 감소 방법 및 시스템 및 컴퓨터 프로그램 제품{LINKING FRAME DATA BY INSERTING QUALIFIERS IN CONTROL BLOCKS}
패킷 스위칭 네트워크는 네트워크에 접속된 송신기 및 수신기 간에서 데이터 전송을 위한 스위칭 포인트 또는 스위칭 노드를 갖는다. 이러한 스위칭 포인트에 의해 수행되는 스위칭 동작은 스위칭 포인트 또는 노드에 의해서 수신된 데이터의 패킷 또는 프레임을 네트워크에서 다른 노드로 전송하는 동작이다. 이러한 스위칭 동작을 통해서 통신 데이터가 패킷 스위칭 네트워크에서 이동된다.
각 노드는 데이터 패킷 또는 프레임을 프로세싱하는 패킷 프로세서를 포함한다. 상기 패킷 프로세서는 데이터 프레임을 저장하는 다수의 버퍼와 함께 가령 QDR SRAM(Quadruple Data Rate Static Random Access Memory)와 같은 데이터 저장 유닛을 포함한다. 각 데이터 프레임은 관련 데이터 프레임을 기술하는 프레임 제어 블록(FCB: Frame Control Block)과 관련된다. 각 FCB는 하나 이상의 버퍼 제어 블록(BCB)과 연관되며, FCB와 관련된 상기 각 BCB는 상기 데이터 저장 유닛 내의 버퍼와 관련된다. 상기 BCB는 관련 버퍼를 기술한다. 통상적으로, FCB 및 BCB는 패킷 프로세서에서 가령 FCB 및 BCB 내의 정보 필드가 QDR SRAM와 같은 별도의 메모리에 의해 공급될 수 있는 다양한 정보 필드를 포함한다. 말하자면, FCB 및 BCB 내의 정보 필드는 패킷 프로세서에서 가령 QDR SRAM과 같은 별도의 메모리를 액세스함으로써 획득된다.
그러므로, FCB 및 BCB의 필드로 정보를 공급하는 가령 QDR SRAM과 같은 특정 메모리로의 액세스의 수를 감소시켜서 가령 QDR SRAM과 같은 메모리의 대역폭 효율을 개선하는 것이 바람직하다.
발명의 개요
본 발명을 통해서 현 제어 블록과 관계가 없는 정보를 포함하는 가령 프레임 제어 블록, 버퍼 제어 블록과 같은 제어 블록 내에 자격자(qualifier)가 삽입될 수 있다. 대신, 가령 프레임 제어 블록, 버퍼 제어 블록과 같은 제어 블록 내의 자격자는 다른 제어 블록과 관련되거나 다음 제어 블록과 연관된 버퍼와 관련된 정보를 포함한다. 패킷 프로세서 내의 큐 내의 최종 프레임 제어 블록 및 프레임 제어 블록과 연관된 최종 버퍼 제어 블록은 어떤 정보도 가지지 않는 필드를 포함하며, 이로써 상기 필드 내에 삽입될 정보를 액세스하기 위해서 가령 QDR SARM과 같은 메모리로의 액세스의 수를 감소시킨다.
본 발명의 한 측면에 따라, 본 발명은 데이터 프레임을 프로세싱하는 프로세서를 포함하는 시스템을 제공하며, 상기 프로세서는 상기 데이터 프레임을 저장하는 다수의 버퍼━상기 각 데이터 프레임은 프레임 제어 블록과 연관됨━와, 하나 이상의 프레임 제어 블록을 임시적으로 저장하는 다수의 큐━상기 하나 이상의 프레임 제어 블록 각각은 하나 이상의 자격자 필드(qualifier field)를 포함하며, 상기 하나 이상의 프레임 제어 블록 내의 상기 하나 이상의 자격자 필드는 상기 다수의 버퍼 내의 하나 이상의 버퍼에 대한 정보를 포함함━를 포함한다.
바람직하게는, 상기 하나 이상의 프레임 제어 블록 각각은 하나 이상의 버퍼 제어 블록과 연관되며, 상기 하나 이상의 버퍼 제어 블록 각각은 상기 다수의 버퍼 중 특정 버퍼와 연관된다. 보다 바람직하게는, 상기 다수의 큐 중 특정 큐 내의 최종 프레임 제어 블록을 제외한 모든 프레임 제어 블록 내의 하나 이상의 자격자 필드는 다음 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록의 바이트 카운트 길이에 대한 정보를 포함한다.
바람직한 실시예에서, 상기 하나 이상의 프레임 제어 블록 각각 내에 존재하는 상기 하나 이상의 자격자 필드는 상기 현 프레임 제어 블록과 연관된 버퍼 제어 블록의 어드레스에 대한 정보를 포함한다. 바람직하게는, 상기 하나 이상의 프레임 제어 블록 각각 내에 존재하는 상기 하나 이상의 자격자 필드는 상기 현 프레임 제어 블록과 연관된 상기 버퍼 제어 블록과 연관된 버퍼 내에 저장된 프레임 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함한다.
바람직하게는, 특정 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록 각각은 하나 이상의 자격자 필드를 포함하며, 상기 특정 프레임 제어 블록과연관된 상기 하나 이상의 버퍼 제어 블록 중 상기 최종 버퍼 제어 블록을 제외한 모든 버퍼 제어 블록 내의 상기 하나 이상의 자격자 필드는 다음 버퍼 제어 블록와 연관된 버퍼 내에 저장된 프레임 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함한다. 보다 바람직하게는, 상기 다수의 큐 각각은 제어 블록을 포함하며, 상기 다수의 큐 각각 내의 상기 제어 블록은 헤드 필드를 포함하며, 상기 헤드 필드는 상기 다수의 큐 중 하나의 큐 내의 제 1 프레임 제어 블록의 어드레스를 포함한다. 보다 바람직하게는, 상기 헤드 필드는 자격자를 더 포함하며, 상기 자격자는 상기 제 1 프레임 제어 블록과 연관된 상기 다수의 버퍼 제어 블록의 바이트 카운트 길이에 대한 정보를 포함하며, 상기 제어 블록은 테일 필드을 더 포함하고, 상기 테일 필드는 상기 큐 내의 최종 프레임 제어 블록의 어드레스를 포함한다. 바람직하게는, 상기 제어 블록은 카운트 필드를 더 포함하고, 상기 카운트 필드는 상기 큐 내의 프레임 제어 블록의 수를 포함한다.
본 발명의 다른 측면에 따라, 본 발명은 제어 블록 내에 자격자를 삽입함으로써 메모리 액세스를 감소시키는 방법을 제공하며, 상기 방법은 데이터 프레임을 수신하는 단계와, 하나 이상의 버퍼 제어 블록을 리스(lease)하는 단계와, 데이터 저장 유닛 내의 상기 하나 이상의 버퍼 제어 블록과 연관된 하나 이상의 버퍼 내에 상기 데이터 프레임을 저장하는 단계와, 상기 하나 이상의 버퍼 제어 블록과 연관된 프레임 제어 블록을 리스하는 단계를 포함하며, 상기 프레임 제어 블록은 하나 이상의 자격자 필드를 포함하고, 상기 프레임 제어 블록 내의 상기 하나 이상의 자격자 필드는 상기 데이터 저장 유닛 내의 상기 하나 이상의 버퍼 중 하나의 버퍼에대한 정보를 포함한다.
바람직하게는, 상기 방법은 큐 내에서 상기 프레임 제어 블록을 인큐잉하는(enqueue) 단계를 더 포함한다. 보다 바람직하게는, 상기 프레임 제어 블록 내의 하나 이상의 식별자 필드는 현 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록 중 하나의 버퍼 제어 블록의 어드레스에 대한 정보를 포함한다. 보다 바람직하게는, 상기 프레임 제어 블록 내의 하나 이상의 식별자 필드는 상기 데이터 프레임을 저장하는 상기 하나 이상의 버퍼 중 상기 하나의 버퍼 내에 저장된 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함한다.
바람직하게는, 상기 하나 이상의 버퍼 제어 블록 각각은 하나 이상의 자격자 필드를 포함하며, 상기 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록 중 최종 버퍼 제어 블록을 제외한 모든 버퍼 제어 블록 내의 상기 하나 이상의 자격자 필드는 다음 버퍼 제어 블록와 연관된 상기 하나 이상의 버퍼 중 하나의 버퍼 내에 저장된 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함한다. 보다 바람직하게는, 상기 큐는 제어 블록을 포함하며, 상기 큐 내의 상기 제어 블록은 헤드 필드를 포함하며, 상기 큐 내의 상기 헤드 필드는 상기 큐 내의 제 1 프레임 제어 블록의 어드레스를 포함한다.
바람직하게는, 상기 큐 내의 상기 헤드 필드는 자격자를 더 포함하며, 상기 자격자는 상기 제 1 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록의 바이트 카운트 길이에 대한 정보를 포함한다. 보다 바람직하게는, 상기 큐의 상기 제어 블록은 테일 필드을 더 포함하고, 상기 테일 필드는 상기 큐 내의 최종프레임 제어 블록의 어드레스를 포함하며, 상기 큐의 상기 제어 블록은 카운트 필드를 더 포함하고, 상기 카운트 필드는 상기 큐 내의 프레임 제어 블록의 수를 포함한다.
본 발명의 다른 측면에 따라, 본 발명은 컴퓨터 판독가능한 기록 매체 상에 저장되어 컴퓨터 시스템 상에 실행될 때 상기 컴퓨터 시스템으로 하여금 상술된 시스템을 구현하게 하는 컴퓨터 프로그램 제품을 제공한다.
본 발명은 이제 다음 도면을 참조하여 본 발명의 바람직한 실시예를 예시적으로 보다 상세하게 설명할 것이다.
본 발명은 네트워킹 통신 시스템 분야에 관한 것이며, 특히 메모리로의 액세의 수를 감소시키는 방법 및 시스템에 관한 것이다.
도 1은 본 발명에 따른 패킷 프로세서의 도면,
도 2는 본 발명에 따른 데이터 이동 유닛의 도면,
도 3은 제어 블록 내의 자격자와 프레임 데이터를 링크(link)함으로써 메모리 액세스를 감소시키는 방법의 도면,
도 4는 제어 블록 내의 자격자와 프레임 데이터를 링크(link)함으로써 메모리 액세스를 감소시키는 방법의 흐름도.
본 발명은 제어 블록 내에 자격자를 삽입함으로써 메모리 액세스를 감소시키는 방법 및 시스템을 제공한다. 일 실시예에서, 상기 시스템은 데이터 패킷 즉데이터 프레임을 프로세싱하는 패킷 프로세서를 포함한다. 상기 프로세서는 데이터 프레임을 저장하는 다수의 버퍼를 포함하며, 각 데이터 프레임은 프레임 제어 블록과 연관된다. 데이터 프레임과 연관된 각 프레임 제어 블록은 하나 이상의 버퍼 제어 블록과 연관된다. 상기 프레임 제어 블록과 연관된 각 버퍼 제어 블록은 상기 다수의 버퍼 중 특정 버퍼와 연관된다. 가령 프레임 제어 블록, 버퍼 제어 블록과 같은 각 제어 블록은 하나 이상의 자격자 필드를 포함한다. 상기 하나 이상의 자격자 필드는 현 제어 블록과 무관한 정보를 포함한다. 대신에, 가령 프레임 제어 블록과 버퍼 제어 블록과 같은 제어 블록 내의 자격자는 다른 제어 블록에 대한 정보를 포함한다. 다른 제어 블록에 대한 정보를 저장하는 자격자를 삽입함으로써, 패킷 프로세서 내의 큐 내의 최종 프레임 제어 블록과 프레임 제어 블록과 연관된 최종 버퍼 제어 블록은 정보를 가지지 않는 필드를 포함하며, 이로써 상기 필드 내에 삽입될 정보를 액세스하기 위해서 가령 QDR SRAM과 같은 메모리로의 액세스를 감소시킨다. 이로써, 가령 GDR SRAM과 같은 메모리의 대역폭 효율이 개선되고 상기 필드로의 정보 공급 효율도 개선된다.
도 1은 패킷 프로세서(100)를 도시한다. 패킷 프로세서(100)는 패킷 스위칭 네트워크의 특정 스위치(도시되지 않음) 또는 포트(도시되지 않음)로부터 데이터의 디지털 패킷 즉 데이터 프레임을 수신하고 상기 데이터의 디지털 패킷, 즉 데이터 프레임을 패킷 스위칭 네트워크 내의 가령 스위치/포트(120)와 같은 다른 스위치 또는 포트로 전달한다. 각 데이터 프레임은 프레임 제어 블록(FCB)과 연관되며, 상기 프레임 제어 블록은 관련 데이터 프레임을 기술한다. 데이터 프레임과 연관된 각 FCB는 하나 이상의 버퍼 제어 블록(BCB)과 연관되며, 각 FCB와 연관된 각 BCB는 데이터 저장 유닛(140) 내의 버퍼와 연관된다. BCB는 도 3 및 도 4에 개시된 바와 같이 다음의 체이닝된(chained) BCB와 연관된 버퍼를 기술한다. 일 실시예에서, 데이터 이동 유닛(110)은 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로부터 데이터 이동 유닛(110)에 의해 수신된 데이터 프레임을 임시적으로 저장하는 데이터 저장 유닛(140)에 접속된다. 데이터 이동 유닛(110)은 데이터 이동 유닛(110)에서 스위치/포트(120)로 전송될 데이터 프레임을 스케줄링하는 스케줄러(130)에 접속된다. 일 실시예에서, 스케줄러(130)는 집적 회로 즉 집적형 칩 상에 상주한다. 또한, 데이터 이동 유닛(110)은 데이터 이동 유닛(110)에 의해 수신된 데이터 프레임를 프로세싱하는 내장형 프로세서(150)에 접속된다.
도 2는 데이터 이동 유닛(110)을 보다 상세하게 도시한다. 데이터 이동 유닛(110)은 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로부터 수신된 데이터의 패킷, 즉 데이터 프레임을 수신하여 임시적으로 저장하는 수신기 제어기(203)를 포함한다. 데이터 이동 유닛(110)은 상기 데이터 프레임을 수정하여 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로 상기 수정된 데이터 프레임을 전송하는 송신기 제어기(201)를 더 포함한다. 데이터 이동 유닛(110)은 상기 내장형 프로세서(150)에 의해 프로세싱될 프레임을 교환하는 내장형 프로세서 인터페이스 제어기(202)를 더 포함한다.
데이터의 패킷, 즉 데이터 프레임은 포트/스위치 인터페이스 유닛(221)에 의해서 수신된다. 포트/스위치 인터페이스 유닛(221)은 대이터 이동 유닛(110)이 에그레스 모드(an egress mode)로 동작할 때 패킷 스위칭 네트워크 내의 스위치(도시되지 않음)로부터 데이터를 수신한다. 이와 달리, 포트/스위치 인터페이스 유닛(221)은 데이터 이동 유닛(110)이 인그레스 모드(an ingress mode)로 동작할 때 패킷 스위칭 네트워크로의 인터페이스로서 동작하는 포트(도시되지 않음)로부터 데이터를 수신한다. 데이터 이동 유닛(110)으로부터 수신된 데이터는 다수의 슬라이스(205AF)에 의해 표현되는 데이터 저장 유닛(140) 내에 저장되기 이전에 수신 준비 구역 메모리(220) 내에 임시적으로 저장된다. 슬라이스(205AF)는 각기 슬라이스들(205)로서 집합적으로 지칭되거나 슬라이스(205)로서 개별적으로 지칭된다. 도 2에서는 다수의 슬라이스(205)가 도시되어 있으며 본 발명에 따른 데이터 이동 유닛(110)의 실시예는 다른 사전결정된 수의 슬라이스(205)를 갖는다. 각 슬라이스는 다수의 버퍼를 포함한다. 각 슬라이스는 가령 DRAM(Dynamic Random Access Memory)와 같은 메모리의 슬라이스를 나타내며, 이로써 데이터 프레임은 상이한 슬라이스 내의 상이한 버퍼 내에 기록되어 메모리 대역폭을 최대화시킨다. 메모리 아비터(memory arbiter)(204)는 수신기 제어기(203), 송신기 제어기(201), 내장형 프로세서 인터페이스 제어기(202)로부터 가령 판독 및 기록과 같은 요청을 수집하며 이어서 특정 데이터 저장 메모리 슬라이스 즉 특정 슬라이스(205) 내의 특정 버퍼로의 액세스를 스케줄링한다. 가령, 수신기 제어기(203)는 메모리 아비터(204)에게 기록 요청을 발행하여 수신된 데이터를 특정 슬라이스(205) 내의 개별 버퍼 내로 기록한다.
상술한 바와 같이, 데이터 프레임은 데이터 저장 유닛(140), 즉 다수의 슬라이스(205) 내에 저장된다. 일 실시예에서, 데이터 프레임은 각 특정 프레임 내의 데이터가 버퍼들이 서로 체이닝(chaining)되게 함으로써 재구성되도록 하는 방식으로 하나 이상의 슬라이스(205) 내의 하나 이상의 버퍼 내에 저장될 수 있다. 말하자면, 특정 프레임 내의 데이터는 함께 체이닝된(chained) 하나 이상의 버퍼 내에 저장될 수 있으며 이로써 데이터는 상기 하나 이상의 버퍼 내에 기록된다. 이러한 하나 이상의 버퍼들의 체이닝 방법은 데이터 이동 유닛(110)에 접속된, 가령 QDR SRAM과 같은 메모리(229) 내의 버퍼 제어 블록 유닛(BCBU)(208)에 의해서 제어된다. 상기 BCBU(208)는 데이터가 버퍼 내부로 기록되도록 하기 위해서 서로 체이닝된 하나 이상의 버퍼들 각각의 어드레스를 포함한다. 동일한 프레임에 소속된 데이터를 포함하는 상이한 버퍼들은 BCBU(208) 내에 저장된 포인터에 의해서 서로 연결될 수 있다.
상술한 바와 같이, 각 데이터 프레임은 프레임 제어 블록(FCB)과 연관되며, 상기 FCB는 관련 데이터 프레임을 기술한다. 가령 QDR SRAM과 같은 메모리(210) 내의 프레임 제어 블록 유닛 1(FCBU1)(209)은 FCB의 필드 내에 채워질, 가령 프레임 제어 정보와 같은 정보를 저장한다. 말하자면, FCB 내의 정보 필드는 메모리(210) 즉 메모리(210)의 FCBU1(209)를 액세스함으로써 획득된다. 정보 필드는 저장하는 메모리(210)의 FCBU1(209)에 대한 추가적인 상세한 설명은 도 3를 참조하여 이루어질 것이다.
버퍼 내에 저장된 데이터 프레임은 내장형 프로세서(150)에 의해 프로세싱될각 프레임의 헤더를 전송함으로써 내장형 프로세서(150)에 의해 프로세싱될 수 있다. 상술한 바와 같이, 각 데이터 프레임은 FCB에 의해서 기술된다. 이들 FCB는 G 큐(GQ)(218) 내에 임시적으로 저장된다. 디스패처 로직(dispatcher logic)(217)은 GQ(218)로부터 다음 FCB을 디큐잉한다(dequeue). 일단 상기 디스패처 로직(217)이 다음 FCB를 디큐잉하면, 디스패처 로직(217)은 상기 디큐잉된 FCB와 관련된 데이터 저장 유닛(140) 내에 저장된 프레임의 시작부 즉 프레임의 헤더에서의 데이터 판독 요청을 메모리 아비터(204)에게 발행한다. 이어서, 상기 디스패처 로직(217)에 의해 판독된 데이터는 내장형 프로세서(150)에 의해서 프로세싱된다.
일단 데이터 프레임이 내장형 프로세서(150)에 의해서 프로세싱 완료되면, 상기 프로세싱된 데이터 프레임은 이 데이터 프레임을 하나 이상의 슬라이스(205) 내의 개별 버퍼 내부로 기록하라는 기록 요청을 메모리 아비터(204)에게 발행하는 내장형 프로세서 로직(216)에 의해서 데이터 저장 유닛(140) 즉 슬라이스(205) 내에 임시적으로 저장된다.
일단 데이터 프레임이 내장형 프로세서(150)에 의해서 프로세싱 완료되면, 내장형 프로세서 로직(216)은 상기 프로세싱된 데이터 프레임과 연관된 FCB를 스케줄러(130)에게 발행한다. 스케줄러(130)는 FCB를 저장하는 플로우 큐(223)를 포함한다. 스케줄러(130)는 FCBU1(209)와 유사하게 동작하는 가령 QDR SRAM과 같은 메모리(224) 내부의 프레임 제어 블록 유닛 2(FCBU2)(225)를 더 포함한다. 상기 FCBU2(225)는 FCB가 플로우 큐(223) 내에 임시적으로 상주할 때 FCB의 필드 내에채워질 정보를 저장한다. 정보 필드는 저장하는 스케줄러(130)의 메모리(224) 내의 FCBU2(225)에 대한 상세한 설명은 도 3을 참조하여 이루어질 것이다. 스케줄러(130)는 플로우 큐(223) 내에 저장된 FCB를 TBQ(215) 내에서 상기 수신된 FCB를 인큐잉하는(enqueue) 타겟 블레이드 큐(TBQ : Target Blade Queue) 인큐 로직(227)으로 전송한다.
TBQ(215) 내에서 큐잉된 FCB는 TBQ 스케줄러(228)에 의해서 TBQ(215)로부터 디큐잉되어 포트 제어 블록(PCB)(224)으로 로딩되도록 스케줄링된다. TBQ 스케줄러(228)는 TBQ(215)로부터 다음 FCB를 디큐잉하여 상기 FCB를 PCB(224) 내부로 인큐잉한다. 일단 다음 FCB가 PCB(224) 내부로 인큐잉되면, PCB(224)는 상기 디큐잉된 FCB와 관련된 데이터 저장 유닛(140)에 저장된 프레임의 시작부 즉 프레임의 헤더에서 데이터 판독 요청을 메모리 아비터(204)에게 발행한다. PCB(224)에 의해서 판독된 데이터는 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로 프로세싱된 데이터 프레임을 전송하기 이전에 데이터 준비 구역 메모리(214)에 임시적으로 저장된다. PCB(224)는 각 특정 판독 요청 시에 프로세싱된 데이터 프레임 내에 저장된 데이터 부분을 판독한다. 말하자면, 프로세싱된 프레임 내에 저장된 전체 데이터는 PCB(224)에 의해 제공된 다중 판독 요청 시에 판독된다. 일단 프로세싱된 프레임 내에 저장된 전체 데이터가 판독되면, 데이터 저장 유닛(140)은 추가 데이터 프레임을 저장한다.
전송기 제어기(201)는 데이터 준비 구역 메모리(214) 내에 임시적으로 저장된 프로세싱된 프레임을 수정하라는 명령을 수신하는 프레임 변경 준비 구역 메모리(213)를 더 포함한다. 상기 명령은 보통 프레임 수정 명령으로 지칭되며 이 명령은 내장형 프로세서(150)에 의해서 발행되어서 내장형 프로세서 로직(216)에 의해 특정 버퍼 내의 특정 뱅크 내에 저장된다. 내장형 프로세서(150)에 의해서 발행되어 내장형 프로세서 로직(216)에 의해 특정 버퍼 내의 특정 뱅크 내에 저장되는 상기 프레임 수정 명령에 대한 보다 상세한 설명은 미국 출원 일련 번호 09/792,557에서 개시된다. 일 실시예에서, PCB(224)는 특정 버퍼 내의 특정 뱅크 내에 저장된 프레임 수정 명령을 검색하여 이를 프레임 변경 준비 구역 메모리(213)에 저장한다. 프레임 변경(FA) 로직 유직(212)은 상기 프레임 변경 준비 구역 메모리(213) 내에 저장된 명령을 실행하여 상기 데이터 준비 구역 메모리(214) 내에 임시적으로 저장된 프로세싱된 프레임의 내용을 수정한다. 일단 FA 로직(212)이 상기 프로세싱된 프레임의 내용을 수정 완료하면, 수정된 프레임은 스위치/포트 인터페이스 유닛(211)을 통해서 전송된다. 상기 스위치/포트 인터페이스 유닛(211)은 데이터 이동 유닛(110)이 에그레스 모드(egress mode)로 동작할 때 패킷 스위칭 네트워크로의 인터페이스로서 동작하는 포트(도시되지 않음)로 데이터를 전송한다. 이와 달리, 상기 스위치/포트 인터페이스 유닛(211)은 데이터 이동 유닛(110)이 인그레스 모드(ingress mode)로 동작할 때 패킷 스위칭 네트워크 내의 스위치(도시되지 않음)로 데이터를 전송한다.
데이터 이동 유닛(110)은 송신기 제어기(201), 내장형 프로세서 인터페이스 제어기(202), 수신기 제어기(203)으로부터 BCBU(208)으로부터의 판독 또는 기록 요청을 상이한 BCB 간에서 중재하는 버퍼 제어 블록 아비터(207)를 포함한다. BCB아비터(207)는 가능한한 효율적으로 메모리 대역폭을 활용하기 위해서 상이한 액세스들을 스케줄링한다. 데이터 이동 유닛(110)은 송신기 제어기(201), 내장형 프로세서 인터페이스 제어기(202), 수신기 제어기(203)으로부터 FCBU1(209)로의 기록 및 판독 요청을 상이한 FCB 간에서 중재하는 프레임 제어 블록 아비터(206)를 더 포함한다.
상술한 바와 같이, 각 데이터 프레임은 FCB와 연관된다. 프로세싱된 프레임이 가령 DDR DRAM과 같은 데이터 저장 유닛(140)으로부터 판독되고 프로세싱된 프레임이 수정되어 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로 전송될 때, 상기 프로세싱된 프레임과 연관된 FCB는 상기 특정 데이터 프레임을 나타내는 것을 중지한다. 일단 FCB가 데이터 프레임과 더 이상 연관되지 않는다면, 상기 FCB는 FCB 아비터(206) 내의 FCB 프리 큐(222) 내에 저장된다. FCB 프리 큐(FCB free queue)(222)는 특정 데이터 프레임과 더 이상 연관이 없는 다수의 FCB를 포함한다. FCB 프리 큐(FCB free queue)(222)는 특정 데이터 프레임과 더 이상 연관이 없는 임수의 개수의 FCB를 포함한다. 일단 데이터 이동 유닛(110)이 데이터 패킷, 즉 데이터 프레임을 수신하면, 수신기 제어기(203)의 리어셈블리 제어 블록(RCB : Reassembly Control Block)(219)이 FCB 프리 큐로부터의 특정 FCB를 상기 수신된 데이터 프레임와 연관시키며, 여기서 새롭게 연관된 FCB는 RCB(219)에 의해서 GQ(218) 내에서 큐잉된다.
상술한 바와 같이, 각 데이터 프레임은 FCB와 관련된다. 데이터 프레임과 관련된 각 FCB는 하나 이상의 BCB와 관련되며, 상기 FCB와 연관된 각 BCB는 데이터저장 장치(140)의 특정 버퍼와 연관된다. 일단 데이터 저장 장치(140)의 버퍼 내에 저장된 프로세싱된 데이터 프레임이 전송기 제어기(201)에 의해 검색되고 이어서 수정되어 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)에 전송되면, 어떤 데이터 프레임도 더 이상 포함하지 않는 특정 버퍼와 연관된 BCB는 임의의 유효한 정보를 포함하지 않게 된다. 말하자면, 어떤 데이터 프레임도 더 이상 포함하지 않는 특정 버퍼와 연관된 BCB는 유용하지 않는 데이터를 포함하게 되는데, 이는 상기 BCB와 연관된 특정 버퍼가 더 이상 어떤 데이터 프레임도 포함하지 않기 때문이다. 일단 상기 BCB가 어떤 유효한 정보도 포함하지 않게 된다면, 즉 특정 버퍼 내의 데이터 프레임이 전송 완료되었다면, 상기 BCB는 BCB 아비터(206) 내부의 BCB 프리 큐(226)에 저장된다. BCB 프리 큐(226)는 어떤 유효한 정보도 포함하지 않는 다수의 BCB를 포함한다. 상기 BCB 프리 큐(226)는 어떤 유효한 정보도 포함하지 않는 BCB를 임의의 개수로 포함할 수 있다. 일단 수신기 제어기(203)가 데이터 프레임을 수신하면, 수신기 제어기(203)의 RCB(219)는 상기 BCB 프리 큐(226) 내의 BCB을 검색하고 이로써 RCB(219)는 BCB 프리 큐(226)로부터 검색된 BCB와 연관된 특정 버퍼 내에 상기 수신된 데이터 프레임을 기록할 수 있다.
상술한 바와 같이, FCB 및 BCB는 다양한 정보 필드는 포함하며, 상기 정보 필드는 각기 개별 메모리 즉 메모리(210)의 FCBU1(209)와 메모리(229) 즉 메모리(229)의 BCBU(208)에 의해 제공된다. 말하자면, FCB 내의 정보의 필드는 메모리(210) 즉 메모리(210)의 FCBU1(209)를 액세스함으로써 획득될 수 있다. BCB내의 정보의 필드는 메모리(229) 즉 메모리(229)의 BCBU(208)에 의해서 획득될 수 있다. 그러므로, 각기 FCB 및 BCB의 필드에 정보를 제공하는 가령 QDR SRAM과 같은 메모리(210,229)로의 액세스의 수를 감소시켜서 메모리(210,229)의 대역폭 효율을 개선하는 것이 바람직하다. 제어 블록의 필드 내에 자격자를 삽입함으로써 메모리(210,229)로의 액세스를 감소시키는 것을 설명하는 도면이 이하에 기술된다.
도 3은 본 발명의 원리에 따라서 메모리(210,229)로의 액세스를 감소시키기 위해서 가령 FCB,BCB와 같은 제어 블록 내에 식별자를 삽입하는 것을 도시하는 제어 블록의 예시적인 세트(300)를 설명한다. 상술한 바와 같이, FCB는 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐 중 하나의 큐가 되는 큐(305) 내에 임시적으로 상주한다. 상술한 큐 각각에서, 즉 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)에서 큐는 이 특정 큐 내에 현재 존재하는 FCB의 개수에 대한 정보를 포함하는 큐 제어 블록(QCB)(301)으로서 보통 지칭되는 제어 블록을 갖는다. BCB 프리 큐(226)도 또한 QCB(301)를 포함한다. QCB(301)는 상기 특정 큐 내에 현재 상주하는 FCB의 개수에 대한 정보 이외에 다른 정보를 포함한다.
도 3에서, QCB(301)는 헤드 필드(302), 테일 필드(303), 카운트 필드(304)를 포함한다. 헤드 필드(302)는 QCB(301)를 포함하는, 가령 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐 내에 위치하는 가령 FCB(310A)와 같은 제 1 FCB의 FCB 어드레스(FCBA)를 포함한다. (도 3의 예시적인 세트(300)에서, QCB(301)의 어떤 필드, FCB(310A), FCB(310B)에 접속된 표기부(X)는 특정 필드가 FCBX를 가르키고 있거나 BCBX의 바이트 카운트 길이를 포함함을 의미하는데 사용된다.) 헤드 필드(302)는 가령 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐 내에 위치하는 가령 FCB(310A)와 같은 제 1 FCB와 연관된 가령 BCB(320AC)와 같은 하나 이상의 BCB의 바이트 카운트(BCNT)를 더 포함한다. 헤드 필드(302) 내의 BCNT는 QCB(301)를 포함하는 큐(305) 내에 위치한 가령 FCB(310A)와 같은 제 1 FCB와 연관된 가령 BCB(320AC)와 같은 하나 이상의 BCB의 바이트 카운트 길이를 식별하기 때문에 자격자로서 지칭될 수 있다. 테일 필드(303)는 QCB(301)를 포함하는, 가령 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐(305) 내에 위치하는 가령 FCB(310B)와 같은 최종 FCB의 FCB 어드레스(FCBA)를 포함한다. 카운트 필드(304)는 QCB(301)을 포함하는 큐(305) 내의 FCB의 개수에 대한 정보를 포함한다. 도 3의 예시적인 세트(300)에서 QCB(301)를 포함하는 큐(305) 내에 가령 FCB(310AB)와 같은 두 개의 FCB가 존재하기 때문에, 카운트 필드(304)는 2를 포함한다. 본 기술 분야의 당업자가 잘 알다시피, 가령 FCB 프리 큐(222), GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐는 임의의 수의 FCB를 포함하며 이는 도 3에 도시된다. 또한, FCB (310AB)는 각기 다수의 FCB(310) 또는 단일 FCB(310)으로서 집합적으로 또는 개별적으로 지칭될 수 있다.
각 FCB(310)는 필드의 두 개의 엔트리 또는 열을 포함한다. 각 FCB(310)에서, 제 1 엔트리는 다음 FCB 어드레스(NFA)로의 포인터를 포함하는 필드를 포함한다. 제 1 엔트리는 다음 FCB(310)와 관련된 하나 이상의 BCB의 바이트카운트(BCTN) 길이를 포함하는 필드를 포함한다. 말하자면, 현 FCB(310)와 연관된 하나 이상의 BCB의 바이트 카운트(BCNT) 길이를 저장하는 FCB(310) 대신에, BCNT 필드가 다음 FCB(310)와 연관된 하나 이상의 BCB의 바이트 카운트 길이를 저장한다. 가령, FCB(310A)는 NFA 필드에서 가령 FCB(310B)와 같은 다음 FCB(310)의 FCB 어드레스를 포함할 뿐만 아니라 BCNT 필드에서는 가령 FCB(310B)와 같은 다음 FCB(310)와 연관된 가령 BCB(320DF)와 같은 하나 이상의 BCB의 바이트 카운트 길이를 포함한다. 상기 BCNT 필드는 FCB(310)의 체인 내의 다음 FCB(310)와 같은 NFA 필드 내에서 식별되는 FCB(310B)와 연관된 가령 BCB(320DF)와 같은 하나 이상의 BCB의 바이트 카운트 길이를 식별하기 때문에 자격자로서 지칭될 수 있다. FCB(310B)는 FCB(310B)를 따르는 FCB(310)이 존재하지 않을 때에 BCNT 필드 또는 NFA 필드 내에서 어떤 정보도 포함하지 않는다. (이는 도 3의 예시적인 세트(300)에서 비어 있는 괄호 "( )"으로서 표시된다.) FCB(310B)의 NFA 필드 및 BCNT 필드 내에 어떤 정보도 저장하지 않음으로써, 메모리(210)로의 액세스는 감소되며 이로써 메모리(210)의 대역폭 효율을 개선시킨다.
각 FCB(310)에서, 제 2 엔트리는 특정 FCB와 연관된 제 1 BCB의 제 1 BCB 어드레스(FBA) 필드, 상기 제 1 BCB와 연관된 버퍼 내에 저장된 프레임 데이터의 시작 바이트 위치(SBP) 필드, 상기 제 1 BCB와 연관된 버퍼 내에 저장된 프레임 데이터의 종결 바이트 위치(EBP) 필드를 포함한다. 각 FCB는 하나 이상의 BCB와 연관될 수 있다. 도 3에서, FCB(310A)는 BCB(320AC)와 연관된다. FCB(310B)는 BCB(320DF)와 연관된다. FCB는 본 기술의 당업자에게 인식될 수 있는 바와 같이도 3에서 도시된 바처럼 임의의 수의 BCB와 연관될 수 있다. 또한, BCB(320AF)는 각기 복수의 BCB(320) 또는 단일 BCB(320)으로서 집합적으로 또는 개별적으로 지칭될 수 있다. 각 BCB(320)는 데이터 저장 유닛(140) 내의 특정 버퍼와 연관될 수 있다. 가령, BCB(320A)는 버퍼(330A)와 연관된다. BCB(320B)는 버퍼(330B)와 연관된다. BCB(320C)는 버퍼(330C)와 연관된다. BCB(320D)는 버퍼(330D)와 연관된다. BCB(320E)는 버퍼(330E)와 연관된다. BCB(320F)는 버퍼(330F)와 연관된다. 버퍼(330A-F)는 각기 복수의 버퍼(330) 또는 단일 버퍼(330)으로서 집합적으로 또는 개별적으로 지칭될 수 있다. 패킷 프로세서(100)의 데이터 저장 유닛(140)은 임의의 수의 버퍼(330)를 포함하는 임의의 수의 슬라이스(205)를 포함한다. 임의의 수의 버퍼(330)가 존재하기 때문에, 이들 버퍼(330)와 관련된 BCB(320)도 임의의 수가 존재한다. 일 실시예에서, 각 BCB(320)는 데이터 저장 유닛(140) 내의 특정 버퍼(330)와 연관된다.
FCB(310A)에서, 제 2 엔트리 내의 FBA 필드는 FCB(310A)와 연관된 가령 BCB(320A)와 같은 제 1 BCB(320)의 어드레스를 포함한다. FCB(310A)는 가령 BCB(320A)와 같은 제 1 BCB(320)와 연관된 가령 버퍼(330A)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 시작 어드레스를 저장하는 SBP 필드를 포함한다. 또한, FCB(310A)는 가령 BCB(320A)와 같은 제 1 BCB(320)와 연관된 가령 버퍼(330A)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 종결 어드레스를 저장하는 EBP 필드를 포함한다. 상기 SBP 필드 및 EBP 필드는 가령 BCB(320A)와 같은 제 1 BCB(320)와 연관된 프레임 데이터의 시작 바이트 위치 및 종결 바이트 위치에 대한 정보를 포함하고 가령 FCB(310A)와 같은 현 FCB(310)에 대한 정보는 포함하지 않기 때문에 자격자로서 지칭될 수 있다. 이와 마찬가지로, FCB(310B)의 제 2 엔트리 내의 FBA 필드는 FCB(310B)와 연관된 가령 BCB(320D)와 같은 제 1 BCB(320)의 어드레스를 포함한다. FCB(310B)는 가령 BCB(320D)와 같은 제 1 BCB(320)와 연관된 가령 버퍼(330D)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 시작 어드레스를 저장하는 SBP 필드를 포함한다. 또한, FCB(310B)는 가령 BCB(320D)와 같은 제 1 BCB(320)와 연관된 가령 버퍼(330D)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 종결 어드레스를 저장하는 EBP 필드를 포함한다. 상기 SBP 필드 및 EBP 필드는 가령 BCB(320D)와 같은 제 1 BCB(320)와 연관된 프레임 데이터의 시작 바이트 위치 및 종결 바이트 위치에 대한 정보를 포함하고 가령 FCB(310B)와 같은 현 FCB(310)에 대한 정보는 포함하지 않기 때문에 자격자로서 지칭될 수 있다.
상술한 바와 같이, 각 FCB(310)는 하나 이상의 BCB(320)와 연관된다. 도 3에서, FCB(310A)는 BCB(320AC)와 연관되며 FCB(310B)는 BCB(320DF)와 연관된다. 각 BCB(320)는 FCB(310)의 제 2 엔트리 내의 3 개의 필드와 유사한 세 개의 필드를 포함한다. 각 BCB(320)는 다음 BCB 어드레스(NBA)로의 포인터 뿐만 아니라 다음 BCB와 연관된 버퍼(330)의 시작 및 종결 바이트 위치 필드인 SBP 필드와 EBP 필드를 포함한다. 상기 SBP 필드와 EBP 필드는 가령 BCB(320C)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330B)와 같은 버퍼(330)의 시작 바이트 위치 및 종결 바이트 위치를 저장하기 때문에 자격자로서 지칭될 수 있다. 말하자면, BCB(320B)와 같은 현 BCB(320)와 관련된 가령 버퍼(330B)와 같은 버퍼(330)의 시작 바이트 위치및 종결 바이트 위치를 저장하는 대신에(이로써, 메모리(229)로의 기록 액세스가 초과됨), BCB(320B)와 같은 다음 BCB(320)와 관련된 가령 버퍼(330B)와 같은 버퍼(330)의 시작 바이트 위치 및 종결 바이트 위치는 가령 BCB(320A)와 같은 이전의 BCB(320) 내에서 각기 SBP 필드 및 EBP 필드 내에 저장된다.
가령, BCB(320A)는 NBA 필드에서는 가령 BCB(320B)와 같은 다음 BCB(320)의 BCB 어드레스를 포함하고, SBP 필드에서는 가령 BCB(320B)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330B)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 시작 바이트 위치를 포함하고, EBP 필드에서는 가령 BCB(320B)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330B)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 종결 바이트 위치를 포함한다. BCB(320B)는 NBA 필드에서는 가령 BCB(320C)와 같은 다음 BCB(320)의 BCB 어드레스를 포함하고, SBP 필드에서는 가령 BCB(320C)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330C)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 시작 바이트 위치를 포함하고, EBP 필드에서는 가령 BCB(320C)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330C)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 종결 바이트 위치를 포함한다. 가령 FCB(310A)와 같은 FCB(310)와 연관된 가령 BCB(320C)와 같은 최종 BCB(320)에서는, 가령 BCB(320C)와 같은 최종 BCB(320)을 따르는 BCB가 더 이상 존재하지 않기 때문에 NBA 필드, SBP 필드, EBP 필드에는 어떤 정보도 존재하지 않는다. 가령 BCB(320C)와 같은 최종 BCB(320)의 NBA 필드, SBP 필드, EBP 필드 내에는 어떤 정보도 저장하지 않기 때문에, 가령 FCB(310A)와 같은 FCB(310)와 연관된 가령 BCB(320C)와 같은 최종 BCB(320)의 필드내에 기록될 어떤 정보도 존재하지 않으며, 이로써 메모리(229)의 대역폭 효율이 개선된다.
도 4는 가령 FCB(310), BCB(320)와 같은 제어 블록 내의 식별자와 프레임 데이터를 링크함으로써 메모리(210,229)로의 액세스를 감소시키는 방법(400)의 흐름도이다.
단계(401)에서, 데이터 프레임은 패킷 스위칭 네트워크에서 스위치(도시되지 않음) 또는 포트(도시되지 않음)로부터 수신되어 수신기 제어기(203)에 의해서 수신 준비 구역 메모리(220) 내에 임시적으로 저장된다.
단계(402)에서, 수신기 제어기(203)의 RCB(219)는 BCB 프리 큐(226)로부터 하나 이상의 BCB(320)를 리스(lease)한다(도 2 참조). BCB가 FCB의 라이프 싸이클 동안 BCB 프리 큐(226)로부터 임시적으로 제거될 때 BCB는 BCB 프리 큐(226)로부터 "리스(lease)"되었다고 지칭된다. FCB의 라이프 싸이클에 대한 세부적인 설명은 미국 특허 출원 번호 09/792,494에 개시된다. RCB(219)는 BCB 프리 큐(226)로부터 리스된 하나 이상의 BCB(320)와 연관된 하나 이상의 특정 버퍼(330) 내에 상기 수신된 데이터를 기록한다. 일 실시예에서, RCB(219)는 하나 이상의 기록 요청을 메모리 아비터(204)에 발행하여 BCB 프리 큐(226)로부터 리스된 하나 이상의 BCB와 연관된 하나 이상의 버퍼(330)로 상기 수신된 프레임 데이터를 기록한다.
상술한 바와 같이, 각 특정 버퍼(330)는 특정 BCB(320)와 연관된다. BCB(320)는 도 3에서 도시된 바와 같이 다음 BCB(320) 어드레스로의 포인터를 포함하는 다음 BCB 어드레스(NBA) 필드 뿐만 아니라 다음 BCB(320)와 연관된 버퍼(330)의 시작 바이트 위치 및 종결 바이트를 위치 필드인 SBP 필드와 EBP 필드를 포함한다. 상기 SBP 필드 및 EBP 필드는 다음 BCB(320)와 연관된 버퍼(330)의 시작 바이트 위치 및 종결 바이트 위치를 저장하기 때문에 자격자로서 지칭된다. 말하자면, 가령 BCB(320A)(도 3 참조)와 같은 현 BCB(320)와 연관된 가령 버퍼(330A)(도 3 참조)와 같은 버퍼(330)의 시작 바이트 위치 및 종결 바이트 위치를 저장하는 대신에(이로써, 메모리(229)로의 기록 액세스가 초과됨), 가령 320B(도 3 참조)와 같은 다음 BCB(320)와 연관된 가령 버퍼(330B)(도 3 참조)와 같은 버퍼(330)의 시작 바이트 위치 및 종결 바이트 위치는 가령 BCB(320A)(도 3 참조)와 같은 이전 BCB(320) 내의 SBP 필드 및 EBP 필드 내에 각기 저장된다.
각 리스 동작 동안, 즉 각 BCB(320)가 BCB 프리 큐(226)로부터 RCB(219)로부터 리스되는 동안, RCB(219)는 BCB 프리 큐(226)의 QCB(301)(도 3 참조) 내의 헤드 필드(302)를 판독한다. RCB(219)는 검색할 BCB 프리 큐(226) 내의 다음 BCB(320)의 어드레스를 포함하는, 가령 BCB(320A)와 같은 제 1 BCB(320)의 NBA 필드를 판독한다. 이어서, QCB(301)의 헤드 필드(302)는 RCB(219)에 의해서 갱신되며 이로써 헤드 필드(302) 내의 어드레스는 다음 리스 동작 동안 검색될 수 있는 다음 BCB(320)의 어드레스가 된다. 이어서, BCB 프리 큐(226)의 QCB(301)의 카운트 필드(304)는 BCB(320)가 BCB 프리 큐(226)로부터 검색됨을 표시하도록 감분된다. QCB(301)의 헤드 필드(302)는 데이터 프레임을 저장하는, 가령 버퍼(330AC)(도 3 참조와 같은 하나 이상의 버퍼(330)와 연관된, 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)의 바이트 카운트(BCNT)를 포함한다. 상기 헤드 필드(302)내의 BCNT는 QCB(301)를 포함하는 BCB 프리 큐(226)에 대한 정보를 저장하지 않고 데이터 프레임을 저장하는, 가령 버퍼(330AC)(도 3 참조)와 같은 하나 이상의 버퍼(330)와 연관된 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 버퍼(320)의 바이트 카운트 길이를 식별하기 때문에 자격자로서 지칭될 수 있다. QCB(301)는 가령 FCB 프리 큐(220)와 같은 큐 내에 위치한, 가령 FCB(310B)(도 2 참조)와 같은 최종 FCB의 어드레스를 포함하는 테일 필드(303)를 더 포함한다.
수신기 제어기(203)의 RCB(219)는 단계(403)에서 FCB(310)와 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)를 연관시킨다. RCB(219)는 FCB 프리 큐(222)(도 2 참조)로부터 FCB(310)를 리스하며, 이로써 데이터 프레임을저장하는, 버퍼(205AC)(도 3 참조)와 같은 하나 이상의 버퍼(205)와 연관된, 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)와 상기 리스된 FCB(310)를 연관시킨다. FCB는 FCB의 라이프 싸이클 동안 FCB 프리 큐(222)로부터 임시적으로 제거될 때에 FCB 프리 큐(222)로부터 "리스"되었다고 지칭된다. FCB(310)는 도 3에 도시된 바와 같이 필드의 두 개의 엔트리 또는 열을 포함한다. 제 1 엔트리는 다음 FCB 어드레스(NFA)로의 포인터를 포함하는 필드를 포함한다. 제 1 엔트리는 다음 FCB(310)와 연관된, 가령 BCB(320DF)(도 3 참조)와 같은 하나 이상의 BCB(320)의 바이트 카운트(BCNT) 길이를 포함하는 필드를 더 포함한다. 말하자면, 현 FCB(310)와 연관된 하나 이상의 BCB(320)의 바이트 카운트 길이(BCNT)를 저장하는 FCB(310) 대신에, BCNT 필드는 다음 FCB(310)와 연관된 하나 이상의 BCB(320)의 바이트 카운트 길이를 저장한다. 가령 FCB 프리 큐(222)(도 2 참조)와 같은 큐 내에 위치한 FCB(310B)(도 3 참조)와 같은 최종 FCB(310)는 NFA 필드 또는 BCNT 필드 내에서 어떤 정보도 포함하지 않는데, 그 이유는 가령 FCB 프리 큐(222)(도 2 참조)와 같은 큐 내에 위치한 FCB(310B)(도 3 참조)와 같은 최종 FCB(310) 다음의 FCB가 전혀 존재하지 않기 때문이다. 가령 FCB(310B)(도 3 참조)와 같은 최종 FCB(310)의 NFA 필드 및 BCNT 필드 내에 정보를 저장하지 않기 때문에, 메모리(210)로의 액세스는 감소되며 이로써 메모리(210) 대역폭 효율이 개선된다. 가령 FCB 프리 큐(222)(도 2 참조)와 같은 큐 내에 위치한 FCB(310B)(도 3 참조)와 같은 최종 FCB(310)는 FCB 프리 큐(222)의 QCB(301)(도 3 참조)의 테일 필드(303) 내에서 식별될 수 있다. 상술한 바와 같이, 테일 필드(303)는 가령 FCB 프리 큐(222)(도 2 참조)와 같은 큐 내에 위치한 FCB(310B)(도 3 참조)와 같은 최종 FCB(310)의 어드레스를 포함한다.
FCB(310)의 제 2 엔트리는 특정 FCB(310)와 연관된 가령 BCB(320A)(도 3 참조)와 같은 제 1 BCB(320)의 제 1 BCB 어드레스(FBA) 필드, 가령 BCB(320A)와 같은 상기 제 1 BCB(320)와 연관된 가령 버퍼(330A)(도 3 참조)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 시작 바이트 위치(SBP) 필드, 가령 BCB(320A)와 같은 상기 제 1 BCB(320)와 연관된 가령 버퍼(330A)(도 3 참조)와 같은 버퍼(330) 내에 저장된 프레임 데이터의 종결 바이트 위치(EBP) 필드를 포함한다. 상기 SBP 필드와 EBP 필드는 가령 FCB(310A)(도 3 참조)와 같은 현 FCB(310)에 대한 정보를 포함하지 않고 가령 BCB(320A)(도 3 참조)와 같은 제 1 BCB(320)와 연관된 프레임 데이터의 시작 바이트 위치 및 종결 바이트 위치에 대한 정보를 포함하기 때문에 자격자로서 지칭될 수 있다.
리스 동작 시에, RCB(219)는 FCB 프리 큐(222)의 QCB(301) 내의 헤드 필드(302)를 판독할 수 있다. 상기 헤드 필드(302)는 FCB 프리 큐(222)로부터 검색하기 위해서 가령 FCB(310A)(도 3 참조)와 같은 제 1 FCB(310)의 어드레스를 포함한다. RCB(219)는 검색할 FCB 프리 큐(222) 내의 다음 FCB(310)의 어드레스를 포함하는 가령 FCB(310A)와 같은 제 1 FCB(310)의 NFA 필드를 판독한다. QCB(301)의 헤드 필드(302)는 이어서 갱신되며 이로써 헤드 필드(302) 내의 어드레스는 다음 리스 동작 동안 검색될 수 있는 다음 FCB(310)의 어드레스가 된다. 이어서, FCB 프리 큐(222)의 QCB(301)의 카운트 필드(304)는 FCB(310)가 FCB 프리 큐(222)로부터 검색되고 GQ(218) 내에서 인큐잉되었음을 표시하도록 감분된다.
단계(404)에서, FCB(310)는 RCB(219)에 의해서 GQ(218) 내에서 인큐잉된다. 도 3에서 도시된 바와 같이, FCB(301)는 제 2 엔트리에서 FBA의 필드를 포함할 뿐만 아니라 자격자 SBP 및 EBP를 포함한다. 일단 FCB(310)가 GQ(218) 내에서 인큐잉되면, 상기 필드 내의 정보는 RCB(219)로부터 복사된다. RCB(219)는 이 RCB(219)에 의해서 GQ(218) 내에서 인큐잉된, 가령 FCB(310A)와 같은 FCB(310)와 연관된 가령 BCB(320A)와 같은 제 1 BCB(320)와 연관된, 가령 버퍼(330A)와 같은 제 1 버퍼(330) 내부로 수신된 프레임 데이터를 기록할 때에 상기 RCB(219)에 의해서 GQ(218) 내에서 인큐잉된, 가령 FCB(310A)와 같은 FCB(310)와 연관된 가령 BCB(320A)와 같은 제 1 BCB(320)와 연관된 가령 버퍼(330A)와 같은 제 1 버퍼(330) 내에 저장된 프레임 데이터의 시작 바이트 위치 및 종결 바이트 위치를 저장한다.또한, FCB(310)의 제 1 엔트리 내의 BCNT 필드는 RCB(219)로부터 복사된다.
이어서, GQ(218) 내에서 인큐잉된 FCB(310)가 단계(405)에서 GQ(218) 내의 다른 FCB(310)들과 함께 체이닝된다(chained). RCB(219)는 GQ(218) 내의 현 최종 FCB(310)의 어드레스를 검색하기 위해서 GQ(218)의 QCB(301) 내의 테일 필드를 판독한다. GQ(218)의 QCB(301) 내의 테일 필드(303)는 이어서 RCB(219)에 의해서 갱신되며 이로써 테일 필드(303) 내의 포인터는 GQ(218) 내에서 바로 인큐잉된 FCB(310)를 가르킨다. GQ(218)의 QCB(301) 내의 카운트 필드(304)는 FCB(310)가 FCB 프리 큐(222)로부터 검색되고 GQ(218) 내에서 인큐잉되었음을 표시하도록 RCB(219)에 의해서 증분된다.
단계(406)에서, FCB(310)는 GQ(218)로부터 디큐잉된다. 내장형 프로세서 인터페이스 제어기(202)의 디스패처 로직(217)은 디큐잉할 FCB(310)의 어드레스를 검색하기 위해서 GQ(218)의 QCB(301)의 헤드 필드를 판독한다. 디스패처 로직(217)은 디큐잉할 GQ(218) 내의 다음 FCB(310)의 어드레스를 결정하기 위해서 FCB(310) 내의 NFA 필드를 판독한다. 디스패처 로직(217)은 GQ(218) 내의 QCB(301)의 헤드 필드(302)를 갱신하며 이로써 헤드 필드(302) 내의 어드레스는 다음 디큐잉 동작 시에 디큐잉될 수 있는 다음 FCB(310)의 어드레스가 된다. GQ(218) 내의 QCB(301)의 카운트 필드(304)는 FCB(310)가 GQ(218)로부터 디큐잉되었음을 표시하도록 감분된다. 상기 디큐잉된 FCB(310)의 내용은 디스패처 로직(217)에 의해 판독되고 이어서 내장형 프로세서(150)로 전달된다.
단계(407)에서, 디큐잉된 FCB(310)는 TBQ(215) 내에서 인큐잉된다. 다른실시예에서, FCB(310)는 스케줄러(130)의 플로우 큐(223) 내에서 먼저 인큐잉되며 다음에 TBQ(215) 내에서 디큐잉되고 인큐잉된다. 스케줄러(130)의 플로우 큐(223) 내에서 FCB(310)의 디큐잉 및 인큐잉에 대한 세부 사항은 미국 특허 출원 번호 09/792,494에서 개시된다.
단계(408)에서, TBQ(215) 내에서 인큐잉된 FCB(310)는 TBQ 스케줄러(228)에 의해서 디큐잉되고 이어서 도 2에서 도시된 바와 같이 PCB(224)에 의해서 판독되기 위해서 PCB(224) 내부로 로딩된다. 특히, FCB(310)의 FBA 필드 내의 어드레스는 PCB(224) 내부로 로딩된다.
단계(409)에서, 패킷 스위칭 네트워크 내의 스위치(도시되지 않음) 또는 포트(도시되지 않음)로 스위치/포트 인터페이스 유닛(211)을 통해서 전송될 데이터 프레임은 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)와 연관된 하나 이상의 버퍼(330)로부터 상기 PCB(224)에 의해서 판독된다. 상기 PCB(224)는 PCB(224) 내부로 로딩되었던 제 1 BCB(320)의 어드레스, 즉 단계(408)에서 디큐잉된 FCB(310)의 FBA 필드 내에 포함된 어드레스를 검색한다. 가령 BCB(320B)(도 3 참조)와 같은 다음 BCB(320)의 어드레스는 가령 BCB(320A)(도 3 참조)와 같은 제 1 BCB(320)의 NBA 필드 내에 위치한다.
단계(410)에서, 프레임의 모든 데이터가 데이터 프레임을 저장했던 데이터 저장 유닛(140)의 하나 이상의 버퍼(330)로부터 PCB(224)에 의해서 판독될 때, 가령 버퍼(330AC)(도 3 참조)와 같은 하나 이상의 버퍼(330)과 연관된 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)은 BCB 프리 큐(226)에서 인큐잉된다. 일 실시예에서, 각 BCB(320)는 각 관련 버퍼(330) 내의 프레임 데이터가 PCB(224)에 의해서 판독될 때에 BCB 프리 큐(226)에서 한번에 하나씩 인큐잉될 수 있다.
단계(411)에서, 가령 버퍼(330AC)(도 3 참조)와 같은 하나 이상의 버퍼(330)과 연관된 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(320)가 BCB 프리 큐(226)에서 인큐잉되었을 때에, 가령 BCB(320AC)(도 3 참조)와 같은 하나 이상의 BCB(330)와 연관된 FCB(310)는 FCB 프리 큐(222)에서 인큐잉된다.

Claims (12)

  1. 데이터 프레임을 프로세싱하는 프로세서를 포함하는 시스템에 있어서,
    상기 프로세서는 상기 데이터 프레임을 저장하는 다수의 버퍼━상기 각 데이터 프레임은 프레임 제어 블록과 연관됨━와,
    하나 이상의 프레임 제어 블록을 임시적으로 저장하는 다수의 큐━상기 하나 이상의 프레임 제어 블록 각각은 하나 이상의 자격자 필드(qualifier field)를 포함하며, 상기 하나 이상의 프레임 제어 블록 내의 상기 하나 이상의 자격자 필드는 상기 다수의 버퍼 내의 하나 이상의 버퍼에 대한 정보를 포함함━를 포함하는
    시스템.
  2. 제 1 항에 있어서,
    상기 하나 이상의 프레임 제어 블록 각각은 하나 이상의 버퍼 제어 블록과 연관되며, 상기 하나 이상의 버퍼 제어 블록 각각은 상기 다수의 버퍼 중 특정 버퍼와 연관되는
    시스템.
  3. 제 2 항에 있어서,
    상기 다수의 큐 중 특정 큐 내의 최종 프레임 제어 블록을 제외한 모든 프레임 제어 블록 내의 하나 이상의 자격자 필드는 다음 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록의 바이트 카운트 길이에 대한 정보를 포함하는
    시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 하나 이상의 프레임 제어 블록 각각 내에 존재하는 상기 하나 이상의 자격자 필드는 상기 현 프레임 제어 블록과 연관된 버퍼 제어 블록의 어드레스에 대한 정보를 포함하는
    시스템.
  5. 제 4 항에 있어서,
    상기 하나 이상의 프레임 제어 블록 각각 내에 존재하는 상기 하나 이상의 자격자 필드는 상기 현 프레임 제어 블록과 연관된 상기 버퍼 제어 블록과 연관된 버퍼 내에 저장된 프레임 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함하는
    시스템.
  6. 제 2 항 내지 제 5 항 중 어느 한 항에 있어서,
    특정 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록 각각은 하나 이상의 자격자 필드를 포함하며, 상기 특정 프레임 제어 블록과 연관된 상기 하나 이상의 버퍼 제어 블록 중 상기 최종 버퍼 제어 블록을 제외한 모든 버퍼 제어 블록 내의 상기 하나 이상의 자격자 필드는 다음 버퍼 제어 블록와 연관된 버퍼 내에 저장된 프레임 데이터의 시작 바이트 위치와 종결 바이트 위치에 대한 정보를 포함하는
    시스템.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 다수의 큐 각각은 제어 블록을 포함하며, 상기 다수의 큐 각각 내의 상기 제어 블록은 헤드 필드를 포함하며, 상기 헤드 필드는 상기 다수의 큐 중 하나의 큐 내의 제 1 프레임 제어 블록의 어드레스를 포함하는
    시스템.
  8. 제 7 항에 있어서,
    상기 헤드 필드는 자격자를 더 포함하며, 상기 자격자는 상기 제 1 프레임제어 블록과 연관된 상기 다수의 버퍼 제어 블록의 바이트 카운트 길이에 대한 정보를 포함하는
    시스템.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 제어 블록은 테일 필드을 더 포함하고, 상기 테일 필드는 상기 큐 내의 최종 프레임 제어 블록의 어드레스를 포함하는
    시스템.
  10. 제 7 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 제어 블록은 카운트 필드를 더 포함하고, 상기 카운트 필드는 상기 큐 내의 프레임 제어 블록의 수를 포함하는 시스템.
  11. 제어 블록 내에 자격자를 삽입함으로써 메모리 액세스를 감소시키는 방법에 있어서,
    데이터 프레임을 수신하는 단계와,
    하나 이상의 버퍼 제어 블록을 리스(lease)하는 단계와,
    데이터 저장 유닛 내의 상기 하나 이상의 버퍼 제어 블록과 연관된 하나 이상의 버퍼 내에 상기 데이터 프레임을 저장하는 단계와,
    상기 하나 이상의 버퍼 제어 블록과 연관된 프레임 제어 블록을 리스하는 단계를 포함하며,
    상기 프레임 제어 블록은 하나 이상의 자격자 필드를 포함하고, 상기 프레임 제어 블록 내의 상기 하나 이상의 자격자 필드는 상기 데이터 저장 유닛 내의 상기 하나 이상의 버퍼 중 하나의 버퍼에 대한 정보를 포함하는
    메모리로의 액세스 감소 방법.
  12. 컴퓨터 판독가능한 기록 매체 상에 저장되어 컴퓨터 시스템 상에 실행될 때 상기 컴퓨터 시스템으로 하여금 제 1 항 내지 제 10 항 중 어느 한 항에 따른 시스템을 구현하게 하는 컴퓨터 프로그램 제품.
KR1020037010706A 2001-02-23 2002-02-20 메모리에 대한 액세스 감소 방법, 시스템 및 기록 매체 KR100554825B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/791,336 2001-02-23
US09/791,336 US7130916B2 (en) 2001-02-23 2001-02-23 Linking frame data by inserting qualifiers in control blocks
PCT/GB2002/000751 WO2002069601A2 (en) 2001-02-23 2002-02-20 Linking frame data by inserting qualifiers in control blocks

Publications (2)

Publication Number Publication Date
KR20030076680A true KR20030076680A (ko) 2003-09-26
KR100554825B1 KR100554825B1 (ko) 2006-02-22

Family

ID=25153396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037010706A KR100554825B1 (ko) 2001-02-23 2002-02-20 메모리에 대한 액세스 감소 방법, 시스템 및 기록 매체

Country Status (7)

Country Link
US (2) US7130916B2 (ko)
EP (1) EP1362465B1 (ko)
KR (1) KR100554825B1 (ko)
CN (1) CN100429906C (ko)
AT (1) ATE323999T1 (ko)
DE (1) DE60210748T2 (ko)
WO (1) WO2002069601A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130916B2 (en) * 2001-02-23 2006-10-31 International Business Machines Corporation Linking frame data by inserting qualifiers in control blocks
US7200696B2 (en) * 2001-04-06 2007-04-03 International Business Machines Corporation System method structure in network processor that indicates last data buffer of frame packet by last flag bit that is either in first or second position
US6937606B2 (en) * 2001-04-20 2005-08-30 International Business Machines Corporation Data structures for efficient processing of IP fragmentation and reassembly
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7522621B2 (en) * 2005-01-06 2009-04-21 International Business Machines Corporation Apparatus and method for efficiently modifying network data frames
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US8795926B2 (en) 2005-08-11 2014-08-05 Intelligent Energy Limited Pump assembly for a fuel cell system
US7980582B2 (en) * 2006-08-09 2011-07-19 Atc Leasing Company Llc Front tow extended saddle
US9034531B2 (en) * 2008-01-29 2015-05-19 Ardica Technologies, Inc. Controller for fuel cell operation
US8808410B2 (en) 2009-07-23 2014-08-19 Intelligent Energy Limited Hydrogen generator and product conditioning method
US8741004B2 (en) 2009-07-23 2014-06-03 Intelligent Energy Limited Cartridge for controlled production of hydrogen
US8940458B2 (en) 2010-10-20 2015-01-27 Intelligent Energy Limited Fuel supply for a fuel cell
US9169976B2 (en) 2011-11-21 2015-10-27 Ardica Technologies, Inc. Method of manufacture of a metal hydride fuel supply
US20230236756A1 (en) * 2022-01-25 2023-07-27 Infineon Technologies Ag Buffer management in an ethernet switch

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168469A (en) * 1977-10-04 1979-09-18 Ncr Corporation Digital data communication adapter
US4703475A (en) * 1985-12-04 1987-10-27 American Telephone And Telegraph Company At&T Bell Laboratories Data communication method and apparatus using multiple physical data links
DE3850881T2 (de) * 1988-10-28 1995-03-09 Ibm Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
US5136582A (en) 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5247516A (en) * 1991-03-28 1993-09-21 Sprint International Communications Corp. Configurable composite data frame
US5410677A (en) * 1991-12-30 1995-04-25 Apple Computer, Inc. Apparatus for translating data formats starting at an arbitrary byte position
US5267240A (en) * 1992-02-20 1993-11-30 International Business Machines Corporation Frame-group transmission and reception for parallel/serial buses
EP0622922B1 (en) * 1993-04-29 2000-11-29 International Business Machines Corporation Method and device of multicasting data in a communications system
US5440545A (en) * 1993-08-02 1995-08-08 Motorola, Inc. Packet delivery system
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5553302A (en) * 1993-12-30 1996-09-03 Unisys Corporation Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data
US5832310A (en) * 1993-12-30 1998-11-03 Unisys Corporation Serial I/O channel having dependent and synchronous sources of control data and user defined data
US5551020A (en) * 1994-03-28 1996-08-27 Flextech Systems, Inc. System for the compacting and logical linking of data blocks in files to optimize available physical storage
US5574905A (en) * 1994-05-26 1996-11-12 International Business Machines Corporation Method and apparatus for multimedia editing and data recovery
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US6400715B1 (en) * 1996-09-18 2002-06-04 Texas Instruments Incorporated Network address matching circuit and method
US6477584B1 (en) * 1997-03-21 2002-11-05 Lsi Logic Corporation Message FIFO empty early warning method
AUPO932297A0 (en) * 1997-09-19 1997-10-09 Commonwealth Scientific And Industrial Research Organisation Medium access control protocol for data communications
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6330584B1 (en) * 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6434145B1 (en) * 1998-06-22 2002-08-13 Applied Micro Circuits Corporation Processing of network data by parallel processing channels
US6912637B1 (en) * 1998-07-08 2005-06-28 Broadcom Corporation Apparatus and method for managing memory in a network switch
US6661774B1 (en) * 1999-02-16 2003-12-09 Efficient Networks, Inc. System and method for traffic shaping packet-based signals
JP3561870B2 (ja) * 1999-02-19 2004-09-02 富士通株式会社 パケットバッファ装置
US7116679B1 (en) * 1999-02-23 2006-10-03 Alcatel Multi-service network switch with a generic forwarding interface
US6707818B1 (en) * 1999-03-17 2004-03-16 Broadcom Corporation Network switch memory interface configuration
US6952401B1 (en) * 1999-03-17 2005-10-04 Broadcom Corporation Method for load balancing in a network switch
US6643716B2 (en) * 1999-03-29 2003-11-04 Intel Corporation Method and apparatus for processing serial data using a single receive fifo
JP2000332817A (ja) * 1999-05-18 2000-11-30 Fujitsu Ltd パケット処理装置
US6747978B1 (en) * 1999-05-27 2004-06-08 Nortel Networks Limited Direct memory access packet router method and apparatus
US6760337B1 (en) * 1999-08-17 2004-07-06 Conexant Systems, Inc. Integrated circuit that processes communication packets with scheduler circuitry having multiple priority levels
JP2001127766A (ja) * 1999-10-25 2001-05-11 Toshiba Corp ラインインターフェース装置、及び、パケット交換機
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
US6788697B1 (en) * 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
US6876659B2 (en) * 2000-01-06 2005-04-05 International Business Machines Corporation Enqueuing apparatus for asynchronous transfer mode (ATM) virtual circuit merging
US6922408B2 (en) * 2000-01-10 2005-07-26 Mellanox Technologies Ltd. Packet communication buffering with dynamic flow control
JP3732989B2 (ja) * 2000-01-12 2006-01-11 富士通株式会社 パケットスイッチ装置及びスケジューリング制御方法
US6731644B1 (en) * 2000-02-14 2004-05-04 Cisco Technology, Inc. Flexible DMA engine for packet header modification
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US6963921B1 (en) * 2001-02-16 2005-11-08 3Com Corporation Method and apparatus for hardware assisted TCP packet re-assembly
US7230917B1 (en) * 2001-02-22 2007-06-12 Cisco Technology, Inc. Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node
US6658546B2 (en) * 2001-02-23 2003-12-02 International Business Machines Corporation Storing frame modification information in a bank in memory
US6681340B2 (en) * 2001-02-23 2004-01-20 International Business Machines Corporation Efficient implementation of error correction code scheme
US7130916B2 (en) * 2001-02-23 2006-10-31 International Business Machines Corporation Linking frame data by inserting qualifiers in control blocks
US6532185B2 (en) * 2001-02-23 2003-03-11 International Business Machines Corporation Distribution of bank accesses in a multiple bank DRAM used as a data buffer

Also Published As

Publication number Publication date
CN100429906C (zh) 2008-10-29
ATE323999T1 (de) 2006-05-15
CN1502198A (zh) 2004-06-02
US7130916B2 (en) 2006-10-31
KR100554825B1 (ko) 2006-02-22
DE60210748T2 (de) 2007-01-04
US20020118694A1 (en) 2002-08-29
DE60210748D1 (de) 2006-05-24
WO2002069601A2 (en) 2002-09-06
EP1362465B1 (en) 2006-04-19
EP1362465A2 (en) 2003-11-19
US20070002172A1 (en) 2007-01-04
WO2002069601A3 (en) 2003-03-13

Similar Documents

Publication Publication Date Title
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US20070002172A1 (en) Linking frame data by inserting qualifiers in control blocks
US8837502B2 (en) Port packet queuing
US6757791B1 (en) Method and apparatus for reordering packet data units in storage queues for reading and writing memory
US7461214B2 (en) Method and system for accessing a single port memory
US20190173809A1 (en) Packet descriptor storage in packet memory with cache
US20030016689A1 (en) Switch fabric with dual port memory emulation scheme
US7085266B2 (en) Apparatus, method and limited set of messages to transmit data between components of a network processor
KR100560277B1 (ko) 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체
US6850999B1 (en) Coherency coverage of data across multiple packets varying in sizes
US6658546B2 (en) Storing frame modification information in a bank in memory
US9055008B1 (en) Device and process for efficient multicasting
CN117015764A (zh) 集成计算设备之间的消息通信
US20030223447A1 (en) Method and system to synchronize a multi-level memory

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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee