本研究では、汎用オペレーティングシステムにおけるPeer-to-Peer Direct Memory Access (P2P DMA)を用いた高速なネットワークI/Oに関する研究を行った。近年、GPUやSmart NICといった周辺デバイスへの需要の高まりもあり、コンピュータに周辺デバイスを接続するためのPCIeのスピード向上が目覚ましい。本研究はこのPCIeに着目し、CPUを介さないデバイス主導のネットワークI/Oによる、物理デバイスの性能を引き出した高速な通信の実現を目指す。
2021年度までに、メインメモリをバイパスするP2P DMAを用いた高速ネットワークI/O手法として、1台のコンピュータに搭載された2枚のEthernet NIC同士がPCIe越しに直接パケットをやり取りする手法を開発し、CPU主導のパケット処理と比較して、帯域幅と遅延の双方で高い性能を発揮できることを確認した。
2022年度は、これまでに実装したP2P DMAを利用したEthernet NICを基盤に、実際のバックボーンネットワーク向けソフトウェアルータとして利用できるようにするための拡張を行った。NICに搭載されるメモリのサイズには限度があり、例えば90万経路を超えるインターネットフルルートや、多数のAccess Control ListをNICで処理することは難しい。拡張した手法では、パケットの転送はNIC間のP2P DMAで行いつつ、パケットの宛先IPアドレスに基づく転送先決定のみをホストOSのCPUで実行する。本手法によって、P2P DMAを用いる一アプリケーションとして、汎用サーバにおけるデバイス主導のパケット転送に基づく高速なソフトウェアルータが実現された。
|