如何在c++中模拟5级管线

how to simulate 5 stage of pipe line in c++?

本文关键字:5级 模拟 c++      更新时间:2023-10-16

我正在尝试模拟5阶段的管道。我已将所有指令保存到一个结构体中。(基本用词法分析阶段完成)

,

ADD R1 R2 R3 // R1 = R2+ R3 ... struct pipe{ int pc, string instruction , int r1, int r2....}
如果p[i]是管道的一个阶段,则

, (p[1]可以是pc=pc+1;I[i]为指令,(I[1]可为ADD R1 R2 R3)

我要做的是

at t=1 : p[1] = I[1]
at t=2 :p[2] = I[1], p[1] = I[2]
at t=3 :p[3] = I[1], p[2] = I[2], p[1] = I[3]
at t=4 :p[4] = I[1], p[3] = I[2], p[2] = I[3], p[1] = I[4]

…就像这样到目前为止,我使用的是c++。

看起来您只是想在每个时间步的数组前面添加一个元素,从而将已经存在的数组元素向右移动一个。你可以避免像这样做O(n**2)操作

int& p_at_time(int index, int time_moment) {
    return &p[time_moment-index+1];
}
  • and at t=1: p_at_time(1,1) = I[1];
  • t = 2: p_at_time(1、2)=我[2],(p_at_time(2, 2)已经== I[1])
  • at t=3: p_at_time(1,3) = I[3], (p_at_time(2,3)和p_at_time(3,3)的值为I[2]和I[1])