第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主频说的是该时钟发生的频率。
指令执行过程模拟: