目录•第一章•第二章•第三章•第四章•第五章•第六章•第七章•第八章第一章小内容消息传递计算机系统结构SISDMIMD向量计算机阵列计算机多处理机UMA多计算机COMASIMDMISDNUMAMPPCOW总线交换结构CC-NUMA网格超立方体NC-NUMA共享内存?冯.诺依曼以运算器为中心的冯·诺依曼机•冯·诺依曼计算机硬件框图4数据线控制线与反馈线冯·诺依曼计算机的特点1.计算机由运算器、存储器、控制器和输入设备、输出设备五大部件组成;2.程序以二进制代码的形式表示;3.程序存放于存储器中,按地址访存;4.所有的指令都由操作码和地址码组成;5.指令在存储器内按顺序存放;6.以运算器为计算机结构的中心。5以存储器为中心的现代计算机•以存储器为中心的计算机硬件框图6数据线控制线反馈线计算机硬件组成7运算器8运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。与ControlUnit共同组成了CPU的核心部分。控制器9控制器(ControlUnit),是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。控制器从存储器中逐条取出指令,分析每条指令规定的是什么操作以及所需数据的存放位置等,然后根据分析的结果向计算机其它部件发出控制信号,统一指挥整个计算机完成指令所规定的操作。计算机自动工作的过程,实际上是自动执行程序的过程,而程序中的每条指令都是由控制器来分析执行的,它是计算机实现“程序控制”的主要设备。存储器10存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。输入设备11向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。输出设备12输出设备(OutputDevice)是计算机的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表示出来。计算机硬件与软件关系13例如,乘法运算可以由硬件乘法器实现,也可以在加法器和移位器的支持下,通过执行乘法子程序实现。在用户看来,乘法器和乘法子程序在实现乘法运算的功能上是没有区别的。实际上,在计算机中,有许多功能既可以由硬件实现,也可以在硬件支持下依靠软件实现,对用户而言在功能上是等价的,这种情况称为硬件、软件在功能上的逻辑等价。计算机系统抽象层的转换程序执行结果不仅取决于算法、程序编写而且取决于语言处理系统操作系统ISA微体系结构不同计算机课程处于不同层次必须将各层次关联起来解决问题功能转换:上层是下层的抽象,下层是上层的实现底层为上层提供支撑环境!最高层抽象就是点点鼠标、拖拖图标、敲敲键盘,但这背后有多少层转化啊!计算机系统的不同用户最终用户工作在由应用程序提供的最上面的抽象层系统管理员工作在由操作系统提供的抽象层应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层语言处理系统建立在操作系统之上系统程序员(实现系统软件)工作在ISA层次,必须对ISA非常了解编译器和汇编器的目标程序由机器级代码组成操作系统通过指令直接对硬件进行编程控制ISA处于软件和硬件的交界面(接口)ISA是对硬件的抽象所有软件功能都建立在ISA之上ISA是最重要的层次!那么,什么是ISA呢?指令集体系结构(ISA)•ISA指InstructionSetArchitecture,即指令集体系结构•ISA是一种规约(Specification),它规定了如何使用硬件•可执行的指令的集合,包括指令格式、操作种类以及每种操作对应的操作数的相应规定;•指令可以接受的操作数的类型;•操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途;•操作数所能存放的存储空间的大小和编址方式;•操作数在存储空间存放时按照大端还是小端方式存放;•指令获取操作数的方式,即寻址方式;•指令执行过程的控制方式,包括程序计数器、条件码定义等。•ISA在计算机系统中是必不可少的一个抽象层,Why?•没有它,软件无法使用计算机硬件!•没有它,一台计算机不能称为“通用计算机”ISA和计算机组成(微结构)之间的关系不同ISA规定的指令集不同,如,IA-32、MIPS、ARM等计算机组成必须能够实现ISA规定的功能,如提供GPR、标志、运算电路等同一种ISA可以有不同的计算机组成,如乘法指令可用ALU或乘法器实现控制器CPUPC输入设备输出设备MARMDRALU标志寄存器IR地址数据控制GPRs0123存储器01234567ISA是计算机组成的抽象计算机系统一般分为7个层次18计算机是如何工作的?程序在执行前数据和指令事先存放在存储器中,每条指令和每个数据都有地址,指令按序存放,指令由OP、ADDR字段组成,程序起始地址置PC(原材料和菜谱都放在厨房外的架子上,每个架子有编号。妈妈从第5个架上指定菜谱开始做)开始执行程序第一步:根据PC取指令(从5号架上取菜谱)第二步:指令译码(看菜谱)第三步:取操作数(从架上或盘中取原材料)第四步:指令执行(洗、切、炒等具体操作)第五步:回写结果(装盘或直接送桌)第六步:修改PC的值(算出下一菜谱所在架子号6=5+1)继续执行下一条指令(继续做下一道菜)程序由指令组成(菜单由菜谱组成)指令和数据•程序启动前,指令和数据都存放在存储器中,形式上没有差别,都是0/1序列•采用”存储程序“工作方式:•程序由指令组成,程序被启动后,计算机能自动取出一条一条指令执行,在执行过程中无需人的干预。•指令执行过程中,指令和数据被从存储器取到CPU,存放在CPU内的寄存器中:指令在IR中,数据在GPR中。指令中需给出的信息:操作性质(操作码)源操作数1或/和源操作数2(立即数、寄存器编号、存储地址)目的操作数地址(寄存器编号、存储地址)存储地址的描述与操作数的数据结构有关!IR?GPR?运算速度:CPU执行时间21运算速度:CPI22CPI(ClockcyclesPerInstruction)CPI=CPU时钟周期数/IC23反映了与CPU性能相关的3个参数CPU时钟周期数=CPI×IC运算速度24改进性能的方法减少时钟周期数;增加时钟频率;25NiiiICCPI1ICICCPINiii/1NiiiICICCPI1/iCPIiICCPU执行时间26指令类型指令条数平均时钟周期数整数类型400001数据传送300002浮点运算200002控制传送10000227解:程序的总指令条数为:IC==40000+30000+20000+10000=105指令的平均时钟周期数为:CPI==(140000+230000+220000+210000)/105=1.6测试程序的执行时间为:CPU执行时间=时钟周期长度=时钟频率=(140000+230000+220000+210000)/4108=410-4sNiiIC1ICICCPINiii/1NiiiICCPI1/1NiiiICCPI28指令类型指令条数平均时钟周期数整数类型400001数据传送300002浮点运算200002控制传送10000229解:程序的总指令条数为:IC==40000+30000+20000+10000=105指令的平均时钟周期数为:CPI==(140000+230000+220000+210000)/105=1.6测试程序的执行时间为:CPU执行时间=时钟周期长度=时钟频率=(140000+230000+220000+210000)/4108=410-4sNiiIC1ICICCPINiii/1NiiiICCPI1/1NiiiICCPI综合性能评价的方法•可用以下两种平均值来评价:•Arithmeticmean(算术平均):求和后除n•Geometricmean(几何平均):求积后开根号n•根据算术平均执行时间能得到总平均执行时间•根据几何平均执行时间不能得到程序总的执行时间•执行时间的规一化(测试机器相对于参考机器的性能):•参考机上执行时间÷测试机上执行时间综上所述,算术平均和几何平均各有长处,可灵活使用!谬误与陷阱陷阱在改进计算机的某个方面时期望总性能的提高与改进大小成正比。Amdahl定律:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。推论:加速最常见的事件。谬误与陷阱谬误利用率低的计算机功耗低10%的利用率会消耗约2/3的峰值功率陷阱:用性能公式的一个子集去度量性能。简单地只使用时钟频率、每秒钟执行的指令数或CPI之一去评价性能。No.1end第二章小内容计算机组成与体系结构34机器数是指数在计算机中的表示形式,一般是采用某种编码形式表示带符号的二进制数。真值是指机器数所对应的实际数值。一般机器数有如下特点:(1)数的符号采用二进制代码化,0代表“+”,1代表“-”。通常将符号的代码放在数据的最高位(2)小数点本身是隐含的,不占用存储空间(3)每个机器数据所占的二进制位受机器硬件规模的限制,与机器字长有关,超过机器字长的数值要舍去6.机器数和真值计算机组成与体系结构35•定义:整数[X]移=2n+X2nX≥-2n小数[X]移=1+X1X≥-1即无论X是正还是负,一律加上2n,称2n为基数。•移码与补码的关系是:真值是正数时,移码是补码的最高位加1;真值是负数时,移码是补码的最高位减1。也就是把补码的符号位变为其反码即可。即若[X]补=XSXn-1Xn-2…X1X0,则[X]移=XSXn-1Xn-2…X1X0【例】X=1001[X]补=01001可求得[X]移=11001X=-1001[X]补=10111可求得[X]移=0011110.机器数的移(增)码表示法计算机组成与体系结构36•定义:整数[X]移=2n+X2nX≥-2n小数[X]移=1+X1X≥-1即无论X是正还是负,一律加上2n,称2n为基数。•移码与补码的关系是:真值是正数时,移码是补码的最高位加1;真值是负数时,移码是补码的最高位减1。也就是把补码的符号位变为其反码即可。即若[X]补=XSXn-1Xn-2…X1X0,则[X]移=XSXn-1Xn-2…X1X0【例】X=1001[X]补=01001可求得[X]移=11001X=-1001[X]补=10111可求得[X]移=0011110.机器数的移(增)码表示法计算机组成与体系结构37•定义:整数[X]移=2n+X2nX≥-2n小数[X]移=1+X1X≥-1即无论X是正还是负,一律加上2n,称2n为基数。•