ENGLISH 简体中文 日本語 한국어  

    로그인 | 회원가입 


   
 
키워드나 부품번호를 입력해주세요    




애플리케이션 노트 4115

패킷 지연 변동(PDV)을 보상하기 위해 TDMoP 제품에서 지터 버퍼를 사용하는 방법

개요: DS34T10x 및 DS34S10x TDM-over-Packet (TDMoP) 소자는 지터 버퍼를 사용하여 패킷 네트워크에 존재하는 패킷 지연 변동(PDV)을 보상한다. 이 애플리케이션 노트에서는 PDV 및 이러한 지연 변동이 통신 품질에 미치는 영향을 설명하고, 지터 버퍼의 기능과 종류를 살펴본다. 또 TDMoP 소자에서 PDV의 영향을 최소화하기 위해 지터 버퍼 컨트롤러의 파라미터를 설정하는 방법에 대해서도 설명한다.

머리말

TDMoP (TDM-over-Packet) 소자의 DS34T10xDS34S10x 제품군은 지터 버퍼를 사용하여 패킷 네트워크에 존재하는 패킷 지연 변동(PDV)을 보상한다. 이들 버퍼는 번들 또는 연결 단위로 독립적으로 구성할 수 있다. 이 밖에도, 이 버퍼들은 동적으로 조정 가능하므로, 패킷 네트워크의 성능 변화에 맞추어 실시간으로 조정할 수 있다. 이 애플리케이션 노트에서는 지터 버퍼 컨트롤러와 TDM 클록 복구 동안 PDV의 영향을 최소화하는 파라미터 설정 방법에 대해 살펴본다.

DS34T10x는 DS34T101, DS34T102, DS34T104, DS34T108로 구성되며, DS34S10x는 DS34S101, DS34S102, DS34S104, DS34S108로 구성된다.

TDM 네트워크의 타이밍

TDM 네트워크는 네트워크의 모든 소자에 의해 사용되는 단일 클록 소스를 갖는다. 그림 1에서 보는 바와 같이 목적지 TDM 소자는 수신 데이터에서 클록을 가져와서, 이 클록을 사용하여 데이터(루프백 타이밍)를 전송한다.

Figure 1. Loopback timing in a TDM network.
그림 1. TDM 네트워크의 루프백 타이밍

패킷 도착 시간의 변동을 지터라고 하며, 이는 네트워크 혼잡, 타이밍 드리프트 또는 라우트 변경으로 인해 발생한다. 따라서 물리적 TDM 연결을 IP/MPLS 네트워크와 2개의 TDMoP 소자로 교체하면(그림 2 참조), 수신 TDMoP 소자(슬레이브)는 도착 시간이 일정하지 않은 가변 지연을 갖는 TDMoP 패킷을 수신한다.

이러한 지터의 영향을 최소화하려면 소자는 패킷을 프로세싱한 후 TDM 네트워크에서 일정한 속도로 TDM측에 TDM 데이터를 전송해야 한다. 이와 같은 일정한 데이터 전송률을 제공하기 위해서는 소자가 클록 복구 모드에서 동작하면서 소스 TDM 클록을 재구성하여 목적지 TDM 소자가 루프백 타이밍 모드에서 계속 동작할 수 있도록 해야 한다.

Figure 2. Timing in a TDM-over-Packet network.
그림 2. TDMoP 네트워크의 타이밍

지터 버퍼

DS34T10x/DS34S10x는 지터 버퍼를 사용하여 PDV가 통신 품질에 미치는 영향을 최소화한다. 지터 버퍼는 공유되는 메모리 영역을 가리키며, 균등한 구간으로 TDM 패킷을 수집, 저장하여 회로 에뮬레이션 엔진에 전송할 수 있다. TDM 연결의 송신 및 수신단에 있는 지터 버퍼는 최종 사용자에게 사운드 왜곡이 거의 없거나 전혀 없는 깨끗한 연결을 제공하기 위해 도착 패킷을 고의적으로 지연시킨다.

