【发布时间】:2018-09-10 12:34:23
【问题描述】:
鉴于:
-
需要的操作时间:
- 内存单位:200 ps
- ALU 和加法器:100 ps
- 注册文件:50 ps
- 其他单元和电线:没有延迟
-
ps指令组合及运算时间:
25% 负载 (600 ps)
10% 存储 (550 ps)
45% ALU 指令 (400 ps)
15% 分支 (350 ps)
5% 跳跃 (200 ps)
每条指令在 1 个时钟周期内执行
两种实现方式:定长和变长
哪种实现会更快?速度会快多少?
规则:CPU执行时间:IC * CPI * CCT
由于 CPI = 1...
CPU 执行时间:IC * CCT
我的问题是:
实现具有可变/固定长度意味着什么?
CPU 执行时间singleclock 的值是如何计算的?
【问题讨论】:
-
定长什么的?也许指令,即每条指令都是 32 位的,并且在 32 位边界上对齐?如果您正在考虑设计更改,或者管道长度?但是当你说每条指令在 1 个时钟周期内执行时,我认为你的意思是没有流水线,并且获取/解码/执行/写回都发生在一个(慢)时钟周期内,可能更快时钟驱动内部电路?还是仅仅意味着 ALU 指令总是有 1 个周期的延迟?
-
@PeterCordes 不太确定固定长度是什么。是的,在这种情况下,单时钟周期意味着不流水线
-
哦,解决方案是固定时钟周期与可变时钟周期。我猜在可变时钟系统中,CPU 会生成时钟本身,因此指令可能需要不同的实时时间,但仍然是单个时钟周期,因为时钟的上升沿或下降沿在 CPU 执行完指令之前不会发生信号。这很奇怪,并且会嘲弄通常的性能指标,例如每条指令的周期数。
标签: performance cpu computer-science cpu-architecture