一、 图灵模型
最早在图灵模型之前,人们把计算机定义成为“数据处理器” ,计算机被定义成一个宽泛的概念,看做是一个接受输入数据,处理数据、产生数据的黑盒。
图:单任务计算机器
这种模型可以表示为一种用来完成特定任务的专用计算机。
在现实的世界中,我们需要完成各种各样的不同工种,这种基于特定任务的计算机,显然效率不高,我们需要一种更加通用的计算机。
图灵模型就是在该模型的基础上,添加了一个额外的元素-“程序” 到不同的计算器中。程序是用来告诉计算机对数据进行处理的指令集合。
上图:可编程数据处理器模型,就是图灵模型,输出数据依赖于两个方面的结合作用:输入数据和程序。只有相同的输入数据和程序,才能得到相同的输出数据结果。
通用图灵机是对现代计算机的首次描述。只要给机器提供数据以及描述如何做运算的程序。就可以和一台强大的计算机进行同样的运算。
二、冯-诺依曼体系
基于通用图灵机建造的计算机都是在存储器中存储数据, 冯-诺依曼 指出,鉴于程序和数据在逻辑上是相同的?都可以编译成0和1 组成的序列,在CPU上顺序执行,因此程序程序也能存储在计算机的存储器中,程序必须是存储的。
普通认为:计算机组成分三大部分:硬件、软件、数据。硬件就是集成电路,软件包括操作系统和程序APP。
基于冯-诺依曼模型建造的计算机硬件层面分为4个子系统:存储器,运算器(算术逻辑单元)、控制器(控制单元)、输入、输出单元。CPU 是中央处理器,由三部分组成:运算器,控制器,寄存器(属于存储器的分支)。主流CPU 处理器现在是X86-64的架构,如:intel,AMD。CPU指令集有:精简指令集和复杂指令集。在嵌入式开发领域,用C语言开发,程序就主要是对寄存器的操作。
1.存储器:用来存储数据和程序的区域。存储器不仅要存储数据,还要存储程序。程序=数据结构+算法。编写程序需要高级语言。如Java、C++ 、GO语言等。在底层执行是将高级语言编译成汇编语言,再转换成0、1的机器能够识别的指令集合。
2. 运算器( ALU 算术逻辑单元 Arithmetic Logic Unit):用来对数据进行算术运算和逻辑运算的地方。
3. 控制器:控制单元是对存储器、运算器、输入和输出子系统进行控制操作的单元。
4.输入/输出: 输入负责从计算机外部接收输入数据和程序;输出负责计算机的处理结果输出到计算机外部。如:常见的输出设备有:显示器,打印机。输入设备有:键盘,鼠标。
磁盘作为辅助存储设备,它是输入还是输出设备,根据具体情况而定,在磁盘上读取程序数据时,就是输入,将数据结果写入到磁盘时,扮演输出的角色。
冯-诺依曼模型中,也就是图灵模型中 ,加入的程序的元素,程序是由一组数量有限的指令组成,且每一条指令时顺序执行的。
现代计算机中存储单元用来存储程序及响应数据,就意味着数据和程序具有相同的格式,就是位模式(0和1组成的序列)存储在内存中。
三、 数据
冯-诺依曼体系清楚地将一台计算机定义为一台数据处理机。它接收输入数据,用程序处理数据,并输出相应的结果。
1.数据的存储
计算机内部采用二进制组成数据,如果一台计算机是一台电子设备,那么数据存储的方式就是电子信号,用电子信号的出现或消失的特定方式来存储数据。意味着可以用两种状态之一的形式来存储数。但日常使用的数据并不是以两种状态之一的形式来存储数据,而是以0和1 的二进制序列的形式来存储在计算机的内部。如:文本、图像、声音、视频,都是以合适的0和1 的序列的形式存储。
2.数据的组织
尽管数据只能以位模式存储在计算器中,但在外部可以表现为不同的形式。计算机以及数据处理表示方法开创了一门新兴的研究领域—数据组织。数据并不是按照杂乱无章的此序来组织的,数据被组织成许多小的单元。再由这些小的单员组成更大的单元。
四、计算机的历史
1930 年之前,机械计算机,一些用来做加减运算的计算机器,1890年美国人口普查用到的卡带机,用于自动阅读和计数、排列存储。
1930–1950年,那些被视为电子计算机工业先驱的科学家们发明了一些早期的电子计算机。
1950 年至今,使用晶体管代替真空管之后,小体积计算机的得到发展,1965 年开始,第三代计算机使用集成电路,进一步减小了计算机的体积和成本,小型计算机出现在市场上,封装程序,就是通常所说的软件包也已经有售,小型公司可以买到如会计程序的软件包,而不必自己写程序。
1985年开始,经历了第四代计算机和计算机网络的出现,第五代计算机见证了掌上计算机和和台式计算机的诞生,多媒体应用,及虚拟现实现象。