지터 버퍼에는 스태틱과 동적 버퍼 두 종류가 있다. 스태틱 지터 버퍼는 하드웨어 기반이며 제조업체에 단계에서 구성된다. 동적 지터 버퍼는 소프트웨어 기반이며 네트워크 관리자가 네트워크의 지연과 PDV의 변화에 따라 구성할 수 있다.

DS34T10x/DS34S10x에는 SDRAM에 동적 지터 버퍼가 내장되어 있으며, 이들 지터 버퍼는 다음 두 가지의 주요 기능을 수행한다.
  • 패킷 지연 변동 보상
  • TDMoP 슬레이브 소자의 원격지 (far-end) TDM 클록 재구성
데이터는 수신되는 이더넷 패킷의 도착 시간에 따라 가변 속도로 버퍼에 입력된다. 데이터는 일정한 TDM 속도로 버퍼를 떠난다. 클록 복구 모드에서 지터 버퍼의 레벨은 클록 복구 메커니즘을 나타낸다.

TDMoP 프로토콜(CESoPSN, SAToP, TDMoIP)에서 번들은 단일 E1 또는 T1의 64kbps 타임슬롯으로 어느 숫자나 구성할 수 있다. 번들은 단방향 스트림이며, 보통 반대 방향의 번들과 결합하여 풀 듀플렉스 통신을 구현한다. 2개의 TDMoP 에지 소자 간에 하나 이상의 번들을 전송할 수 있다.

DS34T10x/DS34S10x는 IP/MPLS/Ethernet 네트워크에 의해 발생되는 지연 변동을 보상하기 위해 번들 단위로 구성할 수 있는 대형 지터 버퍼(최대 64개 번들)를 제공한다. 각 번들은 페이로드 유형 머신이나 CPU의 어느 TDM 포트에나 지정할 수 있다. 모든 번들은 다음과 같이 독립적으로 구성 가능한 기능을 제공한다.
  • 송신 및 수신 큐
  • 수신-지터-버퍼 깊이
  • 연결 레벨 리던던시 옵션 (SAToP와 CESoPSN에 모두 제공)
각 소자는 내부 번들-교차연결 기능에 DS0 분해능을 제공한다. 각 번들은 포트로부터 모든 T1/E1 데이터를 전송하거나, 각 패킷에 구성된 수의 바이트를 전송하거나 (SAToP) 또는 T1에 대해서는 최대 24개 타임슬롯으로, E1에 대해서는 31개 타임슬롯으로 T1/E1 데이터의 특정 타임슬롯을 전송하도록 구성할 수 있다(CESoPSN). 번들에는 단일 TDM 포트 내의 임의 타임슬롯으로부터 발생된 데이터가 포함될 수 있다. 그러나 하나의 타임슬롯은 하나의 번들에만 지정할 수 있다. SAToP 및 CESoPSN 번들의 경우, TDMoP 소자는 지터 버퍼의 범위 내에서 패킷 순서를 재지정한다. 패킷 손실은 사전 구성된 조절값을 삽입하거나 마지막으로 수신된 값을 재생하여 보상된다.

SAToP 및 CESoP 지터 버퍼의 분해능은 서로 다르다. SAToP의 경우 정밀도는 바이트 단위이며, 따라서 변수는 E1에 대해서는 약 4µs씩, T1에 대해서는 5µs씩 증가하도록 크기를 지정할 수 있다. CESoP의 경우 정밀도는 프레임 단위이므로 변동은 E1과 T1에 대해 모두 125µs씩 증가시킬 수 있다. 패킷 상태가 양호한지 결정하기 전에 전체 패킷을 저장해야 하기 때문에, 지터 버퍼에 대한 최소 정밀도는 패킷 크기 함수이다. 작은 패킷(1바이트)의 경우 최소 정밀도는 1바이트이고, 큰 CES 패킷(1500 프레임)의 경우 최소 정밀도는 PDV와 상관없이 187.5ms이다.

