第5讲程序与处理器_第1页
第5讲程序与处理器_第2页
第5讲程序与处理器_第3页
第5讲程序与处理器_第4页
第5讲程序与处理器_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

清华大学电子工程系

电子信息科学与技术导引

程序与处理器马洪兵2014年5月12日电子信息科学与技术知识体系2大纲历史:计算与计算机1指令集体系结构2程序和程序设计语言3处理器的工作原理4更快更强53历史:计算与计算机以古为镜,可以知兴替——李世民你对以往知道的愈多,对未来就看得愈远——温斯顿丘吉尔4什么是计算将3乘以8(3x8)就是一种简单的计算。数学中的计算有加,减,乘,除,乘方,开方等广义的计算包括逻辑推理,文法的产生式,函数,组合数学的置换,变量代换,图形图像的变换,数理统计,人工智能解空间的遍历,问题求解,图论的路径问题,网络安全,代数系统理论等5什么是计算工程中数字系统设计(例如逻辑代数),软件程序设计(文法),机器人设计,建筑设计等设计问题也可以称为计算经济生活中商品价格的评估也是一种复杂的计算从投票意向评估出的选举结果(民意调查)也包含了计算,但是提供的计算结果是“各种可能性的范围”而不是单一的正确答案计算是一种将单一或多个输入值转换为单一或多个结果的一种过程6什么是计算计算可以用简单的模型来表示例如c=a+b,输入数据是a、b,输出数据是c,运算器执行加法运算器输入数据输出数据7人类早期的计算工具计算程序储存在人的大脑中8BlaisePascal(1623-1662)加法机(1642)由一系列齿轮组成的纯机械设备。采用十进制运算,能完成8位十进制数的加法和减法运算计算程序体现在设备的机械结构中意义:揭示出用机器代替人类进行计算,完全可以做到人类早期的计算工具9进位问题:采用了一种小爪子式的棘轮装置,当个位齿轮朝9转动时,棘爪便逐渐升高,一旦齿轮转到0,棘爪就跌落下来,推动十位数的齿轮前进一档Pascal加法机的工作原理人类早期的计算工具10人类早期的计算工具Pascal加法机发明后的300年间,虽然出现了Leibniz计算器、Babbage分析机等重要的机械计算机,但是发展速度十分缓慢11由四部分组成:存储部分、计算部分、输入部分、输出部分存储部分由1000个字组成,每个字为50位十进制数;计算部分从存储部分接收操作数,进行加减乘除运算,并将结果存回到存储器;输入部分从穿孔卡片读取指令;输出部分将计算结果穿孔在卡片上分析机(AnalyticalEngine)(1837)

——历史上的第一台通用计算机分析机12分析机的设计思想与现代CPU的存储程序原理十分相似,而且程序可以根据条件进行跳转,能在几秒内做出一般的加法,几分钟内做出乘、除法。

不幸的是,分析机的硬件问题一直没有解决,原因是19世纪的技术条件无法制造出分析机所需要的成千上万个高精度的齿轮CharlesBabbageBabbage的思想远远超过了他的时代分析机13作为通用计算机,分析机在运行时需要软件,Ada成为人类历史上的第一名程序员现代程序设计语言Ada就是为纪念她而命名的软件AdaLovelace(1815-1852)

14ENIAC1946年,ENIAC在美国宾夕法尼亚大学研制成功,这是世界上第一台现代意义的通用电子计算机15ENIAC装有18,000个电子管,总重量达30吨,功耗140kw有20个寄存器,每个能存放10位的十进制数,运算速度为每秒5000次加法通过设置分布在各处的6000个开关和众多的插头与插座来编程16ENIAC为ENIAC编写的“程序”17电子计算机怎么计算?作为计算基础的二进制加法18更复杂的计算假如我们要计算a+b×c:ENIAC就是这么做的加法器乘法器ba+b×ccab×c19如果我们要算另外一道题?a

b-c×d我们就必须重新构造这台计算机……怎么办?20大纲历史:计算与计算机1指令集体系结构2程序和程序设计语言3处理器的工作原理4更快更强521通用计算机模型人类天生具备大局观,最擅长从大到小,由表及里的分析问题能够区分各种行业;深入行业后就以内行方式看门道;最终发现所有的工作都是由最简单的步骤组成,所有的物品都是由最简单的部件组成计算也是如此——任何复杂的计算都是由简单的基本计算组合而成的22通用计算机模型我们换一种方法来计算a+b×c:第一步:Temp=b×c第二步:Result=a+temp于是我们就可以:当我们需要算另外一道题时,只要将这个过程进行修改即可abc乘法器temp第一步atemp加法器result第二步23现代计算机组成主机系统CPU存储器输出

设备

输入

设备

运算器控制器数据通路

控制信号

24运算器——算术逻辑单元实现基本计算的电路(如加法器、乘法器等)可以组合在一起,称为算术逻辑单元ALU25存储器复杂的计算需要大量的输入数据和输出数据,因此我们需要一个存储器将其存起来26控制器除了存储器和运算器,还需要一个控制器控制器控制着将存储器中的数据送到运算器(ALU)中进行计算,然后将结果存回到存储器中指示输入数据存在何处,做什么运算,结果存到何处的控制命令称为指令27控制器组合逻辑电路与时序电路分步进行的程序需要时序逻辑实现机制寄存器堆算术逻辑部件AB控制器程序28输入设备&输出设备数据要从外部输入进来,结果也要输出出去,因此还需要输入设备和输出设备29冯·诺依曼存储程序原理冯·诺伊曼发现ENIAC存在的主要问题:用大量的开关和插头来编程用10个电子管表示一位十进制数改进措施:针对用10个电子管表示一位十进制数,提出应该用二进制来替代针对ENIAC用开关和插头来编程,提出了程序可以以编码形式和数据一起在内存中存储冯·诺伊曼的工作成为如今广泛采用用的冯·诺伊曼体系结构的基础30冯·诺伊曼机中程序的执行原理把程序(指令序列)存储在存储器内,使计算机能像快速存取数据一样地快速存取组成程序的指令,存放位置由地址指定,地址码也是二进制形式控制器根据存放在存储器中的程序工作,并由一个程序计数器(PC)控制指令的读取。控制器具有判断能力,能够根据计算结果选择不同的动作流程给出程序中第一条指令的地址,控制器就可依据存储程序中的指令顺序周而复始地取指令、译码、执行,直到完成全部指令操作为止

取指令,PC值加1停机?译码结束YN执行31指令集就是用来控制计算机系统的一套命令的集合,指令集是有限集合指令集是有限集合指令集中的每条指令都可以用硬件实现每一种处理器在设计时就规定了一系列与硬件电路相配合的指令系统指令集的先进与否,也关系到处理器的性能发挥,它也是处理器性能体现的一个重要标志指令集32与其它电路系统不同的是,计算机本质上是指令处理器,指令集体系结构(ISA)是计算机的灵魂,是计算机硬件和软件的接口指令集体系结构33ISA(InstructionSetArchitecture)是计算机硬件与底层软件之间的接口,它是程序员为使一个二进制机器语言程序正确运行所需要了解的属性指令集体系结构34我们需要哪些指令x(n)为输入信号,

y(n)为输入信号,coefi为滤波器系数处理器需要有加法、乘法指令——算术逻辑运算指令算术逻辑运算指令还包括逻辑运算、移位运算等35我们需要哪些指令除了进行计算,处理器还要能实现循环,如上述计算循环了n次跳转指令可以实现循环循环需要在一定的条件跳出,否则就成了死循环,条件分支指令可以实现该功能跳转、分支以及子程序调用与返回等指令统称流程控制指令起点终点跳转回去顺序执行36我们需要哪些指令现代RISC处理器要求算术逻辑运算的操作数只能在寄存器中,因此运算前数据要由存储器装入(load)寄存器中,运算完成后,再由寄存器存储(store)到存储器中实现存储器和寄存器间数据交换的指令称为数据传送指令37我们需要哪些指令有了算术逻辑运算指令、数据传送指令、流程控制指令这3类指令,处理器就能够完成各种复杂的计算38指令格式指令以编码的形式如同数据一样存放在存储器中。一条指令一般由操作码和操作数地址码两部分组成这些操作码和地址码被控制器译码,形成控制系统各部分的控制信号操作码操作数地址码39指令集的例子MIPS指令集(三种指令)例子addi $s1,$s0,1sw $s1,8000($s0)40指令集体系结构的市场划分虽然生产处理器的厂家很多,但世上却只有为数不多的指令集体系结构ARMX86PowerPCMIPS41ISA的地位ISA背后是一个生态链,而不是一两家公司发明一套新的ISA并不难,难的是你要让别人接受你发明的ISA此路是我开,此树是我栽,要想打此过,留下买路财处理器程序ISA42大纲历史:计算与计算机1指令集体系结构2程序和程序设计语言3处理器的工作原理4更快更强543什么是程序?按时间先后或依次安排的工作步骤。如工作程序;医疗程序。

