KR20130056333A - 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층 - Google Patents

전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층 Download PDF

Info

Publication number
KR20130056333A
KR20130056333A KR1020137009399A KR20137009399A KR20130056333A KR 20130056333 A KR20130056333 A KR 20130056333A KR 1020137009399 A KR1020137009399 A KR 1020137009399A KR 20137009399 A KR20137009399 A KR 20137009399A KR 20130056333 A KR20130056333 A KR 20130056333A
Authority
KR
South Korea
Prior art keywords
module
buffer
dpaa
core
abstraction layer
Prior art date
Application number
KR1020137009399A
Other languages
English (en)
Other versions
KR101636308B1 (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 KR20130056333A publication Critical patent/KR20130056333A/ko
Application granted granted Critical
Publication of KR101636308B1 publication Critical patent/KR101636308B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1263Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1221Wireless traffic scheduling based on age of data to be sent

Abstract

새로운 서브-시스템, 코어 추상화 계층(CLA)은 멀티-코어 프로세서 기반 모뎀 보드의 미들웨어 계층에 도입된다. 이러한 새로운 모듈은 멀티-코어 P4080 프로세서 및 그의 DPAA에 대한 추상화를 제공한다. 이러한 모뎀 보드의 배치를 위해, 상기 CAL은 무복사 락 프리 버퍼 관리 방식과 같은 다양한 서비스들을 LTE L2 애플리케이션에 제공하고, 멀티-셀 구성을 위한 제어기 보드로 및 제어기 보드로부터 RLC SDU 송신 및 수신을 위해 새로운 백플레인 이더넷 드라이버(BED) 인터페이스를 지원할 것이다.

Description

전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층{CORE ABSTRACTION LAYER FOR TELECOMMUNICATION NETWORK APPLICATIONS}
본 발명은 멀티-코어 프로세서를 사용하는 단일 모뎀 보드상에서 멀티-셀 지원을 위한 코어 추상화 계층에 관한 것이다. 본 발명은 특히 모바일 전기 통신들의 기술에 관한 것이고 따라서 그에 대한 특정한 참조로 설명될 것이지만, 본 발명이 다른 분야들 및 애플리케이션들에서 유용성을 가질 수 있다는 것이 이해될 것이다.
배경으로서, LTE(Long Term Evolution)은 미래 통신 네트워크 수요들을 처리하기 위한 UMTS(Universal Mobile Telecommunications System) 이동 전화 표준을 개선하는 것을 목적으로 하는 빠르게 진화하는 3GPP 프로젝트이다. LTE는 무선 네트워크 효율성 및 대역폭을 개선하고, 비용을 낮추고 서비스 경험들을 강화한다. 특히, LTE는 새로운 스펙트럼 기회들을 사용하고 다른 개방 표준들과 더 좋은 통합을 제공한다. LTE는 일반적으로 EPS(Evolved Packet System, 또한 Evolve Packet Core이라고 함)와 함께 LTE RAN(Radio Access Network)(또한 E-UTRAN로 알려짐)을 포함한다.
통신 시스템들은 일반적으로 두 개의 주요 기능들로 분할된다: 데이터 평면 기능들 및 제어 평면 기능들. 이전의 LTE 제품들에서, 적어도 두 개의 프로세서들이 모뎀 보드상에 하나는 상기 제어 평면 기능들(비실시간, 예를 들면, 운영들, 집행, 및 관리(즉 OA&M), 및 호 프로세싱 관리 관련 기능들)을 지원하고 다른 하나는 상기 데이터 평면 기능들(실시간, 예를 들면, LTE 계층 2 프로세싱)을 종결시키고 지원하기 위해 사용된다. 상기 제어 및 데이터 평면들 모두가 상기 제어 평면에 대해 Linux 및 상기 데이터 평면 코어에 대해서 vXWorks(Wind River Systems of Alameda, California에 의해 제조되고 판매됨)와 같은 실시간 OS(operating system)와 같이, 상이한 운영 시스템(OS)의 경우들을 사용하였다. 일반적으로, 하나의 모뎀 보드는 하나의 섹터 또는 셀을 지원한다. 멀티-셀(예를 들면, 3-셀들 또는 6-셀들) 구성들을 지원하기 위해서, 셀들의 수만큼 많은 모뎀 보드들을 제공하는 것이 필요할 것이다.
상기 애플리케이션 계층 및 하드웨어 계층 사이에 놓이고 낮은 레벨의 하드웨어 관련 기능들로부터 상기 애플리케이션 계층을 분리하는 미들웨어 추상화 계층(middleware abstraction layer)에 대한 필요성이 있다.
상기 프로세싱 환경에서, 미들웨어 계층은 일반적으로 애플리케이션 계층으로부터 모든 하드웨어 특정 실행 명세들을 숨긴다. 새로운 서브-시스템, 상기 코어 추상화 계층(CAL)은 멀티-코어 프로세서 기반 모뎀 보드의 미들웨어 계층에 도입된다. 이러한 새로운 모듈은 상기 멀티-코어 프로세서에 대한 추상화 및 그의 데이터 경로 가속 아키텍처(또는 DPAA)를 제공한다. 이러한 모뎀 보드의 배치를 위하여, 상기 CAL은 LTE L2 애플리케이션들을 위한 무복사 락 프리 버퍼 관리 방식(zero copy lock free buffer management scheme)과 같은 다양한 서비스들을 제공하고, 상기 멀티-셀 구성을 위한 제어기 보드로 및 상기 제어기 보드로부터 무선 링크 제어(RLC) 서비스 데이터 유닛(SDU) 송신 및 수신을 위한 백플레인 이더넷 드라이버(BED; Backplane Ethernet driver) 인터페이스를 지원한다.
소프트웨어 이식성(software portability)은 CAL의 주요 목적이다. 이는 또한 애플리케이션, 미들웨어, 및 플랫폼 계층 서비스들의 병렬 소프트웨어 배치를 용이하게 하는 저 레벨 플랫폼 서비스들로부터 상기 애플리케이션 계층을 분리한다. 이와 같이, 다소간의 코어들을 갖는 프로세서들에 또는 심지어 상기 애플리케이션 계층 소프트웨어 상에 거의 충격을 가하지 않거나 또는 전혀 가하지 않는 멀티-코어 프로세서에 대한 상이한 벤더에 이주시키는 것이 비교적 쉬울 것이다.
본 발명의 일 양태에서, 본 발명은 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치가 제공된다. 상기 장치는 모뎀 보드 및 멀티-코어 프로세서를 포함한다. 상기 프로세서는 일반적으로 상기 모뎀 보드에 부착된 다수의 프로세서 코어들로서, 적어도 하나의 프로세서 코어는 모든 제어 평면 기능들을 실행하기 위해 사용되고, 나머지 프로세서 코어들은 모든 데이터 평면 기능들을 실행하기 위해 사용되는, 상기 다수의 프로세서 코어들, 및 상기 프로세서 코어들상에 구동하는 애플리케이션 소프트웨어로부터 임의의 코어 특정 명세들을 숨기는 코어 추상화 계층을 포함한다. 상기 코어 추상화 계층은 다양한 모듈들을 포함한다. 초기화 모듈은 상기 네트워크 구성 데이터 및 하나 이상의 프레임 관리자들에 대한 정적 분석(static parsing), 분류 및 분배(PCD) 규칙들을 로딩하고 한 세트의 구성 파일들에 기초하여 상기 코어 추상화 계층 프레임워크를 설정한다. 버퍼 모듈은 계층 2 애플리케이션들에 대해 잠금 없는(lock-less) 버퍼 관리 서비스들을 제공할 수 있다. 메시징 모듈은 다른 보드로 또는 다른 보드로부터 사용자 평면 데이터를 전송하고 수신하기 위해 계층 2 소프트웨어에 대한 무복사, 및 잠금 없는 메시징 서비스들을 제공할 수 있다. PCD 모듈은 입구 프레임들을 적절한 코어들에 라우팅하기 위한 프레임 관리자들에 의해 사용될 PCD 규칙들 및 구성들을 제공한다. 데이터 경로 가속 아키텍처(DPAA) 트레이스 모듈은 DPAA 드라이버 모듈에서 트레이스들을 가능하게 하고 불가능하게 하는 트레이스 능력들을 제공한다.
본 발명의 다른 양태에서, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치가 제공된다. 상기 장치는 모뎀 보드 및 상기 모뎀 보드에 부착된 복수의 프로세서 코어들을 갖는 멀티-코어 프로세서로서, 단일 분할은 그에 포함된 모든 프로세서 코어들로 규정되고, 상기 단일 분할은 모든 제어 평면 기능들 및 모든 데이터 평면 기능들을 실행하기 위해 사용되는, 상기 멀티-코어 프로세서, 및 상기 단일 분할에서 상기 프로세서 코어들상에 구동하는 애플리케이션 소프트웨어로부터 임의의 코어 특정 상세들을 숨기는 코어 추상화 계층을 포함한다. 상기 코어 추상화 계층은 다양한 모듈들을 포함한다. 초기화 모듈은 하나 이상의 프레임 관리자들에 상기 네트워크 구성 데이터 및 정적 분석, 분류 및 분배(PCD) 규칙들을 로딩하고 한 세트의 구성 파일들에 기초하여 상기 코어 추상화 계층 프레임워크를 설정한다. 버퍼 모듈은 계층 2 애플리케이션들에 대해 잠금 없는 버퍼 관리 서비스들을 제공할 수 있다. 메시징 모듈은 다른 보드로 또는 다른 보드로부터 사용자 평면 데이터를 전송하고 수신하기 위해 계층 2 소프트웨어에 대한 무복사, 및 잠금 없는 메시징 서비스들을 제공할 수 있다. PCD 모듈은 입구 프레임들을 적절한 코어들에 라우팅하기 위한 프레임 관리자들에 의해 사용될 PCD 규칙들 및 구성들을 제공한다. 데이터 경로 가속 아키텍처(DPAA) 트레이스 모듈은 DPAA 드라이버 모듈에서 트레이스들을 가능하게 하고 불가능하게 하는 트레이스 능력들을 제공한다.
본 발명의 또 다른 양태에서, 멀티-코어 프로세서를 위한 코어 추상화 계층이 제공된다. 상기 코어 추상화 계층은 다양한 모듈들을 포함한다. 초기화 모듈은 하나 이상의 프레임 관리자들에 상기 네트워크 구성 데이터 및 정적 분석, 분류 및 분배(PCD) 규칙들을 로딩하고 한 세트의 구성 파일들에 기초하여 상기 코어 추상화 계층 프레임워크를 설정한다. 버퍼 모듈은 계층 2 애플리케이션들에 대해 잠금 없는 버퍼 관리 서비스들을 제공할 수 있다. 메시징 모듈은 다른 보드로 또는 다른 보드로부터 사용자 평면 데이터를 전송하거나 수신하기 위해 계층 2 소프트웨어에 대한 무복사, 및 잠금 없는 메시징 서비스들을 제공할 수 있다. PCD 모듈은 입구 프레임들을 적절한 코어들에 라우팅하기 위한 프레임 관리자들에 의해 사용될 PCD 규칙들 및 구성들을 제공한다. 데이터 경로 가속 아키텍처(DPAA) 트레이스 모듈은 DPAA 드라이버 모듈에서 트레이스들을 가능하게 하고 불가능하게 하는 트레이스 능력들을 제공한다.
본 발명의 적용성의 추가의 범위는 이하에 제공된 상세할 설명으로부터 명확해질 것이다. 그러나, 본 발명의 정신 및 범위내에 다양한 변경들 및 변형들이 당업자에게 명확해질 것이기 때문에, 상세한 설명 및 특정 예들은 본 발명의 바람직한 실시예들을 나타내지만, 예시로서만 주어진다는 것이 이해되어야 한다.
본 발명은 멀티-코어 프로세서를 사용하는 단일 모뎀 보드상에 제공하는 멀티-셀에 대한 코어 추상화 계층을 제공한다.
도 1은 본 발명의 양태들에 따른 플랫폼 아키텍처의 일 실시예를 도시하는 도면.
도 2는 본 발명의 양태들에 따른 플랫폼 아키텍처의 대안적인 실시예를 도시하는 도면.
도 3은 본 발명의 양태들에 따른 코어 추상화 계층을 구현하는 예시적인 아키텍처를 도시하는 도면.
본 발명에 구조, 장치, 및 상기 디바이스의 여러 부분들의 조합, 및 상기 방법의 단계들이 존재하고, 그에 의해 생각된 목적들은 이후 더 충분히 설명되고, 특히 청구항들에 지적되고, 첨부하는 도면들에 도시된 바와 같이 달성된다.
여기서 도면들을 참조하면, 도시들은 예시적인 실시예들을 단지 예시하는 목적들을 위한 것이고 주장된 요지를 한정하는 목적이 아니며, 도 1은 현재 설명된 실시예들이 통합될 수 있는 시스템의 도면을 제공한다. 이러한 플랫폼 아키텍처는 일반적으로 모뎀 보드상에 사용되지만, 다른 애플리케이션들에서 사용될 수 있다는 것이 이해될 것이다. 이러한 경우에서, 여덟 개 코어들(도면에서 12, 14, 16, 18, 20, 22, 24, 및 26)을 갖는 멀티-코어 프로세서(10)가 제공된다. 그러나, 상기 멀티-코어 프로세서(10)는 임의의 수의 코어들을 가질 수 있다는 것이 이해될 것이다. 이러한 예에서, 제 1 분할(28)은 제 1 운영 시스템(0S1)(32)을 구동하는 제어 평면(30)에 대한 것이다. 상기 제 1 분할(28)은 또한 운영들, 집행, 및 관리(OA&M)(34) 및 BCS/UPS(36)을 포함한다. 상기 BCS/UPS(36)는 상기 OA&M 엔티티와 같은 상기 애플리케이션 소프트웨어에 상기 하드웨어에 대한 추상화를 제공하는 미들웨어 계층이다. 나머지 7 개의 코어들의 각각에 대해 하나씩, 7 개의 AMP 분할들(도면에서 38, 40, 42, 44, 46, 48, 50으로 도시됨)은 상기 데이터 평면(52)에 대해 각각의 구동하는 제 2 운영 시스템(OS2)(54)을 갖는다.
모든 계층 2(L2)의 프로세싱은 일반적으로 상기 프로세서의 7 개의 코어들상에 수행된다. 계층 2는 컴퓨터 네트워킹의 7 계층 OSI 모델의 데이터 링크 계층이다. 상기 데이터 링크 계층은 광역 네트워크에서 인접한 네트워크 노드들 사이 또는 동일한 근거리 네트워크 세그먼트상의 노드들간에 데이터를 전달하는 프로토콜 계층이다. 상기 데이터 링크 계층은 네트워크 엔티티들 간에 데이터를 전달하기 위한 기능적 및 절차적 수단을 제공하고 물리 계층에서 발생할 수 있는 에러들을 검출하고 가능하게는 보정하기 위한 수단을 제공할 수 있다. 데이터 링크 프로토콜들의 예들은 근거리 네트워크들(멀티-노드)을 위한 이더넷, 점대점 프로토콜(Point-to-Point Protocol; PPP), 점대점(듀얼-노드) 접속들을 위한 HDLC 및 ADCCP이다. 이러한 경우에서, L2는 일반적으로, 매우 엄격한 실시간 요건들을 갖는 LTE 공중 인터페이스를 필요로 하는 L2 스케줄러 프로세싱을 말한다.
모든 계층 1(L1)의 프로세싱은 일반적으로 DSPs 및 FPGAs상에서 수행된다. 특히, 코어 추상화 계층(CAL)(56)은 상기 L2 애플리케이션 소프트웨어로부터 코어 특정 상세들을 숨긴다.
예시적인 아키텍처는 모든 이들 분할들이 독립적으로 구동하고 서로 오류를 일으키지 않는 것을 보장하기 위하 하이퍼바이저(Hypervisor; 58)와 같은 감시자 소프트웨어 엔티티(supervisor software entity)를 추가로 포함할 수 있다. 하이퍼바이저는 가상화에 사용된 소프트웨어 프로그램이다. 이는 몇몇 운영 시스템들이 하드웨어의 주어진 일부상에 나란히 구동하는 것을 허용한다. 종래의 가상 컴퓨팅 프로그램들과 달리, 하이퍼바이저는 상기 타겟 하드웨어상에 직접 구동한다. 이는 게스트 운영 시스템들 및 하이퍼바이저 모두가 더 많이 효율적으로 수행하는 것을 허용한다. 가능한 하이퍼바이서들의 리스트는 다음의 형태들: Xen(Citrix), KVM(kernel-based virtual machine), VMware ESX/vmkernel, Microsoft Hyper-V, PowerVM(IBM), Logical Domains/Oracle VM, 및 Wind River 하이퍼바이저를 포함하지만, 그에 제한되지 않는다.
이러한 예에서, 상기 프로세서(10)는 세 개의 셀들(도면에서 60, 62, 및 64로 도시됨)을 서빙한다. 각각의 셀은 업링크(UL) 스케줄러(도면에서 66, 70, 및 74로 도시됨) 및 다운링크(DL) 스케줄러(도면에서 68, 72, 및 76으로 도시됨)를 필요로 한다.
무선 링크 제어(RLC) 계층은 LTE 공중 인터페이스를 지나서 전송되고 수신되는 패킷 프레임들을 분할하고, 연결하고 패킷 프레임들상의 에러들을 보정하기 위해 사용되는 것이 알려져 있다. 무선 링크 제어 및 매체 액세스 제어(RLC/MAC) 소프트웨어는 GPRS(2.5G) 무선 스택에서 사용된다. 이는 상기 이동국 및 기지국 제어기(BSC) 사이에 수신확인된 및 수신확인되지 않은 데이터 전달을 제공한다. 이러한 점에서, 상기 프로세서(10)는 RLC/MAC 블록(78)을 추가로 포함하고, 상기 RLC/MAC 블록(78)은 상기 모바일 및 상기 네트워크 사이에 사용되는 공중 인터페이스상의 기본 전달 유닛이다. 이는 데이터 및 RLC/MAC 시그널링을 전달하기 위해 사용된다.
여기서 도 2를 참조하면, 대안적인 플랫폼 아키텍처(100)가 도시된다. 상기 아키텍처는 일반적으로 모뎀 보드 상에 사용되지만, 다른 애플리케이션들에 사용될 수 있다는 것이 이해될 것이다. 이러한 실시예에서, 하나의 분할은 그 내부에 모두 8 코어들을 갖는 것으로 규정된다. 그러나, 상기 멀티-코어 프로세서(100)는 임의의 수의 코어들을 가질 수 있다는 것이 인식될 것이다. 이러한 실시예에서, 이와 같이 코어들(예를 들면, 8 코어들) 모두 상에 구동하는 단일의 SMP OS 인스턴스(102)를 사용하는 것이 가능하다. 상기 제어 및 데이터 평면들은 여기서 하나의 OS 인스턴스하에 있기 때문에, 데이터 평면에 대한 문제가 상기 제어 평면에 또한 문제를 야기하지 않을 것을 보장하기 위해 주의가 요구된다.
이러한 예에서, 상기 프로세서(100)는 세 개의 셀들(도면에서 104, 106, 및 108로 도시됨)을 서빙한다. 각각의 셀은 업링크(UL) 스케줄러(도면에서 110, 112, 및 114로 도시됨) 및 다운링크(DL) 스케줄러(도면에서 116, 118, 및 120으로 도시됨)를 요청한다. 또한 RLC/MAC 블록(122)이 포함되고, 상기 RLC/MAC 블록(122)은 상기 모바일과 상기 네트워크 사이에 사용되는 공중 인터페이스상에 기본 전달 유닛이다. 이는 데이터 및 RLC/MAC 시그널링을 운반하기 위해 사용된다. 상기 프로세서(100)는 또한 OA&M(124) 및 BCS/UPS(126)을 제공한다.
상기 제 1 실시예에서와 같이, 상기 프로세서(100)는 코어 추상화 계층(CAL)(128)을 포함하고, 상기 코어 추상화 계층(CAL)(128)은 L2 애플리케이션 소프트웨어로부터 상기 코어 특정 명세들을 숨긴다.
상기 기지국의 실시간 성능 요구들에 맞추기 위해, PREEMPT_RT 패치를 갖는 SMP 리눅스와 같은 OS가 사용될 수 있다. 물론, 이는 다른 운영 시스템들이 사용될 수 있다는 것이 이해될 것이다. 상기 SMP 구성은 감시된 AMP 구성에서 결정론적인 행동을 잃는 경향이 있을 수 있다. SMP 구성에서 결정론적인 행동을 달성하기 위해, 상기 시스템은 AMP형 시스템 행동을 달성하기 위해 코어 예약 및 코어 친화 구조들을 채용하는 방식으로 바람직하게 구현된다. 이는 또한 예를 들면, PREEMPT_RT OS를 갖는 SMP 리눅스 외에 최상의 성능을 얻기 위해 바람직하다. 버퍼 관리와 같은 잠금 없는 무복사 서비스들, 및 메시징 서비스들의 사용은 또한 PREEMPT_RT OS를 갖는 SMP 리눅스의 사용에 의해 내포된 임의의 레이턴시 문제들을 처리하는 것을 도울 수 있다.
도 1 및 도 2에 도시된 바와 같은 코어 추상화 계층(56, 128)의 주요 기능들 중 하나는 멀티-코어 플랫폼의 완전한 능력들을 활용하는 다양한 서비스들을 L2 프로세싱과 같은 고 레벨 애플리케이션들에 제공하는 것이다. 이와 같이 상기 코어 추상화 계층은 수 개의 목표들을 달성하도록 설계된다. 첫째, BED(백플레인 이더넷 드라이버) DPAA-기반 인터페이스를 지원해야 하고, 반면에 상위 레벨 애플리케이션 소프트웨어(즉, L2 소프트웨어)로부터 DPAA 및 멀티-코어 특정 실행을 숨긴다. 둘째, 입구 및 출구 방향들 모두로 사용자 평면 데이터에 대한 가속된 데이터 경로를 제공하도록 P4080의 DPAA 하드웨어 구성부품들을 활용해야 한다. 셋째로, 구성 변경들에 쉽게 적응하도록 가능한 많은 융통성을 제공해야 한다(즉, 코드 변경들을 요구하지 않음). CAL 구성의 예는 버퍼 풀들, 입구 프레임 대기 행렬들, 및 출구 프레임 대기 행렬들에 대한 DPAA 리소스들 구성이다.
여기서 도 3을 참조하면, 이들 및 다른 목표들을 달성하는 예시적인 아키텍처(300)가 도시된다. 이러한 점에서, 코어 추상화 계층(CAL)(301)은 코어 추상화 계층 초기화(CALInit) 모듈(302), 코어 추상화 계층 버퍼(CALBuf) 모듈(304), 코어 추상화 계층 메시징(CALMsg) 모듈(306), 코어 추상화 계층 분석, 분류 및 분배(CALPcdFmc) 모듈(308), 및 코어 추상화 계층 DPAA 트레이스(CALDpaaTrace) 모듈(310)을 포함하는, 사용자 공간에서의 다양한 모듈들을 포함한다. 상기 CAL(301)은 또한 커널-공간 모듈, 즉, 코어 추상화 계층 DPAA 드라이버(CALDpaaDriver)(312)를 포함할 수 있다.
상기 아키텍처(300)는 또한 리눅스 Preempt RT와 같은 적절한 운영 시스템(314)을 포함한다. 다음으로, 상기 운영 시스템(314)은 상기 언급된 CALDPaa 드라이버(312), 적어도 하나의 프레임 관리자(FMan) 드라이버(316), 적어도 하나의 버퍼 관리자(BMan) 드라이버(318), 및 적어도 하나의 대기 행렬 관리자(QMan) 드라이버(320)와 같은 다양한 드라이버들을 지원한다.
도 3에 도시된 바와 같이, 상기 아키텍처(300)는 캐쉬들을 갖는 다수의 파워 아키텍처 프로세싱 코어들, 독립형 캐쉬들 및 메모리 서브시스템들을 접속하기 위해 스케일러블 온-칩 네트워크에 적합한 상호접속 아키텍처인 P4080 CoreNet fabric(322)을 적합하게 포함할 수 있다.
상기 P4080 프로세서는 새로운 데이터 경로 가속 아키텍처(DPAA)의 구현을 포함한다. 이와 같이, 상기 아키텍처(300)는 P4080 DPAA(324)를 추가로 포함할 수 있다. 상기 DPAA(324)는 네트워크 인터페이스들 및 하드웨어 가속기들을 포함하는 리소스들의 부하 스프레딩 및 공유와 같은 멀티코어 네트워크 프로세싱을 최적화하도록 설계된다. 도시된 바와 같이, 상기 DPAA(324)는 일반적으로 BMan(326), QMan(328), 및 제 1 및 제 2 Fman(330, 332) 각각과 같은 다수의 관리자들을 포함한다.
상기 CALInit 모듈(302)은 일반적으로 LTE 네트워크 구성 및 임의의 정적 PCD 규칙들을 프레임 관리자들(330, 332)에 로딩하고 구성 파일들의 세트에 기초하여 CAL 프레임워크를 설정한다. 상기 CALInit 모듈(302)은 상기 FMan PCD를 구성하기 위해 FMC(FMan Configuration Tool)(도시되지 않음) 또는 임의의 수의 FMan API(s)(도시되지 않음)와 인터페이스하고, 상기 CAL 구성(예를 들면, 사용자 평면 DPA 리소스들)을 로딩하고 셋 업하기 위해 상기 CALDpaa 드라이버(312)와 인터페이스한다. 여기에 사용된 바와 같이, 상기 용어 API(또는 애플리케이션 프로그래밍 인터페이스)는 소프트웨어 프로그램에 의해 구현된 인터페이스를 말하고, 상기 소프트웨어 프로그램은 다른 소프트웨어와 상호 작용할 수 있다. 이는 사용자 인터페이스가 사용자들과 컴퓨터들 사이의 상호작용을 용이하기 하는 방식과 유사한 상이한 소프트웨어 프로그램들 간의 상호 작용을 용이하게 한다. API는 그들의 어휘들 및 통화 습관들을 결정하기 위해 애플리케이션들, 라이브러리들, 및 운영 시스템들에 의해 구현되고, 그들의 서비스들을 액세스하기 위해 사용된다. 이는 소비자와 API의 구현간의 통신을 위해 사용된 루틴들, 데이터 구조들, 객체 클래스들, 및 프로토콜들에 대한 명세들을 포함할 수 있다.
상기 CALInit 모듈(302)은 또한 LEC(리눅스 에러 콜렉터) 서비스들을 통해 디버그 메커니즘을 제공하고 이에 의해 다양한 CAL 및 DPAA 리소스들 상태들 및 통계치들은 사후 조사를 위한 LEC의 스냅샷 파일들에 수집되고 덤프된다.
무선 다중-액세스 통신 시스템에서, 송신기들 및 수신기들은 다수 계층 통신 스택을 사용하여 통신할 수 있다는 것이 알려졌다. 상기 계층들은 예를 들면, 물리 계층, 매체 액세스 제어(MAC) 계층, 무선 링크 제어(RLC) 계층, 프로토콜 계층(예를 들면, 패킷 데이터 수렴 프로토콜(PDCP) 계층), 애플리케이션 계층 등을 포함할 수 있다. 상기 RLC 계층은 상기 PDCP 계층으로부터 서비스 데이터 유닛들(SDU)을 수신하고, 상기 MAC 계층에 송신을 위해 RLC 프로토콜 데이터 유닛들(PDU)로 SDU들을 연결시키거나 분할한다.
따라서, 상기 CALBuf 모듈(304)은 RLC SDU 프로세싱에서 사용하기 위해 L2 애플리케이션들에 잠금 없는 버퍼 관리 서비스들을 제공한다. 본 기술에서 알려진 바와 같이, 넌-블록킹 알고리즘이 공유된 리소스와 경합하는 스레드들이 상호 배제에 의해 무기한으로 연기된 이들의 실행을 갖지 않는 것을 보장한다. 넌-블록킹 알고리즘은, 전 시스템에 진행에 걸쳐서 보증되는 경우, 잠금 없음(또는 락-프리)이다. 상기 CALBuf 모듈(304)은 또한 버퍼 풀 정적 데이터(buffer pool statistic data)에 대한 쿼리를 지원한다(예를 들면, 풀 소모 상태, 소모 카운트, 풀 이용가능 상태, 풀 할당 에러 카운트 등). 상기 CALBuf 모듈(304)은 상기 서비스들을 실행하기 위해 상기 CALDpaa 드라이버(312)와 인터페이스한다. 상기 CALBuf 모듈(304)은 멀티-코어 환경에서 적절한 시스템 운영을 위해 극도로 중요한 잠금 없는 버퍼 관리 방식을 제공하고, 비실시간 프로세스에 의해 취해진 잠금은 상기 잠금의 해제를 기다리는 실시간 프로세스에 대한 레이턴시 문제들을 일으킬 수 있다.
상기 CALMsg 모듈(306)은 DPAA를 통해 (입구) RLC SDUs를 수신하고 (출구) RLC SDUs를 전송하기 위한 서비스들을 제공한다. 상기 CALMsg 모듈(306)은 또한 Tx/Rx 이더넷 인터페이스 정적 데이터에 대한 쿼리(예를 들면, 수신되거나 송신된 FDs의 수, 드롭핑된 FDs의 수, 다양한 형태들의 불량 FDs 등)를 지원한다. 상기 CALMsg 모듈(306)은 상기 서비스들을 실행하기 위해 상기 CALDPaa 드라이버(312)와 인터페이스한다. 상기 CALMsg 모듈(306)은 프로토콜 스택을 사용하지 않고 TCP/UDP IP 패킷들을 전송하거나 수신하기 위해 무복사 잠금 없는 메시징 서비스를 LTE L2 애플리케이션에 제공한다. 이는 상기 애플리케이션 소프트웨어가 상기 LTE 시스템의 적절한 시스템 행동을 파괴할 수 있는 구속되지 않은 레이턴시 스파이크들에 마주하지 않을 것을 보장할 필요가 있고, 상기 LTE 시스템은 매우 엄격한 실시간 프로세싱 요구 조건들을 갖는다.
상기 CALPcdFmc 모듈(308)은 적절한 코어들에 입구 프레임들을 라우팅하기 위해 각각의 FMan(330, 332)에 의해 사용될 분석, 분류 및 분배(PDC) 규칙들 및 구성들을 제공한다.
상기 CALDPaaTrace 모듈(310)은 상기 CALDpaaDriver(312)내의 트레이스를 인에이블하거나 디스에이블하게 하기 위한 트레이싱 능력들을 제공한다. 상기 CALDPaaTrace 모듈(310)은 이러한 서비스들을 실행하기 위해 상기 CALDpaaDriver(312)와 인터페이스한다.
상기 CALDpaaDriver(312)은 CAL(301)의 커널-공간 성분이고, 이러한 드라이버는 Bman 및 Qman API들을 사용하여 버퍼 관리 서비스들 및 메시징 서비스들을 실행하고 제공하는 것을 돕는다. 상기 CALDpaaDriver(312)은 사용자 평면 데이터 분배를 위해 사용될 DPAA 리소스들(버퍼 풀들 및 프레임 대기 행렬들)을 관리하고; 초기화, 버퍼 관리, 및 메시징 서비스들을 위해 오픈, 릴리즈, i-o-제어(ioctl)과 같은 다양한 파일 동작들을 통해 다른 CAL 모듈들에 사용자-공간 인터페이스를 제공하고; 커널-사용자 공간(K-U) 버퍼 맵핑을 수행하고; DPAA 버퍼 풀 및 수신기 및 송신기에 통계적인 데이터를 제공하고; 링 버퍼들을 관리하기 위한 서비스들을 실행하기 위한 책임을 맡는다. 링 버퍼들은 CAL의 L2 소프트웨어 대기 행렬을 나타내고 특정 L2 DLT을 위해 예정된 FDs를 저장하기 위해 사용된다는 것이 주의되어야 한다. 상기 CALMsg 모듈(306)은 링으로부터 버퍼 디스크립터들(buffer descriptors)을 검색하기 위해 L2에 API들을 제공한다.
상기 설명된 상기 CAL 구성부품들 모두는 일반적으로 상기 CALDpaaDriver(312)을 제외한 플랫폼 미들웨어(사용자-공간에서 구동하는)이다. 상기 CALDpaaDriver(312)는 커널-공간에서 구동하는 커스텀 드라이버(custom driver)이고, 이는 상기 CAL 사용자 공간 미들웨어에 의해 요구되는 서비스들-특히, 상기 P4080 DPAA 하드웨어 구성부품들에 의존하는 이들 서비스들을 실행하고 제공하도록 설계된다.
상기 CALInit 모듈(302)은 다양한 기능성들을 제공할 책임이 있다. 스타트업시 마스터 코어에 대하여, 상기 CALInit 모듈(302)은 "빠른 경로" 프로세싱을 지원하기 위해 CAL 프레임워크를 셋 업한다. 이러한 단계는 상기 CALDpaaDriver(312)를 초기화하는 단계를 포함하고, 이후 상기 CALDpaaDriver(312)는 (a) 사용자-평면 데이터(예를 들면, 버퍼 풀들, FQs(또는 프레임 대기 행렬들))를 프로세싱하기 위해 요구되는 다양한 DPAA 리소스들을 생성하고 (b) DPAA(예를 들면, 버퍼 풀 구성, FQs, 및 입구 FQs과 DLT IP 어드레스들 사이의 결합 등을 유지하는 내부 테이블들)를 통해 버퍼 관리 및 메시징 서비스들을 지원하기 위해 요구되는 CAL 기반구조를 생성한다. 상기 CALInit 모듈(302)은 LTE FMC의 (정적) PCD 규칙들 및 네트워크 구성들을 또한 로딩한다.
스타트업시 마스터 코어 및 사용자 평면 코어들(L2 DLT 및 L2 업링크 스케줄러 스레드들이 속박됨)에 대해서, 상기 CALInit 모듈(302)은 CAL(301)을 수행하고, 등록하고, CAL(301)을 LEC에 부착한다. 이는 프로세스가 비정상적으로 종료할 때(예를 들면, LEC 임계 에러(critical error)가 일어남) 호출에 대한 루틴을 LEC의 스냅샷 태스크에 제공한다. 이러한 루틴은 버퍼 풀 통계치들 및 Tx/Rx 이더넷 인터페이스 통계치들을 포함하는 다양한 CAL 및 DPAA 데이터를 수집하고, 디버그 목적들을 위해 LEC의 스냅샷 파일들에 데이터를 덤프한다.
상기 CALBuf 모듈(304)은 "빠른 경로" 데이터 프로세싱을 위해 독점적으로 사용될 버퍼 관리 서비스들을 제공한다. 상기 CALBuf 모듈(304)은 L2 애플리케이션에 사용자-공간 APIs를 제공한다. 상기 CALBuf 모듈(304)은 상기 CALDpaa 드라이버(312)가 생성하지만 상기 Bman(326)에 의해 관리되는 버퍼들에 대한 무복사 및 잠금 없는 버퍼 관리 서비스를 제공하기 위해 상기 CALDpaa 드라이버(312)와 협력한다.
상기 CALBuf 모듈(304)은 그 중에서도 다음의 서비스들을 지원하는 API들을 실행하고 제공한다:
1. 버퍼 크기가 주어진, 버퍼를 획득;
2. 주어진 크기의 주어진 수의 버퍼들을 획득하고, 이후 요청된 버퍼들의 수까지 이용가능한 버퍼들의 리스트를 리턴;
3. 지정된 버퍼를 해제;
4. 버퍼들의 리스트를 해제; 및
5. 버퍼 풀 통계치들을 쿼리.
상기 CALMsg 모듈(306)은 다른 보드로 또는 다른 보드로부터(즉, eCCM) 사용자-평면 데이터를 전송하고 수신하기 위해 L2 소프트웨어에 메시징 서비스들을 제공한다. 상기 CALMsg 모듈(306)은 일반적으로 DPAA를 통해 잠금 없는 무복사 메시징 서비스들을 제공하기 위해 상기 CALDpaa 드라이버(312)와 인터페이스한다. 이러한 특징은 L2 애플리케이션 소프트웨어가 구속되지 않은 레이턴시 지연들을 피하기 위해 프로토콜 스택의 사용 없이 TCP/UDP IP 패킷들을 전송하고 수신하게 한다.
상기 CALMsg 모듈(306)은 다음의 단락들에서 설명된 것들과 같이 다양한 서비스들을 지원하는 API들을 실행하고 제공한다.
하나의 가능한 서비스는 상기 CALMsg 서비스를 사용하여 (L2) 애플리케이션 엔티티들의 등록이고 이에 의해 엔티티는 "빠른 경로"를 통해 인입하는 패킷들을 수신할 수 있다. 이러한 등록 프로세스 동안, CAL의 L2 소프트웨어 대기 행렬(링 버퍼)은 엔티티를 위해 예정된 수신된 버퍼 디스크립터들을 유지하기 위해 생성된다. 또한 이러한 등록 동안, 상기 CALMsg 모듈(306)은 IP 어드레스에 대한 입구 FQ와 다른 프로세싱(예를 들면, 프레임이 FQ에 도착할 때 어느 링 버퍼가 버퍼 디스크립터를 푸시할지를 결정)에서 이후 참조(들)을 위한 링 ID간의 결합을 생성하고, 관련된 버퍼 풀들의 커널 대 사용자-공간 맵핑을 수행하고, (정적 규칙들을 통해 아직 행해지지 않은 경우) 상기 애플리케이션 엔티티에 대해 PCD 규칙을 구성한다. 또한, 등록 프로세스의 시작시, 상기 CAL(301)은, 애플리케이션에 의해 획득된 모든 버퍼들이 스레드가 충돌할 때 완전하게 해제되는 것을 보장하기 위한 방어 전략을 실행한다.
제 2 서비스는 애플리케이션 엔티티를 위해 예정된 프레임을 검색하는 것이다. 상기 리턴된 버퍼 어드레스는 이더넷 헤더로 시작하는 페이로드의 시작을 지시하는 것이 기대된다.
제 3 서비스는 사용자 평면 데이터(예를 들면, eth0)를 프로세싱하기 위해 구성된 이더넷 인터페이스상에 DPAA를 통해 외부의 엔티티로 메시지를 전달하는 것이다. L2는 요구되는 모든 헤더들(이더넷, IP, UDP)을 채우고; 하드웨어는 IP 체크섬 및 UDP 체크섬을 생성하고 채우도록 적당하게 구성될 것이 기대된다.
제 4 서비스는 수신기 및 송신기 포트 통계적인 데이터에 대해 쿼리한다.
제 5 서비스는 상기 CALMsg 모듈(306)로부터 애플리케이션 엔티티를 등록 해제한다. 일단 애플리케이션 엔티티가 등록 해제되면, "빠른 경로"를 통해 더 이상 패킷들을 수신할 수 없을 것이다. 상기 등록 해제 프로세스의 일부로서, CAL은 상기 애플리케이션 소프트웨어에 의해 획득된 모든 버퍼들을 해제할 것이다. 상기 CALMsg 모듈(306)이 빠른 경로를 통해 프레임들을 수신하기 위해 사용되는 경우에 대해, 상기 결합된 링 버퍼 및 PCD 규칙이 또한 제거될 것이다.
상기 CALPcdFmc 모듈(308)은 적어도 하나의 네트워크 인터페이스 구성 파일 및 상기 CAL(301)이 상기 FMan(330, 332)의 PCD 구성 부품들을 초기화하고 구성하기 위해 사용할 수 있는 분석, 분류, 및 분배(PCD) 규칙들을 제공한다. 상기 FMan의 PCD 구성 부품들은 적절한 코어들에 인입하는 프레임들의 분배를 허용하도록 구성될 필요가 있다.
예시적인 아키텍처를 갖는 LTE PCD 규칙들(정적으로 또는 동적으로)을 규정하기 위해 사용될 수 있는 전략의 일 예가 이하에 설명된다.
사용자-공간 분배에 관하여, IP 및 UDP 헤더들을 갖고 상기 사용자-공간 이더넷 인터페이스(eth0)에 도달하는 모든 프레임들은 거친 분류(coarse classification)(Fman에 의해)를 겪을 것이다. 이는 적합한 PCD 규칙들(정적으로 또는 동적으로)의 제공을 통해 달성될 수 있다. 정확한 매치 분배 방식은 특정한 코어에 (목적지 IP 어드레스들의 일부가 정적으로 규정될 수 있는 것에 의존하여) 목적지 IP 어드레스의 전체 또는 일부를 맵핑하기 위해 사용될 수 있다. 임의의 매칭되지 않는 프레임들은 디폴트로 제어 평면 코어(즉, core0)에 할당되는 FQ의 대기행렬에 넣어질 것이다.
디폴트 분배에 관하여, 상기 제어 평면 이더넷 인터페이스(eth1) 또는 상기 디버그 이더넷 인터페이스(eth2)에 도달하는 모든 프레임들은 상기 제어-평면 코어(즉, core0)에 분배될 것이다.
PCD 규칙들이 Fman에서 규정되고 구성되는 방법 및 시기는 상기 PCD 규칙들이 플랫폼 초기화 동안 미리 규정되고 구성될 수 있는지의 여부에 의존한다. 상기 L2(다운링크) 스레드들의 IP 어드레스들 및 다양한 코어들에 대한 그들의 구속들이 먼저 결정될 수 없기 때문에, 보드 스타트업 및 초기화 동안 상기 입구(다운링크) 사용자-평면 경로에 대한 상기 Fman의 PCD 규칙들을 규정하는 것이 가능하지 않다. 그러므로, 상기 사용자 평면 데이터 경로에 대한 상기 PCD 규칙들은 셀이 구성된 후 런타임에 규정될 필요가 있다. 다운링크 스케줄러(DLT) IP 어드레스 및 스레드가 구속된 코어는 일반적으로 상기 DLT가 상기 CALMsg 모듈(306)에 등록될 때를 알려진다. 다른 한편으로, 제어 평면 및 디버그 트래픽에 대한 디스패칭 규칙들은 간단하고 임의의 변형에 의존하지 않는다. 그러므로, 제어 평면 및 디버그 평면 트래픽에 대한 상기 PCD 규칙들은 정적으로 규정되고 초기화 동안 구성될 수 있다.
제어 평면 이더넷 인터페이스 및 상기 디버그 이더넷 인터페이스에 대한 상기 PCD 규칙들이 미리 규정되고 상기 (FSL) 이더넷 드라이버가 초기화될 때 구성될 수 있다. 상기 사용자-평면 이더넷 인터페이스에 대하여, 상기 PCD 규칙들은 DLT 가 알려진 IP 어드레스 및 바인딩 코어와 동등해진 후 런타임에서 규정되고 구성될 필요가 있다.
상기 CALDPaaTrace 모듈(310)은 상기 CALDpaa 드라이버(312) 및 상기 다양한 P4080 DPAA 구성부품들(드라이버들)을 트레이스하고 디버깅하는 것을 인에이블하고 디스에이블하게 하기 위한 다양한 서비스들을 제공한다. 이들 서비스들은 예를 들면, (1) CALDpaa 드라이버 트레이스를 인에이블하고 디스에이블하게 하고, (2) Bman 트레이스(미래)를 인에이블하고 디스에이블하게 하고, (3) Qman 트레이스(미래)를 인에이블하고 디스에이블하게 하고, (4) Fman 트레이스(미래)를 인에이블하고 디스에이블하게 하는 것을 포함한다.
상기 CAL(301)이 사용될 수 있는 다양한 시나리오들이 존재한다. 예를 들면, 상기 CAL(301)은 초기화시(즉, 상기 플랫폼의 스타트업 동안) 마스터 코어를 지원할 수 있다:
1. 상기 CAL 구성 데이터(예를 들면, DPAA 리소스 구성)를 로딩하고 상기 CALDpaa 드라이버(312)를 초기화함으로써 상기 CAL의 프레임워크를 셋 업.
2. 만약 있다면, 상기 LTE FMC의 네트워크 인터페이스 구성 및 정적 PCD 규칙들을 로딩.
상기 CAL(301)은 또한 초기화시 사용자-공간 프로세스들을 지원할 수 있다. 이 경우에서, 상기 CAL(301)이 로딩되고 초기화될 때, 상기 CAL(301)은 LEC에 등록하거나 그 자체가 LEC에 부착되어 프로세스가 종료할 때 구동할 상기 LEC의 스탭샷 태스크에 대한 루틴을 제공한다. 상기 루틴은 Bman-관리된 버퍼 풀들 및 Tx/Rx 이더넷 인터페이스들에 관련된 다양한 통계치 데이터를 수집하고 사후 조사를 위해 LEC 스탭샷 파일들로 데이터를 덤프할 것이다.
상기 CAL(301)은 패킷들의 전송을 또한 지원할 수 있다(즉, L2 ULU 소프트웨어 프로세싱):
1. 상기 ULU(업링크 스케줄러)가 DPAA를 통해 패킷들을 전달할 수 있도록 상기 CALMsg(306)에 자신을 등록한다.
2. 상기 ULU는 CALBuf 서비스들을 사용하여 버퍼를 할당한다.
3. 상기 ULU는 모든 요청된 헤더들(이더넷/IP/UDP) 및 페이로드로 전송될 데이터를 상기 버퍼에 배치한다.
4. 상기 ULU는 CALMsg 서비스들을 사용하여 DPAA를 통해 목적지 엔티티에 상기 메시지를 전달한다.
상기 CAL(301)은 패킷들의 수신을 또한 지원할 수 있다(즉, L2 DLT 소프트웨어 프로세싱):
1. 상기 DLT(다운링크 스케줄러)가 DPAA를 통해 패킷들을 수신할 수 있도록 자신을 상기 CALMsg(306)에 등록한다.
2. 대략 델타 T 시간(즉, 1ms) 후, 상기 DLT가 CALMsg 서비스들을 사용하여 상기 DLT를 위해 예정된 프레임들을 판독한다.
3. 상기 DLT가 판독하는 각각의 프레임에 대해, 상기 DLT는 프레임들을 처리하고 CALBuf 서비스들을 사용하여 상기 CAL(301) 또는 상기 Bman(326)에 다시 상기 버퍼를 해제한다.
셀을 삭제하는 모든 시나리오들에 대해서, 상기 L2 DLT 및 ULU 스레드들은 그들이 종료되기 전에 필요한 클린업을 수행할 것임이 가정된다. 클린업의 일부로서, 상기 L2 DLT 및 ULU 스레드들은 상기 CAL(301)로부터 그들을 등록 해제해야 한다. 상기 등록 해제 프로세스의 일부로서, 상기 CAL(301)은 애플리케이션이 획득한(CALBuf 서비스들을 통해 직접 또는 상기 FMAN(330 또는 332)에 의해 잠재적으로 획득한) 모든 버퍼들을 해제하고, 연관된 링 버퍼를 삭제하고 PCD 규칙을 제거하는(빠른 경로의 수신기에만 관련됨) 것과 같은 몇몇 클린업 작업을 수행할 필요가 있다.
상기 ULU 및 상기 DLT는 CLAMsg 서비스들을 사용하여 상기 CAL(301)로부터 그들 자신을 등록 해제할 수 있다.
L2 DLT 또는 L2 ULU 스레드가 비정상적으로 종료하는 경우에, 상기 CAL(301)은 디버깅 메커니즘을 제공할 수 있고 그에 의해 버퍼 풀 통계치들 및 Tx/Rx 이더넷 인터페이스 통계치들과 같은 다양한 CAL 및 DPAA 리소스들이 LEC의 서비스들을 통해 수집되고 덤프된다.
상기 설명은 본 발명의 특정 실시예들의 명세를 단순히 제공하는 것이고 그에 대해 동일한 것을 제한하는 목적들을 위해 의도되는 것이 아니다. 이와 같이, 본 발명은 상기 설명된 실시예들에만 제한되는 것이 아니다. 오히려, 당업자는 본 발명의 범위 내에 있는 대안적인 실시예들을 생각할 수 있다는 것이 이해된다.
10 : 멀티-코어 프로세서 30 : 제어 평면
32 : 제 1 운영 시스템 34 : OA&M
36 : BCS/UPS 54 : 제 2 운영 시스템
56 : 코어 추상화 계층(CAL)

Claims (10)

  1. 멀티-코어 프로세서에서, 코어 추상화 계층에 있어서,
    네트워크 구성 데이터 및 정적 분석, 분류 및 분배(PCD) 규칙들을 하나 이상의 프레임 관리자들에 로딩하고 한 세트의 구성 파일들에 기초한 상기 코어 추상화 계층 프레임워크를 셋 업하는 초기화 모듈;
    하나 이상의 계층 2 애플리케이션들에 대한 잠금 없는 버퍼 관리 서비스들을 제공하는 버퍼 모듈;
    다른 보드로 또는 다른 보드로부터 사용자 평면 데이터를 전송하거나 수신하기 위해 계층 2 소프트웨어에 무복사 및 잠금 없는 메시징 서비스들을 제공하는 메시징 모듈;
    입구 프레임들을 적절한 코어들에 라우팅하기 위해 상기 프레임 관리자들에 의해 사용될 PCD 규칙들 및 구성들을 제공하는 PCD 모듈; 및
    데이터 경로 가속 아키텍처(DPAA; Data Path Acceleration Architecture) 드라이버 모듈에서 트레이스들을 인에이블하고 디스에이블하는 트레이스 능력들을 제공하는 DPAA 트레이스 모듈을 포함하는, 코어 추상화 계층.
  2. 제 1 항에 있어서,
    상기 버퍼 모듈은 다음의 서비스들:
    버퍼를 획득하고;
    주어진 크기의 주어진 수의 버퍼들을 획득하고 이후 요청된 수의 버퍼들까지 이용가능한 버퍼들의 리스트를 리턴하고;
    지정된 버퍼를 해제하고;
    버퍼들의 리스트를 해제하고;
    버퍼 풀 통계치들을 쿼리하는 것 중 하나 이상을 지원하는 잠금 없는 애플리케이션 프로그래밍 인터페이스들을 실행하고 제공하는, 코어 추상화 계층.
  3. 제 1 항에 있어서,
    상기 초기화 모듈, 상기 버퍼 모듈, 상기 메시징 모듈, 상기 PCD 모듈, 및 상기 DPAA 트레이스 모듈은 사용자 공간에서 동작하는, 코어 추상화 계층.
  4. 제 1 항에 있어서,
    상기 DPAA 드라이버 모듈은 커널-공간에서 동작하는, 코어 추상화 계층.
  5. 제 1 항에 있어서,
    상기 DPAA 드라이버 모듈은:
    사용자-평면 데이터 분배를 위해 사용될 버퍼 풀들 및 프레임 대기 행렬들을 포함하는 DPAA 리소스들을 관리하고;
    초기화, 버퍼 관리, 및 메시징 서비스들을 위해 오픈, 해제, i-o 제어와 같은 파일 동작들을 통해 사용자-공간 인터페이스를 다른 CAL 모듈들에 제공하고,
    커널 대 사용자 공간 버퍼 맵핑을 수행하고;
    DPAA 버퍼 풀 및 수신기 및 송신기에 통계치 데이터를 제공하고;
    링 버퍼들을 관리하기 위한 서비스들을 실행하는 기능들 중 하나 이상을 제공하도록 동작하는, 코어 추상화 계층.
  6. 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치에 있어서,
    모뎀 보드; 및
    상기 모뎀 보드에 부착된 복수의 프로세서 코어들 및 코어 추상화 계층을 포함하는 멀티-코어 프로세서로서, 단일 분할은 그에 포함된 상기 프로세서 코어들 모두로 규정되고 상기 단일 분할은 모든 제어 평면 기능들 및 모든 데이터 평면 기능들을 실행하기 위해 사용되고, 애플리케이션 소프트웨어로부터 임의의 코어 특정 명세들을 숨기는 상기 코어 추상화 계층은 상기 단일 분할에서 상기 프로세서 코어들상에 구동하는, 상기 멀티-코어 프로세서를 포함하고,
    상기 코어 추상화 계층은 다음의 모듈들:
    상기 네트워크 구성 데이터 및 정적 분석, 분류, 및 분배(PCD) 규칙들을 하나 이상의 프레임 관리자들에 로딩하고 한 세트의 구성 파일들에 기초하여 상기 코어 추상화 계층을 셋 업하는 초기화 모듈;
    하나 이상의 계층 2 애플리케이션들에 대해 잠금 없는 버퍼 관리 서비스들을 제공하는 버퍼 모듈;
    다른 보드로 또는 상기 다른 보드로부터 사용자 평면 데이터를 전송하거나 수신하도록 계층 2 소프트웨어에 무복사 및 잠금 없는 메시징 서비스들을 제공하는 메시징 모듈;
    적절한 코어들에 입구 프레임들을 라우팅하기 위해 상기 프레임 관리자들에 의해 사용될 PCD 규칙들 및 구성들을 제공하는 PCD 모듈; 및
    데이터 경로 가속 아키텍처(DPAA) 드라이버 모듈에서 트레이스들을 인에이블하고 디스에이블하는 트레이스 능력들을 제공하는 DPAA 트레이스 모듈 중 하나 이상을 포함하는, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치.
  7. 제 6 항에 있어서,
    상기 초기화 모듈, 상기 버퍼 모듈, 상기 메시징 모듈, 상기 PCD 모듈, 및 상기 DPAA 트레이스 모듈은 사용자-공간에서 동작하는, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치.
  8. 제 6 항에 있어서,
    상기 DPAA 드라이버 모듈은 커널-공간에서 동작하는, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치.
  9. 제 8 항에 있어서,
    상기 DPAA 드라이버 모듈은:
    시용자-평면 데이터 분배를 위해 사용될 버퍼 풀들 및 프레임 대기 행렬들을 포함하는 DPAA 리소스들을 관리하고;
    초기화, 버퍼 관리, 및 메시징 서비스들을 위해 오픈, 해제, i-o-제어와 같은 파일 동작들을 통해 다른 CAL 모듈들에 사용자-공간 인터페이스를 제공하고,
    커널 대 사용자-공간 버퍼 맵핑을 수행하고;
    DPAA 버퍼 풀, 수신기 및 송신기에 통계치 데이터를 제공하고;
    링 버퍼들을 관리하기 위한 서비스들을 실행하는 기능들 중 하나 이상을 제공하도록 동작하는, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치.
  10. 제 6 항에 있어서,
    상기 멀티-코어 프로세서는 전기 통신 네트워크에서 적어도 세 개의 셀들을 서빙하도록 구성되고, 각각의 셀은 대응하는 업링크 스케줄러 및 대응하는 다운링크 스케줄러를 갖는, 전기 통신 네트워크에서 멀티-셀 지원을 제공하기 위한 장치.
KR1020137009399A 2010-10-14 2011-09-29 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층 KR101636308B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/904,322 US20120093047A1 (en) 2010-10-14 2010-10-14 Core abstraction layer for telecommunication network applications
US12/904,322 2010-10-14
PCT/US2011/053804 WO2012050939A1 (en) 2010-10-14 2011-09-29 Core abstraction layer for telecommunication network applications

Publications (2)

Publication Number Publication Date
KR20130056333A true KR20130056333A (ko) 2013-05-29
KR101636308B1 KR101636308B1 (ko) 2016-07-05

Family

ID=45218140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137009399A KR101636308B1 (ko) 2010-10-14 2011-09-29 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층

Country Status (6)

Country Link
US (1) US20120093047A1 (ko)
EP (1) EP2628081A1 (ko)
JP (1) JP5759006B2 (ko)
KR (1) KR101636308B1 (ko)
CN (1) CN103154897B (ko)
WO (1) WO2012050939A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210072957A (ko) * 2019-12-10 2021-06-18 디노플러스 (주) 적응형 데이터 계측 가속화 기술을 이용한 저지연 클라우드 서비스제공장치

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110054415A (ko) * 2009-11-17 2011-05-25 삼성전자주식회사 화면 표시 방법 및 장치
US8634302B2 (en) * 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network
US8504744B2 (en) 2010-10-28 2013-08-06 Alcatel Lucent Lock-less buffer management scheme for telecommunication network applications
US8737417B2 (en) 2010-11-12 2014-05-27 Alcatel Lucent Lock-less and zero copy messaging scheme for telecommunication network applications
US8730790B2 (en) 2010-11-19 2014-05-20 Alcatel Lucent Method and system for cell recovery in telecommunication networks
US8861434B2 (en) 2010-11-29 2014-10-14 Alcatel Lucent Method and system for improved multi-cell support on a single modem board
US9357482B2 (en) 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US9917728B2 (en) * 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US9740513B2 (en) * 2014-06-05 2017-08-22 Futurewei Technologies, Inc. System and method for real time virtualization
CN106533800B (zh) * 2016-12-16 2019-12-06 深圳市有方科技股份有限公司 一种实现终端网络适配的方法及rndis设备
CN106851667B (zh) * 2017-01-19 2019-07-02 京信通信系统(中国)有限公司 一种针对空口协议数据面的数据处理方法及装置
US20190114206A1 (en) * 2017-10-18 2019-04-18 Cisco Technology, Inc. System and method for providing a performance based packet scheduler
CN110753008A (zh) * 2018-07-24 2020-02-04 普天信息技术有限公司 基于dpaa的网络数据处理装置和方法
US11687400B2 (en) * 2018-12-12 2023-06-27 Insitu Inc., A Subsidiary Of The Boeing Company Method and system for controlling auxiliary systems of unmanned system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
WO2008005793A2 (en) * 2006-06-30 2008-01-10 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (mcal)
US7620753B1 (en) * 2005-03-17 2009-11-17 Apple Inc. Lockless access to a ring buffer

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002667A (en) * 1995-07-19 1999-12-14 Fujitsu Network Communications, Inc. Minimum guaranteed cell rate method and apparatus
US6175914B1 (en) * 1997-12-17 2001-01-16 Advanced Micro Devices, Inc. Processor including a combined parallel debug and trace port and a serial port
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US7558472B2 (en) * 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US6999432B2 (en) * 2000-07-13 2006-02-14 Microsoft Corporation Channel and quality of service adaptation for multimedia over wireless networks
US6799200B1 (en) * 2000-07-18 2004-09-28 International Business Machines Corporaiton Mechanisms for efficient message passing with copy avoidance in a distributed system
US7089289B1 (en) * 2000-07-18 2006-08-08 International Business Machines Corporation Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US6735620B1 (en) * 2000-07-18 2004-05-11 International Business Machines Corporation Efficient protocol for retransmit logic in reliable zero copy message transport
JP2002050996A (ja) * 2000-07-31 2002-02-15 Sony Corp 整数倍相互関係を有するブロック長を用いて符号化された信号を通信伝送路を介して送信する通信システム
US7096034B2 (en) * 2001-10-01 2006-08-22 Microsoft Corporation System and method for reducing power consumption for wireless communications by mobile devices
JP2003271404A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd マルチプロセッサシステム
GB2411254B (en) * 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
US7810124B2 (en) * 2003-01-28 2010-10-05 Thomson Licensing Robust mode staggercasting fast channel change
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
CN1879389B (zh) * 2003-10-15 2010-08-18 株式会社Ntt都科摩 控制分层通信环境中多个通信层的操作的设备和方法
JP4287430B2 (ja) * 2003-10-15 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ 複数の通信層の動作を制御する装置及び方法
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
US7370326B2 (en) * 2004-04-02 2008-05-06 Emulex Design & Manufacturing Corporation Prerequisite-based scheduler
US8644246B2 (en) * 2005-07-05 2014-02-04 Nokia Corporation Scheduling information at serving cell change
US20070113229A1 (en) * 2005-11-16 2007-05-17 Alcatel Thread aware distributed software system for a multi-processor
EP1798897B1 (en) * 2005-12-14 2008-06-18 NTT DoCoMo, Inc. Apparatus and method for determining transmission policies for a plurality of applications of different types
US7562258B2 (en) * 2006-02-09 2009-07-14 Arm Limited Generation of trace elements within a data processing apparatus
EP2005691A4 (en) * 2006-03-28 2013-02-20 Radisys Canada Inc MULTIMEDIA PROCESSING IN PARALLEL MULTI-DATA DATA PROCESSING ARCHITECTURES
CN101071524A (zh) * 2006-05-13 2007-11-14 石河子开发区兆赫科技发展有限责任公司 电网载波集抄系统的actpis中间件及其所构成的电网载波集抄系统
US20080002681A1 (en) * 2006-06-30 2008-01-03 Symbol Technologies, Inc. Network wireless/RFID switch architecture for multi-core hardware platforms using a multi-core abstraction layer (MCAL)
US7493477B2 (en) * 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
CN101106490B (zh) * 2006-07-11 2012-01-04 华为技术有限公司 预置流分类器的建立方法及其系统和用户终端
KR20100094973A (ko) * 2007-09-28 2010-08-27 핀-한 호 중첩 변조를 사용하는 무선 데이터 멀티캐스트용의 강건한 시스템 및 방법
US8453121B2 (en) * 2007-10-25 2013-05-28 International Business Machines Corporation Managing the tracing of the execution of a computer program
ES2659870T3 (es) * 2008-04-22 2018-03-19 Nokia Technologies Oy Agrupamiento de células para distribución de información de célula vecina eficiente
US7966519B1 (en) * 2008-04-30 2011-06-21 Hewlett-Packard Development Company, L.P. Reconfiguration in a multi-core processor system with configurable isolation
US8024417B2 (en) * 2008-06-04 2011-09-20 Microsoft Corporation Simple flow control protocol over RDMA
US20100029266A1 (en) * 2008-07-02 2010-02-04 Nokia Corporation System and methods for quality of experience reporting
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
US8191134B1 (en) * 2008-09-29 2012-05-29 Sonicwall, Inc. Lockless distributed IPsec processing
US9203595B2 (en) * 2008-10-22 2015-12-01 Lg Electronics Inc. Efficient initial access system under a multi-carrier combination condition for supporting broadband
KR101546780B1 (ko) * 2008-12-18 2015-08-25 삼성전자주식회사 광대역 무선통신 망에서 서비스 플로우 변경 시 오류 처리를 위한 장치 및 방법
US8099546B2 (en) * 2009-06-09 2012-01-17 Red Hat, Inc. Mechanism for a lockless ring buffer in overwrite mode
US8413153B2 (en) * 2009-06-12 2013-04-02 Freescale Semiconductor Inc. Methods and systems for sharing common job information
US8291430B2 (en) * 2009-07-10 2012-10-16 International Business Machines Corporation Optimizing system performance using spare cores in a virtualized environment
US8737262B2 (en) * 2009-11-24 2014-05-27 Red Hat Israel, Ltd. Zero copy transmission with raw packets
US8675577B2 (en) * 2010-12-20 2014-03-18 Intel Corporation Signaling techniques for a multimedia-aware radio and network adaptation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
US7620753B1 (en) * 2005-03-17 2009-11-17 Apple Inc. Lockless access to a ring buffer
WO2008005793A2 (en) * 2006-06-30 2008-01-10 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (mcal)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sam Siu. An Introduction to the QorIQ Data Path Acceleration Architecture (DPAA). 2010.06.23. (http://www.freescale.com.hk/files/training_pdf/WBNR_FTF10_NET_F0444_PDF.pdf) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210072957A (ko) * 2019-12-10 2021-06-18 디노플러스 (주) 적응형 데이터 계측 가속화 기술을 이용한 저지연 클라우드 서비스제공장치

Also Published As

Publication number Publication date
JP5759006B2 (ja) 2015-08-05
WO2012050939A1 (en) 2012-04-19
CN103154897A (zh) 2013-06-12
KR101636308B1 (ko) 2016-07-05
CN103154897B (zh) 2016-08-03
JP2014501054A (ja) 2014-01-16
EP2628081A1 (en) 2013-08-21
US20120093047A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
KR101636308B1 (ko) 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층
US8861434B2 (en) Method and system for improved multi-cell support on a single modem board
US8737417B2 (en) Lock-less and zero copy messaging scheme for telecommunication network applications
US8730790B2 (en) Method and system for cell recovery in telecommunication networks
US8504744B2 (en) Lock-less buffer management scheme for telecommunication network applications
US8543729B2 (en) Virtualised receive side scaling
CN116266141A (zh) 用于使用负载平衡指派和检查反重放序列号的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant