DMA

DeeLMind大约 3 分钟

DMA

DeeLMind 提示

原本设计为红队攻防,但如今确是游戏外挂的天下

什么是DMA

DMA代表直接内存访问(Direct Memory Access)。它是一种计算机系统中的技术,允许外部设备(如网络适配器、硬盘控制器、图形卡等)直接访问系统内存,而无需经过中央处理器(CPU)的介入。 通常情况下,当外部设备需要读取或写入系统内存中的数据时,需要CPU介入来执行这些操作。但是,在高性能和高效率的应用中,这种方式可能会导致CPU资源的浪费和系统性能的下降。 DMA技术通过允许外部设备直接与系统内存进行数据传输,可以显著提高系统性能和效率。在DMA操作中,外部设备和系统内存之间的数据传输是在CPU控制之外完成的,这意味着CPU可以同时执行其他任务,从而减少了CPU的负载并提高了系统的整体性能。 总的来说,DMA技术可以有效地提高计算机系统的数据传输速度和性能,尤其在需要大量数据传输的场景下,如视频处理、网络数据传输等。

DMA 直接访问系统内存的一般过程:

  • 请求DMA操作:外部设备(例如硬盘、网卡、显卡)需要执行DMA操作时,首先会发送DMA请求信号给DMA控制器。
  • DMA授权:DMA控制器接收到外部设备的DMA请求后,根据系统的DMA授权机制,决定是否授权该DMA操作。如果授权,则DMA控制器会为外部设备分配DMA通道,并允许其进行DMA操作。
  • 内存地址传输:外部设备获得DMA授权后,需要向DMA控制器提供要访问的系统内存地址。这通常是通过在系统总线上发送地址信息来完成的。
  • 数据传输:一旦外部设备提供了要访问的内存地址,DMA控制器会使用系统总线直接将数据从外部设备传输到系统内存,或者从系统内存传输到外部设备,而无需CPU的介入。这种直接数据传输可以大大提高数据传输的效率,减少了CPU的负载。
  • DMA完成:一旦DMA操作完成,外部设备会向DMA控制器发送DMA完成信号,以通知DMA操作已经结束。DMA控制器收到完成信号后,可以执行相应的操作,例如通知CPU或者外部设备,或者执行后续的DMA操作。

什么是PCIE

PCIE是指Peripheral Component Interconnect Express,即外围组件互连表达,它是一种计算机总线标准,用于连接各种外部设备到计算机主板。

DMA外挂

利用ASIC是专用集成电路(Application-Specific Integrated Circuit),但是当今没有现成的ASIC,说不定以后有人开发专业PCB。现在利用FPGA制作开发组件插入到计算机PCIE插槽,读取一台计算机游戏内存展示到另外一台计算机上,通常可以做FPS游戏地图透视等等。

开源项目

上次编辑于:
贡献者: DeeLMind