Bonky
Neither beliver nor reject anything, because any other person has rejected of believed it. Heaven has given you a mind for judging truth and error, Use it.
By Thomas Jefferson

计算机体系结构 – 基础知识

基础知识

基本概念

什么是计算机系统结构?即计算机系统的软、硬件的界面。而计算机组成主要关注于的数据流和控制流的组成以及逻辑设计等。

image-20200514114751974

  • 翻译和解释:解释执行比编译后再执行所花的时间多,但占用的存储空间较少。
    • 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在低一级机器上运行,实现程序的功能。
    • 解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。
  • 系统结构分类:Flynn分类法、冯氏分类法和Handler分类法
    • Flynn分类法:按照指令流和数据流对应关系分为SISD, SIMD, MISD, MIMD四种。

    image-20200514123110081

    • 单指令流和单数据流系统( SISD ),也即传统冯 · 诺依曼体系结构。
    • 单指令流和多数据流系统( SIMD ),包括阵列处理器和向量处理器系统,GPU也属于SIMD 。
    • 多指令流和单数据流系统( MISD ),这种计算机实际上不存在 。
    • 多指令流和多数据流系统( MIMD ),包括多处理器和多计算机系统。

    • 冯氏分类法:用系统的最大并行度对计算机进行分类。字的位数和一次能同时处理的字数就表示了其最大并行度。

    • Handler分类法:根据并行度和流水线对计算机进行分类。

    image-20200514124101607

系统设计

定量原理

  • 以经常性事件为重点:对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。
  • Amdahl定律(阿姆达尔定律):评价改进的性能。改进后程序的总执行时间可表示为:T _ { n } = T _ { 0 } ( 1 – F e + \frac { F e } { S e } )Fe 是可以改进的比例(≤1),Se 是改进之后加速倍数(>1)。因此,系统加速比可以表示为 S _ { n } = \frac { T _ { 0 } } { T _ { n } } = \frac { 1 } { ( 1 – F e ) + \frac { F e } { S e } }. 有一个推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过: 1/(1-可改进比例)
  • CPU性能公式:Amdahl定律可改进比例(Fe)通常很难直接计算,可以换个角度度量性能。
    • 执行一个程序所需的CPU时间:CPU时间 = 执行程序所需的时钟周期数×时钟周期时间 = 每条指令执行的平均时钟周期数CPI × 所执行的指令条数IC × 时钟周期时间。
    • 时钟周期时间:取决于硬件实现技术和计算机组成;
    • CPI:取决于计算机组成和指令系统的结构;
    • IC:取决于指令系统的结构和编译技术。
  • 程序的局部性原理:程序执行时所访问的存储器地址分布不是随机的,而是相对连续。

设计方法

主要有三种由上往下(top-down)设计,由下往上(bottom-up)设计和从中间开始(middle-out)设计。从中间开始设计中的中间是层次结构中的软硬件的交界面,目前一般是在传统机器语言机器级与操作系统机器级之间。

性能评价

指标

主要有两种性能评价指标:执行时间和吞吐率。

执行时间是计算机完成某一任务所花费的全部时间。其中一个指标是CPU时间,即CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其它程序的时间。CPU时间 = 用户CPU时间+系统CPU时间。用户CPU时间是执行用户指令所用的时间,系统CPU时间是为该进程执行内核程序所经历的时间。

吞吐率:指在单位时间内通过某信道上传输的数据量。

基准程序

用于测试和比较性能的基准测试程序的最佳选择是真实应用程序,例如编译器、解压软件和游戏等等。

  • 总执行时间:机器执行所有基准测试程序的总时间。
  • 平均执行时间:各测试程序执行时间的算术平均值。
  • 加权执行时间:各测试程序执行时间的加权平均值

发展

冯诺依曼结构

image-20200514132957516

  • 计算机以运算器为中心。
  • 在存储器中,指令和数据同等对待。指令和数据一样可以进行运算,即由指令组成的程序是可以修改的。
  • 存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。
  • 指令的执行是顺序的。一般是按照指令在存储器中存放的顺序执行,分支由转移指令实现。 由程序计数器PC指明当前正在执行的指令在存储器中的地址。
  • 指令由操作码和地址码组成。
  • 指令和数据均以二进制编码表示,采用二进制运算。

改进

  • I/O的改进:

    image-20200514133511202

  • 采用并行处理技术

  • 存储器组织结构的发展:

    • 相联存储器:不根据地址而是根据存储内容来进行存取的存储器。将输入的搜索数据(标签)与存储的数据表进行比较,然后返回匹配数据的地址(或匹配数据)。cache就是通过相联存储器进行实现的。比如对于学校数据库,我们可以通过学号进行对数据的存储,每次访问的时候只要访问第[学号]个单元即可。
    • 通用寄存器组,Cache
  • 指令系统:CICS,RISC

可移植性

一般方法:统一高级语言 ,采用系列机,模拟与仿真。

  • 统一高级语言:较难实现:
    • 不同的用途要求语言的语法语义的结构不同
    • 即使同一种高级语言在不同厂家的机器上也不能完全通用
    • 受习惯视力的阻挠人们不愿意抛弃惯用的语言
  • 系列机:一般都向后兼容,旧的东西在新的机器上还是可以使用的。
  • 模拟和仿真:
    • 仿真是用微程序解释,解释程序存在于控制存储器(硬件实现,快)
    • 模拟使用机器语言程序解释,解释程序存在于主存中(软件实现,慢)

并行性

  • 同时性:两个或两个以上的事件在同一时刻发生。
  • 并发性:两个或两个以上的事件在同一时间间隔内发生。

从执行程序的角度来看,并行性等级从低到高可分为: 指令内部并行,指令级并行,线程级并行(通常是以一个进程内派生的多个线程为调度单位),进程级并行,程序级并行。

提高并行性方法:

  • 时间重叠:同一时间使用同一硬件的各个部分(多核CPU,GPU和DMA加入)。
    • 基础是部件功能专用化:把一件工作分成多个部分,把每一部分指定给专门的部件完成。比如DMA可以把CPU从I/O解放出来,提高并行性。
  • 资源重复:充钱加硬件(不对)。
    • 多体存储器:同时对多个存储单元进行读写(基本上现在SSD都是这样)
    • 多操作部件:通用部件被分解成若干个专用部件。
  • 资源共享:这是一种软件方法,硬件对多个任务时分复用。分时系统就是这种思想。

根据上面三种方法,发展出三种不同的多处理机:同构型多处理机、异构型多处理机、分布式系统。(这里处理机就是处理器,英文就是processor)

  • 同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务(对于同一个部件我有多个供应商)。
  • 异构型多处理机系统:由多个专用处理机组成(造一部手机需要不同的公司造不同的部件)。
  • 分布式系统:一个作业由一台处理机完成,必要时才请求它机协作(比如手机屏幕我全给三星制造,只有三星产量不够或者出问题才交给别的公司)。

2015071417382345534

耦合度:反映多机系统中各机器之间物理连接的紧密程 度和交互作用能力的强弱。

  • 紧密耦合系统(直接耦合系统):一般是通过总线互连,共享主存。
  • 松散耦合系统(间接耦合系统):一般是通过通信线路实现计算机之间的互连,可以共享外存。主要有两种形式:
    • 多台计算机和共享的外存设备连接,机器处理的结果以文件的形式送到共享外存设备,供其它机器继续处理。
    • 计算机网,通过通信线路连接,实现更大范围的资源共享。
Share

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注