标题有点混乱,但我的任务是用高级语言(我认为Python最好)编写一个4级MIPS处理器(IF,ID,EX,WB)。除了缓存和停顿的困难之外,如何将代码从并行变为串行?考虑以下代码片段。
pc = 0x0
IFinput, IDinput, EXinput, WBinput = None, None, None, None
while True:
IFinput = self.memory.getInstruction(pc)
if not IFinput: #No more instructions
break
self.IF.giveInput(IFinput)
self.ID.giveInput(IDinput)
self.EX.giveInput(EXinput)
self.WB.giveInput(WBinput)
instruction += 0x4
clock += 1
IDinput = self.IF.getOutput(clock)
EXinput = self.ID.getOutput(clock)
WBinput = self.EX.getOutput(clock)
result = self.WB.getOutput(clock)
result.printToFile()
我试图将输入和输出分为两个不同的阶段,以便在“clock += 1”命令执行之前不会通过获取输出来“欺骗”硬件。这是实现此目的的正确方法吗?是否有适合此任务的Python库?谢谢。