一、计算机中的抽象思想
1.1数字抽象
1.1.1现实到信号:
数字信号用由一组二进制的位(bit)组成的数码来表示。
二进制位的取值只有1和0(High/Low,TRUE/FALSE,ON/OFF),这是将物理上不同范围电压值的抽象;
1.1.2布尔逻辑
每个布尔变量都是TRUE和FALSE中的一种。
逻辑真值用数字1,0表示,1为逻辑真、0为逻辑假;逻辑1和逻辑0没有数值含义,只代表逻辑状态。
逻辑运算屏蔽电子器件的运作细节,仅关注抽象后的逻辑运算功能。
【在我的理解上,这种将计算机底层的电压值转变为梁中转台的信号的操作使得之后的所有操作有了实现的可能(或者说打开了设计的大门)】
1.2计算机系统的抽象层次
- 最底层:物理层:电子的运动;
- 第二层:器件层:(晶体管、二极管)忽略电子运动,抽象到器件;
- 第三层:电路层:(模拟/数字电路)忽略器件细节,进一步忽略连续电压范围,用0,1在逻辑上描述数字电路;
- 第四层:门/寄存器传输级 (RTL):基于0-1的数字系统设计;
- 第五层:微结构:(数据通路、控制器)将逻辑和体系结构层次抽象连接起来;
- 第六层:指令集体系结构 (ISA):从程序员的角度描述了计算机;
- 第七层:操作系统/虚拟机技术:处理最底层的抽象,对硬件做控制;
- 第八层:程序语言/编译器:忽略机器指令和汇编,用高级语言;
- 第九层:算法:忽略硬件架构和语言,抽象解题方法;
- 第十层:应用系统: 用操作系统提供的功能解决应用问题;
重点从指令集体系结构开始:
指令
指示CPU执行某种规定操作的命令
指令集架构(也称指令系统)
某一个CPU所能执行的全部指令的集合
定义了程序员能使硬件完成的基本操作(CPU基本性能)
指令集架构(ISA)是计算机功能的抽象模型
是软硬件的交界面
所有软件最终都以指令的形式运行
体现了结构设计师对计算机系统及其应用的深刻理解
抽象的模型指导具体的实现
一个指令集架构可以有多种实现(低功耗、高性能、软件模拟)
X86指令集有Intel,AMD多家,没家也有多个版本
ISA应该提供的功能与内容
- 指令格式与操作的类型
- 寄存器的组织与结构,长度与用途
- 所能使用的地址空间和寻址方式
- 存储管理,数据存放方式(大端/小端,对齐不对齐)
- 操作数类型和大小
- 指令流控制、条件码等
- 安全管理(用户级、特权级、原语操作)
- Cache管理、TLB管理、异常等
- ……
计算机处理方法的抽象
计算思维
- 运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动;
- 是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法;
- 是一种选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;
- 数学建模、算法设计 ;
【写不动了写不动了,抽象不落到实处感觉就像车轱辘话一样,无处下手无处打拳头昏脑涨】
更具体的内容马上就开始,放在下一篇文章了。