UniPro 프로토콜 스택

UniPro protocol stack

이동전화 기술에서 UniPro 프로토콜[1] 스택은 기존의 OSI 참조 모델의 아키텍처를 따릅니다.UniPro에서는 OSI 물리 레이어는 레이어 1(실제 물리 레이어)과 레이어 1.5(PHY 어댑터 레이어)의 2개의 서브레이어로 분할되어 대체 레이어 1 테크놀로지 간의 차이를 추상화합니다.다양한 PHY 옵션이 다른 MIPI Alliance 사양에서 재사용되므로[2] 실제 물리층은 별도의 사양입니다.

UniPro 프로토콜 스택(이 색상 코드는 오랜 UniPro 전통)
레이어 번호 레이어명 기능 data 단위명
LA 어플 페이로드 및 트랜잭션 의미론 메세지
DME
레이어 4 운송 포트, 멀티플렉싱, 흐름 제어 부분
레이어 3 네트워크 주소 지정, 라우팅 패킷
레이어 2 데이터 링크 싱글 홉의 신뢰성 및 우선순위 기반 조정 틀
레이어 1.5 PHY 어댑터 물리층 추상화 및 복수 레인 지원 UniPro 기호
레이어 1 물리층(PHY) 시그널링, 클로킹, 회선 부호화, 전원 모드 PHY 기호

UniPro 사양 자체는 레이어 1.5, 2, 3, 4 및 디바이스 관리 엔티티(DME)를 대상으로 합니다.UniPro를 사용할 때마다 서로 다른 LA 프로토콜이 필요하므로 애플리케이션 계층(LA)은 범위를 벗어납니다.Physical Layer(L1)는 필요에 따라 다른(일반적이지 않은) 프로토콜에 의해 PHY를 재사용할 수 있도록 별도의 MIPI 사양에 포함되어 있습니다.

OSI 레이어 5(세션) 및 6(프레젠테이션)는 해당하는 경우 애플리케이션 레이어의 일부로 카운트됩니다.

물리층(L1)

D-PHY

UniPro 버전 1.0 및 1.1에서는 오프칩 물리층용으로 MIPI의 D-PHY 기술을 사용합니다.이 PHY는 칩 간 통신을 가능하게 합니다.D-PHY 의 데이터 레이트는 가변적이지만, 500-1000 Mbit/s 의 범위입니다(저속은 서포트되지만, 전력 효율은 저하합니다).D-PHY는 로마 숫자로 500("D")을 따서 명명되었다.

D-PHY는[3] 차동 시그널링을 사용하여 마이크로스트라이플라인 배선을 통해 PHY 기호를 전송합니다.제2차동신호쌍은 관련된 클럭신호를 소스로부터 수신처에 송신하기 위해 사용된다.따라서 D-PHY 기술은 방향당 총 2개의 클럭 와이어와 차선 및 방향당 2개의 신호 와이어를 사용합니다.예를 들어, D-PHY는 클럭에 2개의 와이어와 전진 방향의 데이터에 4개의 와이어(2 레인)를 사용하지만, 클럭에 2개의 와이어와 후진 방향의 데이터에는 6개의 와이어(3 레인)를 사용할 수 있습니다.정방향 및 역방향 데이터 트래픽은 이 프로토콜 스택 수준에서 완전히 독립적입니다.

UniPro 에서는, D-PHY 는, 9 비트 기호로서 8 비트 바이트를 전송하는 모드( 「8 b9 b」라고 불립니다)로 사용됩니다.UniPro 프로토콜은 이를 사용하여 특수 제어 기호를 나타냅니다(통상적인 0 ~255 값 외부).PHY 자체는 PHY 자체에 의미가 있는 특정 특수 기호(예: IDLE 기호)를 나타내기 위해 이 기호를 사용합니다.D-PHY의 데이터 레이트를 지정할 때 8:9 비율에 따라서는 혼동이 발생할 수 있습니다.즉, 450MHz 클럭 주파수로 동작하는 PHY 실장은 900Mbit/s PHY로 평가되지만 UniPro 스택에서는 800Mbit/s밖에 사용할 수 없습니다.

또한 D-PHY는 데이터를 전송할 필요가 없을 때 사용할 수 있도록 저전력 데이터 전송(LPDT) 모드 및 기타 다양한 저전력 모드를 지원합니다.

M-PHY

