향상 된 인터럽트 & DPC time을 IEEE 1394 장치에 Isoch 데이터 스트리밍

이 문서에서는 등시 데이터를 IEEE 1394 장치에 스트리밍하는 동안 프로세서 사용률 (인터럽트 & DPC time)이 크게 증가 하는 문제를 해결 하는 데 도움이 되는 정보를 제공 합니다.

원래 제품 버전:   Windows 7, Windows Server 2008
원래 수 (kbps):   2450963

증상

Windows IEEE 1394 버스 드라이버의 이전 버전과 비교 하 여 Windows 7 IEEE 1394 버스 드라이버를 통해 등시 데이터 1394를 스트리밍 하는 동안 프로세서 사용률 (인터럽트 및 DPC 시간)이 크게 증가 하는 것을 확인할 수 있습니다.

원인

특정 조건에서 Windows 7 IEEE 1394 버스 드라이버 (1394ohci.sys)는 송신 되거나 수신 되는 모든 등시 패킷에 인터럽트 및 결과 DPC (지연 된 프로시저 호출)를 생성 하는 1394 프로그램을 시작 합니다. 비슷한 조건에서 레거시 Windows IEEE 1394 버스 드라이버 (ohci1394.sys1394bus.sys)는 등시 전송을 시작 하는 ieee 1394 장치 드라이버에 지정 된 대로 각 등시 전송 (프레임)의 끝에 인터럽트 및 DPC만 생성 되도록 하기 위해 ieee 1394 호스트 컨트롤러를 실행 합니다.

일반적으로 등시 데이터 전송은 비디오 프레임이 나 오디오 샘플과 같이 의미 있는 데이터 단위를 전송 하기 위해 여러 등시 데이터 패킷을 필요로 합니다. 이 전송에 사용 되는 버퍼를 설명 하는 데 사용 되는 Isoch 설명자 구조에서 콜백 루틴을 지정 하 여 IEEE 1394 장치 드라이버에이를 알릴 수 있습니다. 이 Isoch Descriptor structure는 I/o 요청을 통해 Microsoft Windows IEEE 1394 버스 드라이버에 제출 되며 REQUEST_ISOCH_ATTACH_BUFFERS , 요청 된 등시 전송을 수행 하기 위해 IEEE 1394 호스트 컨트롤러를 프로그래밍 하는 데 사용 됩니다.

이 문서에서 설명 하는 문제는 IEEE 1394 장치 드라이버가 전체 비디오 프레임이 나 오디오 샘플과 같이 각각의 데이터 패킷에 대해 설명 하는 Isoch 설명자 대신 각각 단일 패킷의 데이터를 설명 하는 Isoch 설명자를 전송 하는 경우 발생 합니다. 이 시나리오에서는 여러 Isoch 설명자가 패킷 당 하나씩 IEEE 1394 장치 드라이버에 의해 연결 되 고 콜백 루틴은 마지막 Isoch 설명자에만 지정 됩니다.

따라서 Windows 7 IEEE 1394 버스 드라이버는 데이터의 마지막 패킷이 전송 된 경우에만 지정 된 콜백 루틴을 호출 하지만 각 Isoch 설명자에서 설명 하는 데이터가 전송 된 후에 IEEE 1394 호스트 컨트롤러를 프로그램 하 여 인터럽트를 생성 합니다. 각 인터럽트는 Microsoft Windows 7 IEEE 1394 버스 드라이버의 인터럽트 처리기 및 DPC 루틴을 호출 하 여 인터럽트 및 DPC 시간이 증가 하 여 성능 모니터링 도구에서 관찰 될 수 있으며 전반적인 시스템 성능에 영향을 줄 수도 있습니다.

해결 방법

영향을 받는 IEEE 1394 장치 드라이버의 동작을 변경 하 여 각 데이터 패킷에 대해 Isoch 설명자를 전송 하는 대신 비디오 프레임이 나 오디오 샘플과 같이 의미 있는 각 데이터 단위에 대해 단일 Isoch 설명자를 전송 하도록 하 여이 문제를 해결할 수 있습니다. 또한 같은 양의 등시 데이터를 전송 하는 데 필요한 총 Isoch 설명자 수를 줄일 수 있으며, 일반적으로 각 I/o 요청과 관련 된 처리 오버 헤드를 줄여야 합니다 REQUEST_ISOCH_ATTACH_BUFFERS .

추가 정보

IEEE 1394 클라이언트 드라이버가 Microsoft IEEE 1394 버스 드라이버에 등시 전송을 전송 하는 방법에 대 한 자세한 내용은 다음 문서를 참조 하십시오.

적용 대상

  • Windows 7 Ultimate
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows 7 Starter
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter