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
  7. Bidule88 Part 02: It runs!

    First achievement with Bidule88: it is actually running some code that I've written and uploaded into its EEPROM! Here is the result:

    The parts are connected as described on Homebrew8088 except that the EEPROM I used is bigger. Not that it is needed, though, the code is only a few …

    read more
  8. Bidule88 Part 01: Introduction

    Several months ago, while casually browsing the web from link to link, I ended up on the Veronica project page. I've played with computers for some years now, but never thought I'd ever be able to actually make one. That is, until I read Quinn's posts. Granted, she uses a …

    read more