图灵机
-
可计算性(calculability)
是指一个实际问题是否可以使用计算机来解决,定义为“可以再有限步骤内被解决的问题”(数理逻辑) - 很多非数值问题(比如文字识别,图像处理等)都可以通过转化为数值问题来交给计算机处理
- 1936年,
Alan Turing
在伦敦权威的数学杂志上发表了一篇划时代
的重要论文《可计算数字及其在判断性问题中的应用》
- 在这篇开创性的论文中,图灵给“可计算性”下了一个严格的数学定义,并提出著名的
“图灵机”(Turing Machine)
的设想。一台完全属于想象中的“计算机”! - “图灵机”想象使用一条无限长度的纸带子,带子上划分成许多格子。 机器的运作时按逐步进行的方式,每一步由三个不同的动作组成:
(1)在任意确定时刻,读写头对准带子上的一个方格,根据该格上的内容和机器的状态决定自己的动作;
(2)机器可以抹去带上的原有符号,使方格保持空白或者写上另外的符号(也可以与原来相同)
(3)然后让带子通过读写头,朝两个方向之一移动一个方格 - 机器的行为自始至终是由一个指令集所决定,它明确地指示机器每一步应该执行哪三个动作
- 整个运作从读写头是读一个方格数据开始,一旦计算结束,机器就进入一个特别的停止状态。运算过程的任何结果都被记录在带子上
- “图灵机”是一个虚拟的“计算机”,完全忽略硬件状态,考虑的焦点是逻辑结构
- 图灵甚至还想象在带子上存储数据和程序,“万能图灵机”实际上就是现代通用计算机的最原始的模型
- 图灵的文章从理论上证明了制造出通用计算机的可能性
- 几年之后,美国的阿坦纳索夫在1939年果然研究制造看世界上的第一台电子计算机ABC,其中采用了二进制,电路的开与合分别代表数字0与1,运用电子管和电路执行逻辑运算等
- ABC是“图灵机”的第一个硬件实现,看得见摸得着
- 冯·诺依曼不仅在上个世纪40年代研制成功了功能更好、用途更为广泛的电子计算机,并且为计算机设计了编码程序,还实现了运用纸带存储与输入
*“冯·诺依曼体系结构”
指出了计算机分为控制器、运算器、存储器、输入设备、输出设备五大部件
编码Encoding
- 编码(Encoding)描述的是:为信息分配表示形式的过程
- 选择一种合适的有效编码方案是一项真正的工程学挑战
(1)机制、效率(所使用的比特数)
(2)可靠性(噪声)
(3)安全性(加密)
ASCII编码
- American Standard Code for Information Interchange,基于英语字母序的码表系统
- ASCII长久以来在计算机系统中广泛采用,是实质上的标准
- ASCII采用7个bit来进行编码
(1)数字0~9
(2)英文字母:小写与大写
(3)标点符号
(4)32个非打印字符用来控制打印机
从晶体管到概念CPU
- 用电压幅值来代表0与1,常见的定义方式有
— TTL: VCC=5V±5%,0-0.7V为0,2.4-5V为1
— CMOS:VDD=3-8V(Lower to 1.8 or 0.9) 0-0.3VDD为0,0.7-1VDD为1 - 4比特的概念CPU如下
通用CPU
- CPU不仅仅是运算单元:CPU是计算机/微控制器的核心,进行算术/逻辑运算
- 通用CPU需要大量的外围辅助部件:
— 内存:DDR2、DDR3
— 硬盘
— 主板
— 显卡
— 显示器
— 鼠标键盘
微控制器MCU
- 微控制器MCU不仅仅是一个简单的CPU:微控制器是一个完整的计算机系统,在单个芯片上包含了处理器、存储器和所有外设IO模块
- 微控制器是一个片上计算机,对比PC中的处理器,微控制器更注重自完备(Self-sufficiency)和低成本。典型的微控制器包含了应用所需的全部存储器和接口,而PC的处理器需要其他的外部器件来提供这些需求
- 微控制器MCU有哪些部件:
— CPU:从4位到8位到16位到32位到64位
— 输入/输出接口:例如串口
— 外设:例如定时器、信号转换电路(从CPU角度向外看)
— ARM:数据存储器
— ROM:程序存储器,例如EPROM、EEPROM、Flash
— 时钟发生器、电压调节器等