计算机系统要素
计算机系统要素
布尔代数
- 布尔代数处理布尔型(也称为二进制型)数值,比较典型的有true/false、1/0、yes/no、on/off等等。在这里我们使用1和0。
- 布尔型函数(Boolean function)是指输入输出数值均为布尔型数值的函数。
- 真值表表示法(Truth Table Representation) 描述布尔函数最简单的方法就是枚举出。
- 布尔表达式(Boolean Expressions) 除了真值表描述之外,布尔函数还可以在输入变量上使用布尔算子(Boolean operator)来描述。基本的布尔算子有“And”(只有在x和y都为1时,x And y的值等于1),“Or”(x或者y中只要有一个为1时,x Or y的值为1),以及“Not”(当x为0时,Not x为1)。
- 规范表示法(Canonical Representation) 每个布尔函数都至少由一个布尔表达式来描述,称之为规范表示法(canonical representation)。同样从函数的真值表出发,我们关注函数值为1的那些行。对于每一行,我们构建一种表达法来确定所有输入变量的值,即通过对两个字面量(literals)(每个量可以是变量本身或其反值)施以And操作来得到。
- 门(gate)是用来实现布尔函数的物理设备。如果布尔函数f有n个输入变量,返回m个二进制的结果,那么用来实现这个函数f的门将会有n个输入管脚(input pins)和m个输出管脚(output pins)。当我们把一些值从一些值V₁…V„从这些门的输入管脚输入,它的内部结构即门的逻辑会计算然后输出f(V₁...V„)的值。好比复杂的布尔函数能够通过相对简单的函数来表达一样,复杂的门电路也是由很多基本的门组成的。最简单的门是由微小的开关设备(称为晶体管,transistors)构成,这些微小开关设备按照设计的拓扑结构进行连接,来实现整个门的功能。
- 简单门和复合门(Primitive and Composite Gates) 所有的逻辑门都有相同输入和输出的语义表达(0和1),它们可以连起来构成具有任意复杂度的复合门电路(composite gates)。
- 必须注意门的接口是唯一的。
布尔运算
- 二进制数 十进制是以10为基底,而二进制系统则是以2为基底的。
- 二进制加法两个二进制数能够从右至左一位一位相加,跟十进制加法一样。首先,把两个数的最右边的一位(也称为LSB, Least Significant Bits)加起来。然后,将两个位相加后的进位(0或者1)再与两个数的右起第二位相加。就按照这种方式计算下去,直到两个数最左边的一位(MSB, Most Significant Bits)为止。如果最后的两位数位相加后产生了进位1,那么就说它产生了溢出;否则就说加法运算成功执行。
- 有符号二进制数 n位二进制系统可以产生2”个不同的组合。如果必须用二进制码表示有符号数,有个简单的方法就是,将这个空间分成两个相同的子集,一个子集用来表示正数,另一个表示负数。从理想的角度来说,编码规则应该按照如下原则来进行:有符号数的引入应该使硬件实现的复杂程度尽可能小。
- 在任何汁算机里,软硬件平台的整体功能都是由ALU和运行在其上的操作系统共同决定的。因此,当设计新的计算机系统时,ALU应该实现多少种功能的操作,本质上是个性价比的问题。一般原则是,算术和逻辑操作的硬件实现成本通常较高,但是性能较好。
代码托管情况
https://git.oschina.net/20145304/the-elements-of-computing-systems