[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20180031569A - 네트워크에서의 분산 프로세싱 - Google Patents

네트워크에서의 분산 프로세싱 Download PDF

Info

Publication number
KR20180031569A
KR20180031569A KR1020170114982A KR20170114982A KR20180031569A KR 20180031569 A KR20180031569 A KR 20180031569A KR 1020170114982 A KR1020170114982 A KR 1020170114982A KR 20170114982 A KR20170114982 A KR 20170114982A KR 20180031569 A KR20180031569 A KR 20180031569A
Authority
KR
South Korea
Prior art keywords
avb
processing core
data
subsystem
traffic
Prior art date
Application number
KR1020170114982A
Other languages
English (en)
Other versions
KR102410422B1 (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 KR20180031569A publication Critical patent/KR20180031569A/ko
Application granted granted Critical
Publication of KR102410422B1 publication Critical patent/KR102410422B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

다수의 프로세싱 코어들에 걸쳐 이더넷 데이터 프로세싱을 분산시키기 위한 예제들이 개시된다. 일 예에서, 컴퓨팅 시스템은 다수의 프로세싱 코어들 및 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함한 메인 호스트 프로세서, 및 직접 메모리 액세스(DMA) 서브시스템을 통해 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, DMA 서브시스템은 이더넷 하드웨어 서브시스템으로부터 다수의 프로세싱 코어들 중 하나 이상으로 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함한다.

Description

네트워크에서의 분산 프로세싱{DISTRIBUTED PROCESSING IN A NETWORK}
본 개시는 이더넷 오디오 비디오 브리징(AVB) 네트워크들과 같은 네트워크들에서 네트워크 프로세싱을 위한 분산 아키텍처에 관한 것이다.
AVB는 7 홉들에 걸쳐 2ms의 최대 지연 시간을 가진 저 지연 클래스 A 트래픽 및 7 홉들에 걸쳐 50ms의 최대 지연 시간을 갖는 고 지연 클래스 B 트래픽을 정의한다. AVB 61883-6 오디오 포맷과 같은, 오디오 스트리밍 표준들은 "클래스 A 등시 패킷이 8kHz마다 생성된다"는 것을 제안한다. 이러한 오디오 포맷들에서, 이러한 패킷은 125㎲만큼의 오디오를 나타낸다. 따라서, 48 kHz에서 오디오 CD 유형(16 비트 샘플, 스테레오) 스트림은 6개의 샘플들을 생성하며, 이것은 24바이트들의 페이로드를 의미한다. 2ms 만큼의 오디오가 버퍼링되는 예들에서, 125/250㎲ 간격에서 오디오 데이터를 전송하는 것은 구현에 대하여 도전을 제기할 수 있다.
클래스 A/B 트래픽은 125/250㎲ 간격 레이트를 갖고 성형되거나 또는 스케줄링되도록 구성된다. AVB 스트림의 특정한 클래스의 큐잉은 통상적으로 단지 각각의 스트림의 최대 간격 프레임들(MaxIntervalFrames)만이 하나의 스케줄링 사이클(클래스 A에 대해 125㎲, 클래스 B에 대해 250㎲) 내에서 스케줄링될 수 있도록 구성된다. 따라서, 소프트웨어 스케줄링 태스크는 스케줄링 사이클(125/250㎲)의 빈도에서 구동될 것이다. 선점형 멀티태스킹 운영 체제(예로서, Linux, QNX, Windows) 상에서, 125/250㎲의 스케줄링 사이클은 매우 실현 가능하지 않으며, 인터럽트 서비스 루틴으로서 구현된다면, 이러한 오버헤드의 부가적인 부하가 시스템 성능을 급격히 낮출 수 있다.
실시예들은 네트워크 프로세싱 부하를 공유하기 위해 다수의 코어들로 분산된 다양한 모듈들을 갖는 분산 이더넷 AVB 스택을 제공하기 위해 개시된다. 일 예에서, 컴퓨팅 시스템은 다수의 프로세싱 코어들 및 상기 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함한 메인 호스트 프로세서, 및 직접 메모리 액세스(DMA) 서브시스템을 통해 상기 메인 호스트 프로세서로 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 상기 이더넷 하드웨어 서브시스템으로부터 상기 다수의 프로세싱 코어들 중 하나 이상으로 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함한다.
개시는 또한 오디오/비디오 브리징(AVB) 컴퓨팅 시스템에서 호스트 프로세서의 다수의 코어들 사이에서 프로세싱 부하를 분산시키는 예시적인 방법을 제공한다. 상기 예시적인 방법은 상기 AVB 컴퓨팅 시스템의 직접 메모리 액세스(DMA) 서브시스템에서, 상기 AVB 컴퓨팅 시스템의 이더넷 하드웨어 서브시스템으로부터, 데이터를 수신하는 단계, 상기 데이터가 최선형(best effort) 트래픽 또는 AVB 트래픽을 포함하는지를 결정하는 단계, 및 상기 데이터가 최선형 트래픽을 포함한다고 결정하는 것에 응답하여, 상기 최선형 트래픽을 상기 호스트 프로세서의 애플리케이션 프로세서로 송신하는 단계, 및 상기 데이터가 AVB 트래픽을 포함한다고 결정하는 것에 응답하여, 상기 AVB 트래픽을 상기 호스트 프로세서의 AVB 오디오 프로세싱 코어 및 상기 호스트 프로세서의 AVB 비디오 프로세싱 코어 중 하나 이상으로 송신하는 단계를 포함한다.
본 개시는 또한 적어도 하나의 AVB 데이터 프로세싱 코어, 적어도 하나의 애플리케이션 프로세서, 및 상기 적어도 하나의 AVB 데이터 프로세싱 코어 및 상기 적어도 하나의 애플리케이션 프로세서의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함한 메인 호스트 프로세서, 하나 이상의 송신 채널들 및 하나 이상의 수신 채널들을 포함한 직접 메모리 액세스(DMA) 서브시스템, 및 상기 직접 메모리 액세스(DMA) 서브시스템을 통해 상기 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 상기 이더넷 하드웨어 서브시스템 및 상기 적어도 하나의 AVB 데이터 프로세싱 코어 및 상기 적어도 하나의 애플리케이션 프로세서 중 하나 이상 사이에서 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함한 AVB 컴퓨팅 시스템을 제공한다.
본 개시는 이하에서의 첨부된 도면들을 참조하여, 비-제한적인 실시예들에 대한 다음의 설명을 판독하는 것으로부터 보다 양호하게 이해될 수 있다.
도 1은 본 개시의 하나 이상의 실시예들에 따른 예시적인 통신 시스템을 도시한다;
도 2는 본 개시의 하나 이상의 실시예들에 따른 다중-코어 프로세서 및 이더넷 하드웨어 서브시스템을 포함한 예시적인 분산 이더넷 AVB 시스템을 개략적으로 도시한다;
도 3은 본 개시의 하나 이상의 실시예들에 따라 프로세싱 코어들 사이에서 전달된 데이터에 대한 예시적인 통신 타이밍들을 도시한 타이밍 도이다;
도 4는 본 개시의 하나 이상의 실시예들에 따라 직접 메모리 액세스 서브시스템에서 수신된 데이터를 라우팅하기 위한 예시적인 방법의 흐름도이다; 및
도 5는 본 개시의 하나 이상의 실시예들에 따라 가상화 디스크립터 로직을 실행하기 위한 예시적인 방법의 흐름도이다.
프로세싱을 분산시키기 위한 현재 접근법은 소프트웨어 모듈들/서버가 다수의 프로세서들에 걸쳐 네트워크 인터페이스 프로세싱 부하를 분산시키기 위해 추가 프로세서들에 연결된 추가 네트워크 인터페이스들을 구비하는 것을 포함한다. 이러한 접근법들은 부가적인 네트워크 인터페이스 카드들의 포함으로 인해 비효율적일 수 있다. 상기 설명된 접근법들은 또한 다수의 네트워크 인터페이스들의 조정을 위한 부가적인 오버헤드를 도입한다.
본 개시는 다수의 코어들을 가진 적어도 하나의 중앙 프로세서 유닛(CPU)을 포함한 이더넷 오디오/비디오 브리징(AVB) 스택을 프로세싱하고 구현하기 위한 시스템들 및 방법들을 제공한다. 본 개시는 또한 네트워크 및 다수의 CPU 코어들 사이에 연결을 형성하기 위한 네트워크 인터페이스를 위해 제공하며, 따라서 네트워크로부터 수신된 모든 데이터 패킷들에 대해, 인터럽트는 수신된 데이터 패킷을 프로세싱하기 위해 다수의 지정된 CPU 코어들에서 핸들링된다. 네트워크로부터 수신된 각각의 데이터 패킷은 프로세서 부하에 기초하여 선택된 지정된 CPU 코어 상에서 실행하는 소프트웨어 모듈과 연관될 수 있다. 개시된 시스템들 및 방법들은 네트워크 인터페이스에 의해 네트워크 및 이더넷 스택 동작들을 다양한 코어들로 재분배할 수 있다. 이러한 방식으로, 분산 다중코어는 비교적 많은 양의 CPU 리소스들(예로서, 임계치 이상 및/또는 비-시간 임계 태스크들 이상)을 이용하는 수신된 코더의 부분이 또 다른 전용 코어로 오프로딩될 수 있으며 비-시간 임계 태스크들이 호스트/별개의 CPU 또는 CPU 코어에 의해 프로세싱될 수 있도록 구성될 수 있다. 본 개시는 매우 최적화되며 요구된 CPU 리소스들을 상당히 감소시키는 것을 도울 AVB에 대한 새로운 아키텍처를 제공한다. 분산 프로세싱은 또한 동일한 네트워크 트래픽이 분산 프로세싱을 위해 다수의 코어들 간에 공유될 수 있게 하며, 이것은 가상 디스크립터들 기반 DMA 공유의 개념을 통해 달성될 수 있다.
도 1은 화자(102) 및 청취자(104)를 포함한 예시적인 통신 시스템(100)이다. 화자(102)는 오디오/비디오 스트림을 하나 이상의 청취자들(예로서, 청취자(104))로 전송하기 위한 임의의 적절한 디바이스일 수 있다. 청취자(104)는 하나 이상의 화자들(예로서, 화자(102))로부터 수신된 오디오/비디오 스트림을 수신하고 재생하기 위한 임의의 적절한 디바이스일 수 있다. 예를 들면, 화자(102)는 차량-내 컴퓨팅 시스템에 대응할 수 있으며 청취자(104)는 차량의 스피커 및/또는 디스플레이에 대응할 수 있다. 화자들/청취자들로서 예시되지만, 통신 시스템(100)에서 하나 이상의 디바이스들(예로서, 화자(102) 및/또는 청취자(104) 중 임의의 것)은 다수의 역할들을 수행하도록 구성될 수 있다는 것이 이해될 것이다. 예를 들면, 시스템에서 하나 이상의 디바이스들은 양쪽 모두 오디오/비디오 데이터를 송신하며 오디오/비디오 데이터를 수신할 수 있고, 그에 의해 화자 및 청취자의 역할을 선택적으로 맡는다. 화자의 역할은 AVB 네트워크(106)에 걸쳐 정보 및/또는 데이터를 송신하는 것일 수 있다. 부가적으로 또는 대안적으로, 화자의 역할은 정보 및/또는 데이터를 운반하는 데이터 스트림의 송신을 위한 연결을 수립하고, 생성하며, 및/또는 예약하는 것을 포함할 수 있다. 부가적으로 또는 대안적으로, 화자의 역할은 연결을 제거하거나 또는 해체하는 것일 수 있다. 청취자의 역할은 네트워크(106)를 통해 전송된 정보 및/또는 데이터를 수신하는 것일 수 있다. 부가적으로 또는 대안적으로, 청취자의 역할은 데이터 스트림에 연결하는 것 및/또는 그것으로의 연결을 예약하는 것을 포함할 수 있다. 부가적으로 또는 대안적으로, 청취자의 역할은 데이터 스트림으로의 연결을 제거하는 것을 포함할 수 있다. 화자/청취자의 역할은, 동시에 또는 상이한 시간들에서, 화자 및 청취자의 역할 양쪽 모두를 수행하는 것일 수 있다.
디바이스들은 또한, 이에 제한되지 않지만, 클라이언트 역할, 제어기, 마스터 클록 디바이스 등을 포함한, 다른 역할들을 맡을 수 있다. 제어기의 역할은 화자 및 청취자 또는 화자/청취자 사이에서 데이터 스트림의 흐름을 제어하는 것을 포함할 수 있다. 제어기는 화자 및 청취자 또는 화자/청취자 사이에서 연결을 생성하고 및/또는 데이터 스트림의 연결을 제거하기 위해 화자, 청취자, 및/또는 화자/청취자로 하나 이상의 메시지들을 전송함으로써 데이터 스트림의 흐름을 제어할 수 있다. 메시지들은 화자, 청취자, 및/또는 화자/청취자의 고-레벨 애플리케이션 계층을 통해 화자, 청취자, 및/또는 화자/청취자로 전달될 수 있다. 부가적으로 또는 대안적으로, 제어기의 역할은 화자들 중 어떤 것이 중요하고, 관련이 있으며, 및/또는 청취자에 의해 사용될 것으로 예상되는지를 식별하고 및/또는 결정하는 것일 수 있다. 클라이언트의 역할은 데이터 스트림의 연결의 생성 또는 제거를 나타내는, 사용자 입력과 같은, 입력을 결정하는 것 및 입력을 제어기로 전달하는 것을 포함할 수 있다. 이에 제한되지 않지만, 브리지들, 스위치들, 라우터들, 및 다른 적절한 네트워크 디바이스들을 포함한, 부가적인 또는 대안적인 디바이스들이 통신 시스템(100)에 존재할 수 있다는 것이 이해될 것이다. 예를 들면, 하나 이상의 브리지들 및/또는 스위치들은 시스템에서 하나 이상의 화자들 및 하나 이상의 청취자들 사이에서 메시지들을 전파하기 위해 및/또는 시스템에서 하나 이상의 화자들 및 하나 이상의 청취자들 사이에서의 데이터 스트림들에 대한 예약들을 수립하기 위해 AVB 네트워크(106)에 포함될 수 있다. 화자(102) 및 청취자(104)의 각각은 연관된 저장 디바이스(각각, 107 및 109) 및/또는 메모리(각각, 111 및 113)에 저장된 지시들을 실행하기 위해 프로세서(각각, 103 및 105)를 포함할 수 있다.
패킷(108)과 같은 데이터는 네트워크(예로서, AVB 네트워크(106))를 통해 화자(102)(예로서, 화자 통신 인터페이스(110)를 통해)로부터 청취자(104)(예로서, 청취자 통신 인터페이스(112)를 통해)로 송신될 수 있다. 예를 들면, 패킷(108)은 네트워크(106) 내에서 브리지(114)를 통해 송신될 수 있다. 따라서, 화자 통신 인터페이스(110) 및 청취자 통신 인터페이스(112)는 AVB 네트워크를 통해(예로서, 오디오/비디오 수송 프로토콜, AVTP를 통해) 통신하도록 구성될 수 있다. 화자 통신 인터페이스(110) 및 청취자 통신 인터페이스(112)는 브리지(114)의 포트들에 통신가능하게 연결된 하나 이상의 포트들(예로서, 네트워크를 통해 메시지들을 각각 수신 및 송신하기 위한 유입/유출 포트들)을 포함할 수 있다.
데이터 스트림에 대한 패킷들을 전송하기 전에, 화자(102) 및 청취자(104)는 디바이스들 사이에서의 네트워크 및 연관된 경로들이 데이터 스트림을 지원할 수 있음을 보장하기 위해 예약 루틴을 수행할 수 있다. 화자가 데이터 스트림을 송신하기로 결정할 때, 화자는 계층 2 광고 메시지로서 송신을 알리도록 구성될 수 있다. 계층 2 광고 메시지들은 데이터 스트림이 전달될 수 있는 적어도 하나의 네트워크(예로서, 네트워크(106))를 통해 네트워크 경로들을 예약 및 수립하기 위해 송신될 수 있다. 광고 메시지들은 이에 제한되지 않지만 화자 식별자들, 청취자 식별자들, 송신의 유형(예로서, 유니캐스트, 멀티캐스트, 브로드캐스트 등), 목적지 어드레스들(예로서, 계층 2 또는 MAC 어드레스들), 스트림 식별자들(예로서, 단지 하나의 데이터 스트림에 할당되거나 또는 그렇지 않다면 특정한 개개의 데이터 스트림에 기인할 수 있는 문자들 및/또는 숫자들의 고유 시퀀스), 서비스 품질 파라미터들, 및/또는 광고되는 화자 및/또는 데이터 스트림에 대한 다른 특성들을 포함한 하나 이상의 화자 속성들을 포함할 수 있다.
하나 이상의 청취자들은 광고 메시지들을 수신하며 광고되는 데이터 스트림을 수신할지를 결정할 수 있다. 예를 들면, 청취자들은 청취자가 데이터 스트림을 수신할지를 결정하기 위해 스트림 ID를 할당하고 및/또는 식별하도록 구성될 수 있다. 데이터 스트림이 수신되면, 청취자는 계층 2 광고 메시지 및/또는 화자 속성들을 등록하거나 또는 저장할 수 있다. 청취자는 이러한 결정이 이루어진다면 청취자가 데이터 스트림을 수신하기로 결정되었음을 표시하는 응답(예로서, 계층 2 준비 메시지)을 전송할 수 있다. 준비 메시지는 광고되는 데이터 스트림의 수신을 요청하기 위한 청취자 속성들(예로서, 수신 화자 디바이스에서 비교를 위한 데이터 스트림의 스트림 ID)을 포함할 수 있다. 광고 메시지를 전송한 화자 디바이스에서 준비 메시지를 수신하는 것에 응답하여, 화자 디바이스는 준비 메시지 및/또는 포함된 청취자 속성들을 등록하거나 또는 저장할 수 있다. 또한, 데이터 경로의 예약 및/또는 수립은 준비 메시지의 수신에 응답하여 완료될 수 있다. 예약은 계층 2 광고 메시지에서 식별된, 대역폭과 같은, 리소스들 및/또는 QoS 파라미터들에 대한 예약을 포함할 수 있다. 몇몇 예들에서, 다수의 경로들은 하나 이상의 준비 메시지들의 수신에 응답하여 예약되고 및/또는 수립될 수 있다.
일단 하나 이상의 네트워크 경로들에 대한 예약이 완료되고 계층 2 광고 및 준비 메시지들 및 연관된 화자 및 청취자 속성들이 등록되면, 데이터 스트림은 화자 및 하나 이상의 청취자들 사이에서 전달될 수 있다. 데이터 스트림의 전달이 끝난 후, 화자 및 하나 이상의 청취자들은 통신을 종료하기 위해 계층 2 종료 메시지들을 전달하도록 구성될 수 있다. 계층 2 종료 메시지들에 응답하여, 네트워크 경로들에 대한 예약들이 종료될 수 있고, 계층 2 광고 메시지들, 응답들, 및 연관된 화자 속성들의 등록들이 재-등록될 수 있으며, 데이터 스트림의 전달을 위해 소비된 임의의 리소스들은 데이터 스트림들의 다른 전달들을 위해 이용 가능해질 수 있다.
AVB의 구성에서 하나의 속성은 전체 송신 및 프로세싱 체인에서 지연 시간을 최소화하는 것이다. 저 대역폭의 오디오와 결합된 저 지연은 결과적으로 통상적으로 프로세싱 노드에 대한 매우 높은 인터럽트 부하를 의미한다. 각각의 AVB 클래스 A 스트림은 초에서의 8000개 샘플들을 의미한다. 노드가 2개 스트림들을 전송하며 2개 스트림들을 수신하도록 요청한다면, 이것은 초당 32000개 샘플들을 야기한다. 이러한 높은 프로세싱 부하는 모든 시스템 태스크들을 프로세싱하는 정상 코어의 최상부 상에서 핸들링하기에 매우 힘들 수 있다.
PTP (precision time protocol)는 마스터 클록에 하나 이상의 슬레이브 클록들을 동기화시키기 위해 신중하게 시간스탬핑된 패킷들의 사용에 의존하는 또 다른 AVB 프로토콜이다. 동기식 시간 정보는, 계층의 루트에서 그랜드 마스터 클록을 갖고, 계층적으로 분배된다. PTP는 두 개의 기능들, 즉 링크 지연들의 측정 및 시간 정보의 분배를 포함한다. 마스터 클록 디바이스는 주기적 동기 및 동기 추종(Sync Follow-Up) 메시지들(통상적으로 매 100ms)의 사용을 통해 부착된 슬레이브 클록 디바이스들을 동기화시킨다. 슬레이브 클록 디바이스들은 그것들의 로컬 클록에 대한 주기적 조정들을 수행하기 위해 이들 메시지들에서 캡처된 정보를 사용한다. 마스터 클록은 동기 메시지의 송신을 시간스탬핑하며 슬레이브는 그것의 수신을 시간스탬핑한다.
몇몇 시스템들에서, 호스트 CPU 상에서 실행하는 PTP 애플리케이션은 PTP 메시지들(동기 또는 지연 요청)을 개시할 수 있다. 시간스탬프는 PTP 애플리케이션이 추종 메시지를 전송할 수 있도록 인터럽트-기반 모델을 갖고 CPU로 다시 전달된다. 각각의 MAC 모듈은 PTP 시간 포맷의 나노초 필드를 조정하기 위해 대응하는 카운터를 유지할 수 있다. PTP 동기 메시지들이 초당 10회 송신되고 수신되므로, CPU는 보다 낮은 레이트에서 모든 필요한 동작들을 핸들링한다.
상기 논의된 바와 같이, 몇몇 시스템들은 그 일부가 시간-임계적인, 상기 설명된 프로세싱 태스크들을 핸들링하기 위해 단일 프로세싱 코어를 이용한다. 이러한 시스템들에서, 병목 현상들 및 다른 지연들은 다수의 태스크들을 프로세싱하려고 시도하는 동안 마주하게 될 수 있으며, 이것은 시간-임계적 콘텍스트들에서 바람직하지 않을 수 있다. 도 2는 다수의 프로세싱 코어들로 분산된 다양한 모듈들을 포함하고, 그에 의해 AVTP(오디오 비디오 수송 프로토콜)처럼 태스크들을 독차지하는 CPU가 다른 태스크들로부터 개별적으로 프로세싱될 수 있도록 부하를 공유하는 메인 호스트 프로세서(202)에서 분산 이더넷 AVB 스택을 도시한다. 도 2는 또한 다수의 코어들 간에 공유되는 이더넷 하드웨어 서브시스템(204)을 도시한다. 이더넷 하드웨어 서브시스템(204)은 도 2에서 포트-0 및 포트-N에 의해 표현된, N(1 이상의 정수) 수의 포트들을 포함한다. 포트들은 패킷들을 송신 및 수신하기 위해 Tx 및 Rx 경로들로 나뉘는 하드웨어 FIFO들(206)에 연결된다. FIFO들(206)의 송신 채널들은 상기 채널을 통과하는 트래픽의 우선순위를 정의하는 그것과 연관된 우선순위들을 가질 수 있다. 보다 높은 우선순위 송신 채널들은 AVB 트래픽과 같은, 시간-임계 또는 시간-민감 트래픽을 위해 사용될 수 있는 반면, 보다 낮은 우선순위 송신 채널들은 최선형 트래픽과 같은, 비-시간-임계 트래픽을 위해 사용될 수 있다. FIFO들(206)은 다수의 채널들(210)을 포함하는, 직접 메모리 액세스(DMA) 서브시스템(208)을 통해 호스트 프로세스 프로세서(202)에 연결되며, 각각의 채널은 동일한 패킷 우선순위를 가진 특정한 유형의 패킷 유형에 대해 전용되도록 적응된다. 예시된 예에서, DMA 서브시스템(208)은 이더넷 하드웨어 서브시스템(204)보다 많은 송신 채널들을 포함한다. 다른 예들에서, 송신 채널들은 예상된 또는 이력 스루풋(예로서, 호스트 프로세서가 이더넷 하드웨어 서브시스템보다 많은 데이터를 전송하는 경우에, 호스트 프로세서는 이더넷 하드웨어 서브시스템보다 많은 송신 채널들을 가질 것이며, 그 역 또한 마찬가지이다)에 기초하여 매칭되거나 또는 그 외 구성될 수 있다.
수반된 다양한 CPU 코어들은 미디어 클록 소스뿐만 아니라 오디오 샘플들의 소스일 수 있는 디지털 신호 프로세싱(DSP) 코어(212), 및 PTP 동작들을 수행할 뿐만 아니라 AVTP 오디오 스트림들을 생성하는, 실시간 운영 체제를 가진 AVB 오디오 프로세싱 코어(214)를 포함할 수 있다. 고정된 패킷 우선순위의 AVB 트래픽은 AVB 트래픽을 위해 할당된 DMA 채널을 지나오도록 매핑될 수 있다. AVB 오디오 프로세싱 코어(214)는 따라서 AVB 트래픽(예로서, AVTP 오디오 스트림들)을 수신하고 송신할 수 있다. AVB 오디오 프로세싱 코어(214)는 또한 DSP 코어(212)로부터 PTP 타이밍 데이터(예로서, 미디어 클록 소스에 AVB 오디오 프로세싱 코어를 동기화시키기 위한 정보)와 같은, PTP 패킷들을 수신하며, PTP 타이밍 데이터를 다른 코어들로 송신할 수 있다.
CPU 코어들은 부가적으로 애플리케이션 프로세싱 코어/프로세서(216)를 포함할 수 있으며, 이것은 일반 운영 체제(OS)를 포함하고 및/또는 실행할 수 있다. 애플리케이션 프로세싱 코어/프로세서(216)는 이더넷 트래픽을 프로세싱하며 최선형 트래픽을 수신할 수 있다. 메인 호스트 프로세서(202)는 또한 서브-프로세서(218)와 같은, 다른 서브-프로세서들을 포함할 수 있다. 단지 하나의 서브-프로세서가 도 2에 예시되지만, 메인 호스트 프로세서(202)는 다른 예들에서 다수의 서브-프로세서들을 포함할 수 있다는 것이 이해될 것이다. 서브-프로세서들은 이하에서 보다 상세히 설명될 바와 같이, 가상 레지스터들의 개념을 사용하여 애플리케이션 프로세서(216)가 수신하는 동일한 패킷들(예로서, 복제된 패킷들)을 수신할 수 있다.
CPU 코어들은 비디오 프로세싱을 수행할 뿐만 아니라 AVTP 비디오 스트림들을 생성하는, 실시간 운영 체제를 가진 AVB 비디오 프로세싱 코어(220)를 추가로 포함할 수 있다. 고정된 패킷 우선순위의 AVB 트래픽은 AVB 트래픽을 위해 할당된 DMA 채널을 지나오도록 매핑될 수 있다. CPU 코어들은 이더넷 하드웨어 서브시스템(204)으로 전달될 AVB 비디오 프로세싱 코어(220)로 비디오 샘플들을 제공하는 비디오 가속기 하드웨어 모듈(222)을 추가로 포함할 수 있다.
이더넷 패킷들이 단일-코어 시스템에서 수신되고 송신될 인스턴스들에서, 디스크립터들은 특정한 채널에 부착될 수 있다. 이더넷 데이터가 다수의 코어들에서 수신될 때, 시스템은 호스트 프로세서에서의 라우팅을 제어하기 위해 가상 디스크립터들을 이용할 수 있다. 가상 디스크립터 로직(224)은 모든 수신된 트래픽을 제공하며 별개의 직접 메모리 액세스들 및/또는 액세스 루트들(DMA들)에 매핑된 별개의 이더넷 큐들을 통해 다수의 별개의 코어들로 이들 패킷들을 제공하는 것을 도울 수 있다. 가상 수신 디스크립터들은 네트워크 디바이스의 각각의 네트워크 드라이버를 위해 메모리 안쪽에 저장될 수 있다. 이들 가상 수신 디스크립터들은 하드웨어 디스크립터들이 작동하는 동일한 방식으로 작동할 수 있다. 그러므로 네트워크 드라이버에 대해, 수신 디스크립터들이 위치되는 상이한 어드레스만이 있을 수 있다. 이러한 배열을 갖고, 최선형 또는 AVB 트래픽은 이더넷 드라이버, 뿐만 아니라 다수의 코어들에 대해 동일한 수신 디스크립터들을 공유할 수 있다.
패킷들의 수신이 인터럽트 기반일 때, DMA 드라이버들의 동기화 - 양쪽 코어들에서 다중 코어 이더넷 드라이버의 부분인 -가 또한 수행될 수 있다. 동기화는 데이터 포인터들이 디스크립터들에서 업데이트된 후 동일한 인터럽트가 다수의 코어들에 이를 때 인터럽트 마스크 클리어링을 핸들링하기 위한 방식들에 관한 규칙들을 결정하고 셋업하는 것을 포함할 수 있다. 가상 수신 디스크립터들 없이, 다수의 코어들로 이더넷 데이터를 공유하는 것은 가능하지 않을 수 있다(일 세트의 디스크립터들로부터 또 다른 세트의 디스크립터들로 데이터를 복사하는 부가적인 오버헤드가 있을 것이므로). 동기화는 개별적으로 핸들링되는 판독 및 기록 사이클들(예로서, 액세스된 메모리에 대한)을 유지함으로써 암묵적으로 핸들링될 수 있다. 핑 앤 퐁(Ping and Pong) 버퍼들의 개념이 유지될 수 있으며, 따라서 핑이 업데이트될 때 퐁이 항상 판독된다. 이러한 방식으로, 오디오 및 비디오 샘플들은 손상되지 않은 것으로 유지될 수 있다. 또한, 일반적으로 공유되는 데이터 구조들에 대하여, 몇몇 예들에서, 단지 판독 동작들만이 동시에 수행되도록 허용된다. 기록 동작들은 동기식 기록들이 없도록 AVB 프로세싱 간격과 동기화될 수 있다. 동작들은 다양한 코어들에서의 태스크들 모두가 사이클들 동안 트리거되고 액세스되는 프로세싱 사이클들에 기초하여 데이터 구조들을 액세스하도록 동기식일 수 있다.
코어들의 각각은 메인 호스트 프로세서(202)의 온-칩 메모리에 상주하는 메모리 AVB 오브젝트들(226)을 액세스하며 공유할 수 있다. 메모리 AVB 오브젝트들-기반 임계 데이터 공유는 분산 이더넷 AVB 프로세싱을 수행하는 모든 코어들을 지원하며 PTP 정보, 샘플 세부사항들 등을 포함한, 메인 호스트 프로세서 전체에 걸쳐 이용 가능한 동일한 정보를 제공한다. 메모리 AVB 오브젝트들을 이용하기 위한 버퍼 동작은 버퍼 소유자 및 버퍼 사용자로서 조직된다. 버퍼 소유자 및 판독자의 기능들은 이하에서 설명된다.
버퍼-소유자는, 이 버퍼의 모든 (공유된) 사용자들에 대해, 버퍼를 위한 동작들을 구현하며 관리하고, 다른 사용자들이 DMA 버퍼 공유 API들을 사용함으로써 버퍼를 공유하도록 허용하고, 버퍼 할당의 세부사항들을 관리하고, 이러한 할당이 일어나는 실제 보조 저장 장치에 대해 결정하며, 및/또는 스캐터리스트(scatterlist)의 임의의 이송을 처리할 수 있다. 버퍼-사용자는 버퍼의 (많은) 공유 사용자들 중 하나일 수 있고, 버퍼가 어떻게, 또는 어디에서 할당되는지를 결정하는 것과 연관되지 않을 수 있으며, 메모리에서 이러한 버퍼를 구성하는 스캐터리스트로의 액세스를 획득하기 위해 메커니즘을 이용할 수 있고, 그 자신의 어드레스 공간으로 매핑되며, 따라서 버퍼-사용자는 메모리의 동일한 영역을 액세스할 수 있다. 온-칩 메모리는 운영 체제를 포함하지 않는 버퍼-사용자들(예로서, 프로세싱 코어들)에 대한 임의의 캐싱 능력들을 제공하지 않을 수 있다.
호스트 프로세서의 상이한 프로세서들/프로세싱 코어들의 시동 타이밍이 달라질 수 있으므로, 시스템은 어떤 프로세서/프로세싱 코어가 먼저 시동할지 또는 부가적인 프로세서들/프로세싱 코어들이 이용 가능해지며 공유된 메모리를 액세스할 수 있을 때를 예측할 수 없을 것이다. 따라서, 하드웨어-기반 스프링 록들은 시스템 설정들에서의 변화들이 동시성 또는 충돌-관련 이슈들 없이 고유하게 수행됨을 보장하기 위해 사용될 수 있다.
도 3은 도 2의 DMA 서브시스템(208) 및 프로세서들/프로세싱 코어들 사이에서의 예시적인 통신들을 도시한 타이밍도(300)이다. 302에서, PTP 패킷은 AVB 오디오 프로세싱 코어(214)로부터 애플리케이션/OS 프로세서(216)로 송신된다. PTP 패킷은 AVB 오디오 프로세싱 코어 및 애플리케이션/OS 프로세서의 클록들을 동기화시키기 위해(예로서, 서로에 및/또는 도 2의 DSP 코어(212)에 의해 생성된/유지된 미디어 클록에) 타이밍 정보를 포함할 수 있다. 304 및 306에서, AVB 트래픽(각각 오디오 및 비디오)은 DMA 서브시스템(208)으로부터 각각 AVB 오디오 프로세싱 코어(214) 및 AVB 비디오 프로세싱 코어(220)로 동시에 송신된다. 분산된 프로세싱 코어들 때문에, AVB 트래픽은 각각의 전용된 프로세싱 코어에서 대체로 동시에 프로세싱될 수 있어서, 다른 태스크들을 수행하기 위해 애플리케이션/OS 프로세서(216) 및 서브-프로세서(218)에서 리소스들을 풀어준다.
308에서, 최선형 트래픽은 애플리케이션/OS 프로세서(216)로부터 DMA 서브시스템(208)으로 전송된다. 각각 310 및 312에서, AVB 오디오 및 비디오 트래픽은 AVB 오디오 프로세싱 코어(214) 및 AVB 비디오 프로세싱 코어(220)로부터 송신된다. 이들 송신들의 각각은 상이한 프로세싱 코어들로부터 전송되므로, 그것들은 DMA 서브시스템(208)에 의해 대체로 동시에 수신될 수 있다. 최선형 트래픽은 서비스 품질 메트릭들(지터, 패킷 손실, 지연 시간 등)에 민감하지 않은 다양한 종류들의 무해한 트래픽을 포함할 수 있다. 일 예는 피어-투-피어 및 이메일 애플리케이션들일 것이다. 트래픽 성형(Traffic Shaping)은 최선형 트래픽이 민감한 트래픽 후 남겨진 것을 얻는다는 것을 보장한다. 모든 최선형 트래픽은 보다 낮은 우선순위를 갖는 별개의 하드웨어 큐를 통해 핸들링되며 모든 AVB 트래픽은 높은 우선순위 큐를 통해 핸들링된다. 몇몇 패킷들은 VLAN 헤더를 가진 802.1 Q 태그를 가질 수 있다. 최선형 트래픽은 통상적으로 태깅되지 않는 반면, AVB 트래픽은 통상적으로 태깅되며 패킷 우선순위를 갖는다. 우선순위를 스위칭하기 위한 패킷 우선순위는 AVB 패킷들이 항상 최선형 트래픽에 비교하여 보다 높은 우선순위를 갖고 채널들을 통과하게 되도록 스위치를 통해 MAC 매핑들을 핸들링하는 것을 포함할 수 있다.
314에서, 최선형 트래픽은 DMA 서브시스템(208)으로부터 애플리케이션/OS 프로세서(216)로 송신된다. 대체로 동시에, 중복 최선형 트래픽(316)은 DMA 서브시스템(208)으로부터 서브-프로세서(218)로 송신된다. 이러한 방식으로, 최선형 트래픽은 어떤 프로세서/서브프로세서가 이용 가능한 리소스들 및/또는 최저 프로세싱 부하를 갖더라도 프로세싱될 수 있다.
도 4는 분산 이더넷 스택의 다수의 코어들로 데이터를 전달하는 예시적인 방법(400)을 위한 흐름도를 도시한다. 예를 들면, 방법(400)은 도 2의 DMA 서브시스템(208)과 같은, DMA 서브시스템, 및/또는 다수의 코어들을 가진 호스트 프로세서(예로서, 도 2의 호스트 프로세서(202)) 및 이더넷 하드웨어 서브시스템(예로서, 도 2의 이더넷 하드웨어 서브시스템(204)) 사이에서의 또 다른 인터페이스에 의해 수행될 수 있다. 402에서, 방법은 데이터를 수신하는 단계를 포함한다. 404에서, 방법은 수신된 데이터와 연관된 임의의 가상 디스크립터들을 평가하는 것을 선택적으로 포함한다. 가상 디스크립터들은 데이터가 라우팅될 프로세서 및/또는 프로세싱 코어를 식별할 수 있다. 예를 들면, 룩-업 테이블은 DMA 서브시스템 또는 다른 로직에 의해 이루어진 라우팅 결정에 영향을 줄 수 있는 상이한 클래스들의 데이터, 프로세서들/프로세싱 코어들, 및/또는 다른 파라미터들에 상이한 가상 디스크립터들을 매핑시킬 수 있다.
406에서, 방법은 데이터가 이더넷 하드웨어 서브시스템으로부터 수신되는지를 결정하는 단계를 포함한다. 데이터가 이더넷 하드웨어 서브시스템으로부터 수신되면(예로서, 406에서 "예"), 방법은 데이터가 최선형 트래픽을 포함하는지를 결정하기 위해 408로 진행한다. 데이터가 최선형 트래픽을 포함한다면(예로서, 408에서 "예"), 방법은 최선형 트래픽을 복제하고 최선형 트래픽을 애플리케이션 프로세서(예로서, 도 2의 애플리케이션 프로세서(216) 및 서브-프로세서(예로서, 도 2의 서브-프로세서(218)) 양쪽 모두로 전송하기 위해 410으로 진행한다. 데이터가 다수의 클래스들의 데이터를 포함하는 예들에서, 단지 최선형 트래픽만이 애플리케이션 프로세서 및 서브-프로세서로 송신될 수 있으며, 남아있는 데이터는 방법(400)의 남아있는 평가들에 따라 평가될 수 있다.
데이터가 최선형 트래픽을 포함하지 않는다면 및/또는 최선형 트래픽이 아닌 임의의 데이터에 대해(예로서, 408에서 "아니오"), 방법은 데이터가 AVB 트래픽을 포함하는지를 결정하기 위해 412로 진행한다. 데이터가 AVB 트래픽을 포함한다면(예로서, 412에서 "예"), 방법은 오디오-관련 데이터를 AVB 오디오 프로세싱 코어(예로서, 도 2의 프로세싱 코어(214))로 전송하기 위해 414로 진행한다. 방법은 또한 비디오-관련 데이터를 AVB 비디오 프로세싱 코어(예로서, 도 2의 프로세싱 코어(220))로 전송하기 위해 416으로 진행한다. 데이터가 다수의 클래스들의 데이터를 포함하는 예들에서, 단지 AVB 트래픽만이 오디오/비디오 프로세싱 코어들로 송신될 수 있으며, 남아있는 데이터는 방법(400)의 남아있는 평가들에 따라 평가될 수 있다.
데이터가 AVB 트래픽을 포함하지 않는다면 및/또는 AVB 트래픽이 아닌 임의의 데이터에 대해(예로서, 412에서 "아니오"), 방법은 데이터(또는 임의의 남아있는 데이터)를 선택된 프로세서/프로세싱 코어로 전송하기 위해 418로 진행한다. 420에서 표시된 바와 같이, 선택된 프로세서 및/또는 프로세싱 코어는 호스트 프로세서의 다양한 코어들에서 프로세싱 부하에 기초하여 선택될 수 있다. 예를 들면, 선택된 프로세서 및/또는 프로세싱 코어는 호스트 프로세서에서 최저 부하 및/또는 최저 예측 부하를 갖는 프로세서 및/또는 프로세싱 코어이도록 선택될 수 있다. 다른 예들에서, 데이터는 각각의 코어에서의 부하에 대응하는 양들을 갖는 모든 코어들에 걸쳐 분산될 수 있다(예로서, 보다 높은 부하들을 가진 코어들이 보다 적은 데이터를 수신하며 그 역 또한 마찬가지이도록).
406으로 돌아가면, 데이터가 이더넷 하드웨어 서브시스템으로부터 수신되지 않는다면(예로서, 406에서 "아니오"), 방법은 데이터를 이더넷 하드웨어 서브시스템으로 전송하기 위해 422로 진행한다(예로서, 데이터가 프로세싱 코어들 중 하나 이상으로부터 비롯되므로). 데이터가 우선순위 지정들(예로서, 데이터의 클래스와 연관된)을 포함한다면, DMA 서브시스템은 데이터의 우선순위와 연관된 특정한 송신 채널로 데이터를 라우팅할 수 있다.
도 5는 도 2의 호스트 프로세서(202)의 프로세서들/프로세싱 코어들과 같은, 분산 프로세싱 코어들에 걸쳐 패킷들을 프로세싱하기 위해 가상 디스크립터 로직을 실행하는 예시적인 방법(500)의 흐름도를 도시한다. 502에서, 방법은 호스트 프로세서로 송신될 데이터의 디스크립터들을 수신하는 단계를 포함한다. 504에서, 방법은 호스트 프로세서의 코어들에 의해 액세스 가능한 하나 이상의 가상화 디스크립터 큐들에 수신된 디스크립터들을 위치시키는 단계를 포함한다. 예를 들면, 코어들의 각각은 상이한 가상화 디스크립터 큐를 액세스하도록 구성될 수 있다.
506에서, 방법은 큐에서 가상화 디스크립터들과 연관된 데이터를 프로세싱하는 단계를 포함한다. 예를 들면, 가상화 큐와 연관된 프로세싱 코어는 508에서 표시된 바와 같이, 트래픽 분류, 510에서 표시된 바와 같이, 흐름 관리 및/또는 루틴, 및/또는 512에서 표시된 바와 같이, 콘텐츠 수정을 수행하기 위해 패킷 데이터를 프로세싱할 수 있다. 방법은 그 후 가상화 디스크립터들을 연관된 프로세서/프로세싱 코어의 디바이스 디스크립터 큐로 이동시키기 위해 514로 진행할 수 있다. 디스크립터들이 가상화 큐에 있는 동안 수정들을 수행함으로써, 디바이스 디스크립터 큐의 수정들로 인해 발생할 수 있는 동기화 이슈들이 회피될 수 있다.
상기 설명된 시스템들 및 방법들은 다수의 프로세싱 코어들 및 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함한 메인 호스트 프로세서, 및 직접 메모리 액세스(DMA : direct memory access) 서브시스템을 통해 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 데이터를 이더넷 하드웨어 서브시스템으로부터 다수의 프로세싱 코어들 중 하나 이상으로 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함한 컴퓨팅 시스템을 제공한다. 컴퓨팅 시스템의 제 1 예에서, 이더넷 하드웨어 서브시스템은 부가적으로 또는 대안적으로 AVB 네트워크로부터 AVB 데이터를 수신하기 위해 오디오/비디오 브리징(AVB : Audio/Video Bridging) 네트워크에 통신가능하게 연결된 하나 이상의 포트들을 포함할 수 있다. 컴퓨팅 시스템의 제 2 예는 선택적으로 제 1 예를 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 메인 호스트 프로세서는 AVB 오디오 프로세싱 코어, 및 AVB 비디오 프로세싱 코어 중 하나 이상을 포함한다. 컴퓨팅 시스템의 제 3 예는 선택적으로 제 1 및 제 2 예들 중 하나 또는 양쪽 모두를 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 메인 호스트 프로세서는 디지털 신호 프로세싱 코어 및 비디오 가속기 하드웨어 모듈 중 하나 이상을 포함하며, 상기 디지털 신호 프로세싱 코어는 AVB 오디오 프로세싱 코어로 또는 그로부터 AVB 오디오를 전송하거나 또는 수신하도록 적응되고 비디오 가속기 하드웨어 모듈은 AVB 비디오 프로세싱 코어로 또는 그로부터 비디오를 전송하거나 또는 수신하도록 적응된다. 컴퓨팅 시스템의 제 4 예는 제 1 내지 제 3 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 메인 호스트 프로세서는 디지털 신호 프로세싱 코어를 포함하며, 디지털 신호 프로세싱 코어는 미디어 클록을 유지하고 PTP (precision time protocol) 데이터를 AVB 오디오 프로세싱 코어로 전송하도록 적응된다. 컴퓨팅 시스템의 제 5 예는 제 1 내지 제 4 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 메인 호스트 프로세서는 애플리케이션 프로세서 및 하나 이상의 서브-프로세서들을 포함하며, 상기 AVB 오디오 프로세싱 코어는 PTP (precision time protocol) 데이터를 애플리케이션 프로세서로 전송하도록 적응된다. 컴퓨팅 시스템의 제 6 예는 제 1 내지 제 5 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 애플리케이션 프로세서 및 하나 이상의 서브-프로세서들은 최선형 트래픽을 수신하도록 적응되고, AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어는 AVB 트래픽을 수신하도록 적응된다. 컴퓨팅 시스템의 제 7 예는 제 1 내지 제 6 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어의 각각은 실시간 운영 체제를 포함한다. 컴퓨팅 시스템의 제 8 예는 제 1 내지 제 7 예들 중 하나 이상을 선택적으로 포함하며, DMA 서브시스템에 의해 라우팅된 데이터의 가상 디스크립터들을 큐잉하도록 실행 가능한 가상 디스크립터 로직을 추가로 포함한 컴퓨팅 시스템을 추가로 포함한다. 컴퓨팅 시스템의 제 9 예는 제 1 내지 제 8 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 공유된 온-칩 메모리는 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 하나 이상의 메모리 AVB 오브젝트들을 포함한다. 컴퓨팅 시스템의 제 10 예는 제 1 내지 제 9 예들 중 하나 이상을 선택적으로 포함하며, 컴퓨팅 시스템을 추가로 포함하고, 여기에서 공유된 온-칩 메모리는 온-칩 메모리로의 액세스를 제어하도록 적응된 하나 이상의 하드웨어-기반 스프링 록들을 포함한다.
상기 설명된 시스템들 및 방법들은 또한 오디오/비디오 브리징(AVB) 컴퓨팅 시스템에서 호스트 프로세서의 다수의 코어들 사이에서의 프로세싱 부하를 분산시키는 방법을 제공하며, 상기 방법은, AVB 컴퓨팅 시스템의 직접 메모리 액세스(DMA) 서브시스템에서, AVB 컴퓨팅 시스템의 이더넷 하드웨어 서브시스템으로부터 데이터를 수신하는 단계, 데이터가 최선형 트래픽 또는 AVB 트래픽을 포함하는지를 결정하는 단계, 데이터가 최선형 트래픽을 포함한다고 결정하는 것에 응답하여, 최선형 트래픽을 호스트 프로세서의 애플리케이션 프로세서로 송신하는 단계, 및 데이터가 AVB 트래픽을 포함한다고 결정하는 것에 응답하여, AVB 트래픽을 호스트 프로세서의 AVB 오디오 프로세싱 코어 및 호스트 프로세서의 AVB 비디오 프로세싱 코어 중 하나 이상으로 송신하는 단계를 포함한다. 방법의 제 1 예에서, 방법은 부가적으로 또는 대안적으로 데이터가 최선형 트래픽을 포함한다고 결정하는 것에 응답하여 최선형 트래픽을 복제하는 단계 및 복제된 최선형 트래픽을 호스트 프로세서의 서브-프로세서로 송신하는 단계를 추가로 포함한다. 방법의 제 2 예는 제 1 예를 선택적으로 포함하며, 수신된 데이터와 연관된 가상 디스크립터들을 평가하는 단계 및 가상 디스크립터들에 기초하여 데이터를 선택적으로 프로세싱하는 단계를 추가로 포함한 방법을 추가로 포함한다. 방법의 제 3 예는 제 1 및 제 2 예들 중 하나 또는 양쪽 모두를 선택적으로 포함하며, 상기 방법을 추가로 포함하고, 여기에서 최선형 트래픽은, AVB 트래픽을 AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어 중 하나 이상으로 송신하는 것에 실질적으로 동시에 애플리케이션 프로세서로 송신된다. 방법의 제 4 예는 제 1 내지 제 3 예들 중 하나 이상을 선택적으로 포함하며, AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어 중 하나 이상으로부터 AVB 트래픽을, 및 애플리케이션 프로세서로부터 최선형 트래픽을, 실질적으로 동시에 수신하는 단계를 추가로 포함한, 방법을 추가로 포함한다.
상기 설명된 시스템들 및 방법들은 또한 적어도 하나의 AVB 데이터 프로세싱 코어, 적어도 하나의 애플리케이션 프로세서, 및 적어도 하나의 AVB 데이터 프로세싱 코어 및 적어도 하나의 애플리케이션 프로세서의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함한 메인 호스트 프로세서, 하나 이상의 송신 채널들 및 하나 이상의 수신 채널들을 포함한 직접 메모리 액세스(DMA) 서브시스템, 및 직접 메모리 액세스(DMA) 서브시스템을 통해 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 이더넷 하드웨어 서브시스템 및 적어도 하나의 AVB 데이터 프로세싱 코어 및 적어도 하나의 애플리케이션 프로세서 중 하나 이상 사이에서 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함한 AVB 컴퓨팅 시스템을 제공한다. AVB 컴퓨팅 시스템의 제 1 예에서, 적어도 하나의 AVB 데이터 프로세싱 코어는 부가적으로 또는 대안적으로 AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어를 포함하며, 호스트 프로세서는 부가적으로 또는 대안적으로 AVB 오디오 프로세싱 코어에 결합된 디지털 신호 프로세싱 코어 및 AVB 비디오 프로세싱 코어에 결합된 비디오 가속기 하드웨어 모듈을 추가로 포함한다. AVB 컴퓨팅 시스템의 제 2 예는 제 1 예를 선택적으로 포함하며, AVB 컴퓨팅 시스템을 추가로 포함하고, 여기에서 디지털 신호 프로세싱 코어는 미디어 클록을 유지하며 PTP (precision time protocol) 정보를 AVB 오디오 프로세싱 코어로 송신하도록 적응되고, AVB 오디오 프로세싱 코어는 PTP 정보를 애플리케이션 프로세서로 송신하도록 적응된다. AVB 컴퓨팅 시스템의 제 3 예는 제 1 및 제 2 예들 중 하나 또는 양쪽 모두를 선택적으로 포함하며, AVB 컴퓨팅 시스템을 추가로 포함하고, 여기에서 호스트 프로세서는 하나 이상의 서브-프로세서들을 추가로 포함하고, 하나 이상의 서브-프로세서들은 애플리케이션 프로세서에 의해 수신된 최선형 트래픽과 동일한 복제된 최선형 트래픽을 수신하도록 적응된다.
실시예들의 설명은 예시 및 설명의 목적들을 위해 제공되었다. 실시예들에 대한 적절한 수정들 및 변화들은 상기 설명을 고려하여 수행될 수 있거나 또는 방법들을 실시하는 것으로부터 획득될 수 있다. 예를 들면, 달리 주지되지 않는다면, 설명된 방법들 중 하나 이상은 도 2의 메인 호스트 프로세서(202)의 프로세서들/프로세싱 코어들, DMA 서브시스템(208), 및 이더넷 하드웨어 서브시스템(204)과 같은, 적절한 디바이스 및/또는 디바이스들의 조합에 의해 수행될 수 있다. 방법들은, 저장 디바이스들, 메모리, 하드웨어 네트워크 인터페이스들/안테나들, 스위치들, 액츄에이터들, 클록 회로들 등과 같은, 하나 이상의 부가적인 하드웨어 요소들과 조합하여 하나 이상의 로직 디바이스들(예로서, 프로세서들)을 갖고 저장된 지시들을 실행함으로써 수행될 수 있다. 설명된 방법들 및 연관된 동작들은 또한 본 출원에서 설명된 순서 외의 다양한 순서들로, 병렬로, 및/또는 동시에 수행될 수 있다. 설명된 시스템들은 사실상 대표적이며, 부가적인 요소들을 포함하고 및/또는 요소들을 생략할 수 있다. 본 개시의 주제는 다양한 시스템들 및 구성들, 및 개시된 다른 특징들, 기능들, 및/또는 속성들의 모든 새로운 및 분명하지 않은 조합들 및 서브-조합들을 포함한다.
본 출원에서 사용된 바와 같이, 단수형으로 나열되며 단어("a" 또는 "an")로 시작되는 요소 또는 단계는, 이러한 제외가 서술되지 않는다면, 복수의 상기 요소들 또는 단계들을 배제하지 않는 것으로 이해되어야 한다. 더욱이, 본 개시의 "일 실시예" 또는 "일 예"에 대한 참조들은 또한 나열된 특징들을 통합하는 부가적인 실시예들의 존재를 배제하는 것으로 해석되도록 의도되지 않는다. 용어들("제 1", "제 2", 및 "제 3" 등)은 단지 라벨들로서 사용되며, 그것들의 오브젝트들에 대한 수치 요건들 또는 특정한 위치 순서를 도입하도록 의도되지 않는다. 다음의 청구항들은 특히 새로우며 불분명한 것으로 간주되는 상기 개시로부터의 주제를 언급한다.

Claims (20)

  1. 컴퓨팅 시스템에 있어서,
    다수의 프로세싱 코어들 및 상기 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함하는 메인 호스트 프로세서; 및
    직접 메모리 액세스(DMA : direct memory access) 서브시스템을 통해 상기 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 상기 이더넷 하드웨어 서브시스템으로부터 상기 다수의 프로세싱 코어들 중 하나 이상으로 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함하는, 컴퓨팅 시스템.
  2. 청구항 1에 있어서,
    상기 이더넷 하드웨어 서브시스템은 오디오/비디오 브리징(AVB : Audio/Video Bridging) 네트워크로부터 AVB 데이터를 수신하기 위해 상기 AVB 네트워크에 통신가능하게(communicatively) 연결된 하나 이상의 포트들을 포함하는, 컴퓨팅 시스템.
  3. 청구항 2에 있어서,
    상기 메인 호스트 프로세서는 AVB 오디오 프로세싱 코어, 및 AVB 비디오 프로세싱 코어 중 하나 이상을 포함하는, 컴퓨팅 시스템.
  4. 청구항 3에 있어서,
    상기 메인 호스트 프로세서는 디지털 신호 프로세싱 코어 및 비디오 가속기 하드웨어 모듈 중 하나 이상을 포함하며, 상기 디지털 신호 프로세싱 코어는 상기 AVB 오디오 프로세싱 코어로 또는 상기 AVB 오디오 프로세싱 코어로부터 AVB 오디오를 전송하거나 또는 수신하도록 되어 있고(adapted) 상기 비디오 가속기 하드웨어 모듈은 상기 AVB 비디오 프로세싱 코어로 또는 상기 AVB 비디오 프로세싱 코어로부터 비디오를 전송하거나 또는 수신하도록 되어 있는, 컴퓨팅 시스템.
  5. 청구항 4에 있어서,
    상기 메인 호스트 프로세서는 상기 디지털 신호 프로세싱 코어를 포함하며, 상기 디지털 신호 프로세싱 코어는 미디어 클록을 유지하며 PTP(precision time protocol) 데이터를 상기 AVB 오디오 프로세싱 코어로 전송하도록 되어 있는, 컴퓨팅 시스템.
  6. 청구항 3에 있어서,
    상기 메인 호스트 프로세서는 애플리케이션 프로세서 및 하나 이상의 서브-프로세서들을 포함하며, 상기 AVB 오디오 프로세싱 코어는 PTP(precision time protocol) 데이터를 상기 애플리케이션 프로세서로 전송하도록 되어 있는, 컴퓨팅 시스템.
  7. 청구항 6에 있어서,
    상기 애플리케이션 프로세서 및 상기 하나 이상의 서브-프로세서들은 최선형 트래픽(best effort traffic)을 수신하도록 되어 있고, 상기 AVB 오디오 프로세싱 코어 및 상기 AVB 비디오 프로세싱 코어는 AVB 트래픽을 수신하도록 되어 있는, 컴퓨팅 시스템.
  8. 청구항 3에 있어서,
    상기 AVB 오디오 프로세싱 코어 및 상기 AVB 비디오 프로세싱 코어의 각각은 실시간 운영 체제(real-time operating system)를 포함하는, 컴퓨팅 시스템.
  9. 청구항 2에 있어서,
    상기 DMA 서브시스템에 의해 라우팅된 상기 데이터의 가상 디스크립터들을 큐잉하도록 실행 가능한 가상 디스크립터 로직(virtual descriptor logic)을 더 포함하는, 컴퓨팅 시스템.
  10. 청구항 2에 있어서,
    상기 공유된 온-칩 메모리는 상기 다수의 프로세싱 코어들의 각각에 의해 액세스 가능한 하나 이상의 메모리 AVB 오브젝트들을 포함하는, 컴퓨팅 시스템.
  11. 청구항 10에 있어서,
    상기 공유된 온-칩 메모리는 상기 온-칩 메모리에 대한 액세스를 제어하도록 되어 있는 하나 이상의 하드웨어-기반 스프링 록(spring lock)들을 포함하는, 컴퓨팅 시스템.
  12. 오디오/비디오 브리징(AVB : Audio/Video Bridging) 컴퓨팅 시스템에서 호스트 프로세서의 다수의 코어들 사이에서 프로세싱 부하를 분산시키는 방법에 있어서,
    상기 AVB 컴퓨팅 시스템의 직접 메모리 액세스(DMA : direct memory access) 서브시스템에서, 상기 AVB 컴퓨팅 시스템의 이더넷 하드웨어 서브시스템으로부터, 데이터를 수신하고;
    상기 데이터가 최선형 트래픽(best effort traffic) 또는 AVB 트래픽을 포함하는지를 결정하고;
    상기 데이터가 최선형 트래픽을 포함한다고 결정하는 것에 응답하여, 상기 최선형 트래픽을 상기 호스트 프로세서의 애플리케이션 프로세서로 송신하고; 및
    상기 데이터가 AVB 트래픽을 포함한다고 결정하는 것에 응답하여, 상기 AVB 트래픽을 상기 호스트 프로세서의 AVB 오디오 프로세싱 코어 및 상기 호스트 프로세서의 AVB 비디오 프로세싱 코어 중 하나 이상으로 송신하는 것을 포함하는, 프로세싱 부하를 분산시키는 방법.
  13. 청구항 12에 있어서,
    상기 데이터가 최선형 트래픽을 포함한다고 결정하는 것에 응답하여 상기 최선형 트래픽을 복제하고 상기 복제된 최선형 트래픽을 상기 호스트 프로세서의 서브-프로세서로 송신하는 것을 더 포함하는, 프로세싱 부하를 분산시키는 방법.
  14. 청구항 12에 있어서,
    상기 수신된 데이터와 연관된 가상 디스크립터들을 평가하고 상기 가상 디스크립터들에 기초하여 상기 데이터를 선택적으로 프로세싱하는 것을 더 포함하는, 프로세싱 부하를 분산시키는 방법.
  15. 청구항 12에 있어서,
    상기 최선형 트래픽은 상기 AVB 트래픽을 상기 AVB 오디오 프로세싱 코어 및 상기 AVB 비디오 프로세싱 코어 중 하나 이상으로 송신하는 것과 실질적으로 동시에 상기 애플리케이션 프로세서로 송신되는, 프로세싱 부하를 분산시키는 방법.
  16. 청구항 12에 있어서,
    상기 AVB 오디오 프로세싱 코어 및 상기 AVB 비디오 프로세싱 코어 중 하나 이상으로부터 AVB 트래픽 및 상기 애플리케이션 프로세서로부터 최선형 트래픽을, 실질적으로 동시에, 수신하는 것을 더 포함하는, 프로세싱 부하를 분산시키는 방법.
  17. AVB(Audio/Video Bridging) 컴퓨팅 시스템에 있어서,
    적어도 하나의 AVB 데이터 프로세싱 코어, 적어도 하나의 애플리케이션 프로세서, 및 상기 적어도 하나의 AVB 데이터 프로세싱 코어 및 상기 적어도 하나의 애플리케이션 프로세서의 각각에 의해 액세스 가능한 공유된 온-칩 메모리를 포함하는 메인 호스트 프로세서;
    하나 이상의 송신 채널들 및 하나 이상의 수신 채널들을 포함하는 직접 메모리 액세스(DMA : direct memory access) 서브시스템; 및
    상기 직접 메모리 액세스(DMA) 서브시스템을 통해 상기 메인 호스트 프로세서에 통신가능하게 결합된 이더넷 하드웨어 서브시스템으로서, 상기 DMA 서브시스템은 상기 이더넷 하드웨어 서브시스템 및 상기 적어도 하나의 AVB 데이터 프로세싱 코어 및 상기 적어도 하나의 애플리케이션 프로세서 중 하나 이상 사이에서 데이터를 라우팅하도록 구성되는, 상기 이더넷 하드웨어 서브시스템을 포함하는, AVB 컴퓨팅 시스템.
  18. 청구항 17에 있어서,
    상기 적어도 하나의 AVB 데이터 프로세싱 코어는 AVB 오디오 프로세싱 코어 및 AVB 비디오 프로세싱 코어를 포함하며, 상기 호스트 프로세서는 상기 AVB 오디오 프로세싱 코어에 결합된 디지털 신호 프로세싱 코어 및 상기 AVB 비디오 프로세싱 코어에 결합된 비디오 가속기 하드웨어 모듈을 더 포함하는, AVB 컴퓨팅 시스템.
  19. 청구항 18에 있어서,
    상기 디지털 신호 프로세싱 코어는 미디어 클록을 유지하며 PTP (precision time protocol) 정보를 상기 AVB 오디오 프로세싱 코어로 송신하도록 되어 있고, 상기 AVB 오디오 프로세싱 코어는 PTP 정보를 상기 애플리케이션 프로세서로 송신하도록 되어 있는, AVB 컴퓨팅 시스템.
  20. 청구항 17에 있어서,
    상기 호스트 프로세서는 하나 이상의 서브-프로세서들을 더 포함하며, 상기 하나 이상의 서브-프로세서들은 상기 애플리케이션 프로세서에 의해 수신된 최선형 트래픽(best effort traffic)과 동일한 복제된 최선형 트래픽을 수신하도록 되어 있는, AVB 컴퓨팅 시스템.
KR1020170114982A 2016-09-19 2017-09-08 네트워크에서의 분산 프로세싱 KR102410422B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/269,826 2016-09-19
US15/269,826 US10248615B2 (en) 2016-09-19 2016-09-19 Distributed processing in a network

Publications (2)

Publication Number Publication Date
KR20180031569A true KR20180031569A (ko) 2018-03-28
KR102410422B1 KR102410422B1 (ko) 2022-06-17

Family

ID=59930174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170114982A KR102410422B1 (ko) 2016-09-19 2017-09-08 네트워크에서의 분산 프로세싱

Country Status (4)

Country Link
US (1) US10248615B2 (ko)
EP (1) EP3296884A1 (ko)
KR (1) KR102410422B1 (ko)
CN (1) CN107846443B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
US11074032B2 (en) * 2017-09-29 2021-07-27 Knowles Electronics, Llc Multi-core audio processor with low-latency sample processing core
US11061642B2 (en) * 2017-09-29 2021-07-13 Knowles Electronics, Llc Multi-core audio processor with flexible memory allocation
WO2019067335A1 (en) * 2017-09-29 2019-04-04 Knowles Electronics, Llc MULTICORDER AUDIO PROCESSOR WITH PHASE COHERENCE
DE102018124106A1 (de) * 2018-09-28 2020-04-02 Rockwell Collins Deutschland Gmbh Datenverarbeitungsvorrichtung mit mehreren Prozessoren und mehreren Schnittstellen
US10684963B2 (en) * 2018-12-28 2020-06-16 Intel Corporation Fixed ethernet frame descriptor
US11102445B1 (en) * 2019-03-12 2021-08-24 Ethernovia Inc. Extending support of Audio Video Transport Protocol by data encapsulation
CN111198840B (zh) * 2019-11-27 2023-12-22 南京国电南自维美德自动化有限公司 一种适用于双核系统的goose和mms共网通信方法和系统
US11579799B2 (en) * 2020-03-18 2023-02-14 Micron Technology, Inc. Dynamic selection of cores for processing responses
US20240113986A1 (en) * 2022-10-03 2024-04-04 Qualcomm Incorporated Hardware Based Ethernet Audio And Video Bridging (EAVB) Packet Scheduling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325263A1 (en) * 2009-06-22 2010-12-23 Murali Raja Systems and methods for statistics exchange between cores for load balancing
US20120147271A1 (en) * 2010-12-10 2012-06-14 Silicon Image, Inc. Multimedia i/o system architecture for advanced digital television

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2331099A (en) * 1998-01-22 1999-08-09 Intelogis, Inc. Method and apparatus for universal data exchange gateway
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7644221B1 (en) 2005-04-11 2010-01-05 Sun Microsystems, Inc. System interface unit
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US7321524B2 (en) * 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
KR100754983B1 (ko) 2005-12-02 2007-09-04 주식회사 알티캐스트 인터넷 프로토콜의 형태로 이더넷을 통해 멀티캐스팅되는디지털 방송신호의 효율적 처리방법 및 이를 위한 디지털방송신호 처리장치
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US8391354B2 (en) * 2007-05-14 2013-03-05 Broadcom Corporation Method and system for transforming uncompressed video traffic to network-aware ethernet traffic with A/V bridging capabilities and A/V bridging extensions
US8335213B2 (en) * 2008-09-11 2012-12-18 Juniper Networks, Inc. Methods and apparatus related to low latency within a data center
US20100153763A1 (en) * 2008-12-11 2010-06-17 Kapil Sood Method and apparatus to modulate multi-core usage for energy efficient platform operations
CN101771627B (zh) * 2009-01-05 2015-04-08 武汉邮电科学研究院 互联网实时深度包解析和控制节点设备和方法
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8533317B2 (en) * 2009-06-22 2013-09-10 Citrix Systems, Inc. Systems and methods for monitor distribution in a multi-core system
US8396953B2 (en) * 2010-03-12 2013-03-12 Hewlett-Packard Development Company, L.P. Processing packets using a virtualized descriptor queue
US9183560B2 (en) * 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US9647913B2 (en) * 2010-11-16 2017-05-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Measuring and managing power usage and cooling in a network
US20120131245A1 (en) * 2010-11-19 2012-05-24 Silicon Image, Inc. Transfer of control bus signaling on packet-switched network
US8516130B2 (en) * 2011-06-30 2013-08-20 Harman International Industries, Incorporated Using non-AVB application layer interface and message to establish a connection over an AVB network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325263A1 (en) * 2009-06-22 2010-12-23 Murali Raja Systems and methods for statistics exchange between cores for load balancing
US20120147271A1 (en) * 2010-12-10 2012-06-14 Silicon Image, Inc. Multimedia i/o system architecture for advanced digital television

Also Published As

Publication number Publication date
CN107846443A (zh) 2018-03-27
CN107846443B (zh) 2022-04-12
EP3296884A1 (en) 2018-03-21
US10248615B2 (en) 2019-04-02
US20180081854A1 (en) 2018-03-22
KR102410422B1 (ko) 2022-06-17

Similar Documents

Publication Publication Date Title
KR102410422B1 (ko) 네트워크에서의 분산 프로세싱
US8879552B2 (en) Precision time protocol offloading in a PTP boundary clock
US9769075B2 (en) Interference cognizant network scheduling
JP7309859B2 (ja) トラフィックスケジューリング方法、デバイス、およびシステム
US9769082B2 (en) System and method for network bandwidth, buffers and timing management using hybrid scheduling of traffic with different priorities and guarantees
US7397809B2 (en) Scheduling methods for combined unicast and multicast queuing
EP2817921B1 (en) Network devices with time aware medium access controller
CN102132535B (zh) 在通信网中传输数据分组的方法和交换装置
JP5868470B2 (ja) 航空機用データ通信ネットワーク
US20160294720A1 (en) Systematic hybrid network scheduling for multiple traffic classes with host timing and phase constraints
WO2019127597A1 (zh) 一种发送报文的方法、设备和系统
KR101738620B1 (ko) 시간 스탬핑 및 중앙 제어기를 사용한 복수의 어댑터들에 의한 데이터 프레임들의 분산 처리
CN113711572A (zh) 一种报文传输方法及装置
WO2018195728A1 (zh) 一种客户业务传输方法和装置
JP7077845B2 (ja) ネットワーク機器
US12040995B2 (en) Control apparatus, resource allocation method and program
GB2479653A (en) A Method of FIFO Tag Switching in a Multi-core Packet Processing Apparatus
CN108282416B (zh) 一种基于数据帧的调度方法和装置
US11310164B1 (en) Method and apparatus for resource allocation
JP5635928B2 (ja) ネットワークシステム、及び通信装置
US6643702B1 (en) Traffic scheduler for a first tier switch of a two tier switch
KR101681613B1 (ko) 분산 병렬 데이터 전송 시스템에서 자원들을 스케줄링하기 위한 장치 및 그 방법
WO2018014688A1 (zh) 一种帧流控制方法和装置、计算机存储介质
Peng et al. Implementation of a High-precision TIME-aware Shaper in TSN
US12192107B2 (en) Converged avionics data network

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170908

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200907

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20170908

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20211125

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220418

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220614

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220615

End annual number: 3

Start annual number: 1

PG1601 Publication of registration