系统结构第一章

2021/01/23

引言

  1. 系统结构 主要研究:降低功耗降低成本增加性能
  2. 处于软硬件之间,进行连接作用
  3. 比较接近本质,学会了本质,在应用层就好混多了

第一章:概述

本章要点:

  1. 层次性、系统结构等概述
  2. 软硬件取舍
  3. 定量分析原理
  4. 并行性概念

实际内容:

  • 计算机系统的层次结构

    • 计算机系统是由硬件 + 固件 + 软件
      • 固件:软件到固化硬件上,较难更改的,如:BIOS
    • 透明性:高层可以不必关注底层,底层对高层是透明的、看不见的
      • 如果要专业还是要关注底层
    • 层次
      • 浅蓝色的是硬件层,无色的是软件层
      • 应用语言:如国语,你对人工智能说一句国语指令,他会给你相对应的操作
      • 高级语言:如:Java、C ,把应用语言变成实际的动作
      • 汇编语言:如:早期的语言,C语言是先转换成汇编在转换成机器语言
      • 计算机虚拟机:如:Windows,实现硬件交互提供一些硬件API给汇编、高级语言使用
      • 机器语言:纯粹的0和1,如:你是32位操作系统,那一个指令序列就是32个0和1
      • 微程序语言:如:32位操作系统,一个指令序列又被分为3到5个微程序语言给硬件操作
    • 语言的特性
      • 翻译/编译性:如:C语言,直接写完,直接全部翻译成机器语言
      • 解释性:如:Python,执行一条,让Python解释器解释一条,语句是一条一条执行的。所以IDE才可以注入代码
  • 计算机系统结构

    • 系统结构是为判断一个功能,用软件实现比较好,还是硬件
    • 相同的系统结构,可以有不同的组成,一种组成又有不同的实现
    • 系统结构:如:我需要一台绘图的电脑,绘图的软件、选择几核的CPU、什么显卡
    • 计算机组成:如:我要2核的CPU,又有各种型号的CPU
    • 计算机实现:实际制作的技术,如:我使用32纳米能做,使用28纳米也能做,只是性能等不一样
  • 计算机系统的软硬件取舍

    • 设计系统结构的时候应该把价格比考虑进去,以合适的价格设计出功能

    • 硬件的性能往往要比软件高

    • 设计系统的时候要考虑,硬件,软件

      • 如:服务器的CPU和家用的CPU
      • 如:画图工具和PS
    • 成本计算公式

      • 成本计算中要计算性能、综合指标

      • Dh是硬件研制成本, Ds是软件的研发成本

      • Mh是硬件生产成本,Ms软件生产成本

        • 软件的生产成本是维护、实施等
      • C是软件需再次设计的次数,R是软件重新生产的次数

      • 假定生产V台:

        • 硬件的成本:
  • 软件的成本:

    • 只有当硬件成本小于软件成本时,用硬件才适合
  • 计算机系统的性能,定量分析

    • 系统思维:看全局,不要单看一处
    • 性能指标

      • 蓝色字体可以参考,但不一定准确

      • 响应时间:如:你请求一个网页,从发出请求,到浏览器渲染完成的时间,你自然希望越快越好

      • 吞吐量:如:100万人访问一个网页,我只要这个网页能在1.5秒内响应完成就行了。

      • 处理机主频:主频、外频、倍频
      • MIPS:每秒百万条指令。
      • Mflops:每秒百万浮点指令
      • 真实程序的运行时间

        • 有特定的机构会发布特定的测试程序,让两个机器来运行该程序,得出的时间短的就好
    • 大概率事件优先原则(哈夫曼压缩原理)

      • 加快经常性事件的速度
    • 阿姆达尔(Amdehl)定律

      • 定义系统性能的加速比,确定性能,计算改进某些部件所获得的性能提升
  • 如:我扫描功能比较慢,那我改进扫描的硬件,提高性能

    • 加速比公式:
  • 例子:

  • 将计算机系统中某一功能的处理速度提高到原来的20倍,该功能的处理时间仅占整个系统运行时间的40%,则采用提高性能的方法后,能使整个系统的性能提高多少?

    • 解:
      • 可改进比例是40% = 0.4
      • 部件加速比是 20
      • 总加速比 :
        • 1 /(1-0.4) + 0.4/20
      • 1 / 0.62
      • 约等于:1.619
      • 性能大越提高了62%
  • 程序局部性

    • 时间局部性:如:我写了个for循环,这个时间内我会一直在该时间内执行这个代码
    • 空间局部性:如:我访问了第一条语句,那接下来就有可能访问第二三四五条语句
  • 软件、应用、器件的发展对系统结构的影响

    • 软件的可移植性:同一套可以在各个平台运行,如:Windwos平台、Linux平台、Android平台
    • 兼容性:
      • 蓝字是比较重要的
      • 若是要解决兼容性的问题就加东西,不能删东西,不能我这个版本这个指令可以用,下个版本就指令了
      • 向前兼容:与向后兼容相反
      • 向后兼容:软件要兼容以后发布的版本,如:我现在用到处理器是Inter五代,我换成六七代时也可以用
      • 向下兼容:与向下兼容相反
      • 向上兼容:要兼容更好的硬件,如:我现在用的是Inter五代-I3,我换成I9也可以使用
    • 应用:
      • 宿主机:实际存在的计算机
      • 模拟:在宿主机上创建个虚拟机,把虚拟机的指令翻译成宿主机的指令传给宿主机。如:Vmware
      • 仿真:用宿主机的的微程序去解释虚拟机的指令集,要求:系统结构相差没有那么大
      • 仿真比模拟的速度快
    • 器件:
      • 对计算机的需求驱使着计算机的发展
      • 摩尔定律:CPU每18月性能会翻一倍。注:现在没有那么夸张了
      • Memory:内存(Memory)每两年,容量翻2倍
      • Disk:硬盘(DIsk)每一年会容量翻一倍
    • **器件的发展在早期时对性能有很大的提升,近年来提升没有以前那么明显了。现在提升性能主要时系统结构**
  • 并行性概念

    • 并行性是指一个时间内同时运行
      • 同时性:处理器同一时间处理多个进程请求
      • 并发性:处理交替处理多个进程请求
    • 并发性级分类
      • 微程序级并发:从微指令层次进行并发处理
      • 指令级并发:从指令层次进行并发处理
      • 线程级并发:一个程序多线程的并发处理任务,通常是程序员优化程序性能的方法
      • 进程级并发:操作系统同时处理多个进程的请求
      • 程序级并发:集群同时处理请求
    • 程序分解
      • 指令流:程序要实现的操作,实现如何操作
      • 数据流:程序实现操作时使用的数据
    • 各种模式流
      • 蓝色字体为常用的
      • SISD:单指令处理单数据
      • SIMD:单指令处理多数据
        • 如:处理图片
      • MIMD:多指令处理多数据
      • MISD:多指令处理单数据
        • 只存于理论,没有CPU是这样实现的

目 录