组成原理-存储器

计算机三级存储体系:主存,辅存,寄存器。 寄存器在CPU芯片的内部高速缓冲存储器也制作在CPU芯片内。而主存储器由插在主板内存插槽中的若干内存条组成。
内存的质量好坏与容量大小会影响计算机的运行速度。

内存 是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。其作用是用于暂时存放CPU中的运算数据,以及与硬盘外存交换的数据
。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。  
 

  主存  保存计算机正在执行的当前数据和指令,远慢于CPU速度。所以引入寄存器和高速缓存

  高速缓冲存储器(Cache)  比主存小,但是比寄存器大,远大(根据程序的局部性原理,把程序放入高速缓存,可大幅度提高速度)

紧靠内存的一级高速缓存速度最高,容量较小。 

半导体存储器从使用功能上分,有随机存储器 (Random Access Memory,简称 RAM),又称读写存储器;只读存储器(Read Only Memory,简称为ROM)。
一种内存储器一种内存储器(内存条)
1.随机存储器(Random Access Memory)
  • RAM 是一个临时存放代码和数据的地方,CPU 要执行代码时,就要到内存(RAM)中去取指令。(ROM呢)
随机存储器是一种可以随机读∕写数据的存储器,也称为读∕写存储器。RAM有以下两个特点:一是可以读出,也可以写入。读出时并不损坏原来存储的内容,只有写入时才修改原来所存储的内容。二是RAM只能用于暂时存放信息,一旦断电,存储内容立即消失,即具有易失性。
 
 
RAM通常由MOS型半导体存储器组成, 动态( Dynamic RAM)和静态(Static RAM)两大类。静态是指只要保持通电,里面的数据就能一直保存(不需要刷新电路即能保存它内部存储的数据)。动态就是里面的数据需要周期性地更新( 需要周期性刷新电路 保存它内部存储的数据)。
SDRAM:内存条ddr3就是sdram。
DRAM的特点是集成度高,主要用于大容量内存储器
SRAM的特点是存取速度快,主要用于高速缓冲存储器
2.只读存储器(Read Only Memory)
ROM原来存储的内容是采用掩膜技术由厂家一次性写入的,并永久保存下来。它一般 用来存放专用的固定的程序和数据。只读存储器一旦写入信息后,无需外加电源来保存信息,不会因断电而丢失。
按照是否可以进行在线改写来划分,又分为不可在线改写内容的ROM,以及可在线改写内容的ROM。不可在线改写内容的ROM包括掩膜ROM(Mask ROM)、可编程ROM(PROM)和可擦除可编程ROM(EPROM);可在线改写内容的ROM包括电可擦除可编程ROM(EEPROM)和快擦除ROM(Flash ROM)。
3.CMOS存储器(Complementary Metal Oxide Semiconductor Memory,互补的金属氧化物半导体内存)
CMOS内存是一种只需要极少电量就能存放数据的芯片。由于耗能极低,CMOS内存可以由集成到主板上的一个小电池供电,这种电池在计算机通电时还能自动充电。
因为CMOS芯片可以持续获得电量,所以即使在关机后,他也能保存有关计算机系统配置的重要数据。
 
  存储器

其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;

集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;

系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。

计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。

外存通常是磁性介质或光盘等,能长期保存信息。

内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

主板上可以集成小块电池,内存条,高速缓冲存储器(cpu的部件之一)。

DMA

(直接存储器访问)

 原理是 外 部设备  不通过CPU而直接与  内存   交换数据 

DMA控制器   让   CPU不参与数据传输 , 减轻CPU的负担。

在现代操作系统中,外设有数据到来时,基本上都采用中断方式通知CPU,操作系统响应中断,然后再从外设读取数据,这时,如果外设的数据比较频繁,那么是否每到一个数据都中断一次呢??这样 CPU 就非常频繁地被外调中断打断,操作系统在处理中断时要浪费一定时间,而且 CPU 读外部 IO 速度也很慢,这样的话,大量时间被用在了响应中断上,而去调度其它任务的时间减少,让人感觉系统响应速度不够,也会影响外设的数据传输速度(如果外设传输速度太快,操作系统就有可能丢失部分数据),

由此引出 DMA 的机制:

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

  • CPU 工作的核心就是一个 PC 指针,PC 指针指向什么地址,CPU 就会把相应地址处的二进制数据送至内部译码器进行译码后运行,
DMA通道
每个DMA通道有一个地址寄存器和一个计数寄存器。 
要初始化数据传输时,设备驱动程序一起设置 DMA通道的地址寄存器和计数寄存器,及数据传输的方向(读取或写入),然后指示DMA硬件来完成这个传输动作。当传输结束时设备会以中断的方式通知CPU。

DMA与通常中断方式 

通常中断方式是在数据缓冲寄存器(暂时存放从内存中读出的指令字或数据)满后,发中断请求,CPU进行中断处理
DMA方式则是以数据块(外设里的数据暂时放在RAM中,供cpu拿指令)为单位传输的,在所要求传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数

总结:

  DMA方式,仅仅是开始和结尾借用CPU一点时间,其余不占用CPU任何资源,中断方式是程序切换,每次操作需要保护和恢复现场

中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。

DMA方式(和通道方式)较好地解决了上述问题。

这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。

中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。

DMA方式 较好地解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。

原文地址:https://www.cnblogs.com/yizhizhangBlog/p/10169247.html