zoukankan      html  css  js  c++  java
  • 2017.0622.《计算机组成原理》-虚拟存储器和主存

    虚拟存储器

    1.主存和辅存加在一起称为虚拟存储器。

    人们在编写程序的时候,重新定义了一个虚拟存储器。这个虚拟的存储器的存储空间该怎么定义?这是一个问题。那么,为什么要定义一个虚拟的存储器呢?

    编写程序的时候,用的都是逻辑地址,但是在存入存储器的时候,最终使用的还是物理地址。

    虚拟地址的空间很大,远大于主存的实际地址。采用虚拟地址的目的就是为了扩大存储程序的空间,本质上很多空间地址并不存在,具体的原理目前还不是很懂,

    主存中的地址都是物理地址,程序只有放置到物理地址上,才能真正地运行。

    上一个层次机构的缓存—主存采用的都是主存中的地址,没有定义一个虚拟存储器,也没有逻辑地址。

    2.本章节接下来的部分就是详解主存,缓存和辅存。本书存在的目的就是为了让人们了解计算机的五大部件,及其运行的原理。

    主存

    1.首先要了解主存的硬件组成。

    之前我们已经粗略地了解了主存的组成,即:存储体,MAR,MDR。实际上整个主存中还有其他的部件,完整的主存结构是以存储体为核心,从其中引出两条线。

    存储体的一条线接着MAR,但是MAR并非直接和存储体链接,中间还有译码器和驱动器。这两个器件很好理解,可以这么认为:MAR中的地址,存储体没法识别,

    需要一个译码器来解读一下,然后,MAR和驱动器进行信息交流时,需要一个器件来驱动它们。存储体的另一条线和MDR连接,这条线主要用来读写的时候传输数据

    用的。因此,MDR和存储体之间需要读写电路,和读写控制电路,一个用于读或写,另一个用于控制读写。

    2.主存和CPU之间的联系

    通过讲解,发现,原来主存中的MAR和MDR都是放置在CPU中的,那么连接的两条线也就横跨CPU和主存。CPU和主存之间的联系就是三类,数据信号,地址信号,

    以及控制信号。除了数据信号是双向的,其余的信号都是单向的,由CPU发送给主存。

  • 相关阅读:
    Hoeffding Inequality 证明过程
    机器学习-1
    Java多线程安全问题的解决方式
    List<? extends T>和List<? super T>之间的区别
    关于禁用cookie后无法使用session的解决方案
    class.forName和classloader的区别
    在Js中使程序睡眠的sleep方法
    Java到底是值传递还是引用传递?
    Thymeleaf 绝对路径
    jdk1.8 Unsafe类 park和unpark方法解析
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7063623.html
Copyright © 2011-2022 走看看