第2章 理解计算机系统的基本思维(第一部分)
1.理解0和1的思维
1.1语义符号化举例
0和1的思维即语义符号化、符号计算化、计算0(和)1化、0(和)1自动化、分层构造化、构造集成化。
语义符号化是一个理解
和抽象
的过程,通过对现实世界现象
的深入理解,抽象出普适的概念
(本体
),进而将概念符号化
进行各种计算,再将符号语义化
,便可处理不同的问题。
使用本体
的概念可以在变换时空的环境下表征其他的现象。
1.2数值,字母的表示
原码、反码、补码
正数
的原码、反码、补码形式都是一样的,最高位为0
表示为正数
负数
的最高位始终为1
,表示为负数,原码
表示中的其余位数同真实数值的二进制数,反码
为除去最高位符号位外,其余为按原码取反,补码
为反码加1
1.2.1 正数的表示
1.2.1 小数的表示
- 定点数
小数点位置固定,或者在符号位后面(机器数全为小数)
,或者在整个数值的尾部(机器数全为小数)
- 浮点数
由三部分构成:浮点数的符号位
、浮点数的尾数位
、浮点数的指数位
。指数位采用平移的方式将(-n,n)区间数转换为(0,2n)区间数,避免了指数的符号位占位问题。同时按照数值的位数多少区分为单精度
和双精度数
1.2.3 数值运算
- 加减运算可以按位运算并考虑进位和借位,按位运算就可以用逻辑运算来实现
- 乘除法运算可以采用多次加减法运算来实现 二进制数
左移1位
=>乘以2
, 二进制数右移1位
=>除以2
两个数相减,10-3
=>10 + (-3)
,运用两个数的补码
做运算,符号位
也参与运算
判断溢出
:只有两个正数或者两个负数相加的时候才会溢出,当两个数符号位相同,但是结果的符号位不同,结果不精确,已经溢出。
1.2.4 字符的表示
ASCII码,Unicode编码,汉字输入码等等
1.3 0和1思维小结
数值信息
和非数值信息
均可用0和1表示,均能够被计算(信息表示)- 物理世界的/语义信息均可通过
抽象化
和符号化
,再通过进位制
和编码制
转换成0和1表示 - 硬件系统是通过
正确的、低复杂度的芯片电路组合成高复杂度的芯片,逐渐组合,功能越来越强
2.图灵机与冯·诺依曼计算机
2.1 图灵机
图灵机将控制处理的规则用0和1表示,将待处理的信息以及处理的结果也用0和1表示,处理即是对0和1的变换
- 指令
控制基本动作
执行的命令
一条指令有操作码
和地址码
构成。操作码告诉CPU要进行的操作,地址码可以直接表示为操作数
也可以表示为操作数的地址
- 程序
基于指令构造的,若干指令的一个组合
或一个执行序列
,用于实现复杂动作 - 程序执行机构
负责解释程序
,即解释程序之间的组合,并依次调用指令
- 计算系统
基本动作 + 指令 + 程序执行机构 - 抽象
将经常使用的,可用低层次系统实现的一些复杂动作进行命名
,以作为高层次系统的指令
被使用
2.1 冯·诺依曼计算机
早期计算机以运算器
为中心,输入、输出数据
要通过运算器,进行计算
也要通过运算器,不能同时进行,现在计算机以存储器
为中心,输入、输出程序可以不通过运算器,运算器负责运算,存储器支持运算器和输入、输出的并行工作。
2.3 存储器:可按地址自动存取信息
的部件。
一般存储器由若干个存储单元
构成,每个存储单元由若干个存储位
构成,一个存储位可以存储0和1,这些相同位数的存储位构成的存储字
即为存储单元的内容。所有的存储单元构成一个存储矩阵
。每个存储单元由一条地址线
控制读写。
n位的地址编码可以控制2^n
个存储单元的读写,可以说存储器的容量为2^n
。输出缓冲器
是控制向存储单元写入还是读出。
- 每个存储单元的存储位必须相同,并且与数据线的个数相同(一般情况下),也表示计算的位数(寻址长度)
- 同一时刻只能操作一个存储单元
2.4 机器级程序的存储与执行
所谓指令的执行,即由信号发生器产生各种电平信号,发送给各部件,各部件依据控制要求再产生相应的电平信号,这种信号的产生、传递和变化的过程及指令的执行过程
各种信号的传递过程需要接受时钟
和节拍
的控制。机器中的时钟发生器产生基本的时钟周期/节拍
,决定了机器运行的快慢,通常CPU主频
说的是该时钟发生的频率。
指令执行过程模拟:
2.5 贯通性思维小结