2013-09-01 1 views
1

32 비트/33MHz PCI 버스에서 실제 데이터 전송 속도는 얼마나됩니까? 32K 32 비트 샘플을 PCI 카드에서 Windows를 실행하는 Intel CPU로 전송해야합니다. 나는 블록이 1msec로 전송할 것이라고 생각하지만 40msec를 사용하고있다. PCI 보드에는 PLX PCI-9056이 있습니다. 우리는 가상 주소로 카드 메모리에 액세스하고 있지만 CPU가 벽돌을 벗겨서 데이터 전송률이 CPU 사용에 의해 지연되고 있다고 생각하게 만듭니다. 우리가 DMA에 가면, 1msec에 가까워 질까요? PXI SDK 사용자 매뉴얼은 다음과 같습니다 :DMA를 사용하여 PCI 버스를 통해 실제 데이터 속도가 향상 되었습니까?

"BAR 공간 메모리 읽기/쓰기는 일반적으로 상대적으로 느립니다. 일반적으로 읽기는 2-4MB/s에 불과합니다."

+0

PIO를 사용하여 전송합니까? 그렇다면 인텔 버스의 PCI 버스 분석기를 사용하여 버스가 시간의 약 1/8 만 사용된다는 것을 알았습니다. AMD와 동등한 제품에는 이와 같은 제한이 없습니다. 그렇다면 CPU 사용률은 병목 현상처럼 들립니다. CPU 사용률이 전송 자체와 관련이없는 경우에도 DMA가 도움이됩니다. – ash

+0

버스 마스터 장치가 최상의 성능을 얻어야합니다. 그게 선택의 여지가 있니? – ash

+0

또 다른 생각 - CPU가 고정되어 있으면 I/O 명령어에 앉아 있지 않은 것 같습니다. 보고있을 가치가있는 뭔가가있을 수 있습니다. – ash

답변

1

새로운 주소 사이클없이 여러 Dword를 전송할 수 있도록 버스트 모드 및 연속 버스트를 활성화 할 수 있는지 확인해야합니다. 이것은 일을 훨씬 빠르게 만듭니다. PLX PCI9056은이 옵션을 지원하지만 SW에 따라 설정해야합니다. 우리는 맞춤형 프레임 그래버 카드에서 DMA 마스터 전송으로 최대 90 MB/s의 데이터 전송률을 자랑합니다.

관련 문제