• 计算机科学导论笔记-计算机组成


      计算机组成有三个部分:中央处理单元,主存储器,输入/输出

    1. 中央处理单元(cpu)

      中央处理单元用于数据运算。在大部分体系中又分为算术逻辑单元,控制单元,寄存器(快速存储单元)

      1. 算术逻辑单元
        算术逻辑单元对数据进行逻辑,移位和算术运算
      2. 寄存器
        期存器是用来临时存放数据的高速独立的存储单元,寄存器又分为数据寄存器,指令寄存器,程序计数器
      3. 控制单元
        控制单元控制各个子系统的操作,我的理解就是一个大型的信息交换的场合。

    2. 主存储器
      主存储器是存储单元的集合,说白了就是硬盘等一切可以进行存储的总和。每一个存储单元都有地址,所有的存储单元的标识地址的总数称为地址空间。由于计算机的存储的原因,地址是以二进制整数的形式存在在电脑中的。

      存储器又分为RAM和ROM
        RAM是计算机的主存中重要组成部分,RAM和ROM的区别在于,前者可以通过写入不断覆盖,并且如果断电的话,这一部分信息并不会保存,对应的是电脑中内存

      1. 随机存取存储器(RAM)
        RAM分为SRAM(静态)和DRAM(动态),SRAM通电的时候数据始终存在,不需要刷新,速度快,价格高
        DRAM内存需要周期性刷新,速度慢,比较便宜,价格相对较低

      2. 只读存储器(ROM)
        ROM切断电源后数据也不会丢失,用来存储程序和程序所产生的数据

        PROM:可编程只读存储器
        EPROM:可编程可擦除的只读存储器
        EEPROM:电科擦除的可编程只读存储器

      3. 存储器的层次结构
        计算机需要用到很多存储器,不同的需求对应不同性能的存储器。


      4. 高速缓冲存储器
        存取速度比主存快,但是比CPU内部的寄存器慢。每次CPU存取主存中的一个字时,都要先询问缓存,如果存在,就直接从缓存复制,如果不存在,就从主存中复制一份,并且覆盖到缓存
    3. 输入/输出子系统
      输入/ 输出子系统可以使计算机与外界通信。,并且在断电的时候也能保存数据,分为存储设备和非存储设备

      1. 非存储设备
        鼠标,键盘,打印机等

      2. 存储设备
        就是我们常说的硬盘之类的,但是书中这个存储设备的概念特别广,包括以前使用的光盘等都属于存储设备。
    4. 子系统的互连
      1. CPU和存储器之间的连接
        CPU和内存之间有三组统称为主线的线路连接在一起,分别为数据总线,地址总线和控制总线
        1. 数据总线:由多根线组成,每根线上每次传输一位数据,线的数量取决于字的大小,如果计算机是64位的,那么就需要64根线。
        2. 地址总线:允许访问存储器中的某个字,取决于存储空间的大小。
        3. 控制总线:控制总线负责在中央处理器和内存之间传送数据
      2. I/O设备的连接
        输入/输出设备不能够直接跟总线相连,如下图

         因为这些设备并一定是电子设备,比如早年使用的光盘。但是CPU和存储器都是电子设备,必须要有一个中介来处理这种差异。输入/输出控制器就扮演这一角色
        控制器:类似于接口,控制器可以串行或者并行连接设备。

        1. SCSI
          小型计算机系统接口,是一个8位,16位,32位的并行接口,连接器的两端都必须有终结器,并且,每个设备都必须有唯一的地址。


        2. 火线
          高速的串行接口,不需要终端数据采用包的形式。


        3. USB
          通用串行总线用以连接高速和低速设备。这个接口可以允许多个设备以树状拓扑结构连接到一个控制器上(usb根集线器),还有集线器负责连接更多的设备,集线器作为树的节点不能感知到其他集线器,控制器能够感知到所有的节点。除此之外,
          这个接口还支持热插拔,即插即用。
      3. 输入/输出设备的寻址
        CPU使用同一根数据总线在内存和i/o设备之间传输数据,计算机用指令区分,如果指令涉及到内存,就找内存,如果涉及到输入输出设备就找对应的设备。为io设备寻址分两种,一种io独立寻址,一种io存储器映射寻址

        1. io独立寻址
          用来读写内存和读写io设备的指令区分开,每个输入输出设备都有自己的独立地址。

        2.  io存储器映射寻址

          把每一个io设备中的寄存器看成内存中的某个字,命令不做区分,把地址写入到内存中。

    5. 程序的执行
      计算机通过程序来处理数据,而程序其实就是一系列的指令     

      1. 机器周期
        CPU利用重复的机器周期执行程序中的指令,一个机器周期包括三个步骤:取指令,译码,执行
        取指令:控制单元把下一条要执行的命令拷贝到CPU的寄存器上,并且这个指令的地址复制到计数器中。
        译码:控制单元将指令译码为计算机可以执行的二进制代码
        执行:控制单元发送任务命令到CPU的某个部件(视情况而定,如果是计算,就通知计算逻辑单元,如果只是存取就通知内存)


      2. 输入/输出操作
        之前提到因为io设备不一定是电子设备,所以,传输速度比CPU要慢的多,CPU在某种程度上必须和io设备同步。有三种方法实现这种同步

        1. 程序控制输入/输出
          这种方法是CPU采用轮询的方式不断的查询io设备的状态,如果io设备准备好数据了就开始传输


        2. 中断控制输入/输出
          这种方式当io设备准备好的时候,它会中断CPU,在这之前,CPU都可以在运行别的程序
        3. 直接存储器存取
          这个方法可以在高速io设备间传输大量的数据块,他的原理是增加一个DMA的类似CPU的硬件,它是一个控制器,开始的时候,CPU会发送一些传输的基本信息如传输的类型,内存的地址等,当准备好传输的时候,由DMA获取到总线的使用权,这时候CPU是停止工作的。这时候才真正传输数据。注意的是,这种方法的有点在于快,因为重新增加了一个硬件设施。

           

      3. 不同的体系结构

        CISC:复杂指令集计算机的缩写。CISC架构是使用非常多的复杂的指令,每一个简单或者复杂的任务都有相对应的指令,虽然在这种体系下设计程序语言会相对容易一些,但是使得硬件设施非常复杂,但是设计者提出一个解决方案,CPU不直接执行指令,而是执行称为微操作的指令,把原本复杂的指令翻译成简单操作,这又需要被称为微内存的架构支持。微内存负者记录每一个复杂指令的微操作,使用微操作的程序设计语言被称为微程序设计(上次有在微博上看到好像win10使用的就是这个架构)

        RISC:精简指令集计算机的缩写,和CISC相反,他使用的非常简洁的指令,每一个复杂的指令都是由简单指令进行模拟的。

      4. 流水线
        计算机使用流水线的技术改善指令的周期的运行效率,每一条指令都需要进行三个周期,控制单元如果能够同时执行两个或者三个阶段,那么下一条指令就可以在前一个指令的第二阶段运行了。如图:
      5. 并行处理

        随着技术的进步,一台计算机里可能有多个控制单元和多个算计逻辑单元,多个内存单元。所以诞生了并行处理这个思想,并行处理涉及不同的技术,把这个技术分为四个分类

        1. SISD:单指令流,单数据流,意思就是只有一个算术逻辑单元,一个控制单元,一个内存。一个指令对应的一个内存中多个数据项

        2. SIMD:单指令流,多数据流,计算机内部有一个控制单元,但是有多个算术逻辑单元,多个内存单元。早起的处理器基本都属于这一种,看到这个模型的时候,想起以前在课上问操作系统老师,并行的问题,他说虽然CPU可以有多个,但是出口只有一个,这个出口应该就是这个指令流吧

        3. MISD:多指令流,单数据流,这个架构其实效率没有MIMD高,所以没有被实现过。本身也很奇怪吧。多个指令,就一个数据流,等于就一个干活的

        4. MIMD:多指令,多数据流。多个指令应用于多个数据流。一般在这种架构上,内存是共享的。



  • 相关阅读:
    vue 解决 打包完iE下空白
    多层josn数据 修改
    vue 初始化data中的数据
    图片查看器(缩放 拖动)
    js 懒加载
    css flex 兼容ios android--商品展示 添加购物车
    领域驱动架构(DDD)建模
    知乎复制文本
    Nlog配置文件
    未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集
  • 原文地址:https://www.cnblogs.com/qunincey/p/11631915.html
Copyright © 2020-2023  润新知