DS34T10x/DS34S10x 지터 버퍼의 구성

지터 버퍼의 파라미터를 정확히 구성하면 언더런(underrun) 및 오버런(overrun)을 피할 수 있다. 언더런은 지터 버퍼가 비어 있을 때 (입력 속도가 기존 속도보다 낮을 때) 발생한다. 언더런 상태가 발생하면, 칩은 TDM 인터페이스에 실제 데이터 대신 컨디셔닝 데이터를 전송한다. 오버런은 지터 버퍼가 가득 차서 새로운 데이터를 입력할 수 있는 공간이 없을 때 (입력 속도가 기존 속도를 초과할 때) 발생한다. 언더런과 오버런은 번들 유형에 따라 IC의 하드웨어로부터 특수한 처리를 필요로 한다.

DS34T10x/DS34S10x는 데이터와 시그널링을 위해 외부 SDRAM에 개별적인 공간을 할당한다.
  • 8포트 저속 모드에서 데이터 및 시그널링 영역은 모두 각 E1/T1/Nx64 인터페이스에 하나씩 8개의 동일한 부분으로 나누어진다.
    • E1/T1 구조 모드에서 각 데이터 부분은 E1에 대해서는 32개 타임슬롯, T1에 대해서는 24개 타임슬롯의 데이터를 포함하고 있다. 단일 E1/T1 타임슬롯에는 최대 4kB 공간이 할당된다. 모두 8개의 인터페이스에는 총 256개의 타임슬롯과 1024kB의 공간이 있다.
    • 각 시그널링 부분은 멀티프레임 섹터로 나누어지며, 각 멀티프레임 섹터는 최대 32개 타임슬롯의 시그널링 니블을 포함하고 있다. 모두 8개의 인터페이스에는 총 64kB의 공간이 있다.
    • 직렬 또는 E1/T1의 비정형 (unstructured) 모드에서는 타임슬롯 단위의 할당이 없다. 지터 버퍼는 각 인터페이스에 하나씩 8개의 동일한 부분으로 나누어진다. 각 부분은 HDLC 번들마다 512kB 또는 128kB의 공간이 있다.
  • 고속 모드(E3/T3, STS-1)에서 지터 버퍼는 하나의 대형 버퍼처럼 동작하고, 부분으로 나누어지지 않으며, 총 512kB의 공간을 갖는다.
지터 버퍼의 깊이는 다음과 같다.
  • E1: 최대 256ms
  • 프레임되지 않은 T1: 최대 340ms
  • 프레임된 T1: 최대 256ms
  • CAS를 갖는 프레임된 T1: 최대 192ms
시간 단위로 표시한 지터 버퍼의 최대 깊이는 다음과 같은 공식에 따라 계산할 수 있다.

½ × Buffer area per interface x (8 / Rate)(Eq. 1)

여기서,
½ = 반쪽 버퍼 2개
인터페이스당 버퍼 공간 = 단일 고속 인터페이스의 경우 512kB, 저속 인터페이스의 경우 128kB
8 = 바이트당 비트 수
Rate = 전송 속도 (예: 2.048Mbps)

CAS를 갖는 프레임된 T1의 경우, 수식 1의 결과에 0.75를 곱한다.

지터 버퍼의 깊이는 번들 구성 테이블에 있는 Rx_max_buff_size 파라미터에 의해 결정된다. 지터 버퍼 레벨이 Rx_max_buff_size의 값에 도달하면, 오버런 상태가 선언된다.

역시 번들 구성 테이블에 있는 Rx_pdvt 파라미터는 네트워크 지연 변동을 보상하기 위해 지터 버퍼에 저장할 데이터 양을 결정한다. 그림 3은 지터 버퍼 파라미터를 보여준다. Rx_pdvt 파라미터는 다음 두 가지 의미를 갖는다.
  • Rx_pdvt는 이더넷 네트워크 지연 변동에 대한 IC의 내성을 결정한다.
  • 네트워크로부터 도착하는 데이터는 Rx_pdvt만큼 지연된 다음 TDM 라인에 전송된다.
Rx_pdvtRx_max_buff_size보다 작아야 한다. 또한 Rx_max_buff_sizeRx_pdvt간의 차는 패킷을 재구성하는 데 걸리는 시간보다 커야 한다. 그렇지 않을 경우 패킷이 도착할 때 오버런이 발생할 수 있다. 일반적으로 권장되는 Rx_max_buff_size 값은 2 × Rx_pdvt + PCT(패킷 생성 시간)이다. 이 값은 지연된 패킷과 버스트 패킷에 모두 균등한 내성을 제공한다.

Figure 3. Jitter buffer parameters.
그림 3. 지터 버퍼 파라미터

지터 버퍼 컨트롤러(JBC)는 64비트 x 32비트 번들 타임슬롯 테이블을 사용하여 각 동작 번들의 할당된 타임슬롯을 식별한다. 테이블에 대한 인덱스는 번들 번호이다. 소프트웨어는 각각의 동작 번들 엔트리를 구성해야 한다. 구조화되지 않은 번들의 경우에는 전체 번들 엔트리(32비트)를 설정해야 한다. 즉, 비트를 설정하는 것은 해당 번들에 대응되는 타임슬롯이 할당된다는 것을 의미한다.

JBC 통계는 128엔트리 테이블에 저장된다. 각 TDM 포트는 타임슬롯당 한 개씩 32개의 전용 엔트리를 갖는다. 지터 버퍼 상태 테이블은 각 동작 번들에 대한 동작 지터 버퍼의 통계를 저장한다. TSA 테이블에 있는 Jitter_buffer_index라고 하는 구성 가능한 파라미터는 지터 버퍼 통계가 저장되고 읽혀지는 테이블에서 엔트리를 정의한다.

소프트웨어는 Jitter_buffer_index에 따라 지터 버퍼 상태 테이블에 액세스한다. 상태 테이블에는 지터 버퍼 레이블과 상태(ok, 언더런, 오버런 등)와 같은 현재의 지터 버퍼 상태가 포함되어 있다. 이 테이블에는 또한 지터 버퍼의 최소 및 최대 레벨을 보고하는 2개의 변수가 있다. 이러한 변수는 사용자에게 네트워크 특성에 대한 정보를 제공한다. 예를 들어, 사용자는 이들 값을 사용하여 지터 버퍼의 상단 (Rx_max_buff_size)과 하단으로부터 마진을 계산할 수 있다. 여분의 용량이 있다면, 사용자는 Rx_pdvt를 감소시켜 지터 버퍼에 의해 추가되는 대기 시간을 수신 데이터로 제한할 수 있다.

사용자는 다음과 같이 Jitter_buffer_index 값을 정의해야 한다.
  • AAL1/HDLC/RAW 구조 번들의 경우, Jitter_buffer_index는 번들에서 인터페이스 번호(2 Msbits)와 최하위 타임슬롯 번호의 합성이다. 예를 들어, 번들이 세 번째 인터페이스에서 타임슬롯 2, 4, 17로 구성된다면, Jitter_buffer_index10_00010[bin], 즉 42[hex]가 된다.
  • 구조화되지 않은 번들의 경우, jitter_buffer_index는 인터페이스 번호(2 Msbits)와 다섯 개의 '0'으로 이루어진다.
  • AAL2 번들의 경우, 각 타임슬롯 데이터는 자체 지터 버퍼에 저장되므로, Jitter_buffer_index는 인터페이스 번호(2 Msbits)와 타임슬롯 번호의 합성이다. 예를 들어, 번들이 첫 번째 인터페이스에서 타임슬롯 2, 4, 17로 구성된다면, 각 타임슬롯에 하나씩 3개의 지터 버퍼가 존재하며, Jitter_buffer_index 값은 각각 2[hex], 4[hex], 11[hex]이 된다.
