KR101188210B1 - 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템 - Google Patents

선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템 Download PDF

Info

Publication number
KR101188210B1
KR101188210B1 KR1020100074918A KR20100074918A KR101188210B1 KR 101188210 B1 KR101188210 B1 KR 101188210B1 KR 1020100074918 A KR1020100074918 A KR 1020100074918A KR 20100074918 A KR20100074918 A KR 20100074918A KR 101188210 B1 KR101188210 B1 KR 101188210B1
Authority
KR
South Korea
Prior art keywords
frame
module
transmitted
data
ethernet
Prior art date
Application number
KR1020100074918A
Other languages
English (en)
Other versions
KR20120012875A (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 인하대학교 산학협력단
Priority to KR1020100074918A priority Critical patent/KR101188210B1/ko
Publication of KR20120012875A publication Critical patent/KR20120012875A/ko
Application granted granted Critical
Publication of KR101188210B1 publication Critical patent/KR101188210B1/ko

Links

Images

Classifications

    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Abstract

선점형 우선순위 스케줄렝에 의한 실시간 이더넷 농신 방법 및 이를 이용한 장치를 개시한다. 상기 본 발명의 선점형 우선순위 기반의 스케줄링 방법은 우선순위의 프레임을 전송중일 때 높은 우선순위 프레임 요청 시에 높은 우선순위의 프레임을 전송하는 방법에 있어서, 높은 우선순위의 프레임에 의하여 선점당하는 프레임을 전송중이던 바이트 단위의 데이타까지 전송하는 단계, 현재의 시퀀스 넘버(Sequence Number)와 잔여길이(Remain Length)를 전송하는 단계 및 선점당하는 우선순위 프레임의 시퀀스 넘버를 "1"씩 증가시키는 단계를 포함한다.

Description

선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템{Preemtive priority-based Ethernet data scheduling and The System using it}
본 발명은 이더넷(Ethernet) 통신망에 관한 발명으로써, 보다 상세하게는 전송되는 데이타의 중요도에 따른 우선순위를 부여하고, 우선순위에 따라 전송 순서를 정하는 선점형 우선순위 기반의 이더넷 데이타 스케쥴링 방법 및 이를 이용한 시스템에 관한 것이다.
이더넷 통신망은 1970년대에 발명된 통신 규약으로, CSMA/CD 방식을 채택하여 실시간 통신이 불가능한 구조이다. 그러나 근래에는 이더넷은 전이중 통신방식의 스위치드 이더넷이 개발되어 더 이상 CSMA/CD 방식과 같이 충돌에 의한 지연시간 및 재전송은 발생되지 않는다. 하지만, 스위치 허브는 FIFO 방식을 사용하기 때문에 프레임의 중요도에 상관없이 먼저 수신된 프레임을 먼저 송신하게 됨으로써, 송신되는 데이타의 중요도에 무관하게 선입선출 방식으로 전송된다. 이와 같은 문제를 해결하기 위해서 우선순위 스위치 이더넷이 개발되었다.
도 1은 종래의 일반적인 IEEE 802.1Q/p가 추가된 우선순위 이더넷 프레임 포맷을 나타낸 예시도이며, 도 2는 우선순위 스위치 이더넷의 스케쥴링을 나타낸 예시도이며, 도 3은 우선순위 블록킹에 의한 지연시간 발생을 나타낸 예시도이며, 도 4는 802.1Q/p 우선순위 메커니즘의 스케줄링을 나타낸 예시도이다.
도 1을 참조하면, 우선순위 스위치 이더넷(10)은 실시간 특성을 만족시키기 위하여 IEEE 802.3이더넷에 802.1Q/p Qos(10')가 추가된 프레임 포맷을 사용한다. 여기서, TPID는 802.1Q/p의 타입 번호이고, TDI는 priority, CFI, VLAN ID를 갖게 된다.
상기 Priority는 우선순위를 뜻하며, 0-7까지의 우선순위를 갖는다. 그리고 CFI는 이더넷일 경우 "1"을 표시하며, 토큰링일 경우는 "0"을 표시한다. 그리고 우선순위 스위치 내부에는 가상 LAN ID을 설정하여, 동일한 스위치 내부에서도 독립적인 LAN을 구성할 수 있다. 상기 VLAN ID는 스위치 허브 내에 존재하는 가상 LAN의 ID를 뜻한다.
각각 우선순위에 다른 프레임이 동시에 전송요청 되거나 전송 큐에 삽입되어 있다면, 우선순위가 더 높은 프레임을 먼저 전송하게 된다.
그리고 수신 노드에서는 각 우선순위마다 서로 다른 큐를 두어 먼저 수신된 프레임이 있더라도 우선순위가 높은 프레임을 먼저 처리하여 우선순위가 높은 프레임의 실시간성을 높인다.
예를 들어, 도 2 내지 도 4를 참조하면, 우선순위(Priority)가 7,6,0인 프레임이 동시에 전송 요청된다면, 우선순위에 의하여 우선순위 7인 프레임이 가장 먼저 전송된다. 그 뒤 우선순위 6인 프레임이 전송되고, 우선순위 0인 프레임이 마지막으로 전송된다.
IEEE 802.1Q/p의 우선순위 메커니즘을 사용할 경우 프레임 전송요청이 동시에 발생할 경우 높은 우선순위의 프레임이 먼저 전송하게 되어 실시간성을 보장한다.
하지만 낮은 우선순위의 프레임을 전송할 때, 더 높은 우선순위의 프레임이 전송 요청이 된다면 헤드 오브 라인(head-of-line) 문제에 의한 우선순위 블록킹이 발생한다.
또한, 우선순위 0인 프레임이 전송중일 때 높은 우선순위인 우선순위 7과 우선순위 6의 프레임이 우선순위 0에 의하여 전송지연된다.
또한, 낮은 우선순위의 프레임을 전송중일 때 높은 우선순위의 프레임이 전송요청된다면, 높은 우선순위의 프레임은 낮은 우선순위의 프레임에 의하여 전송 지연이 발생된다.
이와 같은 지연이 발생하게 된다면, 실시간 데이타의 전송에서 제한시간을 넘기게 될 확률이 높아져 실시간성이 떨어지며, 낮은 우선순위의 프레임 길이에 따른 불류칙적인 지연으로 인한 실시간 데이타의 지터(jitter) 발생률이 높아지는 문제가 발생한다.
따라서, 본 발명이 해결하고자 하는 과제는 IEEE 802.IQ를 이용한 스위치 이더넷에서 우선순위가 낮은 데이타의 의하여 우선순위가 높은 데이타의 전송이 지연되는 현상을 줄임으로써 전체적으로 실 시간성을 높일 수 있는 선점형 우선순위 기반의 이더넷 데이타 스케쥴링 방법 및 이를 이용한 시스템을 제공하고자 한다.
상기 과제를 해결하기 위한 본 발명의 선점형 우선순위 스케줄링에 의한 실시간 이더넷 통신방법은 낮은 우선순위의 프레임을 전송중일 때 높은 우선순위 프레임 요청 시에 높은 우선순위의 프레임을 전송하는 방법에 있어서, 높은 우선순위의 프레임에 의하여 선점당하는 프레임을 전송중이던 바이트 단위의 데이타까지 전송하는 단계, 현재의 시퀀스 넘버(Sequence Number)와 잔여길이(Remain Length)를 전송하는 단계 및 선점당하는 우선순위 프레임의 시퀀스 넘버를 1씩 증가시키는 단계를 포함한다.
상기 전송중인 프레임의 전송된 길이가 이더넷 프레임의 최소 길이보다 작을 경우, 전송중인 프레임을 드롭시키고, 상기 잔여길이나 시퀀스 넘버가 변화되어 전송되지 않으며, 남은 프레임의 길이가 이더넷 프레임의 최소길이 보다 작으면 나머지 길이는 "0"으로 채우게 되는 것을 특징으로 한다.
상기 과제를 해결하기 위한 본 발명의 선점형 우선순위 스케줄링에 의한 실시간 이더넷 통신 시스템은 메모리로부터 이더넷 코어에 필요한 데이타를 로드 또는 저장기능을 수행하는 인터페이스 모듈, 외부로부터 전송된 프레임의 프리엠블, SFD, padding, CRC를 덧붙여 이더넷 PHY 칩으로 프레임을 전송하는 전송 모듈, 상기 이더넷 PHY 칩으로부터 수신되는 프레임의 프리엠블을 제거하고, CRC 검사를 수행하는 수신모듈, 상기 이더넷 PHY 칩과 상기 인터페이스와의 연동이 가능하도록 수행하는 MII 모듈, 버퍼 디스크립터나 다른 모듈의 상태에 관련된 작업을 수행하는 상태 모듈 및 이더넷 맥 IP의 설정 값을 세팅하거나 상기 상태값과 관련된 작업을 수행하는 레지스터 모듈을 포함한다.
상기 전송 모듈은 전송된 프레임의 데이타 영역의 CRC를 계산하는 바이 투 니블(byte to nibble) 모듈, 전송중인 프레임에 충돌이 발생하였을 때, 백-오프(back-off) 시간에 의한 지연시간을 생성하는 랜덤 딜레이 모듈, 상기 전송중인 프레임의 전송된 니블 및 바이트 수를 측정하는 전송 카운터 모듈, 상기 인터페이스 모듈에서 메모리로부터 읽은 전송할 바이트 단위의 데이타를 니블 단위의 데이타로 나누어 이더넷 PHY 칩으로 전송하는 bye to nibble 모듈 및 상기 전송할 프레임에 프리엠블을 덧붙이고, 백오프(back-off)에 의한 지연 및 IFG 등의 프레임 전송의 흐름제어를 하는 전송 상태 모듈를 포함한다.
상기 전송모듈은 외부로부터 전송된 프레임 데이타에 시퀀스 넘버(Sequence Number)와 잔여 길이(Remain Length)를 데이타 맨 뒷부분에 덧 붙여 전송하는 것을 특징으로 한다.
본 발명의 실시 예에 따르면, 우선순위 기반의 실시간 스케쥴링 방식을 이용하는 802.1Q 프로토콜을 개선하여 낮은 우선 순위의 데이타에 의한 높은 우선순위의 데이타 전송이 방해되는 현상을 해결하여 높은 수준의 실시간성을 확보할 수 있는 효과가 있다.
또한, 높은 우선순위의 데이타 전송에 따라 중단된 낮은 우선순위의 데이타 전송을 재전송 없이 재개하여 통신망의 활용도를 높이고, 지연시간을 줄이는 효과가 있다.
또한, 공장자동화와 같이 고수준의 실시간성이 요구되는 환경에서 저렴한 이더넷 통신망을 이용할 수 있게 하여, 경제성을 확보할 수 있는 효과가 있다.
도 1은 종래의 일반적인 IEEE 802.1Q/p가 추가된 우선순위 이더넷 프레임 포맷을 나타낸 예시도이다.
도 2는 우선순위 스위치 이더넷의 스케쥴링을 나타낸 예시도이다.
도 3은 우선순위 블록킹에 의한 지연시간 발생을 나타낸 예시도이다.
도 4는 802.1Q/p 우선순위 메커니즘의 스케줄링을 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 선점형 우선순위 기반의 스케줄링에 의한 실시간 이더넷 통신 시스템을 나타낸 블럭도이다.
도 6은 도 5에 도시된 인터페이스 모듈의 전송부 구조를 나타낸 예시도이다.
도 7은 도 5에 도시된 전송 모듈을 구체적으로 나타낸 블럭도이다.
도 8은 본 발명의 실시 예에 따른 전송 프레임 포멧을 나타낸 예시도이다.
도 9는 본 발명의 실시 예에 따른 EP-이더넷 우선순위 메커니즘의 스케줄링을 나타낸 예시도이다.
도 10은 본 발명의 실시 예에 따른 데이타 전송 상태의 천이도를 나타낸 예시도이다.
도 11은 본 발명의 실시 예에 따른 전송모듈 내의 우선 순위 감지 모듈을 나타낸 예시도이다.
도 12는 PNRT 시점에 비실시간 프레임의 전송이 요청되어 프레임을 전송 중일 때, 실시간 프레임이 PRT 시점에 발생할 경우 802.1Q/p에서의 타이밍을 나타낸 타이밍도이다.
도 13은 PNRT 시점에 비실시간 프레임의 전송이 요청되어 프레임을 전송 중일 때, 실시간 프레임이 PRT 시점에 발생할 경우 EP-Ethernet에서의 타이밍을 나타낸 타이밍도이다.
도 14는 NRT 프레임이 없을 때의 802.1Q/p의 Latency를 나타낸 그래프이며,
도 15은 NRT 프레임이 없을 때의 802.1Q/p의 주기를 나타낸 그래프이다.
도 16은 비실시간 프레임이 생성 될 때의 802.1Q/p의 지연시간을 나타낸 그래프이다.
도 17은 비실시간 프레임이 생성 될 때의 802.1Q/p의 주기를 나타낸 그래프이다.
도 18은 비실시간 프레임이 생성될 때의 802.1Q/p의 지연시간을 나타낸 그래프이다.
도 19는 비실시간 프레임이 생성될 때의 802.1Q/p의 주기를 나타낸 그래프이다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 더욱 상세히 설명한다. 본 발명에 첨부된 도면은 설명의 편의를 위한 것이며, 그 형상과 상대적인 척도는 과장되거나 생략될 수도 있다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 5는 본 발명의 실시 예에 따른 선점형 우선순위 기반의 스케줄링에 의한 실시간 이더넷 통신 시스템을 나타낸 블럭도이다.
도 5에 도시된 바와같이, 본 발명의 시스템(10)은 인터페이스 모듈(WISHBONE Interface Module: 20), 레지스터 모듈(Resistor Module: 30), 수신모듈(RxEthMAC Module: 40), 상태모듈(MAC Status Module: 50), MII 모듈(Media Independent Interface Module: 60), 제어 모듈(MAC Control Module: 70) 및 전송모듈(TxEthMAC Module: 80)을 포함할 수 있다.
상기 인터페이스 모듈(WISHBONE Interface Module: 20)은 마스터 인터페이스 모듈 및 슬레이브 인터페이스 모듈을 포함할 수 있으며, 메모리로부터 이더넷 코어에 필요한 데이타를 로드하거나 저장할 때 이용된다.
상기 전송 모듈(TxEthMAC Module: 80)은 프레임의 프리엠블, SFD, Padding, CRC를 덧붙여 파이(PHY) 칩으로 프레임을 전송할 때 이용된다.
상기 수신 모듈(RxEthMAC Module: 40)은 이더넷 PHY 칩으로부터 수신된느 프레임의 프리엠블을 제거하고, CRC 검사를 하는 모듈일 수 있다.
상기 제어 모듈(MAC Control Module: 70)은 전이중 방식에서 흐름 제어와 관련된 작업을 하는 모듈일 수 있다.
상기 MII 모듈(Media Independent Interface Module: 60)은 이더넷 파이(PHY) 칩의 종류와 상관없이 파이(PHY) 칩과 인터페이스가 가능하도록 유도하는 모듈일 수 있다.
상기 상태 모듈(MAC Status Module: 50)은 버퍼 디스크립터나 다른 모듈의 상태에 관련된 작업을 할 때 사용되는 모듈일 수 있다.
상기 레지스터 모듈(Resistor Module: 30)은 이더넷 MAC IP의 설정 값을 셋팅하거나 상태 값과 관련된 작업을 수행하는 모듈일 수 있다.
도 6은 도 1에 도시된 인터페이스 모듈의 전송부 구조를 나타낸 예시도이다.
도 6을 참조하면, 상기 인터페이스 모듈(WISHBONE Interface Module: 20)은 휘쉬본 마스터 인터페이스 및 휘쉬본 슬레이브 인터페이스을 포함할 수 있으며, 버퍼 디스크립터 관리와 버퍼 디스크립터에 의한 메모리로의 데이타 읽기 쓰기 부분으로 나누어질 수 있다.
상기 슬레이브 인터페이스는 다수의 송수신 버퍼 디스크립터를 포함하며, 상기 각 송수신 버퍼 디스크립터의 값을 셋팅하거나 상태를 체크하기 위한 역할을 한다.
상기 마스터 인터페이스는 메모리로부터 전송할 프레임의 데이타를 읽어오거나, 수신된 프레임의 데이타를 저장할 때 사용된다.
여기서, 마스터 인터페이스와 슬레이브의 인터페이스는 버스를 통해 정의될 수 있다.
상기 마스터 인터페이스는 버스 사이클을 생성하여 슬레이브의 데이타를 읽고, 쓰는 작업을 하는 인터페이스일 수 있다.
상기 슬레이브 인터페이스는 버스 사이클에 따른 데이타를 작업하는 인터페이스일 수 있다.
상기 슬레이브 인터페이스는 각 버퍼 디스크립터를 관리한다. 각 버퍼 디스크립터는 BDRAM(Buffer Descriptor RAM)에 저장되어있으며, BDRAM으로의 접근은 BDRAM 억세스 아비터(BDRAM Access Arbiter)를 통하여 슬레이브 인터페이스와 전송 버퍼 디스크립터 관리 모듈과 수신 버퍼 디스크립터 관리 모듈사이의 BDRAM 접근을 스케줄링 한다.
상기 전송 버퍼 디스크립터 관리 모듈은 BDRAM에 저장된 전송 버퍼 디스크립터에 Ready 비트의 셋팅을 확인한다. Ready 비트가 셋팅되어 있다면 TxReady, TxStatus, TxLength, TxPointer를 래칭하여 전송할 데이타의 정보를 저장한다.
여기서 TxReady는 전송 버퍼 디스크립터의 준비 여부이고, TxStatus는 전송할 데이타의 상태 여부이고, TxLength는 전송할 데이타의 길이 여부이고, TxPointer는 전송할 데이타의 메모리 위치 여부를 표기한다.
전송모듈(80)로의 전송할 데이타를 모두 전송하였을 경우, TxStatusWrite이 인에이블되어 전송 상태를 버퍼 디스크립터로 저장한다. 각 정보를 저장한 후, TxBDAddress를 증가시켜 다음 전송 버퍼 디스크립터의 정보를 읽어올 수 있도록 업데이트 한다.
수신 버퍼 디스크립터 관리 모듈은 BDRAM에 저장 된 수신 버퍼 디스크립터에 Ready 비트의 셋팅을 확인한다. Ready 비트가 셋팅되어 있다면 RxReady, RxStatus, RxPointer를 래칭하여 전송할 데이타의 정보를 저장한다. 여기서 RxReady는 수신 버퍼 디스크립터의 준비 여부이고, RxStatus는 수신할 데이타의 상태, RxPointer는 수신할 데이타가 저장될 메모리 위치를 표기한다.
수신모듈로의 전송할 데이타를 모두 수신하였을 경우, RxStatusWrite이 인에이블되어 전송 상태를 버퍼 디스크립터로 저장한다. 각 정보를 저장한 후, RxBDAddress를 증가시켜 다음 수신 버퍼 디스크립터의 정보를 읽어올 수 있도록 업데이트 한다.
상기 마스터 인터페이스는 슬레이브 인터페이스를 통해 셋팅된 송수신 버퍼 디스크립터 관리 모듈의 데이타를 이용하여 메모리로 접근하는 인터페이스일 수 있다.
각 인터페이스에서 송신 및 수신 메모리 관리 모듈은 외부 메모리 아비터(External Memory Arbiter)에 의해 마스터 인터페이스의 접근을 스케줄링 한다.
송신 버퍼 디스크립터 관리 모듈에서 TxReady 신호가 인에이블되면, TxPointer를 통해 전송할 데이타의 위치를 파악한다. 전송할 데이타를 4-바이트 단위로 읽어 TxFifo로 저장한다.
상기 TxFifo에 데이타가 모두 저장되거나, 전송할 데이타가 모두 읽혀지게 되면, TxStartFrm 신호가 인에이블되어 전송모듈이 인터페이스로부터 데이타를 읽어 전송한다.
메모리부터 데이타 로드가 완료되어 TxLength가 "0"이 되고 TxFifo에 저장된 데이타가 모두 전송되었다면, TxEndFrm 신호를 인에이블하여 전송 모듈에 더 이상 전송할 데이타가 없음을 알린다.
TxEndFrm 신호를 인에이블하여 전송을 마치게 되면, TxStatusWrite 신호를 인에이블 하여 전송 상태 데이타를 송신 버퍼 디스크립터에 저장하여 송신을 마친다.
수신 버퍼 디스크립터 관리 모듈에서 RxReady 신호가 인에이블(인에이블) 되면, RxPointer를 통해 수신되는 데이타가 저장될 주소를 파악하며, 수신 가능 상태가 된다. RxStartFrm 신호가 수신 모듈로부터 인에이블 되면, 데이타 전송이 시작되었음을 파악하고, RxFifo에 수신되는 데이타를 저장한다. RxFifo에 수신된 데이타가 남아있으면, WriteRxDataToMemory 신호가 인에이블 되어 RxFifo로부터 데이타를 읽어 메모리에 데이타를 쓰게 된다.
수신 모듈로부터 RxEndFrm 신호를 수신받아 데이타 전송이 끝났음을 알게 되면, RxFifo의 데이타를 모두 메모리에 저장한 뒤 RxStatusWrite 신호가 인에이블 된다. RxStatusWrite 신호가 인에이블되면, 수신 버퍼 디스크립터 모듈은 RxLength 및 상태 데이타를 수신 버퍼 디스크립터에 저장하여 수신을 마친다.
참고로, 상기 인터페이스 모듈(20) 내의 모든 신호는 마스터와 슬레이브 사이에 조합이 가능하며, 아래 기재된 [표1]를 참조하면, 공통신호, 데이타 신호, 버스 사이클 신호의 세 그룹으로 나타낼 수 있다.

공통 신호

데이타 신호

버스 사이클 신호

CLK_I

DAT_I/O

ACK_I/O

RST_I

ADR_I/O

TAG_I/O

CYC_I/O

ERR_I/O

SEL_I/O

RTY_I/O

STB_I/O

WE_I/O
표 1을 참조하면, 상기 공통 신호는 클럭(CLK) 및 리셋 신호(RST) 등의 마스터 인터페이스와 슬레이브 인터페이스에 공통적으로 사용되는 신호이다. 데이타 신호는 데이타의 입출력 전송을 위해 사용되는 신호이고, 버스 사이클 신호는 데이타 읽기, 쓰기 시에 슬레이브 및 마스터의 타이밍을 알려주는데 사용되는 신호일 수 있다.
상기 버퍼 디스크립터는 인터페이스 모듈(20) 내의 BDRAM(Buffer Descriptor RAM)에 포함되며, 상기 버퍼 디스크립터는 송신 버퍼 디스크립터 및 수신 버퍼 디스크립터로 구성될 수 있다.
상기 전송 버퍼 디스크립터의 수는 레지스터 모듈에 기반하여 정해질 수 있다.
또한, 송수신 버퍼 디스크립터들 각각은 포인터(Pointer) 부분과 제어(Ctrl) & 상태(Status) 부분으로 나누어 질 수 있다. 상기 포인터(Pointer) 부분은 전송할 프레임이 저장된 메모리의 베이스(Base) 어드레스 또는 수신할 프레임을 저장하는 공간일 수 있다. 그리고 다수의 송수신 버퍼 디스크립터들 각각은 개별적인 제어(Ctrl) & 상태(Status)를 갖는다.
다수의 전송 버퍼 디스크립터들 각각의 경우 LEN, RD, IRQ, PAD, CRC, RL의 제어부분과 UR, RTRY, LC, DF, CS의 상태 부분으로 나누어질 수 있다.
이름 모드 기 능

LEN

R/W
Frame Length
전송할 프레임의 총 바이트 수

RD

R/W
Tx BD Ready
0 : 전송할 프레임이 준비되어 있지 않았음
1 : 전송할 프레임이 준비되어 있고, 버퍼 디스크립터의 셋팅이 끝났음

IRQ

R/W
Interrupt Request 인에이블
0 : 프레임의 전송이 끝나도 인터럽트 발생하지 않음
1 : 프레임의 전송이 끝나면 인터럽트를 발생시킴

WR

R/W
Wrap
0 : 현재의 전송 버퍼 디스크립터가 마지막이 아님
1 : 현재의 전송 버퍼 디스크립터가 마지막임


PAD


R/W
PAD 인에이블
0 : 이더넷 프레임의 최소 길이 보다 작아도 패드를 덧붙이지 않음
1 : 이더넷 프레임의 최소 길이 보다 작으면 패드를 덧붙임

CRC

R/W
CRC 인에이블
0 : 프레임 전송 시 CRC를 덧붙이지 않음
1 : 프레임 전송 시 CRC를 덧붙임

UR

R/W
Underrun
프레임 전송 중에 underrun 에러 발생시 1로 표시됨

RTRY

R/W
Retry Count
프레임 전송이 완료 될 때까지의 재전송 횟수가 표시됨

RL

R/W
Retransmission Limit
데이타 전송시 충돌에 의하여 재전송할 최대 횟수

LC

R/W
Late Collsion
설정한 Collision Window 외부에서 충돌 발생시 1로 표시됨

DF

R/W
Defer Indication
프레임의 전송전에 전송 매체가 Busy 상태로 있어 전송이 지연될 때 1로 표시됨

CS

R/W
Carrier Sense Lost
프레임 전송 중에 Carrier Sense가 되지 않을 때 1로 표시됨
상기 LEN은 전송할 프레임의 총 바이트 수를 나타내며, 상기 RD는 "0"일 경우, 전송할 프레임이 준비되어 있지 않았음을, "1"일 경우 전송할 프레임이 준비되어 있고, 버퍼 디스크립터의 셋팅이 끝났음을 나타낸다.
상기 IRQ는 "0"일 경우, 프레임의 전송이 끝나도 인터럽트가 발생하지 않음을 나타내며, "1"일 경우, 프레임의 전송이 끝나면 인터럽트를 발생시키는 것을 나타낸다.
상기 WR은 "0"일 경우, 현재의 전송 버퍼 디스크립터가 마지막이 아님을 나타내며, "1"일 경우, 현재의 전송 버퍼 디스크립터가 마지막임을 나타낸다.
상기 PAD는 "0"일 경우, 이더넷 프레임의 최소 길이 보다 작아도 패드를 덧붙이지 않음을 나타내며, "1"일 경우, 이더넷 프레임의 최소 길이 보다 작으면 패드를 덧붙이는 것을 나타낸다.
CRC는 "0"일 경우, 프레임 전송시 CRC를 덧붙이지 않음을 나타내며, "1"일 경우, 프레임 전송시 CRC를 덧붙이는 것을 나타낸다.
상기 UR은 프레임 전송이 완료 될 때 까지의 재전송 횟수가 표시됨을 나타낸다.
상기 RL은 데이타 전송시 충돌에 의하여 재전송할 최대 횟수를 나타낸다.
상기 DF(Defer Indicaion)은 프레임의 전송전에 전송 매체가 비지(Busy) 상태로 있어 전송이 지연될 때 1로 표시됨을 나타낸다.
상기 CS(Carrier Sense Lost)는 프레임 전송 중에 케리어 센스가 되지 않을 때 "1"로 표시됨을 나타낸다.
다수의 수신 버퍼 디스크립터들 각각의 경우 제어부분(LEN, RD, IRQ)과 상태 부분(CF, M, OR, IS, DN, TL, SF, CRC, LC)으로 나누어질 수 있다.

이 름

모 드

기 능

LEN

R/W
Frame Length
수신된 프레임의 총 바이트 수

RD

R/W
Rx BD Ready
0 : 프레임을 수신한 준비되어 있지 않았음
1 : 프레임을 수신한 준비되어 있지 않았음

IRQ

R/W
Interrupt Request 인에이블
0 : 프레임의 수신이 끝나도 인터럽트 발생하지 않음
1 : 프레임의 수신이 끝나면 인터럽트를 발생시킴

WR

R/W
Wrap
0 : 현재의 수신 버퍼 디스크립터가 마지막이 아님
1 : 현재의 수신 버퍼 디스크립터가 마지막임

CF

R/W
Control Frame
0 : 일반 데이타 프레임이 수신됨
1 : 제어 프레임이 수신됨

M

R/W
Miss
0 : 어드레스가 알맞기 때문에 수신됨
1 : Promiscuous 모드이기 때문에 수신됨

OR

R/W
Overrun
프레임의 수신 시 overrun 에러가 발생하여 1로 표시됨

IS

R/W
Invalid Symbol
이더넷 PHY 칩으로부터 잘못된 신호가 수신됨

DN

R/W
Dribble Nibble
수신된 데이타의 크기가 바이트 단위가 아닌 수신이 이루어졌음

TL

R/W
Too Long
수신된 데이타가 이더넷 프레임의 최대 길이보다 클 때 1로 표시됨

SF

R/W
Short Frame
수신된 데이타가 이더넷 프레임의 최소 길이보다 작을 때 1 로 표시됨

CRC

R/W
Rx CRC Error
수신된 프레임에서 CRC 오류가 발생되었을 때 1로 표시됨

LC

R/W
Late Collision
프레임 수신시 Collision Window 외부에서 충돌 발생 시 1로 표시됨
상기 LEN은 수신된 프레임의 총 바이트 수를 나타내며, 상기 RD는 "0"일 경우, 프레임을 수신한 준비되어 있지 않음을 나타내며, "1"일 경우, 프레임을 수신한 준비되어 있지 않았음을 나타낸다.
상기 IRQ(Interrupt Request 인에이블)는 "0"일 경우, 프레임의 수신이 끝나도 인터럽트 발생하지 않음을 나타내며, "1"일 경우, 프레임의 수신이 끝나면 인터럽트를 발생시킴을 나타낸다.
상기 WR(Wrap)은 "0"일 경우, 현재의 수신 버퍼 디스크립터가 마지막이 아님을 나타내며, "1"일 경우, 현재의 전송 버퍼 디스크립터가 마지막임을 나타낸다.
상기 CF(Control Frame)은 "0"일 경우, 일반 데이타 프레임이 수신됨을 나타내며, "1"일 경우, 제어 프레임이 수신됨을 나타낸다.
상기 M(Miss)은 "0"일 경우, 어드레스가 알맞기 때문에 수신됨을 나타내며, "1"일 경우, Promiscuous 모드이기 때문에 수신됨을 나타낸다.
상기 OR(Overrun)은 프레임의 수신 시 overrun 에러가 발생하여 1로 표시됨을 나타낸다.
상기 IS(Invalid Symbol)은 이더넷 PHY 칩으로부터 잘못된 신호가 수신됨을 나타낸다.
상기 DN(Dribble Nibble)은 수신된 데이타의 크기가 바이트 단위가 아닌 수신이 이루어졌음을 나타낸다.
상기 TL(Too Long)은 수신된 데이타가 이더넷 프레임의 최대 길이보다 클 때 "1" 로 표시됨을 나타낸다.
상기 SF(Short Frame)은 수신된 데이타가 이더넷 프레임의 최소길이 보다 작을 때 "1"로 표시됨을 나타낸다.
상기 CRC(Rx CRC Error)는 수신된 프레임에서 CRC 오류가 발생되었을 때 "1"로 표시됨을 나타낸다.
상기LC(Late Collsion)는 프레임 수신시 Collision Window 외부에서 충돌 발생시 "1"로 표시됨을 나타낸다.
도 7은 도 5에 도시된 전송 모듈을 구체적으로 나타낸 블럭도이다.
도 7에 도시된 바와같이, 전송모듈(80)은 Byte To Nibble 모듈, Tx State Machine 모듈, Tx Counter 모듈, Random Delay 모듈, CRC Generator 모듈을 포함할 수 있다.
상기 CRC Generator 모듈은 전송된 프레임의 데이터 영역의 CRC를 계산하는 기능을 한다.
상기 Random Delay 모듈은 전송 중인 프레임에 충돌이 발생하였을 때, Back-off 시간에 의한 지연시간을 생성하는 역할을 한다.
상기 Tx Counter 모듈은 전송중인 프레임의 전송된 니블 및 바이트 수를 측정하는 역할을 한다.
상기 Byte To Nibble 모듈은 인터페이스 모듈에서 메모리로부터 읽은 전송할 바이트 단위의 데이타를 니블단위의 데이타로 나누어 이더넷 PHY 칩으로 전송하는 역할을 한다.
상기 Tx State Machine 모듈은 전송할 프레임에 프리엠블을 덧붙이고, Backoff에 의한 지연 및 IFG 등의 프레임 전송의 흐름제어를 하는 역할을 한다.
도 8은 본 발명의 실시 예에 따른 전송 프레임 포멧을 나타낸 예시도이며, 도 9는 본 발명의 실시 예에 따른 EP-이더넷 우선순위 메커니즘의 스케줄링을 나타낸 예시도이다.
도 8 및 도 9에 도시된 바와같이, 본 발명은 기존 프레임에 시퀀스 넘버(Sequence Number)와 잔여 길이(Remain Length)라는 새로운 요소를 추가하였다.
상기 시퀀스 넘버(Sequence Number)는 해당 프레임이 높은 우선순위의 프레임에 의하여 프레임 전송권한을 선점당해 전송을 멈추는 횟수를 의미한다.
상기 잔여 길이(Remain Length)는 전송할 프레임의 데이타 부분의 총 크기에서 현재까지 남은 데이타의 크기를 나타낸다.
높은 우선순위의 프레임에 의하여 선점당하는 프레임은 전송중이던 바이트 단위의 데이타까지 전송 후, 현재의 시퀀스 넘버와 잔여 길이를 전송한다.
그리고, 선점당하는 우선순위 프레임의 시퀀스 넘버를 "1"씩 증가시킨다.
전송중인 프레임의 전송된 길이가 이더넷 프레임의 최소 길이보다 작다면, 전송중인 프레임을 드롭시키고, 이때, 상기 잔여 길이나 상기 시퀀스 넘버는 변화되거나 전송되지 않는다.
그리고, 남은 프레임이 길이가 이더넷 프레임의 최소길이보다 작으면 나머지 길이는 "0"으로 채우게 된다.
기존의 우선순위 메커니즘의 경우, 우선순위 "0"인 프레임이 전송 중일 때 높은 우선순위인 우선순위 7과 우선순위 6의 프레임이 우선순위 "0"에 의하여 전송지연이 발생하게 된다.
하지만, 본 발명의 우선순위 메커니즘을 사용하면 낮은 우선순위 "0"에 의하여 전송지연이 발생하던 우선순위 7과 우선순위 6의 프레임이 IFG(Inter Frame Gap) 만큼의 전송지연만 발생하고 더 이상의 전송지연이 발생하지 않게 된다.
도 10은 본 발명의 실시 예에 따른 데이타 전송 상태의 천이도를 나타낸 예시도이다.
도 10에 도시된 바와같이, 낮은 우선순위 전송 시 높은 우선 순위 프레임이 전송되면, TxEndFrm 신호가 전송되고, 상기 TxEndFrm 신호를 받은 전송 모듈은 시퀀스 넘버와 잔연길이(Remain Length)를 데이타 맨 뒷부분에 덧붙여 전송하게 된다.
그리고 HigerprioTxBD_Occured 신호를 받은 전송 모듈은 지연 상태로 진입하여 IPG(Inter Paket Gap) 만큼의 지연 후 새로운 프레임을 전송하게 된다.
여기서, 잔여길이(Remain Length)와 시퀀스 넘버(Sequence Number)는 EP-이더넷에서 가장 중요한 요소이다.
보다 구체적으로, 상기 잔여 길이(Remain Length)가 없다면 수신 측에서 전송받을 프레임이 얼마나 남아 있는지 알 수 없다. 또한, 상기 일련 번호가 없다면, 전송받은 프레임의 오류가 발생할 가능성이 크다.
그러므로 전송중인 프레임이 더 높은 우선순위의 프레임에 의하여 전송이 중단되었을 때, 전송중인 프레임에 대한 정보를 가지고 있어야 한다. 해당하는 우선순위의 프레임이 전송 중단이 되었을 때 해당 우선순위 일련 번호를 증가시키고, 현재까지 전송된 프레임의 길이를 해당 우선순위에 해당하는 곳에 저장한다.
그리고 TxBD_Prio 신호에 해당하는 시퀀스 넘버(Sequence Number)와 잔여길이(Remain Length)를 출력하여 전송모듈에서 해당 신호를 프레임에 덧붙여 전송할 수 있게 된다.
도 11은 본 발명의 실시 예에 따른 전송모듈 내의 우선 순위 감지 모듈을 나타낸 예시도이다.
도 10 및 도 11을 참조하면, 전송 버퍼 디스크립터에서 현재 대기 중인 최상위 우선순위 번호를 출력한다. 최상위 우선순위가 현재 전송중인 프레임보다 우선순위가 높다면 HigerprioTxBD_Occured 신호가 인에이블된다.
상기 HigerprioTxBD_Occured 신호가 인에이블되면, TxBDReady 신호가 디스에이블되어 현재 전송중인 프레임의 전송은 중단된다.
그리고, HighestPrio_TxBD 신호에 대하여 TxBDPrio, TxBDReady, TxBDPointer, TxBDStatus, LatchedTxLength를 업데이트한다.
여기서 TxBDPrio는 전송중인 프레임의 우선순위이고, TxBDReady는 프레임의 전송을 위한 버퍼 디스크립터의 준비가 완료되었음을 의미하며, TxBDStatus는 전송 프레임의 상태, LatchedTxLength는 전송할 프레임의 총 길이를 의미한다.
HigerprioTxBD_Occured 신호가 인에이블되면 또한 TxFifoClear 신호가 인에이블되어 메모리로 읽혀져 TxFio에 저장된 데이타를 모두 드랍시킨다. 그리고, TxEndFrm을 인에이블시켜 전송모듈로 데이타 전송이 끝났음을 알린다. 그리고 TxByteCnt에서 전송모듈로 전송한 데이타의 길이를 카운트하여, 전송 프레임 정보 저장부에서 시퀀스 넘버와 잔여길이를 관리할 수 있다.
이하에서는 본 발명의 EP-이더넷 컨트롤러가 탑재된 FPGA와 PC와의 통신을 통한 시험 과정을 통해 성능 평가를 나타내도록 한다.
성능평가에서는 아래에 기재된 표 4를 참조하여, FPGA 보드에서 PC로 실시간 프레임과 비실시간 프레임을 주기적으로 전송한다. 실시간 프레임의 전송시간과 ACK 수신 시간을 측정하여 전송 주기와 지연시간을 계산하여 성능을 평가한다. 여기서 실시간 프레임은 100bytes의 프레임으로 10ms 주기로 전송하고, 비실시간 프레임은 100bytes에서 1500bytes의 랜점 크기의 프레임을 랜덤 시간으로 전송한다.
Real - Time Non Real - Time

시험1
(802.1Q/p
without NRT )

주기

10ms
-

크기

100bytes
-

시험2
(802.1Q/p)

주기

10ms

1-20ms

크기

100bytes

100-1500bytes

시험3
( EP - Ethernet )

주기

10ms

1-20ms

크기

100bytes

100-1500bytes
도 12는 PNRT 시점에 비실시간 프레임의 전송이 요청되어 프레임을 전송 중일 때, 실시간 프레임이 PRT 시점에 발생할 경우 802.1Q/p에서의 타이밍을 나타낸 타이밍도이다.
아래의 그림은 PNRT 시점에 비실시간 프레임의 전송이 요청되어 프레임을 전송 중일 때, 실시간 프레임이 PRT 시점에 발생할 경우 802.1Q/p에서의 타이밍을 나타낸다.
[수학식 1]
Figure 112010050073033-pat00001
도 12 및 수학식 1을 참조하면, 여기서 TBlocking은 우선순위 블록킹에 의해 지연되는 시간이고, TIFG는 이더넷 프레임 사이의 간격, TInternal - tx는 데이타 전송 시 노드 내부에서 지연되는 시간, Tprop은 Propagation Delay, TInternal - rx는 데이타 수신시 노드 내부에서 지연되는 시간, TRT는 실시간 데이타 전송에 걸리는 시간, Tack는 ACK 전송에 걸리는 시간을 뜻한다.
여기서 Tblocking은 우선순위 블록킹에 의한 지연시간이므로 아래와 같은 지연시간을 갖는다.
[수학식 2]
Figure 112010050073033-pat00002
Figure 112010050073033-pat00003
else
Figure 112010050073033-pat00004
상기 수학식 1과 수학식 2를 통해서, 총 지연시간은 아래의 식과 같이 도출될 수 있다.
[수학식 3]
Figure 112010050073033-pat00005
Figure 112010050073033-pat00006
Figure 112010050073033-pat00007
else
Figure 112010050073033-pat00008
위의 식을 보면 예측 불가능한 시점에 비 실시간 데이타의 크기에 의하여 전송의 지연시간이 변화함을 알 수 있다.
도 13은 PNRT 시점에 비실시간 프레임의 전송이 요청되어 프레임을 전송 중일 때, 실시간 프레임이 PRT 시점에 발생할 경우 EP-Ethernet에서의 타이밍을 나타낸 타이밍도이다.
[수학식 4]
Figure 112010050073033-pat00009

도 13 및 수학식 4를 참조하면, Toverhead는 우선순위 블록킹 방지를 위해 프레임에 추가된, 시퀀스 넘버(Sequence Number)와 잔여 길이(Remain Length)에 의하여 지연되는 시간으로 항상 일정한 값을 나타낸다.
802.1Q/p
without NRT
802.1Q/p EP - Ethernet
Latency
(μs)
주기
( ms )
Latency
(μs)
주기
( ms )
Latency
(μs)
주기
( ms )

최대값

152.26

10.03

244.72

10.13

166.96

10.13

최소값

113.44

9.97

115.76

9.88

111.08

9.94

평균

131.92

10.00

145.04

10.00

132.53

10.00

표준편차

7.48

0.01

21.33

0.04

10.17

0.02
상기 시험을 통해 상기 표 5와 같은 지연(Latency)과 주기가 측정됨을 알 수 있다.
도 14는 NRT 프레임이 없을 때의 802.1Q/p의 Latency를 나타낸 그래프이며, 도 15은 NRT 프레임이 없을 때의 802.1Q/p의 주기를 나타낸 그래프이다.
도 14 및 도 15를 참조하면, 본 시험에서는 802.1Q/p를 이용하여 100bytes의 실시간 프레임을 10ms 주기로 전송하고, 다른 프레임의 전송을 하지 않음으로써, 기존의 802.1Q/p에서 비실시간 프레임의 영향을 받지 않았을 때의 지연(Latency) 및 ACK 수신 주기를 측정하였다.
여기서 상기 수학식 1을 이용한다면, 100bytes의 Data와 64bytes의 ACK를 100Mbps 이더넷에서 송수신 하였으므로, TRT는 8us 이고, Tack 는 5.12us, TIFG는 1.2us 가 된다.
여기서 Tlatency는 131.92us 가 측정되었고, 비실시간 프레임의 생성을 하지 않았기 때문에 Tblocking은 0가 될 것이다. 그리하여 Tlatency - TRT - Tack - TIFG는 117.6us가 될 것이다. 이를 통하여 아래의 수학식 5를 구할 수 있다.
[수학식 5]
Figure 112010050073033-pat00010

도 16은 비실시간 프레임이 생성될 때의 802.1Q/p의 지연시간을 나타낸 그래프이며, 도 17은 비실시간 프레임이 생성될 때의 802.1Q/p의 주기를 나타낸 그래프이다.
도 16 및 도 17을 참조하면, 본 시험에서는 802.1Q/p를 이용하여 100bytes의 실시간 프레임을 10ms 주기로 전송하고, 비실시간 프레임을 100bytes에서 이더넷 프레임의 최대 크기인 1500bytes를 랜덤한 크기로 1-20ms의 랜덤한 주기로 전송하여 802.1Q/p가 비실시간 프레임에 의하여 받는 영향을 측정하였다.
최악의 경우 비실시간 프레임의 1499bytes의 Tblocking이 발생하므로 100Mbps 이더넷에서 Tblocking의 최대값은 120us가 발생하게 될 것이다. 측정결과 지연시간(Latency)의 최대값인 244.72us는 NRT 프레임이 없을 때의 Latency 평균값보다 110.80us의 추가 지연시간이 발생하였다.
그러므로 시험 결과는 예상결과와 유사하게 측정되었음을 알 수 있다.
도 18은 비실시간 프레임이 생성될 때의 802.1Q/p의 지연시간을 나타낸 그래프이며, 도 19은 비실시간 프레임이 생성될 때의 802.1Q/p의 주기를 나타낸 그래프이다.
도 18 및 도 19를 참조하면, 본 시험에서는 EP-이더넷을 이용하여 100bytes의 실시간 프레임을 10ms 주기로 전송하고, 비실시간 프레임을 100bytes에서 이더넷 프레임의 최대 크기인 1500bytes를 랜덤한 크기로 1-20ms의 랜덤한 주기로 전송하여 EP-이더넷이 비실시간 프레임에 의하여 받는 영향을 측정하였다.
위의 시험 결과 비실시간 프레임이 발생하지 않던 802.1Q/p와 유사한 데이타 값을 얻은 것으로 나타남을 알 수 있다.
그러므로 EP-Ethernet 은 비실시간 프레임에 의한 실시간 프레임의 영향의 거의 없는 것을 확인됨을 알 수 있다.
따라서, 본 발명은 IEC 61850의 실시간성을 제약하는 요소인 우선순위 블록킹을 해결하기 위하여 EP-이더넷을 제안하고, EP-Ethernet 컨트롤러를 구현하였다.
본 발명의 실시 예에 따른 EP-Ethernet 컨트롤러는 802.1Q/p 프레임 포맷에 시퀀스 넘버(Sequence Number)와 잔여길이(Remain Length)가 추가된 새로운 프레임 포맷과 비실시간 프레임의 전송을 중단하고 실시간 프레임을 전송하는 새로운 우선순위 메커니즘을 수행할 수 있다.
상기 본 발명에서 제안된 EP-이더넷 과 EP-이더넷 컨트롤러의 성능을 평가하기 위하여 Virtex-4 FPGA에 Verilog HDL을 이용하여 구현하였다. 이를 MicroBlaze 프로세서와 연동하여 호스트와의 통신을 통하여 기능을 검증하였고, 실시간 프레임의 지연시간(Latency) 및 전송주기 측정을 통해 802.1Q/p에 비하여 아래와 같은 이점이 있다는 것을 확인하였다.
첫째, 비 실시간 프레임에 의한 실시간 프레임의 지연시간(Latency)이 증가하는 현상을 줄일 수 있었다.
실시간 시스템은 일정한 Time-bound를 벗어나면, 치명적인 문제를 야기할 수 있는 시스템이다. 비실시간 프레임에 의한 실시간 프레임의 지연시간(Latency)을 줄임으로써 Time-bound를 벗어날 확률을 낮추어 실시간성이 향상되었다.
둘째, 비실시간 프레임에 의한 전송 주기의 변화가 거의 없다는 것이다. 주기적인 실시간 프레임을 전송할 때의 주기의 변화율이 낮춤으로써 실시간 시스템의 타임리네스(Timeliness)를 높였다.
따라서, 본 발명에 따른 EP-이더넷을 사용하여 IEC 61850의 시스템을 구성한다면, IEC 61850의 실시간성 향상을 기대할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변현 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
10: 시스템 20: 인터페이스 모듈
30: 레지스터 모듈 40: 수신 모듈
50: 상태 모듈 60: MII 모듈
70: 제어 모듈 80: 전송모듈

Claims (5)

  1. 낮은 우선순위 프레임을 전송모듈에서 수신모듈로 전송중일 때, 상기 수신모듈로부터 높은 우선순위 프레임 요청 시에 상기 전송모듈로부터 높은 우선순위 프레임을 상기 수신모듈로 전송하는 방법에 있어서,
    상기 전송모듈에서 상기 높은 우선순위 프레임에 의하여 선점당하는 프레임 내에 포함된 바이트 단위의 데이터를 상기 수신모듈로 전송하는 단계;
    상기 전송모듈에서 상기 높은 우선순위 프레임의 시퀀스 넘버(Sequence Number) 및 잔여길이(Remain Length)를 상기 수신모듈로 전송하는 단계; 및
    상기 전송모듈에서 상기 선점당하는 높은 우선수위 프레임의 시퀀스 넘버를 “1”씩 증가시키는 단계를 포함하는 선점형 우선순위 기반의 이더넷 스케줄링 방법.
  2. 제1항에 있어서,
    상기 방법은,
    상기 전송중인 프레임의 전송된 길이가 이더넷 프레임의 최소 길이보다 작을 경우, 전송중인 프레임을 드롭시키고, 상기 잔여길이나 시퀀스 넘버가 변화되어 전송되지 않거나, 남은 프레임의 길이가 이더넷 프레임의 최소길이 보다 작을 경우, 나머지 길이는 "0"으로 채우게 되는 것을 특징으로 하는 선점형 우선순위 기반의 이더넷 스케줄링 방법.
  3. 메모리로부터 이더넷 코어에 필요한 데이타를 로드 또는 저장기능을 수행하는 인터페이스 모듈;
    외부로부터 전송된 프레임의 프리엠블, SFD, padding, CRC를 덧붙여 이더넷 PHY 칩으로 프레임을 전송하는 전송 모듈;
    상기 이더넷 PHY 칩으로부터 수신되는 프레임의 프리엠블을 제거하고, CRC 검사를 수행하는 수신모듈;
    상기 이더넷 PHY 칩과 인터페이스와의 연동이 가능하도록 수행하는 MII 모듈;
    버퍼 디스크립터나 다른 모듈의 상태에 관련된 작업을 수행하는 상태 모듈; 및
    이더넷 맥 IP의 설정 값을 세팅하거나 상태값과 관련된 작업을 수행하는 레지스터 모듈을 포함하며,
    상기 전송모듈은,
    외부로부터 전송된 프레임 데이타에 시퀀스 넘버(Sequence Number)와 잔여 길이(Remain Length)를 데이타 맨 뒷부분에 덧붙여 전송하는 것을 특징으로 하는 선점형 우선순위 기반의 이더넷 스케줄링 시스템.
  4. 제3항에 있어서,
    상기 전송 모듈은,
    전송된 프레임의 데이타 영역의 CRC를 계산하는 바이 투 니블(byte to nibble) 모듈;
    전송중인 프레임에 충돌이 발생하였을 때, 백-오프(back-off) 시간에 의한 지연시간을 생성하는 랜덤 딜레이 모듈;
    상기 전송중인 프레임의 전송된 니블 및 바이트 수를 측정하는 전송 카운터 모듈;
    상기 인터페이스 모듈에서 메모리로부터 읽은 전송할 바이트 단위의 데이타를 니블 단위의 데이타로 나누어 이더넷 PHY 칩으로 전송하는 bye to nibble 모듈; 및
    상기 전송할 프레임에 프리엠블을 덧붙이고, back-off에 의한 지연 및 IFG 등의 프레임 전송의 흐름 제어를 하는 전송 상태 모듈를 포함하는 선점형 우선순위 기반의 이더넷 스케줄링 시스템.
  5. 삭제
KR1020100074918A 2010-08-03 2010-08-03 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템 KR101188210B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100074918A KR101188210B1 (ko) 2010-08-03 2010-08-03 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100074918A KR101188210B1 (ko) 2010-08-03 2010-08-03 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템

Publications (2)

Publication Number Publication Date
KR20120012875A KR20120012875A (ko) 2012-02-13
KR101188210B1 true KR101188210B1 (ko) 2012-10-05

Family

ID=45836602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100074918A KR101188210B1 (ko) 2010-08-03 2010-08-03 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템

Country Status (1)

Country Link
KR (1) KR101188210B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101617167B1 (ko) 2015-08-12 2016-05-03 한국수력원자력 주식회사 측면 배출게이트가 구비된 플라즈마 용융로
KR102086027B1 (ko) * 2017-12-08 2020-03-06 현대오트론 주식회사 우선순위 기반 차량용 멀티 마스터 모듈의 제어 장치 및 그 방법
KR102019847B1 (ko) 2017-12-08 2019-09-09 현대오트론 주식회사 링 통신 토폴로지 기반 차량용 멀티 마스터 모듈의 제어 장치 및 그 방법
CN112311496A (zh) * 2019-07-26 2021-02-02 华为技术有限公司 数据传输方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050129028A1 (en) 2003-12-05 2005-06-16 Broadcom Corporation Transmission of data packets of different priority levels using pre-emption
US20060109864A1 (en) 2004-11-24 2006-05-25 Infineon Technologies North American Corp. Pre-emption mechanism for packet transport

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050129028A1 (en) 2003-12-05 2005-06-16 Broadcom Corporation Transmission of data packets of different priority levels using pre-emption
US20060109864A1 (en) 2004-11-24 2006-05-25 Infineon Technologies North American Corp. Pre-emption mechanism for packet transport

Also Published As

Publication number Publication date
KR20120012875A (ko) 2012-02-13

Similar Documents

Publication Publication Date Title
US11197322B2 (en) Emulating collisions in wired local area networks and related systems, methods, and devices
US6539488B1 (en) System with a plurality of media access control circuits with a shared memory for storing data and synchronizing data from a clock domain to a host clock domain
US5778175A (en) Method implemented by a computer network adapter for autonomously adjusting a transmit commencement threshold valve upon concurrence of an underflow condition
Di Natale et al. Understanding and using the controller area network communication protocol: theory and practice
US5619651A (en) I/O data unit symmetry in a media access control/host system interface unit
US6188699B1 (en) Multi-channel encoder/decoder
US7596644B2 (en) Transmit rate pacing system and method
US20190363991A1 (en) Shaping Traffic on PLCA-Enabled 10SPE Networks
US4780814A (en) Global serial channel for microcontroller
KR101885935B1 (ko) 전환 가능한 데이터 전송 속도에서의 직렬 데이터 전송을 위한 방법 및 그 장치
US5933413A (en) Adaptive priority determination for servicing transmit and receive in network controllers
US20070047572A1 (en) Explicit flow control in Gigabit/10 Gigabit Ethernet system
EP1133129A2 (en) A programmable multi-standard mac architecture
GB2282474A (en) Buffer memory management for a computer network.
KR101188210B1 (ko) 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템
CN108966046B (zh) 一种基于fpga的两种通信接口融合mac控制器
US20030225739A1 (en) Flexible scheduling architecture
KR20220045982A (ko) 데이터 패킷을 송신하는 방법, 및 이 방법을 실시하는 장치
TW201717039A (zh) 用於通用序列匯流排2.0頻寬保留之方法及系統
US7065582B1 (en) Automatic generation of flow control frames
EP2363807B1 (en) Address encryption/rate pacing
CN111147175B (zh) 时间触发以太网数据帧捕获、存储装置及方法
JP2009188508A (ja) データ送受信装置
Mohor Ethernet IP core specification
CN108255770B (zh) 基于1394总线事件消息响应机制的处理方法

Legal Events

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

Payment date: 20150626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160602

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170626

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee