【SoC基础】DMA的工作原理

:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
:文章若有幸对你有帮助,可点赞 收藏 ⭐不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处

文章目录

  • DMA的诞生背景
  • DMA最早是哪家公司发明的?
  • DMA工作过程


DMA的诞生背景

DMA(Direct Memory Access,直接内存访问)的概念和技术是在计算机发展的早期阶段产生的。它的发明可以追溯到上世纪70年代。
在早期的计算机系统中,数据的传输通常是通过CPU介入进行的。当外部设备(如硬盘、网络接口等)需要将数据传输到内存或从内存读取数据时,CPU需要花费大量的时间和资源来处理这些操作。这导致了系统性能的瓶颈,尤其是对于需要高速数据传输的应用。
为了解决这个问题,研究人员开始尝试设计一种机制,使外部设备能够直接和内存进行数据传输,而不需要CPU的干预。这就是DMA技术的核心思想。
IBM是最早引入DMA的计算机制造商之一。1970年,IBM发布了IBM System/370系列计算机,其中一些机型引入了DMA技术,实现了高速数据传输。随着时间的推移,DMA技术逐渐在其他计算机系统中得到广泛采用。
DMA的发明和发展使得数据传输可以在CPU的控制下进行,从而显著提高了系统的性能和效率。它为高速数据传输提供了重要的基础,使得计算机能够更好地处理需要大量数据处理的任务。在今天的计算机系统中,DMA技术仍然扮演着重要的角色。

【SoC基础】DMA的工作原理_第1张图片
【SoC基础】DMA的工作原理_第2张图片

DMA最早是哪家公司发明的?

DMA(Direct Memory Access,直接内存访问)的概念和技术最早由英特尔(Intel)公司在上世纪70年代初发明和推广。
在1970年代初,英特尔开发了一系列微处理器,其中包括8080和8086等型号。随着计算机系统的发展,数据传输的效率成为一个重要问题。为了解决这个问题,英特尔的工程师们引入了DMA技术,以实现外设设备和内存之间的直接数据传输,减轻了CPU的负担。
1975年,英特尔推出了一款名为8257的芯片,即DMA Controller(DMA控制器),用于实现DMA功能。这是英特尔在商业市场上首次推出的DMA解决方案。随后,英特尔继续在后续的处理器和芯片组中加入了对DMA技术的支持,使其成为计算机系统中的标准功能。
英特尔的DMA技术对于计算机系统的发展具有重要意义,它提高了数据传输效率,降低了CPU的负担,使系统能够更好地处理需要高速数据传输的任务。到今天,DMA技术仍然是现代计算机体系结构的重要组成部分,并被广泛应用于各种计算设备和领域。

DMA工作过程

DMA(Direct Memory Access,直接内存访问)是一种数据传输技术,其工作过程如下:
1. 配置DMA:首先,CPU通过访问DMA控制器的配置寄存器来设置DMA传输的相关参数,包括传输方向(读取或写入)、数据长度、源设备地址和目标内存地址等。
2. 外设设备请求:当外设设备需要进行数据传输时,它发送一个DMA请求信号给DMA控制器。DMA请求信号可以是硬件触发的,例如外设完成一次数据读取或写入操作后触发;也可以通过软件控制,通过编程触发DMA请求信号。
3. DMA控制权转移:DMA控制器接收到DMA请求信号后,它会获取对总线的控制权,暂时剥夺CPU对总线的访问权限。DMA控制器会代表外设设备和内存进行数据传输,并控制总线的访问。
4. 内存地址传输:DMA控制器通过源设备地址寄存器和目标内存地址寄存器来确定数据传输的起始位置和目标位置。它会使用内存地址来读取或写入数据。
5. 数据传输:DMA控制器根据配置的参数进行数据传输。它可以按字节、字、块等单位进行数据传输。数据可以从外设设备读取到内存,或者从内存写入到外设设备。DMA控制器可以通过主存储器和外设设备之间的直接内存访问来传输数据,而无需CPU的干预。
6. DMA传输完成中断:当DMA传输完成后,DMA控制器可以生成一个中断信号,通知CPU传输已经完成。CPU可以通过处理该中断信号来进行后续操作,例如处理数据或更新状态。
通过使用DMA技术,外设设备能够直接与内存进行数据交换,大大减轻了CPU的负担,并提高了数据传输的速度和效率。DMA在各种应用中被广泛使用,特别适用于高速数据传输、大量数据处理和实时数据流等场景。

【SoC基础】DMA的工作原理_第3张图片

你可能感兴趣的:(#,SoC,服务器,运维)