Intel DDIO

2023. 11. 8. 14:45운영체제

기존의 컴퓨터 시스템에서 데이터 전송은 어떻게 이루어질까?

 

데이터 전송은 패킷의 단위로 이루어진다. 데이터 전송을 하려고 하면 먼저 컴퓨터에서는 데이터를 패킷 단위로 나눈다. 그리고 데이터 패킷은 큐에 들어가게 된다. 큐에 있는 패킷을 보낼 때가 되면 CPU는 NIC에게 네트워크로 패킷을 보내게 시킨다. NIC는 Network Interface Card로 컴퓨터가 네트워크에 물리적으로 연결될 수 있게 해준다. 

NIC는 CPU의 명령을 받고 데이터 패킷을 네트워크 케이블 (이더넷)으로 보낼 수 있는 전기 신호나 light pulse로 변환한다. 

 

전송은 이렇고 수신은 다음과 같이 일어난다.

NIC에서 패킷을 받게 되면 NIC의 리시브 버퍼에 패킷들이 복사된다. 패킷이 리시브 버퍼에 잘 들어가면 NIC는 CPU에게 인터럽트 시그널을 보낸다. CPU는 ISR (Interrupt Service Routine)을 실행한다.

 

ISR에서 CPU는 NIC의 리시브 버퍼에서 패킷을 읽고 시스템 메인 메모리 (RAM)에 저장한다. 

 

이런 전통적인 과정을 살펴보면 CPU개입이 일어나는 것을 확인할 수 있다. 그리고 리시브 버퍼에서 메모리로 저장하는 과정이 필요로 한다. 

 

최근의 I/O 장치들은 LLC로 바로 dma하는 기능을 사용하고 있다. 이 기능을 지원하는 것이 인텔 DDIO이다. 

 

'운영체제' 카테고리의 다른 글

리눅스 커널 컴파일 시 주의사항  (0) 2023.05.31