Other articles


  1. Control hazards with jumps and branches

    I've talked about the data hazards in a previous installment, now let's talk about control hazards. A control hazard is when we need to find the destination of a jump or a branch and can't fetch any new instruction until this destination is known.

    When a branch instruction is fetched …

    read more
  2. I want a hardware multiplier

    I'm currently working on the data multiplexer, the part that comes between the CPU and the memory and is responsible for putting the right byte at the right place, but I can't stop thinking about what comes next.

    And let me tell you, there's still quite a lot of development …

    read more
  3. Of data hazards, bypasses and stalls

    Remember that a data hazard occurs when an instruction waits for the result of a previous instruction.

    In the following example:

            add a0, t0, t1         ; a0  ←  t0 + t1
            sub a1, a0, t2         ; a1  ←  a0 + t2
    

    the add instruction stores the result into register a0 when it reaches the Writeback stage …

    read more
  4. Astorisc: The simulation begins

    These last few weeks, I've been working on implementing the CPU in Digital.

    My initial intention was to stay as close as possible to what will be the actual implementation, but in practice, it may not have been a good idea, because it didn't always play well with the simulation …

    read more
  5. Just a few components ordered

    I had some components to buy at Mouser for an unrelated project, but my order wasn't going to reach 50€ and I wouldn't get free shipping...

    So I added a few of nearly every logic gate from the AUC family in the basket. These are like the usual 74 LS …

    read more
  6. Astorisc: Building blocks and components

    Throughout the entire processor, there are a few basic building blocks that will be used in various places. Let's have a look at some of them.

    Registers

    By far, the block that we'll use the most is the register. Not only in the register file, but also between each stage …

    read more