do{학습}while

USB 속도 저하 문제 해결 사례 본문

TROUBLE SHOOTING

USB 속도 저하 문제 해결 사례

하이오야이 2025. 8. 1. 10:17

문제 인식

  • 영상 데이터를 USB로 전송하는 과정에서 프레임 지연 현상 발생
  • blocking 함수인 write() 함수 1회 호출 시 평균 16ms, 최대 25ms 소요됨을 확인

원인 분석

  • gettimeofday() 기반으로 전처리 시간과 write 시간 분리 측정
  • 분석 결과, 전처리 시간은 짧았고, write 구간에서 가장 큰 시간 지연 발생

해결을 위한 접근

  1. 디바이스 측 점검
    • USB 2.0 High-Speed 환경 및 FIFO 용량(4KB) 확인
    • write 단위를 4096B 이하로 조정하여 FIFO block 방지
    • 전처리 구간(프레임 복사, 지연 계산 등)에서 추가 병목 없는 것 확인
  2. 호스트 환경 요청
    • 수신 애플리케이션의 빠른 데이터 수신 대기(polling)지연 없는 read 처리 요청
    • 수신 처리 병목이 발생할 경우 ACK 응답 지연으로 인한 block 가능성 설명

결과

  • 전송 흐름 내 병목 지점을 명확히 식별
  • 디바이스와 호스트 간 병렬 전송 최적화를 위한 기반 마련