有两种执行指令的机制。
在MIPS体系结构(摘自《计算机组织与设计》一书)中,教学分为5个阶段。
因此,在单时钟周期实现中,这意味着在一个时钟周期内,一条指令执行5个阶段。
例如,加载指令(有5个阶段)在一个时钟周期内执行。因此,在这一个时钟周期之后可以执行其他指令。让我们假设一个时钟周期是10秒。
现在,在流水线中,多条指令可以重叠。与上面示例中的一个时钟周期的时间相比,我对这个概念感到困惑。
在这里执行5条指令,需要9个时钟周期。意思是执行5条指令,需要90秒。但是在单个时钟周期实现中,执行5条指令只需要50秒。流水线需要更多的时钟周期。(不好)我想错了吗??或者我错过了什么??
在这里,要执行第一条指令,需要50秒??
我认为您的主要误解是您认为两种设计中时钟周期的持续时间是相同的,事实并非如此。让我们将单周期设计中的时钟周期表示为X
,将流水线设计中的时钟周期表示为Y
。在单个周期设计中,5条指令将需要5X
周期,而在流水线设计中,这将需要9Y
周期。
现在我们需要找到X和Y之间的关系。现在考虑一种情况,您只有一条指令要执行。在单周期设计中,这将需要X个周期,而在管道设计中,这将需要5Y个周期。如果两者以相同的速率计时,则X应等于5Y。
现在让我们做一些替换数学:-)
单循环-<代码>5X
管道-<代码>9Y
替换X
单周期-25Y
管道-<代码>9Y
给你。单周期设计比多周期设计慢2.7倍。
在Intel Xeon Phi中,每个内核有32个512位宽的向量寄存器。每个向量寄存器每个周期可以执行16个单精度浮点运算。并且在1个周期内可以完成2个操作(1个在v管中,1个在u管中)。 我想知道除了向量寄存器中的向量乘法之外,在一个时钟周期内可以完成多少标量乘法。
假设我有一些账单,上面有开始日期和结束日期。 我要检查的商业规则是 例如,3月10日到4月9日大约相隔一个月,所以我用它来检查任何两个连续的账单开始日期(4月10日和3月10日)是否相隔一个月。 现在我的问题是求周期的长度。例如,假设我有以下数据集 我正在使用JodaTime库,所以我说类似这样的话 它返回0,这是正确的,但没有用处。 结果是1,尽管相隔一天。 有什么更好的方法来做到这一点?我可以
单片机实时时钟软件,用数码管显示时间,按键调节时间、闹钟
我知道无符号long-long存储在eax/edx中,但我想知道如何找出执行单个rdtsc指令所需的时钟周期? 编辑:像这样的东西有用吗? .GlobalRDTSC rdtsc: rdtsc rdtsc ret
问题内容: 我有一个小问题。我有这样格式的PostgreSQL表 我想按5分钟的时间对它们进行分组,并将该组的平均值作为一个单一值,因此将有20%的记录,每条记录平均包含〜5个数字,而时间设置为中的第一个时间值群组。我不知道如何在PgSQL中执行此操作。因此结果将是: 问题答案: 解释 子查询每5分钟从表中的最小值“到最大值”产生一行记录。 以5分钟为间隔将LEFT JOIN返回表切片数据。仔细