——《辞海》事情进行的先后次序。如会议程序;工作程序。

——《现代汉语词典》计算机程序或者软件程序(通常简称程序)是指一组指示计算机或其他具有信息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。

——维基百科44程序的重要性做任何事情,首先强调的就是程序从管理的角度,程序是能够发挥出协调高效作用的工具。应该充分重视程序的作用,不断地将我们的工作从无序整改到有序45什么是计算机程序?计算机程序就是为实现特定目标或解决特定问题而用计算机程序设计语言编写的命令序列的集合程序是由命令序列组成的,它告诉计算机如何完成一个具体的任务由于现在的计算机还不能理解人类的自然语言,所以还不能用自然语言编写计算机程序46程序设计语言程序设计语言,就是一组用来定义计算机程序的语法规则程序设计语言能够让程序员准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动在过去的几十年间,发明了大量的程序设计语言:C、C++、BASIC、FORTRAN、COBAL、Matlab、……47程序设计语言为了解决机器语言编写程序的困难,用助记符来表示指令计算机的全部二进制指令组成控制计算机运行的语言更进一步符合人的思维方式和表达方式的编程语言机器语言汇编语言高级语言48机器语言MIPS机器语言编写的Hello,World.天啊,要这么编程序……00111100000000010001000000000001001101000010010000000000000000000010010000000010000000000000010000000000000000000000000000001100001001000000001000000000000010100000000000000000000000000000110049汇编语言用有意义的助记符代替难以理解和记忆的指令字 .textmain: la $a0,str li $v0,4 syscall #printstring li $v0,10 syscall #exit .data .align2str: .asciiz"Helloworld."50汇编语言汇编语言的助记符形式的指令必须翻译成机器语言二进制指令才能在计算机上执行,实现这种翻译的程序称为汇编器(assembler)汇编语言源程序机器语言程序汇编器001000000000100000000000000000010010000100001000000000000000001010101100000010000001111101000000addi$s1,$0,1addi$s1,$s1,2sw$s1,8000($0)51汇编语言汇编语言与机器语言是一一对应的,所以汇编语言仍然太繁琐,开发效率仍然十分低下,程序的编写太困难,所以……52高级语言更加符合人的习惯,与机器结构无关#include<stdio.h>intmain(intargc,char*argv[]){printf(“Hello,world!\n”);return0;}packagetest.hello;classHello{publicstaticvoidmain(String[]args){System.out.println(“Hello,world!”);}}usingnamespacestd;intmain(){cout<<"Hello,world!"<<endl;return0;}print"Hello,world!"53高级语言不同的高级语言具有不同的语法和风格,适合于不同的应用领域高级语言同样不能被计算机所直接执行,必须通过一个中间过程,可行的中间过程有编译和解释两种编译(Compile):一次翻译,重复运行,效率更高解释(Interpret):随执行随翻译,更灵活54大纲历史:计算与计算机1指令集体系结构2程序和程序设计语言3处理器的工作原理4更快更强555处理器处理器是计算机的核心,它执行算术运算、逻辑判断、控制存储器访问、以及激活I/O设备等操作处理器包含两个主要的组成部分:数据通路控制器56数据通路数据通路有两种设计方法:专用通路、总线专用通路是源部件和目标部件之间传送数据的一组专用信号线总线(bus)是多个源部件和多个目标部件之间按分时复用的方式传送数据的一组公用信号线57控制器提供控制信号,指挥和控制计算机所有部件协调工作,从而使计算机能够按照程序规定的指令执行次序,自动地连续执行指令58处理器32位通用寄存器R0R31PCACIRMARMDRABCALU数据通路内存控制器控制信号控制单元输入控制器与数据通路的关系59计算机怎样执行程序问题:计算1+2=?C程序60单总线MIPS计算机61计算机怎样执行程序addi$1,$0,1取指:T0

CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……地址译码器内存000000040008...读控制写控制0x200100010x202100020xac011f40CPU+400000000控制器62计算机怎样执行程序addi$1,$0,1取指:T1CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x20010001指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器63计算机怎样执行程序addi$1,$0,1取指:T2CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x20010001指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器0x2001000164计算机怎样执行程序addi$1,$0,1译码:T3CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x20010001指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器0x2001000165计算机怎样执行程序addi$1,$0,1执行:T4CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x2001000100指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器0x2001000166计算机怎样执行程序addi$1,$0,1执行:T5CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x20010001011指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器0x2001000167计算机怎样执行程序addi$1,$0,1执行:T6CPU内部总线内存数据寄存器(MDR)内存地址寄存器(MAR)程序计数器(PC)32位通用寄存器R0R31ALUAC地址译码器内存000000040008...读控制写控制CPU+4000400000x200100010x202100020xac011f400x20010001011指令寄存器(IR)指令译码器(ID)控制信号发生器控制信号……控制器0x2001000168处理器处理器是一个复杂的数字系统:ALU——实现算术和逻辑运算数据通路——由处理器内部的各种连线和各种辅助性质的寄存器组成控制器——提供控制信号,指挥和控制计算机所有部件协调工作ALU一般由组合逻辑电路实现、数据通路和控制器既包含组合逻辑电路,也包含时序逻辑电路69大纲历史:计算与计算机1指令集体系结构2程序和程序设计语言3处理器的工作原理4更快更强570更快更强处理器(CPU)的性能对于计算机来讲至关重要让CPU变得更快更强大成为贯穿计算机发展史的重要目标ENIAC:5000次加法/秒中国国防科技大学的“天河二号”超级计算机(Top1,2012):33.86PFlop/s不到70年间,6万7千亿倍的计算速度差距,CPU的发展功不可没怎样提高CPU的性能呢?71三总线结构一个简单的例子从我们前面的示例

处理器开始,通过

增加数据通路的方

式来提高处理器的

性能72处理器性能公式P=I×CPI×T执行一个程序所花费的时间这个程序所需执行的总指令数每条指令执行的平均周期数以毫秒或毫微秒计的时钟周期73提高性能的常见手段减小T值减小CPI值减小I值增强指令集中指令的能力,减小一个程序需要执行的指令数目采用各种技术手段提高处理器的主频,减小一个时钟周期的时间增加指令执行的并行程度,减小CPI74RISCvsCISCCISCRISCvsCISCRISC增强指令功能填补高级语言和机器指令之间的间隙减少需要的指令数目可变长指令以提高存储器利用率面向存储器的指令不利于CPU的设计硬逻辑实现困难,多使用微程序实现80-20原则精简指令集,提高指令集的执行效率定长指令以方便优化Load/Store结构以方便指令调度和提高效率有利于CPU的设计硬连逻辑实现,效率高I的少量增加带来C和T的减小目前的处理器基本上都采用RISC核心,而部分CISC技术也被融合进来,形成所谓后RISC体系75流水线流水线:提高处理器性能的基本途径76流水线带来的性能改进N级流水线性能分析:每个周期做1/N的工作,时间也是整个指令的1/N每个周期有一条指令完成执行性能提高N倍……123N……123N……123N……123N…………77超流水线流水线越长,流水线中的“气泡”越多,结果是性能的严重下降……2级流水取指-执行5级流水取指-译码1/2

-执行-写回10级流水20~31级808680486PentiumIIIPentium478超标量与流水线一条流水线不够用,那就多条吧超标量流水线结构可是,问题在于……123N……123N……123N……123N…………123N……123N……123N……123N……79指令的相关性指令之间的相关性造成流水线中的竞争现象80当流水线“流”不起来原因条件转移指令之间的依赖性指令/数据无法供应对策转移预测乱序执行Cache81转移预测转移预测和猜测执行静态预测动态预

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论