【问题标题】:performance of single-cycle processor单周期处理器的性能
【发布时间】:2018-09-10 12:34:23
【问题描述】:

鉴于:

  1. 需要的操作时间:

    • 内存单位:200 ps
    • ALU 和加法器:100 ps
    • 注册文件:50 ps
    • 其他单元和电线:没有延迟
  2. ps指令组合及运算时间:

    • 25% 负载 (600 ps)

    • 10% 存储 (550 ps)

    • 45% ALU 指令 (400 ps)

    • 15% 分支 (350 ps)

    • 5% 跳跃 (200 ps)

  3. 每条指令在 1 个时钟周期内执行

  4. 两种实现方式:定长和变长

哪种实现会更快?速度会快多少?

Solution

Reference Table

规则: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


【解决方案1】:

实现具有可变/固定长度意味着什么?

固定长度时钟意味着每个时钟周期具有相同的周期,与正在执行的指令无关。可变长度时钟意味着不同的时钟周期可能有不同的周期,具体取决于正在执行的指令。

因此,在固定时钟设计中,时钟周期必须至少为 600 ps,这是执行任何指令(加载指令)所需的最长时间。在可变时钟设计中,我们可以按如下方式计算平均时钟周期:

Average CPU clock cycle = 600*25% + 550*10% + 400*45% + 350*15% + 200*5% = 447.5 ps

CPU 执行时间的值如何singleclock 计算出来的?

要确定哪种实现更快,您需要衡量加速比,其定义为:

Speedup = CPU execution time(single) / CPU execution time(variable)

使用我们得到的CPU执行时间的定义(注意指令数是一样的):

Speedup = CPU execution time(single) / CPU execution time(variable)
        =  (Instruction count * Clock cycle time(single)) / (Instruction count * Clock cycle time(variable))
        = Clock cycle time(single) / Clock cycle time(variable)
        = 600 / 447.5 = 1.34

Se 可变时钟设计快 1.34。

关于 CPU 执行时间变量

CPU 执行时间变量 在技术上等于每条执行指令的各个时钟周期时间的总和。但我们使用平均时钟周期时间来计算加速。无论哪种方式,我们都会得到相同的结果吗?一起来了解一下吧!

假设有 N 条执行指令,让 C1, C2, ..., CN 分别表示每个指令的循环时间。因此:

CPU execution time(variable) = C1 + C2 + ... + CN
                             = 600*25%*N + 550*10%*N + 400*45%*N + 350*15%*N + 200*5%*N
                             = N * average CPU clock cycle

所以它们是一样的。

【讨论】:

    猜你喜欢
    • 2014-08-04
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多