2.34k likes | 2.53k Views
第4章 计算学科中的 基本概念. 李陶深 tshli@gxu.edu.cn. 4.1.1 计算模型与图灵机. 4.1 计算模型与二进制. 计算模型与图灵机. 计算模型: 刻画计算这一概念的一种抽象的形式系统或数学系统。 在计算科学中,是指具有状态转换特征,能够对所处理的对象的数据或信息进行表示、加工、变化、接收、输出的数学机器。 计算模型的层次: 计算某个(类)具体问题的计算方法; 按照计算方法对应的程序完成某类问题特定计算所需要的平台。 在计算能力上具有某种等价性的形式系统。 计算模型的模型(一切计算模型所内含的机理). 计算模型与图灵机.
E N D
第4章 计算学科中的基本概念 李陶深 tshli@gxu.edu.cn
4.1.1 计算模型与图灵机 4.1 计算模型与二进制
计算模型与图灵机 • 计算模型: • 刻画计算这一概念的一种抽象的形式系统或数学系统。 • 在计算科学中,是指具有状态转换特征,能够对所处理的对象的数据或信息进行表示、加工、变化、接收、输出的数学机器。 • 计算模型的层次: • 计算某个(类)具体问题的计算方法; • 按照计算方法对应的程序完成某类问题特定计算所需要的平台。 • 在计算能力上具有某种等价性的形式系统。 • 计算模型的模型(一切计算模型所内含的机理)
计算模型与图灵机 • 图灵的观点及结论: • 凡是能用算法方法解决的问题,也一定能用图灵机解决;凡是图灵机解决不了的问题,任何算法也解决不了。 • 与图灵机等价的计算模型: • 递归函数 • λ-演算 • POST规范系统 • 图灵机是从过程这一角度来刻画计算的本质,其结构简单、操作运算规则也较少,从而为更多的人所理解。
图灵机 • 图灵机由一条两端可无限延长的带子、一个读写头以及一组控制读写头工作的命令组成,
图灵机 • 写在带子上的符号为一个有穷字母表:{S0,S1,S2,…,Sp}。 • 可以认为这个有穷字母表仅有S0、S1两个字符, • 其中S0可以看作是“0”,S1可以看作是“1”, • 由 “0”和“1”组成的字母表可以表示任何一个数。
由于“0”和“1”只有形式的意义,因此,也可以将S0改称为“白”,S1改称为“黑”,甚至,还可以改称为“桌子”和“老虎”,这样改称的目的在于割断与直觉的联系,并加深对布尔域中的值{真,假},以及二进制机器本质的理解。机器的控制状态表为:{q1,q2,…,qm}。由于“0”和“1”只有形式的意义,因此,也可以将S0改称为“白”,S1改称为“黑”,甚至,还可以改称为“桌子”和“老虎”,这样改称的目的在于割断与直觉的联系,并加深对布尔域中的值{真,假},以及二进制机器本质的理解。机器的控制状态表为:{q1,q2,…,qm}。 • 将一个图灵机的初始状态设为q1,在每一个具体的图灵机中还要确定一个结束状态qw。
一个给定机器的“程序” • 机器内的五元组(qiSjSkR(或L或N)ql)形式的指令集,五元组定义了机器在一个特定状态下读入一个特定字符时所采取的动作。5个元素的含义如下: • qi表示机器目前所处的状态; • Sj表示机器从方格中读入的符号; • Sk表示机器用来代替Sj写入方格中的符号; • R、L、N分别表示向右移一格、向左移一格、不移动; • ql表示下一步机器的状态。
一个机器计算的结果是从机器停止时带子上的信息得到的。容易看出,q1S2S2Rq3指令和q3S3S3Lq1指令如果同时出现在机器中,当机器处于状态q1,第一条指令读入的是S2,第二条指令读入的是S3,那么机器会在两个方块之间无休止地工作。一个机器计算的结果是从机器停止时带子上的信息得到的。容易看出,q1S2S2Rq3指令和q3S3S3Lq1指令如果同时出现在机器中,当机器处于状态q1,第一条指令读入的是S2,第二条指令读入的是S3,那么机器会在两个方块之间无休止地工作。 • 另外,如果q3S2S2Rq4和q3S2S4Lq6指令同时出现在机器中,当机器处于状态q3并在带子上扫描到符号S2时,就产生了二义性的问题,机器就无法判定。
例子: • b表示空格,q1表示机器的初始状态,q4表示机器的结束状态,设带子上的输入信息是10100010,读入头位对准最右边第一个为0的方格,状态为初始状态q1。规则如下: • q1 0 1 Lq2 q1 1 0 Lq3 q1bbNq4 • q2 0 0 Lq2 q2 1 1 Lq2 q2bbNq4 • q3 0 1 Lq2 q3 1 0 Lq3 q3bbNq4
计算结果是10100011,即对给定的数加1。 以上命令计算的是这样一个函数:S(x)=x+1。当没有输入时,即初始状态所指的方格为空格(b)时,不改变空格符,读写头不动并停机。
图灵机的计算能力 • 第一,把图灵机看作识别器,即判断带子上最初的内容能否被图灵机所接受。假定图灵机从左向右扫描完带子上的内容后停机则为接受,否则为不接受。 • 例2一台图灵机可以设计成识别下面的序列: 1000110, 10011101, 010101011。
图灵机的计算能力 • 第二,把图灵机看作生成器,对给定的输入集合,考察输出集合,并研究输入输出集合性质之间的关系,这就研究了图灵机的生成能力。 • 例3 设一台图灵机的输入集合为In={1n0n│n∈N},可设计一台图灵机,对给定的输入集合In,得到输出集合Out={0n1n│n∈N}。其中,N是全体自然数的集合。
图灵机的计算能力 • 第三,把图灵机看作计算器,相当于一个函数。图灵机的输入是函数的自变量的值,图灵机的输出是函数的值。 例4图灵机可以计算下列函数: (1) s(x)=x+1; (2) o(x)=0; (3) A(0,y)=y+1, A(x+1,0)=A(x,1), A(x+1,y+1)=A(x,A(x+1,y))。
图灵机的计算能力 • 第一和第二个函数读者不难从图灵机的定义出发感悟到它们是图灵机可以计算的函数,而第三个函数就比较复杂,一时难于判断。顺便提一下,第三个函数叫做阿克曼函数,它是阿克曼(W.Ackermann)在研究原始递归函数和递归函数的关系时给出的。这个函数在计算理论中具有重要价值。 • 事实上,图灵机还可以计算形式上比第三个函数更复杂的函数。
图灵机的计算能力 • 图灵机可以计算 • S(x)=x+1(后继函数), • N(x)=0(零函数), • Ui(n)(x1,x2,…,xn)=xi,1≤i≤n(投影函数) • 上述3个函数的任意组合。 • 从递归论中,我们知道这3个函数属于初始递归函数, • 任何原始递归函数都是从这3个初始递归函数经有限次的复合、递归和极小化操作得到的。 • 从可计算理论可知每一个原始递归函数都是图灵机可计算的。
4.1.2 二进制 4.1 计算模型与二进制
计算机的数字系统 • 计算机采用的是二进制数字系统。 • 基本符号:0、1 • 进位原则:逢二进一 • 优点: • 易于物理实现 • 二进制数运算简单 • 机器可靠性高 • 通用性强 • 缺点:对人来说可读性差
十进制数的表示 各位数字与它的权相乘,其积相加。 例如: 27997.63=21*104+ 7*103 + 9* 102 +9* 101 + 7* 100 + 6* 10-1 +3* 10-2 对于任意的十进制数: S=kn*10n +kn-1*10n-1 +…+k1*101 + k0*100 +k-1*10-1 +…+k-m+1*10-m+1 +k-m*10-m(n>1, m>1) 其中,10称为十进制的基数,ki∈{0,1,2,3,4,5,6,7,8 9},m,n为正整数。小数点的位置不言自明。
计算机的数字系统 • 计算机采用的是二进制数字系统。二进制和十进制一样,是一种数制,它用于表示数的符号(数字)由于在书写中的位置不同而具有不同的值。 • 基本符号:0、1 • 进位原则:逢二进一 • 优点: • 易于物理实现 • 二进制数运算简单 • 机器可靠性高 • 通用性强 • 缺点:对人来说可读性差
二进制数 S=knkn-1 … k0. … k-m =kn×2n+kn-1×2n-1+…+k0×20+…+k-m×2-m -m = ∑ ki×2i i=n 其中,2称为二进制的基数,ki∈{0,1},m,n为正整数。 进一步,读者可从十进制数和二进制数的一般表示公式得到启发,将这种表示推广到更一般的任意进制,不同之处只是基数不一样。
二进制数 二进制的运算规则比十进制的运算规则简单得多。只要建立两种进制的数据之间的转换方法,那么,二进制将具有更多的优势。计算机的理论基础是逻辑和代数。当二进制与同样只使用“真”和“假”两个值的逻辑代数建立了联系后,这就为计算机的逻辑设计提供了便利的工具。
不同进位计数制间的转换——R 进制→十进制 各位数字与它的权相乘,其积相加。 例如: (11111111.11)2=1*27 + 1*26 + 1* 25 +1* 24 + 1* 23 + 1* 22 +1* 21+ 1* 20+1*2-1+1*2-2=(255.75)10 (3506.2)8=3*83 + 5*82 + 0*81 + 6*80 +2*8-1=(1862.25)10 (0.2A)16=2*16-1 +10*16-2=(0.1640625)10
二进制与十进制间的转换——十进制→ 二进制 十进制整数转换成二进制的整数 “除R取余”法,例如: 2 68 余 数 2 34 ┄┄┄┄┄┄┄┄┄┄┄┄0 低位 2 17 ┄┄┄┄┄┄┄┄┄┄┄ 0 2 8 ┄┄┄┄┄┄┄┄┄┄┄ 1 2 4 ┄┄┄┄┄┄┄┄┄┄ 0 2 2 ┄┄┄┄┄┄┄┄┄┄ 0 2 1 ┄┄┄┄┄┄┄┄┄ 0 0 ┄┄┄┄┄┄┄┄┄ 1 高位 所以 6810=10001002
二进制与十进制间的转换——十进制→ 二进制 十进制小数转换成二进制小数 “乘 R 取整”法,例如: 高位 0.3125×2 = 0 .625 0.625 ×2 = 1 .25 0.25 ×2 = 0 .5 0.5 ×2 = 1 .0 所以 0.312510 = 0.01012
不同进位计数制间的转换——二、八、十六进制的相互转换不同进位计数制间的转换——二、八、十六进制的相互转换 • 每位八进制数相当于三位二进制数 • 每位十六进制数相当于四位二进制数 (1011010.10)2=(001011010 .100)2=(132.4)8 (1011010.10)2=(01011010 .1000)2=(5A.8)16 (F7)16=(11110111)2=(11110111)2
信息的存储单位 • 位(bit):度量数据的最小单位,表示一位二进制信息。 • 字节(byte):由八位二进制数字组成(1 byte = 8 bit)。 K 字节 1 K = 1024 byte M 字节 1 M = 1024 K G 字节 1 G = 1024 M T字节 1T=1024G
非数值信息的表示 • 西文字符: • ASCII码:用7位二进制数表示一个字符,最多可以表示27=128个字符 • EBCDIC码:用8位二进制数表示一个字符,最多可以表示28=256个字符 • 汉字: • 应用较为广泛的是"国家标准信息交换用汉字编码"(GB2312-80标准),简称国标码。是二字节码,用二个七位二进制数编码表示一个汉字。
4.2.1 冯·诺依曼型计算机 4.2 存储程序式计算机的基本结构与工作原理
冯·诺依曼型计算机 图灵机的出现为现代计算机的发明提供了重要的思想。图灵机的带子可以看成是计算机的存储设备,数据可以存储在上面,也可以根据需要擦去。图灵机的命令相当于一组事先设计、存储好了的程序,它们在控制器安排下,决定读写头的每一步操作。这样一种数学机器,如果不考虑它的实用性,就思想和原理而言,确实包含了存储程序的重要思想。
冯·诺依曼型计算机 • 计算机程序是指能够在计算机系统中运行的程序。 • 现在的计算机全称为存储程序式通用电子数字计算机。其含义是: • 在计算机中各种信息用数字代码表示,如指令、数值型数据、字符、图像等。 • 在物理机制上,数字代码以数字型信号出现。 • 信息表示数字化----理解计算机工作原理的基本出发点。
冯·诺依曼型计算机 • 目前有两种电信号: • 模拟信号:一种在时间上连续的信号,用信号的某些参数(如幅值)去模拟信息。 • 数字信号:一种在时间上或空间上不连续(离散)的信号。
冯·诺依曼型计算机 • 采用数字化方法表示信息的优点: • 抗干扰能力强,可靠性高。 • 位数增多则数的表示范围扩大,可以表示更精确的数字。 • 物理上容易实现,并可存储。 • 表示信息的类型和范围极其广泛。 • 能用逻辑代数等数字逻辑技术进行处理。
冯·诺依曼型计算机 • ENIAC的结构在很大程度上是依照机电系统设计的,还存在重大的线路结构等问题。 • 在图灵等人工作的影响下,1946年6月,美国杰出的数学家冯·诺依曼(Von Neumann)及其同事完成了关于“电子计算装置逻辑结构设计”的研究报告, • 具体介绍了制造电子计算机和程序设计的新思想:存储程序、顺序控制 • 至今为止,大多数计算机采用的仍然是冯·诺依曼型计算机的组织结构,只是作了一些改进而已。因此,冯·诺依曼被人们誉为“计算机器之父”。
输入设备和输出设备 • 作用:是将信息输入计算机和输出计算机。 • 常用的文字输入设备是键盘(还有扫描仪、穿孔卡片读入机和鼠标等专用输入设备) • 当在键盘上按下一个键时,按下的键通过编码变换成机器可读的数据形式, • 如字符“A”变换成ASCII码“1000001”,该编码数据随即存入存储器等待处理, • 通过与“1000001”对应的字符点阵数据在屏幕上显示一个字符“A”。 • 输出设备有打印机、显示器、绘图仪、磁记录设备等。
存储器 • 存储器是一种数据或信息的存储部件,它分成很多存储单元,并按照一定的方式进行排列。每个单元都编了号,称为存储地址。指令和数据存放在存储器中,而且对指令和数据同等对待,都不加区别地送到运算器中运算。指令在存储器中基本上是按执行顺序存储的,由指令计数器指明要执行的指令在存储器中的地址。
存储器 • 存储器一般分为内存储器与外存储器两大类。内存一般安装在主机板上,根据材料和工作原理的不同,内存可分为随机存储器(RAM)和只读存储器(ROM)两种。控制器和运算器只能接受在内存中存放的指令和数据。 • 外存一般安装在主机板之外,例如磁盘就是一种常用的外存。外存上面的信息可长久保存,但这些信息必须读入内存之后才能被控制器和运算器所利用。磁盘按其材料的不同,又可分为软盘和硬盘两种。
CPU(运算器和控制器) central processing unit
Register、控制单元 • 计算机中控制数据操作的电路并不与主存直接相连 • 这些电路被封装在一起,即CPU • CPU含有自己的存储单元(register) • Register作为临时空间来存储CPU所操作的数,保存算术逻辑单元的输入与输出数据 • 控制单元负责将主存中的数据移到register,然后通知算术逻辑单元所需要的数据在哪个register
总线 • 总线:CPU与主存之间用总线连接,利用总线 • CPU通过提供存储单元目标地址以及读信号来选择、读取数据 • CPU通过提供存储单元目标地址以及写信号来放置、写入信号 • 谁发明了什么 • 程序存储的概念:由宾西法尼亚大学Moore电子工程学院的J.P.Echert提出,John von Neumann只是先发表了程序存储的概念
4.3.1 数字逻辑 4.3 数字逻辑与集成电路
数字逻辑 • 数字逻辑是数字电路逻辑设计的简称,其内容是应用数字电路进行数字系统逻辑设计。 • 组成计算机的逻辑部件可分为组合逻辑电路和时序逻辑电路两种。 • 组合逻辑电路:由与门、或门和非门等门电路组合而成的逻辑电路。 • 时序逻辑电路:由触发器和门电路组成的具有记忆能力的逻辑电路。
门电路 • “与”门电路:两个以上的输入,一个输出。仅当所有的输入为1时,输出才为1。 P=A ·B ·C • “或”门电路:两个以上的输入,一个输出。仅当有一个输入为1时,输出就为1。 P=A +B +C • “非”门电路:一个输入,一个输出。当输入为1时,输出为0;输入为0时,输出为1。
门电路 “与”、“或”、“非”三种门电路示意图 P P P ↑ ↑ ↑ ┌──┻──┓ ┌──┻──┓ ┌──┻──┓ │ · │ │ + │ │ ~ │ └┳─┳─┳┛ └┳─┳─┳┛ └──┳──┛ ↑ ↑ ↑ ↑ ↑ ↑ ↑ A B C A B C A (a) (b) (c)
4.4.1 机器指令 4.4 机器指令与汇编语言
机器指令 为了实现程序存储的概念,CPU要能识别二进制编码的指令 机器语言——指令集合以及编码系统