페이로드 유형 머신은 시퀀스 번호 에러(AAL1/RAW) 또는 UUI 에러(AAL2)를 기준으로 패킷의 손실 여부를 검출한다. 패킷이 손실된 경우, 컨디셔닝 데이터가 지터 버퍼에 삽입되어 손실된 데이터를 보상하고 비트 무결성을 유지한다. 간단히 말해, 지터 버퍼에 삽입되는 비트의 수는 원격지에서 전송되는 비트의 수와 같아야 한다.

패킷이 RAW 번들에서 잘못된 순서로 전송되면, 가령 시퀀스 넘버 N을 갖는 패킷이 시퀀스 번호 N+1을 가진 패킷 다음에 도달하면, 그 패킷은 RAW 페이로드 유형 머신에 의해 순서가 재지정된다. 패킷 데이터는 이 위치의 데이터가 TDM 영역에 아직 전송되지 않았다는 가정 하에 지터 버퍼의 적절한 위치에 삽입된다.

결론

지터 버퍼는 임시로 도착 패킷을 저장하여 지연 변동을 최소화한다. 패킷이 너무 늦게 도착하면, 이러한 패킷은 폐기된다. 때때로 지터 버퍼가 잘못 구성되어 너무 작거나 너무 클 수 있다. 지터 버퍼가 너무 작으면 대량의 패킷이 폐기되어 품질 저하를 초래할 수 있으며, 지터 버퍼가 너무 크면 지연이 추가되어 통신이 어려울 수 있다. 따라서 지터 버퍼 파라미터를 적절히 구성하면 이러한 언더런 및 오버런 상태를 피할 수 있다.

TDMoP 제품에 대한 추가 질문이나 Maxim의 텔레콤 제품 사용에 관한 기타 사항은 Telecom Products 애플리케이션 지원 팀 또는 전화 01-972-371-6555으로 문의한다.


관련 부품  APP 4115: Mar 20, 2008
DS34S101 1/2/4/8채널 TDM-Over-Packet 전송 소자 간략한 데이터 시트
(PDF, 264kB)
DS34S102 1/2/4/8채널 TDM-Over-Packet 전송 소자 간략한 데이터 시트
(PDF, 264kB)
무료 샘플
DS34S104 1/2/4/8채널 TDM-Over-Packet 전송 소자 간략한 데이터 시트
(PDF, 264kB)
무료 샘플
DS34S108 1/2/4/8채널 TDM-Over-Packet 전송 소자 간략한 데이터 시트
(PDF, 264kB)
무료 샘플
DS34T101 1/2/4/8채널 TDM-Over-Packet 칩 간략한 데이터 시트
(PDF, 272kB)
무료 샘플
DS34T102 1/2/4/8채널 TDM-Over-Packet 칩 간략한 데이터 시트
(PDF, 272kB)
무료 샘플
DS34T104 1/2/4/8채널 TDM-Over-Packet 칩 간략한 데이터 시트
(PDF, 272kB)
무료 샘플
DS34T108 1/2/4/8채널 TDM-Over-Packet 칩 간략한 데이터 시트
(PDF, 272kB)
무료 샘플

자동 업데이트
관심 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트를 원하십니까? 그렇다면 EE-Mail™을 신청하십시오.


We Want Your Feedback!



의견을 보내주세요!
위 내용이 도움이 되셨나요?
여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다. 이 페이지를 평가하고 의견을 보내주십시오.

 

다운로드, PDF 형식다운로드, PDF 형식 (46kB)
 AN4115, AN 4115, APP4115, Appnote4115, Appnote 4115

        •         •         •     개인정보보호 정책     •     법적 고지

    Copyright © 2009 by Maxim Integrated Products