计算机体系结构---简单概念0

基于MOOC,华中科技大学计算机体系结构课程

1. 计算机系统结构定义

1.1 经典定义

computer architecture is a computer programmer see attribute, namely the conceptual structure and functional characteristics. (Amdahl,1964)
计算机体系结构是机器级语言程序员看到的属性,即概念结构和功能特征。
在这里插入图片描述

1.2 广义定义

computer architecture covers all three aspects of computer design——instruction set architecture, organization or microarchitecture, and hardware.(Hennessy & Patterson,1990)
计算机体系结构涵盖了计算机设计的所有三个方面:指令集体系结构,组成或微体系结构以及硬件。

2. 计算机系统结构

2.1 Acceleration (Amdahl)

(1)加快经常性事件(计算机设计原则):耗时最多的事件
(2)Amdahl定理:
Sn=1(1Fe)+FeSe{{\rm{S}}_n} = \frac{1}{{(1 - {F_e}) + \frac{{{F_e}}}{{{S_e}}}}}
(3)CPU性能公式: CPU时间 = IC × CPI × 时钟周期时间
(4)局部性原理:程序执行时间的90%都是在执行程序中10%的代码,时间局部性,空间局部性

2.2 Instruction (Interface)

(1)指令系统:用硬件实现的命令集
(2)操作码—操作数(寻址)
寻址方式包括:寄存器寻址,立即数寻址,偏移寻址,寄存器间接寻址,索引寻址
操作类型包括:算术和逻辑运算,数据传输(load, store),控制 (分支,跳转,过程调用和返回等),系统 (系统调用,虚拟存储器管理),浮点(浮点操作)
(3)CISC (Complex Instruction Set Computer,复杂指令集计算机): 复杂的指令集、复杂的硬件、较少的寄存器,简洁的代码行。
RISC(Reduced Instruction Set Computer,精简指令集计算机):精简的指令集、简单的硬件、较多的寄存器、较多的代码行。

2.3 Processing (Parallel)

SISD(Single instruction, Single data. 单指令流单数据流计算机)
SIMD (Single instruction, Multiple data. 单指令流多数据流计算机)
MISD(Multiple instruction, Single data. 单指令流多数据流计算机)
MIMD (Multiple instruction, Multiple data. 多指令流多数据流计算机)

2.4 Storage or memory (System)

存储系统层次结构

2.5 Network (Connection)

结构互联

图灵机是理论基础,处理,存储,传输。只要对数据进行处理、存储、传输三种简单操作,就能解决一切可计算的数学问题。
冯诺依曼结构是结构基础:输入设备、输出设备、存储器、控制器、运算器。
冯·诺依曼结构的主要特点
(1)计算机以运算器为中心。
(2)在存储器中,指令和数据同等对待。
(3)存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。
(4)指令的执行是顺序的。
摩尔定律是物质基础:芯片上晶体管的数量每18-24个月翻一番。
Amdahl定律:计算机系统结构的总原则

3. 基础知识

3.1 Amdahl定理

加速比:Sn=T0Tn{{\rm{S}}_n}{\rm{ = }}\frac{{{T_0}}}{{{T_n}}}
T0是加速前的执行时间,Tn是加速后的执行时间。假设Fe是加速部分占原来时间的比例,Se是加速部分的部件加速比
原执行时间为:T0=T0(1Fe+Fe){T_0} = {T_0}(1 - {F_e} + {F_e})
新执行时间为:Tn=T0(1Fe+FeSe){T_n} = {T_0}(1 - {F_e} + \frac{{{F_e}}}{{{S_e}}})
加速比:
Sn=T0Tn=1(1Fe)+FeSe{S_n} = \frac{{{T_0}}}{{{T_n}}} = \frac{1}{{(1 - {F_e}) + \frac{{{F_e}}}{{{S_e}}}}}
对计算机中的性能改进,是有一个极限值的。
Fe0,Sn1{F_e} \to 0,{S_n} \to 1
Se,Sn11Fe{S_e} \to \infty ,{S_n} \to \frac{1}{{1 - {F_e}}}

例题:将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
Fe=0.4,Se=10{F_e} = 0.4,{S_e} = 10
代入公式即得结果。

3.2 CPU性能公式

CPU时间是执行一个程序所需的CPU时间,等于执行程序所需的时钟周期数×时钟周期时间(1/时钟频率)
CPI:Cycles Per Instruction, 是平均每条指令耗费的时钟周期数
IPC:Instruction Per Cycles, 每个时钟周期运行的平均指令条数
IC: 指令条数
CPI × IC = 执行程序所需的时钟周期数
CPU时间 = IC × CPI × 时钟周期时间 = IC × CPI / 时钟频率

例题: 假设FP指令的比例为25%,其中,FPSQR占全部指令的比例为2%,FP操作的CPI为4,FPSQR操作的CPI为20,非浮点指令的平均CPI为1.33。现有两种改进方案,第一种是把FPSQR操作的CPl减至2,第二种是把所有的FP操作的CPI减至2,试比较两种方案对系统性能的提高程度。注:FPSQR指令属于FP指令
原CPI = 0.25 × 4 + (1 - 0.25)× 1.33 = 2
第一种改进方法:CPI_1 = CPI - 0.2 × (20 - 2) = 1.64
第一种改进方法:CPI_2 = CPI - 0.25 × (4 - 2) = 1.5

例题: 某程序在一台时钟频率为2GHz的计算机A上运行需要10秒。现在将设计一台计算机B,希望将运行时间缩短为6秒。计算机的设计者采用的方法是提高时钟频率,但这会影响CPU其余部分的设计,使计算机B运行该程序时需要相当于计算机A的1.2倍的时钟周期数。那么计算机设计者应该将时钟频率提高到?
A的时钟周期数 = 10 / 时钟周期时间 = 10 / 0.5 = 20
B的时钟周期数 = 1.2 × 20 = 24
B的时钟周期时间 = 6 / 24 = 1/4

3.2 并行性

  1. 从数据处理的角度看,分为:
    (1)字串位串:每次只处理一个字的一位
    (2)字串位并:同时处理一个字的全部位
    (3)字并位串:同时处理多个字的同一位
    (4)字并位并: 同时处理全部字的全部位或部分位
  2. 从执行程序的角度看:
    (1)指令内部并行:单条指令中各微操作之间的并行。
    (2)指令级并行:并行执行两条或两条以上的指令。
    (3)线程级并行:并行执行两个或两个以上的线程。
    (4)任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段)
    (5)作业或程序级并行:并行执行两个或两个以上的作业或程序
  3. 提高并行性的途径
    (1)时间重叠:引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。(流水线)
    (2)资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。(加入多个部件)
    (3)资源共享:软件方法,使多个任务按一定时间顺序轮流使用同一套硬件设备。(通过软件的方法)

4. 计算机系统的评价

4.1 性能

  1. 响应时间:完成一个任务的全部时间(用户角度)
  2. 吞吐率:单位时间内完成的任务数(管理员角度)

4.2 成本、功耗、可靠性和可用性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章