我的博客 ②计算机基本组成

作者:SUN 更新于: 围观群众: 点赞人数: 评论人数:

②计算机基本组成

一、冯·诺依曼计算机

  1. 特点
    1. 计算机由五大部件组成
    2. 指令和数据以同等地位存于存储器,可按地址寻访
    3. 指令和数据用二进制表示
    4. 指令由操作码和地址码组成
    5. 存储程序
    6. 以运算器为中心
  2. 硬件构造
    1. 以运算器为核心的计算机
      • 运算器:完成算术逻辑运算
      • 存储器:存放数据和程序
      • 控制器:指挥程序的运行
      • 输入设备: 把信息转换为机器识别的形式
      • 输出设备:把信息转换为人能识别的形式
      • 实线表示数据,虚线表示控制
      • 逻辑是数据在运算器中进行运算然后再放入到存储器中
      • 以运算器为中心会导致受到运算器的限制
    2. 以存储器为中心的计算机
      • 缺点比较乱
  3. 硬件构造逻辑
运算器 ALU CPU 主机 硬件
控制器 CU
存储器 主存
辅存
输入设备 I/O设备
输出设备

  • 系统复杂性管理方法
    • 层次化
      • (Hierachy):将被设计的系统划分为多个模块或子模块
    • 模块化
      • (Modularity):有明确定义(well-defined)的功能和接口
    • 规则性
      • (regularity):模块更容易被重用

二、如何使用计算机解决问题

  • 上机前的准备
    • 建立数学模型
    • 确定计算方法
    • 编制解题程序
      • 程序–运算的全部步骤
      • 指令–每一个步骤
  • 程序编写过程
    • 例如ax2+bx+cax^2+bx+c
      • 逻辑分析
        1. 假设a、b、c、x等操作数都已存储在内存中
        2. 参与的运算 加减乘除
        3. 假如是进行累加计算的计算机器
        4. 在计算运行加减乘除的运算中,操作数有两个,其中一个数保存在ACC累加器中,另一个来源于主存储器中
        5. 假如包含六条指令
          • 加法指令、乘法指令、
          • 取数指令 从内存中取数的指令
          • 计算结果保存在结果中、保存指令
          • 输出数据、打印指令
          • 停止运行、停机指令
      • 运算过程1(运算比较慢执行的次数较多,需要存储空间更大)
        1. 取x至运算器中(x保存在运算器中的累加器【寄存器】中)
        2. 乘以x在运算器中(把内存中的数据与累加器中的数据做乘法【乘法操作】,x的平方保存在累加器ACC中)
        3. 乘以a在运算器中(执行完毕之后为ACC中保存的数据为ax2ax^2
        4. ax2ax^2在存储器中
        5. 取b至运算器中
        6. 乘以x在运算器中(ACC中的值为bx)
        7. ax2ax^2在运算器中
        8. 加c
      • 运算过程2
        • 取x至运算器中
        • 乘以a在运算器中
        • 加b在运算器中
        • 乘以x在中
        • 加c
  • 指令格式举例
    • 取数a [α]->ACC
      • 操作码:000001
      • 内存单元的地址:0000001000
    • 存数 β [ACC]->β
    • 加 γ [ACC]+[γ]->ACC
    • 乘 δ [ACC]×[δ]->ACC
    • 打印 σ [σ]->打印机
    • 停机 十进制的乘法无法保存
    • 计算ax2+bx+cax^2+bx+cc程序清单
    • 特征为:指令和操作码以同等的地位存放在存储器中

存储器

  • 计算机的存储过程
    • 基本组成
      • 举例 存储空间相当于一栋大楼里面的房间就是单元
      • 对存储单元的访问需要通过地址访问
      • 对房间的编址地址就在MAR上
        • 存储的数据都是010101…
      • MAR地址采用的二进制编码
        • 对地址进行标识0000~1111 一共保存十六个地址
        • 即一共十六个单位
      • MDR位数8位
        • 每一个存储单元访访问的时候访问出来的数据就是8位
        • 每一个存储字的字长为8位
  • 存储体用来存放二进制代码、指令或者数据(被分为多个存储单元)每个存储单元包含了若干个01代码、01的个数称为字长,每个存储单元保存的数据被称为存储字

运算器

  • 运算器的结构

    • 运算器的功能

      • 结构和功能直接相关。
      • ALU核心运算单元,组合电路,如果输入撤销,输出结果也会相应,因此需要寄存器进行数据保存 执行乘法结果为运算字符长度的两倍
    • 运算器的结构

    • 除数的运算时通过减法和移位实现的

  • 运算过程

    • 加法运算
      • 把内存单元的数据放入到x中
      • 执行加法操作后存入ACC中
    • 减法运算
      • 先把被数从内存中取出
      • 执行减法操作之后把结果存入到ACC中
    • 乘法操作
      • ACC中已经保存被乘数
      • 取出M中数放入到MQ中
      • 把ACC中的内容送入到X中 []是为了区分送入的内容
      • 进行累加之前ACC清零
      • 进行乘法操作
        • 高位存放在ACC中低位存放在MQ中
        • 先后关系,只有先把ACC中的数据放入到X中才能开始乘法,才能对ACC进行清零,但是第一步和第二步是可以改变的
    • 除法运算
      • 把内存单元中推入到X中
      • 进行除法运算并存入MQ中
      • 余数放入到ACC

运算控制

  • 控制器
    • 解释指令控制运算的过程
    • 保证指令的正确执行
    • CU用来控制顺序
    • IR保存执行指令
    • PC保存指令执行的地址

主机完成一条指令的过程

  • 取数指令
    • 指令地址存放在PC中指令存放在存储体中
    • 存储体将指令放入MDR中
    • MDR将指令放入IR中
    • IR指令操作码放入CU中
    • CU译码之后控制相应的操作进行操作,在控制器中控制下,将操作码放入运算器中进行运算
    • IR的地址码部分放入MAR中在存入到存储体中
    • 存储体再放入到MDR中MDR将运算符放入到ACC中
    • PC-MAR-存储体-MDR-IR-CU-MAR-存储体-MDR-ACC
  • 存数指令
    • PC指令放入到MAR中
    • MAR放入存储体在控制单元的k控制下指定的位置放入MDR中
    • MDR中的指令放入到IR中
    • 在CU中分析指令并发出信号
    • 把IR中的地址码部分放入MAR中
    • MAR将数据存入存储体
    • 存储体将数据放入MDR中,最后MDR再将数据放入ACC中
    • PC-MAR-存储体-MDR-IR-CU-存储体-MDR-ACC
  • ax2+bx+cax^2+bx+c程序d的运行过程
    • 将程序通过设备送至计算机
    • 程序首地址PC
    • 启动程序
    • 取指令PC->MAR->M->MDR->IR
    • 分析指令 OP(IR)->CU
    • 执行指令 Ad(IR)->MAR->M->MDR->ACC
    • 打印结果
    • 停机

要求 处理速度快、内存大

  • 机器字长
    • CPU一次能处理数据的位数,与CPU中的寄存器位数有关
    • 机器字长越长,性能越好
  • 运算速度(机器操作)
    • 主频:计算机主频越高,性能越好

      • 但是也不一定,取决于命令的效率
    • 核数,每个核支持的线程数

    • 吉普森法

      • TM=i=1n^fiti T_M=\sum^{n}_{i=1}{\widehat{}{f_i} t_i}
      • 计算运算速度的话是采用每条指令出现的频率进行加权平均

    • CPI

      • 执行一条指令所需时钟的周期数
    • MIPS

      • 每秒执行百万条指令
    • FLOPS

      • 每秒浮点运算的次数
  • 运算速度(实际)
    • 直接运行测试
    • 存储容量
      • 存放二进制信息的总位数
      • 主存容量
        • 存储单元个数×存储字长
          • MAR=10,MDR=8
          • 所有的存储单元地址编码都是十位,一共有2102^{10}为1k,每个单元存储8个字长
          • 一共有1K×81K×8

文章声明: 非特殊说明,本文版权归 SUN个人博客 所有,转载请注明出处

本文标题: ②计算机基本组成

本文地址:

点此返回目录: 回到顶端

全部评论