KR20220045982A - 데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치 - Google Patents

데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치 Download PDF

Info

Publication number
KR20220045982A
KR20220045982A KR1020227008323A KR20227008323A KR20220045982A KR 20220045982 A KR20220045982 A KR 20220045982A KR 1020227008323 A KR1020227008323 A KR 1020227008323A KR 20227008323 A KR20227008323 A KR 20227008323A KR 20220045982 A KR20220045982 A KR 20220045982A
Authority
KR
South Korea
Prior art keywords
transmission
priority
data packet
time
period
Prior art date
Application number
KR1020227008323A
Other languages
English (en)
Inventor
로메인 롤렛
Original Assignee
미쓰비시덴키 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20220045982A publication Critical patent/KR20220045982A/ko

Links

Images

Classifications

    • 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/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

데이터 패킷을 송신할 방법이 제공되고, 그 방법은, 복수의 연속하는 시간 사이클 내의, 복수의 연속하는 기간을 포함하는 현재의 송신 사이클동안, 1개 또는 몇개의 제 1 데이터 패킷과, 해당 1개 또는 몇개의 제 1 데이터 패킷의 각각의 제 1 메타데이터와, 해당 1개 또는 몇개의 제 1 데이터 패킷에 관련된 제 1 송신 우선도를 얻는 것으로서, 해당 1개 또는 몇개의 제 1 데이터 패킷은, 프로세서의 메모리에 기억되는 것과, 제 1 송신 우선도에 근거하여, 제 1 메타데이터를, 프로세서의 메모리 내의 제 1 대기 큐에 추가하는 것과, 제 1 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 현재의 송신 사이클의 제 1 기간동안, 제 1 메타데이터를, 제 1 대기 큐로부터, 인터페이스 송신 큐로 전송하는 것으로서, 인터페이스 송신 큐는, 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함되는 것과, 인터페이스 송신 큐 내의 제 1 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 1개 또는 몇개의 제 1 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 1개 또는 몇개의 제 1 데이터 패킷을 송신하는 것을 포함한다.

Description

데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치
본 개시는, 패킷 데이터 네트워크에 있어서의 패킷 통신의 분야에 관한 것으로, 상세하게는, 네트워크에 있어서의 타임 센시티브 패킷의 송달에 관한 것이다.
타임 센시티브 네트워킹(TSN:Time-Sensitive Networking)은, IEEE802.1 워킹 그룹의 타임 센시티브 네트워킹 태스크 그룹에 의해 개발된 이더넷 네트워크에 있어서의 데이터의 타임 센시티브 또는 타임 크리티컬 송신(time-sensitive or time-critical transmission)을 위한 방식을 제공하는 1 세트의 표준 규격이다. 애플리케이션은, 실시간 오디오/비디오 스트리밍, 및 자동차 네트워크 또는 산업 네트워크에 있어서의 타임 크리티컬 제어 신호(예를 들면, 실시간 제어 신호)를 포함한다. TSN 프레임의 정시 송달을 제공하기 위해 IEEE802.1Qbv 타임 어웨어 스케줄러(time-aware scheduler)를 사용할 수 있다.
IEEE802.1Qbv는, 스케줄대로 어떤 특정의 TSN 이더넷 프레임을 송신하고, 그것과 동시에, TSN 프레임의 전후로, 비TSN 이더넷 프레임을 베스트 에포트형으로 송신하는 것을 가능하게 하는 수단을 정의한다. 모든 네트워크 노드가 동기되므로, IEEE802.1Qbv를 지원하는 디바이스는, 크리티컬 통신을 매우 신속하고, 송달시에 매우 낮은 지터로 송달할 수 있다.
그러나, IEEE802.1Qbv 액세스 제어 메커니즘은, 이더넷 송신기가, IEEE802.1Qbv에 있어서 사용되는 타임 슬라이스를 준수하기 위해서 양호한 정밀도(200ns 미만)의 정확한 시점에 있어서 일부의 이더넷 프레임을 송신할 수 있게 하는 것을 요구한다. 송신이 타임 크리티컬인 이들 이더넷 프레임은, 802.1Q에 의해 도입되는 메커니즘 등의 액세스 제어 메커니즘을 이용하여 송신되는 표준 이더넷 프레임과 공존한다. 그러한 성능 요건은, 통상 특유의 이더넷 MAC 컨트롤러, 즉, TSN 지원을 위해 개발된 특유의 확장을 갖는 컨트롤러의 개발에 이른다. 이것에 의해, 비용의 이유 뿐만 아니라, 저렴한 시판 마이크로컨트롤러 디바이스 상에서 TSN를 사용할 수 없기 때문에, TSN의 사용이 현저하게 제한된다.
따라서, 당 기술 분야에 있어서의 종래 기술의 상술한 결점 및 단점 중 적어도 일부에 대처하는, 데이터 패킷을 송신하는 개선된 방법, 및 이것을 실시하는 네트워크 노드를 제공할 필요가 있다.
본 주제 개시의 목적은, 데이터 패킷을 송신하는 개선된 방법, 및 이것을 실시하는 장치를 제공하는 것이다.
본 주제 개시의 다른 목적은, 컴퓨터 네트워크, 특히 이더넷 네트워크에 있어서의 종래의 타임 센시티브 데이터 송달 방식의 상술한 결점 및 단점을 경감하기 위해서, 데이터 패킷을 송신하는 개선된 방법, 및 이것을 실시하는 장치를 제공하는 것이다.
본 주제 개시의 또 다른 목적은, 요구되는 정밀도로 지정된 시점에 있어서 일부의 이더넷 프레임을 송신하고 또한, IEEE802.1qbv 표준 규격에 정의되는 바와 같이 다른 타임 슬라이스를 관리하기 위해서, 데이터 패킷을 송신하는 개선된 방법, 및 이를 실시하는 장치를 제공하는 것이다.
이러한 목적 및 다른 이점을 달성하기 위해서, 본 명세서에서 구현되고 넓게 설명되는 본 주제 개시의 목적에 따르면, 본 주제 개시의 하나의 태양에서는, 데이터 패킷을 송신하는 방법이 제안된다. 본 방법은, 복수의 연속하는 시간 사이클 내의, 복수의 연속하는 기간을 포함하는 현재의 송신 사이클동안, 1개 또는 몇개의 제 1 데이터 패킷과, 1개 또는 몇개의 제 1 데이터 패킷의 각각의 제 1 메타데이터와, 1개 또는 몇개의 제 1 데이터 패킷에 관련된 제 1 송신 우선도를 얻는 것으로서, 1개 또는 몇개의 제 1 데이터 패킷은, 프로세서의 메모리에 기억시키는 것과, 제 1 송신 우선도에 근거하여, 제 1 메타데이터를, 프로세서의 메모리 내의 제 1 대기 큐에 추가하는 것과, 제 1 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 현재의 송신 사이클의 제 1 기간동안, 제 1 메타데이터를, 제 1 대기 큐로부터, 인터페이스 송신 큐로 전송하는 것으로서, 인터페이스 송신 큐는 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함되는 것과, 인터페이스 송신 큐 내의 제 1 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 1개 또는 몇개의 제 1 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 1개 또는 몇개의 제 1 데이터 패킷을 송신하는 것을 포함한다.
제안되는 방법은, 유리하게는, 예를 들면, 이더넷 프레임의 타임 센시티브 송달을 위한 IEEE802.1Qbv 스케쥴러의 사용을 위해, 표준 MAC 이더넷 컨트롤러를 내장하는 임의의 디바이스를 이용하여 동작하도록 실시할 수 있다. 실제로, 제안되는 방법은, 매립 애플리케이션을 위해 특별히 설계된 실시간 운영 시스템을 사용하여, 소프트웨어에 있어서 실시할 수 있다. 또한, 제안되는 방법은, 유리하게는 자동차 네트워크 또는 산업 네트워크에 있어서 광범위하게 사용되는 표준 MAC 이더넷 컨트롤러를 내장하는 소형 마이크로컨트롤러 디바이스를 이용하여 동작하도록 실시할 수 있다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, 제 2 데이터 패킷과, 제 2 데이터 패킷의 제 2 메타데이터와, 제 2 데이터 패킷에 관련된 제 2 송신 우선도를 얻는 것으로서, 제 2 데이터 패킷은, 프로세서의 메모리에 기억되는 것과, 제 2 송신 우선도에 근거하여 제 2 메타데이터를 프로세서의 메모리 내의 제 2 대기 큐에 추가하는 것과, 제 1 기간동안, 제 1 우선도를 갖는 데이터 패킷의 송신에 전용화되고, 또한, 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯의 뒤에, 제 2 메타데이터를 제 2 대기 큐로부터 인터페이스 송신 큐로 전송하는 것과, 제 1 기간에 후속하는 현재의 송신 사이클의 제 2 기간동안, 인터페이스 송신 큐 내의 제 2 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 제 2 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 제 2 패킷 데이터를 송신하는 것을 더 포함할 수 있다.
1개 이상의 실시의 형태에 있어서, 제 1 기간 및 제 2 기간은 시간에 있어서 중복없이 연속하고 있다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, 제 2 데이터 패킷과, 제 2 데이터 패킷의 제 2 메타데이터와, 제 2 데이터 패킷에 관련된 제 2 송신 우선도를 얻는 것으로서, 제 2 데이터 패킷은, 프로세서의 메모리에 기억되는 것과, 제 2 데이터 패킷이 제 1 기간 중에 얻어지지 않으면, 제 2 메타데이터를, 인터페이스 송신 큐에 추가하는 것과, 제 2 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 현재의 송신 사이클의 제 2 기간동안, 인터페이스 송신 큐 내의 제 2 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 제 2 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 제 2 패킷 데이터를 송신하는 것을 더 포함할 수 있다.
1개 이상의 실시의 형태에 있어서, 제 1 송신 우선도는 데이터 패킷의 실시간 송신을 위한 것이며, 제 2 송신 우선도는 데이터 패킷의 비 실시간 송신을 위한 것이다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, 프로세서에 의해 실행되는 1개 또는 몇개의 제 1 태스크로부터, 송신 매체를 거친 1개 또는 몇개의 제 1 데이터 패킷의 송신에 대한 하나 또는 몇개의 요구를 수신하는 것을 더 포함할 수 있고, 각 요구는 제 1 송신 우선도를 포함하고, 또는, 제 1 태스크 중 하나 이상은 제 1 송신 우선도에 관련된다.
1개 이상의 실시의 형태에 있어서, 1개 또는 몇개의 제 1 데이터 패킷은, 제 1 기간 내에 포함되는(제 1 우선도를 갖는 데이터 패킷의 송신 전용인) 제 1 우선도의 송신 타임 슬롯 중에 MAC 컨트롤러에 의해 송신되고, 방법은, 제 1 송신 무효 기간(transmit disable time period) 및/또는 제 2 송신 무효 기간 중, MAC 컨트롤러에 있어서의 데이터 송신을 무효화하는 것을 더 포함하고, 제 1 송신 무효 기간은 제 1 우선도의 송신 타임 슬롯의 전의 제 1 기간 중에 발생하고, 제 2 송신 무효 기간은 제 1 우선도의 송신 타임 슬롯의 뒤의 제 1 기간 중에 발생한다.
1개 이상의 실시의 형태에 있어서, 현재의 송신 사이클은, 제 1 기간의 직전에 발생하는 시간 보호 주기를 포함하고, 시간 보호 주기 중, MAC 컨트롤러에 있어서의 데이터 송신은 무효화된다.
1개 이상의 실시의 형태에 있어서, 제 2 데이터 패킷은, 제 1 우선도의 송신 타임 슬롯의 종료 후의 제 1 기간 중에, 제 2 대기 큐로부터 인터페이스 송신 큐로 전송된다.
1개 이상의 실시의 형태에 있어서, 제 1 메타데이터는, 제 1 대기 큐로부터 인터페이스 송신 큐로 전송되고, 1개 또는 몇개의 제 1 데이터 패킷은, 인터페이스 송신 큐 내의 제 1 메타데이터에 근거하여, 제 1 우선도의 송신 타임 슬롯의 개시전의 제 1 소정의 시점 후의 제 1 기간 중에, 메모리로부터 송신 큐로 전송된다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, MAC 컨트롤러에 의한, 제 1 우선도의 송신 타임 슬롯의 개시전의 제 2 소정의 시점 후의 제 1 기간동안, 송신 매체를 거친 1개 또는 몇개의 제 1 데이터 패킷의 송신을 유효화하는(enabling) 것을 더 포함할 수 있다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, 제 1 소정의 시점 후의 제 1 기간동안, 및, 제 1 우선도의 송신 타임 슬롯 중의 MAC 컨트롤러에 의한 제 1 송신 우선도의 데이터 패킷의 송신이 완료하고 있지 않는 동안, 제 1 송신 우선도를 갖는 데이터 패킷의 수신을 무효화하는 것을 더 포함할 수 있다.
1개 이상의 실시의 형태에 있어서, 제안되는 방법은, 제 1 송신 우선도에 관련된 대응하는 제 1 데이터 패킷의 누적 사이즈에 대응하는 데이터량을, 제 1 우선도를 갖는 데이터 패킷의 송신에 전용화되고, 또한, 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯 중에 송신할 수 있다는 판단에 근거하여, 제 1 메타데이터를, 제 1 대기 큐에 추가하는 것을 더 포함할 수 있다.
본 주제 개시의 다른 태양에서는, 프로세서와, 프로세서에 작동 가능하게 결합된 메모리와, 컴퓨터 네트워크 내에서 통신하는 네트워크 인터페이스를 구비하는 장치가 제안되고, 장치는, 본 주제 개시에 있어서 제안되는, 데이터 패킷을 송신하는 방법의 하나 이상의 실시의 형태를 실행하도록 구성된다.
본 주제 개시의 다른 태양에서는, 실행되면, 메모리에 작동 가능하게 결합된 프로세서를 구비하는 장치에, 본 주제 개시에 있어서 제안되는, 데이터 패킷을 송신하는 방법을 실행시키는 실행 가능 명령으로 부호화되는 비일시적 컴퓨터 판독 가능 매체가 제안된다.
본 주제 개시의 또 다른 태양에서는, 컴퓨터 판독 가능 매체 내에 유형적으로 구현되는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 해당 컴퓨터 프로그램 코드는, 컴퓨터 시스템에 제공되고 실행되면, 상기 컴퓨터에, 본 주제 개시에 있어서 제안되는, 데이터 패킷을 송신하는 방법을 실행하게 하는 명령을 포함하는, 컴퓨터 프로그램 제품이 제안된다. 본 주제 개시의 다른 태양에서는, 본 명세서에 있어서 제안되는 컴퓨터 프로그램을, 예를 들면, 압축 또는 부호화를 통해서 나타내는 데이터 세트가 제안된다.
본 발명은, 한정하는 것은 아니지만, 프로세스, 장치, 시스템, 디바이스로서 또, 현 시점에서 기지인 애플리케이션 및 후에 개발되는 애플리케이션을 위한 방법으로서 포함하는, 수많은 방법에 있어서 실시 및 이용될 수 있는 것이 이해될 것이다. 본 명세서에 있어서 개시되는 시스템의 이들 및 다른 특유의 특징은 이하의 설명 및 첨부의 도면으로부터 보다 용이하게 밝혀질 것이다.
첨부하는 명세서와 함께 이하의 도면을 참조하는 것에 의해, 본 주제 개시가 보다 깊게 이해되고, 그 수많은 목적 및 이점이 당업자에게 있어 보다 명백해질 것이다.
도 1은 본 주제 개시의 1개 이상의 실시 형태에 있어서 사용할 수 있는 IEEE802.1Qbv 타임 어웨어 스케줄러의 2개의 연속하는 시간 사이클의 한 예시적인 시퀀스를 나타내는 도면이다.
도 2는 본 주제 개시의 1개 이상의 실시 형태에 있어서 사용할 수 있는, 이더넷 물리 레이어(PHY) 및 버스 메모리에 접속된 한 예시적인 이더넷 MAC의 블럭도이다.
도 3은 실시간 프로세스에 적용되는 지터의 정의를 나타내는 도면이다.
도 4는 본 주제 개시의 1개 이상의 실시 형태에 의한 데이터 패킷 송신 특징을 사용하도록 구성된 한 예시적인 네트워크 노드/디바이스의 개략 블럭도이다.
도 5는 본 주제 개시의 1개 이상의 실시 형태에 의한, 데이터 패킷을 송신하는 한 예시적인 방법의 블럭도이다.
도 6은 본 주제 개시의 1개 이상의 실시 형태에 의한 데이터 패킷 송신 특징을 사용하도록 구성된 한 예시적인 네트워크 노드/디바이스의 개략 블럭도이다.
도 7은 본 주제 개시의 1개 이상의 실시 형태에 의한, 다른 큐에 걸쳐서 이더넷 프레임을 분배하는 한 예시적인 방식을 나타내는 도면이다.
도 8은 제안되는 방법을 실시하는 디바이스에서 구성되는 바와 같은, 1 사이클에 대해 정의할 수 있는 이벤트를 나타내는 도면이다.
간결 및 명확하게 예시하기 위해서, 도면은 구성의 일반적인 방법을 나타내고, 기지의 특징 및 기법의 설명 및 세부사항은, 본 발명의 설명된 실시 형태의 논술을 불필요하게 이해하기 어렵게 하는 것을 피하기 위해 생략될 수 있다. 또한 도면 내의 요소는 반드시 축척대로 그려져 있지는 않다. 예를 들면, 도면 내의 요소 중 일부 요소의 치수는, 본 발명의 실시 형태를 이해하기 쉽게 하는 것을 돕기 위해서, 다른 요소에 비해서 과장되는 경우가 있다. 현실 세계의 조건 하이면 지극히 대칭성이 낮고, 질서 정연하지 않을 가능성이 있는, 직선, 예각 및/또는 평행한 평면 등을 갖는 구조가 나타날 때와 같이, 어떤 특정의 도면은, 이해를 돕기 위해서 이상적으로 나타나는 경우가 있다. 다른 도면에 있어서의 동일한 참조 부호는 동일한 요소를 나타내는 한편, 유사한 참조 부호는 유사한 요소를 나타내는 경우가 있지만, 반드시 그렇다고는 할 수 없다.
또한 본 명세서에 있어서의 교시는, 다종다양의 형태에 있어서 구현할 수 있는 것, 및 본 명세서에 있어서 개시되는 임의의 구체적인 구조 및/또는 기능은 전형에 지나지 않는 것은 분명하게 해야 한다. 상세하게는, 본 명세서에 있어서 개시되는 태양을, 임의의 다른 태양으로부터 독립적으로 실시할 수 있는 것, 및 몇개의 태양을 여러 가지의 방법으로 조합할 수 있는 것은 당업자에게는 이해될 것이다.
본 개시는, 1개 이상의 예시적인 실시 형태에 의한, 방법, 시스템 및 컴퓨터 프로그램의 기능, 엔진, 블럭도 및 흐름도를 참조하면서 이하에 설명된다. 블럭도 및 흐름도의 설명되는 각 기능, 엔진, 블록은, 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드 또는 임의의 적절한 그 조합에 있어서 실현될 수 있다. 소프트웨어에 있어서 실시되는 경우에는, 블럭도 및/또는 흐름도의 기능, 엔진, 블록은, 컴퓨터 프로그램 명령 또는 소프트웨어 코드에 의해 실시할 수 있고, 컴퓨터 프로그램 명령 또는 소프트웨어 코드는, 컴퓨터 판독 가능 매체에 기억되거나, 또는 컴퓨터 판독 가능 매체를 거쳐 송신되거나, 또는 범용 컴퓨터, 전용 컴퓨터 또는 기계를 생산하는 다른 프로그래머블 데이터 처리 장치 상에 로드할 수 있고,그것에 의해, 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치 상에서 실행되는 컴퓨터 프로그램 명령 또는 소프트웨어 코드가, 본 명세서에 있어서 설명되는 기능을 실시하기 위한 수단을 생성한다.
컴퓨터 판독 가능 매체의 실시 형태는, 한정하는 것은 아니지만, 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는, 컴퓨터 스토리지 매체 및 통신 매체의 양쪽 모두를 포함한다. 본 명세서에 있어서 이용될 때, "컴퓨터 스토리지 매체"는, 컴퓨터 또는 프로세서에 의해 액세스할 수 있는 임의의 물리적인 매체일 수 있다. 또한 "메모리" 및 "컴퓨터 스토리지 매체"라는 용어는, 한정하는 것은 아니지만, 하드 드라이브, 플래시 드라이브 또는 다른 플래시 메모리 디바이스(예를 들면, 메모리 키, 메모리 스틱, 키 드라이브), CD-ROM 또는 다른 광 스토리지, DVD, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 메모리 칩(들), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적 소거 가능 프로그래머블 판독 전용 메모리(EEPROM), 스마트 카드, 또는 컴퓨터 프로세서에 의해 판독할 수 있는 명령 또는 데이터 구조의 형태로 프로그램 코드를 반송 또는 기억하기 위해서 사용할 수 있는 임의의 다른 적절한 매체, 또는 그 조합 등의, 임의의 타입의 데이터 스토리지 디바이스를 포함한다. 또, 여러 가지의 형태의 컴퓨터 판독 가능 매체는, 라우터, 게이트웨이, 서버 또는 다른 전송 디바이스를 포함하는 컴퓨터에, 유선(동축 케이블, 섬유, 트위스트페어, DSL 케이블)으로, 또는 무선(적외선, 무선, 셀룰러, 마이크로파)으로, 명령을 송신 또는 반송할 수 있다. 명령은, 한정하는 것은 아니지만, 어셈블리, C, C++, 파이썬, 비주얼 베이직, SQL, PHP 및 JAVA를 포함하는 임의의 컴퓨터 프로그램 언어로부터의 코드를 포함할 수 있다.
구체적으로 그 밖에 명시되지 않는 한, 이하의 설명을 통해, 처리, 컴퓨팅, 계산, 결정 등의 용어를 이용하는 논의는, 컴퓨팅 시스템의 레지스터 또는 메모리 내의 전자적인 양 등의 물리적인 양으로서 나타내지는 데이터를 조작하거나, 또는, 이 데이터를, 컴퓨팅 시스템의 메모리, 레지스터 또는 다른 그러한 정보 스토리지, 전송 디바이스 또는 표시 디바이스 내의 물리적인 양으로서 유사하게 표현되는 다른 데이터로 변환하는, 컴퓨터, 또는 컴퓨팅 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 동작 또는 프로세스를 가리키고 있는 것이 이해될 것이다.
"구비하다", "포함하다", "갖다" 및 임의의 그 변형과 같은 용어는, 비배타적 포함을 포함하는 것을 의도하고 있고, 그것에 의해, 요소의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는, 반드시 그러한 요소에 한정되는 것이 아니라, 그러한 프로세스, 방법, 물품 또는 장치에 명기되지 않거나, 또는 고유하지 않은 다른 요소를 포함할 수 있다.
또한 "예시적인"이라는 단어는, 본 명세서에 있어서, "일례, 사례 또는 예시로서의 역할을 기능하는 것"을 의미하도록 사용된다. "예시적"으로서 본 명세서에 있어서 설명되는 임의의 실시 형태 또는 설계는, 반드시, 다른 실시 형태 또는 설계보다 바람직하거나, 또는 유리하다고 해석되어서는 안된다.
이하의 설명 및 청구범위에 있어서, "결합되다" 및 "접속되다"라는 용어는, 그 파생어와 함께, 2개 이상의 요소가 서로 직접, 물리적 또는 전기적으로 접촉하고 있거나, 또는 2개 이상의 요소가 서로 직접 접촉하고 있지 않지만, 여전히 서로 협동하거나, 또는 상호작용하는 것을 나타내기 위해 구별없이 사용할 수 있다.
이하의 설명 및 특허 청구의 범위에 있어서, "페이로드", "페이로드 데이터", "메시지", "패킷", 및 "데이터 패킷"이라는 용어는, 구별없이 사용할 수 있고, 노드 또는 국 사이 또는 네트워크에 걸쳐서 전송 또는 송신할 수 있는 데이터 블록, 프로토콜 데이터 유닛 또는 임의의 단위의 데이터를 포함할 수 있다. 패킷은 비트의 그룹을 포함할 수 있고, 그룹은, 예를 들면, 1개 이상의 어드레스 필드, 제어 필드 및 데이터를 포함할 수 있다. 데이터 블록은, 임의의 단위의 데이터 또는 정보 비트일 수 있다.
본 개시의 경우에, "서버"라는 용어는, 처리, 데이터베이스 및 통신 설비를 제공하는 서비스 지점을 가리키기 위해, 본 명세서에서 사용된다. 일례이며, 한정하는 것은 아니지만, "서버"라는 용어는, 관련된 통신, 데이터 스토리지 및 데이터베이스의 설비를 구비하는, 단일의 물리적인 프로세서를 가리킬 수가 있거나, 또는 프로세서, 및 관련된 네트워크 및 스토리지 디바이스와, 서버에 의해 제공되는 서비스를 지원하는 오퍼레이팅 소프트웨어, 및 1개 이상의 데이터베이스 시스템 및 애플리케이션 소프트웨어와의 네트워크화된, 또는 클러스터화된 복합체를 가리킬 수 있다. 서버는 구성 또는 능력에 관해서 매우 다양할 수 있지만, 일반적으로, 서버는 1개 이상의 중앙 처리 장치 및 메모리를 포함할 수 있다. 또, 서버는, 1개 이상의 대용량 스토리지 디바이스, 1개 이상의 전원, 1개 이상의 유선 또는 무선 네트워크 인터페이스, 1개 이상의 입력/출력 인터페이스, 또는 윈도우 서버, Mac OS X, 유닉스, 리눅스, FreeBSD 등의 하나 이상의 운영 시스템을 포함할 수도 있다.
본 개시의 경우에, "컴퓨터 네트워크"는, 예를 들면, 무선 네트워크를 거쳐 작동 가능하게 접속되는 무선 디바이스간을 포함하는, 디바이스간에 데이터 통신을 할 수 있도록, 디바이스(본 명세서에 있어서, "노드"라고도 불린다)를 결합할 수 있는 네트워크를 가리키는 것이라고 이해될 것이다. 또, 네트워크는, 네트워크 접속형 스토리지(NAS), 스토리지 에리어 네트워크(SAN), 또는 예를 들면, 다른 형태의 컴퓨터 또는 기계 판독 가능 매체 등의 대용량 스토리지를 포함할 수 있고, 서버를 포함하거나, 또는 서버에 작동 가능하게 접속될 수도 있다. 네트워크는, 인터넷, 1개 이상의 근거리 통신망(LAN), 1개 이상의 와이드 에리어 네트워크(WAN), 유선 타입 접속, 무선 타입 접속, 사업자 전화선 등의 셀룰러, 광섬유, 동기 광 네트워크, 동기 디지털 계층 링크, 전력선 통신 링크(예를 들면, IEEE 61334, IEEE P1901.2), 이더넷, 블루투스, 블루투스 로우 에너지(BLE) 또는 블루투스 스마트, WiFi 또는 IEEE802.11x 프로토콜에 근거하는 임의의 접속, ZigBee 또는 IEEE802.15.4 프로토콜에 근거하는 임의의 접속, Z-Wave, 6LowPAN(IPv6 저전력 무선 퍼스널 에리어 네트워크), Thread, Sigfox, Neul, LoRa, 임의의 NFC 접속, 2G(GSM/GPRS/EDGE를 포함함)/3G(UMTS/HSPA를 포함함)/4G(LTE 및 LTE 어드밴스드를 포함함)/5G 셀룰러, 또는 그 임의의 조합을 포함할 수 있다. 네트워크에서 사용되는 다른 아키텍쳐 또는 프로토콜에 대한 상호 운용 능력을 제공하기 위해서, 여러 가지의 타입의 디바이스, 예를 들면, 게이트웨이가 이용될 수 있다. 본 주제 개시에 의하면, 컴퓨터 네트워크에 있어서, 임의의 수의 노드, 디바이스, 장치, 링크, 상호 접속 등이 사용될 수 있다.
통신 링크 또는 채널은, 예를 들면, 아날로그 전화 회선, 완전한, 또는 부분적인 디지털 회선, 위성 링크를 포함하는 무선 링크, 또는 당업자에게 기지일 수 있는 등의 다른 통신 링크 또는 채널을 포함할 수 있다.
네트워크의 컴퓨팅 디바이스, 예를 들면, 센서 노드 또는 엑추에이터 노드는, 유선 또는 무선 네트워크를 거쳐서 등, 신호를 송신 또는 수신할 수 있고, 및/또는 데이터를 처리 및/또는 기억할 수 있다.
본 주제 개시의 실시 형태는 여러 가지의 적용예에 있어서 사용될 수 있는 것은 이해될 것이다. 본 발명은 이 점에 제한되지 않지만, 본 명세서에 있어서 개시되는, 데이터 패킷을 송신하는 방법은, 이더넷 네트워크의 네트워크 노드(예를 들면, 이더넷 스위치, 이더넷 브릿지 또는 이더넷 라우터) 등의, 패킷 데이터 교환 네트워크의 임의의 네트워크 노드에 있는 것 등의 많은 장치에서 사용될 수 있다. 명확하게 하기 위해서, 이하의 설명은, 이더넷 네트워크에 초점을 맞춘다. 그러나, 본 발명의 기술적 특징은 그에 한정되지는 않는다.
상술한 바와 같이, TSN은, 이더넷 네트워크를 거친 실시간 통신을 위해, 특히 자동차 네트워크 및 산업 네트워크를 위해 표준 이더넷 상에서 확정적 메시징을 제공하기 위해서 IEEE802.1에 의해 정의된 기술이다. TSN 프레임의 정시 송달은, 802.1Qbv TSN 구성요소에 있어서 처리되고, 이 구성요소는, 송신 스케줄에 따라, 송신이 타임 센시티브인 특정 이더넷 프레임(이하에서 "TSN 프레임" 또는 "실시간 프레임"이라고 불림)을 송신하고, 그와 동시에, TSN 프레임의 전후로, 비TSN 이더넷 프레임을 베스트 에포트 방식으로 송신할 수 있게 하는 방식을 정의한다.
IEEE802.1 타임 센시티브 네트워킹 태스크 그룹에 의해 정의된 여러 가지의 TSN 표준 규격은, 이하의 3개의 구성요소 카테고리로 그룹화될 수 있다.
(1) 시간 동기:TSN 네트워크에 있어서, 시간은, 통상 1개의 마스터 소스로부터 모든 네트워크 노드에 전달된다. 대부분의 경우, 이것은 IEEE1588 고정밀도 시간 프로토콜을 사용하여 행해지고, 이것은 이더넷 프레임을 이용하여 시간 동기 정보를 전달한다.
(2) 스케줄링 및 트래픽 쉐이핑:스케줄링 및 트래픽 쉐이핑은 동일한 네트워크 상에서 다른 우선도를 갖는 다른 트래픽 클래스의 공존이 가능하게 한다. TSN은, 소프트 실시간 요건 및 하드 실시간 요건(soft and hard real-time requirement)에서의 적시 송달을 보장하는 메커니즘을 추가하는 것에 의해, 표준 이더넷 통신을 향상시킨다.
(3) 통신 패스의 선택, 패스 예약 및 내 결함성(fault-tolerance) 메커니즘.
스케줄링 구성요소에 관해서, 우선도마다, 사용자는 다른 액세스 제어 및 스케줄링 메커니즘으로부터, 이더넷 프레임이 처리되는 방법을 선택할 수 있다. 따라서, 어떤 우선도를, 기존의 방법(예를 들면, IEEE802.1Q 엄밀 우선도 스케쥴러), 또는 일부의 새로운 처리 방법, 예를 들면, TSN IEEE802.1Qbv 타임 어웨어 스케줄러에 할당할 수 있다.
IEEE802.1Qbv 타임 어웨어 스케줄러는, 이더넷 네트워크 상의 통신을, 고정 길이의 반복 시간 사이클로 분리하도록 설계된다. 이들 사이클 내에서, 이더넷 우선도 중 하나 또는 몇개에 할당할 수 있는 다른 타임 슬라이스를 구성할 수 있다. 이 타임 슬라이싱 방식을 사용하여, 하드 실시간 제약을 갖는 트래픽 클래스에 대해서, 이더넷 송신 매체로의 배타적 사용을 허가할 수 있다. 이 배타적 액세스에 의해, 이더넷 스위치 송신 버퍼에 있어서의 버퍼링 효과가 없어지고, 비확정적인 인터럽트 없이 타임 크리티컬 트래픽을 송신할 수 있다. 타임 슬라이스는, 가상 통신 채널로 간주되고, 타임 크리티컬 통신의, 비 타임 크리티컬 배경 트래픽으로부터의 분리를 가능하게 할 수 있다.
이더넷 인터페이스가 송신 매체 상에서 프레임의 송신을 개시한 경우, 이 송신은, 다른 송신을 행해지기 전에 완전하게 종료되어 있어야 한다. 따라서, IEEE802.1Qbv 타임 어웨어 스케줄러는, 스케쥴러가 하나의 타임 슬라이스로부터 다음의 타임 슬라이스로 바뀔 때 이더넷 인터페이스가 프레임의 송신으로 사용중이 아닌 것을 확실히 해야 한다. 이것을 행하기 위해, 타임 크리티컬 트래픽을 반송하는 모든 타임 슬라이스의 전에 보호 대역이 삽입된다. 이 보호 대역 시간동안, 송신기는, 새로운 송신을 개시하는 것이 허가되지 않고, 이미 진행되고 있는 송신만을 완료할 수 있다. 보호 대역 지속 시간은 최대 프레임 사이즈 및 데이터 링크 속도에 따라 달라진다.
도 1은, 각각이 2개의 타임 슬라이스 및 보호 대역을 포함하는, 2개의 연속하는 시간 사이클의 한 예시적인 시퀀스를 나타내고 있다. 도시된 시퀀스에 있어서, 2개의 타임 슬라이스 중, 제 1 타임 슬라이스(#1)는, 타임 크리티컬 트래픽에 대응하는 최고 우선도(VLAN 우선도 7)와 관련되도록 구성되고, 그것에 의해, VLAN 우선도 7을 태그한 타임 크리티컬 TSN 프레임만이 제 1 타임 슬라이스 중에 송신된다. 제 2 타임 슬라이스(#2)는, 비 타임 크리티컬 트래픽에 대응하는 1개 이상의 하위 우선도(VLAN 우선도 0~6)에 관련되도록 구성되고, 우선도는, 제 1 타임 슬라이스 중의 비 타임 크리티컬 TSN 프레임의 송신에 대해, 표준 규격 IEEE802.1Q 프로토콜에 따라 처리된다.
보호 대역은, 다음의 시간 사이클의 제 1 타임 슬라이스(#1)의 직전의 타임 슬라이스의 종료에 위치한다.
TSN은, 최대로 8개의 우선도 레벨을 정의하고, 우선도 레벨(0…7)을 마찬가지로 각각 8개의 타임 슬라이스(1…8)에 관련시킬 수 있다.
다른 예에 있어서는, 3개의 우선도 레벨 세트(우선도 7, 우선도 6, 및 우선도 0…5)를, 똑같이 각각 8개의 타임 슬라이스(1, 2, 및 3)에 관련시킬 수 있다.
보호 대역에 의해 일어나는 대역폭의 손실을 삭감하기 위해서, IEEE802.1Qbv표준 규격은, 길이 인식형 스케줄링 메커니즘을 도입하고 있고, 이 메커니즘은, (고 우선도를 갖는) 다음의 슬라이스를 저해하지 않고 보호 대역 내에서 프레임을 송신할 수 있는지 여부를 확인한다.
최신의 마이크로컨트롤러 유닛(MCU)은 통상적으로 일부 이더넷 매체 액세스 컨트롤러(MAC) 주변 장치를 구비한다. MCU는, 구성요소의 수를 삭감하는 것에 의해 통합 비용을 삭감한다. 현재 시장에 나와 있는 것으로서 MCU 및 저비용 마이크로 프로세서 유닛(MPU)에 내장된 이더넷 컨트롤러는, 이더넷 MAC를 위한 10BASE-T/100BASE-TX 802.3, 정확한 네트워크 접속 클럭 동기를 위한 1588-2008 등의 기본적인 IEEE 표준 규격에 준거하고 있다. 이러한 표준 규격은 10/100Mbps 데이터 송신 레이트를 지원하고, 이 대부분은 IEEE802.1Q VLAN 태그 검출도 지원한다. 이러한 표준 규격은, 통합된 다이렉트 메모리 액세스(DMA)를 사용하여 효율적인 데이터 메모리 전송을 지원한다. 호스트 CPU와 MAC 주변장치 사이의 데이터 교환 메커니즘은, 유연하고 효율적인 시스템 실장을 위해, 듀얼 버퍼(링형) 또는 연결 리스트(연쇄형) 기술자, 및 프로그래머블 인터럽트에 근거하고 있다.
그러나, 이러한 표준 규격은, 이더넷 우선도를 지원하지 않고, 송신 및 수신을 위해 1개의 큐만을 구현한다. 해당 제안되는 방법은, 일부 실시 형태에 있어서, 소프트웨어로서 예를 들면, MCU(또는 저비용 MPU)에 그 제안되는 방법 중 하나 이상의 실시 형태를 실시하기 위해, 실시 형태에 따라 MCU 또는 저비용 MPU에 의해 실행되도록 구성된 컴퓨터 판독 가능 프로그램 코드로서 실장할 수 있으므로, 제안되는 방법은, 그러한 한계를 유리하게 극복할 수 있다. 그러한 소프트웨어 구현은, 유리하게는, MCU 또는 저비용 MPU를 사용하는 내장된 애플리케이션에 양호하게 적합한 실시간 운영 시스템(RTOS)을 사용할 수 있다.
또, MAC 주변 장치는 일반적으로 데이터 패킷, 예를 들면 이더넷 프레임의 송신 및 수신을 위해, 내부 고속 선입선출(FIFO) 메모리 세트를 실장한다.
도 2는, 일단에서의 물리 레이어(PHY) 인터페이스(11)에, 및 타단에서의 메모리 버스 인터페이스(15)에 작동 가능하게 접속된 한 예시적인 MAC 컨트롤러(10)의 블럭도를 나타내고 있다.
MAC 컨트롤러(10)와 해당 MAC 컨트롤러(10)를 구동하는 프로세서의 메모리 사이에 교환되는 데이터는, 송신/수신(TX/RX) 컨트롤러(12)에 작동 가능하게 접속된 DMA 컨트롤러(13)를 통해, 프로세서의 메모리에 작동 가능하게 접속된 메모리 버스(15)로부터 수신된다(또는 메모리 버스(15)에 송신된다).
DMA 컨트롤러(13)는, 송신측 DMA 컨트롤러(13a)와 수신측 DMA 컨트롤러(13b)를 구비하고, DMA 제어 유닛(14)에 의해 구동된다. 데이터 패킷 송신 패스 상에서, 송신측 DMA 컨트롤러(13a)는, 메모리 버스(15)로부터 수신된 데이터 패킷의, TX/RX 컨트롤러(12)로의 송신을 위해 구성된다. 데이터 패킷 수신 패스 상에서, 수신측 DMA 컨트롤러(13b)는, TX/RX 컨트롤러(12)로부터 수신된 데이터 패킷의, 메모리 버스(15)에의 송신을 위해 구성된다.
DMA 제어 유닛(14)은, DMA 컨트롤러(13) 및 MAC 컨트롤러(10)에 작동 가능하게 접속되고, DMA 전송을 기동/정지하도록 구성된다. 데이터 패킷 송신 패스 상에, TX/RX 컨트롤러(12)는, 송신측 DMA 컨트롤러(13a)로부터 수신된 데이터 패킷의, DMA 컨트롤러(10)로의 송신을 위해 구성된 송신 FIFO 메모리(12a)를 구비한다. 데이터 패킷 수신 패스 상에, TX/RX 컨트롤러(12)는, DMA 컨트롤러(10)로부터 수신된 데이터 패킷의, 수신측 DMA 컨트롤러(13b)로의 송신을 위해 구성된 수신 FIFO 메모리(12b)를 구비한다.
PHY 인터페이스(11)는, 데이터 송신 패스 및 데이터 수신 패스를 포함하고, 데이터 송신 패스 상에서는, 데이터는 DMA 컨트롤러(10)로부터 수신되고, 또한, 물리 매체, 예를 들면, 이더넷 송신의 경우 동축 케이블 상에서 송신되고, 데이터 수신 패스 상에서는, 데이터는 물리 매체로부터 수신되고 MAC 컨트롤러(10)에 송신된다.
1개 이상의 실시 형태에 있어서, 실시간 시스템은, 실시간 대화형 프로세스 세트로 간주할 수 있고, 각 실시간 프로세스는, 유한 시간에 있어서 외부 이벤트에 응답하여 몇가지 반응을 생성한다. 실시간 운영 시스템(RTOS)은, 그 내부 프로세스가 하드 실시간 요건 또는 소프트 실시간 요건을 준수하는 운영 시스템이다. RTOS의 전형적인 특징으로서는, 태스크 스케줄링이 예측 가능한 것으로부터 예측 가능성, 및 동일한 조건은 일관적으로 동일한 결과를 생성하는 것으로부터 확정성을 들 수 있다.
프로세스, 및 나아가서는 시스템은, 실시간 처리에 관해서 이하의 카테고리 중 하나로 분류할 수 있다.
비 실시간 : 비 실시간 시스템은, 시스템 동작에 관련되는 기한이 존재하지 않는 시스템이다.
소프트 실시간(Soft Real-Time) : 소프트 실시간 시스템은, 기한에 늦은 것이 바람직하지 않은 영향을 줄 수 있지만 여전히 시스템에 의해 허용될 수 있는 시스템이다. 바람직하지 않은 영향은, 예를 들면, 성능 열화를 포함한다.
하드 실시간(Hard Real-Time) : 하드 실시간 시스템은, 기한에 늦은 것이 시스템 동작에 중대한 영향을 줄 수 있는 시스템이다.
RTOS에서조차, 프로세스는, 어떠한 물리적 프로세스도 충분히 작은 시간 스케일에서는 응답 시간에 있어서 필연적으로 지터를 가지기 때문에, 일정한 시간에 반응하는 것은 아니다. 도 3은, 응답 시간, 즉, 특정의 이벤트에 반응하기 위해서 주어진 실시간 프로세스에 의해 필요하게 되는 시간, 및 그것에 관련된 지터(즉, 편차) dT를 나타내고 있다.
도 3은, 각각, 이벤트의 발생, 반응의 발생을 위한 최소 시간, 및, 반응의 발생과, 반응의 발생을 위한 최소 시간 사이의 지연의 측정치인 지터를 나타내는, 3개의 시간선을 나타내고 있다.
가장 위의 시간선은, 주어진 시점 te에 있어서의 이벤트의 발생을 나타내고 있다. RTOS는, 시점 te에 있어서의 이벤트의 발생에 대해서, 최소 반응 시간 T의 전에는 반응하지 못하고, 그것에 의해, 최선의 경우에 시점 te+T에 있어서 반응이 발생할 수 있고, 이것은 중간의 시간선 상에 나타나고 있다. 즉, 중간의 시간선은, 이벤트의 발생에 후속하는 반응 타이밍에 관해서 최선의 경우의 시나리오를 나타내고 있다. 가장 아래의 시간선은, 이벤트의 발생에 후속하는 반응 타이밍에 관해서 최악의 경우의 시나리오를 나타내고 있고, RTOS는, 이벤트의 발생에 대해서, 최소 반응 시간 T에 부가하여 길이 dT의 지터만큼 증가한 시간의 전에는 반응하지 않고, 그것에 의해 반응은 시점 te+T+dT에 있어서 발생한다.
전형적인 내장된 RTOS에 있어서 2 종류의 프로세스, 즉 태스크 및 인터럽트 서비스 루틴(ISR:Interrupt Service Routines)이 존재한다. ISR 및 태스크는, 유사한 것으로서 볼 수 있지만, 다만, ISR의 실행은 대기할 수가 없는(그렇지 않으면, 시스템은 차단되는) 한편, 태스크는, 실행까지 대기할 수 있다는 차이가 있다. ISR은, 인터럽트에 의해 트리거되고, 트리거되면 실행되고, 그 후 종료한다. ISR과 달리, 태스크는, 그 자신의 레지스터 뱅크 및 메모리 스택 에리어를 갖는 시스템 내의 가상 CPU로 간주할 수 있다.
RTOS는, 프로세스들의 사이, 예를 들면 태스크들의 사이 및 ISR들의 사이의 상호작용을 가능하게 하는 동기 툴을 제공한다. 태스크가, 인터럽트에 의해 트리거되는 일부의 외부 이벤트를 대기할 수 있도록, 일부의 특정 오브젝트가 제공된다. 예를 들면, 어떤 RTOS는 큐, 메일 박스, 세마포어(semaphore), 및 상호 배제를 제공할 수 있다.
상술한 바와 같이, IEEE802.1Qbv 액세스 제어 메커니즘은, IEEE802.1Qbv에 있어서 정의된 타임 슬라이스 내의 송신을 제한하기 위해서, 이더넷 송신기가, 양호한 정밀도(예를 들면, 엄밀하게 200ns 미만의 정밀도)의 정확한 시점에 있어서 어떤 특정의 이더넷 프레임(이른바 실시간 이더넷 프레임)을 송신하는 것이 가능한 것을 요구한다. 실시간 프레임은, 통상, 레거시 프레임(즉, 비 실시간 프레임)과 공존하고, 레거시 프레임은, IEEE802.1Q에 의해 도입된 메커니즘 등의 액세스 제어 메커니즘을 사용하여 송신할 수 있다. 비특유 이더넷 MAC 컨트롤러(즉, 도 2에 나타난 컨트롤러 등의, TSN 지원을 위해 개발된 특유의 확장을 가지지 않는 컨트롤러)를 사용하면, 이더넷 송신기 자동 장치의 개시, 데이터의 내부 컨트롤러 메모리로의 전송, 및 데이터 프레임의 이더넷 물리 레이어 컨트롤러로의 송신에, 수 마이크로 세컨드(μs)가 필요하게 된다. 그러나, 그러한 지연 성능은, IEEE802.1qbv 요건에 적합하지 않다.
제안되는 방법은, 유리하게는, 비특유 이더넷 MAC 컨트롤러, 즉, 전형적으로는 마이크로컨트롤러 유닛(MCU) 또는 저비용 마이크로 프로세서 유닛(MPU) 상에 실장되는 이더넷 MAC 컨트롤러 상에서의 IEEE802.1Qbv 액세스 제어 메커니즘의 사용을 가능하게 한다.
도 4는, 본 주제 개시의 실시 형태에 의한 데이터 패킷 송신 특징을 사용하도록 구성된 한 예시적인 네트워크 노드/디바이스(100)의 개략 블럭도이다.
네트워크 노드(100)는, 중앙 처리 유닛(CPU)(101)과, 네트워크 인터페이스(105)와, 전원(예를 들면, 배터리, 플러그 인 전원 등)(104)을 구비할 수 있다. CPU(101)는, 제어 엔진(102)과, 메모리(103)를 구비할 수 있다.
도 4에 나타나고 있는 아키텍쳐에 있어서, 제어 엔진(102), 메모리(103), 네트워크 인터페이스(105), 및 전원(104)의 전부가 시스템 버스(106)를 통해 서로 작동 가능하게 접속되어 있다.
제어 엔진(102)은 1개 이상의 프로세서를 구비할 수 있고, 프로세서는, 임의의 적합한 마이크로프로세서, 마이크로컨트롤러, 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적회로(ASIC), 디지털 신호 처리 칩, 및/또는 상태 기계, 또는 이러한 조합으로 할 수 있다. 여러가지 실시 형태에 의하면, CPU(101)는, 병렬 계산을 제공하기 위해서 복수의 프로세서를 갖는 멀티 프로세서 컴퓨터로서 구성할 수 있다.
또, 제어 엔진(102)은, 한정하는 것은 아니지만, 제어 엔진(102)의 프로세서에 의해 실행되면, 프로세서가 실시간 운영 시스템(103a), 1개 이상의 애플리케이션 태스크(103b), 및 송신 엔진(103c)을 실행하게 하는 컴퓨터 프로그램 명령 또는 소프트웨어 코드를 기억하는 것이 가능한 메모리(103) 등의 컴퓨터 스토리지 매체를 포함할 수도 있고, 또는 이것과 통신할 수도 있다. 메모리(103)는, 제안되는 방법의 실시 형태를 실시하는 컴퓨터 판독 가능 프로그램 코드를 기억하는 것이 가능한 임의의 타입의 데이터 스토리지 컴퓨터 스토리지 매체로 할 수 있고, 제어 엔진(102)과 작동 가능하게 접속하고, 송신 엔진(103c)에 관련하여 기억된 데이터 패킷의 송신을 용이하게 하기 위해서 송신 엔진(103c)과 함께 작동 가능하게 할 수 있다.
네트워크 인터페이스(105)는, 데이터 패킷의 송신을 위한 송신 FIFO 메모리 스택, 및 데이터의 수신을 위한 수신 FIFO 메모리 스택을 제어하도록 구성된 송신/수신(TX/RX) 컨트롤러(105b)에 작동 가능하게 접속된 송신/수신(TX/RX) 다이렉트 메모리 액세스(DMA) 컨트롤러(105a), 매체 액세스 컨트롤러(MAC)(105c), 및 물리 레이어 인터페이스(105d)를 구비할 수 있다.
본 주제 개시의 실시 형태에 있어서, 네트워크 노드(100)는, 본 명세서에 있어서 설명되는 데이터 패킷 송신 방법을 실행하도록 구성된다.
도 4를 참조하여 도시 및 설명된 네트워크 노드(100)는, 단지 예시로서 제공되고 있는 것이 이해될 것이다. 다른 다수의 아키텍쳐, 작동 환경, 및 구성이 가능하다. 다른 실시 형태의 노드는, 보다 소수 또는 보다 다수의 구성요소를 포함할 수 있고, 도 4에 나타난 네트워크 노드 구성요소에 관해서 설명된 기능 중 일부 또는 모두를 통합시킬 수 있다. 따라서, CPU(101), 제어 엔진(102), RTOS(103a), 애플리케이션 태스크(103b), 송신 엔진(103c), 메모리(103), 네트워크 인터페이스(105), 및 전원(104)이 네트워크 노드(100)의 일부로서 나타나고 있지만, 구성요소(101, 102, 103a, 103b, 103c, 103, 105, 104)의 위치 및 제어에 대해서 제한은 부과되지 않는다. 특히, 다른 실시 형태에 있어서는, 구성요소(101, 102, 103a, 103b, 103c, 103, 105, 104)는, 다른 엔티티 또는 컴퓨팅 시스템의 일부로 할 수 있다.
도 5는, 본 주제 개시의 1개 이상의 실시 형태에 의한, 데이터 패킷을 송신하는 방법의 한 예시적인 간략 흐름도를 나타내고 있다.
여러가지 실시 형태에 있어서, 시간은, 복수의 연속하는 기간을 포함하는 현재의 송신 사이클을 포함하는, 복수의 연속하는 시간 사이클로 분할할 수 있다. 일부 실시 형태에 있어서는, 각 시간 사이클은, 동일한 복수의 연속하는 기간을 포함할 수 있다.
현재의 송신 사이클동안, 1개 또는 몇개의 제 1 데이터 패킷과, 1개 또는 몇개의 제 1 데이터 패킷의 각각의 제 1 메타데이터(예를 들면, 데이터 프레임을 저장하는 버퍼로의 메모리 참조 및 프레임 사이즈를 저장하는 메모리 구조)와, 1개 또는 몇개의 제 1 데이터 패킷에 관련된 제 1 송신 우선도(예를 들면, 데이터 패킷의 실시간 송신을 위해 정의된 우선도)를, 도시된 데이터 송신 방법을 실행하는 디바이스에 의해 얻을 수 있다(200).
예를 들면, 1개 또는 몇개의 제 1 데이터 패킷은, 도 4에 나타난 네트워크 노드 등의 네트워크 노드의 하나 이상의 프로세서에 의해 실행되는 1개 이상의 애플리케이션 태스크로부터 수신할 수 있다.
일부의 실시 형태에 있어서는, 제안되는 방법을 실시하도록 구성된(데이터 통신 네트워크에 있어서의 네트워크 노드로서 동작한다) 디바이스는, 디바이스의 하나 이상의 프로세서에 의해 실행되는 1개 이상의 애플리케이션 태스크로부터, 통신 매체를 거친 1개 또는 몇개의 제 1 데이터 패킷의 송신을 위한 1개 또는 몇개의 요구를 수신할 수 있다. 실시 형태에 따라, 요구 중 하나 이상은, 제 1 송신 우선도(예를 들면, 데이터 패킷의 실시간 송신을 위해 정의된 우선도)를 포함할 수 있고, 및/또는, 그것으로부터 요구가 수신되는 애플리케이션 태스크 중 하나 이상은, 제 1 송신 우선도에 관련될 수 있다.
그 후, 1개 또는 몇개의 제 1 데이터 패킷은 제안되는 방법을 실시하는 디바이스의 프로세서의 메모리에 기억될 수 있다(201). 제 1 송신 우선도에 근거하여, 제 1 메타데이터를, 프로세서의 메모리 내의 제 1 대기 큐에 추가(삽입)할 수 있다(202).
예를 들면, 데이터 패킷은, 데이터 패킷을 설명하는 관련 메타데이터 및 수신 데이터 패킷의 송신에 관련된 우선도 정보와 함께, 디바이스에 의해 실행되는 여러가지 애플리케이션 태스크로부터 수신할 수 있다. 유리하게는, 수신 데이터 패킷에 관련된 메타데이터만을 대기 큐(예를 들면, FIFO 큐)에 삽입할 수 있고, 한편, 수신 데이터 패킷은 메모리에 기억될 수 있다.
제 1 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 현재의 송신 사이클의 제 1 기간동안, 제 1 메타데이터는, 제 1 대기 큐로부터, 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함되는 인터페이스 송신 큐로 전송될 수 있다(203).
1개 또는 몇개의 제 1 데이터 패킷은, 그 후, 인터페이스 송신 큐 내의 제 1 메타데이터에 근거하여, 메모리로부터 MAC 컨트롤러 내의 송신 큐로 전송될 수 있다(204).
MAC 컨트롤러의 송신 큐 내에 들어가면, 1개 또는 몇개의 제 1 데이터 패킷은, 그 후, 제 1 기간동안 송신 매체를 거쳐 송신될 수 있다(205).
유리하게는, 특정의 기간을 각 송신 사이클 내에서 정의하고, 주어진 우선도를 갖는 수신 데이터 패킷의 송신에 전용화할 수 있다. 이것은, 대응하는 송신 우선도에 관련된 데이터 패킷, 예를 들면, 송신이 타임 센시티브인 실시간 데이터 패킷의 송신을 위해 예약되는 송신 시간 윈도우를 정의하는 것을 가능하게 하고, 그것에 의해, 다른 송신 우선도에 관련된 데이터 패킷, 예를 들면, 비 실시간 데이터 패킷은, 이 송신 시간 윈도우 내에서 송신되지 않을 수 있다. 그러므로, 대응하는 송신 우선도에 관련된 데이터 패킷의 송신 타이밍은, 대응하는 송신 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 송신 시간 윈도우를 통해서 정확하게 제어될 수 있다.
비 실시간 데이터 패킷의 처리는, 1개 이상의 실시 형태에 있어서, 이하와 같이 실행될 수 있다.
제 2 데이터 패킷을 얻을 수 있고, 예를 들면, 제 2 데이터 패킷의 제 2 메타데이터(예를 들면, 데이터 프레임을 저장하는 버퍼로의 메모리 참조 및 프레임 사이즈를 저장하는 메모리 구조), 및 제 2 데이터 패킷에 관련된(비 실시간 송신에 대응하는) 제 2 송신 우선도와 함께, 애플리케이션 태스크로부터 수신할 수 있다. 제 2 데이터 패킷도 프로세서의 메모리에 기억할 수 있다.
제 2 송신 우선도에 근거하여, 제 2 메타데이터는 프로세서의 메모리 내에서 제 2 대기 큐, 예를 들면, 데이터 패킷의 비 실시간 송신을 위한 대기 큐에 추가될 수 있다.
제 1 기간동안, 제 1 우선도를 갖는 데이터 패킷(예를 들면, 실시간 데이터 패킷)의 송신 전용이고, 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯의 뒤에, 제 2 메타데이터를, 제 2 대기 큐로부터, 프로세서와 MAC 컨트롤러 사이의 인터페이스 송신 큐로 전송할 수 있다.
제 1 기간에 후속하는 현재의 송신 사이클의 제 2 기간동안, 제 2 패킷 데이터는, 인터페이스 송신 큐 내의 제 2 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 제 2 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 송신할 수 있다.
비 실시간 데이터 패킷의 처리는, 1개 이상의 실시 형태에 있어서, 이하와 같이 실행할 수도 있다.
상술한 바와 같이, 제 2 데이터 패킷을 얻을 수 있고, 예를 들면, 제 2 데이터 패킷의 제 2 메타데이터(예를 들면, 데이터 기술자), 및 제 2 데이터 패킷에 관련된(비 실시간 송신에 대응하는) 제 2 송신 우선도와 함께, 애플리케이션 태스크로부터 수신할 수 있다. 제 2 데이터 패킷도, 프로세서의 메모리에 기억할 수 있다.
제 2 데이터 패킷이 제 1 기간 중에 얻어지지 않는 경우, 제 2 메타데이터는, 최초로 제 2 대기 큐로 전송되는 일 없이, 프로세서와 MAC 컨트롤러 사이의 인터페이스 송신 큐에 직접 전송될 수 있다.
제 2 데이터 패킷의 송신은, 그 후, 상술한 바와 같이 진행할 수 있고, 즉, 제 2 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 현재의 송신 사이클의 제 2 기간동안, 제 2 패킷 데이터는, 인터페이스 송신 큐 내의 제 2 메타데이터에 근거한, 메모리로부터 MAC 컨트롤러 내의 송신 큐로의 제 2 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 송신할 수 있다.
1개 이상의 실시 형태에 있어서, 상기에서 언급한 제 1 송신 우선도는, 실시간 데이터 패킷의 송신을 위해 정의할 수 있고, 상기에서 언급한 제 2 송신 우선도는, 비 실시간 데이터 패킷의 송신을 위해 정의할 수 있다.
도 6에 나타내는 바와 같이, 여러가지 실시 형태에 있어서, 제안되는 방법을 실시하는 디바이스는, 연속하는 사이클로 분할되는 시간 리소스에 따라 동작하도록 구성될 수 있고, 각 사이클은, 경우에 따라서는, 동일한 사전 정의된 지속 시간으로 이루어지고, 각 사이클은, 최초로 실시간 주기와, 그것에 후속하여 레거시 주기를 포함하고, 쌍방의 주기는, 실시 형태에 따라, 사전 정의되거나, 각 사이클에 대해 변동할 수도 있는 지속 기간을 갖는다.
1개 이상의 실시 형태에 있어서, 각 사이클에 대해 실시간 주기는, 제안되는 방법을 실시하도록 구성된 1개 이상의 각각의 디바이스(네트워크 노드)를 위해 예약된 1개 이상의 타임 슬롯을 포함할 수 있다. 그러한 디바이스는, 실시간 주기 중의, 그 예약된 타임 슬롯 중에만, 데이터 패킷, 예를 들면, 이더넷 프레임을 송신하도록 구성될 수 있다(그러한 데이터 패킷은, 이하, "RT 이더넷 프레임"이라고 불림). 여러가지 실시 형태에 있어서, 이 타임 슬롯의 위치 및 지속 시간은, 한 사이클에서 다음 사이클까지 정적인 것으로 간주할 수 있다. 디바이스는, 시간에 관한 어떤 특정한 제약없이 레거시 주기 중에, 예를 들면, 802.1Q 이더넷 표준 규격에 있어서 정의되는 바와 같은 액세스 제어 메커니즘을 준수하여, 데이터 패킷, 예를 들면, 이더넷 프레임을 송신하도록 더 구성할 수 있고, 즉, 이더넷 프레임이, 경우에 따라서는 전이중 모드(Full-Duplex mode)에 있어서 엄밀하게 우선도순으로 송신된다. 그러한 요건을 지원하는 것에 의해, 유리하게는, 새롭게 정의된 IEEE801.qbv 표준 규격을 실시하는 것이 가능하게 된다.
제안되는 방식은, 유리하게는, RT 이더넷 프레임에 전용화된 타임 슬롯 내에서, 사전 정의된 정밀도(예를 들면, IEEE802.1Qbv 타임 어웨어 스케줄러에 의해 요구되는 정밀도)로, 이더넷 프레임을 송신하는 것, 및, RT 이더넷 프레임의 송신의 지연에 이르게 되는 오버플로우가 없도록, 레거시 주기 내의 이더넷 프레임의 송신을 제어하는 것을 가능하게 한다.
도 7은, 1개 이상의 실시 형태에 의한, 다른 큐에 걸쳐서 데이터 패킷(예를 들면, 이더넷 프레임)을 분배하는 한 예시적인 방식을 나타내고 있다.
도 7은 제안되는 방법을 실시하도록 구성된 디바이스(50)의 간략도를 나타내고 있고, 디바이스(50)는 CPU(55)를 구비하고, CPU(55)는 MAC 컨트롤러(56)(예를 들면, 이더넷 MAC 컨트롤러)에 작동 가능하게 접속되고, MAC 컨트롤러(56)는, 그 자체가 물리 레이어(57)(예를 들면, 이더넷 물리 레이어)에 작동 가능하게 접속된다.
CPU 유닛 상에서 실행되는 1개 이상의 애플리케이션 태스크(58a, 58b)는, 디바이스(50)에 의해 송신되는 데이터 패킷, 예를 들면, 이더넷 프레임을 생성할 수 있다. 송신되는 프레임은, 송신 타이밍이 정확하게 제어되어야 하는, 이른바 실시간 프레임("RT 프레임", 도 7에 나타나는 예에서는 RT 이더넷 프레임이라고도 불림), 또는, 대조적으로, 레거시 프레임 또는 노멀 프레임이라고 불리는 비 실시간 프레임으로 할 수 있다.
RT 이더넷 프레임은, (레거시 이더넷 프레임과 달리) 즉시 송신되지 않을 수 있고, 즉, 예를 들면, 애플리케이션 태스크에 의해 생성된 직후에 송신되지 않을 수 있으므로, 1개 이상의 실시 형태에 있어서, CPU(55) 내에, RT 이더넷 프레임이 1개 이상의 애플리케이션 태스크에 의해 생성되는 시점과, 디바이스(50)가 물리 매체를 거쳐 RT 이더넷 프레임을 송신할 수 있는 전용 타임 슬롯의 개시 사이에, RT 이더넷 프레임을 기억하도록, RT 프레임용의 보류 큐("RT 프레임 보류 큐"라고 불림)(51)를 구성할 수 있다.
1개 이상의 실시 형태에 있어서, 레거시 이더넷 프레임, 즉, 현재의 사이클의 실시간 주기 중에 1개 이상의 애플리케이션 태스크에 의해 생성되는, 주어진 정밀도에서의 실시간 송신을 요구하지 않는 이더넷 프레임을 기억하도록, 레거시 프레임용의 보류 큐("레거시 프레임 보류 큐"라고 불림)(52)도 구성할 수 있다.
또, 1개 이상의 실시 형태에 있어서, 레거시 이더넷 프레임은, 수신된 레거시 프레임의 총 지속 시간이 레거시 주기의 지속 시간을 초과하는 경우, 레거시 프레임 보류 큐(52)에 기억될 수 있다.
도 7에 나타내는 바와 같이, 레거시 프레임 보류 큐(52) 및 RT 프레임 보류 큐(51)에 부가하여, 일부 실시 형태에 있어서는, 이더넷 MAC DMA 송신 큐(53)를, CPU(55)와 이더넷 MAC 컨트롤러(56) 사이에 공유할 수 있다. CPU(55)는, 이 큐(53)에, 애플리케이션 태스크로부터 직접 또는 레거시 프레임 보류 큐(52) 및 RT 프레임 보류 큐(51) 중 하나로부터 유래하는 이더넷 프레임을 추가하도록 구성될 수 있다.
이더넷 MAC 컨트롤러(56)는, DMA 전송이 유효화되고 있을 때, 이더넷 MAC DMA 송신 큐(53)로부터 프레임을 디큐잉(dequeueing)하고, CPU 메모리(예를 들면, RAM 메모리)로부터, 이더넷 MAC 컨트롤러(56)의 내부 이더넷 MAC 송신 FIFO(54)("이더넷 MAC Tx-FIFO"라고 불림)에의 메모리 데이터 전송(DMA 전송)을 개시하도록 구성될 수 있다. 메모리 데이터 전송이 완료하면, 이더넷 송신기가 유효화되고 있는 경우, 이더넷 프레임은 이더넷 물리 레이어(57)에 송신될 수 있고, 이더넷 물리 레이어(57)는, 수신하면, 이러한 이더넷 프레임을, 송신 매체(예를 들면, 송신 와이어)를 거쳐 송신될 수 있다. 일부 실시 형태에 있어서, 디바이스(50)는, DMA 전송 및 이더넷 송신을 독립적으로 유효화/무효화할 수 있도록 구성될 수 있다. 데이터 프레임이 내부 이더넷 MAC 송신 FIFO(54)에 기억되면, 동작은, 고속으로 되고, 실행 시간의 관점에서 불확실성이 매우 낮다.
도 8은, 제안되는 방법을 실시하는 디바이스, 예를 들면 도 7의 디바이스에 있어서 구성되는 것 같은, 사이클마다 정의될 수 있는 일부의 이벤트를 나타내고 있다. 그러한 디바이스는, 1 사이클동안, 각 이벤트의 발생이 이더넷 MAC 주변 장치 제어, 또는 내부 처리 및 이더넷 프레임 준비의 어느 것에 관련된 특정의 액션을 트리거하도록 구성될 수 있다.
도 8은, 1개 이상의 실시 형태에 의한, 1 사이클에 따라, 즉, 그 사이클의 실시간 주기 및 레거시(노멀) 주기, 및 실시간 주기 내의 전용 송신 타임 슬롯에 따라, 이벤트를 얼마나 정의할 수 있는지를 나타내는 도면이다.
1개 이상의 실시 형태에 있어서, 이벤트(도 8에 나타나는 예에서는, 이벤트 T0, T1, T2, T4, T5) 중 일부 또는 모두를, 예를 들면 도 4에 나타난 송신 엔진에 있어서 실장되는 타이머 관리 모듈에 의해 관리되는 1개 이상의 타이머에 의해 트리거할 수 있다.
예시적인 시간 이벤트 T0, T1, T2, T3, T4, 및 T5는, 도 7 및 도 8을 참조하여 이하에서 설명되고, 도 7및 도 8은 이러한 시간 이벤트의 예시적인 사용을 나타내고 있다.
시간 이벤트 "T0"는, 사이클의 개시, 및, 실시간 주기가 사이클의 제 1 부분 내에서 정의되는 실시 형태에 있어서는 사이클의 실시간 주기의 개시에 대응하도록 정의할 수 있다.
일부 실시 형태에 있어서는, 이더넷 송신은, 시간 이벤트 T0의 발생시에 무효화될 수 있다. 그 결과, 이더넷 프레임은, 이더넷 MAC 컨트롤러(예를 들면, 도 7의 이더넷 MAC 컨트롤러(56))에 의해 이더넷 물리 레이어(예를 들면, 도 7의 이더넷 물리 레이어(57))에 송신될 수 없다. 그러나, 일부 실시 형태에 있어서는, 이더넷 MAC DMA 송신 큐(53)와 이더넷 MAC 송신 FIFO(54) 사이의 전송은, 시간 이벤트 "T0"의 발생 후에도 여전히 가능하게 될 수 있다.
일부 실시 형태에 있어서, DMA 프로세스를 통한 데이터의 수신("Rx-DMA"라고 불림)을, T0의 발생시에 RT 프레임의 수신을 위해 유효화할 수 있다.
일부 실시 형태에 있어서, "T0,margin"라고 불리는 시간 마진을 유리하게 사용하여, 타이머 관리 및 "T0" 이벤트 시에 실행되는 동작에 의해 일어나는 잠재적인 레이턴시를 보상할 수 있다. 따라서, 송신 사이클은, 실시간 주기의 직전에 발생하는 시간 보호 주기 T0,margin를 포함할 수 있고, 이 주기동안, MAC 컨트롤러에 있어서의 데이터 송신은 무효화된다.
시간 이벤트 "T1"은, RT 프레임 송신의 준비를 트리거하도록 정의될 수 있다. T1의 발생시, RT 보류 프레임에 관련된 메타데이터는, RT 프레임 보류 큐(51)로부터 이더넷 MAC DMA 송신 큐(53)에 전송할 수 있다(전송은, 이 도면에 있어서 "Data xfer RAM->FIFO"라고 불림).
일부 실시 형태에 있어서, 전송은, 또한 RT 프레임의 누적 지속 시간이 실시간 주기 내의 디바이스(50)를 위해 예약된 타임 슬롯의 지속 시간을 초과하지 않는 것을 체크하기 위해서 실행할 수 있다. 그러한 타임 슬롯은, 데이터 통신 네트워크 내의 하나 이상의 디바이스에 의한, 제안되는 방식에 따른 RT 프레임의 송신을 위해 각각 예약된 1개 이상의 타임 슬롯에 실시간 주기를 구분화하도록, 시간 분할 다중 액세스에 있어서 그 디바이스를 위해 정의할 수 있다.
따라서, 일부 실시 형태에 있어서, RT 프레임의 누적 사이즈에 대응하는 데이터량을, 실시간 주기 내에서의 디바이스에 의한 RT 프레임의 송신을 위해 예약된 타임 슬롯 중에 송신할 수 있다는 판단에 근거하여, RT 프레임의 메타데이터를 대기 큐(예를 들면, RT 프레임 보류 큐(51))에 추가할 수 있다.
일부 실시 형태에 있어서, 이더넷 MAC 송신 FIFO(54)로의 프레임의 DMA 전송도, T1의 발생시에 개시할 수 있다.
따라서, 일부 실시 형태에 있어서, RT 프레임에 관련된 메타데이터는, RT 프레임이 수신시에 내부에 기억된 대기 큐(예를 들면, RT 프레임 보류 큐(51))로부터, 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함되는 인터페이스 송신 큐(예를 들면, 이더넷 MAC DMA 송신 큐(53))에 전송할 수 있고, RT 프레임은, 인터페이스 송신 큐에 기억된 메타데이터에 근거하여, 디바이스(50)를 위해 예약된 타임 슬롯의 개시전의 제 1 소정의 시점의 뒤(예를 들면, 시간 이벤트 T1의 발생시)에, 프로세서(CPU)에 결합된 메모리로부터, MAC 컨트롤러 내의 송신 큐(예를 들면, 이더넷 MAC 송신 FIFO(54))에 전송할 수 있다.
일부 실시 형태에 있어서, "T1,margin"라고 불리는 시간 마진은, 유리하게는, 제 1 이더넷 프레임에 관련된 데이터가 내부 MAC 송신 FIFO에 완전하게 전송되도록, T1의 발생과 디바이스(50)를 위해 예약된 타임 슬롯의 개시 사이에 사용할 수 있다.
일부 실시 형태에 있어서, 특별히 인터럽트 관리가 (예를 들면, 인터럽트 서비스 루틴(ISR)을 통해서) 데이터 송신 및 수신간에 공유되는 디바이스에 있어서, 메모리 액세스 및 수신 프레임의 처리에 기인한 요란(disturbance)(추가 지터)을 회피하기 위해서, DMA 프로세스를 통한 데이터의 수신("Rx-DMA"라고 불림)을 T1의 발생시에 무효화할 수 있다.
마찬가지로, 일부 실시 형태에 있어서, T0의 발생시에 개시될 수 있는 다음의 사이클에 있어서 송신될 RT 프레임의 프레임 수신, 처리 및/또는 준비를 경우에 따라 포함하는 백그라운드 처리를, T1의 발생시에 무효화할 수 있다.
시간 이벤트 "T2"를, 상술한 바와 같이, 디바이스(50)를 위해 예약된 타임 슬롯의 개시에 대응하는 것으로서 정의할 수 있다. 이더넷 송신은, 그 경우, T2의 발생시에 유효화할 수 있고, 이더넷 MAC 송신 FIFO(54)에 있어서 이용 가능한 임의의 프레임을 이더넷 물리 레이어 유닛(57)에 전송할 수 있다. 이 전송은, 통상, 매우 짧고, 매우 낮은 지터를 받게 되고, 그것에 의해, 이 전송은, 유리하게는, 인터럽트 서비스 루틴(ISR)의 일부로서 실행되도록 구성할 수 있다.
따라서, 일부 실시 형태에 있어서, 송신 매체를 거친 MAC 컨트롤러 내의 송신 큐(예를 들면, 이더넷 MAC 송신 FIFO(54))로부터의 RT 프레임의 전송은, MAC 컨트롤러에 의해, 디바이스(50)를 위해 예약된 타임 슬롯의 개시 전의 제 2 소정의 시점 후(예를 들면, 시간 이벤트 T2의 발생시)의 실시간 주기 중에 유효화할 수 있고, 제 2 소정의 시점은, 상술한 제 1 소정의 시점의 뒤에 발생하도록 정의된다.
일부 실시 형태에 있어서, "T2,margin"라고 불리는 시간 마진을, T2의 발생과 디바이스(50)를 위해 예약된 타임 슬롯의 개시 사이에 유리하게 사용하여, 타이머 관리 및 이더넷 송신기의 하드웨어 시동에 의해 일어나는 잠재적인 레이턴시를 보상할 수 있다.
시간 이벤트 "T3"은, 마지막 RT 프레임의 송신의 종료에 대응하는 것으로서 정의할 수 있다.
일부 실시 형태에 있어서, Rx-DMA(DMA 프로세스를 통한 데이터의 수신)는, 시간 이벤트 T3의 발생시에 프레임의 수신을 위해 유효화할 수 있다.
따라서, 일부 실시 형태에 있어서, RT 프레임의 수신은, 상술한 바와 같이 시간 이벤트 T1의 발생시에 실시간 주기 중에 무효화할 수 있고, 시간 이벤트 T3의 발생 시에 다시 유효화할 수 있다. 시간 이벤트 T3을 이용하여 디바이스를 위해 예약된 타임 슬롯 중의 RT 프레임의 송신의 최후를 감시하는 것은, 유리하게는, 디바이스를 위해 예약된 타임 슬롯 중의 MAC 컨트롤러에 의한 RT 프레임의 송신이 완료되지 않는 동안, RT 프레임의 DMA 수신을 무효화하는 것을 가능하게 하고, 그것에 의해, DMA 수신에 의해 도입되는 잠재적인 레이턴시(지터)가 MAC 컨트롤러에 의한 RT 프레임의 송신 중에 회피된다.
일부 실시 형태에 있어서, 다음의 사이클에 있어서 송신되게 되는 프레임(RT 프레임, 또는, 실시 형태에 따라, RT 주기 중의 RT 프레임 및 노멀 주기 중의 노멀 프레임)의 프레임 수신, 처리 및/또는 준비를 경우에 따라 포함하는 백그라운드 처리를, T3의 발생 시에 마찬가지로 개시할 수 있다.
시간 이벤트 "T4"는, 디바이스(50)를 위해 예약된 타임 슬롯의 종료에 대응하는 것으로서 정의할 수 있다.
일부 실시 형태에 있어서, 레거시 프레임 보류 큐(52) 내에서 보류 중의 레거시 프레임에 관련된 메타데이터는, 경우에 따라서는, 또한 이더넷 프레임의 누적 지속 시간이 레거시 주기의 지속 시간을 초과하지 않는 것을 체크하기 위해서, 이더넷 MAC DMA 송신 큐(53)에 전송할 수 있다(이 도면에서는 "Data xfer RAM->FIFO"라고 불림). 따라서, 레거시 프레임은, (예를 들면, T4 시간 이벤트의 발생 시점으로서의) 디바이스를 위해 예약된 타임 슬롯의 종료의 뒤의 실시간 주기 중에, 레거시 프레임이 내부에서 보류 중인 대기 큐(예를 들면, 레거시 프레임 보류 큐(52))로부터, 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함되는 인터페이스 송신 큐(예를 들면, 이더넷 MAC DMA 송신 큐(53))에 전송할 수 있다.
일부 실시 형태에 있어서, 이더넷 송신은, T4의 발생시에 무효화될 수 있다. 따라서, 일부 실시 형태에 있어서, RF 프레임은 실시간 우선도로 송신할 수 있고, 즉, RT 우선도를 갖는 데이터의 송신을 위해 그 디바이스를 위해 예약된 타임 슬롯 중에 MAC 컨트롤러에 의해 송신할 수 있고, 다만, 그 디바이스를 위해 예약된 타임 슬롯은 현재의 사이클의 실시간 주기 내에 포함된다. MAC 컨트롤러에 있어서의 데이터 송신은, 그 디바이스를 위해 예약된 타임 슬롯 이외의 하나 이상의 주기의 사이, 즉, 제 1 송신 무효 기간 및/또는 제 2 송신 무효 기간 중, 무효화할 수 있고, 제 1 송신 무효 기간은, 그 디바이스를 위해 예약된 타임 슬롯 전의 실시간 주기 중(예를 들면, T0에 있어서 개시하고, T2에 있어서 종료하는 주기의 사이)에 발생하고, 제 2 송신 무효 기간은, 그 디바이스를 위해 예약된 타임 슬롯 후의 실시간 주기 중(예를 들면, 이하에 설명되는 바와 같이, T4에 있어서 개시하고, T5에 있어서 종료하는 주기의 사이)에 발생한다.
시간 이벤트 "T5"를, 레거시 주기의 개시에 대응하는 것으로서 정의할 수 있다. 일부 실시 형태에 있어서, 이더넷 송신은, T5의 발생시에 유효화될 수 있다(이것은, T2의 발생에 관련된 동작과 동일한 동작이며, 즉, 이더넷 MAC 송신 FIFO(54)에 있어서 이용 가능한 임의의 프레임을 이더넷 물리 레이어 유닛(57)에 전송할 수 있다). 일부 실시 형태에 있어서, 다음의 T0, T1, T2, T4, 및 T5 타이머를, T5의 발생시에 프로그래밍할 수 있다.
일부 실시 형태에 있어서, Rx-DMA(DMA 프로세스를 통한 데이터의 수신)를, T5의 발생시에 프레임의 수신을 위해 유효화할 수 있다.
일부 실시 형태에 있어서, "T5,margin"라고 불리는 시간 마진을, T5의 발생과 레거시 주기의 개시 사이에 유리하게 사용하여, 타이머 관리 및 이더넷 송신기의 하드웨어 시동에 의해 일어나는 잠재적인 레이턴시를 보상할 수 있다.
1개 이상의 실시 형태에 의한 제안되는 큐 관리 방식이 이후에 설명된다.
1개 이상의 실시 형태에 있어서, 주기(실시간 주기 및 노멀(레거시) 주기) 마다, 각각 실시간 주기에 대해 SRT, 및 레거시 주기에 대해 SLe로 표기되는 1개 이상 상태 변수를 사용하여, 각각의 주기에 있어서의 나머지의 자유시간을 유지할 수 있다. 또한 임의의 시점 t에 있어서, 상태 변수 Pt를 사용하여, 현재의 주기의 타입("RT" 또는 "레거시" 중 어느 것)을 나타낼 수가 있다. 사이클의 개시 시, 쌍방의 변수를 각 주기의 각각의 지속 시간으로 초기화할 수 있다. 예를 들면, SRT는, 실시간 주기의 지속 시간으로 초기화할 수 있고, SLe는, 레거시 주기의 지속 시간으로 초기화할 수 있다.
일부 실시 형태에 있어서, T1 이벤트의 발생시, 상태 변수 SRT가 큐의 선두에 위치하는 프레임의 지속 시간보다 큰 동안, RT 프레임 보류 큐(51)의 프레임을 디큐잉하고, MAC DMA 송신 큐(53)에 인큐잉할 수 있다. SRT 상태 변수는, RT 프레임이 MAC DMA 송신 큐(53)에 추가될 때에 SRT가 프레임 지속 시간에 대응하는 값만큼 감소되도록, 관리할 수 있다.
일부 실시 형태에 있어서, 레거시 프레임 보류 큐(52)와 MAC DMA 송신 큐(53) 사이의 T4 이벤트의 발생 시에, SLe 상태 변수에 대해 동일한 관리 프로세스를 적용할 수 있다. 즉, T4 이벤트의 발생 시, SLe가 큐의 선두에 위치하는 프레임의 지속 시간보다 큰 동안, 레거시 프레임 보류 큐(52)의 프레임을 디큐잉하고, MAC DMA 송신 큐(53)에 인큐잉할 수 있다. SLe 상태 변수는, 레거시 프레임이 MAC DMA 송신 큐(53)에 추가될 때에 SLe가 프레임 지속 시간에 대응하는 값만큼 감소되도록 관리할 수 있다.
일부 실시 형태에 있어서, RT 프레임을 송신해야 하는 애플리케이션 태스크는, 최초로 RT 프레임을 RT 프레임 보류 큐(51) 내에 포스트할 수 있다.
일부 실시 형태에 있어서, 레거시 프레임을 송신해야 하는 애플리케이션 태스크는, 상태 변수 Pt가 "RT"로 설정되는(t는 현재의 시점임) 경우에, 레거시 프레임을 레거시 프레임 보류 큐(52) 내에 포스트할 수 있다. Pt가 "레거시"로 설정되는 경우, 레거시 프레임은, SLe 및 레거시 주기의 종료전의 시간이 프레임 지속 시간보다 클 때, MAC DMA 송신 큐(53) 내에 포스트할 수 있다.
이 제안되는 큐 관리 방식은, 정의된 주기의 준수를 확실히 하고, 또, 유리하게는, 레거시 이더넷 프레임의 송신 시간을 최적화한다. 실제로, 태스크에 의해 제안되는 레거시 이더넷 프레임은, 현재의 주기가 레거시 프레임에 전용화되는 경우, 실질적으로 즉시 송신된다.
1개 이상의 실시 형태에 의한 제안되는 타이머 관리 방식이, 이후에 설명된다.
1개 이상의 실시 형태에 있어서, 타이머 관리 모듈은, 클럭(예를 들면, 고 정밀도 시간 프로토콜(PTP) 클럭)에 의해 트리거되고, 또한, 레거시 스레드 모드에 있어서, 또는 보다 양호한 정확도를 위해 ISR(인터럽트 서비스 루틴) 모드 하에서, 특정의 액션을 실행하도록 실장 및 구성될 수 있다.
상술한 바와 같이, 일부 실시 형태에 있어서, ISR에 있어서 실행되는 액션의 수는, ISR의 실행 레이턴시를 더 저감하기 위해서 제한될 수 있다. 그러한 실행 모드는, ISR 태스크와 RTOS 태스크 사이의 통지 메커니즘을 사용하는 것을 회피하고, 그것에 의해 트리거된 액션을 실행하는데 필요한 레이턴시(및 관련된 지터)가 저감되므로, 유용하다.
예를 들면, 일부 실시 형태에 있어서, 타이머 관리 모듈은, 단일의 하드웨어 타이머를 사용함과 함께, 이벤트 컨텍스트의 연쇄 리스트를 사용하도록 구성될 수 있다. 타이머 관리 모듈은, 다음의 타이머 목표치를 프로그래밍하고, 이벤트 액션을 실행하도록 구성된 타이머 관리 RTOS 태스크를 실행할 수 있다. 하드웨어 타이머가 이벤트의 발생에 대해서 트리거될 때에, 하드웨어 타이머는, 연쇄 리스트 상의 다음의 이벤트의 발생에 대해서 재프로그래밍될 수 있다. 복수의 이벤트를 순차적으로 관리하기 위한 단일의 타이머의 사용은, 유리하게는, 주어진 정밀도로 실행 지터를 달성하도록, 이벤트의 발생마다의 실행 지터가 한정된 것이 되는 것을 확실히 하는 것을 가능하게 한다(예를 들면, 단일의 타이머의 사용은, 타이머에 관련된 태스크를 실행하기 위해서 몇개의 연쇄 리스트를 파싱하는 것을 회피한다).
일부 실시 형태에 있어서, 각 이벤트 컨텍스트는, 목표 시간, 이벤트 액션(일부 실시 형태에 있어서는, 대응하는 컴퓨터 판독 가능 프로그램 코드가 실행되는 어드레스에 의해 나타내어짐), 및 경우에 따라서는, 트리거되는 액션이 ISR의 내부에서 직접 실행되게 되는지, 또는 타이머 관리 태스크에 있어서 실행되게 되는지를 나타내는 플래그를 포함할 수 있다.
일부 실시 형태에 있어서, 리스트는, 연쇄 리스트 이벤트 컨텍스트의 처리를 고속화하기 위해서 시간 순서로 할 수 있고, 저순위의 타임 스탬프를 갖는 이벤트는, 연쇄 리스트의 선두에 둘 수 있다. 그러한 실시 형태에 있어서, 하드웨어 타이머가 만료하면, 적절한 ISR를 실행할 수 있고, 대응하는 플래그가 설정되어 있는 경우, 연쇄 리스트의 선두에 있어서의 이벤트 컨텍스트에 관련된 이벤트 액션을 실행할 수 있다. 실시 형태에 있어서, 관련된 이벤트 액션이 아직도 실행되어 있지 않은 경우에 실행하고, 연쇄 리스트의 선두에 있어서의 이벤트 컨텍스트를 디큐잉하고, 연쇄 리스트의 선두에 새롭게 위치하는 이벤트 컨텍스트에 근거하여 다음의 타이머 목표치를 프로그래밍하기 위해서, (플래그가 그것을 요구하고 있지 않거나, 또는 플래그가 사용되고 있지 않은 실시 형태의 경우에도) ISR의 실행시에 타이머 관리 태스크를 웨이크시킬 수 있다.
그러한 실시 형태는, 유리하게는, 시간 레이턴시, 및 이벤트에 관련된 액션의 실행에 대한 지터를 저감하게 된다.
상술한 바와 같이, 1개 이상의 실시 형태에 있어서, 타이머에 의해 트리거되는 몇개의 이벤트의 실행 시간은, 지연을 보상하기 위해서 타이머를 예기할 수 있도록 평가할 수 있다. 특히, 도 7 및 도 8에 관해서 상술한 실시 형태를 참조하면, 요구되는 시간 정밀도를 달성하기 위해서, T2 타이머에 의해 트리거되는 이벤트의 지연을 정확하게 보상하는 것이 중요하다. 그러나, 이 지연 보상은, 계산이 매우 용이하다는 것은 아니고, CPU 주파수, 캐쉬 아키텍쳐, 코드의 사이즈 … 등의 많은 인자에 의존하게 된다.
이 문제에 대처하기 위해서, T2 이벤트에 있어서 실행되는 동작중에 이더넷 송신기를 유효화하기 위해 시스템에 의해 요구되는 시간의 양을 결정하기 위해, 1개 이상의 실시 형태에 따라, 자동 교정 방법이 제안된다. 제안되는 방식은, 몇개의 특정의 프레임 상에서 MAC 컨트롤러에 의해 실행되는 하드웨어 타임 스탬프 부여에 의거한다. 하드웨어 타임 스탬프 부여는, 상기에서 언급된 클럭(예를 들면, PTP 클럭)을 사용하여 실행할 수 있고, PHY 레벨에 있어서 프레임 송신의 고정밀도의 시간을 포함한다. 이 값을 예상 송신 시간과 비교하는 것은, 포괄적 실행 시간 지연을 결정하는 것을 가능하게 한다. 이 지연은, ISR 루틴의 실행 시간, 타이머 관리에 사용되는 프로그램 코드, 및 T2 관련 액션에 사용되는 프로그램 코드를 포함한다.
일부 실시 형태에 있어서, 각 사이클에 있어서, 실시간 주기 내에 송신되는 제 1 프레임은, 송신 타임 스탬프 부여가 하위 레벨에 있어서 실행되도록 태그될 수 있다. 평균 지연이 계산되고, T2 타이머를 보상하기 위한 T2 마진으로서 적용된다.
본 주제 개시의 방법 및 장치는, 유리하게는, 크리티컬 네트워크(공장 자동화, 자동차)에 있어서의 센서/엑추에이터 등의 통신 인터페이스(예를 들면, 이더넷 통신 인터페이스)를 갖는 저비용 디바이스에 있어서 실시할 수 있다. 방법 및 장치는, 또한 TSN 표준 규격 프로토콜과의 호환성을 가능하게 하고, 표준 이더넷 상에서 확정적 메시징을 제공한다. 방법 및 장치는, 유리하게는, 비특유 이더넷 MAC 통합 주변 장치를 갖는 저비용 MCU/MPU 플랫폼 상에서 실행하는데 사용될 수 있다.
본 발명은 어떤 특정의 바람직한 실시 형태와의 관련으로 개시되어 왔지만, 그 시스템, 디바이스 및 방법의 특정 이점, 특징 및 태양은 여러 가지의 다른 실시 형태에 있어서 실현될 수 있는 것은 이해되어야 한다. 또한 본 명세서에 있어서 설명되는 여러 가지의 태양 및 특징은, 개별적으로 실천할 수 있거나, 서로 조합할 수 있거나, 또는 서로 대체될 수 있는 것, 및 특징 및 태양의 여러 가지의 조합 및 부분적인 조합을 행하는 것이 가능하고, 그런데도 본 발명의 범위에 포함되는 것을 의도하고 있다. 또한 상기의 시스템 및 디바이스는, 바람직한 실시 형태에 있어서 설명된 모듈 및 기능의 모두를 포함할 필요는 없다.
본 명세서에 있어서 설명되는 정보 및 신호는, 임의의 여러 가지 다른 기술 및 기법을 이용하여 나타낼 수 있다. 예를 들면, 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼 및 칩은, 전압, 전류, 전자파, 자계 또는 자기 입자, 광장(optical field) 또는 광자, 또는 그 임의의 조합에 의해 나타낼 수 있다.
실시 형태에 따라서는, 본 명세서에 있어서 설명된 방법의 몇개의 어떤 특정의 동작, 이벤트 또는 기능은, 다른 순서로 실행될 수 있거나, 추가되거나, 통합되거나, 또는 모두 제외될 수 있다(예를 들면, 방법을 실천하기 위해서, 설명된 모든 동작 또는 이벤트가 필요하다고는 할 수 없다). 또한, 특정의 실시 형태에서는, 동작 또는 이벤트는 순서대로가 아니라 동시에 실행될 수 있다.

Claims (15)

  1. 데이터 패킷을 송신하는 방법으로서,
    복수의 연속하는 시간 사이클 내의, 복수의 연속하는 기간을 포함하는 현재의 송신 사이클동안,
    1개 또는 몇개의 제 1 데이터 패킷과, 상기 1개 또는 몇개의 제 1 데이터 패킷의 각각의 제 1 메타데이터와, 상기 1개 또는 몇개의 제 1 데이터 패킷에 관련된 제 1 송신 우선도를 얻는 것 - 상기 1개 또는 몇개의 제 1 데이터 패킷은 프로세서의 메모리에 기억됨 - 과,
    상기 제 1 송신 우선도에 근거하여, 상기 제 1 메타데이터를, 상기 프로세서의 상기 메모리 내의 제 1 대기 큐에 추가하는 것과,
    상기 제 1 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 상기 현재의 송신 사이클의 제 1 기간동안,
    상기 제 1 메타데이터를, 상기 제 1 대기 큐로부터, 인터페이스 송신 큐로 전송하는 것 - 상기 인터페이스 송신 큐는, 상기 프로세서와 MAC 컨트롤러 사이의 데이터 통신 인터페이스 내에 포함됨 - 과,
    상기 인터페이스 송신 큐 내의 상기 제 1 메타데이터에 근거한, 상기 메모리로부터 상기 MAC 컨트롤러 내의 송신 큐로의 상기 1개 또는 몇개의 제 1 데이터 패킷의 전송을 통해서, 송신 매체를 거쳐 상기 1개 또는 몇개의 제 1 데이터 패킷을 송신하는 것
    을 포함하는 방법.
  2. 제 1 항에 있어서,
    제 2 데이터 패킷과, 상기 제 2 데이터 패킷의 제 2 메타데이터와, 상기 제 2 데이터 패킷에 관련된 제 2 송신 우선도를 얻는 것 - 상기 제 2 데이터 패킷은, 상기 프로세서의 상기 메모리에 기억됨 - 과,
    상기 제 2 송신 우선도에 근거하여, 상기 제 2 메타데이터를, 상기 프로세서의 상기 메모리 내의 제 2 대기 큐에 추가하는 것과,
    상기 제 1 기간동안, 제 1 우선도를 갖는 데이터 패킷의 송신 전용이고, 또한, 상기 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯의 뒤에, 상기 제 2 메타데이터를, 상기 제 2 대기 큐로부터, 상기 인터페이스 송신 큐로 전송하는 것과,
    상기 제 1 기간에 후속하는 상기 현재의 송신 사이클의 제 2 기간동안, 상기 인터페이스 송신 큐 내의 상기 제 2 메타데이터에 근거한, 상기 메모리로부터 상기 MAC 컨트롤러 내의 상기 송신 큐로의 상기 제 2 데이터 패킷의 전송을 통해서, 상기 송신 매체를 거쳐 상기 제 2 패킷 데이터를 송신하는 것
    을 더 포함하는 방법.
  3. 제 1 항에 있어서,
    제 2 데이터 패킷과, 상기 제 2 데이터 패킷의 제 2 메타데이터와, 상기 제 2 데이터 패킷에 관련된 제 2 송신 우선도를 얻는 것 - 상기 제 2 데이터 패킷은 상기 프로세서의 상기 메모리에 기억됨 - 과,
    상기 제 2 데이터 패킷이 상기 제 1 기간 중에 얻어지지 않으면, 상기 제 2 메타데이터를 상기 인터페이스 송신 큐에 추가하는 것과,
    상기 제 2 우선도에 관련된 데이터 패킷의 송신을 위해 예약된 상기 현재의 송신 사이클의 제 2 기간동안, 상기 인터페이스 송신 큐 내의 상기 제 2 메타데이터에 근거한, 상기 메모리로부터 상기 MAC 컨트롤러 내의 상기 송신 큐로의 상기 제 2 데이터 패킷의 전송을 통해서, 상기 송신 매체를 거쳐 상기 제 2 패킷 데이터를 송신하는 것
    을 더 포함하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 송신 우선도는 데이터 패킷의 실시간 송신을 위한 것이며, 상기 제 2 송신 우선도는 데이터 패킷의 비 실시간 송신을 위한 것인 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 방법은, 상기 프로세서에 의해 실행되는 1개 또는 몇개의 제 1 태스크로부터, 상기 송신 매체를 거친 상기 1개 또는 몇개의 제 1 데이터 패킷의 송신의 하나 또는 몇개의 요구를 수신하는 것을 더 포함하고, 각 요구는 상기 제 1 송신 우선도를 포함하고, 또는, 상기 제 1 태스크 중 하나 이상은 상기 제 1 송신 우선도에 관련되는 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 1개 또는 몇개의 제 1 데이터 패킷은, 상기 제 1 우선도를 갖는 데이터 패킷의 송신 전용이고, 또한, 상기 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯 중에 상기 MAC 컨트롤러에 의해 송신되고,
    상기 방법은, 제 1 송신 무효 기간 및/또는 제 2 송신 무효 기간 중, 상기 MAC 컨트롤러에 있어서의 데이터 송신을 무효화하는 것을 더 포함하고,
    상기 제 1 송신 무효 기간은 상기 제 1 우선도의 송신 타임 슬롯 전의 상기 제 1 기간 중에 발생하고, 상기 제 2 송신 무효 기간은 상기 제 1 우선도의 송신 타임 슬롯 뒤의 상기 제 1 기간 중에 발생하는
    방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 현재의 송신 사이클은 상기 제 1 기간의 직전에 발생하는 시간 보호 주기를 포함하고, 상기 시간 보호 주기 중, 상기 MAC 컨트롤러에 있어서의 데이터 송신은 무효화되는 방법.
  8. 제 2 항 또는 제 5 항에 있어서,
    상기 제 2 데이터 패킷은, 상기 제 1 우선도의 송신 타임 슬롯의 종료 후의 상기 제 1 기간 중에, 상기 제 2 대기 큐로부터 상기 인터페이스 송신 큐로 전송되는 방법.
  9. 제 5 항에 있어서,
    상기 제 1 메타데이터는 상기 제 1 대기 큐로부터 상기 인터페이스 송신 큐로 전송되고, 상기 1개 또는 몇개의 제 1 데이터 패킷은, 상기 인터페이스 송신 큐 내의 상기 제 1 메타데이터에 근거하여, 상기 제 1 우선도의 송신 타임 슬롯의 개시 전의 제 1 소정의 시점 후의 상기 제 1 기간 중에, 상기 메모리로부터 상기 송신 큐로 전송되는 방법.
  10. 제 5 항에 있어서,
    상기 방법은, 상기 MAC 컨트롤러에 의한, 상기 제 1 우선도의 송신 타임 슬롯의 개시 전의 제 2 소정의 시점 후의 상기 제 1 기간 중의, 상기 송신 매체를 거친 상기 1개 또는 몇개의 제 1 데이터 패킷의 상기 송신을 유효화하는 것을 더 포함하는 방법.
  11. 제 9 항에 있어서,
    상기 방법은, 상기 제 1 소정의 시점 후의 상기 제 1 기간동안, 및, 제 1 우선도의 송신 타임 슬롯 중의 상기 MAC 컨트롤러에 의한 제 1 송신 우선도의 데이터 패킷의 상기 송신이 완료되어 있지 않는 동안, 상기 제 1 송신 우선도를 갖는 데이터 패킷의 상기 수신을 무효화하는 것을 더 포함하는 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 방법은, 상기 제 1 송신 우선도에 관련된 대응하는 제 1 데이터 패킷의 누적 사이즈에 대응하는 데이터량을, 제 1 우선도를 갖는 데이터 패킷의 송신 전용이고, 또한, 상기 제 1 기간 내에 포함되는 제 1 우선도의 송신 타임 슬롯 중에 송신할 수 있다는 판단에 근거하여, 상기 제 1 메타데이터를 상기 제 1 대기 큐에 추가하는 것을 더 포함하는 방법.
  13. 프로세서와, 상기 프로세서에 작동 가능하게 접속된 메모리와, 컴퓨터 네트워크 내에서 통신하는 네트워크 인터페이스를 구비하는 장치로서,
    청구항 1 내지 청구항 12 중 어느 한 항에 기재된, 데이터 패킷을 송신하는 방법을 실행하도록 구성되는 장치.
  14. 컴퓨터 판독 가능 매체 내에 유형적으로 구현되는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램 코드는, 컴퓨터에 제공되고 실행되면, 상기 컴퓨터가, 청구항 1 내지 청구항 12 중 어느 한 항에 기재된, 데이터 패킷을 송신하는 방법을 실행하게 하는 명령을 포함하는 컴퓨터 프로그램 제품.
  15. 예를 들면, 압축 또는 부호화를 통해, 청구항 14에 기재된 컴퓨터 프로그램을 표현하는 데이터 세트.
KR1020227008323A 2019-09-26 2020-07-07 데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치 KR20220045982A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19306207.2 2019-09-26
EP19306207.2A EP3799374A1 (en) 2019-09-26 2019-09-26 Method for transmitting data packets and apparatus for implementing the same
PCT/JP2020/027419 WO2021059683A1 (en) 2019-09-26 2020-07-07 Method for transmitting data packets and apparatus for implementing the same

Publications (1)

Publication Number Publication Date
KR20220045982A true KR20220045982A (ko) 2022-04-13

Family

ID=68289892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227008323A KR20220045982A (ko) 2019-09-26 2020-07-07 데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치

Country Status (7)

Country Link
US (1) US20220321493A1 (ko)
EP (1) EP3799374A1 (ko)
JP (1) JP7394986B2 (ko)
KR (1) KR20220045982A (ko)
CN (1) CN114424507A (ko)
TW (1) TWI794645B (ko)
WO (1) WO2021059683A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021006308T5 (de) * 2020-12-04 2023-09-14 Microchip Technology Incorporated Verarbeitung von daten auf höherer ebene in zeitempfindlichen datenblöcken an einer schnittstellenvorrichtung für die physikalische schicht
CN115395988A (zh) * 2021-05-25 2022-11-25 瑞昱半导体股份有限公司 蓝牙通信装置与数据传输方法
EP4106275A1 (en) * 2021-06-18 2022-12-21 Rohde & Schwarz GmbH & Co. KG Jitter determination method, jitter determination module, and packet-based data stream receiver
JP7420406B2 (ja) * 2022-06-03 2024-01-23 株式会社インタフェース Tsn通信システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1303870B1 (it) * 1998-11-25 2001-03-01 Italtel Spa Metodo e dispositivo per il multiplexing statistico in tecnicaweighted fair queuing (wfq) di flussi che convogliano traffico atm
SE516571C2 (sv) * 1999-03-12 2002-01-29 Ericsson Telefon Ab L M Förfarande för att åstadkomma förbättrad överföringseffektiviti ett mobilt paketdatakomunikationssystem
IT1319611B1 (it) * 2000-12-22 2003-10-20 Siemens Inf & Comm Networks Procedimento di schedulazione dei permessi di trasmissione dei dati apacchetto sui canali radio condivisi dalle stazioni mobili in sistemi
JP2004147275A (ja) * 2002-08-30 2004-05-20 Matsushita Electric Ind Co Ltd パケット送信スケジューリング方法および基地局装置
US20090262649A1 (en) * 2005-11-10 2009-10-22 Nxp B.V. Bus guardian with improved channel monitoring
US8081625B2 (en) * 2007-02-01 2011-12-20 Broadcom Corporation Method and system for utilizing a 10/100/1G/10G base-T PHY device for single channel and shared channel networks
US7826469B1 (en) * 2009-03-09 2010-11-02 Juniper Networks, Inc. Memory utilization in a priority queuing system of a network device
US9197576B2 (en) * 2010-11-15 2015-11-24 Rockwell Automation Technologies, Inc. Method and apparatus for allocating and prioritizing data transmission
CN103095607B (zh) * 2013-02-21 2015-07-29 南京磐能电力科技股份有限公司 一种实时优先级以太网控制器实现方法
US10454835B2 (en) * 2017-01-20 2019-10-22 Google Llc Device and method for scalable traffic shaping with a time-indexed data structure
US11805065B2 (en) * 2019-02-27 2023-10-31 Intel Corporation Scalable traffic management using one or more processor cores for multiple levels of quality of service

Also Published As

Publication number Publication date
TWI794645B (zh) 2023-03-01
JP2022537607A (ja) 2022-08-26
JP7394986B2 (ja) 2023-12-08
TW202114386A (zh) 2021-04-01
EP3799374A1 (en) 2021-03-31
CN114424507A (zh) 2022-04-29
US20220321493A1 (en) 2022-10-06
WO2021059683A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
KR20220045982A (ko) 데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치
CN110545152B (zh) 一种以太网中具有实时传输功能的上位机及以太网系统
KR20220042044A (ko) 시간 민감형 네트워킹을 위한 결정론적 패킷 스케줄링 및 dma
US7061866B2 (en) Metered packet flow for packet switched networks
US20200089525A1 (en) Switch device, switching method, and computer program product
EP2572480B1 (en) Method and apparatus for implementing non-blocking priority based flow control
EP3823229A1 (en) Programmable congestion control
US11336383B2 (en) Packet scheduling system with desired physical transmission time for packets
US10762013B2 (en) Driver for network timing systems
US10554568B2 (en) Technologies for network round-trip time estimation
US20220210078A1 (en) Method implemented by computer means of a communicating entity in a packet-switched network, and computer program and computer-readable non-transient recording medium thereof, and communicating entity of a packet-switched network
US9438537B2 (en) Method for cut through forwarding data packets between electronic communication devices
US9817784B2 (en) Multi-port transmitter device for transmitting at least partly redundant data, an associated control system, an associated method and an associated computer program product
US20140207948A1 (en) Network interface on a chip with an adaptive system to trigger data forwarding
US10812402B2 (en) Shaping of post-scheduling network pipeline jitter
US9603052B2 (en) Just in time packet body provision for wireless transmission
WO2006134537A1 (en) Methods and receives of data transmission using clock domains
US20230396555A1 (en) Split packet router for time sensitive networking
EP4068703B1 (en) Method and device for performing software-based switching functions in a local area network
CN114024916B (zh) 数据传输方法、装置、计算机可读存储介质及处理器
CN111385222B (zh) 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类
US20230171198A1 (en) Communication control device, information processing device, communication control method, and information processing method
US20230050776A1 (en) Mechanism to implement time stamp-based transmissions from an network interface device of a datacenter
WO2023123377A1 (zh) 一种调度网络流量的方法、装置以及系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right