네트워크 프로세서

Network processor
인텔 FWIXP422BB

네트워크 프로세서는 네트워킹애플리케이션 도메인을 대상으로 한 피처 세트를 가지는 집적회로입니다.

네트워크 프로세서는 일반적으로 소프트웨어 프로그래밍이 가능한 디바이스이며, 다양한 종류의 기기 및 제품에 일반적으로 사용되는 범용 중앙 처리 장치와 유사한 특성을 가집니다.

발전의 역사

현대의 통신 네트워크에서는, 정보(음성, 비디오, 데이터)가 패킷 데이터(termed packet switching)로서 전송 되고 있습니다.는 공중 교환 전화 네트워크(PSTN)나 아날로그 TV/라디오 네트워크 등 아날로그 신호로서 정보를 반송하는 오래된 통신 네트워크와는 대조적입니다.이러한 패킷의 처리에 의해, 이러한 형식의 패킷 데이터를 처리하도록 최적화된 Integrated Circuit(IC; 집적회로)가 작성되었습니다.네트워크 프로세서에는, 이러한 네트워크내의 패킷 처리를 강화 및 최적화하기 위해서 제공되는 특정의 기능 또는 아키텍처가 있습니다.

네트워크 프로세서는 특정 기능을 가진 IC로 진화했다.이러한 진화로 인해 IC는 더욱 복잡하고 유연성이 높아졌습니다.새로운 회로는 프로그래밍이 가능하기 때문에 단일 하드웨어 IC 설계가 적절한 소프트웨어가 설치된 다양한 기능을 수행할 수 있습니다.

네트워크 프로세서는 다음과 같은 다양한 유형의 네트워크 기기를 제조할 때 사용됩니다.

재구성 가능한 일치 테이블

재구성 가능한[1][2] 매치 테이블은 스위치에서 실행되는 네트워크 프로토콜이나 스위치 처리 시 유연성을 유지하면서 고속으로 작동할 수 있도록 하기 위해 2013년에 도입되었습니다.P4[3] 칩 프로그래밍에 사용됩니다.Brefoot Networks라는 회사는 이러한 프로세서를 기반으로 하고 있으며, 이후 2019년에 인텔에 인수되었습니다.

RMP 파이프라인 설명

RMT 파이프라인은 프로그램 가능한 파서,[2] Match-Action 테이블 및 프로그램 가능한 디파서의 3가지 주요 단계에 의존합니다.파서는 패킷을 청크로 읽고 이러한 청크를 처리하여 패킷에서 사용되는 프로토콜(이더넷, VLAN, IPv4...)을 확인하고 패킷에서 특정 필드를 PHV(패킷 헤더 벡터)로 추출합니다.PHV의 일부 필드는 현재 헤더 또는 총 패킷 길이 등 특수한 용도로 예약될 수 있습니다.프로토콜은 일반적으로 프로그래밍 가능하며 추출할 필드도 마찬가지입니다.Match-Action 테이블은 입력 PHV를 읽고 크로스바CAM 메모리를 사용하여 입력 PHV 내의 특정 필드를 대조하는 일련의 유닛입니다.그 결과, PHV의 1개 또는 복수의 필드에서 동작하는 광범위한 명령과 이 명령을 지원하는 데이터가 생성됩니다.다음으로 출력 PHV는 다음 MA 스테이지 또는 디파서로 전송됩니다.디파서는 PHV와 원래의 패킷 및 그 메타데이터(PHV에 추출되지 않은 누락된 비트를 채우기 위해)를 받아들여 변경된 패킷을 청크로 출력합니다.일반적으로 파서와 마찬가지로 프로그래밍이 가능하며 일부 구성 파일을 재사용할 수 있습니다.

FlexNIC는[4] 이 모델을 Network Interface Controller에 적용하려고 합니다.이를 통해 서버는 CPU 오버헤드를 증가시키지 않고 프로토콜 유연성을 유지하면서 고속으로 패킷을 송수신할 수 있습니다.

범용 함수

패킷 프로세서로서의 일반적인 역할에서는 일반적으로 네트워크 프로세서에 다음과 같은 많은 최적화된 기능 또는 기능이 있습니다.

  • 패턴 매칭: 패킷스트림 내의 특정 비트 또는 바이트 패턴을 검출하는 기능.
  • 키 검색 – 키(일반적으로 패킷 내의 주소)를 사용하여 신속하게 데이터베이스 검색을 수행하여 결과(일반적으로 라우팅 정보)를 찾을 수 있습니다.
  • 계산
  • 데이터 비트필드 조작: 패킷 처리 중에 패킷에 포함된 특정 데이터 필드를 변경할 수 있습니다.
  • 관리: 패킷이 수신, 처리 및 계속 전송되도록 스케줄링되면 패킷은 큐에 저장됩니다.
  • 제어 처리 – 패킷 처리의 마이크로 조작은 시스템 내의 다른 노드와의 통신 및 조정을 수반하는 매크로 레벨로 제어됩니다.
  • 패킷 버퍼의 신속한 할당과 재순환.

아키텍처 패러다임

높은 데이터 레이트에 대처하기 위해 일반적으로 다음과 같은 아키텍처 패러다임이 사용됩니다.

  • 프로세서의 파이프라인 - 상기 기능 중 하나를 실행하는 프로세서로 구성된 파이프라인의 각 단계.
  • 멀티스레딩을 포함한 여러 프로세서를 통한 병렬 처리.
  • 전문 마이크로코드 엔진으로 수중에 있는 작업을 보다 효율적으로 수행할 수 있습니다.
  • 멀티코어 아키텍처의 등장으로 네트워크 프로세서를 상위층(L4-L7) 처리에 사용할 수 있게 되었습니다.

또, L2-L3 네트워크 처리의 중요한 요소이며, 다양한 코프로세서에 의해서 실행되어 온 트래픽 관리는, 네트워크 프로세서 아키텍처의 불가결한 부분이 되어, 실리콘 에리어(「부동산」)의 상당 부분이 통합 트래픽 [5]매니저에 할당되고 있다.최신 네트워크 프로세서에는 코어 간의 작은 메시지 교환에 최적화된 낮은 레이텐시의 높은 스루풋의 온칩 상호 접속 네트워크도 탑재되어 있습니다(데이터 워드는 거의 없습니다).이러한 네트워크는 공유 [6]메모리의 표준 사용 이외에도 효율적인 코어 간 통신을 위한 대체 시설로 사용할 수 있습니다.

적용들

소프트웨어 프로그램은 네트워크 프로세서의 범용 기능을 사용하여 네트워크 프로세서가 실행하는 애플리케이션을 구현하고, 그 결과 물리 기기가 작업을 수행하거나 서비스를 제공한다.일반적으로 네트워크 프로세서에서 실행되는 소프트웨어로 구현되는 애플리케이션 유형은 다음과 같습니다.[7]

  • 패킷 또는 프레임 식별 및 전송, 즉 라우터 또는 스위치의 기본 동작.
  • Quality of Service(QoS; 서비스 품질) 적용: 다른 타입 또는 패킷클래스를 식별하여 패킷의 일부 타입 또는 클래스에 대해 다른 타입 또는 클래스를 희생시키면서 우선적인 취급을 제공합니다.
  • 액세스 제어 기능– 특정 패킷 또는 패킷의 스트림을 네트워크 기기의 일부를 통과할 수 있는지 여부를 결정합니다.
  • 데이터 스트림 암호화– 하드웨어 기반 암호화 엔진을 내장하여 프로세서에 의해 개별 데이터 플로우를 암호화할 수 있습니다.
  • TCP 오프로드 처리

「 」를 참조해 주세요.

레퍼런스

  1. ^ Bosshart, Pat; Gibb, Glen; Kim, Hun-Seok; Varghese, George; McKeown, Nick; Izzard, Martin; Mujica, Fernando; Horowitz, Mark (2013-08-01). "Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN". {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  2. ^ a b Gibb, Glen; Varghese, George; Horowitz, Mark; McKeown, Nick (October 2013). "Design principles for packet parsers". Architectures for Networking and Communications Systems: 13–24. doi:10.1109/ANCS.2013.6665172. ISBN 978-1-4799-1641-2. S2CID 12282067.
  3. ^ "P4: Programming Protocol-Independent Packet Processors acm sigcomm". www.sigcomm.org. Retrieved 2022-03-26.
  4. ^ Kaufmann, Antoine; Peter, SImon; Sharma, Naveen Kr.; Anderson, Thomas; Krishnamurthy, Arvind (2016-03-25). "High Performance Packet Processing with FlexNIC". Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems. ASPLOS '16. New York, NY, USA: Association for Computing Machinery: 67–81. doi:10.1145/2872362.2872367. ISBN 978-1-4503-4091-5. S2CID 9625891.
  5. ^ Giladi, Ran (2008). Network Processors: Architecture, Programming, and Implementation. Systems on Silicon. Morgan Kaufmann. ISBN 978-0-12-370891-5.
  6. ^ Buono, Daniele; Mencagli, Gabriele (21–25 July 2014). Run-time mechanisms for fine-grained parallelism on network processors: The TILEPro64 experience (PDF). 2014 International Conference on High Performance Computing Simulation (HPCS 2014). Bologna, Italy. pp. 55–64. doi:10.1109/HPCSim.2014.6903669. ISBN 978-1-4799-5313-4. Archived (PDF) from the original on 27 March 2019. Alt URL
  7. ^ Comer, Douglas E. (2005). Network Systems Design Using Network Processors: Intel 2XXX Version. Addison-Wesley. ISBN 978-0-13-187286-8.