KR20030076679A - 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체 - Google Patents

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

Info

Publication number
KR20030076679A
KR20030076679A KR10-2003-7010704A KR20037010704A KR20030076679A KR 20030076679 A KR20030076679 A KR 20030076679A KR 20037010704 A KR20037010704 A KR 20037010704A KR 20030076679 A KR20030076679 A KR 20030076679A
Authority
KR
South Korea
Prior art keywords
memory
frame
fcb
control block
data
Prior art date
Application number
KR10-2003-7010704A
Other languages
English (en)
Other versions
KR100560277B1 (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 KR20030076679A publication Critical patent/KR20030076679A/ko
Application granted granted Critical
Publication of KR100560277B1 publication Critical patent/KR100560277B1/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/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Liquid Developers In Electrophotography (AREA)
  • Glass Compositions (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 프레임 제어 블록 내에서 요구된 필드 정보를 획득하기 위해서 메모리로의 액세스의 수를 감소시키는 방법 및 시스템을 제공한다. 본 발명의 일 실시예에 따라서, 상기 시스템은 데이터 프레임을 프로세싱하는 프로세서를 포함한다. 상기 프로세서는 데이터 프레임을 수신 및 전송하는 데이터 이동 유닛을 포함하며, 상기 각 데이터 프레임은 관련 프레임 제어 블록을 갖는다. 각 프레임 제어 블록은 제 1 제어 블록 및 제 2 제어 블록을 포함한다. 상기 프로세서는 상기 데이터 이동 유닛에 접속되어 상기 제 1 제어 블록에 대한 필드 정보를 저장하는 제 1 메모리를 더 포함한다. 상기 프로세서는 상기 데이터 이동 유닛에 접속되어 상기 데이터 이동 유닛에 의해 수신된 데이터 프레임을 스케줄링하는 스케줄러를 더 포함한다. 상기 스케줄러는 상기 제 2 제어 블록에 대한 필드 정보를 저장하는 제 2 메모리를 포함한다.

Description

메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 컴퓨터 프로그램 제품{ASSIGNMENT OF PACKET DESCRIPTOR FIELD POSITIONS IN A NETWORK PROCESSOR}
패킷 스위칭 네트워크는 네트워크에 접속된 송신기 및 수신기 간에서 데이터 전송을 위한 스위칭 포인트 또는 스위칭 노드를 갖는다. 이러한 스위칭 포인트에 의해 수행되는 스위칭 동작은 스위칭 포인트 또는 노드에 의해서 수신된 데이터의 패킷 또는 프레임을 네트워크에서 다른 노드로 전송하는 동작이다. 이러한 스위칭 동작을 통해서 통신 데이터가 패킷 스위칭 네트워크에서 이동된다.
각 노드는 데이터 패킷 또는 프레임을 프로세싱하는 패킷 프로세서를 포함한다. 각 데이터 프레임은 관련 데이터 프레임을 기술하는 프레임 제어 블록(FCB: Frame Control Block)과 관련된다. 통상적으로, FCB는 패킷 프로세서에서 가령 정보 필드가 QDR SRAM(Quadruple Data Rate Static Random Access Memory)에 의해 공급될 수 있는 다양한 정보 필드를 포함한다. 말하자면, FCB 내의 정보 필드는패킷 프로세서에서 가령 QDR SRAM과 같은 메모리를 액세스함으로써 획득된다.
그러므로, 정보를 요구하는 필드 제어 블록 내에서의 필드의 수를 한정함으로써 메모리 액세스의 수를 감소시키고 메모리 공간 효율을 개선하는 것이, 즉 메모리의 대역폭 효율을 개선하는 것이 바람직하다.
발명의 개요
본 발명은 제 1 제어 블록 및 제 2 제어 블록으로서 제시되는 논리적 필드 제어 블록(FCB)을 제공하며, 상기 제 1 제어 블록은 제 1 메모리와 연관되며, 상기 제 2 제어 블록은 제 2 메모리와 연관된다. 각 메모리, 즉 제 1 메모리 및 제 2 메모리는 각기 패킷 프로세서의 데이터 이동 유닛 및 스케줄러(scheduler)와 더 연관된다. 상기 패킷 프로세서의 데이터 이동 유닛은 데이터 프레임을 수신 및 송신한다. 상기 패킷 프로세서의 스케줄러는 데이터 프레임이 패킷 스위칭 네트워크에서 다른 스위치 또는 포트로 전송될 것을 스케줄링한다. FCB가 상기 데이터 이동 유닛 내의 큐 내에 상주할 때, 정보는 제 1 제어 블록의 필드에 저장되며 제 2 제어 블록의 필드에는 저장되지 않는다. 상기 제 2 메모리는 제 2 제어 블록의 필드로부터의 판독 및 필드로의 기록을 위해서 액세스되지 않기 때문에, 상기 제 2 메모리의 대역폭 효율이 이로써 개선된다. FCB가 상기 스케줄러 내의 큐 내에 상주할 때, 정보는 제 2 제어 블록의 필드에 저장되며 제 1 제어 블록의 필드에는 저장되지 않는다. 상기 제 1 메모리는 제 1 제어 블록의 필드로부터의 판독 및 필드로의 기록을 위해서 액세스되지 않기 때문에, 상기 제 1 메모리의 대역폭 효율이이로써 개선된다.
본 발명의 한 측면에 따라, 본 발명은 데이터 프레임을 프로세싱하는 프로세서를 포함하는 시스템은 제공하며, 상기 프로세서는 상기 데이터 프레임을 수신 및 송신하는 데이터 이동 유닛━상기 각각의 데이터 프레임은 관련 프레임 제어 블록을 가지며, 상기 각각의 프레임 제어 블록은 제 1 제어 블록 및 제 2 제어 블록을 포함함━과, 상기 데이터 이동 유닛에 접속된 제 1 메모리━상기 제 1 메모리는 제 1 프레임 버퍼 제어 유닛을 포함하며, 상기 제 1 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 1 제어 블록을 위한 필드 정보를 저장함━와, 상기 데이터 이동 유닛에 접속된 스케줄러━상기 스케줄러는 상기 데이터 이동 유닛에 의해 수신된 데이터 프레임을 스케줄링하며, 상기 스케줄러는 제 2 메모리를 포함하고, 상기 제 2 메모리는 제 2 프레임 버퍼 제어 유닛을 포함하며, 상기 제 2 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 2 제어 블록을 위한 필드 정보를 저장함━를 포함한다.
바람직하게는, 상기 데이터 이동 유닛은 다수의 큐를 포함하고, 하나 이상의 상기 프레임 제어 블록이 상기 다수의 큐 중 하나의 큐에 상주한다. 바람직한 실시예에서, 상기 데이터 이동 유닛의 다수의 큐 중 하나의 큐에 상주하는 상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보는 상기 제 1 메모리의 상기 제 1 프레임 버퍼 제어 유닛 내에 저장된다.
바람직하게는, 상기 스케줄러는 제 1 큐를 포함하며, 상기 하나 이상의 프레임 제어 블록이 상기 제 1 큐에 상주한다. 보다 바람직하게는, 상기 제 1 큐에상주하는 상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보는 상기 제 2 메모리의 상기 제 2 프레임 버퍼 제어 유닛 내에 저장된다.
본 발명의 다른 측면에 따라, 본 발명은 프레임 제어 블록 내에서 요구된 정보를 획득하기 위해 메모리로의 액세스의 수를 감소시키는 방법을 제공하며, 여기서 상기 프레임 제어 블록 각각은 제 1 제어 블록 및 제 2 제어 블록을 포함하고, 상기 제 1 제어 블록은 제 1 메모리와 연관되며, 상기 제 2 제어 블록은 제 2 메모리와 연관되고, 상기 제 1 메모리는 제 1 프레임 버퍼 제어 유닛을 포함하고, 상기 제 1 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 1 제어 블록을 위한 필드 정보를 저장하며, 상기 제 2 메모리는 제 2 프레임 버퍼 제어 유닛을 포함하고, 상기 제 2 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 2 제어 블록을 위한 필드 정보를 저장하며, 상기 메모리로의 액세스 수를 감소시키는 방법은 상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해 상기 제 1 메모리를 액세스하는 단계와, 상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해 상기 제 2 메모리를 액세스하는 단계를 포함한다.
바람직하게는, 상기 하나 이상의 프레임 제어 블록은 데이터 이동 유닛 내의 다수의 큐 중 하나의 큐에 상주하며, 상기 데이터 이동 유닛은 상기 제 1 메모리와 연관된다. 보다 바람직하게는, 상기 하나 이상의 프레임 제어 블록이 상기 데이터 이동 유닛 내의 상기 다수의 큐 중 하나의 큐에 상주할 때, 상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보를 판독 또는 기록하기위해서 상기 제 1 메모리가 액세스된다. 또한, 바람직하게는, 상기 하나 이상의 프레임 제어 블록은 스케줄러 내의 큐에 상주하며, 상기 스케줄러는 상기 제 2 메모리와 연관된다. 보다 바람직하게는, 상기 하나 이상의 프레임 제어 블록이 상기 스케줄러 내의 상기 큐에 상주할 때, 상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해서 상기 제 2 메모리가 액세스된다.
본 발명의 다른 측면에 따라서, 본 발명은 컴퓨터 시스템 상에서 동작할 때 시스템으로 하여금 상술한 바와 같은 방법을 구현하게 하는, 컴퓨터 판독 가능한 저장 매체 상에 저장된 컴퓨터 프로그램 제품을 제공한다.
본 발명은 이제 예시적으로 다음 도면에서 도시된 바와 같이 본 발명의 바람직한 실시예를 참조하여 보다 상세하게 설명될 것이다.
본 발명은 네트워킹 통신 시스템 분야에 관한 것이며, 특히 메모리로의 액세스의 수를 최소화시키는 방법 및 시스템에 관한 것이다.
도 1은 본 발명에 따라 구성된 패킷 프로세서의 도면,
도 2는 본 발명에 따라 구성된 데이터 이동 유닛의 도면,
도 3은 프레임 제어 블록에서 요구된 정보를 획득하기 위해 메모리로의 액세스의 수를 감소시키는 방법의 흐름도,
도 4는 데이터 이동 유닛의 FCB 프리 큐(FCB free queue) 내에 상주하는 FCB의 베이직 FCB(Basic FCB)의 본 발명의 실시예의 도면,
도 5는 데이터 이동 유닛의 FCB 프리 큐(FCB free queue) 내에 상주하는FCB의 플로우 FCB(Flow FCB)의 본 발명의 실시예의 도면,
도 6은 데이터 이동 유닛의 GQ 내에 상주하는 FCB의 베이직 FCB의 본 발명의 실시예의 도면,
도 7은 데이터 이동 유닛의 GQ 내에 상주하는 FCB의 플로우 FCB의 본 발명의 실시예의 도면,
도 8은 스케줄러의 플로우 큐 내에 상주하는 FCB의 베이직 FCB의 본 발명의 실시예의 도면,
도 9은 스케줄러의 플로우 큐 내에 상주하는 FCB의 플로우 FCB의 본 발명의 실시예의 도면,
도 10은 데이터 이동 유닛의 TBQ에 상주하는 FCB의 베이직 FCB의 본 발명의 실시예의 도면,
도 11은 데이터 이동 유닛의 TBQ에 상주하는 FCB의 플로우 FCB의 본 발명의 실시예의 도면.
본 발명은 프레임 제어 블록 내에서 요구된 필드 정보를 획득하기 위해서 메모리로의 액세스의 수를 감소시키는 방법 및 시스템을 제공한다. 본 발명의 일 실시예에서, 상기 시스템은 데이터 프레임을 프로세싱하는 프로세서를 포함한다. 상기 프로세서는 상기 데이터 프레임을 수신 및 송신하는 데이터 이동 유닛을 포함하며, 상기 각각의 데이터 프레임은 관련 프레임 제어 블록을 갖는다. 상기 각각의 프레임 제어 블록은 제 1 제어 블록 및 제 2 제어 블록을 포함한다. 상기 프로세서는 또한 상기 데이터 이동 유닛에 접속된 제 1 메모리를 더 포함하며, 상기 제 1 메모리는 제 1 프레임 버퍼 제어 유닛을 포함한다. 상기 제 1 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 1 제어 블록을 위한 필드 정보를 저장한다. 또한, 상기 프로세서는 상기 데이터 이동 유닛에 접속된 스케줄러를 더 포함하며, 상기 스케줄러는 상기 데이터 이동 유닛에 의해 수신된 데이터 프레임을 스케줄링한다. 상기 스케줄러는 제 2 메모리를 포함하고, 상기 제 2 메모리는 제 2 프레임 버퍼 제어 유닛을 포함한다. 상기 제 2 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 2 제어 블록을 위한 필드 정보를 저장한다. 프레임 제어 블록이 상기 데이터 이동 유닛 내의 큐 내에 상주할 때, 정보는 제 1 제어 블록의 필드에 저장되며 제 2 제어 블록의 필드에는 저장되지 않는다. 상기 제 2 메모리는 제 2 제어 블록의 필드로부터의 판독 및 필드로의 기록을 위해서 액세스되지 않기 때문에, 상기 제 2 메모리의 대역폭 효율이 이로써 개선된다. 프레임 제어 블록이 상기 스케줄러 내의 큐 내에 상주할 때, 정보는 제 2 제어 블록의 필드에 저장되며 제 1 제어 블록의 필드에는 저장되지 않는다. 상기 제 1 메모리는 제 1 제어 블록의 필드로부터의 판독 및 필드로의 기록을 위해서 액세스되지 않기 때문에, 상기 제 1 메모리의 대역폭 효율이 이로써 개선된다.
도 1은 패킷 프로세서(100)를 도시한다. 패킷 프로세서(100)는 패킷 스위칭 네트워크의 특정 스위치(도시되지 않음) 또는 포트(도시되지 않음)로부터 데이터의 디지털 패킷 즉 데이터 프레임을 수신하고 상기 데이터의 디지털 패킷, 즉 데이터프레임을 패킷 스위칭 네트워크 내의 가령 스위치/포트(120)와 같은 다른 스위치 또는 포트로 전달한다. 각 데이터 프레임은 프레임 제어 블록(FCB)과 연관되며, 상기 프레임 제어 블록은 관련 데이터 프레임을 기술한다. 데이터 프레임과 연관된 각 FCB는 하나 이상의 버퍼 제어 블록(BCB)과 연관되며, 각 FCB와 연관된 각 BCB는 데이터 저장 유닛(140) 내의 버퍼와 연관된다. BCB는 미국 출원 번호 09/791,336(변리사 참조 번호 RAL000095로서 계류중인 PCT 출원)에서 개시된 바와 같이 다음의 체이닝된(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)를 더 포함한다. 상기 명령은 보통 프레임 수정 명령으로 지칭되며 이 명령은 미국 출원 일련 번호 09/792,557에서 보다 상세하게 설명된 바와 같이 내장형 프로세서(150)에 의해서 발행되어 내장형 프로세서 로직(216)에 의해 특정 버퍼 내의 특정 뱅크 내에 저장된다. 일 실시예에서, PCB(224)는 특정 버퍼 내의 특정 뱅크 내에 저장된 프레임 수정 명령을 검색하여 이를 프레임 변경 준비 구역 메모리(213)에 저장한다. 프레임 변경(FA) 로직 유직(212)은 상기 프레임 변경 준비 구역 메모리(213) 내에 저장된 명령을 실행하여 상기 데이터 준비 구역 메모리(214) 내에 임시적으로 저장된 프로세싱된 프레임의 내용을 수정한다. 일단 FA 로직(212)이 상기 프로세싱된 프레임의 내용을 수정 완료하면, 수정된 프레임은 스위치/포트 인터페이스 유닛(211)을 통해서 전송된다. 상기 스위치/포트 인터페이스 유닛(211)은 데이터 이동 유닛(110)이 에그레스 모드로 동작할 때 패킷 스위칭 네트워크로의 인터페이스로서 동작하는 포트(도시되지 않음)로 데이터를 전송한다. 이와 달리, 상기 스위치/포트 인터페이스 유닛(211)은 데이터 이동 유닛(110)이 인그레스 모드로 동작할 때 패킷 스위칭 네트워크 내의 스위치(도시되지 않음)로 데이터를 전송한다.
데이터 이동 유닛(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)가 데이터 저장 유닛(104)의 특정 버퍼 내에 수신된 데이터 프레임을 기록하면, 수신기 제어기(203)의 RCB(219)는 상기 수신된 데이터 프레임을 저장했던 특정 버퍼와 연관된 BCB 프리 큐(226) 내의 특정 BCB 내에 유효한 정보를 기록한다.
상술한 바와 같이, FCB는 FCB 프리 큐(222) 내에 임시적으로 상주하거나 가령 GQ(218), 플로우 큐(223), TBQ(215)와 같은 다른 큐 중 하나에 임시적으로 상주할 수 있다. FCB 프리 큐(222)에 초기에 저장되고 가령 GQ(218), 플로우 큐(223), TBQ(215)와 같은 큐를 통해서 FCB 프리 큐(222) 내에서 인큐잉될 때까지 전달되는 FCB의 "라이프 싸이클"에 대한 보다 상세한 설명은 도 3을 참조하여 설명될 것이다. 상기 FCB의 라이프 싸이클 동안 FCB가 FCB 프리 큐(222)로부터 임시적으로 제거될 때 FCB는 FCB 프리 큐(222)로부터 "리스되었다고(leased)" 지칭될 수 있다. GQ(218), 플로우 큐(223), TBQ(215), FCB 프리 큐(222)와 같은 큐들에 있어서 각각의 큐는 하나 이상의 상이한 FCB를 동시적으로 포함할 수 있다. GQ(218), 플로우 큐(223), TBQ(215), FCB 프리 큐(222)와 같은 큐들의 각각의 큐에 자신의 라이프 싸이클 동안 FCB는 임시적으로 상주할 수 있다.
배경 기술 부분에서 설명한 바와 같이, FCB는 패킷 프로세서(100) 내의 메모리(210,224)에 의해 공급되는 다양한 정보 필드를 포함한다. 말하자면, FCB 내의 정보 필드는 패킷 프로세서(100) 내의 가령 QDR SRAM과 같은 메모리(210)를 액세스함으로써 획득된다. 그러므로, 정보를 요구하는 프레임 제어 블록 내의 필드의 수를 한정하여서 메모리 액세스의 수를 감소시키고 메모리(210, 224)에 대한 대역폭 요구 정도를 감소시키는 것이 바람직하다.
도 3은 프레임 제어 블록 내에서 요구된 필드 정보를 획득하기 위해서 가령 메모리(210,224)와 같은 메모리로의 액세스의 수를 감소시켜서 메모리(210,224)와 같은 메모리의 대역폭 효율을 개선하는 방법(300)의 흐름도이다. 메모리(210)는 데이터 이동 유닛(110)과 연관된 메모리이며, 메모리(224)는 스케줄러(130)와 연관된 메모리이다.
상술한 바와 같이, 각 데이터 프레임은 프레임 제어 블록(FCB)과 연관된다. 본 발명의 일 실시예에서, 논리 FCB는 두 개의 상이한 제어 블록으로서 표현되는데, 그 이유는 두 개의 메모리(210,224)가 존재하기 때문이다. 가령, 베이직 FCB(BFCB)는 메모리(210)와 연관된다. 플로우 FCB(FFCB)는 메모리(224)와 연관된다. 이러한 두 개의 상이한 제어 블록, 즉 BFCB 및 FFCB는 동일한 메모리 어드레스 즉 물리적 메모리 어드레스를 공유하지만, 상기 두 개의 상이한 데이터 블록의 필드 내에 제공될 데이터는 가령 메모리(210)와 메모리(224)와 같은 개별 메모리 내에 상주한다.
단계(301)에서, FCB 아비터(206)의 FCB 프리 큐(222)에 상주하는 FCB는 RCB(219)에 의해서 FCB 프리 큐(222)로부터 디큐잉될 수 있다. 도 4는 FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400)의 필드를 도시한다. BFCB(400)는 각 엔트리가 36 비트인 두 개의 엔트리 또는 열을 포함한다. BFCB(400)는 임의의 수의 비트를 포함하는 임의의 수의 열 및 임의의 수의 필드를 포함하며, 이는 도 4에 도시된다.
FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400)는 두 개의 필드, 가령 NFA(다음 FCB 어드레스) 및 ECC(에러 보정 코드)를 포함한다. 상기 NFA 필드는 다음의 FCB 어드레스를 가르키며 이로써 FCB의 체이닝을 허용한다. ECC 필드는 미국 출원 일련 번호 09/792,533에 개시된 바와 같이 에러 보정 코드를 위한 코드를 포함한다.
도 5는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 필드를 도시한다. FFCB(500)는 36 비트인 엔트리 또는 열을 포함한다. FFCB(500)는 임의의 수의 비트를 포함하는 임의의 수의 열 및 임의의 수의 필드를 포함하며, 이는 도 5에 도시된다.
FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)는 가령 NFA, FCB와 관련된 하나 이상의 버퍼의 바이트 카운트(BCNT)와 같은 두 개의 필드와 패리티 비트(PTY)를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스로의 포인터를 포함하며 이로써 FCB 프리 큐(222) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 관련된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다. 그러나, 메모리(224)의 FCBU2(225)는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 필드 내에 저장된 정보를 검색하기 위해 액세스되지 않는데, 그 이유는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)는 데이터 프레임과 관련되지 않기 때문이다. 말하자면, FCB 프리 큐(222)에 상주하는 FCB의 FFCB(500)의 필드는 중요하지 않으며 이로써 FFCB(500)와 관련된 메모리(224)의 FCBU2를 액세스할 필요가 없다. FCB를 하나 이상의 BCB와 연관시키는 것과 FCB의 필드에 저장된 정보에 대한 상세한 설명은 미국 출원 번호 09/791,336 에 개시된다. FCB 내의 패리티 비트에 대한 상세한 설명은 미국 특허 출원 번호 09/792,533에서 제공된다.
정보는 BFCB(400) 내에 저장되지만 FFCB(500) 내에는 저장되지 않는데, 그 이유는 FCB 프리 큐(222)가 이하에 기술될 바와 같이 데이터 이동 유닛(110)에 의해 처리되며 스케줄러(130)에 의해서 처리되지 않기 때문이다. 그러므로, FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400) 내의 필드는 유효한 정보를 포함한 반면, FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500) 내의 필드는 무효한 정보를 포함한다.
상술한 바와 같이, 데이터 이동 유닛(110)이 패킷 스위칭 네트워크로의 인터페이스로서 동작하는 포트(도시되지 않음) 또는 패킷 스위칭 네트워크 내의 스위치(도시되지 않음)로부터 포트/스위치 인터페이스 유닛(221)에 의해 데이터 프레임을 수신할 때, 단계(301)에서, FCB는 데이터 이동 유닛(110)의 RCB(219)에 의해서 FCB 프리 큐(222)로부터 디큐잉되며 이로써 상기 수신된 데이터 프레임은 FCB와 연관된다. FCB 프리 큐(222) 내의 FCB의 BFCB(400) 내의 필드 NFA 및 ECC에 대한 정보를 검색하기 위해서 메모리(210)의 FCBU1(209)로의 판독 요청을 발생하는 RCB(219)에 의해서 상기 FCB는 FCB 프리 큐(222)로부터 디큐잉된다. 데이터 이동 유닛(110)의 RCB(219)는 메모리(210)의 FCBU1(209)로의 판독 요청을 발행하고 메모리(224)의 FCBU2(225)로의 판독 요청은 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 연관되며 메모리(224)는 스케줄러(130)와 연관되기 때문이다. 그러므로, FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 가령 NFA, BCNT와 같은 필드에 대한 정보를 검색하기 위해 RCB(219)는 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않음으로써, 메모리(224)의 대역폭 효율은 개선된다.
단계(302)에서, FCB 프리 큐(222)로부터 디큐잉된 FCB는 RCB(219)에 의해서 GQ(218) 내에서 큐잉된다. 도 6은 GQ(218) 내에 상주하는 FCB의 BFCB(600)의 필드를 도시한다. BFCB(600)는 각 엔트리가 36 비트인 두 개의 엔트리를 포함한다.상기 BFCB(600)는 임의의 수의 비트를 포함하는 임의의 수의 엔트리를 포함할 수 있다.
GQ(218) 내에 상주하는 FCB의 BFCB(600)는 제 1 엔트리 내에서 가령 두 개의 필드, NFA, BCNT(바이트 카운트 길이) 및 패리티 비트(PTY)를 포함한다. GQ(218) 내에 상주하는 FCB의 BFCB(600)의 제 2 길이는 가령 제 1 BCB 어드레스(FBA), 상기 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치(SBP), FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치(EBP)와 같은 세 개의 필드와 패리티 비트(PTY), FCB 타입 비트(FTO), 정지 비트(abort bit)(ABOR)를 포함한다. 상기 NFA 필드는 GQ(218) 내의 다음 FCB 어드레스를 가르키며 이로써 GQ(218) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 연관된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다. FBA는 FCB와 연관된 제 1 BCB의 어드레스를 포함한다. SBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치를 포함한다. EBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치를 포함한다. 상술한 바와 같이, 가령 FBA, SBP, EBP와 같은 필드 내에 저장하기 위한 정보에 대한 보다 상세한 설명은 미국 특허 출원 번호 09/791,336 에 개시되어 있다. FTO 비트는 FCB의 타입을 포함한다. ABOR 비트는 FCB와 연관된 데이터 프레임이 예외 상태가 되어서 FCB는 유효하게 간주되지 말아야 함을 표시한다.
도 7은 GQ(218) 내에 상주하는 FCB의 FFCB(700)의 필드를 도시한다. FFCB(700)는 36 비트인 엔트리를 포함한다. FFCB(700)는 임의의 비트의 수를 포함하는 임의의 수의 엔트리를 포함하며, 이는 도 7에 도시된다.
GQ(218) 내에 상주하는 FCB의 FFCB(700)는 가령 NFA, 바이트 카운트(BCNT)와 같은 두 개의 필드와 패리티 비트(PTY)를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스로의 포인터를 포함하며 이로써 GQ(218) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 관련된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다. 그러나, 메모리(224)의 FCBU2(225)는 GQ(218) 내에 상주하는 FCB의 FFCB(700)의 필드 내에 저장하기 위한 정보를 검색하기 위해 액세스되지 않는데, 그 이유는 GQ(218) 내에 상주하는 FCB의 FFCB(700)는 데이터 프레임과 관련되지 않기 때문이다. 말하자면, GQ(218) 내에 상주하는 FCB의 FFCB(700)의 필드는 중요하지 않으며 이로써 FFCB(700)와 관련된 메모리(224)의 FCBU2를 액세스할 필요가 없다.
정보는 BFCB(600) 내에 저장되지만 FFCB(700) 내에는 저장되지 않는데, 그 이유는 GQ(218)는 이하에 기술될 바와 같이 데이터 이동 유닛(110)에 의해 처리되며 스케줄러(130)에 의해서 처리되지 않기 때문이다. 그러므로, GQ(218) 내에 상주하는 FCB의 BFCB(600) 내의 필드는 유효한 정보를 포함한 반면, GQ(218) 내에 상주하는 FCB의 FFCB(700) 내의 필드는 무효한 정보를 포함한다.
상술한 바와 같이, RCB(219)는 GQ(218) 내의 FCB 프리 큐(222)로부터 디큐잉된 FCB를 큐잉한다. RCB(219)는 GQ(218) 내의 FCB의 BFCB(600)의 필드 내의 정보를 기록하기 위해서 메모리(210)의 FCBU1(209)로의 기록 요청을 발행한다. 제 1 기록 요청은 가령 NFA, BCNT와 같은 제 1 엔트리의 필드 내의 정보를 기록하는 것이다. 제 2 기록 요청은 가령 FBA, SBP, EBP와 같은 제 2 엔트리의 필드 내의 정보를 기록하는 것이다. RCB(219)는 메모리(210)의 FCBU1(209)로의 기록 요청을 발행하지만 메모리(224)의 FCBU2(225)로의 기록 요청을 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 연관되며 메모리(224)는 스케줄러(130)와 연관되기 때문이다. 그러므로, RCB(219)는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 가령 NFA, BCNT와 같은 필드에 대한 정보를 검색하기 위해서 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않기 때문에, 메모리(224)의 대역폭 효율은 개선된다.
단계(303)에서, GQ(218) 내의 FCB는 디스패처 로직(217)에 의해서 디큐잉되며 이로써 FCB와 연관된 데이터 프레임은 도 2의 설명 부분에서 상술된 바와 같이 내장형 프로세서(150)에 의해서 프로세싱된다. 상기 디스패처 로직(217)은 GQ(218) 내에 상주하는 FCB의 BFCB(600)의 필드 내의 정보를 판독하기 위해서 메모리(210)의 FCBU1(209)로 두 개의 판독 요청을 발행한다. 제 1 판독 요청은 가령 NFA, BCNT와 같은 제 1 엔트리의 필드 내의 정보를 판독하는 것이다. 제 2 판독 요청은 가령 FBA, SBP, EBP와 같은 제 2 엔트리의 필드 내의 정보를 판독하는 것이다. 디스패처 로직(217)은 메모리(210)의 FCBU1(209)로 판독 요청을 발행하지만 메모리(224)의 FCBU2(225)로 판독 요청을 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 연관되며 메모리(224)는 스케줄러(130)와 연관되기 때문이다. 말하자면, 디스패처 로직(217)은 GQ(218) 내에 상주하는 FCB의 FFCB(700)의 필드 내의 정보를 검색하기 위해서 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않기 때문에, 메모리(224)의 대역폭효율은 개선된다.
단계(304)에서, FCB는 스케줄러 내의 플로우 큐(223) 내에서 큐잉된다. 상술한 바와 같이, 내장형 프로세서 로직(216)은 프로세싱된 데이터 프레임과 연관된 FCB를 스케줄러(130)에 발행한다. 스케줄러(130)는 수신된 FCB를 플로우 큐(223) 내에 저장한다. 도 8은 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)의 필드를 도시한다. 상기 BFCB는 각 엔트리가 36 비트인 두 개의 엔트리를 포함한다. 상기 BFCB는 임의의 수의 비트를 포함하는 임의의 수의 엔트리 및 임의의 수의 열을 포함한다.
플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)는 제 1 엔트리 내에서 가령 NFA 필드를 포함하며, 제 2 엔트리 내에서는, 제 1 BCB 어드레스(FBA), 상기 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치(SBP), FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치(EBP)와 같은 3 개의 필드를 포함한다. 상기 NFA 필드는 플로우 큐(223) 내의 다음 FCB 어드레스를 가르키며 이로써 플로우 큐(223)내의 FCB의 체이닝을 가능하게 한다. FBA는 FCB와 연관된 제 1 BCB의 어드레스를 포함한다. SBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치를 포함한다. EBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치를 포함한다. 그러나, 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)의 필드 내에 저장하기 위한 정보를 검색하기 위해서 메모리(210)의 FCBU1(209)는 액세스되지 않는데, 그 이유는 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)가 데이터 프레임과 연관되지 않기 때문이다. 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)의 제 1 엔트리 내의 필드는 중요하지 않는 정보를 포함하며, 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)의 제 2 엔트리 내의 필드는 기억될 필요가 있는 정보를 포함한다. 이로써, BFCB(800)와 관련된 메모리(210)의 FCBU1(209)를 액세스할 필요가 없다.
말하자면, 플로우 큐(223) 내에 상주하는 FCB의 BFCB(800)의 필드는 중요하지 않으며 이로써 BFCB(800)와 관련된 메모리(210)의 FCBU1(209)를 액세스할 필요가 없다는 것이다.
도 9는 플로우 큐(223) 내에 상주하는 FCB의 FFCB(900)의 필드를 도시한다. FFCB(900)는 36 비트인 엔트리를 포함한다. FFCB(900)는 임의의 수의 비트를 포함하는 임의의 수의 열 및 임의의 수의 필드를 포함하며, 이는 도 9에 도시된다.
플로우 큐(223) 내에 상주하는 FCB의 FFCB(900)는 가령 NFA, BCNT와 같은 두 개의 필드와 패리티 비트(PTY)를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스로의 포인터를 포함하며 이로써 플로우 큐(223) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 관련된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다.
정보는 FFCB(900) 내에 저장되지만 BFCB(800) 내에는 저장되지 않는데, 그 이유는 이하에서 설명될 바와 같이 플로우 큐(223)는 스케줄러(130)에 의해서 처리되지만 데이터 이동 유닛(110)에 의해서는 처리되지 않기 때문이다.
상술한 바와 같이, 내장형 프로세서 로직(216)은 데이터 프레임의 프로세싱 후에 프로세싱된 데이터 프레임과 연관된 FCB를 스케줄러(130)에 발행한다. 스케줄러(130)는 단계(304)에서 플로우 큐(223) 내에서 수신된 FCB를 큐잉한다. 스케줄러(130)는 플로우 큐(223) 내의 FCB의 FFCB(900)의 필드 내의 정보를 기록하기 위해서 메모리(224)의 FCBU2(225)로 하나의 기록 요청을 발행한다. 이 기록 요청은 가령 NFA, BCNT와 같은 FFCB(900)의 필드 내의 정보를 기록하는 것이다. 스케줄러는 메모리(224)의 FCBU2(225)로 판독 요청을 발행하지만 메모리(210)의 FCBU1(209)로 판독 요청을 발행하지 않는데, 그 이유는 메모리(224)는 스케줄러(130)와 연관되며 메모리(210)는 데이터 이동 유닛(110)과 연관되기 때문이다. 메모리(210)를 액세스하지 않음으로써, 메모리(210)이 대역폭 효율이 개선된다.
단계(305)에서, 플로우 큐(223) 내의 FCB는 스케줄러(130)에 의해서 디큐잉된다. 스케줄러(130)는 플로우 큐(223) 내의 FCB의 FFCB(900)의 필드 내의 정보를 판독하기 위해서 메모리(224)의 FCBU2(225)로 판독 요청을 발행한다. 이 판독 요청은 가령 NFA, BCNT와 같은 FFCB(900)의 필드 내의 정보를 판독하는 것이다. 스케줄러는 메모리(224)의 FCBU2(225)로 판독 요청을 발행하지만 메모리(210)의 FCBU1(209)로 판독 요청을 발행하지 않는데, 그 이유는 메모리(224)는 스케줄러(130)와 연관되며 메모리(210)는 데이터 이동 유닛(110)과 연관되기 때문이다. 말하자면, 스케줄러(130)는 메모리(224)의 FCBU2(225)로 판독 요청을 발행하지만 메모리(210)의 FCBU1(209)로 판독 요청을 발행하지 않는데, 그 이유는 플로우 큐(223) 내의 FCB의 BFCB(800)의 필드 내의 정보는 중요하지 않고 유효하지 않기 때문이다. 메모리(210)를 액세스하지 않음으로써, 메모리(210)이 대역폭 효율이 개선된다.
단계(306)에서, 플로우 큐(223)으로부터 디큐잉된 FCB는 송신기 제어기(201)의 TBQ 인큐 로직(227)에 의해서 TBQ(215) 내에서 큐잉된다. 도 10은 TBQ(215) 내에 상주하는 FCB의 BFCB(1000)의 필드를 도시한다. 상기 BFCB는 각 엔트리가 36 비트인 두 개의 엔트리를 포함한다. 상기 BFCB는 임의의 수의 비트를 포함하는 임의의 수의 엔트리 및 임의의 수의 열을 포함하며, 이는 도 10에 도시된다.
TBQ(215) 내에 상주하는 FCB의 BFCB(1000)는 제 1 엔트리 내에서 가령 NFA, BCNT와 같은 두 개의 필드와 패리티 비트(PTY)를 포함하고, 제 2 엔트리 내에서는 제 1 BCB 어드레스(FBA), 상기 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치(SBP), FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치(EBP), 프레임 타입 필드(FT 필드)와 같은 4 개의 필드와 패리티 비트를 포함한다. 상기 NFA 필드는 TBQ(215) 내의 다음 FCB 어드레스를 가르키며 이로써 TBQ(215)내의 FCB의 체이닝을 가능하게 한다. 상기 BCNT는 FCB와 연관된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다. 상기 FBA는 FCB와 연관된 제 1 BCB의 어드레스를 포함한다. SBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 시작 바이트 위치를 포함한다. EBP는 FCB와 연관된 제 1 BCB와 연관된 버퍼의 종결 바이트 위치를 포함한다. 마지막으로, 상기 FT 필드는 FCB의 프레임 타입을 포함한다.
도 11는 TBQ(215) 내에 상주하는 FCB의 FFCB(1100)의 필드를 도시한다. FFCB(1100)는 36 비트인 엔트리를 포함한다. FFCB(1100)는 임의의 수의 비트를 포함하는 임의의 수의 열 및 임의의 수의 필드를 포함하며, 이는 도 11에 도시된다.
TBQ(215) 내에 상주하는 FCB의 FFCB(1100)는 가령 NFA, BCNT와 같은 두 개의 필드와 패리티 비트(PTY)를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스로의 포인터를 포함하며 이로써 TBQ(215) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 관련된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다.
정보는 BFCB(1000) 내에 저장되지만 FFCB(1100) 내에는 저장되지 않는데, 그 이유는 TBQ(215)는 이하에 기술될 바와 같이 데이터 이동 유닛(110)에 의해 처리되며 스케줄러(130)에 의해서 처리되지 않기 때문이다. 그러므로, TBQ(215) 내에 상주하는 FCB의 BFCB(1000) 내의 필드는 유효한 정보를 포함한 반면, TBQ(215) 내에 상주하는 FCB의 FFCB(1100) 내의 필드는 무효한 정보를 포함한다.
상술한 바와 같이, TBQ 인큐 로직(227)은 TBQ(215) 내에서 스케줄러부터 수신된 FCB를 큐잉한다. 상기 TBQ 인큐 로직(227)은 TBQ(215)의 FCB의 BFCB(1000)의 가령 NFA, BCNT와 같은 필드 내의 정보를 기록하기 위해서 메모리(210)의 FCBU1(209)로 기록 요청을 발행한다. TBQ 인큐 로직(227)은 송신기 제어기(201)가 스케줄러(130)로부터 FCB를 수신할 때 FFCB(900) 내의 BCNT 필드 내의 정보의 복사를 스케줄러(130)로부터 수신한다. 이어서, TBQ 인큐 로직(227)은 FFCB(900)의 BCNT 필드 내의 정보를 BFCB(1000)의 BCNT 필드 내에 기록한다. 상기 TBQ 인큐 로직(227)은 제 2 엔트리의 필드 내의 정보를 기록하기 위해서 다른 기록 요청을 발행하지 않는데, 그 이유는 BFCB(800)의 제 2 엔트리의 필드 내의 정보는 플로우 큐(223) 내에서는 갱신되지 않았기 때문이다. 이로써, TBQ 인큐 로직(227)은두 번 액세스하는 대신에 메모리(210)의 FCBU1(209)를 오직 한번만 액세스함으로써 메모리(210)의 대역폭 효율을 개선한다. 또한, TBQ 인큐 로직(227)은 메모리(210)의 FCBU1(209)로 기록 요청을 발행하지만 메모리(224)의 FCBU2(225)로 기록 요청을 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 관련되며 메모리(224)는 스케줄러(130)와 관련되기 때문이다. 그러므로, TBQ 인큐 로직(227)은 TBQ(215) 내에 상주하는 FCB의 FFCB(1100)의 가령 NFA, BCNT와 같은 필드 내의 정보를 기록하기 위해서 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않음으로써, 메모리(224)의 대역폭 효율이 개선된다.
단계(307)에서, TBQ(215) 내의 FCB는 TBQ 스케줄러(228)에 의해서 디큐잉되며 이로써 FCB와 관련된 데이터 프레임은 도 2의 설명 부분에서와 같이 TBQ 스케줄러(228)에 의해서 판독될 수 있다. TBQ 스케줄러(228)는 TBQ(215) 내의 FCB의 BFCB(1000)의 필드 내의 정보를 판독하기 위해서 메모리(210)의 FCBU1(209)로 두 개의 판독 요청을 발행한다. 제 1 판독 요청은 가령 NFA, BCNT와 같은 제 1 엔트리의 필드 내의 정보를 판독하는 것이다. 제 2 판독 요청은 가령 FBA, FT, SBP, EBP와 같은 제 2 엔트리의 필드 내의 정보를 판독하는 것이다. TBQ 스케줄러(228)는 상기 두 개의 판독 요청을 메모리(210)의 FCBU1(209)에는 발행하지만 메모리(224)의 FCBU2(225)에는 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 관련되며 메모리(224)는 스케줄러(130)와 관련되기 때문이다. 그러므로, TBQ 스케줄러(228)는 TBQ(215) 내의 FCB의 FFCB(1100)의 가령NFA, BCNT와같은 필드에 대한 정보를 검색하기 위해서 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않기 때문에, 메모리(224)의 대역폭 효율이 개선된다.
단계(308)에서, 일단 FCB와 연관된 프로세싱된 데이터 프레임이 패킷 스위칭 네트워크로의 인터페이스로서 동작하는 포트(도시되지 않음) 또는 패킷 스위칭 네트워크 내의 스위치(도시되지 않음)로 스위치/포트 인터페이스 유닛(211)을 통해서 전송이 완료되면, 상기 FCB는 FCB 아비터(206)의 FCB 프리 큐(222) 내에서 큐잉된다. FCB 아비터(206)는 FCB가 PCB(224)에 의해서 FCB 프리 큐(222) 내에서 인큐잉되는 경우에 송신기 제어기의 PCB(224)로부터 상기 송신되고 프로세싱된 데이터 프레임과 관련된 FCB를 수신한다.
상술한 바와 같이, 도 4는 FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400)의 필드를 도시한다. FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400)는 가령 NFA, ECC(에러 보정 코드)와 같은 두 개의 필드를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스를 가르리켜 이로써 FCB 프리 큐(222) 내의 FCB의 체이닝을 가능하게 한다. ECC 필드는 미국 특허 출원 번호 09/792,533에 도시된 바와 같은 에러 보정 코드를 포함한다.
상술한 바와 같이, 도 5는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 필드를 도시한다. 상기 FFCB(500)는 36 비트인 엔트리를 포함한다. FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)는 가령 NFA 필드, FCB와 연관된 하나 이상의 BCB의 바이트 카운트 길이 BCNT 필드와 같은 두 개의 필드와, 패리티 비트를 포함한다. 상기 NFA 필드는 다음 FCB 어드레스를 가르키며 이로써 FCB 프리 큐(222) 내의 FCB의 체이닝을 가능하게 한다. BCNT 필드는 FCB와 연관된 하나 이상의 BCB의 바이트 카운트 길이를 포함한다.
정보는 BFCB(400) 내에 저장되지만 FFCB(500) 내에는 저장되지 않는데, 그 이유는 상기 FCB 프리 큐(222)는 이하에 기술될 바와 같이 데이터 이동 유닛(110)에 의해 처리되며 스케줄러(130)에 의해서 처리되지 않기 때문이다. 그러므로, FCB 프리 큐(222) 내에 상주하는 FCB의 BFCB(400) 내의 필드는 유효한 정보를 포함한 반면, FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500) 내의 필드는 무효한 정보를 포함한다.
상술한 바와 같이, FCB 아비터(206)는 FCB가 PCB(224)에 의해서 FCB 프리 큐(222) 내에서 인큐잉되는 경우에 송신기 제어기의 PCB(224)로부터 상기 송신되고 프로세싱된 데이터 프레임과 관련된 FCB를 수신한다. PCB(224)는 FCB 프리 큐(222) 내의 FCB의 BFCB(400)의 가령 NFA, ECC와 같은 필드 내의 정보를 기록하기 위해서 메모리(210)의 FCBU1(209)로 기록 요청을 발행한다. 상기 PCB(224)는 메모리(210)의 FCBU1(209)로 기록 요청을 발행하지만 메모리(224)의 FCBU2(225)로 기록 요청을 발행하지 않는데, 그 이유는 메모리(210)는 데이터 이동 유닛(110)과 관련되며 메모리(224)는 스케줄러(130)와 관련되기 때문이다. 그러므로, PCB(224)는 FCB 프리 큐(222) 내에 상주하는 FCB의 FFCB(500)의 가령 NFA, BCNT와 같은 필드 내의 정보를 검색하기 위해서 메모리(224)의 FCBU2(225)를 액세스하지 않는다. 메모리(224)를 액세스하지 않음으로써, 메모리(224)의 대역폭 효율이 개선된다.
방법(300)은 FCB의 "라이프 싸이클"을 기술한다. 방법(300)은 네트워크 프로세서(100)에서 다른 FCB의 "라이프 싸이클"도 또한 기술한다. 하나 이상의 상이한 FCB는 가령 GQ(218), 플로우 큐(223), TBQ(215), FCB 프리 큐(222)와 같은 큐에서 각각의 큐 내에서 동시적으로 임시적으로 상주할 수 있다.

Claims (11)

  1. 데이터 프레임을 프로세싱하는 프로세서를 포함하는 시스템에 있어서,
    상기 프로세서는,
    상기 데이터 프레임을 수신 및 송신하는 데이터 이동 유닛(data flow unit)━상기 각각의 데이터 프레임은 관련 프레임 제어 블록을 가지며, 상기 각각의 프레임 제어 블록은 제 1 제어 블록 및 제 2 제어 블록을 포함함━과,
    상기 데이터 이동 유닛에 접속된 제 1 메모리━상기 제 1 메모리는 제 1 프레임 버퍼 제어 유닛을 포함하며, 상기 제 1 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 1 제어 블록을 위한 필드 정보를 저장함━와,
    상기 데이터 이동 유닛에 접속된 스케줄러(scheduler)━상기 스케줄러는 상기 데이터 이동 유닛에 의해 수신된 데이터 프레임을 스케줄링하며, 상기 스케줄러는 제 2 메모리를 포함하고, 상기 제 2 메모리는 제 2 프레임 버퍼 제어 유닛을 포함하며, 상기 제 2 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 2 제어 블록을 위한 필드 정보를 저장함━를 포함하는
    시스템.
  2. 제 1 항에 있어서,
    상기 데이터 이동 유닛은 다수의 큐를 포함하고, 하나 이상의 상기 프레임제어 블록이 상기 다수의 큐 중 하나의 큐에 상주하는(reside)
    시스템.
  3. 제 2 항에 있어서,
    상기 데이터 이동 유닛의 상기 다수의 큐 중 하나의 큐에 상주하는 상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보는 상기 제 1 메모리의 상기 제 1 프레임 버퍼 제어 유닛 내에 저장되는
    시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 스케줄러는 제 1 큐를 포함하며, 상기 하나 이상의 프레임 제어 블록이 상기 제 1 큐에 상주하는
    시스템.
  5. 제 4 항에 있어서,
    상기 제 1 큐에 상주하는 상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보는 상기 제 2 메모리의 상기 제 2 프레임 버퍼 제어 유닛 내에 저장되는
    시스템.
  6. 프레임 제어 블록 내에서 요구된 정보를 획득하기 위해 메모리로의 액세스의 수를 감소시키는 방법에 있어서,
    상기 프레임 제어 블록 각각은 제 1 제어 블록 및 제 2 제어 블록을 포함하고, 상기 제 1 제어 블록은 제 1 메모리와 연관되며, 상기 제 2 제어 블록은 제 2 메모리와 연관되고, 상기 제 1 메모리는 제 1 프레임 버퍼 제어 유닛을 포함하고, 상기 제 1 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 1 제어 블록을 위한 필드 정보를 저장하며, 상기 제 2 메모리는 제 2 프레임 버퍼 제어 유닛을 포함하고, 상기 제 2 프레임 버퍼 제어 유닛은 상기 프레임 제어 블록의 상기 제 2 제어 블록을 위한 필드 정보를 저장하며,
    상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해 상기 제 1 메모리를 액세스하는 단계와,
    상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해 상기 제 2 메모리를 액세스하는 단계를 포함하는
    액세스의 수를 감소시키는 방법.
  7. 제 6 항에 있어서,
    상기 하나 이상의 프레임 제어 블록은 데이터 이동 유닛 내의 다수의 큐 중 하나의 큐에 상주하며,
    상기 데이터 이동 유닛은 상기 제 1 메모리와 연관된
    액세스의 수를 감소시키는 방법.
  8. 제 7 항에 있어서,
    상기 하나 이상의 프레임 제어 블록이 상기 데이터 이동 유닛 내의 상기 다수의 큐 중 하나의 큐에 상주할 때, 상기 하나 이상의 프레임 제어 블록 중 상기 제 1 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해서 상기 제 1 메모리가 액세스되는
    액세스의 수를 감소시키는 방법.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 하나 이상의 프레임 제어 블록은 스케줄러 내의 큐에 상주하며,
    상기 스케줄러는 상기 제 2 메모리와 연관된
    액세스의 수를 감소시키는 방법.
  10. 제 9 항에 있어서,
    상기 하나 이상의 프레임 제어 블록이 상기 스케줄러 내의 상기 큐에 상주할 때, 상기 하나 이상의 프레임 제어 블록 중 상기 제 2 제어 블록의 필드 내의 정보를 판독 또는 기록하기 위해서 상기 제 2 메모리가 액세스되는
    액세스의 수를 감소시키는 방법.
  11. 컴퓨터 판독가능한 기록 매체 상에 저장되어 컴퓨터 시스템 상에서 동작할 때 상기 컴퓨터 시스템으로 하여금 제 1 항 내지 제 5 항 중 어느 한 항에 따른 시스템을 구현하게 하는 컴퓨터 프로그램 제품.
KR1020037010704A 2001-02-23 2002-02-20 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체 KR100560277B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/792,494 US7072347B2 (en) 2001-02-23 2001-02-23 Assignment of packet descriptor field positions in a network processor
US09/792,494 2001-02-23
PCT/GB2002/000748 WO2002069563A2 (en) 2001-02-23 2002-02-20 Network adapter

Publications (2)

Publication Number Publication Date
KR20030076679A true KR20030076679A (ko) 2003-09-26
KR100560277B1 KR100560277B1 (ko) 2006-03-10

Family

ID=25157073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037010704A KR100560277B1 (ko) 2001-02-23 2002-02-20 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체

Country Status (13)

Country Link
US (1) US7072347B2 (ko)
EP (1) EP1362464B1 (ko)
JP (1) JP3880520B2 (ko)
KR (1) KR100560277B1 (ko)
CN (1) CN100479450C (ko)
AT (1) ATE293864T1 (ko)
AU (1) AU2002232002A1 (ko)
CZ (1) CZ20032126A3 (ko)
DE (1) DE60203785T2 (ko)
ES (1) ES2237667T3 (ko)
HU (1) HUP0303240A3 (ko)
PL (1) PL363474A1 (ko)
WO (1) WO2002069563A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072347B2 (en) 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor
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
US7099325B1 (en) * 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US7535845B2 (en) * 2004-10-28 2009-05-19 Alcatel Lucent Intelligent selective flow-based datapath architecture
US7376809B2 (en) * 2005-03-09 2008-05-20 International Business Machines Corporation Systems and methods for multi-frame control blocks
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US7787463B2 (en) * 2006-01-26 2010-08-31 Broadcom Corporation Content aware apparatus and method
DE102008018670A1 (de) 2008-04-14 2009-10-15 Merck Patent Gmbh Neue Materialien für organische Elektrolumineszenzvorrichtungen
US10225196B2 (en) 2013-02-15 2019-03-05 Nxp Usa, Inc. Apparatus, system and method for controlling packet data flow
CN111654746B (zh) * 2020-05-15 2022-01-21 北京百度网讯科技有限公司 视频的插帧方法、装置、电子设备和存储介质
CN113835891B (zh) * 2021-09-24 2023-05-23 哲库科技(北京)有限公司 资源分配方法、装置、电子设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817054A (en) 1985-12-04 1989-03-28 Advanced Micro Devices, Inc. High speed RAM based data serializers
US5136582A (en) 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5983004A (en) 1991-09-20 1999-11-09 Shaw; Venson M. Computer, memory, telephone, communications, and transportation system and methods
US5604884A (en) 1993-03-22 1997-02-18 Compaq Computer Corporation Burst SRAMS for use with a high speed clock
DE69329709D1 (de) 1993-04-29 2001-01-04 Ibm Verfahren und Gerät für Mehrfachübertragung von Daten in einem Kommunikationssystem
US5699536A (en) * 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
JPH08328949A (ja) 1995-06-06 1996-12-13 Mitsubishi Electric Corp 記憶装置
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
JP3788867B2 (ja) 1997-10-28 2006-06-21 株式会社東芝 半導体記憶装置
US6035360A (en) 1997-10-29 2000-03-07 International Business Machines Corporation Multi-port SRAM access control using time division multiplexed arbitration
JP4182180B2 (ja) * 1999-02-24 2008-11-19 株式会社日立製作所 ネットワーク中継装置及びネットワーク中継方法
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6754216B1 (en) * 2000-05-08 2004-06-22 Nortel Networks Limited Method and apparatus for detecting congestion and controlling the transmission of cells across a data packet switch
US6751704B2 (en) * 2000-12-07 2004-06-15 International Business Machines Corporation Dual-L2 processor subsystem architecture for networking system
US7072347B2 (en) 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor

Also Published As

Publication number Publication date
EP1362464B1 (en) 2005-04-20
CN100479450C (zh) 2009-04-15
DE60203785T2 (de) 2006-03-09
CZ20032126A3 (cs) 2004-01-14
CN1528078A (zh) 2004-09-08
US20020118690A1 (en) 2002-08-29
JP3880520B2 (ja) 2007-02-14
AU2002232002A1 (en) 2002-09-12
EP1362464A2 (en) 2003-11-19
DE60203785D1 (de) 2005-05-25
ES2237667T3 (es) 2005-08-01
WO2002069563A3 (en) 2003-04-17
JP2004530323A (ja) 2004-09-30
HUP0303240A2 (hu) 2003-12-29
KR100560277B1 (ko) 2006-03-10
US7072347B2 (en) 2006-07-04
WO2002069563A2 (en) 2002-09-06
ATE293864T1 (de) 2005-05-15
HUP0303240A3 (en) 2005-05-30
PL363474A1 (en) 2004-11-15

Similar Documents

Publication Publication Date Title
US7930437B2 (en) Network adapter with shared database for message context information
US20070002172A1 (en) Linking frame data by inserting qualifiers in control blocks
US7461214B2 (en) Method and system for accessing a single port memory
US20080013535A1 (en) Data Switch and Switch Fabric
US20030016689A1 (en) Switch fabric with dual port memory emulation scheme
JPH09251437A (ja) 計算機装置及び連続データサーバ装置
KR100560277B1 (ko) 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체
US6681340B2 (en) Efficient implementation of error correction code scheme
US6658546B2 (en) Storing frame modification information in a bank in memory
US7620770B2 (en) Device and method for storing and processing data units
US20040210725A1 (en) Stream memory manager
CN117015764A (zh) 集成计算设备之间的消息通信
US7944930B2 (en) Memory buffering with fast packet information access for a network device
JP2011524038A (ja) 複数のプロセスからメモリ領域へのアクセスを制御する方法、及び、本方法を実現するためのメッセージメモリを備えた通信モジュール
US6847990B2 (en) Data transfer unit with support for multiple coherency granules
US20030081597A1 (en) Dynamic buffering in packet systems

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