现代计算机的硬件组成主要依据下图这位大神-冯·诺依曼的思想设计的。
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
冯·诺依曼
它主要由运算器、控制器、存储器、输入设备和输出设备等五部分组成
结构示意如下图,原理远比其复杂,本篇只是为了简单介绍就使用了如下简略图
工作过程简述
- 用户将程序通过输入设备输入计算机,并保存至存储器中
- 用户启动程序
- 程序启动后,计算机将程序对应的指令逐条送至控制器
- 控制器依据指令生成相应的控制信号或者将相应的数据送至运算器
- 运算器依据控制信号完成特定运算,并将结果存储至存储器
- 运算结果通过输出设备(显示器、打印机等)进行结果展示
计算机中在传输中使用二进制,即只有1和0
数据的编码和进制数据编码
计算机将现实世界中的数据按类型分为以下大类和小类
- 不论是何种数据均以二进制的形式保存
- 机器数和真值
机器数 :一个数字在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的。
真值: 现实时间中人们直接书写表述的数
原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:
[ 1]原= 0000 0001
[-1]原= 1000 0001
第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)
[1111 1111 , 0111 1111]
即
[-127 , 127]
原码是人脑最容易理解和计算的表示方式。
反码
反码的表示方法是:
正数的反码是其本身;
负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
[ 1] = [0000 0001]原= [0000 0001]反
[-1] = [1000 0001]原= [1111 1110]反
可见如果一个反码表示的是负数,人脑无法直观地看出来它的数值。通常要将其转换成原码再计算。
补码
补码的表示方法是:
正数的补码就是其本身;
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后 1。(也即在反码的基础上 1)
[ 1] = [0000 0001]原= [0000 0001]反= [0000 0001]补
[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。
数据的编码数值类数据,将它们转为二进制比较容易。定点数采用进制转换,浮点数采用科学计数法来进行转换表达。
科学计数法示例
非数值类数据 ,由于计算机最开始由美国人发明,所有他们采用ASCII编码就可以表示所有的英文字母和常用符号。但是汉字是表意文字每个字都有必须有唯一的编码,所有中国为了使得汉字能输入计算机和被识别发明了GB系列编码格式。后来加入的国家越来越多,又才用了Unicode编码它有更多的容量可以将包含全世界所有语言的文字,所有现在是主流的编码方式。
中央处理器的主要组成运算器组成:
- 算术逻辑单元(ALU)
- 通用寄存器组(R1 ~Rn)
控制器组成:
- 时标发生器(TGU)
- 主脉冲振荡器(MF)
- 程序计数器(PC)
- 指令寄存器(IR)
- 指令译码器(ID)
总线:
- 数据总线(DBUS)
- 地址总线(ABUS)
- 控制总线(CBUS)
,