1.1 两个非常重要的思想
①所有的计算机,只要给与足够的时间和内存,它们所能完成的计算任务是相同的。也就是说,无论是贵的计算机,还是便宜的计算机,只要它们拥有足够的内存,那么它们就能够完成完全相同的事情,只是完成的时间不同。
②计算机能够通过运行程序来解决我们用英语或其他语言提出的问题。
1.2 通用计算机设备
模拟计算机难以实现,使得设计者转向采用数字设计的原因:
①模拟计算机很难提高精度,输出的结果往往带有一定的误差。
②采用数字设计可以通过一组固定的、有限的数字和字符来完成操作,并提高精度。
1.3 计算机系统的层次转换
1.3.1 问题的提出
描述问题的时候,我们一般采用“自然语言”,但是描述的问题不能存在二义性,即不能产生歧义。
1.3.2 算法
将自然语言描述的问题转换为算法描述,去除那些无用的特性。如果要使用自然语言描述算法,必须保证表达的内容没有二义性。
算法的三个特性:
①确定性:每个操作步骤的描述都是清晰的、可定义的。
②可计算性:表示每一步的描述都可被计算机执行。
③有限性:过程是会终止的。
1.3.3 程序
用不存在二义性的编程语言描述算法 。
为什么自然语言不适合直接作为编程语言?
因为自然语言具有二义性,容易产生歧义,无法作为明确的指令让计算机去执行。
1.3.4 指令集结构
指令集结构(ISA)是程序和计算机硬件硬件之间接口的一个完整定义,相当于是一个函数接口,具体由微结构实现。
ISA的定义包括,计算机可以执行的指令集合(计算机所能执行的操作),以及每个操作所需要的数据是什么,即操作数;ISA还定义了可接受的操作数表达方式,即数据类型;ISA还定义了获取操作数的不同方法,即寻址模式。
1.3.5 微结构
微结构是指令集的具体实现。ISA相当于是函数定义,微结构相当于是函数实现。
1.3.6 逻辑电路
微结构最终是由一组简单的逻辑电路实现的。一个微结构存在着多种实现方式,它们所表现出来的性能和成本差异非常大。
1.3.7 器件
每个基本的逻辑电路都是按照特点的器件及其技术实现的。