微处理器结构与设计2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

If (rs==rt)
PC
+ + +4
指令SRAM
..is added to the address of the instruction following the branch (not the branch itself) 17 微电子学研究所李树国
直接寻址(J指令)
• 操作数是一个常数,包含在指令中
25
微电子学研究所李树国
微处理器的性能评价
26
微电子学研究所李树国
13
响应时间(reponse time)和吞吐率(throughput)
• 响应时间,也称执行时间,是指一个任务从开始到完成的时间 • 吞吐率:在给定的时间内,完成的任务数目 • 举例: – 芯片A由单核完成RSA,6000次签名/秒 – 芯片B由双核完成RSA,10000次签名/秒 – 现有2个任务(1)紧急的签名1次; (2)非紧急的签名5次 – 请问如何分配任务给A、B两个芯片? • 因此,处理器评价要依据任务和应用环境的不同,采用不同的 评价标准
– CPU的执行时间还可进一步分为用户CPU时间和系统 CPU时间
• 用户CPU时间:运行用户自身程序上的计算时间 • 系统CPU时间:为执行用户程序而不得不运行的操作系统所花 的时间
31
微电子学研究所李树国
CPU的性能和影响因素
• 关键一点就是CPU性能就是CPU的执行时间 • 一个程序的CPU执行时间=执行这个程序的CPU周期数×时钟周期的长度 因为时钟周期的长度与时钟频率互为倒数,所以
27
微电子学研究所李树国
举例
• 对一个计算机系统作如下改进,会增加吞吐 率吗?会降低响应时间吗?还是都起作用?
– 用更快的处理器更新计算机 – 给系统额外添同样的处理器,以多个处理器处理 多个任务。
28
微电子学研究所李树国
14
计算机的性能评价
• X计算机的性能:
Performanx ex
1 Execution_ time
LW $17, 100 ($18); // $17<==$17+Memory[$18+100];
35 100011
18 10010
17 10001
100 0000 0000 0110 0100 6 微电子学研究所李树国
3
MIPS的I类型指令
I类型的指令(32位)
6位
op
5位
rs
5位
rt
16位
immediate
load
运算及处理 算逻指令 转移指令
store
12
微电子学研究所李树国
6
MIPS指令的寻址方式
• • • • 寄存器寻址 立即数寻址 基址偏移量寻址 PC相对寻址
• 直接寻址
13
微电子学研究所李树国
寄存器寻址(add,sub,slt)
• 操作数在寄存器堆中
6位
op
5位
rs
5位
rt
5位
rd
5位
sa
32
微电子学研究所李树国
16
CPU的例子
一台具有4GHz计算机A运行一个程序需要10秒,准备再 建造另一台计算机B,运行同样的这个程序仅需要6秒 ,由于计算机B性能的提高,而导致运行这个程序的时 钟周期数是计算机A的1.2倍,问计算机B的时钟频率应 为多少,才能满足要求?
解:因为
CPU _ execution_ time _ for _ a _ program CPU _ clock _ cycles _ for _ a _ program Clock _ rate
Load and Store Instructions

计算类指令 属于R_type 和I_type型指令 Computational Instructions
– – Arithmetic ( ADD, SUB等) Logical ( AND, OR, NOR等) Shift (SH, SLL, SLLV等) Multiply (MUL ,MULT, etc)
funca
例如:
add $17, $18,$19; //$17<==$18+$19
0 000000
18 10010
19 10011
17 10001 4
sa 00000
funca 100000 微电子学研究所李树国
2
MIPS的I类型指令
I类型的指令(32位)
6位
op
5位
rs
5位
rt
16位
immediate
CPU _ execution _ time_ for _ a _ program CPU _ clock_ cycles_ for _ a _ program Clock_ rate
因此,CPU设计厂商为了提高CPU的性能,拼命提高CPU的时钟频率 问题是时钟频率的提高总是有限的,在达到频率的极限时,进一步 提高CPU的性能,必须寻求一种新的方法;于是,多核处理器也就 应运而生了
5位
rt
16位
address 直接相加,不移 位,若最低两位 不为零,则产生 异常
+ 寄存器堆
16 因为,LW是 字操作,LW 访问的是数 据区
SRAM
微电子学研究所李树国
8
PC相对寻址如beq,bne
• 操作数是一个常数,包含在指令中
6位
op
5位
rs
5位
rt
16位
address 左移两位与PC相加 访问指令区
例如:
SW $17, 100 ($18); // Memory[$18+100]<==$17;
43 101011
18 10010
17 10001
100 0000 0000 0110 0100 7 微电子学研究所李树国
MIPS的I类型指令
I类型的指令(32位)
6位
op
5位
rs
5位
rt
16位
immediate
• 汇编指令越强大,性能就越高
– Intel IA‐32指令前缀,可以使存储器的数据块移动,但这条 指令与简单指令的复制代码比起来效率要慢1.5倍
• 使用汇编语言编程会获得更高的性能
– 编译器直接生成的代码和手工编写的代码差距越来越小 – 程序中的变量分配应该保留在寄存器还是保留在存储器, 编译器要比程序员分配的更好 – 手工编写汇编代码缺点:时间长,可移植性差,维护难。
6位
op
26位
address 2
4位
PC 1
指令存储器
2位
4位
26位
00
18
微电子学研究所李树国
9
MIPS指令寻址模式小节
1.立即数寻址:操作数(立即数)在自身的指令中
2.寄存器寻址:操作数在寄存器中
19
微电子学研究所李树国
MIPS指令寻址模式小节
3. 基址和偏移量寻址:操作数在存储器中
4. PC相对寻址:在指令存储器中寻找指令地址
29 微电子学研究所李树国
举例
• 一个程序在计算机A上运行10秒,而在计算机B上 运行15秒,问计算机A比计算机B快多少?
Performancex Execution _ timey 15 1.5 performancey Execution _ timex 10
30
微电子学研究所李树国
MIPS指令格式中的op编码
1
微电子学研究所李树国
op确定为00000后的funct指令编码
000000
2
微电子学研究所李树国
1
微处理器结构与设计
指令格式与性能评价
第二次课 2011.2.28
3
微电子学研究所李树国
MIPS的R类型指令
R类型的指令(32位)
6位
op
5位
rs
5位
rt
5位
rd
5位
sa
6位
为什么10000变成2500
2 000010 2500 00 0000 0000 0000 1001 1100 0100 9 微电子学研究所李树国
MIPS指令集107条,按功能划分为以下3种
• 存储器访问指令 属于 I_type 类指令
– – – LW, LWL, LWR 取操作数(读) SW, SWL,SWR 存操作数(写) ORI, LUI
所以
CPU _ timeA
CPU _ clock _ cycles A Clock _ rateA
CPU _ clock _ cycleA CPU _ timeA Clock _ rateA CPU _ clock _ cycleA 10( s ) 4 109 (cycles / s) 40 109 cycles
35
微电子学研究所李树国
举例
• 同样的指令集在两个不同计算机ComputerA, computer B实现
Computer A
时钟周期长度 CPI
Computer B
250 ps 2
500 ps 1.2
问:哪个计算机速度快,快多少 解:由于两个计算机的执行的指令数目相同,不妨设为I, 于是有 CPU_clock_cyclesA=I×2.0 CPU_clock_cyclesB=I×1.2 CPU_timeA=CPU_clock_cyclesA×clock_cycle_timeA =I×2.0×250 ps = 500×I ps CPU_timeB=CPU_clock_cyclesB×clock_cycle_timeB =I×1.2×500 ps = 600×I ps 36 微电子学研究所李树国

