组成原理-存储器 - 易芝

yizhizhangBlog 2021-12-10 原文


组成原理-存储器


计算机三级存储体系:主存,辅存,寄存器。 寄存器在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的工作负担。

posted on
2018-12-24 16:20 
易芝 
阅读(327
评论(0
编辑 
收藏 
举报

 

版权声明:本文为yizhizhangBlog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yizhizhangBlog/p/10169247.html

组成原理-存储器 - 易芝的更多相关文章

  1. 嵌入式系统的体系结构 图解 – 刘艺LiuYi

    嵌入式系统的体系结构 图解 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功 […]...

  2. 繁简体转换 – 笑看风云淡

    繁简体转换 代码    \’繁体转简体      Return (Microsoft.Visual […]...

  3. 【原】Sql中时间处理函数 DateAdd & DateDiff

    ① DateAdd 函数返回两个日期之间的时间和格式:dateadd (interval, date1, da […]...

  4. jQuery ————> 验证表单

    简单的东西重复做,做多了之后,才能说熟能生巧。 做好一个精美的页面,固然是好,但是,一个页面除了写好之外,我们 […]...

  5. 结构型设计模式 – 组合模式详解

    基本介绍 1、组合模式(Composite Pattern)又叫部分整体模式,他创建了对象组的树形结构,将对象 […]...

  6. 从word中复制图片到在线编辑器中 – Xproer-松鼠

    从word中复制图片到在线编辑器中 由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图 […]...

  7. 大数据实战:用户流量分析系统 – hbm

    大数据实战:用户流量分析系统 文章出处:http://blog.csdn.net/sdksdk0/articl […]...

  8. 盘点大厂的那些开源项目 – 滴滴出行

    滴滴出行是涵盖出租车、 专车、滴滴快车、 顺风车、代驾及大巴、货运等多项业务在内的一站式出行平台。 Night […]...

随机推荐

  1. opencv实战——图像矫正算法深入探讨

    摘要 在机器视觉中,对于图像的处理有时候因为放置的原因导致ROI区域倾斜,这个时候我们会想办法把它纠正为正确的 […]...

  2. MySQL insert语句中中value和values的区别(二)

    最近公司事情太忙,作为以一挑十的测试,只能苦逼的累死累活的。好不容易临近上线,可以偷个懒写个文章。 简单的说说 […]...

  3. ubuntu中root和普通用户切换

    转载 ubuntu中root和普通用户切换 ubuntu登录后,默认是普通用户权限,那么普通用户权限和root […]...

  4. 关于已知两点经纬度求球面最短距离的公式推导

    已知两点经纬度计算球面距离的公式,一搜一大堆,形式如下: 可是至于这个公式为什么是这样的,今天推导了一下,详细 […]...

  5. Rem布局方案

    1.关键词理解: viewport:视窗;设备屏幕用来展示网页的可视化区域 <meta name= […]...

  6. 使用itchat监控微信消息,从此不再为撤回烦恼

    强大的Itchat itchat是一个开源的微信个人号接口,使用python封装接入微信网页版接口,通过调用i […]...

  7. 银行家算法(Java实现)

    这里参考了:http://mp.weixin.qq.com/s?__biz= … 6oZ#wech […]...

  8. div超出内容后自动显示滚动条

    只需要用到css的一个overflow:auto的属性就可以实现这效果了。下面我们看看代码和实现的效果 HTM […]...

展开目录

目录导航