UniPro 버전 1.4 이후에서는 D-PHY 및 M-PHY[4] 기술이 모두 지원됩니다.M-PHY 테크놀로지는 아직 드래프트 상태이지만, 약 1000 Mbit/s 로부터의 고속 데이터 레이트를 서포트하고 있습니다(M-PHY 는, 1000 의 로마 번호의 이름을 따서 붙여졌습니다).클럭 신호가 업계 표준 8b10b 인코딩을 사용하여 데이터에 내장되기 때문에 고속과 더불어 M-PHY는 신호 와이어를 적게 사용합니다.여기서도, 1000 Mbit/s 로 유저 데이터를 송신할 수 있는 PHY 는, 통상, 8 b10 b 부호화에 의해서 1250 Mbit/s 모드로 지정됩니다.

UniPro에서 지원하는 물리층 테크놀로지
PHY 테크놀로지 버전 / 출시 기호 부호화 기가비트/초(페이로드) 차선 지원 대상
D-PHY 1.2/2014년 9월 8b/9b 4.5 기가비트/초/레인 4 레인 포트
M-PHY 3.1/2014년 6월 8b/10b 11.6 기가비트/초/레인 4+1 레인 포트
C-PHY 1.00.00 / 2014년 10월 ? 2.5 기가비트/초/레인? 3 레인 포트

D-와 M-PHY는 몇 년 동안 공존할 것으로 예상된다.D-PHY는 덜 복잡한 테크놀로지이며, M-PHY는 더 적은 신호선으로 더 높은 대역폭을 제공하며, C-PHY는 저전력을 제공합니다.

저속 모드와 전력 절약

UniPro는 D-PHY(10 Mbit/s)와 M-PHY(3 Mbit/sec, 최대 500 Mbit/s)에 의해 제공되는 전력 효율이 뛰어난 저속 통신 모드를 지원한다는 점에 유의하십시오.이러한 모드에서는, 소비 전력은 송신되는 데이터의 양에 따라 대략적으로 조정됩니다.또, 양쪽의 PHY 테크놀로지는, 배터리 구동 디바이스용으로 최적화되어 있기 때문에, 한층 더 전력 절약 모드를 제공합니다.

PHY 어댑터 레이어(L1.5)

구조적으로 PHY 어댑터 레이어는 다른 PHY 옵션(D-PHY)과 M-PHY 사이의 차이를 숨기는 역할을 합니다.따라서 이러한 추상화는 주로 건축상의 유연성을 제공합니다.추상화된 PHY 상세에는 다양한 전원 상태 및 채택된 심볼 부호화 방식이 포함됩니다.

L1.5 기호

UniPro의 17비트 L1.5 기호 시퀀스 예시
ctl b15 b14 b13 b12 b11 b10 b09 b08 b07 b06 b05 b04 b03 b02 b01 b00
1 L1.5 컨트롤 기호의 첫 번째 바이트 L1.5 컨트롤 기호의 두 번째 바이트
0 L1.5 데이터 기호 중 첫 번째 바이트 L1.5 데이터 기호 중 두 번째 바이트
0 L1.5 데이터 기호 중 첫 번째 바이트 L1.5 데이터 기호 중 두 번째 바이트
0 L1.5 데이터 기호 중 첫 번째 바이트 L1.5 데이터 기호 중 두 번째 바이트
0 L1.5 데이터 기호 중 첫 번째 바이트 L1.5 데이터 기호 중 두 번째 바이트
1 L1.5 컨트롤 기호의 첫 번째 바이트 L1.5 컨트롤 기호의 두 번째 바이트
0 L1.5 데이터 기호 중 첫 번째 바이트 L1.5 데이터 기호 중 두 번째 바이트

따라서 L1.5에는 17비트 기호로 구성된 자체(개념) 기호 인코딩이 있습니다.이들 17비트 기호는 L1.5에 의해 최초로 PHY 기호 쌍으로 변환되기 때문에 회선에는 표시되지 않습니다.추가 17번째 제어 비트는 프로토콜(L1.5 및 L2) 자체에서 사용되는 특수 제어 기호를 나타냅니다.그림에서 제어 비트는 "L1.5 빨간색"으로 나타나며 프로토콜 1.5에 의해 정의되고 사용됨을 알려줍니다.

L1.5 멀티레인 지원

L1.5에서 사용자에게 제공하는 주요 기능은 단일 레인이 충분한 대역폭을 제공하지 못할 경우 2, 3, 또는4 레인을 사용하여 UniPro 링크의 대역폭을 늘릴 수 있도록 하는 것입니다.사용자에게 이러한 멀티레인 링크는 심볼이 2, 3, 또는 4레인을 통해 전송되기 때문에 더 빠른 물리적 레이어처럼 보입니다.한 방향에서는 더 큰 대역폭을 필요로 하지만 반대 방향에서는 더 적은 대역폭을 필요로 하는 애플리케이션은 방향마다 다른 레인 수를 가질 수 있습니다.

L1.5 레인 디스커버리

UniPro v1.4 이후 L1.5는 링크의 각 방향에서 사용 가능한 M-PHY 레인 수를 자동으로 검출합니다.여기에는 초기화 시 실행되는 L1.5 내의 단순한 디스커버리 프로토콜이 포함됩니다.프로토콜은 사용 가능한 각 아웃바운드 레인의 테스트 데이터를 전송하고 피어 엔티티로부터 어떤 레인의 데이터가 링크의 다른 쪽 끝에 실제로 도달했는지에 대한 정보를 다시 받습니다.또한 이 메커니즘은 차선의 투명한 재매핑을 지원하여 회로 기판 설계자가 차선을 물리적으로 배선하는 방법에 유연성을 제공합니다.

L1.5 링크 전원 관리

UniPro v1.4 이후 L1.5에는 PACP(PA Control Protocol)라는 프로토콜이 내장되어 있어 L1.5는 M-PHY 기반 링크의 다른 쪽 끝에 있는 피어 L1.5 엔티티와 통신할 수 있습니다.링크의 주요 용도는 링크의 한쪽 끝에 있는 컨트롤러가 링크의 정방향과 역방향의 양쪽 전원 모드를 변경할 수 있는 심플하고 신뢰성 높은 방법을 제공하는 것입니다.즉, 링크의 한쪽 끝에 있는 컨트롤러는 단일 원자 동작으로 양쪽 링크 방향의 전원 모드를 변경할 수 있습니다.이 작업을 완전히 신뢰할 수 있는 방법으로 수행하기 위해 필요한 복잡한 절차는 L1.5 내에서 투명하게 처리됩니다.

L1.5 피어 파라미터 제어

PACP는 L1.5 링크 전원 관리 외에 피어 UniPro 디바이스의 액세스컨트롤 및 상태 파라미터에도 사용됩니다.

L1.5 보증

L1.5의 메커니즘은 상위 계층 프로토콜을 다음과 같이 보장합니다.

  • 리셋 후 각 L1.5 송신기는 연결된 L1.5 수신기가 활성화될 때까지 기다립니다(핸드쉐이크를 통해 처리됨).
  • 둘 이상의 차선을 사용하는 경우 원래 기호 스트림의 순서가 보존된다(복수 차선의 사용과 이러한 차선을 상호 연결하는 방법에 대한 자유).
  • 전원 모드 변경은 신뢰성 있게 실행됩니다(비트 오류가 있는 경우에도).

데이터 링크 레이어(L2)

UniPro의 Data Link 레이어(L2)의 주요 태스크는 물리 레이어에서 가끔 비트에러가 발생하거나 수신기가 데이터를 충분히 빠르게 흡수할 수 없는 경우 링크 폭주가 발생할 수 있지만 네트워크 내의 2개의 인접 노드 간에 신뢰성 있는 통신을 가능하게 하는 것입니다.

L2 데이터 프레임

L2는 17비트 UniPro L1.5 심볼을 패킷라이크 데이터 프레임에 클러스터합니다(패킷이라는 용어는 L3용으로 예약되어 있습니다).이러한 데이터 프레임은 17비트 프레임 시작 제어 기호로 시작하여 최대 288바이트의 데이터(144개의 데이터 기호)로 이어지며 프레임 끝 제어 기호와 체크섬이 이어집니다.

288바이트 중 2개 이상이 UniPro 프로토콜의 상위 계층에서 사용됩니다.전체 프로토콜 스택이 단일 청크로 256바이트의 애플리케이션 데이터를 쉽게 전송할 수 있도록 하기 위해 프레임당 최대 288개의 페이로드 바이트가 선택되었습니다.홀수 바이트 수로 구성된 페이로드는 프레임을 짝수 바이트 수로 패딩하고 트레일러에 대응하는 플래그를 삽입함으로써 지원됩니다.

UniPro 데이터 프레임 예시
ctl b15 b14 b13 b12 b11 b10 b09 b08 b07 b06 b05 b04 b03 b02 b01 b00
1 데이터 시작 프레임 제어 기호(헤더)
0 프레임 페이로드
0 :
0 :
0 프레임 페이로드
1 데이터 프레임 종료 제어 기호(트레일러)
0 16비트 체크섬

L2 제어 프레임

