DMA(direct memory access)直接内存访问

  • DMA 其实是盗用了总线时间来传输数据,并且因为是硬件处理,因此大大加速了数据复制速度!

1. 基本概念

  • 辅存狭义上是平时讲的硬盘,准确地说,是外部存储器(须要经过 I/O 系统与之交换数据,全称为辅助存储设备)。
  • RAM 与 ROM:计算机内存储器的两种型号 
    • RAM-RamdomAccessMemory易挥发性随机存取存储器,高速存取,读写时间相等,且与地址无关,如计算机内存等。
    • ROM-Read Only Memory只读存储器。断电后信息不丢失,如计算机启动用的 BIOS 芯片。存取速度很低,(较RAM而言)且不能改写。因为不能改写信息,不能升级,现已不多使用。
    • ROM 和 RAM 是计算机内存储器的两种型号,ROM表示的是只读存储器,即:它只能读出信息,不能写入信息,计算机关闭电源后其内的信息仍旧保存,通常用它存储固定的系统软件和字库等。RAM表示的是读写存储器,可其中的任一存储单元进行读或写操做,计算机关闭电源后其内的信息将不在保存,再次开机须要从新装入,一般用来存放操做系统,各类正在运行的软件、输入和输出数据、中间结果及与外存交换信息等,咱们常说的内存主要是指RAM

2. CPU 操做外设:传统方式与 DMA 方式

一直不明白DMA(直接内存存储)dom

  • 传统方式:CPU 操做外设时,将外设的数据读到内部寄存器中,再将数据传送至内存中,之因此还要讲数据送到内存,在于 CPU 内部寄存器数量不多,通常都是靠 RAM 来临时存储大量的代码和数据的。 
    • CPU 工做的核心就是一个 PC 指针,PC 指针指向什么地址,CPU 就会把相应地址处的二进制数据送至内部译码器进行译码后运行,
    • RAM 是一个临时存放代码和数据的地方,CPU 要执行代码时,就要到内存(RAM)中去取指令。
  • DMA:在现代操做系统中,外设有数据到来时,基本上都采用中断方式通知CPU,操做系统响应中断,而后再从外设读取数据,这时,若是外设的数据比较频繁,那么是否每到一个数据都中断一次呢??这样 CPU 就很是频繁地被外调中断打断,操做系统在处理中断时要浪费必定时间,并且 CPU 读外部 IO 速度也很慢,这样的话,大量时间被用在了响应中断上,而去调度其它任务的时间减小,让人感受系统响应速度不够,也会影响外设的数据传输速度(若是外设传输速度太快,操做系统就有可能丢失部分数据),由此引出 DMA 的机制:spa

    外设直接将一块数据放在了 RAM 中,而后再产生一次中断,这样操做系统直接将内存中的那块数据传给想要获取这块数据的一个任务(或者放在内存的另外一空闲部分),此时,系统就少了频繁响应外设中断的开销,也少了读取外设 IO 的时间开销(读取 RAM 比读取外设 IO 要快不少),这就是 DMA 的做用所在!操作系统

相关文章
相关标签/搜索