转自:https://zhuanlan.zhihu.com/p/463199854作者:Savir
本文欢迎非商业转载,转载请注明出处。
RDMA技术实现的是对远程内存的直接读写,整个体系都是围绕着内存访问和管理所搭建的。以前有一些读者在评论区留言或者私信问我一些关于内存的问题,相信很多刚入行的朋友也跟曾经的我一样被各种地址概念搞的焦头烂额。所以我就在这篇文章中讲解和澄清一些关于内存地址的基础知识,作为RDMA内存管理系列文章的“开胃菜”,扫除大家阅读后续文章的障碍。
本文是“Memory Region”和“Memory Window”等的前置文章,不需要任何RDMA背景,主要目的是科普基础知识,不做比较深入的探讨。内容如有错误之处欢迎大家在评论区指出。
硬件架构
我们先来看一下常见的服务器架构中几个硬件组件之间的关系,下图中的CPU通过总线和内存、以及PCIe RC(Root Complex)相连接,PCIe RC通过PCIe总线直接连接了GPU和PCIe Switch,Switch又连接了多个外设:
一种典型的服务器架构
简单介绍下各个组件:
CPU
CPU不用解释,需要注意图中的CPU内部集成了内存控制器Memory Controller,内存控制器主要负责处理CPU核发出的内存访问请求,对内存进行读写。