Open QiYongchuan opened 1 year ago
字:CPU在同一时间内作为整体可以存取、传送、计算的一组二进制数。 字长:“字”的长度,字就是一个二进制的组合,由几位二进制,就是字长有多少位。
例子中所给的: 1000 1100 1010 1101 一共16位,即字长有16位,相当于2个字节
1字节(Byte) = 8bit , 即 1B = 1个字节 ;
1.机器字长,简称字长,CPU一次能处理的二进制数的位数
2.存储字长
存储单元:由地址码相同的多个存储元构成;可以把存储元类比成酒店的房间,存储单元的内容是储存的数据或指令可以类比成 酒店里的房客。
存储字长:存储单元中所存储的数据或指令的位数即存储字长。 即一个存储单元中二进制代码的位数。
存储单元是CPU对存储器进行读写的基本单位,存储字长≤机器字长
3.指令字长
指令字长:一个机器指令中所包含的二进制的位数。 一条机器指令的长度取决于:操作码、操作地址的长度、操作数地址的个数。
! [image] (https:github.com/QiYongchuan/MyGitBlog/assets/105039020/bcb87be2-d18a-4316-8f51-bcaa27ab0f8d)
2-1 基础指标
! [image] (https:github.com/QiYongchuan/MyGitBlog/assets/105039020/e76c6059-36d6-4d03-8931-4d28ec1910f9)
CPU cycles are machine cycles, instruction cycles contain multiple machine cycles, and machine cycles contain multiple clock cycles.
2-2 Execution time metrics
CPI (Clock Cycle Per Instruction): The number of clock cycles (unit: number, i.e. how many clock cycles) it takes to execute an instruction = > This refers to an instruction
In practice:
Average CPI = Total ➗ CPU clock cycles required to execute a certain program The number of instructions the program contains =》 针对某一程序而言的
程序总的时钟周期数 = 程序所包含指令条数 * 平均CPI
平均CPI 是平均每条指令所包含的时钟周期数
CPU时钟周期:可以理解成计算机中最小的时间单位 CPU主频(时钟频率) = 1 / CPU时钟周期 CPI:执行一条指令所需要的时钟周期数;
IPS:每秒执行的指令条数 IPS = 主频 / 平均CPI
执行一条指令的耗时 = CPI x CPU时钟周期
CPU执行时间(整个程序的耗时) = CPU时钟周期数/ 主频 = 指令条数 x CPI / 主频
PC 存放的是下一条指令在内存中的地址。可以按照程序计数器PC的值访问指令寄存器,这一过程称为取值。
以存储程序控制为核心思想的计算机称为冯诺依曼计算机。 “程序控制”用程序实现对计算的控制,完成指令的功能。
指令与数据均以二进制形式存放在存储器中,CPU如何区分他们? 可以从时间和空间上区分。 时间上是先访问指令,在访问数据的; 空间上,指令和数据放置的位置也不同,指令地址来源于程序计数器PC,数据地址来源于地址形成部件或指令的地址码字段
冯诺依曼计算机特点: 1.由运算器、存储器、控制器、输入设备、输出设备五部分组成 2.以运算器为核心 3.内部采用二进制 4.工作方式由控制驱动,指令流驱动
字x位 字扩展,连—cs,不一定满足所以同时工作
位扩展,一定要满足位同时工作,所有的芯片都连0
关键是明白: 1.T与t,T代表一个周期的时间,就是走完一个存储器的时间;t代表总线传输周期,可理解成切换的周期?
(1) ADD R0, R1,即 (R0) + (R1) → (R1)
首先,我们需要将R0和R1的值读出来,因此需要设置RA0RA1 = 00,表示读取R0的值,
设置RA0RA1 = 01,表示读取R1的值。
然后,我们需要将R1的值写回内存,因此需要设置WA0WA1 = 01。
接下来,我们需要将R1的值和R0的值相加,因此需要设置SB-ALU = 1,表示传送SB的值到ALU进行加法运算。最后,我们需要将ALU的运算结果写回R1中,因此需要设置W = 1,表示写命令。
分三步:
第一条:读取R0到SA操作
00 ** 10 10 00 00
第二条:读取R1到SB操作
01 ** 10 01 00 00
第三条:执行SA+SB的结果,并将结果写入SA
** 01 01 00 10 01
问题:加法器哪一个是执行加法,哪一个执行减法:左边是加法,右边是减法
(2) SUB R2, R3,即 (R3) - (R2) → (R3)
三步:
1.读取R3到SA
2.读取R2到SB
3.执行RA-SB的结果,并写入R3中
第一步:
11**10100000
第二步:
10**10010000
第三步:
**1101000101
(3)MOV R2,R3,即(R2)→(R3)
两步:
1.读取R2到SA
2.执行SA+SB的结果,将结果写入R3
第一步:
10**10100000
第二步:
**1101001011
R3 一直呆在暂存器,相当于R2+0 =》 R 3
R2走了一圈跟0相加,又回来存到R3中(写入R3)
复习指导ppt期末复习.pptx
需要复习的点