Assembly 指令执行

Assembly 指令执行,assembly,verilog,computer-architecture,Assembly,Verilog,Computer Architecture,我正在读一本关于计算机体系结构介绍的书。 有一段文字是这样写的:RISC指令通常需要一个时钟周期。然后显示以下Verilog代码段,如图所示: always @(positiveclockedge clk ) begin case ( state ) STATE_FETCH: begin fetch; state = STATE_DECODE; end STATE_DECODE: begi

我正在读一本关于计算机体系结构介绍的书。 有一段文字是这样写的:RISC指令通常需要一个时钟周期。然后显示以下Verilog代码段,如图所示:

always @(positiveclockedge clk )

begin

case ( state )
    STATE_FETCH:
        begin
          fetch;
          state = STATE_DECODE;
        end
    STATE_DECODE:
        begin
            decode;
            state = STATE_EXECUTE;
        end
    STATE_EXCUTE:
        begin
            execute;
            state = STATE_FETCH;
        end
endcase
end
根据Verilog代码段,每条指令至少需要3个时钟周期,忽略任何内存访问延迟,即使是RISC处理器。因此,似乎存在着矛盾。有人能帮忙修一下吗

你也可以谷歌risc架构。或 请参阅RISC DLX体系结构的维基百科页面。或 请参阅hennesey和patterson的书,其中详细讨论了risc体系结构。 通常情况下,您有一个流水线risc体系结构获取-解码-执行-写回。指令以单周期执行。但是,整个管道可能需要更多的周期,这取决于要实现的体系结构


希望这能有所帮助。

Google处理器管道。该文本可能意味着通常需要一个时钟周期[执行],即,只有一个执行管道阶段。单周期执行简化了高效管道的设计,因为依赖指令可以连续执行。没有互锁管道级的原始微处理器甚至使用了加载延迟槽,允许加载指令被视为单周期执行,迫使编译器避免在加载指令之后立即放置依赖指令。我想这就是我的答案。谢谢。像延迟槽这样的东西也应该在获取阶段起作用,因为需要访问内存。正确吗?指令获取和数据访问的结构性风险可能都希望同时进行,通常会通过暂停来处理。许多处理器使用单独的指令和数据缓存,以减少这种危险的频率,以及其他好处;因为在一个非常简单的设计中,缓存丢失无论如何都需要一个暂停,这允许一些简化。非常有用。坦克。本课程的目的只是对如何更好地进行编程(即组装)有一个整体的看法。我不想深入研究处理器的设计问题。