KR20040075597A - 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치 - Google Patents

네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치 Download PDF

Info

Publication number
KR20040075597A
KR20040075597A KR1020030011161A KR20030011161A KR20040075597A KR 20040075597 A KR20040075597 A KR 20040075597A KR 1020030011161 A KR1020030011161 A KR 1020030011161A KR 20030011161 A KR20030011161 A KR 20030011161A KR 20040075597 A KR20040075597 A KR 20040075597A
Authority
KR
South Korea
Prior art keywords
packet
unit
information
sdram
network processor
Prior art date
Application number
KR1020030011161A
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 삼성전자주식회사
Priority to KR1020030011161A priority Critical patent/KR20040075597A/ko
Publication of KR20040075597A publication Critical patent/KR20040075597A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크 라인 인터페이스 시스템에서 메모리를 효율적으로 관리하는 방법에 관한 것으로, 종래에는 SRAM에 처리하는 패킷의 저장 위치 정보와 크기 정보와 채널 정보 등을 가진 큐를 저장함으로 인하여, 고가의 SRAM에 저장되는 정보의 양이 많아 시스템의 효율이 떨어지는 문제가 있다.
이에 본 발명은, 시스템에서 처리하는 패킷의 저장 위치 정보는 SRAM에 저장되는 큐에 저장하고, 이외의 패킷의 정보인 크기 정보와 채널 정보 등을 패킷에 저장하여, SRAM에 저장되는 정보의 양을 최소화하여 시스템의 효율을 향상시키는 것이다.

Description

