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

下载本文档

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

文档简介

1、清华大学清华大学电子工程系电子工程系电子信息科学与技术导引电子信息科学与技术导引程序程序与处理器与处理器电子信息科学与技术知识体系电子信息科学与技术知识体系2大纲大纲历史:计算与计算机历史:计算与计算机1指令集体系结构指令集体系结构2程序和程序设计语言程序和程序设计语言3处理器的工作原理处理器的工作原理4更快更强更快更强53历史:计算与历史:计算与计算机计算机 以古为镜,可以知兴以古为镜,可以知兴替替李世民李世民 你对以往知道的愈多,对未来就看得愈远你对以往知道的愈多,对未来就看得愈远温斯顿温斯顿 丘吉尔丘吉尔4什么是计算什么是计算 将将3乘以乘以8(3x8)就是一种简单的计算。数学中)就是一

2、种简单的计算。数学中的计算有加,减,乘,除,乘方,开方等的计算有加,减,乘,除,乘方,开方等 广义的计算包括逻辑推理,文法的产生式,函数,广义的计算包括逻辑推理,文法的产生式,函数,组合数学的置换,变量代换,图形图像的变换,组合数学的置换,变量代换,图形图像的变换,数理统计,人工智能解空间的遍历,问题求解,数理统计,人工智能解空间的遍历,问题求解,图论的路径问题,网络安全,代数系统理论等图论的路径问题,网络安全,代数系统理论等5什么是计算什么是计算 工程中数字系统设计(例如逻辑代数),软件程工程中数字系统设计(例如逻辑代数),软件程序设计(文法),机器人设计,建筑设计等设计序设计(文法),机器

3、人设计,建筑设计等设计问题也可以称为计算问题也可以称为计算 经济生活中商品价格的评估也是一种复杂的计算经济生活中商品价格的评估也是一种复杂的计算 从投票意向评估出的选举结果(民意调查)也包从投票意向评估出的选举结果(民意调查)也包含了计算,但是提供含了计算,但是提供的计算结果的计算结果是是“各种可能性各种可能性的范围的范围”而不是单一的正确答案而不是单一的正确答案 计算是一种将单一或多个输入值转换为单一或多计算是一种将单一或多个输入值转换为单一或多个结果的一种过程个结果的一种过程6什么是计算什么是计算 计算可以用简单的模型来表示计算可以用简单的模型来表示 例如例如c=a+b,输入数据是,输入数

4、据是a、b,输出数据,输出数据是是c,运算器执行加法,运算器执行加法运算器运算器输入数输入数据据输出数输出数据据7人类早期的计算工具人类早期的计算工具 计算程序储存在人的大脑中计算程序储存在人的大脑中8Blaise Pascal(1623-1662) 加法机加法机 (1642) 由一系列齿轮组成的纯机械设备。采用十进制运算,能完由一系列齿轮组成的纯机械设备。采用十进制运算,能完成成8位十进制数的加法和减法运算位十进制数的加法和减法运算 计算程序体现在设备的机械结构中计算程序体现在设备的机械结构中 意义:揭示出用机器代替人类进行计算意义:揭示出用机器代替人类进行计算,完全,完全可以可以做到做到人

5、类早期的计算工具人类早期的计算工具9进位问题:进位问题:采用了一种采用了一种小爪子式的棘轮装置,小爪子式的棘轮装置,当个位齿轮朝当个位齿轮朝9 9转动时,转动时,棘爪便逐渐升高,一旦棘爪便逐渐升高,一旦齿轮转到齿轮转到0 0,棘爪就跌落,棘爪就跌落下来,推动十位数的齿下来,推动十位数的齿轮前进一档轮前进一档PascalPascal加法机的工作原理加法机的工作原理人类早期的计算工具人类早期的计算工具10人类早期的计算工具人类早期的计算工具 Pascal加法机发明后的加法机发明后的300年间,虽然出现年间,虽然出现了了Leibniz计算器、计算器、 Babbage分析机等重分析机等重要的机械计算机

6、,但是发展速度十分缓慢要的机械计算机,但是发展速度十分缓慢11由四部分组成:存储部分、计算部分、输入部由四部分组成:存储部分、计算部分、输入部分、输出部分分、输出部分存储部分由存储部分由10001000个字组成,每个字为个字组成,每个字为5050位十进位十进制数;计算部分从存储部分接收操作数,进行制数;计算部分从存储部分接收操作数,进行加减乘除运算,并将结果存回到存储器;输入加减乘除运算,并将结果存回到存储器;输入部分从穿孔卡片读取指令;输出部分将计算结部分从穿孔卡片读取指令;输出部分将计算结果穿孔在卡片上果穿孔在卡片上分析机分析机(Analytical Engine) (1837)(Anal

7、ytical Engine) (1837)历史上的第一台通用计算机历史上的第一台通用计算机分析机分析机12分析机的设计思想与现代分析机的设计思想与现代CPUCPU的的存储程序原理十分相似,而且程存储程序原理十分相似,而且程序可以根据条件进行跳转,能在序可以根据条件进行跳转,能在几秒内做出一般的加法,几分钟几秒内做出一般的加法,几分钟内做出乘、除法。内做出乘、除法。不幸的是,分析机的硬件问题一不幸的是,分析机的硬件问题一直没有解决,原因是直没有解决,原因是1919世纪的世纪的技术条件无法制造出分析机所需技术条件无法制造出分析机所需要的成千上万个高精度的齿轮要的成千上万个高精度的齿轮Charles

8、 BabbageBabbage的思想远远超过了他的时代分析机分析机13作为通用计算机,分析机在运行时需要软件,作为通用计算机,分析机在运行时需要软件, AdaAda成为人类历史上的第一名程序员成为人类历史上的第一名程序员现代程序设计语言现代程序设计语言AdaAda就是为纪念她而命名的就是为纪念她而命名的软件软件Ada Lovelace(1815-1852)14ENIAC 1946年年, ENIAC在美在美国宾夕法尼亚大学国宾夕法尼亚大学研制成功,这是世研制成功,这是世界上第一台现代意界上第一台现代意义的通用电子计算义的通用电子计算机机15ENIAC 装有装有18,000个电子管,个电子管,总重

9、量达总重量达30吨,功耗吨,功耗140kw 有有20个寄存器,每个能个寄存器,每个能存放存放10位的十进制数,位的十进制数,运算速度为每秒运算速度为每秒5000次次加法加法 通过设置分布在各处的通过设置分布在各处的6000个开关和众多的插个开关和众多的插头与插座来编程头与插座来编程16ENIAC 为为ENIAC编写的编写的“程序程序”17电子计算机怎么计算?电子计算机怎么计算? 作为计算基础的二进制加法18更复杂的计算更复杂的计算 假如我们要计算a+bc: ENIAC就是这么做的加法器乘法器ba+bccabc19如果我们要算另外一道题?如果我们要算另外一道题?vab-cdv我们就必须重新构造这

10、台计算机v怎么办?20大纲大纲历史:计算与计算机历史:计算与计算机1指令集体系结构指令集体系结构2程序和程序设计语言程序和程序设计语言3处理器的工作原理处理器的工作原理4更快更强更快更强521通用计算机模型通用计算机模型 人类天生具备大局观,最擅长从大到小,人类天生具备大局观,最擅长从大到小,由表及里的分析问题由表及里的分析问题 能够区分各种行业;深入行业后就以内行方式能够区分各种行业;深入行业后就以内行方式看门道;最终发现所有的工作都是由最简单看门道;最终发现所有的工作都是由最简单的的步骤组成,所有步骤组成,所有的物品都是的物品都是由最简单由最简单的部件组的部件组成成 计算也是如此计算也是如

11、此任何复杂的计算都是由任何复杂的计算都是由简单的基本计算组合而成的简单的基本计算组合而成的22通用计算机模型通用计算机模型 我们换一种方法来计算我们换一种方法来计算a+bc: 第一步:第一步:Temp = bc 第二步:第二步:Result=a+temp 于是我们就可以:于是我们就可以: 当我们需要算另外一道题时,只要将这个过程进当我们需要算另外一道题时,只要将这个过程进行修改即可行修改即可abc乘法器temp第一步atemp加法器result第二步23现代计算机组成现代计算机组成主机系统主机系统CPU存储器存储器输出输出 设备设备 输入输入 设备设备 运算器运算器控制器控制器数据数据通通路路

