(2023-6-16,未更新完)
参考资料
2021年计算机组成原理考研复习指导 | 王道考研
【重学计算机】计算机组成原理 | cnblogs | 闪客sun
概论
可以在计算机中直接执行的语言和用助记符编写的语言是(机器语言)和(汇编语言)。机器语言是唯一可以直接执行的语言,汇编语言用助记符编写。而正则语言是编译原理中符合正则文法的与语言。
边翻译边执行的是(解释)程序,把汇编语言源程序转变为机器语言程序的过程是(汇编)。由高级语言转化为汇编语言的过程成为(编译)。
到目前为止,计算机中所有的信息仍以二进制方式表示的理由是(由物理器件的性能决定)。与逻辑电路中的高、低电平对应。
硬件
主存储器
基本组成是
地址寄存器→存储体←→数据寄存器
↑ ↑ ↑
| | |
————时序控制逻辑———
地址寄存器(MAR)存放(访存地址)。用于寻址,位数对应着存储单元的个数。
存储体存放(二进制信息)
数据寄存器暂时存储从(存储体)中(要读或写的信息)
时序控制逻辑操作(所需的各种时序信号)
运算器
用于进行算术运算和逻辑运算。
算术运算,加减乘除;逻辑运算,与、或、非、异或、比较、移位等运算
作用 | 符号 |
---|---|
等于 | == |
不等于 | != |
小于 | < |
大于 | > |
小于等于 | <= |
大于等于 | >= |
与 | && |
或 | || |
非 | ! |
异或 | ^ |
- &&:同为真时为真
- ||:同为假时为假
- ^:相同为假
控制器
控制器→(程序计数器)PC→(地址寄存器)MAR——————————————————————→地址
↑ | ↑
| | 标志寄存器(PSW)←算术逻辑单元(ALU)←通用寄存器(GPRs)
| | ↑ | ↑
| |—————————————————————|——|——————————————|——————————————→ (控制主存储器)
| ↓ |
(指令寄存器)IR (数据寄存器)MDR—————————
PC存放执行指令
IR存放当前指令,呢哦人能够来自MDR。指令的操作码OP(IR)送至CU,分析指令并微操作命令序列;地址码Ad(IR)送往MAR,用以操作数。
软件
计算机工作过程
- 程序和数据装入主存储器
- 将源程序转换成可执行文件
- 从可执行文件的首地址开始逐条执行指令
以C语言为例子
hello.c→(预处理)→hello.i→(编译器)→hello.s→(汇编器)→hello.o→(连接器)→hello
printf.o__↑
指令执行过程
- 取指令:PC→MAR→M→MDR→IR
- 分析指令:OP(IR)→CU
- 执行指令:Ad(IR)→MAR→M→MDR→ACC
多级层次结构
M4(高级语言机器) 用编译程序翻译成汇编语言程序
M3(汇编语言机器) 用汇编程序翻译成机器语言程序
M2(操作系统机器) 用机器语言解释操作系统
----------------- 软/硬件交界面
M1(机器语言机器) 用微程序解释机器指令
M0(微指令系统) 由硬件直接执行微指令
应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层
存储程序
存储程序是指将指令以代码的形式事先输入计算机主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
计算机按此原理有5大功能:数据传送、数据存储、数据处理、操作控制、操作判断。
运算速度:
- 吞吐量:系统在单位时间内处理请求的数量
- 响应时间:从用户提交请求到系统首次产生响应并获取其所需要的结果所用的时间
- 时钟周期:节拍脉冲或T周期,CPU中最小的时间单位
- 主频:机器内部的主时钟的频率,时钟周期的倒数
- CPI:执行一条指令所需的时钟周期数
- 执行时间:运行一个程序所花费的时间
- MIPS:每秒执行多少百万条指令
- FLOPS:每秒执行多少次浮点运算,分为MFLOPS、GFLOPS等
数据
数制与编码
- 二进制:2^i,i为位数。2=0000 0010,4=0000 0100,8=0000 1000。以此类推
- 八进制:二进制中的3位数编为一组。1111000010.01101 = 001 111 000 010 . 011 010 = 1 7 0 2 . 3 2 =(1702.32)八进制
- 十六进制:二进制中的4位数编为一组。1111000010.01101 = 0011 1100 0010 . 0110 1000 = 3 C(12) 2 . 6 8 =(3C2.68)十六进制
- 十进制:(11011.1)二进制=1x2^4 + 1x2^3 + 0x2^2 + 1x2^1 + 1x2^0 + 1x2^-1 =27.5
123.6875=123进行2的因式分解得出(1111011)二进制 + 0.6875进行乘2取整,乘积到1.0即为结束 = (1111011.1011)二进制
真值和机器数
真值:"+""-"符号,真值是机器数所代表的实际值
机器数:"0"代表"正 +","1"代表"负 -",如0,101=0101=+5
原码:X=+101011 , [X]原=00101011= 00 101011 ; X=-101011 , [X]原=10101011= 10 101011
反码:X=-101011 , [X]原=10101011= 1 0 101011 , [X]反=11010100=1 1 010100
补码:X=-101011 , [X]反=11010100=1 1 010100 , [X]补=11010101=1 1 010101(反码的基础上按照正常的加法运算加1)
移码:X=-101011 , [X]补=1 1 010101 ,[X]移=0 1 010101(将补码的符号位取反)
- 源码是计算机唯一认识的语言结构;
- 反码在源码的基础上符号位不动,其他取反;
- 补码=反码+1(符号位参与运算)。补码是为了进行做加减运算,因为计算机只有加法计算器,所以a-b的处理方式为a+(-b)
- 移码在补码的基础上,符号位取反。移码只能用于表示整数
校验码
- 基本原理:增加冗余码
- 码距:合法编码之间不同二进制位数的最小值;
1100和1101之间的码距为1,因为只有1位改动;1001和0010之间码距为3,因为有3位改动,1、3、4位改动。
所有码距的算法就是对比二进制数字,然后看几个位置不同,不同的数量为码距。
码距与检错、纠错能力:
码距 d>=e+1:检查e个错误
码距 d>=2t+1:纠正t个错误
码距 d>=e+t+1:同时检查e个错误,并纠正t个错误。(e>=t)
校验方式
奇偶:在原编码上加一个校验位,校验整个校验码中1的个数是否为奇数或偶数
海明:按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,产生多位检测信息,并得出出错位置
循环冗余(CRC):在K位信息码后再拼接R位的校验码,利用模2除法检验编码正确性
例子
-
二进制1001101和1010111的奇校验码和偶校验码
设最高位为校验位
(原)1001101 (奇)11001101 (偶)01001101
(原)1010111 (奇)01010111 (偶)11010111 -
在n=4、k=3时,求1010的海明码
设n为有效信息的位数,k为校验位的位数,则应满足
n+k<=2^k -1(若要检测两位错,则需再增加1位校验位,即k+1位);n+k=7<=2^3 -1成立。
设信息位为D4D3D2D1(1010),校验位为P3P2P1,海明码为H7H6H5H43H2H1
Pi在2^i-1的位置上,其余各位为信息位
则H4=P3;H2=P2;H1=P1,则海明码的分布为:
H7 H6 H5 H4 H3 H2 H1
D4 D3 D2 P3 D1 P2 P1
1 0 1 ? 0 ? ?
D1在H3上,P2P1校验;
D2在H5上,P3P1校验;
D3在H6上,P3P2校验;
D4在H7上,P3P2P1校验;
= | P1(H1) | + | P2(H2) | + | P3(H4) |
---|---|---|---|---|---|
3 | 1 | 2 | |||
5 | 1 | 4 | |||
6 | 2 | 4 | |||
7 | 1 | 2 | 4 |
所有位求异或
P1 = D1⊕D2⊕D4 = 0⊕1⊕1 = 0
P2 = D1⊕D3⊕D4 = 0⊕0⊕1 = 1
P3 = D2⊕D3⊕D4 = 1⊕0⊕1 = 0
所以1010对应的海明码为1010010(101 0 0 10)
S1=P1⊕D1⊕D2⊕D4
S2=P2⊕D1⊕D3⊕D4
S3=P3⊕D2⊕D3⊕D4
S3S2S1的值为 000 时,则说明无错;或者说明出错。并且这个数为错误位的位数。
标签:计算机,二进制,码距,IR,基础知识,指令,原理,D4,101011 From: https://www.cnblogs.com/mugetsukun/p/17482826.html