네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그 장치{apparatus and method of information saving in network line interface system}
본 발명은 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그 장치에 관한 것으로, 더욱 자세하게는 데이터 통신 장비의 외부 라인 인터페이스로부터 수신되는 패킷을 처리하는 네트워크 프로세서에서 메모리에 저장하는 정보를 효율적으로 관리하여 메모리의 활용을 최대화하는 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그 장치에 관한 것이다.
일반적으로 네트워크 라인 인터페이스 시스템의 네트워크 프로세서는, 고속으로 데이터를 처리하기 위해 전용 버스(bus)를 가지고 있고, 시스템 제어 관리를 위해 PCI(Peripheral Component Interconnect) 버스 인터페이스도 가지고 있다.
버스란, 컴퓨터나 네트워크에 있어서, 회선에 연결된 모든 장치들에 신호가 분배되거나 또는 취득되는 전송통로를 말한다.
그리고, PCI 버스란, 전용 버스처럼 고속 데이터를 처리할 수는 없지만 수 Mbps ~ 수십 Mbps 정도의 데이터 처리를 하기 위한 것이다,
이러한 네트워크 프로세서의 기능은, 크게 패킷 분류, 패킷 수정, 큐(queue )/정책 관리, 패킷 포워딩으로 분류 할 수 있다.
1) 패킷 분류 기능이란, 주소(address)나 프로토콜 등의 속성에 따라서 패킷을 구별하는 것이다.
2) 패킷 수정 기능이란, 인터넷 프로토콜(Internet Protocol : IP), 비동기 전송 모드 (Asynchronous Transfer Mode : ATM) 등의 여러 프로토콜에 따르기 위해 패킷을 수정하는 것이다.
3) 큐/정책 관리 기능이란, 특정 용도에 따라 패킷을 큐에 삽입하거나 획득하는 동작, 또는 스케쥴링(scheduleing) 할 때, 디자인 정책을 반영하는 것이다.
4) 패킷 포워딩 기능이란, 스위치 패브릭(fabric)으로부터 패킷을 수신하거나 송신하고, 해당 패킷의 목적지 주소로 전송하기 위한 패킷 포워딩 및 라우팅을 수행하는 것이다.
도 1은 일반적인 네트워크 라인 인터페이스 시스템의 구성을 설명하는 블록도이다.
도 1을 참조하면, 네트워크 라인 인터페이스 시스템(100)은 물리 매체 의존 모듈(10)과, 입출력 프로세서 모듈(20)을 구비하고 있다.
물리 매체 의존 모듈(10)은 라인 인터페이스/프레이머부(framer)(11)와, 하이 레벨 데이터 링크 제어(High-Level Data Link Control : 이하 'HDLC'라 칭한다)부(12)와, 로직 디바이스부(14)와, 인접 매체 연결부(13)를 구비하고 있다.
입출력 프로세서 모듈(20)은 인접 매체 연결부(13')와, 이더넷 매체 접근 제어부(21)와, 네트워크 프로세서(22)와, 에스디램(synchronous dynamic random access memory : 이하 'SDRAM'이라 칭한다)(24)와, 에스램(static random access memory : 이하 'SRAM'이라 칭한다.)(23)와, 호스트 중앙 처리부(25)를 구비하고 있다.
네트워크 프로세서(22)는 코어부(22a)와 마이크로 엔진부(22b)와 프로토콜 제어부(22c)를 구비하고 있다.
라인 인터페이스/프레이머부(11)는 임의의 외부 라인으로부터 전기 신호를 수신하고, 그 수신된 전기 신호를 디지털 신호(Digital Signal-n : DS-n) 규격의 패킷을 변환한다.
HDLC부(12)는 라인 인터페이스/프레이머부(11)에서 변환된 패킷을 수신하여, 그 패킷을 처리한다.
즉, 변환된 데이터 패킷은 네트워크를 통해 송신하고, 도착지에서는 성공적으로 도착하였는지 여부를 확인한다.
이러한 데이터 패킷의 처리 작업은, HDLC 프로토콜에 따라 데이터 패킷 내에데이터 흐름을 제어하고 에러를 보정할 수 있도록 하기 위한 정보를 끼워 넣음으로써 이루어진다.
HDLC 프로토콜이란, 데이터 통신 'OSI' 7계층 모델의 제'2' 계층인 데이터 링크 계층에서 사용되는 전송 프로토콜이며, 'X.25' 패킷 스위칭 네트워크에서 사용된다.
그리고, HDLC는, 패킷이라고 불리는 단위의 데이터를 가지고, 이러한 패킷을 송신지에서는 네트워크를 통해 송신하고, 도착지에서는 패킷이 성공적으로 도착하였는지를 검증하며, 데이터 패킷 내에 데이터 흐름을 제어하고 에러를 보정할 수 있도록 하기 위한 정보를 끼워 넣는 것이다.
인접 매체 연결부(13)는 물리 매체 의존 모듈(10)과 입출력 프로세서 모듈(20)간의 신호 선이 연결되도록 하여 패킷의 교환이 가능하도록 한다.
로직 디바이스부(14)는 라인 인터페이스/프레이머부(11)의 로컬 버스를 인접 매체 연결부의 PCI 버스간의 접속을 연결한다.
이더넷 매체 접근 제어부(21)는 기가비트 이더넷 패킷을 처리하는 2계층 디바이스로써, 다른 네트워크 라인 시스템과의 연결을 수행한다.
네트워크 프로세서(22)는 이더넷 매체 접근 제어부(21)와 연결되어, 물리 매체 의존 모듈(10)의 HDLC부(12)로부터 수신되는 패킷을 처리한다.
SDRAM(24)은 네트워크 프로세서(22)가 수신되는 패킷을 처리할 때 실행되는 프로그램 코드와 프로그램 데이터와 라인 인터페이스/프레이머부(11)에서 수신한 패킷을 저장한다.
SRAM(23)은 네트워크 프로세서(22)의 코어부(22a)와 마이크로 엔진부(22b)간 인터페이스에 사용되는 큐들(Queues)과 디스크립트 테이블(Descriptor Table)과 네트워크 프로세서(22)에서 수행하는 포워딩에 사용되는 정보를 테이블 형식으로 가지고 있는 패킷 포워딩 테이블(Packet Forwarding Table) 등을 저장한다.
호스트 중앙 처리부(25)는 라인 인터페이스/프레이머부(11)가 수신한 패킷에 대한 처리를 수행할 때 사용되는 라우팅 프로토콜이나 시스템 관리 프로그램들을 수행한다.
네트워크 프로세서(22)는 패킷 처리 작업의 유연성을 위하여 마이크로 엔진부(22b)와, 코어부(22a)와, 프로토콜 제어부(22c)를 구비한다.
일반적으로 네트워크 프로세서(22)는, 패킷 처리 작업의 유연성과 그 처리 한계를 극복하기 위해 내부에 여러 개의 패킷 처리 전용 RISC(Reduced Instruction Set Computer) 프로세서를 가지고, 이 패킷 처리 전용 RISC 프로세서는 제조 벤더에 따라 여러 가지 명칭으로 명명되고, 일반적으로 마이크로 엔진부(22b)라 명명한다.
코어란, 일반적으로 핵심적이고 중심적인 것을 말하며, 네트워크 프로세서(22)의 코어부(11a)는 주요 처리 회로를 말한다.
도 2는 일반적인 네트워크 프로세서의 패킷 처리 방법을 설명하기 위한 것이고, 도 2를 참조하면, 네트워크 프로세서(22)는 코어부(22a)와, 마이크로 엔진부(22b)와, 프로토콜 제어부(22c)를 구비하고 있다.
프로토콜 제어부(22c)는 피피피(Point-to-Point Protocol : 이하 'PPP'라 칭한다.) 프로토콜에 따라 코어부(22a)와 마이크로 엔진부(22b)의 패킷 교환을 제어한다.
PPP란, 두 개의 직렬 인터페이스를 이용하여 통신을 할 때 필요한 프로토콜이다.
코어부(22a)는 PPP 데이터 패킷을 마이크로 엔진부(22b)에 전송하기 위한 3 종류의 큐(queue)(30, 31, 32)를 사용함을 알 수 있다.
즉, 마이크로 엔진부(22b)로부터 수신되는 큐(Tx Q)(30)와, 전송하는 큐(Rx Q)(31)와, 전송하고 다시금 수신되는 큐(Rx Free Q)(33)가 사용됨을 알 수 있다.
각 큐(30, 31, 32)는 패킷 포인트 정보 필드(30a)와, 패킷 사이즈 정보 필드(30b)와, 채널 넘버 정보 필드(30c)를 가지고 있으며, 패킷 유실을 방지하기 위하여 각 큐(30, 31, 32)의 크기는 충분한 항목 정보를 포함할 수 있어야 한다.
패킷 포인트 정보 필드(30a)는 수신된 패킷이 SRAM(24)에 저장되어 있는 위치 정보를 가지고, 패킷 사이즈 정보 필드(30b)는 패킷의 크기 정보를 가지고, 채널 넘버 정보 필드(30c)는 수신된 패킷에 관련된 채널 정보를 가진다.
이러한 방법은, 네크워크 프로세서(22)에 연결된 RAM의 각각의 특성에 맞춰 SRAM(23)에는 네트워크 프로세서(22)의 코어부(22a)와 마이크로 엔진부(22b)간 인터페이스에 사용되는 큐들과 디스크립트 테이블(Descriptor Table), 패킷 포워딩 테이블(Packet Forwarding Table) 등이 저장되고, SDRAM(24)에는 네트워크 프로세서(22)에서 실행될 프로그램 코드와 프로그램 데이터, 라인 인터페이스로부터 수신되는 패킷 등이 저장된다.
이때, 네트워크 프로세서(22)의 고유의 기능인 패킷 포워딩의 성능을 향상시키고자 한다면, 네트워크 프로세서(22)에 연결된 SRAM(23)에 패킷 포워딩 테이블과 디스크립트 테이블 정보를 최대로 저장하여야 한다.
즉, SRAM(23)은 데이터를 보존하기 위해 케패시터(capacitor)가 아닌 플립플롭(FLIP-FLOP)을 사용하여 재충전 과정이 필요 없기 때문에 SDRAM(24)에 비해 빠른 속도를 가지는 장점이 있지만, 가격은 비싸므로, SRAM(23)에 저장하는 정보를 최소화하여 시스템의 SRAM(23)의 활용 효율을 향상시킬 필요성이 대두되고 있다.
따라서, 본 발명은 상기와 같은 필요성을 충족시키기 위하여 고안된 것으로, 네트워크 프로세서에서 수신되는 패킷의 포워딩을 위한 정보를 가지는 SRAM에 저장되는 정보의 용량을 최소화하여 시스템의 메모리 활용 효율을 최대화하는 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그 장치를 제공하는 것에 그 목적이 있다.
도 1은 일반적인 네트워크 라인 인터페이스 시스템의 구성을 설명하는 블록도.
도 2는 일반적인 네트워크 프로세서의 패킷 처리 방법을 설명하는 개략도.
도 3은 본 발명의 바람직한 일실시예에 따른 네트워크 라인 인터페이스 시스템의 정보 저장 방법을 설명하는 개략도.
도 4는 일반적인 패킷의 구조를 설명하는 구조도.
도 5는 본 발명의 바람직한 일실시예에 따른 패킷의 구조를 설명하는 구조도.
<도면의 주요 부분에 대한 부호의 설명>
10 : 물리 매체 의존 모듈 11 : 라인 인터페이스/프레이머부
12 : 하이 레벨 데이터 링크 제어(High-Level Data Link Control)부
13 : 인접 매체 연결부 14 : 로직 디바이스부
20 : 입출력 프로세서 모듈(Input/Output Processor module)
21 : 이더넷 매체 접근 제어(ethernet Media Access Control)부
22 : 네트워크 프로세서(network processor)
22a : 코어(core)부 22b : 마이크로 엔진(micro engine)부
22c : 프로토콜 제어부
23 : SRAM(static random access memory)
24 : SDRAM(synchronous dynamic random access memory)
25 : 호스트 중앙 처리부 30, 31, 32 : 큐
30a : 패킷 포인트 정보 필드 30b : 패킷 사이즈 정보 필드
30c : 채널 넘버 정보 필드 100 : 네트워크 라인 인터페이스 시스템
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 네트워크 라인 인터페이스 시스템의 정보 저장 장치는, SDRAM에는 상기 네트워크 프로세서에서 패킷을 처리할 때 사용되는 프로그램 정보와, 패킷의 처리 관련 정보를 가진 패킷이 저장되고, SRAM에는 SDRAM에 저장된 패킷의 공유를 위한 저장 위치 정보를 가진 큐와,디스크립트 테이블(descriptor table)과, 패킷 포워딩 테이블(packet forwarding table)이 저장되는 것을 특징으로 한다.
또한 본 발명의 다른 측면에 따른 네트워크 라인 인터페이스 시스템의 정보 저장 방법은, 임의의 패킷이 수신되는 경우, 이를 처리하기 위한 프로그램 코드와, 프로그램 데이터와, 수신된 패킷을 상기 SDRAM에 저장하는 단계와, 수신된 패킷의 포워딩 하기 위한 패킷 포워딩 테이블과, 디스크립터 테이블 SRAM에 저장하는 단계와, 패킷의 공유를 위한, 위치 정보를 기반으로 큐를 생성하여, 그 큐를 상기 SRAM에 저장하는 단계와, 패킷의 공유를 위한 위치 정보 이외의 패킷의 처리 관련 정보를 패킷에 첨가하여 SDRAM에 저장하는 단계로 이루어진다.
이하 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다.
도 3은 본 발명의 바람직한 일실시예에 따른 네트워크 라인 인터페이스 시스템의 정보 저장 방법을 설명하기 위한 개략도이다.
도 3을 참조하면, 네트워크 프로세서(22)의 코어부(22a)와 마이크로 엔진부(22b)간에 교환되는 큐(30, 31, 32)에 패킷 포인트 정보 필드(30a)만 있음을 알 수 있다.
먼저 외부 라인으로부터 신호를 수신하는 경우에 대해 잠시 살펴보자.
외부 라인으로부터 라인 인터페이스/프레이머부(11)가 전기적 신호를 수신하여 패킷으로 변환하고, HDLC부(12)로 전송한다.
HDLC부(12)는 라인 인터페이스/프레이머부(11)로부터 수신되는 패킷을 메모리 직접 참조(Direct Memory Access : 이하 'DMA'라 칭한다) 방식으로 SDRAM(24)에 전송하여 저장한다.
DMA는, 연결된 주변 장치로부터 수신되는 데이터를 직접 메모리에 전송하는 것을 말하며, 본 발명에서는 라인 인터페이스/프레이머부(11)로부터 수신되는 패킷을 직접 SDRAM(24)에 저장하는 것을 말한다.
그리고, 변환된 패킷은 네트워크 프로세서(22)로 전송한다.
네트워크 프로세서(22)의 마이크로 엔진부(22b)는 수신되는 패킷을 처리한다.
이때, 네트워크 프로세서(22)의 코어부(22a)와 마이크로 엔진부(22b)는 패킷을 처리하기 위하여 각기 별개의 디스크립터 테이블(descriptor table)을 가지고 있으며, 이러한 디스크립터 테이블(descriptor table)은 여러 정보를 가지고 있지만, 가장 중요한 것이 SDRAM(24)에 저장되는 패킷의 시작 주소 정보이고, 그 시작 주소를 코어부(22a)와 마이크로 엔진부(22b)에 서로 일치시켜 주면, 패킷은 공유될 수 있다.
본 발명의 상세 설명에서는 일례로 네트워크 프로세서(22)의 마이크로 엔진부(22b)에서 요구하는 패킷 시작 주소를 HDLC부(12)에게 알려 주는 방법에 대하여 설명한다.
즉, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 패킷의 빠른 처리를 위해 시작 주소가 8바이트에 정렬되는 것을 요구하기 때문에, 이를 고려하여 패킷의 시작 주소를 HDLC부(12)에 알린다.
도 4는 일반적인 패킷의 구조를 설명하는 것이고, 도 4에 도시된 바와 같이, 종래에는 프로토콜 필드 앞에 HDLC 헤더 정보 필드(a)가 있음을 알 수 있다.
그러나, HDLC 헤더 정보 필드(a)의 정보는, 이미 네트워크 프로세서(22)에 수신되기 전에 HDLC부(12)에서 분석되어 파악된 정보이므로 의미 없는 정보이다.
한편, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 수신되는 패킷의 형태를 이더넷 패킷 형태를 요구하지만, HDLC부(12)는 HDLC 패킷 형태의 패킷을 제공한다.
이와 같은 이더넷 패킷과 HDLC 패킷은, 헤더 정보의 차이에 의해 구별되고, 헤더 정보의 차이는 헤더의 크기 차이에 의해 발생한다.
즉, 이더넷 패킷은 14바이트의 헤더를 가지고 있으며, HDLC 패킷은 4바이트의 헤더를 가진다.
본 발명의 상세 설명에서는 일례를 들어, HDLC부(12)가 SDRAM(24)에 데이터를 전송할 때, 네트워크 프로세서(22)의 마이크로 엔진부(22b)가 요구하는 시작 주소에서 10바이트를 비워 두고, 그 다음부터 HDLC 패킷을 저장 영역으로 사용하는 경우에 대하여 설명한다.
도 5는 본 발명의 바람직한 일실시예에 따른 패킷의 구조를 설명하는 것이고, 도 5에 도시된 바와 같이, HDLC 헤더 정보 필드(a)에 저장되어 있는 의미 없는 정보를 삭제하고, 그 필드 영역(a)에 패킷 크기 정보와 채널 번호 정보를 저장할 수 있음을 알 수 있다.
즉, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 HDLC 패킷 헤더 4바이트를 지우고 나서 비워 둔 10바이트를 포함하여 14바이트를 이더넷 헤더로 사용 할 수 있음을 알 수 있다.
HDLC부(12)는 DMA 기능을 이용하여 SDRAM(24)에 패킷을 전송하고, 전송이 완료되었음을 코어부(22a)에 알린다.
그리고, HDLC부(12)는 HDLC 헤더(header)를 분석하여, 그 분석 결과, 제어 타입(control type)인 경우, 네트워크 프로세서(22)의 프로토콜 제어부(22c)로 패킷을 보낸다.
한편, HDLC부(12)는 HDLC 헤더를 분석한 결과, 데이터 타입(data type)인 경우, 네트워크 프로세서(22)의 마이크로 엔진부(22b)에게 SDRAM(24)에 저장된 패킷을 처리하도록 한다.
이와 같이 HDLC부(12)는, SDRAM(24)에 저장된 패킷이 제어 패킷인지 데이터 패킷인지 구별을 해야 하는데, 이는 HDLC 헤더에 있는 프로토콜 필드 값을 보고 알 수 있다.
표 1은 본 발명에 따른 패킷의 프로토콜 필드의 값에 따른 패킷 형식을 구분하는 방법을 설명하기 위한 것이다.
프로토콜 정보(information) comment
0x8021 IP Control Protocol control packet
0x802b IPX Control Protocol control packet
0x8057 IPv6 Control Protocol control packet
0x80fd Compression Control Protocol control packet
0xc021 Link Control Protocol control packet
0xc023 Password Authentication Protocol control packet
0xc223 Cryptographic Handshake Authentication Protocol control packet
0x0021 Internet Protocol data packet
0x002b IPX Protocol data packet
0x00fd Compressed packet data packet
0x0057 IPv6 data packet
0x0023 OSI Network Layer data packet
표 1에 설명되어지는 것과 같이, HDLC부(12)는 도 5에서 설명되어지는 프로토콜 필드 영역의 값을 파악하여, 제어 패킷 또는 데이터 패킷인지를 구별할 수 있음을 알 수 있다.
HDLC부(12)는 패킷 분석을 수행하고, 제어 패킷인 경우, 패킷을 네트워크 프로세서(22)의 코어부(22a)에서 처리하도록 하고, 데이터 패킷인 경우, 네트워크 프로세서(22)의 마이크로 엔진부(22b)에서 처리하도록 한다.
이와 같이 제어 패킷을 네트워크 프로세서(22)의 코어부(22a)에서 처리하는 이유는, 제어 패킷의 경우 그 종류에 따라 처리해야 하는 방법이 너무나 다양하기 때문이다.
즉, 제어 패킷을 처리하기 위한 구현은, 어셈블리 언어(assembly language)와 같은 저급(low language) 언어로 구현하기가 복잡하기 때문에, 본 발명의 상세 설명에서는 이미 구현되어 있는 코어부(22b)에서 제어 패킷을 처리하는 것을 일례로 들어 설명한다.
반면, 데이터 패킷은 빠른 속도로 처리해야 하기 때문에, 네트워크 프로세서(22)의 마이크로 엔진부(22b)에서 처리하도록 한다.
그리고, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 SDRAM(24)에서 패킷을 가져와서 IP 패킷 헤더 프로세싱(header processing)과 룩업(lookup)을 수행하고, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 룩업을 수행하고, 해당 출력 포트로 패킷을 출력한다.
한편, 타 네트워크 라인 인터페이스 시스템으로부터 패킷을 수신하는 경우에 대해 잠시 살펴보자.
네트워크 프로세서(22)의 마이크로 엔진부(22b)는 이더넷 매체 접근 제어부(21)를 통해 이더넷 패킷을 수신한다.
그리고, 네트워크 프로세서(22)의 마이크로 엔진부(22b)는 수신한 이더넷 패킷을 SDRAM(24)에 저장한다.
네트워크 프로세서(22)의 마이크로 엔진부(22b)는 수신한 패킷으로부터 IP 헤더 프로세싱 및 룩업을 수행하고, 네트워크 프로세서(22)의 코어부(22a)에게 패킷을 처리하도록 인터럽트(interrupt)를 통해 알린다.
네트워크 프로세서(22)의 코어부(22a)는 이더넷 패킷을 HDLC 패킷으로 변환하고, HDLC부(12)에 패킷이 있음을 알린다.
HDLC부(12)는 SDRAM(24)으로부터 HDLC 패킷을 수신하여 라인 인터페이스/프레이머부(11)로 전송한다.
네트워크 프로세서(22)의 코어부(22a)와 마이크로 엔진부(22b)간에 생성하여 교환하는 큐에 대해 잠시 살펴보자.
먼저, 패킷을 코어부(22a)와 마이크로 엔진부(22b)간에 전송하기 위하여 3 종류의 큐(30, 31, 32)를 사용함을 알 수 있다.
그리고, 각 큐(30, 31, 32)는 한 개의 필드, 즉 패킷 포인터 정보 필드 (30a)를 항목으로 하여 SRAM(23)에 저장하여, SRAM(23)에 저장되는 정보의 양을 최소화함을 알 수 있다.
SDRAM(24)에 저장된 패킷 포인트 정보를 기반으로 큐를 생성하고, 그 이외의 정보는 SDRAM(24)에 저장되는 패킷에 저장하여, SRAM(23)에 저장되는 정보의 양을 최소화한다.
즉, SRAM(23)에 저장되는 정보의 양을 최소화하여 다른 중요한 용도, 일례를 들면, 포워딩 테이블 등을 SRAM(23)에 저장할 수 있도록 하여, SRAM(23)의 효용성을 최대로 높이는 것이다.
네트워크 프로세서(22)의 코어부(22a)로부터 마이크로 엔진부(22b)간의 큐 교환을 살펴보면, 데이터 전송을 위하여 Rx 큐(31)를 사용하고, 마이크로 엔진부(22b)는 Rx 큐(31)를 항상 체크하고 있다가 Rx 큐(31)에 새로운 패킷이 들어오면 처리한다.
이 때, 코어부(22a)는 SDRAM(24)에 저장된 패킷에 패킷의 크기 정보와 채널 번호 정보를 저장하고, Rx 큐(31)의 항목에는 패킷 포인터 정보를 저장한다.
마이크로 엔진부(22b)에서 처리가 끝난 패킷은 Rx Free 큐(32)에 들어가며,이를 인터럽트를 통해 코어부(22a)에 알려 준다.
코어부(22a)는 사용이 끝난 HDLC 패킷이 저장된 SDRAM(24)의 저장 영역을 재사용하기 위해 해제한다.
마이크로 엔진부(22b)로부터 코어부(22a)로의 패킷은 Tx 큐(30)에 들어간다.
마이크로 엔진부(22b)는 외부 인터페이스로 전송할 패킷으로부터 패킷 크기와 채널 번호를 쓰고 Tx 큐(30)에 패킷 포인터를 기록한 후에 인터럽트를 통해 코어부(22a)에게 송신할 데이터가 있음을 알려 준다.
코어부(22a)는 패킷을 처리하고, 처리된 패킷이 저장된 영역을 재사용하기 위하여 해제해야 한다.
이상에서 본 발명은 기재된 구체 예에 대해서만 상세히 설명하였지만 본 발명의 기술 사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.
상기한 바와 같이, 본 발명에 따르면, 네트워크 프로세서에서 포워딩을 위해 생성되는 큐에 불필요한 정보를 대신하여 필요한 정보를 저장함으로써, SRAM에 저장되는 정보의 용량을 최소화하여 시스템의 효율을 향상시키는 효과가 있다.

Claims (4)

  1. 네트워크 프로세서와, SRAM과, SDRAM을 구비하여, 임의 수신되는 패킷을 처리하는 네트워크 라인 인터페이스 시스템에 있어서,
    상기 SDRAM에는 상기 네트워크 프로세서에서 상기 패킷을 처리할 때 사용되는 프로그램 정보와, 상기 패킷의 처리 관련 정보를 가진 패킷이 저장되고, 상기 SRAM에는 상기 SDRAM에 저장된 패킷의 공유를 위한, 저장 위치 정보를 가진 큐와, 디스크립트 테이블(descriptor table)과, 패킷 포워딩 테이블(packet forwarding table)이 저장되는 것을 특징으로 하는 네트워크 라인 인터페이스 시스템의 정보 저장 장치.
  2. 제 1항에 있어서, 상기 패킷의 처리 관련 정보를 가진 패킷은,
    상기 수신된 패킷의 헤더 필드에서 이미 분석되어 의미 없는 정보를 삭제하고, 그 헤더 필드에 상기 패킷의 처리 관련 정보를 저장하는 것을 특징으로 하는 네트워크 라인 인터페이스 시스템의 정보 저장 장치.
  3. 제 1항에 있어서, 상기 네트워크 프로세서는,
    상기 패킷이 상기 HDLC부로부터 수신되는 경우, 상기 패킷을 처리하고, 상기패킷의 공유를 위한 저장 위치 정보를 기반으로 큐를 생성하고, 기타 송수신 관련 정보는 상기 패킷에 저장하는 코어부와,
    상기 패킷이 타 네트워크 라인 인터페이스 시스템으로부터 수신되는 경우, 상기 패킷을 처리하고, 상기 패킷의 공유를 위한 저장 위치 정보를 기반으로 큐를 생성하고, 기타 송수신 관련 정보는 상기 패킷에 저장하는 마이크로 엔진부와,
    상기 코어부와 마이크로 엔진부간의 정보 교환이 가능하도록 하는 프로토콜 제어부를 포함하는 네트워크 라인 인터페이스 시스템의 정보 저장 장치.
  4. 네트워크 프로세서와, SRAM과, SDRAM을 구비하여 이루어지는 네트워크 라인 인터페이스 시스템에서, 임의 수신되는 패킷의 정보를 저장하는 방법에 있어서,
    임의의 패킷이 수신되는 경우, 이를 처리하기 위한 프로그램 코드와, 프로그램 데이터와, 수신된 패킷을 상기 SDRAM에 저장하는 단계와,
    상기 수신된 패킷의 포워딩 하기 위한 패킷 포워딩 테이블과, 디스크립터 테이블 SRAM에 저장하는 단계와,
    상기 패킷의 공유를 위한, 위치 정보를 기반으로 큐를 생성하여, 그 큐를 상기 SRAM에 저장하는 단계와,
    상기 패킷의 공유를 위한 위치 정보 이외의 상기 패킷의 처리 관련 정보를 상기 패킷에 첨가하여 상기 SDRAM에 저장하는 단계를 포함하여 이루어지는 네트워크 라인 인터페이스 시스템의 정보 저장 방법.
KR1020030011161A 2003-02-22 2003-02-22 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치 KR20040075597A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030011161A KR20040075597A (ko) 2003-02-22 2003-02-22 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030011161A KR20040075597A (ko) 2003-02-22 2003-02-22 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치

Publications (1)

Publication Number Publication Date
KR20040075597A true KR20040075597A (ko) 2004-08-30

Family

ID=37361857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030011161A KR20040075597A (ko) 2003-02-22 2003-02-22 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치

Country Status (1)

Country Link
KR (1) KR20040075597A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100645537B1 (ko) * 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
KR101251681B1 (ko) * 2005-04-13 2013-04-05 소니 주식회사 정보 처리 장치 및 정보 처리 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100645537B1 (ko) * 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
KR101251681B1 (ko) * 2005-04-13 2013-04-05 소니 주식회사 정보 처리 장치 및 정보 처리 방법

Similar Documents

Publication Publication Date Title
US6570884B1 (en) Receive filtering for communication interface
US7245627B2 (en) Sharing a network interface card among multiple hosts
US6526446B1 (en) Hardware only transmission control protocol segmentation for a high performance network interface card
US8208470B2 (en) Connectionless packet data transport over a connection-based point-to-point link
US8949472B2 (en) Data affinity based scheme for mapping connections to CPUs in I/O adapter
US6728213B1 (en) Selective admission control in a network device
US9300597B2 (en) Statistics module for network processors in virtual local area networks
CN113709047B (zh) 一种汽车域控制器数据转发系统及方法
US20040213243A1 (en) Transmission components for processing VLAN tag and priority packets supported by using single chip&#39;s buffer structure
US8924605B2 (en) Efficient delivery of completion notifications
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
US8959265B2 (en) Reducing size of completion notifications
US7580410B2 (en) Extensible protocol processing system
US8090893B2 (en) Input output control apparatus with a plurality of ports and single protocol processing circuit
EP1070403A1 (en) Method of validation and host buffer allocation for unmapped fibre channel frames
JP2000235536A (ja) データ通信方式及び装置
CN108614792A (zh) 1394事务层数据包存储管理方法及电路
CN116471242A (zh) 基于rdma的发送端、接收端、数据传输系统及方法
JP4209186B2 (ja) パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ
KR20040075597A (ko) 네트워크 라인 인터페이스 시스템의 정보 저장 방법 및 그장치
US7751422B2 (en) Group tag caching of memory contents
CN108712242B (zh) 分组设备内提升信令处理能力的系统及方法
CN112702313A (zh) 高速udp数据发送系统及方法
KR100454971B1 (ko) 네트웍 인터페이스 라인 카드 시스템
WO2024060247A1 (zh) 基于蓝牙通信的数据交互方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application