12、 控制信号控制信号 24运算器运算器算术逻辑单元算术逻辑单元 实现基本计算的电路(如加法器、乘法器实现基本计算的电路(如加法器、乘法器等)可以组合在一起,称为算术逻辑单元等)可以组合在一起,称为算术逻辑单元ALU25存储器存储器 复杂的计算需要大量的输入数据和输出数复杂的计算需要大量的输入数据和输出数据,因此我们需要一个存储器将其存起来据,因此我们需要一个存储器将其存起来26控制器控制器 除了存储器和运算器,还需要一个控制器除了存储器和运算器,还需要一个控制器 控制器控制着将存储器中的数据送到运算控制器控制着将存储器中的数据送到运算器器(ALU)中进行计算,然后将结果存回到存中进行计算,然后将

13、结果存回到存储器中储器中 指示输入数据存在何处,做什么运算,结指示输入数据存在何处,做什么运算,结果存到何处的控制命令称为果存到何处的控制命令称为指令指令27控制器控制器 组合逻辑电路与时序电路组合逻辑电路与时序电路分步进行的程序需要时序逻辑分步进行的程序需要时序逻辑 实现机制实现机制寄存器堆算术逻辑部件AB控制器程序28输入设备输入设备&输出设备输出设备 数据要从外部输入进来,结果也要输出出数据要从外部输入进来,结果也要输出出去,因此还需要输入设备和输出设备去,因此还需要输入设备和输出设备29冯冯诺依曼存储程序原理诺依曼存储程序原理 冯冯诺伊曼发现诺伊曼发现ENIAC存在的主要问题:

14、存在的主要问题: 用大量的开关和插头来编程用大量的开关和插头来编程 用用10个电子管表示一位十进制数个电子管表示一位十进制数 改进措施:改进措施: 针对用针对用1010个电子管表示一位十进制数,个电子管表示一位十进制数,提出应该用二进制来替代提出应该用二进制来替代 针对针对ENIACENIAC用开关和插头来编程,用开关和插头来编程, 提出了提出了程序可以以编码形式和数据一起在内存中程序可以以编码形式和数据一起在内存中存储存储 冯冯诺伊曼诺伊曼的工作成为如今广泛采用用的工作成为如今广泛采用用的的冯冯诺伊曼体系结构诺伊曼体系结构的基础的基础30冯冯诺伊曼机中程序的执行原理诺伊曼机中程序的执行原理把

15、程序把程序(指令序列指令序列)存储在存储器内,存储在存储器内,使计算机能像快速存取数据一样使计算机能像快速存取数据一样地快速存取组成程序的指令,存地快速存取组成程序的指令,存放位置由地址指定,地址码也是放位置由地址指定,地址码也是二进制形式二进制形式控制器根据存放在存储器中的程控制器根据存放在存储器中的程序工作,并由一个程序计数器序工作,并由一个程序计数器(PC)控制指令的读取。控制器具有判控制指令的读取。控制器具有判断能力,能够根据计算结果选择断能力,能够根据计算结果选择不同的动作流程不同的动作流程给出程序中第一条指令的地址,给出程序中第一条指令的地址,控制器就可依据存储程序中的指控制器就可

16、依据存储程序中的指令顺序周而复始地取指令、译码、令顺序周而复始地取指令、译码、执行,直到完成全部指令操作为执行,直到完成全部指令操作为止止取指令,PC 值加 1停机 ?译码结束YN执行31 指令集指令集就是用来控制就是用来控制计算机系统的一套命计算机系统的一套命令的集合令的集合,指令集是有限集合,指令集是有限集合 指令集是有限集合指令集是有限集合 指令集中的每条指令都可以用硬件实现指令集中的每条指令都可以用硬件实现 每每一一种处理器种处理器在设计时就规定了一系列与在设计时就规定了一系列与硬件电路相配合的硬件电路相配合的指令系统指令系统 指令集的先进与否,也关系到处理器的性指令集的先进与否,也关

17、系到处理器的性能发挥,它也是处理器性能体现的一个重能发挥,它也是处理器性能体现的一个重要标志要标志指令集指令集32 与其它电路系统不同的是,计算机本质上是与其它电路系统不同的是,计算机本质上是指令指令处理器,处理器,指令集体系结构指令集体系结构(ISA)是计算机的灵魂,是计算机的灵魂,是计算机硬件和软件是计算机硬件和软件的接口的接口指令集体系结构指令集体系结构33 ISA(Instruction Set Architecture)是计算是计算机硬件与底层软件之间的接口,它是程序机硬件与底层软件之间的接口,它是程序员为使一个二进制机器语言程序正确运行员为使一个二进制机器语言程序正确运行所需要了解

18、的属性所需要了解的属性指令集体系结构指令集体系结构34我们需要哪些指令我们需要哪些指令 x(n)为输入信号,为输入信号, y(n)为为输入信号输入信号,coefi为滤波器系数为滤波器系数 处理器需要有加法、乘法指令处理器需要有加法、乘法指令算术逻算术逻辑运算指令辑运算指令 算术逻辑运算指令算术逻辑运算指令还包括逻辑运算、移位还包括逻辑运算、移位运算等运算等)()(10inxcoefnynii35我们需要哪些指令我们需要哪些指令 除了进行计算,处理器还要能实现除了进行计算,处理器还要能实现循环,如上述计算循环了循环,如上述计算循环了n次次 跳转指令可以实现循环跳转指令可以实现循环 循环需要在一定

19、的条件跳出,否则循环需要在一定的条件跳出,否则就成了死循环,条件分支指令可以就成了死循环,条件分支指令可以实现该功能实现该功能 跳跳转、分支以及子程序调用与返回转、分支以及子程序调用与返回等指令统称等指令统称流程控制指令流程控制指令起起点点终终点点跳跳转转回回去去顺顺序序执执行行36)()(10inxcoefnynii我们需要哪些指令我们需要哪些指令 现代现代RISC处理器要求算术逻辑运算的操作处理器要求算术逻辑运算的操作数只能在寄存器中,因此运算前数据要由数只能在寄存器中,因此运算前数据要由存储器装入存储器装入(load)寄存器中,运算完成后,寄存器中,运算完成后,再由寄存器存储再由寄存器存

20、储(store)到存储器中到存储器中 实现存储器和寄存器间数据交换的指令称实现存储器和寄存器间数据交换的指令称为为数据传送指令数据传送指令37)()(10inxcoefnynii我们需要哪些指令我们需要哪些指令 有了有了算术逻辑运算指令算术逻辑运算指令、数据传送指令数据传送指令、流程控制指令这流程控制指令这3类指令类指令,处理器就能够完处理器就能够完成各种复杂的计算成各种复杂的计算38指令格式指令格式 指令以编码的形式如同数据一样存放在存指令以编码的形式如同数据一样存放在存储器中。一条指令一般由操作码和操作数储器中。一条指令一般由操作码和操作数地址码两部分组成地址码两部分组成 这些操作码和地址

21、码被控制器译码,形成这些操作码和地址码被控制器译码,形成控制系统各部分的控制信号控制系统各部分的控制信号39指令集的例子指令集的例子 MIPS指令集(三种指令)指令集(三种指令) 例子例子 addi $s1, $s0, 1 sw $s1, 8000($s0)40指令集体系结构的市场划分指令集体系结构的市场划分 虽然生产处理器的厂家很多,但世上却只虽然生产处理器的厂家很多,但世上却只有为数不多的指令集体系结构有为数不多的指令集体系结构 ARM X86 PowerPC MIPS41ISA的地位的地位 ISA背后是一个背后是一个生态链,而不是生态链,而不是一两家公司一两家公司 发明一套新的发明一套新

22、的ISA并不难,难并不难,难的是你要让别人的是你要让别人接受你发明的接受你发明的ISA此路是我此路是我开,此树开,此树是我栽,是我栽,要想打此要想打此过,留下过,留下买路财买路财处理器处理器程序程序ISA42大纲大纲历史:计算与计算机历史:计算与计算机1指令集体系结构指令集体系结构2程序和程序设计语言程序和程序设计语言3处理器的工作原理处理器的工作原理4更快更强更快更强543什么是程序?什么是程序? 按时间先后或依次安排的工作步骤。如工作程序;按时间先后或依次安排的工作步骤。如工作程序;医疗程序。医疗程序。辞海辞海 事情进行的先后次序。如会议程序;工作程序。事情进行的先后次序。如会议程序;工作

23、程序。现代汉语词典现代汉语词典 计算机程序或者软件程序(通常简称程序)是指计算机程序或者软件程序(通常简称程序)是指一组指示计算机或其他具有信息处理能力装置每一组指示计算机或其他具有信息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。运行于某种目标体系结构上。 维基百科维基百科44程序的重要性程序的重要性 做任何事情,首先强调的就是程序做任何事情,首先强调的就是程序 从管理的角度,程序是能够发挥出协调高从管理的角度,程序是能够发挥出协调高效作用的工具。应该充分重视程序的作用,效作用的工具。应该充分重视程序的作用,不

24、断地将我们的工作从无序整改到有序不断地将我们的工作从无序整改到有序 45什么是计算机程序?什么是计算机程序? 计算机程序就是为实现特定目标或解决特计算机程序就是为实现特定目标或解决特定问题而用计算机程序设计语言编写的命定问题而用计算机程序设计语言编写的命令序列的集合令序列的集合 程序是由命令序列组成的,它告诉计算机如何程序是由命令序列组成的,它告诉计算机如何完成一个具体的任务完成一个具体的任务 由于现在的计算机还不能理解人类的自然语言,由于现在的计算机还不能理解人类的自然语言,所以还不能用自然语言编写计算机程序所以还不能用自然语言编写计算机程序46程序设计语言程序设计语言 程序设计语言,就是一

25、组用来定义计算机程序设计语言,就是一组用来定义计算机程序的语法规则程序的语法规则 程序设计语言能够让程序员准确地定义计程序设计语言能够让程序员准确地定义计算机所需要使用的数据,并精确地定义在算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动不同情况下所应当采取的行动 在过去的几十年间,发明了大量的程序设在过去的几十年间,发明了大量的程序设计语言:计语言:C、C+、BASIC、FORTRAN、COBAL、Matlab、47程序设计语言程序设计语言为 了 解 决 机为 了 解 决 机器 语 言 编 写器 语 言 编 写程 序 的 困程 序 的 困难 , 用 助 记难 , 用 助 记符

26、来 表 示 指符 来 表 示 指令令计 算 机 的 全计 算 机 的 全部 二 进 制 指部 二 进 制 指令 组 成 控 制令 组 成 控 制计 算 机 运 行计 算 机 运 行的语言的语言更进一步符更进一步符合人的思维合人的思维方式和表达方式和表达方式的编程方式的编程语言语言机器语言机器语言汇编语言汇编语言高级语言高级语言48机器语言机器语言 MIPS机器语言编写的机器语言编写的Hello, World. 天啊,要这么编程序天啊,要这么编程序001111000000000100010000000000010011010000100100000000000000000000100100000

27、00010000000000000010000000000000000000000000000001100001001000000001000000000000010100000000000000000000000000000110049汇编语言汇编语言 用有意义的助记符代替难以理解和记忆的用有意义的助记符代替难以理解和记忆的指令字指令字.textmain:la$a0, strli $v0, 4syscall# print stringli$v0, 10syscall# exit.data.align 2str: .asciiz Hello world.50汇编语言汇编语言 汇编语言的助汇编语

28、言的助记符形式的指记符形式的指令必须翻译成令必须翻译成机器语言二进机器语言二进制指令才能在制指令才能在计算机上执行,计算机上执行,实现这种翻译实现这种翻译的程序称为的程序称为汇汇编器编器(assembler)汇编语言源程序汇编语言源程序机器语言程序机器语言程序汇编器汇编器00100000000010000000000000000001001000000000100000000000000000010010000100001000000000000000001000100001000010000000000000000010101011000000100000011111010000001010

29、1100000010000001111101000000addi $s1, $0, 1addi $s1, $s1, 2sw $s1, 8000($0) 51汇编语言汇编语言 汇编语言与机器语言是一一对应的,所以汇编语言与机器语言是一一对应的,所以汇编语言仍然太汇编语言仍然太繁琐,繁琐,开发效率仍然十分开发效率仍然十分低下,低下,程序的编写太困难,所以程序的编写太困难,所以52高级语言高级语言 更加符合人的习惯,与机器结构无关更加符合人的习惯,与机器结构无关#include int main(int argc, char *argv) printf(“Hello, world!n”); retu

30、rn 0;package test.hello;class Hello public static void main(String args) System.out.println(“Hello, world!”); using namespace std;int main() cout Hello, world! endl; return 0;print Hello, world!53高级语言高级语言 不同的高级语言具有不同的语法和风格,不同的高级语言具有不同的语法和风格,适合于不同的应用领域适合于不同的应用领域 高级语言同样不能被计算机所直接执行,高级语言同样不能被计算机所直接执行,必须

31、通过一个中间过程,可行的中间过程必须通过一个中间过程,可行的中间过程有编译和解释两种有编译和解释两种 编译(编译(Compile):一次翻译,重复运行,效):一次翻译,重复运行,效率更高率更高 解释(解释(Interpret):随执行随翻译,更灵活):随执行随翻译,更灵活54大纲大纲历史:计算与计算机历史:计算与计算机1指令集体系结构指令集体系结构2程序和程序设计语言程序和程序设计语言3处理器的工作原理处理器的工作原理4更快更强更快更强555处理器处理器 处理器处理器是计算机的核心,它执行算术运算、是计算机的核心,它执行算术运算、逻辑判断、控制存储器访问、以及激活逻辑判断、控制存储器访问、以及

32、激活I/O设备等操作设备等操作 处理器包含两个主要的组成部分:处理器包含两个主要的组成部分: 数据通路数据通路 控制器控制器56数据通路数据通路 数据通路有两种设计方法:专用通路、总数据通路有两种设计方法:专用通路、总线线 专用通路是源部件和目标部件之间传送数专用通路是源部件和目标部件之间传送数据的一组专用信号线据的一组专用信号线 总线总线(bus)是多个源部件和多个目标部件之是多个源部件和多个目标部件之间按间按分时分时复用的方式传送数据的复用的方式传送数据的一组一组公用公用信号线信号线57控制器控制器 提供控制信号,指挥和控制计算机所有部提供控制信号,指挥和控制计算机所有部件协调工作,从而使

33、计算机能够按照程序件协调工作,从而使计算机能够按照程序规定的指令执行次序,自动地连续执行指规定的指令执行次序,自动地连续执行指令令58处理器处理器32位位通用通用寄存器寄存器R0R31PCACIRMARMDRABCALU数据通路数据通路内存内存控制器控制器控制信号控制信号控制单元输入控制单元输入控制器与数据通路的关系控制器与数据通路的关系59计算机怎样执行程序计算机怎样执行程序问题:计算问题:计算1+2=?C程序程序60单总线单总线MIPS计算机计算机61计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1取取指:指: T0 CPU内部总线内部总线内存数据寄存器内存数据寄存器(MD

34、R)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄存器R0R31ALUAC指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号地地址址译译码码器器内存内存000000040008.读控制读控制写控制写控制0 x200100010 x202100020 xac011f40CPU+400000000控控制制器器62计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1取指:取指: T1CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计

35、数器(PC)32位位通用通用寄存器寄存器R0R31ALUAC地地址址译译码码器器内存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x20010001指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器63计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1取指:取指: T2CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄

36、存器R0R31ALUAC地地址址译译码码器器内存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x20010001指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器0 x2001000164计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1译码:译码: T3CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄存器R0R31

37、ALUAC地地址址译译码码器器内存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x20010001指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器0 x2001000165计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1执行:执行: T4CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄存器R0R31ALUAC地地

38、址址译译码码器器内存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x2001000100指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器0 x2001000166计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1执行:执行: T5CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄存器R0R31ALUAC地地址址译译码

39、码器器内存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x20010001011指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器0 x2001000167计算机怎样执行程序计算机怎样执行程序addi $1, $0, 1执行:执行: T6CPU内部总线内部总线内存数据寄存器内存数据寄存器(MDR)内存地址寄存器内存地址寄存器(MAR)程序计数器程序计数器(PC)32位位通用通用寄存器寄存器R0R31ALUAC地地址址译译码码器器内

40、存内存000000040008.读控制读控制写控制写控制CPU+4000400000 x200100010 x202100020 xac011f400 x20010001011指令寄存器指令寄存器(IR)指令译码器指令译码器(ID)控制信号发生器控制信号发生器控制信号控制信号控控制制器器0 x2001000168处理器处理器 处理器是一个复杂的数字系统:处理器是一个复杂的数字系统: ALU实现算术和实现算术和逻辑运算逻辑运算 数据通路数据通路由处理器内部的各种连线和各种由处理器内部的各种连线和各种辅助性质的寄存器组成辅助性质的寄存器组成 控制器控制器提供控制信号,指挥和控制计算机提供控制信号,

41、指挥和控制计算机所有部件协调工作所有部件协调工作 ALU一般由组合逻辑电路实现、数据通路一般由组合逻辑电路实现、数据通路和控制器既包含组合逻辑电路,也包含时和控制器既包含组合逻辑电路,也包含时序逻辑电路序逻辑电路69大纲大纲历史:计算与计算机历史:计算与计算机1指令集体系结构指令集体系结构2程序和程序设计语言程序和程序设计语言3处理器的工作原理处理器的工作原理4更快更强更快更强570更快更强更快更强 处理器(处理器(CPU)的性能对于计算机来讲至)的性能对于计算机来讲至关重要关重要 让让CPU变得更快更强大成为贯穿计算机发变得更快更强大成为贯穿计算机发展史的重要目标展史的重要目标 ENIAC

42、: 5000次加法次加法/秒秒 中国国防科技大学的中国国防科技大学的“天河二号天河二号”超级计算机超级计算机(Top 1,2012) :33.86PFlop/s 不到不到70年间,年间,6万万7千亿倍的计算速度差距,千亿倍的计算速度差距,CPU的发展功不可没的发展功不可没 怎样提高怎样提高CPU的性能呢?的性能呢?71三总线结构三总线结构 一个简单的例子一个简单的例子 从我们前面的示例从我们前面的示例处理器开始,通过处理器开始,通过增加数据通路的方增加数据通路的方式来提高处理器的式来提高处理器的性能性能72处理器性能公式处理器性能公式PICPIT执行一个执行一个程序所花程序所花费的时间费的时间

43、这个程序这个程序所需执行所需执行的总指令的总指令数数每条指令每条指令执行的平执行的平均周期数均周期数以毫秒或以毫秒或毫微秒计毫微秒计的时钟周的时钟周期期73提高性能的常见手段提高性能的常见手段减小减小T值值减小减小CPI值值减小减小I值值增强指令集增强指令集中指令的能中指令的能力,减小一力,减小一个程序需要个程序需要执行的指令执行的指令数目数目采用各种技采用各种技术手段术手段提高提高处理器的处理器的主主频,减小一频,减小一个时钟周期个时钟周期的时间的时间增加指令执增加指令执行的并行程行的并行程度,减小度,减小CPI74RISC vs CISCCISCRISC vs CISCRISC增强指令功能

44、增强指令功能填补高级语言和机器指令填补高级语言和机器指令之间的间隙之间的间隙减少需要的指令数目减少需要的指令数目可变长指令以提高存储器可变长指令以提高存储器利用率利用率面向存储器的指令面向存储器的指令不利于不利于CPU的设计的设计硬逻辑实现困难,多使用硬逻辑实现困难,多使用微程序实现微程序实现80-20原则原则精简指令集,提高指令集精简指令集,提高指令集的执行效率的执行效率定长指令以方便优化定长指令以方便优化Load/Store结构以方便结构以方便指令调度和提高效率指令调度和提高效率有利于有利于CPU的设计的设计硬连逻辑实现,效率高硬连逻辑实现,效率高I的少量增加带来的少量增加带来C和和T的的

45、减小减小目前目前的处理器基本上的处理器基本上都采用都采用RISC核心,而部分核心,而部分CISC技技术也被融合进来,形成所谓后术也被融合进来,形成所谓后RISC体系体系75流水线流水线 流水线:提高处理器性能的基本途径流水线:提高处理器性能的基本途径76流水线带来的性能改进流水线带来的性能改进 N级流水线级流水线 性能分析:性能分析: 每个周期做每个周期做1/N的工作,时间也是整个指令的的工作,时间也是整个指令的1/N 每个周期有一条指令完成执行每个周期有一条指令完成执行 性能提高性能提高N倍倍1 2 3N1 2 3N1 2 3N1 2 3N77超流水线超流水线 流水线越长,流水线中的流水线越

46、长,流水线中的“气泡气泡”越多,越多,结果是性能的严重下降结果是性能的严重下降2级流水级流水取指取指-执行执行5级流水级流水取指取指-译码译码1/2-执行执行-写回写回10级流水级流水2031级级808680486Pentium IIIPentium 478超标量与流水线超标量与流水线 一条流水线不够用,那就多条吧一条流水线不够用,那就多条吧 超标量流水线结构超标量流水线结构 可是,问题在于可是,问题在于1 2 3N1 2 3N1 2 3N1 2 3N1 2 3N1 2 3N1 2 3N1 2 3N79指令的相关性指令的相关性 指令之间的相关性造成流水线中的竞争现指令之间的相关性造成流水线中的竞争现象象80当流水线当流水线“流流”不起来不

温馨提示

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

评论

0/150

提交评论