L2는 사용자 데이터를 포함한 데이터 프레임 외에 제어 프레임을 송수신한다.제어 프레임은 첫 번째 기호에서 3비트로 데이터 프레임과 구분할 수 있습니다.제어 프레임에는 다음 두 가지 유형이 있습니다.

  • 1가지 유형('AFC- Acknowledgement and L2 Flow Control', 3가지 기호)은 정상적으로 수신된 데이터 프레임을 승인하는 역할을 합니다.
  • 다른 유형("NAC", 2개의 기호")은 잘못된 프레임이 수신되었음을 해당 송신기에 알립니다.

이러한 L2 타입의 제어 프레임은, L2에 의해서 자율적으로 송신되는 것에 주의해 주세요.

UniPro 제어 프레임 예시
ctl b15 b14 b13 b12 b11 b10 b09 b08 b07 b06 b05 b04 b03 b02 b01 b00
1 제어 시작 프레임 제어 기호(헤더)
0 제어 프레임 페이로드(AFC만)
0 16비트 체크섬

L2 재전송

저전력 레벨에서의 고속 통신에서는, 수신 데이터에 에러가 발생하는 일이 있습니다.Data Link 레이어에는 올바르게 수신된 데이터 프레임(AFC 제어 프레임을 사용)을 자동으로 확인하고 L2에서 검출할 수 있는 오류를 능동적으로 신호화하는 프로토콜(NAC 제어 프레임을 사용)이 포함되어 있습니다.L2에서 에러의 가장 가능성이 높은 원인은 데이터 프레임이 전기적 수준(노이즈, EMI)에서 파손되었기 때문입니다.이것에 의해, 수신측의 데이터 또는 제어 프레임의 체크 섬이 잘못되어, 자동적으로 재발송신됩니다.데이터 프레임은 Acknowledged(AFC) 또는 Negative Acknowledged(NAC)입니다.파손된 제어 프레임은 예상되는 응답 또는 필요한 응답을 감시하는 타이머에 의해 검출됩니다.

대역폭이 1기가비트/초이고 비트 에러율이 10인−12 경우, 1기가비트/초의 속도에서는 1000초마다 또는 1000번째 전송 기가비트마다 1회씩 에러가 발생합니다.따라서 레이어 2는 대역폭의 한계손실을 감수하고 L2에서 송신된 데이터 프레임의 복사본을 저장하기 위해 필요한 버퍼 공간을 희생하여 이러한 오류를 자동으로 수정합니다.

L2 흐름 제어

L2의 또 다른 기능은 수신 측에 데이터 프레임의 버퍼 영역이 있는지 여부를 L2 송신기가 인식할 수 있는 기능입니다.이 역시 L2 Control Frames(AFC; 제어 프레임)에 의존합니다.이것에 의해, 리시버는 피어 송신기에 사용 가능한 버퍼 영역의 양을 통지할 수 있습니다.이것에 의해, 리시버는 필요에 따라서 송신기를 일시 정지할 수 있기 때문에, 수신 버퍼의 오버플로를 회피할 수 있습니다.제어 프레임은 L2 흐름 제어의 영향을 받지 않습니다.즉, 언제든지 송신할 수 있으며, L2 리시버는 도달한 속도로 이들 프레임을 처리합니다.

L2 트래픽클래스와 조정

UniPro는 현재 Traffic Class 0(TC0; 트래픽클래스 0)과 Traffic Class 1(TC1)이라는2개의 priority 레벨을 지원하고 있습니다.TC1의 priority는 TC0보다 높다.즉, L2 송신기에 TC0 데이터 프레임과 TC1 데이터 프레임이 혼재하여 송신되는 경우 TC1 데이터 프레임이 최초로 송신됩니다.대부분의 데이터 트래픽이 TC0을 사용하고 네트워크에 congestion가 발생하고 있다고 가정하면 TC1 데이터 프레임이 TC0 데이터 프레임(긴급 차량 및 일반 도로 트래픽과 유사)보다 빠르게 수신처에 도착합니다.또, L2는, 발신 TC0 데이터 프레임을 인터럽트 또는 「프리엠프트」해 TC1 데이터 프레임을 송신할 수도 있다.제어 프레임에는 추가 조정 규칙이 적용됩니다.기본적으로 이들 조정 규칙은 데이터 프레임보다 높은 우선순위를 부여받습니다.이는 이들 프레임이 작고 트래픽 흐름을 유지하기 위해 필수적이기타 조정 규칙은 데이터 프레임보다 높은 우선순위를 가집니다.

멀티홉 네트워크에서는 조정은 모든 홉에서 모든 L2 트랜스미터 내에서 이루어집니다.데이터에 할당된 트래픽클래스는 일반적으로 데이터가 네트워크를 통과할 때 변경되지 않습니다.priority system의 사용법을 결정하는 것은 어플리케이션에 달려 있습니다.

L2 단일 트래픽클래스 옵션

UniPro 버전 1.1에서는 심플한 엔드포인트디바이스가 2개의 트래픽클래스 중1개만 실장할 수 있는 옵션이 도입되었습니다.이는 디바이스 설계자가 프레임 조정 제어보다 구현 비용에 더 관심이 있을 때 유용합니다.연결된 L2 피어 디바이스는 링크 초기화 단계에서 이러한 디바이스를 검출하여 누락된 트래픽클래스를 사용하지 않도록 할 수 있습니다.

L2 보증

다양한 L2 메커니즘은 상위 계층 프로토콜에 많은 보증을 제공합니다.

  • 수신된 데이터 프레임에 올바른 payload가 포함됩니다(체크섬을 사용하여 체크).
  • 송신된 데이터 프레임이 피어 수신기에 도달한다(잠재적인 재발송신 후).
  • 수신된 데이터 프레임을 수용할 수 있는 공간이 있습니다(L2 흐름 제어).
  • 데이터 프레임의 내용은 상위 프로토콜 계층에 한 번만 전달됩니다(데이터 프레임은 폐기됨).
  • 동일한 트래픽 클래스 내의 데이터 프레임이 수신되어 상위 프로토콜 계층에 순서대로 전달됩니다.

따라서 개개의 링크는 신뢰할 수 있는 데이터 전송을 자율적으로 제공합니다.예를 들어, 이것은 엔드 포인트에서 오류를 검출하고 데이터가 손상되거나 누락된 경우 엔드 투 엔드 재전송에 의존하는 널리 사용되는 TCP 프로토콜과는 다릅니다.

네트워크층(L3)

UniPro 스위치를 통해 연결된 여러 UniPro 디바이스를 보여주는 시스템 아키텍처 예시

네트워크 레이어는, 네트워크를 개입시켜 수신처에 패킷을 라우팅 하는 것을 목적으로 하고 있습니다.멀티홉 네트워크 내의 스위치는 이 주소를 사용하여 개개의 패킷을 라우팅할 방향을 결정합니다.이것을 유효하게 하기 위해서, 7 비트의 행선지 주소를 포함한 헤더가 L3에 의해서 모든 L2 데이터 프레임에 추가됩니다.그림에서 나타내는 예에서는 디바이스 #3이 디바이스 #1, #2, #5와 통신할 수 있을 뿐만 아니라 디바이스 #4 및 #6과도 통신할 수 있습니다.

UniPro 사양의 버전 1.4에서는 스위치의 자세한 내용은 규정되어 있지 않지만 미래의 네트워크 환경에서 디바이스가 동작할 수 있도록 충분히 규정되어 있습니다.

L3 어드레싱

L3 주소의 역할은 인터넷상의 패킷의 IP 주소와 동일하지만 UniPro 디바이스는ID 주소의 길이는 7비트뿐입니다.따라서 네트워크에는 최대 128개의 UniPro 디바이스를 설정할 수 있습니다.UniPro에 관한 한 모든 UniPro 디바이스는 동등하게 생성됩니다.PCI Express나 USB와는 달리 어떤 디바이스에서도 다른 디바이스와의 통신을 주도적으로 실시할 수 있습니다.이것에 의해, UniPro 는 1 개의 마스터를 가지는 버스가 아니고, 진정한 네트워크가 됩니다.

L3 패킷

다음 그림은 L2 프레임의 첫 번째 L2 페이로드 바이트에서 시작하여 L2 프레임의 마지막 L2 페이로드 바이트에서 끝나는 L3 패킷의 예를 보여 줍니다.단순성과 효율성을 위해 1개의 L2 프레임으로 전송할 수 있는 L3 패킷은 1개뿐입니다.이는 UniPro에서는 L2 프레임, L3 패킷 및 L4 세그먼트(아래 참조)의 개념이 거의 동의어에 가까울 정도로 밀접하게 정렬되어 있음을 의미합니다.그러나 사양은 엄격하게 레이어드 방식으로 기술할 수 있도록 구별(및 "색상")되어 있습니다.

L3 쇼트헤더 패킷 구조

UniPro 쇼트헤더 패킷은 L3 정보에 단일 헤더바이트를 사용합니다.여기에는 7비트 L3 수신처 주소가 포함됩니다.나머지 비트는 쇼트헤더 패킷 포맷을 나타냅니다.쇼트 헤더 패킷의 경우, L3 송신원주소는 헤더에 포함되지 않습니다.이것은, 2개의 통신 디바이스가 이러한 정보를 사전에 교환하고 있는 것을 전제로 하기 때문입니다(접속 지향 통신).

데이터 프레임 내의 UniPro 쇼트헤더 패킷
ctl b15 b14 b13 b12 b11 b10 b09 b08 b07 b06 b05 b04 b03 b02 b01 b00
1 데이터 시작 프레임 제어 기호(헤더)
0 L3 쇼트헤더 패킷 페이로드
0 패킷 페이로드
0 :
0 패킷 페이로드
1 데이터 프레임 종료 제어 기호(트레일러)
0 16비트 체크섬

L3 롱헤더 패킷

롱헤더 패킷은 향후 버전의 UniPro 사양에 도입될 예정입니다.따라서 현재 UniPro v1.4 사양에서는 포맷이 정의되어 있지 않습니다(1비트 제외).다만, UniPro v1.4 에서는, UniPro v1.4 준거 디바이스는 소프트웨어를 개입시켜 업그레이드할 수 있다고 가정하고, 긴 헤더의 패킷을 송수신 할 수 있는 후크를 정의하고 있습니다.UniPro v1.4의 "롱헤더 트랩" 메커니즘은 수신된 L2 데이터 프레임의 페이로드(헤더와 페이로드가 있는 L3 패킷)를 처리를 위해 L3 확장(예를 들어 소프트웨어)에 전달하기만 하면 됩니다.또, L3 확장으로부터의 L2 프레임의 payload를 송신용으로 받아 들일 수도 있습니다.이 메커니즘은 UniPro v1.4 디바이스를 업그레이드하여 아직 정의되지 않은 롱헤더 패킷을 필요로 하는 프로토콜을 지원하는 것을 목적으로 합니다.

L3 보증

스위치의 자세한 내용은 UniPro v1.4 사양에서는 아직 범위외이지만, L3에서는 UniPro v1.0/v1.1/v1.4 디바이스를 네트워크상의 엔드 포인트로 사용할 수 있습니다.따라서 상위 계층 프로토콜에 대한 많은 속성을 보장합니다.

  • 패킷이 행선지 디바이스에 전달되는 것(및 존재하지 않는 디바이스에 행선지가 지정된 패킷은 폐기됩니다).
  • L3 송신원이 단일 트래픽클래스 내의 1개 이상의 쇼트헤더 패킷으로 단일 L3 수신처에 송신하는 페이로드가 올바른 페이로드(신뢰성)로 순서대로 도착한다.

트랜스포트 레이어(L4)

UniPro의 Transport 계층의 특징은 특별히 복잡하지 않다. 왜냐하면 기본적인 통신 서비스는 이미 하위 프로토콜 계층에 의해 처리되었기 때문이다.L4는 기본적으로 네트워크상의 여러 디바이스 또는 이들 디바이스 내의 여러 클라이언트가 제어된 방식으로 네트워크를 공유할 수 있도록 하는 것입니다.L4의 기능은 컴퓨터 네트워크(TCP, UDP 등)에서 볼 수 있는 기능과 거의 비슷하지만 PCI Express, USB, 온칩버스 등 로컬버스에서는 거의 볼 수 없습니다.

UniPro의 L4는 UniPro 사양의 최상위 프로토콜 계층이기 때문에 특별한 의미를 가집니다.애플리케이션은 UniPro와 대화하기 위해 L4의 상위 인터페이스를 사용해야 하며 L4를 바이패스하지 않고 하위 계층에 직접 액세스해야 합니다.데이터의 송수신을 위해서 제공되는 L4의 상부에 있는 인터페이스는 동작 레벨 또는 기능 레벨로 정의되어 있는 것에 주의해 주세요.이 높은 수준의 추상화를 통해 구현 옵션을 제한할 필요가 없습니다.따라서 규격에는 비표준적인 예로서 신호 레벨인터페이스를 가진 부속서가 포함되어 있지만 UniPro 실장은 최상위 인터페이스에 하드웨어 신호 또는 소프트웨어 기능 콜의 특정 세트를 가질 필요가 없습니다.

L4 기능

UniPro의 Transport 계층은 UniPro 디바이스 내에서 추가 수준의 주소 지정을 제공하는 것으로 볼 수 있습니다.이것.

  • 를 사용하면 UniPro 디바이스가 여러 논리 데이터 스트림을 사용하여 다른 UniPro 디바이스와 통신할 수 있습니다(예를 들어 오디오 및 비디오 및 제어 정보를 개별적으로 송신하는 등).
  • 그럼 UniPro 디바이스가 복수의 논리 데이터 스트림을 사용하여 다른 여러 디바이스에 동시에 접속할 수 있습니다(이를 위해서는 향후 버전의 UniPro에서 지원될 스위치가 필요합니다).
  • 에, 네트워크의 congestion의 리스크를 경감하는 메카니즘을 나타냅니다.
  • 는 바이트 스트림을 메시지스트림으로 구조화하는 메커니즘을 제공합니다.

이러한 점에 대해서는, 이하에 자세하게 설명합니다.

L4 세그먼트

L4 세그먼트는 기본적으로 L3 패킷의 payload입니다.L4 헤더는 짧은 형식으로 1바이트로 구성되어 있습니다.짧은 L4 헤더의 메인필드는 5비트 "CPort" 식별자로 UniPro 디바이스 내의 서브주소로 간주되며 TCP 또는 UDP에서 사용되는 포트 번호와 다소 유사합니다.따라서 모든 세그먼트(짧은 헤더 포함)는 특정 UniPro 디바이스의 특정 CPort로 주소 지정됩니다.

데이터 프레임 내의 UniPro 세그먼트
ctl b15 b14 b13 b12 b11 b10 b09 b08 b07 b06 b05 b04 b03 b02 b01 b00
1 데이터 시작 프레임 제어 기호(헤더)
0 L3 쇼트 헤더 L4 쇼트 헤더
0 세그먼트 페이로드
0 :
0 세그먼트 페이로드
1 데이터 프레임 종료 제어 기호(트레일러)
0 16비트 체크섬

세그먼트 헤더의 1비트를 사용하면 세그먼트를 긴 세그먼트헤더로 정의할 수도 있습니다.UniPro v1.4 에서는, 이러한 세그먼트 포맷의 구조는 정의되어 있지 않습니다(이 싱글 비트는 제외).긴 헤더 세그먼트는 L3 섹션에서 설명하는 긴 헤더 트랩을 통해 생성할 수 있습니다.

L4 접속

UniPro는 서로 통신하는 CPort 쌍을 Connection이라고 부릅니다(따라서 CPort의 C).접속 셋업은 1개의 CPort가 특정 L3 디바이스의 특정 L4 CPort로 수신처 지정되는 세그먼트를 작성하도록 초기화되었음을 의미합니다.특정 L2 트래픽클래스를 사용하는 IDUniPro 접속은 쌍방향이기 때문에, 송신원CPort 에 데이터를 반송할 수 있도록 행선지CPort 도 설정됩니다.

UniPro 1.0/1.1 에서는, 접속 설정은 실장 마다 다릅니다.

UniPro v1.4의 경우 연결 설정은 비교적 정적인 것으로 간주됩니다.쌍으로 구성된 CPort의 파라미터는 DME를 사용하여 로컬 및 피어 디바이스에서 대응하는 연결 속성을 설정함으로써 구성됩니다.이는 향후 UniPro 버전에서 동적 연결 관리 프로토콜로 보완될 예정입니다.

L4 흐름 제어

CPort에는 피어 또는 연결된 CPort의 버퍼 공간을 추적하기 위해 사용할 수 있는 상태 변수도 포함되어 있습니다.이는 CPort가 데이터를 보유하기에 버퍼 공간이 부족한 CPort에 세그먼트를 전송하여 데이터 트래픽이 정지되는 상황을 방지하기 위해 사용됩니다.행선지의 이 트래픽은, 신속히 해결되지 않는 한, 네트워크 전체의 정체로 급속히 확대됩니다.이는 모든 사용자의 네트워크 퍼포먼스에 큰 영향을 미치거나 더 나쁜 경우 교착 상태를 초래할 수 있기 때문에 매우 바람직하지 않습니다.여기서 설명한 L4 메커니즘은 접속의 엔드포인트를 포함하기 때문에 End-to-End Flow Control(E2E FC; 엔드 투 엔드 플로우 제어)이라고 불립니다.

L4 흐름 제어와 L2 흐름 제어

L4 흐름 제어는 L2 흐름 제어를 보완합니다.양쪽 모두, 송신기가 수신기에 충분한 버퍼 영역이 있는 것을 인식할 때까지 일시 정지하는 것으로 동작합니다.단, L4 흐름 제어는 CPort 쌍(잠재적으로 여러 홉) 간에 동작하며 연결을 서로 분리하는 것을 목적으로 합니다(가상 와이어 유사).반면 L2 흐름 제어는 홉 단위로 이루어지며 리시버 버퍼 공간 부족으로 인한 기본적인 데이터 손실을 방지합니다.

L4 흐름 제어 적용 가능성

E2E FC는 커넥션 지향 통신에만 사용할 수 있지만 현재 UniPro의 L4는 대체 옵션을 지원하지 않습니다.E2E FC는 디폴트로 이니블로 되어 있습니다만, 디세블로 할 수 있습니다.이것은 일반적으로 권장되지 않습니다.

L4 안전망

UniPro는 CPort가 전송되는 모든 데이터를 정지 없이 흡수하도록 하는 "안전망" 메커니즘을 제공합니다.스톨이 검출되었을 경우, 엔드 포인트는, 네트워크상의 데이터 플로우를 유지하기 위해서, 그 CPort 에 착신한 착신 데이터를 폐기합니다.이는 시스템레벨에서의 그레이스 풀 열화의 한 형태로 간주할 수 있습니다.네트워크상의 1개의 접속이 수신한 데이터의 속도를 따라가지 못하는 경우, 다른 디바이스나 다른 접속은 영향을 받지 않습니다.

L4 및 메시지

UniPro L4를 사용하면 CPort 쌍 간의 접속을 통해 단일 바이트 스트림이 아닌 이른바 메시지 스트림(각각 바이트)을 전송할 수 있습니다.메시지 경계는 UniPro를 사용하는 애플리케이션 수준 프로토콜에 의해 트리거되며 세그먼트 헤더의 비트를 통해 신호화됩니다.이 메시지 종료 비트는 L4 세그먼트의 마지막 바이트가 응용 프로그램레벨 메시지의 마지막 바이트임을 나타냅니다.

UniPro는 애플리케이션으로부터 메시지 경계를 바이트 스트림에 삽입할 장소와 시기를 지시받아야 합니다. 경계는 UniPro 자체에 특별한 의미가 없으며 UniPro 위에 상위 계층 프로토콜을 구축하기 위한 서비스로 제공됩니다.메시지는 (예를 들어 인터럽트를 통해) 애플리케이션에 데이터 단위가 완료되어 처리될 수 있음을 나타내는 데 사용할 수 있습니다.메시지는, 애플리케이션에 따라서는 재동기 포인트를 실장하기 위한 견고하고 효율적인 메카니즘으로서도 도움이 됩니다.

UniPro v1.4에는 메시지프래그먼트의 개념이 도입되어 있습니다.프래그먼트는 애플리케이션과 CPort 간에 전달되는 메시지의 일부입니다.이 옵션은 UniPro 스택으로부터의 정보(수신 메시지 또는 백프레셔 등)에 근거해 메시지 작성을 중단해야 하는 UniPro 상단의 애플리케이션을 지정하는 경우에 편리합니다.

L4 보증

L4의 메커니즘은 상위 계층 프로토콜에 많은 보증을 제공합니다.

  • CPort는 링크 또는 네트워크가 데이터를 전달할 수 있는 한 항상 데이터를 계속 수신한다는 점에서 정지할 수 없습니다.
  • 접속의 CPort에 바인드된 응용 프로그램이 정지하여 (단기간 또는 장기간) 데이터 흡수에 실패해도 동일 디바이스 또는 다른 디바이스로의 다른 접속에는 영향이 없습니다.
  • CPort가 착신 데이터 스트림에 대응할 수 있는 경우 CPort에서 다른 CPort로 전송되는 데이터 스트림은 항상 올바른 메시지 경계 정보와 함께 순서대로 그대로 도착합니다.
  • CPort가 착신 데이터 스트림을 따라가지 못하는 경우(데이터 누락으로 인해) 하나 이상의 메시지가 파손될 수 있으며 수신자에게 이 오류 상태가 통지됩니다.
  • 애플리케이션 수준 프로토콜은 전송된 L4 메시지(예: 질문 또는 명령)에 대한 피어 응답(예: 응답 또는 확인)을 기다리는 것이 안전합니다.그러나 애플리케이션 수준 프로토콜이 전송된 부분 메시지에 대한 피어 응답을 기다리는 것은 안전하지 않습니다.
  • 수신된 짧은 헤더 패킷/세그먼트의 내용은 항상 올바릅니다.롱헤더 트랩인터페이스에서의 전달은 보증되지 않지만, 향후의 프로토콜 확장은 이러한 패킷의 전달을 신뢰성 있게 할 계획입니다.이 프로토콜 확장은 롱헤더 트랩 위에 있는 소프트웨어로 구현할 수 있습니다.

디바이스 관리 엔티티(DME)

DME(Device Management Entity)는 UniPro 스택 내의 레이어를 제어합니다.모든 레이어의 제어 파라미터와 상태 파라미터에 액세스 할 수 있으며, 링크의 전원 모드 전환을 관리하며, 스택의 부팅, 휴지 상태 및 리셋을 처리합니다.또, 링크상의 피어 UniPro 스택을 제어하는 수단을 제공합니다.

레퍼런스

  1. ^ MIPI Alliance Specification for Unified Protocol (UniProSM) v1.10.01 에서는 MIPI 웹사이트 계정이 필요합니다.
  2. ^ MIPI 사양의 개요.DSI, CSI 및 UniPro 사양에서는 D-PHY가 사용되고 UniPro, DigRFv4 및 LLI 사양에서는 M-PHY가 사용됩니다.
  3. ^ D-PHY v1.00.00용 MIPI 얼라이언스 사양. MIPI 웹사이트 계정이 필요합니다.
  4. ^ M-PHY 버전 1.00.00의 MIPI 사양. MIPI 웹사이트 계정이 필요합니다.