Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

计算机组成原理期末复习 #20

Open
6 tasks
QiYongchuan opened this issue Jun 20, 2023 · 7 comments
Open
6 tasks

计算机组成原理期末复习 #20

QiYongchuan opened this issue Jun 20, 2023 · 7 comments
Labels
notes notes

Comments

@QiYongchuan
Copy link
Owner

QiYongchuan commented Jun 20, 2023

复习指导ppt期末复习.pptx

需要复习的点

@QiYongchuan
Copy link
Owner Author

QiYongchuan commented Jun 20, 2023

第一章计算机主要的技术指标

1.1 与字长有关的指标

image

字:CPU在同一时间内作为整体可以存取、传送、计算的一组二进制数。
字长:“字”的长度,字就是一个二进制的组合,由几位二进制,就是字长有多少位。

例子中所给的: 1000 1100 1010 1101 一共16位,即字长有16位,相当于2个字节

1字节(Byte) = 8bit , 即 1B = 1个字节 ;

1.机器字长,简称字长,CPU一次能处理的二进制数的位数

image

2.存储字长

image

存储单元:由地址码相同的多个存储元构成;可以把存储元类比成酒店的房间,存储单元的内容是储存的数据或指令可以类比成
酒店里的房客。

存储字长:存储单元中所存储的数据或指令的位数即存储字长。 即一个存储单元中二进制代码的位数。

存储单元是CPU对存储器进行读写的基本单位,存储字长≤机器字长

3.指令字长

image

指令字长:一个机器指令中所包含的二进制的位数。
一条机器指令的长度取决于:操作码、操作地址的长度、操作数地址的个数。

! [image] (https:github.com/QiYongchuan/MyGitBlog/assets/105039020/bcb87be2-d18a-4316-8f51-bcaa27ab0f8d)

1.2 与时间和速度相关的指标

2-1 基础指标

  • 主频 Main frequency: 时钟频率, 机器内部主时钟的频率, Hz, MHz, 用f表示
  • 时钟周期: CPU中最小的时间单位, 常用单位 s, ms, ns, 用 "T"表示。
    用时钟周期个数来表示计算机中的时长

! [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 是平均每条指令所包含的时钟周期数

@QiYongchuan
Copy link
Owner Author

QiYongchuan commented Jun 20, 2023

CPU性能公式应用 1/4

CPU时钟周期:可以理解成计算机中最小的时间单位
CPU主频(时钟频率) = 1 / CPU时钟周期
CPI:执行一条指令所需要的时钟周期数;

IPS:每秒执行的指令条数 IPS = 主频 / 平均CPI

执行一条指令的耗时 = CPI x CPU时钟周期

CPU执行时间(整个程序的耗时) = CPU时钟周期数/ 主频 = 指令条数 x CPI / 主频

@QiYongchuan
Copy link
Owner Author

存储程序控制的概念

PC 存放的是下一条指令在内存中的地址。可以按照程序计数器PC的值访问指令寄存器,这一过程称为取值。

以存储程序控制为核心思想的计算机称为冯诺依曼计算机。 “程序控制”用程序实现对计算的控制,完成指令的功能。

指令与数据均以二进制形式存放在存储器中,CPU如何区分他们? 可以从时间和空间上区分。 时间上是先访问指令,在访问数据的; 空间上,指令和数据放置的位置也不同,指令地址来源于程序计数器PC,数据地址来源于地址形成部件或指令的地址码字段

冯诺依曼计算机特点:
1.由运算器、存储器、控制器、输入设备、输出设备五部分组成
2.以运算器为核心
3.内部采用二进制
4.工作方式由控制驱动,指令流驱动

@QiYongchuan
Copy link
Owner Author

QiYongchuan commented Jun 21, 2023

字位扩展

字x位
字扩展,连—cs,不一定满足所以同时工作

位扩展,一定要满足位同时工作,所有的芯片都连0

@QiYongchuan
Copy link
Owner Author

QiYongchuan commented Jun 21, 2023

交叉存储与顺序存储的计算题 3/4

image
image
image
image

关键是明白:
1.T与t,T代表一个周期的时间,就是走完一个存储器的时间;t代表总线传输周期,可理解成切换的周期?
2. 带宽 = 位数 / 时间
在顺序存储中,时间= nT (因为是一个走完之后,再走第二个的)
在交叉存储中,时间= T + (n-1)t (可看交叉存储的图加深理解)

重点题 3/4

image

@QiYongchuan
Copy link
Owner Author

微程序设计

image
image

(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,表示写命令。

分三步:

  1. R0 到Sa
  2. R1到Sb
  3. 然后 SA+Sb的结果到R1

第一条:读取R0到SA操作

00 ** 10 10 00 00

第二条:读取R1到SB操作

01 ** 10 01 00 00

第三条:执行SA+SB的结果,并将结果写入SA

** 01 01 00 10 01

问题:加法器哪一个是执行加法,哪一个执行减法:左边是加法,右边是减法
image

(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)

@QiYongchuan
Copy link
Owner Author

寻址方式 4/4

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notes notes
Projects
None yet
Development

No branches or pull requests

1 participant