第一章:计算机系统概论
计算机- 计算机特点:
- 运算速度快
- 计算精度高
- 逻辑判断(智能推理)
- 自动控制
- 计算机—性能指标:
- 处理器字长:指处理机运算器中一次能够完成二进制数运算的位数(如16位、32位、64位)。
- 总线宽度:指CPU中运算器与存储器之间进行互连的内部总线二进制位数(如8位、16位、32位)。
- 存储器容量:存储器中所有存储单元的总数目(包括主存容量和辅存容量),通常用KB、MB、GB、TB来表示。
- 存储器带宽:单位时间内从存储器读出的二进制数信息量一般用字节数/秒表示。
- 运算速度:计算机的运算速度与许多因素有关。如:计算机的主频、执行什么样的操作、主存储器速度(主存储器速度快,取指、取数就快)等都有关。
- 主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。度量单位是MHz(兆赫兹)、GHz(吉赫兹)。主频的倒数成为CPU时钟周期(T),T=1/f,度量单位是fLs,ns。
- CPU执行时间:表示CPU执行一段程序所占用的CPU时间,可用下式计算: CPU执行时间=CPU时钟周期数 *CPU时钟周期
- 主要特点:
- 计算机由控制器、运算器、存储器、输入设备、输出设备五大部件组成。
- 程序存储:指令和数据以同等地位存于存储器,可按地址寻访。
- 指令和数据用二进制表示。
- 指令由操作码和地址码(操作数)组成。
- 以运算器(CPU)为中心
- 基本功能:
- 把需要的程序和数据送至计算机中。
- 必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。
- 能够完成各种算数、逻辑运算和数据传送等数据加工处理的能力。
- 能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。
- 能够按照要求将处理结果输出给客户。
- 硬件组成结构:
计算机软件相对计算机硬件来说是看不见,是计算机系统中不可少的无形部件。主要有两大类:
-
系统类软件(程序)
-
应用类软件(程序)
- 系统类软件:
用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及途径,它包括以下四类:
- 各种服务性程序:如诊断程序,排错程序,联系程序等
- 语言程序:如汇编程序、编译程序、解释程序等
- 操作系统
- 数据库管理系统
- 应用类软件
用户利用计算机来解决某些问题而编制的程序(软件),如:
- 工程设计程序
- 数据处理程序
- 自动控制程序
- 企业管理程序
- 情报检索程序
- 科学计算程序等等
- 数的表示——数据格式 数据:分为数值型数据和字符型数据
- 数值型数据:表示事物的数量、规模; 用2进制表示。
- 字符型数据(非数值型数据):字符; 用01序列表示
- 10进制,2进制,8进制,16进制
- 数值大小的数码与它在数中的位置有关。
- 不同进制之间的转化。
-
定点数:
-
纯整数:小数部分是0
-
纯小数:整数部分是0
-
浮点数:
- 十进制数N可以写成:N=10E.M
- 二进制数N可以写成:N=2e.M
其中M成为浮点数尾数,是一个纯小数,e为比例因子指数,成为浮点数指数。
- IEEE754标准:
-
32位格式:
-
64位格式:
-
- 数的表示——机器码
-
原码、反码、补码
-
移码:移码(又叫增码或偏置码)通常用于表示浮点数的阶码,其表示形式与补码相似,只是其符号位用“1”表示正数,用“0”表示负数,数值部分与补码相同。
-
BCD码(二→十进制):用4位二进制代码对一位十进制数进行编码。
-
- 数的表示——效验码
- 奇偶校验:表示数据的N位代码中增加一位奇偶校验位,使N十1位中“1”的个数为奇数(奇校验)或偶数(偶校验)。大多数计算机在设计时允许为每个字符的编码添加第9位,作为奇偶校验位。串行通讯、字符串表示。
- 汉明码:在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。
- CRC(循环冗余)校验码:用于多位串行数据传送中的检错纠错处理,在k位数据位串行移位输出的过程中,用带有异或门控制的移位寄存器形成r个校验位的值,跟随在数据位之后传送走。在接收端再对k+r位的码字进行合法与出错检查,若可能则自动改错。
- 运算方法——定点运算
- 定点加、减法运算:
-
补码加法:例如:
X=+1011,Y=-0101,求X+Y? 解:[X]补=01011,[y]补=11011 [X]补 01011 + [Y]补 11011 ———————————————————————— [X+Y]补 100110 所以x+y=+0110
-
补码减法:
x=+1101,y=+0110,求x-y? 解: [x]补=01101,[-y]补=11010 [x]补 01101 + [-y]补 11010 ———————————————————————— [x-y]补 100111 所以x-y=+0111
-
溢出及检测:
-
两正数相加的结果为负数,显然错误。例如:
x=+1100,y=+1000,求x+y? 得到结果 [x+y]补=010100=-0100 故两正数相加时前端出现01则可以判断溢出
-
两负数相加的结果为正数,显然错误。
x=-1100,y=-1000,求x+y? 得到结果 [x+y]补=101100=+1100 故两负数相加时前端出现10则可以判断溢出
-
-
基本的二进制加/减法器:
例题:某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请分别按下述两种方式写出C4C3C2C1的逻辑表达式。- *串行进位方式:
-
- 定点加、减法运算:
-
2. *并行进位方式:
- 定点乘法运算:
-
已知两个不带符号的二进制整数A=11011,B=10101,求每一部分乘积项ab的值与P9P8P7P6...P0的值。 11011 A × 10101 B —————————————————————————— 11011 a4b0 a3b0 a2b0 b1b0 a0b0 00000 a4b1 a3b1 a2b1 a1b1 a0b1 11011 a4b2 a3b2 a2b2 a1b2 a0b2 00000 a4b3 a3b3 a2b3 a1b3 a0b3 + 11011 a4b4 a3b4 a2b4 a1b4 a0b4 —————————————————————————— 1000110111 = P 解得: P=P9P8P7P6P5...P0=1000110111 -
注意a×b与a·b不同(×为上述,·为逻辑运算)
-
- 定点除法运算:
- 不恢复余数的阵列除法器:
x=0.101001,y=0.111,求x➗y 解: [x]补=0.101001,[y]补=0.111,[-y]补=1.001 0.101001 ;被除数x + [-y]补 1.001 第一步减除数 ———————————————————————————————— 1.110001 <0 q4=0 ;余数为负 商0 控制下步做加法 + [y]补→ 0.0111 除数右移2位加 ———————————————————————————————— 0.001101 >0 q3=1 ;余数为正 商1 控制下步做减法 + [-y]补→ 1.11001 除数右移2位减 ———————————————————————————————— 1.111111 <0 q2=0 ;余数为负 商0 控制下步做加法 + [y]补→ 0.000111 除数右移3位加 ———————————————————————————————— 0.000110 >0 q1=1 ;余数为正 商1 故得: 商: q=q4.q3q2q1=0.101 余数: r=(0.00r6r5r4r3)=0.000110
- 原码除法算法原理:
x=0.1001 , y=0.1011 , 求x➗y? 0.1101 ____________ 0.1011丿 0.10010 被除数小于除数,商0 -0..1011 除数右移1位,减除书,商1 ———————————————— 0.001110 余数 -0.001011 除数右移一位,减除数,商1 ———————————————— 0.0000110 余数 -0.0001011 除数右移一位,不减除数,商0 ———————————————— 0.00001100 余数 -0.00001011 除数右移一位,减除数,商1 ———————————————— 0.00000001 余数 得商q=0.1101 , 余数r=0.00000001 - 多功能ALU(算数/逻辑运算单元)
- 浮点加、减法运算(方法,舍入,溢出)
- 方法:
- 对阶
- 尾数相加/减
- 规格化检查上溢或下溢(-126~127)
- 舍入操作
- 方法:
- 浮点乘、除法运算
- 方法:
- 将x和y指数相加
- 将被乘数和乘数的尾数相乘
- 规格化和溢出检查(-126~127)
- 舍入到4位有效数字
- 确定积符号**
- 方法:



