zoukankan      html  css  js  c++  java
  • 8.存储器

    转:https://www.cnblogs.com/sum-41/p/11578875.html

    1.什么是存储器

    存储器,顾名思义,是用来储存物质的。在计算机中,这些储存的物质就是数据和指令,有了存储器,计算机就有了记忆功能。

    存储器由一些编号的单元所组成,单元的编号叫做地址。打个比方,存储器就像是一个大型仓库,仓库里面有很多个房间存放着货物,每个房间都有自己的房号;而存储器单元好比房间,房间里的货物好比数据和指令,而单元的编号(地址)就好比房间号,我们的计算机就是根据这个地址来存放或取出数据和指令的。

    计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。

    2.存储器的分类

    按存储介质来划分,存储器可分为半导体存储器和磁存储器。其中,半导体存储器存储的元器件是由半导体组成的,常见的如:内存、U盘、固态硬盘等;磁存储器,是由表面涂有磁性材料的存储介质组成的,常见的有:磁带、磁盘。

    按存取方式来分类,可以将存储器分为随机存储器(RAM)、串行存储器、只读存储器(ROM),

    3.存储器的层次结构

    在选取计算机的存储器时,通常需要考虑的因素是存储器的读写速度、存储容量、价格,我们希望读写速度越快越好、存储容量越大越好、价格则越低越好。有一个专门的单位,用来量化存储器的性价比——位价。位价综合地把容量和价格都考虑进去了,它的含义是每比特位的价格,使用位价可以客观地描述存储器的性价比。

    按照位价和读写速度的关系,可以把存储器划分为几个层次:缓存、主存、辅存。

    缓存指的是CPU里的寄存器以及高速缓存,速度快,位价高。

    主存指的主要是计算机里的内存,速度适中,价格适中。

    辅存指的是外部储存设备,如磁盘、U盘、移动硬盘等,速度慢,价格低。

    之前文章里已经提到过,CPU是高速运算的,处理速率极快,而存储器没有CPU快,传输数据和程序到CPU里时速度慢,这会导致CPU经常空转等待数据传输,两者在速度上是不匹配的。理论上,不考虑价格的话,我们肯定希望缓存越大越好,但是由于位价的存在,缓存不可能做的越大越好,因此才有了这个层次结构。

    存储器的层次结构也可以使用如下图来表达:

    图示里,CPU与高速缓存是直接通信的,也可以跟主存进行通信。而高速缓存和主存之间也可以相互通信,称之为缓存-主存层次,除了缓存-主存层次,还有主存和辅存之间的通信,这个通信,CPU是不参与的,称之为主存-辅存层次。

    缓存-主存层次,是在CPU与主存之间增加一层速度快容量小的Cache,目的是解决主存与CPU速度不匹配的问题。有了高速缓存的存在,CPU就可以通过一定的策略,尽可能地去访问这个高速缓存而不是主存,从而有效提高CPU的利用效率以及计算机的运行速度。CPU选取数据时,首先会从缓存中去取,缓存中没有的话,再会去取主存中的。

    主存-辅存层次,是在主存之外增加辅助存储器(磁盘、SD卡、U盘等),目的是解决主存容量不足的问题。假设我们运行一个超大型游戏,而内存通常只有8G,此时,就可以把游戏当前使用的数据加载到内存中,把不使用的数据放在辅存中。

  • 相关阅读:
    [Maven]自定义Archetypes
    [集合]LinkedList
    [集合]Arraylist
    [数据结构与算法]最长有效括号32
    [数据结构与算法]深度优先搜索dfs和广度优先搜索bfs
    [Vim] 光标移动到行首、行尾
    [数据结构与算法]给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
    [数据结构与算法]求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。
    IDEA 自动设置compile target变成1.5
    【Java基础】sun.misc.BASE64和Java 8 java.util.Base64区别
  • 原文地址:https://www.cnblogs.com/jvStarBlog/p/11941524.html
Copyright © 2011-2022 走看看