跳转指令属于 J_type 类指令 Jump and Branch Instructions
-J, JR , JAR 等
10
微电子学研究所李树国
5
MIPS 107条指令,按格式划分为以下3种
11
微电子学研究所李树国
MIPS 107条指令集概括
3大类:(1)输入类指令load (2)逻辑,运算处理指令 (3)输出类指令 store
例如:
beq $17, $18,25; //if $18==$17 then PC+4+25*4;
4 000100
17 10001
18 10010
25 0000 0000 0110 0100 8 微电子学研究所李树国
4
MIPS的J类型指令
J类型的指令(32位)
6位
op
26位
target
例如:
J 10000 ; Jump PC31..28||target|| 00
计算机B需要2倍的计算机A频率,才能达到6秒钟运行同样的程序
34
微电子学研百度文库所李树国
17
CPU周期数的计算
• 一个程序需要多少条指令取决于编译器 • 一条指令需要多少周期取决于处理器的体系结构 • CPI(Clock cycles per Instruction)
– 每条指令执行的平均时钟周期数 – 由于不同的指令需要不同的时钟周期数,因此CPI只是 程序中所有指令所花费的时钟周期数的平均值 – 对于同一套指令集在不同的计算机系统来实现,会产 生不同的CPI,因此可用CPI对计算机系统进行性能评价
如果 performancex>performancey 就有:
1 1 Execution_ timex Execution_ timey
Execution _ timey Execution _ timex
如果说一台计算机的性能是另一台计算机的n倍,就有
Performanc e x n performanc e y Performanc e x Execution _ time y n performanc e y Execution _ time x
6位
funca
寄存器堆
123
111 234
+
14
微电子学研究所李树国
7
立即数寻址 (addi, ori)
• 操作数是一个常数,包含在指令中
6位
op
5位
rs
5位
rt
16位
immediate
+
寄存器堆
15 微电子学研究所李树国
基址偏移量寻址(lw)
• 操作数是一个地址常数,包含在指令中
6位
op
5位
rs
15
计算机的响应时间和CPU的执行时间
• 计算机的响应时间是指完成一个任务所需要的时 间总和,这包括磁盘访问时间、内存读取时间、 输入输出操作的时间,以及操作系统为运行这个 程序而必不可少的时间等。 • CPU的执行时间:是真正花费这个任务计算上的 时间,并不包含等待I/O操作的时间和等待其它程 序的时间。
33 微电子学研究所李树国
CPU的例子
CPU _ timeB 1.2 CPU _ clock _ cyclesA Clock _ rateB 1.2 CPU _ clock _ cyclesA CPU _ timeB
Clock _ rateB
1.2 40 109 _ cycles cycles 8 109 8GHz 6 _ sec onds sec ond
例如:
Ori $17, $18,100; //$17<==$18 OR 100
13 001101
18
17
100 0000 0000 0110 0100 微电子学研究所李树国
10010 10001
5
MIPS的I类型指令
I类型的指令(32位)
6位
op
5位
rs
5位
rt
16位
immediate
例如:
20
微电子学研究所李树国
10
MIPS指令寻址模式小节
5 . 无条件跳转寻址:在指令存储器中寻找指令地址
操作: PCPC的高4位||address||00
21
微电子学研究所李树国
这是教材书上的原图p101
请问右边五个图是否有 错?若有的话,请指出 错的原因
11
24
微电子学研究所李树国
12
谬误
相关文档
最新文档