冯诺依曼计算机机器级程序及其执行.ppt
大学计算机-计算思维导论,李旻先南京理工大学计算机科学与工程学院,第3讲 冯.诺依曼计算机:机器级程序及其执行,理解“程序和数据如何被存储、如何被执行的”,有助于构造和设计可执行的算法和程序,有助于复杂环境下程序执行机制的理解,基本目标:理解程序及其硬件实现思维,基本思维:机器级算法与程序机器指令与指令系统存储器存储程序运算器与控制器机器级程序的执行;算法程序化程序指令化指令存储化执行信号化,内容提要,图灵机的思想与模型简介-图灵的贡献-图灵机:计算机的理论模型-指令、数据、程序与程序执行,冯.诺依曼计算机:机器级程序及其执行2.2.1 图灵机的思想与模型简介,图灵及其贡献,图灵(Alan Turing,19121954),出生于英国伦敦,19 岁入剑桥皇家学院,22 岁当选为皇家学会会员。1937 年,发表了论文论可计算数及其在判定问题中的应用,提出了图灵机模型,后来,冯诺依曼根据这个模型设计出历史上第一台电子计算机。1950 年,发表了划时代的文章:机器能思考吗?,成为了人工智能的开山之作。计算机界于1966年设立了最高荣誉奖:ACM 图灵奖。,图灵是谁?,你能查阅一下哪些人获得图灵奖了吗?因为什么贡献而获奖呢?,所谓计算就是计算者(人或机器)对一条两端可无限延长的纸带上的一串0或1,执行指令一步一步地改变纸带上的0或1,经过有限步骤最后得到一个满足预先规定的符号串的变换过程。,计算,10001110110,0110101,10001,0110101,由“程序”控制,一步步将输入“转换”为输出,输入,输出,程序,通用机器,图灵认为什么是计算?,图灵机的思想是关于数据、指令、程序及程序/指令自动执行的基本思想。输入被制成一串0和1的纸带,送入机器中-数据。如00010000100011 机器可对输入纸带执行的基本动作包括:“翻转0为1”,或“翻转1为0”,“前移一位”,“停止”。对基本动作的控制-指令,机器是按照指令的控制选择执行哪一个动作,指令也可以用0和1来表示:01表示“翻转0为1”(当输入为1时不变),10表示“翻转1为0”(当输入0时不变),11表示“前移一位”,00表示“停止”。输入如何变为输出的控制可以用指令编写一个程序来完成,如:011110110111011100 机器能够读取程序,按程序中的指令顺序读取指令,读一条指令执行一条指令。由此实现自动计算。,基本的图灵机模型为一个七元组,如右图示意 几点结论:(1)图灵机是一种思想模型,它由一个控制器(有限状态转换器),一条可无限延伸的带子和一个在带子上左右移动的读写头构成。(2)程序是五元组形式的指令集。其定义了机器在一个特定状态q下从方格中读入一个特定字符X时所采取的动作为在该方格中写入符号Y,然后向右移一格R(或向左移一格L或不移动N),同时将机器状态设为p供下一条指令使用。,图灵机是什么?,图灵机模型,图灵机模型示例。(注:圆圈内的是状态,箭线上的是,其含义见前页),执行过程,功能:将一串1的后面再加一位1,控制器,S1,S2,S3,S4,1,1,R,1,1,R,0,1,L,1,1,L,0,0,N,S1:开始状态S2:右移状态S3:左移状态S4:停机状态,0,0,R,(S1,0,0,R,S1),(S1,1,1,R,S2),(S2,1,1,R,S2),(S2,0,1,L,S3),(S3,1,1,L,S3),(S3,0,0,N,S4),几点结论(续):(3)图灵机模型被认为是计算机的基本理论模型-计算机是使用相应的程序来完成任何设定好的任务。图灵机是一种离散的、有穷的、构造性的问题求解思路,一个问题的求解可以通过构造其图灵机(即程序)来解决。(4)图灵认为:凡是能用算法方法解决的问题也一定能用图灵机解决;凡是图灵机解决不了的问题任何算法也解决不了-图灵可计算性问题。,冯.诺依曼计算机:思想与构成-存储程序原理-冯.诺依曼计算机的构成,冯.诺依曼计算机:机器级程序及其执行2.2.2 冯.诺依曼计算机:思想与构成,19441945年间,冯.诺伊曼提出“存储程序”的计算机设计思想,并进行了实践,现代计算机普遍来讲属于冯.诺伊曼机体系。冯.诺伊曼机的基本思想:运算和存储分离存储程序:指令和数据以同等地位事先存于存储器,可按地址寻访,连续自动执行。五大部件构成:运算器、控制器、存储器、输入设备和输出设备指令和数据用二进制表示,指令由操作码和地址码组成以运算器为中心,控制器负责解释指令,运算器负责执行指令,什么是冯.诺依曼计算机?,冯.诺依曼(Von.Neumann)计算机,以运算器为中心的冯.诺依曼计算机构成图,冯.诺依曼计算机的结构是怎样的?部件有哪些?部件的关系怎样?,以存储器为中心的现代计算机构成图,存储器为中心与运算器为中心相比的优点在哪里?,同样是五个部件,以不同的结构来连接,便体现了不同的性能-这就是“系统”:强调“结构”,强调部件连接后的整体性、协同性,运算器,存储器,控制台,控制器,(1)启动控制器工作,(2)发送第1条指令地址,(3)取出指令并分析指令,(4)执行指令:发送操作数x所在地址,(5)执行指令:取出操作数x,(10)执行指令:通知运算器计算a乘x,(11)继续后续指令的取指、执行,(6)发送下一条指令地址,(7)取出指令并分析指令,(8)执行指令:发送操作数a所在地址,(9)执行指令:取出操作数a,冯.诺依曼计算机的工作原理是怎样的?,工作原理,计算机的基本部件CPU:中央处理单元(Central Process Unit),将运算器和控制器集成在一块芯片上,形成微处理器。CPU、主存储器、I/O设备及总线成为现代计算机的四大核心部件。,总线,什么是CPU?现代计算机的几大部件是什么?,现代计算机里面,一个微处理器(芯片)可能包含多个CPU,即多核.,自动存取:存储器的工作原理-存储器的自动读写,冯.诺依曼计算机:机器级程序及其执行2.2.3 自动存取:存储器的工作原理,存储器的基本结构,存储器电路结构概念图,什么是存储器?,概念映射,从存储器与宿舍楼的概念对比中,你能发现什么异同吗?,存储器内部的实现示例当地址线和数据线间连接有二极管时,则存储的是1,否则,存储的是0当地址线和数据线间连接有二极管时,由地址线决定其是输出1或0,即:当地址线为高电平时,则输出1,而当地址线为低电平时,则输出0;没有连接的,则不受地址线影响,始终输出低电平0;,二极管ROM结构示例(2位地址控制4个信息单元,每个信息单元是4位0/1码),存储器是怎样存储0和1的?又是怎样控制存取的?,二极管ROM结构示例(2位地址控制4个信息单元,每个信息单元是4位0/1码),1,1,1,0,1,0,1,1,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,1,0,1,存储器内部的实现示例,2-4地址译码器,0,1,0,1,存储矩阵的逻辑控制关系示例,1,1,0,0,1,0,0,0,0,1,0,1,同一条数据线上各连接点之间是“或”关系,同一地址线上各连接点之间是“与”关系,Dj是数据线,Wi是地址线,地址编码线与地址线有点连接,无点不连接,Ak是地址编码线,地址线与数据线有点连接,无点不连接,高/低电平信号,即0,1,通过连接点相互传递,上半区通过“与”关系产生地址线上的最终信号传递到下半区,D3=W0 OR W2D2=W1 OR W2 OR W3D1=W1 OR W2D0=W0 OR W1 OR W3,W0=(NOT A0)AND(NOT A1)W1=A0 AND(NOT A1)W2=(NOT A0)AND A1W3=A0 AND A1,用多个存储器芯片可搭建容量更大的存储器,利用4个256x8存储器芯片扩展出1024x8存储器的电路图,半导体存储器芯片示例,存储器芯片容量不够了怎么办?,问:从概念的角度,你能说说存储器扩展要解决什么问题吗?提示:地址编码空间,存储字长.,机器级程序-机器指令-机器级算法与程序,冯.诺依曼计算机:机器级程序及其执行2.2.4 机器级程序,算法-从冯.诺依曼计算机的角度可在机器上执行的求解问题的操作规则及步骤,被称为可执行的算法。,2.2.4 机器级程序 什么是算法?,问:怎么看待算法节省的步数?-算法需要“优化”,机器指令机器指令是CPU可以直接分析并执行的指令,一般由0和1的编码表示。指令 操作码+地址码;机器语言,000001 0000000100,000001 0000001100,000001 0000001000,机器指令是怎样的?,机器级程序,832+23+6;ax2+bx+c。,怎样用机器指令表达算法?,高级语言程序的示例计算ax2+bx+c其中a,x,b,c是变量。变量的地址是由编译程序在编译过程中自动分配的,也即是说编译器根据当时编译的情况,分配a,x,b,c为8号,9号,10号,11号存储单元,并产生上述的机器指令程序,高级语言程序和机器有什么关系呢?,机器级程序的执行机制-运算部件与控制部件-指令的信号化与节拍化,冯.诺依曼计算机:机器级程序及其执行2.2.5 机器级程序的执行机制,计算机各部件内部的简单构成关系,运算器、控制器里面有什么?,寄存器算术逻辑部件程序计数器PC指令寄存器信号控制器时钟与信号发生器存储单元地址存储单元内容,不同的指令,由一组不同的电信号构成同一指令的电信号在时钟与节拍的控制下按次序产生与传输一条指令占用一个或多个机器周期,一个机器周期又分为多个节拍最小的时间区隔单位-时钟周期,指令是怎样被执行的?,指令执行,时钟周期、节拍与机器周期,问:机器的“主频”指的是什么?,机器级程序的执行过程模拟-程序的硬件执行过程,机器级程序的执行过程模拟,第1条指令在一个机器周期内完成。其中读取和执行分别在T0、T1和T2、T3节拍内完成。(示意),一条指令是怎样被执行的?,一条指令的执行,一条指令的执行,第1条指令在一个机器周期内完成。其中读取和执行分别在T0、T1和T2、T3节拍内完成。(示意),一条指令是怎样被执行的?,一段程序又是怎样被执行的?,程序中指令的逐条执行,程序中指令的逐条执行,程序中指令的逐条执行,基本目标:理解程序及其硬件实现思维,基本思维:机器级算法与程序机器指令与指令系统存储器存储程序运算器与控制器机器级程序的执行;算法程序化程序指令化指令存储化执行信号化,本讲小结,2014,Questions&Discussion?,第3讲 冯.诺依曼计算机:机器级程序及其执行,