1ms 미만 간격으로 메모리가 사전 로드된 페이로드를 사용하여 원시 이더넷 프레임 생성

1ms 미만 간격으로 메모리가 사전 로드된 페이로드를 사용하여 원시 이더넷 프레임 생성

메모리에 미리 로드된 페이로드를 사용하여 원시 이더넷 프레임을 생성하고 싶습니다. 이더넷 프레임(10~60개의 전체 프레임)은 예외 없이 1ms 간격으로 생성되어야 합니다.

나는 이것을 하기 위해 무엇을 선택하겠는가? 내 관심사는 그러한 애플리케이션의 실시간 요구 사항입니다. 중단을 최소화해야 하며 프로세스에 실행 전용 코어가 있어야 할까요? Linux/소프트웨어가 옵션이 아닌 경우 대안은 FPGA입니다.

잠재적인 해결책을 듣기를 기대합니다.

답변1

1ms이면 일부 이더넷 프레임을 생성하는 데 충분하지만 일반적인 Linux 시스템에서는 가끔 일시 중지가 발생하지 않을 것이라고 기대할 수 없습니다. 프로세스를 높은 우선순위로 설정하더라도 항상 1ms 기한을 설정할 수는 없을 것 같습니다.

실시간리눅스실시간 운영 체제와 Linux를 결합합니다. Linux는 실시간 스케줄러에서 실시간이 아닌 우선 순위 작업으로 실행됩니다.

RTLinux에 대한 경험이 부족하여 구체적인 조언을 드릴 수는 없지만 이더넷 드라이버가 포함되어 있으므로 귀하의 사용 사례에 적합해 보입니다.

답변2

매우 난해한 배포판을 사용하지 않는 한 Linux 또는 UNIX 시스템의 일반적인 파생물은 라이브가 아닙니다. 예외 없이 1밀리초와 같은 시간 조각을 보고 있다면 다른 곳, 즉 실시간 운영 체제를 살펴봐야 합니다. Linux에서 누가 무엇을 하라고 하든 최선을 다해야 합니다. CPU, I/O 또는 기타 리소스에 대한 경합이 있는 경우 프로세스는 계속 실행되지만 한두 비트를 건너뛰거나 예상보다 느려질 수 있습니다. 1ms 간격으로 더 빨라졌습니다. 이것은 이상이 아닙니다. 이것은 의도적으로 설계된 것입니다.

관련 정보