'NDIS 6.2 RSS'에 해당되는 글 1건

  1. 2011.08.06 NDIS 6.2 RSS(Receive Side Scaling)


ANS 관련 설명을 읽다보니 "NDIS6.2 에서는 새로운 RSS 데이터 구조와 인터페이스가 도입"
이라는 신기한 문구가 보이길래 검색겸 정리!
RSS로 검색하면 구독용 RSS만 잔뜩 나와서 조금 검색하기가 힘들다 -_-

오늘 얘기할 Receive Side Scaling 은 다중 프로세서 시스템에서 패킷을 효율적으로 처리하는 아키텍처 입니다. 
보통의 경우는 패킷이 NIC에 왔을 때 인터럽트가 걸리고 미니포트의 ISR 에서 DPC 를 큐잉하여 DPC에서 전체 패킷을 받아오게 끔 하도록 되어 있는데 이 때 기존의 방식은 처음 인터럽트가 걸린 CPU 에서 패킷처리를 담당하게 됩니다.(DPC 큐잉이 동일 CPU에서 이루어지므로). 
RSS 방식은 이 시점에서 패킷에 대한 처리를 처음 인터럽트가 걸린 CPU가 아닌 다른 CPU 코어로 전달한다든지, 아니면 특정 연결을 하나의 CPU 로만 할당한다든지 하는 제어를 할 수 있습니다. 
한마디로 인터럽트에 대한 배분을 효율적으로 커스터마이징 하는 것이죠.

이렇게 되면 NIC 의 수신처리를 다수의 CPU 처리로 분산시켜서 IDLE 상태의 CPU가 발생되지 않게 할 수 있고, Shared 리소스에 대한 처리를 한 CPU 로만 지정하여 처리토록 함으로써 시스템 자원(스핀락 오버헤드 같은 것)의 리로딩을 줄여주게 됩니다.
꽤 쓸만하죠. 아니 요즘 멀티코어 시스템에선 이러한 기능을 갖는 랜카드가 필수적인 옵션으로 자리잡아가고 있습니다.


[링크 : http://zpacket.blogspot.com/2010/07/rssreceive-side-scaling.html]
 

Receive-Side Scaling (RSS) resolves the single-processor bottleneck by allowing the receive side network load from a network adapter to be shared across multiple processors. RSS enables packet receive-processing to scale with the number of available processors. This allows the Windows Networking subsystem to take advantage of multi-core and many core processor architectures.
 

[링크 : http://technet.microsoft.com/en-us/network/dd277646]
 

When Receive Side Scaling (RSS) is enabled, all of the receive data processing for a particular TCP connection is shared across multiple processors or processor cores. Without RSS all of the processing is performed by a single processor, resulting in inefficient system cache utilization.
 

[링크 : http://www.intel.com/support/network/adapter/pro100/sb/cs-027574.htm
 

Posted by 구차니