微处理器结构与设计3
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
微电子学研究所李树国
补码下的加法
0000 0000 0000 0000 0000 0000 0000 0001=1ten + 1111 1111 1111 1111 1111 1111 1111 1111=-1ten
1 0000 0000 0000 0000 0000 0000 0000 0000=0ten 进位自动丢失 0000 0000 0000 0000 0000 0000 0000 0010=2ten 1111 1111 1111 1111 1111 1111 1111 1110=-2ten 1 0000 0000 0000 0000 0000 0000 0000 0000=0ten 进位自动丢失 0000 0000 0000 0000 0000 0000 0000 0011=3ten 1111 1111 1111 1111 1111 1111 1111 1101=-3ten 1 0000 0000 0000 0000 0000 0000 0000 0000=0ten 进位自动丢失
16 微电子学研究所李树国
8
补码的表示
• 符号数的数值表示为:
X=X31 (‐2‐31)+X30230+X30229+ +X121 +X020 证明: 当X表示正数时, X31 =0,显然成立 当X表示负数时, X31 =1, 即: ‐(2n‐X) X=(1X30X29X28….X3X2X1X0) =‐(232‐(1X30X29X28….X3X2X1X0)) =‐232+(1231+X30 230+X29 229+……+X1 21+X0 20) =‐2 231+1231+(X30 230+X29 229+……+X1 21+X0 20) =‐1 231 +(X30 230+X29 229+……+X1 21+X0 20) =‐1 231 +(X30 230+X29 229+……+X1 21+X0 20) =X31(‐231) +(X30 230+X29 229+……+X2 22+X1 21+X0 20)
微电子学研究所李树国
18
9
SLT and SLTU
SLT Set on Less Than if (int)Rs < (int)Rt Rd = 1 else Rd = 0 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ SLTI Set on Less Than Immediate if (int)Rs < (int)Immed Rt = 1 else Rt = 0 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ SLTIU Set on Less Than Immediate Unsigned if (uns)Rs < (uns)Immed Rt = 1 else Rt = 0
结论1
• 仅考虑性能,而不考虑成本,功能和其它因素,是不实际的
– 高端用户,超级计算机优先考虑性能 – 嵌入式微处理器优先要考虑成本和功耗 – 中级用户优先考虑性能价格比
• 只有执行时间是性能评价可靠的指标,即
Time Seconds Instructio ns Clock _ cycles Seconds Pr ogram Pr ogram Instructio n Clock _ cycle
T=Trillion , 1012; a million million; G=Giga , 10亿,109
3
微电子学研究所李树国
例如:已知计算机的时钟频率为4GHz,其它指令种类见表
问:依据MIPS的结果,哪个代码序列执行的快?依据执行时间, 又是怎样呢? 首先,我们确定: 我们知道:
Excution time
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1011
-11ten的表示
1111 1111 1111 1111 0101
1111 1111 1111 1111 1111 1111 1111 0101
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 0101 10 微电子学研究所李树国
•执行时间是唯一正确且无可怀疑的性能评价指标。 •而其它的评价指标总有欠缺,甚至一些指标从开始就没有反应 出程序的执行时间,所以天生就存在缺陷。 •一些评价指标仅在局部的上下文环境下是正确的,离开了这个 环境,这些指标总是需要修正。
6 微电子学研究所李树国
3
结论2
• 微处理器的设计艺术不在于引入性能评价 公式,而在于如何给出一个最佳的方案来 影响微处理器的性能和成本 • 由于工艺制造技术发展,今天看来最有效 的,6个月后,常常会变成次优的 • 计算机的设计是由性能、成本、功耗、可 靠性、所有权、可扩展性等决定的。
5
Question?
• 负数左边为什么都填“1”?
11
微电子学研究所李树国
Question?
补码就是”正数的变反+1”,为什么?
12
微电子学研究所李树国
6
补码是怎样产生的
0000 0000 0000 0000 0000 0000 0000 0001=1ten 1111 1111 1111 1111 1111 1111 1111 1111=-1ten
MIPS
instruction count Execution time 106
(5 1 1) 109 2800 2.5 106
(10 1 1) 109 3200 3.75 106
MIPS1
MIPS 2
但依据MIPS的结果:compiler2比compiler1产生序列要快,这显然是错误的 所以说,MIPS作为性能指标不能给出真正的计算机性能
2
微电子学研究所李树国
1
MFLOPS (Million Floating Point Operations Per Second)
MFLOPS
程序中浮点操作数 执行时间 10 6
1、用于测量浮点处理器的性能 2、用Fortran语言编写,主要是浮点加法和浮点乘法 3、另外还有GFLOPS,TFLOPS
19 微电子学研究所李树国
举例
请问:$t0,$t1寄存器的内容各是多少?
20
微电子学研究所李树国
10
答案
• $t0的内容是1 • $t1的内容是0
21
微电子学研究所李树国
一个求补码的技巧
• 从右边向左数遇到第一个1时,之前所有数过的位保持不变,第一个1 也不变。 • 继数过的第一个1之后,所有的数变反,就是所要求的补码 • 这种方法求补码,不会产生进位
7
微电子学研究所李树国
微处理器的基本运算逻辑单元的设计
8
微电子学研究所李树国
4
有符号和无符号数的表示
D ×Basei
Most significant bit
Least significant bit
9
微电子学研究所李树国
数的表示事实上是一个无穷的序列
11ten的表示 0000 0000 0000 0000 1011 0000 0000 0000 0000 0000 0000 0000 1011
0000 0000 0000 0000 0000 0000 0000 0010=2ten 1111 1111 1111 1111 1111 1111 1111 1110=-2ten
0000 0000 0000 0000 0000 0000 0000 0011=3ten 1111 1111 1111 1111 1111 1111 1111 1101=-3ten
微处理器结构与设计
第3次课 2011.03.06
1
微电子学研究所李树国
MIPS—Million Instructions Per Second
M IP S in stru ctio n co u n t E xecu tio n tim e 1 0 6
显然,依据MIPS的定义,MIPS的倒数就是执行的时间,也就是说,MIPS 越大,计算机运行的速度就越快。但 这仅是的直觉,不是事实,还有待于进 一步考证。 用MIPS作为评价指标,有三大问题 1、MIPS仅给出了指令的执行速度,没有考虑指令集的能力。因 为不同的指令集,不能使用一种MIPS来比较计算机的性能 2、即使在同一个计算机上,不同的程序运行会导致不同的MIPS 3、最重要的一点:MIPS可能给出与性能相反的评价
2
这样,我们不难求出这2个编译器序列执行的时间:
10 109 =2.5 sec onds 4 109 15 109 Excution time2 =3.75 sec onds 4 109 Excution time1
显然,依据执行时间,compiler1比compiler2产生了快速的指令序列
17 微电子学研究所李树国
与符号位相关的MIPS指令的用法
• lb ‐‐‐load byte
– 填充24位符号扩展位+8位的实际数值
• lbu‐‐‐load byte unsigned
– 填充24位个0+8位的实际数值
• 同样的指令,还有:
– – – – – – lh‐‐‐ load half lhu‐‐‐ load half unsigned Slt ‐‐‐ set less than slti ‐‐‐ set less than immediate sltu‐‐‐ set less than unsigned sltiu ‐‐‐ set less than immediate unsigned
– 即对”10000………0000000000”求补
• 变反,事实上就是一个数对2n‐1求补 ,即对”1111……11111” 求补, 因此有:X正数+ •
X负数(反码)=2n‐1 而“+1”操作实际上是对(2n‐1)+1=2n求补
即对”10000………0000000000”求补 • 以上的推导就是求补“变反+1”的由来
CPU clock cycles clock rate
n
CPU clock cycles CPI i Ci
i 1
CPU clock cycles1 =(5×1+1×2+1×3)×109=10×109 CPU clock cycles2 =(10×1+1×2+1×3)×109=15×109
0000 0000 0000 0000 0000 0000 0000 0001=1ten 0000 0000 0000 0000 0000 0000 0000 0000=0ten
• 负数:
1111 1111 1111 1111 1111 1111 1111 1111=-1ten(-231+231-1) 1111 1111 1111 1111 1111 1111 1111 1110=-2ten (-231+231-2)
概括起来,就是对1000……000000求补
14 微电子学研究所李树国
7
MIPS‐32位架构下补码的表示范围
• 正数: 0111 1111 1111 1111 1111 1111 1111 1111 = 2
0111 1111 1111 1111 1111 1111 1111
31-1
最大
1110=231-2
1000 0000 0000 0000 0000 0000 0000 0001=-231+1 1000 0000 0000 0000 0000 0000 0000 0000=-231 15 最小
微电子学研究所李树国
补码的性质
• • • • 所有正数与其相应的负数相加都等于2n (为什么是2n ?) X正数+ X负数(补码)=2n; X负数(补码)=2n -X正数 表示的范围(0~232‐1)正数0~231‐1; 负数‐1~‐231 也就是说,补码实际上就是一个数对2n求补,
0001 0100 0000 0001
Baidu Nhomakorabea
1110 1100
1111 1111
0000 1001
0100 1110
1111 0111
1011 0010
22
微电子学研究所李树国
11
加法
进位的产生过程
23
微电子学研究所李树国
减法
对减数求补 例如7-6=? 事实上,7+(-6),也就是把减数求补,再做加法