难道一个周期的指令需要一个周期,即使RAM是慢?(Does a one cycle instruct

2019-08-17 17:05发布

我使用的是嵌入式RISC处理器。 还有就是我有一个问题搞清楚一个基本的东西。

所述CPU手册中明确指出,指令ld r1, [p1]在C:R1 = * P1)需要一个周期。 寄存器r1的大小是32位。 然而,存储器总线是只有16位宽。 那么如何才能获取所有数据在一个周期?

Answer 1:

时钟时间假设全宽零等待状态存储器。 它需要为核心来执行指令的时间是一个时钟周期。

曾经有一段时间,当每一个指令采取了不同的时钟周期数。 内存是比较快的,然后过,平时零等待状态。 有管道之前的时间,以及在那里你只好烧时钟周期取,然后时钟周期解码,然后一个时钟周期指令执行,再加上额外的时钟周期变长的指令,如果该指令有一个内存操作额外的时钟周期。

今天,时钟速度高,芯片的房地产价格相对便宜所以一个时钟周期相加或相乘是正常的,因为是流水线和缓存。 处理器时钟速度不再对性能的决定性因素。 内存比较昂贵,速度慢。 所以高速缓存(配置,数量和尺寸),总线大小,存储器速度,圆周速度确定的系统的整体性能。 通常情况下提高处理器的时钟速度,但不是内存或外围设备将显示最小的,如果任何性能增益,在某些情况下它可以使它更慢。

内存大小和等待状态不在参考手册时钟执行规范的一部分,他们正在谈论什么只有核心本身的成本你的时钟每个指令的单位。 如果它是一个哈佛体系结构,其中所述指令和数据总线是分离的,则一个时钟是可能的存储器周期。 如果不是在此之前的指令的取指发生在至少在现有的时钟周期,所以在时钟循环的开始的指令准备好,解码,和在所述端部的一个时钟期间执行(读存储器周期)发生一个时钟周期的读取的结果被锁存到寄存器中。 如果指令和数据总线是共享的,那么你可能会说,它仍然完成在一个时钟周期,但你没有得到取出下一条指令所以有点失速的存在,他们可能会欺骗和调用一个时钟周期。



Answer 2:

我的理解是:说一些指令需要一个周期的时候,它不是指令将在一个周期内完成。 我们应该在指令计数管网上 。 假设你的CPU有5级管线,该指令将需要5个周期,如果它按顺序exectued。



文章来源: Does a one cycle instruction take one cycle, even if RAM is slow?