当前位置:首页 > 内存 > 正文

内存访问有哪些方式(电脑一开机内存就占用50%)

  • 内存
  • 2024-08-09 04:35:35
  • 7880

一、直接内存访问(DMA)对内存的访问为什么比CPU对内存的访问的优先级更高?使用DMA方法处理的对象通常是快速外设,数据存储在高速缓冲区中。如果缓冲区已满,并且请求CPU没有及时收到响应,则缓冲区中的数据可能会被覆盖。,因此,DMA内存访问的优先级高于CPU的内存访问。
二、什么是直接内存访问(DMA)DMA(DirectMemoryAccess),即直接内存访问,是一种快速传输数据的机制。数据传输可以是从适配卡到存储器、从存储器到适配卡或从一个存储器到另一个存储器。
用它进行数据传输不需要CPU参与。每台计算机主板上都有一个DMA控制器,计算机通常对其进行编程,并使用适配器上的ROM(类似于软盘驱动器控制器上的ROM)来存储控制DMA传输数据的程序。一旦控制器初始化完成并开始数据传输,DMA就可以与CPU隔离并独立完成数据传输。
在DMA传输开始的短时间内,本质上有两个处理器在为其工作,一个执行程序代码,另一个传输数据。使用DMA传输数据的另一个好处是数据直接在源地址和目标地址之间传输,无需中介。如果通过CPU将字节从适配卡传输到存储器,则需要两步操作。首先,CPU将这些字节从适配卡读取到内部寄存器中,然后将它们从寄存器传输到内存中的适当地址。DMA控制器将这一操作简化为一步,它控制总线上的控制信号,使写入字节一次完成。这大大提高了计算机的运行速度和工作效率。
随着当今计算机的发展,DMA已经不再用于从内存到内存传输数据了,因为CPU的速度很快,这样做比使用DMA控制要快,但必须在适配卡和适​​配器之间完成。内存间要传输数据,DMA仍然是最好的选择。为了将数据从适配卡传输到存储器,DMA同时触发总线从适配卡读取数据(即I/O读操作)和总线将数据写入存储器。激活一次I/O读操作是让适配卡将一个单位的数据(通常是字节或字)放到PC数据总线上,由于此时内存写总线也被激活,所以从PC总线上读取数据同时复制到内存。
直接内存访问(DMA)方法是一种完全由硬件执行I/O交换的工作方法。DMA控制器从CPU手中接管总线的完全控制权。数据交换不经过CPU,而是直接发生在内存和I/O设备之间。DMA控制器使用以下三种方法:
①阻止CPU访问内存:当外围设备请求发送一组数据时,DMA控制器向CPU发送信号。DMA控制器获得总线控制权后,开始数据传输。一批数据传输完毕后,DMA控制器告诉CPU内存可用,并将总线控制权返回给CPU。
②循环传输:当I/O设备没有DMA请求时,CPU根据程序的需要访问内存:一旦I/O设备有DMA请求,I/O设备就传输或几个循环。
③DMA和CPU内部交替访问:一个CPU周期可以分为2个周期,一个保留给DMA控制器访问,另一个保留给CPU访问。无需申请、分配和归还公交车使用权。