11/7/20201第四章冯.诺依曼计算机—机器级程序及其执行本章所处的历史地位可以用“承上启下”四个字概括本章的在课程各个模块中所属的历史地位什么是计算、什么是计算机0、1语义符号化现代计算机体系架构程序及程序的构造高级语言编程“原始”形态计算机“机器级”指令、程序设计承上启下4.1图灵和图灵机任何一个行业,都有它的开山鼻祖,后人为了对前辈表示尊敬,往往都会用他们的名字命名一些事物。奥斯卡金像奖诺贝尔物理奖矛盾文学奖鲁班奖图灵奖图灵(AlanTuring,1912~1954),出生于英国伦敦,19岁入剑桥皇家学院,22岁当选为皇家学会会员。1937年,发表了论文《论可计算数及其在判定问题中的应用》,提出了图灵机模型,后来,冯·诺依曼根据这个模型设计出历史上第一台电子计算机。1950年,发表了划时代的文章:《机器能思考吗?》,成为了人工智能的开山之作。计算机界于1966年设立了最高荣誉奖:ACM图灵奖。图灵机装置(计算机的鼻祖——纸带机)图灵认为,计算就是计算者(人或机器)对一条两端可无限延长的纸带上的一串0或1,执行指令一步一步地改变纸带上的0或1,经过有限步骤最后得到一个满足预先规定的符号串的变换过程。图灵机器的数学抽象(数学建模)图灵机模型被抽象整理为一个七元组(同时包括了输入、程序和输出)该模型的另一种抽象描述是将模型描述为状态和状态控制程序两部分。其中状态包括状态一、状态二、状态三等多个状态,状态控制程序描述了由一个状态转变为另一个状态的规则。图灵机以及图灵机模型作用是为了描述问题以及解决问题的步骤的。即是用来解决问题的。举个例:S1:生鸡蛋S2:熟鸡蛋S3:小鸡S4:被人吃掉孵化用开水煮吃吃吃问题就是对于一个鸡蛋的如何处理涉及到四种状态和三种操作方法。图灵机模型中程序的定义图灵机模型中程序被抽象为一个五元组q,X,Y,R(或L或N),p形式的指令集。其定义了机器在一个特定状态q下从方格中读入一个特定字符X时所采取的动作为在该方格中写入符号Y,然后向右移一格R(或向左移一格L或不移动N),同时将机器状态设为p供下一条指令使用。图灵机模型示例。(注:圆圈内的是状态,箭线上的是X,Y,R,其含义见前页)结论图灵认为:凡是能用算法方法解决的问题也一定能用图灵机解决;凡是图灵机解决不了的问题任何算法也解决不了----图灵可计算性问题。图灵机模型被认为是计算机的基本理论模型----计算机是使用相应的程序来完成任何设定好的任务。4.2冯.诺依曼计算机冯·诺依曼(JohnvonNeumann,1903~1957),20世纪最重要的数学家之一,在现代计算机、博弈论和核武器等诸多领域内有杰出建树的最伟大的科学全才之一,被称为“计算机之父”和“博弈论之父”。主要著作有《量子力学的数学基础》(1926)、《计算机与人脑》(1958)、《经典力学的算子方法》、《博弈论与经济行为》(1944)、《连续几何》(1960)等。冯.诺依曼机冯.诺伊曼机的基本思想:1.五大部件构成:运算器、控制器、存储器、输入设备和输出设备。(硬件)2.运算和存储分离。(硬件)3.以运算器为中心,控制器负责解释指令,运算器负责执行指令。(硬件)4.指令和数据用二进制表示,指令由操作码和地址码组成。(软件)5.存储程序:指令和数据以同等地位事先存于存储器,可按地址寻访,连续自动执行。(软件)对比现代计算机中的五大部件以运算器为中心的冯.诺依曼计算机构成图以存储器为中心的现代计算机构成图举个例子(1)32×48=?(2)213×23=?(3)19×38=?(4)22×44=?(5)78×23=?(6)99×36=?(1)以运算为中心,一张纸,一支笔,抄一道题,算一道题,六道题做完结果在一张纸上。(2)以存储为中心,六道题六张纸,六支笔,六个人一起抄题,抄完等待一个人做题,六道题做完结果在六张纸上。冯.诺依曼机关于指令的描述对于机器而言,控制其运行的程序就是若干条指令组成。机器执行程序的本质就是执行指令。指令包括两部分,操作码(机器动作)和地址码(数据对象)。无论是指令还是指令操作的数据最终都是存放在同一存储器里的一串0/1二进制数。类似上一页例子里面的被乘数、乘数以及乘法运算符号,一开始都是存放在一张纸上的。运算器存储器控制台控制器(1)(3)(10)(5)(2)(4)(6)(1)启动控制器工作(2)发送第1条指令地址(3)取出指令并分析指令(4)执行指令:发送操作数x所在地址(5)执行指令:取出操作数x(10)执行指令:通知运算器计算a乘x(11)继续后续指令的取指、执行…(6)发送下一条指令地址(7)取出指令并分析指令(8)执行指令:发送操作数a所在地址(9)执行指令:取出操作数a(7)(8)(9)工作原理计算机的基本部件CPU:中央处理单元(CentralProcessUnit),将运算器和控制器集成在一块芯片上,形成微处理器。CPU、主存储器、I/O设备及总线成为现代计算机的四大核心部件。总线补充:现代计算机里面,一个微处理器(芯片)可能包含多个CPU,即多核.关于存储器的介绍冯.诺依曼机里描述的存储器属于一维线性存储器。存储器地址编址从0地址开始一直编到最大地址值。然后实际的物理存储器空间却可能是由多个独立的小存储器联合组成。一根2G的内存条实际由8个256M的存储块组成一栋楼有50间宿舍,一间宿舍能住8个人,一共就是400人,每栋楼都有302号房间,要找某人需要楼栋号+房间号+床位号存储器宿舍楼存储单元房间存储位(存0或存1)床位(住人/不住人)地址编码An-1…A0房间号单元控制线Wi房间钥匙输出缓冲器公共的走廊及大门………存储器的基本结构存储器内部的实现示例当地址线和数据线间连接有二极管时,则由地址线决定其是1或0,即:当地址线为高电平时,则为1,而当地址线为低电平时,则为0。没有连接的,则不受地址线影响,始终连接到低电平。二极管ROM结构示例(2位地址控制4个信息单元,每个信息单元是4位0/1码)二极管ROM结构示例(2位地址控制4个信息单元,每个信息单元是4位0/1码)11101011001011111100000101存储器内部的实现示例2-4地址译码器存储矩阵的逻辑控制关系示例110010000101同一条数据线上各连接点之间是“或”关系同一地址线上各连接点之间是“与”关系Dj是数据线Wi是地址线地址编码线与地址线有点连接,无点不连接Ak是地址编码线地址线与数据线有点连接,无点不连接高/低电平信号,即0,1,通过连接点相互传递上半区通过“与”关系产生地址线上的最终信号传递到下半区D3=W0ORW2D2=W1ORW2ORW3D1=W1ORW2D0=W0ORW1ORW3W0=(NOTA0)AND(NOTA1)W1=A0AND(NOTA1)W2=(NOTA0)ANDA1W3=A0ANDA1存储器芯片的连接相当于楼栋号相当于宿舍号01110010相当于床位号4.3机器指令及机器级程序上一节我们对机器指令和程序的定义进行了描述,这一节我们将介绍机器指令和程序的实际执行过程。同学们重点需要把握的就是机器指令和程序是如何实现自动独立运行而不再需要人工干预的。一个典型的例子——问题描述机器级指令设计机器级程序设计如果将8、9、10、11号存储单元内容换成任何一个数x、a、b、c,则该程序可正确计算任一个ax2+bx+c指令执行的流程取第一条指令指令译码执行指令取下一条指令取指部件译码部件执行部件对比工业领域加工一瓶矿泉水装水设备封盖设备贴膜设备指令和程序的自动执行不同的指令,由一组不同的电信号构成同一指令的电信号在时钟与节拍的控制下按次序产生与传输一条指令占用一个或多个机器周期,一个机器周期又分为多个节拍最小的时间区隔单位--时钟周期指令执行时钟周期、节拍与机器周期问:机器的“主频”指的是什么?第1条指令在一个机器周期内完成。其中读取①②和执行③④分别在T0、T1和T2、T3节拍内完成。(示意)一条指令的执行一条指令的执行第1条指令在一个机器周期内完成。其中读取①②和执行③④分别在T0、T1和T2、T3节拍内完成。(示意)程序中指令的逐条执行程序中指令的逐条执行程序中指令的逐条执行基本目标:理解程序及其硬件实现思维基本思维:机器级算法与程序机器指令与指令系统存储器存储程序运算器与控制器机器级程序的执行;算法程序化程序指令化指令存储化执行信号化小结