KR100454971B1 - 네트웍 인터페이스 라인 카드 시스템 - Google Patents
네트웍 인터페이스 라인 카드 시스템 Download PDFInfo
- Publication number
- KR100454971B1 KR100454971B1 KR10-2002-0066923A KR20020066923A KR100454971B1 KR 100454971 B1 KR100454971 B1 KR 100454971B1 KR 20020066923 A KR20020066923 A KR 20020066923A KR 100454971 B1 KR100454971 B1 KR 100454971B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- pci
- bus
- network
- framer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/2898—Subscriber equipments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 PCI(Peripheral Component Interconnect) 버스를 가진 네트웍 프로세서와 PCI 버스를 가진 데이터 링크 디바이스를 사용하여 데이터 통신 장비의 네트웍 인터페이스 라인 카드 시스템에 있어서, 외부 라인에서 들어오는 전기 신호로부터 DS(Digital Signal)-n 규격의 데이터 프레임을 변환하는 LIU(Line Interface Uint)/프레이머(Framer), 상기 LIU/프레이머에 연결되고 HDLC(High-level Data Link Control) 처리를 담당하는 HDLC 컨트롤러(120), 상기 LIU/프레이머에 연결되어 상기 LIU/프레이머의 로컬버스를 PCI 버스와 연결해 주는 CPLD((Complex Programmable Logic Device), 및 커넥터를 통하여 입출력 프로세서 모듈에 있는 PCI 브리지와 연결된 PCI 브리지를 포함하는 물리매체 의존(PMD: Physical Media Dependent) 모듈과, 커넥터를 통하여 상기 물리매체 의존 모듈에 있는 PCI 브리지와 연결된 PCI 브리지, 기가비트 이더넷 프레임을 처리하는 2계층 디바이스인 기가비트 이더넷 MAC(Media Access Control), 상기 기가비트 이더넷 MAC에 연결되어 상기 HDLC 컨트롤러에서 들어온 데이터 프레임을 처리하는 네트웍 프로세서, 상기 네트웍 프로세서에서 실행될 프로그램 코드와 프로그램 데이터, 라인 인터페이스에서 들어온 패킷 데이터 등이 저장되는 SDRAM(Synchronous Dynamic Random Access Memory), 및 상기 PCI 브리지의 버스에 연결되고 라우팅 프로토콜이나 시스템 관리 프로그램들이 실행되는 호스트 CPU를 포함하는 입출력 프로세서(IOP: Input Output Processor) 모듈을 구비한다.
Description
본 발명은 데이터 통신 장비 내부에서 외부 라인 인터페이스로부터 수신되는 데이터를 데이터 처리 엔진에 전달하고, 데이터 처리 엔진으로부터의 데이터를 외부 라인 인터페이스를 통해 송신하는 장치 및 방법에 관한 것이다. 특히, 본 발명은 데이터 처리 엔진이 PCI(Peripheral Component Interconnect) 버스 인터페이스와 CPU 코어(core)를 포함하는 네트웍 프로세서이고, 외부 인터페이스와 연결된 데이터 링크 계층의 디바이스가 PCI 버스 인터페이스를 가지는 경우의 데이터 통신 장비(예: 라우터 등)에서 효율적으로 사용될 수 있다. 즉, 본 발명은 데이터 처리 엔진인 네트웍 프로세서와 데이터 링크 디바이스 사이의 연결을 범용 PCI 버스를 사용함에 있어서 효율을 극대화하기 위한 장치 및 방법에 관한 것이다.
일반적으로 DS-1(1.544Mbps), DS-1E(2.048Mbps), DS-3(44.736Mbps), DS-3E(32.768Mbps) 정도의 대역폭을 가진 네트웍 인터페이스 라인 카드를 구현하는데 가장 많이 사용되는 방법은 PCI 버스 인터페이스를 가진 데이터 링크 디바이스와 PCI 버스에 연결될 수 있는 범용 CPU를 사용하는 것이다. 이는 PCI 버스가 표준화된 버스 구조이기 때문에 이를 지원하는 디바이스들이 많을 뿐 아니라 싼 가격에 구입할 수 있기 때문이다. 그러나 이 방법은 더 높은 대역폭의 네트웍 인터페이스를 구현하는 데는 다음과 같은 한계를 가지고 있다. 첫째 일반적으로 즐겨 사용하는 PCI 디바이스인 경우 32bit, 33MHz에서 동작하기 때문에 버스의 대역폭이 최대1Gbps를 넘지 못한다. 둘째 범용 CPU는 네트웍 패킷을 처리하는데 효율적인 구조로 만들어진 것이 아니기 때문에 높은 대역폭의 네트웍 트래픽을 처리할 수 없다. 일반적으로 현재 많이 사용되는 범용 CPU로는 최대 수백 Mbps 정도의 데이터를 처리할 수 있는 것으로 알려져 있다.
한편, OC-48(2.5Gbps), OC-192(10Gbps) 정도의 높은 대역폭을 처리하기 위해 현재 가장 많이 사용되는 방법은 ASIC을 사용하여 하드웨어로 구현하는 방법이다. 이 방법은 고속의 데이터를 빨리 처리할 수 있는 장점을 가지고 있지만 제조 단가가 비싸다는 것과 하드웨어로 구현되었기 때문에 고객들의 요구에 따라 기능을 유연하게 변경하기 어렵다는 단점이 있다. 이 단점을 극복하면서 높은 대역폭의 네트웍 데이터를 처리하기 위해 네트웍 프로세서라는 개념이 만들어졌으며 지금은 많은 벤더들에 의해 제조 판매되고 있다.
네트웍 프로세서는 유연성을 위해서 하드웨어가 아닌 소프트웨어로 처리할 수 있도록 하였으나, 범용 CPU의 처리 한계를 극복하기 위해 내부에 여러 개의 패킷 처리 전용 RISC 프로세서를 두고 있다. 이 패킷 처리 전용 RISC(Reduced Instruction Set Computer) 프로세서는 제조 벤더에 따라 여러 가지 이름으로 불리지만 본 발명에서는 미국 인텔사에서 사용하는 μ-Engine이라는 용어를 사용하였다. μ-Engine 외에 다른 용도를 위해 범용 CPU core를 함께 칩 안에 내장하고 있는 경우가 많다. 네트웍 프로세서와 데이터 링크 디바이스의 연결을 위해서는 전용 고속 버스가 사용된다. 전용 고속 버스는 네트웍 프로세서들마다 각자 다르게 정의하여 사용하고 있지만 이러한 고속 버스들도 점점 표준화되어 가고 있는 추세에 있다.
네트웍 프로세서를 사용하여 라인 카드를 구현하는 경우 발생하는 문제점 중 하나는 적당한 데이터 링크 디바이스를 구하기 어려울 때가 있다는 것이다. 일반적으로 네트웍 프로세서를 제조하는 업체는 그 네트웍 프로세서와 함께 사용할 수 있는 데이터 링크 디바이스를 함께 제조한다. 그러나 모든 데이터 링크 디바이스를 제조 판매하는 것은 아니기 때문에 그러한 경우 해당 라인 카드를 구현하는 것이 여간 힘들지 않다. 본 발명과 관련된 경우 인텔 네트웍 프로세서 IXP1200을 사용하였으나 전용 버스인 IX-bus에 연결 가능한 DS-1, DS-1E, DS-3, DS-3E를 지원하는 디바이스가 존재하지 않았다. 이러한 경우 일반적인 해결 방안은 같은 기능을 가지면서 다른 버스 구조를 가진 데이터 링크 디바이스 중 하나를 선택하여 FPGA를 이용하여 버스 변환 로직을 설계하여 사용하는 것이다. 그러나 이 경우 라인 카드의 제조 단가가 높아지며 개발 기간도 길어지게 된다.
따라서 본 발명은 많은 네트웍 프로세서가 범용 CPU core를 가지고 있고, PCI 버스 인터페이스를 지원하는데 착안하여 쉽게 구할 수 있는 PCI 버스 인터페이스를 가진 데이터링크 디바이스를 사용하여 네트웍 프로세서를 이용한 라인카드 시스템을 제공함에 있다.
본 발명은 수백 Mbps 이상의 고속 데이터 인터페이스에는 사용하기 어려운 한계를 가지고 있기는 하지만 그 이하의 대역폭에는 효과적으로 사용될 수 있으며본 발명에서 사용한 DS-1, DS-1E, DS-3, DS-3E 라인 카드에는 충분하다. 이러한 라인 카드는 아직 시장의 요구가 많으므로 이 기술이 충분히 활용될 수 있다. 본 발명은 이 뿐만 아니라 HDLC(High-level Data Link Control) 컨트롤러와 네트웍 프로세서 간의 데이터 전송 성능을 최대화하는 방안을 제시한다.
도 1은 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템의 구성을 나타낸 도면,
도 2는 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 프레임 데이터를 수신하는 경우 수신의 각 단계에서 발생하는 데이터 및 제어 신호의 흐름을 나타내는 도면,
도 3은 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 HDLC 컨트롤러와 네트웍 프로세서 μ-Engine간에 송수신되는 데이터 프레임의 구조를 나타낸 도면,
도 4는 본 발명에 따른 프레임의 프로토콜 필드값을 나타낸 도면,
도 5는 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 프레임 데이터를 송신하는 경우 송신의 각 단계에서 발생하는 데이터 및 제어 신호의 흐름을 나타내는 도면,
도 6은 본 발명에 따라 네트웍 프로세서(220) 내에서 네트웍 프로세서 코어와 네트웍 프로세서 μ-Engine 간의 패킷 흐름을 나타내는 도면,
도 7은 네트웍 프로세서 μ-Engine에서 프레임 처리 방법을 나타낸 도면.
전술한 발명의 목적을 달성하기 위해 본 발명은 PCI(Peripheral Component Interconnect) 버스를 가진 네트웍 프로세서와 PCI 버스를 가진 데이터 링크 디바이스를 사용하여 데이터 통신 장비의 네트웍 인터페이스 라인 카드 시스템에 있어서, 외부 라인에서 들어오는 전기 신호로부터 DS(Digital Signal)-n 규격의 데이터 프레임을 변환하는 LIU(Line Interface Uint)/프레이머(Framer), 상기 LIU/프레이머에 연결되고 HDLC(High-level Data Link Control) 처리를 담당하는 HDLC 컨트롤러(120), 상기 LIU/프레이머에 연결되어 상기 LIU/프레이머의 로컬버스를 PCI 버스와 연결해 주는 CPLD((Complex Programmable Logic Device), 및 커넥터를 통하여 입출력 프로세서 모듈에 있는 PCI 브리지와 연결된 PCI 브리지를 포함하는 물리매체 의존(PMD: Physical Media Dependent) 모듈과, 커넥터를 통하여 상기 물리매체 의존 모듈에 있는 PCI 브리지와 연결된 PCI 브리지, 기가비트 이더넷 프레임을 처리하는 2계층 디바이스인 기가비트 이더넷 MAC(Media Access Control), 상기 기가비트 이더넷 MAC에 연결되어 상기 HDLC 컨트롤러에서 들어온 데이터 프레임을 처리하는 네트웍 프로세서, 상기 네트웍 프로세서에서 실행될 프로그램 코드와 프로그램 데이터, 라인 인터페이스에서 들어온 패킷 데이터 등이 저장되는 SDRAM(Synchronous Dynamic Random Access Memory), 및 상기 PCI 브리지의 버스에 연결되고 라우팅 프로토콜이나 시스템 관리 프로그램들이 실행되는 호스트 CPU를 포함하는 입출력 프로세서(IOP: Input Output Processor) 모듈을 구비하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명은 다음의 몇 가지 조건을 만족하는 데이터 통신 장비에서 효율적으로 사용될 수 있다. 그 조건으로는 데이터 처리 엔진이 PCI 버스 인터페이스와 CPU core를 포함하는 네트웍 프로세서라는 것과 외부 인터페이스와 연결된 데이터 링크 계층의 디바이스가 PCI 버스 인터페이스를 가지는 것이다. 본 발명은 데이터 처리 엔진인 네트웍 프로세서와 데이터 링크 디바이스 사이의 연결을 범용 PCI 버스를 사용함에 있어서 효율을 극대화하는 장치 및 방법을 제시한 것이다. 일반적인 네트웍 프로세서는 고속 데이터를 처리하기 위해 전용버스를 가지고 있지만 시스템 제어 관리를 위해 PCI 버스 인터페이스도 가지고 있다. PCI 버스는 전용버스처럼 고속 데이터를 처리할 수는 없지만 수 Mbps ~ 수십 Mbps 정도의 데이터 처리에는 충분하다. PCI 버스 인터페이스를 가진 저속 데이터 링크 디바이스는 많이 존재한다. 본 발명에서는 DS-1, DS-1E, DS-3, DS-3E 규격을 제공하는 HDLC 컨트롤러를 데이터 링크 디바이스로 사용하였기 때문에 이것을 기준으로 본 기술을 설명하지만 위에서언급한 바와 같이 다른 링크 디바이스 및 물리 인터페이스에도 적용 가능하다.
한편, 본 발명에서 네트웍 프로세서란 다음의 기능- 패킷 분류 : 주소, 프로토콜 등의 알려진 속성에 따라서 패킷을 구별하는 기능, 패킷 수정 : IP(Internet Protocol), ATM(Asynchronous Transfer Mode) 등 여러 가지 프로토콜에 따르기 위해 패킷을 수정하는 기능, 큐/정책 관리 : 특정 용도에 따라 패킷을 큐에 넣고 빼는 동작, 스케쥴링 하는 동작을 함에 있어서 디자인 정책을 반영하는 기능, 패킷 포워딩 : 스위치 패브릭으로의 데이터 송수신 및 해당 주소로의 패킷 포워딩 및 라우팅 기능-중 하나 또는 그 이상을 수행할 수 있는 프로그래밍 가능한 집적회로를 의미하며, 미국 특허 제6,404,752호를 참조한다.
네트웍 프로세서란 용어는 본 발명에서는 위에서 정의한 의미로 사용하였으며 많은 반도체 칩 제조업체들이 위의 의미로 위의 기능을 지원하는 반도체 칩을 시장에 판매하고 있다. (이러한 반도체 칩 제조업체로는 인텔, IBM, 모토롤라 등이 있다.)
도 1은 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 네트웍 인터페이스 라인 카드 시스템은 물리매체 의존(PMD:Physical Media Dependent) 모듈(100)과 입출력 프로세서(Input Output Processor, 이하 IOP라고 함) 모듈(200)로 나뉘어 진다. PMD 모듈(100)은 물리 계층 인터페이스에 의존적인 부분으로 물리 계층에 따라 각각 다른 모듈이 존재한다. (예: Fast Ethernet PMD, Gigabit Ethernet PMD, DS-1 PMD, DS-3 PMD, OC-3 PMD,OC-12 PMD 등) IOP 모듈(200)은 네트웍 데이터를 처리하는 공통적인 기능을 수행하는 부분으로 하나의 모듈이 각각의 PMD 모듈에 연결되어 사용될 수 있다. DS(Digital Signal)-n PMD 모듈에는 외부 라인에서 들어오는 전기 신호로부터 DS-n 규격의 데이터 프레임을 변환하는 LIU(Line Interface Uint)/프레이머(Framer)(이하, 'LIU/Framer'이라 함)(110)가 있다. LIU/Framer(110)는 HDLC 컨트롤러(120)와 연결되어 있다. HDLC 컨트롤러(120)는 HDLC 처리를 담당하는 부분으로 PCI 버스를 통하여 PCI 브리지(bridge)(140)에 연결되어 있다. LIU/Framer(110)은 또한 CPLD(Complex Programmable Logic Device)(130)에 연결되어 있다. CPLD(130)는 PCI 버스(132)와 LIU/Framer(110)의 로컬버스(112)를 연결해 주는 기능을 담당한다. IOP(200)에 있는 호스트 CPU(230)나 네트웍 프로세서(NP)(220) 코어는 이 CPLD(130)를 통하여 LIU/Framer(110) 내부의 상태를 알아내거나 필요한 정보를 수정한다.
CPLD(130)도 PCI 브리지(140)에 연결되어 있다. PCI 브리지(140)는 커넥터를 통하여 IOP(200)에 있는 PCI 브리지(210)와 연결된다. 두 PCI 브리지(140, 210)는 전기적인 특성 때문에 사용되었으며 기능적으로는 다른 디바이스들에게 투명하게 보인다. PCI 브리지(210)의 프라이머리 버스(primary bus)(212)에는 여러 디바이스들이 연결되어 있다. 네트웍 프로세서(220)는 HDLC 컨트롤러(120)에서 들어온 데이터 프레임을 처리한다. 네트웍 프로세서(220)에는 기가비트(Giga-bit) 이더넷 MAC(Media Access Control)(240)이 연결되어 있다. 기가비트 이더넷 MAC(240)은 기가비트 이더넷 프레임을 처리하는 2계층 디바이스이다. 네트웍 프로세서(220)에는SDRAM(Synchronous Dynamic Random Access Memory)(250)이 연결되어 있는데 여기에는 네트웍 프로세서에서 실행될 프로그램 코드와 프로그램 데이터, 라인 인터페이스에서 들어온 패킷 데이터 등이 저장된다. PCI 브리지(210)의 프라이머리 버스(212)에 연결된 또 하나의 디바이스는 호스트 CPU(230)이다. 호스트 CPU(230)에는 라우팅 프로토콜이나 시스템 관리 프로그램들이 실행된다. 호스트 CPU(230)에도 SDRAM(260)이 연결되어 있는데 여기에는 호스트 CPU(260)에서 실행될 프로그램 코드와 데이터가 저장된다.
이하 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템의 동작을 프레임 수신과 프레임 송신으로 나누어서 설명한다.
도 2는 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 프레임 데이터를 수신하는 경우 수신의 각 단계에서 발생하는 데이터 및 제어 신호의 흐름을 나타내는 도면이다.
먼저, LIU/Framer(110)로부터 받은 HDLC/PPP 프레임을 HDLC 컨트롤러(120)가 DMA(Direct Memory Access) 기능을 이용하여 SDRAM(250)에 전송한다. 이 때 경로 중간에 있는 PCI 브리지들(140,210)은 데이터를 변경없이 전달한다(①). 구체적으로 HDLC 컨트롤러(120)에서 수신된 HDLC 프레임은 후에 네트웍 프로세서 μ-Engine에 의해 처리된다. HDLC 컨트롤러(120)와 네트웍 프로세서 μ-Engine은 프레임 처리를 위해 서로 별개의 디스크립터 테이블(descriptor table)을 가지고 있다. 이 디스크립터 테이블(descriptor table)은 여러 정보를 가지고 있지만 가장 중요한 것이 SDRAM에 저장되어 있는 프레임의 시작 주소이다. 이 시작 주소를 서로 일치시켜 줄 수 있다면 프레임은 공유될 수 있으므로 같은 데이터를 메모리에 복사할 필요가 없으며 이는 성능을 크게 향상시킬 수 있는 요소이다. 본 발명에서는 네트웍 프로세서 μ-Engine에서 요구하는 프레임 시작 주소를 HDLC 컨트롤러(120)에게 미리 알려 주어서 이를 해결하였다. 네트웍 프로세서 μ-Engine은 프레임의 빠른 처리를 위해 시작 주소가 반드시 8바이트에 정렬되는 것을 요구하고 있기 때문에, 이를 고려한 프레임 시작 주소를 HDLC 컨트롤러(120)에게 알려준다.
도 3은 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 HDLC 컨트롤러와 네트웍 프로세서 μ-Engine간에 송수신되는 데이터 프레임의 구조를 나타낸 도면이다.
네트웍 프로세서 μ-Engine은 이더넷 프레임 형태를 요구하지만 HDLC 컨트롤러(120)는 HDLC 프레임을 제공한다. 이더넷 프레임과 HDLC 프레임은 헤더 정보가 다른데 이 경우 문제가 되는 것은 헤더의 크기이다. 이더넷 프레임은 14바이트의 헤더를 가지고 있으며, HDLC 프레임은 4바이트의 헤더를 가진다. 본 발명에서는 HDLC 컨트롤러(120)가 iSDRAM에 데이터를 전송할 때 네트웍 프로세서 μ-Engine이 요구하는 시작주소에서 10바이트를 비워 두고 그 다음부터 HDCL 프레임을 메모리에 쓰도록 하였다. 그러면 네트웍 프로세서 μ-Engine은 HDLC 프레임 헤더 4바이트를 지우고 나서 비워 둔 10바이트와 함께 즉 14바이트의 공간에 이더넷 헤더를 쓸 수 있다.
다시 도 2를 참조하면, HDLC 컨트롤러(120)는 DMA(Direct Memory Access) 기능을 이용하여 SDRAM(250)에 HDLC/PPP 프레임을 전송한 후, DMA전송이 완료되었음을 인터럽트를 이용하여 네트웍 프로세서 CPU 코어(220)에 알린다(②). 그러면, HDLC 컨트롤러(120)는 PPP 헤더(header)를 분석한 후, 제어 타입(control type)이면 네트웍프로세서 CPU 코어(220)에 있는 PPP 프로세스 모듈로 PPP 프레임을 보낸다(③). 한편, HDLC 컨트롤러(120)는 PPP 헤더를 분석한 후, 만약 데이터 타입(data type)이면 네트웍 프로세서 μ-Engine에게 SDRAM의 PPP 프레임을 처리하도록 알려 준다(③).
즉, HDLC 컨트롤러(120)는 수신되어 SDRAM에 저장된 프레임이 제어 프레임인지 데이터 프레임인지 구별을 해야 한다. 이는 HDLC 헤더에 있는 프로토콜 필드 값을 보고 알 수 있다.
도 4는 본 발명에 따른 프레임의 프로토콜 필드값을 나타낸 도면이다. HDLC 컨트롤러(120)는 도 4에 도시된 바와 같은 프레임의 프로토콜 필드값을 참조하여 제어 패킷 또는 데이터 패킷인지를 구별한다. HDLC 컨트롤러(120)는 분석이 끝난 후 control 프레임인 경우에는 이를 Network Processor CPU core에서 처리되도록 하고 Data 프레임인 경우 이를 Network Processor μ-Engine에서 처리되도록 한다. PPP 제어 프레임은 Network Processor CPU core에서 처리된다. PPP control 프레임을 Network Processor CPU core에서 처리하는 이유는 control 프레임의 경우 그 종류에 따라 처리해야 하는 방법이 너무나 다양하기 때문이다. 이러한 것들은 구현이 복잡하기 때문에 어셈블리 언어와 같은 low level 언어로는 작성이 너무 복잡하다. 본 발명에서는 PPP control 프레임 처리에는 high level 언어로 이미 작성되어 있는 소프트웨어를 사용하였다. 반면 PPP data 프레임은 단순하지만 무척 빠른 속도로 처리해야 하기 때문에 Network Processor μ-Engine에서 처리하게 하였다.
이후, 네트웍 프로세서 μ-Engine은 SDRAM에서 PPP 프레임을 가져와서 IP 패킷 헤더 프로세싱(header processing)과 룩업(lookup)을 수행한다(④). 네트웍 프로세서 μ-Engine은 룩업 후 해당 출력 포트로 패킷을 전송(forwarding)한다(⑤).
도 5는 본 발명에 따른 네트웍 인터페이스 라인 카드 시스템에서 프레임 데이터를 송신하는 경우 송신의 각 단계에서 발생하는 데이터 및 제어 신호의 흐름을 나타내는 도면이다.
먼저, 네트웍 프로세서 μ-Engine은 기가 MAC(240)을 통해 이더넷 프레임을 수신한다(①). 이어서 네트웍 프로세서 μ-Engine은 수신한 이더넷 프레임을 SDRAM(250)에 저장한다(②). 네트웍 프로세서 μ-Engine은 수신한 프레임으로부터 IP 헤더 프로세싱 및 룩업을 수행한 후 네트웍 프로세서 CPU 코어에게 프레임을 처리하도록 인터럽트를 통해 알린다(③). 네트웍 프로세서 CPU core는 이더넷 프레임을 PPP/HDLC 프레임으로 만든 후에, HDLC 컨트롤러가 프레임을 가져가도록 알려준다(④). HDLC 컨트롤러(120)는 SDRAM(5)으로부터 PPP/HDLC 프레임을 가져와서 Framer/LIU(110)에 넘겨 준다.
도 6은 본 발명에 따라 네트웍 프로세서(220) 내에서 네트웍 프로세서 코어와 네트웍 프로세서 μ-Engine 간의 패킷 흐름을 나타내는 도면이다.
도 1 및 도 6을 참조하면, 네트웍 프로세서(220)는 네트웍 프로세서 코어와 네트웍 프로세서 μ-Engine을 포함한다. 네트웍 프로세서 CPU 코어는 HDLC 컨트롤러 드라이버(222)로서 나타내었다. 즉, PPP data 프레임을 Network Processor CPUcore와 μ-Engine간에 전송하기 위해 HDLC 컨트롤러 드라이버(222)는 3 종류의 queue(270,272,274)를 사용한다. 각 queue(270,272,274)는 3개의 필드, 패킷 포인터(packet pointer)(270), 패킷 사이즈(packet size(272) 및 채널 넘버(channel number)(274)를 하나의 항목으로 하고 있으며, 프레임의 유실을 방지하기 위해 queue의 크기는 충분한 항목을 보유할 수 있을 만큼 커야 한다. HDLC 컨트롤러 드라이버(222)로부터 μ-Engine으로의 데이터 전송을 위해서는 Rx queue(278)가 사용된다. μ-Engine은 RX queue(278)를 항상 체크하고 있다가 queue에 새로운 프레임이 들어오면 처리한다. 처리가 끝난 프레임은 Rx Free queue(280)에 들어가며 이를 인터럽트를 통해 HDLC controller driver(222)에게 알려 준다. HDLC controller driver(222)는 사용이 끝난 HDLC 프레임이 저장된 메모리 영역을 재사용하기 위해 해제한다. μ-Engine으로부터 HDLC controller driver(222)로의 프레임은 TX queue(276)에 들어간다. μ-Engine은 TX queue에 프레임 정보를 기록한 후에 인터럽트를 통해 HDLC controller driver에게 송신할 데이터가 있음을 알려 준다. HDLC controller driver는 프레임을 처리한 후 나중에 재사용될 수 있도록 메모리를 해제해야 한다.
도 7은 네트웍 프로세서 μ-Engine에서 프레임 처리 방법을 나타낸 도면이다.
도 7을 참조하면, 본 발명에서는 μ-Engine이 6개 내장된 Network Processor를 사용하였다. 각 μ-Engine은 UE0 ~ UE5(300-305)라고 표시되어 있다. UE 1(301)의 4개의 쓰레드가 DS-1 Rx queues I(311)의 16포트를 처리(포트 수는 경우에 따라달라져도 상관없음)하며, 각 쓰레드가 4포트를 라운드-로빈(round-robin) 방식으로 작동하면서 각 포트의 수신 패킷을 담당한다. UE 3(303)은 DS1 Rx queue II(312)에서 정상 패킷을 queue에서 꺼낸 후 해당 패킷에 대한 포워딩을 수행한다. 이때 제어(control) 패킷인 경우 네트웍 프로세서 CPU 코어(Network Processor CPU core)로 보내고, 데이터(data) 패킷인 경우는 목적지 주소를 룩업(lookup)한 후 DS1 Tx queues I(315)또는 Giga Tx queue(314)에 enqueue한다. 또한 UE 4(304)는 DS1 Tx queues I에서 각 쓰레드가 4포트씩 담당하여 송신 패킷을 DS1 Tx queue II(316)에 enqueue한다. μ-Engine이 HDLC 드라이버로 패킷을 보낼 경우(DS1 Rx free queue, DS1 Tx queue II에 기록한 경우) 인터럽트로 알려서 HDLC 드라이버에서 처리토록 한다.
본 발명에서는 DS-1, DS-1E, DS-3, DS-3E 규격을 제공하는 HDLC(High-level Data Link Control) 컨트롤러를 데이터 링크 디바이스로 사용하였기 때문에 이것을 기준으로 본 기술을 설명하지만 위에서 언급한 바와 같이 다른 링크 디바이스 및 물리 인터페이스에도 적용 가능하다.
상기한 바와 같이 본 발명은 PCI 버스 인터페이스를 가진 데이터링크 디바이스(HDLC controller)를 사용하여 네트웍 프로세서를 이용한 라인카드를 구현하였다. 이 기술은 수 Mbps ~ 수십 Mbps 정도의 네트웍 인터페이스를 지원하는 네트웍 프로세서를 이용한 라인 카드를 구성할 때 전용 데이터 링크 디바이스가 없을 때효율적으로 사용될 수 있다. 그리고 본 발명에서 제시한 방법을 사용하면 네트웍 프로세서가 최대한 효율적으로 동작하는 것을 보장할 수 있다.
Claims (3)
- PCI(Peripheral Component Interconnect) 버스를 가진 네트웍 프로세서와 PCI 버스를 가진 데이터 링크 디바이스를 사용하는 데이터 통신 장비의 네트웍 인터페이스 라인 카드 시스템에 있어서,외부 라인에서 들어오는 전기 신호로부터 DS(Digital Signal)-n 규격의 데이터 프레임을 변환하는 LIU(Line Interface Uint)/프레이머(Framer), 상기 LIU/프레이머에 연결되고 HDLC(High-level Data Link Control) 처리를 담당하는 HDLC 컨트롤러(120), 상기 LIU/프레이머에 연결되어 상기 LIU/프레이머의 로컬버스를 PCI 버스와 연결해 주는 CPLD((Complex Programmable Logic Device), 및 커넥터를 통하여 입출력 프로세서 모듈에 있는 PCI 브리지와 연결된 PCI 브리지를 포함하는 물리매체 의존(PMD: Physical Media Dependent) 모듈과,커넥터를 통하여 상기 물리매체 의존 모듈에 있는 PCI 브리지와 연결된 PCI 브리지, 기가비트 이더넷 프레임을 처리하는 2계층 디바이스인 기가비트 이더넷 MAC(Media Access Control), 상기 기가비트 이더넷 MAC에 연결되어 상기 HDLC 컨트롤러에서 들어온 데이터 프레임을 처리하는 네트웍 프로세서, 상기 네트웍 프로세서에서 실행될 프로그램 코드와 프로그램 데이터, 라인 인터페이스에서 들어온 패킷 데이터 등이 저장되는 SDRAM(Synchronous Dynamic Random Access Memory), 및 상기 PCI 브리지의 버스에 연결되고 라우팅 프로토콜이나 시스템 관리 프로그램들이 실행되는 호스트 CPU를 포함하는 입출력 프로세서(IOP: Input OutputProcessor) 모듈을 구비하는 것을 특징으로 하는 네트웍 인터페이스 라인 카드 시스템.
- 제1항에 있어서, 상기 입출력 프로세서 모듈의 호스트 CPU 또는 네트웍 프로세서는 상기 CPLD를 통하여 상기 LIU/프레이머 내부의 상태를 알아내거나 필요한 정보를 수정하는 것을 특징으로 하는 네트웍 인터페이스 라인 카드 시스템.
- 제1항에 있어서, 상기 입출력 프로세서 모듈은 호스트 CPU에 연결되어 호스트 CPU에서 실행될 프로그램 코드와 데이터를 저장하는 SDRAM을 더 포함하는 것을 특징으로 하는 네트웍 인터페이스 라인 카드 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066923A KR100454971B1 (ko) | 2002-10-31 | 2002-10-31 | 네트웍 인터페이스 라인 카드 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066923A KR100454971B1 (ko) | 2002-10-31 | 2002-10-31 | 네트웍 인터페이스 라인 카드 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040038054A KR20040038054A (ko) | 2004-05-08 |
KR100454971B1 true KR100454971B1 (ko) | 2004-11-06 |
Family
ID=37336307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0066923A KR100454971B1 (ko) | 2002-10-31 | 2002-10-31 | 네트웍 인터페이스 라인 카드 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100454971B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957130A (zh) * | 2014-04-08 | 2014-07-30 | 迈普通信技术股份有限公司 | 故障检测及恢复方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691397B (zh) * | 2021-08-12 | 2023-10-20 | 江苏杰瑞信息科技有限公司 | 工业控制数据传输用低延时5g无线透明传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR980013131A (ko) * | 1996-07-31 | 1998-04-30 | 김광호 | 피씨아이(pci) 버스 인터페이스회로 |
KR19990000101A (ko) * | 1997-06-02 | 1999-01-15 | 김영환 | 풀(Full) 서비스통신망의 무선 비동기전송모드(ATM) 어댑터장치 |
KR19990050407A (ko) * | 1997-12-17 | 1999-07-05 | 이계철 | 통신처리 시스템/복합 망 정합장치 및 그를 이용한 데이터 전송방법 |
-
2002
- 2002-10-31 KR KR10-2002-0066923A patent/KR100454971B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR980013131A (ko) * | 1996-07-31 | 1998-04-30 | 김광호 | 피씨아이(pci) 버스 인터페이스회로 |
KR19990000101A (ko) * | 1997-06-02 | 1999-01-15 | 김영환 | 풀(Full) 서비스통신망의 무선 비동기전송모드(ATM) 어댑터장치 |
KR19990050407A (ko) * | 1997-12-17 | 1999-07-05 | 이계철 | 통신처리 시스템/복합 망 정합장치 및 그를 이용한 데이터 전송방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957130A (zh) * | 2014-04-08 | 2014-07-30 | 迈普通信技术股份有限公司 | 故障检测及恢复方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20040038054A (ko) | 2004-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9100349B2 (en) | User selectable multiple protocol network interface device | |
US7912082B2 (en) | Shared virtual network interface | |
US5321819A (en) | Interface for coupling a host device having a network interface to a computer network having a predetermined communications medium and a predetermined communications physical layer | |
US8069293B1 (en) | Flexible server network connection upgrade systems and methods | |
US7126952B2 (en) | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method | |
US6570884B1 (en) | Receive filtering for communication interface | |
US6970921B1 (en) | Network interface supporting virtual paths for quality of service | |
US8031731B2 (en) | System for sharing a network port of a network interface including a link for connection to another shared network interface | |
US5043938A (en) | Node controller for a local area network | |
US7647416B2 (en) | Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof | |
US6901451B1 (en) | PCI bridge over network | |
US7768907B2 (en) | System and method for improved Ethernet load balancing | |
US20090094399A1 (en) | Dynamic virtualization of switches and multi-ported bridges | |
US10936048B2 (en) | System, apparatus and method for bulk register accesses in a processor | |
US7860120B1 (en) | Network interface supporting of virtual paths for quality of service with dynamic buffer allocation | |
KR20030084974A (ko) | 코어 및 직렬-병렬 아키텍쳐 | |
US8090893B2 (en) | Input output control apparatus with a plurality of ports and single protocol processing circuit | |
CN108021525A (zh) | 一种基于pcie总线多主互连的冗余交换系统 | |
US6314100B1 (en) | Method of validation and host buffer allocation for unmapped fibre channel frames | |
US20120324078A1 (en) | Apparatus and method for sharing i/o device | |
KR100454971B1 (ko) | 네트웍 인터페이스 라인 카드 시스템 | |
EP1351459B1 (en) | Data transfer control device and electronic equipment | |
US20060020725A1 (en) | Integrated fibre channel fabric controller | |
Zang et al. | PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers | |
US7184411B2 (en) | Switch-management agent trap scheme in an infiniband-architecture switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110929 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20120927 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |